Skip to content
gotenksINPublic

About

A lot of basic (but not so basic) scripts to make having reproducible environment easier

Topics

Resources

Stars

9 stars

Watchers

0 watching

Forks

Latest commit

 

History

786 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Personal setup and system scripts

This repository contains configuration files, deployment scripts, and dotfiles for operating systems, containers, and tools.

Repository structure

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 native dotfiles for Windows.

Subsystem details

Linux (linux/)

Distribution-specific setup:

  • linux/arch/: Arch Linux installation in three stages: pre_chroot.sh (archiso), chroot.sh (arch-chroot), and user_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 via setup.sh, package removal using debloat_fedora.sh, NVIDIA driver setup, and Rawhide channel switching.
  • linux/ubuntu/: Ubuntu system management with distro setup via setup.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.sh that 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.

Self-hosted services (services/)

  • 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.

OpenCode (opencode/)

This directory contains configuration files, agent rules, and an updater for OpenCode v2.

  • Configuration files: opencode.json, opencode.jsonc, and cli.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.json

To update OpenCode, run the updater with an optional version:

~/scripts/opencode/update.sh [version]

Windows (windows/)

Automation scripts and declarative state for Windows and WSL:

  • Orchestrated setup script setup.ps1 with native WinGet configuration and package imports.
  • Declarative OS baseline configuration.dsc.yaml applying system settings via DSC v3.
  • WinGet package manifests (RyzenBox.json, GroundBox.json).
  • Native dotfile deployment (scripts/Deploy-Dotfiles.ps1) for PowerShell, Windows Terminal, Topgrade, WinGet, and WSL.
  • Utility and maintenance scripts (scripts/Take-FolderTypesOwnership.ps1, scripts/Fix-HEVC-AMF.ps1).

Getting started

Run the setup script for your Linux distribution. For example, run the Ubuntu setup:

bash ~/scripts/linux/ubuntu/setup.sh

Use 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.

License

This repository is licensed under the GNU General Public License v3.0 (GPL-3.0). See the LICENSE file for full license terms.

About

A lot of basic (but not so basic) scripts to make having reproducible environment easier

Topics

Resources

Stars

9 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages