commit - 423929f93070d59381f38587cd2ed256481a8e9e
commit + da75185780bfce2232e751da3aa84fcca28a470a
blob - 1ea1666b5e87c42b07abaeb879978beb74ce19fc
blob + 7a1f15778b323ce7d30333147de4a8a06d477ed9
--- hosts/void/default.nix
+++ hosts/void/default.nix
yq
jdupes
plakar
- recoll
];
vcs = [
prr
tig
dura
- stgit
got
+ mercurial
];
net = [
rsync
openrsync
iperf3
- sshuttle
sshs
bore-cli
ldns
tealdeer
];
- nix = [
- nixd
- cachix
- ];
-
beam = lib.concatLists [
(with beamMinimal29Packages; [rebar3 erlang erlang-language-platform])
[gleam]
gui = [
picard
xnviewmp
- freerdp
- sioyek
- halloy
- avidemux
- supersonic-wayland
];
llm = [
other = [
babashka
- guile
haunt
- go_1_26
+ go
gopls
zls
rustup
nim
+ nixd
+ gnu-shepherd
];
}));
}
blob - d7890f835d0920aa84eff1ca11382994d8849dfc
blob + 1f0dd25bab0542ffb4b6f815f015536a2f57ceca
--- hosts/void/overlays/config/shepherd/init.d/battery-notify.scm
+++ hosts/void/overlays/config/shepherd/init.d/battery-notify.scm
;; -*- mode: scheme; -*-
+(use-modules (helpers))
(exec-service 'battery-notify '("battery-notify"))
blob - 3dd1f9669954f510716dde7a90b1be4a49957454
blob + 86fdf402016d85d244929d5f5f1356fb3f417c01
--- hosts/void/overlays/config/shepherd/init.d/cliphist.scm
+++ hosts/void/overlays/config/shepherd/init.d/cliphist.scm
;; -*- mode: scheme; -*-
+(use-modules (helpers))
(exec-service 'cliphist '("wl-paste" "--watch" "cliphist" "store"))
blob - 0ee7387bd902c2edca98407c2596ae79f521ae0f
blob + d5a29f0e3b4db5bf7ed4e6b38bcd83b41d8bb73e
--- hosts/void/overlays/config/shepherd/init.d/fnott.scm
+++ hosts/void/overlays/config/shepherd/init.d/fnott.scm
;; -*- mode: scheme; -*-
+(use-modules (helpers))
(exec-service 'fnott '("fnott"))
blob - 990f67e1094a6021172cd1b0b715b029df87ab59
blob + e64eedb1ae666fb225a61f4e7ad564c7d3aa52ff
--- hosts/void/overlays/config/shepherd/init.d/hister.scm
+++ hosts/void/overlays/config/shepherd/init.d/hister.scm
;; -*- mode: scheme; -*-
+(use-modules (helpers))
(exec-service 'hister '("hister" "listen"))
blob - a33c316e34352b8463d3eb91564168370a34cac9
blob + 0018b5ad243aaf53d1586cfa0473d8be71093506
--- hosts/void/overlays/config/shepherd/init.d/kanshi.scm
+++ hosts/void/overlays/config/shepherd/init.d/kanshi.scm
;; -*- mode: scheme; -*-
+(use-modules (helpers))
(exec-service 'kanshi '("kanshi"))
blob - 09304c6911eff2c72925319adcd8eefc2716e8db
blob + 6d6e91b297819b6083a172590173e83093482e55
--- hosts/void/overlays/config/shepherd/init.d/memcached.scm
+++ hosts/void/overlays/config/shepherd/init.d/memcached.scm
;; -*- mode: scheme; -*-
+(use-modules (helpers))
(exec-service 'memcached '("memcached"))
blob - e339da50cbe82c2f9ce4ef4d7fe2072de8b9c814
blob + 2533b511934fdd81705bffc992d34c54d19b5af4
--- hosts/void/overlays/config/shepherd/init.d/nix-daemon.scm
+++ hosts/void/overlays/config/shepherd/init.d/nix-daemon.scm
;; -*- mode: scheme; -*-
+(use-modules (helpers))
(exec-service 'nix-daemon '("nix-daemon"))
blob - dc458a7d0d58fdb438904bd22447d4e55c4717a5
blob + 7cb99343966d7a9244a6f576bf6abaff8947261a
--- hosts/void/overlays/config/shepherd/init.d/pipewire.scm
+++ hosts/void/overlays/config/shepherd/init.d/pipewire.scm
;; -*- mode: scheme; -*-
+(use-modules (helpers))
(exec-service 'pipewire '("pipewire"))
blob - 7fa8d625de9bdf259ba9d88c1201f98d748e18bd
blob + acfdde30f44ae83c016e156b9b5c5833f7281265
--- hosts/void/overlays/config/shepherd/init.d/psi-notify.scm
+++ hosts/void/overlays/config/shepherd/init.d/psi-notify.scm
;; -*- mode: scheme; -*-
+(use-modules (helpers))
(exec-service 'psi-notify '("psi-notify"))
blob - 05e9f3832b683dfdfe602e91415e0269e1c42328
blob + f59b1094920f2a35b7c1f8cdd9067e4cb245d259
--- hosts/void/overlays/config/shepherd/init.d/swaybg.scm
+++ hosts/void/overlays/config/shepherd/init.d/swaybg.scm
;; -*- mode: scheme; -*-
+(use-modules (helpers))
(exec-service 'swaybg
(list "swaybg" "-m" "fill" "-c" "#0d1612"
"-i" (string-append (getenv "HOME")
blob - 9bd2f907e28d3de02df2aacf7f787039b2c0c043
blob + 9f701595db7ae8f8b79edf85d53a603b673a309b
--- hosts/void/overlays/config/shepherd/init.d/wob.scm
+++ hosts/void/overlays/config/shepherd/init.d/wob.scm
;; -*- mode: scheme; -*-
+(use-modules (helpers))
;; wob reads volume/brightness levels from a FIFO at $XDG_RUNTIME_DIR/wob.sock
(exec-service
'wob
blob - 740c3450d99aac3e5b09f96119cfd9ff9f9283e0
blob + 2231adce0b02f22cfec0beb8e63ec022453b81fc
--- hosts/void/overlays/config/shepherd/init.scm
+++ hosts/void/overlays/config/shepherd/init.scm
(shepherd support)
((ice-9 ftw) #:select (scandir)))
+(add-to-load-path (string-append %user-config-dir "/modules"))
+(use-modules (helpers))
+
(default-environment-variables (environ))
;; Per-service log files live here as <name>.log
(mkdir-p %user-log-dir)
-(define* (exec-service name command #:key (respawn? #t))
- (let ((svc (service (list name)
- #:documentation (string-append "Run " (symbol->string name) ".")
- #:start (make-forkexec-constructor
- command
- #:log-file (string-append %user-log-dir "/"
- (symbol->string name) ".log"))
- #:stop (make-kill-destructor)
- #:respawn? respawn?)))
- (register-services (list svc))
- (start-service svc)))
-
;; Send Shepherd to the background
(perform-service-action root-service 'daemonize)
blob - /dev/null
blob + fd3e230e7707b463e219c26632648ab3fd3c7983 (mode 644)
--- /dev/null
+++ hosts/void/overlays/config/shepherd/modules/helpers.scm
+;; -*- mode: scheme; -*-
+;;; ~/.config/shepherd/modules/helpers.scm
+
+(define-module (helpers)
+ #:use-module (shepherd service)
+ #:use-module (shepherd support)
+ #:export (exec-service))
+
+;; Register and start NAME running COMMAND (program + args). Idempotent:
+;; an existing service by that name is replaced, so re-running the file via
+;; `herd load' reloads it in place.
+(define* (exec-service name command #:key (respawn? #t))
+ (let ((old (lookup-service name)))
+ (when old
+ (stop-service old)
+ (unregister-services (list old))))
+ (let ((svc (service (list name)
+ #:documentation (string-append "Run " (symbol->string name) ".")
+ #:start (make-forkexec-constructor
+ command
+ #:log-file (string-append %user-log-dir "/"
+ (symbol->string name) ".log"))
+ #:stop (make-kill-destructor)
+ #:respawn? respawn?)))
+ (register-services (list svc))
+ (start-service svc)))
blob - 98f335b8640b3eece704fe8d1520a7164c71e772
blob + b83bec71adedfef55560f1d694edd1e304830c0b
--- modules/mixins/dotfiles/config/shell/rc/functions
+++ modules/mixins/dotfiles/config/shell/rc/functions
cd "$target_dir" && magdalena log-dir "$PWD"
fi
}
+
+plan() {
+ T=$(mktemp)
+ trap 'rm -f "$T"' EXIT
+ curl -so "$T" https://plan.cat/~mtmn
+ "$EDITOR" "$T"
+ curl -su mtmn -F "plan=<$T" https://plan.cat/stdin
+}
blob - e2e43a2f56224bb0f3355706ad1817511b1cb989
blob + 8d63cc3520374d038d46f2f1889905fc6e937699
--- modules/mixins/dotfiles/npins/sources.json
+++ modules/mixins/dotfiles/npins/sources.json
{
- "pins": {
- "plass": {
- "type": "Git",
- "repository": {
- "type": "GitHub",
- "owner": "omar-polo",
- "repo": "plass"
- },
- "branch": "main",
- "submodules": false,
- "revision": "6d50c657de6e3e8504efafbcc536e5cfd5933772",
- "url": "https://github.com/omar-polo/plass/archive/6d50c657de6e3e8504efafbcc536e5cfd5933772.tar.gz",
- "hash": "sha256-fB3L28wxesvt+YJen+IuS1LaQ4Mkkbnge6kFOaBOzQI="
- },
- "tmux-xpanes": {
- "type": "Git",
- "repository": {
- "type": "GitHub",
- "owner": "greymd",
- "repo": "tmux-xpanes"
- },
- "branch": "master",
- "submodules": false,
- "revision": "384b12780759f53056f58fb05645dfac89688da8",
- "url": "https://github.com/greymd/tmux-xpanes/archive/384b12780759f53056f58fb05645dfac89688da8.tar.gz",
- "hash": "sha256-9lNeKJSWSsJRTu+mmbH+PQlF9so2Snk05mQ+KTKVcxM="
- },
- "zsh-autopair": {
- "type": "Git",
- "repository": {
- "type": "GitHub",
- "owner": "hlissner",
- "repo": "zsh-autopair"
- },
- "branch": "master",
- "submodules": false,
- "revision": "449a7c3d095bc8f3d78cf37b9549f8bb4c383f3d",
- "url": "https://github.com/hlissner/zsh-autopair/archive/449a7c3d095bc8f3d78cf37b9549f8bb4c383f3d.tar.gz",
- "hash": "sha256-3zvOgIi+q7+sTXrT+r/4v98qjeiEL4Wh64rxBYnwJvQ="
- },
- "zsh-autosuggestions": {
- "type": "Git",
- "repository": {
- "type": "GitHub",
- "owner": "zsh-users",
- "repo": "zsh-autosuggestions"
- },
- "branch": "master",
- "submodules": false,
- "revision": "85919cd1ffa7d2d5412f6d3fe437ebdbeeec4fc5",
- "url": "https://github.com/zsh-users/zsh-autosuggestions/archive/85919cd1ffa7d2d5412f6d3fe437ebdbeeec4fc5.tar.gz",
- "hash": "sha256-KmkXgK1J6iAyb1FtF/gOa0adUnh1pgFsgQOUnNngBaE="
- },
- "zsh-completions": {
- "type": "Git",
- "repository": {
- "type": "GitHub",
- "owner": "zsh-users",
- "repo": "zsh-completions"
- },
- "branch": "master",
- "submodules": false,
- "revision": "9903bae60284072de3fa0e3e20965f22368c5694",
- "url": "https://github.com/zsh-users/zsh-completions/archive/9903bae60284072de3fa0e3e20965f22368c5694.tar.gz",
- "hash": "sha256-sf02F5TNk8ox2gRulgNKigTBi0GycXPKbaeNGDVC0RI="
- },
- "zsh-histdb": {
- "type": "Git",
- "repository": {
- "type": "GitHub",
- "owner": "larkery",
- "repo": "zsh-histdb"
- },
- "branch": "master",
- "submodules": false,
- "revision": "90a6c104d0fcc0410d665e148fa7da28c49684eb",
- "url": "https://github.com/larkery/zsh-histdb/archive/90a6c104d0fcc0410d665e148fa7da28c49684eb.tar.gz",
- "hash": "sha256-vtG1poaRVbfb/wKPChk1WpPgDq+7udLqLfYfLqap4Vg="
- }
- },
- "version": 8
+ "pins": {
+ "plass": {
+ "type": "Git",
+ "repository": {
+ "type": "GitHub",
+ "owner": "omar-polo",
+ "repo": "plass"
+ },
+ "branch": "main",
+ "submodules": false,
+ "revision": "6d50c657de6e3e8504efafbcc536e5cfd5933772",
+ "url": "https://github.com/omar-polo/plass/archive/6d50c657de6e3e8504efafbcc536e5cfd5933772.tar.gz",
+ "hash": "sha256-fB3L28wxesvt+YJen+IuS1LaQ4Mkkbnge6kFOaBOzQI="
+ },
+ "tmux-xpanes": {
+ "type": "Git",
+ "repository": {
+ "type": "GitHub",
+ "owner": "greymd",
+ "repo": "tmux-xpanes"
+ },
+ "branch": "master",
+ "submodules": false,
+ "revision": "384b12780759f53056f58fb05645dfac89688da8",
+ "url": "https://github.com/greymd/tmux-xpanes/archive/384b12780759f53056f58fb05645dfac89688da8.tar.gz",
+ "hash": "sha256-9lNeKJSWSsJRTu+mmbH+PQlF9so2Snk05mQ+KTKVcxM="
+ },
+ "zsh-autopair": {
+ "type": "Git",
+ "repository": {
+ "type": "GitHub",
+ "owner": "hlissner",
+ "repo": "zsh-autopair"
+ },
+ "branch": "master",
+ "submodules": false,
+ "revision": "449a7c3d095bc8f3d78cf37b9549f8bb4c383f3d",
+ "url": "https://github.com/hlissner/zsh-autopair/archive/449a7c3d095bc8f3d78cf37b9549f8bb4c383f3d.tar.gz",
+ "hash": "sha256-3zvOgIi+q7+sTXrT+r/4v98qjeiEL4Wh64rxBYnwJvQ="
+ },
+ "zsh-autosuggestions": {
+ "type": "Git",
+ "repository": {
+ "type": "GitHub",
+ "owner": "zsh-users",
+ "repo": "zsh-autosuggestions"
+ },
+ "branch": "master",
+ "submodules": false,
+ "revision": "85919cd1ffa7d2d5412f6d3fe437ebdbeeec4fc5",
+ "url": "https://github.com/zsh-users/zsh-autosuggestions/archive/85919cd1ffa7d2d5412f6d3fe437ebdbeeec4fc5.tar.gz",
+ "hash": "sha256-KmkXgK1J6iAyb1FtF/gOa0adUnh1pgFsgQOUnNngBaE="
+ },
+ "zsh-completions": {
+ "type": "Git",
+ "repository": {
+ "type": "GitHub",
+ "owner": "zsh-users",
+ "repo": "zsh-completions"
+ },
+ "branch": "master",
+ "submodules": false,
+ "revision": "9903bae60284072de3fa0e3e20965f22368c5694",
+ "url": "https://github.com/zsh-users/zsh-completions/archive/9903bae60284072de3fa0e3e20965f22368c5694.tar.gz",
+ "hash": "sha256-sf02F5TNk8ox2gRulgNKigTBi0GycXPKbaeNGDVC0RI="
+ },
+ "zsh-histdb": {
+ "type": "Git",
+ "repository": {
+ "type": "GitHub",
+ "owner": "larkery",
+ "repo": "zsh-histdb"
+ },
+ "branch": "master",
+ "submodules": false,
+ "revision": "90a6c104d0fcc0410d665e148fa7da28c49684eb",
+ "url": "https://github.com/larkery/zsh-histdb/archive/90a6c104d0fcc0410d665e148fa7da28c49684eb.tar.gz",
+ "hash": "sha256-vtG1poaRVbfb/wKPChk1WpPgDq+7udLqLfYfLqap4Vg="
+ }
+ },
+ "version": 8
}