From 83055b5e643e210a963d943349ff03387acec6b6 Mon Sep 17 00:00:00 2001 From: Freya Murphy Date: Sat, 10 Aug 2024 21:24:06 -0400 Subject: [PATCH] refactor some things, fix docker --- certs/non-guix.pub | 6 ++ home/config/hypr/config.d/plugins.conf | 6 +- home/home.nix | 4 -- home/home.scm | 47 ++++++++++++++-- modules/freya/packages/librewolf.scm | 59 ++++++++++++++++++++ modules/freya/packages/virtualization.scm | 8 +-- modules/freya/system.scm | 67 +++++------------------ 7 files changed, 127 insertions(+), 70 deletions(-) create mode 100644 certs/non-guix.pub create mode 100644 modules/freya/packages/librewolf.scm diff --git a/certs/non-guix.pub b/certs/non-guix.pub new file mode 100644 index 0000000..32ddac6 --- /dev/null +++ b/certs/non-guix.pub @@ -0,0 +1,6 @@ +(public-key + (ecc + (curve Ed25519) + (q #C1FD53E5D4CE971933EC50C9F307AE2171A2D3B52C804642A7A35F84F3A4EA98#) + ) + ) diff --git a/home/config/hypr/config.d/plugins.conf b/home/config/hypr/config.d/plugins.conf index a7a4de5..83ce9d0 100644 --- a/home/config/hypr/config.d/plugins.conf +++ b/home/config/hypr/config.d/plugins.conf @@ -1,3 +1,3 @@ -exec-once = hyprctl plugin load /run/current-system/profile/lib/libhy3.so -exec-once = hyprctl plugin load /run/current-system/profile/lib/libhyprbars.so -exec-once = hyprctl plugin load /run/current-system/profile/lib/libhyprexpo.so +exec-once = hyprctl plugin load ~/.guix-home/profile/lib/libhy3.so +exec-once = hyprctl plugin load ~/.guix-home/profile/lib/libhyprbars.so +exec-once = hyprctl plugin load ~/.guix-home/profile/lib/libhyprexpo.so diff --git a/home/home.nix b/home/home.nix index e425b7b..f69e6ab 100644 --- a/home/home.nix +++ b/home/home.nix @@ -17,13 +17,9 @@ # environment. home.packages = with pkgs; [ # Main packages - yt-dlp starship discord thunderbirdPackages.thunderbird-115 - slack - cryptomator - pcem cider #steam diff --git a/home/home.scm b/home/home.scm index d2e12ac..749da5b 100644 --- a/home/home.scm +++ b/home/home.scm @@ -18,21 +18,39 @@ (freya services pipewire) (freya packages shells) (freya packages mozillia) + (freya packages librewolf) (freya packages vim) (freya packages gnome-xyz) (freya packages shells) (freya packages certs) + (freya packages wm) + (freya packages linux) + (freya packages networking) (freya packages audio)) (home-environment ;; Below is the list of packages that will show up in your ;; Home profile, unser ~/.guix-home/profile. - (packages (append (specifications->packages (list ; desktop programs + (packages (append (specifications->packages (list ; desktop env + "swayfx" + "swaybg" + "swayidle" + "cage" + "libnotify" + + ; xdg + "xdg-desktop-portal-wlr" + "xdg-desktop-portal-gtk" + + ; gtk + "wxwidgets" + "matcha-theme" + + ; desktop programs "gnome-keyring" "gimp" "ungoogled-chromium" - "librewolf" "steam" ; terminal @@ -88,6 +106,8 @@ "neofetch" "pfetch" "fd" + "yt-dlp" + "pinentry" ; utilities "qbittorrent" @@ -101,6 +121,8 @@ ; programs neovim-new easyeffects + firefox-wayland-new + librewolf-new ; gtk lavanda-gtk-theme @@ -108,7 +130,24 @@ ; shell zsh-autosuggestions - vim-plug))) + vim-plug + + ; desktop + swaylock-effects-new + waybar-new + + ; bluetooth + blueman-new + overskride + + ; hyprwm + hyprland + hyprlock + hyprpaper + hypridle + hyprland-plugin-hy3 + hyprland-plugins + xdg-desktop-portal-hyprland))) ;; Below is the list of Home services. To search for available ;; services, run 'guix home search KEYWORD' in a terminal. @@ -143,8 +182,6 @@ (service home-files-service-type `((".local/share/nvim/site/autoload/plug.vim" ,(file-append vim-plug "/share/vim/plug.vim")) (".ssh/config" ,(local-file "config/ssh/config")) - ;(".gnupg/sshcontrol" ,(local-file "config/gnupg/sshcontrol")) - ;(".gnupg/gpg-agent.conf" ,(local-file "config/gnupg/gpg-agent.conf")) (".local/share/fonts" ,(local-file "local/fonts" #:recursive? #t)) (".local/share/applications" ,(local-file "local/applications" #:recursive? #t)) (".local/share/icons" ,(local-file "local/icons" #:recursive? #t)) diff --git a/modules/freya/packages/librewolf.scm b/modules/freya/packages/librewolf.scm new file mode 100644 index 0000000..d2cb6ad --- /dev/null +++ b/modules/freya/packages/librewolf.scm @@ -0,0 +1,59 @@ +(define-module (freya packages librewolf) + #:use-module ((guix licenses) #:prefix license:) + #:use-module (guix download) + #:use-module (guix packages) + #:use-module (guix build-system trivial) + #:use-module (gnu) + #:use-module (gnu packages bash) + #:use-module (gnu packages linux) + #:use-module (gnu packages librewolf) + #:use-module (freya packages linux)) + +(define-public librewolf-new + (package + (name "librewolf-new") + (source #f) + (version "0.1") + (synopsis "Simple wrapper for pipewire in librewolf") + (description "Simple wrapper for pipewire in librewolf") + (home-page "https://librewolf.net/") + (license license:mpl2.0) + (inputs + `(("bash" ,bash-minimal) + ("pipewire" ,pipewire-new) + ("librewolf" ,librewolf))) + (build-system trivial-build-system) + (arguments + '(#:modules ((guix build utils)) + #:builder + (begin + (use-modules (guix build utils)) + (let* ((bash (assoc-ref %build-inputs "bash")) + (librewolf (assoc-ref %build-inputs "librewolf")) + (pipewire (assoc-ref %build-inputs "pipewire")) + (out (assoc-ref %outputs "out")) + (exe (string-append out "/bin/librewolf"))) + (mkdir-p (dirname exe)) + + (call-with-output-file exe + (lambda (port) + ;; NOTE: added "export LD_LIBRARY_PATH=pipewire" + ;; maybe this can be done better with `wrap-programm' + (format port "#!~a \n +export LD_LIBRARY_PATH=~a \n +export MOZ_ENABLE_WAYLAND=1 \n +export MOZ_USE_XINPUT2=1 \n +exec ~a $@\n" + (string-append bash "/bin/bash") + (string-append pipewire "/lib") + (string-append librewolf "/bin/librewolf")))) + (chmod exe #o555) + + ;; Provide the manual and .desktop file. + (copy-recursively (string-append librewolf "/share") + (string-append out "/share")) + (substitute* (string-append + out "/share/applications/librewolf.desktop") + ((librewolf) out)) + #t)))))) + diff --git a/modules/freya/packages/virtualization.scm b/modules/freya/packages/virtualization.scm index 8f92915..7a19418 100644 --- a/modules/freya/packages/virtualization.scm +++ b/modules/freya/packages/virtualization.scm @@ -8,10 +8,10 @@ #:use-module (guix utils) #:use-module (guix gexp)) -(define-public libvirt-new +(define-public libvirt-ovmf (package (inherit libvirt) - (name "libvirt-new") + (name "libvirt-ovmf") (inputs (modify-inputs (package-inputs libvirt) (append qemu))) @@ -27,10 +27,10 @@ )) )))))) -(define-public virt-manager-new +(define-public virt-manager-ovmf (package (inherit virt-manager) - (name "virt-manager-new") + (name "virt-manager-ovmf") (inputs (modify-inputs (package-inputs virt-manager) (append qemu))) diff --git a/modules/freya/system.scm b/modules/freya/system.scm index bd8e862..7aa8576 100644 --- a/modules/freya/system.scm +++ b/modules/freya/system.scm @@ -30,11 +30,11 @@ #:use-module (nongnu packages linux) #:use-module (srfi srfi-1) #:use-module (freya bootloader uki) - #:use-module (freya packages wm) #:use-module (freya packages certs) #:use-module (freya packages linux) #:use-module (freya packages gl) #:use-module (freya packages qt) + #:use-module (freya packages wm) #:use-module (freya packages networking) #:use-module (freya packages virtualization)) @@ -49,7 +49,6 @@ (keyboard-layout (keyboard-layout "us")) (host-name "ThisWillChange") - ;; The list of user accounts ('root' is implicit). (users (cons* (user-account (name "freya") (comment "Freya Murphy") @@ -59,7 +58,7 @@ (supplementary-groups '("wheel" "audio" "lp" - ;"docker" + "docker" "plugdev" "libvirt" "kvm" @@ -68,14 +67,7 @@ "tty"))) %base-user-accounts)) - (packages (append (specifications->packages (list ; desktop - "swayfx" - "swaybg" - "swayidle" - "cage" - "libnotify" - - ; gtk + (packages (append (specifications->packages (list ; gtk "wxwidgets" "gtk+" "dconf" @@ -106,8 +98,6 @@ ; xdg "xdg-utils" "xdg-desktop-portal" - "xdg-desktop-portal-wlr" - "xdg-desktop-portal-gtk" ; firmware "sof-firmware" @@ -116,7 +106,7 @@ ; needed programs "qemu" - "pulseaudio" + "pulseaudio" ; pactl "alsa-utils" "neovim" @@ -140,16 +130,13 @@ "openssl" ; system daemons - "chrony" "docker" "containerd" "avahi" "gnupg" - "pinentry" "light" "brightnessctl" "wireguard-tools" - "fprintd" "libpcap" ; fonts @@ -157,40 +144,21 @@ "font-google-noto-sans-cjk" "font-jetbrains-mono" "font-dejavu")) - (list ; desktop - swaylock-effects-new - waybar-new - - ; hyprwm - hyprland - hyprlock - hyprpaper - hypridle - hyprland-plugin-hy3 - hyprland-plugins - xdg-desktop-portal-hyprland - - ; qt + (list ; qt qt5-styleplugins qt6gtk2 ; bluetooth bluez-new - blueman-new - overskride ; system - virt-manager-new + virt-manager-ovmf freya-ca-certs mesa) %base-packages)) - ;; Below is the list of system services. TO search for available - ;; services. run 'guix system search KEYWORD' in a terminal. (services (append (list - ;; To configure OpenSSH, pass an 'openssh-configuration' - ;; record as a second argument to 'service' below. (service openssh-service-type) (service pcscd-service-type) (service spice-vdagent-service-type) @@ -200,17 +168,16 @@ (service cups-service-type (cups-configuration (web-interface? #t))) - ;; Avahi is only present for CUPS to support "automagic" printing (service avahi-service-type (avahi-configuration - (publish? #f) ;; do not advertise this machiene - (publish-workstation? #f))) ; do not advertise, I want this to be as silent as possible - ;(service docker-service-type) - ;(service chrony-sericve-type) + (publish? #f) + (publish-workstation? #f))) + (service docker-service-type) + (service containerd-service-type) (service nix-service-type) (service libvirt-service-type (libvirt-configuration - (libvirt libvirt-new) + (libvirt libvirt-ovmf) (unix-sock-group "libvirt") (tls-port "16555"))) (service virtlog-service-type) @@ -220,11 +187,8 @@ (experimental #t) (fast-connectable? #t))) (service pam-limits-service-type) - (service fprintd-service-type) (udev-rules-service 'fido2 libfido2 #:groups '("plugdev"))) - ;; This is the default list of services we - ;; are appending to. (modify-services %desktop-services (guix-service-type config => (guix-configuration @@ -233,13 +197,8 @@ (append (list "https://substitutes.nonguix.org") %default-substitute-urls)) (authorized-keys - (cons* (plain-file "non-guix.pub" - "(public-key - (ecc - (curve Ed25519) - (q #C1FD53E5D4CE971933EC50C9F307AE2171A2D3B52C804642A7A35F84F3A4EA98#) - ) - )" ) %default-authorized-guix-keys)))) + (append (list (local-file "../../certs/non-guix.pub")) + %default-authorized-guix-keys)))) (udev-service-type config => (udev-configuration (inherit config)))