#+TITLE : Rosenthal - A certain Guix channel
** About / 關於
[[https://codeberg.org/hako/Rosenthal ][Rosenthal ]] is a [[https://guix.gnu.org/en/manual/devel/en/html_node/Channels.html ][Guix channel ]].
This channel was created for experiments, it currently holds some packages not ready for upstreaming to [[https://guix.gnu.org/ ][GNU Guix ]].
You can search for packages and services in Rosenthal and other channels with the [[https://toys.whereis.みんな/ ][toys ]] instance maintained by [[https://sr.ht/~whereiseveryone/ ][WhereIsEveryone ]] community.
Unstable contents: packages not publicly exported, packages with a suffix like =-dev= , =-for-<some package>= or =-<full version>= , and all services are considered unstable. They are subject to change and may be deleted at any time.
[[https://codeberg.org/hako/Rosenthal ][Rosenthal ]] 是一個 [[https://guix.gnu.org/en/manual/devel/zh-cn/html_node/Tong-Dao-.html ][Guix 頻道 ]]。該頻道因試驗而起,如今存有一些還算有趣,但尚未準備好加入 [[https://guix.gnu.org/zh-CN/ ][GNU Guix ]] 上游的軟件包。
[[https://sr.ht/~whereiseveryone/ ][WhereIsEveryone ]] 社區維護的 [[https://toys.whereis.みんな/ ][toys ]] 實例,可用以檢索來自 Rosenthal 及其他 Guix 頻道的軟件包與服務。
頻道內所有 Guix 服務,及名稱以 =-dev= 、 =-for-<某軟件包>= 或 =-<版本號>= 結尾的軟件包,均無穩定保證,隨時可能刪改。
** Usage / 用法
To update Rosenthal along with Guix via =guix pull= , write the following definition to =~/.config/guix/channels.scm= ,
#+begin_src scheme
(channel
(name 'rosenthal)
(url "https://codeberg.org/hako/rosenthal.git")
(branch "trunk")
(introduction
(make-channel-introduction
"7677db76330121a901604dfbad19077893865f35"
(openpgp-fingerprint
"13E7 6CD6 E649 C28C 3385 4DF5 5E5A A665 6149 17F7"))))
#+end_src
for example:
#+begin_src scheme
;; ~/.config/guix/channels.scm
(cons* (channel
(name 'rosenthal)
(url "https://codeberg.org/hako/rosenthal.git")
(branch "trunk")
(introduction
(make-channel-introduction
"7677db76330121a901604dfbad19077893865f35"
(openpgp-fingerprint
"13E7 6CD6 E649 C28C 3385 4DF5 5E5A A665 6149 17F7"))))
%default-channels)
;; channels.scm ends here.
#+end_src
If you are a [[https://guix.gnu.org/en/manual/devel/en/html_node/Home-Configuration.html ][Guix Home ]] user, check out the =home-channels-service-type= .
Alternatively, Rosenthal can be used seperately with the following steps:
Clone the repository.
#+begin_src shell
git clone https://codeberg.org/hako/rosenthal.git rosenthal
cd rosenthal
#+end_src
Prefix guix commands with the =pre-inst-env= script.
#+begin_src shell
./pre-inst-env guix <command >
#+end_src
Rosenthal 頻道定義如下,將其加入 =~/.config/guix/channels.scm= 以由 =guix pull= 接收更新。
#+begin_src scheme
(channel
(name 'rosenthal)
(url "https://codeberg.org/hako/rosenthal.git")
(branch "trunk")
(introduction
(make-channel-introduction
"7677db76330121a901604dfbad19077893865f35"
(openpgp-fingerprint
"13E7 6CD6 E649 C28C 3385 4DF5 5E5A A665 6149 17F7"))))
#+end_src
加入後 =channels.scm= 示例如下:
#+begin_src scheme
;; ~/.config/guix/channels.scm
(cons* (channel
(name 'rosenthal)
(url "https://codeberg.org/hako/rosenthal.git")
(branch "trunk")
(introduction
(make-channel-introduction
"7677db76330121a901604dfbad19077893865f35"
(openpgp-fingerprint
"13E7 6CD6 E649 C28C 3385 4DF5 5E5A A665 6149 17F7"))))
%default-channels)
;; channels.scm 在此結束。
#+end_src
[[https://guix.gnu.org/en/manual/devel/zh-cn/html_node/Home-Configuration.html ][Guix Home ]] 用戶亦參見服務 =home-channels-service-type= 。
若想獨立於 =channels.scm= 使用頻道,可由如下步驟:
首先克隆 git 倉庫
#+begin_src shell
git clone https://codeberg.org/hako/rosenthal.git rosenthal
cd rosenthal
#+end_src
再由倉庫內 =pre-inst-env= 腳本執行 Guix 命令。
#+begin_src shell
./pre-inst-env guix <命令 >
#+end_src
** Content / 內容
*** Packages / 軟件包
+ cloudflared
+ dnsmasq-china-list
+ emacs-wakatime-mode
+ grimblast
+ hyprland
+ socks2http
+ tree-sitter-yaml
+ xdg-desktop-portal-hyprland
Binary Packages / 二進制包:
+ clash-bin
+ hugo-bin
+ shadow-tls-bin
+ sing-box-bin
+ tailscale-bin
+ wakapi-bin
+ wakatime-cli-bin
Non-free Packages / 非自由軟件:
+ cloudflare-warp-bin
*** Services / 服務
+ clash-service-type
+ cloudflare-tunnel-service-type
+ cloudflare-warp-service-type
services: Add iwd.
* rosenthal/services/networking.scm: New file.
(%iwd-config-general,%iwd-config-network,%iwd-config-blacklist)
(%iwd-config-rank,%iwd-config-scan,%iwd-config-ipv4,%iwd-config-driver-quirks)
(iwd-shepherd-service,iwd-service-type): New variables.
(uglify-field-name,serialize-field,serialize-string,serialize-boolean,cidr4?)
(serialize-cidr4,randomization-method?,serialize-randomization-method)
(randomization-range?,serialize-randomization-range,signal-strength?)
(serialize-signal-strength,seconds?,serialize-seconds,protection-mode?)
(serialize-protection-mode,resolution-method?,serialize-resolution-method)
(serialize-integer,serialize-number,serialize-list-of-strings,list-of-cidr4?)
(serialize-list-of-cidr4,serialize-iwd-configuration,add-iwd-config)
(add-iwd-package): New procedures.
(string,cidr4,list-of-strings): New maybe values.
(iwd-configuration): New data type.
* README.org (Services): Add iwd-service-type.
1 year ago
+ iwd-service-type
+ miniflux-service-type
+ qbittorrent-service-type
+ (home-)shadow-tls-service-type
+ smartdns-service-type
+ home-socks2http-service-type
+ home-wakapi-service-type