aboutsummaryrefslogtreecommitdiff
path: root/common/packages.yml
diff options
context:
space:
mode:
Diffstat (limited to 'common/packages.yml')
-rw-r--r--common/packages.yml1066
1 files changed, 1066 insertions, 0 deletions
diff --git a/common/packages.yml b/common/packages.yml
new file mode 100644
index 0000000..0fce986
--- /dev/null
+++ b/common/packages.yml
@@ -0,0 +1,1066 @@
+# Dotfiles Installation Packages Configuration
+# This file defines packages to install based on installation profiles and distribution-specific mappings
+
+#======================================
+# Installation Profiles
+#======================================
+
+# Core packages needed by all installations
+common:
+ - git
+ - curl
+ - wget
+
+# Essential packages for basic functionality
+essentials:
+ - zsh
+ - bash
+ - vim
+ - openssh
+ - sudo
+ - man
+ - bc
+ - time
+ - rsync
+ - tree
+
+# Minimal development environment
+minimal:
+ - gcc
+ - make
+ - python
+ - jq
+ - fzf
+ - neovim
+ - tmux
+
+# Full development environment
+dev:
+ - clang
+ - meson
+ - gdb
+ - cmake
+ - go
+ - ninja
+ - ripgrep
+ - fd
+ - nodejs
+ - emacs
+ - vscode
+ - ansible
+
+# Server-focused packages
+server:
+ - ufw
+ - net-tools
+ - htop
+ - btop
+ - powertop
+ - clamav
+ - ntp
+ - networkmanager
+ - smartmontools
+ - hdparm
+ - acpi
+ - parted
+ - sysstat
+ - hwinfo
+ - ansible
+
+# Desktop environment packages
+desktop:
+ - xorg
+ - wayland
+ - xclip
+ - xterm
+ - gtk
+ - firefox
+ - mpv
+ - discord
+ - libinput
+ - nnn
+ - ranger
+ - obs-studio
+ - unrar
+ - unzip
+ - p7zip
+ - imagemagick
+ - ffmpeg
+ - wezterm
+ - ncdu
+ - picom
+ - rofi
+ - udiskie
+ - brightnessctl
+ - wl-clipboard
+ - nemo
+ - blueman
+ - bluez
+
+# Window managers
+wm:
+ - hyprland
+ - bspwm
+ - sxhkd
+ - polybar
+
+# Audio/Media packages
+media:
+ - mpd
+ - pipewire
+ - ncmpcpp
+
+# Gaming
+gaming:
+ - wine
+ - steam
+
+# Virtualization
+virtualization:
+ - libvirt
+ - qemu
+
+# Fonts
+fonts:
+ - hack-font
+ - nerd-fonts
+ - font-awesome
+ - dejavu-fonts
+
+#======================================
+# Distribution-specific package mappings
+# Format: generic_name -> distro_specific_name
+#======================================
+
+arch:
+ # Core tools
+ python: python
+ nodejs: nodejs
+ man: man-pages man-db
+ tree: tree
+ ntp: ntpsec
+ hack-font: ttf-hack
+ nerd-fonts: ttf-nerd-fonts-symbols-mono
+ font-awesome: ttf-font-awesome
+ dejavu-fonts: ttf-dejavu
+ networkmanager: networkmanager
+ qemu: qemu-full
+ vscode: code
+
+ # Desktop specific
+ xorg: xorg xorg-server
+ wayland: wayland xorg-xwayland
+ gtk: gtk3 gtk4
+ libinput: libinput xf86-input-libinput
+ bluez: bluez bluez-utils bluez-tools
+
+ # Media
+ pipewire: pipewire wireplumber
+
+debian:
+ # Core tools
+ python: python3 python3-pip
+ nodejs: nodejs npm
+ man: man-pages-dev man-db
+ tree: tree
+ ntp: ntp
+ hack-font: fonts-hack
+ nerd-fonts: fonts-nerd-font-symbols
+ font-awesome: fonts-font-awesome
+ dejavu-fonts: fonts-dejavu
+ networkmanager: network-manager
+ qemu: qemu-system
+ vscode: code
+ fd: fd-find
+ openssh: openssh-server
+ ansible: ansible
+
+fedora:
+ # Core tools
+ python: python3 python3-pip
+ nodejs: nodejs npm
+ man: man-pages man-db
+ tree: tree
+ ntp: chrony
+ hack-font: adobe-source-code-pro-fonts
+ nerd-fonts: powerline-fonts
+ font-awesome: fontawesome-fonts
+ dejavu-fonts: dejavu-fonts-common
+ networkmanager: NetworkManager
+ qemu: qemu-kvm
+ vscode: code-oss
+ fd: fd-find
+ openssh: openssh-server
+ ansible: ansible
+ ninja: ninja-build
+
+ # Desktop specific
+ xorg: xorg xserver-xorg
+ wayland: libwayland-dev xwayland
+ gtk: libgtk-3-dev libgtk-4-dev
+ libinput: libinput10 xserver-xorg-input-libinput
+ bluez: bluez bluez-tools
+
+ # Media
+ pipewire: pipewire wireplumber
+
+ # System tools
+ ufw: ufw
+ net-tools: net-tools
+ btop: btop
+ powertop: powertop
+ clamav: clamav
+ smartmontools: smartmontools
+ hdparm: hdparm
+ acpi: acpi
+ parted: parted
+ cups: cups
+ sysstat: sysstat
+ hwinfo: hwinfo
+
+rhel:
+ # Core tools
+ python: python3 python3-pip
+ nodejs: nodejs npm
+ man: man-pages man-db
+ tree: tree
+ ntp: chrony
+ hack-font: adobe-source-code-pro-fonts
+ nerd-fonts: powerline-fonts
+ font-awesome: fontawesome-fonts
+ dejavu-fonts: dejavu-fonts-common
+ networkmanager: NetworkManager
+ qemu: qemu-kvm
+ vscode: code
+ fd: fd-find
+ openssh: openssh-server
+ ansible: ansible
+ ninja: ninja-build
+
+ # Desktop specific
+ xorg: xorg-x11-server-Xorg
+ wayland: wayland-devel xorg-x11-server-Xwayland
+ gtk: gtk3-devel gtk4-devel
+ libinput: libinput
+ bluez: bluez bluez-tools
+
+ # System tools
+ ufw: firewalld
+ net-tools: net-tools
+ btop: htop
+ powertop: powertop
+ clamav: clamav
+ smartmontools: smartmontools
+ hdparm: hdparm
+ acpi: acpi
+ parted: parted
+ cups: cups
+ sysstat: sysstat
+
+opensuse:
+ # Core tools
+ python: python3 python3-pip
+ nodejs: nodejs16 npm16
+ man: man-pages man
+ tree: tree
+ ntp: chrony
+ hack-font: adobe-sourcecodepro-fonts
+ nerd-fonts: powerline-fonts
+ font-awesome: fontawesome-fonts
+ dejavu-fonts: dejavu-fonts
+ networkmanager: NetworkManager
+ qemu: qemu
+ vscode: code
+ openssh: openssh
+ ansible: ansible
+
+gentoo:
+ # Core tools with full package paths
+ git: dev-vcs/git
+ curl: net-misc/curl
+ wget: net-misc/wget
+ zsh: app-shells/zsh
+ bash: app-shells/bash
+ vim: app-editors/vim
+ neovim: app-editors/neovim
+ tmux: app-misc/tmux
+ openssh: net-misc/openssh
+ sudo: app-admin/sudo
+ man: sys-apps/man-pages sys-apps/man-db
+ bc: sys-devel/bc
+ time: sys-process/time
+ rsync: net-misc/rsync
+ tree: app-text/tree
+ gcc: sys-devel/gcc
+ clang: sys-devel/clang
+ make: sys-devel/make
+ cmake: dev-util/cmake
+ meson: dev-util/meson
+ gdb: sys-devel/gdb
+ ninja: dev-util/ninja
+ ripgrep: sys-apps/ripgrep
+ fd: sys-apps/fd
+ python: dev-lang/python
+ nodejs: net-libs/nodejs
+ jq: app-misc/jq
+ fzf: app-shells/fzf
+ emacs: app-editors/emacs
+ vscode: app-editors/vscode
+ go: dev-lang/go
+ htop: sys-process/htop
+ ufw: net-firewall/ufw
+ net-tools: sys-apps/net-tools
+ btop: sys-process/btop
+ powertop: sys-power/powertop
+ clamav: app-antivirus/clamav
+ ntp: net-misc/chrony
+ networkmanager: net-misc/networkmanager
+ smartmontools: sys-apps/smartmontools
+ hdparm: sys-apps/hdparm
+ acpi: sys-power/acpi
+ parted: sys-block/parted
+ cups: net-print/cups
+ sysstat: app-admin/sysstat
+ hwinfo: sys-apps/hwinfo
+ hack-font: media-fonts/hack
+ nerd-fonts: media-fonts/nerd-fonts
+ font-awesome: media-fonts/fontawesome
+ dejavu-fonts: media-fonts/dejavu
+
+ # Desktop
+ xorg: x11-base/xorg-server
+ wayland: dev-libs/wayland x11-base/xwayland
+ xclip: x11-misc/xclip
+ xterm: x11-terms/xterm
+ gtk: x11-libs/gtk+
+ firefox: www-client/firefox
+ mpv: media-video/mpv
+ discord: net-im/discord-bin
+ libinput: dev-libs/libinput x11-drivers/xf86-input-libinput
+ nnn: app-misc/nnn
+ ranger: app-misc/ranger
+ obs-studio: media-video/obs-studio
+ unrar: app-arch/unrar
+ unzip: app-arch/unzip
+ p7zip: app-arch/p7zip
+ imagemagick: media-gfx/imagemagick
+ ffmpeg: media-video/ffmpeg
+ wezterm: x11-terms/wezterm
+ ncdu: sys-fs/ncdu
+ picom: x11-misc/picom
+ rofi: x11-misc/rofi
+ udiskie: sys-fs/udiskie
+ brightnessctl: app-misc/brightnessctl
+ wl-clipboard: gui-apps/wl-clipboard
+ nemo: gnome-extra/nemo
+ blueman: net-wireless/blueman
+ bluez: net-wireless/bluez
+
+ # Window managers
+ hyprland: gui-wm/hyprland
+ bspwm: x11-wm/bspwm
+ sxhkd: x11-misc/sxhkd
+ polybar: x11-misc/polybar
+
+ # Media
+ mpd: media-sound/mpd
+ pipewire: media-video/pipewire media-video/wireplumber
+ ncmpcpp: media-sound/ncmpcpp
+
+ # Gaming
+ wine: app-emulation/wine-vanilla
+ steam: games-util/steam-launcher
+
+ # Virtualization
+ libvirt: app-emulation/libvirt
+ qemu: app-emulation/qemu
+
+alpine:
+ python: python3 py3-pip
+ nodejs: nodejs npm
+ man: man-pages man-db
+ ntp: chrony
+ htop: htop
+ openssh: openssh
+ ansible: ansible
+
+void:
+ python: python3 python3-pip
+ nodejs: nodejs
+ man: man-pages
+ ntp: chrony
+ openssh: openssh
+ ripgrep: ripgrep
+ fd: fd
+ btop: btop
+ networkmanager: NetworkManager
+ ansible: ansible
+
+macos:
+ # Homebrew packages
+ - git
+ - curl
+ - wget
+ - zsh
+ - bash
+ - vim
+ - neovim
+ - tmux
+ - openssh
+ - python3
+ - node
+ - jq
+ - fzf
+ - ripgrep
+ - fd
+ - bat
+ - htop
+ - rsync
+ - cmake
+ - ninja
+ - go
+ - emacs
+ - visual-studio-code
+ - ansible
+
+windows:
+ - git
+ - ripgrep
+ - fd
+ - sudo
+ - win32yank
+ - microsoft-windows-terminal
+ - wsl
+ - firefox
+ - setdefaultbrowser
+ - nodejs
+ - bat
+ - 7zip
+ - python
+ - javaruntime
+ - autohotkey
+ - bitwarden
+ - notepadplusplus
+ - neovim
+
+bloatware:
+ # - Anytime
+ - BioEnrollment
+ # - Browser
+ - ContactSupport
+ - Cortana
+ # - Defender
+ - Feedback
+ - Flash
+ # - Gaming # Breaks Xbox Live Account Login
+ # - Holo
+ # - InternetExplorer
+ - Maps
+ # - MiracastView
+ - OneDrive
+ # - SecHealthUI
+ - Wallet
+ # - Xbox # Causes a bootloop since upgrade 1511?
+
+default:
+ # default Windows 10 apps
+ # - Microsoft.3DBuilder
+ - Microsoft.Appconnector
+ - Microsoft.BingFinance
+ - Microsoft.BingNews
+ - Microsoft.BingSports
+ - Microsoft.BingTranslator
+ - Microsoft.BingWeather
+ # - Microsoft.FreshPaint
+ # - Microsoft.Microsoft3DViewer
+ - Microsoft.MicrosoftOfficeHub
+ - Microsoft.MicrosoftSolitaireCollection
+ - Microsoft.MicrosoftPowerBIForWindows
+ - Microsoft.MinecraftUWP
+ # - Microsoft.MicrosoftStickyNotes
+ # - Microsoft.NetworkSpeedTest
+ - Microsoft.Office.OneNote
+ # - Microsoft.OneConnect
+ - Microsoft.People
+ # - Microsoft.Print3D
+ - Microsoft.SkypeApp
+ - Microsoft.Wallet
+ # - Microsoft.Windows.Photos
+ # - Microsoft.WindowsAlarms
+ # - Microsoft.WindowsCalculator
+ - Microsoft.WindowsCamera
+ - microsoft.windowscommunicationsapps
+ - Microsoft.WindowsMaps
+ - Microsoft.WindowsPhone
+ - Microsoft.WindowsSoundRecorder
+ - Microsoft.WindowsStore
+ # - Microsoft.XboxApp
+ # - Microsoft.XboxGameOverlay
+ # - Microsoft.XboxIdentityProvider
+ # - Microsoft.XboxSpeechToTextOverlay
+ - Microsoft.ZuneMusic
+ - Microsoft.ZuneVideo
+
+ # Threshold 2 apps
+ - Microsoft.CommsPhone
+ - Microsoft.ConnectivityStore
+ - Microsoft.GetHelp
+ - Microsoft.Getstarted
+ - Microsoft.Messaging
+ - Microsoft.Office.Sway
+ - Microsoft.OneConnect
+ - Microsoft.WindowsFeedbackHub
+
+ # Redstone apps
+ - Microsoft.BingFoodAndDrink
+ - Microsoft.BingTravel
+ - Microsoft.BingHealthAndFitness
+ - Microsoft.WindowsReadingList
+
+ # non-Microsoft
+ - king.com.CandyCrushSaga
+ - king.com.CandyCrushSodaSaga
+ - king.com.*
+ - Facebook.Facebook
+
+ # apps which cannot be removed using Remove-AppxPackage
+ # - Microsoft.BioEnrollment
+ # - Microsoft.MicrosoftEdge
+ # - Microsoft.Windows.Cortana
+ # - Microsoft.WindowsFeedback
+ # - Microsoft.XboxGameCallableUI
+ # - Microsoft.XboxIdentityProvider
+ # - Windows.ContactSupport
+
+#======================================
+# Gentoo USE flags configuration
+#======================================
+gentoo_use_flags:
+ git: "curl gpg perl python"
+ curl: "ssl http2 ipv6"
+ wget: "ssl ipv6 nls"
+ zsh: "unicode pcre gdbm"
+ bash: "net nls readline"
+ tmux: "vim-syntax"
+ vim: "python lua ruby perl cscope"
+ neovim: "lua python ruby"
+ emacs: "gtk jpeg png svg tiff xpm cairo dbus json ssl xml"
+ gcc: "cxx fortran graphite jit nptl openmp pch pie ssp"
+ clang: "static-analyzer"
+ python: "sqlite ssl readline ncurses xml"
+ nodejs: "ssl"
+ htop: "unicode lm-sensors"
+ openssh: "ssl kerberos ldap pam"
+ firefox: "dbus gtk3 pulseaudio startup-notification wifi"
+ mpv: "alsa pulseaudio lua drm wayland X"
+ gtk: "wayland X cups introspection"
+ pipewire: "alsa bluetooth jack pulseaudio sound-server"
+ ffmpeg: "alsa encode mp3 opus pulseaudio theora vorbis webp x264 x265"
+ networkmanager: "bluetooth dhclient introspection wifi"
+ bluez: "alsa cups obex readline"
+ qemu: "aio alsa bluetooth curl gtk jpeg ncurses opengl png pulseaudio sdl spice ssh usb vnc"
+ libvirt: "firewalld libssh nfs numa parted qemu sasl udev"
+
+#======================================
+# System tweaks and configurations
+#======================================
+system_tweaks:
+ gnome:
+ # Power management settings
+ - gsettings set org.gnome.desktop.session idle-delay 0
+ - gsettings set org.gnome.settings-daemon.plugins.power sleep-inactive-ac-type 'nothing'
+ - gsettings set org.gnome.settings-daemon.plugins.power sleep-inactive-battery-type 'nothing'
+ # Interface tweaks
+ - gsettings set org.gnome.desktop.interface clock-show-weekday true
+ - gsettings set org.gnome.desktop.interface show-battery-percentage true
+
+ kde:
+ # Power management
+ - kwriteconfig5 --file powermanagementprofilesrc --group AC --group DimDisplay --key idleTime 300000
+ - kwriteconfig5 --file powermanagementprofilesrc --group AC --group DPMSControl --key idleTime 600000
+
+ windows:
+ registry:
+ # Explorer settings
+ - path: "HKCU:\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Advanced"
+ name: "Hidden"
+ value: 1
+ type: "DWORD"
+ description: "Show hidden files"
+ - path: "HKCU:\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Advanced"
+ name: "HideFileExt"
+ value: 0
+ type: "DWORD"
+ description: "Show file extensions"
+ - path: "HKCU:\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Advanced"
+ name: "TaskbarGlomLevel"
+ value: 2
+ type: "DWORD"
+ description: "Never combine taskbar buttons"
+ - path: "HKCU:\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Advanced"
+ name: "TaskbarSmallIcons"
+ value: 1
+ type: "DWORD"
+ description: "Use small taskbar icons"
+
+ # Dark mode
+ - path: "HKCU:\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Themes\\Personalize"
+ name: "AppsUseLightTheme"
+ value: 0
+ type: "DWORD"
+ description: "Use dark theme for apps"
+ - path: "HKCU:\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Themes\\Personalize"
+ name: "SystemUsesLightTheme"
+ value: 0
+ type: "DWORD"
+ description: "Use dark theme for system"
+
+ # Search settings
+ - path: "HKCU:\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Search"
+ name: "SearchBoxTaskbarMode"
+ value: 0
+ type: "DWORD"
+ description: "Hide search box from taskbar"
+
+ features:
+ - name: "Microsoft-Windows-Subsystem-Linux"
+ description: "Windows Subsystem for Linux"
+ requires_admin: true
+ - name: "VirtualMachinePlatform"
+ description: "Virtual Machine Platform"
+ requires_admin: true
+
+ hardening:
+ registry:
+ # Security hardening registry settings
+ - path: "HKLM:\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Policies\\System"
+ name: "EnableLUA"
+ value: 1
+ type: "DWORD"
+ description: "Enable User Account Control"
+ - path: "HKLM:\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Policies\\System"
+ name: "ConsentPromptBehaviorAdmin"
+ value: 2
+ type: "DWORD"
+ description: "UAC prompt for administrators"
+ - path: "HKCU:\\Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings"
+ name: "DisablePasswordCaching"
+ value: 1
+ type: "DWORD"
+ description: "Disable password caching"
+ - path: "HKLM:\\SYSTEM\\CurrentControlSet\\Control\\Lsa"
+ name: "LimitBlankPasswordUse"
+ value: 1
+ type: "DWORD"
+ description: "Limit blank password use"
+ - path: "HKLM:\\SYSTEM\\CurrentControlSet\\Services\\lanmanserver\\parameters"
+ name: "AutoDisconnectTimeout"
+ value: 15
+ type: "DWORD"
+ description: "Auto disconnect timeout"
+ - path: "HKLM:\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Policies\\System"
+ name: "DontDisplayLastUserName"
+ value: 1
+ type: "DWORD"
+ description: "Don't display last username"
+
+ services:
+ disable:
+ - "Fax"
+ - "TelnetD"
+ - "RemoteRegistry"
+ - "Messenger"
+ - "NetMeeting Remote Desktop Sharing"
+ - "Remote Desktop Help Session Manager"
+ - "Routing and Remote Access"
+ - "Simple TCP/IP Services"
+ - "SNMP Service"
+
+ firewall:
+ - "netsh advfirewall set allprofiles state on"
+ - "netsh advfirewall firewall set rule group=\"File and Printer Sharing\" new enable=No"
+ - "netsh advfirewall firewall set rule group=\"Network Discovery\" new enable=No"
+
+ linux:
+ hardening:
+ sysctl:
+ # Network security
+ - net.ipv4.ip_forward = 0
+ - net.ipv4.conf.all.send_redirects = 0
+ - net.ipv4.conf.default.send_redirects = 0
+ - net.ipv4.conf.all.accept_source_route = 0
+ - net.ipv4.conf.default.accept_source_route = 0
+ - net.ipv4.conf.all.accept_redirects = 0
+ - net.ipv4.conf.default.accept_redirects = 0
+ - net.ipv4.conf.all.secure_redirects = 0
+ - net.ipv4.conf.default.secure_redirects = 0
+ - net.ipv4.conf.all.log_martians = 1
+ - net.ipv4.conf.default.log_martians = 1
+ - net.ipv4.icmp_echo_ignore_broadcasts = 1
+ - net.ipv4.icmp_ignore_bogus_error_responses = 1
+ - net.ipv4.conf.all.rp_filter = 1
+ - net.ipv4.conf.default.rp_filter = 1
+ - net.ipv4.tcp_syncookies = 1
+ - net.ipv6.conf.all.accept_ra = 0
+ - net.ipv6.conf.default.accept_ra = 0
+ - net.ipv6.conf.all.accept_redirects = 0
+ - net.ipv6.conf.default.accept_redirects = 0
+
+ # Kernel security
+ - kernel.dmesg_restrict = 1
+ - kernel.kptr_restrict = 2
+ - kernel.yama.ptrace_scope = 1
+ - kernel.kexec_load_disabled = 1
+ - kernel.unprivileged_bpf_disabled = 1
+ - net.core.bpf_jit_harden = 2
+
+ # Memory protection
+ - kernel.randomize_va_space = 2
+ - vm.mmap_min_addr = 65536
+
+ packages:
+ security:
+ - fail2ban
+ - ufw
+ - rkhunter
+ - chkrootkit
+ - lynis
+ - aide
+ - apparmor
+ - apparmor-utils
+
+ services:
+ disable:
+ - avahi-daemon
+ - cups
+ - bluetooth
+ - whoopsie
+ - apport
+ enable:
+ - ufw
+ - fail2ban
+ - apparmor
+
+ filesystem:
+ - "chmod 700 /root"
+ - "chmod 644 /etc/passwd"
+ - "chmod 600 /etc/shadow"
+ - "chmod 644 /etc/group"
+ - "chmod 600 /etc/gshadow"
+ - "find /home -name '.netrc' -delete"
+ - "find /home -name '.rhosts' -delete"
+
+ macos:
+ hardening:
+ defaults:
+ # Security settings
+ - domain: "com.apple.screensaver"
+ key: "askForPassword"
+ value: 1
+ type: "int"
+ description: "Require password after screensaver"
+ - domain: "com.apple.screensaver"
+ key: "askForPasswordDelay"
+ value: 0
+ type: "int"
+ description: "Require password immediately"
+ - domain: "com.apple.Safari"
+ key: "SendDoNotTrackHTTPHeader"
+ value: 1
+ type: "bool"
+ description: "Enable Do Not Track"
+ - domain: "com.apple.Safari"
+ key: "AutoFillPasswords"
+ value: 0
+ type: "bool"
+ description: "Disable password autofill"
+ - domain: "com.apple.loginwindow"
+ key: "GuestEnabled"
+ value: 0
+ type: "bool"
+ description: "Disable guest account"
+ - domain: "com.apple.loginwindow"
+ key: "SHOWFULLNAME"
+ value: 1
+ type: "bool"
+ description: "Show full name in login window"
+
+ system:
+ - "sudo spctl --master-enable" # Enable Gatekeeper
+ - "sudo defaults write /Library/Preferences/com.apple.alf globalstate -int 1" # Enable firewall
+ - "sudo launchctl load /System/Library/LaunchDaemons/com.apple.locate.plist" # Enable locate database
+
+ services:
+ disable:
+ - "com.apple.AirPlayXPCHelper"
+ - "com.apple.RemoteDesktop.agent"
+
+ packages:
+ security:
+ - gpg
+ - gnupg
+ - pinentry-mac
+
+#======================================
+# Service configurations
+#======================================
+services:
+ enable:
+ all:
+ - sshd
+ - networkmanager
+ server:
+ - firewalld
+ - chronyd
+ desktop:
+ - bluetooth
+ - cups
+ disable:
+ server:
+ - bluetooth
+ - cups
+ - gdm
+ minimal:
+ - cups
+ - bluetooth
+
+#======================================
+# Development environment configurations
+#======================================
+development:
+ git_config:
+ - git config --global init.defaultBranch main
+ - git config --global pull.rebase false
+ - git config --global core.editor vim
+
+ rust:
+ components:
+ - rustc
+ - cargo
+ - clippy
+ - rustfmt
+
+ nodejs:
+ global_packages:
+ - typescript
+ - eslint
+ - prettier
+
+ python:
+ global_packages:
+ - black
+ - flake8
+ - mypy
+ - requests
+ - virtualenvwrapper
+
+#======================================
+# System update checks and maintenance
+#======================================
+system_updates:
+ linux:
+ kernel_check:
+ - "uname -r" # Current kernel
+ - "ls /boot/vmlinuz-* | tail -1 | sed 's/.*vmlinuz-//'" # Latest available
+
+ distro_updates:
+ arch:
+ check: "checkupdates"
+ update: "pacman -Syu"
+ kernel_update: "pacman -S linux linux-headers"
+ debian:
+ check: "apt list --upgradable"
+ update: "apt update && apt upgrade -y"
+ kernel_update: "apt install linux-image-generic linux-headers-generic"
+ rhel:
+ check: "dnf check-update"
+ update: "dnf update -y"
+ kernel_update: "dnf update kernel kernel-headers"
+ gentoo:
+ check: "emerge -pv --update --deep --newuse @world"
+ update: "emerge --update --deep --newuse @world"
+ kernel_update: "emerge gentoo-sources && genkernel all"
+
+ macos:
+ system_updates:
+ check: "softwareupdate -l"
+ update: "softwareupdate -ia"
+ major_check: "softwareupdate --list-full-installers"
+
+ windows:
+ system_updates:
+ check: "Get-WindowsUpdate -MicrosoftUpdate"
+ update: "Install-WindowsUpdate -MicrosoftUpdate -AcceptAll -AutoReboot"
+ feature_updates: "Get-WindowsUpdate -UpdateType Software"
+
+#======================================
+# Custom installation commands
+#======================================
+custom_installs:
+ yq:
+ condition: "! command -v yq"
+ linux: |
+ mkdir -p "$HOME/.local/bin"
+ YQ_VERSION=$(curl -s https://api.github.com/repos/mikefarah/yq/releases/latest | grep 'tag_name' | cut -d'"' -f4)
+ YQ_BINARY="yq_linux_amd64"
+ curl -L "https://github.com/mikefarah/yq/releases/download/${YQ_VERSION}/${YQ_BINARY}" -o "$HOME/.local/bin/yq"
+ chmod +x "$HOME/.local/bin/yq"
+ macos: "brew install yq"
+ windows: "choco install yq"
+
+ homebrew:
+ condition: "test $(uname) = Darwin && ! command -v brew"
+ macos: '/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"'
+
+ system_updates:
+ condition: "true" # Always available
+ description: "Check and install system updates"
+ linux: |
+ case "$CFG_DISTRO" in
+ arch) checkupdates && sudo pacman -Syu ;;
+ debian|ubuntu) apt list --upgradable && sudo apt update && sudo apt upgrade -y ;;
+ rhel|fedora|centos) dnf check-update && sudo dnf update -y ;;
+ gentoo) emerge -pv --update --deep --newuse @world && sudo emerge --update --deep --newuse @world ;;
+ *) echo "Unsupported distribution for automatic updates" ;;
+ esac
+ macos: "softwareupdate -l && sudo softwareupdate -ia"
+ windows: |
+ if (Get-Module -ListAvailable -Name PSWindowsUpdate) {
+ Get-WindowsUpdate -MicrosoftUpdate
+ Install-WindowsUpdate -MicrosoftUpdate -AcceptAll -AutoReboot
+ } else {
+ Write-Host "PSWindowsUpdate module not installed. Install with: Install-Module PSWindowsUpdate"
+ }
+
+ zsh_plugins:
+ condition: "command -v zsh"
+ description: "Install common Zsh plugins"
+ linux: |
+ ZPLUG_DIR="$HOME/.config/zsh/plugins"; mkdir -p "$ZPLUG_DIR"; command -v git >/dev/null 2>&1 || exit 0; c(){ n="$1"; u="$2"; [ -d "$ZPLUG_DIR/$n" ] && return 0; env -i PATH="$PATH" HOME="$HOME" GIT_TERMINAL_PROMPT=0 GIT_ASKPASS=/bin/true git -c credential.helper= -c core.askPass= clone --depth 1 --single-branch "$u" "$ZPLUG_DIR/$n" 2>/dev/null || true; }; c zsh-you-should-use https://github.com/MichaelAquilina/zsh-you-should-use.git; c zsh-syntax-highlighting https://github.com/zsh-users/zsh-syntax-highlighting.git; c zsh-autosuggestions https://github.com/zsh-users/zsh-autosuggestions.git
+ macos: |
+ ZPLUG_DIR="$HOME/.config/zsh/plugins"; mkdir -p "$ZPLUG_DIR"; command -v git >/dev/null 2>&1 || exit 0; c(){ n="$1"; u="$2"; [ -d "$ZPLUG_DIR/$n" ] && return 0; env -i PATH="$PATH" HOME="$HOME" GIT_TERMINAL_PROMPT=0 GIT_ASKPASS=/bin/true git -c credential.helper= -c core.askPass= clone --depth 1 --single-branch "$u" "$ZPLUG_DIR/$n" 2>/dev/null || true; }; c zsh-you-should-use https://github.com/MichaelAquilina/zsh-you-should-use.git; c zsh-syntax-highlighting https://github.com/zsh-users/zsh-syntax-highlighting.git; c zsh-autosuggestions https://github.com/zsh-users/zsh-autosuggestions.git
+
+ vscode_extensions:
+ condition: "command -v code"
+ description: "Install template VSCode extensions"
+ linux: |
+ for e in ms-python.python ms-vscode.cpptools golang.Go rust-lang.rust-analyzer esbenp.prettier-vscode eamodio.gitlens ms-azuretools.vscode-docker hashicorp.terraform redhat.ansible; do code --install-extension "$e" --force >/dev/null 2>&1 || true; done
+ macos: |
+ for e in ms-python.python ms-vscode.cpptools golang.Go rust-lang.rust-analyzer esbenp.prettier-vscode eamodio.gitlens ms-azuretools.vscode-docker hashicorp.terraform redhat.ansible; do code --install-extension "$e" --force >/dev/null 2>&1 || true; done
+
+ nix_home_manager:
+ condition: "command -v nix-env"
+ description: "Bootstrap Home Manager if missing"
+ linux: |
+ if ! command -v home-manager >/dev/null 2>&1; then nix-channel --add https://github.com/nix-community/home-manager/archive/master.tar.gz home-manager || true; nix-channel --update || true; nix-shell '<home-manager>' -A install || true; fi
+ macos: |
+ if ! command -v home-manager >/dev/null 2>&1; then nix-channel --add https://github.com/nix-community/home-manager/archive/master.tar.gz home-manager || true; nix-channel --update || true; nix-shell '<home-manager>' -A install || true; fi
+
+
+#======================================
+# Profile-specific package lists
+#======================================
+profiles:
+ essentials:
+ description: "Essential packages only (git, curl, wget, vim, zsh)"
+ packages:
+ - common
+ - essentials
+
+ minimal:
+ description: "Minimal setup for basic development"
+ packages:
+ - common
+ - essentials
+ - minimal
+
+ dev:
+ description: "Full development environment"
+ packages:
+ - common
+ - essentials
+ - minimal
+ - dev
+ enable_development: true
+
+ server:
+ description: "Server configuration"
+ packages:
+ - common
+ - essentials
+ - minimal
+ - server
+ enable_services: server
+
+ full:
+ description: "Complete installation with all packages"
+ packages:
+ - common
+ - essentials
+ - minimal
+ - dev
+ - server
+ - desktop
+ - wm
+ - media
+ - fonts
+ enable_development: true
+ enable_services: desktop
+
+#======================================
+# Package management helpers
+#======================================
+package_managers:
+ arch:
+ update: "pacman -Syu"
+ install: "pacman -S --noconfirm"
+ search: "pacman -Ss"
+
+ debian:
+ update: "apt update && apt upgrade -y"
+ install: "apt install -y"
+ search: "apt search"
+
+ rhel:
+ update: "dnf update -y"
+ install: "dnf install -y"
+ search: "dnf search"
+
+ fedora:
+ update: "dnf update -y"
+ install: "dnf install -y"
+ search: "dnf search"
+
+ opensuse:
+ update: "zypper update -y"
+ install: "zypper install -y"
+ search: "zypper search"
+
+ gentoo:
+ update: "emerge --sync && emerge -uDN @world"
+ install: "emerge"
+ search: "emerge --search"
+
+ alpine:
+ update: "apk update && apk upgrade"
+ install: "apk add"
+ search: "apk search"
+
+ void:
+ update: "xbps-install -Su"
+ install: "xbps-install -y"
+ search: "xbps-query -Rs"
+
+ macos:
+ update: "brew update && brew upgrade"
+ install: "brew install"
+ search: "brew search"
+
+ windows:
+ update: "choco upgrade all -y"
+ install: "choco install -y"
+ search: "choco search"
+ nix:
+ update: "nix-channel --update && nix-env -u"
+ install: "nix-env -iA"
+ search: "nix-env -qaP"