From ed44e18ebd6715650e69fd6e87685f0b792979e6 Mon Sep 17 00:00:00 2001 From: Don Williams Date: Sat, 29 Aug 2026 20:55:15 -0400 Subject: del old docs add howto upgrade english and spanish Signed-off-by: Don Williams On branch development Your branch is up to date with 'origin/development'. Changes to be committed: modified: CHANGELOG.md modified: config/hypr/lua/keybinds.lua modified: config/hypr/scripts/Dock.sh new file: docs/HOWTO-Upgrade-Dotfiles.es.md new file: docs/HOWTO-Upgrade-Dotfiles.md deleted: docs/Hyprland-LUA-analysis-Phase1.md modified: docs/Keybinds.md deleted: docs/copy.sh-tui-analysis-3-14-2026.md --- CHANGELOG.md | 2 + config/hypr/lua/keybinds.lua | 2 +- config/hypr/scripts/Dock.sh | 2 +- docs/HOWTO-Upgrade-Dotfiles.es.md | 51 +++++++ docs/HOWTO-Upgrade-Dotfiles.md | 51 +++++++ docs/Hyprland-LUA-analysis-Phase1.md | 159 ------------------- docs/Keybinds.md | 270 +++++++++++++++++---------------- docs/copy.sh-tui-analysis-3-14-2026.md | 105 ------------- 8 files changed, 247 insertions(+), 395 deletions(-) create mode 100644 docs/HOWTO-Upgrade-Dotfiles.es.md create mode 100644 docs/HOWTO-Upgrade-Dotfiles.md delete mode 100644 docs/Hyprland-LUA-analysis-Phase1.md delete mode 100644 docs/copy.sh-tui-analysis-3-14-2026.md diff --git a/CHANGELOG.md b/CHANGELOG.md index 18ace9b4..3350c47e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,8 @@ ## Added: +- `docs/HOWTO-Upgrade-Dotfiles.md` +- Spanish translation: `docs/HOWTO-Upgrade-Dotfiles.es.md` - `nwg-dock-hyprland` that themes with wallpaper - LUA script `float.all.samesizze.lua`script - `SUPER + CTRL + SPACE` to activate diff --git a/config/hypr/lua/keybinds.lua b/config/hypr/lua/keybinds.lua index 39c33c21..d280a13b 100644 --- a/config/hypr/lua/keybinds.lua +++ b/config/hypr/lua/keybinds.lua @@ -5,7 +5,7 @@ -- SPDX-License-Identifier: GPL-3.0-or-later -- ================================================== --- Auto-generated from Keybinds.conf/UserKeybinds.conf for Lua testing +-- Default keybindings for KoolDots Hyprland Lua configuration. -- Helper internals live in keybind_helpers.lua so this file stays focused on bindings you may edit. -- To add a binding, copy an existing bind(...) line and change: -- 1) modifiers (e.g. "SUPER SHIFT") diff --git a/config/hypr/scripts/Dock.sh b/config/hypr/scripts/Dock.sh index e42c4e1b..c62bf2ce 100755 --- a/config/hypr/scripts/Dock.sh +++ b/config/hypr/scripts/Dock.sh @@ -37,7 +37,7 @@ start_dock() { # -c : launcher button command (rofi menu) # (no -d : no auto-hide) local launcher_cmd="${SCRIPTSDIR}/RofiLauncher.sh" - nwg-dock-hyprland -p bottom -x -i 32 -g "kitty-dropterm" -mb 7 -mt 5 -c "$launcher_cmd" >/dev/null 2>&1 & + nwg-dock-hyprland -p bottom -x -i 32 -g "kitty-dropterm" -mb 10 -c "$launcher_cmd" >/dev/null 2>&1 & } case "${1:-toggle}" in diff --git a/docs/HOWTO-Upgrade-Dotfiles.es.md b/docs/HOWTO-Upgrade-Dotfiles.es.md new file mode 100644 index 00000000..a5bf0271 --- /dev/null +++ b/docs/HOWTO-Upgrade-Dotfiles.es.md @@ -0,0 +1,51 @@ +# Cómo actualizar los instaladores y dotfiles de KoolDots + +- Al actualizar los dotfiles, actualice primero el instalador + - Esto garantiza que se instalen las dependencias nuevas o actualizadas + - Elimine las versiones antiguas del instalador de su distribución + - Por ejemplo: `Arch-Hyprland` o `Debian-Hyprland` + - `rm -r ~/Arch-Hyprland` (o la distribución que esté utilizando) + - Clone el instalador más reciente para su distribución. + +```sh + git clone https://github.com/Linuxbeginnings/Arch-Hyprland --depth 1 + cd ~/Arch-Hyprland + install-scripts/update-deps.sh +``` + +- Elimine el directorio antiguo de `Hyprland-Dots` si corresponde + - Clone la versión más reciente de Hyprland-Dots + +```sh + git clone https://github.com/Linuxbeginnings/Hyprland-Dots --depth 1 + cd ~/Hyprland-Dots + ./copy.sh + seleccione `Express update` +``` + +- `Express update` es más rápido y muchas de las preguntas de restauración ya no son necesarias +- Especialmente al migrar desde los archivos de configuración antiguos en `Hyprlang` a los archivos de configuración en `LUA` +- Un atajo útil es: + `./copy.sh --express-upgrade` + - También hay disponible un menú simple en `TTY`: + - `./copy.sh --tty --express-upgrade` + +- Si no hubo errores, reinicie el sistema con `reboot` + +| Nota: Si desea mantener limpio su directorio personal ($HOME), puede mover estos directorios + +- Para usuarios más familiarizados con `git`: + - Ejecute: + - Arch se muestra aquí como ejemplo: + + ```sh + cd ~/Arch-Hyprland + git stash && git pull + install-scripts/update-deps.sh + cd ~/Hyprland-Dots + git stash && git pull + ./copy.sh + seleccione Express Upgrade + ``` + + | Nota: Este método puede generar ocasionalmente conflictos de fusión (`merge`) en `git`. El método anterior siempre funciona diff --git a/docs/HOWTO-Upgrade-Dotfiles.md b/docs/HOWTO-Upgrade-Dotfiles.md new file mode 100644 index 00000000..3561a574 --- /dev/null +++ b/docs/HOWTO-Upgrade-Dotfiles.md @@ -0,0 +1,51 @@ +# How to upgrade the KoolDots Installers and Dotfiles + +- On updates to dotfiles, update the installer first + - This ensures that any new or updated dependencies get installed + - Remove any old versions of your distro installer + - I.e. `Arch-Hyprland` or `Debian-Hyprland` + - `rm -r ~/Arch-Hyprland` (Or whatever distro you are using) + - Clone the latest installer for your distro. + +```sh + git clone https://github.com/Linuxbeginnings/Arch-Hyprland --depth 1 + cd ~/Arch-Hyprland + install-scripts/update-deps.sh +``` + +- Remove old `Hyprland-Dots` if applicable + - Clone latest Hyprland-Dots + +```sh + git clone https://github.com/Linuxbeginnings/Hyprland-Dots --depth 1 + cd ~/Hyprland-Dots + ./copy.sh + select `Express update` +``` + +- `Express update` is faster and many of the restore questions are no longer needed +- Especially moving from the old `Hyprlang` config files to `LUA` config files +- A handy shortcut is: + `./copy.sh --express-upgrade` + - A simple `TTY` menu is also available + - `./copy.sh --tty --express-upgrade` + +- Assuming no errors `reboot` + +| Note: If you want to de-clutter your home directory you can move these directories + +- For those more familiar with `git` + - Run: + - Arch here is example + + ```sh + cd ~/Arch-Hyprland + git stash && git pull + install-scripts/update-deps.sh + cd ~/Hyprland-Dots + git stash && git pull + ./copy.sh + select Express Upgrade + ``` + + | Note: This method on occasion can generate `git` merge errors. Method above always works diff --git a/docs/Hyprland-LUA-analysis-Phase1.md b/docs/Hyprland-LUA-analysis-Phase1.md deleted file mode 100644 index e08901db..00000000 --- a/docs/Hyprland-LUA-analysis-Phase1.md +++ /dev/null @@ -1,159 +0,0 @@ -# 🧭 Hyprland → Lua Migration Analysis (Phase 1) -Focus: identify scripts/configs that **write Hyprland config files** and therefore must change for Lua. - ---- - -## 📌 Table of Contents -- [🎯 Scope & Assumptions](#-scope--assumptions) -- [🧩 Hyprland Config Entry Points](#-hyprland-config-entry-points) -- [✍️ Direct Hyprland Config Writers (must change)](#️-direct-hyprland-config-writers-must-change) -- [🧪 Indirect / Generated Config Writers](#-indirect--generated-config-writers) -- [🧰 Install/Upgrade Writers (copy/restore paths)](#-installupgrade-writers-copyrestore-paths) -- [📟 Runtime‑Only Files (no file writes)](#-runtime-only-files-no-file-writes) -- [📝 Notes / Follow‑ups](#-notes--follow-ups) - ---- - -## 🎯 Scope & Assumptions -Goal: Identify **files that directly modify Hyprland config on disk** (or generate files sourced by Hyprland), because those will need updating for Lua. - -Out of scope: The new Lua syntax itself. - ---- - -## 🧩 Hyprland Config Entry Points -**Primary file:** `Hyprland-Dots/config/hypr/hyprland.conf` - -This file **sources**: -- `Hyprland-Dots/config/hypr/configs/*.conf` -- `Hyprland-Dots/config/hypr/UserConfigs/*.conf` -- `Hyprland-Dots/config/hypr/monitors.conf` -- `Hyprland-Dots/config/hypr/workspaces.conf` - -Also: -- `Hyprland-Dots/config/hypr/UserConfigs/UserDecorations.conf` **sources** - `~/.config/hypr/wallust/wallust-hyprland.conf` - -➡️ Any script that writes these files must be updated for Lua. - ---- - -## ✍️ Direct Hyprland Config Writers (must change) -These **write/overwrite Hyprland config files**: - -### 🖥️ Monitor Profiles -- `Hyprland-Dots/config/hypr/scripts/MonitorProfiles.sh` - **Writes:** `~/.config/hypr/monitors.conf` - **How:** `cp` chosen profile from `Monitor_Profiles/*.conf` - -### 🎞️ Animations -- `Hyprland-Dots/config/hypr/scripts/Animations.sh` - **Writes:** `~/.config/hypr/UserConfigs/UserAnimations.conf` - **How:** `cp` selected animation file into UserConfigs - -### 🧱 Window Rules Version Switch -- `Hyprland-Dots/config/hypr/scripts/update_WindowRules.sh` - **Writes:** `~/.config/hypr/configs/WindowRules.conf` - **How:** backup + `cp` from `WindowRules-config-v3.conf`, then `hyprctl reload` - -### 🎬 Startup Apps (wallpaper switching) -- `Hyprland-Dots/config/hypr/UserScripts/WallpaperSelect.sh` - **Writes:** `~/.config/hypr/UserConfigs/Startup_Apps.conf` - **How:** `sed -i` toggles `exec-once` lines and updates `$livewallpaper` - -### 🗂️ UserConfig swapper -- `Hyprland-Dots/config/hypr/scripts/UserConfigsSwitcher.sh` - **Writes:** directory move/rename - **How:** `mv` between `UserConfigs` and `UserConfigsBak` - ---- - -## 🧪 Indirect / Generated Config Writers -These generate **files that Hyprland sources**: - -### 🎨 Wallust → Hyprland colors -- `Hyprland-Dots/config/hypr/scripts/ThemeChanger.sh` -- `Hyprland-Dots/config/hypr/scripts/WallustSwww.sh` - -**Writes/overwrites:** -`~/.config/hypr/wallust/wallust-hyprland.conf` - -**Used by:** -`Hyprland-Dots/config/hypr/UserConfigs/UserDecorations.conf` (sources it) - -➡️ The Lua migration must either keep a compatible generated file or switch the generator target. - ---- - -## 🧰 Install/Upgrade Writers (copy/restore paths) -These **modify Hyprland configs during install/upgrade**: - -### 🔧 `copy.sh` -- Edits `Hyprland-Dots/config/hypr/configs/ENVariables.conf` (enables hyprcursor) -- Modifies `~/.config/hypr/configs/Startup_Apps.conf` (quickshell migration) -- Renames/switches `hyprlock.conf` variants (not Hyprland config, but in same dir) -- Calls restore helpers below - -### 🧱 `scripts/lib_copy.sh` -Restores/copies: -- `~/.config/hypr/monitors.conf` -- `~/.config/hypr/workspaces.conf` -- `~/.config/hypr/UserConfigs/Startup_Apps.conf` -- `~/.config/hypr/UserConfigs/WindowRules.conf` -- `~/.config/hypr/UserConfigs/UserKeybinds.conf` -- Additional UserConfigs overlay logic - ---- - -## 📟 Runtime‑Only Files (no file writes) -These **appear to be runtime-only** (no direct file writes detected; they act via `hyprctl`, process control, notifications, etc.): - -### ✅ Scripts -- `Hyprland-Dots/config/hypr/scripts/AirplaneMode.sh` -- `Hyprland-Dots/config/hypr/scripts/Battery.sh` -- `Hyprland-Dots/config/hypr/scripts/BrightnessKbd.sh` -- `Hyprland-Dots/config/hypr/scripts/Brightness.sh` -- `Hyprland-Dots/config/hypr/scripts/ChangeBlur.sh` -- `Hyprland-Dots/config/hypr/scripts/ChangeLayout.sh` -- `Hyprland-Dots/config/hypr/scripts/ClipManager.sh` -- `Hyprland-Dots/config/hypr/scripts/ExternalBrightness.sh` -- `Hyprland-Dots/config/hypr/scripts/fastfetch-wrapper.sh` -- `Hyprland-Dots/config/hypr/scripts/Float-all-Windows.sh` -- `Hyprland-Dots/config/hypr/scripts/GameMode.sh` -- `Hyprland-Dots/config/hypr/scripts/Hypridle.sh` -- `Hyprland-Dots/config/hypr/scripts/KeybindsLayoutInit.sh` -- `Hyprland-Dots/config/hypr/scripts/keybinds_parser.py` -- `Hyprland-Dots/config/hypr/scripts/KeyboardLayout.sh` -- `Hyprland-Dots/config/hypr/scripts/KeyHints.sh` -- `Hyprland-Dots/config/hypr/scripts/KillActiveProcess.sh` -- `Hyprland-Dots/config/hypr/scripts/LockScreen.sh` -- `Hyprland-Dots/config/hypr/scripts/MediaCtrl.sh` -- `Hyprland-Dots/config/hypr/scripts/OverviewToggle.sh` -- `Hyprland-Dots/config/hypr/scripts/Polkit-NixOS.sh` -- `Hyprland-Dots/config/hypr/scripts/Polkit.sh` -- `Hyprland-Dots/config/hypr/scripts/PortalHyprland.sh` -- `Hyprland-Dots/config/hypr/scripts/PortalHyprlandUbuntu.sh` -- `Hyprland-Dots/config/hypr/scripts/RefreshNoWaybar.sh` -- `Hyprland-Dots/config/hypr/scripts/rofi-emacs-keybinds` -- `Hyprland-Dots/config/hypr/scripts/RofiSearch.sh` -- `Hyprland-Dots/config/hypr/scripts/Sounds.sh` -- `Hyprland-Dots/config/hypr/scripts/Toggle-Active-Window-Audio.sh` -- `Hyprland-Dots/config/hypr/scripts/UptimeNixOS.sh` -- `Hyprland-Dots/config/hypr/scripts/Volume.sh` -- `Hyprland-Dots/config/hypr/scripts/WallpaperDaemon.sh` -- `Hyprland-Dots/config/hypr/scripts/WaybarScripts.sh` -- `Hyprland-Dots/config/hypr/scripts/Wlogout.sh` - -### ✅ UserScripts -- `Hyprland-Dots/config/hypr/UserScripts/00-Readme` -- `Hyprland-Dots/config/hypr/UserScripts/RofiCalc.sh` -- `Hyprland-Dots/config/hypr/UserScripts/WallpaperRandom.sh` -- `Hyprland-Dots/config/hypr/UserScripts/WeatherWrap.sh` - ---- - -## 📝 Notes / Follow‑ups -Important: -Some scripts are **file writers but not Hyprland config writers** (e.g., `install-uv.sh`, `Distro_update.sh`, and the binary `dots-tui-ubuntu-2404`). They don’t touch Hyprland configs but do modify the system. - -If you want an **exact “no file writes anywhere” list**, I can do a stricter pass (including temp/status files, downloads, etc.). diff --git a/docs/Keybinds.md b/docs/Keybinds.md index c0e91d74..4044c149 100644 --- a/docs/Keybinds.md +++ b/docs/Keybinds.md @@ -1,178 +1,190 @@ # Hyprland Default Keybinds -Source: `config/hypr/configs/Keybinds.conf` +Source: `config/hypr/lua/keybinds.lua` ## Legend -- `SUPER` = `$mainMod` +- `SUPER` = `$mainMod` (Super / Windows key) - `code:10..19` = number row `1..0` -- Arrows/print/media keys are shown with their readable names +- Arrows, function keys, mouse triggers, and media keys are shown with their readable names -## Duplicate Audit -### Intentional stacked bind +## Duplicate / Intentional Stacked Binds Audit - `ALT + Tab` - - `cyclenext` (cycle next window) - - `bringactivetotop` (raise newly selected/covered window) - -### Potential conflicts -- None currently detected in `Keybinds.conf` (excluding intentional stacked binds). + - `cyclenext` (cycles window focus via `LuaCycleWindow.sh next`) +- `SUPER + Tab` / `SUPER + SHIFT + Tab` + - Group active cycle (`changegroupactive f/b`) and workspace cycle (`workspace e+1/e-1`) ## Launcher / App Shortcuts -- `SUPER + D` — App launcher (Rofi) -- `SUPER + Return` — Terminal -- `SUPER + SHIFT + Return` — Dropdown terminal -- `SUPER + E` — File manager -- `SUPER + B` — Browser -- `SUPER + C` — SSH menu -- `SUPER + S` — Web search -- `SUPER + CTRL + S` — Window switcher -- `SUPER + ALT + E` — Emoji menu -- `SUPER + ALT + C` — Calculator -- `SUPER + H` — Help / cheat sheet -- `SUPER + SHIFT + K` — Search keybinds helper - -## Appearance / Theme / Wallpaper -- `SUPER + T` — Global theme switcher -- `SUPER + CTRL + R` — Rofi theme selector -- `SUPER + CTRL + SHIFT + R` — Modified Rofi theme selector -- `SUPER + CTRL + K` — Kitty theme selector -- `SUPER + CTRL + G` — Ghostty theme selector -- `SUPER + SHIFT + O` — Change ZSH theme -- `SUPER + W` — Select wallpaper -- `SUPER + SHIFT + W` — Wallpaper effects -- `CTRL + ALT + W` — Random wallpaper -- `SUPER + CTRL + O` — Toggle active window opacity -- `SUPER + ALT + O` — Toggle blur -- `SUPER + SHIFT + B` — Set static rainbow border +- `SUPER + D` — App launcher (Rofi drun, filebrowser, run, window) +- `SUPER + Return` — Terminal (`LaunchTerminal.sh '$term'`) +- `SUPER + SHIFT + Return` — Dropdown terminal (`Dropterminal.sh kitty`) +- `SUPER + E` — File manager (`LaunchFileManager.sh '$files' '$term'`) +- `SUPER + B` — Default browser (`xdg-open "https://"`) +- `SUPER + C` — SSH session manager (`rofi-ssh-menu.sh`) +- `SUPER + S` — Web search (`RofiSearch.sh`) +- `SUPER + CTRL + S` — Window switcher (`rofi -show window`) +- `SUPER + ALT + E` — Emoji menu (`RofiEmoji.sh`) +- `SUPER + ALT + C` — Calculator (`RofiCalc.sh`) +- `SUPER + SHIFT + M` — Online music & stations (`RofiBeats.sh`) +- `SUPER + H` — Help / cheat sheet (`KeyHints.sh`) +- `SUPER + SHIFT + K` — Search keybinds helper (`KeyBinds.sh`) + +## Appearance / Theme / Wallpaper / Zoom +- `SUPER + T` — Global theme switcher using Wallust (`ThemeChanger.sh`) +- `SUPER + CTRL + R` — Rofi theme selector (`RofiThemeSelector.sh`) +- `SUPER + CTRL + SHIFT + R` — Modified Rofi theme selector (`RofiThemeSelector-modified.sh`) +- `SUPER + CTRL + K` — Kitty theme selector (`Kitty_themes.sh`) +- `SUPER + CTRL + G` — Ghostty theme selector (`Ghostty_themes.sh`) +- `SUPER + SHIFT + O` — Change Oh-My-Zsh theme (`ZshChangeTheme.sh`) +- `SUPER + SHIFT + A` — Animations menu (`Animations.sh`) +- `SUPER + W` — Select wallpaper (`WallpaperSelect.sh`) +- `SUPER + SHIFT + W` — Wallpaper effects (`WallpaperEffects.sh`) +- `CTRL + ALT + W` — Random wallpaper (`WallpaperRandom.sh`) +- `SUPER + CTRL + O` — Toggle active window opacity (`setprop active opaque toggle`) +- `SUPER + ALT + O` — Toggle blur (`ChangeBlur.sh`) +- `SUPER + SHIFT + B` — Set static rainbow border (`RainbowBorders-low-cpu.sh --run-once`) +- `SUPER + ALT + mouse_down` — Zoom in (`cursor:zoom_factor * 2.0`) +- `SUPER + ALT + mouse_up` — Zoom out (`cursor:zoom_factor / 2.0`) ## Panels / Menus / Bar -- `SUPER + A` — Desktop overview -- `SUPER + CTRL + A` — AGS overview -- `SUPER + SHIFT + E` — Quick settings -- `SUPER + SHIFT + N` — Notification panel -- `SUPER + CTRL + ALT + B` — Toggle waybar -- `SUPER + CTRL + B` — Waybar styles menu -- `SUPER + ALT + B` — Waybar layout menu -- `SUPER + ALT + R` — Refresh bar/menus - -## Session / System -- `SUPER + Q` — Close active window -- `SUPER + SHIFT + Q` — Terminate active process -- `CTRL + ALT + Delete` — Exit Hyprland -- `CTRL + ALT + L` — Lock screen -- `CTRL + ALT + P` — Power menu -- `CTRL + ALT + D` — Toggle dock (nwg-dock) -- `SUPER + SHIFT + H` — Toggle active-window mute -- `SUPER + SHIFT + G` — Toggle game mode -- `SUPER + N` — Toggle night light +- `SUPER + A` — Desktop overview (`OverviewToggle.sh`) +- `SUPER + SHIFT + E` — Quick settings menu (`Kool_Quick_Settings.sh`) +- `SUPER + SHIFT + N` — Notification panel (`swaync-client -t -sw`) +- `SUPER + CTRL + ALT + B` — Toggle Waybar on/off (`pkill -SIGUSR1 waybar`) +- `SUPER + CTRL + B` — Waybar styles menu (`WaybarStyles.sh`) +- `SUPER + ALT + B` — Waybar layout menu (`WaybarLayout.sh`) +- `SUPER + ALT + R` — Refresh bar and menus (`Refresh.sh`) + +## Session / System Controls +- `SUPER + Q` — Close active window (`killactive`) +- `SUPER + SHIFT + Q` — Terminate active process (`KillActiveProcess.sh`) +- `CTRL + ALT + Delete` — Exit Hyprland / logout menu (`Logout.sh`) +- `CTRL + ALT + L` — Lock screen (`LockScreen.sh`) +- `CTRL + ALT + P` — Power menu (`Wlogout.sh`) +- `SUPER + SHIFT + H` — Toggle mute/unmute for active window (`Toggle-Active-Window-Audio.sh`) +- `SUPER + SHIFT + G` — Toggle game mode (`GameMode.sh`) +- `SUPER + N` — Toggle night light (`Hyprsunset.sh toggle`) ## Window State / Float / Fullscreen -- `SUPER + F` — Maximize window -- `SUPER + SHIFT + F` — Fullscreen -- `SUPER + Space` — Toggle floating -- `SUPER + ALT + Space` — Float all windows +- `SUPER + F` — Maximize window (`fullscreen 1`) +- `SUPER + SHIFT + F` — Fullscreen (`fullscreen 0`) +- `SUPER + Space` — Toggle floating current window (`togglefloating`) +- `SUPER + ALT + Space` — Float all windows (`Float-all-Windows.sh`) +- `SUPER + CTRL + Space` — Float all windows same size (`float.all.samesize.lua`) ## Layout Controls ### Global layout selection -- `SUPER + ALT + L` — Toggle layouts -- `SUPER + ALT + 1/2/3/4` — Dwindle / Master / Scrolling / Monocle +- `SUPER + ALT + L` — Toggle layouts (`ChangeLayout.sh toggle`) +- `SUPER + ALT + 1` — Dwindle layout (`ChangeLayout.sh dwindle`) +- `SUPER + ALT + 2` — Master layout (`ChangeLayout.sh master`) +- `SUPER + ALT + 3` — Scrolling layout (`ChangeLayout.sh scrolling`) +- `SUPER + ALT + 4` — Monocle layout (`ChangeLayout.sh monocle`) ### Master layout -- `SUPER + I` — Add master -- `SUPER + CTRL + D` — Remove master -- `SUPER + CTRL + Return` — Swap with master +- `SUPER + I` — Add master (`layoutmsg addmaster`) +- `SUPER + CTRL + D` — Remove master (`layoutmsg removemaster`) +- `SUPER + CTRL + Return` — Swap with master (`layoutmsg swapwithmaster`) ### Dwindle layout -- `SUPER + SHIFT + I` — Toggle split -- `SUPER + P` — Toggle pseudo +- `SUPER + SHIFT + I` — Toggle split (`layoutmsg togglesplit`) +- `SUPER + P` — Toggle pseudo (`pseudo`) +- `SUPER + M` — Set split ratio 0.3 (`splitratio 0.3`) ### Scrolling layout -- `SUPER + SHIFT + , / .` — Move column left/right -- `SUPER + ALT + , / .` — Swap column left/right -- `SUPER + R` — Cycle column width presets -- `SUPER + ALT + H` — Horizontal direction -- `SUPER + CTRL + V` — Vertical direction -- `SUPER + ALT + S` — Toggle horizontal/vertical direction - -## Focus / Move / Resize +- `SUPER + SHIFT + period` — Move to right column (`layoutmsg move +col`) +- `SUPER + SHIFT + comma` — Move to left column (`layoutmsg move -col`) +- `SUPER + ALT + comma` — Swap columns left (`layoutmsg swapcol l`) +- `SUPER + ALT + period` — Swap columns right (`layoutmsg swapcol r`) +- `SUPER + R` — Cycle column width preset (`0.25`, `0.33`, `0.5`, `0.66`, `0.75`, `1.0`) +- `SUPER + ALT + H` — Horizontal scroll direction right (`scrolling:direction right`) +- `SUPER + CTRL + V` — Vertical scroll direction down (`scrolling:direction down`) +- `SUPER + ALT + S` — Toggle scrolling direction (Horizontal / Vertical) + +## Focus / Move / Resize / Swap ### Focus -- `SUPER + j/k` — Cycle next/previous (layout-aware) -- `SUPER + Left/Right/Up/Down` — Focus by direction +- `SUPER + j` — Cycle next window (layout-aware via `LayoutKeybindDispatch.sh cycle-next`) +- `SUPER + k` — Cycle previous window (layout-aware via `LayoutKeybindDispatch.sh cycle-prev`) +- `SUPER + Left/Right/Up/Down` — Focus window by direction (layout-aware via `LayoutKeybindDispatch.sh focus-*`) +- `ALT + Tab` — Cycle next window (`LuaCycleWindow.sh next`) ### Move windows -- `SUPER + CTRL + Left/Right/Up/Down` — Move window by direction +- `SUPER + CTRL + Left/Right/Up/Down` — Move window by direction (`movewindow l/r/u/d`) ### Swap windows -- `SUPER + ALT + Left/Right/Up/Down` — Swap window by direction +- `SUPER + ALT + Left/Right/Up/Down` — Swap window by direction (`LuaSwapWindow.sh l/r/u/d`) ### Resize windows -- `SUPER + SHIFT + Left/Right` — Width -/+50 -- `SUPER + SHIFT + Up/Down` — Height -/+50 +- `SUPER + SHIFT + Left` — Width -50 (`resizeactive -50 0`) +- `SUPER + SHIFT + Right` — Width +50 (`resizeactive 50 0`) +- `SUPER + SHIFT + Up` — Height -50 (`resizeactive 0 -50`) +- `SUPER + SHIFT + Down` — Height +50 (`resizeactive 0 50`) ### Mouse drag controls -- `SUPER + mouse:272` — Move window -- `SUPER + mouse:273` — Resize window +- `SUPER + mouse:272` (Left click drag) — Move window (`movewindow`) +- `SUPER + mouse:273` (Right click drag) — Resize window (`resizewindow`) ## Grouping -- `SUPER + G` — Toggle group -- `SUPER + Tab` — Group forward -- `SUPER + SHIFT + Tab` — Group back -- `SUPER + CTRL + J` — Move into group (left) -- `SUPER + CTRL + L` — Move into group (right) -- `SUPER + CTRL + H` — Move out of group +- `SUPER + G` — Toggle window grouping (`togglegroup`) +- `SUPER + Tab` — Cycle group window forward (`changegroupactive f`) +- `SUPER + SHIFT + Tab` — Cycle group window back (`changegroupactive b`) +- `SUPER + CTRL + J` — Move left into group (`moveintogroup l`) +- `SUPER + CTRL + H` — Move active window out of group (`moveoutofgroup`) ## Workspaces ### Navigation -- `SUPER + Tab` — Next workspace -- `SUPER + SHIFT + Tab` — Previous workspace -- `SUPER + mouse_down` or `SUPER + .` — Next existing workspace -- `SUPER + mouse_up` or `SUPER + ,` — Previous existing workspace +- `SUPER + Tab` — Next workspace (`workspace e+1`) +- `SUPER + SHIFT + Tab` — Previous workspace (`workspace e-1`) +- `SUPER + mouse_down` or `SUPER + period` — Next workspace (`workspace e+1`) +- `SUPER + mouse_up` or `SUPER + comma` — Previous workspace (`workspace e-1`) ### Direct workspace jump - `SUPER + code:10..19` — Go to workspaces `1..10` ### Move active window (follow) - `SUPER + SHIFT + code:10..19` — Move to workspaces `1..10` -- `SUPER + SHIFT + [` / `]` — Move to prev/next workspace +- `SUPER + SHIFT + [` — Move to previous workspace (`movetoworkspace -1`) +- `SUPER + SHIFT + ]` — Move to next workspace (`movetoworkspace +1`) ### Move active window (silent) -- `SUPER + CTRL + code:10..19` — Move silently to workspaces `1..10` -- `SUPER + CTRL + [` / `]` — Move silently to prev/next workspace +- `SUPER + CTRL + code:10..19` — Move silently to workspaces `1..10` (`movetoworkspacesilent 1..10`) +- `SUPER + CTRL + [` — Move silently to previous workspace (`movetoworkspacesilent -1`) +- `SUPER + CTRL + ]` — Move silently to next workspace (`movetoworkspacesilent +1`) -### Special workspace / monitor move -- `SUPER + U` — Toggle special workspace -- `SUPER + SHIFT + U` — Move to special workspace -- `SUPER + CTRL + F9/F10/F11/F12` — Move current workspace to monitor left/right/up/down +### Special workspace & monitor move +- `SUPER + U` — Toggle special workspace (`togglespecialworkspace`) +- `SUPER + SHIFT + U` — Move to special workspace (`movetoworkspace special`) +- `SUPER + CTRL + F9` — Move current workspace to left monitor (`movecurrentworkspacetomonitor l`) +- `SUPER + CTRL + F10` — Move current workspace to right monitor (`movecurrentworkspacetomonitor r`) +- `SUPER + CTRL + F11` — Move current workspace to upper monitor (`movecurrentworkspacetomonitor u`) +- `SUPER + CTRL + F12` — Move current workspace to lower monitor (`movecurrentworkspacetomonitor d`) -## Overview / Alt-Tab -- `SUPER + CTRL + Tab` — Hyprview Toggle -- `ALT + Tab` — Cycle next + bring active to top (intentional pair) +## Overview / Hyprview +- `SUPER + CTRL + Tab` — Hyprview Toggle (`toggle-qs-hyprview.sh smartgrid`) ## Screenshots -- `SUPER + Print` — Screenshot now -- `SUPER + SHIFT + Print` — Screenshot area -- `SUPER + CTRL + Print` — Screenshot in 5s -- `SUPER + CTRL + SHIFT + Print` — Screenshot in 10s -- `ALT + Print` — Screenshot active window -- `ALT + SHIFT + S` — Hyprshot region capture -- `SUPER + SHIFT + S` — Screenshot via swappy flow +- `SUPER + Print` — Screenshot now (`ScreenShot.sh --now`) +- `SUPER + SHIFT + Print` — Screenshot area (`ScreenShot.sh --area`) +- `SUPER + CTRL + Print` — Screenshot in 5s (`ScreenShot.sh --in5`) +- `SUPER + CTRL + SHIFT + Print` — Screenshot in 10s (`ScreenShot.sh --in10`) +- `ALT + Print` — Screenshot active window (`ScreenShot.sh --active`) +- `ALT + SHIFT + S` — Hyprshot region capture to `~/Pictures/Screenshots` +- `SUPER + SHIFT + S` — Screenshot via Swappy editor (`ScreenShot.sh --swappy`) ## Media / Audio / Hardware Keys -### Volume & mic -- `XF86AudioRaiseVolume` / `XF86AudioLowerVolume` — Volume up/down -- `ALT + XF86AudioRaiseVolume` / `ALT + XF86AudioLowerVolume` — Precise volume up/down -- `XF86AudioMute` — Toggle output mute -- `XF86AudioMicMute` — Toggle microphone mute - -### Playback -- `XF86AudioPlayPause` — Play/pause -- `XF86AudioPause` — Pause -- `XF86AudioPlay` — Play -- `XF86AudioNext` / `XF86AudioPrev` — Next/previous track -- `XF86AudioStop` — Stop - -### Power/device keys -- `XF86Sleep` — Suspend -- `XF86Rfkill` — Airplane mode toggle - -## Keyboard Layout -- `Left ALT + Left SHIFT` — Switch keyboard layout globally -- `Left SHIFT + Left ALT` — Switch keyboard layout per-window +### Volume & microphone +- `XF86AudioRaiseVolume` / `XF86AudioLowerVolume` — Volume up / down (`Volume.sh --inc` / `--dec`) +- `ALT + XF86AudioRaiseVolume` / `ALT + XF86AudioLowerVolume` — Precise volume up / down (`Volume.sh --inc-precise` / `--dec-precise`) +- `XF86AudioMute` — Toggle output mute (`Volume.sh --toggle`) +- `XF86AudioMicMute` — Toggle microphone mute (`Volume.sh --toggle-mic`) + +### Playback controls +- `XF86AudioPlayPause` / `XF86AudioPause` / `XF86AudioPlay` — Play / pause (`MediaCtrl.sh --pause`) +- `XF86AudioNext` — Next track (`MediaCtrl.sh --nxt`) +- `XF86AudioPrev` — Previous track (`MediaCtrl.sh --prv`) +- `XF86AudioStop` — Stop playback (`MediaCtrl.sh --stop`) + +### Power & device keys +- `XF86Sleep` — Suspend (`systemctl suspend`) +- `XF86Rfkill` — Airplane mode toggle (`AirplaneMode.sh`) + +## Keyboard Layout Switching +- `Left ALT + Left SHIFT` (`ALT_L + SHIFT_L`) — Switch keyboard layout globally (`KeyboardLayout.sh switch`) +- `Left SHIFT + Left ALT` (`SHIFT_L + ALT_L`) — Switch keyboard layout per-window (`Tak0-Per-Window-Switch.sh`) diff --git a/docs/copy.sh-tui-analysis-3-14-2026.md b/docs/copy.sh-tui-analysis-3-14-2026.md deleted file mode 100644 index 2b94e693..00000000 --- a/docs/copy.sh-tui-analysis-3-14-2026.md +++ /dev/null @@ -1,105 +0,0 @@ -# copy.sh vs TUI Installer Parity Report (2026-03-14) - -This report compares the Bash-based `copy.sh` flow (including helper scripts) against the Python/Textual TUI installer in `../Hyprland-Dots-TUI-Installer/`. - -## ✅ Parity Matches - -### Core Modes & Flow -- Install / Upgrade / Express workflows exist in both. - - `copy.sh`, `scripts/copy_menu.sh` - - TUI: `src/dots_tui/__main__.py`, `src/dots_tui/screens/menu.py`, `src/dots_tui/logic/orchestrator.py` - -### Safety / Setup -- Root check (both abort if root). -- Repo update flow (stash + pull + summary). -- Logs written to `Copy-Logs/` with per-run log file. - -### Hardware / OS Detection + Tweaks -- Nvidia / VM / NixOS tweaks. - - `scripts/lib_detect.sh` - - `src/dots_tui/logic/orchestrator.py`, `src/dots_tui/logic/system.py` - -### User Prompts / Config Choices -- Keyboard layout detect + confirmation. -- Resolution selection (<1440p vs ≥1440p). -- 12h/24h clock (waybar + hyprlock edits). -- Default editor selection (nvim/vim). -- Optional app enablement: asusctl, blueman, ags, quickshell. - -### Copy / Backup / Restore -- Phase1 copy w/ replace prompts: fastfetch, kitty, rofi, swaync. -- Waybar merge semantics (backup, merge configs/styles/UserModules). -- Phase2 copy (btop, cava, hypr, etc.). -- Restore user configs / scripts / hypr files (with express skip). -- Duplicate UserConfigs cleanup. - -### Wallpapers -- Base wallpaper copy to `~/Pictures/wallpapers`. -- Optional 1GB Wallpaper-Bank download (skipped in express). - -### Finalization -- chmod scripts, waybar symlinks, cleanup backups, wallust init. - -## ⚠️ Parity Gaps (Missing or Divergent Behavior) - -### 1) waybar-weather install + config handling -`copy.sh` does **two things** the TUI does not: -- **Installs waybar-weather binary** - - `scripts/lib_apps.sh`: `install_waybar_weather()` - - `copy.sh`: calls it on non-NixOS, or warns on NixOS. -- **Copies waybar-weather config + prompts for units** - - `copy.sh`: block near `WAYBAR_WEATHER_SRC / DEST` (install/upgrade/express logic + Fahrenheit prompt). - -✅ **TUI currently has no references to waybar-weather**. - ---- - -### 2) KeybindsLayoutInit always enabled -`copy.sh` always ensures `exec-once = $scriptsDir/KeybindsLayoutInit.sh` via `ensure_keybinds_init` (called unconditionally). - -TUI only adds it if **one of** (asus / blueman / ags / quickshell) is enabled: -- `src/dots_tui/logic/orchestrator.py` → `_apply_user_choices` - -So if user disables all optional apps, TUI skips it while `copy.sh` still adds it. - ---- - -### 3) Waybar symlink enforcement -`copy.sh` forces `~/.config/waybar/config` and `style.css` to be symlinks even if they are regular files. - -TUI only replaces them **if missing or already a symlink**: -- `src/dots_tui/logic/orchestrator.py` → `_finalize_post_copy` - -So regular files won’t be converted in TUI. - ---- - -### 4) Express mode + SDDM 12h edits -`copy.sh` explicitly **skips SDDM 12h edits** in express mode to avoid sudo prompts. - -TUI still attempts SDDM edits if user chooses 12h: -- `src/dots_tui/logic/orchestrator.py` → `_finalize_post_copy` (SDDM clock edits run whenever `clock_24h` is false). - ---- - -### 5) Menu behavior / CLI flags -- `copy.sh` supports `--tty` to force non-whiptail menu. -- TUI has no equivalent. - ---- - -## ✅ TUI-only Extras (Not in copy.sh) -- Dry-run / plan mode (`--dry-run`). -- Download repo (clone flow). -- Path safety guard (prevents deletes outside `$HOME`). -- Default wallpaper initialization if `.wallpaper_current` missing. - ---- - -## Summary -The TUI installer is **mostly aligned** with `copy.sh`, but **not full parity** due to: -1) Missing `waybar-weather` binary + config + units prompt -2) KeybindsLayoutInit not always added -3) Waybar symlink enforcement behavior mismatch -4) Express-mode SDDM 12h edits mismatch -5) Minor CLI/menu flag mismatch -- cgit v1.2.3