Initial commit: linux-provision repo
Distribution-agnostic provisioning script that sets up a new Linux machine (Detected via lib/distro.sh - supports Debian/Ubuntu/Pop and Fedora families). 13 stages covering: - System packages, external repos, toolchains (nvm, uv, Python) - Shell config (zsh, oh-my-zsh, p10k), git, SSH - Custom uv tools from ~40 git repos - Desktop config (keybindings, hotkeys, ghostty, fonts) - Docker, system tweaks, browser/app installs - Custom systemd user services (porridge, swayidle, mempi-sync, etc.) - API keys loaded from Bitwarden at shell startup
This commit is contained in:
13
config/systemd/bw-ssh-keys.service
Normal file
13
config/systemd/bw-ssh-keys.service
Normal file
@@ -0,0 +1,13 @@
|
||||
[Unit]
|
||||
Description=Load Bitwarden SSH keys into ssh-agent
|
||||
After=network-online.target
|
||||
Wants=network-online.target
|
||||
|
||||
[Service]
|
||||
Type=oneshot
|
||||
ExecStart=%h/.local/bin/bw-load-ssh.sh
|
||||
Restart=on-failure
|
||||
RestartSec=30
|
||||
|
||||
[Install]
|
||||
WantedBy=default.target
|
||||
9
config/systemd/empty_downloads.service
Normal file
9
config/systemd/empty_downloads.service
Normal file
@@ -0,0 +1,9 @@
|
||||
[Unit]
|
||||
Description=Empty Downloads folder on login
|
||||
|
||||
[Service]
|
||||
Type=oneshot
|
||||
ExecStart=/usr/bin/bash -c 'rm -rf %h/Downloads/* %h/Downloads/.* 2>/dev/null'
|
||||
|
||||
[Install]
|
||||
WantedBy=default.target
|
||||
6
config/systemd/mempi-sync.service
Normal file
6
config/systemd/mempi-sync.service
Normal file
@@ -0,0 +1,6 @@
|
||||
[Unit]
|
||||
Description=Sync mempi database to Nextcloud
|
||||
|
||||
[Service]
|
||||
Type=oneshot
|
||||
ExecStart=/bin/bash -c 'sqlite3 %h/.local/share/pi/pi.db "PRAGMA wal_checkpoint(TRUNCATE)" && cp %h/.local/share/pi/pi.db "%h/Nextcloud/2_resources/90-99 Misc/98 ocpa/mempi-pi.db"'
|
||||
8
config/systemd/mempi-sync.timer
Normal file
8
config/systemd/mempi-sync.timer
Normal file
@@ -0,0 +1,8 @@
|
||||
[Unit]
|
||||
Description=Sync mempi database on boot
|
||||
|
||||
[Timer]
|
||||
OnBootSec=5min
|
||||
|
||||
[Install]
|
||||
WantedBy=timers.target
|
||||
12
config/systemd/pi-overview.service
Normal file
12
config/systemd/pi-overview.service
Normal file
@@ -0,0 +1,12 @@
|
||||
[Unit]
|
||||
Description=Pi Overview — session dashboard
|
||||
After=default.target
|
||||
|
||||
[Service]
|
||||
Environment=PATH=/home/julian/.nvm/versions/node/v24.11.1/bin:/usr/local/bin:/usr/bin:/bin
|
||||
ExecStart=%h/.local/bin/pi-overview --port 3000
|
||||
Restart=on-failure
|
||||
RestartSec=5
|
||||
|
||||
[Install]
|
||||
WantedBy=default.target
|
||||
13
config/systemd/porridge-dictate.service
Normal file
13
config/systemd/porridge-dictate.service
Normal file
@@ -0,0 +1,13 @@
|
||||
[Unit]
|
||||
Description=Porridge dictate - push-to-talk transcription
|
||||
After=graphical-session.target
|
||||
|
||||
[Service]
|
||||
Type=simple
|
||||
EnvironmentFile=-%h/.config/porridge/env
|
||||
ExecStart=%h/.local/bin/porridge dictate
|
||||
Restart=on-failure
|
||||
RestartSec=3
|
||||
|
||||
[Install]
|
||||
WantedBy=default.target
|
||||
14
config/systemd/porridge.service
Normal file
14
config/systemd/porridge.service
Normal file
@@ -0,0 +1,14 @@
|
||||
[Unit]
|
||||
Description=Porridge - Zoom meeting transcriber daemon
|
||||
After=graphical-session.target pulseaudio.service pipewire.service
|
||||
Wants=graphical-session.target
|
||||
|
||||
[Service]
|
||||
Type=simple
|
||||
EnvironmentFile=-%h/.config/porridge/env
|
||||
ExecStart=%h/.local/bin/porridge daemon
|
||||
Restart=on-failure
|
||||
RestartSec=5
|
||||
|
||||
[Install]
|
||||
WantedBy=graphical-session.target
|
||||
Reference in New Issue
Block a user