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:
2026-06-05 21:21:46 +10:00
commit 180c5838ea
36 changed files with 4176 additions and 0 deletions

View File

@@ -0,0 +1,88 @@
// =============================================================================
// COSMIC Desktop — Custom Shortcuts (RON format)
// File location: ~/.config/cosmic/com.system76.CosmicSettings.Shortcuts/v1/custom
// This is the keybinding config from the Pop!_OS machine.
// =============================================================================
// COSMIC is System76's Rust-based desktop environment (not shipped on Fedora).
// This file is FOR REFERENCE only — translate to your target DE:
//
// GNOME: Use gsettings (see stage 09-desktop.sh)
// KDE: Use kwriteconfig5 or System Settings
// Sway/Hypr: Use sway config or hyprland.conf
// swhkd: Use ~/.config/swhkd/swhkdrc
//
// The hotkey scripts (google.sh, scholar.sh, etc.) work on any DE/WM that
// supports Wayland. They use wl-clipboard, wofi, and xdg-open.
// =============================================================================
{
// ---- Text selection searches ----
// Select text anywhere, press shortcut → action with selected text
(
modifiers: [ Ctrl, Alt ],
key: "e",
description: Some("Emoji"),
): Spawn("/home/julian/Development/hotkeys/emoji.sh"),
(
modifiers: [ Ctrl, Alt ],
key: "o",
description: Some("PDF"),
): Spawn("/home/julian/Development/hotkeys/pdf.sh"),
(
modifiers: [ Ctrl, Alt ],
key: "a",
description: Some("Hotstrings"),
): Spawn("/home/julian/Development/hotkeys/hotstrings.sh"),
(
modifiers: [ Ctrl, Alt ],
key: "d",
description: Some("Dictionary"),
): Spawn("/home/julian/Development/hotkeys/dictionary.sh"),
(
modifiers: [ Ctrl, Alt ],
key: "g",
description: Some("Google"),
): Spawn("/home/julian/Development/hotkeys/google.sh"),
(
modifiers: [ Ctrl, Alt ],
key: "s",
description: Some("Scholar"),
): Spawn("/home/julian/Development/hotkeys/scholar.sh"),
// ---- Window management ----
(
modifiers: [ Super ],
key: "n",
): Minimize,
(
modifiers: [ Super ],
key: "Escape",
): Close,
(
modifiers: [ Super, Shift ],
key: "Escape",
): Disable,
(
modifiers: [ Super ],
key: "q",
): Disable,
// ---- System actions ----
(
modifiers: [ Super ],
key: "l",
): System(LockScreen),
(
modifiers: [ Super, Shift ],
key: "l",
): System(LogOut),
}