aboutsummaryrefslogtreecommitdiff
path: root/tw/home
diff options
context:
space:
mode:
Diffstat (limited to 'tw/home')
-rw-r--r--tw/home/lap.scm353
1 files changed, 174 insertions, 179 deletions
diff --git a/tw/home/lap.scm b/tw/home/lap.scm
index 085cf408..f7439a21 100644
--- a/tw/home/lap.scm
+++ b/tw/home/lap.scm
@@ -22,6 +22,8 @@
;; https://github.com/catppuccin/github
(define-module (tw home lap)
+ #:use-module ((gnu)
+ #:select (use-package-modules))
#:use-module (gnu home)
#:use-module (gnu home services)
#:use-module (gnu home services desktop)
@@ -35,8 +37,24 @@
#:use-module (gnu services)
#:use-module (gnu services shepherd)
#:use-module (guix channels)
+ #:use-module (guix gexp)
#:use-module (guix modules)
- #:use-module (guix gexp))
+ #:use-module ((nongnu packages messaging)
+ #:select (signal-desktop zoom))
+ #:use-module (tw packages alice)
+ #:use-module (tw packages catppuccin)
+ #:use-module (tw packages games)
+ #:use-module (tw packages shell)
+ #:use-module (tw packages xorg))
+
+(use-package-modules
+ admin android base bittorrent calendar cmake compression compton curl
+ databases dav disk dns dunst emacs emacs-xyz file finance fonts freedesktop
+ games gimp gnome gnome-xyz gnupg gnuzilla graphviz haskell-apps imagemagick
+ inkscape kde less libreoffice linux lisp llvm mail maths messaging music
+ networking password-utils pdf pretty-print pulseaudio pv python python-xyz
+ rsync shells shellutils sqlite ssh syndication tcl terminals textutils tmux
+ video version-control vim web web-browsers wm xdisorg xorg)
(fluid-set! read-eval? #t) ; allow #. read expansions in this file
@@ -51,11 +69,6 @@
;; https://github.com/catppuccin/catppuccin).
(define catppuccin-background-color "1e1e2e")
-(define* (package-binary specification #:optional (binary specification))
- "Get the path of BINARY inside the package referred to by SPECIFICATION."
- (file-append (specification->package specification)
- (string-append "/bin/" binary)))
-
;; See also: `file-join' in (gnu home services ssh).
(define (combined-text-file name . files)
"A file which is the concatenation of the contents of other files."
@@ -74,61 +87,32 @@
(dump-port iport oport))))
'#$files)))))))
-(define (text-file/substitutions name input-file . substitutions)
- "A file containing another file's content with regexp substitutions.
-Each item in SUBSTITUTIONS is a `cons' of a regular expression and a
-replacement spec (to which `regexp-substitute/global' is applied)."
- (computed-file name
- #~(begin
- (use-modules (ice-9 regex)
- (ice-9 textual-ports))
- (call-with-output-file #$output
- (lambda (oport)
- (call-with-input-file #$input-file
- (lambda (iport)
- (let loop ((output (get-string-all iport))
- (substitutions '#$substitutions))
- (if (null? substitutions)
- (put-string oport output)
- (loop (call-with-output-string
- (lambda (sport)
- (apply regexp-substitute/global
- sport
- (caar substitutions)
- output
- (cdar substitutions))))
- (cdr substitutions)))))))))))
-
(define gui-packages
- '(;; i3 and Xorg. i3 itself must be installed system-wide for gdm to pick it up.
- ;; acpilight is a drop-in xbacklight replacement, as xbacklight doesn't work on my system.
- "acpilight" "arandr" "blueman" "dunst" "gnupg" "gimp" "hsetroot"
- "inkscape" "icecat" "kdeconnect" "kitty" "libreoffice" "mpv" "nheko"
- "password-store" "pass-otp" "polybar" "rofi" "rofi-calc" "signal-desktop"
- "simple-scan" "transmission-remote-gtk" "xdg-utils" "xdot" "xclip" "xdotool"
- "xdpyinfo" "xev" "xfd" "xfontsel" "xinput" "xkill" "xprop" "xrandr" "xrdb"
- "xsel" "xset" "xwininfo" "zoom" "zathura" "zathura-ps" "zathura-pdf-poppler"
- "dconf" "dconf-editor" ; required for config by blueman, cozy, ...
- ;; "gnome-keyring" ; installed system-wide; see system-configuration.scm
- ;; "geoclue" ; for redshift -- installed system-wide
- ;; Games
- "0ad" "freeciv" "warzone2100" "widelands" ; "pioneer"
- ;; Fonts
- "font-hermit" "font-inconsolata" "font-fira-code" "font-fira-sans"
- "font-libertinus" "font-openmoji"
- ;; Theming
- "papirus-icon-theme"
- ;; My own packages -- needs GUIX_PACKAGE_PATH to be set; see below.
- "catppuccin-gtk-theme"
- "catppuccin-mocha-dark-cursors"
- "simutrans"))
+ (list
+ ;; i3 and Xorg. i3 itself must be installed system-wide for gdm to pick it up.
+ ;; acpilight is a drop-in xbacklight replacement, as xbacklight doesn't work on my system.
+ acpilight arandr blueman dunst gnupg gimp hsetroot inkscape icecat
+ kdeconnect kitty libreoffice mpv nheko password-store pass-otp polybar rofi
+ rofi-calc signal-desktop simple-scan transmission-remote-gtk xdg-utils xdot
+ xclip xdotool xdpyinfo xev xfd xfontsel xinput xkill xprop xrandr xrdb xsel
+ xset xwininfo zoom zathura zathura-ps zathura-pdf-poppler
+ dconf dconf-editor ; required for config by blueman, cozy, ...
+ ;; gnome-keyring ; installed system-wide; see system-configuration.scm
+ ;; geoclue ; for redshift -- installed system-wide
+ ;; Games
+ 0ad freeciv simutrans/pak128 warzone2100 widelands ; pioneer
+ ;; Fonts
+ font-hermit font-inconsolata font-fira-code font-fira-sans
+ font-libertinus font-openmoji
+ ;; Theming
+ papirus-icon-theme catppuccin-gtk-theme catppuccin-mocha-dark-cursors))
(define (polybar-service monitor)
(shepherd-service
(documentation (string-append "Polybar desktop bar for monitor" monitor "."))
(provision (list (string->symbol (string-append "polybar-" monitor))))
(start #~(make-forkexec-constructor
- (list #$(package-binary "polybar"))
+ (list #$(file-append polybar "/bin/polybar"))
#:environment-variables
(cons #$(string-append "POLYBAR_MONITOR=" monitor)
(default-environment-variables))))
@@ -167,21 +151,20 @@ replacement spec (to which `regexp-substitute/global' is applied)."
(provision '(kdeconnect-applet))
(requirement '(kdeconnectd))
(start #~(make-forkexec-constructor
- (list #$(package-binary "kdeconnect" "kdeconnect-indicator"))))
+ (list #$(file-append kdeconnect "/bin/kdeconnect-indicator"))))
(stop #~(make-kill-destructor)))
(shepherd-service
(documentation "KDE connect daemon.")
(provision '(kdeconnectd))
(start #~(make-forkexec-constructor
- (list #$(file-append (specification->package "kdeconnect")
- (string-append "/libexec/kdeconnectd")))))
+ (list #$(file-append kdeconnect "/libexec/kdeconnectd"))))
(stop #~(make-kill-destructor)))
(shepherd-service
(documentation "Blueman applet; provides a GUI for connection to bluetooth devices.")
(provision '(blueman-applet))
(start #~(make-forkexec-constructor
- (list #$(package-binary "blueman" "blueman-applet"))))
+ (list #$(file-append blueman "/bin/blueman-applet"))))
(stop #~(make-kill-destructor)))
(polybar-service "eDP-1")
@@ -191,14 +174,14 @@ replacement spec (to which `regexp-substitute/global' is applied)."
(documentation "Dunst notification daemon; displays desktop notifications.")
(provision '(dunst))
(start #~(make-forkexec-constructor
- (list #$(package-binary "dunst"))))
+ (list #$(file-append dunst "/bin/dunst"))))
(stop #~(make-kill-destructor)))
(shepherd-service
(documentation "Picom compositor; enables transparent windows in X.")
(provision '(picom))
(start #~(make-forkexec-constructor
- (list #$(package-binary "picom") "--experimental-backends"
+ (list #$(file-append picom "/bin/picom") "--experimental-backends"
"--config" #$(local-file "files/picom.conf"))))
(stop #~(make-kill-destructor)))
@@ -207,7 +190,7 @@ replacement spec (to which `regexp-substitute/global' is applied)."
(provision '(xrdb))
(one-shot? #t)
(start #~(lambda _
- (invoke #$(package-binary "xrdb") "-merge"
+ (invoke #$(file-append xrdb "/bin/xrdb") "-merge"
(string-append (getenv "XDG_CONFIG_HOME") "/X11/Xresources")))))
;; By default, xdotool gets most of "#@\|~()<>[]{} wrong. Make
@@ -220,12 +203,14 @@ replacement spec (to which `regexp-substitute/global' is applied)."
(use-modules (ice-9 rdelim)
(ice-9 regex)
(ice-9 popen))
- (let ((port (open-pipe* OPEN_READ #$(package-binary "setxkbmap") "-query")))
+ (let ((port (open-pipe* OPEN_READ #$(file-append setxkbmap "/bin/setxkbmap")
+ "-query")))
(let loop ((line (read-line port)))
(unless (eof-object? line)
(let ((mtch (string-match "^layout:[[:space:]]*" line)))
(if mtch
- (system* #$(package-binary "setxkbmap") (match:suffix mtch))
+ (system* #$(file-append setxkbmap "/bin/setxkbmap")
+ (match:suffix mtch))
(loop (read-line port))))))))))
(shepherd-service
@@ -233,10 +218,10 @@ replacement spec (to which `regexp-substitute/global' is applied)."
(provision '(xorg-setup))
(one-shot? #t)
(start #~(lambda _
- (invoke #$(package-binary "numlockx") "on")
+ (invoke #$(file-append numlockx "/bin/numlockx") "on")
;; Turn off the monitors if there is no input for 10 minutes.
- (invoke #$(package-binary "xset") "dpms" "600" "600" "600")
- (invoke #$(package-binary "xrandr")
+ (invoke #$(file-append xset "/bin/xset") "dpms" "600" "600" "600")
+ (invoke #$(file-append xrandr "/bin/xrandr")
"--output" "eDP-1" "--auto"
;; Don't use --auto for this monitor. That
;; configures it at 60 Hz, which causes
@@ -245,7 +230,7 @@ replacement spec (to which `regexp-substitute/global' is applied)."
"--right-of" "eDP-1")
;; Set the desktop background picture. Hopefully doing this just after
;; xrandr works and sets it for both screens.
- (invoke #$(package-binary "hsetroot") "-cover"
+ (invoke #$(file-append hsetroot "/bin/hsetroot") "-cover"
(string-append (getenv "HOME")
"/pictures/Backgrounds/greece/IMG_20181201_104748_DRO.jpg")))))))
@@ -260,13 +245,14 @@ replacement spec (to which `regexp-substitute/global' is applied)."
("emacs/include" ,(local-file "files/emacs-packages" #:recursive? #t))
("emacs/init.el" ,(local-file "files/emacs-init.el"))
(#.(string-append "emacs/catppuccin-" catppuccin-theme-variant "-theme.el")
- ,(local-file #.(string-append "files/catppuccin/emacs/catppuccin-"
- catppuccin-theme-variant "-theme.el")))
+ ,(local-file #.(string-append "files/catppuccin/emacs/catppuccin-"
+ catppuccin-theme-variant "-theme.el")))
("gtk-2.0/gtkrc" ,(local-file "files/gtk2.ini"))
("gtk-3.0/settings.ini" ,(local-file "files/gtk3.ini"))
("i3/config" ,(local-file "files/i3.conf"))
- ("kdeglobals" ; TODO: this works for some programs (e.g. kdeconnect-app),
- ; but not for others (e.g. nheko, kdeconnect-settings)...
+ ;; TODO: "kdeglobals" works for some programs (e.g. kdeconnect-app),
+ ;; but not for others (e.g. nheko, kdeconnect-settings)...
+ ("kdeglobals"
,(local-file #.(let ((variant (string-upcase catppuccin-theme-variant 0 1)))
(string-append "files/catppuccin/kde/" variant
"/Catppuccin" variant ".colors"))))
@@ -286,11 +272,18 @@ replacement spec (to which `regexp-substitute/global' is applied)."
catppuccin-theme-variant ".ini")))
("rofi/config.rasi" ,(local-file "files/rofi.rasi"))
("rofi/themes/catppuccin.rasi"
- ,(text-file/substitutions "catppuccin.rasi"
- (local-file #.(string-append "files/catppuccin/rofi/basic/.local/share/rofi/themes/catppuccin-"
- catppuccin-theme-variant ".rasi"))
- '("JetBrainsMono Nerd Font 14" pre "Fira Sans 12" post) ; default font
- '("border-col: #[0-9a-f]*;" pre "border-col: #585b70;" post))) ; i3 border colour
+ ,(computed-file "catppuccin.rasi"
+ (with-imported-modules (source-module-closure
+ '((guix build utils)))
+ #~(begin
+ (use-modules (guix build utils))
+ (copy-file #$(local-file #.(string-append
+ "files/catppuccin/rofi/basic/.local/share/rofi/themes/catppuccin-"
+ catppuccin-theme-variant ".rasi"))
+ #$output)
+ (substitute* #$output
+ (("JetBrainsMono Nerd Font 14") "Fira Sans 12") ; default font
+ (("border-col: #[0-9a-f]*;") "border-col: #585b70;")))))) ; i3 border colour
("zathura/zathurarc" ,(local-file "files/zathurarc"))
("zathura/catppuccin"
,(local-file #.(string-append "files/catppuccin/zathura/src/catppuccin-"
@@ -316,22 +309,22 @@ replacement spec (to which `regexp-substitute/global' is applied)."
'gui-scripts home-files-service-type
`(;; https://sw.kovidgoyal.net/kitty/kittens/diff/
(".local/bin/kdiff" ; show a diff
- ,(program-file "kdiff" #~(apply execl #$(package-binary "kitty") "kitty"
+ ,(program-file "kdiff" #~(apply execl #$(file-append kitty "/bin/kitty") "kitty"
"+kitten" "diff" (cdr (command-line)))))
(".local/bin/icat" ; kitty's "catimg" equivalent
- ,(program-file "icat" #~(apply execl #$(package-binary "kitty") "kitty"
+ ,(program-file "icat" #~(apply execl #$(file-append kitty "/bin/kitty") "kitty"
"+kitten" "icat" (cdr (command-line)))))
(".local/bin/screenlock"
,(program-file
"screenlock"
#~(begin ; Wrapper around i3lock to turn off the screen and pause notifications.
- (system* #$(package-binary "dunst" "dunstctl") "set-paused" "true")
- (system* #$(package-binary "xset") "dpms" "0" "0" "5")
- ;; We mustn't use `package-binary' here, as we have to pick up the
+ (system* #$(file-append dunst "/bin/dunstctl") "set-paused" "true")
+ (system* #$(file-append xset "/bin/xset") "dpms" "0" "0" "5")
+ ;; We mustn't use `file-append' here, as we have to pick up the
;; setuid binary for i3lock installed by the system config.
(system* "i3lock" "-nc" #$catppuccin-background-color)
- (system* #$(package-binary "xset") "dpms" "0" "0" "0")
- (system* #$(package-binary "dunst" "dunstctl") "set-paused" "false"))))
+ (system* #$(file-append xset "/bin/xset") "dpms" "0" "0" "0")
+ (system* #$(file-append dunst "/bin/dunstctl") "set-paused" "false"))))
;; With #:recursive? #t, Guix keeps the files' permission bits, i.e. makes them executable.
(".local/bin/sessionmenu" ,(local-file "files/sessionmenu" #:recursive? #t)) ; rofi logout/reboot menu
(".local/bin/passmenu" ,(local-file "files/passmenu" #:recursive? #t)) ; rofi passwords menu
@@ -340,96 +333,98 @@ replacement spec (to which `regexp-substitute/global' is applied)."
(home-environment
(packages
;; These packages will show up in the home profile, under ~/.guix-home/profile.
- `(;; Install only bind-utils like dig, not the full suite.
- (,(specification->package "bind") "utils")
- ,@(specifications->packages gui-packages)
- ,@(specifications->packages
- '(;; CLI tools
- "adb" "beets" "curl" "dos2unix" "fdupes" "file" "fzf" "git"
- "gnuplot" "graphviz" "hledger" "imagemagick" "jq" "lesspipe"
- "nvme-cli" "openssh" "powertop" "pulsemixer" "pv" "python"
- "python-ipython" "recutils" "rsync" "sbcl" "smartmontools"
- "source-highlight" "tk" "tmux" "tree" "xxd" "zip" "unzip"
- "get-iplayer" "ffmpeg" "atomicparsley" "yt-dlp"
- "neomutt" "mailcap" "lynx" ; mail (lynx for HTML mail)
- "newsboat" "vdirsyncer" "khal" "khard"
-
- ;; Ranger can do code highlighting using python-pygments and
- ;; image previews in kitty using python-pillow.
- "ranger" "python-pygments" "python-pillow" "mediainfo" "python-pdftotext"
- "xcwd" ; my own package
-
- ;; Work
- "s3cmd" "python-alibuild" ; "python-alidistlint"
-
- ;; Shell
- "zsh" "zsh-autosuggestions" "zsh-syntax-highlighting" "zsh-autopair"
- "zsh-completions" ; my own package
-
- ;; Development & language servers
- "make"
- "shellcheck"
- "clang" ; for clangd
- "python-lsp-server"
- ;; Supported OotB by eglot, but not packaged by guix:
- ;; https://github.com/mads-hartmann/bash-language-server
- ;; https://github.com/regen100/cmake-language-server
- ;; https://github.com/hrsh7th/vscode-langservers-extracted ; {html,css,json}-languageserver
- ;; https://github.com/golang/tools/tree/master/gopls ; maybe?
- ;; https://github.com/artempyanykh/marksman ; Markdown
- ;; https://github.com/jeapostrophe/racket-langserver
- ;; https://github.com/astoff/digestif ; (La)TeX
- ;; https://github.com/redhat-developer/yaml-language-server
- ;; Needs eglot config + not packaged (from lsp-mode):
- ;; https://github.com/graphql/graphiql/tree/main/packages/graphql-language-service-cli#readme
- ;; https://github.com/haskell/haskell-language-server / https://github.com/haskell/ghcide
- ;; https://github.com/eclipse/lemminx
-
- ;; Emacs
- "emacs"
- "emacs-use-package"
- "emacs-eglot"
- "emacs-counsel"
- "emacs-counsel-dash" "sqlite" ; emacs-counsel-dash requires the sqlite3 binary
- "emacs-ivy"
- ;; "emacs-company" "emacs-company-quickhelp" "emacs-company-posframe"
- "emacs-corfu" "emacs-corfu-doc"
- "emacs-autothemer" ; for catppuccin/emacs
- "emacs-undo-tree"
- "emacs-aggressive-indent"
- "emacs-which-key"
- "emacs-smart-mode-line"
- "emacs-diminish"
- "emacs-rainbow-mode"
- "emacs-guix"
- ;; TODO: "emacs-editorconfig" "emacs-sly" "emacs-sly-macrostep"
- "emacs-org" ; "emacs-org-modern" theme?
-
- "emacs-evil"
- "emacs-evil-collection"
- "emacs-evil-expat" ; for :reverse, :remove, :rename, :colo, :g*, ... ex commands
- "emacs-evil-surround"
- ;; "emacs-evil-owl" ; tests failing
- "emacs-evil-args"
- "emacs-evil-numbers"
- "emacs-evil-multiedit"
- "emacs-evil-goggles"
- "emacs-evil-traces"
- "emacs-evil-commentary"
- "emacs-evil-replace-with-register"
- "emacs-evil-org"
- "emacs-evil-markdown"
- "emacs-evil-tex"
- "emacs-evil-text-object-python"
-
- "emacs-geiser" "emacs-geiser-racket" "emacs-geiser-guile"
- ;; "emacs-macrostep-geiser"
- "emacs-flymake-collection" ; "emacs-flymake-flycheck" ; if needed
- "emacs-cmake-mode" "emacs-gnuplot" "emacs-graphviz-dot-mode"
- "emacs-hcl-mode" "emacs-ledger-mode" "emacs-mmm-mode"
- "emacs-puppet-mode" "emacs-rec-mode" "emacs-web-mode"
- "emacs-yaml-mode"))))
-
+ (cons*
+ ;; CLI tools
+ adb beets curl dos2unix fdupes file fzf git
+ gnuplot graphviz hledger imagemagick jq lesspipe
+ nvme-cli openssh powertop pulsemixer pv python
+ python-ipython recutils rsync sbcl smartmontools
+ source-highlight tk tmux tree xxd zip unzip
+ get-iplayer ffmpeg atomicparsley yt-dlp
+ neomutt mailcap lynx ; mail (lynx for HTML mail)
+ newsboat vdirsyncer khal khard
+
+ ;; Install only bind-utils like dig, not the full suite.
+ (list isc-bind "utils")
+
+ ;; Ranger can do code highlighting using python-pygments and
+ ;; image previews in kitty using python-pillow.
+ ranger python-pygments python-pillow mediainfo python-pdftotext
+ xcwd ; my own package
+
+ ;; Work
+ s3cmd python-alibuild ; python-alidistlint
+
+ ;; Shell
+ zsh zsh-autosuggestions zsh-syntax-highlighting zsh-autopair
+ zsh-completions ; my own package
+
+ ;; Development & language servers
+ gnu-make
+ shellcheck
+ clang ; for clangd
+ python-lsp-server
+ ;; Supported OotB by eglot, but not packaged by guix:
+ ;; https://github.com/mads-hartmann/bash-language-server
+ ;; https://github.com/regen100/cmake-language-server
+ ;; https://github.com/hrsh7th/vscode-langservers-extracted ; {html,css,json}-languageserver
+ ;; https://github.com/golang/tools/tree/master/gopls ; maybe?
+ ;; https://github.com/artempyanykh/marksman ; Markdown
+ ;; https://github.com/jeapostrophe/racket-langserver
+ ;; https://github.com/astoff/digestif ; (La)TeX
+ ;; https://github.com/redhat-developer/yaml-language-server
+ ;; Needs eglot config + not packaged (from lsp-mode):
+ ;; https://github.com/graphql/graphiql/tree/main/packages/graphql-language-service-cli#readme
+ ;; https://github.com/haskell/haskell-language-server / https://github.com/haskell/ghcide
+ ;; https://github.com/eclipse/lemminx
+
+ ;; Emacs
+ emacs
+ emacs-use-package
+ emacs-eglot
+ emacs-counsel
+ emacs-counsel-dash sqlite ; emacs-counsel-dash requires the sqlite3 binary
+ emacs-ivy
+ ;; emacs-company emacs-company-quickhelp emacs-company-posframe
+ emacs-corfu emacs-corfu-doc
+ emacs-autothemer ; for catppuccin/emacs
+ emacs-undo-tree
+ emacs-aggressive-indent
+ emacs-which-key
+ emacs-smart-mode-line
+ emacs-diminish
+ emacs-rainbow-mode
+ emacs-guix
+ ;; TODO: emacs-editorconfig emacs-sly emacs-sly-macrostep
+ emacs-org ; emacs-org-modern theme?
+
+ emacs-evil
+ emacs-evil-collection
+ emacs-evil-expat ; for :reverse, :remove, :rename, :colo, :g*, ... ex commands
+ emacs-evil-surround
+ ;; emacs-evil-owl ; tests failing
+ emacs-evil-args
+ emacs-evil-numbers
+ emacs-evil-multiedit
+ emacs-evil-goggles
+ emacs-evil-traces
+ emacs-evil-commentary
+ emacs-evil-replace-with-register
+ emacs-evil-org
+ emacs-evil-markdown
+ emacs-evil-tex
+ emacs-evil-text-object-python
+
+ emacs-geiser emacs-geiser-racket emacs-geiser-guile
+ ;; emacs-macrostep-geiser
+ emacs-flymake-collection ; emacs-flymake-flycheck ; if needed
+ emacs-cmake-mode emacs-gnuplot emacs-graphviz-dot-mode
+ emacs-hcl-mode emacs-ledger-mode emacs-mmm-mode
+ emacs-puppet-mode emacs-rec-mode emacs-web-mode
+ emacs-yaml-mode
+
+ gui-packages))
+
;; To search for available home services, run 'guix home search KEYWORD'.
(services
(cons*
@@ -441,13 +436,13 @@ replacement spec (to which `regexp-substitute/global' is applied)."
(documentation "Emacs server; connect using emacsclient.")
(provision '(emacs))
(start #~(make-forkexec-constructor
- (list #$(package-binary "emacs") "--fg-daemon")))
+ (list #$(file-append emacs "/bin/emacs") "--fg-daemon")))
(stop #~(make-kill-destructor)))
(shepherd-service
(documentation "GPG agent; caches key passwords.")
(provision '(gpg-agent))
(start #~(lambda _
- (invoke #$(package-binary "gnupg" "gpg-agent")
+ (invoke #$(file-append gnupg "/bin/gpg-agent")
"--daemon" "--no-detach")))
(stop #~(lambda _
(invoke "gpg-connect-agent" "killagent" "/bye"))))))
@@ -455,9 +450,9 @@ replacement spec (to which `regexp-substitute/global' is applied)."
(simple-service
'terminal-cronjobs home-mcron-service-type
(list #~(job "15 */2 * * *" ; every two hours at HH:15
- (string-append #$(package-binary "vdirsyncer") " metasync"))
+ (string-append #$(file-append vdirsyncer "/bin/vdirsyncer") " metasync"))
#~(job "0,30 * * * *" ; every half hour
- (string-append #$(package-binary "vdirsyncer") " sync"))))
+ (string-append #$(file-append vdirsyncer "/bin/vdirsyncer") " sync"))))
;; Configuration files for terminal-only programs in $XDG_CONFIG_HOME.
(service
@@ -500,7 +495,7 @@ replacement spec (to which `regexp-substitute/global' is applied)."
(".local/share/gnupg/gpg.conf" ,(local-file "files/gpg.conf"))
(".local/share/gnupg/gpg-agent.conf"
,(mixed-text-file "gpg-agent.conf" "\
-pinentry-program " (package-binary "pinentry-rofi") "
+pinentry-program " (file-append pinentry-rofi "/bin/pinentry-rofi") "
# Needed if spawning lots of parallel gpg --decrypt processes. https://dev.gnupg.org/T3530
auto-expand-secmem
"))))
@@ -514,7 +509,7 @@ auto-expand-secmem
'terminal-environment-variables home-environment-variables-service-type
`(;; Path to my own package definitions. If invoking `guix home'
;; afresh, this needs to be set manually to find these packages.
- ("GUIX_PACKAGE_PATH" . "$HOME/src/packages/guix")
+ ("GUIX_PACKAGE_PATH" . "$HOME/src/guix-decls")
;; Prepend my own binaries to $PATH. These should probably all
;; be managed through `home-files-service-type'.