mirror of
https://github.com/prdlk/dotfiles.git
synced 2026-11-02 11:32:42 +00:00
feat(arch-layer,scripts): linux-gated desktop configs + package install scripts
niri (exact_config.d, scripts), noctalia (plugins excluded — runtime state with embedded token), fontconfig, mimeapps.list, niri-dynamic-workspaces, systemd user unit files (enable-state not managed; only nirinit enabled by run_once), niri-launch vendored from /usr/bin (unowned hand-written script, shellcheck warnings pre-existing). Scripts: packages (pacman --needed + paru, brew on darwin, root-safe, keyed on packages.yaml hash), gh extensions (idempotent), user services (linux), post (tpm clone, bat cache, fc-cache). All shellcheck-clean. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
1 parent
20891f3910
commit
2142bdf9cb
61 files changed
+3113
-3
No files matched your search
@@ -0,0 +1,6 @@
|
||||
[Unit]
|
||||
Description=Second-brain lens %i
|
||||
|
||||
[Service]
|
||||
Type=oneshot
|
||||
ExecStart=%h/Documents/Obsidian/Brain/_System/Brain/run-lens.sh %i
|
||||
@@ -0,0 +1,9 @@
|
||||
[Unit]
|
||||
Description=Second-brain lens build-next schedule
|
||||
|
||||
[Timer]
|
||||
OnCalendar=*-*-* 01,07,13,19:37:00
|
||||
Persistent=true
|
||||
|
||||
[Install]
|
||||
WantedBy=timers.target
|
||||
@@ -0,0 +1,9 @@
|
||||
[Unit]
|
||||
Description=Second-brain lens coach schedule
|
||||
|
||||
[Timer]
|
||||
OnCalendar=*-*-* 03,09,15,21:07:00
|
||||
Persistent=true
|
||||
|
||||
[Install]
|
||||
WantedBy=timers.target
|
||||
@@ -0,0 +1,9 @@
|
||||
[Unit]
|
||||
Description=Second-brain lens digest schedule
|
||||
|
||||
[Timer]
|
||||
OnCalendar=*-*-* 08:03:00
|
||||
Persistent=true
|
||||
|
||||
[Install]
|
||||
WantedBy=timers.target
|
||||
@@ -0,0 +1,9 @@
|
||||
[Unit]
|
||||
Description=Second-brain lens what-worked schedule
|
||||
|
||||
[Timer]
|
||||
OnCalendar=*-*-* 00,06,12,18:07:00
|
||||
Persistent=true
|
||||
|
||||
[Install]
|
||||
WantedBy=timers.target
|
||||
@@ -0,0 +1,9 @@
|
||||
[Unit]
|
||||
Description=Second-brain lens write-next schedule
|
||||
|
||||
[Timer]
|
||||
OnCalendar=*-*-* 04,10,16,22:37:00
|
||||
Persistent=true
|
||||
|
||||
[Install]
|
||||
WantedBy=timers.target
|
||||
@@ -0,0 +1,27 @@
|
||||
[Unit]
|
||||
Description=Hermes Agent Gateway - Messaging Platform Integration
|
||||
After=network-online.target
|
||||
Wants=network-online.target
|
||||
StartLimitIntervalSec=0
|
||||
|
||||
[Service]
|
||||
Type=simple
|
||||
ExecStart=/home/prad/.hermes/hermes-agent/venv/bin/python -m hermes_cli.main gateway run
|
||||
WorkingDirectory=/home/prad/.hermes
|
||||
Environment="PATH=/home/prad/.hermes/hermes-agent/venv/bin:/home/prad/.hermes/hermes-agent/node_modules/.bin:/home/prad/.local/share/mise/installs/node/latest/bin:/home/prad/.local/bin:/home/prad/.cargo/bin:/home/prad/go/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
|
||||
Environment="VIRTUAL_ENV=/home/prad/.hermes/hermes-agent/venv"
|
||||
Environment="HERMES_HOME=/home/prad/.hermes"
|
||||
Restart=always
|
||||
RestartSec=5
|
||||
RestartForceExitStatus=75
|
||||
RestartPreventExitStatus=78
|
||||
KillMode=mixed
|
||||
KillSignal=SIGTERM
|
||||
ExecReload=/bin/kill -USR1 $MAINPID
|
||||
ExecStopPost=-/home/prad/.hermes/hermes-agent/venv/bin/python -m gateway.cgroup_cleanup
|
||||
TimeoutStopSec=210
|
||||
StandardOutput=journal
|
||||
StandardError=journal
|
||||
|
||||
[Install]
|
||||
WantedBy=default.target
|
||||
@@ -0,0 +1,14 @@
|
||||
[Unit]
|
||||
Description=nirinit - Niri session save/restore
|
||||
PartOf=graphical-session.target
|
||||
After=graphical-session.target
|
||||
Requisite=graphical-session.target
|
||||
|
||||
[Service]
|
||||
Type=simple
|
||||
ExecStart=%h/.cargo/bin/nirinit --save-interval 300
|
||||
Restart=on-failure
|
||||
RestartSec=2
|
||||
|
||||
[Install]
|
||||
WantedBy=graphical-session.target
|
||||
@@ -0,0 +1,10 @@
|
||||
[Unit]
|
||||
Description=omp agent loop: %i
|
||||
|
||||
[Service]
|
||||
Type=oneshot
|
||||
ExecStart=%h/.omp/loops/bin/run-loop.sh %i
|
||||
# Loops are green (read-only + own state file) but belt-and-braces:
|
||||
# no interactive session, hard runtime ceiling above the script's own caps.
|
||||
TimeoutStartSec=45min
|
||||
Nice=10
|
||||
@@ -0,0 +1,10 @@
|
||||
[Unit]
|
||||
Description=Timer for omp loop: answer-gap
|
||||
|
||||
[Timer]
|
||||
OnCalendar=Thu 07:00
|
||||
Persistent=true
|
||||
RandomizedDelaySec=10min
|
||||
|
||||
[Install]
|
||||
WantedBy=timers.target
|
||||
@@ -0,0 +1,10 @@
|
||||
[Unit]
|
||||
Description=Timer for omp loop: brand-radar
|
||||
|
||||
[Timer]
|
||||
OnCalendar=Wed 07:00
|
||||
Persistent=true
|
||||
RandomizedDelaySec=10min
|
||||
|
||||
[Install]
|
||||
WantedBy=timers.target
|
||||
@@ -0,0 +1,10 @@
|
||||
[Unit]
|
||||
Description=Timer for omp loop: competitor-watch
|
||||
|
||||
[Timer]
|
||||
OnCalendar=Fri 07:00
|
||||
Persistent=true
|
||||
RandomizedDelaySec=10min
|
||||
|
||||
[Install]
|
||||
WantedBy=timers.target
|
||||
@@ -0,0 +1,10 @@
|
||||
[Unit]
|
||||
Description=Timer for omp loop: intel-refresh
|
||||
|
||||
[Timer]
|
||||
OnCalendar=Mon 06:00
|
||||
Persistent=true
|
||||
RandomizedDelaySec=10min
|
||||
|
||||
[Install]
|
||||
WantedBy=timers.target
|
||||
@@ -0,0 +1,10 @@
|
||||
[Unit]
|
||||
Description=Timer for omp loop: regulatory-digest
|
||||
|
||||
[Timer]
|
||||
OnCalendar=Tue 07:00
|
||||
Persistent=true
|
||||
RandomizedDelaySec=10min
|
||||
|
||||
[Install]
|
||||
WantedBy=timers.target
|
||||
@@ -0,0 +1,10 @@
|
||||
[Unit]
|
||||
Description=Timer for omp loop: repeat-offender
|
||||
|
||||
[Timer]
|
||||
OnCalendar=Sun 18:00
|
||||
Persistent=true
|
||||
RandomizedDelaySec=10min
|
||||
|
||||
[Install]
|
||||
WantedBy=timers.target
|
||||
@@ -0,0 +1,10 @@
|
||||
[Unit]
|
||||
Description=Timer for omp loop: share-of-model
|
||||
|
||||
[Timer]
|
||||
OnCalendar=Mon 07:00
|
||||
Persistent=true
|
||||
RandomizedDelaySec=10min
|
||||
|
||||
[Install]
|
||||
WantedBy=timers.target
|
||||
@@ -0,0 +1,15 @@
|
||||
[Unit]
|
||||
Description=Open WebUI connected to Hermes Agent
|
||||
After=default.target
|
||||
|
||||
[Service]
|
||||
Type=simple
|
||||
ExecStart=/bin/bash %h/.local/bin/start-open-webui-hermes.sh
|
||||
Restart=always
|
||||
RestartSec=3
|
||||
WorkingDirectory=%h
|
||||
StandardOutput=append:%h/.hermes/logs/openwebui.log
|
||||
StandardError=append:%h/.hermes/logs/openwebui.error.log
|
||||
|
||||
[Install]
|
||||
WantedBy=default.target
|
||||
@@ -0,0 +1,7 @@
|
||||
[Unit]
|
||||
Description=Rclone SFTP Service for gdrive-hyperauth
|
||||
Requires=rclone-gdrive-hyperauth.socket
|
||||
|
||||
[Service]
|
||||
Type=simple
|
||||
ExecStart=/usr/bin/rclone serve sftp gdrive-hyperauth: --vfs-cache-mode full --vfs-fast-fingerprint --user yazi --pass yazi
|
||||
@@ -0,0 +1,8 @@
|
||||
[Unit]
|
||||
Description=Rclone SFTP Socket for gdrive-hyperauth
|
||||
|
||||
[Socket]
|
||||
ListenStream=127.0.0.1:2223
|
||||
|
||||
[Install]
|
||||
WantedBy=sockets.target
|
||||
@@ -0,0 +1,7 @@
|
||||
[Unit]
|
||||
Description=Rclone SFTP Service for gdrive-personal
|
||||
Requires=rclone-gdrive-personal.socket
|
||||
|
||||
[Service]
|
||||
Type=simple
|
||||
ExecStart=/usr/bin/rclone serve sftp gdrive-personal: --vfs-cache-mode full --vfs-fast-fingerprint --user yazi --pass yazi
|
||||
@@ -0,0 +1,8 @@
|
||||
[Unit]
|
||||
Description=Rclone SFTP Socket for gdrive-personal
|
||||
|
||||
[Socket]
|
||||
ListenStream=127.0.0.1:2221
|
||||
|
||||
[Install]
|
||||
WantedBy=sockets.target
|
||||
@@ -0,0 +1,7 @@
|
||||
[Unit]
|
||||
Description=Rclone SFTP Service for gdrive-sonr
|
||||
Requires=rclone-gdrive-sonr.socket
|
||||
|
||||
[Service]
|
||||
Type=simple
|
||||
ExecStart=/usr/bin/rclone serve sftp gdrive-sonr: --vfs-cache-mode full --vfs-fast-fingerprint --user yazi --pass yazi
|
||||
@@ -0,0 +1,8 @@
|
||||
[Unit]
|
||||
Description=Rclone SFTP Socket for gdrive-sonr
|
||||
|
||||
[Socket]
|
||||
ListenStream=127.0.0.1:2222
|
||||
|
||||
[Install]
|
||||
WantedBy=sockets.target
|
||||
@@ -0,0 +1,12 @@
|
||||
[Unit]
|
||||
Description=Shelly Notifications tray service
|
||||
After=graphical-session.target
|
||||
|
||||
[Service]
|
||||
Type=simple
|
||||
ExecStart=/usr/bin/shelly-notifications
|
||||
Restart=on-failure
|
||||
RestartSec=5s
|
||||
|
||||
[Install]
|
||||
WantedBy=graphical-session.target
|
||||
@@ -0,0 +1,17 @@
|
||||
[Unit]
|
||||
Description=Voxtype push-to-talk voice-to-text daemon
|
||||
Documentation=https://voxtype.io
|
||||
PartOf=graphical-session.target
|
||||
After=graphical-session.target
|
||||
|
||||
[Service]
|
||||
Type=simple
|
||||
ExecStart=/usr/bin/voxtype daemon
|
||||
Restart=on-failure
|
||||
RestartSec=5
|
||||
|
||||
# Ensure we have access to the display
|
||||
Environment=XDG_RUNTIME_DIR=%t
|
||||
|
||||
[Install]
|
||||
WantedBy=graphical-session.target
|
||||
Reference in new issue
Block a user