better stow

This commit is contained in:
2025-12-20 15:25:47 +01:00
parent a868f645fa
commit 59f8c2931c
2 changed files with 35 additions and 25 deletions
+4
View File
@@ -38,6 +38,10 @@ https://github.com/user-attachments/assets/7e2db305-58bc-4b3d-9c65-7dc0461aead7
## Setup Overview ## Setup Overview
> [!NOTE]
>
> See also [config-stow](./config-stow) for the list of stow packages.
- OS: **Archlinux** - OS: **Archlinux**
- WM: Hyprland | **Niri** - WM: Hyprland | **Niri**
- Bar: Waybar | **Quickshell** - Bar: Waybar | **Quickshell**
+31 -25
View File
@@ -5,46 +5,52 @@ from argparse import ArgumentParser
from pathlib import Path from pathlib import Path
BASE_PKGS = [ BASE_PKGS = [
"clang", "clang", # C/C++ development
"scripts", "scripts", # scripts & snippets
"stow" "stow" # --target=~
] ]
# for TUI only setups
# e.g. servers that are accessed via SSH only
TUI_PKGS = [ TUI_PKGS = [
*BASE_PKGS, *BASE_PKGS,
"fastfetch", "fastfetch", # sys info
"nvim", "nvim", # editor
"shell", "shell", # fish & .bash_profile & shell prompt
"yazi" "yazi" # terminal file manager
] ]
# for all WMs and DEs
GUI_BASE_PKGS = [ GUI_BASE_PKGS = [
*TUI_PKGS, *TUI_PKGS,
"kitty", "kitty", # terminal emulator
"ghostty", "ghostty", # alternative terminal emulator
"misc", "misc", # miscellaneous GUI configs (e.g. *-flags)
"mpv", "mpv", # media player
"wallpaper", "wallpaper", # wallpapers & manager
"kvantum", "kvantum", # qt theming
"nwg-look" "nwg-look" # gtk theming
] ]
# for Hyprland setup
HYPRLAND_PKGS = [ HYPRLAND_PKGS = [
*GUI_BASE_PKGS, *GUI_BASE_PKGS,
"eww", "eww", # widgets
"hypr", "hypr", # hypr family
"mako", "mako", # notifications
"rofi", "rofi", # application launcher
"waybar", "waybar", # status bar
"wlogout" "wlogout" # logout menu
] ]
# for Niri setup
NIRI_PKGS = [ NIRI_PKGS = [
*GUI_BASE_PKGS, *GUI_BASE_PKGS,
"niri", "hypr", # for hyprlock & hypridle
"quickshell", "niri", # wm config
"rofi", "quickshell", # widget & status bar & notifications & ...
"wlogout" "rofi", # application launcher
"wlogout" # logout menu
] ]
PKGS = { PKGS = {
@@ -75,7 +81,7 @@ def switch(session: str):
def main(): def main():
parser = ArgumentParser(description="Stow configuration packages.") parser = ArgumentParser(description="Stow configuration packages in this repository.")
parser.add_argument( parser.add_argument(
"package", "package",
choices=PKGS.keys(), choices=PKGS.keys(),