This repository contains configuration files, deployment scripts, and dotfiles for operating systems, containers, and tools.
| Directory | Description |
|---|---|
linux/ |
Installation, setup, dotfiles, and desktop configuration files for Linux. |
services/ |
Docker Compose files and Home Assistant configurations for self-hosted services. |
opencode/ |
Configuration files, agent rules, and an updater for OpenCode. |
windows/ |
PowerShell scripts, Winget configurations, and chezmoi templates for Windows. |
Distribution-specific setup:
linux/arch/: Arch Linux installation in three stages:pre_chroot.sh(archiso),chroot.sh(arch-chroot), anduser_setup.sh(installed user). Also contains NVIDIA driver installation, KDE Plasma setup, Secure Boot configuration (install_systemd-secureboot.sh), and EFISTUB booting (install_efistub.sh).linux/fedora/: Fedora maintenance with automated system configuration viasetup.sh, package removal usingdebloat_fedora.sh, NVIDIA driver setup, and Rawhide channel switching.linux/ubuntu/: Ubuntu system management with distro setup viasetup.sh, package debloating, EFISTUB boot configuration, and GRUB removal.linux/nixos/: NixOS system configuration (RyzenBox.nix) and a script to switch system channels to unstable.
Desktop configurations:
linux/desktop/plasma/: KWin script for push-style window tiling (tile-pusher), shortcut binding, and installation scripts.linux/desktop/easyeffects/: EasyEffects audio preset (bass_boost.json).
Common dotfiles:
linux/common/: Shared environment settings and shell configurations:- Setup script
setup.shthat installs the shared dotfiles and adds a distribution alias when given one. - Shell configuration files for Zsh (
.zshrc,.zprofile,.p10k.zsh,aliases,functions). - Terminal and tool settings (
wezterm.lua,bottom.toml,.screenrc). - SSH and Git configuration templates.
- Setup script
services/docker/: Docker Compose files to deploy self-hosted applications:- Home Assistant: Home automation platform.
- Jellyfin: Media server.
- qBittorrent: Torrent client with optional Tailscale integration.
- RustDesk: Self-hosted remote desktop server.
- SABnzbd: Usenet downloader.
- WireGuard: VPN service.
- OpenSpeedTest: Network performance test tool.
- h5ai: File indexer interface.
services/homeassistant/: JSON configurations for smart home automation:- Custom dashboard layouts for television remotes and lighting controls.
- Automation scripts for lighting based on time and sunset schedules.
This directory contains configuration files, agent rules, and an updater for OpenCode v2.
- Configuration files:
opencode.json,opencode.jsonc, andcli.json. - Global agent rules:
AGENTS.md. - Binary updater:
update.sh.
To link the OpenCode configuration files to your configuration directory:
mkdir -p ~/.config/opencode
ln -sf ~/scripts/opencode/AGENTS.md ~/.config/opencode/AGENTS.md
ln -sf ~/scripts/opencode/opencode.json ~/.config/opencode/opencode.json
cp ~/scripts/opencode/cli.json ~/.config/opencode/cli.jsonTo update OpenCode, run the updater with an optional version:
~/scripts/opencode/update.sh [version]Automation scripts for Windows and WSL:
- PowerShell setup scripts (
setup.ps1, PowerShell profiles). - Winget package configurations (
RyzenBox.json,GroundBox.json). - Registry adjustments and hardware acceleration fixes (
Fix-HEVC-AMF.ps1). - chezmoi templates for environment management.
Run the setup script for your Linux distribution. For example, run the Ubuntu setup:
bash ~/scripts/linux/ubuntu/setup.shUse linux/fedora/setup.sh instead on Fedora.
The setup script resolves the repository root from its own location and bakes the path into the deployed shell configuration.
This repository is licensed under the GNU General Public License v3.0 (GPL-3.0).
See the LICENSE file for full license terms.