aboutsummaryrefslogtreecommitdiffstats
path: root/config
diff options
context:
space:
mode:
authorDonald Williams <129223418+dwilliam62@users.noreply.github.com>2026-07-01 22:06:51 -0400
committerGitHub <noreply@github.com>2026-07-01 22:06:51 -0400
commitfed1837fbdcc2acedbb8d6246a2601b26ad40369 (patch)
tree648d2d903750729e7e9df8e6af6dba4b602ef7a8 /config
parent4361f59928384f1cf7df8e2ef348e3532e348e9b (diff)
Development branch to main v2.3.25 (#84)
* Updated version to v2.3.25 Signed-off-by: Don Williams <don.e.williams@gmail.com> On branch development Your branch is up to date with 'origin/development'. Changes to be committed: modified: CHANGELOG.md modified: config/hypr/configs/ENVariables.conf modified: config/hypr/lua/env.lua renamed: config/hypr/v2.3.24 -> config/hypr/v2.3.25 * Fixed LayerRule and window rule Excessive bluring and wrong geometry to qcalculate-gtk Signed-off-by: Don Williams <don.e.williams@gmail.com> On branch development Your branch is up to date with 'origin/development'. Changes to be committed: modified: CHANGELOG.md modified: config/hypr/configs/LayerRules.conf modified: config/hypr/configs/WindowRules.conf * Re-added hyprlock files Signed-off-by: Don Williams <don.e.williams@gmail.com> * Added persistant toggle for Dark/Light mode Default is dark Signed-off-by: Don Williams <don.e.williams@gmail.com> On branch development Your branch is up to date with 'origin/development'. Changes to be committed: modified: CHANGELOG.md modified: config/hypr/configs/Startup_Apps.conf modified: config/hypr/lua/startup.lua new file: config/hypr/scripts/ApplyThemeMode.sh modified: config/hypr/scripts/DarkLight.sh * Dynamic wallpaper is now also per-monitor Before a Dynamic wallpaper would replace wallpaper on all monitors Signed-off-by: Don Williams <don.e.williams@gmail.com> On branch development Your branch is up to date with 'origin/development'. Changes to be committed: modified: CHANGELOG.md modified: config/hypr/UserScripts/WallpaperSelect.sh * Improving handling of NVIDIA Hybrid laptops Especially with GDM login manager Cursors can get set incorrectly Signed-off-by: Don Williams <don.e.williams@gmail.com> On branch development Your branch is up to date with 'origin/development'. Changes to be committed: modified: CHANGELOG.md modified: README.md modified: config/hypr/configs/ENVariables.conf modified: config/hypr/configs/Startup_Apps.conf modified: copy.sh modified: scripts/lib_detect.sh * Add: Set background for lock screen Signed-off-by: Don Williams <don.e.williams@gmail.com> On branch development Your branch is up to date with 'origin/development'. Changes to be committed: modified: CHANGELOG.md new file: config/hypr/scripts/HyprlockWallpaperSelect.sh modified: config/hypr/scripts/Kool_Quick_Settings.sh * Fixed hyprlock wallper to get current monitor wp Signed-off-by: Don Williams <don.e.williams@gmail.com> * upd: sddm/hyprlock images use wp selelctor Rofi backgrounds come from current monitor looks better Updated all the rofi menus that use background images SDDM and Hyprlock set background use wallpaper selector but also show current monitor background in case you want that or you can pick from the avalable wallpapers Also add notification of success/failure with filename Signed-off-by: Don Williams <don.e.williams@gmail.com> On branch development Your branch is up to date with 'origin/development'. Changes to be committed: modified: config/hypr/configs/Keybinds.conf modified: config/hypr/lua/keybinds.lua modified: config/hypr/scripts/HyprlockWallpaperSelect.sh modified: config/hypr/scripts/Kool_Quick_Settings.sh new file: config/hypr/scripts/RofiFocusedWallpaperLink.sh modified: config/hypr/scripts/sddm_wallpaper.sh modified: config/rofi/themes/KooL_style-1.rasi modified: config/rofi/themes/KooL_style-13-Vertical.rasi modified: config/rofi/themes/KooL_style-3-FullScreen-v1.rasi modified: config/rofi/themes/KooL_style-5.rasi modified: config/rofi/themes/KooL_style-6.rasi modified: config/rofi/themes/KooL_style-8.rasi * Scripts weren't executableo Signed-off-by: Don Williams <don.e.williams@gmail.com> On branch development Your branch is up to date with 'origin/development'. Changes to be committed: modified: ApplyThemeMode.sh modified: HyprlockWallpaperSelect.sh * enabled hypridle timer for monitor off Signed-off-by: Don Williams <don.e.williams@gmail.com> * Added icon for wave terminal Signed-off-by: Don Williams <don.e.williams@gmail.com> On branch development Your branch is up to date with 'origin/development'. Changes to be committed: modified: config/waybar/ModulesWorkspaces * Upd to Cachy breaking portals Signed-off-by: Don Williams <don.e.williams@gmail.com> On branch development Your branch is up to date with 'origin/development'. Changes to be committed: modified: config/hypr/scripts/PortalHyprland.sh * Fix 2 for CachyOS portal Signed-off-by: Don Williams <don.e.williams@gmail.com> On branch development Your branch is up to date with 'origin/development'. Changes to be committed: modified: config/hypr/scripts/PortalHyprland.sh * Fixing schema dir issue Signed-off-by: Don Williams <don.e.williams@gmail.com> On branch development Your branch is up to date with 'origin/development'. Changes to be committed: modified: config/hypr/scripts/PortalHyprland.sh * Still trying to fix PortalHyprland Signed-off-by: Don Williams <don.e.williams@gmail.com> On branch development Your branch is up to date with 'origin/development'. Changes to be committed: modified: config/hypr/scripts/PortalHyprland.sh * Try something else to fix portals in CachyOS This is occuring after OS upgrade Signed-off-by: Don Williams <don.e.williams@gmail.com> On branch development Your branch is up to date with 'origin/development'. Changes to be committed: modified: config/hypr/scripts/PortalHyprland.sh * Trying override to fix regression bug in cachyOS Signed-off-by: Don Williams <don.e.williams@gmail.com> On branch development Your branch is up to date with 'origin/development'. Changes to be committed: new file: config/systemd/user/xdg-desktop-portal.service.d/override.conf * Hyprland-Portal script to create override Signed-off-by: Don Williams <don.e.williams@gmail.com> On branch development Your branch is up to date with 'origin/development'. Changes to be committed: new file: hypr/scripts/Add-override-Hyprland-Portal.sh * Upd CHANGELOG About the new override script Signed-off-by: Don Williams <don.e.williams@gmail.com> On branch development Your branch is up to date with 'origin/development'. Changes to be committed: modified: CHANGELOG.md * Fixing handling of QT variables Signed-off-by: Don Williams <don.e.williams@gmail.com> • config/hypr/configs/ENVariables.conf ◦ Changed default from org.hyprland.style to Basic. • config/hypr/lua/env.lua ◦ Changed default from org.hyprland.style to Basic. • scripts/lib_detect.sh ◦ Added adjust_qt_quick_controls_style(): ▪ Detects whether the Hyprland QML style module is actually present (*/qml/*/org/hyprland/style or Debian package installed). ▪ Sets style to org.hyprland.style only when available. ▪ Otherwise forces Basic and logs a warning. • copy.sh ◦ Calls adjust_qt_quick_controls_style "$LOG" during dotfiles setup/upgrade. On branch development Your branch is up to date with 'origin/development'. Changes to be committed: modified: config/hypr/configs/ENVariables.conf modified: config/hypr/lua/env.lua modified: copy.sh modified: scripts/lib_detect.sh * Sync'd updated WaybarStartup.sh from main Makes sure ENV variables are set other waybar fails to start b/c xdg-desktop-portal fails to start Signed-off-by: Don Williams <don.e.williams@gmail.com> On branch development Your branch is up to date with 'origin/development'. Changes to be committed: modified: config/hypr/scripts/WaybarStartup.sh * Add: scrolling resize/max sample workspace rules Signed-off-by: Don Williams <don.e.williams@gmail.com> On branch development Your branch is up to date with 'origin/development'. Changes to be committed: modified: CHANGELOG.md modified: config/hypr/configs/Keybinds.conf modified: config/hypr/lua/keybind_helpers.lua modified: config/hypr/lua/keybinds.lua modified: config/hypr/lua/workspaces.lua new file: config/hypr/scripts/ScrollCycleColumnWidth.sh new file: config/hypr/scripts/ScrollMaximizeToggle.sh modified: config/hypr/workspaces.conf * Fixed SUPERALT F fullsize toggle in scrolling Signed-off-by: Don Williams <don.e.williams@gmail.com> On branch development Your branch is up to date with 'origin/development'. Changes to be committed: modified: config/hypr/configs/ENVariables.conf modified: config/hypr/configs/Startup_Apps.conf modified: config/hypr/configs/SystemSettings.conf deleted: config/hypr/hyprlock-1080p.conf modified: config/hypr/hyprlock-2k.conf modified: config/hypr/hyprlock.conf modified: config/hypr/scripts/Refresh.sh modified: config/hypr/scripts/RefreshNoWaybar.sh modified: config/hypr/scripts/ScrollMaximizeToggle.sh * Fixed columwidth resize for hyprlang On branch development Your branch is up to date with 'origin/development'. Changes to be committed: modified: config/hypr/scripts/ScrollCycleColumnWidth.sh * Fixed keybinds for scrolling toggle and resize Matches the work done on hyprlang config files Signed-off-by: Don Williams <don.e.williams@gmail.com> On branch development Your branch is up to date with 'origin/development'. Changes to be committed: modified: config/hypr/lua/keybinds.lua * Set scripts executable Signed-off-by: Don Williams <don.e.williams@gmail.com> On branch development Your branch is up to date with 'origin/development'. Changes to be committed: modified: config/hypr/scripts/ScrollCycleColumnWidth.sh modified: config/hypr/scripts/ScrollMaximizeToggle.sh * Fixing bindings in LUA mode Signed-off-by: Don Williams <don.e.williams@gmail.com> On branch development Your branch is up to date with 'origin/development'. Changes to be committed: modified: config/hypr/lua/keybind_helpers.lua modified: config/hypr/lua/user_keybinds_helper.lua modified: config/hypr/lua/user_overrides.lua modified: config/hypr/scripts/ScrollMaximizeToggle.sh * Fixed loading user_decorations Changed 2 keybinds SUPER + F == Maximize SUPER + SHIFT + F == FullSreen Works in all layouts now Signed-off-by: Don Williams <don.e.williams@gmail.com> On branch development Your branch is up to date with 'origin/development'. Changes to be committed: modified: CHANGELOG.md modified: config/hypr/UserConfigs/user_decorations.lua modified: config/hypr/configs/Keybinds.conf modified: config/hypr/lua/keybinds.lua modified: config/hypr/lua/user_overrides.lua * user_overrides wasn't loading system_keybinds Resulting in only user keybinds being availble Signed-off-by: Don Williams <don.e.williams@gmail.com> On branch development Your branch is up to date with 'origin/development'. Changes to be committed: modified: CHANGELOG.md modified: config/hypr/lua/user_overrides.lua * Fixed LuaAutoReload script Signed-off-by: Don Williams <don.e.williams@gmail.com> On branch development Your branch is up to date with 'origin/development'. Changes to be committed: modified: CHANGELOG.md modified: config/hypr/scripts/LuaAutoReload.sh * In LUA QT_THEME_OVERRIDE was hard code to kvantum If kvantum not installed then apps like KDENLIVE will fail Fixed the hyprlang config before but not in LUA workflow Signed-off-by: Don Williams <don.e.williams@gmail.com> On branch development Your branch is up to date with 'origin/development'. Changes to be committed: modified: CHANGELOG.md modified: config/hypr/configs/ENVariables.conf modified: config/hypr/lua/env.lua modified: config/hypr/lua/user_overrides.lua modified: scripts/lib_detect.sh * Fixed startup that causes waybar to restart at login Signed-off-by: Don Williams <don.e.williams@gmail.com> On branch development Your branch is up to date with 'origin/development'. Changes to be committed: modified: CHANGELOG.md modified: config/hypr/configs/Startup_Apps.conf modified: config/hypr/lua/startup.lua * Changed $HOME to $(XDG_CONFIG_HOME:$HOME) in all scripts Signed-off-by: Don Williams <don.e.williams@gmail.com> On branch development Your branch is up to date with 'origin/development'. Changes to be committed: modified: CHANGELOG.md modified: archive/upgrade.sh modified: config/hypr/UserScripts/00-Readme modified: config/hypr/UserScripts/RainbowBorders-low-cpu.sh modified: config/hypr/UserScripts/RainbowBorders.bak.sh modified: config/hypr/UserScripts/RofiBeats.sh modified: config/hypr/UserScripts/RofiCalc.sh modified: config/hypr/UserScripts/WallpaperAutoChange.sh modified: config/hypr/UserScripts/WallpaperEffects.sh modified: config/hypr/UserScripts/WallpaperRandom.sh modified: config/hypr/UserScripts/WallpaperSelect.sh modified: config/hypr/UserScripts/Weather.py modified: config/hypr/UserScripts/ZshChangeTheme.sh modified: config/hypr/initial-boot.sh modified: config/hypr/scripts/Add-override-Hyprland-Portal.sh modified: config/hypr/scripts/AirplaneMode.sh modified: config/hypr/scripts/Animations.sh modified: config/hypr/scripts/ApplyThemeMode.sh modified: config/hypr/scripts/Brightness.sh modified: config/hypr/scripts/BrightnessKbd.sh modified: config/hypr/scripts/ChangeBlur.sh modified: config/hypr/scripts/ChangeLayout.sh modified: config/hypr/scripts/ClipManager.sh modified: config/hypr/scripts/DarkLight.sh modified: config/hypr/scripts/Distro_update.sh modified: config/hypr/scripts/Dropterminal.sh modified: config/hypr/scripts/ExternalBrightness.sh modified: config/hypr/scripts/Float-all-Windows.sh modified: config/hypr/scripts/GameMode.sh modified: config/hypr/scripts/Ghostty_themes.sh modified: config/hypr/scripts/HyprLayoutModule.sh modified: config/hypr/scripts/HyprlockWallpaperSelect.sh modified: config/hypr/scripts/JavaManager.sh modified: config/hypr/scripts/KeyBinds.sh modified: config/hypr/scripts/KeyboardLayout.sh modified: config/hypr/scripts/KillActiveProcess.sh modified: config/hypr/scripts/Kitty_themes.sh modified: config/hypr/scripts/KooLsDotsUpdate.sh modified: config/hypr/scripts/Kool_Quick_Settings.sh modified: config/hypr/scripts/LockScreen.sh modified: config/hypr/scripts/LuaAutoReload.sh modified: config/hypr/scripts/MediaCtrl.sh modified: config/hypr/scripts/MonitorProfiles.sh modified: config/hypr/scripts/OverviewToggle.sh modified: config/hypr/scripts/Polkit-Diag.sh modified: config/hypr/scripts/PortalHyprlandUbuntu.sh modified: config/hypr/scripts/Refresh.sh modified: config/hypr/scripts/RefreshNoWaybar.sh modified: config/hypr/scripts/RofiEmoji.sh modified: config/hypr/scripts/RofiFocusedWallpaperLink.sh modified: config/hypr/scripts/RofiSearch.sh modified: config/hypr/scripts/RofiThemeSelector-modified.sh modified: config/hypr/scripts/RofiThemeSelector.sh modified: config/hypr/scripts/ScreenShot.sh modified: config/hypr/scripts/Sounds.sh modified: config/hypr/scripts/Tak0-Autodispatch.sh modified: config/hypr/scripts/Tak0-Per-Window-Switch.sh modified: config/hypr/scripts/ThemeChanger.sh modified: config/hypr/scripts/Toggle-Active-Window-Audio.sh modified: config/hypr/scripts/Toggle-weather-waybar-units.sh modified: config/hypr/scripts/TouchPad.sh modified: config/hypr/scripts/UserConfigsSwitcher.sh modified: config/hypr/scripts/Volume.sh modified: config/hypr/scripts/WallpaperDaemon.sh modified: config/hypr/scripts/WallustConfig.sh modified: config/hypr/scripts/WallustSwww.sh modified: config/hypr/scripts/WaybarLayout.sh modified: config/hypr/scripts/WaybarScripts.sh modified: config/hypr/scripts/WaybarStyles.sh modified: config/hypr/scripts/fastfetch-wrapper.sh modified: config/hypr/scripts/rofi-emacs-keybinds modified: config/hypr/scripts/rofi-ssh-menu.sh modified: config/hypr/scripts/sddm_wallpaper.sh modified: config/hypr/scripts/set-default-thunar-terminal.sh modified: config/hypr/scripts/update_WindowRules.sh modified: copy.sh modified: scripts/fix-systemsettings-lua.sh modified: scripts/lib_apps.sh modified: scripts/lib_backup.sh modified: scripts/lib_copy.sh modified: scripts/lib_prompts.sh modified: scripts/migrate-hypr-to-lua.sh * Changed return 1 to exit 0 in ubuntu portal check Signed-off-by: Don Williams <don.e.williams@gmail.com> * Fixing waybar spacing issues Signed-off-by: Don Williams <Don.e.williams@gmail.com> * Fixing formatting issues in waybar style sheets Signed-off-by: Don Williams <Don.e.williams@gmail.com> On branch development Your branch is up to date with 'origin/development'. Changes to be committed: deleted: config/waybar/style/0-VERTICAL-Catpuccin-Mocha.css deleted: config/waybar/style/0-VERTICAL-Golden-Noir.css deleted: config/waybar/style/0-VERTICAL-Oglo-Chicklets.css modified: config/waybar/style/Black-&-White-Monochrome.css modified: config/waybar/style/Catppuccin-Frappe.css modified: config/waybar/style/Catppuccin-Mocha.css modified: config/waybar/style/Colored-Chroma-Glow.css modified: config/waybar/style/Colored-Translucent.css modified: config/waybar/style/Colorful-Aurora-Blossom.css modified: config/waybar/style/Colorful-Aurora.css modified: config/waybar/style/Colorful-Oglo-Chicklets.css modified: config/waybar/style/Colorful-Rainbow-Spectrum.css modified: config/waybar/style/Colorful-stolen-style.css modified: config/waybar/style/Dark-Golden-Eclipse.css modified: config/waybar/style/Dark-Golden-Noir.css modified: config/waybar/style/Dark-Half-Moon.css modified: config/waybar/style/Dark-Purpl.css modified: config/waybar/style/Dark-Wallust-Obsidian-Edge.css modified: config/waybar/style/Extra-Crimson.css modified: config/waybar/style/Extra-EverForest.css modified: config/waybar/style/Extra-Mauve.css modified: config/waybar/style/Extra-Modern-Combined-Transparent.css modified: config/waybar/style/Extra-Simple-Pink.css modified: config/waybar/style/Light-Monochrome-Contrast.css modified: config/waybar/style/Light-Obsidian-Glow.css modified: config/waybar/style/Rainbow-RGB-Bordered.css modified: config/waybar/style/Retro-Simple-Style.css modified: config/waybar/style/Transparent-Crystal-Clear.css modified: config/waybar/style/VERTICAL-Catpuccin-Mocha.css modified: config/waybar/style/Wallust-Bordered-Chroma-Fusion-Edge.css modified: config/waybar/style/Wallust-Bordered-Chroma-Simple.css modified: config/waybar/style/Wallust-Chroma-Edge.css modified: config/waybar/style/Wallust-Chroma-Fusion.css modified: config/waybar/style/Wallust-Chroma-Tally-V2.css modified: config/waybar/style/Wallust-Chroma-Tally.css modified: config/waybar/style/Wallust-Colored.css modified: config/waybar/style/Wallust-Simple.css modified: config/waybar/style/Wallust-Transparent-Crystal-Clear.css * Fixed Oglo Chickets.css Signed-off-by: Don Williams <Don.e.williams@gmail.com> * Fixed Oglo Chickets.css part 2 Signed-off-by: Don Williams <Don.e.williams@gmail.com> * Fixed Oglo colors Signed-off-by: Don Williams <Don.e.williams@gmail.com> * Working on Oglo still Signed-off-by: Don Williams <Don.e.williams@gmail.com> * Refactor of layout configs no longer global Now it's per monitor/workspace When you change a layout it's written to ~/.config/hypr/workspaces.conf to make it persistent Thank you @aki for finding / reporting this issue This is a way better option vs. global Signed-off-by: Don Williams <don.e.williams@gmail.com> On branch development Your branch is up to date with 'origin/development'. Changes to be committed: modified: CHANGELOG.md modified: config/hypr/configs/Keybinds.conf modified: config/hypr/lua/keybinds.lua modified: config/hypr/scripts/ChangeLayout.sh modified: config/hypr/scripts/HyprLayoutModule.sh modified: config/hypr/scripts/KeyHints.sh modified: config/hypr/scripts/KeybindsLayoutInit.sh new file: config/hypr/scripts/LayoutKeybindDispatch.sh new file: config/hypr/scripts/PersistWorkspaceLayout.sh modified: config/hypr/scripts/ThemeChanger.sh modified: config/hypr/scripts/WallustSwww.sh modified: config/yazi/keymap.toml modified: config/yazi/package.toml * Fixed layout script wasn't updating workspaces.conf Signed-off-by: Don Williams <don.e.williams@gmail.com> On branch development Your branch is up to date with 'origin/development'. Changes to be committed: modified: config/hypr/scripts/ChangeLayout.sh * Moved some scripts, fixed wallpapereffects/changer Signed-off-by: Don Williams <Don.e.williams@gmail.com> On branch development Your branch is up to date with 'origin/development'. Changes to be committed: modified: CHANGELOG.md modified: config/hypr/configs/Keybinds.conf modified: config/hypr/configs/Startup_Apps.conf modified: config/hypr/lua/keybinds.lua modified: config/hypr/lua/startup.lua renamed: config/hypr/UserScripts/WallpaperAutoChange.sh -> config/hypr/scripts/WallpaperAutoChange.sh renamed: config/hypr/UserScripts/WallpaperEffects.sh -> config/hypr/scripts/WallpaperEffects.sh renamed: config/hypr/UserScripts/WallpaperRandom.sh -> config/hypr/scripts/WallpaperRandom.sh renamed: config/hypr/UserScripts/WallpaperSelect.sh -> config/hypr/scripts/WallpaperSelect.sh modified: config/hypr/scripts/WallustSwww.sh renamed: config/hypr/UserScripts/ZshChangeTheme.sh -> config/hypr/scripts/ZshChangeTheme.sh * Archived UserScripts/Tak0-AutoDispatch.sh Signed-off-by: Don Williams <don.e.williams@gmail.com> * Archived UserScripts/Tak0-Autodispatch.sh Not supported and no longer needed Signed-off-by: Don Williams <don.e.williams@gmail.com> On branch development Your branch is up to date with 'origin/development'. Changes to be committed: new file: archive/Tak0-Autodispatch.sh * Updated CHANGELOG * Fixing some binds in LUA mode * Fixed window pane binds in LUA mode Signed-off-by: Don Williams <don.e.williams@gmail.com> On branch development Your branch is up to date with 'origin/development'. Changes to be committed: modified: config/hypr/configs/Keybinds.conf modified: config/hypr/lua/keybinds.lua modified: config/hypr/scripts/LayoutKeybindDispatch.sh * windowrulee: hyprland share picker * Fixed SUPER Q handing in LUA / fixed migraiton script Signed-off-by: Don Williams <don.e.williams@gmail.com> On branch development Your branch is up to date with 'origin/development'. Changes to be committed: modified: CHANGELOG.md modified: config/hypr/lua/keybind_helpers.lua modified: config/hypr/lua/user_keybinds_helper.lua * Really fixed SUPER Q and migraiton template Signed-off-by: Don Williams <don.e.williams@gmail.com> On branch development Your branch is up to date with 'origin/development'. Changes to be committed: modified: config/hypr/lua/keybind_helpers.lua modified: config/hypr/lua/user_keybinds_helper.lua * Fixed keybinds in LUA config mode Signed-off-by: Don Williams <don.e.williams@gmail.com> On branch development Your branch is up to date with 'origin/development'. Changes to be committed: modified: CHANGELOG.md new file: config/hypr/configs/system_keybinds.lua modified: config/hypr/lua/keybinds.lua * Fixed copy.sh lua files, WallpaperEffects in lua Signed-off-by: Don Williams <don.e.williams@gmail.com> On branch development Your branch is up to date with 'origin/development'. Changes to be committed: modified: CHANGELOG.md modified: config/hypr/scripts/WallpaperEffects.sh modified: copy.sh * Fixed scrolling bindings copy.sh error fixed Signed-off-by: Don Williams <Don.e.williams@gmail.com> On branch development Your branch is up to date with 'origin/development'. Changes to be committed: modified: CHANGELOG.md modified: config/hypr/configs/Keybinds.conf modified: config/hypr/scripts/LayoutKeybindDispatch.sh modified: scripts/lib_copy.sh * Added lua files for remaining user config files Upd Lua migraiton to either port existing UserConfigs files or make sure the templates are there instead Kool_Quick_Settings menu now includes them for bothh hyprlang and lua workflows Signed-off-by: Don Williams <Don.e.williams@gmail.com> On branch development Your branch is up to date with 'origin/development'. Changes to be committed: modified: CHANGELOG.md new file: config/hypr/UserConfigs/user_animations.lua new file: config/hypr/UserConfigs/user_defaults.lua new file: config/hypr/UserConfigs/user_env.lua new file: config/hypr/UserConfigs/user_laptops.lua new file: config/hypr/UserConfigs/user_layer_rules.lua new file: config/hypr/UserConfigs/user_settings.lua new file: config/hypr/UserConfigs/user_startup.lua new file: config/hypr/UserConfigs/user_window_rules.lua modified: config/hypr/scripts/Kool_Quick_Settings.sh modified: scripts/migrate-hypr-to-lua.sh * Added another example to sample file Signed-off-by: Don Williams <don.e.williams@gmail.com> On branch development Your branch is up to date with 'origin/development'. Changes to be committed: modified: config/hypr/UserConfigs/user_settings.lua * Fixed spacing on powermenus Signed-off-by: Don Williams <don.e.williams@gmail.com> On branch development Your branch is up to date with 'origin/development'. Changes to be committed: modified: config/waybar/style/Colorful-Aurora-Blossom.css modified: config/waybar/style/Colorful-Aurora.css modified: config/waybar/style/Colorful-Oglo-Chicklets.css modified: config/waybar/style/Colorful-Rainbow-Spectrum.css modified: config/waybar/style/Colorful-stolen-style.css modified: config/waybar/style/Extra-Rose-Pine.css modified: config/waybar/style/Light-Monochrome-Contrast.css modified: config/waybar/style/Wallust-Bordered-Chroma-Fusion-Edge.css modified: config/waybar/style/Wallust-Bordered-Chroma-Simple.css modified: config/waybar/style/Wallust-Box-type.css modified: config/waybar/style/Wallust-Chroma-Edge.css modified: config/waybar/style/Wallust-Chroma-Fusion.css modified: config/waybar/style/Wallust-Simple.css * Fixed dup keybinds,thunar launch script Signed-off-by: Don Williams <don.e.williams@gmail.com> On branch development Your branch is up to date with 'origin/development'. Changes to be committed: modified: CHANGELOG.md modified: config/hypr/configs/Keybinds.conf modified: config/hypr/configs/system_keybinds.lua modified: config/hypr/lua/keybinds.lua new file: config/hypr/scripts/LaunchThunar.sh modified: scripts/migrate-hypr-to-lua.sh * Added spring-curves animation Signed-off-by: Don Williams <don.e.williams@gmail.com> On branch development Your branch is up to date with 'origin/development'. Changes to be committed: new file: config/hypr/animations/Spring-curves.conf new file: config/hypr/animations/Spring-curves.lua modified: config/hypr/scripts/Animations.sh * Added LUA cfg animation files to match hyprlang Signed-off-by: Don Williams <don.e.williams@gmail.com> On branch development Your branch is up to date with 'origin/development'. Changes to be committed: new file: config/hypr/animations/00-default.lua new file: config/hypr/animations/01-default - v2.lua new file: config/hypr/animations/03- Disable Animation.lua new file: config/hypr/animations/END-4.lua new file: config/hypr/animations/HYDE - Vertical.lua new file: config/hypr/animations/HYDE - default.lua new file: config/hypr/animations/HYDE - minimal-1.lua new file: config/hypr/animations/HYDE - minimal-2.lua new file: config/hypr/animations/HYDE - optimized.lua new file: config/hypr/animations/ML4W - classic.lua new file: config/hypr/animations/ML4W - dynamic.lua new file: config/hypr/animations/ML4W - fast.lua new file: config/hypr/animations/ML4W - high.lua new file: config/hypr/animations/ML4W - moving.lua new file: config/hypr/animations/ML4W - standard.lua new file: config/hypr/animations/Mahaveer - me-1.lua new file: config/hypr/animations/Mahaveer - me-2.lua * Fixed layout keybinds in LUA mode (finally, I hope) Signed-off-by: Don Williams <don.e.williams@gmail.com> On branch development Your branch is up to date with 'origin/development'. Changes to be committed: modified: config/hypr/configs/ENVariables.conf modified: config/hypr/lua/env.lua modified: config/hypr/scripts/LayoutKeybindDispatch.sh * Fixed bindings, added launchers for term and files Signed-off-by: Don Williams <don.e.williams@gmail.com> On branch development Your branch is up to date with 'origin/development'. Changes to be committed: modified: CHANGELOG.md modified: config/hypr/configs/Keybinds.conf modified: config/hypr/configs/system_keybinds.lua modified: config/hypr/lua/keybinds.lua new file: config/hypr/scripts/LaunchFileManager.sh new file: config/hypr/scripts/LaunchTerminal.sh * Fixed SUPERLR in Monocle layout not working Signed-off-by: Don Williams <don.e.williams@gmail.com> On branch development Your branch is up to date with 'origin/development'. Changes to be committed: modified: config/hypr/configs/system_keybinds.lua modified: config/hypr/lua/keybinds.lua modified: config/hypr/scripts/LayoutKeybindDispatch.sh * Disabled nw-tray for ubuntu, now optional Signed-off-by: Don Williams <don.e.williams@gmail.com> On branch development Your branch is up to date with 'origin/development'. Changes to be committed: modified: config/hypr/configs/Startup_Apps.conf modified: config/hypr/lua/startup.lua * Add: starship sample config files Signed-off-by: Don Williams <Don.e.williams@gmail.com> On branch development Your branch is up to date with 'origin/development'. Changes to be committed: modified: CHANGELOG.md new file: config/starship/starship-1-line-nix.toml new file: config/starship/starship-1-line-simple.toml new file: config/starship/starship-2-line-classic-garuda.toml new file: config/starship/starship-2-line-cool.toml new file: config/starship/starship-2-line-nixos.toml new file: config/starship/starship-chris-titus.toml new file: config/starship/starship-classic.toml new file: config/starship/starship-eric-dubois.toml new file: config/starship/starship-garuda-mokka.toml new file: config/starship/starship-instantos.toml new file: config/starship/starship-nobara.toml new file: config/starship/starship-purple-1line.toml new file: config/starship/starship-ranbow.toml new file: config/starship/starship-simple-prompt.toml new file: config/starship/starship-zen.toml * Added starship config directory to copy.sh Signed-off-by: Don Williams <Don.e.williams@gmail.com> On branch development Your branch is up to date with 'origin/development'. Changes to be committed: modified: CHANGELOG.md modified: scripts/lib_copy.sh * Added kooldots-add-ssh-agent systemd service for ssh keys Signed-off-by: Don Williams <don.e.williams@gmail.com> On branch development Your branch is up to date with 'origin/development'. Changes to be committed: modified: CHANGELOG.md modified: config/hypr/configs/ENVariables.conf modified: config/hypr/configs/Startup_Apps.conf modified: config/hypr/configs/SystemSettings.conf modified: config/hypr/lua/env.lua modified: config/hypr/lua/settings.lua new file: config/hypr/scripts/kooldots-add-ssh-agent.sh * Added info on adding keys to agent Signed-off-by: Don Williams <don.e.williams@gmail.com> On branch development Your branch is up to date with 'origin/development'. Changes to be committed: modified: config/hypr/scripts/kooldots-add-ssh-agent.sh * Add new menu for Change Layour rofi menu Signed-off-by: Don Williams <don.e.williams@gmail.com> On branch development Your branch is up to date with 'origin/development'. Changes to be committed: modified: CHANGELOG.md modified: config/hypr/scripts/HyprLayoutModule.sh new file: config/rofi/config-layout.rasi * Removed starship- from config files look better in menu Signed-off-by: Don Williams <don.e.williams@gmail.com> On branch development Your branch is up to date with 'origin/development'. Changes to be committed: renamed: config/starship/starship-1-line-nix.toml -> config/starship/1-line-nix.toml renamed: config/starship/starship-1-line-simple.toml -> config/starship/1-line-simple.toml renamed: config/starship/starship-2-line-classic-garuda.toml -> config/starship/2-line-classic-garuda.toml renamed: config/starship/starship-2-line-cool.toml -> config/starship/2-line-cool.toml renamed: config/starship/starship-2-line-nixos.toml -> config/starship/2-line-nixos.toml renamed: config/starship/starship-chris-titus.toml -> config/starship/chris-titus.toml renamed: config/starship/starship-classic.toml -> config/starship/classic.toml renamed: config/starship/starship-eric-dubois.toml -> config/starship/eric-dubois.toml renamed: config/starship/starship-garuda-mokka.toml -> config/starship/garuda-mokka.toml renamed: config/starship/starship-instantos.toml -> config/starship/instantos.toml renamed: config/starship/starship-nobara.toml -> config/starship/nobara.toml renamed: config/starship/starship-purple-1line.toml -> config/starship/purple-1line.toml renamed: config/starship/starship-ranbow.toml -> config/starship/ranbow.toml renamed: config/starship/starship-simple-prompt.toml -> config/starship/simple-prompt.toml renamed: config/starship/starship-zen.toml -> config/starship/zen.toml * Add script to change Starship prompt Signed-off-by: Don Williams <don.e.williams@gmail.com> On branch development Your branch is up to date with 'origin/development'. Changes to be committed: new file: config/hypr/scripts/ChangeStarshipPrompt.sh * Added own rofi menu and title Signed-off-by: Don Williams <don.e.williams@gmail.com> On branch development Your branch is up to date with 'origin/development'. Changes to be committed: modified: config/hypr/scripts/ChangeStarshipPrompt.sh new file: config/rofi/config-starship.rasi * Adjusted height of starship menu Signed-off-by: Don Williams <don.e.williams@gmail.com> On branch development Your branch is up to date with 'origin/development'. Changes to be committed: modified: config/rofi/config-starship.rasi * Removed a duplicate and bad file Signed-off-by: Don Williams <don.e.williams@gmail.com> On branch development Your branch is up to date with 'origin/development'. Changes to be committed: deleted: instantos.toml deleted: zen.toml * Removed dup prompt, adjusted rasi height add to menu Signed-off-by: Don Williams <don.e.williams@gmail.com> On branch development Your branch is up to date with 'origin/development'. Changes to be committed: modified: config/hypr/scripts/Kool_Quick_Settings.sh modified: config/rofi/config-starship.rasi deleted: config/starship/garuda-mokka.toml * Updated CHANGELOG for starship menu Signed-off-by: Don Williams <don.e.williams@gmail.com> On branch development Your branch is up to date with 'origin/development'. Changes to be committed: modified: CHANGELOG.md * v2.3.24 title was removed by mistake Signed-off-by: Don Williams <don.e.williams@gmail.com> * Restore hyprlock-1080/hyprlock.conf Signed-off-by: Don Williams <don.e.williams@gmail.com> * Added script to toggle waybar 12/24hr Signed-off-by: Don Williams <don.e.williams@gmail.com> On branch development Your branch is up to date with 'origin/development'. Changes to be committed: modified: CHANGELOG.md modified: config/hypr/scripts/Kool_Quick_Settings.sh new file: config/hypr/scripts/ToggleWaybarTime.sh * Fixed notifcation on waybar time change Signed-off-by: Don Williams <don.e.williams@gmail.com> On branch development Your branch is up to date with 'origin/development'. Changes to be committed: modified: config/hypr/scripts/ToggleWaybarTime.sh * Fixed ChangeStarshipPrompt not starting in LUA workflow Signed-off-by: Don Williams <don.e.williams@gmail.com> On branch development Your branch is up to date with 'origin/development'. Changes to be committed: modified: config/hypr/scripts/ChangeStarshipPrompt.sh * Added vill minimalist starship prompt Signed-off-by: Don Williams <don.e.williams@gmail.com> * Updated copy.sh to check for hyprland.lua Preventing a failed startup on next login Signed-off-by: Don Williams <don.e.williams@gmail.com> On branch development Your branch is up to date with 'origin/development'. Changes to be committed: modified: CHANGELOG.md modified: copy.sh --------- Signed-off-by: Don Williams <don.e.williams@gmail.com> Signed-off-by: Don Williams <Don.e.williams@gmail.com> Co-authored-by: brockar <martin@mguz.dev>
Diffstat (limited to 'config')
-rw-r--r--config/hypr/UserConfigs/user_animations.lua17
-rw-r--r--config/hypr/UserConfigs/user_decorations.lua152
-rw-r--r--config/hypr/UserConfigs/user_defaults.lua17
-rw-r--r--config/hypr/UserConfigs/user_env.lua13
-rw-r--r--config/hypr/UserConfigs/user_laptops.lua12
-rw-r--r--config/hypr/UserConfigs/user_layer_rules.lua50
-rw-r--r--config/hypr/UserConfigs/user_settings.lua27
-rw-r--r--config/hypr/UserConfigs/user_startup.lua47
-rw-r--r--config/hypr/UserConfigs/user_window_rules.lua50
-rwxr-xr-xconfig/hypr/UserScripts/00-Readme4
-rwxr-xr-xconfig/hypr/UserScripts/RainbowBorders-low-cpu.sh2
-rwxr-xr-xconfig/hypr/UserScripts/RainbowBorders.bak.sh2
-rwxr-xr-xconfig/hypr/UserScripts/RofiBeats.sh8
-rwxr-xr-xconfig/hypr/UserScripts/RofiCalc.sh2
-rwxr-xr-xconfig/hypr/UserScripts/Tak0-Autodispatch.sh68
-rwxr-xr-xconfig/hypr/UserScripts/WallpaperEffects.sh124
-rwxr-xr-xconfig/hypr/UserScripts/Weather.py2
-rw-r--r--config/hypr/animations/00-default.lua26
-rw-r--r--config/hypr/animations/01-default - v2.lua27
-rw-r--r--config/hypr/animations/03- Disable Animation.lua7
-rw-r--r--config/hypr/animations/END-4.lua34
-rw-r--r--config/hypr/animations/HYDE - Vertical.lua22
-rw-r--r--config/hypr/animations/HYDE - default.lua22
-rw-r--r--config/hypr/animations/HYDE - minimal-1.lua21
-rw-r--r--config/hypr/animations/HYDE - minimal-2.lua15
-rw-r--r--config/hypr/animations/HYDE - optimized.lua40
-rw-r--r--config/hypr/animations/ML4W - classic.lua16
-rw-r--r--config/hypr/animations/ML4W - dynamic.lua21
-rw-r--r--config/hypr/animations/ML4W - fast.lua25
-rw-r--r--config/hypr/animations/ML4W - high.lua21
-rw-r--r--config/hypr/animations/ML4W - moving.lua20
-rw-r--r--config/hypr/animations/ML4W - standard.lua16
-rw-r--r--config/hypr/animations/Mahaveer - me-1.lua41
-rw-r--r--config/hypr/animations/Mahaveer - me-2.lua26
-rw-r--r--config/hypr/animations/Spring-curves.conf25
-rw-r--r--config/hypr/animations/Spring-curves.lua28
-rw-r--r--config/hypr/configs/ENVariables.conf24
-rw-r--r--config/hypr/configs/Keybinds.conf37
-rw-r--r--config/hypr/configs/Startup_Apps.conf9
-rw-r--r--config/hypr/configs/SystemSettings.conf2
-rw-r--r--config/hypr/configs/WindowRules.conf10
-rw-r--r--config/hypr/configs/system_keybinds.lua416
-rw-r--r--config/hypr/hypridle.conf15
-rwxr-xr-xconfig/hypr/initial-boot.sh18
-rw-r--r--config/hypr/lua/env.lua6
-rw-r--r--config/hypr/lua/keybind_helpers.lua23
-rw-r--r--config/hypr/lua/keybinds.lua154
-rw-r--r--config/hypr/lua/settings.lua2
-rw-r--r--config/hypr/lua/startup.lua19
-rw-r--r--config/hypr/lua/user_keybinds_helper.lua22
-rw-r--r--config/hypr/lua/user_overrides.lua31
-rw-r--r--config/hypr/lua/workspaces.lua4
-rwxr-xr-xconfig/hypr/scripts/Add-override-Hyprland-Portal.sh2
-rwxr-xr-xconfig/hypr/scripts/AirplaneMode.sh2
-rwxr-xr-xconfig/hypr/scripts/Animations.sh42
-rwxr-xr-xconfig/hypr/scripts/ApplyThemeMode.sh11
-rwxr-xr-xconfig/hypr/scripts/Brightness.sh2
-rwxr-xr-xconfig/hypr/scripts/BrightnessKbd.sh2
-rwxr-xr-xconfig/hypr/scripts/ChangeBlur.sh2
-rwxr-xr-xconfig/hypr/scripts/ChangeLayout.sh229
-rwxr-xr-xconfig/hypr/scripts/ChangeStarshipPrompt.sh78
-rwxr-xr-xconfig/hypr/scripts/ClipManager.sh2
-rwxr-xr-xconfig/hypr/scripts/DarkLight.sh138
-rwxr-xr-xconfig/hypr/scripts/Distro_update.sh2
-rwxr-xr-xconfig/hypr/scripts/Dropterminal.sh2
-rwxr-xr-xconfig/hypr/scripts/ExternalBrightness.sh2
-rwxr-xr-xconfig/hypr/scripts/Float-all-Windows.sh2
-rwxr-xr-xconfig/hypr/scripts/GameMode.sh6
-rwxr-xr-xconfig/hypr/scripts/Ghostty_themes.sh12
-rwxr-xr-xconfig/hypr/scripts/HyprLayoutModule.sh20
-rwxr-xr-xconfig/hypr/scripts/HyprlockWallpaperSelect.sh358
-rwxr-xr-xconfig/hypr/scripts/JavaManager.sh2
-rwxr-xr-xconfig/hypr/scripts/KeyBinds.sh6
-rwxr-xr-xconfig/hypr/scripts/KeyHints.sh2
-rwxr-xr-xconfig/hypr/scripts/KeybindsLayoutInit.sh14
-rwxr-xr-xconfig/hypr/scripts/KeyboardLayout.sh6
-rwxr-xr-xconfig/hypr/scripts/KillActiveProcess.sh2
-rwxr-xr-xconfig/hypr/scripts/Kitty_themes.sh10
-rwxr-xr-xconfig/hypr/scripts/KooLsDotsUpdate.sh4
-rwxr-xr-xconfig/hypr/scripts/Kool_Quick_Settings.sh109
-rwxr-xr-xconfig/hypr/scripts/LaunchFileManager.sh122
-rwxr-xr-xconfig/hypr/scripts/LaunchTerminal.sh160
-rwxr-xr-xconfig/hypr/scripts/LaunchThunar.sh50
-rwxr-xr-xconfig/hypr/scripts/LayoutKeybindDispatch.sh219
-rwxr-xr-xconfig/hypr/scripts/LockScreen.sh2
-rwxr-xr-xconfig/hypr/scripts/LuaAutoReload.sh17
-rwxr-xr-xconfig/hypr/scripts/MediaCtrl.sh2
-rwxr-xr-xconfig/hypr/scripts/MonitorProfiles.sh20
-rwxr-xr-xconfig/hypr/scripts/OverviewToggle.sh2
-rwxr-xr-xconfig/hypr/scripts/PersistWorkspaceLayout.sh223
-rwxr-xr-xconfig/hypr/scripts/Polkit-Diag.sh2
-rwxr-xr-xconfig/hypr/scripts/PortalHyprland.sh149
-rwxr-xr-xconfig/hypr/scripts/PortalHyprlandUbuntu.sh4
-rwxr-xr-xconfig/hypr/scripts/Refresh.sh8
-rwxr-xr-xconfig/hypr/scripts/RefreshNoWaybar.sh8
-rwxr-xr-xconfig/hypr/scripts/RofiEmoji.sh2
-rwxr-xr-xconfig/hypr/scripts/RofiFocusedWallpaperLink.sh180
-rwxr-xr-xconfig/hypr/scripts/RofiSearch.sh4
-rwxr-xr-xconfig/hypr/scripts/RofiThemeSelector-modified.sh12
-rwxr-xr-xconfig/hypr/scripts/RofiThemeSelector.sh8
-rwxr-xr-xconfig/hypr/scripts/ScreenShot.sh6
-rwxr-xr-xconfig/hypr/scripts/ScrollCycleColumnWidth.sh56
-rwxr-xr-xconfig/hypr/scripts/ScrollMaximizeToggle.sh175
-rwxr-xr-xconfig/hypr/scripts/Sounds.sh2
-rwxr-xr-xconfig/hypr/scripts/Tak0-Autodispatch.sh2
-rwxr-xr-xconfig/hypr/scripts/Tak0-Per-Window-Switch.sh4
-rwxr-xr-xconfig/hypr/scripts/ThemeChanger.sh42
-rwxr-xr-xconfig/hypr/scripts/Toggle-Active-Window-Audio.sh2
-rwxr-xr-xconfig/hypr/scripts/Toggle-weather-waybar-units.sh2
-rwxr-xr-xconfig/hypr/scripts/ToggleWaybarTime.sh101
-rwxr-xr-xconfig/hypr/scripts/TouchPad.sh6
-rwxr-xr-xconfig/hypr/scripts/UserConfigsSwitcher.sh2
-rwxr-xr-xconfig/hypr/scripts/Volume.sh4
-rwxr-xr-xconfig/hypr/scripts/WallpaperAutoChange.sh (renamed from config/hypr/UserScripts/WallpaperAutoChange.sh)9
-rwxr-xr-xconfig/hypr/scripts/WallpaperDaemon.sh10
-rwxr-xr-xconfig/hypr/scripts/WallpaperEffects.sh140
-rwxr-xr-xconfig/hypr/scripts/WallpaperRandom.sh (renamed from config/hypr/UserScripts/WallpaperRandom.sh)5
-rwxr-xr-xconfig/hypr/scripts/WallpaperSelect.sh (renamed from config/hypr/UserScripts/WallpaperSelect.sh)40
-rwxr-xr-xconfig/hypr/scripts/WallustConfig.sh6
-rwxr-xr-xconfig/hypr/scripts/WallustSwww.sh58
-rwxr-xr-xconfig/hypr/scripts/WaybarLayout.sh8
-rwxr-xr-xconfig/hypr/scripts/WaybarScripts.sh6
-rwxr-xr-xconfig/hypr/scripts/WaybarStyles.sh8
-rwxr-xr-xconfig/hypr/scripts/ZshChangeTheme.sh (renamed from config/hypr/UserScripts/ZshChangeTheme.sh)4
-rwxr-xr-xconfig/hypr/scripts/fastfetch-wrapper.sh2
-rwxr-xr-xconfig/hypr/scripts/kooldots-add-ssh-agent.sh310
-rwxr-xr-xconfig/hypr/scripts/rofi-emacs-keybinds2
-rwxr-xr-xconfig/hypr/scripts/rofi-ssh-menu.sh2
-rwxr-xr-xconfig/hypr/scripts/sddm_wallpaper.sh599
-rwxr-xr-xconfig/hypr/scripts/set-default-thunar-terminal.sh2
-rwxr-xr-xconfig/hypr/scripts/update_WindowRules.sh2
-rw-r--r--config/hypr/v2.3.25 (renamed from config/hypr/v2.3.24)0
-rw-r--r--config/hypr/workspaces.conf5
-rw-r--r--config/rofi/config-layout.rasi63
-rw-r--r--config/rofi/config-starship.rasi63
-rw-r--r--config/rofi/themes/KooL_style-1.rasi2
-rw-r--r--config/rofi/themes/KooL_style-13-Vertical.rasi2
-rw-r--r--config/rofi/themes/KooL_style-3-FullScreen-v1.rasi2
-rw-r--r--config/rofi/themes/KooL_style-5.rasi2
-rw-r--r--config/rofi/themes/KooL_style-6.rasi2
-rw-r--r--config/rofi/themes/KooL_style-8.rasi2
-rw-r--r--config/starship/1-line-nix.toml79
-rw-r--r--config/starship/1-line-simple.toml173
-rw-r--r--config/starship/2-line-classic-garuda.toml146
-rw-r--r--config/starship/2-line-cool.toml65
-rw-r--r--config/starship/2-line-nixos.toml79
-rw-r--r--config/starship/chris-titus.toml129
-rw-r--r--config/starship/classic.toml250
-rw-r--r--config/starship/eric-dubois.toml191
-rw-r--r--config/starship/nobara.toml248
-rw-r--r--config/starship/purple-1line.toml79
-rw-r--r--config/starship/ranbow.toml181
-rw-r--r--config/starship/simple-prompt.toml187
-rw-r--r--config/starship/vill-minimalist.toml405
-rw-r--r--config/systemd/user/xdg-desktop-portal.service.d/override.conf4
-rw-r--r--config/waybar/ModulesWorkspaces1
-rw-r--r--config/waybar/style/0-VERTICAL-Catpuccin-Mocha.css267
-rw-r--r--config/waybar/style/0-VERTICAL-Golden-Noir.css251
-rw-r--r--config/waybar/style/0-VERTICAL-Oglo-Chicklets.css448
-rw-r--r--config/waybar/style/Black-&-White-Monochrome.css206
-rw-r--r--config/waybar/style/Catppuccin-Frappe.css162
-rw-r--r--config/waybar/style/Catppuccin-Mocha.css171
-rw-r--r--config/waybar/style/Colored-Chroma-Glow.css238
-rw-r--r--config/waybar/style/Colored-Translucent.css248
-rw-r--r--config/waybar/style/Colorful-Aurora-Blossom.css175
-rw-r--r--config/waybar/style/Colorful-Aurora.css177
-rw-r--r--config/waybar/style/Colorful-Oglo-Chicklets.css422
-rw-r--r--config/waybar/style/Colorful-Rainbow-Spectrum.css249
-rw-r--r--config/waybar/style/Colorful-stolen-style.css26
-rw-r--r--config/waybar/style/Dark-Golden-Eclipse.css144
-rw-r--r--config/waybar/style/Dark-Golden-Noir.css179
-rw-r--r--config/waybar/style/Dark-Half-Moon.css358
-rw-r--r--config/waybar/style/Dark-Latte-Wallust-combined.css218
-rw-r--r--config/waybar/style/Dark-Purpl.css208
-rw-r--r--config/waybar/style/Dark-Wallust-Obsidian-Edge.css162
-rw-r--r--config/waybar/style/Extra-Crimson.css186
-rw-r--r--config/waybar/style/Extra-EverForest.css44
-rw-r--r--config/waybar/style/Extra-Mauve.css191
-rw-r--r--config/waybar/style/Extra-Modern-Combined-Transparent.css189
-rw-r--r--config/waybar/style/Extra-Rose-Pine.css202
-rw-r--r--config/waybar/style/Extra-Simple-Pink.css180
-rw-r--r--config/waybar/style/Light-Monochrome-Contrast.css173
-rw-r--r--config/waybar/style/Light-Obsidian-Glow.css176
-rw-r--r--config/waybar/style/Rainbow-RGB-Bordered.css172
-rw-r--r--config/waybar/style/Retro-Simple-Style.css51
-rw-r--r--config/waybar/style/Transparent-Crystal-Clear.css196
-rw-r--r--config/waybar/style/VERTICAL-Catpuccin-Mocha.css27
-rw-r--r--config/waybar/style/Wallust-Bordered-Chroma-Fusion-Edge.css238
-rw-r--r--config/waybar/style/Wallust-Bordered-Chroma-Simple.css289
-rw-r--r--config/waybar/style/Wallust-Box-type.css9
-rw-r--r--config/waybar/style/Wallust-Chroma-Edge.css4
-rw-r--r--config/waybar/style/Wallust-Chroma-Fusion.css251
-rw-r--r--config/waybar/style/Wallust-Chroma-Tally-V2.css223
-rw-r--r--config/waybar/style/Wallust-Chroma-Tally.css214
-rw-r--r--config/waybar/style/Wallust-Colored.css191
-rw-r--r--config/waybar/style/Wallust-Simple.css172
-rw-r--r--config/waybar/style/Wallust-Transparent-Crystal-Clear.css206
-rw-r--r--config/yazi/keymap.toml2
-rw-r--r--config/yazi/package.toml4
199 files changed, 10776 insertions, 5205 deletions
diff --git a/config/hypr/UserConfigs/user_animations.lua b/config/hypr/UserConfigs/user_animations.lua
new file mode 100644
index 00000000..5c5bb484
--- /dev/null
+++ b/config/hypr/UserConfigs/user_animations.lua
@@ -0,0 +1,17 @@
+-- ==================================================
+-- KoolDots (2026)
+-- Project URL: https://github.com/LinuxBeginnings
+-- License: GNU GPLv3
+-- SPDX-License-Identifier: GPL-3.0-or-later
+-- ==================================================
+-- User animation overrides template.
+-- Use this to override defaults from lua/animations.lua.
+
+-- Example:
+-- hl.config({
+-- animations = {
+-- enabled = true,
+-- },
+-- })
+--
+-- hl.animation({ leaf = "windows", enabled = true, speed = 5, bezier = "wind", style = "slide" })
diff --git a/config/hypr/UserConfigs/user_decorations.lua b/config/hypr/UserConfigs/user_decorations.lua
index 6b34666e..ba425d92 100644
--- a/config/hypr/UserConfigs/user_decorations.lua
+++ b/config/hypr/UserConfigs/user_decorations.lua
@@ -4,103 +4,61 @@
-- License: GNU GPLv3
-- SPDX-License-Identifier: GPL-3.0-or-later
-- ==================================================
+-- User decorations overrides template.
+-- Keep this repo copy as comments only; put active custom values in:
+-- ~/.config/hypr/UserConfigs/user_decorations.lua
+--
+-- Uncomment and edit examples below if you want defaults in the repo template.
--- User decorations overrides (auto-generated).
--- This file is intentionally split from other user overrides.
--- Add only user-specific Lua overrides here.
--- Example:
--- hl.config({ general = { gaps_in = 4, gaps_out = 8 } })
+-- Example general overrides:
+-- hl.config({
+-- general = {
+-- border_size = 1,
+-- gaps_in = 4,
+-- gaps_out = 6,
+-- },
+-- })
--- Source reference from UserDecorations.conf (hyprlang):
--- source = $HOME/.config/hypr/wallust/wallust-hyprland.conf
--- general {
--- border_size = 2
--- gaps_in = 2
--- gaps_out = 4
--- col.active_border = $color12
--- col.inactive_border = $color10
--- }
--- decoration {
--- rounding = 10
--- active_opacity = 1.0
--- inactive_opacity = 0.9
--- fullscreen_opacity = 1.0
--- dim_inactive = true
--- dim_strength = 0.1
--- dim_special = 0.8
--- shadow {
--- enabled = true
--- range = 3
--- render_power = 1
--- color = $color12
--- color_inactive = $color10
--- }
--- blur {
--- enabled = true
--- size = 6
--- passes = 3
--- new_optimizations = true
--- xray = true
--- ignore_opacity = true
--- special = true
--- popups = true
--- }
--- }
--- group {
--- col.border_active = $color15
--- groupbar {
--- col.active = $color0
--- }
--- }
+-- Example decoration overrides:
+-- hl.config({
+-- decoration = {
+-- rounding = 10,
+-- active_opacity = 1.0,
+-- inactive_opacity = 0.95,
+-- fullscreen_opacity = 1.0,
+-- dim_inactive = true,
+-- dim_strength = 0.1,
+-- dim_special = 0.8,
+-- shadow = {
+-- enabled = true,
+-- range = 3,
+-- render_power = 1,
+-- color = "rgba(8db4ffff)",
+-- color_inactive = "rgba(5f6578ff)",
+-- },
+-- blur = {
+-- enabled = true,
+-- size = 6,
+-- passes = 3,
+-- new_optimizations = true,
+-- xray = true,
+-- ignore_opacity = true,
+-- special = true,
+-- popups = true,
+-- },
+-- },
+-- })
-local function read_wallust_colors(path)
- local colors = {}
- local handle = io.open(path, "r")
- if not handle then
- return colors
- end
- for line in handle:lines() do
- local key, hex = line:match("^%$([%w_]+)%s*=%s*rgb%(([0-9A-Fa-f]+)%)")
- if key and hex then
- colors[key] = "rgb(" .. hex .. ")"
- end
- end
- handle:close()
- return colors
-end
-
-local wallust_path = (os.getenv("HOME") or "") .. "/.config/hypr/wallust/wallust-hyprland.conf"
-local colors = read_wallust_colors(wallust_path)
-
-if next(colors) then
- hl.config({
- general = {
- col = {
- active_border = colors.color12 or "rgba(8db4ffff)",
- inactive_border = colors.color10 or "rgba(5f6578ff)",
- },
- },
- })
-
- hl.config({
- decoration = {
- shadow = {
- color = colors.color12 or "rgba(8db4ffff)",
- color_inactive = colors.color10 or "rgba(5f6578ff)",
- },
- },
- })
-
- hl.config({
- group = {
- col = {
- border_active = colors.color15 or "rgba(ffffffff)",
- },
- groupbar = {
- col = {
- active = colors.color0 or "rgba(0f111aff)",
- },
- },
- },
- })
-end
+-- Example group styling:
+-- hl.config({
+-- group = {
+-- col = {
+-- border_active = "rgba(ffffffff)",
+-- },
+-- groupbar = {
+-- col = {
+-- active = "rgba(0f111aff)",
+-- },
+-- },
+-- },
+-- })
diff --git a/config/hypr/UserConfigs/user_defaults.lua b/config/hypr/UserConfigs/user_defaults.lua
new file mode 100644
index 00000000..dd889134
--- /dev/null
+++ b/config/hypr/UserConfigs/user_defaults.lua
@@ -0,0 +1,17 @@
+-- ==================================================
+-- KoolDots (2026)
+-- Project URL: https://github.com/LinuxBeginnings
+-- License: GNU GPLv3
+-- SPDX-License-Identifier: GPL-3.0-or-later
+-- ==================================================
+-- User defaults overrides template.
+-- This file is sourced by lua/user_defaults.lua.
+
+KOOLDOTS_DEFAULTS = KOOLDOTS_DEFAULTS or {}
+
+-- Examples:
+-- KOOLDOTS_DEFAULTS.edit = "nvim"
+-- KOOLDOTS_DEFAULTS.visual = "nvim"
+-- KOOLDOTS_DEFAULTS.term = "kitty"
+-- KOOLDOTS_DEFAULTS.files = "thunar"
+-- KOOLDOTS_DEFAULTS.search_engine = "https://duckduckgo.com/?q={}"
diff --git a/config/hypr/UserConfigs/user_env.lua b/config/hypr/UserConfigs/user_env.lua
new file mode 100644
index 00000000..12d134bb
--- /dev/null
+++ b/config/hypr/UserConfigs/user_env.lua
@@ -0,0 +1,13 @@
+-- ==================================================
+-- KoolDots (2026)
+-- Project URL: https://github.com/LinuxBeginnings
+-- License: GNU GPLv3
+-- SPDX-License-Identifier: GPL-3.0-or-later
+-- ==================================================
+-- User environment overrides template.
+-- Keep this file for personal env additions that should survive updates.
+
+-- Examples:
+-- hl.env("QT_QPA_PLATFORMTHEME", "qt6ct")
+-- hl.env("GDK_SCALE", "1")
+-- hl.env("QT_SCALE_FACTOR", "1")
diff --git a/config/hypr/UserConfigs/user_laptops.lua b/config/hypr/UserConfigs/user_laptops.lua
new file mode 100644
index 00000000..ac3c7f8c
--- /dev/null
+++ b/config/hypr/UserConfigs/user_laptops.lua
@@ -0,0 +1,12 @@
+-- ==================================================
+-- KoolDots (2026)
+-- Project URL: https://github.com/LinuxBeginnings
+-- License: GNU GPLv3
+-- SPDX-License-Identifier: GPL-3.0-or-later
+-- ==================================================
+-- User laptop overrides template.
+-- Add lid/display behavior here if you need laptop-specific logic.
+
+-- Examples:
+-- hl.monitor({ output = "eDP-1", mode = "preferred", position = "auto", scale = "1" })
+-- hl.monitor({ output = "eDP-1", disabled = true })
diff --git a/config/hypr/UserConfigs/user_layer_rules.lua b/config/hypr/UserConfigs/user_layer_rules.lua
new file mode 100644
index 00000000..ab1cbeef
--- /dev/null
+++ b/config/hypr/UserConfigs/user_layer_rules.lua
@@ -0,0 +1,50 @@
+-- ==================================================
+-- KoolDots (2026)
+-- Project URL: https://github.com/LinuxBeginnings
+-- License: GNU GPLv3
+-- SPDX-License-Identifier: GPL-3.0-or-later
+-- ==================================================
+-- User layer-rule overrides template.
+
+local user_layer_rules_helper = nil
+do
+ local source = (debug.getinfo(1, "S") or {}).source or ""
+ local source_path = source:match("^@(.+)$")
+ local source_dir = source_path and source_path:match("^(.*)/[^/]+$") or nil
+ local home = os.getenv("HOME") or ""
+ local candidate_paths = {
+ source_dir and (source_dir .. "/../lua/user_layer_rules_helper.lua") or nil,
+ home ~= "" and (home .. "/.config/hypr/lua/user_layer_rules_helper.lua") or nil,
+ home ~= "" and (home .. "/.config/hypr/user_layer_rules_helper.lua") or nil,
+ }
+
+ local tried_paths = {}
+ for _, helper_path in ipairs(candidate_paths) do
+ if helper_path then
+ table.insert(tried_paths, helper_path)
+ local f = io.open(helper_path, "r")
+ if f then
+ f:close()
+ local loaded_ok, loaded_helpers = pcall(dofile, helper_path)
+ if loaded_ok and type(loaded_helpers) == "table" and loaded_helpers.apply_layer_rule then
+ user_layer_rules_helper = loaded_helpers
+ break
+ end
+ end
+ end
+ end
+
+ if not user_layer_rules_helper then
+ error("Failed to load user_layer_rules_helper.lua from: " .. table.concat(tried_paths, ", "))
+ end
+end
+
+local apply_layer_rule = user_layer_rules_helper.apply_layer_rule
+
+-- Example:
+-- apply_layer_rule({
+-- name = "user-rofi-blur",
+-- match = { namespace = "rofi" },
+-- blur = true,
+-- ignore_alpha = 0,
+-- })
diff --git a/config/hypr/UserConfigs/user_settings.lua b/config/hypr/UserConfigs/user_settings.lua
new file mode 100644
index 00000000..ea31c0eb
--- /dev/null
+++ b/config/hypr/UserConfigs/user_settings.lua
@@ -0,0 +1,27 @@
+-- ==================================================
+-- KoolDots (2026)
+-- Project URL: https://github.com/LinuxBeginnings
+-- License: GNU GPLv3
+-- SPDX-License-Identifier: GPL-3.0-or-later
+-- ==================================================
+-- User settings overrides template.
+-- Add your personal hl.config(...) values here.
+
+-- Example:
+-- hl.config({
+-- general = {
+-- gaps_in = 4,
+-- gaps_out = 8,
+-- border_size = 1,
+-- },
+-- })
+--
+
+-- Disable cursor being centered when swap workspaces
+--
+-- hl.config({
+-- cursor = {
+-- no_warps = true,
+-- warp_on_change_workspace = 0,
+-- },
+-- })
diff --git a/config/hypr/UserConfigs/user_startup.lua b/config/hypr/UserConfigs/user_startup.lua
new file mode 100644
index 00000000..efe51c61
--- /dev/null
+++ b/config/hypr/UserConfigs/user_startup.lua
@@ -0,0 +1,47 @@
+-- ==================================================
+-- KoolDots (2026)
+-- Project URL: https://github.com/LinuxBeginnings
+-- License: GNU GPLv3
+-- SPDX-License-Identifier: GPL-3.0-or-later
+-- ==================================================
+-- User startup overrides template.
+-- Add personal exec-once commands here.
+
+local user_startup_helper = nil
+do
+ local source = (debug.getinfo(1, "S") or {}).source or ""
+ local source_path = source:match("^@(.+)$")
+ local source_dir = source_path and source_path:match("^(.*)/[^/]+$") or nil
+ local home = os.getenv("HOME") or ""
+ local candidate_paths = {
+ source_dir and (source_dir .. "/../lua/user_startup_helper.lua") or nil,
+ home ~= "" and (home .. "/.config/hypr/lua/user_startup_helper.lua") or nil,
+ home ~= "" and (home .. "/.config/hypr/user_startup_helper.lua") or nil,
+ }
+
+ local tried_paths = {}
+ for _, helper_path in ipairs(candidate_paths) do
+ if helper_path then
+ table.insert(tried_paths, helper_path)
+ local f = io.open(helper_path, "r")
+ if f then
+ f:close()
+ local loaded_ok, loaded_helpers = pcall(dofile, helper_path)
+ if loaded_ok and type(loaded_helpers) == "table" and loaded_helpers.exec_once then
+ user_startup_helper = loaded_helpers
+ break
+ end
+ end
+ end
+ end
+
+ if not user_startup_helper then
+ error("Failed to load user_startup_helper.lua from: " .. table.concat(tried_paths, ", "))
+ end
+end
+
+local exec_once = user_startup_helper.exec_once
+
+-- Examples:
+-- exec_once("blueman-applet")
+-- exec_once("$HOME/.config/hypr/UserScripts/RainbowBorders.sh")
diff --git a/config/hypr/UserConfigs/user_window_rules.lua b/config/hypr/UserConfigs/user_window_rules.lua
new file mode 100644
index 00000000..5df5dc7c
--- /dev/null
+++ b/config/hypr/UserConfigs/user_window_rules.lua
@@ -0,0 +1,50 @@
+-- ==================================================
+-- KoolDots (2026)
+-- Project URL: https://github.com/LinuxBeginnings
+-- License: GNU GPLv3
+-- SPDX-License-Identifier: GPL-3.0-or-later
+-- ==================================================
+-- User window-rule overrides template.
+
+local user_window_rules_helper = nil
+do
+ local source = (debug.getinfo(1, "S") or {}).source or ""
+ local source_path = source:match("^@(.+)$")
+ local source_dir = source_path and source_path:match("^(.*)/[^/]+$") or nil
+ local home = os.getenv("HOME") or ""
+ local candidate_paths = {
+ source_dir and (source_dir .. "/../lua/user_window_rules_helper.lua") or nil,
+ home ~= "" and (home .. "/.config/hypr/lua/user_window_rules_helper.lua") or nil,
+ home ~= "" and (home .. "/.config/hypr/user_window_rules_helper.lua") or nil,
+ }
+
+ local tried_paths = {}
+ for _, helper_path in ipairs(candidate_paths) do
+ if helper_path then
+ table.insert(tried_paths, helper_path)
+ local f = io.open(helper_path, "r")
+ if f then
+ f:close()
+ local loaded_ok, loaded_helpers = pcall(dofile, helper_path)
+ if loaded_ok and type(loaded_helpers) == "table" and loaded_helpers.apply_window_rule then
+ user_window_rules_helper = loaded_helpers
+ break
+ end
+ end
+ end
+ end
+
+ if not user_window_rules_helper then
+ error("Failed to load user_window_rules_helper.lua from: " .. table.concat(tried_paths, ", "))
+ end
+end
+
+local apply_window_rule = user_window_rules_helper.apply_window_rule
+
+-- Example:
+-- apply_window_rule({
+-- name = "user-float-pavucontrol",
+-- match = { class = "pavucontrol" },
+-- float = true,
+-- center = true,
+-- })
diff --git a/config/hypr/UserScripts/00-Readme b/config/hypr/UserScripts/00-Readme
index 259fc9d9..2b72982e 100755
--- a/config/hypr/UserScripts/00-Readme
+++ b/config/hypr/UserScripts/00-Readme
@@ -6,5 +6,5 @@
# ==================================================
# Place your new scripts here.
-# If you need to edit a script from main script (~/.config/hypr/scripts), copy it on this directory, and edit.
-# Make sure to update as well the keybinds in ~/.config/hypr/UserConfigs directory if any script is linked to it \ No newline at end of file
+# If you need to edit a script from main script (${XDG_CONFIG_HOME:-$HOME/.config}/hypr/scripts), copy it on this directory, and edit.
+# Make sure to update as well the keybinds in ${XDG_CONFIG_HOME:-$HOME/.config}/hypr/UserConfigs directory if any script is linked to it \ No newline at end of file
diff --git a/config/hypr/UserScripts/RainbowBorders-low-cpu.sh b/config/hypr/UserScripts/RainbowBorders-low-cpu.sh
index a8de4c89..af6e378a 100755
--- a/config/hypr/UserScripts/RainbowBorders-low-cpu.sh
+++ b/config/hypr/UserScripts/RainbowBorders-low-cpu.sh
@@ -38,7 +38,7 @@
# RB_ONCE 1 to apply once and exit (no animation; default: 0)
#
# Example (slower animation):
-# RB_INTERVAL=1.5 RB_STEP_DEG=12 ~/.config/hypr/UserScripts/RainbowBorders-low-cpu.sh &
+# RB_INTERVAL=1.5 RB_STEP_DEG=12 ${XDG_CONFIG_HOME:-$HOME/.config}/hypr/UserScripts/RainbowBorders-low-cpu.sh &
#
# Notes
# - This focuses on the active border only. Animating inactive borders too
diff --git a/config/hypr/UserScripts/RainbowBorders.bak.sh b/config/hypr/UserScripts/RainbowBorders.bak.sh
index 87f13c34..7a9c7171 100755
--- a/config/hypr/UserScripts/RainbowBorders.bak.sh
+++ b/config/hypr/UserScripts/RainbowBorders.bak.sh
@@ -10,7 +10,7 @@
# Possible values: "wallust_random", "rainbow", "gradient_flow"
EFFECT_TYPE="gradient_flow"
-WALLUST_COLORS_SOURCE="$HOME/.config/hypr/wallust/wallust-hyprland.conf"
+WALLUST_COLORS_SOURCE="${XDG_CONFIG_HOME:-$HOME/.config}/hypr/wallust/wallust-hyprland.conf"
WALLUST_COLORS=()
diff --git a/config/hypr/UserScripts/RofiBeats.sh b/config/hypr/UserScripts/RofiBeats.sh
index 057d53b9..b2371859 100755
--- a/config/hypr/UserScripts/RofiBeats.sh
+++ b/config/hypr/UserScripts/RofiBeats.sh
@@ -8,10 +8,10 @@
# RofiBeats - unified, dynamic UI (add, remove, manage, play)
mDIR="$HOME/Music/"
-iDIR="$HOME/.config/swaync/icons"
-rofi_theme="$HOME/.config/rofi/config-rofi-Beats.rasi"
-rofi_theme_menu="$HOME/.config/rofi/config-rofi-Beats-menu.rasi"
-music_list="$HOME/.config/rofi/online_music.list"
+iDIR="${XDG_CONFIG_HOME:-$HOME/.config}/swaync/icons"
+rofi_theme="${XDG_CONFIG_HOME:-$HOME/.config}/rofi/config-rofi-Beats.rasi"
+rofi_theme_menu="${XDG_CONFIG_HOME:-$HOME/.config}/rofi/config-rofi-Beats-menu.rasi"
+music_list="${XDG_CONFIG_HOME:-$HOME/.config}/rofi/online_music.list"
mkdir -p "$(dirname "$music_list")"
[[ -f "$music_list" ]] || touch "$music_list"
diff --git a/config/hypr/UserScripts/RofiCalc.sh b/config/hypr/UserScripts/RofiCalc.sh
index 40a7ca3f..ccb18903 100755
--- a/config/hypr/UserScripts/RofiCalc.sh
+++ b/config/hypr/UserScripts/RofiCalc.sh
@@ -8,7 +8,7 @@
# /* Calculator (using qalculate) and rofi */
# /* Submitted by: https://github.com/JosephArmas */
-rofi_theme="$HOME/.config/rofi/config-calc.rasi"
+rofi_theme="${XDG_CONFIG_HOME:-$HOME/.config}/rofi/config-calc.rasi"
# Kill Rofi if already running before execution
if pgrep -x "rofi" >/dev/null; then
diff --git a/config/hypr/UserScripts/Tak0-Autodispatch.sh b/config/hypr/UserScripts/Tak0-Autodispatch.sh
deleted file mode 100755
index b0607e13..00000000
--- a/config/hypr/UserScripts/Tak0-Autodispatch.sh
+++ /dev/null
@@ -1,68 +0,0 @@
-#!/usr/bin/env bash
-# ==================================================
-# KoolDots (2026)
-# Project URL: https://github.com/LinuxBeginnings
-# License: GNU GPLv3
-# SPDX-License-Identifier: GPL-3.0-or-later
-# ==================================================
-# USAGE:
-# 1) Run from terminal:
-# ./dispatch.sh <application_command> <target_workspace_number>
-# Example:
-# ./dispatch.sh discord 2
-#
-# 2) Call from Hyprland config (in hyprland.conf file):
-# exec-once = /path/to/dispatch.sh <application_command> <target_workspace_number>
-#
-# Logs are saved in dispatch.log file next to the script.
-# If the window doesn't appear or is dispatched incorrectly — info will be there.
-#
-# Notes:
-# - Script waits about ~9 seconds (30 iterations of 0.3 sec) for window to appear.
-# - Uses hyprctl and jq, so these tools must be installed.
-
-LOGFILE="$(dirname "$0")/dispatch.log"
-# Log file path located next to the script.
-
-APP=$1
-# The application command or window class to launch or match.
-
-TARGET_WORKSPACE=$2
-# The target workspace number where the window should be moved.
-
-# Check if required arguments are provided.
-if [[ -z "$APP" || -z "$TARGET_WORKSPACE" ]]; then
- echo "Usage: $0 <application_command> <target_workspace_number>" >>"$LOGFILE" 2>&1
- exit 1
-fi
-
-echo "Starting dispatch of '$APP' to workspace $TARGET_WORKSPACE at $(date)" >>"$LOGFILE"
-# Starting the dispatch process and logging the event.
-# Avoid early workspace focus issues by switching workspace first.
-hyprctl dispatch workspace "$TARGET_WORKSPACE" >>"$LOGFILE" 2>&1
-sleep 0.4
-
-# Launch the application in the background and disown it.
-$APP &
-disown
-pid=$!
-
-echo "Launched '$APP' with PID $pid" >>"$LOGFILE"
-# Log the launched process ID.
-# Wait for the application window to appear (matching window class).
-for i in {1..30}; do
- win=$(hyprctl clients -j | jq -r --arg APP "$APP" '
- .[] | select(.class | test($APP;"i")) | .address' 2>>"$LOGFILE")
-
- if [[ -n "$win" ]]; then
- echo "Found window $win for app '$APP', moving to workspace $TARGET_WORKSPACE" >>"$LOGFILE"
- # Move the window to the target workspace.
- hyprctl dispatch movetoworkspace "$TARGET_WORKSPACE,address:$win" >>"$LOGFILE" 2>&1
- exit 0
- fi
- sleep 0.3
-done
-
-echo "ERROR: Window for '$APP' was NOT found or dispatched properly to workspace $TARGET_WORKSPACE at $(date)" >>"$LOGFILE"
-# Log error if window was not found or dispatched correctly.
-exit 1
diff --git a/config/hypr/UserScripts/WallpaperEffects.sh b/config/hypr/UserScripts/WallpaperEffects.sh
deleted file mode 100755
index 297c77fa..00000000
--- a/config/hypr/UserScripts/WallpaperEffects.sh
+++ /dev/null
@@ -1,124 +0,0 @@
-#!/usr/bin/env bash
-# ==================================================
-# KoolDots (2026)
-# Project URL: https://github.com/LinuxBeginnings
-# License: GNU GPLv3
-# SPDX-License-Identifier: GPL-3.0-or-later
-# ==================================================
-# Wallpaper Effects using ImageMagick (SUPER SHIFT W)
-
-# Variables
-terminal=kitty
-wallpaper_current="$HOME/.config/hypr/wallpaper_effects/.wallpaper_current"
-wallpaper_output="$HOME/.config/hypr/wallpaper_effects/.wallpaper_modified"
-SCRIPTSDIR="$HOME/.config/hypr/scripts"
-# shellcheck source=/dev/null
-. "$SCRIPTSDIR/WallpaperCmd.sh"
-focused_monitor=$(hyprctl monitors -j | jq -r '.[] | select(.focused) | .name')
-rofi_theme="$HOME/.config/rofi/config-wallpaper-effect.rasi"
-
-# Directory for swaync
-iDIR="$HOME/.config/swaync/images"
-iDIRi="$HOME/.config/swaync/icons"
-
-# swww/awww transition config
-FPS=60
-TYPE="wipe"
-DURATION=2
-BEZIER=".43,1.19,1,.4"
-if [[ "$WWW_CMD" == "swww" || "$WWW_CMD" == "awww" ]]; then
- SWWW_PARAMS=(--transition-fps "$FPS" --transition-type "$TYPE" --transition-duration "$DURATION" --transition-bezier "$BEZIER")
-else
- SWWW_PARAMS=()
-fi
-
-# Define ImageMagick effects
-declare -A effects=(
- ["No Effects"]="no-effects"
- ["Black & White"]="magick $wallpaper_current -colorspace gray -sigmoidal-contrast 10,40% $wallpaper_output"
- ["Blurred"]="magick $wallpaper_current -blur 0x10 $wallpaper_output"
- ["Charcoal"]="magick $wallpaper_current -charcoal 0x5 $wallpaper_output"
- ["Edge Detect"]="magick $wallpaper_current -edge 1 $wallpaper_output"
- ["Emboss"]="magick $wallpaper_current -emboss 0x5 $wallpaper_output"
- ["Frame Raised"]="magick $wallpaper_current +raise 150 $wallpaper_output"
- ["Frame Sunk"]="magick $wallpaper_current -raise 150 $wallpaper_output"
- ["Negate"]="magick $wallpaper_current -negate $wallpaper_output"
- ["Oil Paint"]="magick $wallpaper_current -paint 4 $wallpaper_output"
- ["Posterize"]="magick $wallpaper_current -posterize 4 $wallpaper_output"
- ["Polaroid"]="magick $wallpaper_current -polaroid 0 $wallpaper_output"
- ["Sepia Tone"]="magick $wallpaper_current -sepia-tone 65% $wallpaper_output"
- ["Solarize"]="magick $wallpaper_current -solarize 80% $wallpaper_output"
- ["Sharpen"]="magick $wallpaper_current -sharpen 0x5 $wallpaper_output"
- ["Vignette"]="magick $wallpaper_current -vignette 0x3 $wallpaper_output"
- ["Vignette-black"]="magick $wallpaper_current -background black -vignette 0x3 $wallpaper_output"
- ["Zoomed"]="magick $wallpaper_current -gravity Center -extent 1:1 $wallpaper_output"
-)
-
-# Function to apply no effects
-no-effects() {
- local resize_mode
- resize_mode="$(wallpaper_resize_mode "$wallpaper_current" "$focused_monitor")"
- "$WWW_CMD" img -o "$focused_monitor" --resize "$resize_mode" "$wallpaper_current" "${SWWW_PARAMS[@]}" || return 1
- if ! "$SCRIPTSDIR/WallustSwww.sh" "$wallpaper_current"; then
- notify-send -u critical -i "$iDIR/error.png" "Wallust failed" "Wallpaper theme not refreshed"
- return 1
- fi
- # Refresh rofi, waybar, wallust palettes
- sleep 0.5
- "$SCRIPTSDIR/Refresh.sh"
-
- notify-send -u low -i "$iDIR/ja.png" "No wallpaper" "effects applied"
- # copying wallpaper for rofi menu
- cp "$wallpaper_current" "$wallpaper_output"
-}
-
-# Function to run rofi menu
-main() {
- # Populate rofi menu options
- options=("No Effects")
- for effect in "${!effects[@]}"; do
- [[ "$effect" != "No Effects" ]] && options+=("$effect")
- done
-
- choice=$(printf "%s\n" "${options[@]}" | LC_COLLATE=C sort | rofi -dmenu -i -config $rofi_theme)
-
- # Process user choice
- if [[ -n "$choice" ]]; then
- if [[ "$choice" == "No Effects" ]]; then
- no-effects
- elif [[ "${effects[$choice]+exists}" ]]; then
- # Apply selected effect
- notify-send -u normal -i "$iDIR/ja.png" "Applying:" "$choice effects"
- eval "${effects[$choice]}"
-
- # intial kill process
- for pid in swaybg mpvpaper; do
- killall -SIGUSR1 "$pid"
- done
-
- sleep 1
- local resize_mode
- resize_mode="$(wallpaper_resize_mode "$wallpaper_output" "$focused_monitor")"
- "$WWW_CMD" img -o "$focused_monitor" --resize "$resize_mode" "$wallpaper_output" "${SWWW_PARAMS[@]}"
- sleep 0.5
- if ! "$SCRIPTSDIR/WallustSwww.sh" "$wallpaper_output"; then
- notify-send -u critical -i "$iDIR/error.png" "Wallust failed" "Wallpaper theme not refreshed"
- return 1
- fi
- # Refresh rofi, waybar, wallust palettes
- "${SCRIPTSDIR}/Refresh.sh"
- notify-send -u low -i "$iDIR/ja.png" "$choice" "effects applied"
- else
- echo "Effect '$choice' not recognized."
- fi
- fi
-}
-
-# Check if rofi is already running and kill it
-if pidof rofi > /dev/null; then
- pkill rofi
-fi
-
-main
-
-sleep 1
diff --git a/config/hypr/UserScripts/Weather.py b/config/hypr/UserScripts/Weather.py
index 6905e0e1..cf50076f 100755
--- a/config/hypr/UserScripts/Weather.py
+++ b/config/hypr/UserScripts/Weather.py
@@ -49,7 +49,7 @@ class WeatherData:
# Examples (zsh):
# # One-off run
# # WEATHER_UNITS can be "metric" or "imperial"
-# WEATHER_UNITS=imperial WEATHER_PLACE="Concord, NH" python3 ~/.config/hypr/UserScripts/Weather.py
+# WEATHER_UNITS=imperial WEATHER_PLACE="Concord, NH" python3 ${XDG_CONFIG_HOME:-$HOME/.config}/hypr/UserScripts/Weather.py
#
# # Persist in current shell session
# export WEATHER_UNITS=imperial
diff --git a/config/hypr/animations/00-default.lua b/config/hypr/animations/00-default.lua
new file mode 100644
index 00000000..ee629c96
--- /dev/null
+++ b/config/hypr/animations/00-default.lua
@@ -0,0 +1,26 @@
+-- Auto-generated from 00-default.conf
+
+hl.config({
+ animations = {
+ enabled = true,
+ },
+})
+
+hl.curve("wind", { type = "bezier", points = { { 0.05, 0.9 }, { 0.1, 1.05 } } })
+hl.curve("winIn", { type = "bezier", points = { { 0.1, 1.1 }, { 0.1, 1.1 } } })
+hl.curve("winOut", { type = "bezier", points = { { 0.3, -0.3 }, { 0, 1 } } })
+hl.curve("liner", { type = "bezier", points = { { 1, 1 }, { 1, 1 } } })
+hl.curve("overshot", { type = "bezier", points = { { 0.05, 0.9 }, { 0.1, 1.05 } } })
+hl.curve("smoothOut", { type = "bezier", points = { { 0.5, 0 }, { 0.99, 0.99 } } })
+hl.curve("smoothIn", { type = "bezier", points = { { 0.5, -0.5 }, { 0.68, 1.5 } } })
+
+hl.animation({ leaf = "windows", enabled = true, speed = 6, bezier = "wind", style = "slide" })
+hl.animation({ leaf = "windowsIn", enabled = true, speed = 5, bezier = "winIn", style = "slide" })
+hl.animation({ leaf = "windowsOut", enabled = true, speed = 3, bezier = "smoothOut", style = "slide" })
+hl.animation({ leaf = "windowsMove", enabled = true, speed = 5, bezier = "wind", style = "slide" })
+hl.animation({ leaf = "border", enabled = true, speed = 1, bezier = "liner" })
+hl.animation({ leaf = "borderangle", enabled = true, speed = 180, bezier = "liner", style = "loop" })
+hl.animation({ leaf = "fade", enabled = true, speed = 3, bezier = "smoothOut" })
+hl.animation({ leaf = "workspaces", enabled = true, speed = 5, bezier = "overshot" })
+hl.animation({ leaf = "workspacesIn", enabled = true, speed = 5, bezier = "winIn", style = "slide" })
+hl.animation({ leaf = "workspacesOut", enabled = true, speed = 5, bezier = "winOut", style = "slide" })
diff --git a/config/hypr/animations/01-default - v2.lua b/config/hypr/animations/01-default - v2.lua
new file mode 100644
index 00000000..1de8fab5
--- /dev/null
+++ b/config/hypr/animations/01-default - v2.lua
@@ -0,0 +1,27 @@
+-- Auto-generated from 01-default - v2.conf
+
+hl.config({
+ animations = {
+ enabled = true,
+ },
+})
+
+hl.curve("myBezier", { type = "bezier", points = { { 0.05, 0.9 }, { 0.1, 1.05 } } })
+hl.curve("linear", { type = "bezier", points = { { 0.0, 0.0 }, { 1.0, 1.0 } } })
+hl.curve("wind", { type = "bezier", points = { { 0.05, 0.9 }, { 0.1, 1.05 } } })
+hl.curve("winIn", { type = "bezier", points = { { 0.1, 1.1 }, { 0.1, 1.1 } } })
+hl.curve("winOut", { type = "bezier", points = { { 0.3, -0.3 }, { 0, 1 } } })
+hl.curve("slow", { type = "bezier", points = { { 0, 0.85 }, { 0.3, 1 } } })
+hl.curve("overshot", { type = "bezier", points = { { 0.7, 0.6 }, { 0.1, 1.1 } } })
+hl.curve("bounce", { type = "bezier", points = { { 1.1, 1.6 }, { 0.1, 0.85 } } })
+hl.curve("sligshot", { type = "bezier", points = { { 1, -1 }, { 0.15, 1.25 } } })
+hl.curve("nice", { type = "bezier", points = { { 0, 6.9 }, { 0.5, -4.20 } } })
+
+hl.animation({ leaf = "windowsIn", enabled = true, speed = 5, bezier = "slow", style = "popin" })
+hl.animation({ leaf = "windowsOut", enabled = true, speed = 5, bezier = "winOut", style = "popin" })
+hl.animation({ leaf = "windowsMove", enabled = true, speed = 5, bezier = "wind", style = "slide" })
+hl.animation({ leaf = "border", enabled = true, speed = 10, bezier = "linear" })
+hl.animation({ leaf = "borderangle", enabled = true, speed = 180, bezier = "linear", style = "loop" })
+hl.animation({ leaf = "fade", enabled = true, speed = 5, bezier = "overshot" })
+hl.animation({ leaf = "workspaces", enabled = true, speed = 5, bezier = "wind" })
+hl.animation({ leaf = "windows", enabled = true, speed = 5, bezier = "bounce", style = "popin" })
diff --git a/config/hypr/animations/03- Disable Animation.lua b/config/hypr/animations/03- Disable Animation.lua
new file mode 100644
index 00000000..80f4be52
--- /dev/null
+++ b/config/hypr/animations/03- Disable Animation.lua
@@ -0,0 +1,7 @@
+-- Auto-generated from 03- Disable Animation.conf
+
+hl.config({
+ animations = {
+ enabled = false,
+ },
+})
diff --git a/config/hypr/animations/END-4.lua b/config/hypr/animations/END-4.lua
new file mode 100644
index 00000000..ba110519
--- /dev/null
+++ b/config/hypr/animations/END-4.lua
@@ -0,0 +1,34 @@
+-- Auto-generated from END-4.conf
+
+hl.config({
+ animations = {
+ enabled = true,
+ },
+})
+
+hl.curve("linear", { type = "bezier", points = { { 0, 0 }, { 1, 1 } } })
+hl.curve("md3_standard", { type = "bezier", points = { { 0.2, 0 }, { 0, 1 } } })
+hl.curve("md3_decel", { type = "bezier", points = { { 0.05, 0.7 }, { 0.1, 1 } } })
+hl.curve("md3_accel", { type = "bezier", points = { { 0.3, 0 }, { 0.8, 0.15 } } })
+hl.curve("overshot", { type = "bezier", points = { { 0.05, 0.9 }, { 0.1, 1.1 } } })
+hl.curve("crazyshot", { type = "bezier", points = { { 0.1, 1.5 }, { 0.76, 0.92 } } })
+hl.curve("hyprnostretch", { type = "bezier", points = { { 0.05, 0.9 }, { 0.1, 1.0 } } })
+hl.curve("menu_decel", { type = "bezier", points = { { 0.1, 1 }, { 0, 1 } } })
+hl.curve("menu_accel", { type = "bezier", points = { { 0.38, 0.04 }, { 1, 0.07 } } })
+hl.curve("easeInOutCirc", { type = "bezier", points = { { 0.85, 0 }, { 0.15, 1 } } })
+hl.curve("easeOutCirc", { type = "bezier", points = { { 0, 0.55 }, { 0.45, 1 } } })
+hl.curve("easeOutExpo", { type = "bezier", points = { { 0.16, 1 }, { 0.3, 1 } } })
+hl.curve("softAcDecel", { type = "bezier", points = { { 0.26, 0.26 }, { 0.15, 1 } } })
+hl.curve("md2", { type = "bezier", points = { { 0.4, 0 }, { 0.2, 1 } } })
+
+hl.animation({ leaf = "windows", enabled = true, speed = 3, bezier = "md3_decel", style = "popin 60%" })
+hl.animation({ leaf = "windowsIn", enabled = true, speed = 3, bezier = "md3_decel", style = "popin 60%" })
+hl.animation({ leaf = "windowsOut", enabled = true, speed = 3, bezier = "md3_accel", style = "popin 60%" })
+hl.animation({ leaf = "border", enabled = true, speed = 10, bezier = "default" })
+hl.animation({ leaf = "fade", enabled = true, speed = 3, bezier = "md3_decel" })
+hl.animation({ leaf = "layersIn", enabled = true, speed = 3, bezier = "menu_decel", style = "slide" })
+hl.animation({ leaf = "layersOut", enabled = true, speed = 1.6, bezier = "menu_accel" })
+hl.animation({ leaf = "fadeLayersIn", enabled = true, speed = 2, bezier = "menu_decel" })
+hl.animation({ leaf = "fadeLayersOut", enabled = true, speed = 4.5, bezier = "menu_accel" })
+hl.animation({ leaf = "workspaces", enabled = true, speed = 7, bezier = "menu_decel", style = "slide" })
+hl.animation({ leaf = "specialWorkspace", enabled = true, speed = 3, bezier = "md3_decel", style = "slidevert" })
diff --git a/config/hypr/animations/HYDE - Vertical.lua b/config/hypr/animations/HYDE - Vertical.lua
new file mode 100644
index 00000000..e8d64192
--- /dev/null
+++ b/config/hypr/animations/HYDE - Vertical.lua
@@ -0,0 +1,22 @@
+-- Auto-generated from HYDE - Vertical.conf
+
+hl.config({
+ animations = {
+ enabled = true,
+ },
+})
+
+hl.curve("fluent_decel", { type = "bezier", points = { { 0, 0.2 }, { 0.4, 1 } } })
+hl.curve("easeOutCirc", { type = "bezier", points = { { 0, 0.55 }, { 0.45, 1 } } })
+hl.curve("easeOutCubic", { type = "bezier", points = { { 0.33, 1 }, { 0.68, 1 } } })
+hl.curve("easeinoutsine", { type = "bezier", points = { { 0.37, 0 }, { 0.63, 1 } } })
+
+hl.animation({ leaf = "windowsIn", enabled = true, speed = 1.5, bezier = "easeinoutsine", style = "popin 60%" })
+hl.animation({ leaf = "windowsOut", enabled = true, speed = 1.5, bezier = "easeOutCubic", style = "popin 60%" })
+hl.animation({ leaf = "windowsMove", enabled = true, speed = 1.5, bezier = "easeinoutsine", style = "slide" })
+hl.animation({ leaf = "fade", enabled = true, speed = 2.5, bezier = "fluent_decel" })
+hl.animation({ leaf = "fadeLayersIn", enabled = false })
+hl.animation({ leaf = "border", enabled = false })
+hl.animation({ leaf = "layers", enabled = true, speed = 1.5, bezier = "easeinoutsine", style = "popin" })
+hl.animation({ leaf = "workspaces", enabled = true, speed = 3, bezier = "fluent_decel", style = "slidefadevert 30%" })
+hl.animation({ leaf = "specialWorkspace", enabled = true, speed = 2, bezier = "fluent_decel", style = "slidefade 10%" })
diff --git a/config/hypr/animations/HYDE - default.lua b/config/hypr/animations/HYDE - default.lua
new file mode 100644
index 00000000..e9d63be7
--- /dev/null
+++ b/config/hypr/animations/HYDE - default.lua
@@ -0,0 +1,22 @@
+-- Auto-generated from HYDE - default.conf
+
+hl.config({
+ animations = {
+ enabled = true,
+ },
+})
+
+hl.curve("wind", { type = "bezier", points = { { 0.05, 0.9 }, { 0.1, 1.05 } } })
+hl.curve("winIn", { type = "bezier", points = { { 0.1, 1.1 }, { 0.1, 1.1 } } })
+hl.curve("winOut", { type = "bezier", points = { { 0.3, -0.3 }, { 0, 1 } } })
+hl.curve("liner", { type = "bezier", points = { { 1, 1 }, { 1, 1 } } })
+
+hl.animation({ leaf = "windows", enabled = true, speed = 6, bezier = "wind", style = "slide" })
+hl.animation({ leaf = "windowsIn", enabled = true, speed = 6, bezier = "winIn", style = "slide" })
+hl.animation({ leaf = "windowsOut", enabled = true, speed = 5, bezier = "winOut", style = "slide" })
+hl.animation({ leaf = "windowsMove", enabled = true, speed = 5, bezier = "wind", style = "slide" })
+hl.animation({ leaf = "border", enabled = true, speed = 1, bezier = "liner" })
+hl.animation({ leaf = "borderangle", enabled = true, speed = 30, bezier = "liner", style = "once" })
+hl.animation({ leaf = "fade", enabled = true, speed = 10, bezier = "default" })
+hl.animation({ leaf = "workspaces", enabled = true, speed = 5, bezier = "wind" })
+hl.animation({ leaf = "specialWorkspace", enabled = true, speed = 5, bezier = "wind", style = "slidevert" })
diff --git a/config/hypr/animations/HYDE - minimal-1.lua b/config/hypr/animations/HYDE - minimal-1.lua
new file mode 100644
index 00000000..9d8b4d6b
--- /dev/null
+++ b/config/hypr/animations/HYDE - minimal-1.lua
@@ -0,0 +1,21 @@
+-- Auto-generated from HYDE - minimal-1.conf
+
+hl.config({
+ animations = {
+ enabled = true,
+ },
+})
+
+hl.curve("wind", { type = "bezier", points = { { 0.05, 0.9 }, { 0.1, 1.05 } } })
+hl.curve("winIn", { type = "bezier", points = { { 0.1, 1.1 }, { 0.1, 1.1 } } })
+hl.curve("winOut", { type = "bezier", points = { { 0.3, -0.3 }, { 0, 1 } } })
+hl.curve("liner", { type = "bezier", points = { { 1, 1 }, { 1, 1 } } })
+
+hl.animation({ leaf = "windows", enabled = true, speed = 6, bezier = "wind", style = "slide" })
+hl.animation({ leaf = "windowsIn", enabled = true, speed = 6, bezier = "winIn", style = "slide" })
+hl.animation({ leaf = "windowsOut", enabled = true, speed = 5, bezier = "winOut", style = "slide" })
+hl.animation({ leaf = "windowsMove", enabled = true, speed = 5, bezier = "wind", style = "slide" })
+hl.animation({ leaf = "border", enabled = true, speed = 1, bezier = "liner" })
+hl.animation({ leaf = "borderangle", enabled = true, speed = 30, bezier = "liner", style = "once" })
+hl.animation({ leaf = "fade", enabled = true, speed = 10, bezier = "default" })
+hl.animation({ leaf = "workspaces", enabled = true, speed = 5, bezier = "wind" })
diff --git a/config/hypr/animations/HYDE - minimal-2.lua b/config/hypr/animations/HYDE - minimal-2.lua
new file mode 100644
index 00000000..0e4f45c8
--- /dev/null
+++ b/config/hypr/animations/HYDE - minimal-2.lua
@@ -0,0 +1,15 @@
+-- Auto-generated from HYDE - minimal-2.conf
+
+hl.config({
+ animations = {
+ enabled = true,
+ },
+})
+
+hl.curve("quart", { type = "bezier", points = { { 0.25, 1 }, { 0.5, 1 } } })
+
+hl.animation({ leaf = "windows", enabled = true, speed = 6, bezier = "quart", style = "slide" })
+hl.animation({ leaf = "border", enabled = true, speed = 6, bezier = "quart" })
+hl.animation({ leaf = "borderangle", enabled = true, speed = 6, bezier = "quart" })
+hl.animation({ leaf = "fade", enabled = true, speed = 6, bezier = "quart" })
+hl.animation({ leaf = "workspaces", enabled = true, speed = 6, bezier = "quart" })
diff --git a/config/hypr/animations/HYDE - optimized.lua b/config/hypr/animations/HYDE - optimized.lua
new file mode 100644
index 00000000..124542d9
--- /dev/null
+++ b/config/hypr/animations/HYDE - optimized.lua
@@ -0,0 +1,40 @@
+-- Auto-generated from HYDE - optimized.conf
+
+hl.config({
+ animations = {
+ enabled = true,
+ },
+})
+
+hl.curve("wind", { type = "bezier", points = { { 0.05, 0.85 }, { 0.03, 0.97 } } })
+hl.curve("winIn", { type = "bezier", points = { { 0.07, 0.88 }, { 0.04, 0.99 } } })
+hl.curve("winOut", { type = "bezier", points = { { 0.20, -0.15 }, { 0, 1 } } })
+hl.curve("liner", { type = "bezier", points = { { 1, 1 }, { 1, 1 } } })
+hl.curve("md3_standard", { type = "bezier", points = { { 0.12, 0 }, { 0, 1 } } })
+hl.curve("md3_decel", { type = "bezier", points = { { 0.05, 0.80 }, { 0.10, 0.97 } } })
+hl.curve("md3_accel", { type = "bezier", points = { { 0.20, 0 }, { 0.80, 0.08 } } })
+hl.curve("overshot", { type = "bezier", points = { { 0.05, 0.85 }, { 0.07, 1.04 } } })
+hl.curve("crazyshot", { type = "bezier", points = { { 0.1, 1.22 }, { 0.68, 0.98 } } })
+hl.curve("hyprnostretch", { type = "bezier", points = { { 0.05, 0.82 }, { 0.03, 0.94 } } })
+hl.curve("menu_decel", { type = "bezier", points = { { 0.05, 0.82 }, { 0, 1 } } })
+hl.curve("menu_accel", { type = "bezier", points = { { 0.20, 0 }, { 0.82, 0.10 } } })
+hl.curve("easeInOutCirc", { type = "bezier", points = { { 0.75, 0 }, { 0.15, 1 } } })
+hl.curve("easeOutCirc", { type = "bezier", points = { { 0, 0.48 }, { 0.38, 1 } } })
+hl.curve("easeOutExpo", { type = "bezier", points = { { 0.10, 0.94 }, { 0.23, 0.98 } } })
+hl.curve("softAcDecel", { type = "bezier", points = { { 0.20, 0.20 }, { 0.15, 1 } } })
+hl.curve("md2", { type = "bezier", points = { { 0.30, 0 }, { 0.15, 1 } } })
+hl.curve("OutBack", { type = "bezier", points = { { 0.28, 1.40 }, { 0.58, 1 } } })
+hl.curve("easeInOutCirc", { type = "bezier", points = { { 0.78, 0 }, { 0.15, 1 } } })
+
+hl.animation({ leaf = "border", enabled = true, speed = 1.6, bezier = "liner" })
+hl.animation({ leaf = "borderangle", enabled = true, speed = 82, bezier = "liner", style = "once" })
+hl.animation({ leaf = "windowsIn", enabled = true, speed = 3.2, bezier = "winIn", style = "slide" })
+hl.animation({ leaf = "windowsOut", enabled = true, speed = 2.8, bezier = "easeOutCirc" })
+hl.animation({ leaf = "windowsMove", enabled = true, speed = 3.0, bezier = "wind", style = "slide" })
+hl.animation({ leaf = "fade", enabled = true, speed = 1.8, bezier = "md3_decel" })
+hl.animation({ leaf = "layersIn", enabled = true, speed = 1.8, bezier = "menu_decel", style = "slide" })
+hl.animation({ leaf = "layersOut", enabled = true, speed = 1.5, bezier = "menu_accel" })
+hl.animation({ leaf = "fadeLayersIn", enabled = true, speed = 1.6, bezier = "menu_decel" })
+hl.animation({ leaf = "fadeLayersOut", enabled = true, speed = 1.8, bezier = "menu_accel" })
+hl.animation({ leaf = "workspaces", enabled = true, speed = 4.0, bezier = "menu_decel", style = "slide" })
+hl.animation({ leaf = "specialWorkspace", enabled = true, speed = 2.3, bezier = "md3_decel", style = "slidefadevert 15%" })
diff --git a/config/hypr/animations/ML4W - classic.lua b/config/hypr/animations/ML4W - classic.lua
new file mode 100644
index 00000000..76bfb491
--- /dev/null
+++ b/config/hypr/animations/ML4W - classic.lua
@@ -0,0 +1,16 @@
+-- Auto-generated from ML4W - classic.conf
+
+hl.config({
+ animations = {
+ enabled = true,
+ },
+})
+
+hl.curve("myBezier", { type = "bezier", points = { { 0.05, 0.9 }, { 0.1, 1.05 } } })
+
+hl.animation({ leaf = "windows", enabled = true, speed = 7, bezier = "myBezier" })
+hl.animation({ leaf = "windowsOut", enabled = true, speed = 7, bezier = "default", style = "popin 80%" })
+hl.animation({ leaf = "border", enabled = true, speed = 10, bezier = "default" })
+hl.animation({ leaf = "borderangle", enabled = true, speed = 8, bezier = "default" })
+hl.animation({ leaf = "fade", enabled = true, speed = 7, bezier = "default" })
+hl.animation({ leaf = "workspaces", enabled = true, speed = 6, bezier = "default" })
diff --git a/config/hypr/animations/ML4W - dynamic.lua b/config/hypr/animations/ML4W - dynamic.lua
new file mode 100644
index 00000000..13580c7b
--- /dev/null
+++ b/config/hypr/animations/ML4W - dynamic.lua
@@ -0,0 +1,21 @@
+-- Auto-generated from ML4W - dynamic.conf
+
+hl.config({
+ animations = {
+ enabled = true,
+ },
+})
+
+hl.curve("wind", { type = "bezier", points = { { 0.05, 0.9 }, { 0.1, 1.05 } } })
+hl.curve("winIn", { type = "bezier", points = { { 0.1, 1.1 }, { 0.1, 1.1 } } })
+hl.curve("winOut", { type = "bezier", points = { { 0.3, -0.3 }, { 0, 1 } } })
+hl.curve("liner", { type = "bezier", points = { { 1, 1 }, { 1, 1 } } })
+
+hl.animation({ leaf = "windows", enabled = true, speed = 6, bezier = "wind", style = "slide" })
+hl.animation({ leaf = "windowsIn", enabled = true, speed = 6, bezier = "winIn", style = "slide" })
+hl.animation({ leaf = "windowsOut", enabled = true, speed = 5, bezier = "winOut", style = "slide" })
+hl.animation({ leaf = "windowsMove", enabled = true, speed = 5, bezier = "wind", style = "slide" })
+hl.animation({ leaf = "border", enabled = true, speed = 1, bezier = "liner" })
+hl.animation({ leaf = "borderangle", enabled = true, speed = 30, bezier = "liner", style = "loop" })
+hl.animation({ leaf = "fade", enabled = true, speed = 10, bezier = "default" })
+hl.animation({ leaf = "workspaces", enabled = true, speed = 5, bezier = "wind" })
diff --git a/config/hypr/animations/ML4W - fast.lua b/config/hypr/animations/ML4W - fast.lua
new file mode 100644
index 00000000..3f628a20
--- /dev/null
+++ b/config/hypr/animations/ML4W - fast.lua
@@ -0,0 +1,25 @@
+-- Auto-generated from ML4W - fast.conf
+
+hl.config({
+ animations = {
+ enabled = true,
+ },
+})
+
+hl.curve("linear", { type = "bezier", points = { { 0, 0 }, { 1, 1 } } })
+hl.curve("md3_standard", { type = "bezier", points = { { 0.2, 0 }, { 0, 1 } } })
+hl.curve("md3_decel", { type = "bezier", points = { { 0.05, 0.7 }, { 0.1, 1 } } })
+hl.curve("md3_accel", { type = "bezier", points = { { 0.3, 0 }, { 0.8, 0.15 } } })
+hl.curve("overshot", { type = "bezier", points = { { 0.05, 0.9 }, { 0.1, 1.1 } } })
+hl.curve("crazyshot", { type = "bezier", points = { { 0.1, 1.5 }, { 0.76, 0.92 } } })
+hl.curve("hyprnostretch", { type = "bezier", points = { { 0.05, 0.9 }, { 0.1, 1.0 } } })
+hl.curve("fluent_decel", { type = "bezier", points = { { 0.1, 1 }, { 0, 1 } } })
+hl.curve("easeInOutCirc", { type = "bezier", points = { { 0.85, 0 }, { 0.15, 1 } } })
+hl.curve("easeOutCirc", { type = "bezier", points = { { 0, 0.55 }, { 0.45, 1 } } })
+hl.curve("easeOutExpo", { type = "bezier", points = { { 0.16, 1 }, { 0.3, 1 } } })
+
+hl.animation({ leaf = "windows", enabled = true, speed = 3, bezier = "md3_decel", style = "popin 60%" })
+hl.animation({ leaf = "border", enabled = true, speed = 10, bezier = "default" })
+hl.animation({ leaf = "fade", enabled = true, speed = 2.5, bezier = "md3_decel" })
+hl.animation({ leaf = "workspaces", enabled = true, speed = 3.5, bezier = "easeOutExpo", style = "slide" })
+hl.animation({ leaf = "specialWorkspace", enabled = true, speed = 3, bezier = "md3_decel", style = "slidevert" })
diff --git a/config/hypr/animations/ML4W - high.lua b/config/hypr/animations/ML4W - high.lua
new file mode 100644
index 00000000..3a0855ce
--- /dev/null
+++ b/config/hypr/animations/ML4W - high.lua
@@ -0,0 +1,21 @@
+-- Auto-generated from ML4W - high.conf
+
+hl.config({
+ animations = {
+ enabled = true,
+ },
+})
+
+hl.curve("wind", { type = "bezier", points = { { 0.05, 0.9 }, { 0.1, 1.05 } } })
+hl.curve("winIn", { type = "bezier", points = { { 0.1, 1.1 }, { 0.1, 1.1 } } })
+hl.curve("winOut", { type = "bezier", points = { { 0.3, -0.3 }, { 0, 1 } } })
+hl.curve("liner", { type = "bezier", points = { { 1, 1 }, { 1, 1 } } })
+
+hl.animation({ leaf = "windows", enabled = true, speed = 6, bezier = "wind", style = "slide" })
+hl.animation({ leaf = "windowsIn", enabled = true, speed = 6, bezier = "winIn", style = "slide" })
+hl.animation({ leaf = "windowsOut", enabled = true, speed = 5, bezier = "winOut", style = "slide" })
+hl.animation({ leaf = "windowsMove", enabled = true, speed = 5, bezier = "wind", style = "slide" })
+hl.animation({ leaf = "border", enabled = true, speed = 1, bezier = "liner" })
+hl.animation({ leaf = "borderangle", enabled = true, speed = 30, bezier = "liner", style = "once" })
+hl.animation({ leaf = "fade", enabled = true, speed = 10, bezier = "default" })
+hl.animation({ leaf = "workspaces", enabled = true, speed = 5, bezier = "wind" })
diff --git a/config/hypr/animations/ML4W - moving.lua b/config/hypr/animations/ML4W - moving.lua
new file mode 100644
index 00000000..6fadc3e0
--- /dev/null
+++ b/config/hypr/animations/ML4W - moving.lua
@@ -0,0 +1,20 @@
+-- Auto-generated from ML4W - moving.conf
+
+hl.config({
+ animations = {
+ enabled = true,
+ },
+})
+
+hl.curve("overshot", { type = "bezier", points = { { 0.05, 0.9 }, { 0.1, 1.05 } } })
+hl.curve("smoothOut", { type = "bezier", points = { { 0.5, 0 }, { 0.99, 0.99 } } })
+hl.curve("smoothIn", { type = "bezier", points = { { 0.5, -0.5 }, { 0.68, 1.5 } } })
+
+hl.animation({ leaf = "windows", enabled = true, speed = 5, bezier = "overshot", style = "slide" })
+hl.animation({ leaf = "windowsOut", enabled = true, speed = 3, bezier = "smoothOut" })
+hl.animation({ leaf = "windowsIn", enabled = true, speed = 3, bezier = "smoothOut" })
+hl.animation({ leaf = "windowsMove", enabled = true, speed = 4, bezier = "smoothIn", style = "slide" })
+hl.animation({ leaf = "border", enabled = true, speed = 5, bezier = "default" })
+hl.animation({ leaf = "fade", enabled = true, speed = 5, bezier = "smoothIn" })
+hl.animation({ leaf = "fadeDim", enabled = true, speed = 5, bezier = "smoothIn" })
+hl.animation({ leaf = "workspaces", enabled = true, speed = 6, bezier = "default" })
diff --git a/config/hypr/animations/ML4W - standard.lua b/config/hypr/animations/ML4W - standard.lua
new file mode 100644
index 00000000..04290074
--- /dev/null
+++ b/config/hypr/animations/ML4W - standard.lua
@@ -0,0 +1,16 @@
+-- Auto-generated from ML4W - standard.conf
+
+hl.config({
+ animations = {
+ enabled = true,
+ },
+})
+
+hl.curve("myBezier", { type = "bezier", points = { { 0.05, 0.9 }, { 0.1, 1.05 } } })
+
+hl.animation({ leaf = "windows", enabled = true, speed = 7, bezier = "myBezier" })
+hl.animation({ leaf = "windowsOut", enabled = true, speed = 7, bezier = "default", style = "popin 80%" })
+hl.animation({ leaf = "border", enabled = true, speed = 10, bezier = "default" })
+hl.animation({ leaf = "borderangle", enabled = true, speed = 8, bezier = "default" })
+hl.animation({ leaf = "fade", enabled = true, speed = 7, bezier = "default" })
+hl.animation({ leaf = "workspaces", enabled = true, speed = 6, bezier = "default" })
diff --git a/config/hypr/animations/Mahaveer - me-1.lua b/config/hypr/animations/Mahaveer - me-1.lua
new file mode 100644
index 00000000..5c9824ff
--- /dev/null
+++ b/config/hypr/animations/Mahaveer - me-1.lua
@@ -0,0 +1,41 @@
+-- Auto-generated from Mahaveer - me-1.conf
+
+hl.config({
+ animations = {
+ enabled = true,
+ },
+})
+
+hl.curve("wind", { type = "bezier", points = { { 0.05, 0.9 }, { 0.1, 1.05 } } })
+hl.curve("winIn", { type = "bezier", points = { { 0.1, 1.1 }, { 0.1, 1.1 } } })
+hl.curve("winOut", { type = "bezier", points = { { 0.3, -0.3 }, { 0, 1 } } })
+hl.curve("liner", { type = "bezier", points = { { 1, 1 }, { 1, 1 } } })
+hl.curve("md3_standard", { type = "bezier", points = { { 0.2, 0 }, { 0, 1 } } })
+hl.curve("md3_decel", { type = "bezier", points = { { 0.05, 0.7 }, { 0.1, 1 } } })
+hl.curve("md3_accel", { type = "bezier", points = { { 0.3, 0 }, { 0.8, 0.15 } } })
+hl.curve("overshot", { type = "bezier", points = { { 0.05, 0.9 }, { 0.1, 1.1 } } })
+hl.curve("crazyshot", { type = "bezier", points = { { 0.1, 1.5 }, { 0.76, 0.92 } } })
+hl.curve("hyprnostretch", { type = "bezier", points = { { 0.05, 0.9 }, { 0.1, 1.0 } } })
+hl.curve("menu_decel", { type = "bezier", points = { { 0.1, 1 }, { 0, 1 } } })
+hl.curve("menu_accel", { type = "bezier", points = { { 0.38, 0.04 }, { 1, 0.07 } } })
+hl.curve("easeInOutCirc", { type = "bezier", points = { { 0.85, 0 }, { 0.15, 1 } } })
+hl.curve("easeOutCirc", { type = "bezier", points = { { 0, 0.55 }, { 0.45, 1 } } })
+hl.curve("easeOutExpo", { type = "bezier", points = { { 0.16, 1 }, { 0.3, 1 } } })
+hl.curve("softAcDecel", { type = "bezier", points = { { 0.26, 0.26 }, { 0.15, 1 } } })
+hl.curve("md2", { type = "bezier", points = { { 0.4, 0 }, { 0.2, 1 } } })
+
+hl.animation({ leaf = "border", enabled = true, speed = 1, bezier = "liner" })
+hl.animation({ leaf = "borderangle", enabled = true, speed = 30, bezier = "liner", style = "once" })
+hl.animation({ leaf = "windows", enabled = true, speed = 6, bezier = "wind", style = "slide" })
+hl.animation({ leaf = "windowsIn", enabled = true, speed = 6, bezier = "winIn", style = "slide" })
+hl.animation({ leaf = "windowsOut", enabled = true, speed = 5, bezier = "winOut", style = "slide" })
+hl.animation({ leaf = "windowsMove", enabled = true, speed = 5, bezier = "wind", style = "slide" })
+hl.animation({ leaf = "fade", enabled = true, speed = 3, bezier = "md3_decel" })
+hl.animation({ leaf = "layersIn", enabled = true, speed = 3, bezier = "menu_decel", style = "slide" })
+hl.animation({ leaf = "layersOut", enabled = true, speed = 1.6, bezier = "menu_accel" })
+hl.animation({ leaf = "fadeLayersIn", enabled = true, speed = 2, bezier = "menu_decel" })
+hl.animation({ leaf = "fadeLayersOut", enabled = true, speed = 4.5, bezier = "menu_accel" })
+hl.animation({ leaf = "workspaces", enabled = true, speed = 7, bezier = "menu_decel", style = "slide" })
+hl.animation({ leaf = "workspaces", enabled = true, speed = 5, bezier = "wind" })
+hl.animation({ leaf = "specialWorkspace", enabled = true, speed = 3, bezier = "md3_decel", style = "slidefadevert 15%" })
+hl.animation({ leaf = "specialWorkspace", enabled = true, speed = 3, bezier = "md3_decel", style = "slidevert" })
diff --git a/config/hypr/animations/Mahaveer - me-2.lua b/config/hypr/animations/Mahaveer - me-2.lua
new file mode 100644
index 00000000..72feaa00
--- /dev/null
+++ b/config/hypr/animations/Mahaveer - me-2.lua
@@ -0,0 +1,26 @@
+-- Auto-generated from Mahaveer - me-2.conf
+
+hl.config({
+ animations = {
+ enabled = true,
+ },
+})
+
+hl.curve("wind", { type = "bezier", points = { { 0.05, 0.9 }, { 0.1, 1.05 } } })
+hl.curve("winIn", { type = "bezier", points = { { 0.1, 1.1 }, { 0.1, 1.1 } } })
+hl.curve("winOut", { type = "bezier", points = { { 0.3, -0.3 }, { 0, 1 } } })
+hl.curve("liner", { type = "bezier", points = { { 1, 1 }, { 1, 1 } } })
+hl.curve("overshot", { type = "bezier", points = { { 0.05, 0.9 }, { 0.1, 1.05 } } })
+hl.curve("smoothOut", { type = "bezier", points = { { 0.5, 0 }, { 0.99, 0.99 } } })
+hl.curve("smoothIn", { type = "bezier", points = { { 0.5, -0.5 }, { 0.68, 1.5 } } })
+
+hl.animation({ leaf = "windows", enabled = true, speed = 6, bezier = "wind", style = "slide" })
+hl.animation({ leaf = "windowsIn", enabled = true, speed = 5, bezier = "winIn", style = "slide" })
+hl.animation({ leaf = "windowsOut", enabled = true, speed = 3, bezier = "smoothOut", style = "slide" })
+hl.animation({ leaf = "windowsMove", enabled = true, speed = 5, bezier = "wind", style = "slide" })
+hl.animation({ leaf = "border", enabled = true, speed = 1, bezier = "liner" })
+hl.animation({ leaf = "borderangle", enabled = true, speed = 180, bezier = "liner", style = "loop" })
+hl.animation({ leaf = "fade", enabled = true, speed = 3, bezier = "smoothOut" })
+hl.animation({ leaf = "workspaces", enabled = true, speed = 5, bezier = "overshot" })
+hl.animation({ leaf = "workspacesIn", enabled = true, speed = 5, bezier = "winIn", style = "slide" })
+hl.animation({ leaf = "workspacesOut", enabled = true, speed = 5, bezier = "winOut", style = "slide" })
diff --git a/config/hypr/animations/Spring-curves.conf b/config/hypr/animations/Spring-curves.conf
new file mode 100644
index 00000000..1663d16e
--- /dev/null
+++ b/config/hypr/animations/Spring-curves.conf
@@ -0,0 +1,25 @@
+# /* ---- 💫 https://github.com/LinuxBeginnings 💫 ---- */ #
+#
+# name "Spring-curves"
+
+animations {
+ enabled = yes
+
+ # Hyprland .conf uses bezier curves; these approximate the Lua spring presets.
+ bezier = spring_fast, 0.18, 0.88, 0.14, 1.0
+ bezier = spring_slow, 0.25, 0.82, 0.18, 1.0
+
+ animation = windows, 1, 1, spring_fast
+ animation = windowsIn, 1, 1, spring_fast, popin 50%
+ animation = windowsOut, 1, 1, spring_fast, popin
+ animation = border, 1, 1, spring_slow
+ animation = borderangle, 0
+ animation = fade, 1, 1, spring_slow
+ animation = zoomFactor, 1, 6, spring_fast
+ animation = layersIn, 1, 3, spring_fast, slide
+ animation = layersOut, 1, 1.6, spring_fast, slide
+ animation = fadeLayersIn, 1, 2, spring_fast
+ animation = fadeLayersOut, 1, 1.6, spring_fast
+ animation = workspaces, 1, 1, spring_slow, slide
+ animation = specialWorkspace, 1, 1, spring_slow, slidevert 80%
+}
diff --git a/config/hypr/animations/Spring-curves.lua b/config/hypr/animations/Spring-curves.lua
new file mode 100644
index 00000000..fefc3731
--- /dev/null
+++ b/config/hypr/animations/Spring-curves.lua
@@ -0,0 +1,28 @@
+-- Spring Curves
+hl.curve("spring_fast", { type = "spring", mass = 2, stiffness = 30, dampening = 15 })
+hl.curve("spring_slow", { type = "spring", mass = 2, stiffness = 15, dampening = 10 })
+
+-- Window animations
+hl.animation({ leaf = "windows", enabled = true, speed = 1, spring = "spring_fast" })
+hl.animation({ leaf = "windowsIn", enabled = true, speed = 1, spring = "spring_fast", style = "popin 50%" })
+hl.animation({ leaf = "windowsOut", enabled = true, speed = 1, spring = "spring_fast", style = "popin" })
+
+-- Border animations
+hl.animation({ leaf = "border", enabled = true, speed = 1, spring = "spring_slow" })
+hl.animation({ leaf = "borderangle", enabled = false })
+
+-- Fade
+hl.animation({ leaf = "fade", enabled = true, speed = 1, spring = "spring_slow" })
+
+-- Zoom cursor
+hl.animation({ leaf = "zoomFactor", enabled = true, speed = 6, spring = "spring_fast" })
+
+-- Layer animations
+hl.animation({ leaf = "layersIn", enabled = true, speed = 3, spring = "spring_fast", style = "slide" })
+hl.animation({ leaf = "layersOut", enabled = true, speed = 1.6, spring = "spring_fast", style = "slide" })
+hl.animation({ leaf = "fadeLayersIn", enabled = true, speed = 2, spring = "spring_fast" })
+hl.animation({ leaf = "fadeLayersOut", enabled = true, speed = 1.6, spring = "spring_fast" })
+
+-- Workspace animations
+hl.animation({ leaf = "workspaces", enabled = true, speed = 1, spring = "spring_slow", style = "slide" })
+hl.animation({ leaf = "specialWorkspace", enabled = true, speed = 1, spring = "spring_slow", style = "slidevert 80%" })
diff --git a/config/hypr/configs/ENVariables.conf b/config/hypr/configs/ENVariables.conf
index b134b60d..e8a51555 100644
--- a/config/hypr/configs/ENVariables.conf
+++ b/config/hypr/configs/ENVariables.conf
@@ -10,7 +10,7 @@
# environment-variables
# Current Version of KoolDots:
-env = DOTS_VERSION,2.3.24
+env = DOTS_VERSION,2.3.25
### Toolkit Backend Variables ###
env = GDK_BACKEND,wayland,x11,*
@@ -32,10 +32,12 @@ env = XDG_SESSION_TYPE,wayland
env = QT_AUTO_SCREEN_SCALE_FACTOR,1
env = QT_WAYLAND_DISABLE_WINDOWDECORATION,1
env = QT_QPA_PLATFORMTHEME,qt6ct
-env = QT_STYLE_OVERRIDE,kvantum
+env = QT_STYLE_OVERRIDE,Fusion
### hyprland-qt-support ###
-env = QT_QUICK_CONTROLS_STYLE,org.hyprland.style
+# Keep a safe default. copy.sh switches this to org.hyprland.style when the
+# matching QML style module is detected on the system.
+env = QT_QUICK_CONTROLS_STYLE,Basic
### xwayland apps scale fix (useful if you are use monitor scaling) ###
# Set same value if you use scaling in Monitors.conf
@@ -47,8 +49,10 @@ env = QT_SCALE_FACTOR,1
# Bibata-Modern-Ice-Cursor
# NOTE! You must have the hyprcursor version to activate this.
# https://wiki.hyprland.org/Hypr-Ecosystem/hyprcursor/
-#env = HYPRCURSOR_THEME,Bibata-Modern-Ice
-#env = HYPRCURSOR_SIZE,24
+env = HYPRCURSOR_THEME,Bibata-Modern-Ice
+env = HYPRCURSOR_SIZE,24
+env = XCURSOR_THEME,Bibata-Modern-Ice
+env = XCURSOR_SIZE,24
### firefox ###
env = MOZ_ENABLE_WAYLAND,1
@@ -61,10 +65,10 @@ env = ELECTRON_OZONE_PLATFORM_HINT,auto # auto selects Wayland if possible, X11
# This is from Hyprland Wiki. Below will be activated nvidia gpu detected
# See hyprland wiki https://wiki.hyprland.org/Nvidia/#environment-variables
-#env = LIBVA_DRIVER_NAME,nvidia
-#env = __GLX_VENDOR_LIBRARY_NAME,nvidia
-#env = NVD_BACKEND,direct
-#env = GSK_RENDERER,ngl
+env = LIBVA_DRIVER_NAME,nvidia
+env = __GLX_VENDOR_LIBRARY_NAME,nvidia
+env = NVD_BACKEND,direct
+env = GSK_RENDERER,ngl
### additional ENV's for nvidia. Caution, activate with care ###
#env = GBM_BACKEND,nvidia-drm
@@ -77,7 +81,7 @@ env = ELECTRON_OZONE_PLATFORM_HINT,auto # auto selects Wayland if possible, X11
### FOR VM and POSSIBLY NVIDIA ###
# LIBGL_ALWAYS_SOFTWARE software mesa rendering
#env = LIBGL_ALWAYS_SOFTWARE,1 # Warning. May cause hyprland to crash
-#env = WLR_RENDERER_ALLOW_SOFTWARE,1
+env = WLR_RENDERER_ALLOW_SOFTWARE,1
### nvidia firefox ###
# check this post https://github.com/elFarto/nvidia-vaapi-driver#configuration
diff --git a/config/hypr/configs/Keybinds.conf b/config/hypr/configs/Keybinds.conf
index 82693694..db666f2f 100644
--- a/config/hypr/configs/Keybinds.conf
+++ b/config/hypr/configs/Keybinds.conf
@@ -18,13 +18,13 @@ source= $UserConfigs/01-UserDefaults.conf
#### STANDARD ####
# Common shortcuts
#bindr = $mainMod, $mainMod_L, exec, pkill rofi || rofi -show drun -modi drun,filebrowser,run,window # Super Key to Launch rofi menu
-bindd = $mainMod, D, App launcher, exec, pkill rofi || true && rofi -show drun -modi drun,filebrowser,run,window
+bindd = $mainMod, D, App launcher, exec, pkill rofi || true; $scriptsDir/RofiFocusedWallpaperLink.sh >/dev/null 2>&1 || true; rofi -show drun -modi drun,filebrowser,run,window
bindd = $mainMod, B, Open default browser, exec, xdg-open "https://"
bindd = $mainMod, A, Desktop overview, exec, $scriptsDir/OverviewToggle.sh # toggles quickshell or ags overview (tries QS first, falls back to AGS)
#bindd = $mainMod, A, Ags overview, exec, pkill rofi || true && ags -t 'overview' # desktop overview (if installed)
#bindd = $mainMod, A, Quickshell overview, global, quickshell:overviewToggle # desktop overview (if installed)
-bindd = $mainMod, Return, Open terminal, exec, $term
-bindd = $mainMod, E, File manager, exec, $files
+bindd = $mainMod, Return, Open terminal, exec, $scriptsDir/LaunchTerminal.sh "$term"
+bindd = $mainMod, E, File manager, exec, $scriptsDir/LaunchFileManager.sh "$files" "$term"
bindd = $mainMod, C, SSH session manager, exec, $scriptsDir/rofi-ssh-menu.sh
# FEATURES / EXTRAS
@@ -33,7 +33,7 @@ bindd = $mainMod, H, Help / cheat sheet, exec, $scriptsDir/KeyHints.sh
bindd = $mainMod ALT, R, Refresh bar and menus, exec, $scriptsDir/Refresh.sh
bindd = $mainMod ALT, E, Emoji menu, exec, $scriptsDir/RofiEmoji.sh
bindd = $mainMod, S, Web search, exec, $scriptsDir/RofiSearch.sh
-bindd = $mainMod CTRL, S, Window switcher, exec, rofi -show window
+bindd = $mainMod CTRL, S, Window switcher, exec, $scriptsDir/RofiFocusedWallpaperLink.sh >/dev/null 2>&1 || true; rofi -show window
bindd = $mainMod ALT, O, Toggle blur, exec, $scriptsDir/ChangeBlur.sh
bindd = $mainMod SHIFT, G, Toggle game mode, exec, $scriptsDir/GameMode.sh
bindd = $mainMod ALT, L, Toggle layouts, exec, $scriptsDir/ChangeLayout.sh toggle
@@ -47,7 +47,7 @@ bindd = $mainMod SHIFT, H, Toggle Mute/Unmute for Active-Window, exec, $scriptsD
bindd = ALT SHIFT, S, Hyprshot Screen Capture, exec, $scriptsDir/hyprshot.sh -m region -o $HOME/Pictures/Screenshots
bindd = $mainMod SHIFT, F, Fullscreen, fullscreen
-bindd = $mainMod CTRL, F, Maximize window, fullscreen, 1
+bindd = $mainMod, F, Maximize window, fullscreen, 1
bindd = $mainMod, SPACE, Float current window, togglefloating,
bindd = $mainMod ALT, SPACE, Float all windows, exec, $scriptsDir/Float-all-Windows.sh
# NOTE: Dropterminal is currently certified only with kitty. Not all terminals behave correctly as a dropdown.
@@ -67,13 +67,13 @@ bindd = $mainMod, N, Toggle Hyprsunset - night light, exec, $scriptsDir/Hyprsuns
# FEATURES / EXTRAS (UserScripts)
bindd = $mainMod SHIFT, M, Online music, exec, $UserScripts/RofiBeats.sh
-bindd = $mainMod, W, Select Wallpaper, exec, $UserScripts/WallpaperSelect.sh
-bindd = $mainMod SHIFT, W, Wallpaper effects, exec, $UserScripts/WallpaperEffects.sh
-bindd = CTRL ALT, W, Random wallpaper, exec, $UserScripts/WallpaperRandom.sh
+bindd = $mainMod, W, Select Wallpaper, exec, $scriptsDir/WallpaperSelect.sh
+bindd = $mainMod SHIFT, W, Wallpaper effects, exec, $scriptsDir/WallpaperEffects.sh
+bindd = CTRL ALT, W, Random wallpaper, exec, $scriptsDir/WallpaperRandom.sh
bindd = $mainMod CTRL, O, Toggle active window opacity, setprop, active opaque toggle
bindd = $mainMod SHIFT, K, Search keybinds, exec, $scriptsDir/KeyBinds.sh
bindd = $mainMod SHIFT, A, Animations menu, exec, $scriptsDir/Animations.sh
-bindd = $mainMod SHIFT, O, Change ZSH (oh-my-zsh) theme, exec, $UserScripts/ZshChangeTheme.sh
+bindd = $mainMod SHIFT, O, Change ZSH (oh-my-zsh) theme, exec, $scriptsDir/ZshChangeTheme.sh
bindlnd = ALT_L, SHIFT_L, Switch keyboard layout globally, exec, $scriptsDir/KeyboardLayout.sh switch
bindlnd = SHIFT_L, ALT_L, Switch keyboard layout per-window, exec, $scriptsDir/Tak0-Per-Window-Switch.sh
bindd = $mainMod ALT, C, Calculator, exec, $UserScripts/RofiCalc.sh
@@ -97,9 +97,9 @@ bindd = $mainMod SHIFT, E, Quick settings menu, exec, $scriptsDir/Kool_Quick_Set
# Master Layout
bindd = $mainMod CTRL, D, Remove master, layoutmsg, removemaster
bindd = $mainMod, I, Add master, layoutmsg, addmaster
-# j/k cycle windows globally
-bindd = $mainMod, j, Cycle next, cyclenext
-bindd = $mainMod, k, Cycle previous, cyclenext, prev
+# j/k cycle windows (layout-aware)
+bindd = $mainMod, j, Cycle next (layout-aware), exec, $scriptsDir/LayoutKeybindDispatch.sh cycle-next
+bindd = $mainMod, k, Cycle previous (layout-aware), exec, $scriptsDir/LayoutKeybindDispatch.sh cycle-prev
bindd = $mainMod CTRL, Return, Swap with master, layoutmsg, swapwithmaster
# Dwindle Layout
@@ -108,7 +108,7 @@ bindd = $mainMod, P, Toggle pseudo (dwindle), pseudo,
# Works on either layout (Master or Dwindle)
bindd = $mainMod, M, Set split ratio 0.3, exec, hyprctl dispatch splitratio 0.3
-# layout aware keybinds
+# legacy init hook kept for compatibility; keybind behavior is now resolved dynamically
exec-once = $scriptsDir/ChangeLayout.sh init
# Direct layout binds
@@ -122,6 +122,7 @@ bindd = $mainMod SHIFT, period, Move to right column, layoutmsg, move +col
bindd = $mainMod SHIFT, comma, Move to left column, layoutmsg, move -col
bindd = $mainMod ALT, comma, Swap columns left, layoutmsg, swapcol l
bindd = $mainMod ALT, period, Swap columns right, layoutmsg, swapcol r
+bindd = $mainMod, R, Cycle column width preset (scrolling), exec, bash $scriptsDir/ScrollCycleColumnWidth.sh
# Set layout to Horizontal (Standard "Tape" style)
bindd = $mainMod ALT, H, Horizonal scroll right,exec, hyprctl keyword scrolling:direction right
@@ -198,11 +199,11 @@ bindd = $mainMod CTRL, H, Move active out of group, moveoutofgroup # Move active
#bindd = $mainMod, right, Focus right, exec, bash -c 'if hyprctl activewindow -j | jq -e "((.grouped | type) == \"boolean\") or (.address == (.grouped[-1] // empty))" >/dev/null 2>&1; then hyprctl dispatch movefocus r; else hyprctl dispatch changegroupactive f; fi'
#bindd = $mainMod, left, Focus left, exec, bash -c 'if hyprctl activewindow -j | jq -e "((.grouped | type) == \"boolean\") or (.address == (.grouped[0] // empty))" >/dev/null 2>&1; then hyprctl dispatch movefocus l; else hyprctl dispatch changegroupactive b; fi'
-# Move focus with mainMod + arrow keys
-bindd = $mainMod, left, Focus left, movefocus, l
-bindd = $mainMod, right, Focus right, movefocus, r
-bindd = $mainMod, up, Focus up, movefocus, u
-bindd = $mainMod, down, Focus down, movefocus, d
+# Move focus with mainMod + arrow keys (layout-aware)
+bindd = $mainMod, left, Focus left (layout-aware), exec, $scriptsDir/LayoutKeybindDispatch.sh focus-left
+bindd = $mainMod, right, Focus right (layout-aware), exec, $scriptsDir/LayoutKeybindDispatch.sh focus-right
+bindd = $mainMod, up, Focus up (layout-aware), exec, $scriptsDir/LayoutKeybindDispatch.sh focus-up
+bindd = $mainMod, down, Focus down (layout-aware), exec, $scriptsDir/LayoutKeybindDispatch.sh focus-down
# Workspaces related
bindd = $mainMod, tab, Next workspace, workspace, m+1
diff --git a/config/hypr/configs/Startup_Apps.conf b/config/hypr/configs/Startup_Apps.conf
index bf8b3b4b..94a4837a 100644
--- a/config/hypr/configs/Startup_Apps.conf
+++ b/config/hypr/configs/Startup_Apps.conf
@@ -8,7 +8,7 @@
$scriptsDir = $HOME/.config/hypr/scripts
$UserScripts = $HOME/.config/hypr/UserScripts
$lock = $scriptsDir/LockScreen.sh
-$SwwwRandom = $UserScripts/WallpaperAutoChange.sh
+$SwwwRandom = $scriptsDir/WallpaperAutoChange.sh
$livewallpaper=""
$wallDIR = $HOME/Pictures/wallpapers # change path manually here if needed
@@ -23,13 +23,16 @@ exec-once = dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CUR
exec-once = systemctl --user import-environment WAYLAND_DISPLAY XDG_CURRENT_DESKTOP
exec-once = $scriptsDir/Polkit.sh
exec-once = nm-applet
-exec-once = nm-tray # For ubuntu
+#exec-once = nm-tray # For ubuntu Optional now
exec-once = swaync
#exec-once = ags
#exec-once = blueman-applet
#exec-once = rog-control-center
exec-once = $scriptsDir/PortalHyprland.sh
+exec-once = sh $HOME/.config/hypr/scripts/ApplyThemeMode.sh
exec-once = sh $scriptsDir/WaybarStartup.sh
+# Cursor refresh (enabled by installer on hybrid NVIDIA/GDM setups)
+exec-once = sh -c 'sleep 0.3; hyprctl setcursor "${HYPRCURSOR_THEME:-Bibata-Modern-Ice}" "${HYPRCURSOR_SIZE:-24}"'
exec-once = qs -c overview # Quickshell Overview
exec-once = hypridle
exec-once = $scriptsDir/LuaAutoReload.sh
@@ -56,3 +59,5 @@ exec-once = wl-paste --type image --watch cliphist store
#exec-once = $scriptsDir/PortalHyprland.sh
exec-once = blueman-applet
exec-once = $scriptsDir/KeybindsLayoutInit.sh
+exec-once = ags
+exec-once = qs
diff --git a/config/hypr/configs/SystemSettings.conf b/config/hypr/configs/SystemSettings.conf
index 8e64a78a..6db89ef8 100644
--- a/config/hypr/configs/SystemSettings.conf
+++ b/config/hypr/configs/SystemSettings.conf
@@ -157,7 +157,7 @@ render {
cursor {
sync_gsettings_theme = true
- no_hardware_cursors = 2 # change to 1 if want to disable
+ no_hardware_cursors = 0 # change to 1 if want to disable
enable_hyprcursor = true
warp_on_change_workspace = 2
no_warps = true
diff --git a/config/hypr/configs/WindowRules.conf b/config/hypr/configs/WindowRules.conf
index 03ad5984..c292a6cb 100644
--- a/config/hypr/configs/WindowRules.conf
+++ b/config/hypr/configs/WindowRules.conf
@@ -567,3 +567,13 @@ windowrule {
center = on
size = (monitor_w*0.7) (monitor_h*0.75)
}
+
+# Named rule for hyprland share picker
+windowrule {
+ name = hyprland screen share picker
+ match:class = ^(hyprland-share-picker)$
+ match:title = ^(Select what to share)$
+ match:initial_class = ^(hyprland-share-picker)$
+ float = on
+ center = on
+}
diff --git a/config/hypr/configs/system_keybinds.lua b/config/hypr/configs/system_keybinds.lua
new file mode 100644
index 00000000..8223ecb9
--- /dev/null
+++ b/config/hypr/configs/system_keybinds.lua
@@ -0,0 +1,416 @@
+-- ==================================================
+-- KoolDots (2026)
+-- Project URL: https://github.com/LinuxBeginnings
+-- License: GNU GPLv3
+-- SPDX-License-Identifier: GPL-3.0-or-later
+-- ==================================================
+
+-- System defaults migrated from configs/Keybinds.conf (auto-generated).
+-- Add keybinds with bind("MODS", "KEY", fn, opts).
+-- Example:
+-- bind("SUPER", "Z", exec_cmd("thunar"), { description = "Open file manager" })
+
+local dsp = hl.dsp or hl
+local function resolve_cmd(cmd)
+ local defaults = rawget(_G, "KOOLDOTS_DEFAULTS") or {}
+ local resolved_term = defaults.term or os.getenv("TERMINAL") or "kitty"
+ local resolved_files = defaults.files or "thunar"
+ local resolved_edit = defaults.edit or os.getenv("EDITOR") or "nano"
+ cmd = tostring(cmd)
+ cmd = cmd:gsub("%$term", resolved_term)
+ cmd = cmd:gsub("%$files", resolved_files)
+ cmd = cmd:gsub("%$edit", resolved_edit)
+ return cmd
+end
+
+local function exec_cmd(cmd)
+ local resolved = resolve_cmd(cmd)
+ if dsp and dsp.exec_cmd then
+ return dsp.exec_cmd(resolved)
+ end
+ return function() hl.exec_cmd(resolved) end
+end
+
+local function shell_quote(value)
+ return "'" .. tostring(value):gsub("'", "'\\''") .. "'"
+end
+
+local function raw_dispatch_cmd(command)
+ if dsp and dsp.exec_raw then
+ return dsp.exec_raw(tostring(command))
+ end
+ local expression = "hl.dsp.exec_raw(" .. string.format("%q", tostring(command)) .. ")"
+ return exec_cmd("hyprctl dispatch " .. shell_quote(expression))
+end
+
+local function trim(value)
+ return (value or ""):gsub("^%s+", ""):gsub("%s+$", "")
+end
+
+local function chord(mods, key)
+ mods = trim(mods):gsub("%s+", " + ")
+ key = trim(key)
+ if mods == "" then
+ return key
+ end
+ return mods .. " + " .. key
+end
+
+local function key_variants(key, mods)
+ key = trim(key):gsub("^xf86", "XF86")
+ local key_aliases = {
+ XF86AudioPlayPause = "XF86AudioPlay",
+ XF86audiolowervolume = "XF86AudioLowerVolume",
+ XF86audiomute = "XF86AudioMute",
+ XF86audioraisevolume = "XF86AudioRaiseVolume",
+ XF86audiostop = "XF86AudioStop",
+ }
+ key = key_aliases[key] or key
+ local shifted_number_keys = {
+ ["code:10"] = "exclam",
+ ["code:11"] = "at",
+ ["code:12"] = "numbersign",
+ ["code:13"] = "dollar",
+ ["code:14"] = "percent",
+ ["code:15"] = "asciicircum",
+ ["code:16"] = "ampersand",
+ ["code:17"] = "asterisk",
+ ["code:18"] = "parenleft",
+ ["code:19"] = "parenright",
+ }
+ local number_keys = {
+ ["code:10"] = "1",
+ ["code:11"] = "2",
+ ["code:12"] = "3",
+ ["code:13"] = "4",
+ ["code:14"] = "5",
+ ["code:15"] = "6",
+ ["code:16"] = "7",
+ ["code:17"] = "8",
+ ["code:18"] = "9",
+ ["code:19"] = "0",
+ }
+ if mods:match("SHIFT") and shifted_number_keys[key] then
+ local number_key = number_keys[key]
+ if number_key then
+ return { shifted_number_keys[key], number_key }
+ end
+ return { shifted_number_keys[key] }
+ end
+ if number_keys[key] then
+ return { number_keys[key] }
+ end
+ return { key }
+end
+
+local function workspace_value(value)
+ value = trim(value)
+ return tonumber(value) or value
+end
+
+local function direction(value)
+ local directions = {
+ l = "left",
+ r = "right",
+ u = "up",
+ d = "down",
+ left = "left",
+ right = "right",
+ up = "up",
+ down = "down",
+ }
+ return directions[trim(value)] or trim(value)
+end
+
+local function dispatch(name, args)
+ local window_api = (dsp and dsp.window) or hl.window or {}
+ name = trim(name)
+ args = trim(args)
+ if name == "exec" then
+ return exec_cmd(args)
+ end
+ if name == "killactive" and window_api.close then
+ return window_api.close()
+ end
+ if name == "fullscreen" and window_api.fullscreen then
+ if args == "1" then
+ return window_api.fullscreen({ mode = "maximized" })
+ end
+ return window_api.fullscreen({ mode = "fullscreen" })
+ end
+ if name == "movefocus" and dsp and dsp.focus then
+ return function()
+ local ok, dispatcher = pcall(dsp.focus, { direction = direction(args) })
+ if ok and dispatcher then
+ hl.dispatch(dispatcher)
+ end
+ end
+ end
+ if name == "cyclenext" then
+ if args == "prev" or args == "b" then
+ return exec_cmd("$HOME/.config/hypr/scripts/LuaCycleWindow.sh previous")
+ end
+ return exec_cmd("$HOME/.config/hypr/scripts/LuaCycleWindow.sh next")
+ end
+ if name == "swapwindow" then
+ local swap_direction = trim(args)
+ if swap_direction == "" then
+ return nil
+ end
+ return exec_cmd("$HOME/.config/hypr/scripts/LuaSwapWindow.sh " .. swap_direction)
+ end
+ if name == "workspace" and dsp and dsp.focus then
+ return function() hl.dispatch(dsp.focus({ workspace = workspace_value(args) })) end
+ end
+ if name == "movetoworkspace" and window_api.move then
+ return function() hl.dispatch(window_api.move({ workspace = workspace_value(args) })) end
+ end
+ if name == "movetoworkspacesilent" and window_api.move then
+ return function() hl.dispatch(window_api.move({ workspace = workspace_value(args), follow = false })) end
+ end
+ if name == "togglefloating" and window_api.float then
+ return function() hl.dispatch(window_api.float({ action = "toggle" })) end
+ end
+ if name == "resizewindow" and window_api.resize then
+ return window_api.resize()
+ end
+ if name == "resizeactive" and window_api.resize then
+ local x, y = args:match("^(%-?%d+)%s+(%-?%d+)$")
+ if x and y then
+ return window_api.resize({ x = tonumber(x) or 0, y = tonumber(y) or 0, relative = true })
+ end
+ end
+ if name == "movewindow" and args == "" and window_api.drag then
+ return window_api.drag()
+ end
+ if args ~= "" then
+ return raw_dispatch_cmd(name .. " " .. args)
+ end
+ return raw_dispatch_cmd(name)
+end
+
+local function bind(mods, key, fn, opts)
+ local seen = {}
+ for _, key_variant in ipairs(key_variants(key, mods)) do
+ local key_chord = chord(mods, key_variant)
+ if not seen[key_chord] then
+ seen[key_chord] = true
+ if opts then
+ hl.bind(key_chord, fn, opts)
+ else
+ hl.bind(key_chord, fn)
+ end
+ end
+ end
+end
+
+local function unbind(mods, key)
+ if hl.unbind then
+ local seen = {}
+ for _, key_variant in ipairs(key_variants(key, mods)) do
+ local key_chord = chord(mods, key_variant)
+ if not seen[key_chord] then
+ seen[key_chord] = true
+ local ok = pcall(hl.unbind, mods, key_variant)
+ if not ok then
+ pcall(hl.unbind, key_chord)
+ end
+ end
+ end
+ end
+end
+
+-- Converted from configs/Keybinds.conf
+bind("SUPER", "D", exec_cmd("pkill rofi || true && rofi -show drun -modi drun, filebrowser, run, window"), { description = "app launcher" })
+bind("SUPER", "B", exec_cmd("xdg-open \"https://\""), { description = "open default browser" })
+bind("SUPER", "A", exec_cmd("$HOME/.config/hypr/scripts/OverviewToggle.sh"), { description = "desktop overview" })
+bind("SUPER", "Return", exec_cmd("$HOME/.config/hypr/scripts/LaunchTerminal.sh '$term'"), { description = "Open terminal" })
+bind("SUPER", "E", exec_cmd("$HOME/.config/hypr/scripts/LaunchFileManager.sh '$files' '$term'"), { description = "file manager" })
+bind("SUPER", "C", exec_cmd("$HOME/.config/hypr/scripts/rofi-ssh-menu.sh"), { description = "SSH session manager" })
+bind("SUPER", "T", exec_cmd("$HOME/.config/hypr/scripts/ThemeChanger.sh"), { description = "Global theme switcher using Wallust" })
+bind("SUPER", "H", exec_cmd("$HOME/.config/hypr/scripts/KeyHints.sh"), { description = "help / cheat sheet" })
+bind("SUPER ALT", "R", exec_cmd("$HOME/.config/hypr/scripts/Refresh.sh"), { description = "refresh bar and menus" })
+bind("SUPER ALT", "E", exec_cmd("$HOME/.config/hypr/scripts/RofiEmoji.sh"), { description = "emoji menu" })
+bind("SUPER", "S", exec_cmd("$HOME/.config/hypr/scripts/RofiSearch.sh"), { description = "web search" })
+bind("SUPER CTRL", "S", exec_cmd("rofi -show window"), { description = "window switcher" })
+bind("SUPER ALT", "O", exec_cmd("$HOME/.config/hypr/scripts/ChangeBlur.sh"), { description = "toggle blur" })
+bind("SUPER SHIFT", "G", exec_cmd("$HOME/.config/hypr/scripts/GameMode.sh"), { description = "toggle game mode" })
+bind("SUPER ALT", "L", exec_cmd("$HOME/.config/hypr/scripts/ChangeLayout.sh toggle"), { description = "toggle layouts" })
+bind("SUPER ALT", "V", exec_cmd("$HOME/.config/hypr/scripts/ClipManager.sh"), { description = "clipboard manager" })
+bind("SUPER CTRL", "R", exec_cmd("$HOME/.config/hypr/scripts/RofiThemeSelector.sh"), { description = "rofi theme selector" })
+bind("SUPER CTRL SHIFT", "R", exec_cmd("pkill rofi || true && $HOME/.config/hypr/scripts/RofiThemeSelector-modified.sh"), { description = "rofi theme selector (modified)" })
+bind("SUPER CTRL", "K", exec_cmd("$HOME/.config/hypr/scripts/Kitty_themes.sh"), { description = "Kitty theme selector" })
+bind("SUPER SHIFT", "B", exec_cmd("$HOME/.config/hypr/UserScripts/RainbowBorders-low-cpu.sh --run-once"), { description = "Set static Rainbow Border" })
+bind("SUPER SHIFT", "H", exec_cmd("$HOME/.config/hypr/scripts/Toggle-Active-Window-Audio.sh"), { description = "Toggle Mute/Unmute for Active-Window" })
+bind("ALT SHIFT", "S", exec_cmd("$HOME/.config/hypr/scripts/hyprshot.sh -m region -o $HOME/Pictures/Screenshots"), { description = "Hyprshot Screen Capture" })
+bind("SUPER SHIFT", "F", dispatch("fullscreen", ""), { description = "fullscreen" })
+bind("SUPER", "F", dispatch("fullscreen", "1"), { description = "maximize window" })
+bind("SUPER", "SPACE", dispatch("togglefloating", ""), { description = "Float current window" })
+bind("SUPER ALT", "SPACE", exec_cmd("$HOME/.config/hypr/scripts/Float-all-Windows.sh"), { description = "Float all windows" })
+bind("SUPER SHIFT", "Return", exec_cmd("$HOME/.config/hypr/scripts/Dropterminal.sh kitty"), { description = "DropDown terminal" })
+bind("SUPER ALT", "mouse_down", exec_cmd("hyprctl keyword cursor:zoom_factor \"$(hyprctl getoption cursor:zoom_factor | awk 'NR==1 {factor = $2; if (factor < 1) {factor = 1}; print factor * 2.0}')\""), { description = "zoom in" })
+bind("SUPER ALT", "mouse_up", exec_cmd("hyprctl keyword cursor:zoom_factor \"$(hyprctl getoption cursor:zoom_factor | awk 'NR==1 {factor = $2; if (factor < 1) {factor = 1}; print factor / 2.0}')\""), { description = "zoom out" })
+bind("SUPER CTRL ALT", "B", exec_cmd("pkill -SIGUSR1 waybar"), { description = "toggle waybar on/off" })
+bind("SUPER CTRL", "B", exec_cmd("$HOME/.config/hypr/scripts/WaybarStyles.sh"), { description = "waybar styles menu" })
+bind("SUPER ALT", "B", exec_cmd("$HOME/.config/hypr/scripts/WaybarLayout.sh"), { description = "waybar layout menu" })
+bind("SUPER", "N", exec_cmd("$HOME/.config/hypr/scripts/Hyprsunset.sh toggle"), { description = "Toggle Hyprsunset - night light" })
+bind("SUPER SHIFT", "M", exec_cmd("$HOME/.config/hypr/UserScripts/RofiBeats.sh"), { description = "online music" })
+bind("SUPER", "W", exec_cmd("$HOME/.config/hypr/scripts/WallpaperSelect.sh"), { description = "select wallpaper" })
+bind("SUPER SHIFT", "W", exec_cmd("$HOME/.config/hypr/scripts/WallpaperEffects.sh"), { description = "wallpaper effects" })
+bind("CTRL ALT", "W", exec_cmd("$HOME/.config/hypr/UserScripts/WallpaperRandom.sh"), { description = "random wallpaper" })
+bind("SUPER CTRL", "O", dispatch("setprop", "active opaque toggle"), { description = "toggle active window opacity" })
+bind("SUPER SHIFT", "K", exec_cmd("$HOME/.config/hypr/scripts/KeyBinds.sh"), { description = "search keybinds" })
+bind("SUPER SHIFT", "A", exec_cmd("$HOME/.config/hypr/scripts/Animations.sh"), { description = "animations menu" })
+bind("SUPER SHIFT", "R", exec_cmd("$HOME/.config/hypr/scripts/ZshChangeTheme.sh"), { description = "change oh-my-zsh theme" })
+bind("ALT_L", "SHIFT_L", exec_cmd("$HOME/.config/hypr/scripts/KeyboardLayout.sh switch"), { description = "switch keyboard layout globally", locked = true })
+bind("SHIFT_L", "ALT_L", exec_cmd("$HOME/.config/hypr/scripts/Tak0-Per-Window-Switch.sh"), { description = "switch keyboard layout per-window", locked = true })
+bind("SUPER ALT", "C", exec_cmd("$HOME/.config/hypr/UserScripts/RofiCalc.sh"), { description = "calculator" })
+bind("SUPER CTRL", "F9", dispatch("movecurrentworkspacetomonitor", "l"), { description = "move workspace to left monitor" })
+bind("SUPER CTRL", "F10", dispatch("movecurrentworkspacetomonitor", "r"), { description = "move workspace to right monitor" })
+bind("SUPER CTRL", "F11", dispatch("movecurrentworkspacetomonitor", "u"), { description = "move workspace to up monitor" })
+bind("SUPER CTRL", "F12", dispatch("movecurrentworkspacetomonitor", "d"), { description = "move workspace to down monitor" })
+bind("CTRL ALT", "Delete", exec_cmd("$HOME/.config/hypr/scripts/Logout.sh"), { description = "exit Hyprland" })
+bind("SUPER", "Q", dispatch("killactive", ""), { description = "close active window" })
+bind("SUPER SHIFT", "Q", exec_cmd("$HOME/.config/hypr/scripts/KillActiveProcess.sh"), { description = "Terminate active process" })
+bind("CTRL ALT", "L", exec_cmd("$HOME/.config/hypr/scripts/LockScreen.sh"), { description = "lock screen" })
+bind("CTRL ALT", "P", exec_cmd("$HOME/.config/hypr/scripts/Wlogout.sh"), { description = "powermenu" })
+bind("SUPER SHIFT", "N", exec_cmd("swaync-client -t -sw"), { description = "notification panel" })
+bind("SUPER SHIFT", "E", exec_cmd("$HOME/.config/hypr/scripts/Kool_Quick_Settings.sh"), { description = "Quick settings menu" })
+bind("SUPER CTRL", "D", dispatch("layoutmsg", "removemaster"), { description = "remove master" })
+bind("SUPER", "I", dispatch("layoutmsg", "addmaster"), { description = "add master" })
+bind(
+ "SUPER",
+ "j",
+ exec_cmd("$HOME/.config/hypr/scripts/LayoutKeybindDispatch.sh cycle-next"),
+ { description = "cycle next (layout-aware)" }
+)
+bind(
+ "SUPER",
+ "k",
+ exec_cmd("$HOME/.config/hypr/scripts/LayoutKeybindDispatch.sh cycle-prev"),
+ { description = "cycle previous (layout-aware)" }
+)
+bind("SUPER CTRL", "Return", dispatch("layoutmsg", "swapwithmaster"), { description = "swap with master" })
+bind("SUPER SHIFT", "I", dispatch("layoutmsg", "togglesplit"), { description = "toggle split (dwindle)" })
+bind("SUPER", "P", dispatch("pseudo", ""), { description = "toggle pseudo (dwindle)" })
+bind("SUPER", "M", exec_cmd("hyprctl dispatch splitratio 0.3"), { description = "set split ratio 0.3" })
+bind("SUPER ALT", "1", exec_cmd("$HOME/.config/hypr/scripts/ChangeLayout.sh dwindle"), { description = "layout dwindle" })
+bind("SUPER ALT", "2", exec_cmd("$HOME/.config/hypr/scripts/ChangeLayout.sh master"), { description = "layout master" })
+bind("SUPER ALT", "3", exec_cmd("$HOME/.config/hypr/scripts/ChangeLayout.sh scrolling"), { description = "layout scrolling" })
+bind("SUPER ALT", "4", exec_cmd("$HOME/.config/hypr/scripts/ChangeLayout.sh monocle"), { description = "layout monocle" })
+bind("SUPER SHIFT", "period", dispatch("layoutmsg", "move +col"), { description = "move to right column" })
+bind("SUPER SHIFT", "comma", dispatch("layoutmsg", "move -col"), { description = "move to left column" })
+bind("SUPER ALT", "comma", dispatch("layoutmsg", "swapcol l"), { description = "swap columns left" })
+bind("SUPER ALT", "period", dispatch("layoutmsg", "swapcol r"), { description = "swap columns right" })
+bind("SUPER ALT", "H", exec_cmd("hyprctl keyword scrolling:direction right"), { description = "Horizonal scroll right" })
+bind("SUPER ALT", "V", exec_cmd("hyprctl keyword scrolling:direction down"), { description = "Vertical Scroll down" })
+bind("SUPER ALT", "S", exec_cmd("bash -c '[[ $(hyprctl getoption scrolling:direction -j | jq -r \".str\") == \"right\" ]] && hyprctl keyword scrolling:direction down || hyprctl keyword scrolling:direction right'"), { description = "toggle scrolling V/H" })
+bind("ALT", "Tab", dispatch("cyclenext", ""), { description = "cycle next window" })
+bind("ALT", "Tab", dispatch("bringactivetotop", ""), { description = "bring active to top" })
+bind("", "xf86audioraisevolume", exec_cmd("$HOME/.config/hypr/scripts/Volume.sh --inc"), { description = "volume up", locked = true, ["repeat"] = true })
+bind("", "xf86audiolowervolume", exec_cmd("$HOME/.config/hypr/scripts/Volume.sh --dec"), { description = "volume down", locked = true, ["repeat"] = true })
+bind("ALT", "xf86audioraisevolume", exec_cmd("$HOME/.config/hypr/scripts/Volume.sh --inc-precise"), { description = "volume up precise", locked = true, ["repeat"] = true })
+bind("ALT", "xf86audiolowervolume", exec_cmd("$HOME/.config/hypr/scripts/Volume.sh --dec-precise"), { description = "volume down precise", locked = true, ["repeat"] = true })
+bind("", "xf86AudioMicMute", exec_cmd("$HOME/.config/hypr/scripts/Volume.sh --toggle-mic"), { description = "toggle mic mute", locked = true })
+bind("", "xf86audiomute", exec_cmd("$HOME/.config/hypr/scripts/Volume.sh --toggle"), { description = "toggle mute", locked = true })
+bind("", "xf86Sleep", exec_cmd("systemctl suspend"), { description = "sleep", locked = true })
+bind("", "xf86Rfkill", exec_cmd("$HOME/.config/hypr/scripts/AirplaneMode.sh"), { description = "airplane mode", locked = true })
+bind("", "xf86AudioPlayPause", exec_cmd("$HOME/.config/hypr/scripts/MediaCtrl.sh --pause"), { description = "play/pause", locked = true })
+bind("", "xf86AudioPause", exec_cmd("$HOME/.config/hypr/scripts/MediaCtrl.sh --pause"), { description = "pause", locked = true })
+bind("", "xf86AudioPlay", exec_cmd("$HOME/.config/hypr/scripts/MediaCtrl.sh --pause"), { description = "play", locked = true })
+bind("", "xf86AudioNext", exec_cmd("$HOME/.config/hypr/scripts/MediaCtrl.sh --nxt"), { description = "next track", locked = true })
+bind("", "xf86AudioPrev", exec_cmd("$HOME/.config/hypr/scripts/MediaCtrl.sh --prv"), { description = "previous track", locked = true })
+bind("", "xf86audiostop", exec_cmd("$HOME/.config/hypr/scripts/MediaCtrl.sh --stop"), { description = "stop", locked = true })
+bind("SUPER", "Print", exec_cmd("$HOME/.config/hypr/scripts/ScreenShot.sh --now"), { description = "screenshot now" })
+bind("SUPER SHIFT", "Print", exec_cmd("$HOME/.config/hypr/scripts/ScreenShot.sh --area"), { description = "screenshot (area)" })
+bind("SUPER CTRL", "Print", exec_cmd("$HOME/.config/hypr/scripts/ScreenShot.sh --in5"), { description = "screenshot in 5s" })
+bind("SUPER CTRL SHIFT", "Print", exec_cmd("$HOME/.config/hypr/scripts/ScreenShot.sh --in10"), { description = "screenshot in 10s" })
+bind("ALT", "Print", exec_cmd("$HOME/.config/hypr/scripts/ScreenShot.sh --active"), { description = "screenshot active window" })
+bind("SUPER SHIFT", "S", exec_cmd("$HOME/.config/hypr/scripts/ScreenShot.sh --swappy"), { description = "screenshot (swappy)" })
+bind("SUPER SHIFT", "left", dispatch("resizeactive", "-50 0"), { description = "resize left (-50)", ["repeat"] = true })
+bind("SUPER SHIFT", "right", dispatch("resizeactive", "50 0"), { description = "resize right (+50)", ["repeat"] = true })
+bind("SUPER SHIFT", "up", dispatch("resizeactive", "0 -50"), { description = "resize up (-50)", ["repeat"] = true })
+bind("SUPER SHIFT", "down", dispatch("resizeactive", "0 50"), { description = "resize down (+50)", ["repeat"] = true })
+bind("SUPER CTRL", "left", dispatch("movewindow", "l"), { description = "move window left" })
+bind("SUPER CTRL", "right", dispatch("movewindow", "r"), { description = "move window right" })
+bind("SUPER CTRL", "up", dispatch("movewindow", "u"), { description = "move window up" })
+bind("SUPER CTRL", "down", dispatch("movewindow", "d"), { description = "move window down" })
+bind("SUPER ALT", "left", dispatch("swapwindow", "l"), { description = "swap window left" })
+bind("SUPER ALT", "right", dispatch("swapwindow", "r"), { description = "swap window right" })
+bind("SUPER ALT", "up", dispatch("swapwindow", "u"), { description = "swap window up" })
+bind("SUPER ALT", "down", dispatch("swapwindow", "d"), { description = "swap window down" })
+bind("SUPER", "G", dispatch("togglegroup", ""), { description = "toggle group" })
+bind("SUPER", "Tab", dispatch("changegroupactive", "f"), { description = "Change Group Forward" })
+bind("SUPER CTRL", "tab", dispatch("changegroupactive", ""), { description = "change active in group" })
+bind("SUPER SHIFT", "Tab", dispatch("changegroupactive", "b"), { description = "Change Group Back" })
+bind("SUPER CTRL", "K", dispatch("moveintogroup", "l"), { description = "Move left into group" })
+bind("SUPER CTRL", "L", dispatch("moveintogroup", "r"), { description = "Move Right into group" })
+bind("SUPER CTRL", "H", dispatch("moveoutofgroup", ""), { description = "Move active out of group" })
+bind(
+ "SUPER",
+ "left",
+ exec_cmd("$HOME/.config/hypr/scripts/LayoutKeybindDispatch.sh focus-left"),
+ { description = "focus left (layout-aware)" }
+)
+bind(
+ "SUPER",
+ "right",
+ exec_cmd("$HOME/.config/hypr/scripts/LayoutKeybindDispatch.sh focus-right"),
+ { description = "focus right (layout-aware)" }
+)
+bind(
+ "SUPER",
+ "up",
+ exec_cmd("$HOME/.config/hypr/scripts/LayoutKeybindDispatch.sh focus-up"),
+ { description = "focus up (layout-aware)" }
+)
+bind(
+ "SUPER",
+ "down",
+ exec_cmd("$HOME/.config/hypr/scripts/LayoutKeybindDispatch.sh focus-down"),
+ { description = "focus down (layout-aware)" }
+)
+bind("SUPER", "tab", dispatch("workspace", "m+1"), { description = "next workspace" })
+bind("SUPER SHIFT", "tab", dispatch("workspace", "m-1"), { description = "previous workspace" })
+bind("SUPER SHIFT", "U", dispatch("movetoworkspace", "special"), { description = "move to special workspace" })
+bind("SUPER", "U", dispatch("togglespecialworkspace", ""), { description = "toggle special workspace" })
+bind("SUPER", "code:10", dispatch("workspace", "1"), { description = "workspace 1" })
+bind("SUPER", "code:11", dispatch("workspace", "2"), { description = "workspace 2" })
+bind("SUPER", "code:12", dispatch("workspace", "3"), { description = "workspace 3" })
+bind("SUPER", "code:13", dispatch("workspace", "4"), { description = "workspace 4" })
+bind("SUPER", "code:14", dispatch("workspace", "5"), { description = "workspace 5" })
+bind("SUPER", "code:15", dispatch("workspace", "6"), { description = "workspace 6" })
+bind("SUPER", "code:16", dispatch("workspace", "7"), { description = "workspace 7" })
+bind("SUPER", "code:17", dispatch("workspace", "8"), { description = "workspace 8" })
+bind("SUPER", "code:18", dispatch("workspace", "9"), { description = "workspace 9" })
+bind("SUPER", "code:19", dispatch("workspace", "10"), { description = "workspace 10" })
+bind("SUPER SHIFT", "code:10", dispatch("movetoworkspace", "1"), { description = "move to workspace 1" })
+bind("SUPER SHIFT", "code:11", dispatch("movetoworkspace", "2"), { description = "move to workspace 2" })
+bind("SUPER SHIFT", "code:12", dispatch("movetoworkspace", "3"), { description = "move to workspace 3" })
+bind("SUPER SHIFT", "code:13", dispatch("movetoworkspace", "4"), { description = "move to workspace 4" })
+bind("SUPER SHIFT", "code:14", dispatch("movetoworkspace", "5"), { description = "move to workspace 5" })
+bind("SUPER SHIFT", "code:15", dispatch("movetoworkspace", "6"), { description = "move to workspace 6" })
+bind("SUPER SHIFT", "code:16", dispatch("movetoworkspace", "7"), { description = "move to workspace 7" })
+bind("SUPER SHIFT", "code:17", dispatch("movetoworkspace", "8"), { description = "move to workspace 8" })
+bind("SUPER SHIFT", "code:18", dispatch("movetoworkspace", "9"), { description = "move to workspace 9" })
+bind("SUPER SHIFT", "code:19", dispatch("movetoworkspace", "10"), { description = "move to workspace 10" })
+bind("SUPER SHIFT", "bracketleft", dispatch("movetoworkspace", "-1"), { description = "move to previous workspace" })
+bind("SUPER SHIFT", "bracketright", dispatch("movetoworkspace", "+1"), { description = "move to next workspace" })
+bind("SUPER CTRL", "code:10", dispatch("movetoworkspacesilent", "1"), { description = "move silently to workspace 1" })
+bind("SUPER CTRL", "code:11", dispatch("movetoworkspacesilent", "2"), { description = "move silently to workspace 2" })
+bind("SUPER CTRL", "code:12", dispatch("movetoworkspacesilent", "3"), { description = "move silently to workspace 3" })
+bind("SUPER CTRL", "code:13", dispatch("movetoworkspacesilent", "4"), { description = "move silently to workspace 4" })
+bind("SUPER CTRL", "code:14", dispatch("movetoworkspacesilent", "5"), { description = "move silently to workspace 5" })
+bind("SUPER CTRL", "code:15", dispatch("movetoworkspacesilent", "6"), { description = "move silently to workspace 6" })
+bind("SUPER CTRL", "code:16", dispatch("movetoworkspacesilent", "7"), { description = "move silently to workspace 7" })
+bind("SUPER CTRL", "code:17", dispatch("movetoworkspacesilent", "8"), { description = "move silently to workspace 8" })
+bind("SUPER CTRL", "code:18", dispatch("movetoworkspacesilent", "9"), { description = "move silently to workspace 9" })
+bind("SUPER CTRL", "code:19", dispatch("movetoworkspacesilent", "10"), { description = "move silently to workspace 10" })
+bind("SUPER CTRL", "bracketleft", dispatch("movetoworkspacesilent", "-1"), { description = "move silently to previous workspace" })
+bind("SUPER CTRL", "bracketright", dispatch("movetoworkspacesilent", "+1"), { description = "move silently to next workspace" })
+bind("SUPER", "mouse_down", dispatch("workspace", "e+1"), { description = "next workspace" })
+bind("SUPER", "mouse_up", dispatch("workspace", "e-1"), { description = "previous workspace" })
+bind("SUPER", "period", dispatch("workspace", "e+1"), { description = "next workspace" })
+bind("SUPER", "comma", dispatch("workspace", "e-1"), { description = "previous workspace" })
+bind("SUPER", "mouse:272", dispatch("movewindow", ""), { description = "move window" })
+bind("SUPER", "mouse:273", dispatch("resizewindow", ""), { description = "resize window" })
diff --git a/config/hypr/hypridle.conf b/config/hypr/hypridle.conf
index fbf0b3ad..9ef48140 100644
--- a/config/hypr/hypridle.conf
+++ b/config/hypr/hypridle.conf
@@ -1,7 +1,7 @@
# /* ---- 💫 https://github.com/LinuxBeginnings 💫 ---- */ #
# Hypridle
-# Original config submitted by https://github.com/SherLock707
-
+# Original config submitted by https://github.com/SherLock707
+
$iDIR="$HOME/.config/swaync/images/ja.png"
general {
@@ -35,12 +35,11 @@ listener {
}
# Turn off screen
-# (disabled by default)
-# listener {
-# timeout = 630 # 10.5 min
-# on-timeout = hyprctl dispatch dpms off # command to run when timeout has passed
-# on-resume = hyprctl dispatch dpms on # command to run when activity is detected after timeout has fired.
-# }
+ listener {
+ timeout = 720 # 12 min
+ on-timeout = hyprctl dispatch dpms off # command to run when timeout has passed
+ on-resume = hyprctl dispatch dpms on # command to run when activity is detected after timeout has fired.
+ }
# Suspend # disabled by default
# listener {
diff --git a/config/hypr/initial-boot.sh b/config/hypr/initial-boot.sh
index b45c31aa..84ae8c00 100755
--- a/config/hypr/initial-boot.sh
+++ b/config/hypr/initial-boot.sh
@@ -2,15 +2,15 @@
# /* ---- 💫 https://github.com/LinuxBeginnings 💫 ---- */ #
# A bash script designed to run only once dotfiles installed
-# THIS SCRIPT CAN BE DELETED ONCE SUCCESSFULLY BOOTED!! And also, edit ~/.config/hypr/configs/Settings.conf
+# THIS SCRIPT CAN BE DELETED ONCE SUCCESSFULLY BOOTED!! And also, edit ${XDG_CONFIG_HOME:-$HOME/.config}/hypr/configs/Settings.conf
# NOT necessary to do since this script is only designed to run only once as long as the marker exists
-# marker file is located at ~/.config/hypr/.initial_startup_done
+# marker file is located at ${XDG_CONFIG_HOME:-$HOME/.config}/hypr/.initial_startup_done
# However, I do highly suggest not to touch it since again, as long as the marker exist, script wont run
# Variables
-scriptsDir=$HOME/.config/hypr/scripts
-wallpaper=$HOME/.config/hypr/wallpaper_effects/.wallpaper_current
-waybar_style="$HOME/.config/waybar/style/[Extra] Neon Circuit.css"
+scriptsDir=${XDG_CONFIG_HOME:-$HOME/.config}/hypr/scripts
+wallpaper=${XDG_CONFIG_HOME:-$HOME/.config}/hypr/wallpaper_effects/.wallpaper_current
+waybar_style="${XDG_CONFIG_HOME:-$HOME/.config}/waybar/style/[Extra] Neon Circuit.css"
kvantum_theme="catppuccin-mocha-blue"
color_scheme="prefer-dark"
gtk_theme="Flat-Remix-GTK-Blue-Dark"
@@ -54,7 +54,7 @@ swww="$WWW img"
effect="--transition-bezier .43,1.19,1,.4 --transition-fps 30 --transition-type grow --transition-pos 0.925,0.977 --transition-duration 2"
# Check if a marker file exists.
-if [ ! -f "$HOME/.config/hypr/.initial_startup_done" ]; then
+if [ ! -f "${XDG_CONFIG_HOME:-$HOME/.config}/hypr/.initial_startup_done" ]; then
# Apply appearance preferences early and synchronously to avoid startup races
# where Flatpak/libadwaita apps can default to light mode.
set_interface_pref_with_retry color-scheme "'$color_scheme'" "'$color_scheme'" || true
@@ -82,14 +82,14 @@ if [ ! -f "$HOME/.config/hypr/.initial_startup_done" ]; then
kvantummanager --set "$kvantum_theme" > /dev/null 2>&1 &
# waybar style
- #if [ -L "$HOME/.config/waybar/config" ]; then
- ## ln -sf "$waybar_style" "$HOME/.config/waybar/style.css"
+ #if [ -L "${XDG_CONFIG_HOME:-$HOME/.config}/waybar/config" ]; then
+ ## ln -sf "$waybar_style" "${XDG_CONFIG_HOME:-$HOME/.config}/waybar/style.css"
# "$scriptsDir/Refresh.sh" > /dev/null 2>&1 &
#fi
# Create a marker file to indicate that the script has been executed.
- touch "$HOME/.config/hypr/.initial_startup_done"
+ touch "${XDG_CONFIG_HOME:-$HOME/.config}/hypr/.initial_startup_done"
exit
fi
diff --git a/config/hypr/lua/env.lua b/config/hypr/lua/env.lua
index 348bf5db..cc248c20 100644
--- a/config/hypr/lua/env.lua
+++ b/config/hypr/lua/env.lua
@@ -9,7 +9,7 @@
-- - config/hypr/configs/ENVariables.conf
-- - config/hypr/UserConfigs/ENVariables.conf (active values only)
-hl.env("DOTS_VERSION", "2.3.24")
+hl.env("DOTS_VERSION", "2.3.25")
hl.env("GDK_BACKEND", "wayland,x11,*")
hl.env("QT_QPA_PLATFORM", "wayland;xcb")
hl.env("CLUTTER_BACKEND", "wayland")
@@ -19,8 +19,8 @@ hl.env("XDG_SESSION_TYPE", "wayland")
hl.env("QT_AUTO_SCREEN_SCALE_FACTOR", "1")
hl.env("QT_WAYLAND_DISABLE_WINDOWDECORATION", "1")
hl.env("QT_QPA_PLATFORMTHEME", "qt6ct")
-hl.env("QT_STYLE_OVERRIDE", "kvantum")
-hl.env("QT_QUICK_CONTROLS_STYLE", "org.hyprland.style")
+hl.env("QT_STYLE_OVERRIDE", "Fusion")
+hl.env("QT_QUICK_CONTROLS_STYLE", "Basic")
hl.env("GDK_SCALE", "1")
hl.env("QT_SCALE_FACTOR", "1")
hl.env("MOZ_ENABLE_WAYLAND", "1")
diff --git a/config/hypr/lua/keybind_helpers.lua b/config/hypr/lua/keybind_helpers.lua
index 92dc952b..97618d8f 100644
--- a/config/hypr/lua/keybind_helpers.lua
+++ b/config/hypr/lua/keybind_helpers.lua
@@ -112,17 +112,29 @@ local function dispatch(name, args)
return raw_dispatch_cmd(args)
end
- if name == "killactive" and window_api.close then
- return window_api.close()
+ if name == "killactive" then
+ if window_api.close then
+ return window_api.close()
+ end
+ if window_api.kill then
+ return window_api.kill()
+ end
+ return raw_dispatch_cmd("killactive")
end
if name == "togglefloating" and window_api.float then
return window_api.float({ action = "toggle" })
end
- if name == "fullscreen" and window_api.fullscreen then
+ if name == "fullscreen" then
+ if window_api.fullscreen then
+ if args == "1" then
+ return window_api.fullscreen({ mode = "maximized" })
+ end
+ return window_api.fullscreen({ mode = "fullscreen" })
+ end
if args == "1" then
- return window_api.fullscreen({ mode = "maximized" })
+ return exec_cmd("hyprctl dispatch 'hl.dsp.window.fullscreen({ mode = \"maximized\" })'")
end
- return window_api.fullscreen({ mode = "fullscreen" })
+ return exec_cmd("hyprctl dispatch 'hl.dsp.window.fullscreen({ mode = \"fullscreen\" })'")
end
if name == "pseudo" and window_api.pseudo then
return window_api.pseudo()
@@ -315,6 +327,7 @@ local keys_to_unbind = {
"SUPER + V",
"SUPER + W",
"SUPER + P",
+ "SUPER + R",
"SUPER + N",
"SUPER + T",
"SUPER + X",
diff --git a/config/hypr/lua/keybinds.lua b/config/hypr/lua/keybinds.lua
index 6bf71e47..3730e825 100644
--- a/config/hypr/lua/keybinds.lua
+++ b/config/hypr/lua/keybinds.lua
@@ -59,18 +59,33 @@ keybind_helpers.unbind_default_keys()
-- ==================================================
-- Section: Application launchers and utility scripts
local app_binds = {
- { "SUPER", "D", "pkill rofi || true && rofi -show drun -modi drun,filebrowser,run,window", "app launcher" },
+ {
+ "SUPER",
+ "D",
+ "pkill rofi || true; $HOME/.config/hypr/scripts/RofiFocusedWallpaperLink.sh >/dev/null 2>&1 || true; rofi -show drun -modi drun,filebrowser,run,window",
+ "app launcher",
+ },
{ "SUPER", "B", 'xdg-open "https://"', "open default browser" },
{ "SUPER", "A", "$HOME/.config/hypr/scripts/OverviewToggle.sh", "desktop overview" },
- { "SUPER", "Return", "kitty", "Open terminal" },
- { "SUPER", "E", "thunar", "file manager" },
+ { "SUPER", "Return", "$HOME/.config/hypr/scripts/LaunchTerminal.sh '$term'", "Open terminal" },
+ {
+ "SUPER",
+ "E",
+ "$HOME/.config/hypr/scripts/LaunchFileManager.sh '$files' '$term'",
+ "file manager",
+ },
{ "SUPER", "C", "$HOME/.config/hypr/scripts/rofi-ssh-menu.sh", "SSH session manager" },
{ "SUPER", "T", "$HOME/.config/hypr/scripts/ThemeChanger.sh", "Global theme switcher using Wallust" },
{ "SUPER", "H", "$HOME/.config/hypr/scripts/KeyHints.sh", "help / cheat sheet" },
{ "SUPER ALT", "R", "$HOME/.config/hypr/scripts/Refresh.sh", "refresh bar and menus" },
{ "SUPER ALT", "E", "$HOME/.config/hypr/scripts/RofiEmoji.sh", "emoji menu" },
{ "SUPER", "S", "$HOME/.config/hypr/scripts/RofiSearch.sh", "web search" },
- { "SUPER CTRL", "S", "rofi -show window", "window switcher" },
+ {
+ "SUPER CTRL",
+ "S",
+ "$HOME/.config/hypr/scripts/RofiFocusedWallpaperLink.sh >/dev/null 2>&1 || true; rofi -show window",
+ "window switcher",
+ },
{ "SUPER ALT", "O", "$HOME/.config/hypr/scripts/ChangeBlur.sh", "toggle blur" },
{ "SUPER SHIFT", "G", "$HOME/.config/hypr/scripts/GameMode.sh", "toggle game mode" },
{ "SUPER ALT", "L", "$HOME/.config/hypr/scripts/ChangeLayout.sh toggle", "toggle layouts" },
@@ -122,12 +137,12 @@ local app_binds = {
{ "SUPER ALT", "B", "$HOME/.config/hypr/scripts/WaybarLayout.sh", "waybar layout menu" },
{ "SUPER", "N", "$HOME/.config/hypr/scripts/Hyprsunset.sh toggle", "Toggle Hyprsunset - night light" },
{ "SUPER SHIFT", "M", "$HOME/.config/hypr/UserScripts/RofiBeats.sh", "online music" },
- { "SUPER", "W", "$HOME/.config/hypr/UserScripts/WallpaperSelect.sh", "select wallpaper" },
- { "SUPER SHIFT", "W", "$HOME/.config/hypr/UserScripts/WallpaperEffects.sh", "wallpaper effects" },
- { "CTRL ALT", "W", "$HOME/.config/hypr/UserScripts/WallpaperRandom.sh", "random wallpaper" },
+ { "SUPER", "W", "$HOME/.config/hypr/scripts/WallpaperSelect.sh", "select wallpaper" },
+ { "SUPER SHIFT", "W", "$HOME/.config/hypr/scripts/WallpaperEffects.sh", "wallpaper effects" },
+ { "CTRL ALT", "W", "$HOME/.config/hypr/scripts/WallpaperRandom.sh", "random wallpaper" },
{ "SUPER SHIFT", "K", "$HOME/.config/hypr/scripts/KeyBinds.sh", "search keybinds" },
{ "SUPER SHIFT", "A", "$HOME/.config/hypr/scripts/Animations.sh", "animations menu" },
- { "SUPER SHIFT", "O", "$HOME/.config/hypr/UserScripts/ZshChangeTheme.sh", "change oh-my-zsh theme" },
+ { "SUPER SHIFT", "R", "$HOME/.config/hypr/scripts/ZshChangeTheme.sh", "change oh-my-zsh theme" },
{ "SUPER ALT", "C", "$HOME/.config/hypr/UserScripts/RofiCalc.sh", "calculator" },
}
for _, app in ipairs(app_binds) do
@@ -196,7 +211,7 @@ end
-- Section: Window/session controls
bind("SUPER SHIFT", "F", dispatch("fullscreen", ""), { description = "fullscreen" })
-bind("SUPER CTRL", "F", dispatch("fullscreen", "1"), { description = "maximize window" })
+bind("SUPER", "F", dispatch("fullscreen", "1"), { description = "maximize window" })
bind("SUPER", "SPACE", dispatch("togglefloating", ""), { description = "Float current window" })
bind("SUPER CTRL", "O", dispatch("setprop", "active opaque toggle"), { description = "toggle active window opacity" })
bind(
@@ -256,12 +271,17 @@ bind(
-- Section: Layout and tiling controls
bind("SUPER CTRL", "D", dispatch("layoutmsg", "removemaster"), { description = "remove master" })
bind("SUPER", "I", dispatch("layoutmsg", "addmaster"), { description = "add master" })
-bind("SUPER", "j", exec_cmd("$HOME/.config/hypr/scripts/LuaCycleWindow.sh next"), { description = "cycle next" })
+bind(
+ "SUPER",
+ "j",
+ exec_cmd("$HOME/.config/hypr/scripts/LayoutKeybindDispatch.sh cycle-next"),
+ { description = "cycle next (layout-aware)" }
+)
bind(
"SUPER",
"k",
- exec_cmd("$HOME/.config/hypr/scripts/LuaCycleWindow.sh previous"),
- { description = "cycle previous" }
+ exec_cmd("$HOME/.config/hypr/scripts/LayoutKeybindDispatch.sh cycle-prev"),
+ { description = "cycle previous (layout-aware)" }
)
bind("SUPER CTRL", "Return", dispatch("layoutmsg", "swapwithmaster"), { description = "swap with master" })
bind("SUPER SHIFT", "I", dispatch("layoutmsg", "togglesplit"), { description = "toggle split (dwindle)" })
@@ -305,6 +325,88 @@ bind(
),
{ description = "toggle scrolling V/H" }
)
+local col_width_presets = { 0.25, 0.33, 0.5, 0.66, 0.75, 1.0 }
+local function _as_number(v)
+ if type(v) == "number" then
+ return v
+ end
+ if type(v) == "string" then
+ return tonumber(v)
+ end
+ return nil
+end
+local function _window_width(win)
+ if type(win) ~= "table" then
+ return nil
+ end
+ local sz = win.size
+ if type(sz) == "number" then
+ return sz
+ end
+ if type(sz) == "table" then
+ return _as_number(sz[1] or sz.width or sz.w)
+ end
+ return nil
+end
+local function _monitor_width(win)
+ local mon = type(win) == "table" and win.monitor or nil
+ if type(mon) == "table" then
+ local w = _as_number(mon.width or mon.w or (type(mon.size) == "table" and (mon.size[1] or mon.size.width)))
+ if w ~= nil then
+ return w
+ end
+ end
+ if hl.get_active_monitor then
+ local active_mon = hl.get_active_monitor()
+ if type(active_mon) == "table" then
+ local w = _as_number(active_mon.width or active_mon.w or (type(active_mon.size) == "table" and (active_mon.size[1] or active_mon.size.width)))
+ if w ~= nil then
+ return w
+ end
+ end
+ end
+ return nil
+end
+bind("SUPER", "R", function()
+ local ws = hl.get_active_workspace and hl.get_active_workspace() or nil
+ local ws_layout = ws and (ws.tiled_layout or ws.tiledLayout) or nil
+ if ws_layout ~= "scrolling" then
+ return
+ end
+
+ local w = hl.get_active_window and hl.get_active_window() or nil
+ local col = w ~= nil and w.layout and w.layout.column or nil
+ local current_width = nil
+ if type(col) == "table" then
+ current_width = _as_number(col.width)
+ else
+ current_width = _as_number(col)
+ end
+ if type(current_width) ~= "number" then
+ local ww = _window_width(w)
+ local mw = _monitor_width(w)
+ if type(ww) == "number" and type(mw) == "number" and mw > 0 then
+ current_width = ww / mw
+ end
+ end
+ if type(current_width) ~= "number" or current_width <= 0 then
+ return
+ end
+ if current_width > 1 then
+ current_width = 1
+ end
+
+ local closest, best = 1, math.huge
+ for i, v in ipairs(col_width_presets) do
+ local diff = math.abs(v - current_width)
+ if diff < best then
+ best, closest = diff, i
+ end
+ end
+
+ local nextIdx = closest % #col_width_presets + 1
+ hl.dispatch(hl.dsp.layout("colresize " .. tostring(col_width_presets[nextIdx])))
+end, { description = "cycle column width preset (scrolling)" })
bind("ALT", "Tab", exec_cmd("$HOME/.config/hypr/scripts/LuaCycleWindow.sh next"), { description = "cycle next window" })
-- Section: Audio, media, and hardware keys
@@ -511,10 +613,30 @@ bind("SUPER SHIFT", "Tab", dispatch("changegroupactive", "b"), { description = "
bind("SUPER CTRL", "K", dispatch("moveintogroup", "l"), { description = "Move left into group" })
bind("SUPER CTRL", "L", dispatch("moveintogroup", "r"), { description = "Move Right into group" })
bind("SUPER CTRL", "H", dispatch("moveoutofgroup", ""), { description = "Move active out of group" })
-bind("SUPER", "left", dispatch("movefocus", "l"), { description = "focus left" })
-bind("SUPER", "right", dispatch("movefocus", "r"), { description = "focus right" })
-bind("SUPER", "up", dispatch("movefocus", "u"), { description = "focus up" })
-bind("SUPER", "down", dispatch("movefocus", "d"), { description = "focus down" })
+bind(
+ "SUPER",
+ "left",
+ exec_cmd("$HOME/.config/hypr/scripts/LayoutKeybindDispatch.sh focus-left"),
+ { description = "focus left (layout-aware)" }
+)
+bind(
+ "SUPER",
+ "right",
+ exec_cmd("$HOME/.config/hypr/scripts/LayoutKeybindDispatch.sh focus-right"),
+ { description = "focus right (layout-aware)" }
+)
+bind(
+ "SUPER",
+ "up",
+ exec_cmd("$HOME/.config/hypr/scripts/LayoutKeybindDispatch.sh focus-up"),
+ { description = "focus up (layout-aware)" }
+)
+bind(
+ "SUPER",
+ "down",
+ exec_cmd("$HOME/.config/hypr/scripts/LayoutKeybindDispatch.sh focus-down"),
+ { description = "focus down (layout-aware)" }
+)
-- Section: Workspace navigation and assignment
-- Keep legacy relative workspace focus script binds commented for rollback during Lua API migration.
diff --git a/config/hypr/lua/settings.lua b/config/hypr/lua/settings.lua
index 78ae61e2..eaa5aeeb 100644
--- a/config/hypr/lua/settings.lua
+++ b/config/hypr/lua/settings.lua
@@ -159,7 +159,7 @@ hl.config({
hl.config({
cursor = {
sync_gsettings_theme = true,
- no_hardware_cursors = 2,
+ no_hardware_cursors = 0,
enable_hyprcursor = true,
warp_on_change_workspace = 2,
no_warps = true,
diff --git a/config/hypr/lua/startup.lua b/config/hypr/lua/startup.lua
index 6c189113..1fa4df82 100644
--- a/config/hypr/lua/startup.lua
+++ b/config/hypr/lua/startup.lua
@@ -25,9 +25,18 @@ local function exec_once(cmd)
local key = cmd:gsub("[^%w_.-]", "_"):sub(1, 80)
local marker = "/tmp/hypr-lua-exec-once-" .. session .. "-" .. key
local log = "/tmp/hypr-lua-startup-" .. key .. ".log"
- local readiness = "runtime=${XDG_RUNTIME_DIR:-/run/user/$(id -u)}; export XDG_RUNTIME_DIR=\"$runtime\"; for _ in $(seq 1 200); do if [ -n \"$WAYLAND_DISPLAY\" ] && [ -S \"$runtime/$WAYLAND_DISPLAY\" ]; then break; fi; for sock in \"$runtime\"/wayland-[0-9]*; do [ -S \"$sock\" ] || continue; case \"$(basename \"$sock\")\" in *awww*) continue ;; esac; export WAYLAND_DISPLAY=\"$(basename \"$sock\")\"; break 2; done; sleep 0.1; done; if [ -n \"$HYPRLAND_INSTANCE_SIGNATURE\" ]; then hypr_sock=\"$runtime/hypr/$HYPRLAND_INSTANCE_SIGNATURE/.socket.sock\"; for _ in $(seq 1 200); do [ -S \"$hypr_sock\" ] && break; sleep 0.1; done; fi"
+ local readiness =
+ 'runtime=${XDG_RUNTIME_DIR:-/run/user/$(id -u)}; export XDG_RUNTIME_DIR="$runtime"; for _ in $(seq 1 200); do if [ -n "$WAYLAND_DISPLAY" ] && [ -S "$runtime/$WAYLAND_DISPLAY" ]; then break; fi; for sock in "$runtime"/wayland-[0-9]*; do [ -S "$sock" ] || continue; case "$(basename "$sock")" in *awww*) continue ;; esac; export WAYLAND_DISPLAY="$(basename "$sock")"; break 2; done; sleep 0.1; done; if [ -n "$HYPRLAND_INSTANCE_SIGNATURE" ]; then hypr_sock="$runtime/hypr/$HYPRLAND_INSTANCE_SIGNATURE/.socket.sock"; for _ in $(seq 1 200); do [ -S "$hypr_sock" ] && break; sleep 0.1; done; fi'
local inner = readiness .. "; " .. cmd
- local script = "[ -e " .. shell_quote(marker) .. " ] || { touch " .. shell_quote(marker) .. " && sh -lc " .. shell_quote(inner) .. " >>" .. shell_quote(log) .. " 2>&1 & }"
+ local script = "[ -e "
+ .. shell_quote(marker)
+ .. " ] || { touch "
+ .. shell_quote(marker)
+ .. " && sh -lc "
+ .. shell_quote(inner)
+ .. " >>"
+ .. shell_quote(log)
+ .. " 2>&1 & }"
os.execute("sh -lc " .. shell_quote(script))
end
-- Prefer lifecycle-hook orchestration for clarity while keeping exec_once
@@ -39,9 +48,11 @@ local startup_commands = {
"systemctl --user import-environment WAYLAND_DISPLAY XDG_CURRENT_DESKTOP",
scriptsDir .. "/Polkit.sh",
"nm-applet",
- "nm-tray",
+ -- nm-tray now optional for ubuntu
+ -- "nm-tray",
"swaync",
scriptsDir .. "/PortalHyprland.sh",
+ "sh $HOME/.config/hypr/scripts/ApplyThemeMode.sh",
"sh " .. scriptsDir .. "/WaybarStartup.sh",
"qs -c overview",
"hypridle",
@@ -67,5 +78,5 @@ end
-- Optional startup examples retained from the original config:
-- exec_once("mpvpaper '*' -o \"load-scripts=no no-audio --loop\" \"\"")
--- exec_once(userScripts .. "/WallpaperAutoChange.sh " .. wallDir)
+-- exec_once(scriptsDir .. "/WallpaperAutoChange.sh " .. wallDir)
-- exec_once(userScripts .. "/RainbowBorders.sh")
diff --git a/config/hypr/lua/user_keybinds_helper.lua b/config/hypr/lua/user_keybinds_helper.lua
index f9d4aa0c..66398bd9 100644
--- a/config/hypr/lua/user_keybinds_helper.lua
+++ b/config/hypr/lua/user_keybinds_helper.lua
@@ -125,14 +125,26 @@ local function dispatch(name, args)
if name == "exec" then
return exec_cmd(args)
end
- if name == "killactive" and window_api.close then
- return window_api.close()
+ if name == "killactive" then
+ if window_api.close then
+ return window_api.close()
+ end
+ if window_api.kill then
+ return window_api.kill()
+ end
+ return raw_dispatch_cmd("killactive")
end
- if name == "fullscreen" and window_api.fullscreen then
+ if name == "fullscreen" then
+ if window_api.fullscreen then
+ if args == "1" then
+ return window_api.fullscreen({ mode = "maximized" })
+ end
+ return window_api.fullscreen({ mode = "fullscreen" })
+ end
if args == "1" then
- return window_api.fullscreen({ mode = "maximized" })
+ return exec_cmd("hyprctl dispatch 'hl.dsp.window.fullscreen({ mode = \"maximized\" })'")
end
- return window_api.fullscreen({ mode = "fullscreen" })
+ return exec_cmd("hyprctl dispatch 'hl.dsp.window.fullscreen({ mode = \"fullscreen\" })'")
end
if name == "movefocus" and dsp and dsp.focus then
return function()
diff --git a/config/hypr/lua/user_overrides.lua b/config/hypr/lua/user_overrides.lua
index 42502315..149962d5 100644
--- a/config/hypr/lua/user_overrides.lua
+++ b/config/hypr/lua/user_overrides.lua
@@ -11,6 +11,36 @@ local configHome = os.getenv("XDG_CONFIG_HOME") or ((os.getenv("HOME") or "") ..
local hyprDir = configHome .. "/hypr"
local systemDir = hyprDir .. "/configs"
local userDir = configHome .. "/hypr/UserConfigs"
+local function has_kvantum_qml_module()
+ local cmd = "find /usr/lib /usr/lib64 /usr/share -type d -path '*/qml/*/kvantum' -print -quit 2>/dev/null"
+ local pipe = io.popen(cmd, "r")
+ if not pipe then
+ return false
+ end
+ local output = pipe:read("*a") or ""
+ pipe:close()
+ return output:match("%S") ~= nil
+end
+
+local function apply_qt_style_fallbacks()
+ if not hl or not hl.env then
+ return
+ end
+
+ if has_kvantum_qml_module() then
+ return
+ end
+
+ local style_override = (os.getenv("QT_STYLE_OVERRIDE") or ""):lower()
+ if style_override == "kvantum" or style_override == "kvantum-dark" then
+ hl.env("QT_STYLE_OVERRIDE", "Fusion")
+ end
+
+ local quick_controls = (os.getenv("QT_QUICK_CONTROLS_STYLE") or ""):lower()
+ if quick_controls == "kvantum" then
+ hl.env("QT_QUICK_CONTROLS_STYLE", "Basic")
+ end
+end
local function load_optional(path)
local ok, err = pcall(dofile, path)
@@ -61,6 +91,7 @@ end
if not loaded_user_split then
load_optional(userDir .. "/user_overrides.lua") -- legacy single-file support
end
+apply_qt_style_fallbacks()
-- Legacy compatibility: import UserKeybinds.conf when user_keybinds.lua is missing.
do
diff --git a/config/hypr/lua/workspaces.lua b/config/hypr/lua/workspaces.lua
index 287326ca..0ed3d8bf 100644
--- a/config/hypr/lua/workspaces.lua
+++ b/config/hypr/lua/workspaces.lua
@@ -10,3 +10,7 @@
-- Example:
-- hl.workspace_rule({ workspace = "1", monitor = "eDP-1" })
+-- hl.workspace_rule({ workspace = "1", monitor = "HDMI-A-1", layout = "scrolling" })
+-- hl.workspace_rule({ workspace = "1", monitor = "HDMI-A-1", layout = "dwindle" })
+-- hl.workspace_rule({ workspace = "1", monitor = "HDMI-A-1", layout = "master" })
+-- hl.workspace_rule({ workspace = "1", monitor = "HDMI-A-1", layout = "monocle" })
diff --git a/config/hypr/scripts/Add-override-Hyprland-Portal.sh b/config/hypr/scripts/Add-override-Hyprland-Portal.sh
index 1f321d51..b8a10ba4 100755
--- a/config/hypr/scripts/Add-override-Hyprland-Portal.sh
+++ b/config/hypr/scripts/Add-override-Hyprland-Portal.sh
@@ -14,7 +14,7 @@ SCRIPT_NAME="$(basename "$0")"
DRY_RUN=0
ACTION="apply"
-OVERRIDE_DIR="$HOME/.config/systemd/user/xdg-desktop-portal.service.d"
+OVERRIDE_DIR="${XDG_CONFIG_HOME:-$HOME/.config}/systemd/user/xdg-desktop-portal.service.d"
OVERRIDE_FILE="$OVERRIDE_DIR/override.conf"
PORTAL_UNITS=(
"xdg-desktop-portal.service"
diff --git a/config/hypr/scripts/AirplaneMode.sh b/config/hypr/scripts/AirplaneMode.sh
index 21aa04a8..17a8d9ac 100755
--- a/config/hypr/scripts/AirplaneMode.sh
+++ b/config/hypr/scripts/AirplaneMode.sh
@@ -7,7 +7,7 @@
# ==================================================
# Airplane Mode. Turning on or off all wifi using rfkill.
-notif="$HOME/.config/swaync/images/ja.png"
+notif="${XDG_CONFIG_HOME:-$HOME/.config}/swaync/images/ja.png"
# Check if any wireless device is blocked
wifi_blocked=$(rfkill list wifi | grep -o "Soft blocked: yes")
diff --git a/config/hypr/scripts/Animations.sh b/config/hypr/scripts/Animations.sh
index 5fb77750..ae93429b 100755
--- a/config/hypr/scripts/Animations.sh
+++ b/config/hypr/scripts/Animations.sh
@@ -13,22 +13,44 @@ if pidof rofi > /dev/null; then
fi
# Variables
-iDIR="$HOME/.config/swaync/images"
-SCRIPTSDIR="$HOME/.config/hypr/scripts"
-animations_dir="$HOME/.config/hypr/animations"
-UserConfigs="$HOME/.config/hypr/UserConfigs"
-rofi_theme="$HOME/.config/rofi/config-Animations.rasi"
-msg='❗NOTE:❗ This will copy animations into UserAnimations.conf'
+iDIR="${XDG_CONFIG_HOME:-$HOME/.config}/swaync/images"
+SCRIPTSDIR="${XDG_CONFIG_HOME:-$HOME/.config}/hypr/scripts"
+animations_dir="${XDG_CONFIG_HOME:-$HOME/.config}/hypr/animations"
+UserConfigs="${XDG_CONFIG_HOME:-$HOME/.config}/hypr/UserConfigs"
+rofi_theme="${XDG_CONFIG_HOME:-$HOME/.config}/rofi/config-Animations.rasi"
+config_home="${XDG_CONFIG_HOME:-$HOME/.config}"
+hypr_dir="$config_home/hypr"
+lua_entry="$hypr_dir/hyprland.lua"
+legacy_lua_entry="$config_home/hyprland.lua"
+
+# Detect active Hyprland config mode (Lua entrypoint vs legacy .conf includes)
+if [[ -f "$lua_entry" || -f "$legacy_lua_entry" ]]; then
+ hypr_config_mode="lua"
+ animation_ext="lua"
+ target_animation_file="$UserConfigs/user_animations.lua"
+ msg='❗NOTE:❗ This will copy animations into user_animations.lua'
+else
+ hypr_config_mode="conf"
+ animation_ext="conf"
+ target_animation_file="$UserConfigs/UserAnimations.conf"
+ msg='❗NOTE:❗ This will copy animations into UserAnimations.conf'
+fi
+
# list of animation files, sorted alphabetically with numbers first
-animations_list=$(find -L "$animations_dir" -maxdepth 1 -type f | sed 's/.*\///' | sed 's/\.conf$//' | sort -V)
+animations_list=$(find -L "$animations_dir" -maxdepth 1 -type f -name "*.${animation_ext}" | sed 's/.*\///' | sed "s/\.${animation_ext}$//" | sort -V)
+
+if [[ -z "$animations_list" ]]; then
+ notify-send -u normal -i "$iDIR/ja.png" "No animation presets found" "Expected *.${animation_ext} in $animations_dir"
+ exit 0
+fi
# Rofi Menu
-chosen_file=$(echo "$animations_list" | rofi -i -dmenu -config $rofi_theme -mesg "$msg")
+chosen_file=$(echo "$animations_list" | rofi -i -dmenu -config "$rofi_theme" -mesg "$msg")
# Check if a file was selected
if [[ -n "$chosen_file" ]]; then
- full_path="$animations_dir/$chosen_file.conf"
- cp "$full_path" "$UserConfigs/UserAnimations.conf"
+ full_path="$animations_dir/$chosen_file.$animation_ext"
+ cp "$full_path" "$target_animation_file"
notify-send -u low -i "$iDIR/ja.png" "$chosen_file" "Hyprland Animation Loaded"
fi
diff --git a/config/hypr/scripts/ApplyThemeMode.sh b/config/hypr/scripts/ApplyThemeMode.sh
new file mode 100755
index 00000000..f0b45aaf
--- /dev/null
+++ b/config/hypr/scripts/ApplyThemeMode.sh
@@ -0,0 +1,11 @@
+#!/usr/bin/env bash
+# ==================================================
+# KoolDots (2026)
+# Project URL: https://github.com/LinuxBeginnings
+# License: GNU GPLv3
+# SPDX-License-Identifier: GPL-3.0-or-later
+# ==================================================
+# Re-apply saved Dark/Light mode on startup without toggling.
+
+SCRIPTSDIR="${XDG_CONFIG_HOME:-$HOME/.config}/hypr/scripts"
+"$SCRIPTSDIR/DarkLight.sh" --apply-current --preserve-wallpaper --no-notify
diff --git a/config/hypr/scripts/Brightness.sh b/config/hypr/scripts/Brightness.sh
index bf0f4bf1..d3f221bf 100755
--- a/config/hypr/scripts/Brightness.sh
+++ b/config/hypr/scripts/Brightness.sh
@@ -7,7 +7,7 @@
# ==================================================
# Script for Monitor backlights (if supported) using brightnessctl
-iDIR="$HOME/.config/swaync/icons"
+iDIR="${XDG_CONFIG_HOME:-$HOME/.config}/swaync/icons"
notification_timeout=1000
step=10 # INCREASE/DECREASE BY THIS VALUE
diff --git a/config/hypr/scripts/BrightnessKbd.sh b/config/hypr/scripts/BrightnessKbd.sh
index 5bd09a78..ae24b2b2 100755
--- a/config/hypr/scripts/BrightnessKbd.sh
+++ b/config/hypr/scripts/BrightnessKbd.sh
@@ -7,7 +7,7 @@
# ==================================================
# Script for keyboard backlights (if supported) using brightnessctl
-iDIR="$HOME/.config/swaync/icons"
+iDIR="${XDG_CONFIG_HOME:-$HOME/.config}/swaync/icons"
# Get keyboard brightness
get_kbd_backlight() {
diff --git a/config/hypr/scripts/ChangeBlur.sh b/config/hypr/scripts/ChangeBlur.sh
index 10b5914e..ca1be5ad 100755
--- a/config/hypr/scripts/ChangeBlur.sh
+++ b/config/hypr/scripts/ChangeBlur.sh
@@ -7,7 +7,7 @@
# ==================================================
# Script for changing blurs on the fly
-notif="$HOME/.config/swaync/images"
+notif="${XDG_CONFIG_HOME:-$HOME/.config}/swaync/images"
STATE=$(hyprctl -j getoption decoration:blur:passes | jq ".int")
diff --git a/config/hypr/scripts/ChangeLayout.sh b/config/hypr/scripts/ChangeLayout.sh
index 3c81bcbe..4e241e85 100755
--- a/config/hypr/scripts/ChangeLayout.sh
+++ b/config/hypr/scripts/ChangeLayout.sh
@@ -5,36 +5,168 @@
# License: GNU GPLv3
# SPDX-License-Identifier: GPL-3.0-or-later
# ==================================================
-# for changing Hyprland Layouts (master, dwindle, scrolling, monocle) on the fly
-
-notif="$HOME/.config/swaync/images/ja.png"
+# Switch Hyprland layouts per active monitor/workspace.
+# This avoids global layout mutations and keeps workspace-specific rules intact.
+notif="${XDG_CONFIG_HOME:-$HOME/.config}/swaync/images/ja.png"
+persist_layout_script="${XDG_CONFIG_HOME:-$HOME/.config}/hypr/scripts/PersistWorkspaceLayout.sh"
layouts=(master dwindle scrolling monocle)
quiet_mode=0
+normalize_layout() {
+ case "$1" in
+ master | dwindle | scrolling | monocle)
+ printf '%s\n' "$1"
+ ;;
+ *)
+ printf '\n'
+ ;;
+ esac
+}
+
+wait_for_layout() {
+ local target="$1"
+ local actual=""
+ local attempt
+
+ for attempt in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15; do
+ actual="$(get_layout)"
+ if [[ "$actual" == "$target" ]]; then
+ printf '%s\n' "$actual"
+ return 0
+ fi
+ sleep 0.03
+ done
+
+ printf '%s\n' "$actual"
+ return 1
+}
+
+persist_current_workspace_layout() {
+ local target_layout="$1"
+
+ if [[ ! -x "$persist_layout_script" ]]; then
+ return 0
+ fi
+
+ "$persist_layout_script" --quiet --layout "$target_layout" >/dev/null 2>&1 || true
+}
+
+get_active_workspace_json() {
+ hyprctl -j activeworkspace 2>/dev/null || printf '{}'
+}
+
get_layout() {
- hyprctl -j getoption general:layout | jq -r '.str'
+ local ws_json layout
+
+ ws_json="$(get_active_workspace_json)"
+ layout="$(jq -r '.tiledLayout // .tiled_layout // .layout // empty' <<<"$ws_json" 2>/dev/null || true)"
+ layout="$(normalize_layout "$layout")"
+
+ if [[ -z "$layout" ]]; then
+ layout="$(hyprctl -j getoption general:layout 2>/dev/null | jq -r '.str // empty' 2>/dev/null || true)"
+ layout="$(normalize_layout "$layout")"
+ fi
+
+ if [[ -z "$layout" ]]; then
+ layout="dwindle"
+ fi
+
+ printf '%s\n' "$layout"
}
-set_hypr_layout() {
+get_workspace_selector() {
+ local ws_json="$1"
+ local ws_id ws_name
+
+ ws_id="$(jq -r '.id // empty' <<<"$ws_json" 2>/dev/null || true)"
+ ws_name="$(jq -r '.name // empty' <<<"$ws_json" 2>/dev/null || true)"
+
+ if [[ "$ws_id" =~ ^[0-9]+$ ]] && ((ws_id > 0)); then
+ printf '%s\n' "$ws_id"
+ return 0
+ fi
+
+ if [[ -n "$ws_name" && "$ws_name" != "null" ]]; then
+ if [[ "$ws_name" == name:* || "$ws_name" == special:* ]]; then
+ printf '%s\n' "$ws_name"
+ else
+ printf 'name:%s\n' "$ws_name"
+ fi
+ return 0
+ fi
+
+ return 1
+}
+
+get_workspace_label() {
+ local ws_json="$1"
+ local ws_name ws_id
+
+ ws_name="$(jq -r '.name // empty' <<<"$ws_json" 2>/dev/null || true)"
+ ws_id="$(jq -r '.id // empty' <<<"$ws_json" 2>/dev/null || true)"
+
+ if [[ -n "$ws_name" && "$ws_name" != "null" ]]; then
+ printf '%s\n' "$ws_name"
+ return
+ fi
+
+ if [[ -n "$ws_id" && "$ws_id" != "null" ]]; then
+ printf '%s\n' "$ws_id"
+ return
+ fi
+
+ printf 'current\n'
+}
+
+get_monitor_name() {
+ local ws_json="$1"
+ jq -r '.monitor // empty' <<<"$ws_json" 2>/dev/null || true
+}
+
+escape_lua_string() {
+ local value="$1"
+ value="${value//\\/\\\\}"
+ value="${value//\"/\\\"}"
+ printf '%s' "$value"
+}
+
+is_ok_output() {
+ local output="$1"
+ local normalized
+
+ normalized="$(printf '%s\n' "$output" | tr -d '\r' | sed '/^[[:space:]]*$/d')"
+ [[ -z "$normalized" || "$normalized" == "ok" ]]
+}
+
+set_workspace_layout_rule() {
local target="$1"
- local output
+ local ws_json workspace_selector monitor_name output
+ local ws_escaped monitor_escaped target_escaped
+
+ ws_json="$(get_active_workspace_json)"
+ workspace_selector="$(get_workspace_selector "$ws_json" || true)"
+ monitor_name="$(get_monitor_name "$ws_json")"
- output="$(hyprctl keyword general:layout "$target" 2>&1)"
+ if [[ -z "$workspace_selector" || -z "$monitor_name" ]]; then
+ echo "Unable to resolve active workspace context" >&2
+ return 1
+ fi
+
+ output="$(hyprctl keyword workspace "${workspace_selector}, monitor:${monitor_name}, layout:${target}" 2>&1 || true)"
if grep -q "keyword can't work with non-legacy parsers" <<<"$output"; then
- output="$(hyprctl eval "hl.config({ general = { layout = \"${target}\" } })" 2>&1)"
+ ws_escaped="$(escape_lua_string "$workspace_selector")"
+ monitor_escaped="$(escape_lua_string "$monitor_name")"
+ target_escaped="$(escape_lua_string "$target")"
+ output="$(hyprctl eval "hl.workspace_rule({ workspace = \"${ws_escaped}\", monitor = \"${monitor_escaped}\", layout = \"${target_escaped}\" })" 2>&1 || true)"
fi
- if ! grep -q "^ok$" <<<"$output"; then
+ if ! is_ok_output "$output"; then
echo "$output" >&2
return 1
fi
}
-hypr_keyword() {
- hyprctl keyword "$@" >/dev/null 2>&1 || true
-}
-
next_layout() {
local current="$1"
local i
@@ -49,65 +181,24 @@ next_layout() {
set_layout() {
local target="$1"
+ local ws_json workspace_label monitor_name actual
- if ! set_hypr_layout "$target"; then
+ ws_json="$(get_active_workspace_json)"
+ workspace_label="$(get_workspace_label "$ws_json")"
+ monitor_name="$(get_monitor_name "$ws_json")"
+
+ if ! set_workspace_layout_rule "$target"; then
if [[ "$quiet_mode" -eq 0 ]]; then
notify-send -e -u critical -i "$notif" " Layout switch failed: $target"
fi
return 1
fi
- hypr_keyword unbind SUPER,j
- hypr_keyword unbind SUPER,k
- hypr_keyword bind SUPER,j,cyclenext
- hypr_keyword bind SUPER,k,cyclenext,prev
- hypr_keyword unbind SUPER,left
- hypr_keyword unbind SUPER,right
- hypr_keyword unbind SUPER,up
- hypr_keyword unbind SUPER,down
- hypr_keyword unbind SUPER,O
-
- case "$target" in
- "dwindle")
- hypr_keyword bind SUPER,left,cyclenext,prev
- hypr_keyword bind SUPER,up,cyclenext,prev
- hypr_keyword bind SUPER,right,cyclenext
- hypr_keyword bind SUPER,down,cyclenext
- hypr_keyword bind SUPER,O,layoutmsg,togglesplit
- ;;
- "scrolling")
- hypr_keyword bind SUPER,left,cyclenext,prev
- hypr_keyword bind SUPER,up,cyclenext,prev
- hypr_keyword bind SUPER,right,cyclenext
- hypr_keyword bind SUPER,down,cyclenext
- ;;
- "monocle")
- hypr_keyword bind SUPER,left,layoutmsg,cycleprev
- hypr_keyword bind SUPER,up,layoutmsg,cycleprev
- hypr_keyword bind SUPER,right,layoutmsg,cyclenext
- hypr_keyword bind SUPER,down,layoutmsg,cyclenext
- ;;
- "master")
- hypr_keyword bind SUPER,left,movefocus,l
- hypr_keyword bind SUPER,right,movefocus,r
- hypr_keyword bind SUPER,up,movefocus,u
- hypr_keyword bind SUPER,down,movefocus,d
- ;;
- *)
- hypr_keyword bind SUPER,left,movefocus,l
- hypr_keyword bind SUPER,right,movefocus,r
- hypr_keyword bind SUPER,up,movefocus,u
- hypr_keyword bind SUPER,down,movefocus,d
- echo "Unknown layout: $target" >&2
- return 1
- ;;
- esac
-
- local actual
- actual="$(get_layout)"
+ actual="$(wait_for_layout "$target")"
if [[ "$actual" == "$target" ]]; then
+ persist_current_workspace_layout "$target"
if [[ "$quiet_mode" -eq 0 ]]; then
- notify-send -e -u low -i "$notif" " ${actual^} Layout"
+ notify-send -e -u low -i "$notif" " ${actual^} Layout · WS ${workspace_label}${monitor_name:+ @ ${monitor_name}}"
fi
else
if [[ "$quiet_mode" -eq 0 ]]; then
@@ -127,16 +218,20 @@ arg="${1:-toggle}"
case "$arg" in
init)
- set_layout "$current"
+ # No startup keybind rebinding required anymore.
+ exit 0
+ ;;
+current | status | get)
+ printf '%s\n' "$current"
;;
-toggle|next)
+toggle | next)
set_layout "$(next_layout "$current")"
;;
-master|dwindle|scrolling|monocle)
+master | dwindle | scrolling | monocle)
set_layout "$arg"
;;
*)
- echo "Usage: $(basename "$0") [--quiet|--no-notify] [toggle|next|init|master|dwindle|scrolling|monocle]" >&2
+ echo "Usage: $(basename "$0") [--quiet|--no-notify] [toggle|next|init|current|master|dwindle|scrolling|monocle]" >&2
exit 1
;;
esac
diff --git a/config/hypr/scripts/ChangeStarshipPrompt.sh b/config/hypr/scripts/ChangeStarshipPrompt.sh
new file mode 100755
index 00000000..44e50936
--- /dev/null
+++ b/config/hypr/scripts/ChangeStarshipPrompt.sh
@@ -0,0 +1,78 @@
+#!/usr/bin/env bash
+# ==================================================
+# KoolDots (2026)
+# Project URL: https://github.com/LinuxBeginnings
+# License: GNU GPLv3
+# SPDX-License-Identifier: GPL-3.0-or-later
+# ==================================================
+# Switch Starship prompt configs via Rofi.
+
+CONFIG_HOME="${XDG_CONFIG_HOME:-$HOME/.config}"
+STARSHIP_DIR="$CONFIG_HOME/starship"
+HYPR_STARSHIP_DIR="$CONFIG_HOME/hypr/starship"
+STARSHIP_CONFIG="$CONFIG_HOME/starship.toml"
+BACKUP_FILE="$STARSHIP_CONFIG.original"
+ROFI_THEME="$CONFIG_HOME/rofi/config-starship.rasi"
+RESTORE_LABEL="Retore orignal prompt"
+
+if ! command -v starship >/dev/null 2>&1; then
+ echo "starship is not installed"
+ exit 1
+fi
+
+if [[ ! -f "$ROFI_THEME" ]]; then
+ echo "Rofi theme not found: $ROFI_THEME"
+ exit 1
+fi
+
+if [[ ! -d "$STARSHIP_DIR" ]]; then
+ echo "Starship config directory not found: $STARSHIP_DIR"
+ exit 1
+fi
+
+mapfile -t available_prompts < <(find "$STARSHIP_DIR" -maxdepth 1 -type f -name "*.toml" -printf "%f\n" 2>/dev/null | sort -V)
+
+if [[ ${#available_prompts[@]} -eq 0 ]]; then
+ echo "No Starship prompt files found in $STARSHIP_DIR"
+ exit 1
+fi
+
+rofi_options=("${available_prompts[@]}")
+if [[ -f "$BACKUP_FILE" ]]; then
+ rofi_options+=("$RESTORE_LABEL")
+fi
+
+selection="$(printf '%s\n' "${rofi_options[@]}" | rofi -dmenu -i -p "Select Starship Prompt" -mesg "Select Starship Prompt" -theme "$ROFI_THEME")"
+
+if [[ -z "$selection" ]]; then
+ exit 0
+fi
+
+if [[ "$selection" == "$RESTORE_LABEL" ]]; then
+ if [[ -f "$BACKUP_FILE" ]]; then
+ if [[ -L "$STARSHIP_CONFIG" ]]; then
+ rm -f "$STARSHIP_CONFIG"
+ fi
+ cp -f "$BACKUP_FILE" "$STARSHIP_CONFIG"
+ else
+ echo "Backup not found: $BACKUP_FILE"
+ fi
+ exit 0
+fi
+
+selected_path="$STARSHIP_DIR/$selection"
+if [[ ! -f "$selected_path" && -f "$HYPR_STARSHIP_DIR/$selection" ]]; then
+ selected_path="$HYPR_STARSHIP_DIR/$selection"
+fi
+
+if [[ ! -f "$selected_path" ]]; then
+ echo "Selected prompt not found: $selection"
+ exit 1
+fi
+
+if [[ -f "$STARSHIP_CONFIG" && ! -L "$STARSHIP_CONFIG" ]]; then
+ cp -f "$STARSHIP_CONFIG" "$BACKUP_FILE"
+ rm -f "$STARSHIP_CONFIG"
+fi
+
+ln -sfn "$selected_path" "$STARSHIP_CONFIG"
diff --git a/config/hypr/scripts/ClipManager.sh b/config/hypr/scripts/ClipManager.sh
index e3fbd066..19e15fd6 100755
--- a/config/hypr/scripts/ClipManager.sh
+++ b/config/hypr/scripts/ClipManager.sh
@@ -8,7 +8,7 @@
# Clipboard Manager. This script uses cliphist, rofi, and wl-copy.
# Variables
-rofi_theme="$HOME/.config/rofi/config-clipboard.rasi"
+rofi_theme="${XDG_CONFIG_HOME:-$HOME/.config}/rofi/config-clipboard.rasi"
msg='👀 **note** CTRL DEL = cliphist del (entry) or ALT DEL - cliphist wipe (all)'
# Actions:
# CTRL Del to delete an entry
diff --git a/config/hypr/scripts/DarkLight.sh b/config/hypr/scripts/DarkLight.sh
index 5b1cc3e7..16f1a4ef 100755
--- a/config/hypr/scripts/DarkLight.sh
+++ b/config/hypr/scripts/DarkLight.sh
@@ -13,24 +13,79 @@ PICTURES_DIR="$(xdg-user-dir PICTURES 2>/dev/null || echo "$HOME/Pictures")"
wallpaper_base_path="$PICTURES_DIR/wallpapers/Dynamic-Wallpapers"
dark_wallpapers="$wallpaper_base_path/Dark"
light_wallpapers="$wallpaper_base_path/Light"
-hypr_config_path="$HOME/.config/hypr"
-swaync_style="$HOME/.config/swaync/style.css"
-ags_style="$HOME/.config/ags/user/style.css"
-SCRIPTSDIR="$HOME/.config/hypr/scripts"
+hypr_config_path="${XDG_CONFIG_HOME:-$HOME/.config}/hypr"
+swaync_style="${XDG_CONFIG_HOME:-$HOME/.config}/swaync/style.css"
+ags_style="${XDG_CONFIG_HOME:-$HOME/.config}/ags/user/style.css"
+SCRIPTSDIR="${XDG_CONFIG_HOME:-$HOME/.config}/hypr/scripts"
# shellcheck source=/dev/null
. "$SCRIPTSDIR/WallpaperCmd.sh"
-notif="$HOME/.config/swaync/images/bell.png"
-wallust_rofi="$HOME/.config/wallust/templates/colors-rofi.rasi"
+notif="${XDG_CONFIG_HOME:-$HOME/.config}/swaync/images/bell.png"
+wallust_rofi="${XDG_CONFIG_HOME:-$HOME/.config}/wallust/templates/colors-rofi.rasi"
+theme_state_dir="${XDG_STATE_HOME:-$HOME/.local/state}/hypr"
+theme_state_file="$theme_state_dir/theme_mode"
+legacy_theme_state_file="$HOME/.cache/.theme_mode"
-kitty_conf="$HOME/.config/kitty/kitty.conf"
+kitty_conf="${XDG_CONFIG_HOME:-$HOME/.config}/kitty/kitty.conf"
-wallust_config="$HOME/.config/wallust/wallust.toml"
+wallust_config="${XDG_CONFIG_HOME:-$HOME/.config}/wallust/wallust.toml"
pallete_dark="dark16"
pallete_light="light16"
-qt5ct_dark="$HOME/.config/qt5ct/colors/Catppuccin-Mocha.conf"
-qt5ct_light="$HOME/.config/qt5ct/colors/Catppuccin-Latte.conf"
-qt6ct_dark="$HOME/.config/qt6ct/colors/Catppuccin-Mocha.conf"
-qt6ct_light="$HOME/.config/qt6ct/colors/Catppuccin-Latte.conf"
+qt5ct_dark="${XDG_CONFIG_HOME:-$HOME/.config}/qt5ct/colors/Catppuccin-Mocha.conf"
+qt5ct_light="${XDG_CONFIG_HOME:-$HOME/.config}/qt5ct/colors/Catppuccin-Latte.conf"
+qt6ct_dark="${XDG_CONFIG_HOME:-$HOME/.config}/qt6ct/colors/Catppuccin-Mocha.conf"
+qt6ct_light="${XDG_CONFIG_HOME:-$HOME/.config}/qt6ct/colors/Catppuccin-Latte.conf"
+apply_saved_mode=0
+notify_enabled=1
+preserve_wallpaper=0
+forced_mode=""
+
+normalize_mode() {
+ case "$1" in
+ Dark|Light) printf '%s' "$1" ;;
+ *) printf '' ;;
+ esac
+}
+
+read_saved_mode() {
+ local mode=""
+ if [ -f "$theme_state_file" ]; then
+ mode="$(normalize_mode "$(tr -d '\r\n' < "$theme_state_file")")"
+ fi
+ if [ -z "$mode" ] && [ -f "$legacy_theme_state_file" ]; then
+ mode="$(normalize_mode "$(tr -d '\r\n' < "$legacy_theme_state_file")")"
+ fi
+ [ -n "$mode" ] && printf '%s' "$mode" || printf 'Dark'
+}
+
+while [ $# -gt 0 ]; do
+ case "$1" in
+ --apply-current)
+ apply_saved_mode=1
+ ;;
+ --mode)
+ shift
+ forced_mode="$(normalize_mode "${1:-}")"
+ ;;
+ --no-notify)
+ notify_enabled=0
+ ;;
+ --preserve-wallpaper)
+ preserve_wallpaper=1
+ ;;
+ --help)
+ cat <<'EOF'
+Usage: DarkLight.sh [--apply-current] [--mode Dark|Light] [--no-notify] [--preserve-wallpaper]
+ (no args) Toggle between Dark and Light and persist selection
+ --apply-current Re-apply saved mode (defaults to Dark when unset)
+ --mode <mode> Force target mode to Dark or Light
+ --no-notify Suppress notifications
+ --preserve-wallpaper Keep current wallpaper instead of choosing random Dynamic-Wallpapers image
+EOF
+ exit 0
+ ;;
+ esac
+ shift
+done
# intial kill process
for pid in waybar rofi swaync ags swaybg; do
@@ -45,28 +100,33 @@ done
swww="$WWW_CMD img"
effect="--transition-bezier .43,1.19,1,.4 --transition-fps 60 --transition-type grow --transition-pos 0.925,0.977 --transition-duration 2"
-# Determine current theme mode
-if [ "$(cat $HOME/.cache/.theme_mode)" = "Light" ]; then
+# Determine target theme mode
+saved_mode="$(read_saved_mode)"
+if [ -n "$forced_mode" ]; then
+ next_mode="$forced_mode"
+elif [ "$apply_saved_mode" -eq 1 ]; then
+ next_mode="$saved_mode"
+elif [ "$saved_mode" = "Light" ]; then
next_mode="Dark"
- # Logic for Dark mode
- wallpaper_path="$dark_wallpapers"
else
next_mode="Light"
- # Logic for Light mode
- wallpaper_path="$light_wallpapers"
fi
# Select Qt color scheme templates for the upcoming mode
if [ "$next_mode" = "Dark" ]; then
+ wallpaper_path="$dark_wallpapers"
qt5ct_color_scheme="$qt5ct_dark"
qt6ct_color_scheme="$qt6ct_dark"
else
+ wallpaper_path="$light_wallpapers"
qt5ct_color_scheme="$qt5ct_light"
qt6ct_color_scheme="$qt6ct_light"
fi
# Function to update theme mode for the next cycle
update_theme_mode() {
- echo "$next_mode" > "$HOME/.cache/.theme_mode"
+ mkdir -p "$theme_state_dir" "$HOME/.cache"
+ echo "$next_mode" > "$theme_state_file"
+ echo "$next_mode" > "$legacy_theme_state_file"
}
# Function to notify user
@@ -84,8 +144,8 @@ fi
# Function to set Waybar style
set_waybar_style() {
theme="$1"
- waybar_styles="$HOME/.config/waybar/style"
- waybar_style_link="$HOME/.config/waybar/style.css"
+ waybar_styles="${XDG_CONFIG_HOME:-$HOME/.config}/waybar/style"
+ waybar_style_link="${XDG_CONFIG_HOME:-$HOME/.config}/waybar/style.css"
style_prefix="\\[${theme}\\].*\\.css$"
style_file=$(find -L "$waybar_styles" -maxdepth 1 -type f -regex ".*$style_prefix" | shuf -n 1)
@@ -99,7 +159,7 @@ set_waybar_style() {
# Call the function after determining the mode
set_waybar_style "$next_mode"
-notify_user "$next_mode"
+[ "$notify_enabled" -eq 1 ] && notify_user "$next_mode"
# swaync color change
@@ -140,29 +200,31 @@ for pid_kitty in $(pidof kitty); do
done
# Set Dynamic Wallpaper for Dark or Light Mode
-if [ "$next_mode" = "Dark" ]; then
- next_wallpaper="$(find -L "${dark_wallpapers}" -type f \( -iname "*.jpg" -o -iname "*.png" \) -print0 | shuf -n1 -z | xargs -0)"
-else
- next_wallpaper="$(find -L "${light_wallpapers}" -type f \( -iname "*.jpg" -o -iname "*.png" \) -print0 | shuf -n1 -z | xargs -0)"
-fi
+if [ "$preserve_wallpaper" -eq 0 ]; then
+ if [ "$next_mode" = "Dark" ]; then
+ next_wallpaper="$(find -L "${dark_wallpapers}" -type f \( -iname "*.jpg" -o -iname "*.png" \) -print0 | shuf -n1 -z | xargs -0)"
+ else
+ next_wallpaper="$(find -L "${light_wallpapers}" -type f \( -iname "*.jpg" -o -iname "*.png" \) -print0 | shuf -n1 -z | xargs -0)"
+ fi
-# Update wallpaper using swww command
-$swww "${next_wallpaper}" $effect
+ # Update wallpaper using swww command
+ $swww "${next_wallpaper}" $effect
+fi
# Set Kvantum Manager theme & QT5/QT6 settings
if [ "$next_mode" = "Dark" ]; then
kvantum_theme="catppuccin-mocha-blue"
- #qt5ct_color_scheme="$HOME/.config/qt5ct/colors/Catppuccin-Mocha.conf"
- #qt6ct_color_scheme="$HOME/.config/qt6ct/colors/Catppuccin-Mocha.conf"
+ #qt5ct_color_scheme="${XDG_CONFIG_HOME:-$HOME/.config}/qt5ct/colors/Catppuccin-Mocha.conf"
+ #qt6ct_color_scheme="${XDG_CONFIG_HOME:-$HOME/.config}/qt6ct/colors/Catppuccin-Mocha.conf"
else
kvantum_theme="catppuccin-latte-blue"
- #qt5ct_color_scheme="$HOME/.config/qt5ct/colors/Catppuccin-Latte.conf"
- #qt6ct_color_scheme="$HOME/.config/qt6ct/colors/Catppuccin-Latte.conf"
+ #qt5ct_color_scheme="${XDG_CONFIG_HOME:-$HOME/.config}/qt5ct/colors/Catppuccin-Latte.conf"
+ #qt6ct_color_scheme="${XDG_CONFIG_HOME:-$HOME/.config}/qt6ct/colors/Catppuccin-Latte.conf"
fi
-sed -i "s|^color_scheme_path=.*$|color_scheme_path=$qt5ct_color_scheme|" "$HOME/.config/qt5ct/qt5ct.conf"
-sed -i "s|^color_scheme_path=.*$|color_scheme_path=$qt6ct_color_scheme|" "$HOME/.config/qt6ct/qt6ct.conf"
+sed -i "s|^color_scheme_path=.*$|color_scheme_path=$qt5ct_color_scheme|" "${XDG_CONFIG_HOME:-$HOME/.config}/qt5ct/qt5ct.conf"
+sed -i "s|^color_scheme_path=.*$|color_scheme_path=$qt6ct_color_scheme|" "${XDG_CONFIG_HOME:-$HOME/.config}/qt6ct/qt6ct.conf"
kvantummanager --set "$kvantum_theme"
@@ -234,8 +296,8 @@ set_custom_gtk_theme() {
gsettings set $icon_setting "$selected_icon"
## QT5ct icon_theme
- sed -i "s|^icon_theme=.*$|icon_theme=$selected_icon|" "$HOME/.config/qt5ct/qt5ct.conf"
- sed -i "s|^icon_theme=.*$|icon_theme=$selected_icon|" "$HOME/.config/qt6ct/qt6ct.conf"
+ sed -i "s|^icon_theme=.*$|icon_theme=$selected_icon|" "${XDG_CONFIG_HOME:-$HOME/.config}/qt5ct/qt5ct.conf"
+ sed -i "s|^icon_theme=.*$|icon_theme=$selected_icon|" "${XDG_CONFIG_HOME:-$HOME/.config}/qt6ct/qt6ct.conf"
# Flatpak GTK apps (icons)
if command -v flatpak &> /dev/null; then
@@ -268,7 +330,7 @@ ${SCRIPTSDIR}/Refresh.sh
sleep 0.5
# Display notifications for theme and icon changes
-notify-send -u low -i "$notif" " Themes switched to:" " $next_mode Mode"
+[ "$notify_enabled" -eq 1 ] && notify-send -u low -i "$notif" " Themes switched to:" " $next_mode Mode"
exit 0
diff --git a/config/hypr/scripts/Distro_update.sh b/config/hypr/scripts/Distro_update.sh
index b9bcae71..20a710ee 100755
--- a/config/hypr/scripts/Distro_update.sh
+++ b/config/hypr/scripts/Distro_update.sh
@@ -8,7 +8,7 @@
# Simple bash script to check and will try to update your system
# Local Paths
-iDIR="$HOME/.config/swaync/images"
+iDIR="${XDG_CONFIG_HOME:-$HOME/.config}/swaync/images"
# Check for required tools (kitty)
if ! command -v kitty &> /dev/null; then
diff --git a/config/hypr/scripts/Dropterminal.sh b/config/hypr/scripts/Dropterminal.sh
index 21349d4a..8c301f68 100755
--- a/config/hypr/scripts/Dropterminal.sh
+++ b/config/hypr/scripts/Dropterminal.sh
@@ -24,7 +24,7 @@ LOCK_FILE="/tmp/dropdown_terminal_lock"
LAST_TOGGLE_FILE="/tmp/dropdown_terminal_last_toggle"
MIN_TOGGLE_INTERVAL_MS=250
DROPDOWN_KITTY_CLASS="kitty-dropterm"
-CONFIG_HOME="${XDG_CONFIG_HOME:-$HOME/.config}"
+CONFIG_HOME="${XDG_CONFIG_HOME:-${XDG_CONFIG_HOME:-$HOME/.config}}"
HYPR_DIR="$CONFIG_HOME/hypr"
LUA_ENTRY="$HYPR_DIR/hyprland.lua"
LEGACY_LUA_ENTRY="$CONFIG_HOME/hyprland.lua"
diff --git a/config/hypr/scripts/ExternalBrightness.sh b/config/hypr/scripts/ExternalBrightness.sh
index 59081e1d..f3bf2487 100755
--- a/config/hypr/scripts/ExternalBrightness.sh
+++ b/config/hypr/scripts/ExternalBrightness.sh
@@ -18,7 +18,7 @@ cache_file="/tmp/external_brightness_displays.cache"
cache_ttl=300 # 5 minutes
# Detect active Hyprland config mode (Lua entrypoint vs legacy .conf includes)
-config_home="${XDG_CONFIG_HOME:-$HOME/.config}"
+config_home="${XDG_CONFIG_HOME:-${XDG_CONFIG_HOME:-$HOME/.config}}"
hypr_dir="$config_home/hypr"
lua_entry="$hypr_dir/hyprland.lua"
legacy_lua_entry="$config_home/hyprland.lua"
diff --git a/config/hypr/scripts/Float-all-Windows.sh b/config/hypr/scripts/Float-all-Windows.sh
index 25fdc465..1f754ec5 100755
--- a/config/hypr/scripts/Float-all-Windows.sh
+++ b/config/hypr/scripts/Float-all-Windows.sh
@@ -7,7 +7,7 @@
# ==================================================
# Detect active Hyprland config mode (Lua entrypoint vs legacy .conf includes)
-config_home="${XDG_CONFIG_HOME:-$HOME/.config}"
+config_home="${XDG_CONFIG_HOME:-${XDG_CONFIG_HOME:-$HOME/.config}}"
hypr_dir="$config_home/hypr"
lua_entry="$hypr_dir/hyprland.lua"
legacy_lua_entry="$config_home/hyprland.lua"
diff --git a/config/hypr/scripts/GameMode.sh b/config/hypr/scripts/GameMode.sh
index b104179e..c3a02948 100755
--- a/config/hypr/scripts/GameMode.sh
+++ b/config/hypr/scripts/GameMode.sh
@@ -7,13 +7,13 @@
# ==================================================
# Game Mode. Turning off all animations
-notif="$HOME/.config/swaync/images/ja.png"
-SCRIPTSDIR="$HOME/.config/hypr/scripts"
+notif="${XDG_CONFIG_HOME:-$HOME/.config}/swaync/images/ja.png"
+SCRIPTSDIR="${XDG_CONFIG_HOME:-$HOME/.config}/hypr/scripts"
# shellcheck source=/dev/null
. "$SCRIPTSDIR/WallpaperCmd.sh"
# Detect active Hyprland config mode (Lua entrypoint vs legacy .conf includes)
-config_home="${XDG_CONFIG_HOME:-$HOME/.config}"
+config_home="${XDG_CONFIG_HOME:-${XDG_CONFIG_HOME:-$HOME/.config}}"
hypr_dir="$config_home/hypr"
lua_entry="$hypr_dir/hyprland.lua"
legacy_lua_entry="$config_home/hyprland.lua"
diff --git a/config/hypr/scripts/Ghostty_themes.sh b/config/hypr/scripts/Ghostty_themes.sh
index c3fcd792..7eef6c1c 100755
--- a/config/hypr/scripts/Ghostty_themes.sh
+++ b/config/hypr/scripts/Ghostty_themes.sh
@@ -7,14 +7,14 @@
# ==================================================
# Ghostty theme selector
-config_file="$HOME/.config/ghostty/config"
-iDIR="$HOME/.config/swaync/images"
-rofi_theme_primary="$HOME/.config/rofi/config-ghostty-theme.rasi"
-rofi_theme_fallback="$HOME/.config/rofi/config-edit.rasi"
-wallust_include_path="$HOME/.config/ghostty/wallust.conf"
+config_file="${XDG_CONFIG_HOME:-$HOME/.config}/ghostty/config"
+iDIR="${XDG_CONFIG_HOME:-$HOME/.config}/swaync/images"
+rofi_theme_primary="${XDG_CONFIG_HOME:-$HOME/.config}/rofi/config-ghostty-theme.rasi"
+rofi_theme_fallback="${XDG_CONFIG_HOME:-$HOME/.config}/rofi/config-edit.rasi"
+wallust_include_path="${XDG_CONFIG_HOME:-$HOME/.config}/ghostty/wallust.conf"
wallust_option_label="Set by wallpaper"
default_option_label="Default - no color"
-wallust_refresh_script="$HOME/.config/hypr/scripts/WallustSwww.sh"
+wallust_refresh_script="${XDG_CONFIG_HOME:-$HOME/.config}/hypr/scripts/WallustSwww.sh"
notify_user() {
local icon="$1"
diff --git a/config/hypr/scripts/HyprLayoutModule.sh b/config/hypr/scripts/HyprLayoutModule.sh
index 22f12920..14e3b524 100755
--- a/config/hypr/scripts/HyprLayoutModule.sh
+++ b/config/hypr/scripts/HyprLayoutModule.sh
@@ -9,8 +9,8 @@
IFS=$'\n\t'
-SCRIPTSDIR="$HOME/.config/hypr/scripts"
-rofi_config="$HOME/.config/rofi/config-waybar-layout.rasi"
+SCRIPTSDIR="${XDG_CONFIG_HOME:-$HOME/.config}/hypr/scripts"
+rofi_config="${XDG_CONFIG_HOME:-$HOME/.config}/rofi/config-layout.rasi"
change_layout="${SCRIPTSDIR}/ChangeLayout.sh"
layouts=(dwindle scrolling monocle master)
@@ -35,7 +35,17 @@ layout_name() {
}
get_layout() {
- hyprctl -j getoption general:layout 2>/dev/null | jq -r '.str // "unknown"' 2>/dev/null
+ local layout
+
+ if [[ -x "$change_layout" ]]; then
+ layout="$("$change_layout" --quiet current 2>/dev/null || true)"
+ if [[ -n "$layout" ]]; then
+ printf '%s\n' "$layout"
+ return
+ fi
+ fi
+
+ hyprctl -j activeworkspace 2>/dev/null | jq -r '.tiledLayout // .tiled_layout // "unknown"' 2>/dev/null
}
next_layout() {
@@ -68,7 +78,7 @@ show_status() {
current="$(get_layout)"
icon="$(layout_icon "$current")"
name="$(layout_name "$current")"
- tooltip="Hyprland layout: ${name} (${icon})\n\nLeft click: Select layout\nRight click: Cycle layout\n\nOptions:\n🄳 Dwindle\n🅂 Scrolling\n🄼 Monocle\nⓜ Master"
+ tooltip="Workspace layout: ${name} (${icon})\n\nLeft click: Select layout for active workspace\nRight click: Cycle active workspace layout\n\nOptions:\n🄳 Dwindle\n🅂 Scrolling\n🄼 Monocle\nⓜ Master"
printf '{"text":"%s","tooltip":"%s","class":"%s"}\n' "$icon" "$tooltip" "$current"
}
@@ -97,7 +107,7 @@ show_menu() {
return 0
fi
- choice="$(printf '%s\n' "${options[@]}" | rofi -i -dmenu -p "Layout" -mesg "Left click selects • Right click cycles" -selected-row "$default_row" -config "$rofi_config")"
+ choice="$(printf '%s\n' "${options[@]}" | rofi -i -dmenu -p "Workspace layout" -mesg "Select layout for this workspace" -selected-row "$default_row" -config "$rofi_config")"
[[ -z "$choice" ]] && exit 0
case "$choice" in
diff --git a/config/hypr/scripts/HyprlockWallpaperSelect.sh b/config/hypr/scripts/HyprlockWallpaperSelect.sh
new file mode 100755
index 00000000..a139ca36
--- /dev/null
+++ b/config/hypr/scripts/HyprlockWallpaperSelect.sh
@@ -0,0 +1,358 @@
+#!/usr/bin/env bash
+# ==================================================
+# KoolDots (2026)
+# Project URL: https://github.com/LinuxBeginnings
+# License: GNU GPLv3
+# SPDX-License-Identifier: GPL-3.0-or-later
+# ==================================================
+# Hyprlock wallpaper selector (images + video fallback)
+
+PICTURES_DIR="$(xdg-user-dir PICTURES 2>/dev/null || echo "$HOME/Pictures")"
+wallDIR="$PICTURES_DIR/wallpapers"
+scriptsDir="${XDG_CONFIG_HOME:-$HOME/.config}/hypr/scripts"
+iDIR="${XDG_CONFIG_HOME:-$HOME/.config}/swaync/images"
+# shellcheck source=/dev/null
+. "$scriptsDir/WallpaperCmd.sh" 2>/dev/null || true
+
+rofi_theme="${XDG_CONFIG_HOME:-$HOME/.config}/rofi/config-wallpaper.rasi"
+lock_cache_dir="${XDG_CONFIG_HOME:-$HOME/.config}/hypr/wallpaper_effects"
+lock_wallpaper_link="$lock_cache_dir/.hyprlock_current"
+lock_wallpaper_current="$lock_cache_dir/.wallpaper_current"
+video_cache_dir="$HOME/.cache/hyprlock_preview"
+find_notify_send() {
+ local candidate=""
+ if candidate="$(command -v notify-send 2>/dev/null)"; then
+ [ -n "$candidate" ] && [ -x "$candidate" ] && { printf '%s\n' "$candidate"; return 0; }
+ fi
+ for candidate in /usr/bin/notify-send /usr/sbin/notify-send /bin/notify-send /sbin/notify-send; do
+ [ -x "$candidate" ] && { printf '%s\n' "$candidate"; return 0; }
+ done
+ return 1
+}
+
+NOTIFY_SEND_BIN="$(find_notify_send || true)"
+
+notify_err() {
+ if [ -n "$NOTIFY_SEND_BIN" ]; then
+ if [ -f "$iDIR/error.png" ]; then
+ "$NOTIFY_SEND_BIN" -i "$iDIR/error.png" "Hyprlock Wallpaper" "$1"
+ else
+ "$NOTIFY_SEND_BIN" "Hyprlock Wallpaper" "$1"
+ fi
+ fi
+}
+
+notify_ok() {
+ if [ -n "$NOTIFY_SEND_BIN" ]; then
+ if [ -f "$iDIR/ja.png" ]; then
+ "$NOTIFY_SEND_BIN" -i "$iDIR/ja.png" "Hyprlock Wallpaper" "$1"
+ else
+ "$NOTIFY_SEND_BIN" "Hyprlock Wallpaper" "$1"
+ fi
+ fi
+}
+
+if ! command -v rofi >/dev/null 2>&1; then
+ notify_err "rofi not found"
+ exit 1
+fi
+if ! command -v hyprctl >/dev/null 2>&1; then
+ notify_err "hyprctl not found"
+ exit 1
+fi
+if ! command -v jq >/dev/null 2>&1; then
+ notify_err "jq not found"
+ exit 1
+fi
+if ! command -v bc >/dev/null 2>&1; then
+ notify_err "bc not found"
+ exit 1
+fi
+read_wallpaper_from_query() {
+ local monitor="$1"
+ [ -n "$monitor" ] || return 1
+ "$WWW_CMD" query 2>/dev/null | awk -v mon="$monitor" '
+ {
+ line=$0
+ sub(/^Monitor[[:space:]]+/, "", line)
+ sub(/^:[[:space:]]*/, "", line)
+ mon_name=line
+ sub(/:.*/, "", mon_name)
+ gsub(/^[[:space:]]+|[[:space:]]+$/, "", mon_name)
+ if (mon_name != mon) next
+
+ path=line
+ sub(/^.*image:[[:space:]]*/, "", path)
+ gsub(/^[[:space:]]+|[[:space:]]+$/, "", path)
+ if (path != line && length(path) > 0) {
+ print path
+ exit
+ }
+ }
+ '
+}
+
+read_cached_wallpaper() {
+ local cache_file="$1"
+ [ -f "$cache_file" ] || return 1
+ awk 'NF && $0 !~ /^filter/ {print; exit}' "$cache_file"
+}
+
+read_wallpaper_from_cache() {
+ local monitor="$1"
+ local cache_root="${WWW_CACHE_DIR:-$HOME/.cache/awww}"
+ local cache_file="$cache_root/$monitor"
+ local fallback_cache=""
+ local path=""
+
+ case "$cache_root" in
+ "$HOME/.cache/awww")
+ fallback_cache="$HOME/.cache/swww/$monitor"
+ ;;
+ "$HOME/.cache/swww")
+ fallback_cache="$HOME/.cache/awww/$monitor"
+ ;;
+ esac
+
+ path="$(read_cached_wallpaper "$cache_file" 2>/dev/null || true)"
+ if [ -z "$path" ] && [ -n "$fallback_cache" ]; then
+ path="$(read_cached_wallpaper "$fallback_cache" 2>/dev/null || true)"
+ fi
+
+ [ -n "$path" ] && [ -f "$path" ] || return 1
+ printf '%s\n' "$path"
+}
+
+get_active_workspace_monitor() {
+ hyprctl activeworkspace -j 2>/dev/null | jq -r '.monitor // empty' | head -n1
+}
+
+monitor_exists() {
+ local monitor="$1"
+ [ -n "$monitor" ] || return 1
+ hyprctl monitors -j 2>/dev/null | jq -r --arg mon "$monitor" '.[] | select(.name == $mon) | .name' | grep -qx "$monitor"
+}
+
+focused_monitor=""
+requested_monitor="${1:-${HYPRLOCK_TARGET_MONITOR:-}}"
+if monitor_exists "$requested_monitor"; then
+ focused_monitor="$requested_monitor"
+fi
+if [[ -z "$focused_monitor" ]]; then
+ workspace_monitor="$(get_active_workspace_monitor)"
+ if monitor_exists "$workspace_monitor"; then
+ focused_monitor="$workspace_monitor"
+ fi
+fi
+if [[ -z "$focused_monitor" ]]; then
+ focused_monitor=$(hyprctl monitors -j | jq -r '.[] | select(.focused) | .name' | head -n1)
+fi
+if [[ -z "$focused_monitor" ]]; then
+ notify_err "Could not detect target monitor"
+ exit 1
+fi
+
+per_monitor_rofi_link="${XDG_CONFIG_HOME:-$HOME/.config}/rofi/.current_wallpaper_${focused_monitor}"
+per_monitor_wallpaper_current="$lock_cache_dir/.wallpaper_current_${focused_monitor}"
+
+scale_factor=$(hyprctl monitors -j | jq -r --arg mon "$focused_monitor" '.[] | select(.name == $mon) | .scale')
+monitor_height=$(hyprctl monitors -j | jq -r --arg mon "$focused_monitor" '.[] | select(.name == $mon) | .height')
+icon_size=$(echo "scale=1; ($monitor_height * 3) / ($scale_factor * 150)" | bc)
+adjusted_icon_size=$(echo "$icon_size" | awk '{if ($1 < 15) $1 = 20; if ($1 > 25) $1 = 25; print $1}')
+rofi_override="element-icon{size:${adjusted_icon_size}%;}"
+
+mapfile -d '' PICS < <(find -L "${wallDIR}" -type f \( \
+ -iname "*.jpg" -o -iname "*.jpeg" -o -iname "*.png" -o -iname "*.gif" -o \
+ -iname "*.bmp" -o -iname "*.tiff" -o -iname "*.webp" -o \
+ -iname "*.mp4" -o -iname "*.mkv" -o -iname "*.mov" -o -iname "*.webm" \) -print0)
+
+if [ "${#PICS[@]}" -eq 0 ]; then
+ notify_err "No wallpapers found in $wallDIR"
+ exit 1
+fi
+
+RANDOM_PIC="${PICS[$((RANDOM % ${#PICS[@]}))]}"
+RANDOM_PIC_NAME="Random: $(basename "$RANDOM_PIC")"
+
+current_lock_path=""
+if [ -L "$lock_wallpaper_link" ]; then
+ current_lock_path="$(readlink -f "$lock_wallpaper_link" 2>/dev/null || true)"
+elif [ -f "$lock_wallpaper_link" ]; then
+ current_lock_path="$lock_wallpaper_link"
+fi
+current_lock_name=""
+if [ -n "$current_lock_path" ]; then
+ current_lock_name="Current: $(basename "$current_lock_path")"
+fi
+
+current_monitor_path=""
+if [ -n "${WWW_CMD:-}" ] && command -v "$WWW_CMD" >/dev/null 2>&1; then
+ current_monitor_path="$(read_wallpaper_from_query "$focused_monitor")"
+fi
+if [ -z "$current_monitor_path" ] && [ -L "$per_monitor_rofi_link" ]; then
+ current_monitor_path="$(readlink -f "$per_monitor_rofi_link" 2>/dev/null || true)"
+fi
+if [ -z "$current_monitor_path" ] && [ -f "$per_monitor_rofi_link" ]; then
+ current_monitor_path="$per_monitor_rofi_link"
+fi
+if [ -z "$current_monitor_path" ] && [ -f "$per_monitor_wallpaper_current" ]; then
+ current_monitor_path="$per_monitor_wallpaper_current"
+fi
+if [ -z "$current_monitor_path" ]; then
+ current_monitor_path="$(read_wallpaper_from_cache "$focused_monitor" 2>/dev/null || true)"
+fi
+if [ -n "$current_monitor_path" ] && [ ! -f "$current_monitor_path" ]; then
+ current_monitor_path=""
+fi
+current_monitor_name=""
+if [ -n "$current_monitor_path" ]; then
+ current_monitor_name="Current monitor: $(basename "$current_monitor_path")"
+fi
+
+rofi_command="rofi -i -show -dmenu -config $rofi_theme -theme-str $rofi_override"
+
+menu() {
+ IFS=$'\n' sorted_options=($(sort <<<"${PICS[*]}"))
+ printf "%s\x00icon\x1f%s\n" "$RANDOM_PIC_NAME" "$RANDOM_PIC"
+ if [ -n "$current_monitor_name" ]; then
+ printf "%s\x00icon\x1f%s\n" "$current_monitor_name" "$current_monitor_path"
+ fi
+ if [ -n "$current_lock_name" ]; then
+ printf "%s\x00icon\x1f%s\n" "$current_lock_name" "$current_lock_path"
+ fi
+ for pic_path in "${sorted_options[@]}"; do
+ pic_name=$(basename "$pic_path")
+ if [[ "$pic_name" =~ \.gif$ ]]; then
+ cache_gif_image="$HOME/.cache/gif_preview/${pic_name}.png"
+ if [[ ! -f "$cache_gif_image" ]]; then
+ mkdir -p "$HOME/.cache/gif_preview"
+ magick "$pic_path[0]" -resize 1920x1080 "$cache_gif_image"
+ fi
+ printf "%s\x00icon\x1f%s\n" "$pic_name" "$cache_gif_image"
+ elif [[ "$pic_name" =~ \.(mp4|mkv|mov|webm|MP4|MKV|MOV|WEBM)$ ]]; then
+ cache_preview_image="$HOME/.cache/video_preview/${pic_name}.png"
+ if [[ ! -f "$cache_preview_image" ]]; then
+ mkdir -p "$HOME/.cache/video_preview"
+ ffmpeg -v error -y -i "$pic_path" -ss 00:00:01.000 -vframes 1 "$cache_preview_image"
+ fi
+ printf "%s\x00icon\x1f%s\n" "$pic_name" "$cache_preview_image"
+ else
+ printf "%s\x00icon\x1f%s\n" "$pic_name" "$pic_path"
+ fi
+ done
+}
+
+update_hyprlock_config() {
+ local conf="$1"
+ local path="$2"
+ [ -f "$conf" ] || return 0
+
+ if grep -qE '^[[:space:]]*path[[:space:]]*=' "$conf"; then
+ sed -i -E "s|^[[:space:]]*path[[:space:]]*=.*| path = $path|" "$conf"
+ elif grep -qE '^[[:space:]]*background[[:space:]]*{' "$conf"; then
+ sed -i -E "/^[[:space:]]*background[[:space:]]*{/a\\ path = $path" "$conf"
+ else
+ printf "\nbackground {\n path = %s\n}\n" "$path" >>"$conf"
+ fi
+}
+
+set_hyprlock_wallpaper() {
+ local selected_file="$1"
+ local target_monitor="${2:-$focused_monitor}"
+ local final_path="$selected_file"
+
+ if [ ! -f "$selected_file" ]; then
+ notify_err "Failed for $target_monitor: selected file not found"
+ return 1
+ fi
+
+ if [[ "$selected_file" =~ \.(mp4|mkv|mov|webm|MP4|MKV|MOV|WEBM)$ ]]; then
+ if ! command -v ffmpeg >/dev/null 2>&1; then
+ notify_err "Failed for $target_monitor: ffmpeg not found for video preview"
+ return 1
+ fi
+ mkdir -p "$video_cache_dir"
+ local video_name
+ video_name="$(basename "$selected_file")"
+ final_path="$video_cache_dir/${video_name}.png"
+ if ! ffmpeg -v error -y -i "$selected_file" -ss 00:00:01.000 -vframes 1 "$final_path"; then
+ notify_err "Failed for $target_monitor: could not generate video preview"
+ return 1
+ fi
+ fi
+
+ mkdir -p "$lock_cache_dir"
+ if ! ln -sf "$final_path" "$lock_wallpaper_link"; then
+ notify_err "Failed for $target_monitor: could not update hyprlock wallpaper link"
+ return 1
+ fi
+ if ! cp -f "$final_path" "$lock_wallpaper_current"; then
+ notify_err "Failed for $target_monitor: could not update lock fallback wallpaper"
+ return 1
+ fi
+
+ update_hyprlock_config "${XDG_CONFIG_HOME:-$HOME/.config}/hypr/hyprlock.conf" "$lock_wallpaper_link"
+ update_hyprlock_config "${XDG_CONFIG_HOME:-$HOME/.config}/hypr/hyprlock-2k.conf" "$lock_wallpaper_link"
+ update_hyprlock_config "${XDG_CONFIG_HOME:-$HOME/.config}/hypr/hyprlock-1080p.conf" "$lock_wallpaper_link"
+
+ pkill -USR1 hyprlock 2>/dev/null || true
+
+ local resolved_path=""
+ if [ -L "$lock_wallpaper_link" ]; then
+ resolved_path="$(readlink -f "$lock_wallpaper_link" 2>/dev/null || true)"
+ elif [ -f "$lock_wallpaper_link" ]; then
+ resolved_path="$lock_wallpaper_link"
+ fi
+
+ if [ -z "$resolved_path" ] || [ ! -f "$resolved_path" ]; then
+ notify_err "Failed for $target_monitor: hyprlock wallpaper was not applied"
+ return 1
+ fi
+
+ notify_ok "Set for $target_monitor: $(basename "$resolved_path")"
+ return 0
+}
+
+main() {
+ choice=$(menu | $rofi_command)
+ choice=$(echo "$choice" | xargs)
+
+ if [[ -z "$choice" ]]; then
+ exit 0
+ fi
+
+ if [[ "$choice" == "$RANDOM_PIC_NAME" ]]; then
+ set_hyprlock_wallpaper "$RANDOM_PIC" "$focused_monitor" || exit 1
+ return
+ fi
+ if [[ "$choice" == "$current_monitor_name" && -n "$current_monitor_path" ]]; then
+ set_hyprlock_wallpaper "$current_monitor_path" "$focused_monitor" || exit 1
+ return
+ fi
+
+ if [[ "$choice" == "$current_lock_name" && -n "$current_lock_path" ]]; then
+ set_hyprlock_wallpaper "$current_lock_path" "$focused_monitor" || exit 1
+ return
+ fi
+
+ if [[ -f "$choice" ]]; then
+ set_hyprlock_wallpaper "$choice" "$focused_monitor" || exit 1
+ return
+ fi
+
+ choice_basename=$(basename "$choice" | sed 's/\(.*\)\.[^.]*$/\1/')
+ selected_file=$(find "$wallDIR" -iname "$choice_basename.*" -print -quit)
+
+ if [[ -z "$selected_file" ]]; then
+ notify_err "Selected choice not found: $choice"
+ exit 1
+ fi
+
+ set_hyprlock_wallpaper "$selected_file" "$focused_monitor" || exit 1
+}
+
+if pidof rofi >/dev/null; then
+ pkill rofi
+fi
+
+main
diff --git a/config/hypr/scripts/JavaManager.sh b/config/hypr/scripts/JavaManager.sh
index 728c69a3..8f8f5612 100755
--- a/config/hypr/scripts/JavaManager.sh
+++ b/config/hypr/scripts/JavaManager.sh
@@ -201,7 +201,7 @@ generate_list() {
}
# --- 6. rofi ---
-THEME="$HOME/.config/rofi/config.rasi"
+THEME="${XDG_CONFIG_HOME:-$HOME/.config}/rofi/config.rasi"
SELECTION=$(generate_list | rofi -dmenu -i \
-p "󰒓 Java" \
diff --git a/config/hypr/scripts/KeyBinds.sh b/config/hypr/scripts/KeyBinds.sh
index 1005e797..aff7b808 100755
--- a/config/hypr/scripts/KeyBinds.sh
+++ b/config/hypr/scripts/KeyBinds.sh
@@ -16,7 +16,7 @@ if pidof rofi > /dev/null; then
fi
# define the config files
-config_home="${XDG_CONFIG_HOME:-$HOME/.config}"
+config_home="${XDG_CONFIG_HOME:-${XDG_CONFIG_HOME:-$HOME/.config}}"
hypr_dir="$config_home/hypr"
keybinds_conf="$hypr_dir/configs/Keybinds.conf"
user_keybinds_conf="$hypr_dir/UserConfigs/UserKeybinds.conf"
@@ -26,7 +26,7 @@ lua_user_keybinds="$hypr_dir/UserConfigs/user_keybinds.lua"
lua_system_keybinds="$hypr_dir/configs/system_keybinds.lua"
lua_legacy_system_keybinds="$hypr_dir/UserConfigs/system_keybinds.lua"
lua_overrides="$hypr_dir/UserConfigs/user_overrides.lua"
-rofi_theme="$HOME/.config/rofi/config-keybinds.rasi"
+rofi_theme="${XDG_CONFIG_HOME:-$HOME/.config}/rofi/config-keybinds.rasi"
msg='☣️ NOTE ☣️: Clicking with Mouse or Pressing ENTER will have NO function'
# detect active Hyprland config mode (Lua entrypoint vs legacy .conf includes)
@@ -55,7 +55,7 @@ fi
# Parse binds using the python script for speed
# The last argument must be the user config for override logic to work correctly
-display_keybinds=$("$HOME/.config/hypr/scripts/keybinds_parser.py" "${files[@]}")
+display_keybinds=$("${XDG_CONFIG_HOME:-$HOME/.config}/hypr/scripts/keybinds_parser.py" "${files[@]}")
# Check for suggestions file created by python script
if [[ -f "/tmp/hypr_keybind_suggestions_file" ]]; then
diff --git a/config/hypr/scripts/KeyHints.sh b/config/hypr/scripts/KeyHints.sh
index a9f6660a..6ae8c4b5 100755
--- a/config/hypr/scripts/KeyHints.sh
+++ b/config/hypr/scripts/KeyHints.sh
@@ -62,7 +62,7 @@ GDK_BACKEND=$BACKEND yad \
"CTRL ALT Del" "Hyprland Exit" "(NOTE: Hyprland Will exit immediately)" \
" SHIFT F" "Fullscreen" "Toggles to full screen" \
" CTL F" "Fake Fullscreen" "Toggles to fake full screen" \
- " ALT L" "Toggle Dwindle|Floating|Monocle|Master layouts" "Hyprland Layouts" \
+ " ALT L" "Toggle Dwindle|Scrolling|Monocle|Master layouts" "Active workspace layout" \
" SPACEBAR" "Toggle float" "single window" \
" ALT SPACEBAR" "Toggle all windows to float" "all windows" \
" ALT O" "Toggle Blur" "normal or less blur" \
diff --git a/config/hypr/scripts/KeybindsLayoutInit.sh b/config/hypr/scripts/KeybindsLayoutInit.sh
index 280e381b..08aff951 100755
--- a/config/hypr/scripts/KeybindsLayoutInit.sh
+++ b/config/hypr/scripts/KeybindsLayoutInit.sh
@@ -5,14 +5,14 @@
# License: GNU GPLv3
# SPDX-License-Identifier: GPL-3.0-or-later
# ==================================================
-# Initialize J/K keybinds so they always cycle windows globally (no layout-specific behavior).
+# Legacy startup hook for layout keybind initialization.
+# Runtime keybind behavior is now resolved per keypress based on active workspace layout.
set -euo pipefail
-# Always reset and bind SUPER+J/K the same way on startup
-hyprctl keyword unbind SUPER,j || true
-hyprctl keyword unbind SUPER,k || true
+scripts_dir="${XDG_CONFIG_HOME:-$HOME/.config}/hypr/scripts"
-# Cycle windows globally
-hyprctl keyword bind SUPER,j,cyclenext
-hyprctl keyword bind SUPER,k,cyclenext,prev
+# Keep compatibility with existing startup entries while avoiding global rebinding.
+if [[ -x "${scripts_dir}/ChangeLayout.sh" ]]; then
+ "${scripts_dir}/ChangeLayout.sh" --quiet init >/dev/null 2>&1 || true
+fi
diff --git a/config/hypr/scripts/KeyboardLayout.sh b/config/hypr/scripts/KeyboardLayout.sh
index fe092e7f..f126b895 100755
--- a/config/hypr/scripts/KeyboardLayout.sh
+++ b/config/hypr/scripts/KeyboardLayout.sh
@@ -5,10 +5,10 @@
# License: GNU GPLv3
# SPDX-License-Identifier: GPL-3.0-or-later
# ==================================================
-# This is for changing kb_layouts. Set kb_layouts in "$HOME/.config/hypr/UserConfigs/UserSettings.conf"
+# This is for changing kb_layouts. Set kb_layouts in "${XDG_CONFIG_HOME:-$HOME/.config}/hypr/UserConfigs/UserSettings.conf"
-notif_icon="$HOME/.config/swaync/images/ja.png"
-SCRIPTSDIR="$HOME/.config/hypr/scripts"
+notif_icon="${XDG_CONFIG_HOME:-$HOME/.config}/swaync/images/ja.png"
+SCRIPTSDIR="${XDG_CONFIG_HOME:-$HOME/.config}/hypr/scripts"
# Refined ignore list with patterns or specific device names
ignore_patterns=(
diff --git a/config/hypr/scripts/KillActiveProcess.sh b/config/hypr/scripts/KillActiveProcess.sh
index 66d6b009..9af3f813 100755
--- a/config/hypr/scripts/KillActiveProcess.sh
+++ b/config/hypr/scripts/KillActiveProcess.sh
@@ -13,7 +13,7 @@
active_pid=$(hyprctl activewindow | grep -o 'pid: [0-9]*' | cut -d' ' -f2)
if [[ -z "$active_pid" || ! "$active_pid" =~ ^[0-9]+$ ]]; then
- notify-send -u low -i "$HOME/.config/swaync/images/error.png" "Kill Active Window" "No active window PID found."
+ notify-send -u low -i "${XDG_CONFIG_HOME:-$HOME/.config}/swaync/images/error.png" "Kill Active Window" "No active window PID found."
exit 1
fi
diff --git a/config/hypr/scripts/Kitty_themes.sh b/config/hypr/scripts/Kitty_themes.sh
index 24a4ae11..0de21f8c 100755
--- a/config/hypr/scripts/Kitty_themes.sh
+++ b/config/hypr/scripts/Kitty_themes.sh
@@ -8,11 +8,11 @@
# Kitty Themes Source https://github.com/dexpota/kitty-themes #
# Define directories and variables
-kitty_themes_DiR="$HOME/.config/kitty/kitty-themes" # Kitty Themes Directory
-kitty_config="$HOME/.config/kitty/kitty.conf"
-iDIR="$HOME/.config/swaync/images" # For notifications
-rofi_theme_for_this_script="$HOME/.config/rofi/config-kitty-theme.rasi"
-wallust_refresh_script="$HOME/.config/hypr/scripts/WallustSwww.sh"
+kitty_themes_DiR="${XDG_CONFIG_HOME:-$HOME/.config}/kitty/kitty-themes" # Kitty Themes Directory
+kitty_config="${XDG_CONFIG_HOME:-$HOME/.config}/kitty/kitty.conf"
+iDIR="${XDG_CONFIG_HOME:-$HOME/.config}/swaync/images" # For notifications
+rofi_theme_for_this_script="${XDG_CONFIG_HOME:-$HOME/.config}/rofi/config-kitty-theme.rasi"
+wallust_refresh_script="${XDG_CONFIG_HOME:-$HOME/.config}/hypr/scripts/WallustSwww.sh"
debug_log="${XDG_CACHE_HOME:-$HOME/.cache}/kooldots-kitty-themes.log"
# --- Helper Functions ---
diff --git a/config/hypr/scripts/KooLsDotsUpdate.sh b/config/hypr/scripts/KooLsDotsUpdate.sh
index 887993a5..0cfb42a4 100755
--- a/config/hypr/scripts/KooLsDotsUpdate.sh
+++ b/config/hypr/scripts/KooLsDotsUpdate.sh
@@ -8,8 +8,8 @@
# simple bash script to check if update is available by comparing local version and github version
# Local Paths
-local_dir="$HOME/.config/hypr"
-iDIR="$HOME/.config/swaync/images/"
+local_dir="${XDG_CONFIG_HOME:-$HOME/.config}/hypr"
+iDIR="${XDG_CONFIG_HOME:-$HOME/.config}/swaync/images/"
local_version=$(find "$local_dir" -maxdepth 1 -name 'v*' -printf '%f\n' 2>/dev/null | sort -V | tail -n 1 | sed 's/^v//')
KooL_Dots_DIR="$HOME/Hyprland-Dots"
diff --git a/config/hypr/scripts/Kool_Quick_Settings.sh b/config/hypr/scripts/Kool_Quick_Settings.sh
index 6ec02bb8..70e98459 100755
--- a/config/hypr/scripts/Kool_Quick_Settings.sh
+++ b/config/hypr/scripts/Kool_Quick_Settings.sh
@@ -49,11 +49,31 @@ fi
# variables
configs="$hypr_dir/configs"
UserConfigs="$hypr_dir/UserConfigs"
-rofi_theme="$HOME/.config/rofi/config-edit.rasi"
+rofi_theme="${XDG_CONFIG_HOME:-$HOME/.config}/rofi/config-edit.rasi"
msg=' ⁉️ Choose what to do ⁉️'
-iDIR="$HOME/.config/swaync/images"
+iDIR="${XDG_CONFIG_HOME:-$HOME/.config}/swaync/images"
scriptsDir="$hypr_dir/scripts"
UserScripts="$hypr_dir/UserScripts"
+user_defaults_conf="$UserConfigs/01-UserDefaults.conf"
+user_defaults_lua="$UserConfigs/user_defaults.lua"
+user_env_conf="$UserConfigs/ENVariables.conf"
+user_env_lua="$UserConfigs/user_env.lua"
+user_keybinds_conf="$UserConfigs/UserKeybinds.conf"
+user_keybinds_lua="$UserConfigs/user_keybinds.lua"
+user_startup_conf="$UserConfigs/Startup_Apps.conf"
+user_startup_lua="$UserConfigs/user_startup.lua"
+user_window_rules_conf="$UserConfigs/WindowRules.conf"
+user_window_rules_lua="$UserConfigs/user_window_rules.lua"
+user_layer_rules_conf="$UserConfigs/LayerRules.conf"
+user_layer_rules_lua="$UserConfigs/user_layer_rules.lua"
+user_settings_conf="$UserConfigs/UserSettings.conf"
+user_settings_lua="$UserConfigs/user_settings.lua"
+user_decorations_conf="$UserConfigs/UserDecorations.conf"
+user_decorations_lua="$UserConfigs/user_decorations.lua"
+user_animations_conf="$UserConfigs/UserAnimations.conf"
+user_animations_lua="$UserConfigs/user_animations.lua"
+user_laptops_conf="$UserConfigs/Laptops.conf"
+user_laptops_lua="$UserConfigs/user_laptops.lua"
# Function to show info notification
show_info() {
@@ -64,6 +84,22 @@ show_info() {
fi
}
+get_context_monitor_name() {
+ if ! command -v hyprctl >/dev/null 2>&1; then
+ return 1
+ fi
+ local monitor=""
+ if command -v jq >/dev/null 2>&1; then
+ monitor="$(hyprctl activeworkspace -j 2>/dev/null | jq -r '.monitor // empty' | head -n1)"
+ if [[ -z "$monitor" ]]; then
+ monitor="$(hyprctl monitors -j 2>/dev/null | jq -r '.[] | select(.focused) | .name' | head -n1)"
+ fi
+ else
+ monitor="$(hyprctl monitors 2>/dev/null | awk '/^Monitor/{name=$2} /focused: yes/{print name; exit}')"
+ fi
+ printf '%s' "$monitor"
+}
+
# Determine whether an editor command is terminal-based (TUI)
is_tui_editor() {
local -a cmd=("$@")
@@ -103,9 +139,24 @@ resolve_system_lua_file() {
fi
}
-resolve_user_defaults_lua_file() {
- local preferred="$UserConfigs/user_defaults.lua"
- printf '%s' "$preferred"
+resolve_mode_file() {
+ local preferred="$1"
+ local fallback="$2"
+ if [[ -f "$preferred" || ! -f "$fallback" ]]; then
+ printf '%s' "$preferred"
+ else
+ printf '%s' "$fallback"
+ fi
+}
+
+resolve_user_overlay_file() {
+ local lua_file="$1"
+ local conf_file="$2"
+ if [[ "$hypr_config_mode" == "lua" ]]; then
+ resolve_mode_file "$lua_file" "$conf_file"
+ else
+ resolve_mode_file "$conf_file" "$lua_file"
+ fi
}
# Function to toggle Rainbow Borders script availability and refresh UI components
toggle_rainbow_borders() {
@@ -271,6 +322,7 @@ Edit System Default Startup Apps
Edit System Default Window Rules
Edit System Default Layer Rules
Edit System Default Settings
+Change Starship Prompt
--- UTILITIES ---
Set SDDM Wallpaper
Choose Kitty Terminal Theme
@@ -280,11 +332,13 @@ Configure Workspace Rules (nwg-displays)
GTK Settings (nwg-look)
QT Apps Settings (qt6ct)
QT Apps Settings (qt5ct)
+Set Hyprlock Wallpaper
Choose Hyprland Animations
Choose Monitor Profiles
Choose Rofi Themes
Search for Keybinds
Toggle Waybar Weather units (C/F)
+Toggle Waybar Clock (12H/24H)
Toggle Game Mode
Switch Dark-Light Theme
Rainbow Borders Mode
@@ -293,36 +347,32 @@ EOF
# Main function to handle menu selection
main() {
+ local quick_settings_monitor
+ quick_settings_monitor="$(get_context_monitor_name)"
choice=$(menu | rofi -i -dmenu -config $rofi_theme -mesg "$msg")
# Map choices to corresponding files
case "$choice" in
"Edit User Defaults")
- if [[ "$hypr_config_mode" == "lua" ]]; then file="$(resolve_user_defaults_lua_file)"; else file="$UserConfigs/01-UserDefaults.conf"; fi ;;
+ file="$(resolve_user_overlay_file "$user_defaults_lua" "$user_defaults_conf")" ;;
"Edit User ENV variables")
- if [[ "$hypr_config_mode" == "lua" ]]; then file="$UserConfigs/user_env.lua"; else file="$UserConfigs/ENVariables.conf"; fi ;;
+ file="$(resolve_user_overlay_file "$user_env_lua" "$user_env_conf")" ;;
"Edit User Keybinds")
- if [[ "$hypr_config_mode" == "lua" ]]; then file="$UserConfigs/user_keybinds.lua"; else file="$UserConfigs/UserKeybinds.conf"; fi ;;
+ file="$(resolve_user_overlay_file "$user_keybinds_lua" "$user_keybinds_conf")" ;;
"Edit User Startup Apps (overlay)")
- if [[ "$hypr_config_mode" == "lua" ]]; then file="$UserConfigs/user_startup.lua"; else file="$UserConfigs/Startup_Apps.conf"; fi ;;
+ file="$(resolve_user_overlay_file "$user_startup_lua" "$user_startup_conf")" ;;
"Edit User Window Rules (overlay)")
- if [[ "$hypr_config_mode" == "lua" ]]; then file="$UserConfigs/user_window_rules.lua"; else file="$UserConfigs/WindowRules.conf"; fi ;;
+ file="$(resolve_user_overlay_file "$user_window_rules_lua" "$user_window_rules_conf")" ;;
"Edit User Layer Rules (overlay)")
- if [[ "$hypr_config_mode" == "lua" ]]; then file="$UserConfigs/user_layer_rules.lua"; else file="$UserConfigs/LayerRules.conf"; fi ;;
+ file="$(resolve_user_overlay_file "$user_layer_rules_lua" "$user_layer_rules_conf")" ;;
"Edit User Settings")
- if [[ "$hypr_config_mode" == "lua" ]]; then
- file="$UserConfigs/user_settings.lua"
- show_info "Lua mode detected. Edit UserConfigs/user_settings.lua for user settings."
- else
- file="$configs/SystemSettings.conf"
- show_info "Editing default settings. Copy to UserConfigs/UserSettings.conf to override."
- fi ;;
+ file="$(resolve_user_overlay_file "$user_settings_lua" "$user_settings_conf")" ;;
"Edit User Decorations")
- if [[ "$hypr_config_mode" == "lua" ]]; then file="$UserConfigs/user_decorations.lua"; else file="$UserConfigs/UserDecorations.conf"; fi ;;
+ file="$(resolve_user_overlay_file "$user_decorations_lua" "$user_decorations_conf")" ;;
"Edit User Animations")
- if [[ "$hypr_config_mode" == "lua" ]]; then file="$UserConfigs/user_animations.lua"; else file="$UserConfigs/UserAnimations.conf"; fi ;;
+ file="$(resolve_user_overlay_file "$user_animations_lua" "$user_animations_conf")" ;;
"Edit User Laptop Settings")
- if [[ "$hypr_config_mode" == "lua" ]]; then file="$UserConfigs/user_laptops.lua"; else file="$UserConfigs/Laptops.conf"; fi ;;
+ file="$(resolve_user_overlay_file "$user_laptops_lua" "$user_laptops_conf")" ;;
"Edit System Default Keybinds")
if [[ "$hypr_config_mode" == "lua" ]]; then file="$(resolve_system_lua_file system_keybinds.lua)"; else file="$configs/Keybinds.conf"; fi ;;
"Edit System Default Startup Apps")
@@ -333,7 +383,14 @@ main() {
if [[ "$hypr_config_mode" == "lua" ]]; then file="$(resolve_system_lua_file system_layer_rules.lua)"; else file="$configs/LayerRules.conf"; fi ;;
"Edit System Default Settings")
if [[ "$hypr_config_mode" == "lua" ]]; then file="$(resolve_system_lua_file system_settings.lua)"; else file="$configs/SystemSettings.conf"; fi ;;
- "Set SDDM Wallpaper") $scriptsDir/sddm_wallpaper.sh --normal ;;
+ "Change Starship Prompt") "$scriptsDir/ChangeStarshipPrompt.sh" ;;
+ "Set SDDM Wallpaper")
+ if [[ -n "$quick_settings_monitor" ]]; then
+ "$scriptsDir/sddm_wallpaper.sh" --normal "$quick_settings_monitor"
+ else
+ "$scriptsDir/sddm_wallpaper.sh" --normal
+ fi
+ ;;
"Choose Kitty Terminal Theme") $scriptsDir/Kitty_themes.sh ;;
"Choose Ghostty Terminal Theme") $scriptsDir/Ghostty_themes.sh ;;
"Configure Monitors (nwg-displays)")
@@ -366,11 +423,19 @@ main() {
exit 1
fi
qt5ct ;;
+ "Set Hyprlock Wallpaper")
+ if [[ -n "$quick_settings_monitor" ]]; then
+ "$scriptsDir/HyprlockWallpaperSelect.sh" "$quick_settings_monitor"
+ else
+ "$scriptsDir/HyprlockWallpaperSelect.sh"
+ fi
+ ;;
"Choose Hyprland Animations") $scriptsDir/Animations.sh ;;
"Choose Monitor Profiles") $scriptsDir/MonitorProfiles.sh ;;
"Choose Rofi Themes") $scriptsDir/RofiThemeSelector.sh ;;
"Search for Keybinds") $scriptsDir/KeyBinds.sh ;;
"Toggle Waybar Weather units (C/F)") $scriptsDir/Toggle-weather-waybar-units.sh ;;
+ "Toggle Waybar Clock (12H/24H)") $scriptsDir/ToggleWaybarTime.sh ;;
"Toggle Game Mode") $scriptsDir/GameMode.sh ;;
"Switch Dark-Light Theme") $scriptsDir/DarkLight.sh ;;
"Rainbow Borders Mode") rainbow_borders_menu ;;
diff --git a/config/hypr/scripts/LaunchFileManager.sh b/config/hypr/scripts/LaunchFileManager.sh
new file mode 100755
index 00000000..8436451b
--- /dev/null
+++ b/config/hypr/scripts/LaunchFileManager.sh
@@ -0,0 +1,122 @@
+#!/usr/bin/env bash
+# ==================================================
+# KoolDots (2026)
+# Project URL: https://github.com/LinuxBeginnings
+# License: GNU GPLv3
+# SPDX-License-Identifier: GPL-3.0-or-later
+# ==================================================
+# Launch preferred file manager with fallback handling.
+# Usage:
+# LaunchFileManager.sh "<preferred-file-manager-cmd>" "<preferred-terminal-cmd>"
+# Examples:
+# LaunchFileManager.sh "thunar" "kitty"
+
+set -u
+
+notify_msg() {
+ local urgency="${1:-normal}"
+ local body="${2:-}"
+ if command -v notify-send >/dev/null 2>&1; then
+ notify-send -u "$urgency" "KooL Launchers" "$body"
+ fi
+}
+
+trim() {
+ local value="${1:-}"
+ value="${value#"${value%%[![:space:]]*}"}"
+ value="${value%"${value##*[![:space:]]}"}"
+ printf '%s' "$value"
+}
+
+command_bin_from_string() {
+ local cmd
+ cmd="$(trim "${1:-}")"
+ [[ -n "$cmd" ]] || return 1
+ (
+ eval "set -- $cmd"
+ printf '%s' "${1:-}"
+ ) 2>/dev/null
+}
+
+command_exists_from_string() {
+ local bin
+ bin="$(command_bin_from_string "${1:-}" 2>/dev/null || true)"
+ [[ -n "$bin" ]] || return 1
+ command -v "$bin" >/dev/null 2>&1
+}
+
+launch_command_string() {
+ local cmd
+ cmd="$(trim "${1:-}")"
+ [[ -n "$cmd" ]] || return 1
+
+ if ! command_exists_from_string "$cmd"; then
+ return 127
+ fi
+
+ (
+ eval "exec $cmd"
+ ) >/dev/null 2>&1 &
+ local pid=$!
+
+ sleep 0.35
+ if kill -0 "$pid" >/dev/null 2>&1; then
+ disown "$pid" >/dev/null 2>&1 || true
+ return 0
+ fi
+
+ wait "$pid"
+ local rc=$?
+ [[ $rc -eq 0 ]]
+}
+
+append_unique_candidate() {
+ local candidate
+ candidate="$(trim "${1:-}")"
+ [[ -n "$candidate" ]] || return 0
+ local existing
+ for existing in "${CANDIDATES[@]}"; do
+ [[ "$existing" == "$candidate" ]] && return 0
+ done
+ CANDIDATES+=("$candidate")
+}
+
+script_dir="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
+terminal_launcher="$script_dir/LaunchTerminal.sh"
+
+preferred_files="$(trim "${1:-${FILE_MANAGER:-}}")"
+preferred_term="$(trim "${2:-${TERMINAL:-kitty}}")"
+
+declare -a CANDIDATES=()
+append_unique_candidate "$preferred_files"
+append_unique_candidate "thunar"
+append_unique_candidate "dolphin"
+append_unique_candidate "nautilus"
+
+reported_preferred_issue=0
+
+for candidate in "${CANDIDATES[@]}"; do
+ if launch_command_string "$candidate"; then
+ exit 0
+ fi
+
+ if [[ $reported_preferred_issue -eq 0 && -n "$preferred_files" && "$candidate" == "$preferred_files" ]]; then
+ if ! command_exists_from_string "$preferred_files"; then
+ notify_msg normal "Preferred file manager '$preferred_files' is not installed. Falling back."
+ else
+ notify_msg normal "Preferred file manager '$preferred_files' failed to launch. Falling back."
+ fi
+ reported_preferred_issue=1
+ fi
+done
+
+if command -v yazi >/dev/null 2>&1; then
+ if [[ -x "$terminal_launcher" ]] && "$terminal_launcher" "$preferred_term" "yazi"; then
+ exit 0
+ fi
+else
+ notify_msg normal "No GUI file manager was launched and 'yazi' is not installed."
+fi
+
+notify_msg critical "Unable to launch file manager. Tried preferred app, thunar, dolphin, nautilus, then terminal + yazi."
+exit 1
diff --git a/config/hypr/scripts/LaunchTerminal.sh b/config/hypr/scripts/LaunchTerminal.sh
new file mode 100755
index 00000000..8992a40d
--- /dev/null
+++ b/config/hypr/scripts/LaunchTerminal.sh
@@ -0,0 +1,160 @@
+#!/usr/bin/env bash
+# ==================================================
+# KoolDots (2026)
+# Project URL: https://github.com/LinuxBeginnings
+# License: GNU GPLv3
+# SPDX-License-Identifier: GPL-3.0-or-later
+# ==================================================
+# Launch preferred terminal with fallback handling.
+# Usage:
+# LaunchTerminal.sh "<preferred-terminal-cmd>" [payload-command]
+# Examples:
+# LaunchTerminal.sh "kitty"
+# LaunchTerminal.sh "ghostty" "yazi"
+
+set -u
+
+notify_msg() {
+ local urgency="${1:-normal}"
+ local body="${2:-}"
+ if command -v notify-send >/dev/null 2>&1; then
+ notify-send -u "$urgency" "KooL Launchers" "$body"
+ fi
+}
+
+trim() {
+ local value="${1:-}"
+ value="${value#"${value%%[![:space:]]*}"}"
+ value="${value%"${value##*[![:space:]]}"}"
+ printf '%s' "$value"
+}
+
+shell_quote() {
+ local value="${1:-}"
+ printf "'%s'" "${value//\'/\'\\\'\'}"
+}
+
+command_bin_from_string() {
+ local cmd
+ cmd="$(trim "${1:-}")"
+ [[ -n "$cmd" ]] || return 1
+ (
+ eval "set -- $cmd"
+ printf '%s' "${1:-}"
+ ) 2>/dev/null
+}
+
+command_exists_from_string() {
+ local bin
+ bin="$(command_bin_from_string "${1:-}" 2>/dev/null || true)"
+ [[ -n "$bin" ]] || return 1
+ command -v "$bin" >/dev/null 2>&1
+}
+
+launch_command_string() {
+ local cmd
+ cmd="$(trim "${1:-}")"
+ [[ -n "$cmd" ]] || return 1
+
+ if ! command_exists_from_string "$cmd"; then
+ return 127
+ fi
+
+ (
+ eval "exec $cmd"
+ ) >/dev/null 2>&1 &
+ local pid=$!
+
+ sleep 0.35
+ if kill -0 "$pid" >/dev/null 2>&1; then
+ disown "$pid" >/dev/null 2>&1 || true
+ return 0
+ fi
+
+ wait "$pid"
+ local rc=$?
+ [[ $rc -eq 0 ]]
+}
+
+build_terminal_command() {
+ local term_cmd payload bin q_payload
+ term_cmd="$(trim "${1:-}")"
+ payload="$(trim "${2:-}")"
+
+ if [[ -z "$payload" ]]; then
+ printf '%s' "$term_cmd"
+ return 0
+ fi
+
+ bin="$(command_bin_from_string "$term_cmd" 2>/dev/null || true)"
+ q_payload="$(shell_quote "$payload")"
+
+ case "$bin" in
+ gnome-terminal)
+ printf '%s -- %s' "$term_cmd" "$q_payload"
+ ;;
+ wezterm)
+ case "$term_cmd" in
+ *" start "* | "wezterm start")
+ printf '%s -- %s' "$term_cmd" "$q_payload"
+ ;;
+ *)
+ printf '%s start -- %s' "$term_cmd" "$q_payload"
+ ;;
+ esac
+ ;;
+ *)
+ printf '%s -e %s' "$term_cmd" "$q_payload"
+ ;;
+ esac
+}
+
+append_unique_candidate() {
+ local candidate
+ candidate="$(trim "${1:-}")"
+ [[ -n "$candidate" ]] || return 0
+ local existing
+ for existing in "${CANDIDATES[@]}"; do
+ [[ "$existing" == "$candidate" ]] && return 0
+ done
+ CANDIDATES+=("$candidate")
+}
+
+preferred_term="$(trim "${1:-${TERMINAL:-}}")"
+payload_cmd="$(trim "${2:-}")"
+
+declare -a CANDIDATES=()
+append_unique_candidate "$preferred_term"
+append_unique_candidate "kitty"
+append_unique_candidate "ghostty"
+append_unique_candidate "alacritty"
+append_unique_candidate "wezterm"
+append_unique_candidate "konsole"
+append_unique_candidate "gnome-terminal"
+
+reported_preferred_issue=0
+candidate_cmd=""
+
+for candidate in "${CANDIDATES[@]}"; do
+ candidate_cmd="$(build_terminal_command "$candidate" "$payload_cmd")"
+ if launch_command_string "$candidate_cmd"; then
+ exit 0
+ fi
+
+ if [[ $reported_preferred_issue -eq 0 && -n "$preferred_term" && "$candidate" == "$preferred_term" ]]; then
+ if ! command_exists_from_string "$preferred_term"; then
+ notify_msg normal "Preferred terminal '$preferred_term' is not installed. Falling back."
+ else
+ notify_msg normal "Preferred terminal '$preferred_term' failed to launch. Falling back."
+ fi
+ reported_preferred_issue=1
+ fi
+done
+
+if [[ -n "$payload_cmd" ]]; then
+ notify_msg critical "Unable to launch terminal for command '$payload_cmd'."
+else
+ notify_msg critical "Unable to launch terminal. Install one of: kitty, ghostty, alacritty, wezterm, konsole, gnome-terminal."
+fi
+
+exit 1
diff --git a/config/hypr/scripts/LaunchThunar.sh b/config/hypr/scripts/LaunchThunar.sh
new file mode 100755
index 00000000..08ff911e
--- /dev/null
+++ b/config/hypr/scripts/LaunchThunar.sh
@@ -0,0 +1,50 @@
+#!/usr/bin/env bash
+# ==================================================
+# KoolDots (2026)
+# Project URL: https://github.com/LinuxBeginnings
+# License: GNU GPLv3
+# SPDX-License-Identifier: GPL-3.0-or-later
+# ==================================================
+#
+# Launch Thunar reliably from Hyprland keybinds.
+
+runtime="${XDG_RUNTIME_DIR:-/run/user/$(id -u)}"
+
+if [ -z "${WAYLAND_DISPLAY:-}" ]; then
+ for sock in "$runtime"/wayland-[0-9]*; do
+ [ -S "$sock" ] || continue
+ case "$(basename "$sock")" in
+ *awww*) continue ;;
+ esac
+ export WAYLAND_DISPLAY="$(basename "$sock")"
+ break
+ done
+fi
+
+if [ -z "${DISPLAY:-}" ] && [ -n "${WAYLAND_DISPLAY:-}" ]; then
+ export DISPLAY=:1
+fi
+
+# If a stale daemon exists with no visible windows, restart it.
+if pgrep -x thunar >/dev/null 2>&1; then
+ if command -v hyprctl >/dev/null 2>&1; then
+ if ! python3 - <<'PY'
+import json
+import subprocess
+import sys
+
+try:
+ clients = json.loads(subprocess.check_output(["hyprctl", "clients", "-j"], text=True))
+except Exception:
+ sys.exit(0)
+
+sys.exit(0 if any((c.get("class") or "").lower() == "thunar" for c in clients) else 1)
+PY
+ then
+ thunar --quit >/dev/null 2>&1 || pkill -x thunar >/dev/null 2>&1 || true
+ sleep 0.2
+ fi
+ fi
+fi
+
+exec thunar "$HOME"
diff --git a/config/hypr/scripts/LayoutKeybindDispatch.sh b/config/hypr/scripts/LayoutKeybindDispatch.sh
new file mode 100755
index 00000000..48d3a1c5
--- /dev/null
+++ b/config/hypr/scripts/LayoutKeybindDispatch.sh
@@ -0,0 +1,219 @@
+#!/usr/bin/env bash
+# ==================================================
+# KoolDots (2026)
+# Project URL: https://github.com/LinuxBeginnings
+# License: GNU GPLv3
+# SPDX-License-Identifier: GPL-3.0-or-later
+# ==================================================
+# Dispatch layout-sensitive navigation actions per active workspace.
+# This keeps SUPER+J/K and SUPER+arrow behavior aligned with workspace rules.
+
+set -u
+
+if ! command -v hyprctl >/dev/null 2>&1; then
+ exit 0
+fi
+
+LUA_CYCLE_SCRIPT="${XDG_CONFIG_HOME:-$HOME/.config}/hypr/scripts/LuaCycleWindow.sh"
+
+normalize_layout() {
+ case "$1" in
+ master | dwindle | scrolling | monocle)
+ printf '%s\n' "$1"
+ ;;
+ *)
+ printf '\n'
+ ;;
+ esac
+}
+
+get_active_layout() {
+ local layout
+
+ layout="$(hyprctl -j activeworkspace 2>/dev/null | jq -r '.tiledLayout // .tiled_layout // .layout // empty' 2>/dev/null || true)"
+ layout="$(normalize_layout "$layout")"
+
+ if [[ -z "$layout" ]]; then
+ layout="$(hyprctl -j getoption general:layout 2>/dev/null | jq -r '.str // empty' 2>/dev/null || true)"
+ layout="$(normalize_layout "$layout")"
+ fi
+
+ if [[ -z "$layout" ]]; then
+ layout="dwindle"
+ fi
+
+ printf '%s\n' "$layout"
+}
+
+dispatch_quiet() {
+ local dispatcher="$1"
+ shift || true
+ if (($# > 0)); then
+ hyprctl dispatch "$dispatcher" "$@" >/dev/null 2>&1 || true
+ else
+ hyprctl dispatch "$dispatcher" >/dev/null 2>&1 || true
+ fi
+}
+
+get_active_window_address() {
+ if ! command -v jq >/dev/null 2>&1; then
+ printf '\n'
+ return 0
+ fi
+ hyprctl -j activewindow 2>/dev/null | jq -r '.address // empty' 2>/dev/null || true
+}
+
+dispatch_changed_focus() {
+ local before after dispatcher="$1"
+ shift || true
+ before="$(get_active_window_address)"
+ dispatch_quiet "$dispatcher" "$@"
+ after="$(get_active_window_address)"
+ [[ -n "$before" && -n "$after" && "$before" != "$after" ]]
+}
+
+direction_word() {
+ case "$1" in
+ l | left) printf 'left\n' ;;
+ r | right) printf 'right\n' ;;
+ u | up) printf 'up\n' ;;
+ d | down) printf 'down\n' ;;
+ *) printf 'right\n' ;;
+ esac
+}
+
+dispatch_lua_focus() {
+ local dir_word
+ dir_word="$(direction_word "$1")"
+ hyprctl dispatch "hl.dsp.focus({ direction = \"$dir_word\" })" >/dev/null 2>&1 || true
+}
+
+cycle_lua() {
+ local mode="${1:-next}"
+ if [[ -x "$LUA_CYCLE_SCRIPT" ]]; then
+ "$LUA_CYCLE_SCRIPT" "$mode" >/dev/null 2>&1 || true
+ return 0
+ fi
+ case "$mode" in
+ previous | prev | back) dispatch_lua_focus left ;;
+ *) dispatch_lua_focus right ;;
+ esac
+}
+
+cycle_next() {
+ local layout="$1"
+ case "$layout" in
+ scrolling)
+ if ! dispatch_changed_focus layoutmsg "focus r"; then
+ dispatch_lua_focus right
+ fi
+ ;;
+ monocle)
+ if ! dispatch_changed_focus layoutmsg cyclenext; then
+ cycle_lua next
+ fi
+ ;;
+ *)
+ if ! dispatch_changed_focus cyclenext; then
+ cycle_lua next
+ fi
+ ;;
+ esac
+}
+
+cycle_prev() {
+ local layout="$1"
+ case "$layout" in
+ scrolling)
+ if ! dispatch_changed_focus layoutmsg "focus l"; then
+ dispatch_lua_focus left
+ fi
+ ;;
+ monocle)
+ if ! dispatch_changed_focus layoutmsg cycleprev; then
+ cycle_lua previous
+ fi
+ ;;
+ *)
+ if ! dispatch_changed_focus cyclenext prev; then
+ cycle_lua previous
+ fi
+ ;;
+ esac
+}
+
+focus_by_layout() {
+ local layout="$1"
+ local direction="$2"
+
+ case "$layout" in
+ master)
+ if ! dispatch_changed_focus movefocus "$direction"; then
+ dispatch_lua_focus "$direction"
+ fi
+ ;;
+ monocle)
+ case "$direction" in
+ l | u) cycle_prev "$layout" ;;
+ *) cycle_next "$layout" ;;
+ esac
+ ;;
+ dwindle | scrolling)
+ case "$direction" in
+ l | u)
+ if [[ "$layout" == "scrolling" ]]; then
+ if ! dispatch_changed_focus layoutmsg "focus $direction"; then
+ dispatch_lua_focus "$direction"
+ fi
+ else
+ cycle_prev "$layout"
+ fi
+ ;;
+ *)
+ if [[ "$layout" == "scrolling" ]]; then
+ if ! dispatch_changed_focus layoutmsg "focus $direction"; then
+ dispatch_lua_focus "$direction"
+ fi
+ else
+ cycle_next "$layout"
+ fi
+ ;;
+ esac
+ ;;
+ *)
+ if ! dispatch_changed_focus movefocus "$direction"; then
+ dispatch_lua_focus "$direction"
+ fi
+ ;;
+ esac
+}
+
+layout="$(get_active_layout)"
+
+case "${1:-}" in
+cycle-next | next)
+ cycle_next "$layout"
+ ;;
+cycle-prev | prev | previous)
+ cycle_prev "$layout"
+ ;;
+focus-left | left)
+ focus_by_layout "$layout" l
+ ;;
+focus-right | right)
+ focus_by_layout "$layout" r
+ ;;
+focus-up | up)
+ focus_by_layout "$layout" u
+ ;;
+focus-down | down)
+ focus_by_layout "$layout" d
+ ;;
+layout | current-layout | status)
+ printf '%s\n' "$layout"
+ ;;
+*)
+ echo "Usage: $(basename "$0") [cycle-next|cycle-prev|focus-left|focus-right|focus-up|focus-down|layout]" >&2
+ exit 1
+ ;;
+esac
diff --git a/config/hypr/scripts/LockScreen.sh b/config/hypr/scripts/LockScreen.sh
index b795a8f7..c63a1e90 100755
--- a/config/hypr/scripts/LockScreen.sh
+++ b/config/hypr/scripts/LockScreen.sh
@@ -10,7 +10,7 @@
#pidof hyprlock || hyprlock -q
# Ensure weather cache is up-to-date before locking (Waybar/lockscreen readers)
-bash "$HOME/.config/hypr/UserScripts/WeatherWrap.sh" >/dev/null 2>&1 &
+bash "${XDG_CONFIG_HOME:-$HOME/.config}/hypr/UserScripts/WeatherWrap.sh" >/dev/null 2>&1 &
loginctl lock-session
diff --git a/config/hypr/scripts/LuaAutoReload.sh b/config/hypr/scripts/LuaAutoReload.sh
index 4a9d5040..128c1fc9 100755
--- a/config/hypr/scripts/LuaAutoReload.sh
+++ b/config/hypr/scripts/LuaAutoReload.sh
@@ -9,8 +9,23 @@
set -euo pipefail
-watch_root="$HOME/.config/hypr"
+watch_root="${XDG_CONFIG_HOME:-$HOME/.config}/hypr"
[ -d "$watch_root" ] || exit 0
+session="${HYPRLAND_INSTANCE_SIGNATURE:-default}"
+pid_file="/tmp/hypr-lua-autoreload-${session}.pid"
+
+if [ -f "$pid_file" ]; then
+ existing_pid="$(cat "$pid_file" 2>/dev/null || true)"
+ if [ -n "$existing_pid" ] && kill -0 "$existing_pid" 2>/dev/null; then
+ exit 0
+ fi
+fi
+
+echo "$$" >"$pid_file"
+cleanup() {
+ rm -f "$pid_file"
+}
+trap cleanup EXIT INT TERM
reload_hypr() {
hyprctl reload >/dev/null 2>&1 || true
diff --git a/config/hypr/scripts/MediaCtrl.sh b/config/hypr/scripts/MediaCtrl.sh
index aeabcac9..958543dc 100755
--- a/config/hypr/scripts/MediaCtrl.sh
+++ b/config/hypr/scripts/MediaCtrl.sh
@@ -7,7 +7,7 @@
# ==================================================
# Playerctl
-music_icon="$HOME/.config/swaync/icons/music.png"
+music_icon="${XDG_CONFIG_HOME:-$HOME/.config}/swaync/icons/music.png"
# Play the next track
play_next() {
diff --git a/config/hypr/scripts/MonitorProfiles.sh b/config/hypr/scripts/MonitorProfiles.sh
index 6330d45c..09467e76 100755
--- a/config/hypr/scripts/MonitorProfiles.sh
+++ b/config/hypr/scripts/MonitorProfiles.sh
@@ -13,7 +13,7 @@ if pidof rofi > /dev/null; then
fi
# Detect active Hyprland config mode (Lua entrypoint vs legacy .conf includes)
-config_home="${XDG_CONFIG_HOME:-$HOME/.config}"
+config_home="${XDG_CONFIG_HOME:-${XDG_CONFIG_HOME:-$HOME/.config}}"
hypr_dir="$config_home/hypr"
lua_entry="$hypr_dir/hyprland.lua"
legacy_lua_entry="$config_home/hyprland.lua"
@@ -35,22 +35,22 @@ if [[ -z "$hypr_config_mode" ]]; then
fi
# Variables
-iDIR="$HOME/.config/swaync/images"
-SCRIPTSDIR="$HOME/.config/hypr/scripts"
-monitor_dir="$HOME/.config/hypr/Monitor_Profiles"
-target_conf="$HOME/.config/hypr/monitors.conf"
-target_lua_user="$HOME/.config/hypr/UserConfigs/monitors.lua"
-target_lua_legacy="$HOME/.config/hypr/lua/monitors.lua"
-rofi_theme="$HOME/.config/rofi/config-Monitors.rasi"
+iDIR="${XDG_CONFIG_HOME:-$HOME/.config}/swaync/images"
+SCRIPTSDIR="${XDG_CONFIG_HOME:-$HOME/.config}/hypr/scripts"
+monitor_dir="${XDG_CONFIG_HOME:-$HOME/.config}/hypr/Monitor_Profiles"
+target_conf="${XDG_CONFIG_HOME:-$HOME/.config}/hypr/monitors.conf"
+target_lua_user="${XDG_CONFIG_HOME:-$HOME/.config}/hypr/UserConfigs/monitors.lua"
+target_lua_legacy="${XDG_CONFIG_HOME:-$HOME/.config}/hypr/lua/monitors.lua"
+rofi_theme="${XDG_CONFIG_HOME:-$HOME/.config}/rofi/config-Monitors.rasi"
if [[ "$hypr_config_mode" == "lua" ]]; then
profile_ext="lua"
target="$target_lua_user"
- msg="❗NOTE:❗ This will overwrite $HOME/.config/hypr/UserConfigs/monitors.lua"
+ msg="❗NOTE:❗ This will overwrite ${XDG_CONFIG_HOME:-$HOME/.config}/hypr/UserConfigs/monitors.lua"
else
profile_ext="conf"
target="$target_conf"
- msg="❗NOTE:❗ This will overwrite $HOME/.config/hypr/monitors.conf"
+ msg="❗NOTE:❗ This will overwrite ${XDG_CONFIG_HOME:-$HOME/.config}/hypr/monitors.conf"
fi
# Define the list of files to ignore
diff --git a/config/hypr/scripts/OverviewToggle.sh b/config/hypr/scripts/OverviewToggle.sh
index 456ccef1..7c55ae82 100755
--- a/config/hypr/scripts/OverviewToggle.sh
+++ b/config/hypr/scripts/OverviewToggle.sh
@@ -9,7 +9,7 @@
set -euo pipefail
-QS_OVERVIEW_DIR="${XDG_CONFIG_HOME:-$HOME/.config}/quickshell/overview"
+QS_OVERVIEW_DIR="${XDG_CONFIG_HOME:-${XDG_CONFIG_HOME:-$HOME/.config}}/quickshell/overview"
# 1) Prefer Quickshell when installed and configured
if command -v qs >/dev/null 2>&1 && [ -d "$QS_OVERVIEW_DIR" ]; then
diff --git a/config/hypr/scripts/PersistWorkspaceLayout.sh b/config/hypr/scripts/PersistWorkspaceLayout.sh
new file mode 100755
index 00000000..b5745880
--- /dev/null
+++ b/config/hypr/scripts/PersistWorkspaceLayout.sh
@@ -0,0 +1,223 @@
+#!/usr/bin/env bash
+# ==================================================
+# KoolDots (2026)
+# Project URL: https://github.com/LinuxBeginnings
+# License: GNU GPLv3
+# SPDX-License-Identifier: GPL-3.0-or-later
+# ==================================================
+# Persist active monitor/workspace layout back into ~/.config/hypr/workspaces.conf.
+
+set -u
+
+quiet_mode=0
+layout_override=""
+workspace_override=""
+monitor_override=""
+workspaces_file="${XDG_CONFIG_HOME:-$HOME/.config}/hypr/workspaces.conf"
+
+usage() {
+ cat <<'EOF'
+Usage: PersistWorkspaceLayout.sh [--quiet] [--layout <layout>] [--workspace <selector>] [--monitor <monitor>] [--file <path>]
+ --quiet Suppress console notifications.
+ --layout <layout> Override layout (master|dwindle|scrolling|monocle).
+ --workspace <sel> Override workspace selector (e.g. 5, name:code, special:scratchpad).
+ --monitor <name> Override monitor name.
+ --file <path> Target workspace rules file (default: ~/.config/hypr/workspaces.conf).
+EOF
+}
+
+normalize_layout() {
+ case "$1" in
+ master | dwindle | scrolling | monocle)
+ printf '%s\n' "$1"
+ ;;
+ *)
+ printf '\n'
+ ;;
+ esac
+}
+
+require_cmd() {
+ command -v "$1" >/dev/null 2>&1 || {
+ echo "Missing dependency: $1" >&2
+ exit 1
+ }
+}
+
+get_active_workspace_json() {
+ hyprctl -j activeworkspace 2>/dev/null || printf '{}'
+}
+
+get_workspace_selector() {
+ local ws_json="$1"
+ local ws_id ws_name
+
+ ws_id="$(jq -r '.id // empty' <<<"$ws_json" 2>/dev/null || true)"
+ ws_name="$(jq -r '.name // empty' <<<"$ws_json" 2>/dev/null || true)"
+
+ if [[ "$ws_id" =~ ^[0-9]+$ ]] && ((ws_id > 0)); then
+ printf '%s\n' "$ws_id"
+ return 0
+ fi
+
+ if [[ -n "$ws_name" && "$ws_name" != "null" ]]; then
+ if [[ "$ws_name" == name:* || "$ws_name" == special:* ]]; then
+ printf '%s\n' "$ws_name"
+ else
+ printf 'name:%s\n' "$ws_name"
+ fi
+ return 0
+ fi
+
+ return 1
+}
+
+while [[ $# -gt 0 ]]; do
+ case "$1" in
+ --quiet | --no-notify)
+ quiet_mode=1
+ shift
+ ;;
+ --layout)
+ layout_override="${2:-}"
+ shift 2
+ ;;
+ --workspace)
+ workspace_override="${2:-}"
+ shift 2
+ ;;
+ --monitor)
+ monitor_override="${2:-}"
+ shift 2
+ ;;
+ --file)
+ workspaces_file="${2:-}"
+ shift 2
+ ;;
+ -h | --help)
+ usage
+ exit 0
+ ;;
+ *)
+ echo "Unknown argument: $1" >&2
+ usage >&2
+ exit 1
+ ;;
+ esac
+done
+
+require_cmd hyprctl
+require_cmd jq
+require_cmd awk
+require_cmd mktemp
+
+ws_json="$(get_active_workspace_json)"
+workspace_selector="${workspace_override:-$(get_workspace_selector "$ws_json" || true)}"
+monitor_name="${monitor_override:-$(jq -r '.monitor // empty' <<<"$ws_json" 2>/dev/null || true)}"
+
+if [[ -n "$layout_override" ]]; then
+ layout_name="$(normalize_layout "$layout_override")"
+else
+ layout_name="$(jq -r '.tiledLayout // .tiled_layout // empty' <<<"$ws_json" 2>/dev/null || true)"
+ layout_name="$(normalize_layout "$layout_name")"
+ if [[ -z "$layout_name" ]]; then
+ layout_name="$(hyprctl -j getoption general:layout 2>/dev/null | jq -r '.str // empty' 2>/dev/null || true)"
+ layout_name="$(normalize_layout "$layout_name")"
+ fi
+fi
+
+if [[ -z "$workspace_selector" || -z "$monitor_name" || -z "$layout_name" ]]; then
+ echo "Unable to resolve workspace, monitor, or layout for persistence" >&2
+ exit 1
+fi
+
+mkdir -p "$(dirname "$workspaces_file")"
+touch "$workspaces_file"
+
+tmp_file="$(mktemp "${workspaces_file}.XXXXXX")"
+cleanup() {
+ rm -f "$tmp_file"
+}
+trap cleanup EXIT
+
+awk \
+ -v target_ws="$workspace_selector" \
+ -v target_mon="$monitor_name" \
+ -v target_layout="$layout_name" '
+function trim(v) {
+ gsub(/^[[:space:]]+|[[:space:]]+$/, "", v)
+ return v
+}
+BEGIN {
+ updated = 0
+}
+{
+ line = $0
+ content = line
+ comment = ""
+ hash_pos = index(line, "#")
+ if (hash_pos > 0) {
+ content = substr(line, 1, hash_pos - 1)
+ comment = substr(line, hash_pos)
+ }
+ stripped = trim(content)
+ indent_len = match(line, /[^[:space:]]/) - 1
+ if (indent_len < 0) {
+ indent_len = length(line)
+ }
+ indent = substr(line, 1, indent_len)
+
+ if (stripped ~ /^workspace[[:space:]]*=/) {
+ sub(/^workspace[[:space:]]*=[[:space:]]*/, "", stripped)
+ token_count = split(stripped, tokens, /,/)
+ ws = trim(tokens[1])
+ mon = ""
+ extras_count = 0
+ delete extras
+
+ for (i = 2; i <= token_count; i++) {
+ token = trim(tokens[i])
+ if (token == "") {
+ continue
+ }
+ if (token ~ /^monitor:/) {
+ mon = trim(substr(token, 9))
+ continue
+ }
+ if (token ~ /^layout:/) {
+ continue
+ }
+ extras[++extras_count] = token
+ }
+
+ if (ws == target_ws && mon == target_mon) {
+ if (!updated) {
+ rebuilt = indent "workspace = " ws ", monitor:" target_mon ", layout:" target_layout
+ for (i = 1; i <= extras_count; i++) {
+ rebuilt = rebuilt ", " extras[i]
+ }
+ if (comment != "") {
+ rebuilt = rebuilt " " comment
+ }
+ print rebuilt
+ updated = 1
+ }
+ next
+ }
+ }
+
+ print line
+}
+END {
+ if (!updated) {
+ print "workspace = " target_ws ", monitor:" target_mon ", layout:" target_layout
+ }
+}
+' "$workspaces_file" >"$tmp_file"
+
+mv "$tmp_file" "$workspaces_file"
+trap - EXIT
+
+if [[ "$quiet_mode" -eq 0 ]]; then
+ printf 'Saved workspace layout: %s @ %s -> %s\n' "$workspace_selector" "$monitor_name" "$layout_name"
+fi
diff --git a/config/hypr/scripts/Polkit-Diag.sh b/config/hypr/scripts/Polkit-Diag.sh
index aa4e69a8..8e0e9f23 100755
--- a/config/hypr/scripts/Polkit-Diag.sh
+++ b/config/hypr/scripts/Polkit-Diag.sh
@@ -15,7 +15,7 @@ INSTALL_OVERRIDE=0
FORCE_OVERRIDE=0
# Systemd override details for hyprpolkitagent
-OVERRIDE_DIR="$HOME/.config/systemd/user/hyprpolkitagent.service.d"
+OVERRIDE_DIR="${XDG_CONFIG_HOME:-$HOME/.config}/systemd/user/hyprpolkitagent.service.d"
OVERRIDE_FILE="$OVERRIDE_DIR/override.conf"
OVERRIDE_CONTENT="[Unit]
diff --git a/config/hypr/scripts/PortalHyprland.sh b/config/hypr/scripts/PortalHyprland.sh
index 3d3dc410..54ea71bb 100755
--- a/config/hypr/scripts/PortalHyprland.sh
+++ b/config/hypr/scripts/PortalHyprland.sh
@@ -10,21 +10,73 @@
set -euo pipefail
is_ubuntu_family() {
if [[ ! -r /etc/os-release ]]; then
- return 1
+ #return 1
+ # It's been reported this also addresses
+ # The xdg-desktop-portal failure when not using
+ # UWSM on Arch
+ exit 0
fi
# shellcheck disable=SC1091
. /etc/os-release
- [[ "${ID:-}" == "ubuntu" \
- || "${ID:-}" == "linuxmint" \
- || "${ID:-}" == "zorin" \
- || "${ID:-}" == "rhino" \
- || "${ID_LIKE:-}" == *ubuntu* ]]
+ [[ "${ID:-}" == "ubuntu" ||
+ "${ID:-}" == "linuxmint" ||
+ "${ID:-}" == "zorin" ||
+ "${ID:-}" == "rhino" ||
+ "${ID_LIKE:-}" == *ubuntu* ]]
}
kill_quietly() {
killall -q "$1" 2>/dev/null || true
}
+wait_for_wayland() {
+ local runtime_dir="${XDG_RUNTIME_DIR:-/run/user/$(id -u)}"
+ export XDG_RUNTIME_DIR="$runtime_dir"
+
+ if [[ -n "${WAYLAND_DISPLAY:-}" && -S "$runtime_dir/$WAYLAND_DISPLAY" ]]; then
+ return 0
+ fi
+
+ for _ in $(seq 1 120); do
+ if [[ -n "${WAYLAND_DISPLAY:-}" && -S "$runtime_dir/$WAYLAND_DISPLAY" ]]; then
+ return 0
+ fi
+
+ for socket in "$runtime_dir"/wayland-[0-9]*; do
+ [[ -S "$socket" ]] || continue
+ case "$(basename "$socket")" in
+ *awww*) continue ;;
+ esac
+ export WAYLAND_DISPLAY="$(basename "$socket")"
+ return 0
+ done
+ sleep 0.1
+ done
+
+ return 1
+}
+
+ensure_portal_env() {
+ export XDG_CURRENT_DESKTOP="${XDG_CURRENT_DESKTOP:-Hyprland}"
+ export XDG_SESSION_DESKTOP="${XDG_SESSION_DESKTOP:-Hyprland}"
+ export XDG_SESSION_TYPE="${XDG_SESSION_TYPE:-wayland}"
+ if [[ -f "/usr/share/glib-2.0/schemas/gschemas.compiled" ]]; then
+ export GSETTINGS_SCHEMA_DIR="/usr/share/glib-2.0/schemas"
+ fi
+
+ local data_dirs="${XDG_DATA_DIRS:-}"
+ if [[ -z "$data_dirs" ]]; then
+ data_dirs="/usr/local/share:/usr/share"
+ else
+ if [[ ":$data_dirs:" != *":/usr/local/share:"* ]]; then
+ data_dirs="/usr/local/share:$data_dirs"
+ fi
+ if [[ ":$data_dirs:" != *":/usr/share:"* ]]; then
+ data_dirs="$data_dirs:/usr/share"
+ fi
+ fi
+ export XDG_DATA_DIRS="$data_dirs"
+}
start_portal_binary() {
local description="$1"
@@ -38,29 +90,74 @@ start_portal_binary() {
echo "Warning: no $description binary found (checked: $*)" >&2
return 1
}
-if ! is_ubuntu_family; then
- exit 0
-fi
+stop_portal_processes() {
+ kill_quietly xdg-desktop-portal-hyprland
+ kill_quietly xdg-desktop-portal-wlr
+ kill_quietly xdg-desktop-portal-gnome
+ kill_quietly xdg-desktop-portal-gtk
+ kill_quietly xdg-desktop-portal
+}
+
+restart_portal_via_systemd() {
+ command -v systemctl >/dev/null 2>&1 || return 1
+ ensure_portal_env
+ if command -v dbus-update-activation-environment >/dev/null 2>&1; then
+ dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP XDG_SESSION_DESKTOP XDG_SESSION_TYPE XDG_DATA_DIRS GSETTINGS_SCHEMA_DIR >/dev/null 2>&1 || true
+ fi
+
+ systemctl --user import-environment WAYLAND_DISPLAY XDG_CURRENT_DESKTOP XDG_SESSION_DESKTOP XDG_SESSION_TYPE XDG_DATA_DIRS GSETTINGS_SCHEMA_DIR >/dev/null 2>&1 || true
+ systemctl --user stop xdg-desktop-portal.service xdg-desktop-portal-hyprland.service xdg-desktop-portal-gtk.service >/dev/null 2>&1 || true
+ stop_portal_processes
+ sleep 0.5
+ systemctl --user reset-failed xdg-desktop-portal-hyprland.service xdg-desktop-portal.service xdg-desktop-portal-gtk.service >/dev/null 2>&1 || true
+ systemctl --user start graphical-session.target >/dev/null 2>&1 || true
+
+ for _ in $(seq 1 30); do
+ if systemctl --user is-active --quiet graphical-session.target; then
+ break
+ fi
+ sleep 0.1
+ done
+
+ systemctl --user start xdg-desktop-portal-hyprland.service >/dev/null 2>&1 || true
+ if is_ubuntu_family; then
+ systemctl --user start xdg-desktop-portal-gtk.service >/dev/null 2>&1 || true
+ fi
-sleep 1
-kill_quietly xdg-desktop-portal-hyprland
-kill_quietly xdg-desktop-portal-wlr
-kill_quietly xdg-desktop-portal-gnome
-kill_quietly xdg-desktop-portal-gtk
-kill_quietly xdg-desktop-portal
-sleep 1
+ for _ in $(seq 1 60); do
+ if systemctl --user is-active --quiet xdg-desktop-portal-hyprland.service; then
+ return 0
+ fi
+ sleep 0.1
+ done
+ return 1
+}
-start_portal_binary "xdg-desktop-portal-hyprland" \
- /usr/lib/xdg-desktop-portal-hyprland \
- /usr/libexec/xdg-desktop-portal-hyprland
+restart_portal_manually() {
+ sleep 1
+ stop_portal_processes
+ sleep 1
-sleep 2
+ start_portal_binary "xdg-desktop-portal-hyprland" \
+ /usr/lib/xdg-desktop-portal-hyprland \
+ /usr/libexec/xdg-desktop-portal-hyprland
-start_portal_binary "xdg-desktop-portal-gtk" \
- /usr/lib/xdg-desktop-portal-gtk \
- /usr/libexec/xdg-desktop-portal-gtk
+ sleep 2
-start_portal_binary "xdg-desktop-portal" \
- /usr/lib/xdg-desktop-portal \
- /usr/libexec/xdg-desktop-portal
+ if is_ubuntu_family; then
+ start_portal_binary "xdg-desktop-portal-gtk" \
+ /usr/lib/xdg-desktop-portal-gtk \
+ /usr/libexec/xdg-desktop-portal-gtk || true
+ fi
+
+ start_portal_binary "xdg-desktop-portal" \
+ /usr/lib/xdg-desktop-portal \
+ /usr/libexec/xdg-desktop-portal
+}
+wait_for_wayland || true
+if command -v systemctl >/dev/null 2>&1; then
+ restart_portal_via_systemd || true
+else
+ restart_portal_manually
+fi
diff --git a/config/hypr/scripts/PortalHyprlandUbuntu.sh b/config/hypr/scripts/PortalHyprlandUbuntu.sh
index 86e1a6d3..79762a84 100755
--- a/config/hypr/scripts/PortalHyprlandUbuntu.sh
+++ b/config/hypr/scripts/PortalHyprlandUbuntu.sh
@@ -17,8 +17,8 @@ if [[ -r /etc/os-release ]]; then
|| "${ID:-}" == "zorin" \
|| "${ID:-}" == "rhino" \
|| "${ID_LIKE:-}" == *ubuntu* ]]; then
- if [[ -x "$HOME/.config/hypr/scripts/PortalHyprland.sh" ]]; then
- "$HOME/.config/hypr/scripts/PortalHyprland.sh"
+ if [[ -x "${XDG_CONFIG_HOME:-$HOME/.config}/hypr/scripts/PortalHyprland.sh" ]]; then
+ "${XDG_CONFIG_HOME:-$HOME/.config}/hypr/scripts/PortalHyprland.sh"
fi
fi
fi
diff --git a/config/hypr/scripts/Refresh.sh b/config/hypr/scripts/Refresh.sh
index 947b6bfc..ed8c4a0c 100755
--- a/config/hypr/scripts/Refresh.sh
+++ b/config/hypr/scripts/Refresh.sh
@@ -7,8 +7,8 @@
# ==================================================
# Scripts for refreshing ags, waybar, rofi, swaync, wallust
-SCRIPTSDIR=$HOME/.config/hypr/scripts
-UserScripts=$HOME/.config/hypr/UserScripts
+SCRIPTSDIR=${XDG_CONFIG_HOME:-$HOME/.config}/hypr/scripts
+UserScripts=${XDG_CONFIG_HOME:-$HOME/.config}/hypr/UserScripts
# Define file_exists function
file_exists() {
@@ -32,10 +32,10 @@ pkill -f 'waybar-cava\..*\.conf' 2>/dev/null || true
# quit ags & relaunch ags
-#ags -q && ags &
+ags -q && ags &
# quit quickshell & relaunch quickshell
-#pkill qs && qs &
+pkill qs && qs &
# some process to kill (exclude waybar to avoid restart loops)
for pid in $(pidof rofi swaync ags swaybg); do
diff --git a/config/hypr/scripts/RefreshNoWaybar.sh b/config/hypr/scripts/RefreshNoWaybar.sh
index f5d564ac..c9e7464e 100755
--- a/config/hypr/scripts/RefreshNoWaybar.sh
+++ b/config/hypr/scripts/RefreshNoWaybar.sh
@@ -10,8 +10,8 @@
# Used by automatic wallpaper change
# Modified inorder to refresh rofi background, Wallust, SwayNC only
-SCRIPTSDIR=$HOME/.config/hypr/scripts
-UserScripts=$HOME/.config/hypr/UserScripts
+SCRIPTSDIR=${XDG_CONFIG_HOME:-$HOME/.config}/hypr/scripts
+UserScripts=${XDG_CONFIG_HOME:-$HOME/.config}/hypr/UserScripts
# Define file_exists function
file_exists() {
@@ -31,10 +31,10 @@ for _prs in "${_ps[@]}"; do
done
# quit ags & relaunch ags
-#ags -q && ags &
+ags -q && ags &
# quit quickshell & relaunch quickshell
-#pkill qs && qs &
+pkill qs && qs &
# reload swaync
diff --git a/config/hypr/scripts/RofiEmoji.sh b/config/hypr/scripts/RofiEmoji.sh
index 539a03b6..65463abc 100755
--- a/config/hypr/scripts/RofiEmoji.sh
+++ b/config/hypr/scripts/RofiEmoji.sh
@@ -7,7 +7,7 @@
# ==================================================
# Variables
-rofi_theme="$HOME/.config/rofi/config-emoji.rasi"
+rofi_theme="${XDG_CONFIG_HOME:-$HOME/.config}/rofi/config-emoji.rasi"
msg='** note ** 👀 Click or Return to choose || Ctrl V to Paste'
# Check if rofi is already running
diff --git a/config/hypr/scripts/RofiFocusedWallpaperLink.sh b/config/hypr/scripts/RofiFocusedWallpaperLink.sh
new file mode 100755
index 00000000..c0f8d64a
--- /dev/null
+++ b/config/hypr/scripts/RofiFocusedWallpaperLink.sh
@@ -0,0 +1,180 @@
+#!/usr/bin/env bash
+# ==================================================
+# KoolDots (2026)
+# Project URL: https://github.com/LinuxBeginnings
+# License: GNU GPLv3
+# SPDX-License-Identifier: GPL-3.0-or-later
+# ==================================================
+# Resolve focused-monitor wallpaper and refresh rofi focused wallpaper link.
+
+SCRIPTSDIR="${XDG_CONFIG_HOME:-$HOME/.config}/hypr/scripts"
+ROFI_FOCUSED_LINK="${XDG_CONFIG_HOME:-$HOME/.config}/rofi/.current_wallpaper_focused"
+ROFI_GLOBAL_LINK="${XDG_CONFIG_HOME:-$HOME/.config}/rofi/.current_wallpaper"
+WALLPAPER_CURRENT="${XDG_CONFIG_HOME:-$HOME/.config}/hypr/wallpaper_effects/.wallpaper_current"
+
+# shellcheck source=/dev/null
+. "$SCRIPTSDIR/WallpaperCmd.sh" 2>/dev/null || true
+
+read_cached_wallpaper() {
+ local cache_file="$1"
+ [[ -f "$cache_file" ]] || return 1
+ awk 'NF && $0 !~ /^filter/ {print; exit}' "$cache_file"
+}
+
+read_wallpaper_from_query() {
+ local monitor="$1"
+ [[ -n "$monitor" ]] || return 1
+ [[ -n "${WWW_CMD:-}" ]] || return 1
+ command -v "$WWW_CMD" >/dev/null 2>&1 || return 1
+ "$WWW_CMD" query 2>/dev/null | awk -v mon="$monitor" '
+ {
+ line=$0
+ sub(/^Monitor[[:space:]]+/, "", line)
+ sub(/^:[[:space:]]*/, "", line)
+ mon_name=line
+ sub(/:.*/, "", mon_name)
+ gsub(/^[[:space:]]+|[[:space:]]+$/, "", mon_name)
+ if (mon_name != mon) next
+
+ path=line
+ sub(/^.*image:[[:space:]]*/, "", path)
+ gsub(/^[[:space:]]+|[[:space:]]+$/, "", path)
+ if (path != line && length(path) > 0) {
+ print path
+ exit
+ }
+ }
+ '
+}
+
+resolve_link_or_file() {
+ local path="$1"
+ local resolved=""
+ if [[ -L "$path" ]]; then
+ resolved="$(readlink -f "$path" 2>/dev/null || true)"
+ if [[ -n "$resolved" && -f "$resolved" ]]; then
+ printf '%s\n' "$resolved"
+ return 0
+ fi
+ fi
+ if [[ -f "$path" ]]; then
+ printf '%s\n' "$path"
+ return 0
+ fi
+ return 1
+}
+
+get_active_workspace_monitor() {
+ command -v hyprctl >/dev/null 2>&1 || return 1
+ if command -v jq >/dev/null 2>&1; then
+ hyprctl activeworkspace -j 2>/dev/null | jq -r '.monitor // empty' | head -n1
+ else
+ hyprctl monitors 2>/dev/null | awk '/^Monitor/{name=$2} /focused: yes/{print name; exit}'
+ fi
+}
+
+get_focused_monitor() {
+ command -v hyprctl >/dev/null 2>&1 || return 1
+ if command -v jq >/dev/null 2>&1; then
+ hyprctl monitors -j 2>/dev/null | jq -r '.[] | select(.focused) | .name' | head -n1
+ else
+ hyprctl monitors 2>/dev/null | awk '/^Monitor/{name=$2} /focused: yes/{print name; exit}'
+ fi
+}
+
+monitor_exists() {
+ local monitor="$1"
+ [[ -n "$monitor" ]] || return 1
+ command -v hyprctl >/dev/null 2>&1 || return 1
+ if command -v jq >/dev/null 2>&1; then
+ hyprctl monitors -j 2>/dev/null | jq -r --arg mon "$monitor" '.[] | select(.name == $mon) | .name' | grep -qx "$monitor"
+ else
+ hyprctl monitors 2>/dev/null | awk '/^Monitor/{print $2}' | grep -qx "$monitor"
+ fi
+}
+
+resolve_target_monitor() {
+ local monitor=""
+ monitor="$(get_active_workspace_monitor 2>/dev/null || true)"
+ if monitor_exists "$monitor"; then
+ printf '%s\n' "$monitor"
+ return 0
+ fi
+ monitor="$(get_focused_monitor 2>/dev/null || true)"
+ if [[ -n "$monitor" ]]; then
+ printf '%s\n' "$monitor"
+ return 0
+ fi
+ return 1
+}
+
+read_wallpaper_from_cache() {
+ local monitor="$1"
+ local cache_root="${WWW_CACHE_DIR:-$HOME/.cache/awww}"
+ local cache_file="$cache_root/$monitor"
+ local fallback_cache=""
+ local path=""
+
+ case "$cache_root" in
+ "$HOME/.cache/awww")
+ fallback_cache="$HOME/.cache/swww/$monitor"
+ ;;
+ "$HOME/.cache/swww")
+ fallback_cache="$HOME/.cache/awww/$monitor"
+ ;;
+ esac
+
+ path="$(read_cached_wallpaper "$cache_file" 2>/dev/null || true)"
+ if [[ -z "$path" && -n "$fallback_cache" ]]; then
+ path="$(read_cached_wallpaper "$fallback_cache" 2>/dev/null || true)"
+ fi
+ [[ -n "$path" && -f "$path" ]] || return 1
+ printf '%s\n' "$path"
+}
+
+resolve_focused_wallpaper() {
+ local monitor="$1"
+ local path=""
+ local per_monitor_link=""
+ local per_monitor_current=""
+
+ if [[ -n "$monitor" ]]; then
+ per_monitor_link="${XDG_CONFIG_HOME:-$HOME/.config}/rofi/.current_wallpaper_${monitor}"
+ per_monitor_current="${XDG_CONFIG_HOME:-$HOME/.config}/hypr/wallpaper_effects/.wallpaper_current_${monitor}"
+
+ path="$(read_wallpaper_from_query "$monitor" 2>/dev/null || true)"
+ if [[ -z "$path" ]]; then
+ path="$(resolve_link_or_file "$per_monitor_link" 2>/dev/null || true)"
+ fi
+ if [[ -z "$path" ]]; then
+ path="$(resolve_link_or_file "$per_monitor_current" 2>/dev/null || true)"
+ fi
+ if [[ -z "$path" ]]; then
+ path="$(read_wallpaper_from_cache "$monitor" 2>/dev/null || true)"
+ fi
+ fi
+
+ if [[ -z "$path" ]]; then
+ path="$(resolve_link_or_file "$ROFI_GLOBAL_LINK" 2>/dev/null || true)"
+ fi
+ if [[ -z "$path" ]]; then
+ path="$(resolve_link_or_file "$WALLPAPER_CURRENT" 2>/dev/null || true)"
+ fi
+
+ [[ -n "$path" && -f "$path" ]] || return 1
+ printf '%s\n' "$path"
+}
+
+main() {
+ local target_monitor=""
+ local wallpaper_path=""
+
+ target_monitor="$(resolve_target_monitor 2>/dev/null || true)"
+ wallpaper_path="$(resolve_focused_wallpaper "$target_monitor" 2>/dev/null || true)"
+ [[ -n "$wallpaper_path" && -f "$wallpaper_path" ]] || exit 1
+
+ mkdir -p "$(dirname "$ROFI_FOCUSED_LINK")"
+ ln -sf "$wallpaper_path" "$ROFI_FOCUSED_LINK"
+}
+
+main "$@"
diff --git a/config/hypr/scripts/RofiSearch.sh b/config/hypr/scripts/RofiSearch.sh
index 42b54d75..05520ed0 100755
--- a/config/hypr/scripts/RofiSearch.sh
+++ b/config/hypr/scripts/RofiSearch.sh
@@ -8,7 +8,7 @@
# For Searching via web browsers
# Define the path to the config file
-config_file=$HOME/.config/hypr/UserConfigs/01-UserDefaults.conf
+config_file=${XDG_CONFIG_HOME:-$HOME/.config}/hypr/UserConfigs/01-UserDefaults.conf
if ! command -v jq >/dev/null 2>&1; then
notify-send -u low "Rofi Search" "jq is required for URL encoding. Please install jq."
exit 1
@@ -33,7 +33,7 @@ if [[ -z "$Search_Engine" ]]; then
fi
# Rofi theme and message
-rofi_theme="$HOME/.config/rofi/config-search.rasi"
+rofi_theme="${XDG_CONFIG_HOME:-$HOME/.config}/rofi/config-search.rasi"
msg='‼️ **note** ‼️ search via default web browser'
# Kill Rofi if already running before execution
diff --git a/config/hypr/scripts/RofiThemeSelector-modified.sh b/config/hypr/scripts/RofiThemeSelector-modified.sh
index 535b7313..9dfafba1 100755
--- a/config/hypr/scripts/RofiThemeSelector-modified.sh
+++ b/config/hypr/scripts/RofiThemeSelector-modified.sh
@@ -5,12 +5,12 @@
# License: GNU GPLv3
# SPDX-License-Identifier: GPL-3.0-or-later
# ==================================================
-# A modified version of Rofi-Theme-Selector, concentrating only on ~/.local and also, applying only 10 @themes in ~/.config/rofi/config.rasi
+# A modified version of Rofi-Theme-Selector, concentrating only on ~/.local and also, applying only 10 @themes in ${XDG_CONFIG_HOME:-$HOME/.config}/rofi/config.rasi
# as opposed to continous adding of //@theme
# This code is released in public domain by Dave Davenport <qball@gmpclient.org>
-iDIR="$HOME/.config/swaync/images"
+iDIR="${XDG_CONFIG_HOME:-$HOME/.config}/swaync/images"
OS="linux"
@@ -42,7 +42,7 @@ fi
TMP_CONFIG_FILE=$(${MKTEMP}).rasi
#rofi_theme_dir="${HOME}/.local/share/rofi/themes"
-rofi_config_file="${XDG_CONFIG_HOME:-${HOME}/.config}/rofi/config.rasi"
+rofi_config_file="${XDG_CONFIG_HOME:-${XDG_CONFIG_HOME:-$HOME/.config}}/rofi/config.rasi"
##
# Array with parts to the found themes.
@@ -57,7 +57,7 @@ declare -a theme_names
##
# Find themes in defined directories
find_themes() {
- directories=("$HOME/.local/share/rofi/themes" "$HOME/.config/rofi/themes")
+ directories=("$HOME/.local/share/rofi/themes" "${XDG_CONFIG_HOME:-$HOME/.config}/rofi/themes")
for TD in "${directories[@]}"; do
if [ -d "$TD" ]; then
@@ -86,8 +86,8 @@ add_theme_to_config() {
# Determine the correct path for the theme
if [[ -f "$HOME/.local/share/rofi/themes/$theme_name.rasi" ]]; then
theme_path="$HOME/.local/share/rofi/themes/$theme_name.rasi"
- elif [[ -f "$HOME/.config/rofi/themes/$theme_name.rasi" ]]; then
- theme_path="$HOME/.config/rofi/themes/$theme_name.rasi"
+ elif [[ -f "${XDG_CONFIG_HOME:-$HOME/.config}/rofi/themes/$theme_name.rasi" ]]; then
+ theme_path="${XDG_CONFIG_HOME:-$HOME/.config}/rofi/themes/$theme_name.rasi"
else
echo "Theme not found: $theme_name"
return 1
diff --git a/config/hypr/scripts/RofiThemeSelector.sh b/config/hypr/scripts/RofiThemeSelector.sh
index db723b6f..1841b4f5 100755
--- a/config/hypr/scripts/RofiThemeSelector.sh
+++ b/config/hypr/scripts/RofiThemeSelector.sh
@@ -8,11 +8,11 @@
# Rofi Themes - Script to preview and apply themes by live-reloading the config.
# --- Configuration ---
-ROFI_THEMES_DIR_CONFIG="$HOME/.config/rofi/themes"
+ROFI_THEMES_DIR_CONFIG="${XDG_CONFIG_HOME:-$HOME/.config}/rofi/themes"
ROFI_THEMES_DIR_LOCAL="$HOME/.local/share/rofi/themes"
-ROFI_CONFIG_FILE="$HOME/.config/rofi/config.rasi"
-ROFI_THEME_FOR_THIS_SCRIPT="$HOME/.config/rofi/config-rofi-theme.rasi" # A separate rofi theme for the picker itself
-IDIR="$HOME/.config/swaync/images" # For notifications
+ROFI_CONFIG_FILE="${XDG_CONFIG_HOME:-$HOME/.config}/rofi/config.rasi"
+ROFI_THEME_FOR_THIS_SCRIPT="${XDG_CONFIG_HOME:-$HOME/.config}/rofi/config-rofi-theme.rasi" # A separate rofi theme for the picker itself
+IDIR="${XDG_CONFIG_HOME:-$HOME/.config}/swaync/images" # For notifications
# --- Helper Functions ---
diff --git a/config/hypr/scripts/ScreenShot.sh b/config/hypr/scripts/ScreenShot.sh
index baad89a1..ed914552 100755
--- a/config/hypr/scripts/ScreenShot.sh
+++ b/config/hypr/scripts/ScreenShot.sh
@@ -13,9 +13,9 @@ PICTURES_DIR="$(xdg-user-dir PICTURES 2>/dev/null || echo "$HOME/Pictures")"
dir="$PICTURES_DIR/Screenshots"
file="Screenshot_${time}_${RANDOM}.png"
-iDIR="$HOME/.config/swaync/icons"
-iDoR="$HOME/.config/swaync/images"
-sDIR="$HOME/.config/hypr/scripts"
+iDIR="${XDG_CONFIG_HOME:-$HOME/.config}/swaync/icons"
+iDoR="${XDG_CONFIG_HOME:-$HOME/.config}/swaync/images"
+sDIR="${XDG_CONFIG_HOME:-$HOME/.config}/hypr/scripts"
active_window_class=$(hyprctl -j activewindow | jq -r '(.class)')
active_window_file="Screenshot_${time}_${active_window_class}.png"
diff --git a/config/hypr/scripts/ScrollCycleColumnWidth.sh b/config/hypr/scripts/ScrollCycleColumnWidth.sh
new file mode 100755
index 00000000..c9ab2668
--- /dev/null
+++ b/config/hypr/scripts/ScrollCycleColumnWidth.sh
@@ -0,0 +1,56 @@
+#!/usr/bin/env bash
+set -euo pipefail
+
+if ! command -v hyprctl >/dev/null 2>&1; then
+ exit 0
+fi
+
+if ! command -v jq >/dev/null 2>&1; then
+ exit 0
+fi
+
+workspace_json="$(hyprctl -j activeworkspace 2>/dev/null || true)"
+layout_name="$(jq -r '.tiledLayout // .tiled_layout // empty' <<<"$workspace_json")"
+
+if [[ "$layout_name" != "scrolling" ]]; then
+ exit 0
+fi
+
+window_json="$(hyprctl -j activewindow 2>/dev/null || true)"
+column_width="$(jq -r '.layout.column.width // .layout.column // empty' <<<"$window_json")"
+window_monitor="$(jq -r '.monitor // empty' <<<"$window_json")"
+window_width="$(jq -r '.size[0] // empty' <<<"$window_json")"
+
+if [[ -n "$column_width" && "$column_width" != "null" ]]; then
+ if ! awk -v v="$column_width" 'BEGIN { exit !(v > 0 && v <= 1.0) }'; then
+ column_width=""
+ fi
+fi
+
+if [[ -z "$column_width" || "$column_width" == "null" ]]; then
+ monitors_json="$(hyprctl -j monitors 2>/dev/null || true)"
+ monitor_width="$(jq -r --arg id "$window_monitor" '.[] | select((.id | tostring) == $id) | .width' <<<"$monitors_json" 2>/dev/null | head -n1)"
+ if [[ -n "$window_width" && -n "$monitor_width" && "$window_width" != "null" && "$monitor_width" != "null" ]]; then
+ column_width="$(awk -v w="$window_width" -v mw="$monitor_width" 'BEGIN { if (w > 0 && mw > 0) printf "%.6f", (w / mw); }')"
+ fi
+fi
+
+if [[ -z "$column_width" || "$column_width" == "null" ]]; then
+ exit 0
+fi
+
+presets=(0.25 0.33 0.5 0.66 0.75 1.0)
+closest_idx=0
+best_diff=""
+
+for idx in "${!presets[@]}"; do
+ preset="${presets[$idx]}"
+ diff="$(awk -v a="$preset" -v b="$column_width" 'BEGIN { d = a - b; if (d < 0) d = -d; printf "%.12f", d }')"
+ if [[ -z "$best_diff" ]] || awk -v d="$diff" -v b="$best_diff" 'BEGIN { exit !(d < b) }'; then
+ best_diff="$diff"
+ closest_idx="$idx"
+ fi
+done
+
+next_idx=$(( (closest_idx + 1) % ${#presets[@]} ))
+hyprctl dispatch layoutmsg "colresize ${presets[$next_idx]}" >/dev/null 2>&1 || true
diff --git a/config/hypr/scripts/ScrollMaximizeToggle.sh b/config/hypr/scripts/ScrollMaximizeToggle.sh
new file mode 100755
index 00000000..29c06eb4
--- /dev/null
+++ b/config/hypr/scripts/ScrollMaximizeToggle.sh
@@ -0,0 +1,175 @@
+#!/usr/bin/env bash
+set -euo pipefail
+
+if ! command -v hyprctl >/dev/null 2>&1; then
+ exit 1
+fi
+dispatch_ok() {
+ local dispatcher="$1"
+ shift
+ local output=""
+ case "$dispatcher" in
+ fullscreen)
+ if [[ "${1:-}" == "1" ]]; then
+ output="$(hyprctl dispatch 'hl.dsp.window.fullscreen({ mode = "maximized" })' 2>&1 || true)"
+ else
+ output="$(hyprctl dispatch 'hl.dsp.window.fullscreen({ mode = "fullscreen" })' 2>&1 || true)"
+ fi
+ ;;
+ layoutmsg)
+ local msg="${1:-}"
+ msg="${msg//\\/\\\\}"
+ msg="${msg//\"/\\\"}"
+ output="$(hyprctl dispatch "hl.dsp.layout(\"${msg}\")" 2>&1 || true)"
+ ;;
+ *)
+ output="$(hyprctl dispatch "$dispatcher" "$@" 2>&1 || true)"
+ ;;
+ esac
+ local normalized=""
+ normalized="$(printf '%s' "$output" | tr -d '\r\n')"
+ [[ -z "$normalized" || "$normalized" == "ok" ]]
+}
+
+if ! command -v jq >/dev/null 2>&1; then
+ dispatch_ok fullscreen 1 >/dev/null 2>&1 || true
+ exit 0
+fi
+
+run_layoutmsg() {
+ local msg="$1"
+ dispatch_ok layoutmsg "$msg"
+}
+toggle_maximize() {
+ local active_window_json="$1"
+ local fullscreen_state=""
+ fullscreen_state="$(jq -r '
+ (.fullscreen // .fullscreenClient // 0) as $value
+ | if ($value | type) == "boolean" then
+ (if $value then 1 else 0 end)
+ elif ($value | type) == "number" then
+ $value
+ elif ($value | type) == "string" then
+ ($value | tonumber? // 0)
+ else
+ 0
+ end
+ ' <<<"$active_window_json" 2>/dev/null || true)"
+ if [[ -n "$fullscreen_state" && "$fullscreen_state" != "null" ]] && awk -v v="$fullscreen_state" 'BEGIN { exit !(v > 0) }'; then
+ dispatch_ok fullscreen 1 >/dev/null 2>&1 || true
+ return 0
+ fi
+ return 1
+}
+
+workspace_json="$(hyprctl -j activeworkspace 2>/dev/null || true)"
+layout_name="$(jq -r '.tiledLayout // .tiled_layout // empty' <<<"$workspace_json")"
+
+if [[ "$layout_name" != "scrolling" ]]; then
+ dispatch_ok fullscreen 1 >/dev/null 2>&1 || true
+ exit 0
+fi
+
+window_json="$(hyprctl -j activewindow 2>/dev/null || true)"
+if [[ -z "$window_json" || "$window_json" == "null" ]]; then
+ exit 0
+fi
+if toggle_maximize "$window_json"; then
+ exit 0
+fi
+
+window_address="$(jq -r '.address // empty' <<<"$window_json")"
+window_width="$(jq -r '.size[0] // empty' <<<"$window_json")"
+column_width="$(jq -r '
+ .layout.column as $col
+ | if ($col | type) == "number" then $col
+ elif ($col | type) == "object" then ($col.width // empty)
+ elif ($col | type) == "string" then ($col | tonumber? // empty)
+ else empty
+ end
+' <<<"$window_json")"
+if [[ -n "$column_width" && "$column_width" != "null" ]]; then
+ if ! awk -v v="$column_width" 'BEGIN { exit !(v > 0 && v <= 1.0) }'; then
+ column_width=""
+ fi
+fi
+
+if [[ -z "$window_address" || -z "$window_width" || "$window_width" == "null" ]]; then
+ dispatch_ok fullscreen 1 >/dev/null 2>&1 || true
+ exit 0
+fi
+
+runtime_dir="${XDG_RUNTIME_DIR:-/tmp}"
+state_dir="${runtime_dir}/hypr"
+state_file="${state_dir}/scrolling-maximize-state.json"
+mkdir -p "$state_dir"
+
+if [[ ! -s "$state_file" ]]; then
+ printf '{}\n' > "$state_file"
+elif ! jq -e . "$state_file" >/dev/null 2>&1; then
+ printf '{}\n' > "$state_file"
+fi
+
+saved_width="$(jq -r --arg key "$window_address" '
+ .[$key] as $saved
+ | if ($saved | type) == "number" then $saved
+ elif ($saved | type) == "object" then ($saved.width // empty)
+ elif ($saved | type) == "string" then ($saved | tonumber? // empty)
+ else empty
+ end
+' "$state_file" 2>/dev/null || true)"
+tmp_file="$(mktemp "${state_file}.XXXXXX")"
+cleanup() {
+ rm -f "$tmp_file"
+}
+trap cleanup EXIT
+
+if [[ -n "$saved_width" && "$saved_width" != "null" ]]; then
+ restored=0
+ if run_layoutmsg "colresize ${saved_width}"; then
+ restored=1
+ elif run_layoutmsg "colresize exact ${saved_width}"; then
+ restored=1
+ fi
+ if [[ "$restored" -eq 1 ]]; then
+ jq --arg key "$window_address" 'del(.[$key])' "$state_file" > "$tmp_file"
+ mv "$tmp_file" "$state_file"
+ fi
+ trap - EXIT
+ exit 0
+fi
+if [[ -z "$column_width" || "$column_width" == "null" ]]; then
+ if run_layoutmsg "colresize 1.0"; then
+ max_width=""
+ for _ in 1 2 3 4 5 6; do
+ candidate_width="$(hyprctl -j activewindow 2>/dev/null | jq -r '.size[0] // empty')"
+ if [[ -n "$candidate_width" && "$candidate_width" != "null" ]] && awk -v v="$candidate_width" 'BEGIN { exit !(v > 0) }'; then
+ if [[ -z "$max_width" ]] || awk -v c="$candidate_width" -v m="$max_width" 'BEGIN { exit !(c > m) }'; then
+ max_width="$candidate_width"
+ fi
+ fi
+ sleep 0.05
+ done
+ if [[ -n "$max_width" ]]; then
+ column_width="$(awk -v w="$window_width" -v mw="$max_width" 'BEGIN { if (w > 0 && mw > 0) printf "%.6f", (w / mw); }')"
+ fi
+ else
+ dispatch_ok fullscreen 1 >/dev/null 2>&1 || true
+ trap - EXIT
+ exit 0
+ fi
+ if [[ -z "$column_width" || "$column_width" == "null" ]]; then
+ trap - EXIT
+ exit 0
+ fi
+ jq --arg key "$window_address" --argjson value "$column_width" '. + {($key): $value}' "$state_file" > "$tmp_file"
+ mv "$tmp_file" "$state_file"
+ trap - EXIT
+ exit 0
+fi
+
+jq --arg key "$window_address" --argjson value "$column_width" '. + {($key): $value}' "$state_file" > "$tmp_file"
+mv "$tmp_file" "$state_file"
+trap - EXIT
+
+run_layoutmsg "colresize 1.0" >/dev/null 2>&1 || dispatch_ok fullscreen 1 >/dev/null 2>&1 || true
diff --git a/config/hypr/scripts/Sounds.sh b/config/hypr/scripts/Sounds.sh
index 3af4944f..e763475c 100755
--- a/config/hypr/scripts/Sounds.sh
+++ b/config/hypr/scripts/Sounds.sh
@@ -10,7 +10,7 @@
theme="freedesktop" # Set the theme for the system sounds.
mute=false # Set to true to mute the system sounds.
-directSoundDir="$HOME/.config/hypr/sounds"
+directSoundDir="${XDG_CONFIG_HOME:-$HOME/.config}/hypr/sounds"
# Mute individual sounds here.
muteScreenshots=false
diff --git a/config/hypr/scripts/Tak0-Autodispatch.sh b/config/hypr/scripts/Tak0-Autodispatch.sh
index cabe1672..8eea93ad 100755
--- a/config/hypr/scripts/Tak0-Autodispatch.sh
+++ b/config/hypr/scripts/Tak0-Autodispatch.sh
@@ -72,7 +72,7 @@ fi
echo "=== Deploy '$CMD' → WS $TARGET_WS @ $(date) ===" >>"$LOGFILE"
# Detect active Hyprland config mode
-config_home="${XDG_CONFIG_HOME:-$HOME/.config}"
+config_home="${XDG_CONFIG_HOME:-${XDG_CONFIG_HOME:-$HOME/.config}}"
hypr_dir="$config_home/hypr"
lua_entry="$hypr_dir/hyprland.lua"
legacy_lua_entry="$config_home/hyprland.lua"
diff --git a/config/hypr/scripts/Tak0-Per-Window-Switch.sh b/config/hypr/scripts/Tak0-Per-Window-Switch.sh
index eba3b380..cc878615 100755
--- a/config/hypr/scripts/Tak0-Per-Window-Switch.sh
+++ b/config/hypr/scripts/Tak0-Per-Window-Switch.sh
@@ -19,12 +19,12 @@
##################################################################
MAP_FILE="$HOME/.cache/kb_layout_per_window"
-ICON="$HOME/.config/swaync/images/ja.png"
+ICON="${XDG_CONFIG_HOME:-$HOME/.config}/swaync/images/ja.png"
SCRIPT_NAME="$(basename "$0")"
SCRIPT_PATH="$(readlink -f "$0")"
# Detect active Hyprland config mode
-config_home="${XDG_CONFIG_HOME:-$HOME/.config}"
+config_home="${XDG_CONFIG_HOME:-${XDG_CONFIG_HOME:-$HOME/.config}}"
hypr_dir="$config_home/hypr"
lua_entry="$hypr_dir/hyprland.lua"
legacy_lua_entry="$config_home/hyprland.lua"
diff --git a/config/hypr/scripts/ThemeChanger.sh b/config/hypr/scripts/ThemeChanger.sh
index c19908e4..f592300c 100755
--- a/config/hypr/scripts/ThemeChanger.sh
+++ b/config/hypr/scripts/ThemeChanger.sh
@@ -9,8 +9,8 @@ set -euo pipefail
# Wallust v3/v4 compatibility
wallust_args=()
# shellcheck source=/dev/null
-if [ -f "$HOME/.config/hypr/scripts/WallustConfig.sh" ]; then
- . "$HOME/.config/hypr/scripts/WallustConfig.sh"
+if [ -f "${XDG_CONFIG_HOME:-$HOME/.config}/hypr/scripts/WallustConfig.sh" ]; then
+ . "${XDG_CONFIG_HOME:-$HOME/.config}/hypr/scripts/WallustConfig.sh"
fi
# SPDX-FileCopyrightText: 2025-present Ahum Maitra theahummaitra@gmail.com
@@ -32,8 +32,12 @@ require rofi
# notify-send is optional
have_notify() { command -v notify-send >/dev/null 2>&1; }
capture_current_layout() {
+ if [ -x "${XDG_CONFIG_HOME:-$HOME/.config}/hypr/scripts/ChangeLayout.sh" ]; then
+ "${XDG_CONFIG_HOME:-$HOME/.config}/hypr/scripts/ChangeLayout.sh" --no-notify current 2>/dev/null | awk 'NF {print; exit}'
+ return 0
+ fi
if command -v jq >/dev/null 2>&1; then
- hyprctl -j getoption general:layout 2>/dev/null | jq -r '.str // empty'
+ hyprctl -j activeworkspace 2>/dev/null | jq -r '.tiledLayout // .tiled_layout // empty'
else
hyprctl getoption general:layout 2>/dev/null | awk 'NR==1 {print $2}'
fi
@@ -42,13 +46,9 @@ restore_layout_after_reload() {
local layout="$1"
[ -n "$layout" ] || return 0
- if [ -x "$HOME/.config/hypr/scripts/ChangeLayout.sh" ]; then
- if "$HOME/.config/hypr/scripts/ChangeLayout.sh" --no-notify "$layout" >/dev/null 2>&1; then
- return 0
- fi
+ if [ -x "${XDG_CONFIG_HOME:-$HOME/.config}/hypr/scripts/ChangeLayout.sh" ]; then
+ "${XDG_CONFIG_HOME:-$HOME/.config}/hypr/scripts/ChangeLayout.sh" --no-notify "$layout" >/dev/null 2>&1 || true
fi
-
- hyprctl keyword general:layout "$layout" >/dev/null 2>&1 || true
}
reload_hypr_preserve_layout() {
command -v hyprctl >/dev/null 2>&1 || return 0
@@ -91,9 +91,9 @@ if [ ! -s "$theme_cache" ] || [ "$cache_age" -gt "$cache_max_age" ]; then
fi
ensure_wallust_waybar_style() {
- local waybar_style="$HOME/.config/waybar/style.css"
- local colors_file="$HOME/.config/waybar/wallust/colors-waybar.css"
- local styles_dir="$HOME/.config/waybar/style"
+ local waybar_style="${XDG_CONFIG_HOME:-$HOME/.config}/waybar/style.css"
+ local colors_file="${XDG_CONFIG_HOME:-$HOME/.config}/waybar/wallust/colors-waybar.css"
+ local styles_dir="${XDG_CONFIG_HOME:-$HOME/.config}/waybar/style"
[ -f "$colors_file" ] || return 0
if [ -f "$waybar_style" ] && grep -q 'colors-waybar.css' "$waybar_style"; then
return 0
@@ -119,7 +119,7 @@ reload_running_cava_colors() {
fi
}
-wallust_hypr_colors="$HOME/.config/hypr/wallust/wallust-hyprland.conf"
+wallust_hypr_colors="${XDG_CONFIG_HOME:-$HOME/.config}/hypr/wallust/wallust-hyprland.conf"
extract_wallust_hex() {
local key="$1"
awk -v key="$key" '
@@ -180,16 +180,16 @@ if wallust "${wallust_args[@]}" theme -- "${choice}" >"$wallust_log" 2>&1; then
# Wait until template targets exist, are newer than start_ts, and are stable (size/mtime stops changing)
# Ensure Ghostty directory exists so Wallust can write target even if Ghostty isn't installed
- mkdir -p "$HOME/.config/ghostty" || true
+ mkdir -p "${XDG_CONFIG_HOME:-$HOME/.config}/ghostty" || true
targets=(
- "$HOME/.config/waybar/wallust/colors-waybar.css"
- "$HOME/.config/rofi/wallust/colors-rofi.rasi"
- "$HOME/.config/hypr/wallust/wallust-hyprland.conf"
+ "${XDG_CONFIG_HOME:-$HOME/.config}/waybar/wallust/colors-waybar.css"
+ "${XDG_CONFIG_HOME:-$HOME/.config}/rofi/wallust/colors-rofi.rasi"
+ "${XDG_CONFIG_HOME:-$HOME/.config}/hypr/wallust/wallust-hyprland.conf"
)
# Normalize Ghostty palette syntax in case upstream templates or older targets used ':'
- ghostty_conf="$HOME/.config/ghostty/wallust.conf"
+ ghostty_conf="${XDG_CONFIG_HOME:-$HOME/.config}/ghostty/wallust.conf"
if [ -f "$ghostty_conf" ]; then
sed -i -E 's/^(\s*palette\s*=\s*)([0-9]{1,2}):/\1\2=/' "$ghostty_conf" 2>/dev/null || true
fi
@@ -239,7 +239,7 @@ if wallust "${wallust_args[@]}" theme -- "${choice}" >"$wallust_log" 2>&1; then
# Small cushion before refresh to mirror wallpaper flow
sleep 0.2
# Normalize Rofi selection colors to use the palette's accent (color12)
- rofi_colors="$HOME/.config/rofi/wallust/colors-rofi.rasi"
+ rofi_colors="${XDG_CONFIG_HOME:-$HOME/.config}/rofi/wallust/colors-rofi.rasi"
if [ -f "$rofi_colors" ]; then
accent_hex=$(sed -n 's/^\s*color12:\s*\(#[0-9A-Fa-f]\{6\}\).*/\1/p' "$rofi_colors" | head -n1)
[ -z "$accent_hex" ] && accent_hex=$(sed -n 's/^\s*color13:\s*\(#[0-9A-Fa-f]\{6\}\).*/\1/p' "$rofi_colors" | head -n1)
@@ -258,8 +258,8 @@ if wallust "${wallust_args[@]}" theme -- "${choice}" >"$wallust_log" 2>&1; then
reload_running_cava_colors
# Refresh bars/menus after files are ready
- if [ -x "$HOME/.config/hypr/scripts/Refresh.sh" ]; then
- "$HOME/.config/hypr/scripts/Refresh.sh" >/dev/null 2>&1 || true
+ if [ -x "${XDG_CONFIG_HOME:-$HOME/.config}/hypr/scripts/Refresh.sh" ]; then
+ "${XDG_CONFIG_HOME:-$HOME/.config}/hypr/scripts/Refresh.sh" >/dev/null 2>&1 || true
else
if command -v waybar-msg >/dev/null 2>&1; then
waybar-msg cmd reload >/dev/null 2>&1 || true
diff --git a/config/hypr/scripts/Toggle-Active-Window-Audio.sh b/config/hypr/scripts/Toggle-Active-Window-Audio.sh
index c954541f..42d63217 100755
--- a/config/hypr/scripts/Toggle-Active-Window-Audio.sh
+++ b/config/hypr/scripts/Toggle-Active-Window-Audio.sh
@@ -7,7 +7,7 @@
# ==================================================
set -euo pipefail
-XDG_CONFIG_HOME="${XDG_CONFIG_HOME:-$HOME/.config}"
+XDG_CONFIG_HOME="${XDG_CONFIG_HOME:-${XDG_CONFIG_HOME:-$HOME/.config}}"
swayIconDir="${XDG_CONFIG_HOME}/swaync/icons"
#// Credits to sl1ng for the orginal script. Rewritten by Vyle.
diff --git a/config/hypr/scripts/Toggle-weather-waybar-units.sh b/config/hypr/scripts/Toggle-weather-waybar-units.sh
index abc089ff..bf0b102e 100755
--- a/config/hypr/scripts/Toggle-weather-waybar-units.sh
+++ b/config/hypr/scripts/Toggle-weather-waybar-units.sh
@@ -7,7 +7,7 @@
# ==================================================
# Toggle waybar-weather units between metric and imperial
-CONFIG_FILE="$HOME/.config/waybar-weather/config.toml"
+CONFIG_FILE="${XDG_CONFIG_HOME:-$HOME/.config}/waybar-weather/config.toml"
if [ ! -f "$CONFIG_FILE" ]; then
notify-send "Weather units" "Config not found: $CONFIG_FILE"
diff --git a/config/hypr/scripts/ToggleWaybarTime.sh b/config/hypr/scripts/ToggleWaybarTime.sh
new file mode 100755
index 00000000..2273c3af
--- /dev/null
+++ b/config/hypr/scripts/ToggleWaybarTime.sh
@@ -0,0 +1,101 @@
+#!/usr/bin/env bash
+# ==================================================
+# KoolDots (2026)
+# Project URL: https://github.com/LinuxBeginnings
+# License: GNU GPLv3
+# SPDX-License-Identifier: GPL-3.0-or-later
+# ==================================================
+# Toggle Waybar clock format between 12H and 24H
+
+MODULES_FILE="${XDG_CONFIG_HOME:-$HOME/.config}/waybar/Modules"
+notify_swaync() {
+ command -v notify-send >/dev/null 2>&1 || return 0
+ export XDG_RUNTIME_DIR="${XDG_RUNTIME_DIR:-/run/user/$(id -u)}"
+ local icon="${XDG_CONFIG_HOME:-$HOME/.config}/swaync/images/note.png"
+ if [ -z "${DBUS_SESSION_BUS_ADDRESS:-}" ]; then
+ local bus_path="${XDG_RUNTIME_DIR}/bus"
+ if [ -S "$bus_path" ]; then
+ export DBUS_SESSION_BUS_ADDRESS="unix:path=$bus_path"
+ fi
+ fi
+ DBUS_SESSION_BUS_ADDRESS="$DBUS_SESSION_BUS_ADDRESS" XDG_RUNTIME_DIR="$XDG_RUNTIME_DIR" \
+ notify-send -a "Waybar Time" -u low -t 2000 -i "$icon" "$@" >/dev/null 2>&1 || true
+}
+
+if [ ! -f "$MODULES_FILE" ]; then
+ notify_swaync "Modules file not found: $MODULES_FILE"
+ exit 1
+fi
+
+is_12h_active() {
+ grep -qE '^[[:space:]]*"format":[[:space:]]*" {:%I:%M %p}"' "$MODULES_FILE"
+}
+
+apply_12h() {
+ sed -i 's#^\([[:space:]]*\)//\("format": " {:%I:%M %p}".*\)#\1\2#' "$MODULES_FILE"
+ sed -i 's#^\([[:space:]]*\)\("format": " {:%H:%M:%S}".*\)#\1//\2#' "$MODULES_FILE"
+ sed -i 's#^\([[:space:]]*\)\("format": " {:%H:%M}".*\)#\1//\2#' "$MODULES_FILE"
+ sed -i 's#^\([[:space:]]*\)//\("format": "{:%I:%M %p - %d/%b}".*\)#\1\2#' "$MODULES_FILE"
+ sed -i 's#^\([[:space:]]*\)\("format": "{:%H:%M - %d/%b}".*\)#\1//\2#' "$MODULES_FILE"
+ sed -i 's#^\([[:space:]]*\)//\("format": "{:%B | %a %d, %Y | %I:%M %p}".*\)#\1\2#' "$MODULES_FILE"
+ sed -i 's#^\([[:space:]]*\)\("format": "{:%B | %a %d, %Y | %H:%M}".*\)#\1//\2#' "$MODULES_FILE"
+ sed -i 's#^\([[:space:]]*\)//\("format": "{:%A, %I:%M %P}".*\)#\1\2#' "$MODULES_FILE"
+ sed -i 's#^\([[:space:]]*\)\("format": "{:%a %d | %H:%M}".*\)#\1//\2#' "$MODULES_FILE"
+}
+
+apply_24h() {
+ sed -i 's#^\([[:space:]]*\)\("format": " {:%I:%M %p}".*\)#\1//\2#' "$MODULES_FILE"
+ sed -i 's#^\([[:space:]]*\)//\("format": " {:%H:%M:%S}".*\)#\1\2#' "$MODULES_FILE"
+ sed -i 's#^\([[:space:]]*\)//\("format": " {:%H:%M}".*\)#\1\2#' "$MODULES_FILE"
+ sed -i 's#^\([[:space:]]*\)\("format": "{:%I:%M %p - %d/%b}".*\)#\1//\2#' "$MODULES_FILE"
+ sed -i 's#^\([[:space:]]*\)//\("format": "{:%H:%M - %d/%b}".*\)#\1\2#' "$MODULES_FILE"
+ sed -i 's#^\([[:space:]]*\)\("format": "{:%B | %a %d, %Y | %I:%M %p}".*\)#\1//\2#' "$MODULES_FILE"
+ sed -i 's#^\([[:space:]]*\)//\("format": "{:%B | %a %d, %Y | %H:%M}".*\)#\1\2#' "$MODULES_FILE"
+ sed -i 's#^\([[:space:]]*\)\("format": "{:%A, %I:%M %P}".*\)#\1//\2#' "$MODULES_FILE"
+ sed -i 's#^\([[:space:]]*\)//\("format": "{:%a %d | %H:%M}".*\)#\1\2#' "$MODULES_FILE"
+}
+
+restart_waybar() {
+ local manage_with_systemd=0
+
+ if command -v systemctl >/dev/null 2>&1; then
+ if systemctl --user --quiet is-active waybar.service 2>/dev/null || systemctl --user --quiet is-enabled waybar.service 2>/dev/null; then
+ manage_with_systemd=1
+ fi
+ fi
+
+ if [ "$manage_with_systemd" -eq 1 ]; then
+ systemctl --user stop waybar.service >/dev/null 2>&1 || true
+ fi
+
+ pkill -x waybar >/dev/null 2>&1 || true
+ pkill -x '.waybar-wrapped' >/dev/null 2>&1 || true
+ sleep 0.2
+ if pgrep -x waybar >/dev/null 2>&1 || pgrep -x '.waybar-wrapped' >/dev/null 2>&1; then
+ pkill -9 -x waybar >/dev/null 2>&1 || true
+ pkill -9 -x '.waybar-wrapped' >/dev/null 2>&1 || true
+ fi
+ sleep 0.2
+
+ if [ "$manage_with_systemd" -eq 1 ]; then
+ if ! systemctl --user start waybar.service >/dev/null 2>&1; then
+ waybar >/dev/null 2>&1 &
+ fi
+ else
+ waybar >/dev/null 2>&1 &
+ fi
+}
+
+if is_12h_active; then
+ apply_24h
+ mode="24H"
+else
+ apply_12h
+ mode="12H"
+fi
+
+restart_waybar
+sleep 0.3
+
+notify_swaync "Switched to ${mode} format"
+printf 'Waybar Time: switched to %s format\n' "$mode"
diff --git a/config/hypr/scripts/TouchPad.sh b/config/hypr/scripts/TouchPad.sh
index 1042a652..73cbfb46 100755
--- a/config/hypr/scripts/TouchPad.sh
+++ b/config/hypr/scripts/TouchPad.sh
@@ -6,14 +6,14 @@
# SPDX-License-Identifier: GPL-3.0-or-later
# ==================================================
# For disabling touchpad.
-# Edit the Touchpad_Device on ~/.config/hypr/UserConfigs/Laptops.conf according to your system
+# Edit the Touchpad_Device on ${XDG_CONFIG_HOME:-$HOME/.config}/hypr/UserConfigs/Laptops.conf according to your system
# use hyprctl devices to get your system touchpad device name
# source https://github.com/hyprwm/Hyprland/discussions/4283?sort=new#discussioncomment-8648109
set -euo pipefail
-notif="$HOME/.config/swaync/images/ja.png"
-laptops_conf="$HOME/.config/hypr/UserConfigs/Laptops.conf"
+notif="${XDG_CONFIG_HOME:-$HOME/.config}/swaync/images/ja.png"
+laptops_conf="${XDG_CONFIG_HOME:-$HOME/.config}/hypr/UserConfigs/Laptops.conf"
touchpad_device="${TOUCHPAD_DEVICE:-}"
if [[ -z "$touchpad_device" && -f "$laptops_conf" ]]; then
diff --git a/config/hypr/scripts/UserConfigsSwitcher.sh b/config/hypr/scripts/UserConfigsSwitcher.sh
index 7d9968a6..6259f363 100755
--- a/config/hypr/scripts/UserConfigsSwitcher.sh
+++ b/config/hypr/scripts/UserConfigsSwitcher.sh
@@ -7,7 +7,7 @@
# ==================================================
# Script to manage UserConfigs and UserConfigsBak
-HYPR_CONFIG_DIR="$HOME/.config/hypr"
+HYPR_CONFIG_DIR="${XDG_CONFIG_HOME:-$HOME/.config}/hypr"
USER_CONFIGS="$HYPR_CONFIG_DIR/UserConfigs"
USER_CONFIGS_BAK="$HYPR_CONFIG_DIR/UserConfigsBak"
diff --git a/config/hypr/scripts/Volume.sh b/config/hypr/scripts/Volume.sh
index dec7837c..c6ef8873 100755
--- a/config/hypr/scripts/Volume.sh
+++ b/config/hypr/scripts/Volume.sh
@@ -7,8 +7,8 @@
# ==================================================
# Scripts for volume controls for audio and mic
-iDIR="$HOME/.config/swaync/icons"
-sDIR="$HOME/.config/hypr/scripts"
+iDIR="${XDG_CONFIG_HOME:-$HOME/.config}/swaync/icons"
+sDIR="${XDG_CONFIG_HOME:-$HOME/.config}/hypr/scripts"
# Get Volume
get_volume() {
diff --git a/config/hypr/UserScripts/WallpaperAutoChange.sh b/config/hypr/scripts/WallpaperAutoChange.sh
index 5cee2a1e..a12e90d8 100755
--- a/config/hypr/UserScripts/WallpaperAutoChange.sh
+++ b/config/hypr/scripts/WallpaperAutoChange.sh
@@ -12,12 +12,13 @@
#
# NOTE: this script uses bash (not POSIX shell) for the RANDOM variable
-wallust_refresh=$HOME/.config/hypr/scripts/RefreshNoWaybar.sh
-SCRIPTSDIR="$HOME/.config/hypr/scripts"
+wallust_refresh=${XDG_CONFIG_HOME:-$HOME/.config}/hypr/scripts/RefreshNoWaybar.sh
+SCRIPTSDIR="${XDG_CONFIG_HOME:-$HOME/.config}/hypr/scripts"
# shellcheck source=/dev/null
. "$SCRIPTSDIR/WallpaperCmd.sh"
focused_monitor=$(hyprctl monitors | awk '/^Monitor/{name=$2} /focused: yes/{print name}')
+wallpaper_base="${XDG_CONFIG_HOME:-$HOME/.config}/hypr/wallpaper_effects/.wallpaper_base_${focused_monitor}"
if [[ $# -lt 1 ]] || [[ ! -d $1 ]]; then
echo "Usage:
@@ -41,8 +42,10 @@ while true; do
| while read -r img; do
resize_mode="$(wallpaper_resize_mode "$img" "$focused_monitor")"
"$WWW_CMD" img -o "$focused_monitor" --resize "$resize_mode" "$img"
+ mkdir -p "$(dirname "$wallpaper_base")"
+ cp -f "$img" "$wallpaper_base" || true
# Regenerate colors from the exact image path to avoid cache races
- $HOME/.config/hypr/scripts/WallustSwww.sh "$img"
+ ${XDG_CONFIG_HOME:-$HOME/.config}/hypr/scripts/WallustSwww.sh "$img"
# Refresh UI components that depend on wallust output
$wallust_refresh
sleep $INTERVAL
diff --git a/config/hypr/scripts/WallpaperDaemon.sh b/config/hypr/scripts/WallpaperDaemon.sh
index 60c35a6d..aeb6c397 100755
--- a/config/hypr/scripts/WallpaperDaemon.sh
+++ b/config/hypr/scripts/WallpaperDaemon.sh
@@ -7,7 +7,7 @@
# ==================================================
# Start wallpaper daemon, preferring awww with swww fallback
-SCRIPTSDIR="$HOME/.config/hypr/scripts"
+SCRIPTSDIR="${XDG_CONFIG_HOME:-$HOME/.config}/hypr/scripts"
# shellcheck source=/dev/null
. "$SCRIPTSDIR/WallpaperCmd.sh"
@@ -21,8 +21,8 @@ for _ in {1..50}; do
sleep 0.1
done
-wallpaper_link="$HOME/.config/rofi/.current_wallpaper"
-wallpaper_current="$HOME/.config/hypr/wallpaper_effects/.wallpaper_current"
+wallpaper_link="${XDG_CONFIG_HOME:-$HOME/.config}/rofi/.current_wallpaper"
+wallpaper_current="${XDG_CONFIG_HOME:-$HOME/.config}/hypr/wallpaper_effects/.wallpaper_current"
read_cached_wallpaper() {
local cache_file="$1"
@@ -40,8 +40,8 @@ get_monitors() {
apply_wallpaper_for_monitor() {
local monitor="$1"
- local per_monitor_link="$HOME/.config/rofi/.current_wallpaper_${monitor}"
- local per_monitor_current="$HOME/.config/hypr/wallpaper_effects/.wallpaper_current_${monitor}"
+ local per_monitor_link="${XDG_CONFIG_HOME:-$HOME/.config}/rofi/.current_wallpaper_${monitor}"
+ local per_monitor_current="${XDG_CONFIG_HOME:-$HOME/.config}/hypr/wallpaper_effects/.wallpaper_current_${monitor}"
local wallpaper_path=""
# Prefer per-monitor symlink target if valid
diff --git a/config/hypr/scripts/WallpaperEffects.sh b/config/hypr/scripts/WallpaperEffects.sh
new file mode 100755
index 00000000..fc88ba1e
--- /dev/null
+++ b/config/hypr/scripts/WallpaperEffects.sh
@@ -0,0 +1,140 @@
+#!/usr/bin/env bash
+# ==================================================
+# KoolDots (2026)
+# Project URL: https://github.com/LinuxBeginnings
+# License: GNU GPLv3
+# SPDX-License-Identifier: GPL-3.0-or-later
+# ==================================================
+# Wallpaper Effects using ImageMagick (SUPER SHIFT W)
+
+# Variables
+terminal=kitty
+wallpaper_current="${XDG_CONFIG_HOME:-$HOME/.config}/hypr/wallpaper_effects/.wallpaper_current"
+wallpaper_output="${XDG_CONFIG_HOME:-$HOME/.config}/hypr/wallpaper_effects/.wallpaper_modified"
+wallpaper_base="${XDG_CONFIG_HOME:-$HOME/.config}/hypr/wallpaper_effects/.wallpaper_base"
+wallpaper_link="${XDG_CONFIG_HOME:-$HOME/.config}/rofi/.current_wallpaper"
+SCRIPTSDIR="${XDG_CONFIG_HOME:-$HOME/.config}/hypr/scripts"
+# shellcheck source=/dev/null
+. "$SCRIPTSDIR/WallpaperCmd.sh"
+focused_monitor=$(hyprctl monitors -j | jq -r '.[] | select(.focused) | .name')
+per_monitor_wallpaper_base="${XDG_CONFIG_HOME:-$HOME/.config}/hypr/wallpaper_effects/.wallpaper_base_${focused_monitor}"
+per_monitor_wallpaper_current="${XDG_CONFIG_HOME:-$HOME/.config}/hypr/wallpaper_effects/.wallpaper_current_${focused_monitor}"
+per_monitor_wallpaper_link="${XDG_CONFIG_HOME:-$HOME/.config}/rofi/.current_wallpaper_${focused_monitor}"
+rofi_theme="${XDG_CONFIG_HOME:-$HOME/.config}/rofi/config-wallpaper-effect.rasi"
+
+# Directory for swaync
+iDIR="${XDG_CONFIG_HOME:-$HOME/.config}/swaync/images"
+iDIRi="${XDG_CONFIG_HOME:-$HOME/.config}/swaync/icons"
+
+# swww/awww transition config
+FPS=60
+TYPE="wipe"
+DURATION=2
+BEZIER=".43,1.19,1,.4"
+if [[ "$WWW_CMD" == "swww" || "$WWW_CMD" == "awww" ]]; then
+ SWWW_PARAMS=(--transition-fps "$FPS" --transition-type "$TYPE" --transition-duration "$DURATION" --transition-bezier "$BEZIER")
+else
+ SWWW_PARAMS=()
+fi
+
+# Define ImageMagick effects
+declare -A effects=(
+ ["No Effects"]="no-effects"
+ ["Black & White"]="magick $wallpaper_base -colorspace gray -sigmoidal-contrast 10,40% $wallpaper_output"
+ ["Blurred"]="magick $wallpaper_base -blur 0x10 $wallpaper_output"
+ ["Charcoal"]="magick $wallpaper_base -charcoal 0x5 $wallpaper_output"
+ ["Edge Detect"]="magick $wallpaper_base -edge 1 $wallpaper_output"
+ ["Emboss"]="magick $wallpaper_base -emboss 0x5 $wallpaper_output"
+ ["Frame Raised"]="magick $wallpaper_base +raise 150 $wallpaper_output"
+ ["Frame Sunk"]="magick $wallpaper_base -raise 150 $wallpaper_output"
+ ["Negate"]="magick $wallpaper_base -negate $wallpaper_output"
+ ["Oil Paint"]="magick $wallpaper_base -paint 4 $wallpaper_output"
+ ["Posterize"]="magick $wallpaper_base -posterize 4 $wallpaper_output"
+ ["Polaroid"]="magick $wallpaper_base -polaroid 0 $wallpaper_output"
+ ["Sepia Tone"]="magick $wallpaper_base -sepia-tone 65% $wallpaper_output"
+ ["Solarize"]="magick $wallpaper_base -solarize 80% $wallpaper_output"
+ ["Sharpen"]="magick $wallpaper_base -sharpen 0x5 $wallpaper_output"
+ ["Vignette"]="magick $wallpaper_base -vignette 0x3 $wallpaper_output"
+ ["Vignette-black"]="magick $wallpaper_base -background black -vignette 0x3 $wallpaper_output"
+ ["Zoomed"]="magick $wallpaper_base -gravity Center -extent 1:1 $wallpaper_output"
+)
+persist_wallpaper_state() {
+ local source_wallpaper="$1"
+ [ -n "$source_wallpaper" ] && [ -f "$source_wallpaper" ] || return 0
+
+ mkdir -p "$(dirname "$wallpaper_current")" "$(dirname "$wallpaper_link")"
+ cp -f "$source_wallpaper" "$wallpaper_current" || true
+ ln -sf "$source_wallpaper" "$wallpaper_link" || true
+
+ if [[ -n "$focused_monitor" ]]; then
+ cp -f "$source_wallpaper" "$per_monitor_wallpaper_current" || true
+ ln -sf "$source_wallpaper" "$per_monitor_wallpaper_link" || true
+ fi
+}
+
+# Function to apply no effects
+no-effects() {
+ local resize_mode
+ resize_mode="$(wallpaper_resize_mode "$wallpaper_base" "$focused_monitor")"
+ "$WWW_CMD" img -o "$focused_monitor" --resize "$resize_mode" "$wallpaper_base" "${SWWW_PARAMS[@]}" || return 1
+ persist_wallpaper_state "$wallpaper_base"
+
+ notify-send -u low -i "$iDIR/ja.png" "No wallpaper" "effects applied"
+ # copying wallpaper for rofi menu
+ cp "$wallpaper_base" "$wallpaper_output"
+}
+
+# Function to run rofi menu
+main() {
+ # Populate rofi menu options
+ options=("No Effects")
+ for effect in "${!effects[@]}"; do
+ [[ "$effect" != "No Effects" ]] && options+=("$effect")
+ done
+
+ choice=$(printf "%s\n" "${options[@]}" | LC_COLLATE=C sort | rofi -dmenu -i -config $rofi_theme)
+
+ # Process user choice
+ if [[ -n "$choice" ]]; then
+ if [[ -f "$per_monitor_wallpaper_base" ]]; then
+ wallpaper_base="$per_monitor_wallpaper_base"
+ fi
+ if [[ ! -f "$wallpaper_base" ]]; then
+ mkdir -p "$(dirname "$wallpaper_base")"
+ cp -f "$wallpaper_current" "$wallpaper_base" || true
+ fi
+ if [[ "$choice" == "No Effects" ]]; then
+ no-effects
+ elif [[ "${effects[$choice]+exists}" ]]; then
+ # Apply selected effect
+ notify-send -u normal -i "$iDIR/ja.png" "Applying:" "$choice effects"
+ if ! eval "${effects[$choice]}"; then
+ notify-send -u critical -i "$iDIR/error.png" "Wallpaper effect failed" "$choice could not be applied"
+ return 1
+ fi
+
+ # intial kill process
+ for pid in swaybg mpvpaper; do
+ killall -SIGUSR1 "$pid" 2>/dev/null || true
+ done
+
+ sleep 1
+ local resize_mode
+ resize_mode="$(wallpaper_resize_mode "$wallpaper_output" "$focused_monitor")"
+ "$WWW_CMD" img -o "$focused_monitor" --resize "$resize_mode" "$wallpaper_output" "${SWWW_PARAMS[@]}"
+ persist_wallpaper_state "$wallpaper_output"
+ notify-send -u low -i "$iDIR/ja.png" "$choice" "effects applied"
+ else
+ echo "Effect '$choice' not recognized."
+ fi
+ fi
+}
+
+# Check if rofi is already running and kill it
+if pidof rofi > /dev/null; then
+ pkill rofi
+fi
+
+main
+
+sleep 1
diff --git a/config/hypr/UserScripts/WallpaperRandom.sh b/config/hypr/scripts/WallpaperRandom.sh
index aae80426..8480295c 100755
--- a/config/hypr/UserScripts/WallpaperRandom.sh
+++ b/config/hypr/scripts/WallpaperRandom.sh
@@ -9,11 +9,12 @@
PICTURES_DIR="$(xdg-user-dir PICTURES 2>/dev/null || echo "$HOME/Pictures")"
wallDIR="$PICTURES_DIR/wallpapers"
-SCRIPTSDIR="$HOME/.config/hypr/scripts"
+SCRIPTSDIR="${XDG_CONFIG_HOME:-$HOME/.config}/hypr/scripts"
# shellcheck source=/dev/null
. "$SCRIPTSDIR/WallpaperCmd.sh"
focused_monitor=$(hyprctl monitors -j | jq -r '.[] | select(.focused) | .name')
+wallpaper_base="${XDG_CONFIG_HOME:-$HOME/.config}/hypr/wallpaper_effects/.wallpaper_base_${focused_monitor}"
PICS=($(find -L "${wallDIR}" -type f \( -name "*.jpg" -o -name "*.jpeg" -o -name "*.png" -o -name "*.pnm" -o -name "*.tga" -o -name "*.tiff" -o -name "*.webp" -o -name "*.bmp" -o -name "*.farbfeld" -o -name "*.gif" \)))
RANDOMPICS=${PICS[ $RANDOM % ${#PICS[@]} ]}
@@ -36,6 +37,8 @@ resize_mode="$(wallpaper_resize_mode "$RANDOMPICS" "$focused_monitor")"
"$WWW_CMD" img -o "$focused_monitor" --resize "$resize_mode" "$RANDOMPICS" "${SWWW_PARAMS[@]}"
wait $!
+mkdir -p "$(dirname "$wallpaper_base")"
+cp -f "$RANDOMPICS" "$wallpaper_base" || true
if ! "$SCRIPTSDIR/WallustSwww.sh" "$RANDOMPICS"; then
notify-send -u critical "Wallust failed" "Wallpaper theme not refreshed"
exit 1
diff --git a/config/hypr/UserScripts/WallpaperSelect.sh b/config/hypr/scripts/WallpaperSelect.sh
index 2e5ecd86..a1684798 100755
--- a/config/hypr/UserScripts/WallpaperSelect.sh
+++ b/config/hypr/scripts/WallpaperSelect.sh
@@ -11,15 +11,16 @@
terminal=kitty
PICTURES_DIR="$(xdg-user-dir PICTURES 2>/dev/null || echo "$HOME/Pictures")"
wallDIR="$PICTURES_DIR/wallpapers"
-SCRIPTSDIR="$HOME/.config/hypr/scripts"
+SCRIPTSDIR="${XDG_CONFIG_HOME:-$HOME/.config}/hypr/scripts"
# shellcheck source=/dev/null
. "$SCRIPTSDIR/WallpaperCmd.sh"
-wallpaper_current="$HOME/.config/hypr/wallpaper_effects/.wallpaper_current"
-wallpaper_link="$HOME/.config/rofi/.current_wallpaper"
+wallpaper_current="${XDG_CONFIG_HOME:-$HOME/.config}/hypr/wallpaper_effects/.wallpaper_current"
+wallpaper_link="${XDG_CONFIG_HOME:-$HOME/.config}/rofi/.current_wallpaper"
+wallpaper_base="${XDG_CONFIG_HOME:-$HOME/.config}/hypr/wallpaper_effects/.wallpaper_base"
# Directory for swaync
-iDIR="$HOME/.config/swaync/images"
-iDIRi="$HOME/.config/swaync/icons"
+iDIR="${XDG_CONFIG_HOME:-$HOME/.config}/swaync/images"
+iDIRi="${XDG_CONFIG_HOME:-$HOME/.config}/swaync/icons"
# swww/awww transition config
FPS=60
@@ -40,11 +41,12 @@ if ! command -v bc &>/dev/null; then
fi
# Variables
-rofi_theme="$HOME/.config/rofi/config-wallpaper.rasi"
+rofi_theme="${XDG_CONFIG_HOME:-$HOME/.config}/rofi/config-wallpaper.rasi"
focused_monitor=$(hyprctl monitors -j | jq -r '.[] | select(.focused) | .name')
-per_monitor_wallpaper_current="$HOME/.config/hypr/wallpaper_effects/.wallpaper_current_${focused_monitor}"
-per_monitor_wallpaper_link="$HOME/.config/rofi/.current_wallpaper_${focused_monitor}"
+per_monitor_wallpaper_current="${XDG_CONFIG_HOME:-$HOME/.config}/hypr/wallpaper_effects/.wallpaper_current_${focused_monitor}"
+per_monitor_wallpaper_link="${XDG_CONFIG_HOME:-$HOME/.config}/rofi/.current_wallpaper_${focused_monitor}"
+per_monitor_wallpaper_base="${XDG_CONFIG_HOME:-$HOME/.config}/hypr/wallpaper_effects/.wallpaper_base_${focused_monitor}"
# Ensure focused_monitor is detected
if [[ -z "$focused_monitor" ]]; then
@@ -60,19 +62,14 @@ icon_size=$(echo "scale=1; ($monitor_height * 3) / ($scale_factor * 150)" | bc)
adjusted_icon_size=$(echo "$icon_size" | awk '{if ($1 < 15) $1 = 20; if ($1 > 25) $1 = 25; print $1}')
rofi_override="element-icon{size:${adjusted_icon_size}%;}"
-# Kill existing wallpaper daemons for video
+# Kill existing wallpaper daemons for video on the focused monitor only
kill_wallpaper_for_video() {
- "$WWW_CMD" kill 2>/dev/null
- pkill mpvpaper 2>/dev/null
- pkill swaybg 2>/dev/null
- pkill hyprpaper 2>/dev/null
+ pkill -f "mpvpaper.*$focused_monitor" 2>/dev/null
}
-# Kill existing wallpaper daemons for image
+# Kill existing wallpaper daemons for image on the focused monitor only
kill_wallpaper_for_image() {
- pkill mpvpaper 2>/dev/null
- pkill swaybg 2>/dev/null
- pkill hyprpaper 2>/dev/null
+ pkill -f "mpvpaper.*$focused_monitor" 2>/dev/null
}
# Retrieve wallpapers (both images & videos)
@@ -133,7 +130,7 @@ menu() {
modify_startup_config() {
local selected_file="$1"
- local startup_config="$HOME/.config/hypr/UserConfigs/Startup_Apps.conf"
+ local startup_config="${XDG_CONFIG_HOME:-$HOME/.config}/hypr/UserConfigs/Startup_Apps.conf"
# Check if it's a live wallpaper (video)
if [[ "$selected_file" =~ \.(mp4|mkv|mov|webm)$ ]]; then
@@ -185,6 +182,9 @@ apply_image_wallpaper() {
mkdir -p "$(dirname "$per_monitor_wallpaper_current")" "$(dirname "$per_monitor_wallpaper_link")"
ln -sf "$image_path" "$per_monitor_wallpaper_link" || true
cp -f "$image_path" "$per_monitor_wallpaper_current" || true
+ mkdir -p "$(dirname "$per_monitor_wallpaper_base")"
+ cp -f "$image_path" "$per_monitor_wallpaper_base" || true
+ cp -f "$image_path" "$wallpaper_base" || true
# Run additional scripts (pass the image path to avoid cache race conditions)
if ! "$SCRIPTSDIR/WallustSwww.sh" "$image_path"; then
@@ -207,8 +207,8 @@ apply_video_wallpaper() {
fi
kill_wallpaper_for_video
- # Apply video wallpaper using mpvpaper
- mpvpaper '*' -o "load-scripts=no no-audio --loop" "$video_path" &
+ # Apply video wallpaper only to the focused monitor
+ mpvpaper "$focused_monitor" -o "load-scripts=no no-audio --loop" "$video_path" &
}
# Main function
diff --git a/config/hypr/scripts/WallustConfig.sh b/config/hypr/scripts/WallustConfig.sh
index 44ddff0b..6605a084 100755
--- a/config/hypr/scripts/WallustConfig.sh
+++ b/config/hypr/scripts/WallustConfig.sh
@@ -8,7 +8,7 @@
# Wallust version compatibility helpers
#
# Purpose:
-# - Wallust v3 reads ~/.config/wallust/wallust.toml (this repo ships a v3 config)
+# - Wallust v3 reads ${XDG_CONFIG_HOME:-$HOME/.config}/wallust/wallust.toml (this repo ships a v3 config)
# - Wallust v4 alpha uses a different config schema; users frequently install it
# via wallust-git, which will fail to parse the v3 config.
#
@@ -31,8 +31,8 @@ wallust_prepare_args() {
# Wallust v4 supports -C/--config-file.
if [ -n "$major" ] && [ "$major" -ge 4 ]; then
- local v4_cfg="$HOME/.config/wallust/wallust-v4.toml"
- local v4_kitty_cfg="$HOME/.config/wallust/wallust-kitty-v4.toml"
+ local v4_cfg="${XDG_CONFIG_HOME:-$HOME/.config}/wallust/wallust-v4.toml"
+ local v4_kitty_cfg="${XDG_CONFIG_HOME:-$HOME/.config}/wallust/wallust-kitty-v4.toml"
if [ -f "$v4_cfg" ]; then
wallust_args=(-C "$v4_cfg")
diff --git a/config/hypr/scripts/WallustSwww.sh b/config/hypr/scripts/WallustSwww.sh
index 3472d519..7807cf4c 100755
--- a/config/hypr/scripts/WallustSwww.sh
+++ b/config/hypr/scripts/WallustSwww.sh
@@ -13,15 +13,19 @@ set -euo pipefail
wallust_args=()
wallust_kitty_args=()
# shellcheck source=/dev/null
-if [ -f "$HOME/.config/hypr/scripts/WallustConfig.sh" ]; then
- . "$HOME/.config/hypr/scripts/WallustConfig.sh"
+if [ -f "${XDG_CONFIG_HOME:-$HOME/.config}/hypr/scripts/WallustConfig.sh" ]; then
+ . "${XDG_CONFIG_HOME:-$HOME/.config}/hypr/scripts/WallustConfig.sh"
fi
have_notify() { command -v notify-send >/dev/null 2>&1; }
wallust_log="${XDG_CACHE_HOME:-$HOME/.cache}/wallust/wallust-swww.log"
mkdir -p "$(dirname "$wallust_log")"
capture_current_layout() {
+ if [ -x "${XDG_CONFIG_HOME:-$HOME/.config}/hypr/scripts/ChangeLayout.sh" ]; then
+ "${XDG_CONFIG_HOME:-$HOME/.config}/hypr/scripts/ChangeLayout.sh" --no-notify current 2>/dev/null | awk 'NF {print; exit}'
+ return 0
+ fi
if command -v jq >/dev/null 2>&1; then
- hyprctl -j getoption general:layout 2>/dev/null | jq -r '.str // empty'
+ hyprctl -j activeworkspace 2>/dev/null | jq -r '.tiledLayout // .tiled_layout // empty'
else
hyprctl getoption general:layout 2>/dev/null | awk 'NR==1 {print $2}'
fi
@@ -30,13 +34,9 @@ restore_layout_after_reload() {
local layout="$1"
[ -n "$layout" ] || return 0
- if [ -x "$HOME/.config/hypr/scripts/ChangeLayout.sh" ]; then
- if "$HOME/.config/hypr/scripts/ChangeLayout.sh" --no-notify "$layout" >/dev/null 2>&1; then
- return 0
- fi
+ if [ -x "${XDG_CONFIG_HOME:-$HOME/.config}/hypr/scripts/ChangeLayout.sh" ]; then
+ "${XDG_CONFIG_HOME:-$HOME/.config}/hypr/scripts/ChangeLayout.sh" --no-notify "$layout" >/dev/null 2>&1 || true
fi
-
- hyprctl keyword general:layout "$layout" >/dev/null 2>&1 || true
}
reload_hypr_preserve_layout() {
command -v hyprctl >/dev/null 2>&1 || return 0
@@ -49,11 +49,11 @@ reload_hypr_preserve_layout() {
restore_layout_after_reload "$active_layout"
}
ensure_wallust_waybar_style() {
- local waybar_style="$HOME/.config/waybar/style.css"
- local colors_file="$HOME/.config/waybar/wallust/colors-waybar.css"
- local styles_dir="$HOME/.config/waybar/style"
+ local waybar_style="${XDG_CONFIG_HOME:-$HOME/.config}/waybar/style.css"
+ local colors_file="${XDG_CONFIG_HOME:-$HOME/.config}/waybar/wallust/colors-waybar.css"
+ local styles_dir="${XDG_CONFIG_HOME:-$HOME/.config}/waybar/style"
[ -f "$colors_file" ] || return 0
- if [ -f "$waybar_style" ] && grep -q 'colors-waybar.css' "$waybar_style"; then
+ if [ -f "$waybar_style" ]; then
return 0
fi
local candidates=(
@@ -88,8 +88,8 @@ else
cache_dir="$HOME/.cache/swww/"
cache_dir_fallback="$HOME/.cache/awww/"
fi
-rofi_link="$HOME/.config/rofi/.current_wallpaper"
-wallpaper_current="$HOME/.config/hypr/wallpaper_effects/.wallpaper_current"
+rofi_link="${XDG_CONFIG_HOME:-$HOME/.config}/rofi/.current_wallpaper"
+wallpaper_current="${XDG_CONFIG_HOME:-$HOME/.config}/hypr/wallpaper_effects/.wallpaper_current"
read_cached_wallpaper() {
local cache_file="$1"
if [[ -f "$cache_file" ]]; then
@@ -163,7 +163,7 @@ mkdir -p "$(dirname "$wallpaper_current")"
cp -f "$wallpaper_path" "$wallpaper_current" || true
# Ensure Ghostty directory exists so Wallust can write target even if Ghostty isn't installed
-mkdir -p "$HOME/.config/ghostty" || true
+mkdir -p "${XDG_CONFIG_HOME:-$HOME/.config}/ghostty" || true
wait_for_templates() {
local start_ts="$1"
shift
@@ -188,7 +188,7 @@ wait_for_templates() {
return 1
}
-# Run wallust (silent) to regenerate templates defined in ~/.config/wallust/wallust.toml
+# Run wallust (silent) to regenerate templates defined in ${XDG_CONFIG_HOME:-$HOME/.config}/wallust/wallust.toml
# -s is used in this repo to keep things quiet and avoid extra prompts
start_ts=$(date +%s)
if ! wallust "${wallust_args[@]}" run -s "$wallpaper_path" >"$wallust_log" 2>&1; then
@@ -197,9 +197,9 @@ if ! wallust "${wallust_args[@]}" run -s "$wallpaper_path" >"$wallust_log" 2>&1;
exit 1
fi
wallust_targets=(
- "$HOME/.config/waybar/wallust/colors-waybar.css"
- "$HOME/.config/rofi/wallust/colors-rofi.rasi"
- "$HOME/.config/hypr/wallust/wallust-hyprland.conf"
+ "${XDG_CONFIG_HOME:-$HOME/.config}/waybar/wallust/colors-waybar.css"
+ "${XDG_CONFIG_HOME:-$HOME/.config}/rofi/wallust/colors-rofi.rasi"
+ "${XDG_CONFIG_HOME:-$HOME/.config}/hypr/wallust/wallust-hyprland.conf"
)
if ! wait_for_templates "$start_ts" "${wallust_targets[@]}"; then
have_notify && notify-send -u critical -a WallustSwww \
@@ -210,7 +210,7 @@ ensure_wallust_waybar_style
reload_running_cava_colors
# Normalize Rofi selection colors to a brighter accent and readable foreground
-rofi_colors="$HOME/.config/rofi/wallust/colors-rofi.rasi"
+rofi_colors="${XDG_CONFIG_HOME:-$HOME/.config}/rofi/wallust/colors-rofi.rasi"
if [ -f "$rofi_colors" ]; then
accent_hex=$(sed -n 's/^\s*color13:\s*\(#[0-9A-Fa-f]\{6\}\).*/\1/p' "$rofi_colors" | head -n1)
[ -z "$accent_hex" ] && accent_hex=$(sed -n 's/^\s*color12:\s*\(#[0-9A-Fa-f]\{6\}\).*/\1/p' "$rofi_colors" | head -n1)
@@ -244,7 +244,7 @@ run_wallust_with_config() {
# Legacy fallback for builds that still honor env-based config override.
WALLUST_CONFIG="$cfg" wallust run -s "$wallpaper_path" || true
}
-wallust_hypr_colors="$HOME/.config/hypr/wallust/wallust-hyprland.conf"
+wallust_hypr_colors="${XDG_CONFIG_HOME:-$HOME/.config}/hypr/wallust/wallust-hyprland.conf"
extract_wallust_hex() {
local key="$1"
awk -v key="$key" '
@@ -274,7 +274,7 @@ apply_hypr_border_fallback() {
}
apply_hypr_gap_fallback() {
- local decorations_lua="$HOME/.config/hypr/UserConfigs/user_decorations.lua"
+ local decorations_lua="${XDG_CONFIG_HOME:-$HOME/.config}/hypr/UserConfigs/user_decorations.lua"
[ -s "$decorations_lua" ] || return 0
local gaps_in gaps_out border_size
gaps_in="$(sed -n 's/^[[:space:]]*gaps_in[[:space:]]*=[[:space:]]*\([0-9]\+\).*/\1/p' "$decorations_lua" | head -n1)"
@@ -289,9 +289,9 @@ apply_hypr_gap_fallback() {
# Apply Hyprland updates immediately to avoid delayed border/gap changes.
reload_hypr_preserve_layout
-kitty_cfg="$HOME/.config/wallust/wallust-kitty.toml"
+kitty_cfg="${XDG_CONFIG_HOME:-$HOME/.config}/wallust/wallust-kitty.toml"
if [ "${#wallust_kitty_args[@]}" -gt 0 ]; then
- kitty_cfg="$HOME/.config/wallust/wallust-kitty-v4.toml"
+ kitty_cfg="${XDG_CONFIG_HOME:-$HOME/.config}/wallust/wallust-kitty-v4.toml"
fi
(
if [ -f "$kitty_cfg" ]; then
@@ -300,7 +300,7 @@ fi
# Reload kitty colors when wallpaper-based theme is active.
# Use SIGUSR1 directly to avoid extra latency from kitty remote-control calls.
- kitty_wallust_theme="$HOME/.config/kitty/kitty-themes/01-Wallust.conf"
+ kitty_wallust_theme="${XDG_CONFIG_HOME:-$HOME/.config}/kitty/kitty-themes/01-Wallust.conf"
if [ -s "$kitty_wallust_theme" ]; then
if pidof kitty >/dev/null 2>&1; then
for pid in $(pidof kitty); do
@@ -310,13 +310,13 @@ fi
fi
# Normalize Ghostty palette syntax in case ':' was used by older files
- if [ -f "$HOME/.config/ghostty/wallust.conf" ]; then
- sed -i -E 's/^(\s*palette\s*=\s*)([0-9]{1,2}):/\1\2=/' "$HOME/.config/ghostty/wallust.conf" 2>/dev/null || true
+ if [ -f "${XDG_CONFIG_HOME:-$HOME/.config}/ghostty/wallust.conf" ]; then
+ sed -i -E 's/^(\s*palette\s*=\s*)([0-9]{1,2}):/\1\2=/' "${XDG_CONFIG_HOME:-$HOME/.config}/ghostty/wallust.conf" 2>/dev/null || true
fi
# Light wait for Ghostty colors file to be present then signal Ghostty to reload (SIGUSR2)
for _ in 1 2 3; do
- [ -s "$HOME/.config/ghostty/wallust.conf" ] && break
+ [ -s "${XDG_CONFIG_HOME:-$HOME/.config}/ghostty/wallust.conf" ] && break
sleep 0.1
done
if pidof ghostty >/dev/null; then
diff --git a/config/hypr/scripts/WaybarLayout.sh b/config/hypr/scripts/WaybarLayout.sh
index 66d45a07..51e93bb3 100755
--- a/config/hypr/scripts/WaybarLayout.sh
+++ b/config/hypr/scripts/WaybarLayout.sh
@@ -10,10 +10,10 @@
IFS=$'\n\t'
# Define directories
-waybar_layouts="$HOME/.config/waybar/configs"
-waybar_config="$HOME/.config/waybar/config"
-SCRIPTSDIR="$HOME/.config/hypr/scripts"
-rofi_config="$HOME/.config/rofi/config-waybar-layout.rasi"
+waybar_layouts="${XDG_CONFIG_HOME:-$HOME/.config}/waybar/configs"
+waybar_config="${XDG_CONFIG_HOME:-$HOME/.config}/waybar/config"
+SCRIPTSDIR="${XDG_CONFIG_HOME:-$HOME/.config}/hypr/scripts"
+rofi_config="${XDG_CONFIG_HOME:-$HOME/.config}/rofi/config-waybar-layout.rasi"
msg=' 🎌 NOTE: Some waybar LAYOUT NOT fully compatible with some STYLES'
# Apply selected configuration
diff --git a/config/hypr/scripts/WaybarScripts.sh b/config/hypr/scripts/WaybarScripts.sh
index afb55712..dfd175f1 100755
--- a/config/hypr/scripts/WaybarScripts.sh
+++ b/config/hypr/scripts/WaybarScripts.sh
@@ -5,10 +5,10 @@
# License: GNU GPLv3
# SPDX-License-Identifier: GPL-3.0-or-later
# ==================================================
-# This file used on waybar modules sourcing defaults set in $HOME/.config/hypr/UserConfigs/01-UserDefaults.conf
+# This file used on waybar modules sourcing defaults set in ${XDG_CONFIG_HOME:-$HOME/.config}/hypr/UserConfigs/01-UserDefaults.conf
# Define the path to the config file
-config_file=$HOME/.config/hypr/UserConfigs/01-UserDefaults.conf
+config_file=${XDG_CONFIG_HOME:-$HOME/.config}/hypr/UserConfigs/01-UserDefaults.conf
# Check if the config file exists
if [[ ! -f "$config_file" ]]; then
@@ -31,7 +31,7 @@ fi
# Execute accordingly based on the passed argument
launch_files() {
if [[ -z "$files" ]]; then
- notify-send -u low -i "$HOME/.config/swaync/images/error.png" "Waybar: files" "Set \$files in 01-UserDefaults.conf or install a default file manager."
+ notify-send -u low -i "${XDG_CONFIG_HOME:-$HOME/.config}/swaync/images/error.png" "Waybar: files" "Set \$files in 01-UserDefaults.conf or install a default file manager."
return 1
fi
eval "$files &"
diff --git a/config/hypr/scripts/WaybarStyles.sh b/config/hypr/scripts/WaybarStyles.sh
index 611e0a12..ab951e22 100755
--- a/config/hypr/scripts/WaybarStyles.sh
+++ b/config/hypr/scripts/WaybarStyles.sh
@@ -10,10 +10,10 @@
IFS=$'\n\t'
# Define directories
-waybar_styles="$HOME/.config/waybar/style"
-waybar_style="$HOME/.config/waybar/style.css"
-SCRIPTSDIR="$HOME/.config/hypr/scripts"
-rofi_config="$HOME/.config/rofi/config-waybar-style.rasi"
+waybar_styles="${XDG_CONFIG_HOME:-$HOME/.config}/waybar/style"
+waybar_style="${XDG_CONFIG_HOME:-$HOME/.config}/waybar/style.css"
+SCRIPTSDIR="${XDG_CONFIG_HOME:-$HOME/.config}/hypr/scripts"
+rofi_config="${XDG_CONFIG_HOME:-$HOME/.config}/rofi/config-waybar-style.rasi"
msg=' 🎌 NOTE: Some waybar STYLES NOT fully compatible with some LAYOUTS'
# Apply selected style
diff --git a/config/hypr/UserScripts/ZshChangeTheme.sh b/config/hypr/scripts/ZshChangeTheme.sh
index 94c1b448..21049317 100755
--- a/config/hypr/UserScripts/ZshChangeTheme.sh
+++ b/config/hypr/scripts/ZshChangeTheme.sh
@@ -11,8 +11,8 @@
# after choosing theme, TTY need to be closed and re-open
# Variables
-iDIR="$HOME/.config/swaync/images"
-rofi_theme="$HOME/.config/rofi/config-zsh-theme.rasi"
+iDIR="${XDG_CONFIG_HOME:-$HOME/.config}/swaync/images"
+rofi_theme="${XDG_CONFIG_HOME:-$HOME/.config}/rofi/config-zsh-theme.rasi"
if [ -n "$(grep -i nixos < /etc/os-release)" ]; then
notify-send -i "$iDIR/note.png" "NOT Supported" "Sorry NixOS does not support this KooL feature"
diff --git a/config/hypr/scripts/fastfetch-wrapper.sh b/config/hypr/scripts/fastfetch-wrapper.sh
index ad5f7873..ea76afff 100755
--- a/config/hypr/scripts/fastfetch-wrapper.sh
+++ b/config/hypr/scripts/fastfetch-wrapper.sh
@@ -6,7 +6,7 @@ SPECIFIC_ID=$ID
FAMILY_ID=$ID_LIKE
# 2. Define your asset directory
-ASSET_DIR="$HOME/.config/fastfetch/images"
+ASSET_DIR="${XDG_CONFIG_HOME:-$HOME/.config}/fastfetch/images"
# 3. Selection Logic
if [ -f "$ASSET_DIR/$SPECIFIC_ID.png" ]; then
diff --git a/config/hypr/scripts/kooldots-add-ssh-agent.sh b/config/hypr/scripts/kooldots-add-ssh-agent.sh
new file mode 100755
index 00000000..56a62437
--- /dev/null
+++ b/config/hypr/scripts/kooldots-add-ssh-agent.sh
@@ -0,0 +1,310 @@
+#!/usr/bin/env bash
+# ==================================================
+# KoolDots (2026)
+# Project URL: https://github.com/LinuxBeginnings
+# License: GNU GPLv3
+# SPDX-License-Identifier: GPL-3.0-or-later
+# ==================================================
+# Adds a user ssh-agent systemd service and wires SSH_AUTH_SOCK into Hyprland.
+
+set -euo pipefail
+
+SCRIPT_NAME="$(basename "$0")"
+CONFIG_HOME="${XDG_CONFIG_HOME:-$HOME/.config}"
+HYPR_DIR="$CONFIG_HOME/hypr"
+USER_CONFIGS_DIR="$HYPR_DIR/UserConfigs"
+ENV_CONF="$USER_CONFIGS_DIR/ENVariables.conf"
+ENV_LUA="$USER_CONFIGS_DIR/user_env.lua"
+SYSTEMD_USER_DIR="$CONFIG_HOME/systemd/user"
+SERVICE_NAME="ssh-agent"
+SERVICE_FILE="$SYSTEMD_USER_DIR/${SERVICE_NAME}.service"
+SSH_CONFIG="$HOME/.ssh/config"
+
+DRY_RUN=0
+ACTION="status"
+SHOW_SYSTEMD_STATUS=0
+SHOW_HELP=0
+
+info() { printf '[INFO] %s\n' "$*"; }
+warn() { printf '[WARN] %s\n' "$*"; }
+step() { printf '[STEP] %s\n' "$*"; }
+
+usage() {
+ cat <<USAGE
+Usage: $SCRIPT_NAME [options]
+
+Options:
+ -h, --help Show help.
+ -d, --dry-run Show what would change without writing files or running systemctl.
+ -s, --status Show installed/config status and systemctl status output.
+ -e, --enable Install/enable the user service.
+ -D, --disable Stop/disable the user service.
+ -r, --remove Disable and remove the user service file.
+
+Notes:
+ --disable has a short flag -D to avoid clashing with -d (dry-run).
+ Set HYPR_CONFIG_MODE=lua|conf|hyprlang|auto to override detection.
+ Keys must be loaded separately (e.g. ssh-add ~/.ssh/id_ed25519). AddKeysToAgent only auto-adds after first use.
+USAGE
+}
+
+ORIGINAL_ARGS=$#
+if [ "$ORIGINAL_ARGS" -eq 0 ]; then
+ SHOW_HELP=1
+ SHOW_SYSTEMD_STATUS=1
+fi
+
+while [ "$#" -gt 0 ]; do
+ case "$1" in
+ -h|--help)
+ usage
+ exit 0
+ ;;
+ -d|--dry-run)
+ DRY_RUN=1
+ ;;
+ -s|--status)
+ ACTION="status"
+ SHOW_SYSTEMD_STATUS=1
+ ;;
+ -e|--enable)
+ ACTION="enable"
+ ;;
+ -D|--disable|--disable-service|--disable)
+ ACTION="disable"
+ ;;
+ -r|--remove)
+ ACTION="remove"
+ ;;
+ *)
+ warn "Unknown option: $1"
+ usage
+ exit 1
+ ;;
+ esac
+ shift
+done
+
+run_cmd() {
+ if [ "$DRY_RUN" -eq 1 ]; then
+ printf '[DRY-RUN] %s\n' "$*"
+ return 0
+ fi
+ "$@"
+}
+
+detect_hypr_config_mode() {
+ local lua_entry="$HYPR_DIR/hyprland.lua"
+ local legacy_lua_entry="$CONFIG_HOME/hyprland.lua"
+ local mode="${HYPR_CONFIG_MODE:-}"
+ if [ -n "$mode" ]; then
+ case "${mode,,}" in
+ lua) echo "lua"; return ;;
+ conf|hyprlang) echo "conf"; return ;;
+ auto) ;;
+ *) ;;
+ esac
+ fi
+ if [ -f "$lua_entry" ] || [ -f "$legacy_lua_entry" ]; then
+ echo "lua"
+ else
+ echo "conf"
+ fi
+}
+
+service_exists() {
+ [ -f "$SERVICE_FILE" ]
+}
+
+systemctl_user() {
+ if ! command -v systemctl >/dev/null 2>&1; then
+ warn "systemctl not found; cannot manage the user service."
+ return 1
+ fi
+ run_cmd systemctl --user "$@"
+}
+
+service_status_summary() {
+ local enabled="unknown"
+ local active="unknown"
+ if command -v systemctl >/dev/null 2>&1; then
+ enabled="$(systemctl --user is-enabled "$SERVICE_NAME" 2>/dev/null || true)"
+ active="$(systemctl --user is-active "$SERVICE_NAME" 2>/dev/null || true)"
+ fi
+ if service_exists; then
+ info "Service file exists: $SERVICE_FILE"
+ else
+ warn "Service file missing: $SERVICE_FILE"
+ fi
+ info "Service enabled: ${enabled:-unknown}"
+ info "Service active: ${active:-unknown}"
+}
+
+env_present_conf() {
+ [ -f "$ENV_CONF" ] && grep -Eq '^[[:space:]]*env[[:space:]]*=[[:space:]]*SSH_AUTH_SOCK,' "$ENV_CONF"
+}
+
+env_present_lua() {
+ [ -f "$ENV_LUA" ] && grep -Eq 'hl\.env\([[:space:]]*["'\'']SSH_AUTH_SOCK["'\'']' "$ENV_LUA"
+}
+
+ensure_env_conf() {
+ if env_present_conf; then
+ info "Hyprland ENV already set in $ENV_CONF"
+ return 0
+ fi
+ step "Adding SSH_AUTH_SOCK to $ENV_CONF"
+ if [ "$DRY_RUN" -eq 1 ]; then
+ printf '[DRY-RUN] append SSH_AUTH_SOCK to %s\n' "$ENV_CONF"
+ return 0
+ fi
+ mkdir -p "$(dirname "$ENV_CONF")"
+ touch "$ENV_CONF"
+ printf '\n# SSH agent socket\nenv = SSH_AUTH_SOCK,$XDG_RUNTIME_DIR/ssh-agent.socket\n' >> "$ENV_CONF"
+}
+
+ensure_env_lua() {
+ if env_present_lua; then
+ info "Hyprland ENV already set in $ENV_LUA"
+ return 0
+ fi
+ step "Adding SSH_AUTH_SOCK to $ENV_LUA"
+ if [ "$DRY_RUN" -eq 1 ]; then
+ printf '[DRY-RUN] append SSH_AUTH_SOCK to %s\n' "$ENV_LUA"
+ return 0
+ fi
+ mkdir -p "$(dirname "$ENV_LUA")"
+ touch "$ENV_LUA"
+ cat <<'LUA' >> "$ENV_LUA"
+
+-- SSH agent socket
+hl.env("SSH_AUTH_SOCK", (os.getenv("XDG_RUNTIME_DIR") or "") .. "/ssh-agent.socket")
+LUA
+}
+
+ensure_ssh_config() {
+ if [ ! -f "$SSH_CONFIG" ]; then
+ warn "$SSH_CONFIG not found; skipping AddKeysToAgent check."
+ return 0
+ fi
+ if grep -Eq '^[[:space:]]*AddKeysToAgent[[:space:]]+yes' "$SSH_CONFIG"; then
+ info "AddKeysToAgent already set in $SSH_CONFIG"
+ return 0
+ fi
+ step "Adding AddKeysToAgent to $SSH_CONFIG"
+ if [ "$DRY_RUN" -eq 1 ]; then
+ printf '[DRY-RUN] append AddKeysToAgent to %s\n' "$SSH_CONFIG"
+ return 0
+ fi
+ printf '\n# Automatically add keys to ssh-agent\nAddKeysToAgent yes\n' >> "$SSH_CONFIG"
+}
+
+create_service_file() {
+ if service_exists; then
+ info "Service file already exists: $SERVICE_FILE"
+ return 0
+ fi
+ step "Creating systemd user service file"
+ if [ "$DRY_RUN" -eq 1 ]; then
+ printf '[DRY-RUN] create service file %s\n' "$SERVICE_FILE"
+ return 0
+ fi
+ mkdir -p "$SYSTEMD_USER_DIR"
+ cat <<'EOF' > "$SERVICE_FILE"
+[Unit]
+Description=SSH key agent
+
+[Service]
+Type=simple
+Environment=SSH_AUTH_SOCK=%t/ssh-agent.socket
+ExecStart=/usr/bin/ssh-agent -D -a $SSH_AUTH_SOCK
+
+[Install]
+WantedBy=default.target
+EOF
+}
+
+enable_service() {
+ step "Enabling ssh-agent user service"
+ systemctl_user daemon-reload
+ systemctl_user enable --now "$SERVICE_NAME"
+}
+
+disable_service() {
+ step "Disabling ssh-agent user service"
+ systemctl_user disable --now "$SERVICE_NAME"
+}
+
+remove_service() {
+ step "Removing ssh-agent user service"
+ if service_exists; then
+ disable_service || true
+ if [ "$DRY_RUN" -eq 1 ]; then
+ printf '[DRY-RUN] remove service file %s\n' "$SERVICE_FILE"
+ else
+ rm -f "$SERVICE_FILE"
+ fi
+ systemctl_user daemon-reload
+ else
+ warn "Service file not found; nothing to remove."
+ fi
+}
+
+show_status() {
+ info "Detected Hyprland config mode: $(detect_hypr_config_mode)"
+ service_status_summary
+ info "SSH_AUTH_SOCK in ENVariables.conf: $(env_present_conf && echo yes || echo no)"
+ info "SSH_AUTH_SOCK in user_env.lua: $(env_present_lua && echo yes || echo no)"
+ if [ -f "$SSH_CONFIG" ]; then
+ info "AddKeysToAgent in ~/.ssh/config: $(grep -Eq '^[[:space:]]*AddKeysToAgent[[:space:]]+yes' "$SSH_CONFIG" && echo yes || echo no)"
+ else
+ warn "~/.ssh/config not found."
+ fi
+ if [ "$SHOW_SYSTEMD_STATUS" -eq 1 ] && command -v systemctl >/dev/null 2>&1; then
+ systemctl --user status "$SERVICE_NAME" || true
+ fi
+}
+
+apply_hypr_env() {
+ local mode
+ mode="$(detect_hypr_config_mode)"
+ if [ "$mode" = "lua" ]; then
+ ensure_env_lua
+ else
+ ensure_env_conf
+ fi
+}
+
+if [ "$SHOW_HELP" -eq 1 ]; then
+ usage
+fi
+
+case "$ACTION" in
+ status)
+ show_status
+ ;;
+ enable)
+ step "Step 1/4: Ensure service file"
+ create_service_file
+ step "Step 2/4: Enable user service"
+ enable_service
+ step "Step 3/4: Update Hyprland environment"
+ apply_hypr_env
+ step "Step 4/4: Update SSH config"
+ ensure_ssh_config
+ show_status
+ ;;
+ disable)
+ disable_service
+ show_status
+ ;;
+ remove)
+ remove_service
+ show_status
+ ;;
+ *)
+ warn "Unknown action: $ACTION"
+ usage
+ exit 1
+ ;;
+esac
diff --git a/config/hypr/scripts/rofi-emacs-keybinds b/config/hypr/scripts/rofi-emacs-keybinds
index bee1a54d..6617d3b0 100755
--- a/config/hypr/scripts/rofi-emacs-keybinds
+++ b/config/hypr/scripts/rofi-emacs-keybinds
@@ -2,7 +2,7 @@
set -u
set -o pipefail
-ROFI_CONFIG="${HOME}/.config/rofi/config-emacs-keybinds.rasi"
+ROFI_CONFIG="${XDG_CONFIG_HOME:-$HOME/.config}/rofi/config-emacs-keybinds.rasi"
CACHE_FILE="${HOME}/.cache/rofi-emacs-keybinds.txt"
if [[ ! -s "${CACHE_FILE}" ]]; then
diff --git a/config/hypr/scripts/rofi-ssh-menu.sh b/config/hypr/scripts/rofi-ssh-menu.sh
index d1640c66..1b058f59 100755
--- a/config/hypr/scripts/rofi-ssh-menu.sh
+++ b/config/hypr/scripts/rofi-ssh-menu.sh
@@ -10,7 +10,7 @@
set -euo pipefail
SSH_CONFIG="${HOME}/.ssh/config"
-ROFI_CONFIG="${HOME}/.config/rofi/config.rasi"
+ROFI_CONFIG="${XDG_CONFIG_HOME:-$HOME/.config}/rofi/config.rasi"
MSG='Select a host to connect via SSH'
notify() {
diff --git a/config/hypr/scripts/sddm_wallpaper.sh b/config/hypr/scripts/sddm_wallpaper.sh
index deee938c..f30bac9b 100755
--- a/config/hypr/scripts/sddm_wallpaper.sh
+++ b/config/hypr/scripts/sddm_wallpaper.sh
@@ -7,69 +7,409 @@
# ==================================================
# SDDM Wallpaper and Wallust Colors Setter
-# for the upcoming changes on the simple_sddm_theme
-
# variables
terminal=kitty
PICTURES_DIR="$(xdg-user-dir PICTURES 2>/dev/null || echo "$HOME/Pictures")"
wallDIR="$PICTURES_DIR/wallpapers"
-SCRIPTSDIR="$HOME/.config/hypr/scripts"
-wallpaper_current="$HOME/.config/hypr/wallpaper_effects/.wallpaper_current"
-wallpaper_modified="$HOME/.config/hypr/wallpaper_effects/.wallpaper_modified"
+SCRIPTSDIR="${XDG_CONFIG_HOME:-$HOME/.config}/hypr/scripts"
+wallpaper_link="${XDG_CONFIG_HOME:-$HOME/.config}/rofi/.current_wallpaper"
+wallpaper_current="${XDG_CONFIG_HOME:-$HOME/.config}/hypr/wallpaper_effects/.wallpaper_current"
+wallpaper_modified="${XDG_CONFIG_HOME:-$HOME/.config}/hypr/wallpaper_effects/.wallpaper_modified"
+rofi_theme="${XDG_CONFIG_HOME:-$HOME/.config}/rofi/config-wallpaper.rasi"
+# Directory for swaync
+iDIR="${XDG_CONFIG_HOME:-$HOME/.config}/swaync/images"
+iDIRi="${XDG_CONFIG_HOME:-$HOME/.config}/swaync/icons"
+video_preview_cache="$HOME/.cache/video_preview"
+sddm_video_cache="$HOME/.cache/sddm_preview"
+# shellcheck source=/dev/null
+. "$SCRIPTSDIR/WallpaperCmd.sh" 2>/dev/null || true
+
+find_notify_send() {
+ local candidate=""
+ if candidate="$(command -v notify-send 2>/dev/null)"; then
+ if [[ -n "$candidate" && -x "$candidate" ]]; then
+ printf '%s\n' "$candidate"
+ return 0
+ fi
+ fi
+ for candidate in /usr/bin/notify-send /usr/sbin/notify-send /bin/notify-send /sbin/notify-send; do
+ if [[ -x "$candidate" ]]; then
+ printf '%s\n' "$candidate"
+ return 0
+ fi
+ done
+ return 1
+}
+
+NOTIFY_SEND_BIN="$(find_notify_send || true)"
+
+notify_err() {
+ if [[ -n "$NOTIFY_SEND_BIN" ]]; then
+ if [[ -f "$iDIR/error.png" ]]; then
+ "$NOTIFY_SEND_BIN" -i "$iDIR/error.png" "SDDM" "$1"
+ else
+ "$NOTIFY_SEND_BIN" "SDDM" "$1"
+ fi
+ fi
+}
+
+notify_ok() {
+ if [[ -n "$NOTIFY_SEND_BIN" ]]; then
+ if [[ -f "$iDIR/ja.png" ]]; then
+ "$NOTIFY_SEND_BIN" -i "$iDIR/ja.png" "SDDM" "$1"
+ else
+ "$NOTIFY_SEND_BIN" "SDDM" "$1"
+ fi
+ fi
+}
+
+read_cached_wallpaper() {
+ local cache_file="$1"
+ [[ -f "$cache_file" ]] || return 1
+ awk 'NF && $0 !~ /^filter/ {print; exit}' "$cache_file"
+}
+
+read_wallpaper_from_query() {
+ local monitor="$1"
+ [[ -n "$monitor" ]] || return 1
+ [[ -n "${WWW_CMD:-}" ]] || return 1
+ command -v "$WWW_CMD" >/dev/null 2>&1 || return 1
+ "$WWW_CMD" query 2>/dev/null | awk -v mon="$monitor" '
+ {
+ line=$0
+ sub(/^Monitor[[:space:]]+/, "", line)
+ sub(/^:[[:space:]]*/, "", line)
+ mon_name=line
+ sub(/:.*/, "", mon_name)
+ gsub(/^[[:space:]]+|[[:space:]]+$/, "", mon_name)
+ if (mon_name != mon) next
+ path=line
+ sub(/^.*image:[[:space:]]*/, "", path)
+ gsub(/^[[:space:]]+|[[:space:]]+$/, "", path)
+ if (path != line && length(path) > 0) {
+ print path
+ exit
+ }
+ }
+ '
+}
+
+read_wallpaper_from_cache() {
+ local monitor="$1"
+ local cache_root="${WWW_CACHE_DIR:-$HOME/.cache/awww}"
+ local cache_file="$cache_root/$monitor"
+ local fallback_cache=""
+ local path=""
+
+ case "$cache_root" in
+ "$HOME/.cache/awww")
+ fallback_cache="$HOME/.cache/swww/$monitor"
+ ;;
+ "$HOME/.cache/swww")
+ fallback_cache="$HOME/.cache/awww/$monitor"
+ ;;
+ esac
+
+ path="$(read_cached_wallpaper "$cache_file" 2>/dev/null || true)"
+ if [[ -z "$path" && -n "$fallback_cache" ]]; then
+ path="$(read_cached_wallpaper "$fallback_cache" 2>/dev/null || true)"
+ fi
+
+ [[ -n "$path" && -f "$path" ]] || return 1
+ printf '%s\n' "$path"
+}
+
+calculate_rofi_icon_size() {
+ local monitor="$1"
+ local scale_factor=""
+ local monitor_height=""
+ local icon_size=""
+ local adjusted_icon_size=""
+
+ if [[ -z "$monitor" ]]; then
+ monitor="$(get_focused_monitor 2>/dev/null || true)"
+ fi
+
+ if [[ -z "$monitor" ]]; then
+ printf '22\n'
+ return 0
+ fi
+
+ if command -v hyprctl >/dev/null 2>&1 && command -v jq >/dev/null 2>&1 && command -v bc >/dev/null 2>&1; then
+ scale_factor="$(hyprctl monitors -j 2>/dev/null | jq -r --arg mon "$monitor" '.[] | select(.name == $mon) | .scale' | head -n1)"
+ monitor_height="$(hyprctl monitors -j 2>/dev/null | jq -r --arg mon "$monitor" '.[] | select(.name == $mon) | .height' | head -n1)"
+ if [[ -n "$scale_factor" && -n "$monitor_height" && "$scale_factor" != "null" && "$monitor_height" =~ ^[0-9]+$ ]]; then
+ icon_size="$(echo "scale=1; ($monitor_height * 3) / ($scale_factor * 150)" | bc 2>/dev/null || true)"
+ adjusted_icon_size="$(echo "$icon_size" | awk '{if ($1 < 15) $1 = 20; if ($1 > 25) $1 = 25; print int($1)}')"
+ if [[ "$adjusted_icon_size" =~ ^[0-9]+$ ]]; then
+ printf '%s\n' "$adjusted_icon_size"
+ return 0
+ fi
+ fi
+ fi
+
+ printf '22\n'
+}
+
+resolve_link_or_file() {
+ local path="$1"
+ local resolved=""
+ if [[ -L "$path" ]]; then
+ resolved="$(readlink -f "$path" 2>/dev/null || true)"
+ if [[ -n "$resolved" && -f "$resolved" ]]; then
+ printf '%s\n' "$resolved"
+ return 0
+ fi
+ fi
+ if [[ -f "$path" ]]; then
+ printf '%s\n' "$path"
+ return 0
+ fi
+ return 1
+}
+
+get_active_workspace_monitor() {
+ if ! command -v hyprctl >/dev/null 2>&1; then
+ return 1
+ fi
+ if command -v jq >/dev/null 2>&1; then
+ hyprctl activeworkspace -j 2>/dev/null | jq -r '.monitor // empty' | head -n1
+ else
+ hyprctl monitors 2>/dev/null | awk '/^Monitor/{name=$2} /focused: yes/{print name; exit}'
+ fi
+}
+
+get_focused_monitor() {
+ if ! command -v hyprctl >/dev/null 2>&1; then
+ return 1
+ fi
+ if command -v jq >/dev/null 2>&1; then
+ hyprctl monitors -j 2>/dev/null | jq -r '.[] | select(.focused) | .name' | head -n1
+ else
+ hyprctl monitors 2>/dev/null | awk '/^Monitor/{name=$2} /focused: yes/{print name; exit}'
+ fi
+}
+
+monitor_exists() {
+ local monitor="$1"
+ [[ -n "$monitor" ]] || return 1
+ command -v hyprctl >/dev/null 2>&1 || return 1
+ if command -v jq >/dev/null 2>&1; then
+ hyprctl monitors -j 2>/dev/null | jq -r --arg mon "$monitor" '.[] | select(.name == $mon) | .name' | grep -qx "$monitor"
+ else
+ hyprctl monitors 2>/dev/null | awk '/^Monitor/{print $2}' | grep -qx "$monitor"
+ fi
+}
+
+resolve_target_monitor() {
+ local requested="$1"
+ local monitor=""
+ if monitor_exists "$requested"; then
+ printf '%s\n' "$requested"
+ return 0
+ fi
+ monitor="$(get_active_workspace_monitor 2>/dev/null || true)"
+ if monitor_exists "$monitor"; then
+ printf '%s\n' "$monitor"
+ return 0
+ fi
+ monitor="$(get_focused_monitor 2>/dev/null || true)"
+ if [[ -n "$monitor" ]]; then
+ printf '%s\n' "$monitor"
+ return 0
+ fi
+ return 1
+}
+
+resolve_normal_wallpaper() {
+ local monitor="$1"
+ local path=""
+ local per_monitor_rofi_link=""
+ local per_monitor_current=""
+
+ if [[ -n "$monitor" ]]; then
+ per_monitor_rofi_link="${XDG_CONFIG_HOME:-$HOME/.config}/rofi/.current_wallpaper_${monitor}"
+ per_monitor_current="${XDG_CONFIG_HOME:-$HOME/.config}/hypr/wallpaper_effects/.wallpaper_current_${monitor}"
+
+ path="$(read_wallpaper_from_query "$monitor" 2>/dev/null || true)"
+ if [[ -z "$path" ]]; then
+ path="$(resolve_link_or_file "$per_monitor_rofi_link" 2>/dev/null || true)"
+ fi
+ if [[ -z "$path" ]]; then
+ path="$(resolve_link_or_file "$per_monitor_current" 2>/dev/null || true)"
+ fi
+ if [[ -z "$path" ]]; then
+ path="$(read_wallpaper_from_cache "$monitor" 2>/dev/null || true)"
+ fi
+ fi
+
+ if [[ -z "$path" ]]; then
+ path="$(resolve_link_or_file "$wallpaper_current" 2>/dev/null || true)"
+ fi
+ if [[ -z "$path" ]]; then
+ path="$(resolve_link_or_file "$wallpaper_link" 2>/dev/null || true)"
+ fi
+
+ [[ -n "$path" && -f "$path" ]] || return 1
+ printf '%s\n' "$path"
+}
+
+resolve_effects_wallpaper() {
+ local monitor="$1"
+ local path=""
+ local per_monitor_modified=""
+
+ if [[ -n "$monitor" ]]; then
+ per_monitor_modified="${XDG_CONFIG_HOME:-$HOME/.config}/hypr/wallpaper_effects/.wallpaper_modified_${monitor}"
+ path="$(resolve_link_or_file "$per_monitor_modified" 2>/dev/null || true)"
+ fi
+
+ if [[ -z "$path" ]]; then
+ path="$(resolve_link_or_file "$wallpaper_modified" 2>/dev/null || true)"
+ fi
+ if [[ -z "$path" ]]; then
+ path="$(resolve_normal_wallpaper "$monitor" 2>/dev/null || true)"
+ fi
+
+ [[ -n "$path" && -f "$path" ]] || return 1
+ printf '%s\n' "$path"
+}
+
+resolve_current_sddm_background() {
+ local sddm_simple="$1"
+ local candidate=""
+ for candidate in "$sddm_simple/Backgrounds/default" "$sddm_simple/Backgrounds/default.jpg" "$sddm_simple/Backgrounds/default.png"; do
+ if [[ -f "$candidate" ]]; then
+ printf '%s\n' "$candidate"
+ return 0
+ fi
+ done
+ return 1
+}
+
+extract_color() {
+ local key="$1"
+ local value
+ value="$(grep -oP "$key:\\s*\\K#[A-Fa-f0-9]+" "$rofi_wallust" | head -n1)"
+ printf '%s\n' "$value"
+}
+
+prepare_sddm_wallpaper() {
+ local selected_file="$1"
+ local target_monitor="$2"
+ local prepared_path="$selected_file"
+
+ if [[ ! -f "$selected_file" ]]; then
+ notify_err "Selected file not found for ${target_monitor:-current context}."
+ return 1
+ fi
+
+ if [[ "$selected_file" =~ \.(mp4|mkv|mov|webm|MP4|MKV|MOV|WEBM)$ ]]; then
+ if ! command -v ffmpeg >/dev/null 2>&1; then
+ notify_err "ffmpeg not found; cannot convert selected video wallpaper."
+ return 1
+ fi
+ mkdir -p "$sddm_video_cache"
+ local video_name
+ video_name="$(basename "$selected_file")"
+ prepared_path="$sddm_video_cache/${video_name}.png"
+ if ! ffmpeg -v error -y -i "$selected_file" -ss 00:00:01.000 -vframes 1 "$prepared_path"; then
+ notify_err "Could not generate preview from selected video wallpaper."
+ return 1
+ fi
+ fi
+
+ printf '%s\n' "$prepared_path"
+}
+
+# Parse arguments
+mode="effects" # default
+requested_monitor="${SDDM_TARGET_MONITOR:-${HYPRLOCK_TARGET_MONITOR:-}}"
+for arg in "$@"; do
+ case "$arg" in
+ --normal)
+ mode="normal"
+ ;;
+ --effects)
+ mode="effects"
+ ;;
+ --monitor=*)
+ requested_monitor="${arg#--monitor=}"
+ ;;
+ --*)
+ ;;
+ *)
+ if [[ -z "$requested_monitor" ]]; then
+ requested_monitor="$arg"
+ fi
+ ;;
+ esac
+done
+
# Resolve SDDM themes directory (standard paths and NixOS path)
sddm_themes_dir="/usr/share/sddm/themes"
-if [ ! -d "$sddm_themes_dir" ] && [ -d "/run/current-system/sw/share/sddm/themes" ]; then
+if [[ ! -d "$sddm_themes_dir" && -d "/run/current-system/sw/share/sddm/themes" ]]; then
sddm_themes_dir="/run/current-system/sw/share/sddm/themes"
fi
sddm_simple="$sddm_themes_dir/simple_sddm_2"
+sddm_theme_conf="$sddm_simple/theme.conf"
# rofi-wallust-sddm colors path
-rofi_wallust="$HOME/.config/rofi/wallust/colors-rofi.rasi"
-sddm_theme_conf="$sddm_simple/theme.conf"
+rofi_wallust="${XDG_CONFIG_HOME:-$HOME/.config}/rofi/wallust/colors-rofi.rasi"
if [[ ! -f "$rofi_wallust" ]]; then
- notify-send -i "$iDIR/error.png" "SDDM" "Wallust colors file not found ($rofi_wallust). Aborting."
+ notify_err "Wallust colors file not found ($rofi_wallust). Aborting."
+ exit 1
+fi
+if [[ ! -d "$sddm_simple/Backgrounds" ]]; then
+ notify_err "SDDM theme backgrounds not found ($sddm_simple/Backgrounds)."
+ exit 1
+fi
+if [[ ! -f "$sddm_theme_conf" ]]; then
+ notify_err "SDDM theme config not found ($sddm_theme_conf)."
+ exit 1
+fi
+if [[ ! -d "$wallDIR" ]]; then
+ notify_err "Wallpaper directory not found ($wallDIR)."
+ exit 1
+fi
+if ! command -v rofi >/dev/null 2>&1; then
+ notify_err "rofi not found."
+ exit 1
+fi
+if ! command -v "$terminal" >/dev/null 2>&1; then
+ notify_err "Terminal '$terminal' not found."
+ exit 1
+fi
+if ! command -v sudo >/dev/null 2>&1; then
+ notify_err "sudo not found."
exit 1
fi
-# Directory for swaync
-iDIR="$HOME/.config/swaync/images"
-iDIRi="$HOME/.config/swaync/icons"
-
-# Parse arguments
-mode="effects" # default
-if [[ "$1" == "--normal" ]]; then
- mode="normal"
-elif [[ "$1" == "--effects" ]]; then
- mode="effects"
+# Abort on NixOS where this repo doesn't manage SDDM and themes are typically read-only
+if hostnamectl 2>/dev/null | grep -q 'Operating System: NixOS'; then
+ notify_err "NixOS detected: skipping SDDM background change."
+ exit 0
fi
# Abort if SDDM is not running (avoid errors on non-SDDM systems)
if command -v systemctl >/dev/null 2>&1; then
if ! systemctl is-active --quiet sddm; then
- notify-send -i "$iDIR/error.png" "SDDM" "SDDM is not running. Skipping SDDM wallpaper update."
+ notify_err "SDDM is not running. Skipping SDDM wallpaper update."
exit 0
fi
elif ! pidof sddm >/dev/null 2>&1; then
- notify-send -i "$iDIR/error.png" "SDDM" "SDDM is not running. Skipping SDDM wallpaper update."
+ notify_err "SDDM is not running. Skipping SDDM wallpaper update."
exit 0
fi
# Extract colors from rofi wallust config
-
-extract_color() {
- local key="$1"
- local value
- value=$(grep -oP "$key:\s*\K#[A-Fa-f0-9]+" "$rofi_wallust" | head -n1)
- echo "$value"
-}
-
-color0=$(extract_color "color1")
-color1=$(extract_color "color0")
-color7=$(extract_color "color14")
-color10=$(extract_color "color10")
-color12=$(extract_color "color12")
-color13=$(extract_color "color13")
-foreground=$(extract_color "foreground")
+color0="$(extract_color "color1")"
+color1="$(extract_color "color0")"
+color7="$(extract_color "color14")"
+color10="$(extract_color "color10")"
+color12="$(extract_color "color12")"
+color13="$(extract_color "color13")"
+foreground="$(extract_color "foreground")"
missing_colors=()
for var in color0 color1 color7 color10 color12 color13 foreground; do
@@ -79,57 +419,172 @@ for var in color0 color1 color7 color10 color12 color13 foreground; do
done
if [[ ${#missing_colors[@]} -gt 0 ]]; then
- notify-send -i "$iDIR/error.png" "SDDM" "Missing color(s): ${missing_colors[*]}. Run Wallust first."
+ notify_err "Missing color(s): ${missing_colors[*]}. Run Wallust first."
exit 1
fi
-#background-color=$(grep -oP 'background:\s*\K#[A-Fa-f0-9]+' "$rofi_wallust")
-# wallpaper to use
+target_monitor="$(resolve_target_monitor "$requested_monitor" 2>/dev/null || true)"
+current_monitor_path=""
if [[ "$mode" == "normal" ]]; then
- wallpaper_path="$wallpaper_current"
+ current_monitor_path="$(resolve_normal_wallpaper "$target_monitor" 2>/dev/null || true)"
else
- wallpaper_path="$wallpaper_modified"
+ current_monitor_path="$(resolve_effects_wallpaper "$target_monitor" 2>/dev/null || true)"
fi
+current_sddm_path="$(resolve_current_sddm_background "$sddm_simple" 2>/dev/null || true)"
-# Abort on NixOS where this repo doesn't manage SDDM and themes are typically read-only
-if hostnamectl 2>/dev/null | grep -q 'Operating System: NixOS'; then
- notify-send -i "$iDIR/error.png" "SDDM" "NixOS detected: skipping SDDM background change."
+current_monitor_label=""
+if [[ -n "$current_monitor_path" && -f "$current_monitor_path" ]]; then
+ if [[ -n "$target_monitor" ]]; then
+ current_monitor_label="Current monitor ($target_monitor): $(basename "$current_monitor_path")"
+ else
+ current_monitor_label="Current monitor wallpaper: $(basename "$current_monitor_path")"
+ fi
+fi
+
+current_sddm_label=""
+if [[ -n "$current_sddm_path" && -f "$current_sddm_path" ]]; then
+ current_sddm_label="Current SDDM background: $(basename "$current_sddm_path")"
+fi
+
+mapfile -d '' WALLPAPERS < <(find -L "$wallDIR" -type f \( \
+ -iname "*.jpg" -o -iname "*.jpeg" -o -iname "*.png" -o -iname "*.gif" -o \
+ -iname "*.bmp" -o -iname "*.tiff" -o -iname "*.webp" -o \
+ -iname "*.mp4" -o -iname "*.mkv" -o -iname "*.mov" -o -iname "*.webm" \
+\) -print0)
+
+if [[ ${#WALLPAPERS[@]} -eq 0 ]]; then
+ notify_err "No wallpapers found in $wallDIR."
+ exit 1
+fi
+
+random_wallpaper="${WALLPAPERS[$((RANDOM % ${#WALLPAPERS[@]}))]}"
+random_label="Random: $(basename "$random_wallpaper")"
+
+has_ffmpeg=0
+if command -v ffmpeg >/dev/null 2>&1; then
+ has_ffmpeg=1
+fi
+
+menu_message="Select SDDM wallpaper"
+if [[ -n "$target_monitor" ]]; then
+ menu_message="Select SDDM wallpaper for $target_monitor"
+fi
+rofi_icon_size="$(calculate_rofi_icon_size "$target_monitor")"
+rofi_override="element-icon{size:${rofi_icon_size}%;}"
+
+menu() {
+ local -a sorted_options=()
+ local pic_path pic_name cache_preview_image
+
+ mapfile -t sorted_options < <(printf '%s\n' "${WALLPAPERS[@]}" | sort)
+
+ printf "%s\x00icon\x1f%s\n" "$random_label" "$random_wallpaper"
+ if [[ -n "$current_monitor_label" && -n "$current_monitor_path" ]]; then
+ printf "%s\x00icon\x1f%s\n" "$current_monitor_label" "$current_monitor_path"
+ fi
+ if [[ -n "$current_sddm_label" && -n "$current_sddm_path" ]]; then
+ printf "%s\x00icon\x1f%s\n" "$current_sddm_label" "$current_sddm_path"
+ fi
+
+ for pic_path in "${sorted_options[@]}"; do
+ pic_name="$(basename "$pic_path")"
+ if [[ "$pic_name" =~ \.(mp4|mkv|mov|webm|MP4|MKV|MOV|WEBM)$ ]]; then
+ cache_preview_image="$video_preview_cache/${pic_name}.png"
+ if [[ ! -f "$cache_preview_image" && "$has_ffmpeg" -eq 1 ]]; then
+ mkdir -p "$video_preview_cache"
+ ffmpeg -v error -y -i "$pic_path" -ss 00:00:01.000 -vframes 1 "$cache_preview_image" >/dev/null 2>&1 || true
+ fi
+ if [[ -f "$cache_preview_image" ]]; then
+ printf "%s\x00icon\x1f%s\n" "$pic_name" "$cache_preview_image"
+ else
+ printf "%s\n" "$pic_name"
+ fi
+ else
+ printf "%s\x00icon\x1f%s\n" "$pic_name" "$pic_path"
+ fi
+ done
+}
+
+rofi_cmd=(rofi -i -show -dmenu -mesg "$menu_message" -theme-str "$rofi_override")
+if [[ -f "$rofi_theme" ]]; then
+ rofi_cmd+=(-config "$rofi_theme")
+fi
+
+choice="$(menu | "${rofi_cmd[@]}")"
+choice="${choice#"${choice%%[![:space:]]*}"}"
+choice="${choice%"${choice##*[![:space:]]}"}"
+
+if [[ -z "$choice" ]]; then
exit 0
fi
-# Launch terminal and apply changes
-$terminal -e bash -c "
-echo 'Enter your password to update SDDM wallpapers and colors';
+selected_file=""
+if [[ "$choice" == "$random_label" ]]; then
+ selected_file="$random_wallpaper"
+elif [[ -n "$current_monitor_label" && "$choice" == "$current_monitor_label" ]]; then
+ selected_file="$current_monitor_path"
+elif [[ -n "$current_sddm_label" && "$choice" == "$current_sddm_label" ]]; then
+ selected_file="$current_sddm_path"
+elif [[ -f "$choice" ]]; then
+ selected_file="$choice"
+else
+ choice_basename="$(basename "$choice" | sed 's/\(.*\)\.[^.]*$/\1/')"
+ selected_file="$(find -L "$wallDIR" -type f -iname "$choice_basename.*" -print -quit)"
+fi
-# Update the colors in the SDDM config
-sudo sed -i \"s/HeaderTextColor=\\\"#.*\\\"/HeaderTextColor=\\\"$color13\\\"/\" \"$sddm_theme_conf\"
-sudo sed -i \"s/DateTextColor=\\\"#.*\\\"/DateTextColor=\\\"$color13\\\"/\" \"$sddm_theme_conf\"
-sudo sed -i \"s/TimeTextColor=\\\"#.*\\\"/TimeTextColor=\\\"$color13\\\"/\" \"$sddm_theme_conf\"
-sudo sed -i \"s/DropdownSelectedBackgroundColor=\\\"#.*\\\"/DropdownSelectedBackgroundColor=\\\"$color13\\\"/\" \"$sddm_theme_conf\"
-sudo sed -i \"s/SystemButtonsIconsColor=\\\"#.*\\\"/SystemButtonsIconsColor=\\\"$color13\\\"/\" \"$sddm_theme_conf\"
-sudo sed -i \"s/SessionButtonTextColor=\\\"#.*\\\"/SessionButtonTextColor=\\\"$color13\\\"/\" \"$sddm_theme_conf\"
-sudo sed -i \"s/VirtualKeyboardButtonTextColor=\\\"#.*\\\"/VirtualKeyboardButtonTextColor=\\\"$color13\\\"/\" \"$sddm_theme_conf\"
-sudo sed -i \"s/HighlightBackgroundColor=\\\"#.*\\\"/HighlightBackgroundColor=\\\"$color12\\\"/\" \"$sddm_theme_conf\"
-sudo sed -i \"s/LoginFieldTextColor=\\\"#.*\\\"/LoginFieldTextColor=\\\"$color12\\\"/\" \"$sddm_theme_conf\"
-sudo sed -i \"s/PasswordFieldTextColor=\\\"#.*\\\"/PasswordFieldTextColor=\\\"$color12\\\"/\" \"$sddm_theme_conf\"
+if [[ -z "$selected_file" || ! -f "$selected_file" ]]; then
+ notify_err "Selected wallpaper not found: $choice"
+ exit 1
+fi
-sudo sed -i \"s/DropdownBackgroundColor=\\\"#.*\\\"/DropdownBackgroundColor=\\\"$color1\\\"/\" \"$sddm_theme_conf\"
-sudo sed -i \"s/HighlightTextColor=\\\"#.*\\\"/HighlightTextColor=\\\"$color10\\\"/\" \"$sddm_theme_conf\"
+wallpaper_path="$(prepare_sddm_wallpaper "$selected_file" "$target_monitor" 2>/dev/null || true)"
+if [[ -z "$wallpaper_path" || ! -f "$wallpaper_path" ]]; then
+ notify_err "Could not prepare selected wallpaper for SDDM."
+ exit 1
+fi
+
+# Launch terminal and apply changes
+if ! "$terminal" -e bash -c '
+set -e
+theme_conf="$1"
+wallpaper_path="$2"
+sddm_simple="$3"
+color13="$4"
+color12="$5"
+color1="$6"
+color10="$7"
+color7="$8"
-sudo sed -i \"s/PlaceholderTextColor=\\\"#.*\\\"/PlaceholderTextColor=\\\"$color7\\\"/\" \"$sddm_theme_conf\"
-sudo sed -i \"s/UserIconColor=\\\"#.*\\\"/UserIconColor=\\\"$color7\\\"/\" \"$sddm_theme_conf\"
-sudo sed -i \"s/PasswordIconColor=\\\"#.*\\\"/PasswordIconColor=\\\"$color7\\\"/\" \"$sddm_theme_conf\"
+echo "Enter your password to update SDDM wallpapers and colors"
+
+# Update the colors in the SDDM config
+sudo sed -i "s/HeaderTextColor=\"#.*\"/HeaderTextColor=\"$color13\"/" "$theme_conf"
+sudo sed -i "s/DateTextColor=\"#.*\"/DateTextColor=\"$color13\"/" "$theme_conf"
+sudo sed -i "s/TimeTextColor=\"#.*\"/TimeTextColor=\"$color13\"/" "$theme_conf"
+sudo sed -i "s/DropdownSelectedBackgroundColor=\"#.*\"/DropdownSelectedBackgroundColor=\"$color13\"/" "$theme_conf"
+sudo sed -i "s/SystemButtonsIconsColor=\"#.*\"/SystemButtonsIconsColor=\"$color13\"/" "$theme_conf"
+sudo sed -i "s/SessionButtonTextColor=\"#.*\"/SessionButtonTextColor=\"$color13\"/" "$theme_conf"
+sudo sed -i "s/VirtualKeyboardButtonTextColor=\"#.*\"/VirtualKeyboardButtonTextColor=\"$color13\"/" "$theme_conf"
+sudo sed -i "s/HighlightBackgroundColor=\"#.*\"/HighlightBackgroundColor=\"$color12\"/" "$theme_conf"
+sudo sed -i "s/LoginFieldTextColor=\"#.*\"/LoginFieldTextColor=\"$color12\"/" "$theme_conf"
+sudo sed -i "s/PasswordFieldTextColor=\"#.*\"/PasswordFieldTextColor=\"$color12\"/" "$theme_conf"
+sudo sed -i "s/DropdownBackgroundColor=\"#.*\"/DropdownBackgroundColor=\"$color1\"/" "$theme_conf"
+sudo sed -i "s/HighlightTextColor=\"#.*\"/HighlightTextColor=\"$color10\"/" "$theme_conf"
+sudo sed -i "s/PlaceholderTextColor=\"#.*\"/PlaceholderTextColor=\"$color7\"/" "$theme_conf"
+sudo sed -i "s/UserIconColor=\"#.*\"/UserIconColor=\"$color7\"/" "$theme_conf"
+sudo sed -i "s/PasswordIconColor=\"#.*\"/PasswordIconColor=\"$color7\"/" "$theme_conf"
# Copy wallpaper to SDDM theme
-# Primary: set Backgrounds/default (no extension) for simple_sddm_2
-sudo cp -f \"$wallpaper_path\" \"$sddm_simple/Backgrounds/default\" || true
-# Fallbacks: if theme ships default.jpg or default.png, update those too
-if [ -e \"$sddm_simple/Backgrounds/default.jpg\" ]; then
- sudo cp -f \"$wallpaper_path\" \"$sddm_simple/Backgrounds/default.jpg\"
+sudo cp -f "$wallpaper_path" "$sddm_simple/Backgrounds/default"
+if [ -e "$sddm_simple/Backgrounds/default.jpg" ]; then
+ sudo cp -f "$wallpaper_path" "$sddm_simple/Backgrounds/default.jpg"
fi
-if [ -e \"$sddm_simple/Backgrounds/default.png\" ]; then
- sudo cp -f \"$wallpaper_path\" \"$sddm_simple/Backgrounds/default.png\"
+if [ -e "$sddm_simple/Backgrounds/default.png" ]; then
+ sudo cp -f "$wallpaper_path" "$sddm_simple/Backgrounds/default.png"
+fi
+' _ "$sddm_theme_conf" "$wallpaper_path" "$sddm_simple" "$color13" "$color12" "$color1" "$color10" "$color7"; then
+ notify_err "Failed to update SDDM for ${target_monitor:-current context}: $(basename "$wallpaper_path")."
+ exit 1
fi
-notify-send -i \"$iDIR/ja.png\" \"SDDM\" \"Background SET\"
-" \ No newline at end of file
+notify_ok "Set for ${target_monitor:-current context}: $(basename "$wallpaper_path")."
diff --git a/config/hypr/scripts/set-default-thunar-terminal.sh b/config/hypr/scripts/set-default-thunar-terminal.sh
index fd50eb6c..cf5107cf 100755
--- a/config/hypr/scripts/set-default-thunar-terminal.sh
+++ b/config/hypr/scripts/set-default-thunar-terminal.sh
@@ -11,7 +11,7 @@ setup_default_terminal() {
# 1. Configure XFCE/Exo (Thunar's primary helper)
# This handles "Open Terminal Here" and "Open with [CLI App]"
- HELPER_DIR="$HOME/.config/xfce4"
+ HELPER_DIR="${XDG_CONFIG_HOME:-$HOME/.config}/xfce4"
mkdir -p "$HELPER_DIR"
KITTY_PATH="$(command -v kitty 2>/dev/null || true)"
if [ -z "$KITTY_PATH" ]; then
diff --git a/config/hypr/scripts/update_WindowRules.sh b/config/hypr/scripts/update_WindowRules.sh
index 293b14e9..d9cb08e4 100755
--- a/config/hypr/scripts/update_WindowRules.sh
+++ b/config/hypr/scripts/update_WindowRules.sh
@@ -7,7 +7,7 @@
# ==================================================
# Script to update WindowRules config if Hyprland version is >= 0.53
-CONFIGS_DIR="$HOME/.config/hypr/configs"
+CONFIGS_DIR="${XDG_CONFIG_HOME:-$HOME/.config}/hypr/configs"
TARGET_FILE="$CONFIGS_DIR/WindowRules.conf"
get_hyprland_version() {
diff --git a/config/hypr/v2.3.24 b/config/hypr/v2.3.25
index e69de29b..e69de29b 100644
--- a/config/hypr/v2.3.24
+++ b/config/hypr/v2.3.25
diff --git a/config/hypr/workspaces.conf b/config/hypr/workspaces.conf
index 5417d940..52a4d94d 100644
--- a/config/hypr/workspaces.conf
+++ b/config/hypr/workspaces.conf
@@ -21,6 +21,11 @@
# workspace = 6, monitor:DP-2
# workspace = 7, monitor:DP-2
# workspace = 8, monitor:DP-2
+# Assigning workspace + layout to a monitor. Below are just examples
+# workspace = 1, monitor:HDMI-A-1, layout:scrolling
+# workspace = 1, monitor:HDMI-A-1, layout:dwindle
+# workspace = 1, monitor:HDMI-A-1, layout:master
+# workspace = 1, monitor:HDMI-A-1, layout:monocle
# example rules (from wiki)
diff --git a/config/rofi/config-layout.rasi b/config/rofi/config-layout.rasi
new file mode 100644
index 00000000..d94178cd
--- /dev/null
+++ b/config/rofi/config-layout.rasi
@@ -0,0 +1,63 @@
+/* ---- 💫 https://github.com/LinuxBeginnings 💫 ---- */
+/* Layout Selector (compact) */
+
+@import "~/.config/rofi/config-rofi-theme.rasi"
+
+/* ---- Mainbox ---- */
+mainbox {
+ children: [ "message", "listview" ];
+ spacing: 10px;
+ padding: 12px;
+}
+
+/* ---- Window ---- */
+window {
+ width: 520px;
+ height: 320px;
+}
+
+/* ---- Entry ---- */
+entry {
+ enabled: false;
+}
+
+/* ---- Message ---- */
+message {
+ enabled: true;
+ margin: 0px 6px 0px 6px;
+ padding: 10px;
+ border-radius: 10px;
+ background-color: inherit;
+}
+
+textbox {
+ text-color: inherit;
+ background-color: inherit;
+}
+
+/* ---- Listview ---- */
+listview {
+ columns: 1;
+ lines: 4;
+ fixed-height: true;
+ margin: 8px 10px;
+ padding: 6px;
+ scrollbar: false;
+ spacing: 4px;
+ cycle: true;
+}
+
+element {
+ padding: 6px;
+}
+
+/* ---- Elements ---- */
+element-icon {
+ size: 0%;
+}
+element-text {
+ horizontal-align: 0.0;
+ vertical-align: 0.5;
+ margin: 0px;
+ padding: 0px;
+}
diff --git a/config/rofi/config-starship.rasi b/config/rofi/config-starship.rasi
new file mode 100644
index 00000000..983f8658
--- /dev/null
+++ b/config/rofi/config-starship.rasi
@@ -0,0 +1,63 @@
+/* ---- 💫 https://github.com/LinuxBeginnings 💫 ---- */
+/* Starship Selector (tall) */
+
+@import "~/.config/rofi/config-rofi-theme.rasi"
+
+/* ---- Mainbox ---- */
+mainbox {
+ children: [ "message", "listview" ];
+ spacing: 10px;
+ padding: 12px;
+}
+
+/* ---- Window ---- */
+window {
+ width: 520px;
+ height: 620;
+}
+
+/* ---- Entry ---- */
+entry {
+ enabled: false;
+}
+
+/* ---- Message ---- */
+message {
+ enabled: true;
+ margin: 0px 6px 0px 6px;
+ padding: 10px;
+ border-radius: 10px;
+ background-color: inherit;
+}
+
+textbox {
+ text-color: inherit;
+ background-color: inherit;
+}
+
+/* ---- Listview ---- */
+listview {
+ columns: 1;
+ lines: 13;
+ fixed-height: true;
+ margin: 8px 10px;
+ padding: 6px;
+ scrollbar: false;
+ spacing: 4px;
+ cycle: true;
+}
+
+element {
+ padding: 6px;
+}
+
+/* ---- Elements ---- */
+element-icon {
+ size: 0%;
+}
+element-text {
+ horizontal-align: 0.0;
+ vertical-align: 0.5;
+ margin: 0px;
+ padding: 0px;
+}
diff --git a/config/rofi/themes/KooL_style-1.rasi b/config/rofi/themes/KooL_style-1.rasi
index 6a3d8f08..fdfc955e 100644
--- a/config/rofi/themes/KooL_style-1.rasi
+++ b/config/rofi/themes/KooL_style-1.rasi
@@ -69,7 +69,7 @@ inputbar {
border-radius: 20px;
orientation: horizontal;
children: ["entry", "dummy", "mode-switcher" ];
- background-image: url("~/.config/rofi/.current_wallpaper", width);
+ background-image: url("~/.config/rofi/.current_wallpaper_focused", width);
}
/* ---- Entry input ---- */
diff --git a/config/rofi/themes/KooL_style-13-Vertical.rasi b/config/rofi/themes/KooL_style-13-Vertical.rasi
index 218251a4..e591f6b2 100644
--- a/config/rofi/themes/KooL_style-13-Vertical.rasi
+++ b/config/rofi/themes/KooL_style-13-Vertical.rasi
@@ -95,7 +95,7 @@ inputbar {
border-radius: 10px;
border-color: @border-color;
background-color: @background;
- background-image: url("~/.config/rofi/.current_wallpaper", width);
+ background-image: url("~/.config/rofi/.current_wallpaper_focused", width);
children: [ "textbox-prompt-colon","entry" ];
border: 0px;
}
diff --git a/config/rofi/themes/KooL_style-3-FullScreen-v1.rasi b/config/rofi/themes/KooL_style-3-FullScreen-v1.rasi
index ab3107f1..591f078f 100644
--- a/config/rofi/themes/KooL_style-3-FullScreen-v1.rasi
+++ b/config/rofi/themes/KooL_style-3-FullScreen-v1.rasi
@@ -82,7 +82,7 @@ inputbar {
border-radius: 20px;
orientation: horizontal;
children: ["entry", "dummy", "mode-switcher" ];
- background-image: url("~/.config/rofi/.current_wallpaper", width);
+ background-image: url("~/.config/rofi/.current_wallpaper_focused", width);
}
/* ---- Entry input ---- */
diff --git a/config/rofi/themes/KooL_style-5.rasi b/config/rofi/themes/KooL_style-5.rasi
index 8370158c..0c22762d 100644
--- a/config/rofi/themes/KooL_style-5.rasi
+++ b/config/rofi/themes/KooL_style-5.rasi
@@ -59,7 +59,7 @@ mainbox {
enabled: true;
orientation: vertical;
padding: 8px;
- background-image: url("~/.config/rofi/.current_wallpaper", width);
+ background-image: url("~/.config/rofi/.current_wallpaper_focused", width);
children: [ "inputbar", "listbox" ];
border-radius: 12px;
}
diff --git a/config/rofi/themes/KooL_style-6.rasi b/config/rofi/themes/KooL_style-6.rasi
index 1172fb92..8320ecc8 100644
--- a/config/rofi/themes/KooL_style-6.rasi
+++ b/config/rofi/themes/KooL_style-6.rasi
@@ -69,7 +69,7 @@ inputbar {
border-radius: 25px;
orientation: horizontal;
children: ["entry", "dummy", "mode-switcher" ];
- background-image: url("~/.config/rofi/.current_wallpaper", width);
+ background-image: url("~/.config/rofi/.current_wallpaper_focused", width);
}
/* ---- Entry input ---- */
diff --git a/config/rofi/themes/KooL_style-8.rasi b/config/rofi/themes/KooL_style-8.rasi
index b369ea96..80265dc6 100644
--- a/config/rofi/themes/KooL_style-8.rasi
+++ b/config/rofi/themes/KooL_style-8.rasi
@@ -66,7 +66,7 @@ inputbar {
padding: 4em;
children: [ "textbox-prompt-colon", "entry" ];
background-color: transparent;
- background-image: url("~/.config/rofi/.current_wallpaper", width);
+ background-image: url("~/.config/rofi/.current_wallpaper_focused", width);
}
textbox-prompt-colon {
diff --git a/config/starship/1-line-nix.toml b/config/starship/1-line-nix.toml
new file mode 100644
index 00000000..e3b534b5
--- /dev/null
+++ b/config/starship/1-line-nix.toml
@@ -0,0 +1,79 @@
+add_newline = true
+format = "$nix_shell$hostname$directory$git_branch$git_state$git_status$character"
+palette = "base16"
+
+[character]
+error_symbol = "[❯](red)"
+success_symbol = "[❯](#5597b9)"
+vimcmd_symbol = "[❮](cyan)"
+
+[directory]
+style = "#5597b9"
+
+[git_branch]
+format = "on [$symbol$branch]($style)[](#0e4975) "
+style = "fg:#5597b9 bg:#0e4975"
+symbol = "[](#0e4975) "
+
+[git_state]
+format = "([$state( $progress_current/$progress_total)]($style)) "
+style = "bright-black"
+
+[git_status]
+conflicted = ""
+deleted = ""
+format = "[[(*$conflicted$untracked$modified$staged$renamed$deleted)](218)($ahead_behind$stashed)]($style)"
+renamed = ""
+stashed = "≡"
+style = "cyan"
+
+[nix_shell]
+format = "[$symbol]($style) "
+style = ""
+symbol = "🐚"
+
+[palettes.base16]
+base00 = "#0a1b37"
+base01 = "#0e4975"
+base02 = "#0870a3"
+base03 = "#04abe0"
+base04 = "#b1bbbc"
+base05 = "#efe0c3"
+base06 = "#fdeead"
+base07 = "#fff2c5"
+base08 = "#3a9cbf"
+base09 = "#279bc4"
+base0A = "#e76865"
+base0B = "#c8797a"
+base0C = "#6693bc"
+base0D = "#5597b9"
+base0E = "#e9646b"
+base0F = "#6c97ba"
+base10 = "#0a1b37"
+base11 = "#0a1b37"
+base12 = "#3a9cbf"
+base13 = "#e76865"
+base14 = "#c8797a"
+base15 = "#6693bc"
+base16 = "#5597b9"
+base17 = "#e9646b"
+black = "#0a1b37"
+blue = "#5597b9"
+bright-black = "#04abe0"
+bright-blue = "#5597b9"
+bright-cyan = "#6693bc"
+bright-green = "#c8797a"
+bright-magenta = "#e9646b"
+bright-purple = "#e9646b"
+bright-red = "#3a9cbf"
+bright-white = "#fff2c5"
+bright-yellow = "#e76865"
+brown = "#6c97ba"
+cyan = "#6693bc"
+green = "#c8797a"
+magenta = "#e9646b"
+orange = "#279bc4"
+purple = "#e9646b"
+red = "#3a9cbf"
+white = "#efe0c3"
+yellow = "#e76865"
diff --git a/config/starship/1-line-simple.toml b/config/starship/1-line-simple.toml
new file mode 100644
index 00000000..0cf72924
--- /dev/null
+++ b/config/starship/1-line-simple.toml
@@ -0,0 +1,173 @@
+"$schema" = 'https://starship.rs/config-schema.json'
+
+command_timeout = 120
+palette = 'catppuccin_mocha'
+add_newline = false
+[character]
+# Note the use of Catppuccin color 'peach'
+success_symbol = "[[](green) ❯](peach)"
+error_symbol = "[[](red) ❯](peach)"
+vimcmd_symbol = "[❮](subtext1)" # For use with zsh-vi-mode
+
+
+
+[palettes.catppuccin_mocha]
+rosewater = "#f5e0dc"
+flamingo = "#f2cdcd"
+pink = "#f5c2e7"
+mauve = "#cba6f7"
+red = "#f38ba8"
+maroon = "#eba0ac"
+peach = "#fab387"
+yellow = "#f9e2af"
+green = "#a6e3a1"
+teal = "#94e2d5"
+sky = "#89dceb"
+sapphire = "#74c7ec"
+blue = "#89b4fa"
+lavender = "#b4befe"
+text = "#cdd6f4"
+subtext1 = "#bac2de"
+subtext0 = "#a6adc8"
+overlay2 = "#9399b2"
+overlay1 = "#7f849c"
+overlay0 = "#6c7086"
+surface2 = "#585b70"
+surface1 = "#45475a"
+surface0 = "#313244"
+base = "#1e1e2e"
+mantle = "#181825"
+crust = "#11111b"
+
+[aws]
+symbol = " "
+
+[buf]
+symbol = " "
+
+[c]
+symbol = " "
+
+[cmake]
+symbol = " "
+
+[conda]
+symbol = " "
+
+[crystal]
+symbol = " "
+
+[dart]
+symbol = " "
+
+[directory]
+read_only = " 󰌾"
+truncation_length = 4
+style = "bold lavender"
+
+[docker_context]
+symbol = " "
+
+[elixir]
+symbol = " "
+
+[elm]
+symbol = " "
+
+[fennel]
+symbol = " "
+
+[fossil_branch]
+symbol = " "
+
+[git_branch]
+symbol = " "
+style = "bold mauve"
+
+[git_commit]
+tag_symbol = '  '
+
+[golang]
+symbol = " "
+
+[guix_shell]
+symbol = " "
+
+[haskell]
+symbol = " "
+
+[haxe]
+symbol = " "
+
+[hg_branch]
+symbol = " "
+
+[hostname]
+ssh_symbol = " "
+
+[java]
+symbol = " "
+
+[julia]
+symbol = " "
+
+[kotlin]
+symbol = " "
+
+[lua]
+symbol = " "
+
+[memory_usage]
+symbol = "󰍛 "
+
+[meson]
+symbol = "󰔷 "
+
+[nim]
+symbol = "󰆥 "
+
+[nix_shell]
+symbol = " "
+
+[nodejs]
+symbol = " "
+
+[ocaml]
+symbol = " "
+
+[package]
+symbol = "󰏗 "
+
+[perl]
+symbol = " "
+
+[php]
+symbol = " "
+
+[pijul_channel]
+symbol = " "
+
+[python]
+symbol = " "
+
+[rlang]
+symbol = "󰟔 "
+
+[ruby]
+symbol = " "
+
+[rust]
+symbol = "󱘗 "
+
+[scala]
+symbol = " "
+
+[swift]
+symbol = " "
+
+[zig]
+symbol = " "
+
+[gradle]
+symbol = " "
+
diff --git a/config/starship/2-line-classic-garuda.toml b/config/starship/2-line-classic-garuda.toml
new file mode 100644
index 00000000..5ec1c550
--- /dev/null
+++ b/config/starship/2-line-classic-garuda.toml
@@ -0,0 +1,146 @@
+## FIRST LINE/ROW: Info & Status
+# First param ─┌
+[username]
+format = " [╭─$user]($style)@"
+show_always = true
+style_root = "bold red"
+style_user = "bold red"
+
+# Second param
+[hostname]
+disabled = false
+format = "[$hostname]($style) in "
+ssh_only = false
+style = "bold dimmed red"
+
+# Third param
+[directory]
+style = "purple"
+truncate_to_repo = true
+truncation_length = 0
+truncation_symbol = "repo: "
+
+# Fourth param
+[sudo]
+disabled = false
+
+# Before all the version info (python, nodejs, php, etc.)
+[git_status]
+ahead = "⇡${count}"
+behind = "⇣${count}"
+deleted = "x"
+diverged = "⇕⇡${ahead_count}⇣${behind_count}"
+style = "white"
+
+# Last param in the first line/row
+[cmd_duration]
+disabled = false
+format = "took [$duration]($style)"
+min_time = 1
+
+
+## SECOND LINE/ROW: Prompt
+# Somethere at the beginning
+[battery]
+charging_symbol = ""
+disabled = true
+discharging_symbol = ""
+full_symbol = ""
+
+[[battery.display]] # "bold red" style when capacity is between 0% and 10%
+disabled = false
+style = "bold red"
+threshold = 15
+
+[[battery.display]] # "bold yellow" style when capacity is between 10% and 30%
+disabled = true
+style = "bold yellow"
+threshold = 50
+
+[[battery.display]] # "bold green" style when capacity is between 10% and 30%
+disabled = true
+style = "bold green"
+threshold = 80
+
+# Prompt: optional param 1
+[time]
+disabled = true
+format = " 🕙 $time($style)\n"
+style = "bright-white"
+time_format = "%T"
+
+# Prompt: param 2
+[character]
+error_symbol = " [×](bold red)"
+success_symbol = " [╰─λ](bold red)"
+
+# SYMBOLS
+[status]
+disabled = false
+format = '[\[$symbol$status_common_meaning$status_signal_name$status_maybe_int\]]($style)'
+map_symbol = true
+pipestatus = true
+symbol = "🔴"
+
+[aws]
+symbol = " "
+
+[conda]
+symbol = " "
+
+[dart]
+symbol = " "
+
+[docker_context]
+symbol = " "
+
+[elixir]
+symbol = " "
+
+[elm]
+symbol = " "
+
+[git_branch]
+symbol = " "
+
+[golang]
+symbol = " "
+
+[hg_branch]
+symbol = " "
+
+[java]
+symbol = " "
+
+[julia]
+symbol = " "
+
+[nim]
+symbol = " "
+
+[nix_shell]
+symbol = " "
+
+[nodejs]
+symbol = " "
+
+[package]
+symbol = " "
+
+[perl]
+symbol = " "
+
+[php]
+symbol = " "
+
+[python]
+symbol = " "
+
+[ruby]
+symbol = " "
+
+[rust]
+symbol = " "
+
+[swift]
+symbol = "ﯣ "
diff --git a/config/starship/2-line-cool.toml b/config/starship/2-line-cool.toml
new file mode 100644
index 00000000..0aae3558
--- /dev/null
+++ b/config/starship/2-line-cool.toml
@@ -0,0 +1,65 @@
+format = """
+[░▒▓](#a3aed2)\
+[  ](bg:#a3aed2 fg:#090c0c)\
+[](bg:#769ff0 fg:#a3aed2)\
+$directory\
+[](fg:#769ff0 bg:#394260)\
+$git_branch\
+$git_status\
+[](fg:#394260 bg:#212736)\
+$nodejs\
+$rust\
+$golang\
+$php\
+[](fg:#212736 bg:#1d2230)\
+$time\
+[ ](fg:#1d2230)\
+\n$character"""
+
+[directory]
+style = "fg:#e3e5e5 bg:#769ff0"
+format = "[ $path ]($style)"
+truncation_length = 3
+truncation_symbol = "…/"
+
+[directory.substitutions]
+"Documents" = " "
+"Downloads" = " "
+"Music" = " "
+"Pictures" = " "
+
+[git_branch]
+symbol = ""
+style = "bg:#394260"
+format = '[[ $symbol $branch ](fg:#769ff0 bg:#394260)]($style)'
+
+[git_status]
+style = "bg:#394260"
+format = '[[($all_status$ahead_behind )](fg:#769ff0 bg:#394260)]($style)'
+
+[nodejs]
+symbol = ""
+style = "bg:#212736"
+format = '[[ $symbol ($version) ](fg:#769ff0 bg:#212736)]($style)'
+
+[rust]
+symbol = ""
+style = "bg:#212736"
+format = '[[ $symbol ($version) ](fg:#769ff0 bg:#212736)]($style)'
+
+[golang]
+symbol = "ﳑ"
+style = "bg:#212736"
+format = '[[ $symbol ($version) ](fg:#769ff0 bg:#212736)]($style)'
+
+[php]
+symbol = ""
+style = "bg:#212736"
+format = '[[ $symbol ($version) ](fg:#769ff0 bg:#212736)]($style)'
+
+[time]
+disabled = true
+time_format = "%R" # Hour:Minute Format
+style = "bg:#1d2230"
+format = '[[  $time ](fg:#a0a9cb bg:#1d2230)]($style)'
+
diff --git a/config/starship/2-line-nixos.toml b/config/starship/2-line-nixos.toml
new file mode 100644
index 00000000..4f21fd5e
--- /dev/null
+++ b/config/starship/2-line-nixos.toml
@@ -0,0 +1,79 @@
+add_newline = false
+format = "$nix_shell$hostname$directory$git_branch$git_state$git_status\n$character"
+palette = "base16"
+
+[character]
+error_symbol = "[❯](red)"
+success_symbol = "[❯](#5597b9)"
+vimcmd_symbol = "[❮](cyan)"
+
+[directory]
+style = "#5597b9"
+
+[git_branch]
+format = "on [$symbol$branch]($style)[](#0e4975) "
+style = "fg:#5597b9 bg:#0e4975"
+symbol = "[](#0e4975) "
+
+[git_state]
+format = "([$state( $progress_current/$progress_total)]($style)) "
+style = "bright-black"
+
+[git_status]
+conflicted = ""
+deleted = ""
+format = "[[(*$conflicted$untracked$modified$staged$renamed$deleted)](218)($ahead_behind$stashed)]($style)"
+renamed = ""
+stashed = "≡"
+style = "cyan"
+
+[nix_shell]
+format = "[$symbol]($style) "
+style = ""
+symbol = "🐚"
+
+[palettes.base16]
+base00 = "#0a1b37"
+base01 = "#0e4975"
+base02 = "#0870a3"
+base03 = "#04abe0"
+base04 = "#b1bbbc"
+base05 = "#efe0c3"
+base06 = "#fdeead"
+base07 = "#fff2c5"
+base08 = "#3a9cbf"
+base09 = "#279bc4"
+base0A = "#e76865"
+base0B = "#c8797a"
+base0C = "#6693bc"
+base0D = "#5597b9"
+base0E = "#e9646b"
+base0F = "#6c97ba"
+base10 = "#0a1b37"
+base11 = "#0a1b37"
+base12 = "#3a9cbf"
+base13 = "#e76865"
+base14 = "#c8797a"
+base15 = "#6693bc"
+base16 = "#5597b9"
+base17 = "#e9646b"
+black = "#0a1b37"
+blue = "#5597b9"
+bright-black = "#04abe0"
+bright-blue = "#5597b9"
+bright-cyan = "#6693bc"
+bright-green = "#c8797a"
+bright-magenta = "#e9646b"
+bright-purple = "#e9646b"
+bright-red = "#3a9cbf"
+bright-white = "#fff2c5"
+bright-yellow = "#e76865"
+brown = "#6c97ba"
+cyan = "#6693bc"
+green = "#c8797a"
+magenta = "#e9646b"
+orange = "#279bc4"
+purple = "#e9646b"
+red = "#3a9cbf"
+white = "#efe0c3"
+yellow = "#e76865"
diff --git a/config/starship/chris-titus.toml b/config/starship/chris-titus.toml
new file mode 100644
index 00000000..dcf96bda
--- /dev/null
+++ b/config/starship/chris-titus.toml
@@ -0,0 +1,129 @@
+format = """
+[](#3B4252)\
+$python\
+$username\
+[](bg:#434C5E fg:#3B4252)\
+$directory\
+[](fg:#434C5E bg:#4C566A)\
+$git_branch\
+$git_status\
+[](fg:#4C566A bg:#86BBD8)\
+$c\
+$elixir\
+$elm\
+$golang\
+$haskell\
+$java\
+$julia\
+$nodejs\
+$nim\
+$rust\
+[](fg:#86BBD8 bg:#06969A)\
+$docker_context\
+[](fg:#06969A bg:#33658A)\
+$time\
+[ ](fg:#33658A)\
+"""
+command_timeout = 5000
+# Disable the blank line at the start of the prompt
+# add_newline = false
+
+# You can also replace your username with a neat symbol like  to save some space
+[username]
+show_always = true
+style_user = "bg:#3B4252"
+style_root = "bg:#3B4252"
+format = '[$user ]($style)'
+
+[directory]
+style = "bg:#434C5E"
+format = "[ $path ]($style)"
+truncation_length = 3
+truncation_symbol = "…/"
+
+# Here is how you can shorten some long paths by text replacement
+# similar to mapped_locations in Oh My Posh:
+[directory.substitutions]
+"Documents" = " "
+"Downloads" = " "
+"Music" = " "
+"Pictures" = " "
+# Keep in mind that the order matters. For example:
+# "Important Documents" = "  "
+# will not be replaced, because "Documents" was already substituted before.
+# So either put "Important Documents" before "Documents" or use the substituted version:
+# "Important  " = "  "
+
+[c]
+symbol = " "
+style = "bg:#86BBD8"
+format = '[ $symbol ($version) ]($style)'
+
+[docker_context]
+symbol = " "
+style = "bg:#06969A"
+format = '[ $symbol $context ]($style) $path'
+
+[elixir]
+symbol = " "
+style = "bg:#86BBD8"
+format = '[ $symbol ($version) ]($style)'
+
+[elm]
+symbol = " "
+style = "bg:#86BBD8"
+format = '[ $symbol ($version) ]($style)'
+
+[git_branch]
+symbol = ""
+style = "bg:#4C566A"
+format = '[ $symbol $branch ]($style)'
+
+[git_status]
+style = "bg:#4C566A"
+format = '[$all_status$ahead_behind ]($style)'
+
+[golang]
+symbol = " "
+style = "bg:#86BBD8"
+format = '[ $symbol ($version) ]($style)'
+
+[haskell]
+symbol = " "
+style = "bg:#86BBD8"
+format = '[ $symbol ($version) ]($style)'
+
+[java]
+symbol = " "
+style = "bg:#86BBD8"
+format = '[ $symbol ($version) ]($style)'
+
+[julia]
+symbol = " "
+style = "bg:#86BBD8"
+format = '[ $symbol ($version) ]($style)'
+
+[nodejs]
+symbol = ""
+style = "bg:#86BBD8"
+format = '[ $symbol ($version) ]($style)'
+
+[nim]
+symbol = " "
+style = "bg:#86BBD8"
+format = '[ $symbol ($version) ]($style)'
+
+[python]
+style = "bg:#3B4252"
+format = '[(\($virtualenv\) )]($style)'
+
+[rust]
+symbol = ""
+style = "bg:#86BBD8"
+format = '[ $symbol ($version) ]($style)'
+
+[time]
+disabled = false
+time_format = "%R" # Hour:Minute Format
+style = "bg:#33658A"
+format = '[ $time ]($style)'
diff --git a/config/starship/classic.toml b/config/starship/classic.toml
new file mode 100644
index 00000000..8dd1645f
--- /dev/null
+++ b/config/starship/classic.toml
@@ -0,0 +1,250 @@
+palette = "catppuccin_mocha"
+
+[palettes.catppuccin_mocha]
+rosewater = "#f5e0dc"
+flamingo = "#f2cdcd"
+pink = "#f5c2e7"
+mauve = "#cba6f7"
+red = "#f38ba8"
+maroon = "#eba0ac"
+peach = "#fab387"
+yellow = "#f9e2af"
+green = "#a6e3a1"
+teal = "#94e2d5"
+sky = "#89dceb"
+sapphire = "#74c7ec"
+blue = "#89b4fa"
+lavender = "#b4befe"
+text = "#cdd6f4"
+subtext1 = "#bac2de"
+subtext0 = "#a6adc8"
+overlay2 = "#9399b2"
+overlay1 = "#7f849c"
+overlay0 = "#6c7086"
+surface2 = "#585b70"
+surface1 = "#45475a"
+surface0 = "#313244"
+base = "#1e1e2e"
+mantle = "#181825"
+crust = "#11111b"
+
+## FIRST LINE/ROW: Info & Status
+[username]
+format = "[$user]($style)@"
+show_always = true
+style_root = "bold red"
+style_user = "bold mauve"
+
+[hostname]
+disabled = false
+format = "[$hostname]($style) in "
+ssh_only = false
+style = "bold maroon"
+ssh_symbol = " "
+
+[directory]
+style = "bold peach"
+truncate_to_repo = true
+truncation_length = 0
+truncation_symbol = "repo: "
+read_only = ""
+
+[git_metrics]
+disabled = false
+added_style = 'bold green'
+format = '[+$added]($added_style)/[-$deleted]($deleted_style) '
+
+[sudo]
+disabled = false
+
+[git_status]
+ahead = "${count}"
+behind = "${count}"
+deleted = "x"
+diverged = "${ahead_count}${behind_count}"
+style = "text"
+
+[git_branch]
+symbol = " "
+style = "bold green"
+
+[nix_shell]
+format = 'via [$symbol(($name))]($style) '
+symbol = " "
+
+[cmd_duration]
+disabled = false
+style="bold flamingo"
+format = "took [$duration]($style)"
+show_milliseconds = true
+show_notifications = false
+min_time_to_notify = 30_000
+
+## SECOND LINE/ROW: Prompt
+[battery]
+charging_symbol = ""
+disabled = true
+discharging_symbol = ""
+full_symbol = ""
+
+[[battery.display]] # "bold red" style when capacity is between 0% and 15%
+disabled = false
+style = "bold red"
+threshold = 15
+
+[[battery.display]] # "bold peach" style when capacity is between 15% and 50%
+disabled = true
+style = "bold peach"
+threshold = 50
+
+[[battery.display]] # "bold green" style when capacity is between 50% and 90%
+disabled = true
+style = "bold green"
+threshold = 90
+
+[status]
+disabled = false
+format = '[\[$symbol$status_common_meaning$status_signal_name$status_maybe_int\]]($style)'
+map_symbol = true
+pipestatus = true
+symbol = "✖"
+not_executable_symbol = ""
+not_found_symbol = ""
+sigint_symbol = "󰟾"
+signal_symbol = ""
+
+[os]
+disabled = true
+format = ' [$symbol]($style)'
+style = "bold mauve"
+
+[character]
+error_symbol = ""
+success_symbol = "❯(bold green)"
+
+# SYMBOLS
+[git_commit]
+tag_symbol = '  '
+
+[golang]
+symbol = " "
+
+[guix_shell]
+symbol = " "
+
+[haskell]
+symbol = " "
+
+[haxe]
+symbol = " "
+
+[hg_branch]
+symbol = " "
+
+[java]
+symbol = " "
+
+[julia]
+symbol = " "
+
+[kotlin]
+symbol = " "
+
+[lua]
+symbol = " "
+
+[memory_usage]
+symbol = "󰍛 "
+
+[meson]
+symbol = "󰔷 "
+
+[nim]
+symbol = "󰆥 "
+
+[nodejs]
+symbol = " "
+
+[ocaml]
+symbol = " "
+
+[os.symbols]
+Alpaquita = " "
+Alpine = " "
+AlmaLinux = " "
+Amazon = " "
+Android = " "
+Arch = " "
+Artix = " "
+CentOS = " "
+Debian = " "
+DragonFly = " "
+Emscripten = " "
+EndeavourOS = " "
+Fedora = " "
+FreeBSD = " "
+Garuda = "󰛓 "
+Gentoo = " "
+HardenedBSD = "󰞌 "
+Illumos = "󰈸 "
+Kali = " "
+Linux = " "
+Mabox = " "
+Macos = " "
+Manjaro = " "
+Mariner = " "
+MidnightBSD = " "
+Mint = " "
+NetBSD = " "
+NixOS = " "
+OpenBSD = "󰈺 "
+openSUSE = " "
+OracleLinux = "󰌷 "
+Pop = " "
+Raspbian = " "
+Redhat = " "
+RedHatEnterprise = " "
+RockyLinux = " "
+Redox = "󰀘 "
+Solus = "󰠳 "
+SUSE = " "
+Ubuntu = " "
+Unknown = " "
+Void = " "
+Windows = "󰍲 "
+
+[package]
+symbol = "󰏗 "
+
+[perl]
+symbol = " "
+
+[php]
+symbol = " "
+
+[pijul_channel]
+symbol = " "
+
+[python]
+symbol = " "
+
+[rlang]
+symbol = "󰟔 "
+
+[ruby]
+symbol = " "
+
+[rust]
+symbol = "󱘗 "
+
+[scala]
+symbol = " "
+
+[swift]
+symbol = " "
+
+[zig]
+symbol = " "
+
+[gradle]
+symbol = " "
diff --git a/config/starship/eric-dubois.toml b/config/starship/eric-dubois.toml
new file mode 100644
index 00000000..4c3a8c42
--- /dev/null
+++ b/config/starship/eric-dubois.toml
@@ -0,0 +1,191 @@
+"$schema" = 'https://starship.rs/config-schema.json'
+
+format = """
+[](surface0)\
+$os\
+$username\
+[](bg:peach fg:surface0)\
+$directory\
+[](fg:peach bg:green)\
+$git_branch\
+$git_status\
+[](fg:green bg:teal)\
+$c\
+$rust\
+$golang\
+$nodejs\
+$php\
+$java\
+$kotlin\
+$haskell\
+$python\
+[](fg:teal bg:blue)\
+$docker_context\
+[](fg:blue bg:pink)\
+$time\
+[ ](fg:pink)\
+$line_break$character"""
+
+palette = 'catppuccin_mocha'
+
+[palettes.gruvbox_dark]
+color_fg0 = '#fbf1c7'
+color_bg1 = '#3c3836'
+color_bg3 = '#665c54'
+color_blue = '#458588'
+color_aqua = '#689d6a'
+color_green = '#98971a'
+color_orange = '#d65d0e'
+color_purple = '#b16286'
+color_red = '#cc241d'
+color_yellow = '#d79921'
+
+[palettes.catppuccin_mocha]
+rosewater = "#f5e0dc"
+flamingo = "#f2cdcd"
+pink = "#f5c2e7"
+orange = "#cba6f7"
+red = "#f38ba8"
+maroon = "#eba0ac"
+peach = "#fab387"
+yellow = "#f9e2af"
+green = "#a6e3a1"
+teal = "#94e2d5"
+sky = "#89dceb"
+sapphire = "#74c7ec"
+blue = "#89b4fa"
+lavender = "#b4befe"
+text = "#cdd6f4"
+subtext1 = "#bac2de"
+subtext0 = "#a6adc8"
+overlay2 = "#9399b2"
+overlay1 = "#7f849c"
+overlay0 = "#6c7086"
+surface2 = "#585b70"
+surface1 = "#45475a"
+surface0 = "#313244"
+base = "#1e1e2e"
+mantle = "#181825"
+crust = "#11111b"
+
+[os]
+disabled = false
+style = "bg:surface0 fg:text"
+
+[os.symbols]
+Windows = "󰍲"
+Ubuntu = "󰕈"
+SUSE = ""
+Raspbian = "󰐿"
+Mint = "󰣭"
+Macos = ""
+Manjaro = ""
+Linux = "󰌽"
+Gentoo = "󰣨"
+Fedora = "󰣛"
+Alpine = ""
+Amazon = ""
+Android = ""
+Arch = "󰣇"
+Artix = "󰣇"
+CentOS = ""
+Debian = "󰣚"
+Redhat = "󱄛"
+RedHatEnterprise = "󱄛"
+
+[username]
+show_always = true
+style_user = "bg:surface0 fg:text"
+style_root = "bg:surface0 fg:text"
+format = '[ $user ]($style)'
+
+[directory]
+style = "fg:mantle bg:peach"
+format = "[ $path ]($style)"
+truncation_length = 3
+truncation_symbol = "…/"
+
+[directory.substitutions]
+"Documents" = "󰈙 "
+"Downloads" = " "
+"Music" = "󰝚 "
+"Pictures" = " "
+"Developer" = "󰲋 "
+
+[git_branch]
+symbol = ""
+style = "bg:teal"
+format = '[[ $symbol $branch ](fg:base bg:green)]($style)'
+
+[git_status]
+style = "bg:teal"
+format = '[[($all_status$ahead_behind )](fg:base bg:green)]($style)'
+
+[nodejs]
+symbol = ""
+style = "bg:teal"
+format = '[[ $symbol( $version) ](fg:base bg:teal)]($style)'
+
+[c]
+symbol = " "
+style = "bg:teal"
+format = '[[ $symbol( $version) ](fg:base bg:teal)]($style)'
+
+[rust]
+symbol = ""
+style = "bg:teal"
+format = '[[ $symbol( $version) ](fg:base bg:teal)]($style)'
+
+[golang]
+symbol = ""
+style = "bg:teal"
+format = '[[ $symbol( $version) ](fg:base bg:teal)]($style)'
+
+[php]
+symbol = ""
+style = "bg:teal"
+format = '[[ $symbol( $version) ](fg:base bg:teal)]($style)'
+
+[java]
+symbol = " "
+style = "bg:teal"
+format = '[[ $symbol( $version) ](fg:base bg:teal)]($style)'
+
+[kotlin]
+symbol = ""
+style = "bg:teal"
+format = '[[ $symbol( $version) ](fg:base bg:teal)]($style)'
+
+[haskell]
+symbol = ""
+style = "bg:teal"
+format = '[[ $symbol( $version) ](fg:base bg:teal)]($style)'
+
+[python]
+symbol = ""
+style = "bg:teal"
+format = '[[ $symbol( $version) ](fg:base bg:teal)]($style)'
+
+[docker_context]
+symbol = ""
+style = "bg:mantle"
+format = '[[ $symbol( $context) ](fg:#83a598 bg:color_bg3)]($style)'
+
+[time]
+disabled = false
+# time_format = "%R"
+time_format = "%I:%M %p"
+style = "pink"
+format = '[[  $time ](fg:mantle bg:pink)]($style)'
+
+[line_break]
+disabled = false
+
+[character]
+disabled = false
+success_symbol = '[>](bold fg:green)'
+error_symbol = '[>](bold fg:red)'
+vimcmd_symbol = '[<](bold fg:creen)'
+vimcmd_replace_one_symbol = '[<](bold fg:purple)'
+vimcmd_replace_symbol = '[<](bold fg:purple)'
+vimcmd_visual_symbol = '[<](bold fg:lavender)'
diff --git a/config/starship/nobara.toml b/config/starship/nobara.toml
new file mode 100644
index 00000000..8e189039
--- /dev/null
+++ b/config/starship/nobara.toml
@@ -0,0 +1,248 @@
+palette = "catppuccin_macchiato"
+format = """
+[░▒▓](crust)\
+$os\
+[](bg:lavender fg:crust)\
+$directory\
+[ ](fg:lavender bg:surface0)\
+$git_branch\
+$git_status\
+$hg_branch\
+[ ](fg:surface0 bg:crust)\
+[▓▒░](crust)\
+[ ◦•](surface2)\
+$fill\
+[•◦ ](surface2)\
+[░▒▓](crust)\
+[ ](fg:surface0 bg:crust)\
+$status\
+$cmd_duration\
+[ ](fg:crust bg:surface0)\
+$battery\
+[▓▒░](crust)
+[·](surface0)\
+[·](surface2)\
+[•](overlay1)\
+[ ](teal)\
+"""
+
+[fill]
+symbol = "·"
+style = "surface2"
+
+[directory]
+style = "fg:surface0 bg:lavender"
+format = "[ $path ]($style)"
+truncation_length = 3
+truncation_symbol = "…/"
+
+[directory.substitutions]
+"~" = "  "
+"Applications" = "  "
+"Desktop" = "  "
+"Developer" = "  "
+"Documents" = " 󰈙 "
+"Downloads" = "  "
+"Games" = "  "
+"GitHub" = "  "
+"Library" = "  "
+"Movies" = "  "
+"Music" = "  "
+"Pictures" = "  "
+"Projects" = "  "
+"Public" = "  "
+"Screenshots" = " 󱣴 "
+"Videos" = "  "
+"Thunderbird" = "  "
+"source" = " 󰈹 "
+"comm" = "  "
+
+
+[git_branch]
+symbol = ""
+style = "bg:surface0"
+format = '[[ $symbol $branch ](fg:lavender bg:surface0)]($style)'
+
+[git_status]
+style = "bg:surface0"
+format = '[[($all_status$ahead_behind )](fg:lavender bg:surface0)]($style)'
+
+[hg_branch]
+disabled = false
+symbol = ""
+style = "bg:surface0"
+format = '[[ $symbol $branch ](fg:lavender bg:surface0)]($style)'
+
+[cmd_duration]
+disabled = false
+min_time = 0
+show_milliseconds = true
+style = "fg:text bg:surface0"
+format = '[$duration]($style)'
+
+[status]
+symbol = '  '
+success_symbol = '  '
+not_executable_symbol = '  '
+not_found_symbol = '  '
+map_symbol = true
+disabled = false
+style = 'fg:text bg:surface0'
+format = '[$symbol]($style)'
+
+
+[battery]
+disabled = false
+full_symbol = ''
+charging_symbol = '⚡️'
+discharging_symbol = ''
+unknown_symbol = ''
+empty_symbol = ''
+format = '[[ $symbol $percentage ](fg:text bg:crust)]($style)'
+
+[[battery.display]]
+threshold = 25
+discharging_symbol = ''
+style = 'fg:yellow bg:crust'
+
+[[battery.display]]
+threshold = 10
+discharging_symbol = ''
+style = 'fg:peach bg:crust'
+
+[[battery.display]]
+threshold = 5
+discharging_symbol = ''
+style = 'bold fg:red bg:crust'
+
+[os]
+format = '[ $symbol]($style)'
+style = 'fg:lavender bg:crust'
+disabled = false
+
+[os.symbols]
+Arch = " "
+Debian = " "
+Fedora = " "
+FreeBSD = " "
+Linux = " "
+Macos = " "
+NixOS = "󱄅 "
+Nobara = " "
+Pop = " "
+Raspbian = " "
+Ubuntu = " "
+Unknown = " "
+
+# palette tables should be last in the config ⚓️
+[palettes.catppuccin_macchiato]
+rosewater = "#f4dbd6"
+flamingo = "#f0c6c6"
+pink = "#f5bde6"
+mauve = "#c6a0f6"
+red = "#ed8796"
+maroon = "#ee99a0"
+peach = "#f5a97f"
+yellow = "#eed49f"
+green = "#a6da95"
+teal = "#8bd5ca"
+sky = "#91d7e3"
+sapphire = "#7dc4e4"
+blue = "#8aadf4"
+lavender = "#b7bdf8"
+text = "#cad3f5"
+subtext1 = "#b8c0e0"
+subtext0 = "#a5adcb"
+overlay2 = "#939ab7"
+overlay1 = "#8087a2"
+overlay0 = "#6e738d"
+surface2 = "#5b6078"
+surface1 = "#494d64"
+surface0 = "#363a4f"
+base = "#24273a"
+mantle = "#1e2030"
+crust = "#181926"
+
+[palettes.catppuccin_frappe]
+rosewater = "#f2d5cf"
+flamingo = "#eebebe"
+pink = "#f4b8e4"
+mauve = "#ca9ee6"
+red = "#e78284"
+maroon = "#ea999c"
+peach = "#ef9f76"
+yellow = "#e5c890"
+green = "#a6d189"
+teal = "#81c8be"
+sky = "#99d1db"
+sapphire = "#85c1dc"
+blue = "#8caaee"
+lavender = "#babbf1"
+text = "#c6d0f5"
+subtext1 = "#b5bfe2"
+subtext0 = "#a5adce"
+overlay2 = "#949cbb"
+overlay1 = "#838ba7"
+overlay0 = "#737994"
+surface2 = "#626880"
+surface1 = "#51576d"
+surface0 = "#414559"
+base = "#303446"
+mantle = "#292c3c"
+crust = "#232634"
+
+[palettes.catppuccin_latte]
+rosewater = "#dc8a78"
+flamingo = "#dd7878"
+pink = "#ea76cb"
+mauve = "#8839ef"
+red = "#d20f39"
+maroon = "#e64553"
+peach = "#fe640b"
+yellow = "#df8e1d"
+green = "#40a02b"
+teal = "#179299"
+sky = "#04a5e5"
+sapphire = "#209fb5"
+blue = "#1e66f5"
+lavender = "#7287fd"
+text = "#4c4f69"
+subtext1 = "#5c5f77"
+subtext0 = "#6c6f85"
+overlay2 = "#7c7f93"
+overlay1 = "#8c8fa1"
+overlay0 = "#9ca0b0"
+surface2 = "#acb0be"
+surface1 = "#bcc0cc"
+surface0 = "#ccd0da"
+base = "#eff1f5"
+mantle = "#e6e9ef"
+crust = "#dce0e8"
+
+[palettes.catppuccin_mocha]
+rosewater = "#f5e0dc"
+flamingo = "#f2cdcd"
+pink = "#f5c2e7"
+mauve = "#cba6f7"
+red = "#f38ba8"
+maroon = "#eba0ac"
+peach = "#fab387"
+yellow = "#f9e2af"
+green = "#a6e3a1"
+teal = "#94e2d5"
+sky = "#89dceb"
+sapphire = "#74c7ec"
+blue = "#89b4fa"
+lavender = "#b4befe"
+text = "#cdd6f4"
+subtext1 = "#bac2de"
+subtext0 = "#a6adc8"
+overlay2 = "#9399b2"
+overlay1 = "#7f849c"
+overlay0 = "#6c7086"
+surface2 = "#585b70"
+surface1 = "#45475a"
+surface0 = "#313244"
+base = "#1e1e2e"
+mantle = "#181825"
+crust = "#11111b"
diff --git a/config/starship/purple-1line.toml b/config/starship/purple-1line.toml
new file mode 100644
index 00000000..878a0c54
--- /dev/null
+++ b/config/starship/purple-1line.toml
@@ -0,0 +1,79 @@
+add_newline = true
+format = "$nix_shell$hostname$directory$git_branch$git_state$git_status\n$character"
+palette = "base16"
+
+[character]
+error_symbol = "[❯](red)"
+success_symbol = "[❯](#c76aeb)"
+vimcmd_symbol = "[❮](cyan)"
+
+[directory]
+style = "#c76aeb"
+
+[git_branch]
+format = "on [$symbol$branch]($style)[](#4e3593) "
+style = "fg:#c76aeb bg:#4e3593"
+symbol = "[](#4e3593) "
+
+[git_state]
+format = "([$state( $progress_current/$progress_total)]($style)) "
+style = "bright-black"
+
+[git_status]
+conflicted = ""
+deleted = ""
+format = "[[(*$conflicted$untracked$modified$staged$renamed$deleted)](218)($ahead_behind$stashed)]($style)"
+renamed = ""
+stashed = "≡"
+style = "cyan"
+
+[nix_shell]
+format = "[$symbol]($style) "
+style = ""
+symbol = "🐚"
+
+[palettes.base16]
+base00 = "#191837"
+base01 = "#4e3593"
+base02 = "#7d4fcd"
+base03 = "#da72f3"
+base04 = "#ef99ff"
+base05 = "#f1dafd"
+base06 = "#fcecf6"
+base07 = "#fbeeff"
+base08 = "#ba6eeb"
+base09 = "#c668f1"
+base0A = "#c86ae2"
+base0B = "#f243e6"
+base0C = "#c36ced"
+base0D = "#c76aeb"
+base0E = "#b274ea"
+base0F = "#ec43e7"
+base10 = "#191837"
+base11 = "#191837"
+base12 = "#ba6eeb"
+base13 = "#c86ae2"
+base14 = "#f243e6"
+base15 = "#c36ced"
+base16 = "#c76aeb"
+base17 = "#b274ea"
+black = "#191837"
+blue = "#c76aeb"
+bright-black = "#da72f3"
+bright-blue = "#c76aeb"
+bright-cyan = "#c36ced"
+bright-green = "#f243e6"
+bright-magenta = "#b274ea"
+bright-purple = "#b274ea"
+bright-red = "#ba6eeb"
+bright-white = "#fbeeff"
+bright-yellow = "#c86ae2"
+brown = "#ec43e7"
+cyan = "#c36ced"
+green = "#f243e6"
+magenta = "#b274ea"
+orange = "#c668f1"
+purple = "#b274ea"
+red = "#ba6eeb"
+white = "#f1dafd"
+yellow = "#c86ae2"
diff --git a/config/starship/ranbow.toml b/config/starship/ranbow.toml
new file mode 100644
index 00000000..7cca5ee9
--- /dev/null
+++ b/config/starship/ranbow.toml
@@ -0,0 +1,181 @@
+"$schema" = 'https://starship.rs/config-schema.json'
+
+format = """
+[](color_orange)\
+$os\
+$username\
+[](bg:color_yellow fg:color_orange)\
+$directory\
+[](fg:color_yellow bg:color_aqua)\
+$git_branch\
+$git_status\
+[](fg:color_aqua bg:color_blue)\
+$c\
+$cpp\
+$rust\
+$golang\
+$nodejs\
+$php\
+$java\
+$kotlin\
+$haskell\
+$python\
+[](fg:color_blue bg:color_bg3)\
+$docker_context\
+$conda\
+$pixi\
+[](fg:color_bg3 bg:color_bg1)\
+$time\
+[ ](fg:color_bg1)\
+$line_break$character"""
+
+palette = 'gruvbox_dark'
+
+[palettes.gruvbox_dark]
+color_fg0 = '#fbf1c7'
+color_bg1 = '#3c3836'
+color_bg3 = '#665c54'
+color_blue = '#458588'
+color_aqua = '#689d6a'
+color_green = '#98971a'
+color_orange = '#d65d0e'
+color_purple = '#b16286'
+color_red = '#cc241d'
+color_yellow = '#d79921'
+
+[os]
+disabled = false
+style = "bg:color_orange fg:color_fg0"
+
+[os.symbols]
+Windows = "󰍲"
+Ubuntu = "󰕈"
+SUSE = ""
+Raspbian = "󰐿"
+Mint = "󰣭"
+Macos = "󰀵"
+Manjaro = ""
+Linux = "󰌽"
+Gentoo = "󰣨"
+Fedora = "󰣛"
+Alpine = ""
+Amazon = ""
+Android = ""
+AOSC = ""
+Arch = "󰣇"
+Artix = "󰣇"
+EndeavourOS = ""
+CentOS = ""
+Debian = "󰣚"
+Redhat = "󱄛"
+RedHatEnterprise = "󱄛"
+Pop = ""
+
+[username]
+show_always = true
+style_user = "bg:color_orange fg:color_fg0"
+style_root = "bg:color_orange fg:color_fg0"
+format = '[ $user ]($style)'
+
+[directory]
+style = "fg:color_fg0 bg:color_yellow"
+format = "[ $path ]($style)"
+truncation_length = 3
+truncation_symbol = "…/"
+
+[directory.substitutions]
+"Documents" = "󰈙 "
+"Downloads" = " "
+"Music" = "󰝚 "
+"Pictures" = " "
+"Developer" = "󰲋 "
+
+[git_branch]
+symbol = ""
+style = "bg:color_aqua"
+format = '[[ $symbol $branch ](fg:color_fg0 bg:color_aqua)]($style)'
+
+[git_status]
+style = "bg:color_aqua"
+format = '[[($all_status$ahead_behind )](fg:color_fg0 bg:color_aqua)]($style)'
+
+[nodejs]
+symbol = ""
+style = "bg:color_blue"
+format = '[[ $symbol( $version) ](fg:color_fg0 bg:color_blue)]($style)'
+
+[c]
+symbol = " "
+style = "bg:color_blue"
+format = '[[ $symbol( $version) ](fg:color_fg0 bg:color_blue)]($style)'
+
+[cpp]
+symbol = " "
+style = "bg:color_blue"
+format = '[[ $symbol( $version) ](fg:color_fg0 bg:color_blue)]($style)'
+
+[rust]
+symbol = ""
+style = "bg:color_blue"
+format = '[[ $symbol( $version) ](fg:color_fg0 bg:color_blue)]($style)'
+
+[golang]
+symbol = ""
+style = "bg:color_blue"
+format = '[[ $symbol( $version) ](fg:color_fg0 bg:color_blue)]($style)'
+
+[php]
+symbol = ""
+style = "bg:color_blue"
+format = '[[ $symbol( $version) ](fg:color_fg0 bg:color_blue)]($style)'
+
+[java]
+symbol = ""
+style = "bg:color_blue"
+format = '[[ $symbol( $version) ](fg:color_fg0 bg:color_blue)]($style)'
+
+[kotlin]
+symbol = ""
+style = "bg:color_blue"
+format = '[[ $symbol( $version) ](fg:color_fg0 bg:color_blue)]($style)'
+
+[haskell]
+symbol = ""
+style = "bg:color_blue"
+format = '[[ $symbol( $version) ](fg:color_fg0 bg:color_blue)]($style)'
+
+[python]
+symbol = ""
+style = "bg:color_blue"
+format = '[[ $symbol( $version) ](fg:color_fg0 bg:color_blue)]($style)'
+
+[docker_context]
+symbol = ""
+style = "bg:color_bg3"
+format = '[[ $symbol( $context) ](fg:#83a598 bg:color_bg3)]($style)'
+
+[conda]
+style = "bg:color_bg3"
+format = '[[ $symbol( $environment) ](fg:#83a598 bg:color_bg3)]($style)'
+
+[pixi]
+style = "bg:color_bg3"
+format = '[[ $symbol( $version)( $environment) ](fg:color_fg0 bg:color_bg3)]($style)'
+
+[time]
+disabled = false
+time_format = "%R"
+style = "bg:color_bg1"
+format = '[[  $time ](fg:color_fg0 bg:color_bg1)]($style)'
+
+[line_break]
+disabled = false
+
+[character]
+disabled = false
+success_symbol = '[](bold fg:color_green)'
+error_symbol = '[](bold fg:color_red)'
+vimcmd_symbol = '[](bold fg:color_green)'
+vimcmd_replace_one_symbol = '[](bold fg:color_purple)'
+vimcmd_replace_symbol = '[](bold fg:color_purple)'
+vimcmd_visual_symbol = '[](bold fg:color_yellow)'
diff --git a/config/starship/simple-prompt.toml b/config/starship/simple-prompt.toml
new file mode 100644
index 00000000..bf659198
--- /dev/null
+++ b/config/starship/simple-prompt.toml
@@ -0,0 +1,187 @@
+[character]
+success_symbol = "[>](bold green)"
+error_symbol = "[x](bold red)"
+vimcmd_symbol = "[<](bold green)"
+
+[git_commit]
+tag_symbol = " tag "
+
+[git_status]
+ahead = ">"
+behind = "<"
+diverged = "<>"
+renamed = "r"
+deleted = "x"
+
+[aws]
+symbol = "aws "
+
+[bun]
+symbol = "bun "
+
+[c]
+symbol = "C "
+
+[cobol]
+symbol = "cobol "
+
+[conda]
+symbol = "conda "
+
+[crystal]
+symbol = "cr "
+
+[cmake]
+symbol = "cmake "
+
+[daml]
+symbol = "daml "
+
+[dart]
+symbol = "dart "
+
+[deno]
+symbol = "deno "
+
+[dotnet]
+symbol = ".NET "
+
+[directory]
+read_only = " ro"
+
+[docker_context]
+symbol = "docker "
+
+[elixir]
+symbol = "exs "
+
+[elm]
+symbol = "elm "
+
+[git_branch]
+symbol = "git "
+
+[golang]
+symbol = "go "
+
+[guix_shell]
+symbol = "guix "
+
+[hg_branch]
+symbol = "hg "
+
+[java]
+symbol = "java "
+
+[julia]
+symbol = "jl "
+
+[kotlin]
+symbol = "kt "
+
+[lua]
+symbol = "lua "
+
+[nodejs]
+symbol = "nodejs "
+
+[memory_usage]
+symbol = "memory "
+
+[meson]
+symbol = "meson "
+
+[nim]
+symbol = "nim "
+
+[nix_shell]
+symbol = "nix "
+
+[ocaml]
+symbol = "ml "
+
+[opa]
+symbol = "opa "
+
+[os.symbols]
+Alpine = "alp "
+Amazon = "amz "
+Android = "andr "
+Arch = "rch "
+CentOS = "cent "
+Debian = "deb "
+DragonFly = "dfbsd "
+Emscripten = "emsc "
+EndeavourOS = "ndev "
+Fedora = "fed "
+FreeBSD = "fbsd "
+Garuda = "garu "
+Gentoo = "gent "
+HardenedBSD = "hbsd "
+Illumos = "lum "
+Linux = "lnx "
+Macos = "mac "
+Manjaro = "mjo "
+Mariner = "mrn "
+MidnightBSD = "mid "
+Mint = "mint "
+NetBSD = "nbsd "
+NixOS = "nix "
+OpenBSD = "obsd "
+openSUSE = "osuse "
+OracleLinux = "orac "
+Pop = "pop "
+Raspbian = "rasp "
+Redhat = "rhl "
+RedHatEnterprise = "rhel "
+Redox = "redox "
+Solus = "sol "
+SUSE = "suse "
+Ubuntu = "ubnt "
+Unknown = "unk "
+Windows = "win "
+
+[package]
+symbol = "pkg "
+
+[perl]
+symbol = "pl "
+
+[php]
+symbol = "php "
+
+[pulumi]
+symbol = "pulumi "
+
+[purescript]
+symbol = "purs "
+
+[python]
+symbol = "py "
+
+[raku]
+symbol = "raku "
+
+[ruby]
+symbol = "rb "
+
+[rust]
+symbol = "rs "
+
+[scala]
+symbol = "scala "
+
+[spack]
+symbol = "spack "
+
+[sudo]
+symbol = "sudo "
+
+[swift]
+symbol = "swift "
+
+[terraform]
+symbol = "terraform "
+
+[zig]
+symbol = "zig "
diff --git a/config/starship/vill-minimalist.toml b/config/starship/vill-minimalist.toml
new file mode 100644
index 00000000..509b861b
--- /dev/null
+++ b/config/starship/vill-minimalist.toml
@@ -0,0 +1,405 @@
+# "$schema" = 'https://starship.rs/config-schema.json'
+add_newline = false
+format = """\
+ 󰣇 \
+ $directory\
+ $git_branch$git_commit$git_state $git_status\
+ $character\n
+"""
+right_format = """
+$singularity\
+$kubernetes\
+$vcsh\
+$hg_branch\
+$pijul_channel\
+$c\
+$cmake\
+$cobol\
+$daml\
+$dart\
+$deno\
+$dotnet\
+$elixir\
+$elm\
+$erlang\
+$fennel\
+$golang\
+$guix_shell\
+$haskell\
+$haxe\
+$helm\
+$java\
+$julia\
+$kotlin\
+$gradle\
+$lua\
+$nim\
+$nodejs\
+$ocaml\
+$opa\
+$perl\
+$pulumi\
+$purescript\
+$python\
+$raku\
+$rlang\
+$red\
+$ruby\
+$rust\
+$scala\
+$solidity\
+$swift\
+$terraform\
+$vlang\
+$vagrant\
+$zig\
+$buf\
+$conda\
+$meson\
+$spack\
+$memory_usage\
+$aws\
+$gcloud\
+$openstack\
+$azure\
+$cpp\
+$kotlin\
+$ocaml\
+$pixi\
+$rlang\
+$php\
+$crystal\
+$custom\
+$status\
+$os\
+$time"""
+
+continuation_prompt = '▶▶ '
+
+
+# style_choices:
+# bold
+# italic
+# underline
+# dimmed
+# inverted
+# blink
+# hidden
+# strikethrough
+# bg:<color>
+# fg:<color>
+# <color>
+# none
+
+#NOTE: you can customize the symbols, e.g:
+# [character]
+# success_symbol = "[  ]($bold fg:#f8f8f2)"
+# error_symbol = "[ ➤ ]($bold fg:#fb4934)"
+
+[directory]
+disabled = false
+format = "[$path](bold fg:#8be9fd)"
+truncate_to_repo = false
+# home_symbol = ""
+
+[git_branch]
+format = " [  $branch](fg:#9198a1)"
+
+[git_status]
+ahead = '⇡${count}'
+behind = '⇣${count}'
+diverged = '⇕⇡${ahead_count}⇣${behind_count}'
+format = '[[( $all_status$ahead_behind )](fg:#769ff0)]($style)'
+style = "bg:#394260"
+
+
+[time]
+disabled = false
+format = '[[  $time ](fg:#a0a9cb )]($style)'
+time_format = "%R" # Hour:Minute Format
+
+[deno]
+format = " [deno](italic) [ ](green bold)"
+version_format = "${raw}"
+
+[lua]
+format = " [lua](italic) [${symbol}]($style)"
+style = "bold bright-yellow"
+symbol = "⨀ "
+version_format = "${raw}"
+
+[nodejs]
+detect_extensions = []
+detect_files = ["package-lock.json", "yarn.lock"]
+detect_folders = ["node_modules"]
+format = "[ ](bold bright-green)"
+version_format = "${raw}"
+
+[python]
+format = "[${symbol}(${virtualenv}) ${version}]($style)"
+style = "bold bright-yellow"
+symbol = "[ ](bold bright-blue)"
+version_format = "${raw}"
+
+[ruby]
+format = " [rb](italic) [${symbol}]($style)"
+style = "bold red"
+symbol = " "
+version_format = "${raw}"
+
+[rust]
+style = "bold bright-red"
+format = " rs(italic) $symbol($style)"
+symbol = " "
+
+[swift]
+format = " [sw](italic) [${symbol}]($style)"
+style = "bold bright-red"
+symbol = " "
+version_format = "${raw}"
+
+[aws]
+disabled = true
+format = " [aws](italic) [$symbol $profile $region]($style)"
+style = "bold blue"
+symbol = " "
+
+[buf]
+style = "bold bright-red"
+format = " [buf](italic) [$symbol $buf_version]($style)"
+symbol = "■ "
+
+[c]
+style = "bold bright-cyan"
+format = " [$symbol(-$name)]($style)"
+symbol = "ℂ "
+
+[cpp]
+style = "bold bright-cyan"
+format = " [cpp](italic) [$symbol]($style)"
+symbol = " "
+
+[kotlin]
+format = " [kotlin](italic) [$symbol]($style)"
+style = "bold bright-red"
+symbol = " "
+
+[ocaml]
+format = " [ocaml](italic) [$symbol]($style)"
+style = "bold bright-yellow"
+symbol = " "
+
+[perl]
+format = " [perl](italic) [$symbol]($style)"
+style = "bold bright-cyan"
+symbol = " "
+
+[php]
+format = " [php](italic) [$symbol]($style)"
+style = "bold bright-red"
+symbol = " "
+
+[pixi]
+format = " [pixi](italic) [$symbol]($style)"
+style = "bold bright-yellow"
+symbol = "pixi "
+
+[rlang]
+format = " [rlang](italic) [$symbol]($style)"
+style = "bold bright-cyan"
+symbol = " "
+
+[meson]
+format = " [meson](italic) [$symbol]($style)"
+style = "bold bright-red"
+symbol = "meson "
+
+[conda]
+style = "bold bright-red"
+format = " conda [$symbol$environment]($style)"
+symbol = "◯ "
+
+[dart]
+style = "bold bright-cyan"
+format = " dart [$symbol]($style)"
+symbol = " "
+
+
+[elixir]
+style = "bold bright-yellow"
+format = " exs [$symbol OTP $otp_version ]($style)"
+symbol = " "
+
+[elm]
+style = "bold bright-red"
+format = " elm [$symbol]($style)"
+symbol = "◩ "
+
+[golang]
+style = "bold bright-blue"
+format = " go [$symbol]($style)"
+symbol = "∩ "
+
+[haskell]
+style = "bold bright-yellow"
+format = " hs [$symbol]($style)"
+symbol = "❯λ "
+
+[java]
+style = "bold bright-red"
+format = " java [${symbol}]($style)"
+symbol = " "
+
+[julia]
+style = "bold bright-cyan"
+format = " jl [$symbol]($style)"
+symbol = "◎ "
+
+[memory_usage]
+style = "bold bright-cyan"
+format = " mem [${ram}( ${swap})]($style)"
+symbol = "▪▫▪ "
+
+[nim]
+style = "bold bright-yellow"
+format = " nim [$symbol]($style)"
+symbol = "▴▲▴ "
+
+[nix_shell]
+format = '[$symbol nix⎪$state⎪]($style) [$name](italic dimmed white)'
+impure_msg = '[⌽](bold dimmed red)'
+pure_msg = '[⌾](bold dimmed green)'
+style = 'bold italic dimmed blue'
+symbol = ' '
+unknown_msg = '[◌](bold dimmed ellow)'
+
+[spack]
+style = "bold bright-yellow"
+format = " spack [$symbol$environment]($style)"
+symbol = "◇ "
+
+
+[zig]
+style = "bold bright-yellow"
+format = " zig [$symbol]($style)"
+symbol = " "
+
+
+[scala]
+format = " scala [$symbol]($style)"
+symbol = " "
+
+[singularity]
+style = "bold bright-yellow"
+format = " [singularity](italic) [$symbol]($style)"
+symbol = "singularity "
+
+[kubernetes]
+style = "bold bright-cyan"
+format = " [kubernetes](italic) [$symbol]($style)"
+symbol = " "
+
+[vcsh]
+style = "bold bright-red"
+format = " [vcsh](italic) [$symbol]($style)"
+symbol = "vcsh "
+
+[cobol]
+style = "bold bright-yellow"
+format = " [cobol](italic) [$symbol]($style)"
+symbol = "cobol "
+
+[daml]
+style = "bold bright-cyan"
+format = " [daml](italic) [$symbol]($style)"
+symbol = "daml "
+
+[dotnet]
+style = "bold bright-red"
+format = " [dotnet](italic) [$symbol]($style)"
+symbol = ".NET "
+
+[erlang]
+style = "bold bright-yellow"
+format = " [erlang](italic) [$symbol]($style)"
+symbol = " "
+
+[fennel]
+style = "bold bright-cyan"
+format = " [fennel](italic) [$symbol]($style)"
+symbol = " "
+
+[haxe]
+style = "bold bright-red"
+format = " [haxe](italic) [$symbol]($style)"
+symbol = " "
+
+[helm]
+style = "bold bright-yellow"
+format = " [helm](italic) [$symbol]($style)"
+symbol = "helm "
+
+[opa]
+style = "bold bright-cyan"
+format = " [opa](italic) [$symbol]($style)"
+symbol = "opa "
+
+[pulumi]
+format = " [pulumi](italic) [$symbol]($style)"
+style = "bold bright-red"
+symbol = "pulumi "
+
+[purescript]
+style = "bold bright-yellow"
+format = " [purescript](italic) [$symbol]($style)"
+symbol = " "
+
+[raku]
+style = "bold bright-cyan"
+format = " [raku](italic) [$symbol]($style)"
+symbol = "raku "
+
+[red]
+style = "bold bright-red"
+format = " [red](italic) [$symbol]($style)"
+symbol = "red "
+
+[solidity]
+style = "bold bright-yellow"
+format = " [solidity](italic) [$symbol]($style)"
+symbol = " "
+
+[terraform]
+style = "bold bright-cyan"
+format = " [terraform](italic) [$symbol]($style)"
+symbol = "terraform "
+
+[vlang]
+format = " [vlang](italic) [$symbol]($style)"
+style = "bold bright-red"
+symbol = "vlang "
+
+[vagrant]
+format = " [vagrant](italic) [$symbol]($style)"
+style = "bold bright-yellow"
+symbol = "vagrant "
+
+[gcloud]
+format = " [gcloud](italic) [$symbol]($style)"
+style = "bold bright-cyan"
+symbol = "gcloud "
+
+[openstack]
+format = " [openstack](italic) [$symbol]($style)"
+style = "bold bright-red"
+symbol = "openstack "
+
+[azure]
+format = " [azure](italic) [$symbol]($style)"
+style = "bold bright-yellow"
+symbol = " "
+
+[crystal]
+format = " [crystal](italic) [$symbol]($style)"
+style = "bold bright-cyan"
+symbol = " "
diff --git a/config/systemd/user/xdg-desktop-portal.service.d/override.conf b/config/systemd/user/xdg-desktop-portal.service.d/override.conf
new file mode 100644
index 00000000..22ce3905
--- /dev/null
+++ b/config/systemd/user/xdg-desktop-portal.service.d/override.conf
@@ -0,0 +1,4 @@
+[Unit]
+Requisite=
+Requires=graphical-session.target
+After=graphical-session.target
diff --git a/config/waybar/ModulesWorkspaces b/config/waybar/ModulesWorkspaces
index 15f5da5b..fe75ea19 100644
--- a/config/waybar/ModulesWorkspaces
+++ b/config/waybar/ModulesWorkspaces
@@ -198,6 +198,7 @@
"class<kitty-dropterm>": " ",
"class<com.mitchellh.ghostty>": " ",
"class<org.wezfurlong.wezterm>": " ",
+ "class<waveterm>": " 🌊",
"class<play.mii.Boxxy>": " ",
"class<Warp|warp|dev.warp.Warp|warp-terminal>": "󰰭 ",
diff --git a/config/waybar/style/0-VERTICAL-Catpuccin-Mocha.css b/config/waybar/style/0-VERTICAL-Catpuccin-Mocha.css
deleted file mode 100644
index a72b2694..00000000
--- a/config/waybar/style/0-VERTICAL-Catpuccin-Mocha.css
+++ /dev/null
@@ -1,267 +0,0 @@
-/* ---- 💫 https://github.com/LinuxBeginnings 💫 ---- */
-/* Vertical Catpuccin Mocha */
-/* As stated on title, best style for vertical layout waybar config */
-
-* {
- font-family: "JetBrainsMono Nerd Font";
- font-weight: bold;
- min-height: 0;
- /* set font-size to 100% if font scaling is set to 1.00 using nwg-look */
- /* NOTE: Waybar v14+ ignores % font-size values */
- font-size: 99%;
- font-feature-settings: '"zero", "ss01", "ss02", "ss03", "ss04", "ss05", "cv31"';
-}
-
-@import "../waybar/style/catppuccin-themes/mocha.css";
-
-window#waybar {
- background-color: @base;
- border-radius: 5px;
- /* Waybar scaling: adjust font-size to scale the bar */
- font-size: 14px;
-}
-
-tooltip {
- background: @base;
- opacity: 1;
- border-radius: 10px;
- border-width: 2px;
- border-style: solid;
- border-color: @sapphire;
-}
-
-/* Waybar scaling: adjust tooltip label font-size to scale the bar */
-tooltip label {
- color: @blue;
- /* Waybar scaling: adjust tooltip label font-size to scale the bar */
- font-size: 14px;
-}
-
-#taskbar button,
-#workspaces button {
- color: @surface2;
- background-color: transparent;
- padding-top: 4px;
- padding-bottom: 4px;
- padding-right: 6px;
- padding-left: 4px;
-}
-
-#taskbar button.active,
-#workspaces button.active {
- color: @maroon;
-}
-
-#taskbar button.focused,
-#workspaces button.focused {
- color: @rosewater;
- background: transparent;
- border-radius: 15px;
-}
-
-#workspaces button.urgent {
- color: #11111b;
- background: transparent;
- border-radius: 15px;
-}
-
-#taskbar button:hover,
-#workspaces button:hover {
- background: transparent;
- color: @flamingo;
- border-radius: 15px;
-}
-
-#backlight,
-#backlight-slider,
-#battery,
-#bluetooth,
-#clock,
-#cpu,
-#disk,
-#idle_inhibitor,
-#keyboard-state,
-#memory,
-#mode,
-#mpris,
-#network,
-#power-profiles-daemon,
-#pulseaudio,
-#pulseaudio-slider,
-#taskbar button,
-#taskbar,
-#temperature,
-#tray,
-#window,
-#wireplumber,
-#workspaces,
-#custom-backlight,
-#custom-nightlight,
-#custom-browser,
-#custom-cava_mviz,
-#custom-cycle_wall,
-#custom-dot_update,
-#custom-file_manager,
-#custom-keybinds,
-#custom-keyboard,
-#custom-light_dark,
-#custom-nightlight,
-#custom-lock,
-#custom-hint,
-#custom-hypridle,
-#custom-hypr_layout,
-#custom-menu,
-#custom-playerctl,
-#custom-power_vertical,
-#custom-power,
-#custom-quit,
-#custom-reboot,
-#custom-settings,
-#custom-spotify,
-#custom-swaync,
-#custom-tty,
-#custom-updater,
-#custom-hyprpicker,
-#custom-weather,
-#custom-weather2,
-#custom-weather.clearNight,
-#custom-weather.cloudyFoggyDay,
-#custom-weather.cloudyFoggyNight,
-#custom-weather.default,
-#custom-weather.rainyDay,
-#custom-weather.rainyNight,
-#custom-weather.severe,
-#custom-weather.showyIcyDay,
-#custom-weather.snowyIcyNight,
-#custom-weather.sunnyDay {
- opacity: 1;
- padding-top: 4px;
- padding-bottom: 4px;
- padding-right: 6px;
- padding-left: 6px;
-}
-
-#idle_inhibitor {
- color: @pink;
- border-bottom: 8px solid rgba(0, 0, 0, 0.2);
-}
-
-#mpris {
- color: @rosewater;
-}
-
-#battery {
- color: #a6e3a1;
- padding-left: 15px;
- border-radius: 15px 0 0 15px;
-}
-
-@keyframes blink {
- to {
- background-color: #ffffff;
- color: #333333;
- }
-}
-
-#battery.critical:not(.charging) {
- color: #f53c3c;
- animation-name: blink;
- animation-duration: 0.5s;
- animation-timing-function: linear;
- animation-iteration-count: infinite;
- animation-direction: alternate;
-}
-
-#custom-lock,
-#custom-power {
- color: @red;
- border-radius: 15px;
- font-weight: bolder;
- padding-left: 1px;
-}
-
-#network {
- background-color: transparent;
- color: @mauve;
-}
-
-#backlight {
- color: @flamingo;
-}
-
-
-#custom-weather {
- color: @green;
- border-radius: 15px;
- background-color: transparent;
-}
-
-#custom-menu {
- color: #89b4fa;
-}
-
-#pulseaudio {
- background-color: transparent;
- color: @blue;
-}
-
-#clock,
-#clock-calender {
- color: @sapphire;
-}
-
-#backlight-slider slider,
-#pulseaudio-slider slider {
- min-height: 7px;
- min-width: 15px;
- opacity: 0;
- background-color: @text;
- border-radius: 3px;
- box-shadow: 1px 5px 6px 1px #272727;
-}
-
-#backlight-slider trough,
-#pulseaudio-slider trough {
- min-height: 100px;
- min-width: 7px;
- border-radius: 5px;
- background-color: @surface0;
-}
-
-window#waybar.bottombar #backlight-slider trough,
-window#waybar.bottombar #pulseaudio-slider trough {
- min-height: 7px;
- /* Waybar scaling: adjust font-size to scale the bar */
- font-size: 14px;
-}
-
-#backlight-slider highlight,
-#pulseaudio-slider highlight {
- min-width: 5px;
- border-radius: 5px;
- background-color: @blue;
-}
-
-/* --- tray readability override (global) --- */
-#tray > *,
-#tray > .passive,
-#tray > .active,
-#tray > .needs-attention {
- background: rgba(137, 180, 250, 0.55);
- border-radius: 8px;
- border: 1px solid rgba(17, 17, 27, 0.35);
- margin-left: 1px;
- margin-right: 1px;
- padding-left: 2px;
- padding-right: 2px;
- color: rgba(17, 17, 27, 0.98);
- -gtk-icon-effect: none;
-}
-
-#tray image {
- background: transparent;
- color: rgba(17, 17, 27, 0.98);
- -gtk-icon-style: symbolic;
- -gtk-icon-effect: none;
- opacity: 1;
-}
diff --git a/config/waybar/style/0-VERTICAL-Golden-Noir.css b/config/waybar/style/0-VERTICAL-Golden-Noir.css
deleted file mode 100644
index 45a6fe5a..00000000
--- a/config/waybar/style/0-VERTICAL-Golden-Noir.css
+++ /dev/null
@@ -1,251 +0,0 @@
-/* ----------- 💫 https://github.com/LinuxBeginnings 💫 -------- */
-/* ...............Golden Noir................ */
-/* --- 👍 designed by https://github.com/Krautt 👍 --- */
-
-* {
- font-family: "JetBrainsMono Nerd Font";
- font-weight: bold;
- min-height: 0;
- /* set font-size to 100% if font scaling is set to 1.00 using nwg-look */
- /* NOTE: Waybar v14+ ignores % font-size values */
- font-size: 99%;
- font-feature-settings: '"zero", "ss01", "ss02", "ss03", "ss04", "ss05", "cv31"';
-}
-
-window#waybar {
- background: #040406;
- border-radius: 30px;
- color: #cba6f7;
-
- /* Waybar scaling: adjust font-size to scale the bar */
- font-size: 14px;
-}
-
-window#waybar.hidden {
- opacity: 0.5;
- /* Waybar scaling: adjust font-size to scale the bar */
- font-size: 14px;
-}
-
-tooltip {
- background: #1e1e2e;
- border-radius: 10px;
- border-width: 2px;
- border-style: solid;
- border-color: #11111b;
- color: #ffd700;
-}
-
-/*-----module groups----*/
-.modules-left,
-.modules-right {
- padding-top: 2px;
- padding-bottom: 2px;
- padding-right: 4px;
- padding-left: 4px;
-
-}
-
-.modules-center {
- border-top: 1px solid #ffd700;
- border-bottom: 1px solid #ffd700;
- border-radius: 20px;
- padding-top: 2px;
- padding-bottom: 2px;
- padding-right: 4px;
- padding-left: 4px;
-}
-
-#taskbar button,
-#workspaces button {
- color: #6E6A86;
- box-shadow: none;
- text-shadow: none;
- padding: 0px;
- border-radius: 9px;
- padding-left: 4px;
- padding-right: 4px;
- animation: gradient_f 20s ease-in infinite;
- transition: all 0.5s cubic-bezier(.55,-0.68,.48,1.682);
-}
-
-#taskbar button.active,
-#workspaces button.active {
- color: #ffd700;
- border-radius: 50%;
- background-color: black;
- border-radius: 15px 15px 15px 15px;
- padding-left: 5px;
- padding-right: 5px;
- animation: gradient_f 20s ease-in infinite;
- transition: all 0.3s cubic-bezier(.55,-0.68,.48,1.682);
-}
-
-#workspaces button.focused {
- color: #d8dee9;
-}
-
-#workspaces button.urgent {
- color: #11111b;
- border-radius: 10px;
-}
-
-#taskbar button:hover,
-#workspaces button:hover {
- color: #ffd700;
- border-radius: 15px;
- padding-left: 2px;
- padding-right: 2px;
- animation: gradient_f 20s ease-in infinite;
- transition: all 0.3s cubic-bezier(.55,-0.68,.48,1.682);
-}
-
-#backlight,
-#backlight-slider,
-#battery,
-#bluetooth,
-#clock,
-#cpu,
-#disk,
-#idle_inhibitor,
-#keyboard-state,
-#memory,
-#mode,
-#mpris,
-#network,
-#power-profiles-daemon,
-#pulseaudio,
-#pulseaudio-slider,
-#taskbar,
-#temperature,
-#tray,
-#window,
-#wireplumber,
-#workspaces,
-#custom-backlight,
-#custom-nightlight,
-#custom-browser,
-#custom-cava_mviz,
-#custom-cycle_wall,
-#custom-dot_update,
-#custom-file_manager,
-#custom-keybinds,
-#custom-keyboard,
-#custom-light_dark,
-#custom-nightlight,
-#custom-lock,
-#custom-hint,
-#custom-hypridle,
-#custom-hypr_layout,
-#custom-menu,
-#custom-playerctl,
-#custom-power_vertical,
-#custom-power,
-#custom-quit,
-#custom-reboot,
-#custom-settings,
-#custom-spotify,
-#custom-swaync,
-#custom-tty,
-#custom-updater,
-#custom-hyprpicker,
-#custom-weather,
-#custom-weather2,
-#custom-weather.clearNight,
-#custom-weather.cloudyFoggyDay,
-#custom-weather.cloudyFoggyNight,
-#custom-weather.default,
-#custom-weather.rainyDay,
-#custom-weather.rainyNight,
-#custom-weather.severe,
-#custom-weather.showyIcyDay,
-#custom-weather.snowyIcyNight,
-#custom-weather.sunnyDay {
- color: #e5d9f5;
- padding-top: 5px;
- padding-bottom: 5px;
- padding-right: 5px;
- padding-left: 5px;
-}
-
-#temperature.critical {
- background-color: #ff0000;
-}
-
-@keyframes blink {
- to {
- color: #000000;
- }
-}
-
-/*-----Indicators----*/
-#custom-hypridle.notactive,
-#idle_inhibitor.activated {
- color: #39FF14;
- border-bottom: 8px solid rgba(0, 0, 0, 0.2);
-}
-
-#battery.critical:not(.charging) {
- color: #f53c3c;
- animation-name: blink;
- animation-duration: 3.0s;
- animation-timing-function: steps(12);
- animation-iteration-count: infinite;
- animation-direction: alternate;
-}
-
-#backlight-slider slider,
-#pulseaudio-slider slider {
- min-height: 7px;
- min-width: 15px;
- opacity: 0;
- background-image: none;
- border: none;
- box-shadow: none;
-}
-
-#backlight-slider trough,
-#pulseaudio-slider trough {
- min-height: 100px;
- min-width: 7px;
- border-radius: 5px;
- background-color: #22252a;
-}
-
-window#waybar.bottombar #backlight-slider trough,
-window#waybar.bottombar #pulseaudio-slider trough {
- min-height: 7px;
- /* Waybar scaling: adjust font-size to scale the bar */
- font-size: 14px;
-}
-
-#backlight-slider highlight,
-#pulseaudio-slider highlight {
- min-width: 5px;
- border-radius: 5px;
- background-color: #ba5663;
-}
-
-/* --- tray readability override (global) --- */
-#tray > *,
-#tray > .passive,
-#tray > .active,
-#tray > .needs-attention {
- background: rgba(137, 180, 250, 0.55);
- border-radius: 8px;
- border: 1px solid rgba(17, 17, 27, 0.35);
- margin-left: 1px;
- margin-right: 1px;
- padding-left: 2px;
- padding-right: 2px;
- color: rgba(17, 17, 27, 0.98);
- -gtk-icon-effect: none;
-}
-
-#tray image {
- background: transparent;
- color: rgba(17, 17, 27, 0.98);
- -gtk-icon-style: symbolic;
- -gtk-icon-effect: none;
- opacity: 1;
-}
diff --git a/config/waybar/style/0-VERTICAL-Oglo-Chicklets.css b/config/waybar/style/0-VERTICAL-Oglo-Chicklets.css
deleted file mode 100644
index 90b287fd..00000000
--- a/config/waybar/style/0-VERTICAL-Oglo-Chicklets.css
+++ /dev/null
@@ -1,448 +0,0 @@
-/* ---- 💫 https://github.com/LinuxBeginnings 💫 ---- */
-/* Oglo Chicklets */
-
-* {
- font-family: "JetBrainsMono Nerd Font", FontAwesome, Roboto, Helvetica, Arial, sans-serif;
- /* NOTE: Waybar v14+ ignores % font-size values */
- font-size: 99%;
- font-weight: bold;
-}
-
-window#waybar {
- background-color: #232a2e;
- border-bottom: 8px solid #1d2327;
- color: #d3c6aa;
- transition-property: background-color;
- transition-duration: .5s;
- /* Waybar scaling: adjust font-size to scale the bar */
- font-size: 14px;
-}
-
-window#waybar.hidden {
- opacity: 0.2;
- /* Waybar scaling: adjust font-size to scale the bar */
- font-size: 14px;
-}
-
-/*
-window#waybar.empty {
- background-color: transparent;
- /* Waybar scaling: adjust font-size to scale the bar */
- font-size: 14px;
-}
-window#waybar.solo {
- background-color: #FFFFFF;
- /* Waybar scaling: adjust font-size to scale the bar */
- font-size: 14px;
-}
-*/
-
-button {
- all: unset;
- background-color: #778f52;
- color: #2d353b;
- border: none;
- border-bottom: 8px solid #5d743e;
- border-radius: 5px;
- padding-left: 5px;
- padding-right: 5px;
- transition: transform 0.1s ease-in-out;
-}
-
-button:hover {
- background: inherit;
- background-color: #92ab6c;
- border-bottom: 8px solid #788f57;
-}
-
-button.active {
- background: inherit;
- background-color: #a5be7e;
- border-bottom: 8px solid #8aa168;
-}
-
-#mode {
- background-color: #64727D;
- border-bottom: 3px solid #ffffff;
-}
-
-#backlight,
-#backlight-slider,
-#battery,
-#bluetooth,
-#clock,
-#cpu,
-#disk,
-#idle_inhibitor,
-#keyboard-state,
-#memory,
-#mode,
-#mpris,
-#network,
-#power-profiles-daemon,
-#pulseaudio,
-#pulseaudio-slider,
-#taskbar,
-#temperature,
-#tray,
-#window,
-#wireplumber,
-#workspaces,
-#custom-backlight,
-#custom-nightlight,
-#custom-browser,
-#custom-cava_mviz,
-#custom-cycle_wall,
-#custom-dot_update,
-#custom-file_manager,
-#custom-keybinds,
-#custom-keyboard,
-#custom-light_dark,
-#custom-nightlight,
-#custom-lock,
-#custom-hint,
-#custom-hypridle,
-#custom-hypr_layout,
-#custom-menu,
-#custom-playerctl,
-#custom-power_vertical,
-#custom-power,
-#custom-quit,
-#custom-reboot,
-#custom-settings,
-#custom-spotify,
-#custom-swaync,
-#custom-tty,
-#custom-updater,
-#custom-hyprpicker,
-#custom-weather,
-#custom-weather2,
-#custom-weather.clearNight,
-#custom-weather.cloudyFoggyDay,
-#custom-weather.cloudyFoggyNight,
-#custom-weather.default,
-#custom-weather.rainyDay,
-#custom-weather.rainyNight,
-#custom-weather.severe,
-#custom-weather.showyIcyDay,
-#custom-weather.snowyIcyNight,
-#custom-weather.sunnyDay{
- color: #ffffff;
- padding-top: 2px;
- padding-bottom: 2px;
- border-radius: 5px;
- padding-left: 5px;
- padding-right: 5px;
-}
-
-#window,
-#workspaces {
- margin: 5px;
-}
-
-/* If workspaces is the leftmost module, omit left margin */
-.modules-left > widget:first-child > #workspaces {
- margin-left: 0;
-}
-
-/* If workspaces is the rightmost module, omit right margin */
-.modules-right > widget:last-child > #workspaces {
- margin-right: 0;
-}
-
-#window {
- background-color: #343f44;
- color: #d3c6aa;
- border-bottom: 8px solid #2b3539;
-}
-
-#custom-swaync {
- background-color: #778f52;
- color: #2d353b;
- border-bottom: 8px solid #5d743e;
-}
-
-#custom-menu {
- background-color: #778f52;
- color: #2d353b;
- border-bottom: 8px solid #5d743e;
-}
-
-#custom-power {
- background-color: #ee606a;
- color: #2d353b;
- border-bottom: 8px solid #ca4853;
- padding-left: 5px;
-}
-
-#custom-power_vertical{
- background-color: #ee606a;
- color: #2d353b;
- border-bottom: 8px solid #ca4853;
-}
-
-#clock {
- background-color: #96a84c;
- color: #2d353b;
- border-bottom: 8px solid #7a8c37;
-}
-
-#battery {
- background-color: #3a998f;
- color: #2d353b;
- border-bottom: 8px solid #227d74;
-}
-
-@keyframes blink {
- to {
- background-color: #ffffff;
- color: #000000;
- }
-}
-
-#battery.critical:not(.charging) {
- background-color: #ee606a;
- color: #2d353b;
- border-bottom: 8px solid #ca4853;
- animation-name: blink;
- animation-duration: 3.0s;
- animation-timing-function: steps(12);
- animation-iteration-count: infinite;
- animation-direction: alternate;
-}
-
-label:focus {
- background-color: #000000;
-}
-
-#cpu {
- background-color: #778f52;
- color: #2d353b;
- border-bottom: 8px solid #5d743e;
-}
-
-#memory {
- background-color: #d980ad;
- color: #2d353b;
- border-bottom: 8px solid #b86790;
-}
-
-#disk {
- background-color: #964B00;
- border-bottom: 8px solid #793300;
-}
-
-#custom-lock,
-#custom-light_dark,
-#custom-nightlight,
-#backlight {
- background-color: #64b6ac;
- color: #2d353b;
- border-bottom: 8px solid #4f9990;
- padding-left: 5px;
-}
-
-#network {
- background-color: #2980b9;
-}
-
-#network.disconnected {
- background-color: #f53c3c;
-}
-
-#pulseaudio {
- background-color: #d8ac47;
- color: #2d353b;
- border-bottom: 8px solid #b78f30;
-}
-
-#pulseaudio.muted {
- background-color: #90b1b1;
- color: #2a5c45;
-}
-
-#wireplumber {
- background-color: #fff0f5;
- color: #000000;
-}
-
-#wireplumber.muted {
- background-color: #f53c3c;
-}
-
-#custom-media {
- background-color: #66cc99;
- color: #2a5c45;
- min-width: 100px;
-}
-
-#custom-media.custom-spotify {
- background-color: #66cc99;
-}
-
-#custom-media.custom-vlc {
- background-color: #ffa000;
-}
-
-#temperature {
- background-color: #f0932b;
- border-bottom: 8px solid #b78f30;
-}
-
-#temperature.critical {
- background-color: #eb4d4b;
-}
-
-#tray {
- background-color: #e67f51;
- color: #2d353b;;
- border-bottom: 8px solid #c3653b;
-}
-
-#tray > .passive {
- -gtk-icon-effect: dim;
-}
-
-#tray > .needs-attention {
- -gtk-icon-effect: highlight;
- background-color: #eb4d4b;
-}
-
-#idle_inhibitor {
- background-color: #2d3436;
- border-bottom: 8px solid #7a8c37;
-}
-
-#idle_inhibitor.activated {
- background-color: #ecf0f1;
- border-bottom: 8px solid #7a8c37;
- color: #2d3436;
-}
-
-#mpd {
- background-color: #66cc99;
- color: #2a5c45;
-}
-
-#mpd.disconnected {
- background-color: #f53c3c;
-}
-
-#mpd.stopped {
- background-color: #90b1b1;
-}
-
-#mpd.paused {
- background-color: #51a37a;
-}
-
-#language {
- background: #00b093;
- color: #740864;
- min-width: 16px;
-}
-
-#keyboard-state {
- background: #97e1ad;
- color: #000000;
- min-width: 16px;
- border-bottom: 8px solid #78b48a;
-}
-
-#keyboard-state > label {
- padding: 0 5px;
-}
-
-#keyboard-state > label.locked {
- background: rgba(0, 0, 0, 0.2);
-}
-
-#scratchpad {
- background: rgba(0, 0, 0, 0.2);
-}
-
-#scratchpad.empty {
- background-color: transparent;
-}
-
-tooltip {
- background-color: #232a2e;
- border: none;
- border-bottom: 8px solid #1d2327;
-}
-
-tooltip decoration {
- box-shadow: none;
-}
-
-tooltip decoration:backdrop {
- box-shadow: none;
-}
-
-/* Waybar scaling: adjust tooltip label font-size to scale the bar */
-tooltip label {
- color: #d3c6aa;
- padding-left: 5px;
- padding-right: 5px;
- padding-top: 0px;
- padding-bottom: 5px;
- /* Waybar scaling: adjust tooltip label font-size to scale the bar */
- font-size: 14px;
-}
-
-
-#backlight-slider slider,
-#pulseaudio-slider slider {
- min-height: 7px;
- min-width: 15px;
- opacity: 0;
- background-color: #ffa000;
- border-radius: 3px;
- box-shadow: 1px 5px 6px 1px #272727;
-}
-
-#backlight-slider trough,
-#pulseaudio-slider trough {
- min-height: 100px;
- min-width: 7px;
- border-radius: 5px;
- background-color: #d8ac47;
-}
-
-window#waybar.bottombar #backlight-slider trough,
-window#waybar.bottombar #pulseaudio-slider trough {
- min-height: 7px;
- /* Waybar scaling: adjust font-size to scale the bar */
- font-size: 14px;
-}
-
-#backlight-slider highlight,
-#pulseaudio-slider highlight {
- min-width: 5px;
- border-radius: 5px;
- background-color: #64b6ac;
-}
-
-/* --- tray readability override (global) --- */
-#tray > *,
-#tray > .passive,
-#tray > .active,
-#tray > .needs-attention {
- background: rgba(137, 180, 250, 0.55);
- border-radius: 8px;
- border: 1px solid rgba(17, 17, 27, 0.35);
- margin-left: 1px;
- margin-right: 1px;
- padding-left: 2px;
- padding-right: 2px;
- color: rgba(17, 17, 27, 0.98);
- -gtk-icon-effect: none;
-}
-
-#tray image {
- background: transparent;
- color: rgba(17, 17, 27, 0.98);
- -gtk-icon-style: symbolic;
- -gtk-icon-effect: none;
- opacity: 1;
-}
diff --git a/config/waybar/style/Black-&-White-Monochrome.css b/config/waybar/style/Black-&-White-Monochrome.css
index 60ff6e6e..03fadbf1 100644
--- a/config/waybar/style/Black-&-White-Monochrome.css
+++ b/config/waybar/style/Black-&-White-Monochrome.css
@@ -2,112 +2,112 @@
/* Black & White MonoChrome */
* {
- font-family: "JetBrainsMono Nerd Font";
- font-weight: bold;
- min-height: 0;
- /* set font-size to 100% if font scaling is set to 1.00 using nwg-look */
- /* NOTE: Waybar v14+ ignores % font-size values */
- font-size: 99%;
- font-feature-settings: '"zero", "ss01", "ss02", "ss03", "ss04", "ss05", "cv31"';
+ font-family: "JetBrainsMono Nerd Font";
+ font-weight: bold;
+ min-height: 0;
+ /* set font-size to 100% if font scaling is set to 1.00 using nwg-look */
+ /* NOTE: Waybar v14+ ignores % font-size values */
+ font-size: 99%;
+ font-feature-settings: '"zero", "ss01", "ss02", "ss03", "ss04", "ss05", "cv31"';
}
window#waybar,
window#waybar.empty,
window#waybar.empty #window {
- background-color: transparent;
- padding: 0px;
- border: 0px;
- /* Waybar scaling: adjust font-size to scale the bar */
- font-size: 14px;
+ background-color: transparent;
+ padding: 0px;
+ border: 0px;
+ /* Waybar scaling: adjust font-size to scale the bar */
+ font-size: 14px;
}
tooltip {
- color: white;
- background: #1e1e2e;
- opacity: 0.8;
- border-radius: 10px;
- border-width: 2px;
- border-style: solid;
- border-color: white;
+ color: white;
+ background: #1e1e2e;
+ opacity: 0.8;
+ border-radius: 10px;
+ border-width: 2px;
+ border-style: solid;
+ border-color: white;
}
/* Waybar scaling: adjust tooltip label font-size to scale the bar */
-tooltip label{
- color: #cdd6f4;
- /* Waybar scaling: adjust tooltip label font-size to scale the bar */
- font-size: 14px;
+tooltip label {
+ color: #cdd6f4;
+ /* Waybar scaling: adjust tooltip label font-size to scale the bar */
+ font-size: 14px;
}
/*-----module groups----*/
.modules-right {
- background-color: black;
- color: white;
- border-bottom: 1px;
- border-style: solid;
- border-color: white;
- border-radius: 10px;
- padding-top: 2px;
- padding-bottom: 2px;
- padding-right: 4px;
- padding-left: 4px;
+ background-color: black;
+ color: white;
+ border-bottom: 1px;
+ border-style: solid;
+ border-color: white;
+ border-radius: 10px;
+ padding-top: 2px;
+ padding-bottom: 2px;
+ padding-right: 4px;
+ padding-left: 4px;
}
.modules-center {
- background-color: black;
- color: white;
- border-bottom: 1px;
- border-style: solid;
- border-color: white;
- border-radius: 10px;
- padding-top: 2px;
- padding-bottom: 2px;
- padding-right: 4px;
- padding-left: 4px;
+ background-color: black;
+ color: white;
+ border-bottom: 1px;
+ border-style: solid;
+ border-color: white;
+ border-radius: 10px;
+ padding-top: 2px;
+ padding-bottom: 2px;
+ padding-right: 4px;
+ padding-left: 4px;
}
.modules-left {
- background-color: black;
- color: white;
- border-bottom: 1px;
- border-style: solid;
- border-color: white;
- border-radius: 10px;
- padding-top: 2px;
- padding-bottom: 2px;
- padding-right: 4px;
- padding-left: 4px;
+ background-color: black;
+ color: white;
+ border-bottom: 1px;
+ border-style: solid;
+ border-color: white;
+ border-radius: 10px;
+ padding-top: 2px;
+ padding-bottom: 2px;
+ padding-right: 4px;
+ padding-left: 4px;
}
/*-----modules indv----*/
#taskbar button,
#workspaces button {
- color: dimgrey;
- box-shadow: none;
- text-shadow: none;
- padding: 0px;
- border-radius: 9px;
- padding-left: 4px;
- padding-right: 4px;
- animation: gradient_f 20s ease-in infinite;
- transition: all 0.5s cubic-bezier(.55,-0.68,.48,1.682);
+ color: dimgrey;
+ box-shadow: none;
+ text-shadow: none;
+ padding: 0px;
+ border-radius: 9px;
+ padding-left: 4px;
+ padding-right: 4px;
+ animation: gradient_f 20s ease-in infinite;
+ transition: all 0.5s cubic-bezier(0.55, -0.68, 0.48, 1.682);
}
#taskbar button:hover,
#workspaces button:hover {
- color: white;
- background-color: #7f849c;
- padding-left: 2px;
- padding-right: 2px;
- animation: gradient_f 20s ease-in infinite;
- transition: all 0.3s cubic-bezier(.55,-0.68,.48,1.682);
+ color: white;
+ background-color: #7f849c;
+ padding-left: 2px;
+ padding-right: 2px;
+ animation: gradient_f 20s ease-in infinite;
+ transition: all 0.3s cubic-bezier(0.55, -0.68, 0.48, 1.682);
}
#taskbar button.active,
#workspaces button.active {
- color: white;
- padding-left: 8px;
- padding-right: 8px;
- animation: gradient_f 20s ease-in infinite;
- transition: all 0.3s cubic-bezier(.55,-0.68,.48,1.682);
+ color: white;
+ padding-left: 8px;
+ padding-right: 8px;
+ animation: gradient_f 20s ease-in infinite;
+ transition: all 0.3s cubic-bezier(0.55, -0.68, 0.48, 1.682);
}
#workspaces button.persistent {
- border-radius: 10px;
+ border-radius: 10px;
}
#backlight,
@@ -164,68 +164,68 @@ tooltip label{
#custom-weather.clearNight,
#custom-weather.cloudyFoggyDay,
#custom-weather.cloudyFoggyNight,
-#custom-weather.default,
+#custom-weather.default,
#custom-weather.rainyDay,
#custom-weather.rainyNight,
#custom-weather.severe,
#custom-weather.showyIcyDay,
#custom-weather.snowyIcyNight,
#custom-weather.sunnyDay {
- padding-top: 4px;
- padding-bottom: 4px;
- padding-right: 6px;
- padding-left: 6px;
+ padding-top: 4px;
+ padding-bottom: 4px;
+ padding-right: 6px;
+ padding-left: 6px;
}
/*-----Indicators----*/
#custom-hypridle.notactive,
#idle_inhibitor.activated {
- color: #39FF14;
- border-bottom: 8px solid rgba(0, 0, 0, 0.2);
+ color: #39ff14;
+ border-top: 8px solid rgba(0, 0, 0, 0.2);
}
#pulseaudio.muted {
- color: #cc3436;
+ color: #cc3436;
}
#temperature.critical {
- color: red;
+ color: red;
}
@keyframes blink {
- to {
- color: #000000;
- }
+ to {
+ color: #000000;
+ }
}
#battery.critical:not(.charging) {
- color: #f53c3c;
- animation-name: blink;
- animation-duration: 3.0s;
- animation-timing-function: steps(12);
- animation-iteration-count: infinite;
- animation-direction: alternate;
+ color: #f53c3c;
+ animation-name: blink;
+ animation-duration: 3s;
+ animation-timing-function: steps(12);
+ animation-iteration-count: infinite;
+ animation-direction: alternate;
}
#backlight-slider slider,
#pulseaudio-slider slider {
- min-width: 0px;
- min-height: 0px;
- opacity: 0;
- background-image: none;
- border: none;
- box-shadow: none;
+ min-width: 0px;
+ min-height: 0px;
+ opacity: 0;
+ background-image: none;
+ border: none;
+ box-shadow: none;
}
#backlight-slider trough,
#pulseaudio-slider trough {
- min-width: 80px;
- min-height: 5px;
- border-radius: 5px;
+ min-width: 80px;
+ min-height: 5px;
+ border-radius: 5px;
}
#backlight-slider highlight,
#pulseaudio-slider highlight {
- min-height: 10px;
- border-radius: 5px;
+ min-height: 10px;
+ border-radius: 5px;
}
/* --- tray readability override (global) --- */
diff --git a/config/waybar/style/Catppuccin-Frappe.css b/config/waybar/style/Catppuccin-Frappe.css
index 228098a6..3778bad0 100644
--- a/config/waybar/style/Catppuccin-Frappe.css
+++ b/config/waybar/style/Catppuccin-Frappe.css
@@ -2,13 +2,13 @@
/* Catppuccin Frappe */
* {
- font-family: "JetBrainsMono Nerd Font";
- font-weight: bold;
- min-height: 0;
- /* set font-size to 100% if font scaling is set to 1.00 using nwg-look */
- /* NOTE: Waybar v14+ ignores % font-size values */
- font-size: 99%;
- font-feature-settings: '"zero", "ss01", "ss02", "ss03", "ss04", "ss05", "cv31"';
+ font-family: "JetBrainsMono Nerd Font";
+ font-weight: bold;
+ min-height: 0;
+ /* set font-size to 100% if font scaling is set to 1.00 using nwg-look */
+ /* NOTE: Waybar v14+ ignores % font-size values */
+ font-size: 99%;
+ font-feature-settings: '"zero", "ss01", "ss02", "ss03", "ss04", "ss05", "cv31"';
}
@import "../waybar/style/catppuccin-themes/frappe.css";
@@ -33,43 +33,43 @@ window#waybar.hidden {
#taskbar button,
#workspaces button {
- box-shadow: none;
- text-shadow: none;
- padding: 4px;
- border-radius: 9px;
- animation: gradient_f 20s ease-in infinite;
- transition: all 0.5s cubic-bezier(.55,-0.68,.48,1.682);
+ box-shadow: none;
+ text-shadow: none;
+ padding: 4px;
+ border-radius: 9px;
+ animation: gradient_f 20s ease-in infinite;
+ transition: all 0.5s cubic-bezier(0.55, -0.68, 0.48, 1.682);
}
#taskbar button:hover,
#workspaces button:hover {
- border-radius: 10px;
- color: @overlay0;
- background-color: @surface0;
- padding-left: 2px;
- padding-right: 2px;
- animation: gradient_f 20s ease-in infinite;
- transition: all 0.3s cubic-bezier(.55,-0.68,.48,1.682);
+ border-radius: 10px;
+ color: @overlay0;
+ background-color: @surface0;
+ padding-left: 2px;
+ padding-right: 2px;
+ animation: gradient_f 20s ease-in infinite;
+ transition: all 0.3s cubic-bezier(0.55, -0.68, 0.48, 1.682);
}
#workspaces button.persistent {
- color: @surface1;
- border-radius: 10px;
+ color: @surface1;
+ border-radius: 10px;
}
#taskbar button.active,
#workspaces button.active {
- color: @peach;
- border-radius: 10px;
- padding-left: 8px;
- padding-right: 8px;
- animation: gradient_f 20s ease-in infinite;
- transition: all 0.3s cubic-bezier(.55,-0.68,.48,1.682);
+ color: @peach;
+ border-radius: 10px;
+ padding-left: 8px;
+ padding-right: 8px;
+ animation: gradient_f 20s ease-in infinite;
+ transition: all 0.3s cubic-bezier(0.55, -0.68, 0.48, 1.682);
}
#workspaces button.urgent {
- color: @red;
- border-radius: 0px;
+ color: @red;
+ border-radius: 0px;
}
#backlight,
@@ -127,32 +127,32 @@ window#waybar.hidden {
#custom-weather.clearNight,
#custom-weather.cloudyFoggyDay,
#custom-weather.cloudyFoggyNight,
-#custom-weather.default,
+#custom-weather.default,
#custom-weather.rainyDay,
#custom-weather.rainyNight,
#custom-weather.severe,
#custom-weather.showyIcyDay,
#custom-weather.snowyIcyNight,
#custom-weather.sunnyDay {
- padding-top: 4px;
- padding-bottom: 4px;
- padding-right: 6px;
- padding-left: 6px;
+ padding-top: 4px;
+ padding-bottom: 4px;
+ padding-right: 6px;
+ padding-left: 6px;
}
/*-----Indicators----*/
#custom-hypridle.notactive,
#idle_inhibitor.activated {
- color: #39FF14;
- border-bottom: 3px solid @sapphire;
+ color: #39ff14;
+ border-bottom: 3px solid @sapphire;
}
#backlight {
- color: @blue;
+ color: @blue;
}
#battery {
- color: @green;
+ color: @green;
}
@keyframes blink {
@@ -162,43 +162,43 @@ window#waybar.hidden {
}
#battery.critical:not(.charging) {
- background-color: @red;
- color: @theme_text_color;
- animation-name: blink;
- animation-duration: 3.0s;
- animation-timing-function: steps(12);
- animation-iteration-count: infinite;
- animation-direction: alternate;
- box-shadow: inset 0 -3px transparent;
+ background-color: @red;
+ color: @theme_text_color;
+ animation-name: blink;
+ animation-duration: 3s;
+ animation-timing-function: steps(12);
+ animation-iteration-count: infinite;
+ animation-direction: alternate;
+ box-shadow: inset 0 -3px transparent;
}
#bluetooth {
- color: @blue;
+ color: @blue;
}
#clock {
- color: @yellow;
+ color: @yellow;
}
#cpu {
- color: @green;
+ color: @green;
}
#custom-keyboard,
#memory {
- color: @sky;
+ color: @sky;
}
#disk {
- color: @sapphire;
+ color: @sapphire;
}
#temperature {
- color: @teal;
+ color: @teal;
}
#temperature.critical {
- background-color: @red;
+ background-color: @red;
}
#tray > .passive {
@@ -209,87 +209,87 @@ window#waybar.hidden {
}
#keyboard-state {
- color: @flamingo;
+ color: @flamingo;
}
#custom-cava_mviz {
- color: @pink;
+ color: @pink;
}
#custom-menu {
- color: @rosewater;
+ color: @rosewater;
}
#custom-power {
- color: @red;
+ color: @red;
}
#custom-updater {
- color: @red;
+ color: @red;
}
#custom-light_dark {
- color: @blue;
+ color: @blue;
}
#custom-weather {
- color: @lavender;
+ color: @lavender;
}
#custom-lock {
- color: @maroon;
+ color: @maroon;
}
#pulseaudio {
- color: @sapphire;
+ color: @sapphire;
}
#pulseaudio.bluetooth {
- color: @pink;
+ color: @pink;
}
#pulseaudio.muted {
- color: @red;
+ color: @red;
}
#window {
- color: @mauve;
+ color: @mauve;
}
#mpris {
- color:@lavender;
+ color: @lavender;
}
#network {
- color: @teal;
+ color: @teal;
}
#network.disconnected,
#network.disabled {
- background-color: @surface0;
- color: @text;
+ background-color: @surface0;
+ color: @text;
}
#backlight-slider slider,
#pulseaudio-slider slider {
- min-width: 0px;
- min-height: 0px;
- opacity: 0;
- background-image: none;
- border: none;
- box-shadow: none;
+ min-width: 0px;
+ min-height: 0px;
+ opacity: 0;
+ background-image: none;
+ border: none;
+ box-shadow: none;
}
#backlight-slider trough,
#pulseaudio-slider trough {
- min-width: 80px;
- min-height: 5px;
- border-radius: 5px;
+ min-width: 80px;
+ min-height: 5px;
+ border-radius: 5px;
}
#backlight-slider highlight,
#pulseaudio-slider highlight {
- min-height: 10px;
- border-radius: 5px;
+ min-height: 10px;
+ border-radius: 5px;
}
/* --- tray readability override (global) --- */
diff --git a/config/waybar/style/Catppuccin-Mocha.css b/config/waybar/style/Catppuccin-Mocha.css
index e1bd0eee..5d760224 100644
--- a/config/waybar/style/Catppuccin-Mocha.css
+++ b/config/waybar/style/Catppuccin-Mocha.css
@@ -2,99 +2,102 @@
/* Catppuccin Mocha */
* {
- font-family: "JetBrainsMono Nerd Font";
- font-weight: bold;
- min-height: 0;
- /* set font-size to 100% if font scaling is set to 1.00 using nwg-look */
- /* NOTE: Waybar v14+ ignores % font-size values */
- font-size: 99%;
- font-feature-settings: '"zero", "ss01", "ss02", "ss03", "ss04", "ss05", "cv31"';
+ font-family: "JetBrainsMono Nerd Font";
+ font-weight: bold;
+ min-height: 0;
+ /* set font-size to 100% if font scaling is set to 1.00 using nwg-look */
+ /* NOTE: Waybar v14+ ignores % font-size values */
+ font-size: 99%;
+ font-feature-settings: '"zero", "ss01", "ss02", "ss03", "ss04", "ss05", "cv31"';
}
@import "../waybar/style/catppuccin-themes/mocha.css";
window#waybar {
- transition-property: background-color;
- transition-duration: 0.5s;
- background: transparent;
- border-radius: 10px;
- /* Waybar scaling: adjust font-size to scale the bar */
- font-size: 14px;
+ transition-property: background-color;
+ transition-duration: 0.5s;
+ background: transparent;
+ border-radius: 10px;
+ /* Waybar scaling: adjust font-size to scale the bar */
+ font-size: 14px;
}
window#waybar.hidden {
- opacity: 0.2;
- /* Waybar scaling: adjust font-size to scale the bar */
- font-size: 14px;
+ opacity: 0.2;
+ /* Waybar scaling: adjust font-size to scale the bar */
+ font-size: 14px;
}
window#waybar.empty,
window#waybar.empty #window {
- background-color: transparent;
- padding: 0px;
- border: 0px;
- /* Waybar scaling: adjust font-size to scale the bar */
- font-size: 14px;
+ background-color: transparent;
+ padding: 0px;
+ border: 0px;
+ /* Waybar scaling: adjust font-size to scale the bar */
+ font-size: 14px;
}
#taskbar button,
#workspaces button {
- color: @overlay1;
- box-shadow: none;
- text-shadow: none;
- padding: 0px;
- border-radius: 9px;
- padding-left: 4px;
- padding-right: 4px;
- animation: gradient_f 20s ease-in infinite;
- transition: all 0.5s cubic-bezier(.55,-0.68,.48,1.682);
+ color: @overlay1;
+ box-shadow: none;
+ text-shadow: none;
+ padding: 0px;
+ border-radius: 9px;
+ padding-left: 4px;
+ padding-right: 4px;
+ animation: gradient_f 20s ease-in infinite;
+ transition: all 0.5s cubic-bezier(0.55, -0.68, 0.48, 1.682);
}
#taskbar button:hover,
#workspaces button:hover {
- border-radius: 10px;
- color: @peach;
- background-color: @surface0;
- padding-left: 2px;
- padding-right: 2px;
- animation: gradient_f 20s ease-in infinite;
- transition: all 0.3s cubic-bezier(.55,-0.68,.48,1.682);
+ border-radius: 10px;
+ color: @peach;
+ background-color: @surface0;
+ padding-left: 2px;
+ padding-right: 2px;
+ animation: gradient_f 20s ease-in infinite;
+ transition: all 0.3s cubic-bezier(0.55, -0.68, 0.48, 1.682);
}
#workspaces button.persistent {
- color: @surface1;
- border-radius: 10px;
+ color: @surface1;
+ border-radius: 10px;
}
#taskbar button.active,
#workspaces button.active {
- color: @mauve;
- border-radius: 10px;
- padding-left: 8px;
- padding-right: 8px;
- animation: gradient_f 20s ease-in infinite;
- transition: all 0.3s cubic-bezier(.55,-0.68,.48,1.682);
+ color: @mauve;
+ border-radius: 10px;
+ padding-left: 8px;
+ padding-right: 8px;
+ animation: gradient_f 20s ease-in infinite;
+ transition: all 0.3s cubic-bezier(0.55, -0.68, 0.48, 1.682);
}
#workspaces button.urgent {
- color: @red;
- border-radius: 0px;
+ color: @red;
+ border-radius: 0px;
}
/* This section can be use if you want to separate waybar modules */
-.modules-left, .modules-center, .modules-right {
- background: @theme_base_color;
- border: 0.5px solid @overlay0;
- padding-top: 2px;
- padding-bottom: 2px;
- padding-right: 4px;
- padding-left: 4px;
- border-radius: 10px;
-}
+.modules-left,
+.modules-center,
+.modules-right {
+ background: @theme_base_color;
+ border: 0.5px solid @overlay0;
+ padding-top: 2px;
+ padding-bottom: 2px;
+ padding-right: 4px;
+ padding-left: 4px;
+ border-radius: 10px;
+}
-.modules-left, .modules-right {
- border: 1px solid @blue;
-}
+.modules-left,
+.modules-right {
+ border: 1px solid @blue;
+}
#backlight,
#backlight-slider,
@@ -151,23 +154,23 @@ window#waybar.empty #window {
#custom-weather.clearNight,
#custom-weather.cloudyFoggyDay,
#custom-weather.cloudyFoggyNight,
-#custom-weather.default,
+#custom-weather.default,
#custom-weather.rainyDay,
#custom-weather.rainyNight,
#custom-weather.severe,
#custom-weather.showyIcyDay,
#custom-weather.snowyIcyNight,
#custom-weather.sunnyDay {
- padding-top: 4px;
- padding-bottom: 4px;
- padding-right: 6px;
- padding-left: 6px;
+ padding-top: 4px;
+ padding-bottom: 4px;
+ padding-right: 6px;
+ padding-left: 6px;
}
/*-----Indicators----*/
#custom-hypridle.notactive,
#idle_inhibitor.activated {
- color: #39FF14;
- border-bottom: 8px solid rgba(0, 0, 0, 0.2);
+ color: #39ff14;
+ border-top: 8px solid rgba(0, 0, 0, 0.2);
}
#bluetooth,
@@ -188,11 +191,11 @@ window#waybar.empty #window {
#battery.critical:not(.charging) {
background-color: @red;
color: @theme_text_color;
- animation-name: blink;
- animation-duration: 3.0s;
- animation-timing-function: steps(12);
- animation-iteration-count: infinite;
- animation-direction: alternate;
+ animation-name: blink;
+ animation-duration: 3s;
+ animation-timing-function: steps(12);
+ animation-iteration-count: infinite;
+ animation-direction: alternate;
box-shadow: inset 0 -3px transparent;
}
@@ -233,7 +236,7 @@ window#waybar.empty #window {
}
#custom-cava_mviz {
- color: @pink;
+ color: @pink;
}
#custom-menu {
@@ -276,7 +279,7 @@ window#waybar.empty #window {
}
#mpris {
- color:@lavender;
+ color: @lavender;
}
#network {
@@ -290,25 +293,25 @@ window#waybar.empty #window {
#backlight-slider slider,
#pulseaudio-slider slider {
- min-width: 0px;
- min-height: 0px;
- opacity: 0;
- background-image: none;
- border: none;
- box-shadow: none;
+ min-width: 0px;
+ min-height: 0px;
+ opacity: 0;
+ background-image: none;
+ border: none;
+ box-shadow: none;
}
#backlight-slider trough,
#pulseaudio-slider trough {
- min-width: 80px;
- min-height: 5px;
- border-radius: 5px;
+ min-width: 80px;
+ min-height: 5px;
+ border-radius: 5px;
}
#backlight-slider highlight,
#pulseaudio-slider highlight {
- min-height: 10px;
- border-radius: 5px;
+ min-height: 10px;
+ border-radius: 5px;
}
/* --- tray readability override (global) --- */
diff --git a/config/waybar/style/Colored-Chroma-Glow.css b/config/waybar/style/Colored-Chroma-Glow.css
index 4a1c8e4f..2e561e2a 100644
--- a/config/waybar/style/Colored-Chroma-Glow.css
+++ b/config/waybar/style/Colored-Chroma-Glow.css
@@ -2,103 +2,103 @@
/* Chroma Glow */
* {
- font-family: "JetBrainsMono Nerd Font";
- font-weight: bold;
- min-height: 0;
- /* set font-size to 100% if font scaling is set to 1.00 using nwg-look */
- /* NOTE: Waybar v14+ ignores % font-size values */
- font-size: 99%;
- font-feature-settings: '"zero", "ss01", "ss02", "ss03", "ss04", "ss05", "cv31"';
+ font-family: "JetBrainsMono Nerd Font";
+ font-weight: bold;
+ min-height: 0;
+ /* set font-size to 100% if font scaling is set to 1.00 using nwg-look */
+ /* NOTE: Waybar v14+ ignores % font-size values */
+ font-size: 99%;
+ font-feature-settings: '"zero", "ss01", "ss02", "ss03", "ss04", "ss05", "cv31"';
}
window#waybar {
- background-color: transparent;
- color: #ffffff;
- transition-property: background-color;
- transition-duration: .5s;
- border-radius: 10px;
- /* Waybar scaling: adjust font-size to scale the bar */
- font-size: 14px;
+ background-color: transparent;
+ color: #ffffff;
+ transition-property: background-color;
+ transition-duration: 0.5s;
+ border-radius: 10px;
+ /* Waybar scaling: adjust font-size to scale the bar */
+ font-size: 14px;
}
window#waybar.hidden {
- opacity: 0.1;
- /* Waybar scaling: adjust font-size to scale the bar */
- font-size: 14px;
+ opacity: 0.1;
+ /* Waybar scaling: adjust font-size to scale the bar */
+ font-size: 14px;
}
window#waybar.empty,
window#waybar.empty #window {
- padding: 0px;
- border: 0px;
- background-color: transparent;
- /* Waybar scaling: adjust font-size to scale the bar */
- font-size: 14px;
+ padding: 0px;
+ border: 0px;
+ background-color: transparent;
+ /* Waybar scaling: adjust font-size to scale the bar */
+ font-size: 14px;
}
tooltip {
- color: #40a02b;
- background: #1e1e2e;
- opacity: 0.8;
- border-radius: 10px;
- border-width: 2px;
- border-style: solid;
- border-color: #11111b;
+ color: #40a02b;
+ background: #1e1e2e;
+ opacity: 0.8;
+ border-radius: 10px;
+ border-width: 2px;
+ border-style: solid;
+ border-color: #11111b;
}
/* Waybar scaling: adjust tooltip label font-size to scale the bar */
-tooltip label{
- color: #cdd6f4;
- /* Waybar scaling: adjust tooltip label font-size to scale the bar */
- font-size: 14px;
+tooltip label {
+ color: #cdd6f4;
+ /* Waybar scaling: adjust tooltip label font-size to scale the bar */
+ font-size: 14px;
}
#taskbar button,
#workspaces button {
- background-color: transparent;
- color: grey;
- box-shadow: none;
- text-shadow: none;
- padding: 0px;
- border-radius: 9px;
- padding-left: 4px;
- padding-right: 4px;
- animation: gradient_f 20s ease-in infinite;
- transition: all 0.5s cubic-bezier(.55,-0.68,.48,1.682);
+ background-color: transparent;
+ color: grey;
+ box-shadow: none;
+ text-shadow: none;
+ padding: 0px;
+ border-radius: 9px;
+ padding-left: 4px;
+ padding-right: 4px;
+ animation: gradient_f 20s ease-in infinite;
+ transition: all 0.5s cubic-bezier(0.55, -0.68, 0.48, 1.682);
}
#taskbar button.active,
#workspaces button.active {
- background-color: transparent;
- color: #D3D3D3;
- padding-left: 8px;
- padding-right: 8px;
- animation: gradient_f 20s ease-in infinite;
- transition: all 0.3s cubic-bezier(.55,-0.68,.48,1.682);
+ background-color: transparent;
+ color: #d3d3d3;
+ padding-left: 8px;
+ padding-right: 8px;
+ animation: gradient_f 20s ease-in infinite;
+ transition: all 0.3s cubic-bezier(0.55, -0.68, 0.48, 1.682);
}
#taskbar button:hover,
#workspaces button:hover {
- background: rgba(0, 0, 0, 0.2);
- color: #D3D3D3;
- padding-left: 2px;
- padding-right: 2px;
- animation: gradient_f 20s ease-in infinite;
- transition: all 0.3s cubic-bezier(.55,-0.68,.48,1.682);
+ background: rgba(0, 0, 0, 0.2);
+ color: #d3d3d3;
+ padding-left: 2px;
+ padding-right: 2px;
+ animation: gradient_f 20s ease-in infinite;
+ transition: all 0.3s cubic-bezier(0.55, -0.68, 0.48, 1.682);
}
#workspaces button.focused {
- background-color: #bbccdd;
- color: #323232;
+ background-color: #bbccdd;
+ color: #323232;
}
#workspaces button.urgent {
- background-color: #eb4d4b;
+ background-color: #eb4d4b;
}
#mode {
- background-color: #64727D;
- border-bottom: 3px solid #ffffff;
+ background-color: #64727d;
+ border-bottom: 3px solid #ffffff;
}
#backlight,
@@ -155,17 +155,17 @@ tooltip label{
#custom-weather.clearNight,
#custom-weather.cloudyFoggyDay,
#custom-weather.cloudyFoggyNight,
-#custom-weather.default,
+#custom-weather.default,
#custom-weather.rainyDay,
#custom-weather.rainyNight,
#custom-weather.severe,
#custom-weather.showyIcyDay,
#custom-weather.snowyIcyNight,
#custom-weather.sunnyDay {
- padding-top: 4px;
- padding-bottom: 4px;
- padding-right: 6px;
- padding-left: 6px;
+ padding-top: 4px;
+ padding-bottom: 4px;
+ padding-right: 6px;
+ padding-left: 6px;
}
/* If workspaces is the leftmost module, omit left margin */
@@ -177,15 +177,15 @@ tooltip label{
}
#clock {
- color: #fe640b;
+ color: #fe640b;
}
#custom-updater {
- color: #7287fd;
+ color: #7287fd;
}
#battery {
- color: #32CD32;
+ color: #32cd32;
}
/* #battery.charging {
@@ -194,157 +194,157 @@ tooltip label{
} */
@keyframes blink {
- to {
- background-color: #ffffff;
- color: #333333;
- }
+ to {
+ background-color: #ffffff;
+ color: #333333;
+ }
}
#battery.critical:not(.charging) {
- color: #f53c3c;
- animation-name: blink;
- animation-duration: 3.0s;
- animation-timing-function: steps(12);
- animation-iteration-count: infinite;
- animation-direction: alternate;
+ color: #f53c3c;
+ animation-name: blink;
+ animation-duration: 3s;
+ animation-timing-function: steps(12);
+ animation-iteration-count: infinite;
+ animation-direction: alternate;
}
label:focus {
- background-color: #000000;
+ background-color: #000000;
}
#custom-keyboard,
-#custom-menu{
- color: yellow;
- /*padding: 3px;*/
+#custom-menu {
+ color: yellow;
+ /*padding: 3px;*/
}
#cpu {
- color: blue;
+ color: blue;
}
#memory {
- color: green;
+ color: green;
}
#custom-light_dark,
#custom-nightlight,
#backlight {
- color: white;
+ color: white;
}
#bluetooth {
- color: blue;
+ color: blue;
}
#network {
- color: #dd7878;
+ color: #dd7878;
}
#network.disconnected {
- color: #df3320;
+ color: #df3320;
}
#custom-swaync,
#custom-keybinds {
- color: #1e66f5;
+ color: #1e66f5;
}
#wireplumber,
#pulseaudio {
- color: green;
+ color: green;
}
#wireplumber.muted,
#pulseaudio.muted {
- color: grey;
+ color: grey;
}
#custom-power {
- color: red;
+ color: red;
}
#keyboard-state {
- color: #dd7878;
+ color: #dd7878;
}
#disk {
- color: brown;
+ color: brown;
}
#custom-weather {
- color: #df8e1d;
+ color: #df8e1d;
}
#custom-lock {
- color: #ffa000;
+ color: #ffa000;
}
#temperature {
- color: #FF5349;
+ color: #ff5349;
}
#temperature.critical {
- background-color: #ff0000;
+ background-color: #ff0000;
}
#tray {
- /* background-color: #505050; */
+ /* background-color: #505050; */
}
/*-----Indicators----*/
#custom-hypridle.notactive,
#idle_inhibitor.activated {
- color: #39FF14;
- border-bottom: 8px solid rgba(0, 0, 0, 0.2);
+ color: #39ff14;
+ border-top: 8px solid rgba(0, 0, 0, 0.2);
}
#mpd {
- color: #2a5c45;
+ color: #2a5c45;
}
#mpd.disconnected {
- background-color: #f53c3c;
+ background-color: #f53c3c;
}
#mpd.stopped {
- background-color: #90b1b1;
+ background-color: #90b1b1;
}
#mpd.paused {
- background-color: #51a37a;
+ background-color: #51a37a;
}
#custom-language {
- color: #7da6ff;
- min-width: 16px;
+ color: #7da6ff;
+ min-width: 16px;
}
#custom-separator {
- color: #606060;
+ color: #606060;
}
#backlight-slider slider,
#pulseaudio-slider slider {
- min-width: 0px;
- min-height: 0px;
- opacity: 0;
- background-image: none;
- border: none;
- box-shadow: none;
+ min-width: 0px;
+ min-height: 0px;
+ opacity: 0;
+ background-image: none;
+ border: none;
+ box-shadow: none;
}
#backlight-slider trough,
#pulseaudio-slider trough {
- min-width: 80px;
- min-height: 5px;
- border-radius: 5px;
+ min-width: 80px;
+ min-height: 5px;
+ border-radius: 5px;
}
#backlight-slider highlight,
#pulseaudio-slider highlight {
- min-height: 10px;
- border-radius: 5px;
+ min-height: 10px;
+ border-radius: 5px;
}
/* --- tray readability override (global) --- */
diff --git a/config/waybar/style/Colored-Translucent.css b/config/waybar/style/Colored-Translucent.css
index 12818f6c..42f4474a 100644
--- a/config/waybar/style/Colored-Translucent.css
+++ b/config/waybar/style/Colored-Translucent.css
@@ -2,10 +2,10 @@
/* Translucent */
@define-color critical #ff0000; /* critical color */
-@define-color warning #f3f809; /* warning color */
-@define-color fgcolor #ffffff; /* foreground color */
-@define-color bgcolor #303030; /* background color */
-@define-color bgcolor #222436; /* background color */
+@define-color warning #f3f809; /* warning color */
+@define-color fgcolor #ffffff; /* foreground color */
+@define-color bgcolor #303030; /* background color */
+@define-color bgcolor #222436; /* background color */
@define-color alert #df3320;
@define-color accent1 #ff7a93;
@@ -16,86 +16,86 @@
@define-color accent6 #0db9d7;
* {
-font-family: "JetBrainsMono Nerd Font";
-font-weight: bold;
-min-height: 0;
-/* set font-size to 100% if font scaling is set to 1.00 using nwg-look */
-/* NOTE: Waybar v14+ ignores % font-size values */
-font-size: 99%;
-font-feature-settings: '"zero", "ss01", "ss02", "ss03", "ss04", "ss05", "cv31"';
+ font-family: "JetBrainsMono Nerd Font";
+ font-weight: bold;
+ min-height: 0;
+ /* set font-size to 100% if font scaling is set to 1.00 using nwg-look */
+ /* NOTE: Waybar v14+ ignores % font-size values */
+ font-size: 99%;
+ font-feature-settings: '"zero", "ss01", "ss02", "ss03", "ss04", "ss05", "cv31"';
}
window#waybar {
- background-color: rgba(0,0,0,0.3);
- color: #ffffff;
- transition-property: background-color;
- transition-duration: .5s;
- border-radius: 10px;
- /* Waybar scaling: adjust font-size to scale the bar */
- font-size: 14px;
+ background-color: rgba(0, 0, 0, 0.3);
+ color: #ffffff;
+ transition-property: background-color;
+ transition-duration: 0.5s;
+ border-radius: 10px;
+ /* Waybar scaling: adjust font-size to scale the bar */
+ font-size: 14px;
}
window#waybar.hidden {
- opacity: 0.1;
- /* Waybar scaling: adjust font-size to scale the bar */
- font-size: 14px;
+ opacity: 0.1;
+ /* Waybar scaling: adjust font-size to scale the bar */
+ font-size: 14px;
}
tooltip {
- background: #1e1e2e;
- opacity: 0.6;
- border-radius: 10px;
- border-width: 2px;
- border-style: solid;
- border-color: #11111b;
+ background: #1e1e2e;
+ opacity: 0.6;
+ border-radius: 10px;
+ border-width: 2px;
+ border-style: solid;
+ border-color: #11111b;
}
#taskbar button,
#workspaces button {
- background-color: transparent;
- color: @fgcolor;
- box-shadow: none;
- text-shadow: none;
- padding: 4px;
- border-radius: 9px;
- animation: gradient_f 20s ease-in infinite;
- transition: all 0.5s cubic-bezier(.55,-0.68,.48,1.682);
+ background-color: transparent;
+ color: @fgcolor;
+ box-shadow: none;
+ text-shadow: none;
+ padding: 4px;
+ border-radius: 9px;
+ animation: gradient_f 20s ease-in infinite;
+ transition: all 0.5s cubic-bezier(0.55, -0.68, 0.48, 1.682);
}
#taskbar button.active,
#workspaces button.active {
- background-color: rgba(0, 0, 0, 0.2);
- color: @accent2;
- padding-left: 8px;
- padding-right: 8px;
- animation: gradient_f 20s ease-in infinite;
- transition: all 0.3s cubic-bezier(.55,-0.68,.48,1.682);
+ background-color: rgba(0, 0, 0, 0.2);
+ color: @accent2;
+ padding-left: 8px;
+ padding-right: 8px;
+ animation: gradient_f 20s ease-in infinite;
+ transition: all 0.3s cubic-bezier(0.55, -0.68, 0.48, 1.682);
}
#taskbar button:hover,
#workspaces button:hover {
- background: rgba(0, 0, 0, 0.2);
- color: @accent3;
- padding-left: 2px;
- padding-right: 2px;
- animation: gradient_f 20s ease-in infinite;
- transition: all 0.3s cubic-bezier(.55,-0.68,.48,1.682);
+ background: rgba(0, 0, 0, 0.2);
+ color: @accent3;
+ padding-left: 2px;
+ padding-right: 2px;
+ animation: gradient_f 20s ease-in infinite;
+ transition: all 0.3s cubic-bezier(0.55, -0.68, 0.48, 1.682);
}
#workspaces button.focused {
- background-color: rgba(0, 0, 0, 0.35);
- color: @accent5;
- /* box-shadow: inset 0 -3px #ffffff; */
+ background-color: rgba(0, 0, 0, 0.35);
+ color: @accent5;
+ /* box-shadow: inset 0 -3px #ffffff; */
}
#workspaces button.urgent {
- background-color: #eb4d4b;
- color: #ffffff;
+ background-color: #eb4d4b;
+ color: #ffffff;
}
#mode {
- background-color: #64727D;
- border-bottom: 3px solid #ffffff;
+ background-color: #64727d;
+ border-bottom: 3px solid #ffffff;
}
#backlight,
@@ -153,17 +153,17 @@ tooltip {
#custom-weather.clearNight,
#custom-weather.cloudyFoggyDay,
#custom-weather.cloudyFoggyNight,
-#custom-weather.default,
+#custom-weather.default,
#custom-weather.rainyDay,
#custom-weather.rainyNight,
#custom-weather.severe,
#custom-weather.showyIcyDay,
#custom-weather.snowyIcyNight,
#custom-weather.sunnyDay {
- padding-top: 4px;
- padding-bottom: 4px;
- padding-right: 6px;
- padding-left: 6px;
+ padding-top: 4px;
+ padding-bottom: 4px;
+ padding-right: 6px;
+ padding-left: 6px;
}
/* If workspaces is the leftmost module, omit left margin */
@@ -175,15 +175,15 @@ tooltip {
}
#clock {
- color: @accent2;
+ color: @accent2;
}
#custom-updater {
- color: #7287fd;
+ color: #7287fd;
}
#battery {
- color: @accent5;
+ color: @accent5;
}
/* #battery.charging {
@@ -192,175 +192,175 @@ tooltip {
} */
@keyframes blink {
- to {
- background-color: #ffffff;
- color: #333333;
- }
+ to {
+ background-color: #ffffff;
+ color: #333333;
+ }
}
#battery.critical:not(.charging) {
- color: @critical;
- animation-name: blink;
- animation-duration: 3.0s;
- animation-timing-function: steps(12);
- animation-iteration-count: infinite;
- animation-direction: alternate;
+ color: @critical;
+ animation-name: blink;
+ animation-duration: 3s;
+ animation-timing-function: steps(12);
+ animation-iteration-count: infinite;
+ animation-direction: alternate;
}
label:focus {
- background-color: #000000;
+ background-color: #000000;
}
-#custom-menu{
- color: #FFFFFF;
- /*padding: 3px;*/
+#custom-menu {
+ color: #ffffff;
+ /*padding: 3px;*/
}
#custom-keyboard,
#cpu {
- color: @accent1;
+ color: @accent1;
}
#memory {
- color: @accent3;
+ color: @accent3;
}
#backlight {
- color: #cdd6f4;
+ color: #cdd6f4;
}
#bluetooth {
- color: #1e66f5;
+ color: #1e66f5;
}
#network {
- color: @accent3;
+ color: @accent3;
}
#network.disconnected {
- color: @alert;
+ color: @alert;
}
#pulseaudio {
- color: @accent4;
+ color: @accent4;
}
#pulseaudio-muted {
- color: @accent2;
+ color: @accent2;
}
#wireplumber {
- color: @accent4;
+ color: @accent4;
}
#wireplumber-muted {
- color: @accent2;
+ color: @accent2;
}
-#pluseaudio-source-muted{
- color: #a0a0a0;
+#pluseaudio-source-muted {
+ color: #a0a0a0;
}
#custom-power {
- color: #cc3436;
+ color: #cc3436;
}
#disk {
- color: @accent5;
+ color: @accent5;
}
#custom-power_profile {
- color: @accent3;
+ color: @accent3;
}
#custom-media {
- background-color: #66cc99;
- color: #2a5c45;
- min-width: 100px;
+ background-color: #66cc99;
+ color: #2a5c45;
+ min-width: 100px;
}
#custom-weather {
- color: #66cc99;
+ color: #66cc99;
}
#custom-weather2 {
- color: #66cc99;
+ color: #66cc99;
}
#custom-lock {
- color: #ffa000;
+ color: #ffa000;
}
#keyboard-state,
#temperature {
- color: @accent6;
- /* background-color: #f0932b; */
+ color: @accent6;
+ /* background-color: #f0932b; */
}
#temperature.critical {
- background-color: @critical;
+ background-color: @critical;
}
#tray {
- /* background-color: #505050; */
+ /* background-color: #505050; */
}
#custom-hypridle,
#idle_inhibitor {
- color: #f9e2af;
- /*background-color: #2d3436;
- border-bottom: 8px solid rgba(0, 0, 0, 0.2);*/
+ color: #f9e2af;
+ /*background-color: #2d3436; */
+ border-top: 8px solid rgba(0, 0, 0, 0.2);
}
/*-----Indicators----*/
#custom-hypridle.notactive,
#idle_inhibitor.activated {
- color: #39FF14;
- border-bottom: 8px solid rgba(0, 0, 0, 0.2);
+ color: #39ff14;
+ border-top: 8px solid rgba(0, 0, 0, 0.2);
}
#mpd {
- color: #2a5c45;
+ color: #2a5c45;
}
#mpd.disconnected {
- background-color: #f53c3c;
+ background-color: #f53c3c;
}
#mpd.stopped {
- background-color: #90b1b1;
+ background-color: #90b1b1;
}
#mpd.paused {
- background-color: #51a37a;
+ background-color: #51a37a;
}
#custom-language {
- color: @accent5;
- min-width: 16px;
+ color: @accent5;
+ min-width: 16px;
}
#custom-separator {
- color: #606060;
+ color: #606060;
}
#backlight-slider slider,
#pulseaudio-slider slider {
- min-width: 0px;
- min-height: 0px;
- opacity: 0;
- background-image: none;
- border: none;
- box-shadow: none;
+ min-width: 0px;
+ min-height: 0px;
+ opacity: 0;
+ background-image: none;
+ border: none;
+ box-shadow: none;
}
#backlight-slider trough,
#pulseaudio-slider trough {
- min-width: 80px;
- min-height: 5px;
- border-radius: 5px;
+ min-width: 80px;
+ min-height: 5px;
+ border-radius: 5px;
}
#backlight-slider highlight,
#pulseaudio-slider highlight {
- min-height: 10px;
- border-radius: 5px;
+ min-height: 10px;
+ border-radius: 5px;
}
/* --- tray readability override (global) --- */
diff --git a/config/waybar/style/Colorful-Aurora-Blossom.css b/config/waybar/style/Colorful-Aurora-Blossom.css
index cb1e9269..6b7ebc89 100644
--- a/config/waybar/style/Colorful-Aurora-Blossom.css
+++ b/config/waybar/style/Colorful-Aurora-Blossom.css
@@ -2,92 +2,102 @@
/* Aurora Blossom */
* {
- font-family: "JetBrainsMono Nerd Font";
- font-weight: bold;
- /* set font-size to 100% if font scaling is set to 1.00 using nwg-look */
- /* NOTE: Waybar v14+ ignores % font-size values */
- font-size: 99%;
- font-feature-settings: '"zero", "ss01", "ss02", "ss03", "ss04", "ss05", "cv31"';
+ font-family: "JetBrainsMono Nerd Font";
+ font-weight: bold;
+ /* set font-size to 100% if font scaling is set to 1.00 using nwg-look */
+ /* NOTE: Waybar v14+ ignores % font-size values */
+ font-size: 99%;
+ font-feature-settings: '"zero", "ss01", "ss02", "ss03", "ss04", "ss05", "cv31"';
}
window#waybar {
- background: transparent;
- /* Waybar scaling: adjust font-size to scale the bar */
- font-size: 14px;
+ background: transparent;
+ /* Waybar scaling: adjust font-size to scale the bar */
+ font-size: 14px;
}
-window#waybar.empty ,
+window#waybar.empty,
window#waybar.empty #window {
- background-color: transparent;
- padding: 0px;
- border: 0px;
- /* Waybar scaling: adjust font-size to scale the bar */
- font-size: 14px;
+ background-color: transparent;
+ padding: 0px;
+ border: 0px;
+ /* Waybar scaling: adjust font-size to scale the bar */
+ font-size: 14px;
}
tooltip {
- color: black;
- background-image: linear-gradient(45deg, #7287fd 10%, #209fb5 54%, #8839ef 90%);
- opacity: 0.8;
- border-radius: 10px;
+ color: black;
+ background-image: linear-gradient(
+ 45deg,
+ #7287fd 10%,
+ #209fb5 54%,
+ #8839ef 90%
+ );
+ opacity: 0.8;
+ border-radius: 10px;
}
/* Waybar scaling: adjust tooltip label font-size to scale the bar */
-tooltip label{
- color: black;
- /* Waybar scaling: adjust tooltip label font-size to scale the bar */
- font-size: 14px;
+tooltip label {
+ color: black;
+ /* Waybar scaling: adjust tooltip label font-size to scale the bar */
+ font-size: 14px;
}
/*-----module groups----*/
.modules-left,
.modules-center,
.modules-right {
- background-image: linear-gradient(45deg, #7287fd 10%, #209fb5 54%, #8839ef 90%);
- color: black;
- border-radius: 6px;
- padding-top: 2px;
- padding-bottom: 2px;
- padding-right: 4px;
- padding-left: 4px;
+ background-image: linear-gradient(
+ 45deg,
+ #7287fd 10%,
+ #209fb5 54%,
+ #8839ef 90%
+ );
+ color: black;
+ border-radius: 6px;
+ padding-top: 2px;
+ padding-bottom: 2px;
+ padding-right: 4px;
+ padding-left: 4px;
}
/*-----modules indv----*/
#taskbar button,
#workspaces button {
- color: black;
- box-shadow: none;
- text-shadow: none;
- padding: 0px;
- border-radius: 9px;
- padding-left: 4px;
- padding-right: 4px;
- animation: gradient_f 20s ease-in infinite;
- transition: all 0.5s cubic-bezier(.55,-0.68,.48,1.682);
+ color: black;
+ box-shadow: none;
+ text-shadow: none;
+ padding: 0px;
+ border-radius: 9px;
+ padding-left: 4px;
+ padding-right: 4px;
+ animation: gradient_f 20s ease-in infinite;
+ transition: all 0.5s cubic-bezier(0.55, -0.68, 0.48, 1.682);
}
#taskbar button:hover,
#workspaces button:hover {
- color: grey;
- background-color: rgba(0,153,153,0.2);
- padding-left: 2px;
- padding-right: 2px;
- animation: gradient_f 20s ease-in infinite;
- transition: all 0.3s cubic-bezier(.55,-0.68,.48,1.682);
+ color: grey;
+ background-color: rgba(0, 153, 153, 0.2);
+ padding-left: 2px;
+ padding-right: 2px;
+ animation: gradient_f 20s ease-in infinite;
+ transition: all 0.3s cubic-bezier(0.55, -0.68, 0.48, 1.682);
}
#taskbar button.active,
#workspaces button.active {
- color: grey;
- padding-left: 8px;
- padding-right: 8px;
- animation: gradient_f 20s ease-in infinite;
- transition: all 0.3s cubic-bezier(.55,-0.68,.48,1.682);
+ color: grey;
+ padding-left: 8px;
+ padding-right: 8px;
+ animation: gradient_f 20s ease-in infinite;
+ transition: all 0.3s cubic-bezier(0.55, -0.68, 0.48, 1.682);
}
#workspaces button.persistent {
- border-radius: 10px;
+ border-radius: 10px;
}
#backlight,
@@ -145,72 +155,73 @@ tooltip label{
#custom-weather.clearNight,
#custom-weather.cloudyFoggyDay,
#custom-weather.cloudyFoggyNight,
-#custom-weather.default,
+#custom-weather.default,
#custom-weather.rainyDay,
#custom-weather.rainyNight,
#custom-weather.severe,
#custom-weather.showyIcyDay,
#custom-weather.snowyIcyNight,
#custom-weather.sunnyDay {
- padding-top: 4px;
- padding-bottom: 4px;
- padding-right: 6px;
- padding-left: 6px;
+ padding-top: 4px;
+ padding-bottom: 4px;
+ padding-right: 6px;
+ padding-left: 6px;
}
#custom-power {
- padding: 1px 3px;
+ padding-right: 2px;
+ padding-left: 2px;
}
/*-----Indicators----*/
#custom-hypridle.notactive,
#idle_inhibitor.activated {
- color: #39FF14;
- border-bottom: 8px solid rgba(0, 0, 0, 0.2);
+ color: #39ff14;
+ border-top: 8px solid rgba(0, 0, 0, 0.2);
}
#pulseaudio.muted {
- color: #cc3436;
+ color: #cc3436;
}
#temperature.critical {
- color: #cc3436;
+ color: #cc3436;
}
@keyframes blink {
- to {
- color: #000000;
- }
+ to {
+ color: #000000;
+ }
}
#battery.critical:not(.charging) {
- color: #f53c3c;
- animation-name: blink;
- animation-duration: 3.0s;
- animation-timing-function: steps(12);
- animation-iteration-count: infinite;
- animation-direction: alternate;
+ color: #f53c3c;
+ animation-name: blink;
+ animation-duration: 3s;
+ animation-timing-function: steps(12);
+ animation-iteration-count: infinite;
+ animation-direction: alternate;
}
#backlight-slider slider,
#pulseaudio-slider slider {
- min-width: 0px;
- min-height: 0px;
- opacity: 0;
- background-image: none;
- border: none;
- box-shadow: none;
+ min-width: 0px;
+ min-height: 0px;
+ opacity: 0;
+ background-image: none;
+ border: none;
+ box-shadow: none;
}
#backlight-slider trough,
#pulseaudio-slider trough {
- background-color: #7f849c;
- min-width: 80px;
- min-height: 5px;
- border-radius: 5px;
+ background-color: #7f849c;
+ min-width: 80px;
+ min-height: 5px;
+ border-radius: 5px;
}
#pulseaudio-slider highlight,
#backlight-slider highlight {
- min-width: 10px;
- border-radius: 5px;
+ min-width: 10px;
+ border-radius: 5px;
}
/* --- tray readability override (global) --- */
diff --git a/config/waybar/style/Colorful-Aurora.css b/config/waybar/style/Colorful-Aurora.css
index d56cdd22..9ce23f99 100644
--- a/config/waybar/style/Colorful-Aurora.css
+++ b/config/waybar/style/Colorful-Aurora.css
@@ -2,80 +2,85 @@
/* Aurora */
* {
-font-family: "JetBrainsMono Nerd Font";
-font-weight: bold;
-/* set font-size to 100% if font scaling is set to 1.00 using nwg-look */
-/* NOTE: Waybar v14+ ignores % font-size values */
-font-size: 99%;
-font-feature-settings: '"zero", "ss01", "ss02", "ss03", "ss04", "ss05", "cv31"';
+ font-family: "JetBrainsMono Nerd Font";
+ font-weight: bold;
+ /* set font-size to 100% if font scaling is set to 1.00 using nwg-look */
+ /* NOTE: Waybar v14+ ignores % font-size values */
+ font-size: 99%;
+ font-feature-settings: '"zero", "ss01", "ss02", "ss03", "ss04", "ss05", "cv31"';
}
window#waybar,
window#waybar.empty,
window#waybar.empty #window {
- background-color: transparent;
- padding: 0px;
- border: 0px;
- /* Waybar scaling: adjust font-size to scale the bar */
- font-size: 14px;
+ background-color: transparent;
+ padding: 0px;
+ border: 0px;
+ /* Waybar scaling: adjust font-size to scale the bar */
+ font-size: 14px;
}
tooltip {
- color: black;
- background-image: linear-gradient(45deg, #7287fd 10%, #209fb5 54%, #8839ef 90%);
- opacity: 0.8;
- border-radius: 10px;
+ color: black;
+ background-image: linear-gradient(
+ 45deg,
+ #7287fd 10%,
+ #209fb5 54%,
+ #8839ef 90%
+ );
+ opacity: 0.8;
+ border-radius: 10px;
}
/* Waybar scaling: adjust tooltip label font-size to scale the bar */
-tooltip label{
- color: black;
- /* Waybar scaling: adjust tooltip label font-size to scale the bar */
- font-size: 14px;
+tooltip label {
+ color: black;
+ /* Waybar scaling: adjust tooltip label font-size to scale the bar */
+ font-size: 14px;
}
/*-----module groups----*/
.modules-left,
.modules-center,
.modules-right {
- padding-top: 2px;
- padding-bottom: 2px;
- padding-right: 4px;
- padding-left: 4px;
+ padding-top: 2px;
+ padding-bottom: 2px;
+ padding-right: 4px;
+ padding-left: 4px;
}
/*-----modules indv----*/
#taskbar button,
#workspaces button {
- color: grey;
- box-shadow: none;
- text-shadow: none;
- padding: 0px;
- border-radius: 9px;
- padding-left: 4px;
- padding-right: 4px;
- animation: gradient_f 20s ease-in infinite;
- transition: all 0.5s cubic-bezier(.55,-0.68,.48,1.682);
+ color: grey;
+ box-shadow: none;
+ text-shadow: none;
+ padding: 0px;
+ border-radius: 9px;
+ padding-left: 4px;
+ padding-right: 4px;
+ animation: gradient_f 20s ease-in infinite;
+ transition: all 0.5s cubic-bezier(0.55, -0.68, 0.48, 1.682);
}
#taskbar button:hover,
#workspaces button:hover {
- color: black;
- background-color: rgba(0,153,153,0.2);
- padding-left: 2px;
- padding-right: 2px;
- animation: gradient_f 20s ease-in infinite;
- transition: all 0.3s cubic-bezier(.55,-0.68,.48,1.682);
+ color: black;
+ background-color: rgba(0, 153, 153, 0.2);
+ padding-left: 2px;
+ padding-right: 2px;
+ animation: gradient_f 20s ease-in infinite;
+ transition: all 0.3s cubic-bezier(0.55, -0.68, 0.48, 1.682);
}
#taskbar button.active,
#workspaces button.active {
- color: black;
- padding-left: 8px;
- padding-right: 8px;
- animation: gradient_f 20s ease-in infinite;
- transition: all 0.3s cubic-bezier(.55,-0.68,.48,1.682);
+ color: black;
+ padding-left: 8px;
+ padding-right: 8px;
+ animation: gradient_f 20s ease-in infinite;
+ transition: all 0.3s cubic-bezier(0.55, -0.68, 0.48, 1.682);
}
#workspaces button.persistent {
- border-radius: 10px;
+ border-radius: 10px;
}
#backlight,
@@ -132,91 +137,91 @@ tooltip label{
#custom-weather.clearNight,
#custom-weather.cloudyFoggyDay,
#custom-weather.cloudyFoggyNight,
-#custom-weather.default,
+#custom-weather.default,
#custom-weather.rainyDay,
#custom-weather.rainyNight,
#custom-weather.severe,
#custom-weather.showyIcyDay,
#custom-weather.snowyIcyNight,
#custom-weather.sunnyDay {
- background-image: linear-gradient(45deg, #95E6CB, #59C2FF, #D2A6FF);
- color: black;
- border: 1px;
- border-style: solid;
- border-radius: 6px;
- padding-top: 4px;
- padding-bottom: 4px;
- padding-right: 6px;
- padding-left: 6px;
+ background-image: linear-gradient(45deg, #95e6cb, #59c2ff, #d2a6ff);
+ color: black;
+ border: 1px;
+ border-style: solid;
+ border-radius: 6px;
+ padding-top: 4px;
+ padding-bottom: 4px;
+ padding-right: 6px;
+ padding-left: 6px;
}
#backlight {
- padding-right: 2px;
+ padding-right: 2px;
}
#custom-power {
- padding-left: 10px;
- padding-right: 2px;
+ padding-left: 0px;
+ padding-right: 2px;
}
#custom-menu {
- padding-right: 8px;
+ padding-right: 8px;
}
#custom-cycle_wall {
- padding-right: 2px;
+ padding-right: 2px;
}
#network {
- padding-right: 12px;
+ padding-right: 12px;
}
/*-----Indicators----*/
#custom-hypridle.notactive,
#idle_inhibitor.activated {
- color: #39FF14;
- border-bottom: 8px solid rgba(0, 0, 0, 0.2);
+ color: #39ff14;
+ border-top: 8px solid rgba(0, 0, 0, 0.2);
}
#pulseaudio.muted {
- color: #cc3436;
+ color: #cc3436;
}
#temperature.critical {
- background: red;
- color: black;
+ background: red;
+ color: black;
}
@keyframes blink {
- to {
- color: #000000;
- }
+ to {
+ color: #000000;
+ }
}
#battery.critical:not(.charging) {
- color: #f53c3c;
- animation-name: blink;
- animation-duration: 3.0s;
- animation-timing-function: steps(12);
- animation-iteration-count: infinite;
- animation-direction: alternate;
+ color: #f53c3c;
+ animation-name: blink;
+ animation-duration: 3s;
+ animation-timing-function: steps(12);
+ animation-iteration-count: infinite;
+ animation-direction: alternate;
}
#backlight-slider slider,
#pulseaudio-slider slider {
- min-width: 0px;
- min-height: 0px;
- opacity: 0;
- background-image: none;
- border: none;
- box-shadow: none;
+ min-width: 0px;
+ min-height: 0px;
+ opacity: 0;
+ background-image: none;
+ border: none;
+ box-shadow: none;
}
#backlight-slider trough,
#pulseaudio-slider trough {
- background-color: #7f849c;
- min-width: 80px;
- min-height: 5px;
- border-radius: 5px;
+ background-color: #7f849c;
+ min-width: 80px;
+ min-height: 5px;
+ border-radius: 5px;
}
#backlight-slider highlight,
#pulseaudio-slider highlight {
- min-height: 10px;
- border-radius: 5px;
+ min-height: 10px;
+ border-radius: 5px;
}
/* --- tray readability override (global) --- */
diff --git a/config/waybar/style/Colorful-Oglo-Chicklets.css b/config/waybar/style/Colorful-Oglo-Chicklets.css
index e870c3e7..e0c574da 100644
--- a/config/waybar/style/Colorful-Oglo-Chicklets.css
+++ b/config/waybar/style/Colorful-Oglo-Chicklets.css
@@ -2,68 +2,72 @@
/* Oglo Chicklets */
* {
- font-family: "JetBrainsMono Nerd Font", FontAwesome, Roboto, Helvetica, Arial, sans-serif;
- /* NOTE: Waybar v14+ ignores % font-size values */
- font-size: 99%;
- font-weight: bold;
+ font-family:
+ "JetBrainsMono Nerd Font", FontAwesome, Roboto, Helvetica, Arial, sans-serif;
+ /* NOTE: Waybar v14+ ignores % font-size values */
+ font-size: 99%;
+ font-weight: bold;
}
window#waybar {
- background-color: #232a2e;
- border-bottom: 8px solid #1d2327;
- color: #d3c6aa;
- transition-property: background-color;
- transition-duration: .5s;
- /* Waybar scaling: adjust font-size to scale the bar */
- font-size: 14px;
+ background-color: #232a2e;
+ border-bottom: 8px solid #1d2327;
+ color: #d3c6aa;
+ transition-property: background-color;
+ transition-duration: 0.5s;
+ /* Waybar scaling: adjust font-size to scale the bar */
+ font-size: 14px;
}
window#waybar.hidden {
- opacity: 0.2;
- /* Waybar scaling: adjust font-size to scale the bar */
- font-size: 14px;
+ opacity: 0.2;
+ /* Waybar scaling: adjust font-size to scale the bar */
+ font-size: 14px;
}
/*
window#waybar.empty {
- background-color: transparent;
- /* Waybar scaling: adjust font-size to scale the bar */
- font-size: 14px;
+ background-color: transparent;
+ font-size: 14px;
}
+*/
+
+/*
window#waybar.solo {
- background-color: #FFFFFF;
- /* Waybar scaling: adjust font-size to scale the bar */
- font-size: 14px;
+ background-color: #ffffff;
+ font-size: 14px;
}
*/
button {
- all: unset;
- background-color: #778f52;
- color: #2d353b;
- border: none;
- border-bottom: 8px solid #5d743e;
- border-radius: 5px;
- padding-left: 15px;
- padding-right: 15px;
- transition: transform 0.1s ease-in-out;
+ all: unset;
+ background-color: #778f52;
+ color: #2d353b;
+ border: none;
+ border-bottom: 8px solid #5d743e;
+ border-radius: 5px;
+ padding-left: 15px;
+ padding-right: 15px;
+ padding-top: 2px;
+ padding-bottom: 2px;
+ transition: transform 0.1s ease-in-out;
}
button:hover {
- background: inherit;
- background-color: #92ab6c;
- border-bottom: 8px solid #788f57;
+ background: inherit;
+ background-color: #92ab6c;
+ border-bottom: 8px solid #788f57;
}
button.active {
- background: inherit;
- background-color: #a5be7e;
- border-bottom: 8px solid #8aa168;
+ background: inherit;
+ background-color: #a5be7e;
+ border-bottom: 8px solid #8aa168;
}
#mode {
- background-color: #64727D;
- border-bottom: 3px solid #ffffff;
+ background-color: #64727d;
+ border-bottom: 3px solid #ffffff;
}
#backlight,
@@ -74,14 +78,13 @@ button.active {
#cpu,
#disk,
#idle_inhibitor,
-#keyboard-state,
#memory,
#mode,
#mpris,
#network,
#power-profiles-daemon,
#pulseaudio,
-#pulseaudio-slider,
+#pulseaudio-slider,
#taskbar,
#temperature,
#tray,
@@ -120,249 +123,329 @@ button.active {
#custom-weather.clearNight,
#custom-weather.cloudyFoggyDay,
#custom-weather.cloudyFoggyNight,
-#custom-weather.default,
+#custom-weather.default,
#custom-weather.rainyDay,
#custom-weather.rainyNight,
#custom-weather.severe,
#custom-weather.showyIcyDay,
#custom-weather.snowyIcyNight,
-#custom-weather.sunnyDay{
- color: #ffffff;
- padding-top: 2px;
- padding-bottom: 2px;
- border-radius: 5px;
- padding-left: 5px;
- padding-right: 5px;
+#custom-weather.sunnyDay {
+ color: #ffffff;
+ padding-top: 2px;
+ padding-bottom: 2px;
+ border-radius: 5px;
+ padding-left: 5px;
+ padding-right: 5px;
}
#window,
-#workspaces {
- margin: 0 4px;
+#custom-hypr_layout,
+#custom-cava_mviz,
+#custom-playerctl,
+#custom-spotify,
+#custom-media,
+#custom-updater {
+ margin: 0 4px;
+}
+
+#battery,
+#cpu,
+#memory,
+#disk,
+#network,
+#pulseaudio,
+#tray,
+#idle_inhibitor,
+#custom-swaync,
+#custom-menu,
+#custom-power {
+ margin-top: 2px;
+ margin-bottom: 2px;
}
/* If workspaces is the leftmost module, omit left margin */
.modules-left > widget:first-child > #workspaces {
- margin-left: 0;
+ margin-left: 0;
}
/* If workspaces is the rightmost module, omit right margin */
.modules-right > widget:last-child > #workspaces {
- margin-right: 0;
+ margin-right: 0;
}
-#window {
- background-color: #343f44;
- color: #d3c6aa;
- border-bottom: 8px solid #2b3539;
+#window,
+#custom-hypr_layout,
+#custom-cava_mviz,
+#custom-playerctl,
+#custom-spotify,
+#custom-media,
+#custom-updater {
+ background-color: #2980b9;
+ color: #ffffff;
+ border-bottom: 8px solid #1f618d;
+ padding-top: 2px;
+ padding-bottom: 2px;
+}
+
+#custom-weather2 {
+ background-color: #343f44;
+ color: #d3c6aa;
+ border-bottom: 8px solid #2b3539;
+ padding-top: 2px;
+ padding-bottom: 2px;
}
#custom-swaync {
- background-color: #778f52;
- color: #2d353b;
- border-bottom: 8px solid #5d743e;
+ background-color: #778f52;
+ color: #2d353b;
+ border-bottom: 8px solid #5d743e;
}
#custom-menu {
- background-color: #778f52;
- color: #2d353b;
- border-bottom: 8px solid #5d743e;
+ background-color: #778f52;
+ color: #2d353b;
+ border-bottom: 8px solid #5d743e;
}
#custom-power {
- background-color: #ee606a;
- color: #2d353b;
- border-bottom: 8px solid #ca4853;
- padding-left: 10px;
+ background-color: #ee606a;
+ color: #2d353b;
+ border-bottom: 8px solid #ca4853;
+ padding-left: 2px;
}
-#custom-power_vertical{
- background-color: #ee606a;
- color: #2d353b;
- border-bottom: 8px solid #ca4853;
+#custom-power_vertical {
+ background-color: #ee606a;
+ color: #2d353b;
+ border-bottom: 8px solid #ca4853;
}
#clock {
- background-color: #96a84c;
- color: #2d353b;
- border-bottom: 8px solid #7a8c37;
+ background-color: #96a84c;
+ color: #2d353b;
+ border-bottom: 8px solid #7a8c37;
}
#battery {
- background-color: #3a998f;
- color: #2d353b;
- border-bottom: 8px solid #227d74;
+ background-color: #3a998f;
+ color: #2d353b;
+ border-bottom: 8px solid #227d74;
}
@keyframes blink {
- to {
- background-color: #ffffff;
- color: #000000;
- }
+ to {
+ background-color: #ffffff;
+ color: #000000;
+ }
}
#battery.critical:not(.charging) {
- background-color: #ee606a;
- color: #2d353b;
- border-bottom: 8px solid #ca4853;
- animation-name: blink;
- animation-duration: 3.0s;
- animation-timing-function: steps(12);
- animation-iteration-count: infinite;
- animation-direction: alternate;
+ background-color: #ee606a;
+ color: #2d353b;
+ border-bottom: 8px solid #ca4853;
+ animation-name: blink;
+ animation-duration: 3s;
+ animation-timing-function: steps(12);
+ animation-iteration-count: infinite;
+ animation-direction: alternate;
}
label:focus {
- background-color: #000000;
+ background-color: #000000;
}
#cpu {
- background-color: #778f52;
- color: #2d353b;
- border-bottom: 8px solid #5d743e;
+ background-color: #778f52;
+ color: #2d353b;
+ border-bottom: 8px solid #5d743e;
}
#memory {
- background-color: #d980ad;
- color: #2d353b;
- border-bottom: 8px solid #b86790;
+ background-color: #d980ad;
+ color: #2d353b;
+ border-bottom: 8px solid #b86790;
}
#disk {
- background-color: #964B00;
- border-bottom: 8px solid #793300;
+ background-color: #964b00;
+ border-bottom: 8px solid #793300;
}
#custom-lock,
#custom-light_dark,
#custom-nightlight,
#backlight {
- background-color: #64b6ac;
- color: #2d353b;
- border-bottom: 8px solid #4f9990;
- padding-left: 10px;
+ background-color: #64b6ac;
+ color: #2d353b;
+ border-bottom: 8px solid #4f9990;
+ padding-left: 10px;
}
#network {
- background-color: #2980b9;
+ background-color: #2980b9;
+ border-bottom: 8px solid #1f618d;
}
#network.disconnected {
- background-color: #f53c3c;
+ background-color: #f53c3c;
+ border-bottom: 8px solid #c0392b;
}
#pulseaudio {
- background-color: #d8ac47;
- color: #2d353b;
- border-bottom: 8px solid #b78f30;
+ background-color: #d8ac47;
+ color: #2d353b;
+ border-bottom: 8px solid #b78f30;
}
#pulseaudio.muted {
- background-color: #90b1b1;
- color: #2a5c45;
+ background-color: #90b1b1;
+ color: #2a5c45;
+ border-bottom: 8px solid #729292;
}
#wireplumber {
- background-color: #fff0f5;
- color: #000000;
+ background-color: #fff0f5;
+ color: #000000;
+ border-bottom: 8px solid #e0d1d6;
}
#wireplumber.muted {
- background-color: #f53c3c;
+ background-color: #f53c3c;
+ border-bottom: 8px solid #c0392b;
}
#custom-media {
- background-color: #66cc99;
- color: #2a5c45;
- min-width: 100px;
+ background-color: #66cc99;
+ color: #2a5c45;
+ min-width: 100px;
+ border-bottom: 8px solid #51a37a;
}
#custom-media.custom-spotify {
- background-color: #66cc99;
+ background-color: #66cc99;
}
#custom-media.custom-vlc {
- background-color: #ffa000;
+ background-color: #ffa000;
}
#temperature {
- background-color: #f0932b;
- border-bottom: 8px solid #b78f30;
+ background-color: #f0932b;
+ border-bottom: 8px solid #b78f30;
}
#temperature.critical {
- background-color: #eb4d4b;
+ background-color: #eb4d4b;
+ border-bottom: 8px solid #b73d3b;
}
#tray {
- background-color: #e67f51;
- color: #2d353b;;
- border-bottom: 8px solid #c3653b;
+ background-color: #e67f51;
+ color: #2d353b;
+ border-bottom: 8px solid #c3653b;
}
#tray > .passive {
- -gtk-icon-effect: dim;
+ -gtk-icon-effect: dim;
}
#tray > .needs-attention {
- -gtk-icon-effect: highlight;
- background-color: #eb4d4b;
+ -gtk-icon-effect: highlight;
+ background-color: #eb4d4b;
+ border-bottom: 8px solid #b73d3b;
}
#idle_inhibitor {
- background-color: #2d3436;
- border-bottom: 8px solid #1d2327;
+ background-color: #96a84c;
+ border-bottom: 8px solid #7a8c37;
+ color: #2d3436;
}
#idle_inhibitor.activated {
- background-color: #ecf0f1;
- border-bottom: 8px solid #7a8c37;
- color: #2d3436;
+ background-color: #eb4d4b;
+ border-bottom: 8px solid #7a8c37;
+ color: #2d3436;
}
#mpd {
- background-color: #66cc99;
- color: #2a5c45;
+ background-color: #66cc99;
+ color: #2a5c45;
+ border-bottom: 8px solid #51a37a;
}
#mpd.disconnected {
- background-color: #f53c3c;
+ background-color: #f53c3c;
+ border-bottom: 8px solid #c0392b;
}
#mpd.stopped {
- background-color: #90b1b1;
+ background-color: #90b1b1;
+ border-bottom: 8px solid #729292;
}
#mpd.paused {
- background-color: #51a37a;
+ background-color: #51a37a;
+ border-bottom: 8px solid #3d7a5c;
}
#language {
- background: #00b093;
- color: #740864;
- min-width: 16px;
+ background: #00b093;
+ color: #740864;
+ min-width: 16px;
+ border-bottom: 8px solid #008c75;
+}
+
+/* Specific styling for left workspaces to match center window */
+.modules-left #workspaces button {
+ background-color: #2980b9;
+ color: #ffffff;
+ border-bottom: 8px solid #1f618d;
+ padding-top: 2px;
+ padding-bottom: 2px;
+}
+
+.modules-left #workspaces button.active {
+ background-color: #3498db;
+ border-bottom: 8px solid #2980b9;
+ padding-top: 2px;
+ padding-bottom: 2px;
+}
+
+.modules-left #workspaces button:hover {
+ background-color: #3498db;
+ border-bottom: 8px solid #2980b9;
+ padding-top: 2px;
+ padding-bottom: 2px;
}
#keyboard-state {
- background: #97e1ad;
- color: #000000;
- min-width: 16px;
- border-bottom: 8px solid #78b48a;
+ background-color: #97e1ad;
+ color: #000000;
+ border-bottom: 8px solid #558b66;
+ padding-left: 10px;
+ padding-right: 10px;
+ padding-top: 2px;
+ padding-bottom: 2px;
+ margin-left: 4px;
+ margin-right: 4px;
+ border-radius: 5px;
}
#keyboard-state > label {
- padding: 0 5px;
+ padding: 0 5px;
+ background-color: transparent;
}
#keyboard-state > label.locked {
- background: rgba(0, 0, 0, 0.2);
+ background: rgba(0, 0, 0, 0.2);
}
#scratchpad {
- background: rgba(0, 0, 0, 0.2);
+ background: rgba(0, 0, 0, 0.2);
}
#scratchpad.empty {
- background-color: transparent;
+ background-color: transparent;
}
tooltip {
@@ -390,47 +473,46 @@ tooltip label {
font-size: 14px;
}
-
#pulseaudio-slider slider {
- min-width: 0px;
- min-height: 0px;
- opacity: 0;
- background-image: none;
- border: none;
- box-shadow: none;
+ min-width: 0px;
+ min-height: 0px;
+ opacity: 0;
+ background-image: none;
+ border: none;
+ box-shadow: none;
}
#pulseaudio-slider trough {
- background-color: #7f849c;
- min-width: 80px;
- min-height: 5px;
- border-radius: 5px;
+ background-color: #7f849c;
+ min-width: 80px;
+ min-height: 5px;
+ border-radius: 5px;
}
#pulseaudio-slider highlight {
- min-height: 10px;
- border-radius: 5px;
+ min-height: 10px;
+ border-radius: 5px;
}
#backlight-slider slider {
- min-width: 0px;
- min-height: 0px;
- opacity: 0;
- background-image: none;
- border: none;
- box-shadow: none;
+ min-width: 0px;
+ min-height: 0px;
+ opacity: 0;
+ background-image: none;
+ border: none;
+ box-shadow: none;
}
#backlight-slider trough {
- background-color: #7f849c;
- min-width: 80px;
- min-height: 10px;
- border-radius: 5px;
+ background-color: #7f849c;
+ min-width: 80px;
+ min-height: 10px;
+ border-radius: 5px;
}
#backlight-slider highlight {
- min-width: 10px;
- border-radius: 5px;
+ min-width: 10px;
+ border-radius: 5px;
}
/* --- tray readability override (global) --- */
diff --git a/config/waybar/style/Colorful-Rainbow-Spectrum.css b/config/waybar/style/Colorful-Rainbow-Spectrum.css
index a23fb79a..88deb406 100644
--- a/config/waybar/style/Colorful-Rainbow-Spectrum.css
+++ b/config/waybar/style/Colorful-Rainbow-Spectrum.css
@@ -2,86 +2,86 @@
/* Rainbow Spectrum */
* {
-font-family: "JetBrainsMono Nerd Font";
-font-weight: bold;
-min-height: 0;
-/* set font-size to 100% if font scaling is set to 1.00 using nwg-look */
-/* NOTE: Waybar v14+ ignores % font-size values */
-font-size: 99%;
-font-feature-settings: '"zero", "ss01", "ss02", "ss03", "ss04", "ss05", "cv31"';
+ font-family: "JetBrainsMono Nerd Font";
+ font-weight: bold;
+ min-height: 0;
+ /* set font-size to 100% if font scaling is set to 1.00 using nwg-look */
+ /* NOTE: Waybar v14+ ignores % font-size values */
+ font-size: 99%;
+ font-feature-settings: '"zero", "ss01", "ss02", "ss03", "ss04", "ss05", "cv31"';
}
window#waybar {
- background-color: rgba(0,0,0,0);
- transition-property: background-color;
- transition-duration: .5s;
- /* Waybar scaling: adjust font-size to scale the bar */
- font-size: 14px;
+ background-color: rgba(0, 0, 0, 0);
+ transition-property: background-color;
+ transition-duration: 0.5s;
+ /* Waybar scaling: adjust font-size to scale the bar */
+ font-size: 14px;
}
window#waybar.hidden {
- opacity: 0.5;
- /* Waybar scaling: adjust font-size to scale the bar */
- font-size: 14px;
+ opacity: 0.5;
+ /* Waybar scaling: adjust font-size to scale the bar */
+ font-size: 14px;
}
window#waybar.empty,
window#waybar.empty #window {
- padding: 0px;
- border: 0px;
- background-color: transparent;
- /* Waybar scaling: adjust font-size to scale the bar */
- font-size: 14px;
+ padding: 0px;
+ border: 0px;
+ background-color: transparent;
+ /* Waybar scaling: adjust font-size to scale the bar */
+ font-size: 14px;
}
tooltip {
- background: #1e1e2e;
- opacity: 0.8;
- border-radius: 10px;
- border-width: 2px;
- border-style: solid;
- border-color: #11111b;
+ background: #1e1e2e;
+ opacity: 0.8;
+ border-radius: 10px;
+ border-width: 2px;
+ border-style: solid;
+ border-color: #11111b;
}
/* Waybar scaling: adjust tooltip label font-size to scale the bar */
-tooltip label{
- color: #cdd6f4;
- /* Waybar scaling: adjust tooltip label font-size to scale the bar */
- font-size: 14px;
+tooltip label {
+ color: #cdd6f4;
+ /* Waybar scaling: adjust tooltip label font-size to scale the bar */
+ font-size: 14px;
}
#taskbar button,
#workspaces button {
- background-color: #d9e0ee;
- color: #3A3B3C;
- box-shadow: none;
- text-shadow: none;
- padding: 0px;
- border-radius: 9px;
- padding-left: 4px;
- padding-right: 4px;
- animation: gradient_f 20s ease-in infinite;
- transition: all 0.5s cubic-bezier(.55,-0.68,.48,1.682);
+ background-color: #d9e0ee;
+ color: #3a3b3c;
+ box-shadow: none;
+ text-shadow: none;
+ padding: 0px;
+ border-radius: 9px;
+ padding-left: 4px;
+ padding-right: 4px;
+ animation: gradient_f 20s ease-in infinite;
+ transition: all 0.5s cubic-bezier(0.55, -0.68, 0.48, 1.682);
}
#taskbar button.active,
#workspaces button.active {
- background-color: #eba0ac;
- color: #3A3B3C;
- padding-left: 8px;
- padding-right: 8px;
- animation: gradient_f 20s ease-in infinite;
- transition: all 0.3s cubic-bezier(.55,-0.68,.48,1.682);
+ background-color: #eba0ac;
+ color: #3a3b3c;
+ padding-left: 8px;
+ padding-right: 8px;
+ animation: gradient_f 20s ease-in infinite;
+ transition: all 0.3s cubic-bezier(0.55, -0.68, 0.48, 1.682);
}
#taskbar button:hover,
#workspaces button:hover {
- background: #eb6f92;
- color: #f6c177;
- padding-left: 3px;
- padding-right: 3px;
- animation: gradient_f 20s ease-in infinite;
- transition: all 0.3s cubic-bezier(.55,-0.68,.48,1.682);
+ background: #eb6f92;
+ color: #f6c177;
+ padding-left: 3px;
+ padding-right: 3px;
+ animation: gradient_f 20s ease-in infinite;
+ transition: all 0.3s cubic-bezier(0.55, -0.68, 0.48, 1.682);
}
#backlight,
@@ -139,96 +139,96 @@ tooltip label{
#custom-weather.clearNight,
#custom-weather.cloudyFoggyDay,
#custom-weather.cloudyFoggyNight,
-#custom-weather.default,
+#custom-weather.default,
#custom-weather.rainyDay,
#custom-weather.rainyNight,
#custom-weather.severe,
#custom-weather.showyIcyDay,
#custom-weather.snowyIcyNight,
#custom-weather.sunnyDay {
- border-radius: 16px;
- color: #3A3B3C;
- border: 1px solid #b4befe;
- padding-top: 4px;
- padding-bottom: 4px;
- padding-right: 6px;
- padding-left: 6px;
+ border-radius: 16px;
+ color: #3a3b3c;
+ border: 1px solid #b4befe;
+ padding-top: 4px;
+ padding-bottom: 4px;
+ padding-right: 6px;
+ padding-left: 6px;
}
#backlight {
- background-color: #cba6f7;
+ background-color: #cba6f7;
}
#battery {
- background-color: #f9e2af;
+ background-color: #f9e2af;
}
@keyframes blink {
- to {
- color: #000000;
- }
+ to {
+ color: #000000;
+ }
}
#battery.critical:not(.charging) {
- background-color: #f38ba8;
- color: #f38ba8;
- animation-name: blink;
- animation-duration: 3.0s;
- animation-timing-function: steps(12);
- animation-iteration-count: infinite;
- animation-direction: alternate;
+ background-color: #f38ba8;
+ color: #f38ba8;
+ animation-name: blink;
+ animation-duration: 3s;
+ animation-timing-function: steps(12);
+ animation-iteration-count: infinite;
+ animation-direction: alternate;
}
#clock {
- background-color: #a6e3a1;
+ background-color: #a6e3a1;
}
#mpris {
- background-color: #fab387;
- color: black;
+ background-color: #fab387;
+ color: black;
}
#custom-keyboard,
#keyboard-state,
#keyboard-state label,
#keyboard-state label.locked,
#cpu {
- background-color: #89dceb;
+ background-color: #89dceb;
}
#memory {
- background-color: #eba0ac;
+ background-color: #eba0ac;
}
#disk {
- background-color: #b4befe;
+ background-color: #b4befe;
}
#tray {
- background-color: #b4befe;
+ background-color: #b4befe;
}
#tray > .passive {
- -gtk-icon-effect: dim;
+ -gtk-icon-effect: dim;
}
#tray > .needs-attention {
- -gtk-icon-effect: highlight;
+ -gtk-icon-effect: highlight;
}
#custom-menu {
- background-color: #f5c2e7;
- /*padding: 1px;*/
- padding-right: 10px;
- border-radius: 16px;
- color: #3A3B3C;
- border: 1px solid #b4befe;
+ background-color: #f5c2e7;
+ /*padding: 1px;*/
+ padding-right: 10px;
+ border-radius: 16px;
+ color: #3a3b3c;
+ border: 1px solid #b4befe;
}
#custom-power {
- background-color: #f38ba8;
- padding: 0px 0px 0px 6px;
+ background-color: #f38ba8;
+ padding: 0px 0px 0px 0px;
}
#custom-updater {
- background-color: #e6ed7b;
+ background-color: #e6ed7b;
}
#custom-cava_mviz,
@@ -237,35 +237,35 @@ tooltip label{
#custom-file_manager,
#custom-tty,
#custom-settings {
- background: linear-gradient(45deg, #14e81e 10%, #017ed5 54%, #8d00c4 90%);
+ background: linear-gradient(45deg, #14e81e 10%, #017ed5 54%, #8d00c4 90%);
}
#custom-cycle_wall {
- background-color: #94e2d5;
+ background-color: #94e2d5;
}
#custom-swaync,
#custom-weather {
- background-color: #cba6f7;
+ background-color: #cba6f7;
}
#custom-reboot,
#wireplumber {
- background-color: #a6e3a1;
+ background-color: #a6e3a1;
}
#wireplumber.muted {
- background-color: #313244;
- color: #cdd6f4;
+ background-color: #313244;
+ color: #cdd6f4;
}
#custom-lock {
- background-color: #89dceb;
+ background-color: #89dceb;
}
#custom-quit,
#temperature {
- background-color: #86b4fa;
+ background-color: #86b4fa;
}
#temperature.critical {
@@ -277,67 +277,68 @@ tooltip label{
#custom-nightlight,
#custom-hypridle,
#idle_inhibitor {
- background-color: #86b4fa;
- border-bottom: 8px solid rgba(0, 0, 0, 0.2);
+ background-color: #86b4fa;
+ border-bottom: 0px solid rgba(0, 0, 0, 0.2);
}
/*-----Indicators----*/
#custom-hypridle.notactive,
#idle_inhibitor.activated {
- color: #39FF14;
- border-bottom: 8px solid rgba(0, 0, 0, 0.2);
+ color: #39ff14;
+ border-bottom: 0px solid rgba(0, 0, 0, 0.2);
}
#bluetooth {
- background-color: #89dceb;
+ background-color: #89dceb;
}
#window {
- background-color: #89dceb;
+ background-color: #89dceb;
}
#custom-hint,
#pulseaudio {
- background-color: #fab387;
+ background-color: #fab387;
}
#pulseaudio.bluetooth {
- background-color: #f5c2e7;
+ background-color: #f5c2e7;
}
#pulseaudio.muted {
- background-color: #313244;
- color: #cdd6f4;
+ background-color: #313244;
+ color: #cdd6f4;
}
#network {
- background-color: #89b4fa;
- padding-right: 12px;
+ background-color: #89b4fa;
+ padding-right: 12px;
}
-#network.disconnected,#network.disabled {
- background-color: #313244;
- color: #cdd6f4;
+#network.disconnected,
+#network.disabled {
+ background-color: #313244;
+ color: #cdd6f4;
}
#backlight-slider slider,
#pulseaudio-slider slider {
- min-width: 0px;
- min-height: 0px;
- opacity: 0;
- background-image: none;
- border: none;
- box-shadow: none;
+ min-width: 0px;
+ min-height: 0px;
+ opacity: 0;
+ background-image: none;
+ border: none;
+ box-shadow: none;
}
#backlight-slider trough,
#pulseaudio-slider trough {
- min-width: 80px;
- min-height: 5px;
- border-radius: 5px;
+ min-width: 80px;
+ min-height: 5px;
+ border-radius: 5px;
}
#backlight-slider highlight,
#pulseaudio-slider highlight {
- min-height: 10px;
- border-radius: 5px;
+ min-height: 10px;
+ border-radius: 5px;
}
/* --- tray readability override (global) --- */
diff --git a/config/waybar/style/Colorful-stolen-style.css b/config/waybar/style/Colorful-stolen-style.css
index b3ba6149..35d96a0a 100644
--- a/config/waybar/style/Colorful-stolen-style.css
+++ b/config/waybar/style/Colorful-stolen-style.css
@@ -1,13 +1,13 @@
/* ----------- 💫 https://github.com/LinuxBeginnings 💫 -------- */
/* ....[Colorful] Stolen ......... */
* {
- font-family: "JetBrainsMono Nerd Font";
- font-weight: bold;
- min-height: 0;
- /* set font-size to 100% if font scaling is set to 1.00 using nwg-look */
- /* NOTE: Waybar v14+ ignores % font-size values */
- font-size: 99%;
- font-feature-settings: '"zero", "ss01", "ss02", "ss03", "ss04", "ss05", "cv31"';
+ font-family: "JetBrainsMono Nerd Font";
+ font-weight: bold;
+ min-height: 0;
+ /* set font-size to 100% if font scaling is set to 1.00 using nwg-look */
+ /* NOTE: Waybar v14+ ignores % font-size values */
+ font-size: 99%;
+ font-feature-settings: '"zero", "ss01", "ss02", "ss03", "ss04", "ss05", "cv31"';
}
window#waybar {
@@ -126,7 +126,7 @@ window#waybar.empty #window {
#idle_inhibitor {
color: #7aa2f7;
- border-bottom: 2px solid #455a64;
+ border-top: 2px solid #455a64;
}
#backlight {
@@ -189,7 +189,6 @@ window#waybar.empty #window {
#custom-niflveil.empty {
color: #c0caf5;
-
}
#cpu {
@@ -247,17 +246,15 @@ window#waybar.empty #window {
}
#custom-menu {
-
color: #7dcfff;
padding-left: 14px;
padding-right: 12px;
}
#custom-power {
-
color: #f7768e;
- padding-left: 8px;
- padding-right: 17px;
+ padding-left: 6px;
+ padding-right: 10px;
}
#custom-updater {
@@ -266,7 +263,6 @@ window#waybar.empty #window {
border-radius: 20px;
padding-left: 10pt;
padding-right: 12px;
-
}
#custom-light_dark {
@@ -275,7 +271,6 @@ window#waybar.empty #window {
#custom-weather {
color: #9fe044;
-
}
#custom-speaker {
@@ -284,7 +279,6 @@ window#waybar.empty #window {
#pulseaudio {
color: #faba4a;
-
}
#pulseaudio.bluetooth {
diff --git a/config/waybar/style/Dark-Golden-Eclipse.css b/config/waybar/style/Dark-Golden-Eclipse.css
index 0a8e7fe4..2a45a91a 100644
--- a/config/waybar/style/Dark-Golden-Eclipse.css
+++ b/config/waybar/style/Dark-Golden-Eclipse.css
@@ -2,26 +2,25 @@
/* Golden Eclipse */
* {
-font-family: "JetBrainsMono Nerd Font";
-font-weight: bold;
-min-height: 0;
-/* set font-size to 100% if font scaling is set to 1.00 using nwg-look */
-/* NOTE: Waybar v14+ ignores % font-size values */
-font-size: 99%;
-font-feature-settings: '"zero", "ss01", "ss02", "ss03", "ss04", "ss05", "cv31"';
-padding: 1px;
+ font-family: "JetBrainsMono Nerd Font";
+ font-weight: bold;
+ min-height: 0;
+ /* set font-size to 100% if font scaling is set to 1.00 using nwg-look */
+ /* NOTE: Waybar v14+ ignores % font-size values */
+ font-size: 99%;
+ font-feature-settings: '"zero", "ss01", "ss02", "ss03", "ss04", "ss05", "cv31"';
+ padding: 1px;
}
-
window#waybar {
transition-property: background-color;
transition-duration: 0.5s;
- background: #000000;
- padding-top: 3px;
- padding-bottom: 3px;
- padding-right: 4px;
- padding-left: 4px;
- border-radius: 12px;
+ background: #000000;
+ padding-top: 3px;
+ padding-bottom: 3px;
+ padding-right: 4px;
+ padding-left: 4px;
+ border-radius: 12px;
/* Waybar scaling: adjust font-size to scale the bar */
font-size: 14px;
}
@@ -51,7 +50,7 @@ window#waybar.hidden {
#network,
#power-profiles-daemon,
#pulseaudio,
-#pulseaudio-slider,
+#pulseaudio-slider,
#taskbar,
#temperature,
#tray,
@@ -89,18 +88,18 @@ window#waybar.hidden {
#custom-weather.clearNight,
#custom-weather.cloudyFoggyDay,
#custom-weather.cloudyFoggyNight,
-#custom-weather.default,
+#custom-weather.default,
#custom-weather.rainyDay,
#custom-weather.rainyNight,
#custom-weather.severe,
#custom-weather.showyIcyDay,
#custom-weather.snowyIcyNight,
-#custom-weather.sunnyDay{
- color: #fcba03;
- padding-top: 3px;
- padding-bottom: 3px;
- padding-right: 6px;
- padding-left: 6px;
+#custom-weather.sunnyDay {
+ color: #fcba03;
+ padding-top: 3px;
+ padding-bottom: 3px;
+ padding-right: 6px;
+ padding-left: 6px;
}
#temperature.critical {
@@ -115,73 +114,72 @@ window#waybar.hidden {
}
@keyframes blink {
- to {
- color: #000000;
- }
+ to {
+ color: #000000;
+ }
}
/*-----Indicators----*/
#custom-hypridle.notactive,
#idle_inhibitor.activated {
- color: cyan;
- border-bottom: 8px solid rgba(0, 0, 0, 0.2);
+ color: cyan;
+ border-top: 8px solid rgba(0, 0, 0, 0.2);
}
#battery.critical:not(.charging) {
- color: #f53c3c;
- animation-name: blink;
- animation-duration: 3.0s;
- animation-timing-function: steps(12);
- animation-iteration-count: infinite;
- animation-direction: alternate;
+ color: #f53c3c;
+ animation-name: blink;
+ animation-duration: 3s;
+ animation-timing-function: steps(12);
+ animation-iteration-count: infinite;
+ animation-direction: alternate;
}
#taskbar button,
#workspaces button {
- box-shadow: none;
- text-shadow: none;
- padding: 0px;
- border-radius: 9px;
- padding-left: 4px;
- padding-right: 4px;
- animation: gradient_f 20s ease-in infinite;
- transition: all 0.5s cubic-bezier(.55,-0.68,.48,1.682);
- color: #fcba03;
+ box-shadow: none;
+ text-shadow: none;
+ padding: 0px;
+ border-radius: 9px;
+ padding-left: 4px;
+ padding-right: 4px;
+ animation: gradient_f 20s ease-in infinite;
+ transition: all 0.5s cubic-bezier(0.55, -0.68, 0.48, 1.682);
+ color: #fcba03;
}
#taskbar button:hover,
#workspaces button:hover {
- border-radius: 10px;
- color: #a6adc8;
- background-color: #ffeb8a;
- padding-left: 2px;
- padding-right: 2px;
- animation: gradient_f 20s ease-in infinite;
- transition: all 0.3s cubic-bezier(.55,-0.68,.48,1.682);
+ border-radius: 10px;
+ color: #a6adc8;
+ background-color: #ffeb8a;
+ padding-left: 2px;
+ padding-right: 2px;
+ animation: gradient_f 20s ease-in infinite;
+ transition: all 0.3s cubic-bezier(0.55, -0.68, 0.48, 1.682);
}
#workspaces button.persistent {
- color: #fcba03;
- border-radius: 10px;
+ color: #fcba03;
+ border-radius: 10px;
}
#taskbar button.active,
#workspaces button.active {
- color: black;
- background-color: #fcba03;
- border-radius: 10px;
- padding-left: 8px;
- padding-right: 8px;
- animation: gradient_f 20s ease-in infinite;
- transition: all 0.3s cubic-bezier(.55,-0.68,.48,1.682);
+ color: black;
+ background-color: #fcba03;
+ border-radius: 10px;
+ padding-left: 8px;
+ padding-right: 8px;
+ animation: gradient_f 20s ease-in infinite;
+ transition: all 0.3s cubic-bezier(0.55, -0.68, 0.48, 1.682);
}
#workspaces button.urgent {
- color: red;
- border-radius: 0px;
+ color: red;
+ border-radius: 0px;
}
-
#pulseaudio.muted {
color: red;
}
@@ -194,25 +192,25 @@ window#waybar.hidden {
#backlight-slider slider,
#pulseaudio-slider slider {
- min-width: 0px;
- min-height: 0px;
- opacity: 0;
- background-image: none;
- border: none;
- box-shadow: none;
+ min-width: 0px;
+ min-height: 0px;
+ opacity: 0;
+ background-image: none;
+ border: none;
+ box-shadow: none;
}
#backlight-slider trough,
#pulseaudio-slider trough {
- min-width: 80px;
- min-height: 5px;
- border-radius: 5px;
+ min-width: 80px;
+ min-height: 5px;
+ border-radius: 5px;
}
#backlight-slider highlight,
#pulseaudio-slider highlight {
- min-height: 10px;
- border-radius: 5px;
+ min-height: 10px;
+ border-radius: 5px;
}
/* --- tray readability override (global) --- */
diff --git a/config/waybar/style/Dark-Golden-Noir.css b/config/waybar/style/Dark-Golden-Noir.css
index edfd3c7f..d9b4c33c 100644
--- a/config/waybar/style/Dark-Golden-Noir.css
+++ b/config/waybar/style/Dark-Golden-Noir.css
@@ -3,101 +3,100 @@
/* --- 👍 designed by https://github.com/Krautt 👍 --- */
* {
- font-family: "JetBrainsMono Nerd Font";
- font-weight: bold;
- min-height: 0;
- /* set font-size to 100% if font scaling is set to 1.00 using nwg-look */
- /* NOTE: Waybar v14+ ignores % font-size values */
- font-size: 99%;
- font-feature-settings: '"zero", "ss01", "ss02", "ss03", "ss04", "ss05", "cv31"';
+ font-family: "JetBrainsMono Nerd Font";
+ font-weight: bold;
+ min-height: 0;
+ /* set font-size to 100% if font scaling is set to 1.00 using nwg-look */
+ /* NOTE: Waybar v14+ ignores % font-size values */
+ font-size: 99%;
+ font-feature-settings: '"zero", "ss01", "ss02", "ss03", "ss04", "ss05", "cv31"';
}
window#waybar {
- background: #040406;
- border-radius: 30px;
- color: #cba6f7;
+ background: #040406;
+ border-radius: 30px;
+ color: #cba6f7;
- /* Waybar scaling: adjust font-size to scale the bar */
- font-size: 14px;
+ /* Waybar scaling: adjust font-size to scale the bar */
+ font-size: 14px;
}
window#waybar.hidden {
- opacity: 0.5;
- /* Waybar scaling: adjust font-size to scale the bar */
- font-size: 14px;
+ opacity: 0.5;
+ /* Waybar scaling: adjust font-size to scale the bar */
+ font-size: 14px;
}
tooltip {
- background: #1e1e2e;
- border-radius: 10px;
- border-width: 2px;
- border-style: solid;
- border-color: #11111b;
- color: #ffd700;
+ background: #1e1e2e;
+ border-radius: 10px;
+ border-width: 2px;
+ border-style: solid;
+ border-color: #11111b;
+ color: #ffd700;
}
/*-----module groups----*/
.modules-left,
.modules-right {
- padding-top: 2px;
- padding-bottom: 2px;
- padding-right: 4px;
- padding-left: 4px;
-
+ padding-top: 2px;
+ padding-bottom: 2px;
+ padding-right: 4px;
+ padding-left: 4px;
}
.modules-center {
- border-left: 1px solid #ffd700;
- border-right: 1px solid #ffd700;
- border-radius: 20px;
- padding-top: 2px;
- padding-bottom: 2px;
- padding-right: 4px;
- padding-left: 4px;
+ border-left: 1px solid #ffd700;
+ border-right: 1px solid #ffd700;
+ border-radius: 20px;
+ padding-top: 2px;
+ padding-bottom: 2px;
+ padding-right: 4px;
+ padding-left: 4px;
}
#taskbar button,
#workspaces button {
- color: #6E6A86;
- box-shadow: none;
- text-shadow: none;
- padding: 0px;
- border-radius: 9px;
- padding-left: 4px;
- padding-right: 4px;
- animation: gradient_f 20s ease-in infinite;
- transition: all 0.5s cubic-bezier(.55,-0.68,.48,1.682);
+ color: #6e6a86;
+ box-shadow: none;
+ text-shadow: none;
+ padding: 0px;
+ border-radius: 9px;
+ padding-left: 4px;
+ padding-right: 4px;
+ animation: gradient_f 20s ease-in infinite;
+ transition: all 0.5s cubic-bezier(0.55, -0.68, 0.48, 1.682);
}
#taskbar button.active,
#workspaces button.active {
- color: #ffd700;
- border-radius: 50%;
- background-color: black;
- border-radius: 15px 15px 15px 15px;
- padding-left: 8px;
- padding-right: 8px;
- animation: gradient_f 20s ease-in infinite;
- transition: all 0.3s cubic-bezier(.55,-0.68,.48,1.682);
+ color: #ffd700;
+ border-radius: 50%;
+ background-color: black;
+ border-radius: 15px 15px 15px 15px;
+ padding-left: 8px;
+ padding-right: 8px;
+ animation: gradient_f 20s ease-in infinite;
+ transition: all 0.3s cubic-bezier(0.55, -0.68, 0.48, 1.682);
}
#workspaces button.focused {
- color: #d8dee9;
+ color: #d8dee9;
}
#workspaces button.urgent {
- color: #11111b;
- border-radius: 10px;
+ color: #11111b;
+ border-radius: 10px;
}
#taskbar button:hover,
#workspaces button:hover {
- color: #ffd700;
- border-radius: 15px;
- padding-left: 2px;
- padding-right: 2px;
- animation: gradient_f 20s ease-in infinite;
- transition: all 0.3s cubic-bezier(.55,-0.68,.48,1.682);
+ color: #ffd700;
+ border-radius: 15px;
+ padding-left: 2px;
+ padding-right: 2px;
+ animation: gradient_f 20s ease-in infinite;
+ transition: all 0.3s cubic-bezier(0.55, -0.68, 0.48, 1.682);
}
#backlight,
@@ -154,69 +153,69 @@ tooltip {
#custom-weather.clearNight,
#custom-weather.cloudyFoggyDay,
#custom-weather.cloudyFoggyNight,
-#custom-weather.default,
+#custom-weather.default,
#custom-weather.rainyDay,
#custom-weather.rainyNight,
#custom-weather.severe,
#custom-weather.showyIcyDay,
#custom-weather.snowyIcyNight,
#custom-weather.sunnyDay {
- color: #e5d9f5;
- padding-top: 5px;
- padding-bottom: 5px;
- padding-right: 6px;
- padding-left: 6px;
+ color: #e5d9f5;
+ padding-top: 5px;
+ padding-bottom: 5px;
+ padding-right: 6px;
+ padding-left: 6px;
}
#temperature.critical {
- background-color: #ff0000;
+ background-color: #ff0000;
}
@keyframes blink {
- to {
- color: #000000;
- }
+ to {
+ color: #000000;
+ }
}
/*-----Indicators----*/
#custom-hypridle.notactive,
#idle_inhibitor.activated {
- color: #39FF14;
- border-bottom: 8px solid rgba(0, 0, 0, 0.2);
+ color: #39ff14;
+ border-top: 8px solid rgba(0, 0, 0, 0.2);
}
#battery.critical:not(.charging) {
- color: #f53c3c;
- animation-name: blink;
- animation-duration: 3.0s;
- animation-timing-function: steps(12);
- animation-iteration-count: infinite;
- animation-direction: alternate;
+ color: #f53c3c;
+ animation-name: blink;
+ animation-duration: 3s;
+ animation-timing-function: steps(12);
+ animation-iteration-count: infinite;
+ animation-direction: alternate;
}
#backlight-slider slider,
#pulseaudio-slider slider {
- min-width: 0px;
- min-height: 0px;
- opacity: 0;
- background-image: none;
- border: none;
- box-shadow: none;
+ min-width: 0px;
+ min-height: 0px;
+ opacity: 0;
+ background-image: none;
+ border: none;
+ box-shadow: none;
}
#backlight-slider trough,
#pulseaudio-slider trough {
- min-width: 80px;
- min-height: 5px;
- border-radius: 5px;
- background-color: #22252a;
+ min-width: 80px;
+ min-height: 5px;
+ border-radius: 5px;
+ background-color: #22252a;
}
#backlight-slider highlight,
#pulseaudio-slider highlight {
- min-height: 10px;
- border-radius: 5px;
- background-color: #ba5663;
+ min-height: 10px;
+ border-radius: 5px;
+ background-color: #ba5663;
}
/* --- tray readability override (global) --- */
diff --git a/config/waybar/style/Dark-Half-Moon.css b/config/waybar/style/Dark-Half-Moon.css
index 797a1c68..776ffcc3 100644
--- a/config/waybar/style/Dark-Half-Moon.css
+++ b/config/waybar/style/Dark-Half-Moon.css
@@ -4,45 +4,46 @@
/* --- 👍 shared by https://github.com/TomekBobrowicz 👍 --- */
* {
- font-family: "JetBrainsMono Nerd Font";
- font-weight: bold;
- min-height: 0;
- /* set font-size to 100% if font scaling is set to 1.00 using nwg-look */
- /* NOTE: Waybar v14+ ignores % font-size values */
- font-size: 99%;
- font-feature-settings: '"zero", "ss01", "ss02", "ss03", "ss04", "ss05", "cv31"';
+ font-family: "JetBrainsMono Nerd Font";
+ font-weight: bold;
+ min-height: 0;
+ /* set font-size to 100% if font scaling is set to 1.00 using nwg-look */
+ /* NOTE: Waybar v14+ ignores % font-size values */
+ font-size: 99%;
+ font-feature-settings: '"zero", "ss01", "ss02", "ss03", "ss04", "ss05", "cv31"';
}
-
window#waybar {
- background-color: rgba(26,27,38,0);
- border-bottom: 1px solid rgba(26,27,38,0);
+ background-color: rgba(26, 27, 38, 0);
+ border-bottom: 1px solid rgba(26, 27, 38, 0);
border-radius: 0px;
- color: #E6B673;
+ color: #e6b673;
/* Waybar scaling: adjust font-size to scale the bar */
font-size: 14px;
}
-#waybar.empty, #waybar.tiled, #waybar.floating {
- background-color: transparent;
+#waybar.empty,
+#waybar.tiled,
+#waybar.floating {
+ background-color: transparent;
}
window#waybar.empty,
window#waybar.empty #window {
- background-color: transparent;
- /* Waybar scaling: adjust font-size to scale the bar */
- font-size: 14px;
+ background-color: transparent;
+ /* Waybar scaling: adjust font-size to scale the bar */
+ font-size: 14px;
}
#taskbar,
#workspaces {
- background: #0F1419;
+ background: #0f1419;
margin: 5px;
padding: 0px 1px;
border-radius: 15px;
border: 0px;
font-style: normal;
- color: #0F1419;
+ color: #0f1419;
}
#taskbar button,
@@ -51,10 +52,10 @@ window#waybar.empty #window {
margin: 4px 3px;
border-radius: 15px;
border: 0px;
- color: #0F1419;
- background: linear-gradient(45deg, #95E6CB, #59C2FF, #D2A6FF);
+ color: #0f1419;
+ background: linear-gradient(45deg, #95e6cb, #59c2ff, #d2a6ff);
opacity: 0.5;
- transition: all 0.3s cubic-bezier(.55,-0.68,.48,1.682);
+ transition: all 0.3s cubic-bezier(0.55, -0.68, 0.48, 1.682);
}
#taskbar button.active,
@@ -63,70 +64,69 @@ window#waybar.empty #window {
margin: 4px 3px;
border-radius: 15px;
border: 0px;
- color: #0F1419;
- background: linear-gradient(45deg, #59C2FF, #D2A6FF);
- opacity: 1.0;
+ color: #0f1419;
+ background: linear-gradient(45deg, #59c2ff, #d2a6ff);
+ opacity: 1;
min-width: 40px;
- transition: all 0.3s cubic-bezier(.55,-0.68,.48,1.682);
+ transition: all 0.3s cubic-bezier(0.55, -0.68, 0.48, 1.682);
}
#workspaces button:hover {
border-radius: 15px;
- color: #0F1419;
- background: linear-gradient(45deg, #59C2FF, #D2A6FF);
+ color: #0f1419;
+ background: linear-gradient(45deg, #59c2ff, #d2a6ff);
opacity: 0.8;
- transition: all 0.3s cubic-bezier(.55,-0.68,.48,1.682);
-
+ transition: all 0.3s cubic-bezier(0.55, -0.68, 0.48, 1.682);
}
@keyframes gradient_horizontal {
-0% {
- background-position: 0% 50%;
- }
-50% {
- background-position: 100% 50%;
- }
-100% {
- background-position: 0% 50%;
- }
+ 0% {
+ background-position: 0% 50%;
+ }
+ 50% {
+ background-position: 100% 50%;
+ }
+ 100% {
+ background-position: 0% 50%;
+ }
}
@keyframes swiping {
-0% {
- background-position: 0% 200%;
- }
-100% {
- background-position: 200% 200%;
- }
+ 0% {
+ background-position: 0% 200%;
+ }
+ 100% {
+ background-position: 200% 200%;
+ }
}
tooltip {
-background: #0F1419;
-border: 1px solid #D2A6FF;
-border-radius: 10px;
+ background: #0f1419;
+ border: 1px solid #d2a6ff;
+ border-radius: 10px;
}
/* Waybar scaling: adjust tooltip label font-size to scale the bar */
tooltip label {
-color: #F3F4F5;
-/* Waybar scaling: adjust tooltip label font-size to scale the bar */
-font-size: 14px;
+ color: #f3f4f5;
+ /* Waybar scaling: adjust tooltip label font-size to scale the bar */
+ font-size: 14px;
}
#window {
- color: #E6E1CF;
- background: #0F1419;
- border-radius: 50px 50px;
- margin: 5px;
- padding: 2px 15px;
+ color: #e6e1cf;
+ background: #0f1419;
+ border-radius: 50px 50px;
+ margin: 5px;
+ padding: 2px 15px;
}
#temperature,
#memory {
- color: #E6B673;
- background: #0F1419;
- border-radius: 50px 50px;
- margin: 5px;
- padding: 2px 15px;
+ color: #e6b673;
+ background: #0f1419;
+ border-radius: 50px 50px;
+ margin: 5px;
+ padding: 2px 15px;
}
#custom-light_dark,
@@ -137,205 +137,205 @@ font-size: 14px;
#custom-hypr_layout,
#idle_inhibitor,
#clock {
- color: #B8CC52;
- background: #0F1419;
- border-radius: 50px 50px;
- margin: 5px;
- padding: 2px 15px;
+ color: #b8cc52;
+ background: #0f1419;
+ border-radius: 50px 50px;
+ margin: 5px;
+ padding: 2px 15px;
}
/*-----Indicators----*/
#custom-hypridle.notactive,
#idle_inhibitor.activated {
- color: #39FF14;
- border-bottom: 1px solid rgba(26,27,38,0);
+ color: #39ff14;
+ border-top: 6px solid rgba(26, 27, 38, 0);
}
#bluetooth {
- color: blue;
- background: #0F1419;
- border-radius: 50px 50px;
- margin: 5px;
- padding: 2px 15px;
+ color: blue;
+ background: #0f1419;
+ border-radius: 50px 50px;
+ margin: 5px;
+ padding: 2px 15px;
}
#custom-playerctl,
#power-profiles-daemon,
#custom-cycle_wall,
#cpu {
- color: #F3F4F5;
- background: #0F1419;
- border-radius: 50px 50px;
- margin: 5px;
- padding: 2px 15px;
+ color: #f3f4f5;
+ background: #0f1419;
+ border-radius: 50px 50px;
+ margin: 5px;
+ padding: 2px 15px;
}
#disk {
- color: #B8CC52;
- background: #0F1419;
- border-radius: 50px 50px;
- margin: 5px;
- padding: 2px 15px;
+ color: #b8cc52;
+ background: #0f1419;
+ border-radius: 50px 50px;
+ margin: 5px;
+ padding: 2px 15px;
}
#backlight,
#battery {
- color: #F07178;
- background: #0F1419;
- border-radius: 50px 50px;
- margin: 5px;
- padding: 2px 15px;
+ color: #f07178;
+ background: #0f1419;
+ border-radius: 50px 50px;
+ margin: 5px;
+ padding: 2px 15px;
}
#mpris {
- color: #F07178;
- background: #0F1419;
- border-radius: 50px 50px;
- margin: 5px;
- padding-left: 8px;
- padding-right: 2px;
+ color: #f07178;
+ background: #0f1419;
+ border-radius: 50px 50px;
+ margin: 5px;
+ padding-left: 8px;
+ padding-right: 2px;
}
#backlight {
- color: white;
- background: #0F1419;
- border-radius: 50px 50px;
- margin: 5px;
- padding: 2px 15px;
+ color: white;
+ background: #0f1419;
+ border-radius: 50px 50px;
+ margin: 5px;
+ padding: 2px 15px;
}
#network {
- color: #FF8F40;
- background: #0F1419;
- border-radius: 50px 50px;
- margin: 5px;
- padding: 2px 15px;
+ color: #ff8f40;
+ background: #0f1419;
+ border-radius: 50px 50px;
+ margin: 5px;
+ padding: 2px 15px;
}
#custom-hyprbindings {
- color: #D2A6FF;
- background: #0F1419;
- background: #0F1419;
- border-radius: 50px 50px;
- margin: 5px;
- padding: 2px 15px;
+ color: #d2a6ff;
+ background: #0f1419;
+ background: #0f1419;
+ border-radius: 50px 50px;
+ margin: 5px;
+ padding: 2px 15px;
}
#tray {
- color: #E6E1CF;
- background: #0F1419;
- border-radius: 50px 50px;
- margin: 5px;
- padding: 2px 15px;
+ color: #e6e1cf;
+ background: #0f1419;
+ border-radius: 50px 50px;
+ margin: 5px;
+ padding: 2px 15px;
}
#pulseaudio {
- color: #59C2FF;
- background: #0F1419;
- border-radius: 50px 50px;
- margin: 5px;
- padding: 2px 15px;
+ color: #59c2ff;
+ background: #0f1419;
+ border-radius: 50px 50px;
+ margin: 5px;
+ padding: 2px 15px;
}
#custom-notification {
- color: #95E6CB;
- background: #0F1419;
- border-radius: 50px 50px;
- margin: 5px;
- padding: 2px 15px;
+ color: #95e6cb;
+ background: #0f1419;
+ border-radius: 50px 50px;
+ margin: 5px;
+ padding: 2px 15px;
}
#custom-browser,
#custom-file_manager,
#custom-tty,
#custom-settings {
- border-radius: 50px 50px;
- margin: 5px;
- padding: 2px 15px;
- color: #0F1419;
- background: linear-gradient(45deg, #95E6CB, #59C2FF, #D2A6FF);
+ border-radius: 50px 50px;
+ margin: 5px;
+ padding: 2px 15px;
+ color: #0f1419;
+ background: linear-gradient(45deg, #95e6cb, #59c2ff, #d2a6ff);
}
#custom-weather {
- color: #59C2FF;
- background: #0F1419;
- border-radius: 50px 50px;
- margin: 5px;
- padding: 2px 15px;
+ color: #59c2ff;
+ background: #0f1419;
+ border-radius: 50px 50px;
+ margin: 5px;
+ padding: 2px 15px;
}
#custom-weather2 {
- color: #59C2FF;
- background: #0F1419;
- border-radius: 50px 50px;
- margin: 5px;
- padding: 2px 15px;
+ color: #59c2ff;
+ background: #0f1419;
+ border-radius: 50px 50px;
+ margin: 5px;
+ padding: 2px 15px;
}
#custom-menu {
- color: #59C2FF;
- background: #0F1419;
- border-radius: 0px 15px 50px 0px;
- margin: 5px 5px 5px 0px;
- padding: 1px 15px;
+ color: #59c2ff;
+ background: #0f1419;
+ border-radius: 0px 15px 50px 0px;
+ margin: 5px 5px 5px 0px;
+ padding: 1px 15px;
}
#custom-power {
- color: #D2A6FF;
- background: #0F1419;
- border-radius: 15px 0px 0px 50px;
- margin: 5px 0px;
- padding: 2px 5px 2px 15px;
-}
+ color: #d2a6ff;
+ background: #0f1419;
+ border-radius: 15px 0px 0px 50px;
+ margin: 5px 0px;
+ padding: 2px 5px 2px 15px;
+}
#custom-lock {
- color: red;
- background: #0F1419;
- border-radius: 50px 50px;
- margin: 5px;
- padding: 2px 15px;
+ color: red;
+ background: #0f1419;
+ border-radius: 50px 50px;
+ margin: 5px;
+ padding: 2px 15px;
}
#custom-power_vertical,
#keyboard-state {
- color: green;
- background: #0F1419;
- border-radius: 50px 50px;
- margin: 5px;
- padding: 2px 15px;
+ color: green;
+ background: #0f1419;
+ border-radius: 50px 50px;
+ margin: 5px;
+ padding: 2px 15px;
}
#battery.critical:not(.charging) {
- color: #f53c3c;
- animation-name: blink;
- animation-duration: 3.0s;
- animation-timing-function: steps(12);
- animation-iteration-count: infinite;
- animation-direction: alternate;
+ color: #f53c3c;
+ animation-name: blink;
+ animation-duration: 3s;
+ animation-timing-function: steps(12);
+ animation-iteration-count: infinite;
+ animation-direction: alternate;
}
#backlight-slider slider,
#pulseaudio-slider slider {
- min-width: 0px;
- min-height: 0px;
- opacity: 0;
- background-image: none;
- border: none;
- box-shadow: none;
+ min-width: 0px;
+ min-height: 0px;
+ opacity: 0;
+ background-image: none;
+ border: none;
+ box-shadow: none;
}
#backlight-slider trough,
#pulseaudio-slider trough {
- min-width: 80px;
- min-height: 5px;
- border-radius: 5px;
- background-color: #6E6A86;
+ min-width: 80px;
+ min-height: 5px;
+ border-radius: 5px;
+ background-color: #6e6a86;
}
#backlight-slider highlight,
#pulseaudio-slider highlight {
- min-height: 10px;
- border-radius: 5px;
- background-color: purple;
+ min-height: 10px;
+ border-radius: 5px;
+ background-color: purple;
}
/* --- tray readability override (global) --- */
diff --git a/config/waybar/style/Dark-Latte-Wallust-combined.css b/config/waybar/style/Dark-Latte-Wallust-combined.css
index 898c3dc2..7f698cb5 100644
--- a/config/waybar/style/Dark-Latte-Wallust-combined.css
+++ b/config/waybar/style/Dark-Latte-Wallust-combined.css
@@ -17,106 +17,106 @@
@define-color button-color @color11;
@define-color button-hover @color13;
-@import '../../.config/waybar/wallust/colors-waybar.css';
+@import "../../.config/waybar/wallust/colors-waybar.css";
@import "../waybar/style/catppuccin-themes/latte.css";
* {
- font-family: "JetBrainsMono Nerd Font";
- font-weight: bold;
- min-height: 0;
- /* set font-size to 100% if font scaling is set to 1.00 using nwg-look */
- /* NOTE: Waybar v14+ ignores % font-size values */
- font-size: 99%;
- font-feature-settings: '"zero", "ss01", "ss02", "ss03", "ss04", "ss05", "cv31"';
+ font-family: "JetBrainsMono Nerd Font";
+ font-weight: bold;
+ min-height: 0;
+ /* set font-size to 100% if font scaling is set to 1.00 using nwg-look */
+ /* NOTE: Waybar v14+ ignores % font-size values */
+ font-size: 99%;
+ font-feature-settings: '"zero", "ss01", "ss02", "ss03", "ss04", "ss05", "cv31"';
}
window#waybar {
- background: transparent;
- border-radius: 0px;
- color: #cba6f7;
- /* Waybar scaling: adjust font-size to scale the bar */
- font-size: 14px;
+ background: transparent;
+ border-radius: 0px;
+ color: #cba6f7;
+ /* Waybar scaling: adjust font-size to scale the bar */
+ font-size: 14px;
}
window#waybar.hidden {
- opacity: 0;
- /* Waybar scaling: adjust font-size to scale the bar */
- font-size: 14px;
+ opacity: 0;
+ /* Waybar scaling: adjust font-size to scale the bar */
+ font-size: 14px;
}
tooltip {
- background: #1e1e2e;
- border-radius: 12px;
- border-width: 1px;
- border-style: solid;
- border-color: @border-color;
- color: #ffffff;
+ background: #1e1e2e;
+ border-radius: 12px;
+ border-width: 1px;
+ border-style: solid;
+ border-color: @border-color;
+ color: #ffffff;
}
/*-----module groups----*/
.modules-left,
.modules-center,
.modules-right {
- background-color: @background-module;
- border-radius:15px;
- border-bottom:2px solid @border-color;
- padding-top: 2px;
- padding-bottom: 0px;
- padding-right: 4px;
- padding-left: 4px;
+ background-color: @background-module;
+ border-radius: 15px;
+ border-bottom: 2px solid @border-color;
+ padding-top: 2px;
+ padding-bottom: 0px;
+ padding-right: 4px;
+ padding-left: 4px;
}
#workspaces {
- padding: 0px 1px;
- border-radius: 15px;
- border:2px solid @border-color;
- font-weight: bold;
- font-style: normal;
- opacity: 1;
- color:#FFFFFF;
+ padding: 0px 1px;
+ border-radius: 15px;
+ border: 2px solid @border-color;
+ font-weight: bold;
+ font-style: normal;
+ opacity: 1;
+ color: #ffffff;
}
-#taskbar button,
+#taskbar button,
#workspaces button {
- color: @color15;
- box-shadow: none;
- text-shadow: none;
- border-radius: 30px;
- padding-left: 4px;
- padding-right: 4px;
- animation: gradient_f 20s ease-in infinite;
- transition: all 0.5s cubic-bezier(.55,-0.68,.48,1.682);
+ color: @color15;
+ box-shadow: none;
+ text-shadow: none;
+ border-radius: 30px;
+ padding-left: 4px;
+ padding-right: 4px;
+ animation: gradient_f 20s ease-in infinite;
+ transition: all 0.5s cubic-bezier(0.55, -0.68, 0.48, 1.682);
}
#taskbar button.active,
#workspaces button.active {
- color: #ffd700;
- border-radius: 50%;
- background-color: black;
- border-radius: 15px 15px 15px 15px;
- padding-left: 8px;
- padding-right: 8px;
- animation: gradient_f 20s ease-in infinite;
- transition: all 0.3s cubic-bezier(.55,-0.68,.48,1.682);
+ color: #ffd700;
+ border-radius: 50%;
+ background-color: black;
+ border-radius: 15px 15px 15px 15px;
+ padding-left: 8px;
+ padding-right: 8px;
+ animation: gradient_f 20s ease-in infinite;
+ transition: all 0.3s cubic-bezier(0.55, -0.68, 0.48, 1.682);
}
#workspaces button.focused {
- color: #d8dee9;
+ color: #d8dee9;
}
#workspaces button.urgent {
- color: #11111b;
- border-radius: 10px;
+ color: #11111b;
+ border-radius: 10px;
}
#taskbar button:hover,
#workspaces button:hover {
- color: #ffd700;
- border-radius: 10px;
- padding-left: 2px;
- padding-right: 2px;
- animation: gradient_f 20s ease-in infinite;
- transition: all 0.3s cubic-bezier(.55,-0.68,.48,1.682);
+ color: #ffd700;
+ border-radius: 10px;
+ padding-left: 2px;
+ padding-right: 2px;
+ animation: gradient_f 20s ease-in infinite;
+ transition: all 0.3s cubic-bezier(0.55, -0.68, 0.48, 1.682);
}
#backlight,
@@ -173,120 +173,122 @@ tooltip {
#custom-weather.clearNight,
#custom-weather.cloudyFoggyDay,
#custom-weather.cloudyFoggyNight,
-#custom-weather.default,
+#custom-weather.default,
#custom-weather.rainyDay,
#custom-weather.rainyNight,
#custom-weather.severe,
#custom-weather.showyIcyDay,
#custom-weather.snowyIcyNight,
#custom-weather.sunnyDay {
- color: #e5d9f5;
- padding-right: 6px;
- padding-left: 6px;;
+ color: #e5d9f5;
+ padding-right: 6px;
+ padding-left: 6px;
}
#temperature.critical {
- background-color: #ff0000;
+ background-color: #ff0000;
}
@keyframes blink {
- to {
- color: #000000;
- }
+ to {
+ color: #000000;
+ }
}
#backlight-slider slider,
#pulseaudio-slider slider {
- min-width: 0px;
- min-height: 0px;
- opacity: 0;
- background-image: none;
- border: none;
- box-shadow: none;
+ min-width: 0px;
+ min-height: 0px;
+ opacity: 0;
+ background-image: none;
+ border: none;
+ box-shadow: none;
}
#backlight-slider trough,
#pulseaudio-slider trough {
- min-width: 80px;
- min-height: 5px;
- border-radius: 5px;
- background-color: #22252a;
+ min-width: 80px;
+ min-height: 5px;
+ border-radius: 5px;
+ background-color: #22252a;
}
#backlight-slider highlight,
#pulseaudio-slider highlight {
- min-height: 10px;
- border-radius: 5px;
- background-color: #ba5663;
+ min-height: 10px;
+ border-radius: 5px;
+ background-color: #ba5663;
}
#pulseaudio-slider,
#pulseaudio {
- color: @color13;
+ color: @color13;
}
#pulseaudio.muted {
- color: red;
+ color: red;
}
#memory {
- color: @sapphire;
+ color: @sapphire;
}
#cpu {
- color: @mauve;
+ color: @mauve;
}
#battery {
- color: @rosewater;
+ color: @rosewater;
}
#disk {
- color: @sky;
+ color: @sky;
}
#temperature.critical {
- background-color: @red;
+ background-color: @red;
}
#battery.critical:not(.charging) {
- color: #f53c3c;
- animation-name: blink;
- animation-duration: 3.0s;
- animation-timing-function: steps(12);
- animation-iteration-count: infinite;
- animation-direction: alternate;
+ color: #f53c3c;
+ animation-name: blink;
+ animation-duration: 3s;
+ animation-timing-function: steps(12);
+ animation-iteration-count: infinite;
+ animation-direction: alternate;
}
#custom-hypridle,
#custom-lock,
#idle_inhibitor {
- color: @teal;
- border-bottom: 8px solid rgba(0, 0, 0, 0.2);
+ color: @teal;
+ padding-top: 8px;
+ border-bottom: 8px solid rgba(0, 0, 0, 0);
}
/*-----Indicators----*/
#custom-hypridle.notactive,
#idle_inhibitor.activated {
- color: #39FF14;
- border-bottom: 8px solid rgba(0, 0, 0, 0.2);
+ color: #39ff14;
+ padding-top: 8px;
+ border-bottom: 8px solid rgba(0, 0, 0, 0);
}
-
#clock#2 {
- color: #efe8f7;
+ color: #efe8f7;
}
#clock {
- color: @sapphire;
- border-radius: 15px;
- border:2px solid @border-color;
+ color: @sapphire;
+ border-radius: 15px;
+ border: 2px solid @border-color;
}
#custom-updates {
- color: @yellow;
+ color: @yellow;
+}
+#swaync {
+ color: #ffd700;
}
-#swaync{
- color: #ffd700;}
/* --- tray readability override (global) --- */
#tray > *,
diff --git a/config/waybar/style/Dark-Purpl.css b/config/waybar/style/Dark-Purpl.css
index 9fa8f628..586aca3b 100644
--- a/config/waybar/style/Dark-Purpl.css
+++ b/config/waybar/style/Dark-Purpl.css
@@ -3,105 +3,105 @@
/* --- 👍 designed by https://github.com/Krautt 👍 --- */
* {
- font-family: "JetBrainsMono Nerd Font";
- font-weight: bold;
- min-height: 0;
- /* set font-size to 100% if font scaling is set to 1.00 using nwg-look */
- /* NOTE: Waybar v14+ ignores % font-size values */
- font-size: 99%;
- font-feature-settings: '"zero", "ss01", "ss02", "ss03", "ss04", "ss05", "cv31"';
+ font-family: "JetBrainsMono Nerd Font";
+ font-weight: bold;
+ min-height: 0;
+ /* set font-size to 100% if font scaling is set to 1.00 using nwg-look */
+ /* NOTE: Waybar v14+ ignores % font-size values */
+ font-size: 99%;
+ font-feature-settings: '"zero", "ss01", "ss02", "ss03", "ss04", "ss05", "cv31"';
}
window#waybar {
- background: #100214;
- color: #cba6f7;
- /* Waybar scaling: adjust font-size to scale the bar */
- font-size: 14px;
+ background: #100214;
+ color: #cba6f7;
+ /* Waybar scaling: adjust font-size to scale the bar */
+ font-size: 14px;
}
window#waybar.hidden {
- opacity: 0.5;
- /* Waybar scaling: adjust font-size to scale the bar */
- font-size: 14px;
+ opacity: 0.5;
+ /* Waybar scaling: adjust font-size to scale the bar */
+ font-size: 14px;
}
tooltip {
- background: #1e1e2e;
- border-radius: 10px;
- border-width: 2px;
- border-style: solid;
- border-color: #11111b;
- color: #cba6f7;
+ background: #1e1e2e;
+ border-radius: 10px;
+ border-width: 2px;
+ border-style: solid;
+ border-color: #11111b;
+ color: #cba6f7;
}
/*-----module groups----*/
.modules-right {
- border: 3px solid #20052a;
- border-radius: 100px 0px 0px 0px;
- background-color: #3d174b;
- padding-top: 2px;
- padding-bottom: 2px;
- padding-right: 5px;
- padding-left: 5px;
+ border: 3px solid #20052a;
+ border-radius: 100px 0px 0px 0px;
+ background-color: #3d174b;
+ padding-top: 2px;
+ padding-bottom: 2px;
+ padding-right: 5px;
+ padding-left: 5px;
}
.modules-center {
- padding-top: 2px;
- padding-bottom: 2px;
- padding-right: 4px;
- padding-left: 4px;
+ padding-top: 2px;
+ padding-bottom: 2px;
+ padding-right: 4px;
+ padding-left: 4px;
}
.modules-left {
- /*background-color: #1e1e2e;*/
- border: 3px solid #20052a;
- border-radius: 0px 0px 100px 0px;
- background-color: #441a53;
- padding-top: 2px;
- padding-bottom: 2px;
- padding-right: 5px;
- padding-left: 5px;
+ /*background-color: #1e1e2e;*/
+ border: 3px solid #20052a;
+ border-radius: 0px 0px 100px 0px;
+ background-color: #441a53;
+ padding-top: 2px;
+ padding-bottom: 2px;
+ padding-right: 5px;
+ padding-left: 5px;
}
#taskbar button,
#workspaces button {
- color: #6E6A86;
- box-shadow: none;
- text-shadow: none;
- padding: 0px;
- border-radius: 9px;
- padding-left: 4px;
- padding-right: 4px;
- animation: gradient_f 20s ease-in infinite;
- transition: all 0.5s cubic-bezier(.55,-0.68,.48,1.682);
+ color: #6e6a86;
+ box-shadow: none;
+ text-shadow: none;
+ padding: 0px;
+ border-radius: 9px;
+ padding-left: 4px;
+ padding-right: 4px;
+ animation: gradient_f 20s ease-in infinite;
+ transition: all 0.5s cubic-bezier(0.55, -0.68, 0.48, 1.682);
}
#workspaces button.active {
- color: #cba6f7;
- border-radius: 20%;
- background-color: black;
- padding-left: 8px;
- padding-right: 8px;
- animation: gradient_f 20s ease-in infinite;
- transition: all 0.3s cubic-bezier(.55,-0.68,.48,1.682);
+ color: #cba6f7;
+ border-radius: 20%;
+ background-color: black;
+ padding-left: 8px;
+ padding-right: 8px;
+ animation: gradient_f 20s ease-in infinite;
+ transition: all 0.3s cubic-bezier(0.55, -0.68, 0.48, 1.682);
}
#workspaces button.focused {
- color: #d8dee9;
+ color: #d8dee9;
}
#workspaces button.urgent {
- color: #11111b;
- border-radius: 10px;
+ color: #11111b;
+ border-radius: 10px;
}
#workspaces button:hover {
- color: #9CCFD8;
- border-radius: 15px;
- padding-left: 2px;
- padding-right: 2px;
- animation: gradient_f 20s ease-in infinite;
- transition: all 0.3s cubic-bezier(.55,-0.68,.48,1.682);
+ color: #9ccfd8;
+ border-radius: 15px;
+ padding-left: 2px;
+ padding-right: 2px;
+ animation: gradient_f 20s ease-in infinite;
+ transition: all 0.3s cubic-bezier(0.55, -0.68, 0.48, 1.682);
}
#backlight,
@@ -158,84 +158,84 @@ tooltip {
#custom-weather.clearNight,
#custom-weather.cloudyFoggyDay,
#custom-weather.cloudyFoggyNight,
-#custom-weather.default,
+#custom-weather.default,
#custom-weather.rainyDay,
#custom-weather.rainyNight,
#custom-weather.severe,
#custom-weather.showyIcyDay,
#custom-weather.snowyIcyNight,
#custom-weather.sunnyDay {
- color: whitesmoke;
- padding-top: 4px;
- padding-bottom: 4px;
- padding-right: 6px;
- padding-left: 6px;
+ color: whitesmoke;
+ padding-top: 4px;
+ padding-bottom: 4px;
+ padding-right: 6px;
+ padding-left: 6px;
}
#temperature.critical {
- background-color: #ff0000;
+ background-color: #ff0000;
}
@keyframes blink {
- to {
- color: #000000;
- }
+ to {
+ color: #000000;
+ }
}
/*-----Indicators----*/
#custom-hypridle.notactive,
#idle_inhibitor.activated {
- color: #39FF14;
- border-bottom: 8px solid rgba(0, 0, 0, 0.2);
+ color: #39ff14;
+ border-top: 8px solid rgba(0, 0, 0, 0.2);
}
#taskbar button.active {
- background-color: purple;
- padding-left: 12px;
- padding-right: 12px;
- animation: gradient_f 20s ease-in infinite;
- transition: all 0.3s cubic-bezier(.55,-0.68,.48,1.682);
+ background-color: purple;
+ padding-left: 12px;
+ padding-right: 12px;
+ animation: gradient_f 20s ease-in infinite;
+ transition: all 0.3s cubic-bezier(0.55, -0.68, 0.48, 1.682);
}
#taskbar button:hover {
- padding-left: 3px;
- padding-right: 3px;
- animation: gradient_f 20s ease-in infinite;
- transition: all 0.3s cubic-bezier(.55,-0.68,.48,1.682);
+ padding-left: 3px;
+ padding-right: 3px;
+ animation: gradient_f 20s ease-in infinite;
+ transition: all 0.3s cubic-bezier(0.55, -0.68, 0.48, 1.682);
}
#battery.critical:not(.charging) {
- color: #f53c3c;
- animation-name: blink;
- animation-duration: 3.0s;
- animation-timing-function: steps(12);
- animation-iteration-count: infinite;
- animation-direction: alternate;
+ color: #f53c3c;
+ animation-name: blink;
+ animation-duration: 3s;
+ animation-timing-function: steps(12);
+ animation-iteration-count: infinite;
+ animation-direction: alternate;
}
#backlight-slider slider,
#pulseaudio-slider slider {
- min-width: 0px;
- min-height: 0px;
- opacity: 0;
- background-image: none;
- border: none;
- box-shadow: none;
+ min-width: 0px;
+ min-height: 0px;
+ opacity: 0;
+ background-image: none;
+ border: none;
+ box-shadow: none;
}
#backlight-slider trough,
#pulseaudio-slider trough {
- min-width: 80px;
- min-height: 5px;
- border-radius: 5px;
- background-color: #6E6A86;
+ min-width: 80px;
+ min-height: 5px;
+ border-radius: 5px;
+ background-color: #6e6a86;
}
#backlight-slider highlight,
#pulseaudio-slider highlight {
- min-height: 10px;
- border-radius: 5px;
- background-color: purple;
+ min-height: 10px;
+ border-radius: 5px;
+ background-color: purple;
}
/* --- tray readability override (global) --- */
diff --git a/config/waybar/style/Dark-Wallust-Obsidian-Edge.css b/config/waybar/style/Dark-Wallust-Obsidian-Edge.css
index 84199a7e..dc255123 100644
--- a/config/waybar/style/Dark-Wallust-Obsidian-Edge.css
+++ b/config/waybar/style/Dark-Wallust-Obsidian-Edge.css
@@ -1,96 +1,96 @@
/* ---- 💫 https://github.com/LinuxBeginnings 💫 ---- */
/* Dark - Obsidian Edge */
-@import '../../.config/waybar/wallust/colors-waybar.css';
+@import "../../.config/waybar/wallust/colors-waybar.css";
* {
-font-family: "JetBrainsMono Nerd Font";
-font-weight: bold;
-min-height: 0;
-/* set font-size to 100% if font scaling is set to 1.00 using nwg-look */
-/* NOTE: Waybar v14+ ignores % font-size values */
-font-size: 99%;
-font-feature-settings: '"zero", "ss01", "ss02", "ss03", "ss04", "ss05", "cv31"';
+ font-family: "JetBrainsMono Nerd Font";
+ font-weight: bold;
+ min-height: 0;
+ /* set font-size to 100% if font scaling is set to 1.00 using nwg-look */
+ /* NOTE: Waybar v14+ ignores % font-size values */
+ font-size: 99%;
+ font-feature-settings: '"zero", "ss01", "ss02", "ss03", "ss04", "ss05", "cv31"';
}
window#waybar {
- background: black;
- border-radius: 12px;
- /* Waybar scaling: adjust font-size to scale the bar */
- font-size: 14px;
+ background: black;
+ border-radius: 12px;
+ /* Waybar scaling: adjust font-size to scale the bar */
+ font-size: 14px;
}
window#waybar.hidden {
- opacity: 0.5;
- /* Waybar scaling: adjust font-size to scale the bar */
- font-size: 14px;
+ opacity: 0.5;
+ /* Waybar scaling: adjust font-size to scale the bar */
+ font-size: 14px;
}
tooltip {
- color: @foreground;
- background: rgba(0, 0, 0, 0.8);
- border-radius: 10px;
+ color: @foreground;
+ background: rgba(0, 0, 0, 0.8);
+ border-radius: 10px;
}
/* Waybar scaling: adjust tooltip label font-size to scale the bar */
tooltip label {
- color: @foreground;
- padding-right: 2px;
- padding-left: 2px;
- /* Waybar scaling: adjust tooltip label font-size to scale the bar */
- font-size: 14px;
+ color: @foreground;
+ padding-right: 2px;
+ padding-left: 2px;
+ /* Waybar scaling: adjust tooltip label font-size to scale the bar */
+ font-size: 14px;
}
/*-----module groups----*/
.modules-left,
.modules-center,
.modules-right {
- border: 0px solid #b4befe;
- border-radius: 10px;
- padding-top: 2px;
- padding-bottom: 2px;
- padding-right: 4px;
- padding-left: 4px;
+ border: 0px solid #b4befe;
+ border-radius: 10px;
+ padding-top: 2px;
+ padding-bottom: 2px;
+ padding-right: 4px;
+ padding-left: 4px;
}
#taskbar button,
#workspaces button {
- color: @color12;
- box-shadow: none;
- text-shadow: none;
- padding: 4px;
- border-radius: 9px;
- animation: gradient_f 20s ease-in infinite;
- transition: all 0.5s cubic-bezier(.55,-0.68,.48,1.682);
+ color: @color12;
+ box-shadow: none;
+ text-shadow: none;
+ padding: 4px;
+ border-radius: 9px;
+ animation: gradient_f 20s ease-in infinite;
+ transition: all 0.5s cubic-bezier(0.55, -0.68, 0.48, 1.682);
}
#taskbar button.active,
#workspaces button.active {
- color: @foreground;
- border-radius: 15px 15px 15px 15px;
- padding-left: 8px;
- padding-right: 8px;
- animation: gradient_f 20s ease-in infinite;
- transition: all 0.3s cubic-bezier(.55,-0.68,.48,1.682);
+ color: @foreground;
+ border-radius: 15px 15px 15px 15px;
+ padding-left: 8px;
+ padding-right: 8px;
+ animation: gradient_f 20s ease-in infinite;
+ transition: all 0.3s cubic-bezier(0.55, -0.68, 0.48, 1.682);
}
#workspaces button.focused {
- color: #d8dee9;
+ color: #d8dee9;
}
#workspaces button.urgent {
- color: #11111b;
- border-radius: 10px;
+ color: #11111b;
+ border-radius: 10px;
}
#taskbar button:hover,
#workspaces button:hover {
- color: @color9;
- border-radius: 15px;
- padding-left: 2px;
- padding-right: 2px;
- animation: gradient_f 20s ease-in infinite;
- transition: all 0.3s cubic-bezier(.55,-0.68,.48,1.682);
+ color: @color9;
+ border-radius: 15px;
+ padding-left: 2px;
+ padding-right: 2px;
+ animation: gradient_f 20s ease-in infinite;
+ transition: all 0.3s cubic-bezier(0.55, -0.68, 0.48, 1.682);
}
#backlight,
@@ -147,68 +147,68 @@ tooltip label {
#custom-weather.clearNight,
#custom-weather.cloudyFoggyDay,
#custom-weather.cloudyFoggyNight,
-#custom-weather.default,
+#custom-weather.default,
#custom-weather.rainyDay,
#custom-weather.rainyNight,
#custom-weather.severe,
#custom-weather.showyIcyDay,
#custom-weather.snowyIcyNight,
#custom-weather.sunnyDay {
- color: @foreground;
- border-radius: 8px;
- padding-top: 5px;
- padding-bottom: 5px;
- padding-right: 6px;
- padding-left: 6px;
+ color: @foreground;
+ border-radius: 8px;
+ padding-top: 5px;
+ padding-bottom: 5px;
+ padding-right: 6px;
+ padding-left: 6px;
}
#temperature.critical {
- background-color: #ff0000;
+ background-color: #ff0000;
}
@keyframes blink {
- to {
- color: #000000;
- }
+ to {
+ color: #000000;
+ }
}
/*-----Indicators----*/
#custom-hypridle.notactive,
#idle_inhibitor.activated {
- color: #39FF14;
- border-bottom: 8px solid rgba(0, 0, 0, 0.2);
+ color: #39ff14;
+ border-top: 8px solid rgba(0, 0, 0, 0.2);
}
#battery.critical:not(.charging) {
- color: #f53c3c;
- animation-name: blink;
- animation-duration: 3.0s;
- animation-timing-function: steps(12);
- animation-iteration-count: infinite;
- animation-direction: alternate;
+ color: #f53c3c;
+ animation-name: blink;
+ animation-duration: 3s;
+ animation-timing-function: steps(12);
+ animation-iteration-count: infinite;
+ animation-direction: alternate;
}
#backlight-slider slider,
#pulseaudio-slider slider {
- min-width: 0px;
- min-height: 0px;
- opacity: 0;
- background-image: none;
- border: none;
- box-shadow: none;
+ min-width: 0px;
+ min-height: 0px;
+ opacity: 0;
+ background-image: none;
+ border: none;
+ box-shadow: none;
}
#backlight-slider trough,
#pulseaudio-slider trough {
- min-width: 80px;
- min-height: 5px;
- border-radius: 5px;
+ min-width: 80px;
+ min-height: 5px;
+ border-radius: 5px;
}
#backlight-slider highlight,
#pulseaudio-slider highlight {
- min-height: 10px;
- border-radius: 5px;
+ min-height: 10px;
+ border-radius: 5px;
}
/* --- tray readability override (global) --- */
diff --git a/config/waybar/style/Extra-Crimson.css b/config/waybar/style/Extra-Crimson.css
index 3a326a02..fbfb80cf 100644
--- a/config/waybar/style/Extra-Crimson.css
+++ b/config/waybar/style/Extra-Crimson.css
@@ -2,90 +2,90 @@
/* ..........Crimson.................. */
/* --- 👍 designed by https://github.com/Krautt 👍 --- */
-*{
-font-family: "JetBrainsMono Nerd Font";
-font-weight: bold;
-/* set font-size to 100% if font scaling is set to 1.00 using nwg-look */
-/* NOTE: Waybar v14+ ignores % font-size values */
-font-size: 99%;
-font-feature-settings: '"zero", "ss01", "ss02", "ss03", "ss04", "ss05", "cv31"';
+* {
+ font-family: "JetBrainsMono Nerd Font";
+ font-weight: bold;
+ /* set font-size to 100% if font scaling is set to 1.00 using nwg-look */
+ /* NOTE: Waybar v14+ ignores % font-size values */
+ font-size: 99%;
+ font-feature-settings: '"zero", "ss01", "ss02", "ss03", "ss04", "ss05", "cv31"';
}
-
+
window#waybar {
- background: #240303;
- color: wheat;
- border-radius: 0px 0px 100px 100px;
- border: 1px solid grey;
- /* Waybar scaling: adjust font-size to scale the bar */
- font-size: 14px;
+ background: #240303;
+ color: wheat;
+ border-radius: 0px 0px 100px 100px;
+ border: 1px solid grey;
+ /* Waybar scaling: adjust font-size to scale the bar */
+ font-size: 14px;
}
-
+
window#waybar.hidden {
- opacity: 0.5;
- /* Waybar scaling: adjust font-size to scale the bar */
- font-size: 14px;
-}
+ opacity: 0.5;
+ /* Waybar scaling: adjust font-size to scale the bar */
+ font-size: 14px;
+}
tooltip {
- background: #240303;
- border-radius: 10px;
- border-width: 2px;
- border-style: solid;
- border-color: #11111b;
- color: wheat;
+ background: #240303;
+ border-radius: 10px;
+ border-width: 2px;
+ border-style: solid;
+ border-color: #11111b;
+ color: wheat;
}
/*-----module groups----*/
.modules-left,
.modules-center,
.modules-right {
- padding-top: 2px;
- padding-bottom: 2px;
- padding-right: 4px;
- padding-left: 4px;
+ padding-top: 2px;
+ padding-bottom: 2px;
+ padding-right: 4px;
+ padding-left: 4px;
}
#taskbar button,
#workspaces button {
- color: wheat;
- box-shadow: none;
- text-shadow: none;
- padding: 4px;
- border-radius: 9px;
- animation: gradient_f 20s ease-in infinite;
- transition: all 0.5s cubic-bezier(.55,-0.68,.48,1.682);
+ color: wheat;
+ box-shadow: none;
+ text-shadow: none;
+ padding: 4px;
+ border-radius: 9px;
+ animation: gradient_f 20s ease-in infinite;
+ transition: all 0.5s cubic-bezier(0.55, -0.68, 0.48, 1.682);
}
-#taskbar button.active,
+#taskbar button.active,
#workspaces button.active {
- color: rgb(108, 18, 18);
- background-color: #000000;
- border: 1px solid grey;
- border-radius: 15px 15px 15px 15px;
- padding-left: 8px;
- padding-right: 8px;
- animation: gradient_f 20s ease-in infinite;
- transition: all 0.3s cubic-bezier(.55,-0.68,.48,1.682);
+ color: rgb(108, 18, 18);
+ background-color: #000000;
+ border: 1px solid grey;
+ border-radius: 15px 15px 15px 15px;
+ padding-left: 8px;
+ padding-right: 8px;
+ animation: gradient_f 20s ease-in infinite;
+ transition: all 0.3s cubic-bezier(0.55, -0.68, 0.48, 1.682);
}
-
+
#workspaces button.focused {
- color: #d8dee9;
+ color: #d8dee9;
}
-
+
#workspaces button.urgent {
- color: #11111b;
- border-radius: 10px;
+ color: #11111b;
+ border-radius: 10px;
}
-#taskbar button:hover,
+#taskbar button:hover,
#workspaces button:hover {
- color: rgb(71, 14, 14);
- background-color: #000000;
- border-radius: 15px;
- padding-left: 3px;
- padding-right: 3px;
- animation: gradient_f 20s ease-in infinite;
- transition: all 0.3s cubic-bezier(.55,-0.68,.48,1.682);
+ color: rgb(71, 14, 14);
+ background-color: #000000;
+ border-radius: 15px;
+ padding-left: 3px;
+ padding-right: 3px;
+ animation: gradient_f 20s ease-in infinite;
+ transition: all 0.3s cubic-bezier(0.55, -0.68, 0.48, 1.682);
}
#backlight,
@@ -142,69 +142,69 @@ tooltip {
#custom-weather.clearNight,
#custom-weather.cloudyFoggyDay,
#custom-weather.cloudyFoggyNight,
-#custom-weather.default,
+#custom-weather.default,
#custom-weather.rainyDay,
#custom-weather.rainyNight,
#custom-weather.severe,
#custom-weather.showyIcyDay,
#custom-weather.snowyIcyNight,
#custom-weather.sunnyDay {
- color: wheat;
- padding-top: 5px;
- padding-bottom: 5px;
- padding-right: 6px;
- padding-left: 6px;
+ color: wheat;
+ padding-top: 5px;
+ padding-bottom: 5px;
+ padding-right: 6px;
+ padding-left: 6px;
}
-
+
#temperature.critical {
- background-color: #ff0000;
+ background-color: #ff0000;
}
-
+
@keyframes blink {
- to {
- color: #000000;
- }
+ to {
+ color: #000000;
+ }
}
/*-----Indicators----*/
#custom-hypridle.notactive,
#idle_inhibitor.activated {
- color: #39FF14;
- border-bottom: 8px solid rgba(0, 0, 0, 0.2);
+ color: #39ff14;
+ border-top: 8px solid rgba(0, 0, 0, 0.2);
}
-
+
#battery.critical:not(.charging) {
- color: #f53c3c;
- animation-name: blink;
- animation-duration: 3.0s;
- animation-timing-function: steps(12);
- animation-iteration-count: infinite;
- animation-direction: alternate;
+ color: #f53c3c;
+ animation-name: blink;
+ animation-duration: 3s;
+ animation-timing-function: steps(12);
+ animation-iteration-count: infinite;
+ animation-direction: alternate;
}
-
+
#backlight-slider slider,
#pulseaudio-slider slider {
- min-width: 0px;
- min-height: 0px;
- opacity: 0;
- background-image: none;
- border: none;
- box-shadow: none;
+ min-width: 0px;
+ min-height: 0px;
+ opacity: 0;
+ background-image: none;
+ border: none;
+ box-shadow: none;
}
#backlight-slider trough,
#pulseaudio-slider trough {
- min-width: 80px;
- min-height: 5px;
- border-radius: 5px;
- background-color: #22252a;
+ min-width: 80px;
+ min-height: 5px;
+ border-radius: 5px;
+ background-color: #22252a;
}
#backlight-slider highlight,
#pulseaudio-slider highlight {
- min-height: 10px;
- border-radius: 5px;
- background-color: #ba5663;
+ min-height: 10px;
+ border-radius: 5px;
+ background-color: #ba5663;
}
/* --- tray readability override (global) --- */
diff --git a/config/waybar/style/Extra-EverForest.css b/config/waybar/style/Extra-EverForest.css
index e91221ba..c3ae5668 100644
--- a/config/waybar/style/Extra-EverForest.css
+++ b/config/waybar/style/Extra-EverForest.css
@@ -53,9 +53,9 @@ window#waybar {
}
window#waybar.hidden {
- opacity: 0.5;
- /* Waybar scaling: adjust font-size to scale the bar */
- font-size: 14px;
+ opacity: 0.5;
+ /* Waybar scaling: adjust font-size to scale the bar */
+ font-size: 14px;
}
#window {
@@ -179,7 +179,7 @@ window#waybar.hidden {
background-color: @red;
color: @fg;
animation-name: blink;
- animation-duration: 3.0s;
+ animation-duration: 3s;
animation-timing-function: steps(12);
animation-iteration-count: infinite;
animation-direction: alternate;
@@ -227,14 +227,14 @@ window#waybar.hidden {
border-radius: 5px;
margin-left: 5px;
background-color: @blue;
- border-bottom: 8px solid rgba(0, 0, 0, 0.2);
+ border-top: 8px solid rgba(0, 0, 0, 0.2);
color: @black;
}
/*-----Indicators----*/
#custom-hypridle.notactive,
#idle_inhibitor.activated {
background-color: @fg;
- border-bottom: 8px solid rgba(0, 0, 0, 0.2);
+ border-bottom: 8px solid rgba(0, 0, 0, 0.2);
color: @bg0;
}
@@ -248,27 +248,27 @@ window#waybar.hidden {
#backlight-slider slider,
#pulseaudio-slider slider {
- min-width: 0px;
- min-height: 0px;
- opacity: 0;
- background-image: none;
- border: none;
- box-shadow: none;
+ min-width: 0px;
+ min-height: 0px;
+ opacity: 0;
+ background-image: none;
+ border: none;
+ box-shadow: none;
}
#backlight-slider trough,
#pulseaudio-slider trough {
- min-width: 80px;
- min-height: 5px;
- border-radius: 5px;
- background-color: #22252a;
+ min-width: 80px;
+ min-height: 5px;
+ border-radius: 5px;
+ background-color: #22252a;
}
#backlight-slider highlight,
#pulseaudio-slider highlight {
- min-height: 10px;
- border-radius: 5px;
- background-color: #ba5663;
+ min-height: 10px;
+ border-radius: 5px;
+ background-color: #ba5663;
}
#backlight,
@@ -324,15 +324,15 @@ window#waybar.hidden {
#custom-weather.clearNight,
#custom-weather.cloudyFoggyDay,
#custom-weather.cloudyFoggyNight,
-#custom-weather.default,
+#custom-weather.default,
#custom-weather.rainyDay,
#custom-weather.rainyNight,
#custom-weather.severe,
#custom-weather.showyIcyDay,
#custom-weather.snowyIcyNight,
#custom-weather.sunnyDay {
- padding-right: 5px;
- padding-left: 5px;
+ padding-right: 5px;
+ padding-left: 5px;
}
/* --- tray readability override (global) --- */
diff --git a/config/waybar/style/Extra-Mauve.css b/config/waybar/style/Extra-Mauve.css
index 2c8ad2af..10da92c5 100644
--- a/config/waybar/style/Extra-Mauve.css
+++ b/config/waybar/style/Extra-Mauve.css
@@ -3,108 +3,108 @@
/* --- 👍 designed by https://github.com/CelestiaKai 👍 --- */
* {
- font-family: "JetBrainsMono Nerd Font";
- font-weight: bold;
- min-height: 0;
- /* set font-size to 100% if font scaling is set to 1.00 using nwg-look */
- /* NOTE: Waybar v14+ ignores % font-size values */
- font-size: 99%;
- font-feature-settings: '"zero", "ss01", "ss02", "ss03", "ss04", "ss05", "cv31"';
+ font-family: "JetBrainsMono Nerd Font";
+ font-weight: bold;
+ min-height: 0;
+ /* set font-size to 100% if font scaling is set to 1.00 using nwg-look */
+ /* NOTE: Waybar v14+ ignores % font-size values */
+ font-size: 99%;
+ font-feature-settings: '"zero", "ss01", "ss02", "ss03", "ss04", "ss05", "cv31"';
}
window#waybar {
- background: #11111b;
- color: #cba6f7;
- /* Waybar scaling: adjust font-size to scale the bar */
- font-size: 14px;
+ background: #11111b;
+ color: #cba6f7;
+ /* Waybar scaling: adjust font-size to scale the bar */
+ font-size: 14px;
}
window#waybar.hidden {
- opacity: 0.5;
- /* Waybar scaling: adjust font-size to scale the bar */
- font-size: 14px;
+ opacity: 0.5;
+ /* Waybar scaling: adjust font-size to scale the bar */
+ font-size: 14px;
}
tooltip {
- background: #1e1e2e;
- border-radius: 10px;
- border-width: 2px;
- border-style: solid;
- border-color: #11111b;
- color: #cba6f7;
+ background: #1e1e2e;
+ border-radius: 10px;
+ border-width: 2px;
+ border-style: solid;
+ border-color: #11111b;
+ color: #cba6f7;
}
/*-----module groups----*/
.modules-left,
.modules-right {
- border: 3px solid #11111b;
- border-radius: 10px 10px 10px 10px;
- background-color: #313244;
- padding-top: 2px;
- padding-bottom: 2px;
- padding-right: 4px;
- padding-left: 4px;
+ border: 3px solid #11111b;
+ border-radius: 10px 10px 10px 10px;
+ background-color: #313244;
+ padding-top: 2px;
+ padding-bottom: 2px;
+ padding-right: 4px;
+ padding-left: 4px;
}
.modules-center {
- padding-top: 2px;
- padding-bottom: 2px;
- padding-right: 4px;
- padding-left: 4px;
+ padding-top: 2px;
+ padding-bottom: 2px;
+ padding-right: 4px;
+ padding-left: 4px;
}
#taskbar button,
#workspaces button {
- color: #6E6A86;
- box-shadow: none;
- text-shadow: none;
- padding: 0px;
- border-radius: 9px;
- padding-left: 4px;
- padding-right: 4px;
- animation: gradient_f 20s ease-in infinite;
- transition: all 0.5s cubic-bezier(.55,-0.68,.48,1.682);
+ color: #6e6a86;
+ box-shadow: none;
+ text-shadow: none;
+ padding: 0px;
+ border-radius: 9px;
+ padding-left: 4px;
+ padding-right: 4px;
+ animation: gradient_f 20s ease-in infinite;
+ transition: all 0.5s cubic-bezier(0.55, -0.68, 0.48, 1.682);
}
#taskbar button.active,
#workspaces button.active {
- color: #1e1e1e;
- border-radius: 30%;
- background-color: #cba6f7;
- padding-left: 6px;
- padding-right: 8px;
- animation: gradient_f 20s ease-in infinite;
- transition: all 0.3s cubic-bezier(.55,-0.68,.48,1.682);
+ color: #1e1e1e;
+ border-radius: 30%;
+ background-color: #cba6f7;
+ padding-left: 6px;
+ padding-right: 8px;
+ animation: gradient_f 20s ease-in infinite;
+ transition: all 0.3s cubic-bezier(0.55, -0.68, 0.48, 1.682);
}
#workspaces button.active:hover {
- color: #1e1e1e;
- border-radius: 30%;
- background-color: #cba6f7;
- padding-left: 6px;
- padding-right: 8px;
+ color: #1e1e1e;
+ border-radius: 30%;
+ background-color: #cba6f7;
+ padding-left: 6px;
+ padding-right: 8px;
}
#workspaces button.focused {
- color: #d8dee9;
+ color: #d8dee9;
}
#workspaces button.urgent {
- border-radius: 30%;
- background-color: #cba6f7;
- color: #1e1e1e;
+ border-radius: 30%;
+ background-color: #cba6f7;
+ color: #1e1e1e;
}
#taskbar button:hover,
#workspaces button:hover {
- color: #1e1e1e;
- border: 3px solid #1e1e2e;
- background-color: #cba6f7;
- border-radius: 30%;
- padding-left: 4px;
- padding-right: 4px;
- animation: gradient_f 20s ease-in infinite;
- transition: all 0.3s cubic-bezier(.55,-0.68,.48,1.682);
+ color: #1e1e1e;
+ border: 3px solid #1e1e2e;
+ background-color: #cba6f7;
+ border-radius: 30%;
+ padding-left: 4px;
+ padding-right: 4px;
+ animation: gradient_f 20s ease-in infinite;
+ transition: all 0.3s cubic-bezier(0.55, -0.68, 0.48, 1.682);
}
#backlight,
@@ -161,70 +161,69 @@ tooltip {
#custom-weather.clearNight,
#custom-weather.cloudyFoggyDay,
#custom-weather.cloudyFoggyNight,
-#custom-weather.default,
+#custom-weather.default,
#custom-weather.rainyDay,
#custom-weather.rainyNight,
#custom-weather.severe,
#custom-weather.showyIcyDay,
#custom-weather.snowyIcyNight,
#custom-weather.sunnyDay {
- color: whitesmoke;
- padding-top: 4px;
- padding-bottom: 4px;
- padding-right: 6px;
- padding-left: 6px;
-
+ color: whitesmoke;
+ padding-top: 4px;
+ padding-bottom: 4px;
+ padding-right: 6px;
+ padding-left: 6px;
}
#temperature.critical {
- background-color: #ff0000;
+ background-color: #ff0000;
}
@keyframes blink {
- to {
- color: #000000;
- }
+ to {
+ color: #000000;
+ }
}
/*-----Indicators----*/
#custom-hypridle.notactive,
#idle_inhibitor.activated {
- color: #39FF14;
- border-bottom: 8px solid rgba(0, 0, 0, 0.2);
+ color: #39ff14;
+ border-bottom: 3px solid rgba(0, 0, 0, 0.2);
}
#battery.critical:not(.charging) {
- color: #f53c3c;
- animation-name: blink;
- animation-duration: 3.0s;
- animation-timing-function: steps(12);
- animation-iteration-count: infinite;
- animation-direction: alternate;
+ color: #f53c3c;
+ animation-name: blink;
+ animation-duration: 3s;
+ animation-timing-function: steps(12);
+ animation-iteration-count: infinite;
+ animation-direction: alternate;
}
#backlight-slider slider,
#pulseaudio-slider slider {
- min-width: 0px;
- min-height: 0px;
- opacity: 0;
- background-image: none;
- border: none;
- box-shadow: none;
+ min-width: 0px;
+ min-height: 0px;
+ opacity: 0;
+ background-image: none;
+ border: none;
+ box-shadow: none;
}
#backlight-slider trough,
#pulseaudio-slider trough {
- min-width: 80px;
- min-height: 5px;
- border-radius: 5px;
- background-color: #6E6A86;
+ min-width: 80px;
+ min-height: 5px;
+ border-radius: 5px;
+ background-color: #6e6a86;
}
#backlight-slider highlight,
#pulseaudio-slider highlight {
- min-height: 10px;
- border-radius: 5px;
- background-color: purple;
+ min-height: 10px;
+ border-radius: 5px;
+ background-color: purple;
}
/* --- tray readability override (global) --- */
diff --git a/config/waybar/style/Extra-Modern-Combined-Transparent.css b/config/waybar/style/Extra-Modern-Combined-Transparent.css
index 353c321c..7a4a9f77 100644
--- a/config/waybar/style/Extra-Modern-Combined-Transparent.css
+++ b/config/waybar/style/Extra-Modern-Combined-Transparent.css
@@ -30,93 +30,93 @@
@define-color textcolor3 @foreground;
@define-color iconcolor @foreground;
-@import '../../.config/waybar/wallust/colors-waybar.css';
+@import "../../.config/waybar/wallust/colors-waybar.css";
@import "../waybar/style/catppuccin-themes/latte.css";
* {
- font-family: "JetBrainsMono Nerd Font";
- font-weight: bold;
- min-height: 0;
- /* set font-size to 100% if font scaling is set to 1.00 using nwg-look */
- /* NOTE: Waybar v14+ ignores % font-size values */
- font-size: 99%;
- font-feature-settings: '"zero", "ss01", "ss02", "ss03", "ss04", "ss05", "cv31"';
+ font-family: "JetBrainsMono Nerd Font";
+ font-weight: bold;
+ min-height: 0;
+ /* set font-size to 100% if font scaling is set to 1.00 using nwg-look */
+ /* NOTE: Waybar v14+ ignores % font-size values */
+ font-size: 99%;
+ font-feature-settings: '"zero", "ss01", "ss02", "ss03", "ss04", "ss05", "cv31"';
}
window#waybar {
- background-color: transparent;
- border-radius: 6px;
- padding-top: 2px;
- padding-bottom: 0px;
- padding-right: 4px;
- padding-left: 4px;
- /* Waybar scaling: adjust font-size to scale the bar */
- font-size: 14px;
+ background-color: transparent;
+ border-radius: 6px;
+ padding-top: 2px;
+ padding-bottom: 0px;
+ padding-right: 4px;
+ padding-left: 4px;
+ /* Waybar scaling: adjust font-size to scale the bar */
+ font-size: 14px;
}
tooltip {
- background: #1e1e2e;
- border-radius: 12px;
- border-width: 1px;
- border-style: solid;
- border-color: @border-color;
- color: #ffffff;
+ background: #1e1e2e;
+ border-radius: 12px;
+ border-width: 1px;
+ border-style: solid;
+ border-color: @border-color;
+ color: #ffffff;
}
#taskbar button,
#workspaces button {
- padding: 0px 3px;
- margin: 3px 2px;
- border-radius: 4px;
- color: @textcolor1;
- background-color: @workspacesbackground2;
- transition: all 0.1s linear;
- opacity: 0.4;
+ padding: 0px 3px;
+ margin: 3px 2px;
+ border-radius: 4px;
+ color: @textcolor1;
+ background-color: @workspacesbackground2;
+ transition: all 0.1s linear;
+ opacity: 0.4;
}
#taskbar button.active,
#workspaces button.active {
- color: @textcolor1;
- background: @workspacesbackground2;
- border-radius: 4px;
- min-width: 30px;
- animation: gradient_f 20s ease-in infinite;
- transition: all 0.3s cubic-bezier(.55,-0.68,.48,1.682);
- opacity: 1.0;
+ color: @textcolor1;
+ background: @workspacesbackground2;
+ border-radius: 4px;
+ min-width: 30px;
+ animation: gradient_f 20s ease-in infinite;
+ transition: all 0.3s cubic-bezier(0.55, -0.68, 0.48, 1.682);
+ opacity: 1;
}
#taskbar button:hover,
#workspaces button:hover {
- color: @red;
- background: @workspacesbackground2;
- border-radius: 3px;
- opacity:0.6;
- animation: gradient_f 20s ease-in infinite;
- transition: all 0.3s cubic-bezier(.55,-0.68,.48,1.682);
+ color: @red;
+ background: @workspacesbackground2;
+ border-radius: 3px;
+ opacity: 0.6;
+ animation: gradient_f 20s ease-in infinite;
+ transition: all 0.3s cubic-bezier(0.55, -0.68, 0.48, 1.682);
}
#workspaces button.focused {
- color: #d8dee9;
+ color: #d8dee9;
}
#workspaces button.urgent {
- color: #11111b;
- border-radius: 10px;
+ color: #11111b;
+ border-radius: 10px;
}
/*-----module groups----*/
.modules-left,
.modules-right {
- background-color: transparent;
+ background-color: transparent;
}
.modules-center {
- background-color: @background-module;
- border-radius: 0px 0px 45px 45px;
- padding-top: 8px;
- padding-bottom: 8px;
- padding-left: 10px;
- padding-right: 6px;
+ background-color: @background-module;
+ border-radius: 0px 0px 45px 45px;
+ padding-top: 8px;
+ padding-bottom: 8px;
+ padding-left: 10px;
+ padding-right: 6px;
}
#backlight,
@@ -181,77 +181,77 @@ tooltip {
#custom-weather.showyIcyDay,
#custom-weather.snowyIcyNight,
#custom-weather.sunnyDay {
- color: white;
- padding-right: 6px;
- padding-left: 6px;
+ color: white;
+ padding-right: 6px;
+ padding-left: 6px;
}
#temperature.critical {
- background-color: #ff0000;
+ background-color: #ff0000;
}
@keyframes blink {
- to {
- color: #000000;
- }
+ to {
+ color: #000000;
+ }
}
#custom-hint {
- color: @peach;
- padding-right: 6px;
- padding-left: 6px;
+ color: @peach;
+ padding-right: 6px;
+ padding-left: 6px;
}
#pulseaudio.muted {
- color: red;
+ color: red;
}
#temperature.critical {
- background-color: @red;
+ background-color: @red;
}
#battery.critical:not(.charging) {
- color: #f53c3c;
- animation-name: blink;
- animation-duration: 3.0s;
- animation-timing-function: steps(12);
- animation-iteration-count: infinite;
- animation-direction: alternate;
+ color: #f53c3c;
+ animation-name: blink;
+ animation-duration: 3s;
+ animation-timing-function: steps(12);
+ animation-iteration-count: infinite;
+ animation-direction: alternate;
}
#pulseaudio-slider,
#pulseaudio {
- color: @foreground;
+ color: @foreground;
}
#backlight-slider slider,
#pulseaudio-slider slider {
- min-width: 0px;
- min-height: 0px;
- opacity: 0;
- background-image: none;
- border: none;
- box-shadow: none;
+ min-width: 0px;
+ min-height: 0px;
+ opacity: 0;
+ background-image: none;
+ border: none;
+ box-shadow: none;
}
#backlight-slider trough,
#pulseaudio-slider trough {
- min-width: 80px;
- min-height: 5px;
- border-radius: 5px;
+ min-width: 80px;
+ min-height: 5px;
+ border-radius: 5px;
}
#backlight-slider highlight,
#pulseaudio-slider highlight {
- min-height: 10px;
- border-radius: 5px;
+ min-height: 10px;
+ border-radius: 5px;
}
#custom-hypridle,
#custom-lock,
#idle_inhibitor {
- color: @teal;
- border-bottom: 8px solid rgba(0, 0, 0, 0.2);
+ color: @teal;
+ border-bottom: 2px solid rgba(0, 0, 0, 0.2);
}
#custom-weather,
@@ -266,29 +266,30 @@ tooltip {
#custom-weather.showyIcyDay,
#custom-weather.snowyIcyNight,
#custom-weather.sunnyDay {
- color: @lavender;
- padding-right: 6px;
- padding-left: 6px;
+ color: @lavender;
+ padding-right: 6px;
+ padding-left: 6px;
}
/*-----Indicators----*/
#custom-hypridle.notactive,
#idle_inhibitor.activated {
- color: #39FF14;
- border-bottom: 8px solid rgba(0, 0, 0, 0.2);
+ color: #39ff14;
+ border-top: 2px solid rgba(0, 0, 0, 0.2);
}
#clock {
- color: @sapphire;
- border-radius: 15px;
+ color: @sapphire;
+ border-radius: 15px;
}
#custom-updates {
- color: @yellow;
+ color: @yellow;
}
-#custom-swaync{
- color: #ffd700;}
+#custom-swaync {
+ color: #ffd700;
+}
/* --- tray readability override (global) --- */
#tray > *,
diff --git a/config/waybar/style/Extra-Rose-Pine.css b/config/waybar/style/Extra-Rose-Pine.css
index 94b40f7b..cfbf0e94 100644
--- a/config/waybar/style/Extra-Rose-Pine.css
+++ b/config/waybar/style/Extra-Rose-Pine.css
@@ -1,7 +1,6 @@
/* ---- 💫 https://github.com/LinuxBeginnings 💫 ---- */
/* Rose Pine */
-
@define-color bar-bg rgba(0, 0, 0, 0);
@define-color main-bg #26233a;
@define-color main-fg #ebbcba;
@@ -11,103 +10,103 @@
@define-color wb-hvr-fg #f6c177;
* {
- font-family: "JetBrainsMono Nerd Font";
- font-weight: bold;
- /* set font-size to 100% if font scaling is set to 1.00 using nwg-look */
- /* NOTE: Waybar v14+ ignores % font-size values */
- font-size: 99%;
- font-feature-settings: '"zero", "ss01", "ss02", "ss03", "ss04", "ss05", "cv31"';
- border-radius: 12px;
+ font-family: "JetBrainsMono Nerd Font";
+ font-weight: bold;
+ /* set font-size to 100% if font scaling is set to 1.00 using nwg-look */
+ /* NOTE: Waybar v14+ ignores % font-size values */
+ font-size: 99%;
+ font-feature-settings: '"zero", "ss01", "ss02", "ss03", "ss04", "ss05", "cv31"';
+ border-radius: 12px;
}
window#waybar {
- background: @bar-bg;
- /* Waybar scaling: adjust font-size to scale the bar */
- font-size: 14px;
+ background: @bar-bg;
+ /* Waybar scaling: adjust font-size to scale the bar */
+ font-size: 14px;
}
window#waybar.empty,
window#waybar.empty #window {
- background-color: transparent;
- padding: 0px;
- border: 0px;
- /* Waybar scaling: adjust font-size to scale the bar */
- font-size: 14px;
+ background-color: transparent;
+ padding: 0px;
+ border: 0px;
+ /* Waybar scaling: adjust font-size to scale the bar */
+ font-size: 14px;
}
tooltip {
- background: @main-bg;
- color: @main-fg;
- border-radius: 8px;
- border-width: 0px;
+ background: @main-bg;
+ color: @main-fg;
+ border-radius: 8px;
+ border-width: 0px;
}
#taskbar button,
#workspaces button {
- box-shadow: none;
- text-shadow: none;
- padding: 0px;
- border-bottom: 2px;
- border-color: #2B5D34;
- border-style: solid;
- border-radius: 10px;
- padding-left: 2px;
- padding-right: 4px;
- background: @main-bg;
- color: @main-fg;
- animation: gradient_f 20s ease-in infinite;
- transition: all 0.5s cubic-bezier(.55,-0.68,.48,1.682);
+ box-shadow: none;
+ text-shadow: none;
+ padding: 0px;
+ border-bottom: 2px;
+ border-color: #2b5d34;
+ border-style: solid;
+ border-radius: 10px;
+ padding-left: 2px;
+ padding-right: 4px;
+ background: @main-bg;
+ color: @main-fg;
+ animation: gradient_f 20s ease-in infinite;
+ transition: all 0.5s cubic-bezier(0.55, -0.68, 0.48, 1.682);
}
#workspaces button.active {
- background: @wb-act-bg;
- color: @wb-act-fg;
- padding-left: 2px;
- padding-right: 4px;
- animation: gradient_f 20s ease-in infinite;
- transition: all 0.3s cubic-bezier(.55,-0.68,.48,1.682);
+ background: @wb-act-bg;
+ color: @wb-act-fg;
+ padding-left: 2px;
+ padding-right: 4px;
+ animation: gradient_f 20s ease-in infinite;
+ transition: all 0.3s cubic-bezier(0.55, -0.68, 0.48, 1.682);
}
#workspaces button:hover {
- background: @wb-hvr-bg;
- color: @wb-hvr-fg;
- padding-left: 2px;
- padding-right: 2px;
- animation: gradient_f 20s ease-in infinite;
- transition: all 0.3s cubic-bezier(.55,-0.68,.48,1.682);
+ background: @wb-hvr-bg;
+ color: @wb-hvr-fg;
+ padding-left: 2px;
+ padding-right: 2px;
+ animation: gradient_f 20s ease-in infinite;
+ transition: all 0.3s cubic-bezier(0.55, -0.68, 0.48, 1.682);
}
#taskbar button {
- box-shadow: none;
- text-shadow: none;
- padding: 0px;
- border-bottom: 2px;
- border-color: #2B5D34;
- border-style: solid;
- border-radius: 10px;
- padding-left: 3px;
- padding-right: 3px;
- color: @wb-color;
- animation: gradient_f 20s ease-in infinite;
- transition: all 0.5s cubic-bezier(.55,-0.68,.48,1.682);
+ box-shadow: none;
+ text-shadow: none;
+ padding: 0px;
+ border-bottom: 2px;
+ border-color: #2b5d34;
+ border-style: solid;
+ border-radius: 10px;
+ padding-left: 3px;
+ padding-right: 3px;
+ color: @wb-color;
+ animation: gradient_f 20s ease-in infinite;
+ transition: all 0.5s cubic-bezier(0.55, -0.68, 0.48, 1.682);
}
#taskbar button.active {
- background: @wb-act-bg;
- color: @wb-act-color;
- padding-left: 8px;
- padding-right: 8px;
- animation: gradient_f 20s ease-in infinite;
- transition: all 0.3s cubic-bezier(.55,-0.68,.48,1.682);
+ background: @wb-act-bg;
+ color: @wb-act-color;
+ padding-left: 8px;
+ padding-right: 8px;
+ animation: gradient_f 20s ease-in infinite;
+ transition: all 0.3s cubic-bezier(0.55, -0.68, 0.48, 1.682);
}
#taskbar button:hover {
- background: @wb-hvr-bg;
- color: @wb-hvr-color;
- padding-left: 3px;
- padding-right: 3px;
- animation: gradient_f 20s ease-in infinite;
- transition: all 0.3s cubic-bezier(.55,-0.68,.48,1.682);
+ background: @wb-hvr-bg;
+ color: @wb-hvr-color;
+ padding-left: 3px;
+ padding-right: 3px;
+ animation: gradient_f 20s ease-in infinite;
+ transition: all 0.3s cubic-bezier(0.55, -0.68, 0.48, 1.682);
}
#backlight,
@@ -162,35 +161,35 @@ tooltip {
#custom-weather.clearNight,
#custom-weather.cloudyFoggyDay,
#custom-weather.cloudyFoggyNight,
-#custom-weather.default,
+#custom-weather.default,
#custom-weather.rainyDay,
#custom-weather.rainyNight,
#custom-weather.severe,
#custom-weather.showyIcyDay,
#custom-weather.snowyIcyNight,
#custom-weather.sunnyDay {
- color: @main-fg;
- background: @main-bg;
- opacity: 1;
- border-bottom: 2px;
- border-color: #2B5D34;
- border-style: solid;
- border-radius: 10px;
- padding-top: 4px;
- padding-bottom: 4px;
- padding-right: 6px;
- padding-left: 6px;
+ color: @main-fg;
+ background: @main-bg;
+ opacity: 1;
+ border-bottom: 2px;
+ border-color: #2b5d34;
+ border-style: solid;
+ border-radius: 10px;
+ padding-top: 4px;
+ padding-bottom: 4px;
+ padding-right: 6px;
+ padding-left: 6px;
}
#temperature.critical {
- background-color: red;
+ background-color: red;
}
/*-----Indicators----*/
#custom-hypridle.notactive,
#idle_inhibitor.activated {
- color: #39FF14;
- border-bottom: 2px;
+ color: #39ff14;
+ border-bottom: 2px;
}
@keyframes blink {
@@ -203,7 +202,7 @@ tooltip {
background-color: red;
color: white;
animation-name: blink;
- animation-duration: 3.0s;
+ animation-duration: 3s;
animation-timing-function: steps(12);
animation-iteration-count: infinite;
animation-direction: alternate;
@@ -211,42 +210,43 @@ tooltip {
}
#backlight {
- padding-right: 2px;
+ padding-right: 2px;
}
#network {
- padding-right: 12px;
+ padding-right: 12px;
}
#custom-power {
- padding-right: 1px;
+ padding-left: 0px;
+ padding-right: 1px;
}
#group-motherboard,
#group-laptop,
#group-audio {
- color: @main-fg;
- background-color: @main-bg;
+ color: @main-fg;
+ background-color: @main-bg;
}
#backlight-slider slider,
#pulseaudio-slider slider {
- min-width: 0px;
- min-height: 0px;
- opacity: 0;
- background-image: none;
- border: none;
- box-shadow: none;
+ min-width: 0px;
+ min-height: 0px;
+ opacity: 0;
+ background-image: none;
+ border: none;
+ box-shadow: none;
}
#backlight-slider trough,
#pulseaudio-slider trough {
- min-width: 80px;
- min-height: 5px;
- border-radius: 5px;
+ min-width: 80px;
+ min-height: 5px;
+ border-radius: 5px;
}
#backlight-slider highlight,
#pulseaudio-slider highlight {
- min-height: 10px;
- border-radius: 5px;
+ min-height: 10px;
+ border-radius: 5px;
}
/* --- tray readability override (global) --- */
diff --git a/config/waybar/style/Extra-Simple-Pink.css b/config/waybar/style/Extra-Simple-Pink.css
index 9b69a8bd..072580fe 100644
--- a/config/waybar/style/Extra-Simple-Pink.css
+++ b/config/waybar/style/Extra-Simple-Pink.css
@@ -3,100 +3,99 @@
/* --- 👍 designed by https://github.com/Krautt 👍 --- */
* {
- font-family: "JetBrainsMono Nerd Font";
- font-weight: bold;
- min-height: 0;
- /* set font-size to 100% if font scaling is set to 1.00 using nwg-look */
- /* NOTE: Waybar v14+ ignores % font-size values */
- font-size: 99%;
- font-feature-settings: '"zero", "ss01", "ss02", "ss03", "ss04", "ss05", "cv31"';
+ font-family: "JetBrainsMono Nerd Font";
+ font-weight: bold;
+ min-height: 0;
+ /* set font-size to 100% if font scaling is set to 1.00 using nwg-look */
+ /* NOTE: Waybar v14+ ignores % font-size values */
+ font-size: 99%;
+ font-feature-settings: '"zero", "ss01", "ss02", "ss03", "ss04", "ss05", "cv31"';
}
window#waybar {
- background: black;
- border-radius: 50px;
- color: whitesmoke;
- /* Waybar scaling: adjust font-size to scale the bar */
- font-size: 14px;
+ background: black;
+ border-radius: 50px;
+ color: whitesmoke;
+ /* Waybar scaling: adjust font-size to scale the bar */
+ font-size: 14px;
}
window#waybar.hidden {
- opacity: 0.5;
- /* Waybar scaling: adjust font-size to scale the bar */
- font-size: 14px;
+ opacity: 0.5;
+ /* Waybar scaling: adjust font-size to scale the bar */
+ font-size: 14px;
}
tooltip {
- background: #1e1e2e;
- border-radius: 10px;
- border-width: 2px;
- border-style: solid;
- border-color: #11111b;
- color: pink;
+ background: #1e1e2e;
+ border-radius: 10px;
+ border-width: 2px;
+ border-style: solid;
+ border-color: #11111b;
+ color: pink;
}
/*-----module groups----*/
.modules-left,
.modules-right {
- border: 5px solid #19141b;
- border-radius: 50px 50px 50px 50px;
- background-color: #ba5663;
- padding-top: 2px;
- padding-bottom: 2px;
- padding-right: 4px;
- padding-left: 4px;
+ border: 5px solid #19141b;
+ border-radius: 50px 50px 50px 50px;
+ background-color: #ba5663;
+ padding-top: 2px;
+ padding-bottom: 2px;
+ padding-right: 4px;
+ padding-left: 4px;
}
.modules-center {
- background-color: black;
- padding-top: 2px;
- padding-bottom: 2px;
- padding-right: 4px;
- padding-left: 4px;
+ background-color: black;
+ padding-top: 2px;
+ padding-bottom: 2px;
+ padding-right: 4px;
+ padding-left: 4px;
}
#taskbar button,
#workspaces button {
- color: pink;
- box-shadow: none;
- text-shadow: none;
- border-radius: 9px;
- padding-left: 4px;
- padding-right: 4px;
- animation: gradient_f 20s ease-in infinite;
- transition: all 0.5s cubic-bezier(.55,-0.68,.48,1.682);
+ color: pink;
+ box-shadow: none;
+ text-shadow: none;
+ border-radius: 9px;
+ padding-left: 4px;
+ padding-right: 4px;
+ animation: gradient_f 20s ease-in infinite;
+ transition: all 0.5s cubic-bezier(0.55, -0.68, 0.48, 1.682);
}
#taskbar button.active,
#workspaces button.active {
- color: whitesmoke;
- background-color: pink;
- border-radius: 15px 15px 15px 15px;
- padding-left: 8px;
- padding-right: 8px;
- animation: gradient_f 20s ease-in infinite;
- transition: all 0.3s cubic-bezier(.55,-0.68,.48,1.682);
-
+ color: whitesmoke;
+ background-color: pink;
+ border-radius: 15px 15px 15px 15px;
+ padding-left: 8px;
+ padding-right: 8px;
+ animation: gradient_f 20s ease-in infinite;
+ transition: all 0.3s cubic-bezier(0.55, -0.68, 0.48, 1.682);
}
#workspaces button.focused {
- color: #c42a60;
+ color: #c42a60;
}
#workspaces button.urgent {
- color: #11111b;
- border-radius: 10px;
+ color: #11111b;
+ border-radius: 10px;
}
#taskbar button:hover,
#workspaces button:hover {
- color: #ba5663;
- background-color: #0d0a0d;
- border-radius: 15px;
- padding-left: 2px;
- padding-right: 2px;
- animation: gradient_f 20s ease-in infinite;
- transition: all 0.3s cubic-bezier(.55,-0.68,.48,1.682);
+ color: #ba5663;
+ background-color: #0d0a0d;
+ border-radius: 15px;
+ padding-left: 2px;
+ padding-right: 2px;
+ animation: gradient_f 20s ease-in infinite;
+ transition: all 0.3s cubic-bezier(0.55, -0.68, 0.48, 1.682);
}
#backlight,
@@ -154,70 +153,69 @@ tooltip {
#custom-weather.clearNight,
#custom-weather.cloudyFoggyDay,
#custom-weather.cloudyFoggyNight,
-#custom-weather.default,
+#custom-weather.default,
#custom-weather.rainyDay,
#custom-weather.rainyNight,
#custom-weather.severe,
#custom-weather.showyIcyDay,
#custom-weather.snowyIcyNight,
#custom-weather.sunnyDay {
- color: whitesmoke;
- padding-top: 2px;
- padding-bottom: 2px;
- padding-right: 4px;
- padding-left: 4px;
-
+ color: whitesmoke;
+ padding-top: 2px;
+ padding-bottom: 2px;
+ padding-right: 4px;
+ padding-left: 4px;
}
#temperature.critical {
- background-color: #ff0000;
+ background-color: #ff0000;
}
@keyframes blink {
- to {
- color: #000000;
- }
+ to {
+ color: #000000;
+ }
}
/*-----Indicators----*/
#custom-hypridle.notactive,
#idle_inhibitor.activated {
- color: #39FF14;
- border-bottom: 8px solid rgba(0, 0, 0, 0.2);
+ color: #39ff14;
+ border-bottom: 1px solid rgba(0, 0, 0, 0.2);
}
#battery.critical:not(.charging) {
- color: #f53c3c;
- animation-name: blink;
- animation-duration: 3.0s;
- animation-timing-function: steps(12);
- animation-iteration-count: infinite;
- animation-direction: alternate;
+ color: #f53c3c;
+ animation-name: blink;
+ animation-duration: 3s;
+ animation-timing-function: steps(12);
+ animation-iteration-count: infinite;
+ animation-direction: alternate;
}
#backlight-slider slider,
#pulseaudio-slider slider {
- min-width: 0px;
- min-height: 0px;
- opacity: 0;
- background-image: none;
- border: none;
- box-shadow: none;
+ min-width: 0px;
+ min-height: 0px;
+ opacity: 0;
+ background-image: none;
+ border: none;
+ box-shadow: none;
}
#backlight-slider trough,
#pulseaudio-slider trough {
- min-width: 80px;
- min-height: 5px;
- border-radius: 5px;
- background-color: #22252a;
+ min-width: 80px;
+ min-height: 5px;
+ border-radius: 5px;
+ background-color: #22252a;
}
#backlight-slider highlight,
#pulseaudio-slider highlight {
- min-height: 10px;
- border-radius: 5px;
- background-color: #ba5663;
+ min-height: 10px;
+ border-radius: 5px;
+ background-color: #ba5663;
}
/* --- tray readability override (global) --- */
diff --git a/config/waybar/style/Light-Monochrome-Contrast.css b/config/waybar/style/Light-Monochrome-Contrast.css
index afa18d0b..7992e63d 100644
--- a/config/waybar/style/Light-Monochrome-Contrast.css
+++ b/config/waybar/style/Light-Monochrome-Contrast.css
@@ -2,92 +2,92 @@
/* Light - MonoChrome Contrast */
* {
-font-family: "JetBrainsMono Nerd Font";
-font-weight: bold;
-min-height: 0;
-/* set font-size to 100% if font scaling is set to 1.00 using nwg-look */
-/* NOTE: Waybar v14+ ignores % font-size values */
-font-size: 99%;
-font-feature-settings: '"zero", "ss01", "ss02", "ss03", "ss04", "ss05", "cv31"';
+ font-family: "JetBrainsMono Nerd Font";
+ font-weight: bold;
+ min-height: 0;
+ /* set font-size to 100% if font scaling is set to 1.00 using nwg-look */
+ /* NOTE: Waybar v14+ ignores % font-size values */
+ font-size: 99%;
+ font-feature-settings: '"zero", "ss01", "ss02", "ss03", "ss04", "ss05", "cv31"';
}
window#waybar,
window#waybar.empty,
window#waybar.empty #window {
- background-color: transparent;
- padding: 0px;
- border: 0px;
- /* Waybar scaling: adjust font-size to scale the bar */
- font-size: 14px;
+ background-color: transparent;
+ padding: 0px;
+ border: 0px;
+ /* Waybar scaling: adjust font-size to scale the bar */
+ font-size: 14px;
}
tooltip {
- color: white;
- background: #1e1e2e;
- opacity: 0.8;
- border-radius: 10px;
- border-width: 2px;
- border-style: solid;
- border-color: white;
+ color: white;
+ background: #1e1e2e;
+ opacity: 0.8;
+ border-radius: 10px;
+ border-width: 2px;
+ border-style: solid;
+ border-color: white;
}
/* Waybar scaling: adjust tooltip label font-size to scale the bar */
-tooltip label{
- color: #cdd6f4;
- /* Waybar scaling: adjust tooltip label font-size to scale the bar */
- font-size: 14px;
+tooltip label {
+ color: #cdd6f4;
+ /* Waybar scaling: adjust tooltip label font-size to scale the bar */
+ font-size: 14px;
}
/*-----module groups----*/
.modules-left,
.modules-center,
.modules-right {
- background-color: white;
- color: black;
- border-bottom: 2px;
- border-style: solid;
- border-color: black;
- border-radius: 10px;
- padding-top: 2px;
- padding-bottom: 2px;
- padding-right: 4px;
- padding-left: 4px;
+ background-color: white;
+ color: black;
+ border-bottom: 2px;
+ border-style: solid;
+ border-color: black;
+ border-radius: 10px;
+ padding-top: 2px;
+ padding-bottom: 2px;
+ padding-right: 4px;
+ padding-left: 4px;
}
/*-----modules indv----*/
#taskbar button,
#workspaces button {
- color: black;
- box-shadow: none;
- text-shadow: none;
- padding: 0px;
- border-radius: 9px;
- padding-left: 4px;
- padding-right: 4px;
- animation: gradient_f 20s ease-in infinite;
- transition: all 0.5s cubic-bezier(.55,-0.68,.48,1.682);
+ color: black;
+ box-shadow: none;
+ text-shadow: none;
+ padding: 0px;
+ border-radius: 9px;
+ padding-left: 4px;
+ padding-right: 4px;
+ animation: gradient_f 20s ease-in infinite;
+ transition: all 0.5s cubic-bezier(0.55, -0.68, 0.48, 1.682);
}
#taskbar button:hover,
#workspaces button:hover {
- color: grey;
- background-color: rgba(0,153,153,0.2);
- padding-left: 2px;
- padding-right: 2px;
- animation: gradient_f 20s ease-in infinite;
- transition: all 0.3s cubic-bezier(.55,-0.68,.48,1.682);
+ color: grey;
+ background-color: rgba(0, 153, 153, 0.2);
+ padding-left: 2px;
+ padding-right: 2px;
+ animation: gradient_f 20s ease-in infinite;
+ transition: all 0.3s cubic-bezier(0.55, -0.68, 0.48, 1.682);
}
#taskbar button.active,
#workspaces button.active {
- background-color: grey;
- color: black;
- padding-left: 8px;
- padding-right: 8px;
- animation: gradient_f 20s ease-in infinite;
- transition: all 0.3s cubic-bezier(.55,-0.68,.48,1.682);
+ background-color: grey;
+ color: black;
+ padding-left: 8px;
+ padding-right: 8px;
+ animation: gradient_f 20s ease-in infinite;
+ transition: all 0.3s cubic-bezier(0.55, -0.68, 0.48, 1.682);
}
#workspaces button.persistent {
- border-radius: 10px;
+ border-radius: 10px;
}
#backlight,
@@ -144,72 +144,73 @@ tooltip label{
#custom-weather.clearNight,
#custom-weather.cloudyFoggyDay,
#custom-weather.cloudyFoggyNight,
-#custom-weather.default,
+#custom-weather.default,
#custom-weather.rainyDay,
#custom-weather.rainyNight,
#custom-weather.severe,
#custom-weather.showyIcyDay,
#custom-weather.snowyIcyNight,
#custom-weather.sunnyDay {
- padding-top: 4px;
- padding-bottom: 4px;
- padding-right: 6px;
- padding-left: 6px;
+ padding-top: 4px;
+ padding-bottom: 4px;
+ padding-right: 6px;
+ padding-left: 6px;
}
#custom-power {
- padding: 1px 3px;
+ padding-right: 2px;
+ padding-left: 1px;
}
/*-----Indicators----*/
#custom-hypridle.notactive,
#idle_inhibitor.activated {
- color: #39FF14;
- border-bottom: 8px solid rgba(0, 0, 0, 0.2);
+ color: #39ff14;
+ border-bottom: 0px solid rgba(0, 0, 0, 0.2);
}
#pulseaudio.muted {
- color: #cc3436;
+ color: #cc3436;
}
#temperature.critical {
- color: #cc3436;
+ color: #cc3436;
}
@keyframes blink {
- to {
- color: #000000;
- }
+ to {
+ color: #000000;
+ }
}
#battery.critical:not(.charging) {
- color: #f53c3c;
- animation-name: blink;
- animation-duration: 3.0s;
- animation-timing-function: steps(12);
- animation-iteration-count: infinite;
- animation-direction: alternate;
+ color: #f53c3c;
+ animation-name: blink;
+ animation-duration: 3s;
+ animation-timing-function: steps(12);
+ animation-iteration-count: infinite;
+ animation-direction: alternate;
}
#backlight-slider slider,
#pulseaudio-slider slider {
- min-width: 0px;
- min-height: 0px;
- opacity: 0;
- background-image: none;
- border: none;
- box-shadow: none;
+ min-width: 0px;
+ min-height: 0px;
+ opacity: 0;
+ background-image: none;
+ border: none;
+ box-shadow: none;
}
#backlight-slider trough,
#pulseaudio-slider trough {
- min-width: 80px;
- min-height: 5px;
- border-radius: 5px;
- background-color: grey;
+ min-width: 80px;
+ min-height: 5px;
+ border-radius: 5px;
+ background-color: grey;
}
#backlight-slider highlight,
#pulseaudio-slider highlight {
- min-height: 10px;
- border-radius: 5px;
+ min-height: 10px;
+ border-radius: 5px;
}
/* --- tray readability override (global) --- */
diff --git a/config/waybar/style/Light-Obsidian-Glow.css b/config/waybar/style/Light-Obsidian-Glow.css
index ab428569..6b0b36f1 100644
--- a/config/waybar/style/Light-Obsidian-Glow.css
+++ b/config/waybar/style/Light-Obsidian-Glow.css
@@ -2,81 +2,81 @@
/* Light - Obsidian Glow */
* {
-font-family: "JetBrainsMono Nerd Font";
-font-weight: bold;
-min-height: 0;
-/* set font-size to 100% if font scaling is set to 1.00 using nwg-look */
-/* NOTE: Waybar v14+ ignores % font-size values */
-font-size: 99%;
-font-feature-settings: '"zero", "ss01", "ss02", "ss03", "ss04", "ss05", "cv31"';
+ font-family: "JetBrainsMono Nerd Font";
+ font-weight: bold;
+ min-height: 0;
+ /* set font-size to 100% if font scaling is set to 1.00 using nwg-look */
+ /* NOTE: Waybar v14+ ignores % font-size values */
+ font-size: 99%;
+ font-feature-settings: '"zero", "ss01", "ss02", "ss03", "ss04", "ss05", "cv31"';
}
window#waybar {
- background: white;
- border-radius: 12px;
- /* Waybar scaling: adjust font-size to scale the bar */
- font-size: 14px;
+ background: white;
+ border-radius: 12px;
+ /* Waybar scaling: adjust font-size to scale the bar */
+ font-size: 14px;
}
window#waybar.hidden {
- opacity: 0.7;
- /* Waybar scaling: adjust font-size to scale the bar */
- font-size: 14px;
+ opacity: 0.7;
+ /* Waybar scaling: adjust font-size to scale the bar */
+ font-size: 14px;
}
tooltip {
- background: white;
- border-radius: 10px;
+ background: white;
+ border-radius: 10px;
}
/* Waybar scaling: adjust tooltip label font-size to scale the bar */
tooltip label {
- color: #373737;
- padding-right: 2px;
- padding-left: 2px;
- /* Waybar scaling: adjust tooltip label font-size to scale the bar */
- font-size: 14px;
+ color: #373737;
+ padding-right: 2px;
+ padding-left: 2px;
+ /* Waybar scaling: adjust tooltip label font-size to scale the bar */
+ font-size: 14px;
}
#taskbar button,
#workspaces button {
- color: #585b70;
- box-shadow: none;
- text-shadow: none;
- padding: 0px;
- border-radius: 9px;
- padding-left: 4px;
- padding-right: 4px;
- animation: gradient_f 20s ease-in infinite;
- transition: all 0.5s cubic-bezier(.55,-0.68,.48,1.682);
+ color: #585b70;
+ box-shadow: none;
+ text-shadow: none;
+ padding: 0px;
+ border-radius: 9px;
+ padding-left: 4px;
+ padding-right: 4px;
+ animation: gradient_f 20s ease-in infinite;
+ transition: all 0.5s cubic-bezier(0.55, -0.68, 0.48, 1.682);
}
#workspaces button.active {
- background-color: dimgrey;
- color: #000000;
- border-radius: 15px 15px 15px 15px;
- padding-left: 8px;
- padding-right: 8px;
- animation: gradient_f 20s ease-in infinite;
- transition: all 0.3s cubic-bezier(.55,-0.68,.48,1.682);
+ background-color: dimgrey;
+ color: #000000;
+ border-radius: 15px 15px 15px 15px;
+ padding-left: 8px;
+ padding-right: 8px;
+ animation: gradient_f 20s ease-in infinite;
+ transition: all 0.3s cubic-bezier(0.55, -0.68, 0.48, 1.682);
}
#workspaces button.focused {
- color: #000000;
+ color: #000000;
}
#workspaces button.urgent {
- color: #000000;
- border-radius: 10px;
+ color: #000000;
+ border-radius: 10px;
}
#workspaces button:hover {
- color: #000000;
- border-radius: 15px;
- padding-left: 2px;
- padding-right: 2px;
- animation: gradient_f 20s ease-in infinite;
- transition: all 0.3s cubic-bezier(.55,-0.68,.48,1.682);
+ color: #000000;
+ border-radius: 15px;
+ padding-left: 2px;
+ padding-right: 2px;
+ animation: gradient_f 20s ease-in infinite;
+ transition: all 0.3s cubic-bezier(0.55, -0.68, 0.48, 1.682);
}
#backlight,
@@ -133,86 +133,86 @@ tooltip label {
#custom-weather.clearNight,
#custom-weather.cloudyFoggyDay,
#custom-weather.cloudyFoggyNight,
-#custom-weather.default,
+#custom-weather.default,
#custom-weather.rainyDay,
#custom-weather.rainyNight,
#custom-weather.severe,
#custom-weather.showyIcyDay,
#custom-weather.snowyIcyNight,
#custom-weather.sunnyDay {
- color: #000000;
- border-radius: 8px;
- padding-top: 4px;
- padding-bottom: 4px;
- padding-right: 6px;
- padding-left: 6px;
+ color: #000000;
+ border-radius: 8px;
+ padding-top: 4px;
+ padding-bottom: 4px;
+ padding-right: 6px;
+ padding-left: 6px;
}
#temperature.critical {
- background-color: #ff0000;
+ background-color: #ff0000;
}
@keyframes blink {
- to {
- color: #000000;
- }
+ to {
+ color: #000000;
+ }
}
/*-----Indicators----*/
#custom-hypridle.notactive,
#idle_inhibitor.activated {
- color: #39FF14;
- border-bottom: 8px solid rgba(0, 0, 0, 0.2);
+ color: #39ff14;
+ border-bottom: 0px solid rgba(0, 0, 0, 0.2);
}
#taskbar button.active {
- background-color: #585b70;
- color: #cdd6f4;
- padding-left: 12px;
- padding-right: 12px;
- animation: gradient_f 20s ease-in infinite;
- transition: all 0.3s cubic-bezier(.55,-0.68,.48,1.682);
+ background-color: #585b70;
+ color: #cdd6f4;
+ padding-left: 12px;
+ padding-right: 12px;
+ animation: gradient_f 20s ease-in infinite;
+ transition: all 0.3s cubic-bezier(0.55, -0.68, 0.48, 1.682);
}
#taskbar button:hover {
- padding-left: 3px;
- padding-right: 3px;
- animation: gradient_f 20s ease-in infinite;
- transition: all 0.3s cubic-bezier(.55,-0.68,.48,1.682);
+ padding-left: 3px;
+ padding-right: 3px;
+ animation: gradient_f 20s ease-in infinite;
+ transition: all 0.3s cubic-bezier(0.55, -0.68, 0.48, 1.682);
}
#battery.critical:not(.charging) {
- color: #f53c3c;
- animation-name: blink;
- animation-duration: 3.0s;
- animation-timing-function: steps(12);
- animation-iteration-count: infinite;
- animation-direction: alternate;
+ color: #f53c3c;
+ animation-name: blink;
+ animation-duration: 3s;
+ animation-timing-function: steps(12);
+ animation-iteration-count: infinite;
+ animation-direction: alternate;
}
#backlight-slider slider,
#pulseaudio-slider slider {
- min-width: 0px;
- min-height: 0px;
- opacity: 0;
- background-image: none;
- border: none;
- box-shadow: none;
+ min-width: 0px;
+ min-height: 0px;
+ opacity: 0;
+ background-image: none;
+ border: none;
+ box-shadow: none;
}
#backlight-slider trough,
#pulseaudio-slider trough {
- min-width: 80px;
- min-height: 5px;
- border-radius: 5px;
- background-color: grey;
+ min-width: 80px;
+ min-height: 5px;
+ border-radius: 5px;
+ background-color: grey;
}
#backlight-slider highlight,
#pulseaudio-slider highlight {
- min-height: 10px;
- border-radius: 5px;
- background-color: #ba5663;
+ min-height: 10px;
+ border-radius: 5px;
+ background-color: #ba5663;
}
/* --- tray readability override (global) --- */
diff --git a/config/waybar/style/Rainbow-RGB-Bordered.css b/config/waybar/style/Rainbow-RGB-Bordered.css
index 932f75b8..53306120 100644
--- a/config/waybar/style/Rainbow-RGB-Bordered.css
+++ b/config/waybar/style/Rainbow-RGB-Bordered.css
@@ -3,87 +3,89 @@
/* Designed by https://github.com/0xl30 */
* {
- font-family: "JetBrainsMono Nerd Font";
- font-weight: bold;
- min-height: 0;
- /* set font-size to 100% if font scaling is set to 1.00 using nwg-look */
- /* NOTE: Waybar v14+ ignores % font-size values */
- font-size: 99%;
- font-feature-settings: '"zero", "ss01", "ss02", "ss03", "ss04", "ss05", "cv31"';
+ font-family: "JetBrainsMono Nerd Font";
+ font-weight: bold;
+ min-height: 0;
+ /* set font-size to 100% if font scaling is set to 1.00 using nwg-look */
+ /* NOTE: Waybar v14+ ignores % font-size values */
+ font-size: 99%;
+ font-feature-settings: '"zero", "ss01", "ss02", "ss03", "ss04", "ss05", "cv31"';
}
@import "../waybar/style/catppuccin-themes/rgbmocha.css";
window#waybar {
- transition-property: background-color;
- transition-duration: 0.5s;
- background: transparent;
- border-radius: 2px;
- /* Waybar scaling: adjust font-size to scale the bar */
- font-size: 14px;
+ transition-property: background-color;
+ transition-duration: 0.5s;
+ background: transparent;
+ border-radius: 2px;
+ /* Waybar scaling: adjust font-size to scale the bar */
+ font-size: 14px;
}
window#waybar.hidden {
- opacity: 0.2;
- /* Waybar scaling: adjust font-size to scale the bar */
- font-size: 14px;
+ opacity: 0.2;
+ /* Waybar scaling: adjust font-size to scale the bar */
+ font-size: 14px;
}
window#waybar.empty,
window#waybar.empty #window {
- background-color: transparent;
- padding: 0px;
- border: 0px;
- /* Waybar scaling: adjust font-size to scale the bar */
- font-size: 14px;
+ background-color: transparent;
+ padding: 0px;
+ border: 0px;
+ /* Waybar scaling: adjust font-size to scale the bar */
+ font-size: 14px;
}
#taskbar button,
#workspaces button {
- color: @overlay1;
- box-shadow: none;
- text-shadow: none;
- padding: 0px;
- border-radius: 9px;
- padding-left: 4px;
- padding-right: 4px;
- animation: gradient_f 20s ease-in infinite;
- transition: all 0.5s cubic-bezier(.55,-0.68,.48,1.682);
+ color: @overlay1;
+ box-shadow: none;
+ text-shadow: none;
+ padding: 0px;
+ border-radius: 9px;
+ padding-left: 4px;
+ padding-right: 4px;
+ animation: gradient_f 20s ease-in infinite;
+ transition: all 0.5s cubic-bezier(0.55, -0.68, 0.48, 1.682);
}
#taskbar button:hover,
#workspaces button:hover {
- border-radius: 10px;
- color: @peach;
- background-color: @surface0;
- padding-left: 2px;
- padding-right: 2px;
- animation: gradient_f 20s ease-in infinite;
- transition: all 0.3s cubic-bezier(.55,-0.68,.48,1.682);
+ border-radius: 10px;
+ color: @peach;
+ background-color: @surface0;
+ padding-left: 2px;
+ padding-right: 2px;
+ animation: gradient_f 20s ease-in infinite;
+ transition: all 0.3s cubic-bezier(0.55, -0.68, 0.48, 1.682);
}
#workspaces button.persistent {
- color: @surface1;
- border-radius: 10px;
+ color: @surface1;
+ border-radius: 10px;
}
#taskbar button.active,
#workspaces button.active {
- color: @mauve;
- border-radius: 10px;
- padding-left: 8px;
- padding-right: 8px;
- animation: gradient_f 20s ease-in infinite;
- transition: all 0.3s cubic-bezier(.55,-0.68,.48,1.682);
+ color: @mauve;
+ border-radius: 10px;
+ padding-left: 8px;
+ padding-right: 8px;
+ animation: gradient_f 20s ease-in infinite;
+ transition: all 0.3s cubic-bezier(0.55, -0.68, 0.48, 1.682);
}
#workspaces button.urgent {
- color: @red;
- border-radius: 0px;
+ color: @red;
+ border-radius: 0px;
}
/* This section can be use if you want to separate waybar modules */
-.modules-left, .modules-center, .modules-right {
+.modules-left,
+.modules-center,
+.modules-right {
background: @theme_base_color;
border: 2px solid transparent;
padding-top: 2px;
@@ -92,11 +94,20 @@ window#waybar.empty #window {
padding-left: 4px;
border-radius: 0px;
- border-image: linear-gradient(90deg, red, orange, yellow, green, blue, indigo, violet) 1;
- animation: rainbow-gradient 20s ease-in-out infinite; /* Adjust timing as needed */
+ border-image: linear-gradient(
+ 90deg,
+ red,
+ orange,
+ yellow,
+ green,
+ blue,
+ indigo,
+ violet
+ )
+ 1;
+ animation: rainbow-gradient 20s ease-in-out infinite; /* Adjust timing as needed */
}
-
#backlight,
#backlight-slider,
#battery,
@@ -152,23 +163,23 @@ window#waybar.empty #window {
#custom-weather.clearNight,
#custom-weather.cloudyFoggyDay,
#custom-weather.cloudyFoggyNight,
-#custom-weather.default,
+#custom-weather.default,
#custom-weather.rainyDay,
#custom-weather.rainyNight,
#custom-weather.severe,
#custom-weather.showyIcyDay,
#custom-weather.snowyIcyNight,
#custom-weather.sunnyDay {
- padding-top: 4px;
- padding-bottom: 4px;
- padding-right: 6px;
- padding-left: 6px;
+ padding-top: 4px;
+ padding-bottom: 4px;
+ padding-right: 6px;
+ padding-left: 6px;
}
/*-----Indicators----*/
#custom-hypridle.notactive,
#idle_inhibitor.activated {
- color: #39FF14;
- border-bottom: 8px solid rgba(0, 0, 0, 0.2);
+ color: #39ff14;
+ border-bottom: 0px solid rgba(0, 0, 0, 0.2);
}
#bluetooth,
@@ -190,7 +201,7 @@ window#waybar.empty #window {
background-color: @red;
color: @theme_text_color;
animation-name: blink;
- animation-duration: 3.0s;
+ animation-duration: 3s;
animation-timing-function: steps(12);
animation-iteration-count: infinite;
animation-direction: alternate;
@@ -234,17 +245,24 @@ window#waybar.empty #window {
}
#custom-cava_mviz {
- animation: rainbow-text 0.80s linear infinite;
+ animation: rainbow-text 0.8s linear infinite;
}
@keyframes rainbow-text {
- 0% { color: rgb(0, 247, 198); } /* Low amplitude */
- 42% { color: rgb(60, 0, 179); } /* Mid amplitude */
- 71% { color: indigo; } /* Higher amplitude */
- 100% { color: rgb(234, 0, 255); } /* Maximum amplitude */
+ 0% {
+ color: rgb(0, 247, 198);
+ } /* Low amplitude */
+ 42% {
+ color: rgb(60, 0, 179);
+ } /* Mid amplitude */
+ 71% {
+ color: indigo;
+ } /* Higher amplitude */
+ 100% {
+ color: rgb(234, 0, 255);
+ } /* Maximum amplitude */
}
-
#custom-menu {
color: @rosewater;
}
@@ -285,7 +303,7 @@ window#waybar.empty #window {
}
#mpris {
- color:@lavender;
+ color: @lavender;
}
#network {
@@ -299,25 +317,25 @@ window#waybar.empty #window {
#backlight-slider slider,
#pulseaudio-slider slider {
- min-width: 0px;
- min-height: 0px;
- opacity: 0;
- background-image: none;
- border: none;
- box-shadow: none;
+ min-width: 0px;
+ min-height: 0px;
+ opacity: 0;
+ background-image: none;
+ border: none;
+ box-shadow: none;
}
#backlight-slider trough,
#pulseaudio-slider trough {
- min-width: 80px;
- min-height: 5px;
- border-radius: 5px;
+ min-width: 80px;
+ min-height: 5px;
+ border-radius: 5px;
}
#backlight-slider highlight,
#pulseaudio-slider highlight {
- min-height: 10px;
- border-radius: 5px;
+ min-height: 10px;
+ border-radius: 5px;
}
/* --- tray readability override (global) --- */
diff --git a/config/waybar/style/Retro-Simple-Style.css b/config/waybar/style/Retro-Simple-Style.css
index 03ae4a33..49725bfd 100644
--- a/config/waybar/style/Retro-Simple-Style.css
+++ b/config/waybar/style/Retro-Simple-Style.css
@@ -9,14 +9,13 @@
@define-color green #b8bb26;
* {
- font-family: "JetBrainsMono Nerd Font";
- font-weight: bold;
- min-height: 0;
- /* set font-size to 100% if font scaling is set to 1.00 using nwg-look */
- /* NOTE: Waybar v14+ ignores % font-size values */
- font-size: 99%;
- font-feature-settings: '"zero", "ss01", "ss02", "ss03", "ss04", "ss05", "cv31"';
-
+ font-family: "JetBrainsMono Nerd Font";
+ font-weight: bold;
+ min-height: 0;
+ /* set font-size to 100% if font scaling is set to 1.00 using nwg-look */
+ /* NOTE: Waybar v14+ ignores % font-size values */
+ font-size: 99%;
+ font-feature-settings: '"zero", "ss01", "ss02", "ss03", "ss04", "ss05", "cv31"';
}
window#waybar {
@@ -102,7 +101,7 @@ window#waybar {
#custom-weather.clearNight,
#custom-weather.cloudyFoggyDay,
#custom-weather.cloudyFoggyNight,
-#custom-weather.default,
+#custom-weather.default,
#custom-weather.rainyDay,
#custom-weather.rainyNight,
#custom-weather.severe,
@@ -131,7 +130,7 @@ window#waybar {
background-color: @red;
color: white;
animation-name: blink;
- animation-duration: 3.0s;
+ animation-duration: 3s;
animation-timing-function: steps(12);
animation-iteration-count: infinite;
animation-direction: alternate;
@@ -141,8 +140,8 @@ window#waybar {
/*-----Indicators----*/
#custom-hypridle.notactive,
#idle_inhibitor.activated {
- color: #39FF14;
- border-bottom: 3px solid yellow;
+ color: #39ff14;
+ border-bottom: 0px solid yellow;
}
#battery.critical,
@@ -154,7 +153,7 @@ window#waybar {
}
#temperature.critical {
- background-color: red;
+ background-color: red;
}
#battery.charging {
@@ -164,27 +163,27 @@ window#waybar {
#backlight-slider slider,
#pulseaudio-slider slider {
- min-width: 0px;
- min-height: 0px;
- opacity: 0;
- background-image: none;
- border: none;
- box-shadow: none;
+ min-width: 0px;
+ min-height: 0px;
+ opacity: 0;
+ background-image: none;
+ border: none;
+ box-shadow: none;
}
#backlight-slider trough,
#pulseaudio-slider trough {
- min-width: 80px;
- min-height: 5px;
- border-radius: 5px;
- background-color: @dim;
+ min-width: 80px;
+ min-height: 5px;
+ border-radius: 5px;
+ background-color: @dim;
}
#backlight-slider highlight,
#pulseaudio-slider highlight {
- min-height: 10px;
- border-radius: 5px;
- background-color: @green;
+ min-height: 10px;
+ border-radius: 5px;
+ background-color: @green;
}
/* --- tray readability override (global) --- */
diff --git a/config/waybar/style/Transparent-Crystal-Clear.css b/config/waybar/style/Transparent-Crystal-Clear.css
index ae4f57c0..4e4fb3fa 100644
--- a/config/waybar/style/Transparent-Crystal-Clear.css
+++ b/config/waybar/style/Transparent-Crystal-Clear.css
@@ -2,79 +2,78 @@
/* .......Crystal Clear....................... */
/* --- 👍 designed by https://github.com/Krautt 👍 --- */
-*{
- font-family: "JetBrainsMono Nerd Font";
- font-weight: bold;
- min-height: 0;
- /* set font-size to 100% if font scaling is set to 1.00 using nwg-look */
- /* NOTE: Waybar v14+ ignores % font-size values */
- font-size: 99%;
- font-feature-settings: '"zero", "ss01", "ss02", "ss03", "ss04", "ss05", "cv31"';
+* {
+ font-family: "JetBrainsMono Nerd Font";
+ font-weight: bold;
+ min-height: 0;
+ /* set font-size to 100% if font scaling is set to 1.00 using nwg-look */
+ /* NOTE: Waybar v14+ ignores % font-size values */
+ font-size: 99%;
+ font-feature-settings: '"zero", "ss01", "ss02", "ss03", "ss04", "ss05", "cv31"';
}
-
+
window#waybar {
- background:transparent;
- border-radius: 1px;
- color: whitesmoke;
- /* Waybar scaling: adjust font-size to scale the bar */
- font-size: 14px;
+ background: transparent;
+ border-radius: 1px;
+ color: whitesmoke;
+ /* Waybar scaling: adjust font-size to scale the bar */
+ font-size: 14px;
}
-
+
window#waybar.hidden {
- opacity: 0.5;
- /* Waybar scaling: adjust font-size to scale the bar */
- font-size: 14px;
+ opacity: 0.5;
+ /* Waybar scaling: adjust font-size to scale the bar */
+ font-size: 14px;
}
-window#waybar.empty
-window#waybar.empty #window {
- padding: 0px;
- border: 0px;
- background-color: transparent;
- /* Waybar scaling: adjust font-size to scale the bar */
- font-size: 14px;
+window#waybar.empty window#waybar.empty #window {
+ padding: 0px;
+ border: 0px;
+ background-color: transparent;
+ /* Waybar scaling: adjust font-size to scale the bar */
+ font-size: 14px;
}
-#taskbar button,
+#taskbar button,
#workspaces button {
- color: #6E6A86;
- box-shadow: none;
- text-shadow: none;
- padding: 0px;
- border-radius: 9px;
- padding-left: 4px;
- padding-right: 4px;
- animation: gradient_f 20s ease-in infinite;
- transition: all 0.5s cubic-bezier(.55,-0.68,.48,1.682);
+ color: #6e6a86;
+ box-shadow: none;
+ text-shadow: none;
+ padding: 0px;
+ border-radius: 9px;
+ padding-left: 4px;
+ padding-right: 4px;
+ animation: gradient_f 20s ease-in infinite;
+ transition: all 0.5s cubic-bezier(0.55, -0.68, 0.48, 1.682);
}
-
+
#workspaces button.active {
- color: whitesmoke;
- border-radius: 15px 15px 15px 15px;
- padding-left: 8px;
- padding-right: 8px;
- animation: gradient_f 20s ease-in infinite;
- transition: all 0.3s cubic-bezier(.55,-0.68,.48,1.682);
+ color: whitesmoke;
+ border-radius: 15px 15px 15px 15px;
+ padding-left: 8px;
+ padding-right: 8px;
+ animation: gradient_f 20s ease-in infinite;
+ transition: all 0.3s cubic-bezier(0.55, -0.68, 0.48, 1.682);
}
-
+
#workspaces button.focused {
- color: #d8dee9;
+ color: #d8dee9;
}
-
+
#workspaces button.urgent {
- color: #11111b;
- border-radius: 10px;
+ color: #11111b;
+ border-radius: 10px;
}
-
+
#workspaces button:hover {
- color: whitesmoke;
- border-radius: 15px;
- padding-left: 2px;
- padding-right: 2px;
- animation: gradient_f 20s ease-in infinite;
- transition: all 0.3s cubic-bezier(.55,-0.68,.48,1.682);
+ color: whitesmoke;
+ border-radius: 15px;
+ padding-left: 2px;
+ padding-right: 2px;
+ animation: gradient_f 20s ease-in infinite;
+ transition: all 0.3s cubic-bezier(0.55, -0.68, 0.48, 1.682);
}
-
+
#backlight,
#battery,
#bluetooth,
@@ -127,83 +126,82 @@ window#waybar.empty #window {
#custom-weather.clearNight,
#custom-weather.cloudyFoggyDay,
#custom-weather.cloudyFoggyNight,
-#custom-weather.default
-#custom-weather.rainyDay,
+#custom-weather.default #custom-weather.rainyDay,
#custom-weather.rainyNight,
#custom-weather.severe,
#custom-weather.showyIcyDay,
#custom-weather.snowyIcyNight,
#custom-weather.sunnyDay {
- padding-top: 4px;
- padding-bottom: 4px;
- padding-right: 6px;
- padding-left: 6px;
+ padding-top: 4px;
+ padding-bottom: 4px;
+ padding-right: 6px;
+ padding-left: 6px;
}
-
+
#temperature.critical {
- background-color: #ff0000;
+ background-color: #ff0000;
}
-
+
@keyframes blink {
- to {
- color: #000000;
- }
+ to {
+ color: #000000;
+ }
}
/*-----Indicators----*/
#custom-hypridle.notactive,
#idle_inhibitor.activated {
- color: #39FF14;
- border-bottom: 8px solid rgba(0, 0, 0, 0.2);
+ color: #39ff14;
+ border-bottom: 0px solid rgba(0, 0, 0, 0.2);
}
#taskbar button:hover {
- padding-left: 3px;
- padding-right: 3px;
- animation: gradient_f 20s ease-in infinite;
- transition: all 0.3s cubic-bezier(.55,-0.68,.48,1.682);
+ padding-left: 3px;
+ padding-right: 3px;
+ animation: gradient_f 20s ease-in infinite;
+ transition: all 0.3s cubic-bezier(0.55, -0.68, 0.48, 1.682);
}
-
+
#taskbar button.active {
- background-color: #7f849c;
- padding-left: 12px;
- padding-right: 12px;
- animation: gradient_f 20s ease-in infinite;
- transition: all 0.3s cubic-bezier(.55,-0.68,.48,1.682);
+ background-color: #7f849c;
+ padding-left: 12px;
+ padding-right: 12px;
+ animation: gradient_f 20s ease-in infinite;
+ transition: all 0.3s cubic-bezier(0.55, -0.68, 0.48, 1.682);
}
-
+
#battery.critical:not(.charging) {
- color: #f53c3c;
- animation-name: blink;
- animation-duration: 3.0s;
- animation-timing-function: steps(12);
- animation-iteration-count: infinite;
- animation-direction: alternate;
+ color: #f53c3c;
+ animation-name: blink;
+ animation-duration: 3s;
+ animation-timing-function: steps(12);
+ animation-iteration-count: infinite;
+ animation-direction: alternate;
}
#backlight-slider slider,
#pulseaudio-slider slider {
- min-width: 0px;
- min-height: 0px;
- opacity: 0;
- background-image: none;
- border: none;
- box-shadow: none;
+ min-width: 0px;
+ min-height: 0px;
+ opacity: 0;
+ background-image: none;
+ border: none;
+ box-shadow: none;
}
#backlight-slider trough,
#pulseaudio-slider trough {
- min-width: 80px;
- min-height: 10px;
- border-radius: 5px;
- background-color: black;
+ min-width: 80px;
+ min-height: 10px;
+ border-radius: 5px;
+ background-color: black;
}
#backlight-slider highlight,
#pulseaudio-slider highlight {
- min-height: 10px;
- border-radius: 5px;
- background-color: wheat;
+ min-height: 10px;
+ border-radius: 5px;
+ background-color: wheat;
}
/* --- tray readability override (global) --- */
diff --git a/config/waybar/style/VERTICAL-Catpuccin-Mocha.css b/config/waybar/style/VERTICAL-Catpuccin-Mocha.css
index f2fecff9..7c092fa2 100644
--- a/config/waybar/style/VERTICAL-Catpuccin-Mocha.css
+++ b/config/waybar/style/VERTICAL-Catpuccin-Mocha.css
@@ -3,13 +3,13 @@
/* As stated on title, best style for vertical layout waybar config */
* {
- font-family: "JetBrainsMono Nerd Font";
- font-weight: bold;
- min-height: 0;
- /* set font-size to 100% if font scaling is set to 1.00 using nwg-look */
- /* NOTE: Waybar v14+ ignores % font-size values */
- font-size: 99%;
- font-feature-settings: '"zero", "ss01", "ss02", "ss03", "ss04", "ss05", "cv31"';
+ font-family: "JetBrainsMono Nerd Font";
+ font-weight: bold;
+ min-height: 0;
+ /* set font-size to 100% if font scaling is set to 1.00 using nwg-look */
+ /* NOTE: Waybar v14+ ignores % font-size values */
+ font-size: 99%;
+ font-feature-settings: '"zero", "ss01", "ss02", "ss03", "ss04", "ss05", "cv31"';
}
@import "../waybar/style/catppuccin-themes/mocha.css";
@@ -41,10 +41,10 @@ tooltip label {
#workspaces button {
color: @surface2;
background-color: transparent;
- padding-top: 4px;
- padding-bottom: 4px;
- padding-right: 6px;
- padding-left: 4px;
+ padding-top: 4px;
+ padding-bottom: 4px;
+ padding-right: 6px;
+ padding-left: 4px;
}
#taskbar button.active,
@@ -126,7 +126,7 @@ tooltip label {
#custom-weather.clearNight,
#custom-weather.cloudyFoggyDay,
#custom-weather.cloudyFoggyNight,
-#custom-weather.default,
+#custom-weather.default,
#custom-weather.rainyDay,
#custom-weather.rainyNight,
#custom-weather.severe,
@@ -142,7 +142,7 @@ tooltip label {
#idle_inhibitor {
color: @pink;
- border-bottom: 8px solid rgba(0, 0, 0, 0.2);
+ border-bottom: 0px solid rgba(0, 0, 0, 0.2);
}
#mpris {
@@ -188,7 +188,6 @@ tooltip label {
color: @flamingo;
}
-
#custom-weather {
color: @green;
border-radius: 15px;
diff --git a/config/waybar/style/Wallust-Bordered-Chroma-Fusion-Edge.css b/config/waybar/style/Wallust-Bordered-Chroma-Fusion-Edge.css
index 6426a420..71215c29 100644
--- a/config/waybar/style/Wallust-Bordered-Chroma-Fusion-Edge.css
+++ b/config/waybar/style/Wallust-Bordered-Chroma-Fusion-Edge.css
@@ -17,48 +17,48 @@
@define-color button-color @color11;
@define-color button-hover @color9;
-@import '../../.config/waybar/wallust/colors-waybar.css';
+@import "../../.config/waybar/wallust/colors-waybar.css";
@import "../waybar/style/catppuccin-themes/latte.css";
* {
- font-family: "JetBrainsMono Nerd Font";
- font-weight: bold;
- min-height: 0;
- /* set font-size to 100% if font scaling is set to 1.00 using nwg-look */
- /* NOTE: Waybar v14+ ignores % font-size values */
- font-size: 99%;
- font-feature-settings: '"zero", "ss01", "ss02", "ss03", "ss04", "ss05", "cv31"';
+ font-family: "JetBrainsMono Nerd Font";
+ font-weight: bold;
+ min-height: 0;
+ /* set font-size to 100% if font scaling is set to 1.00 using nwg-look */
+ /* NOTE: Waybar v14+ ignores % font-size values */
+ font-size: 99%;
+ font-feature-settings: '"zero", "ss01", "ss02", "ss03", "ss04", "ss05", "cv31"';
}
window#waybar {
- background: linear-gradient(0deg, @border-color, black);
- /*background: rgba(1, 117, 84, 0.5);*/
- /*background: @transparent;*/
- border-bottom-right-radius: 20px;
- border-bottom-left-radius: 20px;
- border-top-left-radius: 20px;
- border-top-right-radius: 20px;
- border:2px solid black;
- /* Waybar scaling: adjust font-size to scale the bar */
- font-size: 14px;
+ background: linear-gradient(0deg, @border-color, black);
+ /*background: rgba(1, 117, 84, 0.5);*/
+ /*background: @transparent;*/
+ border-bottom-right-radius: 20px;
+ border-bottom-left-radius: 20px;
+ border-top-left-radius: 20px;
+ border-top-right-radius: 20px;
+ border: 2px solid black;
+ /* Waybar scaling: adjust font-size to scale the bar */
+ font-size: 14px;
}
window#waybar.empty,
window#waybar.empty #window {
- background-color: transparent;
- padding: 0px;
- border: 0px;
- /* Waybar scaling: adjust font-size to scale the bar */
- font-size: 14px;
+ background-color: transparent;
+ padding: 0px;
+ border: 0px;
+ /* Waybar scaling: adjust font-size to scale the bar */
+ font-size: 14px;
}
tooltip {
- background-color: transparent;
- border-radius: 10px;
- border-width: 1px;
- border-style: solid;
- border-color: #11111b;
- color: @border-color;
+ background-color: transparent;
+ border-radius: 10px;
+ border-width: 1px;
+ border-style: solid;
+ border-color: #11111b;
+ color: @border-color;
}
#backlight,
@@ -114,70 +114,69 @@ tooltip {
#custom-weather.clearNight,
#custom-weather.cloudyFoggyDay,
#custom-weather.cloudyFoggyNight,
-#custom-weather.default,
+#custom-weather.default,
#custom-weather.rainyDay,
#custom-weather.rainyNight,
#custom-weather.severe,
#custom-weather.showyIcyDay,
#custom-weather.snowyIcyNight,
#custom-weather.sunnyDay {
- background-color: @background-module;
- border-radius: 25px;
- padding: 0px 10px 0px 10px;
- margin: 5px;
- opacity: 1;
- border:2px solid @border-color;
-
+ background-color: @background-module;
+ border-radius: 25px;
+ padding: 0px 10px 0px 10px;
+ margin: 5px;
+ opacity: 1;
+ border: 2px solid @border-color;
}
#custom-power {
- color: red;
- padding: 0px 0px 0px 7px;
- opacity:1.0;
+ color: red;
+ padding: 0px 0px 0px 0px;
+ opacity: 1;
}
#backlight {
- padding: 0px 2px 0px 6px;
+ padding: 0px 2px 0px 6px;
}
#custom-light_dark,
#custom-nightlight,
-#custom-menu{
- color: @flamingo;
- padding: 0px 8px 0px 4px;
- opacity:1.0;
+#custom-menu {
+ color: @flamingo;
+ padding: 0px 8px 0px 4px;
+ opacity: 1;
}
#custom-weather,
#custom-weather2,
#custom-updates {
- color: @yellow;
+ color: @yellow;
}
#mpris {
- padding-right: 2px;
+ padding-right: 2px;
}
#keyboard-state,
#clock {
- color: @sapphire;
+ color: @sapphire;
}
#temperature {
- color: @rosewater;
+ color: @rosewater;
}
#network {
- padding-left: 2px;
- color: @rosewater;
+ padding-left: 2px;
+ color: @rosewater;
}
#custom-swaync,
#custom-hint,
#tray {
- color: aliceblue;
+ color: aliceblue;
}
#taskbar,
-#window {
- color:#FFFFFF;
+#window {
+ color: #ffffff;
}
#bluetooth,
@@ -185,141 +184,140 @@ tooltip {
#custom-cycle_wall,
#custom-keyboard,
#custom-light_dark {
- color: @lavender;
+ color: @lavender;
}
#custom-lock,
#custom-hypridle,
#idle_inhibitor {
- color: @teal;
- border-bottom: 8px solid rgba(0, 0, 0, 0.2);
+ color: @teal;
+ border-bottom: 0px solid rgba(0, 0, 0, 0.2);
}
/*-----Indicators----*/
#custom-hypridle.notactive,
#idle_inhibitor.activated {
- color: #39FF14;
- border-bottom: 8px solid rgba(0, 0, 0, 0.2);
+ color: #39ff14;
+ border-bottom: 0px solid rgba(0, 0, 0, 0.2);
}
-#custom-cava_mviz{
- color: @color2;
+#custom-cava_mviz {
+ color: @color2;
}
#workspaces {
- border-radius: 25px;
- border:2px solid @border-color;
- opacity:0.8;
- color:#FFFFFF;
- margin: 6px;
-
+ border-radius: 25px;
+ border: 2px solid @border-color;
+ opacity: 0.8;
+ color: #ffffff;
+ margin: 6px;
}
#taskbar button,
#workspaces button {
- border-radius: 15px;
- border:0px;
- color: @color15;
- padding-left: 2px;
- padding-right: 2px;
- animation: gradient_f 20s ease-in infinite;
- transition: all 0.5s cubic-bezier(.55,-0.68,.48,1.682);
- opacity:0.8;
+ border-radius: 15px;
+ border: 0px;
+ color: @color15;
+ padding-left: 2px;
+ padding-right: 2px;
+ animation: gradient_f 20s ease-in infinite;
+ transition: all 0.5s cubic-bezier(0.55, -0.68, 0.48, 1.682);
+ opacity: 0.8;
}
#taskbar button.active,
#workspaces button.active {
- color: #FFFFFF;
- background: @button-color;
- border-radius: 25px;
- padding-left: 4px;
- padding-right: 4px;
- animation: gradient_f 20s ease-in infinite;
- transition: all 0.3s cubic-bezier(.55,-0.68,.48,1.682);
- opacity:1.0;
+ color: #ffffff;
+ background: @button-color;
+ border-radius: 25px;
+ padding-left: 4px;
+ padding-right: 4px;
+ animation: gradient_f 20s ease-in infinite;
+ transition: all 0.3s cubic-bezier(0.55, -0.68, 0.48, 1.682);
+ opacity: 1;
}
#workspaces button.empty {
- color: #FFFFFF;
- opacity:1.0;
+ color: #ffffff;
+ opacity: 1;
}
#taskbar button:hover,
#workspaces button:hover {
- color: #FFFFFF;
- background: @button-hover;
- border-radius: 15px;
- opacity:1.0;
- padding-left: 2px;
- padding-right: 2px;
- animation: gradient_f 20s ease-in infinite;
- transition: all 0.3s cubic-bezier(.55,-0.68,.48,1.682);
+ color: #ffffff;
+ background: @button-hover;
+ border-radius: 15px;
+ opacity: 1;
+ padding-left: 2px;
+ padding-right: 2px;
+ animation: gradient_f 20s ease-in infinite;
+ transition: all 0.3s cubic-bezier(0.55, -0.68, 0.48, 1.682);
}
#pulseaudio-slider,
#pulseaudio {
- color: @color13;
+ color: @color13;
}
#pulseaudio.muted {
- color: red;
+ color: red;
}
#memory {
- color: @sapphire;
+ color: @sapphire;
}
#cpu {
- color: @mauve;
+ color: @mauve;
}
#battery {
- color: @rosewater;
+ color: @rosewater;
}
#disk {
- color: @sky;
+ color: @sky;
}
#temperature.critical {
- background-color: red;
+ background-color: red;
}
@keyframes blink {
- to {
- color: #000000;
- }
+ to {
+ color: #000000;
+ }
}
#battery.critical:not(.charging) {
- color: #f53c3c;
- animation-name: blink;
- animation-duration: 3.0s;
- animation-timing-function: steps(12);
- animation-iteration-count: infinite;
- animation-direction: alternate;
+ color: #f53c3c;
+ animation-name: blink;
+ animation-duration: 3s;
+ animation-timing-function: steps(12);
+ animation-iteration-count: infinite;
+ animation-direction: alternate;
}
#backlight-slider slider,
#pulseaudio-slider slider {
- min-width: 0px;
- min-height: 0px;
- opacity: 0;
- background-image: none;
- border: none;
- box-shadow: none;
+ min-width: 0px;
+ min-height: 0px;
+ opacity: 0;
+ background-image: none;
+ border: none;
+ box-shadow: none;
}
#backlight-slider trough,
#pulseaudio-slider trough {
- min-width: 80px;
- min-height: 5px;
- border-radius: 5px;
+ min-width: 80px;
+ min-height: 5px;
+ border-radius: 5px;
}
#backlight-slider highlight,
#pulseaudio-slider highlight {
- min-height: 10px;
- border-radius: 5px;
+ min-height: 10px;
+ border-radius: 5px;
}
/* --- tray readability override (global) --- */
diff --git a/config/waybar/style/Wallust-Bordered-Chroma-Simple.css b/config/waybar/style/Wallust-Bordered-Chroma-Simple.css
index 3f51751a..05ad5f91 100644
--- a/config/waybar/style/Wallust-Bordered-Chroma-Simple.css
+++ b/config/waybar/style/Wallust-Bordered-Chroma-Simple.css
@@ -1,97 +1,96 @@
/* ----------- 💫 https://github.com/LinuxBeginnings 💫 -------- */
/* Wallust Bordered - Chroma Simple */
-@import '../../.config/waybar/wallust/colors-waybar.css';
-
+@import "../../.config/waybar/wallust/colors-waybar.css";
* {
- font-family: "JetBrainsMono Nerd Font";
- font-weight: bold;
- /* set font-size to 100% if font scaling is set to 1.00 using nwg-look */
- /* NOTE: Waybar v14+ ignores % font-size values */
- font-size: 99%;
- min-height: 0;
+ font-family: "JetBrainsMono Nerd Font";
+ font-weight: bold;
+ /* set font-size to 100% if font scaling is set to 1.00 using nwg-look */
+ /* NOTE: Waybar v14+ ignores % font-size values */
+ font-size: 99%;
+ min-height: 0;
}
/* Make group buttons themselves use readable text */
#group-audio,
#group-mobo_drawer {
- background: @background;
- color: @color15;
- border: 2px solid @color13;
+ background: @background;
+ color: @color15;
+ border: 2px solid @color13;
}
window#waybar {
- background-color: transparent;
- color: @foreground;
- padding-left: 15px;
- padding-right: 15px;
- /* Waybar scaling: adjust font-size to scale the bar */
- font-size: 14px;
+ background-color: transparent;
+ color: @foreground;
+ padding-left: 15px;
+ padding-right: 15px;
+ /* Waybar scaling: adjust font-size to scale the bar */
+ font-size: 14px;
}
window#waybar.empty,
window#waybar.empty #window {
- background-color: transparent;
- padding: 0px;
- border: 0px;
- /* Waybar scaling: adjust font-size to scale the bar */
- font-size: 14px;
+ background-color: transparent;
+ padding: 0px;
+ border: 0px;
+ /* Waybar scaling: adjust font-size to scale the bar */
+ font-size: 14px;
}
tooltip {
- background-color: @background;
- color: @foreground;
- border-radius: 10px;
- border-width: 1.5px;
- border-style: solid;
- border-color: @color13;
- transition: 0.3s;
- opacity: 0.9;
+ background-color: @background;
+ color: @foreground;
+ border-radius: 10px;
+ border-width: 1.5px;
+ border-style: solid;
+ border-color: @color13;
+ transition: 0.3s;
+ opacity: 0.9;
}
#taskbar button,
#workspaces {
- border-radius: 20px;
- background: @background;
- opacity: 1;
- padding: 0px 10px;
- margin: 0;
- margin-top: 5px;
- border: 2px solid @color12;
+ border-radius: 20px;
+ background: @background;
+ opacity: 1;
+ padding: 0px 10px;
+ margin: 0;
+ margin-top: 5px;
+ border: 2px solid @color12;
}
#workspaces button {
- color: @color10;
- box-shadow: none;
- text-shadow: none;
- padding-right: 12px;
- border-radius: 9px;
- animation: gradient_f 20s ease-in infinite;
- transition: all 0.5s cubic-bezier(.55,-0.68,.48,1.682);
+ color: @color10;
+ box-shadow: none;
+ text-shadow: none;
+ padding-right: 12px;
+ border-radius: 9px;
+ animation: gradient_f 20s ease-in infinite;
+ transition: all 0.5s cubic-bezier(0.55, -0.68, 0.48, 1.682);
}
#taskbar button.active,
#workspaces button.active {
- color: @color12;
- padding-right: 12px;
- background-color: @background;
- animation: gradient_f 20s ease-in infinite;
- transition: all 0.3s cubic-bezier(.55,-0.68,.48,1.682);
+ color: @color12;
+ padding-right: 12px;
+ background-color: @background;
+ animation: gradient_f 20s ease-in infinite;
+ transition: all 0.3s cubic-bezier(0.55, -0.68, 0.48, 1.682);
}
#workspaces button.urgent {
- color: #11111b;
- border-radius: 10px;
+ color: #11111b;
+ border-radius: 10px;
}
#taskbar button:hover,
#workspaces button:hover {
- color: @color12;
- padding-left: 0px;
- padding-right: 2px;
- animation: gradient_f 20s ease-in infinite;
- transition: all 0.3s cubic-bezier(.55,-0.68,.48,1.682);
+ color: @color12;
+ padding-left: 0px;
+ padding-right: 2px;
+ animation: gradient_f 20s ease-in infinite;
+ transition: all 0.3s cubic-bezier(0.55, -0.68, 0.48, 1.682);
}
#backlight,
@@ -156,140 +155,138 @@ tooltip {
#custom-weather.showyIcyDay,
#custom-weather.snowyIcyNight,
#custom-weather.sunnyDay {
- border-radius: 20px;
- background: @background;
- opacity: 1;
- padding: 0px 10px;
- margin: 0;
- margin-top: 5px;
- border: 2px solid @color13;
+ border-radius: 20px;
+ background: @background;
+ opacity: 1;
+ padding: 0px 10px;
+ margin: 0;
+ margin-top: 5px;
+ border: 2px solid @color13;
}
-
#cpu {
- border: 2px solid @color5;
- color: @foreground;
- background: @color12;
+ border: 2px solid @color5;
+ color: @foreground;
+ background: @color12;
}
#memory {
- color: @foreground;
- background: @color12;
+ color: @foreground;
+ background: @color12;
}
#disk {
- color: @foreground;
- background: @color12;
- border: 2px solid @color13;
+ color: @foreground;
+ background: @color12;
+ border: 2px solid @color13;
}
-#temperature{
- color: @foreground;
- background: @color12;
+#temperature {
+ color: @foreground;
+ background: @color12;
}
#temperature.critical {
- color: red;
- border: 2px solid red;
+ color: red;
+ border: 2px solid red;
}
#custom-power {
- color: @color13;
- padding-left: 10px;
- padding-right: 2px;
- border: 2px solid @color13;
+ color: @color13;
+ padding-left: 1px;
+ padding-right: 2px;
+ border: 2px solid @color13;
}
#backlight {
- color: @color14;
- padding-right: 5px;
+ color: @color14;
+ padding-right: 5px;
}
#tray {
- border-radius: 20px;
- margin-right: 5px;
-/* padding: 0px 4px; */
- padding-left: 15px;
- padding-right: 15px;
- border: 2px solid @color7;
+ border-radius: 20px;
+ margin-right: 5px;
+ /* padding: 0px 4px; */
+ padding-left: 15px;
+ padding-right: 15px;
+ border: 2px solid @color7;
}
#mpris {
- padding-left: 16px;
+ padding-left: 16px;
}
#tray.empty {
- background-color: transparent;
- border-color: transparent;
- border: 0px;
+ background-color: transparent;
+ border-color: transparent;
+ border: 0px;
}
#window {
- margin-left: 5px;
- margin-right: 5px;
- border: 2px solid @color9;
+ margin-left: 5px;
+ margin-right: 5px;
+ border: 2px solid @color9;
}
#clock {
- color: @color13;
+ color: @color13;
}
#clock:hover {
- color: @color13;
- background: @background;
- border: 2px solid @color13;
+ color: @color13;
+ background: @background;
+ border: 2px solid @color13;
}
-
#bluetooth {
- color: @color12;
- margin-right: 10px
-}
+ color: @color12;
+ margin-right: 10px;
+}
#pulseaudio.microphone,
#pulseaudio {
- background-color: @color12;
- color: @color15;
- border: 2px solid @color13;
+ background-color: @color12;
+ color: @color15;
+ border: 2px solid @color13;
}
#pulseaudio.muted {
- color: @color13;
- padding-right: 20px;
+ color: @color13;
+ padding-right: 20px;
}
#battery {
- color: @color10;
- margin-right: 5px;
- padding-right: 15px;
- border: 2px solid @color14;
+ color: @color10;
+ margin-right: 5px;
+ padding-right: 15px;
+ border: 2px solid @color14;
}
/*-----Indicators----*/
#custom-hypridle.notactive,
#idle_inhibitor.activated {
- color: #39FF14;
- border-bottom: 8px solid rgba(0, 0, 0, 0.2);
+ color: #39ff14;
+ border-bottom: 0px solid rgba(0, 0, 0, 0.2);
}
#battery.good {
- color: @color14;
- border: 2px solid @color15;
+ color: @color14;
+ border: 2px solid @color15;
}
#battery.warning {
- color: @color13;
- border-left: 0px;
- border: 2px solid @color12;
+ color: @color13;
+ border-left: 0px;
+ border: 2px solid @color12;
}
#battery.charging {
- color: @color10;
+ color: @color10;
}
#battery.critical {
- color: @color13;
- border-left: 0px;
- border: 2px solid @color8;
+ color: @color13;
+ border-left: 0px;
+ border: 2px solid @color8;
}
@keyframes blink {
@@ -302,7 +299,7 @@ tooltip {
background-color: red;
color: white;
animation-name: blink;
- animation-duration: 3.0s;
+ animation-duration: 3s;
animation-timing-function: steps(12);
animation-iteration-count: infinite;
animation-direction: alternate;
@@ -310,33 +307,33 @@ tooltip {
}
#custom-weather {
- color: @color12;
- border-right: 0px;
- margin-left: 0px;
- margin-right: 5px;
+ color: @color12;
+ border-right: 0px;
+ margin-left: 0px;
+ margin-right: 5px;
}
#backlight-slider slider,
#pulseaudio-slider slider {
- min-width: 0px;
- min-height: 0px;
- opacity: 0;
- background-image: none;
- border: none;
- box-shadow: none;
+ min-width: 0px;
+ min-height: 0px;
+ opacity: 0;
+ background-image: none;
+ border: none;
+ box-shadow: none;
}
#backlight-slider trough,
#pulseaudio-slider trough {
- min-width: 80px;
- min-height: 5px;
- border-radius: 5px;
+ min-width: 80px;
+ min-height: 5px;
+ border-radius: 5px;
}
#backlight-slider highlight,
#pulseaudio-slider highlight {
- min-height: 10px;
- border-radius: 5px;
+ min-height: 10px;
+ border-radius: 5px;
}
/* Ensure group drawer modules match base style (avoid bright per-module colors) */
@@ -347,9 +344,9 @@ tooltip {
#group-mobo_drawer #power-profiles-daemon,
#group-mobo_drawer #memory,
#group-mobo_drawer #disk {
- background-color: @background;
- color: @color15;
- border: 2px solid @color13;
+ background-color: @background;
+ color: @color15;
+ border: 2px solid @color13;
}
/* Global overrides for this style (match other widgets: dark bg + light text) */
@@ -360,9 +357,9 @@ tooltip {
#disk,
#temperature,
#power-profiles-daemon {
- background-color: @background;
- color: @color15;
- border: 2px solid @color13;
+ background-color: @background;
+ color: @color15;
+ border: 2px solid @color13;
}
/* --- tray readability override (global) --- */
diff --git a/config/waybar/style/Wallust-Box-type.css b/config/waybar/style/Wallust-Box-type.css
index b5d0424f..76a76ca7 100644
--- a/config/waybar/style/Wallust-Box-type.css
+++ b/config/waybar/style/Wallust-Box-type.css
@@ -162,16 +162,17 @@ window#waybar.empty #window {
}
#custom-power {
- padding-right: 2px;
+ padding-right: 0px;
+ padding-left: 0px;
}
/*-----Indicators----*/
#custom-hypridle.notactive,
#idle_inhibitor.activated {
color: #39ff14;
- border-bottom-width: 5px;
- border-bottom-color: @color12;
- border-bottom-style: solid;
+ border-bottom-width: 5px;
+ border-bottom-color: @color12;
+ border-bottom-style: solid;
}
#network {
diff --git a/config/waybar/style/Wallust-Chroma-Edge.css b/config/waybar/style/Wallust-Chroma-Edge.css
index b1d6811b..c7acf7f0 100644
--- a/config/waybar/style/Wallust-Chroma-Edge.css
+++ b/config/waybar/style/Wallust-Chroma-Edge.css
@@ -198,7 +198,7 @@ tooltip label {
#custom-power {
color: #cc3436;
- padding: 0px 0px 0px 6px;
+ padding: 0px 0px 0px 0px;
}
#custom-launcher {
@@ -353,7 +353,7 @@ label:focus {
#custom-hypridle.notactive,
#idle_inhibitor.activated {
color: #39ff14;
- border-bottom: 8px solid rgba(0, 0, 0, 0.2);
+ border-bottom: 0px solid rgba(0, 0, 0, 0.2);
}
#temperature {
diff --git a/config/waybar/style/Wallust-Chroma-Fusion.css b/config/waybar/style/Wallust-Chroma-Fusion.css
index 808c7e9b..07ef6094 100644
--- a/config/waybar/style/Wallust-Chroma-Fusion.css
+++ b/config/waybar/style/Wallust-Chroma-Fusion.css
@@ -17,47 +17,47 @@
@define-color button-color @color11;
@define-color button-hover @color12;
-@import '../../.config/waybar/wallust/colors-waybar.css';
+@import "../../.config/waybar/wallust/colors-waybar.css";
@import "../waybar/style/catppuccin-themes/latte.css";
* {
- font-family: "JetBrainsMono Nerd Font";
- font-weight: bold;
- min-height: 0;
- /* set font-size to 100% if font scaling is set to 1.00 using nwg-look */
- /* NOTE: Waybar v14+ ignores % font-size values */
- font-size: 99%;
- font-feature-settings: '"zero", "ss01", "ss02", "ss03", "ss04", "ss05", "cv31"';
+ font-family: "JetBrainsMono Nerd Font";
+ font-weight: bold;
+ min-height: 0;
+ /* set font-size to 100% if font scaling is set to 1.00 using nwg-look */
+ /* NOTE: Waybar v14+ ignores % font-size values */
+ font-size: 99%;
+ font-feature-settings: '"zero", "ss01", "ss02", "ss03", "ss04", "ss05", "cv31"';
}
window#waybar {
- background: linear-gradient(0deg, @border-color, black);
- /*background: rgba(1, 117, 84, 0.5);*/
- /*background: @transparent;*/
- border-bottom-right-radius: 20px;
- border-bottom-left-radius: 20px;
- border-top-left-radius: 20px;
- border-top-right-radius: 20px;
- /* Waybar scaling: adjust font-size to scale the bar */
- font-size: 14px;
+ background: linear-gradient(0deg, @border-color, black);
+ /*background: rgba(1, 117, 84, 0.5);*/
+ /*background: @transparent;*/
+ border-bottom-right-radius: 20px;
+ border-bottom-left-radius: 20px;
+ border-top-left-radius: 20px;
+ border-top-right-radius: 20px;
+ /* Waybar scaling: adjust font-size to scale the bar */
+ font-size: 14px;
}
window#waybar.empty,
window#waybar.empty #window {
- background-color: transparent;
- padding: 0px;
- border: 0px;
- /* Waybar scaling: adjust font-size to scale the bar */
- font-size: 14px;
+ background-color: transparent;
+ padding: 0px;
+ border: 0px;
+ /* Waybar scaling: adjust font-size to scale the bar */
+ font-size: 14px;
}
tooltip {
- background-color: @background-module;
- border-radius: 10px;
- border-width: 2px;
- border-style: solid;
- border-color: #11111b;
- color: @color2;
+ background-color: @background-module;
+ border-radius: 10px;
+ border-width: 2px;
+ border-style: solid;
+ border-color: #11111b;
+ color: @color2;
}
#backlight,
@@ -115,67 +115,67 @@ tooltip {
#custom-weather.clearNight,
#custom-weather.cloudyFoggyDay,
#custom-weather.cloudyFoggyNight,
-#custom-weather.default,
+#custom-weather.default,
#custom-weather.rainyDay,
#custom-weather.rainyNight,
#custom-weather.severe,
#custom-weather.showyIcyDay,
#custom-weather.snowyIcyNight,
#custom-weather.sunnyDay {
- background-color: @background-module;
- border-radius: 25px;
- margin: 5px 5px 5px 5px;
- opacity: 1;
- padding-top: 4px;
- padding-bottom: 4px;
- padding-right: 6px;
- padding-left: 6px;
+ background-color: @background-module;
+ border-radius: 25px;
+ margin: 5px 5px 5px 5px;
+ opacity: 1;
+ padding-top: 4px;
+ padding-bottom: 4px;
+ padding-right: 6px;
+ padding-left: 6px;
}
#backlight {
- padding: 0px 2px 0px 6px;
+ padding: 0px 2px 0px 6px;
}
#custom-power {
- color: red;
- padding: 0px 0px 0px 6px;
- opacity:1.0;
+ color: red;
+ padding: 0px 0px 0px 0px;
+ opacity: 1;
}
#custom-light_dark,
#custom-nightlight,
-#custom-menu{
- color: @flamingo;
- padding: 0px 8px 0px 4px;
- opacity:1.0;
+#custom-menu {
+ color: @flamingo;
+ padding: 0px 8px 0px 4px;
+ opacity: 1;
}
#mpris {
- color: @sapphire;
- padding-right: 0px;
+ color: @sapphire;
+ padding-right: 0px;
}
#custom-swaync,
#custom-weather,
#custom-weather2,
#custom-updater {
- color: @yellow;
+ color: @yellow;
}
#keyboard-state,
#clock {
- color: @sapphire;
+ color: @sapphire;
}
#network,
#temperature {
- color: @rosewater;
+ color: @rosewater;
}
#custom-hint,
#tray {
- color: aliceblue;
+ color: aliceblue;
}
#taskbar,
-#window {
- color:#FFFFFF;
+#window {
+ color: #ffffff;
}
#bluetooth,
@@ -183,150 +183,149 @@ tooltip {
#custom-cycle_wall,
#custom-keyboard,
#custom-light_dark {
- color: @lavender;
+ color: @lavender;
}
#custom-cava_mviz {
- color: @color15;
- background-color: rgba(15, 96, 95, 0.65);
- border: 1px solid @color10;
+ color: @color15;
+ background-color: rgba(15, 96, 95, 0.65);
+ border: 1px solid @color10;
}
#custom-lock,
#custom-hypridle,
#idle_inhibitor {
- color: @teal;
- border-bottom: 8px solid rgba(0, 0, 0, 0.2);
+ color: @teal;
+ border-bottom: 0px solid rgba(0, 0, 0, 0.2);
}
/*-----Indicators----*/
#custom-hypridle.notactive,
#idle_inhibitor.activated {
- color: #39FF14;
- border-bottom: 8px solid rgba(0, 0, 0, 0.2);
+ color: #39ff14;
+ border-bottom: 0px solid rgba(0, 0, 0, 0.2);
}
#workspaces {
- margin: 3px 3px 3px 3px;
- padding: 0px 1px;
- border-radius: 25px;
- font-weight: bold;
- font-style: normal;
- opacity:0.8;
- color:#FFFFFF;
-
+ margin: 3px 3px 3px 3px;
+ padding: 0px 1px;
+ border-radius: 25px;
+ font-weight: bold;
+ font-style: normal;
+ opacity: 0.8;
+ color: #ffffff;
}
#taskbar button,
#workspaces button {
- margin: 1px 1px;
- border-radius: 15px;
- border: 1px solid transparent;
- background: transparent;
- color: @color15;
- padding-left: 2px;
- padding-right: 2px;
- animation: gradient_f 20s ease-in infinite;
- transition: all 0.5s cubic-bezier(.55,-0.68,.48,1.682);
- opacity:0.8;
+ margin: 1px 1px;
+ border-radius: 15px;
+ border: 1px solid transparent;
+ background: transparent;
+ color: @color15;
+ padding-left: 2px;
+ padding-right: 2px;
+ animation: gradient_f 20s ease-in infinite;
+ transition: all 0.5s cubic-bezier(0.55, -0.68, 0.48, 1.682);
+ opacity: 0.8;
}
#taskbar button.active,
#workspaces button.active {
- color: @color0;
- background: @color12;
- border: 1px solid @color15;
- border-radius: 15px;
- padding-left: 4px;
- padding-right: 4px;
- animation: gradient_f 20s ease-in infinite;
- transition: all 0.3s cubic-bezier(.55,-0.68,.48,1.682);
- opacity:1.0;
+ color: @color0;
+ background: @color12;
+ border: 1px solid @color15;
+ border-radius: 15px;
+ padding-left: 4px;
+ padding-right: 4px;
+ animation: gradient_f 20s ease-in infinite;
+ transition: all 0.3s cubic-bezier(0.55, -0.68, 0.48, 1.682);
+ opacity: 1;
}
#workspaces button.empty {
- color: #FFFFFF;
- opacity:1.0;
+ color: #ffffff;
+ opacity: 1;
}
#taskbar button:hover,
#workspaces button:hover {
- color: @color0;
- background: @color11;
- border: 1px solid @color15;
- border-radius: 15px;
- opacity:1.0;
- padding-left: 2px;
- padding-right: 2px;
- animation: gradient_f 20s ease-in infinite;
- transition: all 0.3s cubic-bezier(.55,-0.68,.48,1.682);
+ color: @color0;
+ background: @color11;
+ border: 1px solid @color15;
+ border-radius: 15px;
+ opacity: 1;
+ padding-left: 2px;
+ padding-right: 2px;
+ animation: gradient_f 20s ease-in infinite;
+ transition: all 0.3s cubic-bezier(0.55, -0.68, 0.48, 1.682);
}
#pulseaudio-slider,
#pulseaudio {
- color: @color13;
+ color: @color13;
}
#pulseaudio.muted {
- color: red;
+ color: red;
}
#memory {
- color: @sapphire;
+ color: @sapphire;
}
#cpu {
- color: @mauve;
+ color: @mauve;
}
#battery {
- color: @rosewater;
+ color: @rosewater;
}
#disk {
- color: @sky;
+ color: @sky;
}
#temperature.critical {
- background-color: red;
+ background-color: red;
}
@keyframes blink {
- to {
- color: #000000;
- }
+ to {
+ color: #000000;
+ }
}
#battery.critical:not(.charging) {
- color: #f53c3c;
- animation-name: blink;
- animation-duration: 3.0s;
- animation-timing-function: steps(12);
- animation-iteration-count: infinite;
- animation-direction: alternate;
+ color: #f53c3c;
+ animation-name: blink;
+ animation-duration: 3s;
+ animation-timing-function: steps(12);
+ animation-iteration-count: infinite;
+ animation-direction: alternate;
}
#backlight-slider slider,
#pulseaudio-slider slider {
- min-width: 0px;
- min-height: 0px;
- opacity: 0;
- background-image: none;
- border: none;
- box-shadow: none;
+ min-width: 0px;
+ min-height: 0px;
+ opacity: 0;
+ background-image: none;
+ border: none;
+ box-shadow: none;
}
#backlight-slider trough,
#pulseaudio-slider trough {
- min-width: 80px;
- min-height: 5px;
- border-radius: 5px;
+ min-width: 80px;
+ min-height: 5px;
+ border-radius: 5px;
}
#backlight-slider highlight,
#pulseaudio-slider highlight {
- min-height: 10px;
- border-radius: 5px;
+ min-height: 10px;
+ border-radius: 5px;
}
/* --- tray readability override (global) --- */
diff --git a/config/waybar/style/Wallust-Chroma-Tally-V2.css b/config/waybar/style/Wallust-Chroma-Tally-V2.css
index 4fd9e6b3..be00b262 100644
--- a/config/waybar/style/Wallust-Chroma-Tally-V2.css
+++ b/config/waybar/style/Wallust-Chroma-Tally-V2.css
@@ -1,74 +1,79 @@
/* ---- 💫 https://github.com/LinuxBeginnings 💫 ---- */
/* Wallust - Chroma Tally v2 */
-/* edited by: https://github.com/prateekshukla1108 */
+/* edited by: https://github.com/prateekshukla1108 */
-@import '../../.config/waybar/wallust/colors-waybar.css';
+@import "../../.config/waybar/wallust/colors-waybar.css";
* {
- font-family: "JetBrainsMono Nerd Font";
- font-weight: bold;
- min-height: 0;
- /* NOTE: Waybar v14+ ignores % font-size values */
- font-size: 99%;
- font-feature-settings: '"zero", "ss01", "ss02", "ss03", "ss04", "ss05", "cv31"';
+ font-family: "JetBrainsMono Nerd Font";
+ font-weight: bold;
+ min-height: 0;
+ /* NOTE: Waybar v14+ ignores % font-size values */
+ font-size: 99%;
+ font-feature-settings: '"zero", "ss01", "ss02", "ss03", "ss04", "ss05", "cv31"';
}
window#waybar {
- background: @color0; /* Dark background */
- border-radius: 12px;
- border-bottom: 2px;
- border-style: solid;
- border-color: @color7; /* Light border */
- /* Waybar scaling: adjust font-size to scale the bar */
- font-size: 14px;
+ background: @color0; /* Dark background */
+ border-radius: 12px;
+ border-bottom: 2px;
+ border-style: solid;
+ border-color: @color7; /* Light border */
+ /* Waybar scaling: adjust font-size to scale the bar */
+ font-size: 14px;
}
#workspaces {
- background: transparent;
- padding: 2px;
- border-radius: 15px;
- border: 0px;
- font-style: normal;
- color: @color7; /* Light text */
+ background: transparent;
+ padding: 2px;
+ border-radius: 15px;
+ border: 0px;
+ font-style: normal;
+ color: @color7; /* Light text */
}
#taskbar button,
#workspaces button {
- padding: 0px 5px;
- border-radius: 15px;
- border: 0px;
- color: @color7; /* Light text */
- background: linear-gradient(45deg, @color5, @color6, @color7); /* Lighter gradient */
- opacity: 0.5;
- transition: all 0.3s cubic-bezier(.55,-0.68,.48,1.682);
+ padding: 0px 5px;
+ border-radius: 15px;
+ border: 0px;
+ color: @color7; /* Light text */
+ background: linear-gradient(
+ 45deg,
+ @color5,
+ @color6,
+ @color7
+ ); /* Lighter gradient */
+ opacity: 0.5;
+ transition: all 0.3s cubic-bezier(0.55, -0.68, 0.48, 1.682);
}
#taskbar button.active,
#workspaces button.active {
- padding: 0px 5px;
- border-radius: 15px;
- border: 0px;
- color: @color7; /* Light text */
- background: linear-gradient(45deg, @color5, @color6); /* Lighter gradient */
- opacity: 1.0;
- min-width: 40px;
- transition: all 0.3s cubic-bezier(.55,-0.68,.48,1.682);
+ padding: 0px 5px;
+ border-radius: 15px;
+ border: 0px;
+ color: @color7; /* Light text */
+ background: linear-gradient(45deg, @color5, @color6); /* Lighter gradient */
+ opacity: 1;
+ min-width: 40px;
+ transition: all 0.3s cubic-bezier(0.55, -0.68, 0.48, 1.682);
}
#workspaces button:hover {
- border-radius: 15px;
- color: @color7; /* Light text */
- background: linear-gradient(45deg, @color6, @color7); /* Lighter gradient */
- opacity: 0.8;
- transition: all 0.3s cubic-bezier(.55,-0.68,.48,1.682);
+ border-radius: 15px;
+ color: @color7; /* Light text */
+ background: linear-gradient(45deg, @color6, @color7); /* Lighter gradient */
+ opacity: 0.8;
+ transition: all 0.3s cubic-bezier(0.55, -0.68, 0.48, 1.682);
}
tooltip {
- background: @background-alt; /* Theme-neutral tooltip background */
- opacity: 0.8;
- border-radius: 6px;
- color: @color7; /* Light text */
+ background: @background-alt; /* Theme-neutral tooltip background */
+ opacity: 0.8;
+ border-radius: 6px;
+ color: @color7; /* Light text */
}
#backlight,
@@ -125,108 +130,108 @@ tooltip {
#custom-weather.clearNight,
#custom-weather.cloudyFoggyDay,
#custom-weather.cloudyFoggyNight,
-#custom-weather.default,
+#custom-weather.default,
#custom-weather.rainyDay,
#custom-weather.rainyNight,
#custom-weather.severe,
#custom-weather.showyIcyDay,
#custom-weather.snowyIcyNight,
#custom-weather.sunnyDay {
- padding-top: 5px;
- padding-bottom: 5px;
- padding-right: 6px;
- padding-left: 6px;
- color: @color6; /* Lighter - changed from color5 */
+ padding-top: 5px;
+ padding-bottom: 5px;
+ padding-right: 6px;
+ padding-left: 6px;
+ color: @color6; /* Lighter - changed from color5 */
}
#clock {
- color: @color6; /* Lighter */
+ color: @color6; /* Lighter */
}
#backlight {
- color: @color5; /* Lighter */
+ color: @color5; /* Lighter */
}
#battery {
- color: @color6; /* Lighter */
+ color: @color6; /* Lighter */
}
#battery.charging {
- color: @color7; /* Lightest */
+ color: @color7; /* Lightest */
}
@keyframes blink {
- to {
- color: @color4; /* Slightly lighter blink color */
- background-color: @color7; /* Lightest */
- }
+ to {
+ color: @color4; /* Slightly lighter blink color */
+ background-color: @color7; /* Lightest */
+ }
}
#battery.critical:not(.charging) {
- background: @color5; /* Lighter background */
- color: @color7; /* Lightest */
- animation-name: blink;
- animation-duration: 3.0s;
- animation-timing-function: steps(12);
- animation-iteration-count: infinite;
- animation-direction: alternate;
+ background: @color5; /* Lighter background */
+ color: @color7; /* Lightest */
+ animation-name: blink;
+ animation-duration: 3s;
+ animation-timing-function: steps(12);
+ animation-iteration-count: infinite;
+ animation-direction: alternate;
}
#cpu {
- color: @color6; /* Lighter */
+ color: @color6; /* Lighter */
}
#disk {
- color: @color5; /* Lighter */
+ color: @color5; /* Lighter */
}
#custom-keyboard,
#memory {
- color: @color6; /* Lighter */
+ color: @color6; /* Lighter */
}
#network.disabled {
- color: @color5; /* Lighter */
+ color: @color5; /* Lighter */
}
-#network{
- color: @color6; /* Lighter */
+#network {
+ color: @color6; /* Lighter */
}
#network.disconnected {
- color: @color5; /* Lighter */
+ color: @color5; /* Lighter */
}
#pulseaudio {
- color: @color7; /* Lightest */
+ color: @color7; /* Lightest */
}
#pulseaudio.muted {
- color: @color5; /* Lighter */
+ color: @color5; /* Lighter */
}
#custom-light_dark,
#custom-nightlight,
#temperature {
- color: @color6; /* Lighter */
+ color: @color6; /* Lighter */
}
#temperature.critical {
- color: @color5; /* Lighter */
+ color: @color5; /* Lighter */
}
#keyboard-state,
#custom-hypridle,
#idle_inhibitor {
- color: @color5; /* Lighter */
- border-bottom: 2px;
+ color: @color5; /* Lighter */
+ border-bottom: 0px;
}
/*-----Indicators----*/
#custom-hypridle.notactive,
#idle_inhibitor.activated {
- color: @color4; /* Slightly lighter */
- border-bottom: 2px;
+ color: @color4; /* Slightly lighter */
+ border-bottom: 0px;
}
#tray {
@@ -234,54 +239,54 @@ tooltip {
#custom-swaync,
#custom-menu {
- color: @color7; /* Lightest */
- padding-left: 8px;
+ color: @color7; /* Lightest */
+ padding-left: 8px;
}
-#custom-power{
- color: @color6; /* Lighter */
+#custom-power {
+ color: @color6; /* Lighter */
}
-#window{
- border-style: hidden;
+#window {
+ border-style: hidden;
+}
+
+#custom-lock,
+#bluetooth {
+ color: @color5; /* Lighter */
}
-#custom-lock,
-#bluetooth{
- color: @color5; /* Lighter */
+#custom-cava_mviz {
+ color: @color7; /* Lightest */
}
-#custom-cava_mviz{
- color: @color7; /* Lightest */
-}
-
-#custom-weather{
- color: @color5; /* Lighter */
+#custom-weather {
+ color: @color5; /* Lighter */
}
#backlight-slider slider,
#pulseaudio-slider slider {
- min-width: 0px;
- min-height: 0px;
- opacity: 0;
- background-image: none;
- border: none;
- box-shadow: none;
+ min-width: 0px;
+ min-height: 0px;
+ opacity: 0;
+ background-image: none;
+ border: none;
+ box-shadow: none;
}
#backlight-slider trough,
#pulseaudio-slider trough {
- min-width: 80px;
- min-height: 5px;
- border-radius: 5px;
- background-color: @color2; /* Slightly darker trough */
+ min-width: 80px;
+ min-height: 5px;
+ border-radius: 5px;
+ background-color: @color2; /* Slightly darker trough */
}
#backlight-slider highlight,
#pulseaudio-slider highlight {
- min-height: 10px;
- border-radius: 5px;
- background-color: @color6; /* Lighter highlight */
+ min-height: 10px;
+ border-radius: 5px;
+ background-color: @color6; /* Lighter highlight */
}
/* --- tray readability override (global) --- */
diff --git a/config/waybar/style/Wallust-Chroma-Tally.css b/config/waybar/style/Wallust-Chroma-Tally.css
index faa6c206..372f6b6c 100644
--- a/config/waybar/style/Wallust-Chroma-Tally.css
+++ b/config/waybar/style/Wallust-Chroma-Tally.css
@@ -1,73 +1,72 @@
/* ---- 💫 https://github.com/LinuxBeginnings 💫 ---- */
/* Wallust - Chroma Tally */
-@import '../../.config/waybar/wallust/colors-waybar.css';
+@import "../../.config/waybar/wallust/colors-waybar.css";
* {
-font-family: "JetBrainsMono Nerd Font";
-font-weight: bold;
-min-height: 0;
-/* set font-size to 100% if font scaling is set to 1.00 using nwg-look */
-/* NOTE: Waybar v14+ ignores % font-size values */
-font-size: 99%;
-font-feature-settings: '"zero", "ss01", "ss02", "ss03", "ss04", "ss05", "cv31"';
+ font-family: "JetBrainsMono Nerd Font";
+ font-weight: bold;
+ min-height: 0;
+ /* set font-size to 100% if font scaling is set to 1.00 using nwg-look */
+ /* NOTE: Waybar v14+ ignores % font-size values */
+ font-size: 99%;
+ font-feature-settings: '"zero", "ss01", "ss02", "ss03", "ss04", "ss05", "cv31"';
}
window#waybar {
- background: rgba (0, 0, 0, 0.5);
- border-radius: 12px;
- border-bottom: 2px;
- border-style: solid;
- border-color: @color12;
- /* Waybar scaling: adjust font-size to scale the bar */
- font-size: 14px;
+ background: rgba (0, 0, 0, 0.5);
+ border-radius: 12px;
+ border-bottom: 2px;
+ border-style: solid;
+ border-color: @color12;
+ /* Waybar scaling: adjust font-size to scale the bar */
+ font-size: 14px;
}
#workspaces {
- background: transparent;
- padding: 2px;
- border-radius: 15px;
- border: 0px;
- font-style: normal;
- color: #0F1419;
+ background: transparent;
+ padding: 2px;
+ border-radius: 15px;
+ border: 0px;
+ font-style: normal;
+ color: #0f1419;
}
#taskbar button,
#workspaces button {
- padding: 0px 5px;
- border-radius: 15px;
- border: 0px;
- color: #0F1419;
- background: linear-gradient(45deg, #95E6CB, #59C2FF, #D2A6FF);
- opacity: 0.5;
- transition: all 0.3s cubic-bezier(.55,-0.68,.48,1.682);
+ padding: 0px 5px;
+ border-radius: 15px;
+ border: 0px;
+ color: #0f1419;
+ background: linear-gradient(45deg, #95e6cb, #59c2ff, #d2a6ff);
+ opacity: 0.5;
+ transition: all 0.3s cubic-bezier(0.55, -0.68, 0.48, 1.682);
}
#taskbar button.active,
#workspaces button.active {
- padding: 0px 5px;
- border-radius: 15px;
- border: 0px;
- color: #0F1419;
- background: linear-gradient(45deg, #59C2FF, #D2A6FF);
- opacity: 1.0;
- min-width: 40px;
- transition: all 0.3s cubic-bezier(.55,-0.68,.48,1.682);
+ padding: 0px 5px;
+ border-radius: 15px;
+ border: 0px;
+ color: #0f1419;
+ background: linear-gradient(45deg, #59c2ff, #d2a6ff);
+ opacity: 1;
+ min-width: 40px;
+ transition: all 0.3s cubic-bezier(0.55, -0.68, 0.48, 1.682);
}
#workspaces button:hover {
- border-radius: 15px;
- color: #0F1419;
- background: linear-gradient(45deg, #59C2FF, #D2A6FF);
- opacity: 0.8;
- transition: all 0.3s cubic-bezier(.55,-0.68,.48,1.682);
-
+ border-radius: 15px;
+ color: #0f1419;
+ background: linear-gradient(45deg, #59c2ff, #d2a6ff);
+ opacity: 0.8;
+ transition: all 0.3s cubic-bezier(0.55, -0.68, 0.48, 1.682);
}
tooltip {
- background: #1e1e2e;
- opacity: 0.8;
- border-radius: 6px;
+ background: #1e1e2e;
+ opacity: 0.8;
+ border-radius: 6px;
}
#backlight,
@@ -124,112 +123,111 @@ tooltip {
#custom-weather.clearNight,
#custom-weather.cloudyFoggyDay,
#custom-weather.cloudyFoggyNight,
-#custom-weather.default,
+#custom-weather.default,
#custom-weather.rainyDay,
#custom-weather.rainyNight,
#custom-weather.severe,
#custom-weather.showyIcyDay,
#custom-weather.snowyIcyNight,
#custom-weather.sunnyDay {
- padding-top: 5px;
- padding-bottom: 5px;
- padding-right: 6px;
- padding-left: 6px;
+ padding-top: 5px;
+ padding-bottom: 5px;
+ padding-right: 6px;
+ padding-left: 6px;
}
-
+
/* -----------------------------------------------------------------------------
* Module styles
* -------------------------------------------------------------------------- */
-
#clock {
- color:#a3be8c;
+ color: #a3be8c;
}
#backlight {
- color: #ebcb8b;
+ color: #ebcb8b;
}
#battery {
- color: #d8dee9;
+ color: #d8dee9;
}
#battery.charging {
- color: #81a1c1;
+ color: #81a1c1;
}
@keyframes blink {
- to {
- color: #4c566a;
- background-color: #eceff4;
- }
+ to {
+ color: #4c566a;
+ background-color: #eceff4;
+ }
}
#battery.critical:not(.charging) {
- background: #bf616a;
- color: #eceff4;
- animation-name: blink;
- animation-duration: 3.0s;
- animation-timing-function: steps(12);
- animation-iteration-count: infinite;
- animation-direction: alternate;
+ background: #bf616a;
+ color: #eceff4;
+ animation-name: blink;
+ animation-duration: 3s;
+ animation-timing-function: steps(12);
+ animation-iteration-count: infinite;
+ animation-direction: alternate;
}
#cpu {
- color: #a3be8c;
+ color: #a3be8c;
}
#disk {
- color: #94e2d5;
+ color: #94e2d5;
}
#custom-keyboard,
#memory {
- color: #d3869b;
+ color: #d3869b;
}
#network.disabled {
- color:#bf616a;
+ color: #bf616a;
}
-#network{
- color:#a3be8c;
+#network {
+ color: #a3be8c;
}
#network.disconnected {
- color: #bf616a;
+ color: #bf616a;
}
#pulseaudio {
- color: #04a5e5;
+ color: #04a5e5;
}
#pulseaudio.muted {
- color: #9ca0b0;
+ color: #9ca0b0;
}
#custom-light_dark,
#custom-nightlight,
#temperature {
- color: #7287fd;
+ color: #7287fd;
}
#temperature.critical {
- color: #bf616a;
+ color: #bf616a;
}
#keyboard-state,
#custom-hypridle,
#idle_inhibitor {
- color: #ebcb8b;
- border-bottom: 2px;
+ color: #ebcb8b;
+ border-bottom: 0px;
}
/*-----Indicators----*/
#custom-hypridle.notactive,
#idle_inhibitor.activated {
- color: #39FF14;
- border-bottom: 2px;
+ color: #39ff14;
+ border-bottom: 0px;
}
#tray {
@@ -237,51 +235,51 @@ tooltip {
#custom-swaync,
#custom-menu {
- color: yellow;
- padding-left: 8px;
+ color: yellow;
+ padding-left: 8px;
}
-#custom-power{
- color: #eba0ac;
+#custom-power {
+ color: #eba0ac;
}
-#window{
- border-style: hidden;
+#window {
+ border-style: hidden;
+}
+
+#custom-lock,
+#bluetooth {
+ color: #d08770;
}
-#custom-lock,
-#bluetooth{
- color:#d08770;
+#custom-cava_mviz {
+ color: @color11;
}
-#custom-cava_mviz{
- color: @color11;
-}
-
-#custom-weather{
- color:#d08770;
+#custom-weather {
+ color: #d08770;
}
#backlight-slider slider,
#pulseaudio-slider slider {
- min-width: 0px;
- min-height: 0px;
- opacity: 0;
- background-image: none;
- border: none;
- box-shadow: none;
+ min-width: 0px;
+ min-height: 0px;
+ opacity: 0;
+ background-image: none;
+ border: none;
+ box-shadow: none;
}
#backlight-slider trough,
#pulseaudio-slider trough {
- min-width: 80px;
- min-height: 5px;
- border-radius: 5px;
+ min-width: 80px;
+ min-height: 5px;
+ border-radius: 5px;
}
#backlight-slider highlight,
#pulseaudio-slider highlight {
- min-height: 10px;
- border-radius: 5px;
+ min-height: 10px;
+ border-radius: 5px;
}
/* --- tray readability override (global) --- */
diff --git a/config/waybar/style/Wallust-Colored.css b/config/waybar/style/Wallust-Colored.css
index f4bc3eef..137a48ad 100644
--- a/config/waybar/style/Wallust-Colored.css
+++ b/config/waybar/style/Wallust-Colored.css
@@ -1,116 +1,115 @@
/* ----------- 💫 https://github.com/LinuxBeginnings 💫 -------- */
/* Wallust Colored*/
-@import '../../.config/waybar/wallust/colors-waybar.css';
+@import "../../.config/waybar/wallust/colors-waybar.css";
* {
- font-family: "JetBrainsMono Nerd Font";
- font-weight: bold;
- min-height: 0;
- /* set font-size to 100% if font scaling is set to 1.00 using nwg-look */
- /* NOTE: Waybar v14+ ignores % font-size values */
- font-size: 96%;
- font-feature-settings: '"zero", "ss01", "ss02", "ss03", "ss04", "ss05", "cv31"';
+ font-family: "JetBrainsMono Nerd Font";
+ font-weight: bold;
+ min-height: 0;
+ /* set font-size to 100% if font scaling is set to 1.00 using nwg-look */
+ /* NOTE: Waybar v14+ ignores % font-size values */
+ font-size: 96%;
+ font-feature-settings: '"zero", "ss01", "ss02", "ss03", "ss04", "ss05", "cv31"';
}
window#waybar.hidden {
- opacity: 0.5;
- /* Waybar scaling: adjust font-size to scale the bar */
- font-size: 14px;
+ opacity: 0.5;
+ /* Waybar scaling: adjust font-size to scale the bar */
+ font-size: 14px;
}
window#waybar,
window#waybar.empty #window {
- padding: 0px;
- border: 0px;
- background-color: transparent;
- /* Waybar scaling: adjust font-size to scale the bar */
- font-size: 14px;
+ padding: 0px;
+ border: 0px;
+ background-color: transparent;
+ /* Waybar scaling: adjust font-size to scale the bar */
+ font-size: 14px;
}
-
tooltip {
- background: @background;
- border-radius: 10px;
- border-width: 1px;
- border-style: solid;
- border-color: @color15;
+ background: @background;
+ border-radius: 10px;
+ border-width: 1px;
+ border-style: solid;
+ border-color: @color15;
}
/*-----module groups----*/
.modules-right {
- border: 3px solid @color12;
- border-radius: 40px 0px 0px 0px;
- background-color: @background-alt;
- padding-top: 2px;
- padding-bottom: 2px;
- padding-right: 4px;
- padding-left: 4px;
+ border: 3px solid @color12;
+ border-radius: 0px 0px 0px 0px;
+ background-color: @background-alt;
+ padding-top: 2px;
+ padding-bottom: 2px;
+ padding-right: 4px;
+ padding-left: 4px;
}
.modules-center {
- border: 3px solid @color7;
- border-radius: 60px 0px 60px 0px;
- background-color: @background;
- padding-top: 2px;
- padding-bottom: 2px;
- padding-right: 4px;
- padding-left: 4px;
+ border: 3px solid @color7;
+ border-radius: 0px 0px 60px 0px;
+ background-color: @background;
+ padding-top: 2px;
+ padding-bottom: 2px;
+ padding-right: 4px;
+ padding-left: 4px;
}
.modules-left {
- border: 3px solid @color12;
- border-radius: 0px 0px 40px 0px;
- background-color: @background-alt;
- padding-top: 2px;
- padding-bottom: 2px;
- padding-right: 4px;
- padding-left: 4px;
+ border: 3px solid @color12;
+ border-radius: 0px 0px 0px 0px;
+ background-color: @background-alt;
+ padding-top: 2px;
+ padding-bottom: 2px;
+ padding-right: 4px;
+ padding-left: 4px;
}
#taskbar button,
#workspaces button {
- color: @foreground;
- box-shadow: none;
- text-shadow: none;
- padding: 0px;
- border-radius: 9px;
- padding-left: 4px;
- padding-right: 4px;
- animation: gradient_f 20s ease-in infinite;
- transition: all 0.5s cubic-bezier(.55,-0.68,.48,1.682);
+ color: @foreground;
+ box-shadow: none;
+ text-shadow: none;
+ padding: 0px;
+ border-radius: 9px;
+ padding-left: 4px;
+ padding-right: 4px;
+ animation: gradient_f 20s ease-in infinite;
+ transition: all 0.5s cubic-bezier(0.55, -0.68, 0.48, 1.682);
}
#taskbar button.active,
#workspaces button.active {
- color: @background;
- background-color: @color7;
- padding-left: 8px;
- padding-right: 8px;
- animation: gradient_f 20s ease-in infinite;
- transition: all 0.3s cubic-bezier(.55,-0.68,.48,1.682);
+ color: @background;
+ background-color: @color7;
+ padding-left: 8px;
+ padding-right: 8px;
+ animation: gradient_f 20s ease-in infinite;
+ transition: all 0.3s cubic-bezier(0.55, -0.68, 0.48, 1.682);
}
#workspaces button.focused {
- color: @color4;
+ color: @color4;
}
#workspaces button.urgent {
- color: #11111b;
- border-radius: 10px;
+ color: #11111b;
+ border-radius: 10px;
}
#taskbar button:hover,
#workspaces button:hover {
- color: @color4;
- padding-left: 2px;
- padding-right: 2px;
- animation: gradient_f 20s ease-in infinite;
- transition: all 0.3s cubic-bezier(.55,-0.68,.48,1.682);
+ color: @color4;
+ padding-left: 2px;
+ padding-right: 2px;
+ animation: gradient_f 20s ease-in infinite;
+ transition: all 0.3s cubic-bezier(0.55, -0.68, 0.48, 1.682);
}
#clock#2 {
- color: @color6;
+ color: @color6;
}
#backlight,
@@ -174,64 +173,64 @@ tooltip {
#custom-weather.showyIcyDay,
#custom-weather.snowyIcyNight,
#custom-weather.sunnyDay {
- color: @foreground;
- padding-top: 4px;
- padding-bottom: 4px;
- padding-right: 6px;
- padding-left: 6px;
+ color: @foreground;
+ padding-top: 4px;
+ padding-bottom: 4px;
+ padding-right: 6px;
+ padding-left: 6px;
}
#temperature.critical {
- background-color: #ff0000;
+ background-color: #ff0000;
}
@keyframes blink {
- to {
- color: #000000;
- }
+ to {
+ color: #000000;
+ }
}
/*-----Indicators----*/
#custom-hypridle.notactive,
#idle_inhibitor.activated {
- color: #39FF14;
- border-bottom: 8px solid rgba(0, 0, 0, 0.2);
+ color: #39ff14;
+ border-bottom: 0px solid rgba(0, 0, 0, 0.2);
}
#battery.critical:not(.charging) {
- color: #f53c3c;
- animation-name: blink;
- animation-duration: 3.0s;
- animation-timing-function: steps(12);
- animation-iteration-count: infinite;
- animation-direction: alternate;
+ color: #f53c3c;
+ animation-name: blink;
+ animation-duration: 3s;
+ animation-timing-function: steps(12);
+ animation-iteration-count: infinite;
+ animation-direction: alternate;
}
#backlight-slider slider,
#pulseaudio-slider slider {
- min-width: 0px;
- min-height: 0px;
- opacity: 0;
- background-image: none;
- border: none;
- box-shadow: none;
+ min-width: 0px;
+ min-height: 0px;
+ opacity: 0;
+ background-image: none;
+ border: none;
+ box-shadow: none;
}
#backlight-slider trough,
#pulseaudio-slider trough {
- min-width: 80px;
- min-height: 5px;
- border-radius: 5px;
+ min-width: 80px;
+ min-height: 5px;
+ border-radius: 5px;
}
#backlight-slider highlight,
#pulseaudio-slider highlight {
- min-height: 10px;
- border-radius: 5px;
+ min-height: 10px;
+ border-radius: 5px;
}
#custom-cava_mviz {
- padding-right: 10px;
+ padding-right: 10px;
}
/* --- tray readability override (global) --- */
diff --git a/config/waybar/style/Wallust-Simple.css b/config/waybar/style/Wallust-Simple.css
index 052f7b79..4708349f 100644
--- a/config/waybar/style/Wallust-Simple.css
+++ b/config/waybar/style/Wallust-Simple.css
@@ -1,92 +1,94 @@
/* ----------- 💫 https://github.com/LinuxBeginnings 💫 -------- */
/* Wallust - Simple */
-*{
-font-family: "JetBrainsMono Nerd Font";
-font-weight: bold;
-min-height: 0;
-/* set font-size to 100% if font scaling is set to 1.00 using nwg-look */
-/* NOTE: Waybar v14+ ignores % font-size values */
-font-size: 99%;
-font-feature-settings: '"zero", "ss01", "ss02", "ss03", "ss04", "ss05", "cv31"';
+* {
+ font-family: "JetBrainsMono Nerd Font";
+ font-weight: bold;
+ min-height: 0;
+ /* set font-size to 100% if font scaling is set to 1.00 using nwg-look */
+ /* NOTE: Waybar v14+ ignores % font-size values */
+ font-size: 99%;
+ font-feature-settings: '"zero", "ss01", "ss02", "ss03", "ss04", "ss05", "cv31"';
}
-@import '../../.config/waybar/wallust/colors-waybar.css';
+@import "../../.config/waybar/wallust/colors-waybar.css";
-#waybar.empty, #waybar.tiled, #waybar.floating {
- background-color: transparent;
+#waybar.empty,
+#waybar.tiled,
+#waybar.floating {
+ background-color: transparent;
}
window#waybar,
window#waybar.empty,
window#waybar.empty #window {
- background-color: transparent;
- padding: 0px;
- border: 0px;
- /* Waybar scaling: adjust font-size to scale the bar */
- font-size: 14px;
+ background-color: transparent;
+ padding: 0px;
+ border: 0px;
+ /* Waybar scaling: adjust font-size to scale the bar */
+ font-size: 14px;
}
tooltip {
- color: @color13;
- background: @color10;
- opacity: 1.0;
- border-radius: 10px;
+ color: @color13;
+ background: @color10;
+ opacity: 1;
+ border-radius: 10px;
}
/*-----module groups----*/
.modules-left,
.modules-center,
.modules-right {
- background-color: @color0;
- border: 0.5px solid @color15;
- border-radius: 10px;
- padding-top: 2px;
- padding-bottom: 2px;
- padding-right: 4px;
- padding-left: 4px;
+ background-color: @color0;
+ border: 0.5px solid @color15;
+ border-radius: 10px;
+ padding-top: 2px;
+ padding-bottom: 2px;
+ padding-right: 4px;
+ padding-left: 4px;
}
/*-----modules indv----*/
#taskbar button,
#workspaces button {
- color: @color2;
- box-shadow: none;
- text-shadow: none;
- padding: 0px;
- border-radius: 9px;
- padding-left: 4px;
- padding-right: 4px;
- animation: gradient_f 20s ease-in infinite;
- transition: all 0.5s cubic-bezier(.55,-0.68,.48,1.682);
+ color: @color2;
+ box-shadow: none;
+ text-shadow: none;
+ padding: 0px;
+ border-radius: 9px;
+ padding-left: 4px;
+ padding-right: 4px;
+ animation: gradient_f 20s ease-in infinite;
+ transition: all 0.5s cubic-bezier(0.55, -0.68, 0.48, 1.682);
}
#taskbar button.active,
#workspaces button.active {
- color: @foreground;
- background-color: @color2;
- padding-left: 8px;
- padding-right: 8px;
- animation: gradient_f 20s ease-in infinite;
- transition: all 0.3s cubic-bezier(.55,-0.68,.48,1.682);
+ color: @foreground;
+ background-color: @color2;
+ padding-left: 8px;
+ padding-right: 8px;
+ animation: gradient_f 20s ease-in infinite;
+ transition: all 0.3s cubic-bezier(0.55, -0.68, 0.48, 1.682);
}
#workspaces button.focused {
- color: @color4;
+ color: @color4;
}
#workspaces button.urgent {
- color: #11111b;
- border-radius: 10px;
+ color: #11111b;
+ border-radius: 10px;
}
#taskbar button:hover,
#workspaces button:hover {
- color: @color4;
- padding-left: 2px;
- padding-right: 2px;
- animation: gradient_f 20s ease-in infinite;
- transition: all 0.3s cubic-bezier(.55,-0.68,.48,1.682);
+ color: @color4;
+ padding-left: 2px;
+ padding-right: 2px;
+ animation: gradient_f 20s ease-in infinite;
+ transition: all 0.3s cubic-bezier(0.55, -0.68, 0.48, 1.682);
}
#backlight,
@@ -151,75 +153,75 @@ tooltip {
#custom-weather.showyIcyDay,
#custom-weather.snowyIcyNight,
#custom-weather.sunnyDay {
- color: @color12;
- padding-top: 4px;
- padding-bottom: 4px;
- padding-right: 6px;
- padding-left: 6px;;
+ color: @color12;
+ padding-top: 4px;
+ padding-bottom: 4px;
+ padding-right: 6px;
+ padding-left: 6px;
}
#mode {
- color: #cc3436;
- font-weight: bold;
+ color: #cc3436;
+ font-weight: bold;
}
#custom-power {
- /*background-color: rgba(0,119,179,0.6);*/
- /*border-radius: 50px;*/
- padding: 1px 3px;
+ /*background-color: rgba(0,119,179,0.6);*/
+ /*border-radius: 50px;*/
+ padding: 0px 3px;
}
/*-----Indicators----*/
#custom-hypridle.notactive,
#idle_inhibitor.activated {
- color: #39FF14;
- border-bottom: 8px solid rgba(0, 0, 0, 0.2);
+ color: #39ff14;
+ border-bottom: 0px solid rgba(0, 0, 0, 0.2);
}
#pulseaudio.muted {
- color: #cc3436;
+ color: #cc3436;
}
#pulseaudio-microphone.muted {
- color: #cc3436;
+ color: #cc3436;
}
#temperature.critical {
- background-color: #ff0000;
+ background-color: #ff0000;
}
@keyframes blink {
- to {
- color: #000000;
- }
+ to {
+ color: #000000;
+ }
}
#battery.critical:not(.charging) {
- color: #f53c3c;
- animation-name: blink;
- animation-duration: 3.0s;
- animation-timing-function: steps(12);
- animation-iteration-count: infinite;
- animation-direction: alternate;
+ color: #f53c3c;
+ animation-name: blink;
+ animation-duration: 3s;
+ animation-timing-function: steps(12);
+ animation-iteration-count: infinite;
+ animation-direction: alternate;
}
#backlight-slider slider,
#pulseaudio-slider slider {
- min-width: 0px;
- min-height: 0px;
- opacity: 0;
- background-image: none;
- border: none;
- box-shadow: none;
+ min-width: 0px;
+ min-height: 0px;
+ opacity: 0;
+ background-image: none;
+ border: none;
+ box-shadow: none;
}
#backlight-slider trough,
#pulseaudio-slider trough {
- min-width: 80px;
- min-height: 5px;
- border-radius: 5px;
+ min-width: 80px;
+ min-height: 5px;
+ border-radius: 5px;
}
#backlight-slider highlight,
#pulseaudio-slider highlight {
- min-height: 10px;
- border-radius: 5px;
+ min-height: 10px;
+ border-radius: 5px;
}
/* --- tray readability override (global) --- */
diff --git a/config/waybar/style/Wallust-Transparent-Crystal-Clear.css b/config/waybar/style/Wallust-Transparent-Crystal-Clear.css
index a6541a59..48651c18 100644
--- a/config/waybar/style/Wallust-Transparent-Crystal-Clear.css
+++ b/config/waybar/style/Wallust-Transparent-Crystal-Clear.css
@@ -2,115 +2,112 @@
/* ....Wallust Transparent - Crystal Clear........ */
/* --- 👍 original designed by https://github.com/Krautt 👍 --- */
-@import '../../.config/waybar/wallust/colors-waybar.css';
+@import "../../.config/waybar/wallust/colors-waybar.css";
@define-color critical #ff0000; /* critical color */
-@define-color warning #f3f809; /* warning color */
-@define-color text @color12; /* text color */
-@define-color text-alt @color13; /* text alternative color */
-@define-color bg @color7; /* background color */
+@define-color warning #f3f809; /* warning color */
+@define-color text @color12; /* text color */
+@define-color text-alt @color13; /* text alternative color */
+@define-color bg @color7; /* background color */
-*{
- font-family: "JetBrainsMono Nerd Font";
- font-weight: bold;
- min-height: 0;
- /* set font-size to 100% if font scaling is set to 1.00 using nwg-look */
- /* NOTE: Waybar v14+ ignores % font-size values */
- font-size: 99%;
- font-feature-settings: '"zero", "ss01", "ss02", "ss03", "ss04", "ss05", "cv31"';
+* {
+ font-family: "JetBrainsMono Nerd Font";
+ font-weight: bold;
+ min-height: 0;
+ /* set font-size to 100% if font scaling is set to 1.00 using nwg-look */
+ /* NOTE: Waybar v14+ ignores % font-size values */
+ font-size: 99%;
+ font-feature-settings: '"zero", "ss01", "ss02", "ss03", "ss04", "ss05", "cv31"';
}
-
+
window#waybar {
- background:transparent;
- border-radius: 1px;
- color: @text;
- /* Waybar scaling: adjust font-size to scale the bar */
- font-size: 14px;
+ background: transparent;
+ border-radius: 1px;
+ color: @text;
+ /* Waybar scaling: adjust font-size to scale the bar */
+ font-size: 14px;
}
-
+
window#waybar.hidden {
- opacity: 0.5;
- /* Waybar scaling: adjust font-size to scale the bar */
- font-size: 14px;
+ opacity: 0.5;
+ /* Waybar scaling: adjust font-size to scale the bar */
+ font-size: 14px;
}
window#waybar.empty {
- background-color: transparent;
- /* Waybar scaling: adjust font-size to scale the bar */
- font-size: 14px;
+ background-color: transparent;
+ /* Waybar scaling: adjust font-size to scale the bar */
+ font-size: 14px;
}
-
+
window#waybar.empty #window {
- padding: 0px;
- border: 0px;
- background-color: transparent;
- /* Waybar scaling: adjust font-size to scale the bar */
- font-size: 14px;
-}
+ padding: 0px;
+ border: 0px;
+ background-color: transparent;
+ /* Waybar scaling: adjust font-size to scale the bar */
+ font-size: 14px;
+}
/*-----module groups----*/
.modules-right {
-
}
.modules-center {
-
}
.modules-left {
-
}
tooltip {
- color: @color12;
- background: @color10;
- opacity: 0.8;
- border-radius: 10px;
- border-width: 1px;
- border-style: solid;
+ color: @color12;
+ background: @color10;
+ opacity: 0.8;
+ border-radius: 10px;
+ border-width: 1px;
+ border-style: solid;
}
#taskbar button,
#workspaces button {
- color: @text-alt;
- box-shadow: none;
- text-shadow: none;
- padding: 0px;
- border-radius: 9px;
- padding-left: 4px;
- padding-right: 4px;
- animation: gradient_f 20s ease-in infinite;
- transition: all 0.5s cubic-bezier(.55,-0.68,.48,1.682);
+ color: @text-alt;
+ box-shadow: none;
+ text-shadow: none;
+ padding: 0px;
+ border-radius: 9px;
+ padding-left: 4px;
+ padding-right: 4px;
+ animation: gradient_f 20s ease-in infinite;
+ transition: all 0.5s cubic-bezier(0.55, -0.68, 0.48, 1.682);
}
-
+
#taskbar button.active,
#workspaces button.active {
- color: @text;
- border-radius: 15px 15px 15px 15px;
- padding-left: 8px;
- padding-right: 8px;
- animation: gradient_f 20s ease-in infinite;
- transition: all 0.3s cubic-bezier(.55,-0.68,.48,1.682);
+ color: @text;
+ border-radius: 15px 15px 15px 15px;
+ padding-left: 8px;
+ padding-right: 8px;
+ animation: gradient_f 20s ease-in infinite;
+ transition: all 0.3s cubic-bezier(0.55, -0.68, 0.48, 1.682);
}
-
+
#workspaces button.focused {
- color: @text-alt;
+ color: @text-alt;
}
-
+
#workspaces button.urgent {
- color: @warning;
- border-radius: 10px;
+ color: @warning;
+ border-radius: 10px;
}
-#taskbar button:hover,
+#taskbar button:hover,
#workspaces button:hover {
- color: @text;
- border-radius: 15px;
- padding-left: 2px;
- padding-right: 2px;
- animation: gradient_f 20s ease-in infinite;
- transition: all 0.3s cubic-bezier(.55,-0.68,.48,1.682);
+ color: @text;
+ border-radius: 15px;
+ padding-left: 2px;
+ padding-right: 2px;
+ animation: gradient_f 20s ease-in infinite;
+ transition: all 0.3s cubic-bezier(0.55, -0.68, 0.48, 1.682);
}
-
+
#backlight,
#battery,
#bluetooth,
@@ -162,68 +159,67 @@ tooltip {
#custom-weather.clearNight,
#custom-weather.cloudyFoggyDay,
#custom-weather.cloudyFoggyNight,
-#custom-weather.default
-#custom-weather.rainyDay,
+#custom-weather.default #custom-weather.rainyDay,
#custom-weather.rainyNight,
#custom-weather.severe,
#custom-weather.showyIcyDay,
#custom-weather.snowyIcyNight,
#custom-weather.sunnyDay {
- padding-top: 4px;
- padding-bottom: 4px;
- padding-right: 6px;
- padding-left: 6px;
+ padding-top: 4px;
+ padding-bottom: 4px;
+ padding-right: 6px;
+ padding-left: 6px;
}
-
+
#temperature.critical {
- background-color: #ff0000;
+ background-color: #ff0000;
}
-
+
@keyframes blink {
- to {
- color: #000000;
- }
+ to {
+ color: #000000;
+ }
}
/*-----Indicators----*/
#custom-hypridle.notactive,
#idle_inhibitor.activated {
- color: #39FF14;
- border-bottom: 8px solid rgba(0, 0, 0, 0.2);
+ color: #39ff14;
+ border-bottom: 0px solid rgba(0, 0, 0, 0.2);
}
-
+
#battery.critical:not(.charging) {
- color: @critical;
- animation-name: blink;
- animation-duration: 3.0s;
- animation-timing-function: steps(12);
- animation-iteration-count: infinite;
- animation-direction: alternate;
+ color: @critical;
+ animation-name: blink;
+ animation-duration: 3s;
+ animation-timing-function: steps(12);
+ animation-iteration-count: infinite;
+ animation-direction: alternate;
}
#backlight-slider slider,
#pulseaudio-slider slider {
- min-width: 0px;
- min-height: 0px;
- opacity: 0;
- background-image: none;
- border: none;
- box-shadow: none;
+ min-width: 0px;
+ min-height: 0px;
+ opacity: 0;
+ background-image: none;
+ border: none;
+ box-shadow: none;
}
#backlight-slider trough,
#pulseaudio-slider trough {
- min-width: 80px;
- min-height: 10px;
- border-radius: 5px;
- background-color: black;
+ min-width: 80px;
+ min-height: 10px;
+ border-radius: 5px;
+ background-color: black;
}
#backlight-slider highlight,
#pulseaudio-slider highlight {
- min-height: 10px;
- border-radius: 5px;
- background-color: wheat;
+ min-height: 10px;
+ border-radius: 5px;
+ background-color: wheat;
}
/* --- tray readability override (global) --- */
diff --git a/config/yazi/keymap.toml b/config/yazi/keymap.toml
index ba212c92..d64f76da 100644
--- a/config/yazi/keymap.toml
+++ b/config/yazi/keymap.toml
@@ -41,7 +41,7 @@ prepend_keymap = [
{ on = "S", run = "search fd", desc = "Search files by name using fd" },
{ on = [
"T",
- ], run = "plugin --sync hide-preview", desc = "Hide or show the preview" },
+ ], run = "plugin toggle-pane min-preview", desc = "Hide or show the preview" },
{ on = [
"y",
], run = [
diff --git a/config/yazi/package.toml b/config/yazi/package.toml
index deedca73..961e3e13 100644
--- a/config/yazi/package.toml
+++ b/config/yazi/package.toml
@@ -23,10 +23,6 @@ use = "yazi-rs/plugins:smart-filter"
rev = "1db18bb"
hash = "c887903a63a2ff520081b6d90a4b3392"
-[[plugin.deps]]
-use = "yazi-rs/plugins:hide-preview"
-rev = "1db18bb"
-hash = "99aa06d3014798d86001c324468d497f"
[[plugin.deps]]
use = "yazi-rs/plugins:git"
send patches to the email below
yukais@pinapelz.com
include the subject [PATCH repo_name]
pinapelz.com
homepage