From 09d8efeb13d7f3bf565d5c1f30968851daf781b6 Mon Sep 17 00:00:00 2001 From: nik gaffney Date: Wed, 7 Feb 2024 18:24:32 +0100 Subject: [PATCH] Put in earplugs --- config/framework13-system.org | 4 +- config/framework13-system.scm | 2 +- config/home-configuration.org | 189 ++++++++++++++++++++++++++++++++++ config/home-configuration.scm | 119 +++++++++++++++++++++ 4 files changed, 311 insertions(+), 3 deletions(-) create mode 100644 config/home-configuration.org create mode 100644 config/home-configuration.scm diff --git a/config/framework13-system.org b/config/framework13-system.org index 96a2809..28ccef2 100644 --- a/config/framework13-system.org +++ b/config/framework13-system.org @@ -34,7 +34,7 @@ echo ";; -*- mode: scheme; coding: utf-8; -*- (gnu packages emacs-xyz)) #+end_src -Include non-free linux kernel, modules and firmware from the [[https://gitlab.com/nonguix/nonguix/][nonguix channel]] +Include non-free linux kernel, modules and firmware from the [[https://gitlab.com/nonguix/nonguix/][nonguix channel]] (aka “the guix channel that shall not be named”) #+begin_src scheme (use-modules (nongnu packages linux) (nongnu system linux-initrd)) @@ -140,7 +140,7 @@ Using =linux-6.7= from nonguix which includes =CONFIG_MT7921E= by default as of "audio" "video" "www-data" - "realtime" + "realtime" "lp"))) (user-account (name "www-data") diff --git a/config/framework13-system.scm b/config/framework13-system.scm index b0b6efa..bf2f9ba 100644 --- a/config/framework13-system.scm +++ b/config/framework13-system.scm @@ -1,6 +1,6 @@ ;; -*- mode: scheme; coding: utf-8; -*- ;; -;; tangled from framework13-system.org on 2024-02-01 12:22:20+01:00) +;; tangled from framework13-system.org on 2024-02-07 18:15:15+01:00) (use-modules (gnu) (gnu packages) diff --git a/config/home-configuration.org b/config/home-configuration.org new file mode 100644 index 0000000..9d9cf51 --- /dev/null +++ b/config/home-configuration.org @@ -0,0 +1,189 @@ +# -*- mode: org; coding: utf-8; -*- +#+title: a GUIX home config +#+property: header-args :tangle home-configuration.scm + +A semi-literate config for GUIX home +- generate config with =org-babel-tangle= (bound to =C-c C-v t=) +- rebuild with =guix home reconfigure home-configuration.scm= (or similar) + +* header +generate a header and timestamp if required + +#+name: timestamp +#+BEGIN_SRC sh :results output code :tangle no +echo ";; -*- mode: scheme; coding: utf-8; -*- +;; +;; tangled from home-configuration.org on `date --rfc-3339 seconds`)" +#+end_src + +#+begin_src scheme :noweb yes +<> +#+end_src + +* modules + +#+BEGIN_SRC scheme +(use-modules (gnu) + (gnu home) + (gnu packages) + (gnu packages gnupg) + (guix gexp) + (gnu home services shells) + (gnu home services gnupg)) + +#+END_SRC + +getmail? → (use-service-modules mail) + +Packages that will show up in your Home profile under =~/.guix-home/profile= + +#+BEGIN_SRC scheme +(home-environment + (packages (specifications->packages + (list + "nordic-theme" + "firefox" + "emacs-guix" + "emacs-next" + "rsync" + "neofetch" + "nyxt" + "python" + "git" + "gnupg" + "crda" + "htop" + "password-store" + ;; terminal + "alacritty" + ;; mail + "getmail6" + "notmuch" + ;; graphical + "scribus" + "inkscape" + ;; sound + "supercollider" + "tidal" + "ardour" + "audacity" + "qpwgraph" + ;; hardware + "lm-sensors" + "dmidecode" + "lshw" + "hwinfo" + "acpi" + ))) +#+END_SRC + +The list of Home services. To search for available services, run 'guix home search KEYWORD' in a terminal. + +#+BEGIN_SRC scheme + (services + (list + #+END_SRC + +additional channels → nonguix & zzkt + +#+BEGIN_SRC scheme + (simple-service 'variant-packages-service + home-channels-service-type + (list + (channel + (name 'nonguix) + (url "https://gitlab.com/nonguix/nonguix") + (branch "master") + (commit + "fe2fcf125cfc5f7284b24cfac50f37feaf74f7b5") + (introduction + (make-channel-introduction + "897c1a470da759236cc11798f4e0a5f7d4d59fbc" + (openpgp-fingerprint + "2A39 3FFF 68F4 EF7A 3D29 12AF 6F51 20A0 22FB B2D5")))) + (channel + (name 'zzkt) + (url "https://gitlab.com/zzkt/guix") + (branch "endless") + (commit + "ef1868ed9bdcf1a49771442e405bd88207b3ab0c") + (introduction + (make-channel-introduction + "fc0ada85de1980e1fc9ee50672d827c0c17c3e7d" + (openpgp-fingerprint + "24A7 4604 91E6 A60F 5BB4 A00F 989F 5E6E DB47 8160")))))) +#+END_SRC + +environment / variables + +#+BEGIN_SRC scheme + (simple-service 'some-useful-env-vars-service + home-environment-variables-service-type + `(("NOTMUCH_PROFILE" . "$HOME/.config/notmuch/notmuch.conf") + ("LD_LIBRARY_PATH" . "$HOME/.guix-profile/lib") + ("SHELL" . ,(file-append zsh "/bin/zsh")))) +#+END_SRC + +zsh (and/or completions and/or [[https://lists.gnu.org/archive/html/help-guix/2020-06/msg00005.html][help-guix]]) + =$fpath= contains =/run/current-system/profile/share/zsh/site-functions= + +#+BEGIN_SRC scheme + (service home-zsh-service-type + (home-zsh-configuration + ;; configs in $XDG_CONFIG_HOME/zsh + (xdg-flavor? #t) + (environment-variables + '(("HISTFILE" . "$HOME/.config/zsh/.history") + ("HISTSIZE" . "800000") + ("SAVEHIST" . "800000"))) + (zshenv + (list (local-file ".zshenv" "zshenv"))) + (zshrc + (list (local-file ".zshrc" "zshrc"))))) + #+END_SRC + +gnupg + +#+BEGIN_SRC scheme + (service home-gpg-agent-service-type + (home-gpg-agent-configuration + (pinentry-program + (file-append pinentry-emacs "/bin/pinentry-emacs")) + (ssh-support? #t))) + #+END_SRC + +dotfiles (see [[https://guix.gnu.org/manual/devel/en/html_node/Essential-Home-Services.html][guix docs]]) + +#+BEGIN_SRC scheme + (service home-dotfiles-service-type + (home-dotfiles-configuration + (directories (list "dotfiles")))) +#+END_SRC + +ssh & sundry (see also [[https://guix.gnu.org/manual/devel/en/html_node/Secure-Shell.html][guix manual]]) + +#+BEGIN_SRC scheme + +#+END_SRC + +sound via pipewire (see also [[https://guix.gnu.org/manual/devel/en/html_node/Sound-Home-Services.html][guix manual]]) + +#+BEGIN_SRC scheme + (service home-pipewire-service-type + (home-pipewire-configuration + (pipewire "pipewire") + (wireplumber "wireplumber") + (enable-pulseaudio? #t))) +#+END_SRC + +fonts + +#+BEGIN_SRC scheme + ;; see -> https://guix.gnu.org/manual/devel/en/html_node/Fonts-Home-Services.html + #+END_SRC + +FIN + +#+BEGIN_SRC scheme + ))) ;; end home-environment +#+END_SRC diff --git a/config/home-configuration.scm b/config/home-configuration.scm new file mode 100644 index 0000000..a1b27fa --- /dev/null +++ b/config/home-configuration.scm @@ -0,0 +1,119 @@ +;; -*- mode: scheme; coding: utf-8; -*- +;; +;; tangled from home-configuration.org on 2024-02-07 18:22:13+01:00) + +(use-modules (gnu) + (gnu home) + (gnu packages) + (gnu packages gnupg) + (guix gexp) + (gnu home services shells) + (gnu home services gnupg)) + +(home-environment + (packages (specifications->packages + (list + "nordic-theme" + "firefox" + "emacs-guix" + "emacs-next" + "rsync" + "neofetch" + "nyxt" + "python" + "git" + "gnupg" + "crda" + "htop" + "password-store" + ;; terminal + "alacritty" + ;; mail + "getmail6" + "notmuch" + ;; graphical + "scribus" + "inkscape" + ;; sound + "supercollider" + "tidal" + "ardour" + "audacity" + "qpwgraph" + ;; hardware + "lm-sensors" + "dmidecode" + "lshw" + "hwinfo" + "acpi" + ))) + + (services + (list + + (simple-service 'variant-packages-service + home-channels-service-type + (list + (channel + (name 'nonguix) + (url "https://gitlab.com/nonguix/nonguix") + (branch "master") + (commit + "fe2fcf125cfc5f7284b24cfac50f37feaf74f7b5") + (introduction + (make-channel-introduction + "897c1a470da759236cc11798f4e0a5f7d4d59fbc" + (openpgp-fingerprint + "2A39 3FFF 68F4 EF7A 3D29 12AF 6F51 20A0 22FB B2D5")))) + (channel + (name 'zzkt) + (url "https://gitlab.com/zzkt/guix") + (branch "endless") + (commit + "ef1868ed9bdcf1a49771442e405bd88207b3ab0c") + (introduction + (make-channel-introduction + "fc0ada85de1980e1fc9ee50672d827c0c17c3e7d" + (openpgp-fingerprint + "24A7 4604 91E6 A60F 5BB4 A00F 989F 5E6E DB47 8160")))))) + + (simple-service 'some-useful-env-vars-service + home-environment-variables-service-type + `(("NOTMUCH_PROFILE" . "$HOME/.config/notmuch/notmuch.conf") + ("LD_LIBRARY_PATH" . "$HOME/.guix-profile/lib") + ("SHELL" . ,(file-append zsh "/bin/zsh")))) + + (service home-zsh-service-type + (home-zsh-configuration + ;; configs in $XDG_CONFIG_HOME/zsh + (xdg-flavor? #t) + (environment-variables + '(("HISTFILE" . "$HOME/.config/zsh/.history") + ("HISTSIZE" . "800000") + ("SAVEHIST" . "800000"))) + (zshenv + (list (local-file ".zshenv" "zshenv"))) + (zshrc + (list (local-file ".zshrc" "zshrc"))))) + + (service home-gpg-agent-service-type + (home-gpg-agent-configuration + (pinentry-program + (file-append pinentry-emacs "/bin/pinentry-emacs")) + (ssh-support? #t))) + + (service home-dotfiles-service-type + (home-dotfiles-configuration + (directories (list "dotfiles")))) + + + + (service home-pipewire-service-type + (home-pipewire-configuration + (pipewire "pipewire") + (wireplumber "wireplumber") + (enable-pulseaudio? #t))) + + ;; see -> https://guix.gnu.org/manual/devel/en/html_node/Fonts-Home-Services.html + + ))) ;; end home-environment