From 4361f59928384f1cf7df8e2ef348e3532e348e9b Mon Sep 17 00:00:00 2001 From: Don Williams Date: Tue, 30 Jun 2026 10:48:43 -0400 Subject: Restored Hyprlock files Signed-off-by: Don Williams --- config/hypr/hyprlock-1080p.conf | 8 ++++---- config/hypr/hyprlock.conf | 6 +++--- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/config/hypr/hyprlock-1080p.conf b/config/hypr/hyprlock-1080p.conf index f438e135..b0a0279c 100644 --- a/config/hypr/hyprlock-1080p.conf +++ b/config/hypr/hyprlock-1080p.conf @@ -1,5 +1,5 @@ # /* ---- 💫 https://github.com/LinuxBeginnings 💫 ---- */ # -# Hyprlock config for < 1080p monitor resolutions +# Hyprlock config for < 1080p monitor resolutions # Original config submitted by https://github.com/SherLock707 # Sourcing colors generated by wallust @@ -17,7 +17,7 @@ background { #path = screenshot # screenshot of your desktop #path = $HOME/.config/hypr/wallpaper_effects/.wallpaper_modified # by wallpaper effects path = $HOME/.config/hypr/wallpaper_effects/.wallpaper_current # current wallpaper - + color = rgb(0,0,0) # color will be rendered initially until path is available # all these options are taken from hyprland, see https://wiki.hyprland.org/Configuring/Variables/#blur for explanations @@ -36,7 +36,7 @@ label { monitor = text = cmd[update:18000000] echo " "$(date +'%A, %-d %B')" " color = $color13 - font_size = 48 + font_size = 48 font_family = Victor Mono Bold Italic position = 0, -60 halign = center @@ -51,7 +51,7 @@ label { #color = rgba(255, 185, 0, .8) color = $color8 font_size = 130 - font_family = JetBrainsMono Nerd Font ExtraBold + font_family = JetBrainsMono Nerd Font ExtraBold position = 0, -250 halign = center valign = top diff --git a/config/hypr/hyprlock.conf b/config/hypr/hyprlock.conf index a0020875..8c357d90 100644 --- a/config/hypr/hyprlock.conf +++ b/config/hypr/hyprlock.conf @@ -1,5 +1,5 @@ # /* ---- 💫 https://github.com/LinuxBeginnings 💫 ---- */ # -# Hyprlock config for => 2k monitor resolutions +# Hyprlock config for => 2k monitor resolutions # Original config submitted by https://github.com/SherLock707 # Sourcing colors generated by wallust @@ -17,7 +17,7 @@ background { #path = screenshot # screenshot of your desktop #path = $HOME/.config/hypr/wallpaper_effects/.wallpaper_modified # by wallpaper effects path = $HOME/.config/hypr/wallpaper_effects/.wallpaper_current # current wallpaper - + color = rgb(0,0,0) # color will be rendered initially until path is available # all these options are taken from hyprland, see https://wiki.hyprland.org/Configuring/Variables/#blur for explanations @@ -51,7 +51,7 @@ label { #color = rgba(255, 185, 0, .8) color = $color8 font_size = 173 - font_family = JetBrainsMono Nerd Font ExtraBold + font_family = JetBrainsMono Nerd Font ExtraBold position = 0, -133 halign = center valign = top -- cgit v1.2.3 From fed1837fbdcc2acedbb8d6246a2601b26ad40369 Mon Sep 17 00:00:00 2001 From: Donald Williams <129223418+dwilliam62@users.noreply.github.com> Date: Wed, 1 Jul 2026 22:06:51 -0400 Subject: Development branch to main v2.3.25 (#84) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Updated version to v2.3.25 Signed-off-by: Don Williams On branch development Your branch is up to date with 'origin/development'. Changes to be committed: modified: CHANGELOG.md modified: config/hypr/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 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 * Added persistant toggle for Dark/Light mode Default is dark Signed-off-by: Don Williams On branch development Your branch is up to date with 'origin/development'. Changes to be committed: modified: CHANGELOG.md modified: config/hypr/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 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 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 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 * 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 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 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 * Added icon for wave terminal Signed-off-by: Don Williams 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 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 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 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 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 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 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 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 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 • 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 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 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 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 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 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 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 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 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 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 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 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 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 * Fixing waybar spacing issues Signed-off-by: Don Williams * Fixing formatting issues in waybar style sheets Signed-off-by: Don Williams 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 * Fixed Oglo Chickets.css part 2 Signed-off-by: Don Williams * Fixed Oglo colors Signed-off-by: Don Williams * Working on Oglo still Signed-off-by: Don Williams * 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 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 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 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 * Archived UserScripts/Tak0-Autodispatch.sh Not supported and no longer needed Signed-off-by: Don Williams 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 * Restore hyprlock-1080/hyprlock.conf Signed-off-by: Don Williams * Added script to toggle waybar 12/24hr Signed-off-by: Don Williams On branch development Your branch is up to date with 'origin/development'. Changes to be committed: modified: CHANGELOG.md modified: config/hypr/scripts/Kool_Quick_Settings.sh new file: config/hypr/scripts/ToggleWaybarTime.sh * Fixed notifcation on waybar time change Signed-off-by: Don Williams 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 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 * Updated copy.sh to check for hyprland.lua Preventing a failed startup on next login Signed-off-by: Don Williams On branch development Your branch is up to date with 'origin/development'. Changes to be committed: modified: CHANGELOG.md modified: copy.sh --------- Signed-off-by: Don Williams Signed-off-by: Don Williams Co-authored-by: brockar --- CHANGELOG.md | 133 +++++ README.md | 2 + archive/Tak0-Autodispatch.sh | 68 +++ archive/upgrade.sh | 44 +- config/hypr/UserConfigs/user_animations.lua | 17 + config/hypr/UserConfigs/user_decorations.lua | 152 ++---- config/hypr/UserConfigs/user_defaults.lua | 17 + config/hypr/UserConfigs/user_env.lua | 13 + config/hypr/UserConfigs/user_laptops.lua | 12 + config/hypr/UserConfigs/user_layer_rules.lua | 50 ++ config/hypr/UserConfigs/user_settings.lua | 27 + config/hypr/UserConfigs/user_startup.lua | 47 ++ config/hypr/UserConfigs/user_window_rules.lua | 50 ++ config/hypr/UserScripts/00-Readme | 4 +- config/hypr/UserScripts/RainbowBorders-low-cpu.sh | 2 +- config/hypr/UserScripts/RainbowBorders.bak.sh | 2 +- config/hypr/UserScripts/RofiBeats.sh | 8 +- config/hypr/UserScripts/RofiCalc.sh | 2 +- config/hypr/UserScripts/Tak0-Autodispatch.sh | 68 --- config/hypr/UserScripts/WallpaperAutoChange.sh | 51 -- config/hypr/UserScripts/WallpaperEffects.sh | 124 ----- config/hypr/UserScripts/WallpaperRandom.sh | 47 -- config/hypr/UserScripts/WallpaperSelect.sh | 267 --------- config/hypr/UserScripts/Weather.py | 2 +- config/hypr/UserScripts/ZshChangeTheme.sh | 74 --- config/hypr/animations/00-default.lua | 26 + config/hypr/animations/01-default - v2.lua | 27 + config/hypr/animations/03- Disable Animation.lua | 7 + config/hypr/animations/END-4.lua | 34 ++ config/hypr/animations/HYDE - Vertical.lua | 22 + config/hypr/animations/HYDE - default.lua | 22 + config/hypr/animations/HYDE - minimal-1.lua | 21 + config/hypr/animations/HYDE - minimal-2.lua | 15 + config/hypr/animations/HYDE - optimized.lua | 40 ++ config/hypr/animations/ML4W - classic.lua | 16 + config/hypr/animations/ML4W - dynamic.lua | 21 + config/hypr/animations/ML4W - fast.lua | 25 + config/hypr/animations/ML4W - high.lua | 21 + config/hypr/animations/ML4W - moving.lua | 20 + config/hypr/animations/ML4W - standard.lua | 16 + config/hypr/animations/Mahaveer - me-1.lua | 41 ++ config/hypr/animations/Mahaveer - me-2.lua | 26 + config/hypr/animations/Spring-curves.conf | 25 + config/hypr/animations/Spring-curves.lua | 28 + config/hypr/configs/ENVariables.conf | 24 +- config/hypr/configs/Keybinds.conf | 37 +- config/hypr/configs/Startup_Apps.conf | 9 +- config/hypr/configs/SystemSettings.conf | 2 +- config/hypr/configs/WindowRules.conf | 10 + config/hypr/configs/system_keybinds.lua | 416 ++++++++++++++ config/hypr/hypridle.conf | 15 +- config/hypr/initial-boot.sh | 18 +- config/hypr/lua/env.lua | 6 +- config/hypr/lua/keybind_helpers.lua | 23 +- config/hypr/lua/keybinds.lua | 154 +++++- config/hypr/lua/settings.lua | 2 +- config/hypr/lua/startup.lua | 19 +- config/hypr/lua/user_keybinds_helper.lua | 22 +- config/hypr/lua/user_overrides.lua | 31 ++ config/hypr/lua/workspaces.lua | 4 + .../hypr/scripts/Add-override-Hyprland-Portal.sh | 2 +- config/hypr/scripts/AirplaneMode.sh | 2 +- config/hypr/scripts/Animations.sh | 42 +- config/hypr/scripts/ApplyThemeMode.sh | 11 + config/hypr/scripts/Brightness.sh | 2 +- config/hypr/scripts/BrightnessKbd.sh | 2 +- config/hypr/scripts/ChangeBlur.sh | 2 +- config/hypr/scripts/ChangeLayout.sh | 229 +++++--- config/hypr/scripts/ChangeStarshipPrompt.sh | 78 +++ config/hypr/scripts/ClipManager.sh | 2 +- config/hypr/scripts/DarkLight.sh | 138 +++-- config/hypr/scripts/Distro_update.sh | 2 +- config/hypr/scripts/Dropterminal.sh | 2 +- config/hypr/scripts/ExternalBrightness.sh | 2 +- config/hypr/scripts/Float-all-Windows.sh | 2 +- config/hypr/scripts/GameMode.sh | 6 +- config/hypr/scripts/Ghostty_themes.sh | 12 +- config/hypr/scripts/HyprLayoutModule.sh | 20 +- config/hypr/scripts/HyprlockWallpaperSelect.sh | 358 ++++++++++++ config/hypr/scripts/JavaManager.sh | 2 +- config/hypr/scripts/KeyBinds.sh | 6 +- config/hypr/scripts/KeyHints.sh | 2 +- config/hypr/scripts/KeybindsLayoutInit.sh | 14 +- config/hypr/scripts/KeyboardLayout.sh | 6 +- config/hypr/scripts/KillActiveProcess.sh | 2 +- config/hypr/scripts/Kitty_themes.sh | 10 +- config/hypr/scripts/KooLsDotsUpdate.sh | 4 +- config/hypr/scripts/Kool_Quick_Settings.sh | 109 +++- config/hypr/scripts/LaunchFileManager.sh | 122 +++++ config/hypr/scripts/LaunchTerminal.sh | 160 ++++++ config/hypr/scripts/LaunchThunar.sh | 50 ++ config/hypr/scripts/LayoutKeybindDispatch.sh | 219 ++++++++ config/hypr/scripts/LockScreen.sh | 2 +- config/hypr/scripts/LuaAutoReload.sh | 17 +- config/hypr/scripts/MediaCtrl.sh | 2 +- config/hypr/scripts/MonitorProfiles.sh | 20 +- config/hypr/scripts/OverviewToggle.sh | 2 +- config/hypr/scripts/PersistWorkspaceLayout.sh | 223 ++++++++ config/hypr/scripts/Polkit-Diag.sh | 2 +- config/hypr/scripts/PortalHyprland.sh | 149 ++++- config/hypr/scripts/PortalHyprlandUbuntu.sh | 4 +- config/hypr/scripts/Refresh.sh | 8 +- config/hypr/scripts/RefreshNoWaybar.sh | 8 +- config/hypr/scripts/RofiEmoji.sh | 2 +- config/hypr/scripts/RofiFocusedWallpaperLink.sh | 180 +++++++ config/hypr/scripts/RofiSearch.sh | 4 +- config/hypr/scripts/RofiThemeSelector-modified.sh | 12 +- config/hypr/scripts/RofiThemeSelector.sh | 8 +- config/hypr/scripts/ScreenShot.sh | 6 +- config/hypr/scripts/ScrollCycleColumnWidth.sh | 56 ++ config/hypr/scripts/ScrollMaximizeToggle.sh | 175 ++++++ config/hypr/scripts/Sounds.sh | 2 +- config/hypr/scripts/Tak0-Autodispatch.sh | 2 +- config/hypr/scripts/Tak0-Per-Window-Switch.sh | 4 +- config/hypr/scripts/ThemeChanger.sh | 42 +- config/hypr/scripts/Toggle-Active-Window-Audio.sh | 2 +- config/hypr/scripts/Toggle-weather-waybar-units.sh | 2 +- config/hypr/scripts/ToggleWaybarTime.sh | 101 ++++ config/hypr/scripts/TouchPad.sh | 6 +- config/hypr/scripts/UserConfigsSwitcher.sh | 2 +- config/hypr/scripts/Volume.sh | 4 +- config/hypr/scripts/WallpaperAutoChange.sh | 54 ++ config/hypr/scripts/WallpaperDaemon.sh | 10 +- config/hypr/scripts/WallpaperEffects.sh | 140 +++++ config/hypr/scripts/WallpaperRandom.sh | 50 ++ config/hypr/scripts/WallpaperSelect.sh | 267 +++++++++ config/hypr/scripts/WallustConfig.sh | 6 +- config/hypr/scripts/WallustSwww.sh | 58 +- config/hypr/scripts/WaybarLayout.sh | 8 +- config/hypr/scripts/WaybarScripts.sh | 6 +- config/hypr/scripts/WaybarStyles.sh | 8 +- config/hypr/scripts/ZshChangeTheme.sh | 74 +++ config/hypr/scripts/fastfetch-wrapper.sh | 2 +- config/hypr/scripts/kooldots-add-ssh-agent.sh | 310 +++++++++++ config/hypr/scripts/rofi-emacs-keybinds | 2 +- config/hypr/scripts/rofi-ssh-menu.sh | 2 +- config/hypr/scripts/sddm_wallpaper.sh | 599 ++++++++++++++++++--- config/hypr/scripts/set-default-thunar-terminal.sh | 2 +- config/hypr/scripts/update_WindowRules.sh | 2 +- config/hypr/v2.3.24 | 0 config/hypr/v2.3.25 | 0 config/hypr/workspaces.conf | 5 + config/rofi/config-layout.rasi | 63 +++ config/rofi/config-starship.rasi | 63 +++ config/rofi/themes/KooL_style-1.rasi | 2 +- config/rofi/themes/KooL_style-13-Vertical.rasi | 2 +- config/rofi/themes/KooL_style-3-FullScreen-v1.rasi | 2 +- config/rofi/themes/KooL_style-5.rasi | 2 +- config/rofi/themes/KooL_style-6.rasi | 2 +- config/rofi/themes/KooL_style-8.rasi | 2 +- config/starship/1-line-nix.toml | 79 +++ config/starship/1-line-simple.toml | 173 ++++++ config/starship/2-line-classic-garuda.toml | 146 +++++ config/starship/2-line-cool.toml | 65 +++ config/starship/2-line-nixos.toml | 79 +++ config/starship/chris-titus.toml | 129 +++++ config/starship/classic.toml | 250 +++++++++ config/starship/eric-dubois.toml | 191 +++++++ config/starship/nobara.toml | 248 +++++++++ config/starship/purple-1line.toml | 79 +++ config/starship/ranbow.toml | 181 +++++++ config/starship/simple-prompt.toml | 187 +++++++ config/starship/vill-minimalist.toml | 405 ++++++++++++++ .../xdg-desktop-portal.service.d/override.conf | 4 + config/waybar/ModulesWorkspaces | 1 + config/waybar/style/0-VERTICAL-Catpuccin-Mocha.css | 267 --------- config/waybar/style/0-VERTICAL-Golden-Noir.css | 251 --------- config/waybar/style/0-VERTICAL-Oglo-Chicklets.css | 448 --------------- config/waybar/style/Black-&-White-Monochrome.css | 206 +++---- config/waybar/style/Catppuccin-Frappe.css | 162 +++--- config/waybar/style/Catppuccin-Mocha.css | 173 +++--- config/waybar/style/Colored-Chroma-Glow.css | 238 ++++---- config/waybar/style/Colored-Translucent.css | 248 ++++----- config/waybar/style/Colorful-Aurora-Blossom.css | 175 +++--- config/waybar/style/Colorful-Aurora.css | 177 +++--- config/waybar/style/Colorful-Oglo-Chicklets.css | 422 +++++++++------ config/waybar/style/Colorful-Rainbow-Spectrum.css | 249 ++++----- config/waybar/style/Colorful-stolen-style.css | 26 +- config/waybar/style/Dark-Golden-Eclipse.css | 144 +++-- config/waybar/style/Dark-Golden-Noir.css | 179 +++--- config/waybar/style/Dark-Half-Moon.css | 358 ++++++------ .../waybar/style/Dark-Latte-Wallust-combined.css | 218 ++++---- config/waybar/style/Dark-Purpl.css | 208 +++---- config/waybar/style/Dark-Wallust-Obsidian-Edge.css | 162 +++--- config/waybar/style/Extra-Crimson.css | 194 +++---- config/waybar/style/Extra-EverForest.css | 44 +- config/waybar/style/Extra-Mauve.css | 191 ++++--- .../style/Extra-Modern-Combined-Transparent.css | 189 +++---- config/waybar/style/Extra-Rose-Pine.css | 202 +++---- config/waybar/style/Extra-Simple-Pink.css | 180 +++---- config/waybar/style/Light-Monochrome-Contrast.css | 173 +++--- config/waybar/style/Light-Obsidian-Glow.css | 176 +++--- config/waybar/style/Rainbow-RGB-Bordered.css | 172 +++--- config/waybar/style/Retro-Simple-Style.css | 51 +- config/waybar/style/Transparent-Crystal-Clear.css | 204 ++++--- config/waybar/style/VERTICAL-Catpuccin-Mocha.css | 27 +- .../style/Wallust-Bordered-Chroma-Fusion-Edge.css | 238 ++++---- .../style/Wallust-Bordered-Chroma-Simple.css | 289 +++++----- config/waybar/style/Wallust-Box-type.css | 9 +- config/waybar/style/Wallust-Chroma-Edge.css | 4 +- config/waybar/style/Wallust-Chroma-Fusion.css | 251 +++++---- config/waybar/style/Wallust-Chroma-Tally-V2.css | 223 ++++---- config/waybar/style/Wallust-Chroma-Tally.css | 214 ++++---- config/waybar/style/Wallust-Colored.css | 191 ++++--- config/waybar/style/Wallust-Simple.css | 172 +++--- .../style/Wallust-Transparent-Crystal-Clear.css | 216 ++++---- config/yazi/keymap.toml | 2 +- config/yazi/package.toml | 4 - copy.sh | 132 +++-- scripts/fix-systemsettings-lua.sh | 4 +- scripts/lib_apps.sh | 4 +- scripts/lib_backup.sh | 4 +- scripts/lib_copy.sh | 87 ++- scripts/lib_detect.sh | 66 ++- scripts/lib_prompts.sh | 4 +- scripts/migrate-hypr-to-lua.sh | 82 ++- 216 files changed, 11729 insertions(+), 5736 deletions(-) create mode 100755 archive/Tak0-Autodispatch.sh create mode 100644 config/hypr/UserConfigs/user_animations.lua create mode 100644 config/hypr/UserConfigs/user_defaults.lua create mode 100644 config/hypr/UserConfigs/user_env.lua create mode 100644 config/hypr/UserConfigs/user_laptops.lua create mode 100644 config/hypr/UserConfigs/user_layer_rules.lua create mode 100644 config/hypr/UserConfigs/user_settings.lua create mode 100644 config/hypr/UserConfigs/user_startup.lua create mode 100644 config/hypr/UserConfigs/user_window_rules.lua delete mode 100755 config/hypr/UserScripts/Tak0-Autodispatch.sh delete mode 100755 config/hypr/UserScripts/WallpaperAutoChange.sh delete mode 100755 config/hypr/UserScripts/WallpaperEffects.sh delete mode 100755 config/hypr/UserScripts/WallpaperRandom.sh delete mode 100755 config/hypr/UserScripts/WallpaperSelect.sh delete mode 100755 config/hypr/UserScripts/ZshChangeTheme.sh create mode 100644 config/hypr/animations/00-default.lua create mode 100644 config/hypr/animations/01-default - v2.lua create mode 100644 config/hypr/animations/03- Disable Animation.lua create mode 100644 config/hypr/animations/END-4.lua create mode 100644 config/hypr/animations/HYDE - Vertical.lua create mode 100644 config/hypr/animations/HYDE - default.lua create mode 100644 config/hypr/animations/HYDE - minimal-1.lua create mode 100644 config/hypr/animations/HYDE - minimal-2.lua create mode 100644 config/hypr/animations/HYDE - optimized.lua create mode 100644 config/hypr/animations/ML4W - classic.lua create mode 100644 config/hypr/animations/ML4W - dynamic.lua create mode 100644 config/hypr/animations/ML4W - fast.lua create mode 100644 config/hypr/animations/ML4W - high.lua create mode 100644 config/hypr/animations/ML4W - moving.lua create mode 100644 config/hypr/animations/ML4W - standard.lua create mode 100644 config/hypr/animations/Mahaveer - me-1.lua create mode 100644 config/hypr/animations/Mahaveer - me-2.lua create mode 100644 config/hypr/animations/Spring-curves.conf create mode 100644 config/hypr/animations/Spring-curves.lua create mode 100644 config/hypr/configs/system_keybinds.lua create mode 100755 config/hypr/scripts/ApplyThemeMode.sh create mode 100755 config/hypr/scripts/ChangeStarshipPrompt.sh create mode 100755 config/hypr/scripts/HyprlockWallpaperSelect.sh create mode 100755 config/hypr/scripts/LaunchFileManager.sh create mode 100755 config/hypr/scripts/LaunchTerminal.sh create mode 100755 config/hypr/scripts/LaunchThunar.sh create mode 100755 config/hypr/scripts/LayoutKeybindDispatch.sh create mode 100755 config/hypr/scripts/PersistWorkspaceLayout.sh create mode 100755 config/hypr/scripts/RofiFocusedWallpaperLink.sh create mode 100755 config/hypr/scripts/ScrollCycleColumnWidth.sh create mode 100755 config/hypr/scripts/ScrollMaximizeToggle.sh create mode 100755 config/hypr/scripts/ToggleWaybarTime.sh create mode 100755 config/hypr/scripts/WallpaperAutoChange.sh create mode 100755 config/hypr/scripts/WallpaperEffects.sh create mode 100755 config/hypr/scripts/WallpaperRandom.sh create mode 100755 config/hypr/scripts/WallpaperSelect.sh create mode 100755 config/hypr/scripts/ZshChangeTheme.sh create mode 100755 config/hypr/scripts/kooldots-add-ssh-agent.sh delete mode 100644 config/hypr/v2.3.24 create mode 100644 config/hypr/v2.3.25 create mode 100644 config/rofi/config-layout.rasi create mode 100644 config/rofi/config-starship.rasi create mode 100644 config/starship/1-line-nix.toml create mode 100644 config/starship/1-line-simple.toml create mode 100644 config/starship/2-line-classic-garuda.toml create mode 100644 config/starship/2-line-cool.toml create mode 100644 config/starship/2-line-nixos.toml create mode 100644 config/starship/chris-titus.toml create mode 100644 config/starship/classic.toml create mode 100644 config/starship/eric-dubois.toml create mode 100644 config/starship/nobara.toml create mode 100644 config/starship/purple-1line.toml create mode 100644 config/starship/ranbow.toml create mode 100644 config/starship/simple-prompt.toml create mode 100644 config/starship/vill-minimalist.toml create mode 100644 config/systemd/user/xdg-desktop-portal.service.d/override.conf delete mode 100644 config/waybar/style/0-VERTICAL-Catpuccin-Mocha.css delete mode 100644 config/waybar/style/0-VERTICAL-Golden-Noir.css delete mode 100644 config/waybar/style/0-VERTICAL-Oglo-Chicklets.css diff --git a/CHANGELOG.md b/CHANGELOG.md index 3be76db4..8f06eef0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,12 +2,142 @@ ## v2.3.25 +## Fixed + +- Pane selection bindings fail in lua configuration +- duplicate bindings for terminal +- Created wrapper script for `thunar` + - Wasn't always starting in Debian lua config +- keybindings in scrolling layout +- `copy.sh` not copying all lua files +- `WallpaperEffects.sh` in lua config it changed theme not just wallpaper +- system keybinds in LUA config +- handling of SUPER-Q close active in LUA config +- keybinds handingling in LUA config +- wallpaper effects it would not restore original wallpaper +- wallpaper selector it was resetting waybar style sheet +- Layout code refactor: + - Layouts are now per monitor/workspace + - When you set a layout mode, i.e. scrolling + - It will udpate the `~/.config/hypr/workspaces.conf` file + - Therefore it will be persistent on next login + - The current layout is shown in upper left corner + - This fixes issue with setting `workspaces.conf` manually + - When you selected a layout from menu the bindings didn't match + - Also previously the layout was globally applied + - Thanks to `@aki` for finding and reporting this issue +- WIP: Fixing icon spacing issues in Waybar +- Waybar would start then be restarted at login + - Changed start order, `ThemeMode.sh` runs before waybar start + - This restores users dark/light theme choice before waybar starts +- LUA: `QT_STYLE_OVERRIDE` in LUA was hard coded to `kvantum` +- LUA: Fixed `LuaAutoReload.sh` wasn't activating changes on save +- LUA: `lua_user_overides.lua` wasn't loading `system_keybinds.lua` +- `xdg-desktop-portal-hyprland` shows failed after CachyOS update + - A regression bug in CachyOS is causing the issue + - Screensharing doesn't work as a result + - I created a script to create and override until they release the fix + - In the `Hyprland-Dots` directory + - Often located in `~/Arch-Hyprland=/Hyprland-Dots` + - Run the script `config/hypr/scripts/Add-override-Hyprland-Portal.sh` + - I will also be uploading the script to the Discord server +- NVIDIA Hybrid laptops have issues with cursors and GDM + - Added more defensive code with fallbacks +- Dynamic wallpaper is now also per monitor ## Fixed: - Disabled LayerRule for swaync - Caused execessive blurring of background - WindowRule for `qcalculate-gtk` - Had same rule as `gnome-calculator` needed own sizing +- Hybrid NVIDIA cursor handoff improvements + - Enables Xcursor fallbacks and optional setcursor refresh on hybrid laptops + +## Added: + +- Check for existing `KoolDots` installations + - Distros are now shipping hyprland with LUA workflow + - Previous `copy.sh` did not disable `~/.config/hypr/hyprland.lua` + - After KoolDots installation it would not start, resulting in black screen + - Now checks for this and backs up `.config/hypr` directory +- Rofi menu to select starship prompt + - Requires that starship is already configured and running + - The menu is in the Quick Settings Menu `SUPER SHIFT E` +- `config/rofi/config-layout.rasi` menu for Change Layout menu +- `.config/hypr/scripts/kooldots-add-ssh-agent.sh` + - will create `systemd` user service to store ssh keys +- Sample `starship` config files + - `copy.sh` now copies them to `.config/starship` + - Will be adding menu later +- Migrated animation files from hyprlang to lua +- Launch scripts for `$term` and `$files` + - Scripts check for presence or crashes + - Has several fallbacks for each + - kitty, ghostty, wezterm, alacritty, konsole, gnome-terminal + - Thunar,dolphin,nautilus, $term -e yazi +- Added the additional LUA UserConfig files + - `user_settings.lua` + - `Window_rules.lua` + - `layer_rules.lua` + - `user_laptops.lua` + - `user_env.lua` + - `user_defaults.lua` + - Etc.. +- Migration to LUA script will migrate UserConfigs to LUA format +- Keybind `SUPER + ALT + F` to maximize window in `scrolling` layout +- Keybind `SUPER+R` to toggle column widths in `scrolling` layout +- Sample LUA workspace rules for setting layout per monitor/workspace + ```lua + 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" }) + ``` +- Sample `hyprlang` (.conf) versions also + ```ini + 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 + ``` +- Menu item in Quick settings, (SUPERSHIFT + E) to set Hyprlock background +- Dark / Light theme toggle is now persistant + - At startup it checks and restores selection + - `config/hypr/scripts/DarkLight.sh` + - added persistent state file:` ${XDG_STATE_HOME:-$HOME/.local/state}/hypr/theme_mode` + - keeps legacy sync with` ~/.cache/.theme_mode` for compatibility + - defaults to Dark when no saved state exists + - added flags: + - `--apply-current` + - `--mode Dark|Light` + - `--no-notify` + - `--preserve-wallpaper` + - kept normal toggle behavior for manual use + - `config/hypr/scripts/ApplyThemeMode.sh` + - startup helper that runs: + - `DarkLight.sh --apply-current --preserve-wallpaper --no-notify` + - `config/hypr/configs/Startup_Apps.conf` + - added startup call to re-apply saved mode: + - `exec-once = sh -c 'sleep 4; sh $HOME/.config/hypr/scripts/ApplyThemeMode.sh'` + - `config/hypr/lua/startup.lua` + - added equivalent startup command for Lua startup flow + + ## Updated: + - Moved `UserScripts/Wallpaper*.sh` and `ZshChangeTheme.sh` to `$scriptsdir` + - They are system scripts not intended for user modification + - Archived `UserScripts/Tak0-Autodispatch` + - Not supported and no longer needed + - Reset binding for fullscreen and maximize + - `SUPER + F` is maximize + - `SHIFT + SHIFT + F` is fullscreen + - Now works in all layouts + - Enabled 12 min timer on turning off monitor + - For a very long that's been disabled by default + - The suspend option is still disabled + - Changed `$HOME` to `${XDG_CONFIG_HOME:$HOME}` + - Compliant with standard especially with `UWSM` + +--- - `Hyprlock.conf` and `Hyprlock-1080.conf` were removed, re-added ## v2.3.24 @@ -128,6 +258,9 @@ ## Added: +- System menu item to toggle 12/24hr waybar clock + - Under Edit System Settings `SUPER + SHIFT + E` + - Search for `waybar` - `yazi` config to `copy.sh` - Waybar widget for layouts - Shows current layout diff --git a/README.md b/README.md index 8e7ba281..8c52af71 100644 --- a/README.md +++ b/README.md @@ -145,6 +145,8 @@ chmod +x copy.sh - NVIDIA Owners. - After installation, check [`THIS`](https://github.com/LinuxBeginnings/Hyprland-Dots/wiki/FAQ_NVIDIA) - Make sure to edit your `~/.config/hypr/UserConfigs/ENVariables.conf` (highly recommended). +- Hybrid Intel/NVIDIA or AMD/NVIDIA laptops may need cursor handoff fixes + - The installer now enables XCURSOR fallbacks and a startup cursor refresh when hybrid GPUs are detected. - If you have already set your own keybinds, monitors, etc.... Just copy over from backup created before log-out or reboot. (recommended) #### 🙋 QUESTIONS ? diff --git a/archive/Tak0-Autodispatch.sh b/archive/Tak0-Autodispatch.sh new file mode 100755 index 00000000..b0607e13 --- /dev/null +++ b/archive/Tak0-Autodispatch.sh @@ -0,0 +1,68 @@ +#!/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 +# Example: +# ./dispatch.sh discord 2 +# +# 2) Call from Hyprland config (in hyprland.conf file): +# exec-once = /path/to/dispatch.sh +# +# 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 " >>"$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/archive/upgrade.sh b/archive/upgrade.sh index f8442ded..ebace35a 100755 --- a/archive/upgrade.sh +++ b/archive/upgrade.sh @@ -81,25 +81,25 @@ LOG="Upgrade-Logs/upgrade-$(date +%d-%H%M%S)_upgrade_dotfiles.log" # source and target versions source_dir="config" -target_dir="$HOME/.config" +target_dir="${XDG_CONFIG_HOME:-$HOME/.config}" # Specify the update source directories, their corresponding target directories, and their exclusions declare -A directories=( - ["config/hypr/"]="$HOME/.config/hypr/" - ["config/kitty/"]="$HOME/.config/kitty/" - ["config/Kvantum/"]="$HOME/.config/Kvantum/" - ["config/nvim/"]="$HOME/.config/nvim/" - ["config/qt5ct/"]="$HOME/.config/qt5ct" - ["config/qt6ct/"]="$HOME/.config/qt6ct/" - ["config/rofi/"]="$HOME/.config/rofi/" - ["config/swaync/"]="$HOME/.config/swaync/" - ["config/waybar/"]="$HOME/.config/waybar/" - ["config/cava/"]="$HOME/.config/cava/" - ["config/ags/"]="$HOME/.config/ags/" - ["config/quickshell/"]="$HOME/.config/quickshell/" - ["config/fastfetch/"]="$HOME/.config/fastfetch/" - ["config/wallust/"]="$HOME/.config/wallust/" - ["config/wlogout/"]="$HOME/.config/wlogout/" + ["config/hypr/"]="${XDG_CONFIG_HOME:-$HOME/.config}/hypr/" + ["config/kitty/"]="${XDG_CONFIG_HOME:-$HOME/.config}/kitty/" + ["config/Kvantum/"]="${XDG_CONFIG_HOME:-$HOME/.config}/Kvantum/" + ["config/nvim/"]="${XDG_CONFIG_HOME:-$HOME/.config}/nvim/" + ["config/qt5ct/"]="${XDG_CONFIG_HOME:-$HOME/.config}/qt5ct" + ["config/qt6ct/"]="${XDG_CONFIG_HOME:-$HOME/.config}/qt6ct/" + ["config/rofi/"]="${XDG_CONFIG_HOME:-$HOME/.config}/rofi/" + ["config/swaync/"]="${XDG_CONFIG_HOME:-$HOME/.config}/swaync/" + ["config/waybar/"]="${XDG_CONFIG_HOME:-$HOME/.config}/waybar/" + ["config/cava/"]="${XDG_CONFIG_HOME:-$HOME/.config}/cava/" + ["config/ags/"]="${XDG_CONFIG_HOME:-$HOME/.config}/ags/" + ["config/quickshell/"]="${XDG_CONFIG_HOME:-$HOME/.config}/quickshell/" + ["config/fastfetch/"]="${XDG_CONFIG_HOME:-$HOME/.config}/fastfetch/" + ["config/wallust/"]="${XDG_CONFIG_HOME:-$HOME/.config}/wallust/" + ["config/wlogout/"]="${XDG_CONFIG_HOME:-$HOME/.config}/wlogout/" # Add more directories to compare as needed ) @@ -128,7 +128,7 @@ create_backup() { local target_dir="$1" local backup_suffix="-b4-upgrade" local target_base=$(basename "$target_dir") - local backup_dir="$HOME/.config/${target_base}${backup_suffix}" + local backup_dir="${XDG_CONFIG_HOME:-$HOME/.config}/${target_base}${backup_suffix}" if [ -d "$backup_dir" ]; then echo "$NOTE Updating existing backup of the $target_dir..." @@ -144,7 +144,7 @@ create_backup() { # Check if the version file exists in target directory, if not exit target_version_file=$(find "$target_dir/hypr" -name 'v*' | sort -V | tail -n 1) if [ -z "$target_version_file" ]; then - echo "$ERROR Version number not found in ~/.config/hypr/" 2>&1 | tee -a "$LOG" + echo "$ERROR Version number not found in ${XDG_CONFIG_HOME:-$HOME/.config}/hypr/" 2>&1 | tee -a "$LOG" echo "$ERROR Upgrade your dots first by running ./copy.sh" 2>&1 | tee -a "$LOG" exit 1 fi @@ -200,10 +200,10 @@ if version_gt "$latest_version" "$stored_version"; then echo "$NOTE Files or directories updated successfully to version $latest_version" 2>&1 | tee -a "$LOG" # Set some files as executable - chmod +x "$HOME/.config/hypr/scripts/"* 2>&1 | tee -a "$LOG" - chmod +x "$HOME/.config/hypr/UserScripts/"* 2>&1 | tee -a "$LOG" + chmod +x "${XDG_CONFIG_HOME:-$HOME/.config}/hypr/scripts/"* 2>&1 | tee -a "$LOG" + chmod +x "${XDG_CONFIG_HOME:-$HOME/.config}/hypr/UserScripts/"* 2>&1 | tee -a "$LOG" # Set executable for initial-boot.sh - chmod +x "$HOME/.config/hypr/initial-boot.sh" 2>&1 | tee -a "$LOG" + chmod +x "${XDG_CONFIG_HOME:-$HOME/.config}/hypr/initial-boot.sh" 2>&1 | tee -a "$LOG" else echo "$MAGENTA Upgrade declined. No files or directories changed" 2>&1 | tee -a "$LOG" @@ -215,7 +215,7 @@ fi printf "\n%.0s" {1..3} echo "$(tput bold)$(tput setaf 3)ATTENTION!!!! VERY IMPORTANT NOTICE!!!! $(tput sgr0)" echo "$(tput bold)$(tput setaf 7)If you updated waybar directory, and you have your own waybar layout and styles $(tput sgr0)" -echo "$(tput bold)$(tput setaf 7)Copy those files from the created backup ~/.config/waybar-b4-upgrade $(tput sgr0)" +echo "$(tput bold)$(tput setaf 7)Copy those files from the created backup ${XDG_CONFIG_HOME:-$HOME/.config}/waybar-b4-upgrade $(tput sgr0)" echo "$(tput bold)$(tput setaf 7)Make sure to set your waybar and style before logout or reboot $(tput sgr0)" echo "$(tput bold)$(tput setaf 7)SUPER CTRL B for Waybar Styles and SUPER ALT B for Waybar Layout $(tput sgr0)" printf "\n%.0s" {1..3} 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 -# Example: -# ./dispatch.sh discord 2 -# -# 2) Call from Hyprland config (in hyprland.conf file): -# exec-once = /path/to/dispatch.sh -# -# 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 " >>"$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/WallpaperAutoChange.sh b/config/hypr/UserScripts/WallpaperAutoChange.sh deleted file mode 100755 index 5cee2a1e..00000000 --- a/config/hypr/UserScripts/WallpaperAutoChange.sh +++ /dev/null @@ -1,51 +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 -# ================================================== -# source https://wiki.archlinux.org/title/Hyprland#Using_a_script_to_change_wallpaper_every_X_minutes - -# This script will randomly go through the files of a directory, setting it -# up as the wallpaper at regular intervals -# -# 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" -# shellcheck source=/dev/null -. "$SCRIPTSDIR/WallpaperCmd.sh" - -focused_monitor=$(hyprctl monitors | awk '/^Monitor/{name=$2} /focused: yes/{print name}') - -if [[ $# -lt 1 ]] || [[ ! -d $1 ]]; then - echo "Usage: - $0 " - exit 1 -fi - -# Edit below to control the images transition (swww/awww) -export SWWW_TRANSITION_FPS=60 -export SWWW_TRANSITION_TYPE=simple - -# This controls (in seconds) when to switch to the next image -INTERVAL=1800 - -while true; do - find "$1" \ - | while read -r img; do - echo "$((RANDOM % 1000)):$img" - done \ - | sort -n | cut -d':' -f2- \ - | while read -r img; do - resize_mode="$(wallpaper_resize_mode "$img" "$focused_monitor")" - "$WWW_CMD" img -o "$focused_monitor" --resize "$resize_mode" "$img" - # Regenerate colors from the exact image path to avoid cache races - $HOME/.config/hypr/scripts/WallustSwww.sh "$img" - # Refresh UI components that depend on wallust output - $wallust_refresh - sleep $INTERVAL - - done -done 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/WallpaperRandom.sh b/config/hypr/UserScripts/WallpaperRandom.sh deleted file mode 100755 index aae80426..00000000 --- a/config/hypr/UserScripts/WallpaperRandom.sh +++ /dev/null @@ -1,47 +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 -# ================================================== -# Script for Random Wallpaper ( CTRL ALT W) - -PICTURES_DIR="$(xdg-user-dir PICTURES 2>/dev/null || echo "$HOME/Pictures")" -wallDIR="$PICTURES_DIR/wallpapers" -SCRIPTSDIR="$HOME/.config/hypr/scripts" -# shellcheck source=/dev/null -. "$SCRIPTSDIR/WallpaperCmd.sh" - -focused_monitor=$(hyprctl monitors -j | jq -r '.[] | select(.focused) | .name') - -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[@]} ]} - - -# Transition config (swww/awww) -FPS=30 -TYPE="random" -DURATION=1 -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 -if ! "$WWW_CMD" query >/dev/null 2>&1; then - "$WWW_DAEMON" "${WWW_DAEMON_ARGS[@]}" & -fi -resize_mode="$(wallpaper_resize_mode "$RANDOMPICS" "$focused_monitor")" -"$WWW_CMD" img -o "$focused_monitor" --resize "$resize_mode" "$RANDOMPICS" "${SWWW_PARAMS[@]}" - -wait $! -if ! "$SCRIPTSDIR/WallustSwww.sh" "$RANDOMPICS"; then - notify-send -u critical "Wallust failed" "Wallpaper theme not refreshed" - exit 1 -fi - -wait $! -sleep 0.5 -"$SCRIPTSDIR/Refresh.sh" - diff --git a/config/hypr/UserScripts/WallpaperSelect.sh b/config/hypr/UserScripts/WallpaperSelect.sh deleted file mode 100755 index 2e5ecd86..00000000 --- a/config/hypr/UserScripts/WallpaperSelect.sh +++ /dev/null @@ -1,267 +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 -# ================================================== -# This script for selecting wallpapers (SUPER W) - -# WALLPAPERS PATH -terminal=kitty -PICTURES_DIR="$(xdg-user-dir PICTURES 2>/dev/null || echo "$HOME/Pictures")" -wallDIR="$PICTURES_DIR/wallpapers" -SCRIPTSDIR="$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" - -# Directory for swaync -iDIR="$HOME/.config/swaync/images" -iDIRi="$HOME/.config/swaync/icons" - -# swww/awww transition config -FPS=60 -TYPE="any" -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 - - -# Check if package bc exists -if ! command -v bc &>/dev/null; then - notify-send -i "$iDIR/error.png" "bc missing" "Install package bc first" - exit 1 -fi - -# Variables -rofi_theme="$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}" - -# Ensure focused_monitor is detected -if [[ -z "$focused_monitor" ]]; then - notify-send -i "$iDIR/error.png" "E-R-R-O-R" "Could not detect focused monitor" - exit 1 -fi - -# Monitor details -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}%;}" - -# Kill existing wallpaper daemons for video -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 -} - -# Kill existing wallpaper daemons for image -kill_wallpaper_for_image() { - pkill mpvpaper 2>/dev/null - pkill swaybg 2>/dev/null - pkill hyprpaper 2>/dev/null -} - -# Retrieve wallpapers (both images & videos) -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) - -RANDOM_PIC="${PICS[$((RANDOM % ${#PICS[@]}))]}" -RANDOM_PIC_NAME="$(basename "$RANDOM_PIC")" - -CURRENT_MON_PIC_PATH=$("$WWW_CMD" query 2>/dev/null | grep "$focused_monitor" | awk '{print $NF}') -if [[ -z "$CURRENT_MON_PIC_PATH" ]]; then - if [[ -L "$wallpaper_link" ]]; then - CURRENT_MON_PIC_PATH="$(readlink -f "$wallpaper_link")" - elif [[ -f "$wallpaper_link" ]]; then - CURRENT_MON_PIC_PATH="$wallpaper_link" - elif [[ -f "$wallpaper_current" ]]; then - CURRENT_MON_PIC_PATH="$wallpaper_current" - fi -fi -CURRENT_MON_PIC_NAME=$(basename "$CURRENT_MON_PIC_PATH") - -# Rofi command -rofi_command="rofi -i -show -dmenu -config $rofi_theme -theme-str $rofi_override" - -# Sorting Wallpapers -menu() { - IFS=$'\n' sorted_options=($(sort <<<"${PICS[*]}")) - - printf "%s\x00icon\x1f%s\n" "Random: $RANDOM_PIC_NAME" "$RANDOM_PIC" - if [[ -n "$CURRENT_MON_PIC_PATH" ]]; then - printf "%s\x00icon\x1f%s\n" "Current: $CURRENT_MON_PIC_NAME" "$CURRENT_MON_PIC_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 -} - - -modify_startup_config() { - local selected_file="$1" - local startup_config="$HOME/.config/hypr/UserConfigs/Startup_Apps.conf" - - # Check if it's a live wallpaper (video) - if [[ "$selected_file" =~ \.(mp4|mkv|mov|webm)$ ]]; then - # For video wallpapers: - sed -i '/^\s*exec-once\s*=\s*\$scriptsDir\/WallpaperDaemon\.sh\s*$/s/^/\#/' "$startup_config" - sed -i '/^\s*exec-once\s*=\s*swww-daemon\s*--format\s*xrgb\s*$/s/^/\#/' "$startup_config" - sed -i '/^\s*#\s*exec-once\s*=\s*mpvpaper\s*.*$/s/^#\s*//;' "$startup_config" - - # Update the livewallpaper variable with the selected video path (using $HOME) - selected_file="${selected_file/#$HOME/\$HOME}" # Replace /home/user with $HOME - sed -i "s|^\$livewallpaper=.*|\$livewallpaper=\"$selected_file\"|" "$startup_config" - - echo "Configured for live wallpaper (video)." - else - # For image wallpapers: - sed -i '/^\s*#\s*exec-once\s*=\s*\$scriptsDir\/WallpaperDaemon\.sh\s*$/s/^\s*#\s*//;' "$startup_config" - sed -i '/^\s*#\s*exec-once\s*=\s*swww-daemon\s*--format\s*xrgb\s*$/s/^\s*#\s*//;' "$startup_config" - - sed -i '/^\s*exec-once\s*=\s*mpvpaper\s*.*$/s/^/\#/' "$startup_config" - - echo "Configured for static wallpaper (image)." - fi -} - -# Apply Image Wallpaper -apply_image_wallpaper() { - local image_path="$1" - - kill_wallpaper_for_image - - if ! pgrep -x "$WWW_DAEMON" >/dev/null; then - echo "Starting $WWW_DAEMON..." - "$WWW_DAEMON" "${WWW_DAEMON_ARGS[@]}" & - fi - # Wait for daemon to be ready before applying - for _ in {1..20}; do - "$WWW_CMD" query >/dev/null 2>&1 && break - sleep 0.1 - done - local resize_mode - resize_mode="$(wallpaper_resize_mode "$image_path" "$focused_monitor")" - "$WWW_CMD" img -o "$focused_monitor" --resize "$resize_mode" "$image_path" "${SWWW_PARAMS[@]}" || { - sleep 0.2 - "$WWW_CMD" img -o "$focused_monitor" --resize "$resize_mode" "$image_path" "${SWWW_PARAMS[@]}" - } - "$WWW_CMD" img -o "$focused_monitor" --resize "$resize_mode" "$image_path" "${SWWW_PARAMS[@]}" - - # Persist per-monitor wallpaper selection - 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 - - # Run additional scripts (pass the image path to avoid cache race conditions) - if ! "$SCRIPTSDIR/WallustSwww.sh" "$image_path"; then - notify-send -i "$iDIR/error.png" "Wallust failed" "Wallpaper theme not refreshed" - return 1 - fi - sleep 0.5 - "$SCRIPTSDIR/Refresh.sh" - sleep 0.3 - -} - -apply_video_wallpaper() { - local video_path="$1" - - # Check if mpvpaper is installed - if ! command -v mpvpaper &>/dev/null; then - notify-send -i "$iDIR/error.png" "E-R-R-O-R" "mpvpaper not found" - return 1 - fi - kill_wallpaper_for_video - - # Apply video wallpaper using mpvpaper - mpvpaper '*' -o "load-scripts=no no-audio --loop" "$video_path" & -} - -# Main function -main() { - choice=$(menu | $rofi_command) - choice=$(echo "$choice" | xargs) - RANDOM_PIC_NAME=$(echo "$RANDOM_PIC_NAME" | xargs) - raw_choice="$choice" - choice="${choice#Random: }" - choice="${choice#Current: }" - - if [[ -z "$choice" ]]; then - echo "No choice selected. Exiting." - exit 0 - fi - - # Resolve selection directly when using Random/Current entries - if [[ "$raw_choice" == Random:\ * ]]; then - selected_file="$RANDOM_PIC" - elif [[ "$raw_choice" == Current:\ * && -n "$CURRENT_MON_PIC_PATH" ]]; then - selected_file="$CURRENT_MON_PIC_PATH" - elif [[ -f "$choice" ]]; then - selected_file="$choice" - else - # Handle random selection by name when needed - if [[ "$choice" == "$RANDOM_PIC_NAME" ]]; then - choice=$(basename "$RANDOM_PIC") - fi - choice_basename=$(basename "$choice" | sed 's/\(.*\)\.[^.]*$/\1/') - - # Search for the selected file in the wallpapers directory, including subdirectories - selected_file=$(find "$wallDIR" -iname "$choice_basename.*" -print -quit) - fi - - if [[ -z "$selected_file" ]]; then - echo "File not found. Selected choice: $choice" - exit 1 - fi - - # Modify the Startup_Apps.conf file based on wallpaper type - modify_startup_config "$selected_file" - - # **CHECK FIRST** if it's a video or an image **before calling any function** - if [[ "$selected_file" =~ \.(mp4|mkv|mov|webm|MP4|MKV|MOV|WEBM)$ ]]; then - apply_video_wallpaper "$selected_file" - else - apply_image_wallpaper "$selected_file" - fi -} - -# Check if rofi is already running -if pidof rofi >/dev/null; then - pkill rofi -fi - -main \ No newline at end of file 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/UserScripts/ZshChangeTheme.sh b/config/hypr/UserScripts/ZshChangeTheme.sh deleted file mode 100755 index 94c1b448..00000000 --- a/config/hypr/UserScripts/ZshChangeTheme.sh +++ /dev/null @@ -1,74 +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 -# ================================================== -# Script for Oh my ZSH theme ( CTRL SHIFT O) - -# preview of theme can be view here: https://github.com/ohmyzsh/ohmyzsh/wiki/Themes -# 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" - -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" - exit 1 -fi - -themes_dir="$HOME/.oh-my-zsh/themes" -file_extension=".zsh-theme" - - -themes_array=($(find -L "$themes_dir" -type f -name "*$file_extension" -exec basename {} \; | sed -e "s/$file_extension//")) - -# Add "Random" option to the beginning of the array -themes_array=("Random" "${themes_array[@]}") - -rofi_command="rofi -i -dmenu -config $rofi_theme" - -menu() { - for theme in "${themes_array[@]}"; do - echo "$theme" - done -} - -main() { - choice=$(menu | ${rofi_command}) - - # if nothing selected, script won't change anything - if [ -z "$choice" ]; then - exit 0 - fi - - zsh_path="$HOME/.zshrc" - var_name="ZSH_THEME" - - if [[ "$choice" == "Random" ]]; then - # Pick a random theme from the original themes_array (excluding "Random") - random_theme=${themes_array[$((RANDOM % (${#themes_array[@]} - 1) + 1))]} - theme_to_set="$random_theme" - notify-send -i "$iDIR/ja.png" "Random theme:" "selected: $random_theme" - else - # Set theme to the selected choice - theme_to_set="$choice" - notify-send -i "$iDIR/ja.png" "Theme selected:" "$choice" - fi - - if [ -f "$zsh_path" ]; then - sed -i "s/^$var_name=.*/$var_name=\"$theme_to_set\"/" "$zsh_path" - notify-send -i "$iDIR/ja.png" "OMZ theme" "applied. restart your terminal" - else - notify-send -i "$iDIR/error.png" "E-R-R-O-R" "~.zshrc file not found!" - fi -} - -# Check if rofi is already running -if pidof rofi > /dev/null; then - pkill rofi -fi - -main 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 + + ws_json="$(get_active_workspace_json)" + workspace_label="$(get_workspace_label "$ws_json")" + monitor_name="$(get_monitor_name "$ws_json")" - if ! set_hypr_layout "$target"; then + 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 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 "" "" +# 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 "" [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 ] [--workspace ] [--monitor ] [--file ] + --quiet Suppress console notifications. + --layout Override layout (master|dwindle|scrolling|monocle). + --workspace Override workspace selector (e.g. 5, name:code, special:scratchpad). + --monitor Override monitor name. + --file 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 -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/scripts/WallpaperAutoChange.sh b/config/hypr/scripts/WallpaperAutoChange.sh new file mode 100755 index 00000000..a12e90d8 --- /dev/null +++ b/config/hypr/scripts/WallpaperAutoChange.sh @@ -0,0 +1,54 @@ +#!/usr/bin/env bash +# ================================================== +# KoolDots (2026) +# Project URL: https://github.com/LinuxBeginnings +# License: GNU GPLv3 +# SPDX-License-Identifier: GPL-3.0-or-later +# ================================================== +# source https://wiki.archlinux.org/title/Hyprland#Using_a_script_to_change_wallpaper_every_X_minutes + +# This script will randomly go through the files of a directory, setting it +# up as the wallpaper at regular intervals +# +# NOTE: this script uses bash (not POSIX shell) for the RANDOM variable + +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: + $0 " + exit 1 +fi + +# Edit below to control the images transition (swww/awww) +export SWWW_TRANSITION_FPS=60 +export SWWW_TRANSITION_TYPE=simple + +# This controls (in seconds) when to switch to the next image +INTERVAL=1800 + +while true; do + find "$1" \ + | while read -r img; do + echo "$((RANDOM % 1000)):$img" + done \ + | sort -n | cut -d':' -f2- \ + | 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 + ${XDG_CONFIG_HOME:-$HOME/.config}/hypr/scripts/WallustSwww.sh "$img" + # Refresh UI components that depend on wallust output + $wallust_refresh + sleep $INTERVAL + + done +done 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/scripts/WallpaperRandom.sh b/config/hypr/scripts/WallpaperRandom.sh new file mode 100755 index 00000000..8480295c --- /dev/null +++ b/config/hypr/scripts/WallpaperRandom.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 +# ================================================== +# Script for Random Wallpaper ( CTRL ALT W) + +PICTURES_DIR="$(xdg-user-dir PICTURES 2>/dev/null || echo "$HOME/Pictures")" +wallDIR="$PICTURES_DIR/wallpapers" +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[@]} ]} + + +# Transition config (swww/awww) +FPS=30 +TYPE="random" +DURATION=1 +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 +if ! "$WWW_CMD" query >/dev/null 2>&1; then + "$WWW_DAEMON" "${WWW_DAEMON_ARGS[@]}" & +fi +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 +fi + +wait $! +sleep 0.5 +"$SCRIPTSDIR/Refresh.sh" + diff --git a/config/hypr/scripts/WallpaperSelect.sh b/config/hypr/scripts/WallpaperSelect.sh new file mode 100755 index 00000000..a1684798 --- /dev/null +++ b/config/hypr/scripts/WallpaperSelect.sh @@ -0,0 +1,267 @@ +#!/usr/bin/env bash +# ================================================== +# KoolDots (2026) +# Project URL: https://github.com/LinuxBeginnings +# License: GNU GPLv3 +# SPDX-License-Identifier: GPL-3.0-or-later +# ================================================== +# This script for selecting wallpapers (SUPER W) + +# WALLPAPERS PATH +terminal=kitty +PICTURES_DIR="$(xdg-user-dir PICTURES 2>/dev/null || echo "$HOME/Pictures")" +wallDIR="$PICTURES_DIR/wallpapers" +SCRIPTSDIR="${XDG_CONFIG_HOME:-$HOME/.config}/hypr/scripts" +# shellcheck source=/dev/null +. "$SCRIPTSDIR/WallpaperCmd.sh" +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="${XDG_CONFIG_HOME:-$HOME/.config}/swaync/images" +iDIRi="${XDG_CONFIG_HOME:-$HOME/.config}/swaync/icons" + +# swww/awww transition config +FPS=60 +TYPE="any" +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 + + +# Check if package bc exists +if ! command -v bc &>/dev/null; then + notify-send -i "$iDIR/error.png" "bc missing" "Install package bc first" + exit 1 +fi + +# Variables +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="${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 + notify-send -i "$iDIR/error.png" "E-R-R-O-R" "Could not detect focused monitor" + exit 1 +fi + +# Monitor details +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}%;}" + +# Kill existing wallpaper daemons for video on the focused monitor only +kill_wallpaper_for_video() { + pkill -f "mpvpaper.*$focused_monitor" 2>/dev/null +} + +# Kill existing wallpaper daemons for image on the focused monitor only +kill_wallpaper_for_image() { + pkill -f "mpvpaper.*$focused_monitor" 2>/dev/null +} + +# Retrieve wallpapers (both images & videos) +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) + +RANDOM_PIC="${PICS[$((RANDOM % ${#PICS[@]}))]}" +RANDOM_PIC_NAME="$(basename "$RANDOM_PIC")" + +CURRENT_MON_PIC_PATH=$("$WWW_CMD" query 2>/dev/null | grep "$focused_monitor" | awk '{print $NF}') +if [[ -z "$CURRENT_MON_PIC_PATH" ]]; then + if [[ -L "$wallpaper_link" ]]; then + CURRENT_MON_PIC_PATH="$(readlink -f "$wallpaper_link")" + elif [[ -f "$wallpaper_link" ]]; then + CURRENT_MON_PIC_PATH="$wallpaper_link" + elif [[ -f "$wallpaper_current" ]]; then + CURRENT_MON_PIC_PATH="$wallpaper_current" + fi +fi +CURRENT_MON_PIC_NAME=$(basename "$CURRENT_MON_PIC_PATH") + +# Rofi command +rofi_command="rofi -i -show -dmenu -config $rofi_theme -theme-str $rofi_override" + +# Sorting Wallpapers +menu() { + IFS=$'\n' sorted_options=($(sort <<<"${PICS[*]}")) + + printf "%s\x00icon\x1f%s\n" "Random: $RANDOM_PIC_NAME" "$RANDOM_PIC" + if [[ -n "$CURRENT_MON_PIC_PATH" ]]; then + printf "%s\x00icon\x1f%s\n" "Current: $CURRENT_MON_PIC_NAME" "$CURRENT_MON_PIC_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 +} + + +modify_startup_config() { + local selected_file="$1" + 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 + # For video wallpapers: + sed -i '/^\s*exec-once\s*=\s*\$scriptsDir\/WallpaperDaemon\.sh\s*$/s/^/\#/' "$startup_config" + sed -i '/^\s*exec-once\s*=\s*swww-daemon\s*--format\s*xrgb\s*$/s/^/\#/' "$startup_config" + sed -i '/^\s*#\s*exec-once\s*=\s*mpvpaper\s*.*$/s/^#\s*//;' "$startup_config" + + # Update the livewallpaper variable with the selected video path (using $HOME) + selected_file="${selected_file/#$HOME/\$HOME}" # Replace /home/user with $HOME + sed -i "s|^\$livewallpaper=.*|\$livewallpaper=\"$selected_file\"|" "$startup_config" + + echo "Configured for live wallpaper (video)." + else + # For image wallpapers: + sed -i '/^\s*#\s*exec-once\s*=\s*\$scriptsDir\/WallpaperDaemon\.sh\s*$/s/^\s*#\s*//;' "$startup_config" + sed -i '/^\s*#\s*exec-once\s*=\s*swww-daemon\s*--format\s*xrgb\s*$/s/^\s*#\s*//;' "$startup_config" + + sed -i '/^\s*exec-once\s*=\s*mpvpaper\s*.*$/s/^/\#/' "$startup_config" + + echo "Configured for static wallpaper (image)." + fi +} + +# Apply Image Wallpaper +apply_image_wallpaper() { + local image_path="$1" + + kill_wallpaper_for_image + + if ! pgrep -x "$WWW_DAEMON" >/dev/null; then + echo "Starting $WWW_DAEMON..." + "$WWW_DAEMON" "${WWW_DAEMON_ARGS[@]}" & + fi + # Wait for daemon to be ready before applying + for _ in {1..20}; do + "$WWW_CMD" query >/dev/null 2>&1 && break + sleep 0.1 + done + local resize_mode + resize_mode="$(wallpaper_resize_mode "$image_path" "$focused_monitor")" + "$WWW_CMD" img -o "$focused_monitor" --resize "$resize_mode" "$image_path" "${SWWW_PARAMS[@]}" || { + sleep 0.2 + "$WWW_CMD" img -o "$focused_monitor" --resize "$resize_mode" "$image_path" "${SWWW_PARAMS[@]}" + } + "$WWW_CMD" img -o "$focused_monitor" --resize "$resize_mode" "$image_path" "${SWWW_PARAMS[@]}" + + # Persist per-monitor wallpaper selection + 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 + notify-send -i "$iDIR/error.png" "Wallust failed" "Wallpaper theme not refreshed" + return 1 + fi + sleep 0.5 + "$SCRIPTSDIR/Refresh.sh" + sleep 0.3 + +} + +apply_video_wallpaper() { + local video_path="$1" + + # Check if mpvpaper is installed + if ! command -v mpvpaper &>/dev/null; then + notify-send -i "$iDIR/error.png" "E-R-R-O-R" "mpvpaper not found" + return 1 + fi + kill_wallpaper_for_video + + # Apply video wallpaper only to the focused monitor + mpvpaper "$focused_monitor" -o "load-scripts=no no-audio --loop" "$video_path" & +} + +# Main function +main() { + choice=$(menu | $rofi_command) + choice=$(echo "$choice" | xargs) + RANDOM_PIC_NAME=$(echo "$RANDOM_PIC_NAME" | xargs) + raw_choice="$choice" + choice="${choice#Random: }" + choice="${choice#Current: }" + + if [[ -z "$choice" ]]; then + echo "No choice selected. Exiting." + exit 0 + fi + + # Resolve selection directly when using Random/Current entries + if [[ "$raw_choice" == Random:\ * ]]; then + selected_file="$RANDOM_PIC" + elif [[ "$raw_choice" == Current:\ * && -n "$CURRENT_MON_PIC_PATH" ]]; then + selected_file="$CURRENT_MON_PIC_PATH" + elif [[ -f "$choice" ]]; then + selected_file="$choice" + else + # Handle random selection by name when needed + if [[ "$choice" == "$RANDOM_PIC_NAME" ]]; then + choice=$(basename "$RANDOM_PIC") + fi + choice_basename=$(basename "$choice" | sed 's/\(.*\)\.[^.]*$/\1/') + + # Search for the selected file in the wallpapers directory, including subdirectories + selected_file=$(find "$wallDIR" -iname "$choice_basename.*" -print -quit) + fi + + if [[ -z "$selected_file" ]]; then + echo "File not found. Selected choice: $choice" + exit 1 + fi + + # Modify the Startup_Apps.conf file based on wallpaper type + modify_startup_config "$selected_file" + + # **CHECK FIRST** if it's a video or an image **before calling any function** + if [[ "$selected_file" =~ \.(mp4|mkv|mov|webm|MP4|MKV|MOV|WEBM)$ ]]; then + apply_video_wallpaper "$selected_file" + else + apply_image_wallpaper "$selected_file" + fi +} + +# Check if rofi is already running +if pidof rofi >/dev/null; then + pkill rofi +fi + +main \ No newline at end of file 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/scripts/ZshChangeTheme.sh b/config/hypr/scripts/ZshChangeTheme.sh new file mode 100755 index 00000000..21049317 --- /dev/null +++ b/config/hypr/scripts/ZshChangeTheme.sh @@ -0,0 +1,74 @@ +#!/usr/bin/env bash +# ================================================== +# KoolDots (2026) +# Project URL: https://github.com/LinuxBeginnings +# License: GNU GPLv3 +# SPDX-License-Identifier: GPL-3.0-or-later +# ================================================== +# Script for Oh my ZSH theme ( CTRL SHIFT O) + +# preview of theme can be view here: https://github.com/ohmyzsh/ohmyzsh/wiki/Themes +# after choosing theme, TTY need to be closed and re-open + +# Variables +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" + exit 1 +fi + +themes_dir="$HOME/.oh-my-zsh/themes" +file_extension=".zsh-theme" + + +themes_array=($(find -L "$themes_dir" -type f -name "*$file_extension" -exec basename {} \; | sed -e "s/$file_extension//")) + +# Add "Random" option to the beginning of the array +themes_array=("Random" "${themes_array[@]}") + +rofi_command="rofi -i -dmenu -config $rofi_theme" + +menu() { + for theme in "${themes_array[@]}"; do + echo "$theme" + done +} + +main() { + choice=$(menu | ${rofi_command}) + + # if nothing selected, script won't change anything + if [ -z "$choice" ]; then + exit 0 + fi + + zsh_path="$HOME/.zshrc" + var_name="ZSH_THEME" + + if [[ "$choice" == "Random" ]]; then + # Pick a random theme from the original themes_array (excluding "Random") + random_theme=${themes_array[$((RANDOM % (${#themes_array[@]} - 1) + 1))]} + theme_to_set="$random_theme" + notify-send -i "$iDIR/ja.png" "Random theme:" "selected: $random_theme" + else + # Set theme to the selected choice + theme_to_set="$choice" + notify-send -i "$iDIR/ja.png" "Theme selected:" "$choice" + fi + + if [ -f "$zsh_path" ]; then + sed -i "s/^$var_name=.*/$var_name=\"$theme_to_set\"/" "$zsh_path" + notify-send -i "$iDIR/ja.png" "OMZ theme" "applied. restart your terminal" + else + notify-send -i "$iDIR/error.png" "E-R-R-O-R" "~.zshrc file not found!" + fi +} + +# Check if rofi is already running +if pidof rofi > /dev/null; then + pkill rofi +fi + +main 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 </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 +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 + +if [[ -z "$selected_file" || ! -f "$selected_file" ]]; then + notify_err "Selected wallpaper not found: $choice" + exit 1 +fi + +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 -$terminal -e bash -c " -echo 'Enter your password to update SDDM wallpapers and colors'; +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" + +echo "Enter your password to update SDDM wallpapers and colors" # 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\" - -sudo sed -i \"s/DropdownBackgroundColor=\\\"#.*\\\"/DropdownBackgroundColor=\\\"$color1\\\"/\" \"$sddm_theme_conf\" -sudo sed -i \"s/HighlightTextColor=\\\"#.*\\\"/HighlightTextColor=\\\"$color10\\\"/\" \"$sddm_theme_conf\" - -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\" +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.24 deleted file mode 100644 index e69de29b..00000000 diff --git a/config/hypr/v2.3.25 b/config/hypr/v2.3.25 new file mode 100644 index 00000000..e69de29b 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: +# fg: +# +# 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": " ", "class": " ", "class": " ", + "class": " 🌊", "class": " ", "class": "󰰭 ", 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-right { - border: 1px solid @blue; -} +.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; +} #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 */ - -*{ - 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"'; -} - +@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"'; +} + 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" diff --git a/copy.sh b/copy.sh index af7cbe69..cd2a3cec 100755 --- a/copy.sh +++ b/copy.sh @@ -6,7 +6,7 @@ # SPDX-License-Identifier: GPL-3.0-or-later # ================================================== # Purpose: -# Orchestrates copying/upgrading LinuxBeginnings's Hyprland dotfiles into ~/.config. +# Orchestrates copying/upgrading LinuxBeginnings's Hyprland dotfiles into ${XDG_CONFIG_HOME:-$HOME/.config}. # Handles interactive prompts, backups/restores, per-app tweaks, and express mode. # # Layout (high-level; future modularization targets): @@ -35,11 +35,11 @@ # - Consider modularizing remaining app-specific tweaks/prompts. clear -wallpaper=$HOME/.config/hypr/wallpaper_effects/.wallpaper_current +wallpaper=${XDG_CONFIG_HOME:-$HOME/.config}/hypr/wallpaper_effects/.wallpaper_current # Defaults updated to normalized names -waybar_style="$HOME/.config/waybar/style/Extra-Prismatic-Glow.css" -waybar_config="$HOME/.config/waybar/configs/TOP-Default" -waybar_config_laptop="$HOME/.config/waybar/configs/TOP-Default-Laptop" +waybar_style="${XDG_CONFIG_HOME:-$HOME/.config}/waybar/style/Extra-Prismatic-Glow.css" +waybar_config="${XDG_CONFIG_HOME:-$HOME/.config}/waybar/configs/TOP-Default" +waybar_config_laptop="${XDG_CONFIG_HOME:-$HOME/.config}/waybar/configs/TOP-Default-Laptop" # Set some colors for output messages OK="$(tput setaf 2)[OK]$(tput sgr0)" @@ -147,7 +147,7 @@ version_gte() { } get_installed_dotfiles_version() { - local hypr_dir="$HOME/.config/hypr" + local hypr_dir="${XDG_CONFIG_HOME:-$HOME/.config}/hypr" if [ -d "$hypr_dir" ]; then # Pick the highest semantic version among files named vX.Y.Z find "$hypr_dir" -maxdepth 1 -type f -name 'v*.*.*' -printf '%f\n' 2>/dev/null | @@ -165,6 +165,55 @@ express_supported() { fi version_gte "$current_version" "$MIN_EXPRESS_VERSION" } +config_home() { + echo "${XDG_CONFIG_HOME:-$HOME/.config}" +} + +is_kooldots_config() { + local hypr_dir + hypr_dir="$(config_home)/hypr" + [ -d "$hypr_dir" ] || return 1 + find "$hypr_dir" -maxdepth 1 -type f -name 'v*.*.*' -print -quit | grep -q . +} + +is_oem_lua_config() { + local cfg_home + cfg_home="$(config_home)" + [ -f "$cfg_home/hyprland.lua" ] || [ -f "$cfg_home/hypr/hyprland.lua" ] +} + +require_kooldots_for_upgrade() { + if is_kooldots_config; then + return 0 + fi + echo "${WARN} Existing KoolDots config not deteced - run fresh install" + return 1 +} + +prepare_fresh_install_hypr() { + local log="${1:-/dev/null}" + local cfg_home + local hypr_dir + local backup_suffix + cfg_home="$(config_home)" + hypr_dir="$cfg_home/hypr" + + if ! is_kooldots_config && ! is_oem_lua_config; then + return 0 + fi + + backup_suffix="$(get_backup_dirname)" + + if [ -d "$hypr_dir" ]; then + mv "$hypr_dir" "${hypr_dir}-${backup_suffix}" 2>&1 | tee -a "$log" + echo "${NOTE} - Backed up existing hypr config to ${hypr_dir}-${backup_suffix}" 2>&1 | tee -a "$log" + fi + + if [ -f "$cfg_home/hyprland.lua" ]; then + mv "$cfg_home/hyprland.lua" "$cfg_home/hyprland.lua-${backup_suffix}" 2>&1 | tee -a "$log" + echo "${NOTE} - Backed up existing hyprland.lua to ${cfg_home}/hyprland.lua-${backup_suffix}" 2>&1 | tee -a "$log" + fi +} print_usage() { cat <<'EOF' Usage: copy.sh [--upgrade] [--express-upgrade] [--help] @@ -230,6 +279,9 @@ if [ -z "$RUN_MODE" ]; then EXPRESS_MODE=0 ;; upgrade) + if ! require_kooldots_for_upgrade; then + continue + fi RUN_MODE="upgrade" UPGRADE_MODE=1 EXPRESS_MODE=0 @@ -239,6 +291,9 @@ if [ -z "$RUN_MODE" ]; then echo "${WARN} Express mode requires installed dotfiles v${MIN_EXPRESS_VERSION} or newer. Please choose another option." continue fi + if ! require_kooldots_for_upgrade; then + continue + fi RUN_MODE="express" UPGRADE_MODE=1 EXPRESS_MODE=1 @@ -263,6 +318,12 @@ if [ -z "$RUN_MODE" ]; then fi fi +if [ "$RUN_MODE" = "upgrade" ] || [ "$RUN_MODE" = "express" ]; then + if ! require_kooldots_for_upgrade; then + exit 1 + fi +fi + # Check if running as root. If root, script will exit if [[ $EUID -eq 0 ]]; then echo "${ERROR} This script should ${WARNING}NOT${RESET} be executed as root!! Exiting......." @@ -342,10 +403,14 @@ fi if [ "$EXPRESS_MODE" -eq 1 ]; then echo "${INFO} Express mode enabled. Optional restore prompts will be skipped." 2>&1 | tee -a "$LOG" fi +if [ "$RUN_MODE" = "install" ]; then + prepare_fresh_install_hypr "$LOG" +fi detect_nvidia_adjust "$LOG" detect_vm_adjust "$LOG" detect_nixos_adjust "$LOG" +adjust_qt_quick_controls_style "$LOG" # NixOS: report missing waybar-weather without attempting to install is_nixos() { grep -qi '^ID=nixos' /etc/os-release 2>/dev/null @@ -363,6 +428,8 @@ if [ -d "$HOME/.icons/Bibata-Modern-Ice/hyprcursors" ]; then echo "${INFO} Bibata-Hyprcursor directory detected. Activating Hyprcursor...." 2>&1 | tee -a "$LOG" || true sed -i 's/^#env = HYPRCURSOR_THEME,Bibata-Modern-Ice/env = HYPRCURSOR_THEME,Bibata-Modern-Ice/' "$HYPRCURSOR_ENV_FILE" sed -i 's/^#env = HYPRCURSOR_SIZE,24/env = HYPRCURSOR_SIZE,24/' "$HYPRCURSOR_ENV_FILE" + sed -i 's/^#env = XCURSOR_THEME,Bibata-Modern-Ice/env = XCURSOR_THEME,Bibata-Modern-Ice/' "$HYPRCURSOR_ENV_FILE" + sed -i 's/^#env = XCURSOR_SIZE,24/env = XCURSOR_SIZE,24/' "$HYPRCURSOR_ENV_FILE" fi printf "\n%.0s" {1..1} @@ -431,10 +498,10 @@ prompt_express_upgrade "$EXPRESS_SUPPORTED" "$LOG" set -e -# Check if the ~/.config/ directory exists -if [ ! -d "$HOME/.config" ]; then - echo "${ERROR} - $HOME/.config directory does not exist. Creating it now." - mkdir -p "$HOME/.config" && echo "Directory created successfully." || echo "Failed to create directory." +# Check if the ${XDG_CONFIG_HOME:-$HOME/.config}/ directory exists +if [ ! -d "${XDG_CONFIG_HOME:-$HOME/.config}" ]; then + echo "${ERROR} - ${XDG_CONFIG_HOME:-$HOME/.config} directory does not exist. Creating it now." + mkdir -p "${XDG_CONFIG_HOME:-$HOME/.config}" && echo "Directory created successfully." || echo "Failed to create directory." fi printf "${INFO} - copying dotfiles ${SKY_BLUE}first${RESET} part\n" @@ -444,13 +511,14 @@ copy_waybar "$LOG" printf "\n%.0s" {1..1} printf "${INFO} - Copying dotfiles ${SKY_BLUE}second${RESET} part\n" copy_phase2 "$LOG" +ensure_lua_keybinds "$LOG" printf "\\n%.0s" {1..1} # waybar-weather config handling: # - install (fresh copy): always overwrite and prompt for units # - upgrade (non-express): copy only if missing; prompt only if copied # - express: copy only if missing; never prompt WAYBAR_WEATHER_SRC="$DOTFILES_DIR/config/waybar-weather" -WAYBAR_WEATHER_DEST="$HOME/.config/waybar-weather" +WAYBAR_WEATHER_DEST="${XDG_CONFIG_HOME:-$HOME/.config}/waybar-weather" WAYBAR_WEATHER_COPIED=0 if [ "$RUN_MODE" = "install" ]; then @@ -515,7 +583,7 @@ fi if command -v ags >/dev/null 2>&1; then echo -e "${NOTE} - ${YELLOW}ags${RESET} is detected as installed" - DIRPATH_AGS="$HOME/.config/ags" + DIRPATH_AGS="${XDG_CONFIG_HOME:-$HOME/.config}/ags" if [ ! -d "$DIRPATH_AGS" ]; then echo "${INFO} - ags config not found, copying new config." @@ -556,7 +624,7 @@ INSTALLED_VERSION_AT_START="$(get_installed_dotfiles_version || true)" if command -v qs >/dev/null 2>&1; then echo -e "${NOTE} - ${YELLOW}quickshell${RESET} is detected as installed" - DIRPATH_QS="$HOME/.config/quickshell" + DIRPATH_QS="${XDG_CONFIG_HOME:-$HOME/.config}/quickshell" if [ ! -d "$DIRPATH_QS" ]; then echo "${INFO} - quickshell config not found, copying new config." @@ -603,7 +671,7 @@ if command -v qs >/dev/null 2>&1; then fi # Check for old quickshell startup commands and update them - HYPR_STARTUP="$HOME/.config/hypr/configs/Startup_Apps.conf" + HYPR_STARTUP="${XDG_CONFIG_HOME:-$HOME/.config}/hypr/configs/Startup_Apps.conf" if [ -f "$HYPR_STARTUP" ]; then if grep -q '^exec-once = qs\s*$\|^exec-once = qs &' "$HYPR_STARTUP"; then echo "${NOTE} - Found old Quickshell startup command, updating to new overview config..." 2>&1 | tee -a "$LOG" @@ -637,14 +705,14 @@ rofi_DIR="$HOME/.local/share/rofi/themes" if [ ! -d "$rofi_DIR" ]; then mkdir -p "$rofi_DIR" fi -if [ -d "$HOME/.config/rofi/themes" ]; then - if [ -z "$(ls -A $HOME/.config/rofi/themes)" ]; then - echo '/* Dummy Rofi theme */' >"$HOME/.config/rofi/themes/dummy.rasi" +if [ -d "${XDG_CONFIG_HOME:-$HOME/.config}/rofi/themes" ]; then + if [ -z "$(ls -A ${XDG_CONFIG_HOME:-$HOME/.config}/rofi/themes)" ]; then + echo '/* Dummy Rofi theme */' >"${XDG_CONFIG_HOME:-$HOME/.config}/rofi/themes/dummy.rasi" fi - ln -snf "$HOME/.config/rofi/themes/"* "$HOME/.local/share/rofi/themes/" + ln -snf "${XDG_CONFIG_HOME:-$HOME/.config}/rofi/themes/"* "$HOME/.local/share/rofi/themes/" # Delete the dummy file if it was created - if [ -f "$HOME/.config/rofi/themes/dummy.rasi" ]; then - rm "$HOME/.config/rofi/themes/dummy.rasi" + if [ -f "${XDG_CONFIG_HOME:-$HOME/.config}/rofi/themes/dummy.rasi" ]; then + rm "${XDG_CONFIG_HOME:-$HOME/.config}/rofi/themes/dummy.rasi" fi fi @@ -660,14 +728,14 @@ else fi # Set some files as executable -chmod +x "$HOME/.config/hypr/scripts/"* 2>&1 | tee -a "$LOG" -chmod +x "$HOME/.config/hypr/UserScripts/"* 2>&1 | tee -a "$LOG" +chmod +x "${XDG_CONFIG_HOME:-$HOME/.config}/hypr/scripts/"* 2>&1 | tee -a "$LOG" +chmod +x "${XDG_CONFIG_HOME:-$HOME/.config}/hypr/UserScripts/"* 2>&1 | tee -a "$LOG" # Set executable for initial-boot.sh -chmod +x "$HOME/.config/hypr/initial-boot.sh" 2>&1 | tee -a "$LOG" +chmod +x "${XDG_CONFIG_HOME:-$HOME/.config}/hypr/initial-boot.sh" 2>&1 | tee -a "$LOG" # Copy systemd user overrides (e.g., hyprpolkitagent) SYSTEMD_SRC="$DOTFILES_DIR/config/systemd" -SYSTEMD_DEST="$HOME/.config/systemd" +SYSTEMD_DEST="${XDG_CONFIG_HOME:-$HOME/.config}/systemd" if [ -d "$SYSTEMD_SRC" ]; then mkdir -p "$SYSTEMD_DEST" cp -r "$SYSTEMD_SRC/." "$SYSTEMD_DEST/" 2>&1 | tee -a "$LOG" @@ -698,7 +766,7 @@ fi # Ensure waybar config uses the normalized default. # - If the current path is not a symlink (regular file), convert it to a symlink. # - If the symlink points somewhere else (or is broken), reset it to the new default. -WAYBAR_CONFIG_LINK="$HOME/.config/waybar/config" +WAYBAR_CONFIG_LINK="${XDG_CONFIG_HOME:-$HOME/.config}/waybar/config" WAYBAR_CONFIG_TARGET="$config_file" if [ -e "$WAYBAR_CONFIG_TARGET" ]; then if [ -L "$WAYBAR_CONFIG_LINK" ]; then @@ -714,12 +782,12 @@ else fi # Remove inappropriate waybar configs -rm -rf "$HOME/.config/waybar/configs/[TOP] Default$config_remove" \ - "$HOME/.config/waybar/configs/[BOT] Default$config_remove" \ - "$HOME/.config/waybar/configs/[TOP] Default$config_remove (old v1)" \ - "$HOME/.config/waybar/configs/[TOP] Default$config_remove (old v2)" \ - "$HOME/.config/waybar/configs/[TOP] Default$config_remove (old v3)" \ - "$HOME/.config/waybar/configs/[TOP] Default$config_remove (old v4)" 2>&1 | tee -a "$LOG" || true +rm -rf "${XDG_CONFIG_HOME:-$HOME/.config}/waybar/configs/[TOP] Default$config_remove" \ + "${XDG_CONFIG_HOME:-$HOME/.config}/waybar/configs/[BOT] Default$config_remove" \ + "${XDG_CONFIG_HOME:-$HOME/.config}/waybar/configs/[TOP] Default$config_remove (old v1)" \ + "${XDG_CONFIG_HOME:-$HOME/.config}/waybar/configs/[TOP] Default$config_remove (old v2)" \ + "${XDG_CONFIG_HOME:-$HOME/.config}/waybar/configs/[TOP] Default$config_remove (old v3)" \ + "${XDG_CONFIG_HOME:-$HOME/.config}/waybar/configs/[TOP] Default$config_remove (old v4)" 2>&1 | tee -a "$LOG" || true printf "\n%.0s" {1..1} @@ -787,7 +855,7 @@ fi # Ensure waybar style uses the normalized default. # - If the current path is not a symlink (regular file), convert it to a symlink. # - If the symlink points somewhere else (or is broken), reset it to the new default. -WAYBAR_STYLE_LINK="$HOME/.config/waybar/style.css" +WAYBAR_STYLE_LINK="${XDG_CONFIG_HOME:-$HOME/.config}/waybar/style.css" WAYBAR_STYLE_TARGET="$waybar_style" if [ -e "$WAYBAR_STYLE_TARGET" ]; then if [ -L "$WAYBAR_STYLE_LINK" ]; then diff --git a/scripts/fix-systemsettings-lua.sh b/scripts/fix-systemsettings-lua.sh index e1b550fc..42515d87 100755 --- a/scripts/fix-systemsettings-lua.sh +++ b/scripts/fix-systemsettings-lua.sh @@ -5,11 +5,11 @@ # License: GNU GPLv3 # SPDX-License-Identifier: GPL-3.0-or-later # ================================================== -# Regenerate ~/.config/hypr/configs/system_settings.lua from SystemSettings.conf. +# Regenerate ${XDG_CONFIG_HOME:-$HOME/.config}/hypr/configs/system_settings.lua from SystemSettings.conf. set -euo pipefail -CONFIG_HOME="${XDG_CONFIG_HOME:-$HOME/.config}" +CONFIG_HOME="${XDG_CONFIG_HOME:-${XDG_CONFIG_HOME:-$HOME/.config}}" HYPR_DIR="${CONFIG_HOME}/hypr" CONFIGS_DIR="${HYPR_DIR}/configs" LEGACY_DIR="${CONFIGS_DIR}/LegacyConfigs" diff --git a/scripts/lib_apps.sh b/scripts/lib_apps.sh index 579b5fd2..55c457d5 100644 --- a/scripts/lib_apps.sh +++ b/scripts/lib_apps.sh @@ -74,7 +74,7 @@ install_terminal_configs() { # Ghostty local GHOSTTY_SRC="$base/config/ghostty/config" - local GHOSTTY_DIR="${XDG_CONFIG_HOME:-$HOME/.config}/ghostty" + local GHOSTTY_DIR="${XDG_CONFIG_HOME:-${XDG_CONFIG_HOME:-$HOME/.config}}/ghostty" local GHOSTTY_DEST="$GHOSTTY_DIR/config" if [ -f "$GHOSTTY_SRC" ]; then if [ -d "$GHOSTTY_DIR" ]; then @@ -96,7 +96,7 @@ install_terminal_configs() { # WezTerm local WEZTERM_SRC="$base/config/wezterm/wezterm.lua" - local WEZTERM_DIR="${XDG_CONFIG_HOME:-$HOME/.config}/wezterm" + local WEZTERM_DIR="${XDG_CONFIG_HOME:-${XDG_CONFIG_HOME:-$HOME/.config}}/wezterm" local WEZTERM_DEST="$WEZTERM_DIR/wezterm.lua" if [ -f "$WEZTERM_SRC" ]; then mkdir -p "$WEZTERM_DIR" diff --git a/scripts/lib_backup.sh b/scripts/lib_backup.sh index b6f54f6a..5abcf0eb 100644 --- a/scripts/lib_backup.sh +++ b/scripts/lib_backup.sh @@ -30,12 +30,12 @@ backup_dir() { mv "$dir" "${dir}-backup-${backup_suffix}" 2>&1 | tee -a "$log" } -# Cleanup old backups under ~/.config, keeping the newest for each base dir. +# Cleanup old backups under ${XDG_CONFIG_HOME:-$HOME/.config}, keeping the newest for each base dir. # mode: "auto" (no prompts) or "prompt" (asks before delete); log optional. cleanup_backups() { local mode="${1:-prompt}" local log="${2:-/dev/null}" - local CONFIG_DIR="$HOME/.config" + local CONFIG_DIR="${XDG_CONFIG_HOME:-$HOME/.config}" local BACKUP_PREFIX="-backup" for DIR in "$CONFIG_DIR"/*; do diff --git a/scripts/lib_copy.sh b/scripts/lib_copy.sh index 9a1c0444..f31ca1a8 100644 --- a/scripts/lib_copy.sh +++ b/scripts/lib_copy.sh @@ -12,10 +12,10 @@ copy_phase1() { local base="${DOTFILES_DIR:-.}" local dirs="fastfetch kitty rofi swaync" for DIR2 in $dirs; do - local DIRPATH="$HOME/.config/$DIR2" + local DIRPATH="${XDG_CONFIG_HOME:-$HOME/.config}/$DIR2" if [ -d "$DIRPATH" ]; then while true; do - printf "\n${INFO:-[INFO]} Found ${YELLOW:-}$DIR2${RESET:-} config found in ~/.config/\n" + printf "\n${INFO:-[INFO]} Found ${YELLOW:-}$DIR2${RESET:-} config found in ${XDG_CONFIG_HOME:-$HOME/.config}/\n" echo -n "${CAT:-[ACTION]} Do you want to replace ${YELLOW:-}$DIR2${RESET:-} config? (y/n): " read DIR1_CHOICE case "$DIR1_CHOICE" in @@ -23,17 +23,17 @@ copy_phase1() { BACKUP_DIR=$(get_backup_dirname) mv "$DIRPATH" "$DIRPATH-backup-$BACKUP_DIR" 2>&1 | tee -a "$log" echo -e "${NOTE:-[NOTE]} - Backed up $DIR2 to $DIRPATH-backup-$BACKUP_DIR." 2>&1 | tee -a "$log" - cp -r "$base/config/$DIR2" "$HOME/.config/$DIR2" 2>&1 | tee -a "$log" + cp -r "$base/config/$DIR2" "${XDG_CONFIG_HOME:-$HOME/.config}/$DIR2" 2>&1 | tee -a "$log" echo -e "${OK:-[OK]} - Replaced $DIR2 with new configuration." 2>&1 | tee -a "$log" if [ "$DIR2" = "rofi" ]; then if [ -d "$DIRPATH-backup-$BACKUP_DIR/themes" ]; then for file in "$DIRPATH-backup-$BACKUP_DIR/themes"/*; do [ -e "$file" ] || continue - cp -n "$file" "$HOME/.config/rofi/themes/" >>"$log" 2>&1 || true + cp -n "$file" "${XDG_CONFIG_HOME:-$HOME/.config}/rofi/themes/" >>"$log" 2>&1 || true done || true fi if [ -f "$DIRPATH-backup-$BACKUP_DIR/0-shared-fonts.rasi" ]; then - cp "$DIRPATH-backup-$BACKUP_DIR/0-shared-fonts.rasi" "$HOME/.config/rofi/0-shared-fonts.rasi" >>"$log" 2>&1 + cp "$DIRPATH-backup-$BACKUP_DIR/0-shared-fonts.rasi" "${XDG_CONFIG_HOME:-$HOME/.config}/rofi/0-shared-fonts.rasi" >>"$log" 2>&1 fi fi break @@ -46,7 +46,7 @@ copy_phase1() { esac done else - cp -r "$base/config/$DIR2" "$HOME/.config/$DIR2" 2>&1 | tee -a "$log" + cp -r "$base/config/$DIR2" "${XDG_CONFIG_HOME:-$HOME/.config}/$DIR2" 2>&1 | tee -a "$log" echo -e "${OK:-[OK]} - Copy completed for ${YELLOW:-}$DIR2${RESET:-}" 2>&1 | tee -a "$log" fi done @@ -56,7 +56,7 @@ copy_waybar() { local log="$1" local base="${DOTFILES_DIR:-.}" local DIRW="waybar" - local DIRPATHw="$HOME/.config/$DIRW" + local DIRPATHw="${XDG_CONFIG_HOME:-$HOME/.config}/$DIRW" if [ -d "$DIRPATHw" ]; then while true; do echo -n "${CAT:-[ACTION]} Do you want to replace ${YELLOW:-}$DIRW${RESET:-} config? (y/n): " @@ -80,23 +80,23 @@ copy_waybar() { for dir in "$DIRPATHw-backup-$BACKUP_DIR/configs"/*; do [ -e "$dir" ] || continue if [ -d "$dir" ]; then - target_dir="$HOME/.config/waybar/configs/$(basename "$dir")" - [ -d "$target_dir" ] || cp -r "$dir" "$HOME/.config/waybar/configs/" + target_dir="${XDG_CONFIG_HOME:-$HOME/.config}/waybar/configs/$(basename "$dir")" + [ -d "$target_dir" ] || cp -r "$dir" "${XDG_CONFIG_HOME:-$HOME/.config}/waybar/configs/" fi done for file in "$DIRPATHw-backup-$BACKUP_DIR/configs"/*; do [ -e "$file" ] || continue - target_file="$HOME/.config/waybar/configs/$(basename "$file")" - [ -e "$target_file" ] || cp "$file" "$HOME/.config/waybar/configs/" + target_file="${XDG_CONFIG_HOME:-$HOME/.config}/waybar/configs/$(basename "$file")" + [ -e "$target_file" ] || cp "$file" "${XDG_CONFIG_HOME:-$HOME/.config}/waybar/configs/" done || true for file in "$DIRPATHw-backup-$BACKUP_DIR/style"/*; do [ -e "$file" ] || continue if [ -d "$file" ]; then - target_dir="$HOME/.config/waybar/style/$(basename "$file")" - [ -d "$target_dir" ] || cp -r "$file" "$HOME/.config/waybar/style/" + target_dir="${XDG_CONFIG_HOME:-$HOME/.config}/waybar/style/$(basename "$file")" + [ -d "$target_dir" ] || cp -r "$file" "${XDG_CONFIG_HOME:-$HOME/.config}/waybar/style/" else - target_file="$HOME/.config/waybar/style/$(basename "$file")" - [ -e "$target_file" ] || cp "$file" "$HOME/.config/waybar/style/" + target_file="${XDG_CONFIG_HOME:-$HOME/.config}/waybar/style/$(basename "$file")" + [ -e "$target_file" ] || cp "$file" "${XDG_CONFIG_HOME:-$HOME/.config}/waybar/style/" fi done || true BACKUP_FILEw="$DIRPATHw-backup-$BACKUP_DIR/UserModules" @@ -119,16 +119,16 @@ copy_waybar() { copy_phase2() { local log="$1" local base="${DOTFILES_DIR:-.}" - local DIR="btop cava hypr Kvantum qt5ct qt6ct swappy wallust wlogout yazi" + local DIR="btop cava hypr Kvantum qt5ct qt6ct starship swappy wallust wlogout yazi" for DIR_NAME in $DIR; do - local DIRPATH="$HOME/.config/$DIR_NAME" + local DIRPATH="${XDG_CONFIG_HOME:-$HOME/.config}/$DIR_NAME" if [ -d "$DIRPATH" ]; then echo -e "\n${NOTE:-[NOTE]} - Config for ${YELLOW:-}$DIR_NAME${RESET:-} found, attempting to back up." BACKUP_DIR=$(get_backup_dirname) mv "$DIRPATH" "$DIRPATH-backup-$BACKUP_DIR" 2>&1 | tee -a "$log" fi if [ -d "$base/config/$DIR_NAME" ]; then - cp -r "$base/config/$DIR_NAME/" "$HOME/.config/$DIR_NAME" 2>&1 | tee -a "$log" + cp -r "$base/config/$DIR_NAME/" "${XDG_CONFIG_HOME:-$HOME/.config}/$DIR_NAME" 2>&1 | tee -a "$log" echo "${OK:-[OK]} - Copy of config for ${YELLOW:-}$DIR_NAME${RESET:-} completed!" 2>&1 | tee -a "$log" else echo "${ERROR:-[ERROR]} - Directory config/$DIR_NAME does not exist to copy." 2>&1 | tee -a "$log" @@ -137,13 +137,48 @@ copy_phase2() { install_terminal_configs "$log" } +ensure_lua_keybinds() { + local log="$1" + local base="${DOTFILES_DIR:-.}" + local src_root="$base/config/hypr" + local dst_root="${XDG_CONFIG_HOME:-$HOME/.config}/hypr" + local copied=0 + local rel_dir src_dir src_file rel_path dst_file + + for rel_dir in configs UserConfigs lua; do + src_dir="$src_root/$rel_dir" + [ -d "$src_dir" ] || continue + + while IFS= read -r -d '' src_file; do + rel_path="${src_file#$src_root/}" + dst_file="$dst_root/$rel_path" + + if [ ! -f "$dst_file" ]; then + mkdir -p "$(dirname "$dst_file")" + if cp -f "$src_file" "$dst_file" 2>&1 | tee -a "$log"; then + copied=1 + echo "${NOTE:-[NOTE]} - Added missing Lua file: ${YELLOW:-}$rel_path${RESET:-}" 2>&1 | tee -a "$log" + else + echo "${ERROR:-[ERROR]} - Failed to add missing Lua file: ${YELLOW:-}$rel_path${RESET:-}" 2>&1 | tee -a "$log" + fi + fi + done < <(find "$src_dir" -maxdepth 1 -type f -name '*.lua' -print0) + done + + if [ "$copied" -eq 1 ]; then + echo "${OK:-[OK]} - Lua fallback copy completed." 2>&1 | tee -a "$log" + else + echo "${INFO:-[INFO]} - Lua fallback check: no missing Lua files detected." 2>&1 | tee -a "$log" + fi +} + # Restore Animations and Monitor Profiles plus key hypr files from backup restore_hypr_assets() { local log="$1" local express_mode="$2" - local HYPR_DIR="$HOME/.config/hypr" - local CONFIG_HOME="${XDG_CONFIG_HOME:-$HOME/.config}" + local HYPR_DIR="${XDG_CONFIG_HOME:-$HOME/.config}/hypr" + local CONFIG_HOME="${XDG_CONFIG_HOME:-${XDG_CONFIG_HOME:-$HOME/.config}}" local BACKUP_DIR BACKUP_DIR=$(get_backup_dirname) local BACKUP_HYPR_PATH="$HYPR_DIR-backup-$BACKUP_DIR" @@ -272,7 +307,7 @@ cleanup_duplicate_userconfigs() { echo "${INFO:-[INFO]} Running UserConfigs duplicate cleanup for detected version v$current_version (<= 2.3.18)." 2>&1 | tee -a "$log" - local HYPR_DIR="$HOME/.config/hypr" + local HYPR_DIR="${XDG_CONFIG_HOME:-$HOME/.config}/hypr" local BASE_DIR="$HYPR_DIR/configs" local USER_DIR="$HYPR_DIR/UserConfigs" @@ -389,7 +424,7 @@ restore_user_configs() { local express_mode="$2" local old_version="$3" - local DIRPATH="$HOME/.config/hypr" + local DIRPATH="${XDG_CONFIG_HOME:-$HOME/.config}/hypr" local BACKUP_DIR BACKUP_DIR=$(get_backup_dirname) local BACKUP_DIR_PATH="$DIRPATH-backup-$BACKUP_DIR/UserConfigs" @@ -535,7 +570,7 @@ restore_user_scripts() { local log="$1" local express_mode="$2" - local DIRSHPATH="$HOME/.config/hypr" + local DIRSHPATH="${XDG_CONFIG_HOME:-$HOME/.config}/hypr" local BACKUP_DIR BACKUP_DIR=$(get_backup_dirname) local BACKUP_DIR_PATH_S="$DIRSHPATH-backup-$BACKUP_DIR/UserScripts" @@ -573,7 +608,7 @@ restore_terminal_configs() { local log="$1" local express_mode="$2" - local GHOSTTY_DIR="${XDG_CONFIG_HOME:-$HOME/.config}/ghostty" + local GHOSTTY_DIR="${XDG_CONFIG_HOME:-${XDG_CONFIG_HOME:-$HOME/.config}}/ghostty" local BACKUP_DIR BACKUP_DIR=$(get_backup_dirname) local GHOSTTY_BACKUP="$GHOSTTY_DIR-backup-$BACKUP_DIR" @@ -599,7 +634,7 @@ restore_hypr_files() { local log="$1" local express_mode="$2" - local DIRPATH="$HOME/.config/hypr" + local DIRPATH="${XDG_CONFIG_HOME:-$HOME/.config}/hypr" local BACKUP_DIR BACKUP_DIR=$(get_backup_dirname) local BACKUP_DIR_PATH_F="$DIRPATH-backup-$BACKUP_DIR" @@ -611,7 +646,7 @@ restore_hypr_files() { fi if [ -d "$BACKUP_DIR_PATH_F" ] && [ "$express_mode" -eq 0 ]; then - echo -e "${NOTE:-[NOTE]} Restoring some files in ${MAGENTA:-}$HOME/.config/hypr directory${RESET:-}..." 2>&1 | tee -a "$log" + echo -e "${NOTE:-[NOTE]} Restoring some files in ${MAGENTA:-}${XDG_CONFIG_HOME:-$HOME/.config}/hypr directory${RESET:-}..." 2>&1 | tee -a "$log" for FILE_RESTORE in "${FILES_2_RESTORE[@]}"; do local BACKUP_FILE="$BACKUP_DIR_PATH_F/$FILE_RESTORE" diff --git a/scripts/lib_detect.sh b/scripts/lib_detect.sh index 2b11baac..5bb42c3f 100644 --- a/scripts/lib_detect.sh +++ b/scripts/lib_detect.sh @@ -10,13 +10,35 @@ # Nvidia tweaks: uncomments envs and adjusts hardware cursor setting. detect_nvidia_adjust() { local log="$1" - if lspci -k | grep -A 2 -E "(VGA|3D)" | grep -iq nvidia; then + local pci_info + local has_nvidia=0 + local has_intel=0 + local has_amd=0 + pci_info="$(lspci -k | grep -A 2 -E "(VGA|3D)" || true)" + if echo "$pci_info" | grep -iq nvidia; then + has_nvidia=1 + fi + if echo "$pci_info" | grep -iq intel; then + has_intel=1 + fi + if echo "$pci_info" | grep -Eiq 'amd|advanced micro devices|ati'; then + has_amd=1 + fi + if [ "$has_nvidia" -eq 1 ]; then echo "${INFO:-[INFO]} Nvidia GPU detected. Setting up proper env's and configs" 2>&1 | tee -a "$log" || true sed -i '/env = LIBVA_DRIVER_NAME,nvidia/s/^#//' config/hypr/configs/ENVariables.conf sed -i '/env = __GLX_VENDOR_LIBRARY_NAME,nvidia/s/^#//' config/hypr/configs/ENVariables.conf sed -i '/env = NVD_BACKEND,direct/s/^#//' config/hypr/configs/ENVariables.conf sed -i '/env = GSK_RENDERER,ngl/s/^#//' config/hypr/configs/ENVariables.conf - sed -i 's/^\([[:space:]]*no_hardware_cursors[[:space:]]*=[[:space:]]*\)2/\1 1/' config/hypr/configs/SystemSettings.conf + if [ "$has_intel" -eq 1 ] || [ "$has_amd" -eq 1 ]; then + echo "${INFO:-[INFO]} Hybrid GPU detected (Intel/NVIDIA or AMD/NVIDIA). Applying cursor handoff fixes." 2>&1 | tee -a "$log" || true + sed -i -E 's/^([[:space:]]*no_hardware_cursors[[:space:]]*=[[:space:]]*)[0-9]+/\1 0/' config/hypr/configs/SystemSettings.conf + sed -i -E 's/^([[:space:]]*no_hardware_cursors[[:space:]]*=[[:space:]]*)[0-9]+/\1 0/' config/hypr/lua/settings.lua + sed -i '/hyprctl setcursor/s/^#//' config/hypr/configs/Startup_Apps.conf + else + sed -i -E 's/^([[:space:]]*no_hardware_cursors[[:space:]]*=[[:space:]]*)[0-9]+/\1 1/' config/hypr/configs/SystemSettings.conf + sed -i -E 's/^([[:space:]]*no_hardware_cursors[[:space:]]*=[[:space:]]*)[0-9]+/\1 1/' config/hypr/lua/settings.lua + fi fi } @@ -44,6 +66,46 @@ detect_nixos_adjust() { grep -qx '\$scriptsDir/Polkit.sh' "$DISABLE_SA" || echo '$scriptsDir/Polkit.sh' >>"$DISABLE_SA" fi } +# Qt Quick Controls style safety: enable Hyprland style only when module exists. +adjust_qt_quick_controls_style() { + local log="$1" + local env_conf="config/hypr/configs/ENVariables.conf" + local env_lua="config/hypr/lua/env.lua" + local style="Basic" + local qt_style_override="Fusion" + local has_kvantum_qml=0 + + if find /usr/lib /usr/lib64 /usr/share -type d -path '*/qml/*/org/hyprland/style' -print -quit 2>/dev/null | grep -q .; then + style="org.hyprland.style" + elif command -v dpkg >/dev/null 2>&1 && dpkg -s qml6-module-org-hyprland-style >/dev/null 2>&1; then + style="org.hyprland.style" + fi + + if find /usr/lib /usr/lib64 /usr/share -type d -path '*/qml/*/kvantum' -print -quit 2>/dev/null | grep -q .; then + has_kvantum_qml=1 + qt_style_override="kvantum" + fi + + if [ -f "$env_conf" ]; then + sed -i -E "s|^env = QT_QUICK_CONTROLS_STYLE,.*$|env = QT_QUICK_CONTROLS_STYLE,${style}|" "$env_conf" + sed -i -E "s|^env = QT_STYLE_OVERRIDE,.*$|env = QT_STYLE_OVERRIDE,${qt_style_override}|" "$env_conf" + fi + if [ -f "$env_lua" ]; then + sed -i -E "s|^hl\\.env\\(\"QT_QUICK_CONTROLS_STYLE\", \".*\"\\)$|hl.env(\"QT_QUICK_CONTROLS_STYLE\", \"${style}\")|" "$env_lua" + sed -i -E "s|^hl\\.env\\(\"QT_STYLE_OVERRIDE\", \".*\"\\)$|hl.env(\"QT_STYLE_OVERRIDE\", \"${qt_style_override}\")|" "$env_lua" + fi + + if [ "$style" = "org.hyprland.style" ]; then + echo "${INFO:-[INFO]} hyprland Qt style module detected. Using QT_QUICK_CONTROLS_STYLE=$style" 2>&1 | tee -a "$log" || true + else + echo "${WARN:-[WARN]} hyprland Qt style module not found. Using QT_QUICK_CONTROLS_STYLE=Basic to avoid Qt app crashes." 2>&1 | tee -a "$log" || true + fi + if [ "$has_kvantum_qml" -eq 1 ]; then + echo "${INFO:-[INFO]} Kvantum QML module detected. Using QT_STYLE_OVERRIDE=kvantum" 2>&1 | tee -a "$log" || true + else + echo "${WARN:-[WARN]} Kvantum QML module not found. Using QT_STYLE_OVERRIDE=Fusion as fallback." 2>&1 | tee -a "$log" || true + fi +} # Decide waybar config/style based on chassis type. Echoes chosen config path. detect_waybar_config() { diff --git a/scripts/lib_prompts.sh b/scripts/lib_prompts.sh index 8f2db3bc..bd8d9c75 100644 --- a/scripts/lib_prompts.sh +++ b/scripts/lib_prompts.sh @@ -45,7 +45,7 @@ You need to set it Manually Setting a wrong Keyboard Layout will cause Hyprland to crash If you are not sure, just type ${YELLOW}us${RESET} -${SKYBLUE}You can change later in ~/.config/hypr/UserConfigs/UserSettings.conf${RESET} +${SKYBLUE}You can change later in ${XDG_CONFIG_HOME:-$HOME/.config}/hypr/UserConfigs/UserSettings.conf${RESET} ${MAGENTA} NOTE:${RESET} • You can also set more than 2 keyboard layouts @@ -93,7 +93,7 @@ You need to set it Manually Setting a wrong Keyboard Layout will cause Hyprland to crash If you are not sure, just type ${YELLOW}us${RESET} -${SKYBLUE}You can change later in ~/.config/hypr/UserConfigs/UserSettings.conf${RESET} +${SKYBLUE}You can change later in ${XDG_CONFIG_HOME:-$HOME/.config}/hypr/UserConfigs/UserSettings.conf${RESET} ${MAGENTA} NOTE:${RESET} • You can also set more than 2 keyboard layouts diff --git a/scripts/migrate-hypr-to-lua.sh b/scripts/migrate-hypr-to-lua.sh index ccbd6ed9..a3e4c78c 100755 --- a/scripts/migrate-hypr-to-lua.sh +++ b/scripts/migrate-hypr-to-lua.sh @@ -12,7 +12,7 @@ set -euo pipefail SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" REPO_DIR="$(cd "$SCRIPT_DIR/.." && pwd)" SRC_HYPR_DIR="$REPO_DIR/config/hypr" -DEST_HYPR_DIR="${XDG_CONFIG_HOME:-$HOME/.config}/hypr" +DEST_HYPR_DIR="${XDG_CONFIG_HOME:-${XDG_CONFIG_HOME:-$HOME/.config}}/hypr" BACKUP_DIR="${DEST_HYPR_DIR}-backup-lua-$(date +%Y%m%d-%H%M%S)" MIGRATION_TS="$(date +%Y%m%d-%H%M%S)" DRY_RUN=0 @@ -49,6 +49,7 @@ DEST_WORKSPACES_CONF="$DEST_HYPR_DIR/workspaces.conf" DEST_LUA_WORKSPACES="$DEST_HYPR_DIR/lua/workspaces.lua" SOURCE_LUA_ENTRY_ENABLED="$SRC_HYPR_DIR/hyprland.lua" SOURCE_LUA_ENTRY_DISABLED="$SRC_HYPR_DIR/hyprland.lua.disable" +SRC_USER_LUA_TEMPLATES_DIR="$SRC_HYPR_DIR/UserConfigs" DEST_LUA_ENTRY="$DEST_HYPR_DIR/hyprland.lua" DEST_LUA_ENTRY_DISABLED="$DEST_HYPR_DIR/hyprland.lua.disable" SOURCE_LUA_ENTRY="" @@ -163,6 +164,51 @@ restore_latest_conf_backup() { fi } +has_active_hyprlang_content() { + local source_conf="$1" + [ -f "$source_conf" ] || return 1 + grep -Eq '^[[:space:]]*[^#[:space:]]' "$source_conf" +} + +lua_file_is_generated() { + local lua_path="$1" + [ -f "$lua_path" ] || return 1 + grep -Eq 'auto-generated|Converted from|No active entries were found|Source reference from' "$lua_path" +} + +ensure_template_for_empty_user_conf() { + local source_conf="$1" + local target_lua="$2" + local template_lua="$3" + + [ -f "$template_lua" ] || return 0 + + if has_active_hyprlang_content "$source_conf"; then + return 0 + fi + + if [ -f "$target_lua" ] && ! lua_file_is_generated "$target_lua"; then + echo "[INFO] Preserving customized Lua file for empty/default source: $target_lua" + return 0 + fi + + cp -f "$template_lua" "$target_lua" + echo "[OK] Ensured template for empty/default source: $source_conf -> $target_lua" +} + +ensure_templates_for_empty_user_configs() { + ensure_template_for_empty_user_conf "$USER_ENV_VARS" "$USER_CONFIGS_DIR/user_env.lua" "$SRC_USER_LUA_TEMPLATES_DIR/user_env.lua" + ensure_template_for_empty_user_conf "$USER_STARTUP_APPS" "$USER_CONFIGS_DIR/user_startup.lua" "$SRC_USER_LUA_TEMPLATES_DIR/user_startup.lua" + ensure_template_for_empty_user_conf "$USER_WINDOW_RULES" "$USER_CONFIGS_DIR/user_window_rules.lua" "$SRC_USER_LUA_TEMPLATES_DIR/user_window_rules.lua" + ensure_template_for_empty_user_conf "$USER_LAYER_RULES" "$USER_CONFIGS_DIR/user_layer_rules.lua" "$SRC_USER_LUA_TEMPLATES_DIR/user_layer_rules.lua" + ensure_template_for_empty_user_conf "$USER_KEYBINDS" "$USER_CONFIGS_DIR/user_keybinds.lua" "$SRC_USER_LUA_TEMPLATES_DIR/user_keybinds.lua" + ensure_template_for_empty_user_conf "$USER_SETTINGS" "$USER_CONFIGS_DIR/user_settings.lua" "$SRC_USER_LUA_TEMPLATES_DIR/user_settings.lua" + ensure_template_for_empty_user_conf "$USER_DECORATIONS" "$USER_CONFIGS_DIR/user_decorations.lua" "$SRC_USER_LUA_TEMPLATES_DIR/user_decorations.lua" + ensure_template_for_empty_user_conf "$USER_ANIMATIONS" "$USER_CONFIGS_DIR/user_animations.lua" "$SRC_USER_LUA_TEMPLATES_DIR/user_animations.lua" + ensure_template_for_empty_user_conf "$USER_LAPTOPS" "$USER_CONFIGS_DIR/user_laptops.lua" "$SRC_USER_LUA_TEMPLATES_DIR/user_laptops.lua" + ensure_template_for_empty_user_conf "$USER_CONFIGS_DIR/01-UserDefaults.conf" "$USER_CONFIGS_DIR/user_defaults.lua" "$SRC_USER_LUA_TEMPLATES_DIR/user_defaults.lua" +} + if [ "$YES" -eq 0 ]; then if [ "$REVERT" -eq 1 ]; then printf "[ACTION] Continue and revert Lua migration using latest legacy archives? [y/N] " @@ -199,10 +245,15 @@ if [ "$DRY_RUN" -eq 1 ]; then fi if [ -f "$DEST_LUA_ENTRY_DISABLED" ]; then echo "[DRY-RUN] Would enable Lua entrypoint: $DEST_LUA_ENTRY_DISABLED -> $DEST_LUA_ENTRY" + fi + if [ -n "$SOURCE_LUA_ENTRY" ]; then + if [ -f "$DEST_LUA_ENTRY" ]; then + echo "[DRY-RUN] Would refresh Lua entrypoint from template: $SOURCE_LUA_ENTRY -> $DEST_LUA_ENTRY" + else + echo "[DRY-RUN] Would install Lua entrypoint: $SOURCE_LUA_ENTRY -> $DEST_LUA_ENTRY" + fi elif [ -f "$DEST_LUA_ENTRY" ]; then - echo "[DRY-RUN] Lua entrypoint already enabled: $DEST_LUA_ENTRY" - elif [ -n "$SOURCE_LUA_ENTRY" ]; then - echo "[DRY-RUN] Would install Lua entrypoint: $SOURCE_LUA_ENTRY -> $DEST_LUA_ENTRY" + echo "[DRY-RUN] Lua entrypoint already enabled: $DEST_LUA_ENTRY (no source template available to refresh)" fi echo "[DRY-RUN] Would replace Lua module directory: $DEST_HYPR_DIR/lua" echo "[DRY-RUN] Would generate split configs/UserConfigs Lua overlays:" @@ -223,6 +274,7 @@ if [ "$DRY_RUN" -eq 1 ]; then echo "[DRY-RUN] - $USER_CONFIGS_DIR/user_animations.lua" echo "[DRY-RUN] - $USER_CONFIGS_DIR/user_laptops.lua" echo "[DRY-RUN] - $USER_CONFIGS_DIR/user_defaults.lua" + echo "[DRY-RUN] Would ensure repo Lua templates for empty/default UserConfigs/*.conf files." echo "[DRY-RUN] - $DEST_LUA_MONITORS (generated from $DEST_MONITORS_CONF)" echo "[DRY-RUN] - $DEST_LUA_WORKSPACES (generated from $DEST_WORKSPACES_CONF)" if [ -d "$USER_CONFIGS_DIR" ]; then @@ -264,11 +316,12 @@ if [ -f "$DEST_LUA_ENTRY_DISABLED" ]; then mv "$DEST_LUA_ENTRY_DISABLED" "$DEST_LUA_ENTRY" echo "[OK] Enabled Lua entrypoint: $DEST_LUA_ENTRY" fi -elif [ -f "$DEST_LUA_ENTRY" ]; then - echo "[INFO] Lua entrypoint already enabled: $DEST_LUA_ENTRY" -elif [ -n "$SOURCE_LUA_ENTRY" ]; then +fi +if [ -n "$SOURCE_LUA_ENTRY" ]; then cp -f "$SOURCE_LUA_ENTRY" "$DEST_LUA_ENTRY" - echo "[OK] Installed Lua entrypoint: $SOURCE_LUA_ENTRY -> $DEST_LUA_ENTRY" + echo "[OK] Installed/updated Lua entrypoint: $SOURCE_LUA_ENTRY -> $DEST_LUA_ENTRY" +elif [ -f "$DEST_LUA_ENTRY" ]; then + echo "[INFO] Lua entrypoint already enabled: $DEST_LUA_ENTRY (source template unavailable; keeping existing entrypoint)" else echo "[ERROR] Unable to locate a Lua entrypoint to enable." >&2 exit 1 @@ -1483,16 +1536,16 @@ system_keybind_lines = [ " end", " if name == \"cyclenext\" then", " if args == \"prev\" or args == \"b\" then", - " return exec_cmd(\"$HOME/.config/hypr/scripts/LuaCycleWindow.sh previous\")", + " return exec_cmd(\"${XDG_CONFIG_HOME:-$HOME/.config}/hypr/scripts/LuaCycleWindow.sh previous\")", " end", - " return exec_cmd(\"$HOME/.config/hypr/scripts/LuaCycleWindow.sh next\")", + " return exec_cmd(\"${XDG_CONFIG_HOME:-$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)", + " return exec_cmd(\"${XDG_CONFIG_HOME:-$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", @@ -1688,7 +1741,7 @@ startup_lines = [ "-- User startup overrides (auto-generated).", "-- Add commands with exec_once(\"your command\")", "-- Example:", - "-- exec_once(\"$HOME/.config/hypr/UserScripts/MyStartup.sh\")", + "-- exec_once(\"${XDG_CONFIG_HOME:-$HOME/.config}/hypr/UserScripts/MyStartup.sh\")", "", "local user_startup_helper = nil", "do", @@ -1870,7 +1923,7 @@ keybind_lines = [ "-- Add keybinds with bind(\"MODS\", \"KEY\", fn, opts).", "-- Example:", "-- bind(\"SUPER\", \"Z\", exec_cmd(\"ghostty\"), { description = \"Launch ghostty\" })", - "-- Helper functions live in ~/.config/hypr/lua/user_keybinds_helper.lua so they can be updated separately.", + "-- Helper functions live in ${XDG_CONFIG_HOME:-$HOME/.config}/hypr/lua/user_keybinds_helper.lua so they can be updated separately.", "local user_keybinds_helper = nil", "do", " local source = (debug.getinfo(1, \"S\") or {}).source or \"\"", @@ -2085,6 +2138,7 @@ for name, source in [ lines.append(f"-- No active entries were found in {source.name}.") write_file(files_out[name], lines) PY +ensure_templates_for_empty_user_configs cat > "$USER_OVERRIDES_SHIM" <<'LUA' -- ================================================== @@ -2094,7 +2148,7 @@ cat > "$USER_OVERRIDES_SHIM" <<'LUA' -- SPDX-License-Identifier: GPL-3.0-or-later -- ================================================== -- Auto-generated by scripts/migrate-hypr-to-lua.sh. --- Loads split system/user Lua files from ~/.config/hypr/configs and ~/.config/hypr/UserConfigs. +-- Loads split system/user Lua files from ${XDG_CONFIG_HOME:-$HOME/.config}/hypr/configs and ${XDG_CONFIG_HOME:-$HOME/.config}/hypr/UserConfigs. local configHome = os.getenv("XDG_CONFIG_HOME") or ((os.getenv("HOME") or "") .. "/.config") local hyprDir = configHome .. "/hypr" local systemDir = hyprDir .. "/configs" -- cgit v1.2.3 From 4166fc30fb567f95c3513ede44f0e117448c0e5f Mon Sep 17 00:00:00 2001 From: Don Williams Date: Thu, 2 Jul 2026 15:57:03 -0400 Subject: Fixed animation files Signed-off-by: Don Williams On branch main Your branch is up to date with 'origin/main'. Changes to be committed: modified: config/hypr/animations/00-default.conf modified: config/hypr/animations/00-default.lua modified: config/hypr/animations/01-default - v2.conf modified: config/hypr/animations/01-default - v2.lua modified: config/hypr/animations/END-4.conf modified: config/hypr/animations/END-4.lua modified: config/hypr/animations/HYDE - default.conf modified: config/hypr/animations/HYDE - default.lua modified: config/hypr/animations/HYDE - minimal-1.conf modified: config/hypr/animations/HYDE - minimal-1.lua modified: config/hypr/animations/HYDE - optimized.conf modified: config/hypr/animations/HYDE - optimized.lua modified: config/hypr/animations/ML4W - classic.conf modified: config/hypr/animations/ML4W - classic.lua modified: config/hypr/animations/ML4W - dynamic.conf modified: config/hypr/animations/ML4W - dynamic.lua modified: config/hypr/animations/ML4W - fast.conf modified: config/hypr/animations/ML4W - fast.lua modified: config/hypr/animations/ML4W - high.conf modified: config/hypr/animations/ML4W - high.lua modified: config/hypr/animations/ML4W - moving.conf modified: config/hypr/animations/ML4W - moving.lua modified: config/hypr/animations/ML4W - standard.conf modified: config/hypr/animations/ML4W - standard.lua modified: config/hypr/animations/Mahaveer - me-1.conf modified: config/hypr/animations/Mahaveer - me-1.lua modified: config/hypr/animations/Mahaveer - me-2.conf modified: config/hypr/animations/Mahaveer - me-2.lua --- config/hypr/animations/00-default.conf | 12 ++++++------ config/hypr/animations/00-default.lua | 10 +++++----- config/hypr/animations/01-default - v2.conf | 18 +++++++++--------- config/hypr/animations/01-default - v2.lua | 16 ++++++++-------- config/hypr/animations/END-4.conf | 14 ++++++++------ config/hypr/animations/END-4.lua | 4 ++-- config/hypr/animations/HYDE - default.conf | 6 +++--- config/hypr/animations/HYDE - default.lua | 6 +++--- config/hypr/animations/HYDE - minimal-1.conf | 6 +++--- config/hypr/animations/HYDE - minimal-1.lua | 6 +++--- config/hypr/animations/HYDE - optimized.conf | 17 +++++++++-------- config/hypr/animations/HYDE - optimized.lua | 8 ++++---- config/hypr/animations/ML4W - classic.conf | 2 +- config/hypr/animations/ML4W - classic.lua | 2 +- config/hypr/animations/ML4W - dynamic.conf | 6 +++--- config/hypr/animations/ML4W - dynamic.lua | 6 +++--- config/hypr/animations/ML4W - fast.conf | 13 +++++++------ config/hypr/animations/ML4W - fast.lua | 4 ++-- config/hypr/animations/ML4W - high.conf | 6 +++--- config/hypr/animations/ML4W - high.lua | 6 +++--- config/hypr/animations/ML4W - moving.conf | 4 ++-- config/hypr/animations/ML4W - moving.lua | 4 ++-- config/hypr/animations/ML4W - standard.conf | 2 +- config/hypr/animations/ML4W - standard.lua | 2 +- config/hypr/animations/Mahaveer - me-1.conf | 19 ++++++++++--------- config/hypr/animations/Mahaveer - me-1.lua | 10 +++++----- config/hypr/animations/Mahaveer - me-2.conf | 12 ++++++------ config/hypr/animations/Mahaveer - me-2.lua | 10 +++++----- 28 files changed, 118 insertions(+), 113 deletions(-) diff --git a/config/hypr/animations/00-default.conf b/config/hypr/animations/00-default.conf index f2d33d93..41ca0efb 100644 --- a/config/hypr/animations/00-default.conf +++ b/config/hypr/animations/00-default.conf @@ -3,13 +3,13 @@ animations { enabled = yes - bezier = wind, 0.05, 0.9, 0.1, 1.05 - bezier = winIn, 0.1, 1.1, 0.1, 1.1 - bezier = winOut, 0.3, -0.3, 0, 1 + bezier = wind, 0.05, 0.9, 0.1, 1.00 + bezier = winIn, 0.1, 1.0, 0.1, 1.0 + bezier = winOut, 0.3, 0.0, 0, 1 bezier = liner, 1, 1, 1, 1 - bezier = overshot, 0.05, 0.9, 0.1, 1.05 + bezier = overshot, 0.05, 0.9, 0.1, 1.00 bezier = smoothOut, 0.5, 0, 0.99, 0.99 - bezier = smoothIn, 0.5, -0.5, 0.68, 1.5 + bezier = smoothIn, 0.5, 0.0, 0.68, 1.0 animation = windows, 1, 6, wind, slide animation = windowsIn, 1, 5, winIn, slide @@ -23,4 +23,4 @@ animations { # animations for -git or version >0.42.0 animation = workspacesIn, 1, 5, winIn, slide animation = workspacesOut, 1, 5, winOut, slide -} \ No newline at end of file +} diff --git a/config/hypr/animations/00-default.lua b/config/hypr/animations/00-default.lua index ee629c96..d28ba5a1 100644 --- a/config/hypr/animations/00-default.lua +++ b/config/hypr/animations/00-default.lua @@ -6,13 +6,13 @@ hl.config({ }, }) -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("wind", { type = "bezier", points = { { 0.05, 0.9 }, { 0.1, 1.00 } } }) +hl.curve("winIn", { type = "bezier", points = { { 0.1, 1.0 }, { 0.1, 1.0 } } }) +hl.curve("winOut", { type = "bezier", points = { { 0.3, 0.0 }, { 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("overshot", { type = "bezier", points = { { 0.05, 0.9 }, { 0.1, 1.00 } } }) 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.curve("smoothIn", { type = "bezier", points = { { 0.5, 0.0 }, { 0.68, 1.0 } } }) hl.animation({ leaf = "windows", enabled = true, speed = 6, bezier = "wind", style = "slide" }) hl.animation({ leaf = "windowsIn", enabled = true, speed = 5, bezier = "winIn", style = "slide" }) diff --git a/config/hypr/animations/01-default - v2.conf b/config/hypr/animations/01-default - v2.conf index 7ba66b79..018e375e 100644 --- a/config/hypr/animations/01-default - v2.conf +++ b/config/hypr/animations/01-default - v2.conf @@ -5,16 +5,16 @@ animations { enabled = yes - bezier = myBezier, 0.05, 0.9, 0.1, 1.05 + bezier = myBezier, 0.05, 0.9, 0.1, 1.00 bezier = linear, 0.0, 0.0, 1.0, 1.0 - bezier = wind, 0.05, 0.9, 0.1, 1.05 - bezier = winIn, 0.1, 1.1, 0.1, 1.1 - bezier = winOut, 0.3, -0.3, 0, 1 + bezier = wind, 0.05, 0.9, 0.1, 1.00 + bezier = winIn, 0.1, 1.0, 0.1, 1.0 + bezier = winOut, 0.3, 0.0, 0, 1 bezier = slow, 0, 0.85, 0.3, 1 - bezier = overshot, 0.7, 0.6, 0.1, 1.1 - bezier = bounce, 1.1, 1.6, 0.1, 0.85 - bezier = sligshot, 1, -1, 0.15, 1.25 - bezier = nice, 0, 6.9, 0.5, -4.20 + bezier = overshot, 0.7, 0.6, 0.1, 1.0 + bezier = bounce, 1.0, 1.0, 0.1, 0.85 + bezier = sligshot, 1, 0.0, 0.15, 1.00 + bezier = nice, 0, 1.0, 0.5, 0.00 animation = windowsIn, 1, 5, slow, popin animation = windowsOut, 1, 5, winOut, popin @@ -24,4 +24,4 @@ animations { animation = fade, 1, 5, overshot animation = workspaces, 1, 5, wind animation = windows, 1, 5, bounce, popin -} \ No newline at end of file +} diff --git a/config/hypr/animations/01-default - v2.lua b/config/hypr/animations/01-default - v2.lua index 1de8fab5..af12ecfe 100644 --- a/config/hypr/animations/01-default - v2.lua +++ b/config/hypr/animations/01-default - v2.lua @@ -6,16 +6,16 @@ hl.config({ }, }) -hl.curve("myBezier", { type = "bezier", points = { { 0.05, 0.9 }, { 0.1, 1.05 } } }) +hl.curve("myBezier", { type = "bezier", points = { { 0.05, 0.9 }, { 0.1, 1.00 } } }) 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("wind", { type = "bezier", points = { { 0.05, 0.9 }, { 0.1, 1.00 } } }) +hl.curve("winIn", { type = "bezier", points = { { 0.1, 1.0 }, { 0.1, 1.0 } } }) +hl.curve("winOut", { type = "bezier", points = { { 0.3, 0.0 }, { 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.curve("overshot", { type = "bezier", points = { { 0.7, 0.6 }, { 0.1, 1.0 } } }) +hl.curve("bounce", { type = "bezier", points = { { 1.0, 1.0 }, { 0.1, 0.85 } } }) +hl.curve("sligshot", { type = "bezier", points = { { 1, 0.0 }, { 0.15, 1.00 } } }) +hl.curve("nice", { type = "bezier", points = { { 0, 1.0 }, { 0.5, 0.00 } } }) hl.animation({ leaf = "windowsIn", enabled = true, speed = 5, bezier = "slow", style = "popin" }) hl.animation({ leaf = "windowsOut", enabled = true, speed = 5, bezier = "winOut", style = "popin" }) diff --git a/config/hypr/animations/END-4.conf b/config/hypr/animations/END-4.conf index 394a0a1a..dbab1e02 100644 --- a/config/hypr/animations/END-4.conf +++ b/config/hypr/animations/END-4.conf @@ -8,11 +8,11 @@ animations { # Animation curves bezier = linear, 0, 0, 1, 1 - bezier = md3_standard, 0.2, 0, 0, 1 - bezier = md3_decel, 0.05, 0.7, 0.1, 1 - bezier = md3_accel, 0.3, 0, 0.8, 0.15 - bezier = overshot, 0.05, 0.9, 0.1, 1.1 - bezier = crazyshot, 0.1, 1.5, 0.76, 0.92 + bezier = md1_standard, 0.2, 0, 0, 1 + bezier = md1_decel, 0.05, 0.7, 0.1, 1 + bezier = md1_accel, 0.3, 0, 0.8, 0.15 + bezier = overshot, 0.05, 0.9, 0.1, 1.0 + bezier = crazyshot, 0.1, 1.0, 0.76, 0.92 bezier = hyprnostretch, 0.05, 0.9, 0.1, 1.0 bezier = menu_decel, 0.1, 1, 0, 1 bezier = menu_accel, 0.38, 0.04, 1, 0.07 @@ -20,7 +20,9 @@ animations { bezier = easeOutCirc, 0, 0.55, 0.45, 1 bezier = easeOutExpo, 0.16, 1, 0.3, 1 bezier = softAcDecel, 0.26, 0.26, 0.15, 1 - bezier = md2, 0.4, 0, 0.2, 1 # use with .2s duration + bezier = md1, 0.4, 0, 0.2, 1 # use with .2s duration + bezier = md3_decel, 0.05, 0.7, 0.1, 1 + bezier = md3_accel, 0.3, 0, 0.8, 0.15 # Animation configs animation = windows, 1, 3, md3_decel, popin 60% animation = windowsIn, 1, 3, md3_decel, popin 60% diff --git a/config/hypr/animations/END-4.lua b/config/hypr/animations/END-4.lua index ba110519..1cc5ded9 100644 --- a/config/hypr/animations/END-4.lua +++ b/config/hypr/animations/END-4.lua @@ -10,8 +10,8 @@ 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("overshot", { type = "bezier", points = { { 0.05, 0.9 }, { 0.1, 1.0 } } }) +hl.curve("crazyshot", { type = "bezier", points = { { 0.1, 1.0 }, { 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 } } }) diff --git a/config/hypr/animations/HYDE - default.conf b/config/hypr/animations/HYDE - default.conf index 981414fd..51c20a5b 100644 --- a/config/hypr/animations/HYDE - default.conf +++ b/config/hypr/animations/HYDE - default.conf @@ -5,9 +5,9 @@ animations { enabled = yes - bezier = wind, 0.05, 0.9, 0.1, 1.05 - bezier = winIn, 0.1, 1.1, 0.1, 1.1 - bezier = winOut, 0.3, -0.3, 0, 1 + bezier = wind, 0.05, 0.9, 0.1, 1.00 + bezier = winIn, 0.1, 1.0, 0.1, 1.0 + bezier = winOut, 0.3, 0.0, 0, 1 bezier = liner, 1, 1, 1, 1 animation = windows, 1, 6, wind, slide animation = windowsIn, 1, 6, winIn, slide diff --git a/config/hypr/animations/HYDE - default.lua b/config/hypr/animations/HYDE - default.lua index e9d63be7..9bcbad6d 100644 --- a/config/hypr/animations/HYDE - default.lua +++ b/config/hypr/animations/HYDE - default.lua @@ -6,9 +6,9 @@ hl.config({ }, }) -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("wind", { type = "bezier", points = { { 0.05, 0.9 }, { 0.1, 1.00 } } }) +hl.curve("winIn", { type = "bezier", points = { { 0.1, 1.0 }, { 0.1, 1.0 } } }) +hl.curve("winOut", { type = "bezier", points = { { 0.3, 0.0 }, { 0, 1 } } }) hl.curve("liner", { type = "bezier", points = { { 1, 1 }, { 1, 1 } } }) hl.animation({ leaf = "windows", enabled = true, speed = 6, bezier = "wind", style = "slide" }) diff --git a/config/hypr/animations/HYDE - minimal-1.conf b/config/hypr/animations/HYDE - minimal-1.conf index 909f7140..81264f3a 100644 --- a/config/hypr/animations/HYDE - minimal-1.conf +++ b/config/hypr/animations/HYDE - minimal-1.conf @@ -8,9 +8,9 @@ animations { # █▄▄ █▀▀ ▀█ █ █▀▀ █▀█   █▀▀ █░█ █▀█ █░█ █▀▀ # █▄█ ██▄ █▄ █ ██▄ █▀▄   █▄▄ █▄█ █▀▄ ▀▄▀ ██▄ - bezier = wind, 0.05, 0.9, 0.1, 1.05 - bezier = winIn, 0.1, 1.1, 0.1, 1.1 - bezier = winOut, 0.3, -0.3, 0, 1 + bezier = wind, 0.05, 0.9, 0.1, 1.00 + bezier = winIn, 0.1, 1.0, 0.1, 1.0 + bezier = winOut, 0.3, 0.0, 0, 1 bezier = liner, 1, 1, 1, 1 diff --git a/config/hypr/animations/HYDE - minimal-1.lua b/config/hypr/animations/HYDE - minimal-1.lua index 9d8b4d6b..53530f57 100644 --- a/config/hypr/animations/HYDE - minimal-1.lua +++ b/config/hypr/animations/HYDE - minimal-1.lua @@ -6,9 +6,9 @@ hl.config({ }, }) -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("wind", { type = "bezier", points = { { 0.05, 0.9 }, { 0.1, 1.00 } } }) +hl.curve("winIn", { type = "bezier", points = { { 0.1, 1.0 }, { 0.1, 1.0 } } }) +hl.curve("winOut", { type = "bezier", points = { { 0.3, 0.0 }, { 0, 1 } } }) hl.curve("liner", { type = "bezier", points = { { 1, 1 }, { 1, 1 } } }) hl.animation({ leaf = "windows", enabled = true, speed = 6, bezier = "wind", style = "slide" }) diff --git a/config/hypr/animations/HYDE - optimized.conf b/config/hypr/animations/HYDE - optimized.conf index e325b635..51c1a291 100644 --- a/config/hypr/animations/HYDE - optimized.conf +++ b/config/hypr/animations/HYDE - optimized.conf @@ -7,13 +7,13 @@ animations { enabled = true bezier = wind, 0.05, 0.85, 0.03, 0.97 bezier = winIn, 0.07, 0.88, 0.04, 0.99 - bezier = winOut, 0.20, -0.15, 0, 1 + bezier = winOut, 0.20, 0.00, 0, 1 bezier = liner, 1, 1, 1, 1 - bezier = md3_standard, 0.12, 0, 0, 1 - bezier = md3_decel, 0.05, 0.80, 0.10, 0.97 - bezier = md3_accel, 0.20, 0, 0.80, 0.08 - bezier = overshot, 0.05, 0.85, 0.07, 1.04 - bezier = crazyshot, 0.1, 1.22, 0.68, 0.98 + bezier = md1_standard, 0.12, 0, 0, 1 + bezier = md1_decel, 0.05, 0.80, 0.10, 0.97 + bezier = md1_accel, 0.20, 0, 0.80, 0.08 + bezier = overshot, 0.05, 0.85, 0.07, 1.00 + bezier = crazyshot, 0.1, 1.00, 0.68, 0.98 bezier = hyprnostretch, 0.05, 0.82, 0.03, 0.94 bezier = menu_decel, 0.05, 0.82, 0, 1 bezier = menu_accel, 0.20, 0, 0.82, 0.10 @@ -21,9 +21,10 @@ animations { bezier = easeOutCirc, 0, 0.48, 0.38, 1 bezier = easeOutExpo, 0.10, 0.94, 0.23, 0.98 bezier = softAcDecel, 0.20, 0.20, 0.15, 1 - bezier = md2, 0.30, 0, 0.15, 1 + bezier = md1, 0.30, 0, 0.15, 1 + bezier = md3_decel, 0.05, 0.80, 0.10, 0.97 - bezier = OutBack, 0.28, 1.40, 0.58, 1 + bezier = OutBack, 0.28, 1.00, 0.58, 1 bezier = easeInOutCirc, 0.78, 0, 0.15, 1 animation = border, 1, 1.6, liner diff --git a/config/hypr/animations/HYDE - optimized.lua b/config/hypr/animations/HYDE - optimized.lua index 124542d9..7e48ca86 100644 --- a/config/hypr/animations/HYDE - optimized.lua +++ b/config/hypr/animations/HYDE - optimized.lua @@ -8,13 +8,13 @@ hl.config({ 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("winOut", { type = "bezier", points = { { 0.20, 0.00 }, { 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("overshot", { type = "bezier", points = { { 0.05, 0.85 }, { 0.07, 1.00 } } }) +hl.curve("crazyshot", { type = "bezier", points = { { 0.1, 1.00 }, { 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 } } }) @@ -23,7 +23,7 @@ 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("OutBack", { type = "bezier", points = { { 0.28, 1.00 }, { 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" }) diff --git a/config/hypr/animations/ML4W - classic.conf b/config/hypr/animations/ML4W - classic.conf index 7f697afd..77f32290 100644 --- a/config/hypr/animations/ML4W - classic.conf +++ b/config/hypr/animations/ML4W - classic.conf @@ -5,7 +5,7 @@ animations { enabled = true - bezier = myBezier, 0.05, 0.9, 0.1, 1.05 + bezier = myBezier, 0.05, 0.9, 0.1, 1.00 animation = windows, 1, 7, myBezier animation = windowsOut, 1, 7, default, popin 80% animation = border, 1, 10, default diff --git a/config/hypr/animations/ML4W - classic.lua b/config/hypr/animations/ML4W - classic.lua index 76bfb491..a77e4334 100644 --- a/config/hypr/animations/ML4W - classic.lua +++ b/config/hypr/animations/ML4W - classic.lua @@ -6,7 +6,7 @@ hl.config({ }, }) -hl.curve("myBezier", { type = "bezier", points = { { 0.05, 0.9 }, { 0.1, 1.05 } } }) +hl.curve("myBezier", { type = "bezier", points = { { 0.05, 0.9 }, { 0.1, 1.00 } } }) hl.animation({ leaf = "windows", enabled = true, speed = 7, bezier = "myBezier" }) hl.animation({ leaf = "windowsOut", enabled = true, speed = 7, bezier = "default", style = "popin 80%" }) diff --git a/config/hypr/animations/ML4W - dynamic.conf b/config/hypr/animations/ML4W - dynamic.conf index 7c98675d..a2d65eaf 100644 --- a/config/hypr/animations/ML4W - dynamic.conf +++ b/config/hypr/animations/ML4W - dynamic.conf @@ -5,9 +5,9 @@ animations { enabled = true - bezier = wind, 0.05, 0.9, 0.1, 1.05 - bezier = winIn, 0.1, 1.1, 0.1, 1.1 - bezier = winOut, 0.3, -0.3, 0, 1 + bezier = wind, 0.05, 0.9, 0.1, 1.00 + bezier = winIn, 0.1, 1.0, 0.1, 1.0 + bezier = winOut, 0.3, 0.0, 0, 1 bezier = liner, 1, 1, 1, 1 animation = windows, 1, 6, wind, slide animation = windowsIn, 1, 6, winIn, slide diff --git a/config/hypr/animations/ML4W - dynamic.lua b/config/hypr/animations/ML4W - dynamic.lua index 13580c7b..fbb86797 100644 --- a/config/hypr/animations/ML4W - dynamic.lua +++ b/config/hypr/animations/ML4W - dynamic.lua @@ -6,9 +6,9 @@ hl.config({ }, }) -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("wind", { type = "bezier", points = { { 0.05, 0.9 }, { 0.1, 1.00 } } }) +hl.curve("winIn", { type = "bezier", points = { { 0.1, 1.0 }, { 0.1, 1.0 } } }) +hl.curve("winOut", { type = "bezier", points = { { 0.3, 0.0 }, { 0, 1 } } }) hl.curve("liner", { type = "bezier", points = { { 1, 1 }, { 1, 1 } } }) hl.animation({ leaf = "windows", enabled = true, speed = 6, bezier = "wind", style = "slide" }) diff --git a/config/hypr/animations/ML4W - fast.conf b/config/hypr/animations/ML4W - fast.conf index ce586478..4d4283cc 100644 --- a/config/hypr/animations/ML4W - fast.conf +++ b/config/hypr/animations/ML4W - fast.conf @@ -6,19 +6,20 @@ animations { enabled = true bezier = linear, 0, 0, 1, 1 - bezier = md3_standard, 0.2, 0, 0, 1 - bezier = md3_decel, 0.05, 0.7, 0.1, 1 - bezier = md3_accel, 0.3, 0, 0.8, 0.15 - bezier = overshot, 0.05, 0.9, 0.1, 1.1 - bezier = crazyshot, 0.1, 1.5, 0.76, 0.92 + bezier = md1_standard, 0.2, 0, 0, 1 + bezier = md1_decel, 0.05, 0.7, 0.1, 1 + bezier = md1_accel, 0.3, 0, 0.8, 0.15 + bezier = overshot, 0.05, 0.9, 0.1, 1.0 + bezier = crazyshot, 0.1, 1.0, 0.76, 0.92 bezier = hyprnostretch, 0.05, 0.9, 0.1, 1.0 bezier = fluent_decel, 0.1, 1, 0, 1 bezier = easeInOutCirc, 0.85, 0, 0.15, 1 bezier = easeOutCirc, 0, 0.55, 0.45, 1 bezier = easeOutExpo, 0.16, 1, 0.3, 1 + bezier = md3_decel, 0.05, 0.7, 0.1, 1 animation = windows, 1, 3, md3_decel, popin 60% animation = border, 1, 10, default animation = fade, 1, 2.5, md3_decel animation = workspaces, 1, 3.5, easeOutExpo, slide animation = specialWorkspace, 1, 3, md3_decel, slidevert -} \ No newline at end of file +} diff --git a/config/hypr/animations/ML4W - fast.lua b/config/hypr/animations/ML4W - fast.lua index 3f628a20..f8560c89 100644 --- a/config/hypr/animations/ML4W - fast.lua +++ b/config/hypr/animations/ML4W - fast.lua @@ -10,8 +10,8 @@ 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("overshot", { type = "bezier", points = { { 0.05, 0.9 }, { 0.1, 1.0 } } }) +hl.curve("crazyshot", { type = "bezier", points = { { 0.1, 1.0 }, { 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 } } }) diff --git a/config/hypr/animations/ML4W - high.conf b/config/hypr/animations/ML4W - high.conf index bc38fc66..b5fdba08 100644 --- a/config/hypr/animations/ML4W - high.conf +++ b/config/hypr/animations/ML4W - high.conf @@ -5,9 +5,9 @@ animations { enabled = true - bezier = wind, 0.05, 0.9, 0.1, 1.05 - bezier = winIn, 0.1, 1.1, 0.1, 1.1 - bezier = winOut, 0.3, -0.3, 0, 1 + bezier = wind, 0.05, 0.9, 0.1, 1.00 + bezier = winIn, 0.1, 1.0, 0.1, 1.0 + bezier = winOut, 0.3, 0.0, 0, 1 bezier = liner, 1, 1, 1, 1 animation = windows, 1, 6, wind, slide animation = windowsIn, 1, 6, winIn, slide diff --git a/config/hypr/animations/ML4W - high.lua b/config/hypr/animations/ML4W - high.lua index 3a0855ce..8b379167 100644 --- a/config/hypr/animations/ML4W - high.lua +++ b/config/hypr/animations/ML4W - high.lua @@ -6,9 +6,9 @@ hl.config({ }, }) -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("wind", { type = "bezier", points = { { 0.05, 0.9 }, { 0.1, 1.00 } } }) +hl.curve("winIn", { type = "bezier", points = { { 0.1, 1.0 }, { 0.1, 1.0 } } }) +hl.curve("winOut", { type = "bezier", points = { { 0.3, 0.0 }, { 0, 1 } } }) hl.curve("liner", { type = "bezier", points = { { 1, 1 }, { 1, 1 } } }) hl.animation({ leaf = "windows", enabled = true, speed = 6, bezier = "wind", style = "slide" }) diff --git a/config/hypr/animations/ML4W - moving.conf b/config/hypr/animations/ML4W - moving.conf index deb6ad32..fda1e376 100644 --- a/config/hypr/animations/ML4W - moving.conf +++ b/config/hypr/animations/ML4W - moving.conf @@ -6,9 +6,9 @@ animations { enabled = true - bezier = overshot, 0.05, 0.9, 0.1, 1.05 + bezier = overshot, 0.05, 0.9, 0.1, 1.00 bezier = smoothOut, 0.5, 0, 0.99, 0.99 - bezier = smoothIn, 0.5, -0.5, 0.68, 1.5 + bezier = smoothIn, 0.5, 0.0, 0.68, 1.0 animation = windows, 1, 5, overshot, slide animation = windowsOut, 1, 3, smoothOut animation = windowsIn, 1, 3, smoothOut diff --git a/config/hypr/animations/ML4W - moving.lua b/config/hypr/animations/ML4W - moving.lua index 6fadc3e0..e00b6328 100644 --- a/config/hypr/animations/ML4W - moving.lua +++ b/config/hypr/animations/ML4W - moving.lua @@ -6,9 +6,9 @@ hl.config({ }, }) -hl.curve("overshot", { type = "bezier", points = { { 0.05, 0.9 }, { 0.1, 1.05 } } }) +hl.curve("overshot", { type = "bezier", points = { { 0.05, 0.9 }, { 0.1, 1.00 } } }) 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.curve("smoothIn", { type = "bezier", points = { { 0.5, 0.0 }, { 0.68, 1.0 } } }) hl.animation({ leaf = "windows", enabled = true, speed = 5, bezier = "overshot", style = "slide" }) hl.animation({ leaf = "windowsOut", enabled = true, speed = 3, bezier = "smoothOut" }) diff --git a/config/hypr/animations/ML4W - standard.conf b/config/hypr/animations/ML4W - standard.conf index 7a18c604..57844bd8 100644 --- a/config/hypr/animations/ML4W - standard.conf +++ b/config/hypr/animations/ML4W - standard.conf @@ -5,7 +5,7 @@ animations { enabled = true - bezier = myBezier, 0.05, 0.9, 0.1, 1.05 + bezier = myBezier, 0.05, 0.9, 0.1, 1.00 animation = windows, 1, 7, myBezier animation = windowsOut, 1, 7, default, popin 80% animation = border, 1, 10, default diff --git a/config/hypr/animations/ML4W - standard.lua b/config/hypr/animations/ML4W - standard.lua index 04290074..acff701b 100644 --- a/config/hypr/animations/ML4W - standard.lua +++ b/config/hypr/animations/ML4W - standard.lua @@ -6,7 +6,7 @@ hl.config({ }, }) -hl.curve("myBezier", { type = "bezier", points = { { 0.05, 0.9 }, { 0.1, 1.05 } } }) +hl.curve("myBezier", { type = "bezier", points = { { 0.05, 0.9 }, { 0.1, 1.00 } } }) hl.animation({ leaf = "windows", enabled = true, speed = 7, bezier = "myBezier" }) hl.animation({ leaf = "windowsOut", enabled = true, speed = 7, bezier = "default", style = "popin 80%" }) diff --git a/config/hypr/animations/Mahaveer - me-1.conf b/config/hypr/animations/Mahaveer - me-1.conf index 8db554b0..fcd26642 100644 --- a/config/hypr/animations/Mahaveer - me-1.conf +++ b/config/hypr/animations/Mahaveer - me-1.conf @@ -6,16 +6,16 @@ animations { enabled = true # Animation curves - bezier = wind, 0.05, 0.9, 0.1, 1.05 - bezier = winIn, 0.1, 1.1, 0.1, 1.1 - bezier = winOut, 0.3, -0.3, 0, 1 + bezier = wind, 0.05, 0.9, 0.1, 1.00 + bezier = winIn, 0.1, 1.0, 0.1, 1.0 + bezier = winOut, 0.3, 0.0, 0, 1 bezier = liner, 1, 1, 1, 1 # bezier = linear, 0, 0, 1, 1 - bezier = md3_standard, 0.2, 0, 0, 1 - bezier = md3_decel, 0.05, 0.7, 0.1, 1 - bezier = md3_accel, 0.3, 0, 0.8, 0.15 - bezier = overshot, 0.05, 0.9, 0.1, 1.1 - bezier = crazyshot, 0.1, 1.5, 0.76, 0.92 + bezier = md1_standard, 0.2, 0, 0, 1 + bezier = md1_decel, 0.05, 0.7, 0.1, 1 + bezier = md1_accel, 0.3, 0, 0.8, 0.15 + bezier = overshot, 0.05, 0.9, 0.1, 1.0 + bezier = crazyshot, 0.1, 1.0, 0.76, 0.92 bezier = hyprnostretch, 0.05, 0.9, 0.1, 1.0 bezier = menu_decel, 0.1, 1, 0, 1 bezier = menu_accel, 0.38, 0.04, 1, 0.07 @@ -23,7 +23,8 @@ animations { bezier = easeOutCirc, 0, 0.55, 0.45, 1 bezier = easeOutExpo, 0.16, 1, 0.3, 1 bezier = softAcDecel, 0.26, 0.26, 0.15, 1 - bezier = md2, 0.4, 0, 0.2, 1 # use with .2s duration + bezier = md1, 0.4, 0, 0.2, 1 # use with .2s duration + bezier = md3_decel, 0.05, 0.7, 0.1, 1 # Animation configs # animation = windows, 1, 3, md3_decel, popin 60% diff --git a/config/hypr/animations/Mahaveer - me-1.lua b/config/hypr/animations/Mahaveer - me-1.lua index 5c9824ff..d916e1ce 100644 --- a/config/hypr/animations/Mahaveer - me-1.lua +++ b/config/hypr/animations/Mahaveer - me-1.lua @@ -6,15 +6,15 @@ hl.config({ }, }) -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("wind", { type = "bezier", points = { { 0.05, 0.9 }, { 0.1, 1.00 } } }) +hl.curve("winIn", { type = "bezier", points = { { 0.1, 1.0 }, { 0.1, 1.0 } } }) +hl.curve("winOut", { type = "bezier", points = { { 0.3, 0.0 }, { 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("overshot", { type = "bezier", points = { { 0.05, 0.9 }, { 0.1, 1.0 } } }) +hl.curve("crazyshot", { type = "bezier", points = { { 0.1, 1.0 }, { 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 } } }) diff --git a/config/hypr/animations/Mahaveer - me-2.conf b/config/hypr/animations/Mahaveer - me-2.conf index 3d9b35ae..439afafa 100644 --- a/config/hypr/animations/Mahaveer - me-2.conf +++ b/config/hypr/animations/Mahaveer - me-2.conf @@ -7,13 +7,13 @@ animations { enabled = yes - bezier = wind, 0.05, 0.9, 0.1, 1.05 - bezier = winIn, 0.1, 1.1, 0.1, 1.1 - bezier = winOut, 0.3, -0.3, 0, 1 + bezier = wind, 0.05, 0.9, 0.1, 1.00 + bezier = winIn, 0.1, 1.0, 0.1, 1.0 + bezier = winOut, 0.3, 0.0, 0, 1 bezier = liner, 1, 1, 1, 1 - bezier = overshot, 0.05, 0.9, 0.1, 1.05 + bezier = overshot, 0.05, 0.9, 0.1, 1.00 bezier = smoothOut, 0.5, 0, 0.99, 0.99 - bezier = smoothIn, 0.5, -0.5, 0.68, 1.5 + bezier = smoothIn, 0.5, 0.0, 0.68, 1.0 animation = windows, 1, 6, wind, slide animation = windowsIn, 1, 5, winIn, slide @@ -27,4 +27,4 @@ animations { # animations for -git or version >0.42.0 animation = workspacesIn, 1, 5, winIn, slide animation = workspacesOut, 1, 5, winOut, slide -} \ No newline at end of file +} diff --git a/config/hypr/animations/Mahaveer - me-2.lua b/config/hypr/animations/Mahaveer - me-2.lua index 72feaa00..b3d55a75 100644 --- a/config/hypr/animations/Mahaveer - me-2.lua +++ b/config/hypr/animations/Mahaveer - me-2.lua @@ -6,13 +6,13 @@ hl.config({ }, }) -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("wind", { type = "bezier", points = { { 0.05, 0.9 }, { 0.1, 1.00 } } }) +hl.curve("winIn", { type = "bezier", points = { { 0.1, 1.0 }, { 0.1, 1.0 } } }) +hl.curve("winOut", { type = "bezier", points = { { 0.3, 0.0 }, { 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("overshot", { type = "bezier", points = { { 0.05, 0.9 }, { 0.1, 1.00 } } }) 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.curve("smoothIn", { type = "bezier", points = { { 0.5, 0.0 }, { 0.68, 1.0 } } }) hl.animation({ leaf = "windows", enabled = true, speed = 6, bezier = "wind", style = "slide" }) hl.animation({ leaf = "windowsIn", enabled = true, speed = 5, bezier = "winIn", style = "slide" }) -- cgit v1.2.3 From 09f47360d1d520ea7746d3a9f0045ffcf2af7d72 Mon Sep 17 00:00:00 2001 From: Donald Williams <129223418+dwilliam62@users.noreply.github.com> Date: Fri, 3 Jul 2026 08:43:30 -0400 Subject: Development to main - fix changelog and animation files (#86) * Created v2.3.26 development branch Signed-off-by: Don Williams On branch 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.25 -> config/hypr/v2.3.26 * Fixed bezier control point values out-of-range Signed-off-by: Don Williams On branch development Your branch is up to date with 'origin/development'. Changes to be committed: modified: CHANGELOG.md modified: config/hypr/animations/00-default.conf modified: config/hypr/animations/00-default.lua modified: config/hypr/animations/01-default - v2.conf modified: config/hypr/animations/01-default - v2.lua modified: config/hypr/animations/END-4.conf modified: config/hypr/animations/END-4.lua modified: config/hypr/animations/HYDE - default.conf modified: config/hypr/animations/HYDE - default.lua modified: config/hypr/animations/HYDE - minimal-1.conf modified: config/hypr/animations/HYDE - minimal-1.lua modified: config/hypr/animations/HYDE - optimized.conf modified: config/hypr/animations/HYDE - optimized.lua modified: config/hypr/animations/ML4W - classic.conf modified: config/hypr/animations/ML4W - classic.lua modified: config/hypr/animations/ML4W - dynamic.conf modified: config/hypr/animations/ML4W - dynamic.lua modified: config/hypr/animations/ML4W - fast.conf modified: config/hypr/animations/ML4W - fast.lua modified: config/hypr/animations/ML4W - high.conf modified: config/hypr/animations/ML4W - high.lua modified: config/hypr/animations/ML4W - moving.conf modified: config/hypr/animations/ML4W - moving.lua modified: config/hypr/animations/ML4W - standard.conf modified: config/hypr/animations/ML4W - standard.lua modified: config/hypr/animations/Mahaveer - me-1.conf modified: config/hypr/animations/Mahaveer - me-1.lua modified: config/hypr/animations/Mahaveer - me-2.conf modified: config/hypr/animations/Mahaveer - me-2.lua * Fixed bad SED substitution Signed-off-by: Don Williams * Added new animation inspired by amitpadhan525 https://github.com/amitpadhan525 Added animations for other features like windowsIn/Out/Move, etc Signed-off-by: Don Williams On branch development Your branch is up to date with 'origin/development'. Changes to be committed: new file: config/hypr/animations/amitpadhan.conf new file: config/hypr/animations/amitpadhan.lua * Added acrediation in file for amitpadhan525 Signed-off-by: Don Williams * docs: Updated change log, fixed fullscreen keybind (#85) Co-authored-by: sharof --------- Signed-off-by: Don Williams Co-authored-by: sharofiddin Co-authored-by: sharof --- CHANGELOG.md | 15 ++++++++++++- config/hypr/animations/END-4.conf | 10 ++++----- config/hypr/animations/HYDE - optimized.conf | 6 ++--- config/hypr/animations/ML4W - fast.conf | 6 ++--- config/hypr/animations/Mahaveer - me-1.conf | 6 ++--- config/hypr/animations/amitpadhan.conf | 33 ++++++++++++++++++++++++++++ config/hypr/animations/amitpadhan.lua | 28 +++++++++++++++++++++++ config/hypr/configs/ENVariables.conf | 2 +- config/hypr/lua/env.lua | 2 +- config/hypr/v2.3.25 | 0 config/hypr/v2.3.26 | 0 11 files changed, 90 insertions(+), 18 deletions(-) create mode 100644 config/hypr/animations/amitpadhan.conf create mode 100644 config/hypr/animations/amitpadhan.lua delete mode 100644 config/hypr/v2.3.25 create mode 100644 config/hypr/v2.3.26 diff --git a/CHANGELOG.md b/CHANGELOG.md index 8f06eef0..8481a0dc 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,16 @@ # Changelog — KoolDots +## v2.3.26 + +## Fixed: + +- Some animation bezier values out-of-range + - Fixed both hyprlang and lua config files + +## Updated: + +## Changed: + ## v2.3.25 ## Fixed @@ -44,6 +55,7 @@ - NVIDIA Hybrid laptops have issues with cursors and GDM - Added more defensive code with fallbacks - Dynamic wallpaper is now also per monitor + ## Fixed: - Disabled LayerRule for swaync @@ -129,7 +141,7 @@ - Not supported and no longer needed - Reset binding for fullscreen and maximize - `SUPER + F` is maximize - - `SHIFT + SHIFT + F` is fullscreen + - `SUPER + SHIFT + F` is fullscreen - Now works in all layouts - Enabled 12 min timer on turning off monitor - For a very long that's been disabled by default @@ -138,6 +150,7 @@ - Compliant with standard especially with `UWSM` --- + - `Hyprlock.conf` and `Hyprlock-1080.conf` were removed, re-added ## v2.3.24 diff --git a/config/hypr/animations/END-4.conf b/config/hypr/animations/END-4.conf index dbab1e02..fc3369e2 100644 --- a/config/hypr/animations/END-4.conf +++ b/config/hypr/animations/END-4.conf @@ -8,9 +8,9 @@ animations { # Animation curves bezier = linear, 0, 0, 1, 1 - bezier = md1_standard, 0.2, 0, 0, 1 - bezier = md1_decel, 0.05, 0.7, 0.1, 1 - bezier = md1_accel, 0.3, 0, 0.8, 0.15 + bezier = md3_standard, 0.2, 0, 0, 1 + bezier = md3_decel, 0.05, 0.7, 0.1, 1 + bezier = md3_accel, 0.3, 0, 0.8, 0.15 bezier = overshot, 0.05, 0.9, 0.1, 1.0 bezier = crazyshot, 0.1, 1.0, 0.76, 0.92 bezier = hyprnostretch, 0.05, 0.9, 0.1, 1.0 @@ -20,9 +20,7 @@ animations { bezier = easeOutCirc, 0, 0.55, 0.45, 1 bezier = easeOutExpo, 0.16, 1, 0.3, 1 bezier = softAcDecel, 0.26, 0.26, 0.15, 1 - bezier = md1, 0.4, 0, 0.2, 1 # use with .2s duration - bezier = md3_decel, 0.05, 0.7, 0.1, 1 - bezier = md3_accel, 0.3, 0, 0.8, 0.15 + bezier = md2, 0.4, 0, 0.2, 1 # use with .2s duration # Animation configs animation = windows, 1, 3, md3_decel, popin 60% animation = windowsIn, 1, 3, md3_decel, popin 60% diff --git a/config/hypr/animations/HYDE - optimized.conf b/config/hypr/animations/HYDE - optimized.conf index 51c1a291..911ca41b 100644 --- a/config/hypr/animations/HYDE - optimized.conf +++ b/config/hypr/animations/HYDE - optimized.conf @@ -9,9 +9,9 @@ animations { bezier = winIn, 0.07, 0.88, 0.04, 0.99 bezier = winOut, 0.20, 0.00, 0, 1 bezier = liner, 1, 1, 1, 1 - bezier = md1_standard, 0.12, 0, 0, 1 - bezier = md1_decel, 0.05, 0.80, 0.10, 0.97 - bezier = md1_accel, 0.20, 0, 0.80, 0.08 + bezier = md3_standard, 0.12, 0, 0, 1 + bezier = md3_decel, 0.05, 0.80, 0.10, 0.97 + bezier = md3_accel, 0.20, 0, 0.80, 0.08 bezier = overshot, 0.05, 0.85, 0.07, 1.00 bezier = crazyshot, 0.1, 1.00, 0.68, 0.98 bezier = hyprnostretch, 0.05, 0.82, 0.03, 0.94 diff --git a/config/hypr/animations/ML4W - fast.conf b/config/hypr/animations/ML4W - fast.conf index 4d4283cc..fd9d22d8 100644 --- a/config/hypr/animations/ML4W - fast.conf +++ b/config/hypr/animations/ML4W - fast.conf @@ -6,9 +6,9 @@ animations { enabled = true bezier = linear, 0, 0, 1, 1 - bezier = md1_standard, 0.2, 0, 0, 1 - bezier = md1_decel, 0.05, 0.7, 0.1, 1 - bezier = md1_accel, 0.3, 0, 0.8, 0.15 + bezier = md3_standard, 0.2, 0, 0, 1 + bezier = md3_decel, 0.05, 0.7, 0.1, 1 + bezier = md3_accel, 0.3, 0, 0.8, 0.15 bezier = overshot, 0.05, 0.9, 0.1, 1.0 bezier = crazyshot, 0.1, 1.0, 0.76, 0.92 bezier = hyprnostretch, 0.05, 0.9, 0.1, 1.0 diff --git a/config/hypr/animations/Mahaveer - me-1.conf b/config/hypr/animations/Mahaveer - me-1.conf index fcd26642..39b16e70 100644 --- a/config/hypr/animations/Mahaveer - me-1.conf +++ b/config/hypr/animations/Mahaveer - me-1.conf @@ -11,9 +11,9 @@ animations { bezier = winOut, 0.3, 0.0, 0, 1 bezier = liner, 1, 1, 1, 1 # bezier = linear, 0, 0, 1, 1 - bezier = md1_standard, 0.2, 0, 0, 1 - bezier = md1_decel, 0.05, 0.7, 0.1, 1 - bezier = md1_accel, 0.3, 0, 0.8, 0.15 + bezier = md3_standard, 0.2, 0, 0, 1 + bezier = md3_decel, 0.05, 0.7, 0.1, 1 + bezier = md3_accel, 0.3, 0, 0.8, 0.15 bezier = overshot, 0.05, 0.9, 0.1, 1.0 bezier = crazyshot, 0.1, 1.0, 0.76, 0.92 bezier = hyprnostretch, 0.05, 0.9, 0.1, 1.0 diff --git a/config/hypr/animations/amitpadhan.conf b/config/hypr/animations/amitpadhan.conf new file mode 100644 index 00000000..1111e764 --- /dev/null +++ b/config/hypr/animations/amitpadhan.conf @@ -0,0 +1,33 @@ +# /* ---- 💫 https://github.com/LinuxBeginnings 💫 ---- */ # +# Instpired by amitpadhan525 +# https://github.com/amitpadhan525 +# name "amitpadhan" + +animations { + enabled = yes + # Define your custom Bezier curves + # Syntax: bezier = name, x1, y1, x2, y2 + bezier = myBezier, 0.05, 0.9, 0.1, 1.0 + + # Define your animations + # Syntax: animation = name, enable, speed, curve, [style] + animation = windows, 1, 5, myBezier + animation = windowsIn, 1, 5, myBezier + animation = windowsOut, 1, 5, myBezier + animation = windowsMove, 1, 5, myBezier + animation = layers, 1, 5, myBezier + animation = layersIn, 1, 5, myBezier + animation = layersOut, 1, 5, myBezier + animation = border, 1, 10, default + animation = borderangle, 1, 8, default + animation = fade, 1, 5, default + animation = fadeLayersIn, 1, 5, myBezier + animation = fadeLayersOut, 1, 5, myBezier + animation = workspaces, 1, 5, myBezier, slidefade 20% + animation = workspacesIn, 1, 5, myBezier, slide + animation = workspacesOut, 1, 5, myBezier, slide + animation = specialWorkspace, 1, 5, myBezier, slidevert + +} + + diff --git a/config/hypr/animations/amitpadhan.lua b/config/hypr/animations/amitpadhan.lua new file mode 100644 index 00000000..3434e5ea --- /dev/null +++ b/config/hypr/animations/amitpadhan.lua @@ -0,0 +1,28 @@ +-- 💫 https://github.com/LinuxBeginnings 💫 +-- Inspired by amitpadhan525 +-- https://github.com/amitpadhan525 + +hl.config({ + animations = { + enabled = true, + }, +}) + +hl.curve("myBezier", { type = "bezier", points = { { 0.05, 0.9 }, { 0.1, 1.0 } } }) + +hl.animation({ leaf = "windows", enabled = true, speed = 5, bezier = "myBezier" }) +hl.animation({ leaf = "windowsIn", enabled = true, speed = 5, bezier = "myBezier" }) +hl.animation({ leaf = "windowsOut", enabled = true, speed = 5, bezier = "myBezier" }) +hl.animation({ leaf = "windowsMove", enabled = true, speed = 5, bezier = "myBezier" }) +hl.animation({ leaf = "layers", enabled = true, speed = 5, bezier = "myBezier" }) +hl.animation({ leaf = "layersIn", enabled = true, speed = 5, bezier = "myBezier" }) +hl.animation({ leaf = "layersOut", enabled = true, speed = 5, bezier = "myBezier" }) +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 = 5, bezier = "default" }) +hl.animation({ leaf = "fadeLayersIn", enabled = true, speed = 5, bezier = "myBezier" }) +hl.animation({ leaf = "fadeLayersOut", enabled = true, speed = 5, bezier = "myBezier" }) +hl.animation({ leaf = "workspaces", enabled = true, speed = 5, bezier = "myBezier", style = "slidefade 20%" }) +hl.animation({ leaf = "workspacesIn", enabled = true, speed = 5, bezier = "myBezier", style = "slide" }) +hl.animation({ leaf = "workspacesOut", enabled = true, speed = 5, bezier = "myBezier", style = "slide" }) +hl.animation({ leaf = "specialWorkspace", enabled = true, speed = 5, bezier = "myBezier", style = "slidevert" }) diff --git a/config/hypr/configs/ENVariables.conf b/config/hypr/configs/ENVariables.conf index e8a51555..45b9e5d5 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.25 +env = DOTS_VERSION,2.3.26 ### Toolkit Backend Variables ### env = GDK_BACKEND,wayland,x11,* diff --git a/config/hypr/lua/env.lua b/config/hypr/lua/env.lua index cc248c20..59183a36 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.25") +hl.env("DOTS_VERSION", "2.3.26") hl.env("GDK_BACKEND", "wayland,x11,*") hl.env("QT_QPA_PLATFORM", "wayland;xcb") hl.env("CLUTTER_BACKEND", "wayland") diff --git a/config/hypr/v2.3.25 b/config/hypr/v2.3.25 deleted file mode 100644 index e69de29b..00000000 diff --git a/config/hypr/v2.3.26 b/config/hypr/v2.3.26 new file mode 100644 index 00000000..e69de29b -- cgit v1.2.3 From 4345be2a7477ad487a20041eb1e210684e54bba9 Mon Sep 17 00:00:00 2001 From: Don Williams Date: Fri, 3 Jul 2026 08:47:50 -0400 Subject: Reset versions back to 2.3.25 Signed-off-by: Don Williams Commited dev to fix animations but forgot versions updated in dev branch resetting back to 2.3.25 On branch main Your branch is up to date with 'origin/main'. Changes to be committed: modified: configs/ENVariables.conf modified: lua/env.lua renamed: v2.3.26 -> v2.3.25 --- config/hypr/configs/ENVariables.conf | 2 +- config/hypr/lua/env.lua | 2 +- config/hypr/v2.3.25 | 0 config/hypr/v2.3.26 | 0 4 files changed, 2 insertions(+), 2 deletions(-) create mode 100644 config/hypr/v2.3.25 delete mode 100644 config/hypr/v2.3.26 diff --git a/config/hypr/configs/ENVariables.conf b/config/hypr/configs/ENVariables.conf index 45b9e5d5..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.26 +env = DOTS_VERSION,2.3.25 ### Toolkit Backend Variables ### env = GDK_BACKEND,wayland,x11,* diff --git a/config/hypr/lua/env.lua b/config/hypr/lua/env.lua index 59183a36..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.26") +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") diff --git a/config/hypr/v2.3.25 b/config/hypr/v2.3.25 new file mode 100644 index 00000000..e69de29b diff --git a/config/hypr/v2.3.26 b/config/hypr/v2.3.26 deleted file mode 100644 index e69de29b..00000000 -- cgit v1.2.3 From 68ce8ed12911b6c9b606c73464396c39ffba2499 Mon Sep 17 00:00:00 2001 From: Don Williams Date: Sat, 4 Jul 2026 16:24:36 -0400 Subject: Dropped shadow range to two (2) Signed-off-by: Don Williams On branch main Your branch is up to date with 'origin/main'. Changes to be committed: modified: CHANGELOG.md modified: config/hypr/UserConfigs/UserDecorations.conf modified: config/hypr/UserConfigs/user_decorations.lua --- CHANGELOG.md | 4 ++++ config/hypr/UserConfigs/UserDecorations.conf | 2 +- config/hypr/UserConfigs/user_decorations.lua | 2 +- 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 8481a0dc..6ba753ea 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -11,6 +11,10 @@ ## Changed: +- `shadow range` changed to `2` from `3` + +--- + ## v2.3.25 ## Fixed diff --git a/config/hypr/UserConfigs/UserDecorations.conf b/config/hypr/UserConfigs/UserDecorations.conf index e7e30651..bef67138 100644 --- a/config/hypr/UserConfigs/UserDecorations.conf +++ b/config/hypr/UserConfigs/UserDecorations.conf @@ -35,7 +35,7 @@ decoration { shadow { enabled = true - range = 3 + range = 1 render_power = 1 color = $color12 diff --git a/config/hypr/UserConfigs/user_decorations.lua b/config/hypr/UserConfigs/user_decorations.lua index ba425d92..6d2bab7a 100644 --- a/config/hypr/UserConfigs/user_decorations.lua +++ b/config/hypr/UserConfigs/user_decorations.lua @@ -31,7 +31,7 @@ -- dim_special = 0.8, -- shadow = { -- enabled = true, --- range = 3, +-- range = 2, -- render_power = 1, -- color = "rgba(8db4ffff)", -- color_inactive = "rgba(5f6578ff)", -- cgit v1.2.3 From bca86bbec4757cec1f6f5bdea2ed210542f10fae Mon Sep 17 00:00:00 2001 From: Yerik Date: Mon, 6 Jul 2026 15:21:38 -0300 Subject: fix: update fake fullscreen binding on hint menu (#87) Updating HINTS menu --- config/hypr/scripts/KeyHints.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/hypr/scripts/KeyHints.sh b/config/hypr/scripts/KeyHints.sh index 6ae8c4b5..08415dab 100755 --- a/config/hypr/scripts/KeyHints.sh +++ b/config/hypr/scripts/KeyHints.sh @@ -61,7 +61,7 @@ GDK_BACKEND=$BACKEND yad \ "CTRL ALT L" "screen lock" "(hyprlock)" \ "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" \ + " F" "Fake Fullscreen" "Toggles to fake full screen" \ " 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" \ -- cgit v1.2.3