From 73af89d935df5a8166114c9257f9f247f29850bf Mon Sep 17 00:00:00 2001 From: jdlugosz963 Date: Fri, 26 Apr 2024 18:21:56 +0200 Subject: Migrate from stumpwm to sway and from manifests to home-services. --- guix/jd/home/services/desktop.scm | 178 +++++++++++++++++++++++++++++++------- 1 file changed, 146 insertions(+), 32 deletions(-) (limited to 'guix/jd/home/services/desktop.scm') diff --git a/guix/jd/home/services/desktop.scm b/guix/jd/home/services/desktop.scm index bb4916e..c53377f 100644 --- a/guix/jd/home/services/desktop.scm +++ b/guix/jd/home/services/desktop.scm @@ -4,51 +4,165 @@ #:use-module (gnu packages networking) #:use-module (gnu packages syncthing) #:use-module (gnu packages gnome) + #:use-module (gnu packages gnupg) #:use-module (gnu services) #:use-module (gnu services configuration) #:use-module (gnu home services) #:use-module (gnu home services shepherd) #:use-module (gnu home services desktop) + #:use-module (gnu home services sound) + #:use-module (gnu home services xdg) + #:use-module (gnu home services gnupg) #:use-module (guix gexp)) (define (desktop-profile-service config) - (specifications->packages '("udiskie" + (specifications->packages '(;; sway + "swayfx" + "swaylock" + "swayidle" + "waybar" + "fuzzel" + "foot" + "mako" + "wl-clipboard" + "wlsunset" + "grimshot" + + "udiskie" + ;; rest + "qutebrowser" + "ungoogled-chromium" + "firefox" + "tor-client" + "signal-desktop" + + "pulsemixer" + "pavucontrol" + "alsa-utils" + + "virt-manager" + + "flatpak" + "redshift" + "fontmanager" + + "polybar" + + "blueman" + + "xdg-utils" + "xdg-dbus-proxy" + "xdg-desktop-portal-gtk" + "xdg-desktop-portal-wlr" + "glib:bin" + "gtk+:bin" + "gnome-keyring" + "shared-mime-info" + "libnotify" + "dconf" + "hicolor-icon-theme" + + "dunst" + + "gimp" + "inkscape" + + "mpv" + "youtube-dl" + + "pamixer" + "playerctl" + "scrot" + "brightnessctl" + "upower" + "tlp" + "feh" + "alacritty" + + "curl" + "wget" + "zip" + "unzip" + "qrencode" + "trash-cli" + "pandoc" + "password-store" + "oath-toolkit" + ;; "pinentry" + + "syncthing" "syncthing-gtk" - "network-manager-applet"))) - -(define (desktop-shepherd-services config) - (list (shepherd-service - (documentation "Udiskie daemon with tray.") - (provision '(udiskie)) - (start #~(make-forkexec-constructor - (list #$(file-append udiskie - "/bin/udiskie") - "-t"))) - (stop #~(make-kill-destructor))) - - (shepherd-service - (documentation "Syncthing daemon with tray.") - (provision '(syncthing-gtk)) - (start #~(make-forkexec-constructor - (list #$(file-append syncthing-gtk - "/bin/syncthing-gtk") - "-m"))) - (stop #~(make-kill-destructor))) - - (shepherd-service - (documentation "NetworkManager tray.") - (provision '(nm-applet)) - (start #~(make-forkexec-constructor - (list #$(file-append network-manager-applet - "/bin/nm-applet")))) - (stop #~(make-kill-destructor))))) + + "xmodmap" + "xrandr" + "arandr" + "xss-lock" + "libinput" + "xinput" + "xprop" + "rlwrap" + + "nheko" + "quassel"))) + +(define (desktop-environment-variables-service config) + `(("GTK_THEME" . "Adwaita:dark") + ("VISUAL" . "emacsclient") + ("EDITOR" . "emacsclient") + ("PATH" . "$HOME/.bin:$HOME/.npm-global/bin:$PATH") + ("XDG_DATA_DIRS" . "$XDG_DATA_DIRS:$HOME/.local/share/flatpak/exports/share") + ("SBCL_HOME" . "/run/current-system/profile/lib/sbcl/") + + ;; Set Wayland-specific environment variables (taken from RDE) + ("XDG_CURRENT_DESKTOP" . "sway") + ("XDG_SESSION_TYPE" . "wayland") + ("RTC_USE_PIPEWIRE" . "true") + ("SDL_VIDEODRIVER" . "wayland") + ("MOZ_ENABLE_WAYLAND" . "1") + ("CLUTTER_BACKEND" . "wayland") + ("ELM_ENGINE" . "wayland_egl") + ("ECORE_EVAS_ENGINE" . "wayland-egl") + ("QT_QPA_PLATFORM" . "wayland-egl"))) + +(define (desktop-xdg-mime-applications-service config) + (home-xdg-mime-applications-configuration + (default '((inode/directory . emacsclient.desktop) + (application/pdf . emacsclient.desktop) + (x-scheme-handler/http= . firefox.desktop) + (x-scheme-handler/https= . firefox.desktop))) + ;; (desktop-entries + ;; (list (xdg-desktop-entry + ;; (file "emacs-desktop") + ;; (name "Emacs") + ;; (type 'application) + ;; (config + ;; '((exec . "emacsclient -a emacs %u")))))) + )) + +(define (desktop-gpg-agent-service config) + (home-gpg-agent-configuration + (pinentry-program + (file-append pinentry-gnome3 "/bin/pinentry-gnome3")) + (ssh-support? #t) + (default-cache-ttl 28800) + (max-cache-ttl 28800) + (default-cache-ttl-ssh 28800) + (max-cache-ttl-ssh 28800))) + (define-public home-desktop-service-type - (service-type (name 'home-udiskie) + (service-type (name 'home-desktop) (extensions (list (service-extension home-profile-service-type desktop-profile-service) - (service-extension home-shepherd-service-type - desktop-shepherd-services))) + (service-extension home-environment-variables-service-type + desktop-environment-variables-service) + (service-extension home-pipewire-service-type + (lambda (_) (home-pipewire-configuration))) + (service-extension home-xdg-mime-applications-service-type + desktop-xdg-mime-applications-service) + (service-extension home-gpg-agent-service-type + desktop-gpg-agent-service) + )) (default-value #f) (description "Runs desktop services."))) -- cgit v1.2.3