diff options
Diffstat (limited to 'config')
199 files changed, 10776 insertions, 5205 deletions
diff --git a/config/hypr/UserConfigs/user_animations.lua b/config/hypr/UserConfigs/user_animations.lua new file mode 100644 index 00000000..5c5bb484 --- /dev/null +++ b/config/hypr/UserConfigs/user_animations.lua @@ -0,0 +1,17 @@ +-- ================================================== +-- KoolDots (2026) +-- Project URL: https://github.com/LinuxBeginnings +-- License: GNU GPLv3 +-- SPDX-License-Identifier: GPL-3.0-or-later +-- ================================================== +-- User animation overrides template. +-- Use this to override defaults from lua/animations.lua. + +-- Example: +-- hl.config({ +-- animations = { +-- enabled = true, +-- }, +-- }) +-- +-- hl.animation({ leaf = "windows", enabled = true, speed = 5, bezier = "wind", style = "slide" }) diff --git a/config/hypr/UserConfigs/user_decorations.lua b/config/hypr/UserConfigs/user_decorations.lua index 6b34666e..ba425d92 100644 --- a/config/hypr/UserConfigs/user_decorations.lua +++ b/config/hypr/UserConfigs/user_decorations.lua @@ -4,103 +4,61 @@ -- License: GNU GPLv3 -- SPDX-License-Identifier: GPL-3.0-or-later -- ================================================== +-- User decorations overrides template. +-- Keep this repo copy as comments only; put active custom values in: +-- ~/.config/hypr/UserConfigs/user_decorations.lua +-- +-- Uncomment and edit examples below if you want defaults in the repo template. --- User decorations overrides (auto-generated). --- This file is intentionally split from other user overrides. --- Add only user-specific Lua overrides here. --- Example: --- hl.config({ general = { gaps_in = 4, gaps_out = 8 } }) +-- Example general overrides: +-- hl.config({ +-- general = { +-- border_size = 1, +-- gaps_in = 4, +-- gaps_out = 6, +-- }, +-- }) --- Source reference from UserDecorations.conf (hyprlang): --- source = $HOME/.config/hypr/wallust/wallust-hyprland.conf --- general { --- border_size = 2 --- gaps_in = 2 --- gaps_out = 4 --- col.active_border = $color12 --- col.inactive_border = $color10 --- } --- decoration { --- rounding = 10 --- active_opacity = 1.0 --- inactive_opacity = 0.9 --- fullscreen_opacity = 1.0 --- dim_inactive = true --- dim_strength = 0.1 --- dim_special = 0.8 --- shadow { --- enabled = true --- range = 3 --- render_power = 1 --- color = $color12 --- color_inactive = $color10 --- } --- blur { --- enabled = true --- size = 6 --- passes = 3 --- new_optimizations = true --- xray = true --- ignore_opacity = true --- special = true --- popups = true --- } --- } --- group { --- col.border_active = $color15 --- groupbar { --- col.active = $color0 --- } --- } +-- Example decoration overrides: +-- hl.config({ +-- decoration = { +-- rounding = 10, +-- active_opacity = 1.0, +-- inactive_opacity = 0.95, +-- fullscreen_opacity = 1.0, +-- dim_inactive = true, +-- dim_strength = 0.1, +-- dim_special = 0.8, +-- shadow = { +-- enabled = true, +-- range = 3, +-- render_power = 1, +-- color = "rgba(8db4ffff)", +-- color_inactive = "rgba(5f6578ff)", +-- }, +-- blur = { +-- enabled = true, +-- size = 6, +-- passes = 3, +-- new_optimizations = true, +-- xray = true, +-- ignore_opacity = true, +-- special = true, +-- popups = true, +-- }, +-- }, +-- }) -local function read_wallust_colors(path) - local colors = {} - local handle = io.open(path, "r") - if not handle then - return colors - end - for line in handle:lines() do - local key, hex = line:match("^%$([%w_]+)%s*=%s*rgb%(([0-9A-Fa-f]+)%)") - if key and hex then - colors[key] = "rgb(" .. hex .. ")" - end - end - handle:close() - return colors -end - -local wallust_path = (os.getenv("HOME") or "") .. "/.config/hypr/wallust/wallust-hyprland.conf" -local colors = read_wallust_colors(wallust_path) - -if next(colors) then - hl.config({ - general = { - col = { - active_border = colors.color12 or "rgba(8db4ffff)", - inactive_border = colors.color10 or "rgba(5f6578ff)", - }, - }, - }) - - hl.config({ - decoration = { - shadow = { - color = colors.color12 or "rgba(8db4ffff)", - color_inactive = colors.color10 or "rgba(5f6578ff)", - }, - }, - }) - - hl.config({ - group = { - col = { - border_active = colors.color15 or "rgba(ffffffff)", - }, - groupbar = { - col = { - active = colors.color0 or "rgba(0f111aff)", - }, - }, - }, - }) -end +-- Example group styling: +-- hl.config({ +-- group = { +-- col = { +-- border_active = "rgba(ffffffff)", +-- }, +-- groupbar = { +-- col = { +-- active = "rgba(0f111aff)", +-- }, +-- }, +-- }, +-- }) diff --git a/config/hypr/UserConfigs/user_defaults.lua b/config/hypr/UserConfigs/user_defaults.lua new file mode 100644 index 00000000..dd889134 --- /dev/null +++ b/config/hypr/UserConfigs/user_defaults.lua @@ -0,0 +1,17 @@ +-- ================================================== +-- KoolDots (2026) +-- Project URL: https://github.com/LinuxBeginnings +-- License: GNU GPLv3 +-- SPDX-License-Identifier: GPL-3.0-or-later +-- ================================================== +-- User defaults overrides template. +-- This file is sourced by lua/user_defaults.lua. + +KOOLDOTS_DEFAULTS = KOOLDOTS_DEFAULTS or {} + +-- Examples: +-- KOOLDOTS_DEFAULTS.edit = "nvim" +-- KOOLDOTS_DEFAULTS.visual = "nvim" +-- KOOLDOTS_DEFAULTS.term = "kitty" +-- KOOLDOTS_DEFAULTS.files = "thunar" +-- KOOLDOTS_DEFAULTS.search_engine = "https://duckduckgo.com/?q={}" diff --git a/config/hypr/UserConfigs/user_env.lua b/config/hypr/UserConfigs/user_env.lua new file mode 100644 index 00000000..12d134bb --- /dev/null +++ b/config/hypr/UserConfigs/user_env.lua @@ -0,0 +1,13 @@ +-- ================================================== +-- KoolDots (2026) +-- Project URL: https://github.com/LinuxBeginnings +-- License: GNU GPLv3 +-- SPDX-License-Identifier: GPL-3.0-or-later +-- ================================================== +-- User environment overrides template. +-- Keep this file for personal env additions that should survive updates. + +-- Examples: +-- hl.env("QT_QPA_PLATFORMTHEME", "qt6ct") +-- hl.env("GDK_SCALE", "1") +-- hl.env("QT_SCALE_FACTOR", "1") diff --git a/config/hypr/UserConfigs/user_laptops.lua b/config/hypr/UserConfigs/user_laptops.lua new file mode 100644 index 00000000..ac3c7f8c --- /dev/null +++ b/config/hypr/UserConfigs/user_laptops.lua @@ -0,0 +1,12 @@ +-- ================================================== +-- KoolDots (2026) +-- Project URL: https://github.com/LinuxBeginnings +-- License: GNU GPLv3 +-- SPDX-License-Identifier: GPL-3.0-or-later +-- ================================================== +-- User laptop overrides template. +-- Add lid/display behavior here if you need laptop-specific logic. + +-- Examples: +-- hl.monitor({ output = "eDP-1", mode = "preferred", position = "auto", scale = "1" }) +-- hl.monitor({ output = "eDP-1", disabled = true }) diff --git a/config/hypr/UserConfigs/user_layer_rules.lua b/config/hypr/UserConfigs/user_layer_rules.lua new file mode 100644 index 00000000..ab1cbeef --- /dev/null +++ b/config/hypr/UserConfigs/user_layer_rules.lua @@ -0,0 +1,50 @@ +-- ================================================== +-- KoolDots (2026) +-- Project URL: https://github.com/LinuxBeginnings +-- License: GNU GPLv3 +-- SPDX-License-Identifier: GPL-3.0-or-later +-- ================================================== +-- User layer-rule overrides template. + +local user_layer_rules_helper = nil +do + local source = (debug.getinfo(1, "S") or {}).source or "" + local source_path = source:match("^@(.+)$") + local source_dir = source_path and source_path:match("^(.*)/[^/]+$") or nil + local home = os.getenv("HOME") or "" + local candidate_paths = { + source_dir and (source_dir .. "/../lua/user_layer_rules_helper.lua") or nil, + home ~= "" and (home .. "/.config/hypr/lua/user_layer_rules_helper.lua") or nil, + home ~= "" and (home .. "/.config/hypr/user_layer_rules_helper.lua") or nil, + } + + local tried_paths = {} + for _, helper_path in ipairs(candidate_paths) do + if helper_path then + table.insert(tried_paths, helper_path) + local f = io.open(helper_path, "r") + if f then + f:close() + local loaded_ok, loaded_helpers = pcall(dofile, helper_path) + if loaded_ok and type(loaded_helpers) == "table" and loaded_helpers.apply_layer_rule then + user_layer_rules_helper = loaded_helpers + break + end + end + end + end + + if not user_layer_rules_helper then + error("Failed to load user_layer_rules_helper.lua from: " .. table.concat(tried_paths, ", ")) + end +end + +local apply_layer_rule = user_layer_rules_helper.apply_layer_rule + +-- Example: +-- apply_layer_rule({ +-- name = "user-rofi-blur", +-- match = { namespace = "rofi" }, +-- blur = true, +-- ignore_alpha = 0, +-- }) diff --git a/config/hypr/UserConfigs/user_settings.lua b/config/hypr/UserConfigs/user_settings.lua new file mode 100644 index 00000000..ea31c0eb --- /dev/null +++ b/config/hypr/UserConfigs/user_settings.lua @@ -0,0 +1,27 @@ +-- ================================================== +-- KoolDots (2026) +-- Project URL: https://github.com/LinuxBeginnings +-- License: GNU GPLv3 +-- SPDX-License-Identifier: GPL-3.0-or-later +-- ================================================== +-- User settings overrides template. +-- Add your personal hl.config(...) values here. + +-- Example: +-- hl.config({ +-- general = { +-- gaps_in = 4, +-- gaps_out = 8, +-- border_size = 1, +-- }, +-- }) +-- + +-- Disable cursor being centered when swap workspaces +-- +-- hl.config({ +-- cursor = { +-- no_warps = true, +-- warp_on_change_workspace = 0, +-- }, +-- }) diff --git a/config/hypr/UserConfigs/user_startup.lua b/config/hypr/UserConfigs/user_startup.lua new file mode 100644 index 00000000..efe51c61 --- /dev/null +++ b/config/hypr/UserConfigs/user_startup.lua @@ -0,0 +1,47 @@ +-- ================================================== +-- KoolDots (2026) +-- Project URL: https://github.com/LinuxBeginnings +-- License: GNU GPLv3 +-- SPDX-License-Identifier: GPL-3.0-or-later +-- ================================================== +-- User startup overrides template. +-- Add personal exec-once commands here. + +local user_startup_helper = nil +do + local source = (debug.getinfo(1, "S") or {}).source or "" + local source_path = source:match("^@(.+)$") + local source_dir = source_path and source_path:match("^(.*)/[^/]+$") or nil + local home = os.getenv("HOME") or "" + local candidate_paths = { + source_dir and (source_dir .. "/../lua/user_startup_helper.lua") or nil, + home ~= "" and (home .. "/.config/hypr/lua/user_startup_helper.lua") or nil, + home ~= "" and (home .. "/.config/hypr/user_startup_helper.lua") or nil, + } + + local tried_paths = {} + for _, helper_path in ipairs(candidate_paths) do + if helper_path then + table.insert(tried_paths, helper_path) + local f = io.open(helper_path, "r") + if f then + f:close() + local loaded_ok, loaded_helpers = pcall(dofile, helper_path) + if loaded_ok and type(loaded_helpers) == "table" and loaded_helpers.exec_once then + user_startup_helper = loaded_helpers + break + end + end + end + end + + if not user_startup_helper then + error("Failed to load user_startup_helper.lua from: " .. table.concat(tried_paths, ", ")) + end +end + +local exec_once = user_startup_helper.exec_once + +-- Examples: +-- exec_once("blueman-applet") +-- exec_once("$HOME/.config/hypr/UserScripts/RainbowBorders.sh") diff --git a/config/hypr/UserConfigs/user_window_rules.lua b/config/hypr/UserConfigs/user_window_rules.lua new file mode 100644 index 00000000..5df5dc7c --- /dev/null +++ b/config/hypr/UserConfigs/user_window_rules.lua @@ -0,0 +1,50 @@ +-- ================================================== +-- KoolDots (2026) +-- Project URL: https://github.com/LinuxBeginnings +-- License: GNU GPLv3 +-- SPDX-License-Identifier: GPL-3.0-or-later +-- ================================================== +-- User window-rule overrides template. + +local user_window_rules_helper = nil +do + local source = (debug.getinfo(1, "S") or {}).source or "" + local source_path = source:match("^@(.+)$") + local source_dir = source_path and source_path:match("^(.*)/[^/]+$") or nil + local home = os.getenv("HOME") or "" + local candidate_paths = { + source_dir and (source_dir .. "/../lua/user_window_rules_helper.lua") or nil, + home ~= "" and (home .. "/.config/hypr/lua/user_window_rules_helper.lua") or nil, + home ~= "" and (home .. "/.config/hypr/user_window_rules_helper.lua") or nil, + } + + local tried_paths = {} + for _, helper_path in ipairs(candidate_paths) do + if helper_path then + table.insert(tried_paths, helper_path) + local f = io.open(helper_path, "r") + if f then + f:close() + local loaded_ok, loaded_helpers = pcall(dofile, helper_path) + if loaded_ok and type(loaded_helpers) == "table" and loaded_helpers.apply_window_rule then + user_window_rules_helper = loaded_helpers + break + end + end + end + end + + if not user_window_rules_helper then + error("Failed to load user_window_rules_helper.lua from: " .. table.concat(tried_paths, ", ")) + end +end + +local apply_window_rule = user_window_rules_helper.apply_window_rule + +-- Example: +-- apply_window_rule({ +-- name = "user-float-pavucontrol", +-- match = { class = "pavucontrol" }, +-- float = true, +-- center = true, +-- }) diff --git a/config/hypr/UserScripts/00-Readme b/config/hypr/UserScripts/00-Readme index 259fc9d9..2b72982e 100755 --- a/config/hypr/UserScripts/00-Readme +++ b/config/hypr/UserScripts/00-Readme @@ -6,5 +6,5 @@ # ================================================== # Place your new scripts here. -# If you need to edit a script from main script (~/.config/hypr/scripts), copy it on this directory, and edit. -# Make sure to update as well the keybinds in ~/.config/hypr/UserConfigs directory if any script is linked to it
\ No newline at end of file +# If you need to edit a script from main script (${XDG_CONFIG_HOME:-$HOME/.config}/hypr/scripts), copy it on this directory, and edit. +# Make sure to update as well the keybinds in ${XDG_CONFIG_HOME:-$HOME/.config}/hypr/UserConfigs directory if any script is linked to it
\ No newline at end of file diff --git a/config/hypr/UserScripts/RainbowBorders-low-cpu.sh b/config/hypr/UserScripts/RainbowBorders-low-cpu.sh index a8de4c89..af6e378a 100755 --- a/config/hypr/UserScripts/RainbowBorders-low-cpu.sh +++ b/config/hypr/UserScripts/RainbowBorders-low-cpu.sh @@ -38,7 +38,7 @@ # RB_ONCE 1 to apply once and exit (no animation; default: 0) # # Example (slower animation): -# RB_INTERVAL=1.5 RB_STEP_DEG=12 ~/.config/hypr/UserScripts/RainbowBorders-low-cpu.sh & +# RB_INTERVAL=1.5 RB_STEP_DEG=12 ${XDG_CONFIG_HOME:-$HOME/.config}/hypr/UserScripts/RainbowBorders-low-cpu.sh & # # Notes # - This focuses on the active border only. Animating inactive borders too diff --git a/config/hypr/UserScripts/RainbowBorders.bak.sh b/config/hypr/UserScripts/RainbowBorders.bak.sh index 87f13c34..7a9c7171 100755 --- a/config/hypr/UserScripts/RainbowBorders.bak.sh +++ b/config/hypr/UserScripts/RainbowBorders.bak.sh @@ -10,7 +10,7 @@ # Possible values: "wallust_random", "rainbow", "gradient_flow" EFFECT_TYPE="gradient_flow" -WALLUST_COLORS_SOURCE="$HOME/.config/hypr/wallust/wallust-hyprland.conf" +WALLUST_COLORS_SOURCE="${XDG_CONFIG_HOME:-$HOME/.config}/hypr/wallust/wallust-hyprland.conf" WALLUST_COLORS=() diff --git a/config/hypr/UserScripts/RofiBeats.sh b/config/hypr/UserScripts/RofiBeats.sh index 057d53b9..b2371859 100755 --- a/config/hypr/UserScripts/RofiBeats.sh +++ b/config/hypr/UserScripts/RofiBeats.sh @@ -8,10 +8,10 @@ # RofiBeats - unified, dynamic UI (add, remove, manage, play) mDIR="$HOME/Music/" -iDIR="$HOME/.config/swaync/icons" -rofi_theme="$HOME/.config/rofi/config-rofi-Beats.rasi" -rofi_theme_menu="$HOME/.config/rofi/config-rofi-Beats-menu.rasi" -music_list="$HOME/.config/rofi/online_music.list" +iDIR="${XDG_CONFIG_HOME:-$HOME/.config}/swaync/icons" +rofi_theme="${XDG_CONFIG_HOME:-$HOME/.config}/rofi/config-rofi-Beats.rasi" +rofi_theme_menu="${XDG_CONFIG_HOME:-$HOME/.config}/rofi/config-rofi-Beats-menu.rasi" +music_list="${XDG_CONFIG_HOME:-$HOME/.config}/rofi/online_music.list" mkdir -p "$(dirname "$music_list")" [[ -f "$music_list" ]] || touch "$music_list" diff --git a/config/hypr/UserScripts/RofiCalc.sh b/config/hypr/UserScripts/RofiCalc.sh index 40a7ca3f..ccb18903 100755 --- a/config/hypr/UserScripts/RofiCalc.sh +++ b/config/hypr/UserScripts/RofiCalc.sh @@ -8,7 +8,7 @@ # /* Calculator (using qalculate) and rofi */ # /* Submitted by: https://github.com/JosephArmas */ -rofi_theme="$HOME/.config/rofi/config-calc.rasi" +rofi_theme="${XDG_CONFIG_HOME:-$HOME/.config}/rofi/config-calc.rasi" # Kill Rofi if already running before execution if pgrep -x "rofi" >/dev/null; then diff --git a/config/hypr/UserScripts/Tak0-Autodispatch.sh b/config/hypr/UserScripts/Tak0-Autodispatch.sh deleted file mode 100755 index b0607e13..00000000 --- a/config/hypr/UserScripts/Tak0-Autodispatch.sh +++ /dev/null @@ -1,68 +0,0 @@ -#!/usr/bin/env bash -# ================================================== -# KoolDots (2026) -# Project URL: https://github.com/LinuxBeginnings -# License: GNU GPLv3 -# SPDX-License-Identifier: GPL-3.0-or-later -# ================================================== -# USAGE: -# 1) Run from terminal: -# ./dispatch.sh <application_command> <target_workspace_number> -# Example: -# ./dispatch.sh discord 2 -# -# 2) Call from Hyprland config (in hyprland.conf file): -# exec-once = /path/to/dispatch.sh <application_command> <target_workspace_number> -# -# Logs are saved in dispatch.log file next to the script. -# If the window doesn't appear or is dispatched incorrectly — info will be there. -# -# Notes: -# - Script waits about ~9 seconds (30 iterations of 0.3 sec) for window to appear. -# - Uses hyprctl and jq, so these tools must be installed. - -LOGFILE="$(dirname "$0")/dispatch.log" -# Log file path located next to the script. - -APP=$1 -# The application command or window class to launch or match. - -TARGET_WORKSPACE=$2 -# The target workspace number where the window should be moved. - -# Check if required arguments are provided. -if [[ -z "$APP" || -z "$TARGET_WORKSPACE" ]]; then - echo "Usage: $0 <application_command> <target_workspace_number>" >>"$LOGFILE" 2>&1 - exit 1 -fi - -echo "Starting dispatch of '$APP' to workspace $TARGET_WORKSPACE at $(date)" >>"$LOGFILE" -# Starting the dispatch process and logging the event. -# Avoid early workspace focus issues by switching workspace first. -hyprctl dispatch workspace "$TARGET_WORKSPACE" >>"$LOGFILE" 2>&1 -sleep 0.4 - -# Launch the application in the background and disown it. -$APP & -disown -pid=$! - -echo "Launched '$APP' with PID $pid" >>"$LOGFILE" -# Log the launched process ID. -# Wait for the application window to appear (matching window class). -for i in {1..30}; do - win=$(hyprctl clients -j | jq -r --arg APP "$APP" ' - .[] | select(.class | test($APP;"i")) | .address' 2>>"$LOGFILE") - - if [[ -n "$win" ]]; then - echo "Found window $win for app '$APP', moving to workspace $TARGET_WORKSPACE" >>"$LOGFILE" - # Move the window to the target workspace. - hyprctl dispatch movetoworkspace "$TARGET_WORKSPACE,address:$win" >>"$LOGFILE" 2>&1 - exit 0 - fi - sleep 0.3 -done - -echo "ERROR: Window for '$APP' was NOT found or dispatched properly to workspace $TARGET_WORKSPACE at $(date)" >>"$LOGFILE" -# Log error if window was not found or dispatched correctly. -exit 1 diff --git a/config/hypr/UserScripts/WallpaperEffects.sh b/config/hypr/UserScripts/WallpaperEffects.sh deleted file mode 100755 index 297c77fa..00000000 --- a/config/hypr/UserScripts/WallpaperEffects.sh +++ /dev/null @@ -1,124 +0,0 @@ -#!/usr/bin/env bash -# ================================================== -# KoolDots (2026) -# Project URL: https://github.com/LinuxBeginnings -# License: GNU GPLv3 -# SPDX-License-Identifier: GPL-3.0-or-later -# ================================================== -# Wallpaper Effects using ImageMagick (SUPER SHIFT W) - -# Variables -terminal=kitty -wallpaper_current="$HOME/.config/hypr/wallpaper_effects/.wallpaper_current" -wallpaper_output="$HOME/.config/hypr/wallpaper_effects/.wallpaper_modified" -SCRIPTSDIR="$HOME/.config/hypr/scripts" -# shellcheck source=/dev/null -. "$SCRIPTSDIR/WallpaperCmd.sh" -focused_monitor=$(hyprctl monitors -j | jq -r '.[] | select(.focused) | .name') -rofi_theme="$HOME/.config/rofi/config-wallpaper-effect.rasi" - -# Directory for swaync -iDIR="$HOME/.config/swaync/images" -iDIRi="$HOME/.config/swaync/icons" - -# swww/awww transition config -FPS=60 -TYPE="wipe" -DURATION=2 -BEZIER=".43,1.19,1,.4" -if [[ "$WWW_CMD" == "swww" || "$WWW_CMD" == "awww" ]]; then - SWWW_PARAMS=(--transition-fps "$FPS" --transition-type "$TYPE" --transition-duration "$DURATION" --transition-bezier "$BEZIER") -else - SWWW_PARAMS=() -fi - -# Define ImageMagick effects -declare -A effects=( - ["No Effects"]="no-effects" - ["Black & White"]="magick $wallpaper_current -colorspace gray -sigmoidal-contrast 10,40% $wallpaper_output" - ["Blurred"]="magick $wallpaper_current -blur 0x10 $wallpaper_output" - ["Charcoal"]="magick $wallpaper_current -charcoal 0x5 $wallpaper_output" - ["Edge Detect"]="magick $wallpaper_current -edge 1 $wallpaper_output" - ["Emboss"]="magick $wallpaper_current -emboss 0x5 $wallpaper_output" - ["Frame Raised"]="magick $wallpaper_current +raise 150 $wallpaper_output" - ["Frame Sunk"]="magick $wallpaper_current -raise 150 $wallpaper_output" - ["Negate"]="magick $wallpaper_current -negate $wallpaper_output" - ["Oil Paint"]="magick $wallpaper_current -paint 4 $wallpaper_output" - ["Posterize"]="magick $wallpaper_current -posterize 4 $wallpaper_output" - ["Polaroid"]="magick $wallpaper_current -polaroid 0 $wallpaper_output" - ["Sepia Tone"]="magick $wallpaper_current -sepia-tone 65% $wallpaper_output" - ["Solarize"]="magick $wallpaper_current -solarize 80% $wallpaper_output" - ["Sharpen"]="magick $wallpaper_current -sharpen 0x5 $wallpaper_output" - ["Vignette"]="magick $wallpaper_current -vignette 0x3 $wallpaper_output" - ["Vignette-black"]="magick $wallpaper_current -background black -vignette 0x3 $wallpaper_output" - ["Zoomed"]="magick $wallpaper_current -gravity Center -extent 1:1 $wallpaper_output" -) - -# Function to apply no effects -no-effects() { - local resize_mode - resize_mode="$(wallpaper_resize_mode "$wallpaper_current" "$focused_monitor")" - "$WWW_CMD" img -o "$focused_monitor" --resize "$resize_mode" "$wallpaper_current" "${SWWW_PARAMS[@]}" || return 1 - if ! "$SCRIPTSDIR/WallustSwww.sh" "$wallpaper_current"; then - notify-send -u critical -i "$iDIR/error.png" "Wallust failed" "Wallpaper theme not refreshed" - return 1 - fi - # Refresh rofi, waybar, wallust palettes - sleep 0.5 - "$SCRIPTSDIR/Refresh.sh" - - notify-send -u low -i "$iDIR/ja.png" "No wallpaper" "effects applied" - # copying wallpaper for rofi menu - cp "$wallpaper_current" "$wallpaper_output" -} - -# Function to run rofi menu -main() { - # Populate rofi menu options - options=("No Effects") - for effect in "${!effects[@]}"; do - [[ "$effect" != "No Effects" ]] && options+=("$effect") - done - - choice=$(printf "%s\n" "${options[@]}" | LC_COLLATE=C sort | rofi -dmenu -i -config $rofi_theme) - - # Process user choice - if [[ -n "$choice" ]]; then - if [[ "$choice" == "No Effects" ]]; then - no-effects - elif [[ "${effects[$choice]+exists}" ]]; then - # Apply selected effect - notify-send -u normal -i "$iDIR/ja.png" "Applying:" "$choice effects" - eval "${effects[$choice]}" - - # intial kill process - for pid in swaybg mpvpaper; do - killall -SIGUSR1 "$pid" - done - - sleep 1 - local resize_mode - resize_mode="$(wallpaper_resize_mode "$wallpaper_output" "$focused_monitor")" - "$WWW_CMD" img -o "$focused_monitor" --resize "$resize_mode" "$wallpaper_output" "${SWWW_PARAMS[@]}" - sleep 0.5 - if ! "$SCRIPTSDIR/WallustSwww.sh" "$wallpaper_output"; then - notify-send -u critical -i "$iDIR/error.png" "Wallust failed" "Wallpaper theme not refreshed" - return 1 - fi - # Refresh rofi, waybar, wallust palettes - "${SCRIPTSDIR}/Refresh.sh" - notify-send -u low -i "$iDIR/ja.png" "$choice" "effects applied" - else - echo "Effect '$choice' not recognized." - fi - fi -} - -# Check if rofi is already running and kill it -if pidof rofi > /dev/null; then - pkill rofi -fi - -main - -sleep 1 diff --git a/config/hypr/UserScripts/Weather.py b/config/hypr/UserScripts/Weather.py index 6905e0e1..cf50076f 100755 --- a/config/hypr/UserScripts/Weather.py +++ b/config/hypr/UserScripts/Weather.py @@ -49,7 +49,7 @@ class WeatherData: # Examples (zsh): # # One-off run # # WEATHER_UNITS can be "metric" or "imperial" -# WEATHER_UNITS=imperial WEATHER_PLACE="Concord, NH" python3 ~/.config/hypr/UserScripts/Weather.py +# WEATHER_UNITS=imperial WEATHER_PLACE="Concord, NH" python3 ${XDG_CONFIG_HOME:-$HOME/.config}/hypr/UserScripts/Weather.py # # # Persist in current shell session # export WEATHER_UNITS=imperial diff --git a/config/hypr/animations/00-default.lua b/config/hypr/animations/00-default.lua new file mode 100644 index 00000000..ee629c96 --- /dev/null +++ b/config/hypr/animations/00-default.lua @@ -0,0 +1,26 @@ +-- Auto-generated from 00-default.conf + +hl.config({ + animations = { + enabled = true, + }, +}) + +hl.curve("wind", { type = "bezier", points = { { 0.05, 0.9 }, { 0.1, 1.05 } } }) +hl.curve("winIn", { type = "bezier", points = { { 0.1, 1.1 }, { 0.1, 1.1 } } }) +hl.curve("winOut", { type = "bezier", points = { { 0.3, -0.3 }, { 0, 1 } } }) +hl.curve("liner", { type = "bezier", points = { { 1, 1 }, { 1, 1 } } }) +hl.curve("overshot", { type = "bezier", points = { { 0.05, 0.9 }, { 0.1, 1.05 } } }) +hl.curve("smoothOut", { type = "bezier", points = { { 0.5, 0 }, { 0.99, 0.99 } } }) +hl.curve("smoothIn", { type = "bezier", points = { { 0.5, -0.5 }, { 0.68, 1.5 } } }) + +hl.animation({ leaf = "windows", enabled = true, speed = 6, bezier = "wind", style = "slide" }) +hl.animation({ leaf = "windowsIn", enabled = true, speed = 5, bezier = "winIn", style = "slide" }) +hl.animation({ leaf = "windowsOut", enabled = true, speed = 3, bezier = "smoothOut", style = "slide" }) +hl.animation({ leaf = "windowsMove", enabled = true, speed = 5, bezier = "wind", style = "slide" }) +hl.animation({ leaf = "border", enabled = true, speed = 1, bezier = "liner" }) +hl.animation({ leaf = "borderangle", enabled = true, speed = 180, bezier = "liner", style = "loop" }) +hl.animation({ leaf = "fade", enabled = true, speed = 3, bezier = "smoothOut" }) +hl.animation({ leaf = "workspaces", enabled = true, speed = 5, bezier = "overshot" }) +hl.animation({ leaf = "workspacesIn", enabled = true, speed = 5, bezier = "winIn", style = "slide" }) +hl.animation({ leaf = "workspacesOut", enabled = true, speed = 5, bezier = "winOut", style = "slide" }) diff --git a/config/hypr/animations/01-default - v2.lua b/config/hypr/animations/01-default - v2.lua new file mode 100644 index 00000000..1de8fab5 --- /dev/null +++ b/config/hypr/animations/01-default - v2.lua @@ -0,0 +1,27 @@ +-- Auto-generated from 01-default - v2.conf + +hl.config({ + animations = { + enabled = true, + }, +}) + +hl.curve("myBezier", { type = "bezier", points = { { 0.05, 0.9 }, { 0.1, 1.05 } } }) +hl.curve("linear", { type = "bezier", points = { { 0.0, 0.0 }, { 1.0, 1.0 } } }) +hl.curve("wind", { type = "bezier", points = { { 0.05, 0.9 }, { 0.1, 1.05 } } }) +hl.curve("winIn", { type = "bezier", points = { { 0.1, 1.1 }, { 0.1, 1.1 } } }) +hl.curve("winOut", { type = "bezier", points = { { 0.3, -0.3 }, { 0, 1 } } }) +hl.curve("slow", { type = "bezier", points = { { 0, 0.85 }, { 0.3, 1 } } }) +hl.curve("overshot", { type = "bezier", points = { { 0.7, 0.6 }, { 0.1, 1.1 } } }) +hl.curve("bounce", { type = "bezier", points = { { 1.1, 1.6 }, { 0.1, 0.85 } } }) +hl.curve("sligshot", { type = "bezier", points = { { 1, -1 }, { 0.15, 1.25 } } }) +hl.curve("nice", { type = "bezier", points = { { 0, 6.9 }, { 0.5, -4.20 } } }) + +hl.animation({ leaf = "windowsIn", enabled = true, speed = 5, bezier = "slow", style = "popin" }) +hl.animation({ leaf = "windowsOut", enabled = true, speed = 5, bezier = "winOut", style = "popin" }) +hl.animation({ leaf = "windowsMove", enabled = true, speed = 5, bezier = "wind", style = "slide" }) +hl.animation({ leaf = "border", enabled = true, speed = 10, bezier = "linear" }) +hl.animation({ leaf = "borderangle", enabled = true, speed = 180, bezier = "linear", style = "loop" }) +hl.animation({ leaf = "fade", enabled = true, speed = 5, bezier = "overshot" }) +hl.animation({ leaf = "workspaces", enabled = true, speed = 5, bezier = "wind" }) +hl.animation({ leaf = "windows", enabled = true, speed = 5, bezier = "bounce", style = "popin" }) diff --git a/config/hypr/animations/03- Disable Animation.lua b/config/hypr/animations/03- Disable Animation.lua new file mode 100644 index 00000000..80f4be52 --- /dev/null +++ b/config/hypr/animations/03- Disable Animation.lua @@ -0,0 +1,7 @@ +-- Auto-generated from 03- Disable Animation.conf + +hl.config({ + animations = { + enabled = false, + }, +}) diff --git a/config/hypr/animations/END-4.lua b/config/hypr/animations/END-4.lua new file mode 100644 index 00000000..ba110519 --- /dev/null +++ b/config/hypr/animations/END-4.lua @@ -0,0 +1,34 @@ +-- Auto-generated from END-4.conf + +hl.config({ + animations = { + enabled = true, + }, +}) + +hl.curve("linear", { type = "bezier", points = { { 0, 0 }, { 1, 1 } } }) +hl.curve("md3_standard", { type = "bezier", points = { { 0.2, 0 }, { 0, 1 } } }) +hl.curve("md3_decel", { type = "bezier", points = { { 0.05, 0.7 }, { 0.1, 1 } } }) +hl.curve("md3_accel", { type = "bezier", points = { { 0.3, 0 }, { 0.8, 0.15 } } }) +hl.curve("overshot", { type = "bezier", points = { { 0.05, 0.9 }, { 0.1, 1.1 } } }) +hl.curve("crazyshot", { type = "bezier", points = { { 0.1, 1.5 }, { 0.76, 0.92 } } }) +hl.curve("hyprnostretch", { type = "bezier", points = { { 0.05, 0.9 }, { 0.1, 1.0 } } }) +hl.curve("menu_decel", { type = "bezier", points = { { 0.1, 1 }, { 0, 1 } } }) +hl.curve("menu_accel", { type = "bezier", points = { { 0.38, 0.04 }, { 1, 0.07 } } }) +hl.curve("easeInOutCirc", { type = "bezier", points = { { 0.85, 0 }, { 0.15, 1 } } }) +hl.curve("easeOutCirc", { type = "bezier", points = { { 0, 0.55 }, { 0.45, 1 } } }) +hl.curve("easeOutExpo", { type = "bezier", points = { { 0.16, 1 }, { 0.3, 1 } } }) +hl.curve("softAcDecel", { type = "bezier", points = { { 0.26, 0.26 }, { 0.15, 1 } } }) +hl.curve("md2", { type = "bezier", points = { { 0.4, 0 }, { 0.2, 1 } } }) + +hl.animation({ leaf = "windows", enabled = true, speed = 3, bezier = "md3_decel", style = "popin 60%" }) +hl.animation({ leaf = "windowsIn", enabled = true, speed = 3, bezier = "md3_decel", style = "popin 60%" }) +hl.animation({ leaf = "windowsOut", enabled = true, speed = 3, bezier = "md3_accel", style = "popin 60%" }) +hl.animation({ leaf = "border", enabled = true, speed = 10, bezier = "default" }) +hl.animation({ leaf = "fade", enabled = true, speed = 3, bezier = "md3_decel" }) +hl.animation({ leaf = "layersIn", enabled = true, speed = 3, bezier = "menu_decel", style = "slide" }) +hl.animation({ leaf = "layersOut", enabled = true, speed = 1.6, bezier = "menu_accel" }) +hl.animation({ leaf = "fadeLayersIn", enabled = true, speed = 2, bezier = "menu_decel" }) +hl.animation({ leaf = "fadeLayersOut", enabled = true, speed = 4.5, bezier = "menu_accel" }) +hl.animation({ leaf = "workspaces", enabled = true, speed = 7, bezier = "menu_decel", style = "slide" }) +hl.animation({ leaf = "specialWorkspace", enabled = true, speed = 3, bezier = "md3_decel", style = "slidevert" }) diff --git a/config/hypr/animations/HYDE - Vertical.lua b/config/hypr/animations/HYDE - Vertical.lua new file mode 100644 index 00000000..e8d64192 --- /dev/null +++ b/config/hypr/animations/HYDE - Vertical.lua @@ -0,0 +1,22 @@ +-- Auto-generated from HYDE - Vertical.conf + +hl.config({ + animations = { + enabled = true, + }, +}) + +hl.curve("fluent_decel", { type = "bezier", points = { { 0, 0.2 }, { 0.4, 1 } } }) +hl.curve("easeOutCirc", { type = "bezier", points = { { 0, 0.55 }, { 0.45, 1 } } }) +hl.curve("easeOutCubic", { type = "bezier", points = { { 0.33, 1 }, { 0.68, 1 } } }) +hl.curve("easeinoutsine", { type = "bezier", points = { { 0.37, 0 }, { 0.63, 1 } } }) + +hl.animation({ leaf = "windowsIn", enabled = true, speed = 1.5, bezier = "easeinoutsine", style = "popin 60%" }) +hl.animation({ leaf = "windowsOut", enabled = true, speed = 1.5, bezier = "easeOutCubic", style = "popin 60%" }) +hl.animation({ leaf = "windowsMove", enabled = true, speed = 1.5, bezier = "easeinoutsine", style = "slide" }) +hl.animation({ leaf = "fade", enabled = true, speed = 2.5, bezier = "fluent_decel" }) +hl.animation({ leaf = "fadeLayersIn", enabled = false }) +hl.animation({ leaf = "border", enabled = false }) +hl.animation({ leaf = "layers", enabled = true, speed = 1.5, bezier = "easeinoutsine", style = "popin" }) +hl.animation({ leaf = "workspaces", enabled = true, speed = 3, bezier = "fluent_decel", style = "slidefadevert 30%" }) +hl.animation({ leaf = "specialWorkspace", enabled = true, speed = 2, bezier = "fluent_decel", style = "slidefade 10%" }) diff --git a/config/hypr/animations/HYDE - default.lua b/config/hypr/animations/HYDE - default.lua new file mode 100644 index 00000000..e9d63be7 --- /dev/null +++ b/config/hypr/animations/HYDE - default.lua @@ -0,0 +1,22 @@ +-- Auto-generated from HYDE - default.conf + +hl.config({ + animations = { + enabled = true, + }, +}) + +hl.curve("wind", { type = "bezier", points = { { 0.05, 0.9 }, { 0.1, 1.05 } } }) +hl.curve("winIn", { type = "bezier", points = { { 0.1, 1.1 }, { 0.1, 1.1 } } }) +hl.curve("winOut", { type = "bezier", points = { { 0.3, -0.3 }, { 0, 1 } } }) +hl.curve("liner", { type = "bezier", points = { { 1, 1 }, { 1, 1 } } }) + +hl.animation({ leaf = "windows", enabled = true, speed = 6, bezier = "wind", style = "slide" }) +hl.animation({ leaf = "windowsIn", enabled = true, speed = 6, bezier = "winIn", style = "slide" }) +hl.animation({ leaf = "windowsOut", enabled = true, speed = 5, bezier = "winOut", style = "slide" }) +hl.animation({ leaf = "windowsMove", enabled = true, speed = 5, bezier = "wind", style = "slide" }) +hl.animation({ leaf = "border", enabled = true, speed = 1, bezier = "liner" }) +hl.animation({ leaf = "borderangle", enabled = true, speed = 30, bezier = "liner", style = "once" }) +hl.animation({ leaf = "fade", enabled = true, speed = 10, bezier = "default" }) +hl.animation({ leaf = "workspaces", enabled = true, speed = 5, bezier = "wind" }) +hl.animation({ leaf = "specialWorkspace", enabled = true, speed = 5, bezier = "wind", style = "slidevert" }) diff --git a/config/hypr/animations/HYDE - minimal-1.lua b/config/hypr/animations/HYDE - minimal-1.lua new file mode 100644 index 00000000..9d8b4d6b --- /dev/null +++ b/config/hypr/animations/HYDE - minimal-1.lua @@ -0,0 +1,21 @@ +-- Auto-generated from HYDE - minimal-1.conf + +hl.config({ + animations = { + enabled = true, + }, +}) + +hl.curve("wind", { type = "bezier", points = { { 0.05, 0.9 }, { 0.1, 1.05 } } }) +hl.curve("winIn", { type = "bezier", points = { { 0.1, 1.1 }, { 0.1, 1.1 } } }) +hl.curve("winOut", { type = "bezier", points = { { 0.3, -0.3 }, { 0, 1 } } }) +hl.curve("liner", { type = "bezier", points = { { 1, 1 }, { 1, 1 } } }) + +hl.animation({ leaf = "windows", enabled = true, speed = 6, bezier = "wind", style = "slide" }) +hl.animation({ leaf = "windowsIn", enabled = true, speed = 6, bezier = "winIn", style = "slide" }) +hl.animation({ leaf = "windowsOut", enabled = true, speed = 5, bezier = "winOut", style = "slide" }) +hl.animation({ leaf = "windowsMove", enabled = true, speed = 5, bezier = "wind", style = "slide" }) +hl.animation({ leaf = "border", enabled = true, speed = 1, bezier = "liner" }) +hl.animation({ leaf = "borderangle", enabled = true, speed = 30, bezier = "liner", style = "once" }) +hl.animation({ leaf = "fade", enabled = true, speed = 10, bezier = "default" }) +hl.animation({ leaf = "workspaces", enabled = true, speed = 5, bezier = "wind" }) diff --git a/config/hypr/animations/HYDE - minimal-2.lua b/config/hypr/animations/HYDE - minimal-2.lua new file mode 100644 index 00000000..0e4f45c8 --- /dev/null +++ b/config/hypr/animations/HYDE - minimal-2.lua @@ -0,0 +1,15 @@ +-- Auto-generated from HYDE - minimal-2.conf + +hl.config({ + animations = { + enabled = true, + }, +}) + +hl.curve("quart", { type = "bezier", points = { { 0.25, 1 }, { 0.5, 1 } } }) + +hl.animation({ leaf = "windows", enabled = true, speed = 6, bezier = "quart", style = "slide" }) +hl.animation({ leaf = "border", enabled = true, speed = 6, bezier = "quart" }) +hl.animation({ leaf = "borderangle", enabled = true, speed = 6, bezier = "quart" }) +hl.animation({ leaf = "fade", enabled = true, speed = 6, bezier = "quart" }) +hl.animation({ leaf = "workspaces", enabled = true, speed = 6, bezier = "quart" }) diff --git a/config/hypr/animations/HYDE - optimized.lua b/config/hypr/animations/HYDE - optimized.lua new file mode 100644 index 00000000..124542d9 --- /dev/null +++ b/config/hypr/animations/HYDE - optimized.lua @@ -0,0 +1,40 @@ +-- Auto-generated from HYDE - optimized.conf + +hl.config({ + animations = { + enabled = true, + }, +}) + +hl.curve("wind", { type = "bezier", points = { { 0.05, 0.85 }, { 0.03, 0.97 } } }) +hl.curve("winIn", { type = "bezier", points = { { 0.07, 0.88 }, { 0.04, 0.99 } } }) +hl.curve("winOut", { type = "bezier", points = { { 0.20, -0.15 }, { 0, 1 } } }) +hl.curve("liner", { type = "bezier", points = { { 1, 1 }, { 1, 1 } } }) +hl.curve("md3_standard", { type = "bezier", points = { { 0.12, 0 }, { 0, 1 } } }) +hl.curve("md3_decel", { type = "bezier", points = { { 0.05, 0.80 }, { 0.10, 0.97 } } }) +hl.curve("md3_accel", { type = "bezier", points = { { 0.20, 0 }, { 0.80, 0.08 } } }) +hl.curve("overshot", { type = "bezier", points = { { 0.05, 0.85 }, { 0.07, 1.04 } } }) +hl.curve("crazyshot", { type = "bezier", points = { { 0.1, 1.22 }, { 0.68, 0.98 } } }) +hl.curve("hyprnostretch", { type = "bezier", points = { { 0.05, 0.82 }, { 0.03, 0.94 } } }) +hl.curve("menu_decel", { type = "bezier", points = { { 0.05, 0.82 }, { 0, 1 } } }) +hl.curve("menu_accel", { type = "bezier", points = { { 0.20, 0 }, { 0.82, 0.10 } } }) +hl.curve("easeInOutCirc", { type = "bezier", points = { { 0.75, 0 }, { 0.15, 1 } } }) +hl.curve("easeOutCirc", { type = "bezier", points = { { 0, 0.48 }, { 0.38, 1 } } }) +hl.curve("easeOutExpo", { type = "bezier", points = { { 0.10, 0.94 }, { 0.23, 0.98 } } }) +hl.curve("softAcDecel", { type = "bezier", points = { { 0.20, 0.20 }, { 0.15, 1 } } }) +hl.curve("md2", { type = "bezier", points = { { 0.30, 0 }, { 0.15, 1 } } }) +hl.curve("OutBack", { type = "bezier", points = { { 0.28, 1.40 }, { 0.58, 1 } } }) +hl.curve("easeInOutCirc", { type = "bezier", points = { { 0.78, 0 }, { 0.15, 1 } } }) + +hl.animation({ leaf = "border", enabled = true, speed = 1.6, bezier = "liner" }) +hl.animation({ leaf = "borderangle", enabled = true, speed = 82, bezier = "liner", style = "once" }) +hl.animation({ leaf = "windowsIn", enabled = true, speed = 3.2, bezier = "winIn", style = "slide" }) +hl.animation({ leaf = "windowsOut", enabled = true, speed = 2.8, bezier = "easeOutCirc" }) +hl.animation({ leaf = "windowsMove", enabled = true, speed = 3.0, bezier = "wind", style = "slide" }) +hl.animation({ leaf = "fade", enabled = true, speed = 1.8, bezier = "md3_decel" }) +hl.animation({ leaf = "layersIn", enabled = true, speed = 1.8, bezier = "menu_decel", style = "slide" }) +hl.animation({ leaf = "layersOut", enabled = true, speed = 1.5, bezier = "menu_accel" }) +hl.animation({ leaf = "fadeLayersIn", enabled = true, speed = 1.6, bezier = "menu_decel" }) +hl.animation({ leaf = "fadeLayersOut", enabled = true, speed = 1.8, bezier = "menu_accel" }) +hl.animation({ leaf = "workspaces", enabled = true, speed = 4.0, bezier = "menu_decel", style = "slide" }) +hl.animation({ leaf = "specialWorkspace", enabled = true, speed = 2.3, bezier = "md3_decel", style = "slidefadevert 15%" }) diff --git a/config/hypr/animations/ML4W - classic.lua b/config/hypr/animations/ML4W - classic.lua new file mode 100644 index 00000000..76bfb491 --- /dev/null +++ b/config/hypr/animations/ML4W - classic.lua @@ -0,0 +1,16 @@ +-- Auto-generated from ML4W - classic.conf + +hl.config({ + animations = { + enabled = true, + }, +}) + +hl.curve("myBezier", { type = "bezier", points = { { 0.05, 0.9 }, { 0.1, 1.05 } } }) + +hl.animation({ leaf = "windows", enabled = true, speed = 7, bezier = "myBezier" }) +hl.animation({ leaf = "windowsOut", enabled = true, speed = 7, bezier = "default", style = "popin 80%" }) +hl.animation({ leaf = "border", enabled = true, speed = 10, bezier = "default" }) +hl.animation({ leaf = "borderangle", enabled = true, speed = 8, bezier = "default" }) +hl.animation({ leaf = "fade", enabled = true, speed = 7, bezier = "default" }) +hl.animation({ leaf = "workspaces", enabled = true, speed = 6, bezier = "default" }) diff --git a/config/hypr/animations/ML4W - dynamic.lua b/config/hypr/animations/ML4W - dynamic.lua new file mode 100644 index 00000000..13580c7b --- /dev/null +++ b/config/hypr/animations/ML4W - dynamic.lua @@ -0,0 +1,21 @@ +-- Auto-generated from ML4W - dynamic.conf + +hl.config({ + animations = { + enabled = true, + }, +}) + +hl.curve("wind", { type = "bezier", points = { { 0.05, 0.9 }, { 0.1, 1.05 } } }) +hl.curve("winIn", { type = "bezier", points = { { 0.1, 1.1 }, { 0.1, 1.1 } } }) +hl.curve("winOut", { type = "bezier", points = { { 0.3, -0.3 }, { 0, 1 } } }) +hl.curve("liner", { type = "bezier", points = { { 1, 1 }, { 1, 1 } } }) + +hl.animation({ leaf = "windows", enabled = true, speed = 6, bezier = "wind", style = "slide" }) +hl.animation({ leaf = "windowsIn", enabled = true, speed = 6, bezier = "winIn", style = "slide" }) +hl.animation({ leaf = "windowsOut", enabled = true, speed = 5, bezier = "winOut", style = "slide" }) +hl.animation({ leaf = "windowsMove", enabled = true, speed = 5, bezier = "wind", style = "slide" }) +hl.animation({ leaf = "border", enabled = true, speed = 1, bezier = "liner" }) +hl.animation({ leaf = "borderangle", enabled = true, speed = 30, bezier = "liner", style = "loop" }) +hl.animation({ leaf = "fade", enabled = true, speed = 10, bezier = "default" }) +hl.animation({ leaf = "workspaces", enabled = true, speed = 5, bezier = "wind" }) diff --git a/config/hypr/animations/ML4W - fast.lua b/config/hypr/animations/ML4W - fast.lua new file mode 100644 index 00000000..3f628a20 --- /dev/null +++ b/config/hypr/animations/ML4W - fast.lua @@ -0,0 +1,25 @@ +-- Auto-generated from ML4W - fast.conf + +hl.config({ + animations = { + enabled = true, + }, +}) + +hl.curve("linear", { type = "bezier", points = { { 0, 0 }, { 1, 1 } } }) +hl.curve("md3_standard", { type = "bezier", points = { { 0.2, 0 }, { 0, 1 } } }) +hl.curve("md3_decel", { type = "bezier", points = { { 0.05, 0.7 }, { 0.1, 1 } } }) +hl.curve("md3_accel", { type = "bezier", points = { { 0.3, 0 }, { 0.8, 0.15 } } }) +hl.curve("overshot", { type = "bezier", points = { { 0.05, 0.9 }, { 0.1, 1.1 } } }) +hl.curve("crazyshot", { type = "bezier", points = { { 0.1, 1.5 }, { 0.76, 0.92 } } }) +hl.curve("hyprnostretch", { type = "bezier", points = { { 0.05, 0.9 }, { 0.1, 1.0 } } }) +hl.curve("fluent_decel", { type = "bezier", points = { { 0.1, 1 }, { 0, 1 } } }) +hl.curve("easeInOutCirc", { type = "bezier", points = { { 0.85, 0 }, { 0.15, 1 } } }) +hl.curve("easeOutCirc", { type = "bezier", points = { { 0, 0.55 }, { 0.45, 1 } } }) +hl.curve("easeOutExpo", { type = "bezier", points = { { 0.16, 1 }, { 0.3, 1 } } }) + +hl.animation({ leaf = "windows", enabled = true, speed = 3, bezier = "md3_decel", style = "popin 60%" }) +hl.animation({ leaf = "border", enabled = true, speed = 10, bezier = "default" }) +hl.animation({ leaf = "fade", enabled = true, speed = 2.5, bezier = "md3_decel" }) +hl.animation({ leaf = "workspaces", enabled = true, speed = 3.5, bezier = "easeOutExpo", style = "slide" }) +hl.animation({ leaf = "specialWorkspace", enabled = true, speed = 3, bezier = "md3_decel", style = "slidevert" }) diff --git a/config/hypr/animations/ML4W - high.lua b/config/hypr/animations/ML4W - high.lua new file mode 100644 index 00000000..3a0855ce --- /dev/null +++ b/config/hypr/animations/ML4W - high.lua @@ -0,0 +1,21 @@ +-- Auto-generated from ML4W - high.conf + +hl.config({ + animations = { + enabled = true, + }, +}) + +hl.curve("wind", { type = "bezier", points = { { 0.05, 0.9 }, { 0.1, 1.05 } } }) +hl.curve("winIn", { type = "bezier", points = { { 0.1, 1.1 }, { 0.1, 1.1 } } }) +hl.curve("winOut", { type = "bezier", points = { { 0.3, -0.3 }, { 0, 1 } } }) +hl.curve("liner", { type = "bezier", points = { { 1, 1 }, { 1, 1 } } }) + +hl.animation({ leaf = "windows", enabled = true, speed = 6, bezier = "wind", style = "slide" }) +hl.animation({ leaf = "windowsIn", enabled = true, speed = 6, bezier = "winIn", style = "slide" }) +hl.animation({ leaf = "windowsOut", enabled = true, speed = 5, bezier = "winOut", style = "slide" }) +hl.animation({ leaf = "windowsMove", enabled = true, speed = 5, bezier = "wind", style = "slide" }) +hl.animation({ leaf = "border", enabled = true, speed = 1, bezier = "liner" }) +hl.animation({ leaf = "borderangle", enabled = true, speed = 30, bezier = "liner", style = "once" }) +hl.animation({ leaf = "fade", enabled = true, speed = 10, bezier = "default" }) +hl.animation({ leaf = "workspaces", enabled = true, speed = 5, bezier = "wind" }) diff --git a/config/hypr/animations/ML4W - moving.lua b/config/hypr/animations/ML4W - moving.lua new file mode 100644 index 00000000..6fadc3e0 --- /dev/null +++ b/config/hypr/animations/ML4W - moving.lua @@ -0,0 +1,20 @@ +-- Auto-generated from ML4W - moving.conf + +hl.config({ + animations = { + enabled = true, + }, +}) + +hl.curve("overshot", { type = "bezier", points = { { 0.05, 0.9 }, { 0.1, 1.05 } } }) +hl.curve("smoothOut", { type = "bezier", points = { { 0.5, 0 }, { 0.99, 0.99 } } }) +hl.curve("smoothIn", { type = "bezier", points = { { 0.5, -0.5 }, { 0.68, 1.5 } } }) + +hl.animation({ leaf = "windows", enabled = true, speed = 5, bezier = "overshot", style = "slide" }) +hl.animation({ leaf = "windowsOut", enabled = true, speed = 3, bezier = "smoothOut" }) +hl.animation({ leaf = "windowsIn", enabled = true, speed = 3, bezier = "smoothOut" }) +hl.animation({ leaf = "windowsMove", enabled = true, speed = 4, bezier = "smoothIn", style = "slide" }) +hl.animation({ leaf = "border", enabled = true, speed = 5, bezier = "default" }) +hl.animation({ leaf = "fade", enabled = true, speed = 5, bezier = "smoothIn" }) +hl.animation({ leaf = "fadeDim", enabled = true, speed = 5, bezier = "smoothIn" }) +hl.animation({ leaf = "workspaces", enabled = true, speed = 6, bezier = "default" }) diff --git a/config/hypr/animations/ML4W - standard.lua b/config/hypr/animations/ML4W - standard.lua new file mode 100644 index 00000000..04290074 --- /dev/null +++ b/config/hypr/animations/ML4W - standard.lua @@ -0,0 +1,16 @@ +-- Auto-generated from ML4W - standard.conf + +hl.config({ + animations = { + enabled = true, + }, +}) + +hl.curve("myBezier", { type = "bezier", points = { { 0.05, 0.9 }, { 0.1, 1.05 } } }) + +hl.animation({ leaf = "windows", enabled = true, speed = 7, bezier = "myBezier" }) +hl.animation({ leaf = "windowsOut", enabled = true, speed = 7, bezier = "default", style = "popin 80%" }) +hl.animation({ leaf = "border", enabled = true, speed = 10, bezier = "default" }) +hl.animation({ leaf = "borderangle", enabled = true, speed = 8, bezier = "default" }) +hl.animation({ leaf = "fade", enabled = true, speed = 7, bezier = "default" }) +hl.animation({ leaf = "workspaces", enabled = true, speed = 6, bezier = "default" }) diff --git a/config/hypr/animations/Mahaveer - me-1.lua b/config/hypr/animations/Mahaveer - me-1.lua new file mode 100644 index 00000000..5c9824ff --- /dev/null +++ b/config/hypr/animations/Mahaveer - me-1.lua @@ -0,0 +1,41 @@ +-- Auto-generated from Mahaveer - me-1.conf + +hl.config({ + animations = { + enabled = true, + }, +}) + +hl.curve("wind", { type = "bezier", points = { { 0.05, 0.9 }, { 0.1, 1.05 } } }) +hl.curve("winIn", { type = "bezier", points = { { 0.1, 1.1 }, { 0.1, 1.1 } } }) +hl.curve("winOut", { type = "bezier", points = { { 0.3, -0.3 }, { 0, 1 } } }) +hl.curve("liner", { type = "bezier", points = { { 1, 1 }, { 1, 1 } } }) +hl.curve("md3_standard", { type = "bezier", points = { { 0.2, 0 }, { 0, 1 } } }) +hl.curve("md3_decel", { type = "bezier", points = { { 0.05, 0.7 }, { 0.1, 1 } } }) +hl.curve("md3_accel", { type = "bezier", points = { { 0.3, 0 }, { 0.8, 0.15 } } }) +hl.curve("overshot", { type = "bezier", points = { { 0.05, 0.9 }, { 0.1, 1.1 } } }) +hl.curve("crazyshot", { type = "bezier", points = { { 0.1, 1.5 }, { 0.76, 0.92 } } }) +hl.curve("hyprnostretch", { type = "bezier", points = { { 0.05, 0.9 }, { 0.1, 1.0 } } }) +hl.curve("menu_decel", { type = "bezier", points = { { 0.1, 1 }, { 0, 1 } } }) +hl.curve("menu_accel", { type = "bezier", points = { { 0.38, 0.04 }, { 1, 0.07 } } }) +hl.curve("easeInOutCirc", { type = "bezier", points = { { 0.85, 0 }, { 0.15, 1 } } }) +hl.curve("easeOutCirc", { type = "bezier", points = { { 0, 0.55 }, { 0.45, 1 } } }) +hl.curve("easeOutExpo", { type = "bezier", points = { { 0.16, 1 }, { 0.3, 1 } } }) +hl.curve("softAcDecel", { type = "bezier", points = { { 0.26, 0.26 }, { 0.15, 1 } } }) +hl.curve("md2", { type = "bezier", points = { { 0.4, 0 }, { 0.2, 1 } } }) + +hl.animation({ leaf = "border", enabled = true, speed = 1, bezier = "liner" }) +hl.animation({ leaf = "borderangle", enabled = true, speed = 30, bezier = "liner", style = "once" }) +hl.animation({ leaf = "windows", enabled = true, speed = 6, bezier = "wind", style = "slide" }) +hl.animation({ leaf = "windowsIn", enabled = true, speed = 6, bezier = "winIn", style = "slide" }) +hl.animation({ leaf = "windowsOut", enabled = true, speed = 5, bezier = "winOut", style = "slide" }) +hl.animation({ leaf = "windowsMove", enabled = true, speed = 5, bezier = "wind", style = "slide" }) +hl.animation({ leaf = "fade", enabled = true, speed = 3, bezier = "md3_decel" }) +hl.animation({ leaf = "layersIn", enabled = true, speed = 3, bezier = "menu_decel", style = "slide" }) +hl.animation({ leaf = "layersOut", enabled = true, speed = 1.6, bezier = "menu_accel" }) +hl.animation({ leaf = "fadeLayersIn", enabled = true, speed = 2, bezier = "menu_decel" }) +hl.animation({ leaf = "fadeLayersOut", enabled = true, speed = 4.5, bezier = "menu_accel" }) +hl.animation({ leaf = "workspaces", enabled = true, speed = 7, bezier = "menu_decel", style = "slide" }) +hl.animation({ leaf = "workspaces", enabled = true, speed = 5, bezier = "wind" }) +hl.animation({ leaf = "specialWorkspace", enabled = true, speed = 3, bezier = "md3_decel", style = "slidefadevert 15%" }) +hl.animation({ leaf = "specialWorkspace", enabled = true, speed = 3, bezier = "md3_decel", style = "slidevert" }) diff --git a/config/hypr/animations/Mahaveer - me-2.lua b/config/hypr/animations/Mahaveer - me-2.lua new file mode 100644 index 00000000..72feaa00 --- /dev/null +++ b/config/hypr/animations/Mahaveer - me-2.lua @@ -0,0 +1,26 @@ +-- Auto-generated from Mahaveer - me-2.conf + +hl.config({ + animations = { + enabled = true, + }, +}) + +hl.curve("wind", { type = "bezier", points = { { 0.05, 0.9 }, { 0.1, 1.05 } } }) +hl.curve("winIn", { type = "bezier", points = { { 0.1, 1.1 }, { 0.1, 1.1 } } }) +hl.curve("winOut", { type = "bezier", points = { { 0.3, -0.3 }, { 0, 1 } } }) +hl.curve("liner", { type = "bezier", points = { { 1, 1 }, { 1, 1 } } }) +hl.curve("overshot", { type = "bezier", points = { { 0.05, 0.9 }, { 0.1, 1.05 } } }) +hl.curve("smoothOut", { type = "bezier", points = { { 0.5, 0 }, { 0.99, 0.99 } } }) +hl.curve("smoothIn", { type = "bezier", points = { { 0.5, -0.5 }, { 0.68, 1.5 } } }) + +hl.animation({ leaf = "windows", enabled = true, speed = 6, bezier = "wind", style = "slide" }) +hl.animation({ leaf = "windowsIn", enabled = true, speed = 5, bezier = "winIn", style = "slide" }) +hl.animation({ leaf = "windowsOut", enabled = true, speed = 3, bezier = "smoothOut", style = "slide" }) +hl.animation({ leaf = "windowsMove", enabled = true, speed = 5, bezier = "wind", style = "slide" }) +hl.animation({ leaf = "border", enabled = true, speed = 1, bezier = "liner" }) +hl.animation({ leaf = "borderangle", enabled = true, speed = 180, bezier = "liner", style = "loop" }) +hl.animation({ leaf = "fade", enabled = true, speed = 3, bezier = "smoothOut" }) +hl.animation({ leaf = "workspaces", enabled = true, speed = 5, bezier = "overshot" }) +hl.animation({ leaf = "workspacesIn", enabled = true, speed = 5, bezier = "winIn", style = "slide" }) +hl.animation({ leaf = "workspacesOut", enabled = true, speed = 5, bezier = "winOut", style = "slide" }) diff --git a/config/hypr/animations/Spring-curves.conf b/config/hypr/animations/Spring-curves.conf new file mode 100644 index 00000000..1663d16e --- /dev/null +++ b/config/hypr/animations/Spring-curves.conf @@ -0,0 +1,25 @@ +# /* ---- 💫 https://github.com/LinuxBeginnings 💫 ---- */ # +# +# name "Spring-curves" + +animations { + enabled = yes + + # Hyprland .conf uses bezier curves; these approximate the Lua spring presets. + bezier = spring_fast, 0.18, 0.88, 0.14, 1.0 + bezier = spring_slow, 0.25, 0.82, 0.18, 1.0 + + animation = windows, 1, 1, spring_fast + animation = windowsIn, 1, 1, spring_fast, popin 50% + animation = windowsOut, 1, 1, spring_fast, popin + animation = border, 1, 1, spring_slow + animation = borderangle, 0 + animation = fade, 1, 1, spring_slow + animation = zoomFactor, 1, 6, spring_fast + animation = layersIn, 1, 3, spring_fast, slide + animation = layersOut, 1, 1.6, spring_fast, slide + animation = fadeLayersIn, 1, 2, spring_fast + animation = fadeLayersOut, 1, 1.6, spring_fast + animation = workspaces, 1, 1, spring_slow, slide + animation = specialWorkspace, 1, 1, spring_slow, slidevert 80% +} diff --git a/config/hypr/animations/Spring-curves.lua b/config/hypr/animations/Spring-curves.lua new file mode 100644 index 00000000..fefc3731 --- /dev/null +++ b/config/hypr/animations/Spring-curves.lua @@ -0,0 +1,28 @@ +-- Spring Curves +hl.curve("spring_fast", { type = "spring", mass = 2, stiffness = 30, dampening = 15 }) +hl.curve("spring_slow", { type = "spring", mass = 2, stiffness = 15, dampening = 10 }) + +-- Window animations +hl.animation({ leaf = "windows", enabled = true, speed = 1, spring = "spring_fast" }) +hl.animation({ leaf = "windowsIn", enabled = true, speed = 1, spring = "spring_fast", style = "popin 50%" }) +hl.animation({ leaf = "windowsOut", enabled = true, speed = 1, spring = "spring_fast", style = "popin" }) + +-- Border animations +hl.animation({ leaf = "border", enabled = true, speed = 1, spring = "spring_slow" }) +hl.animation({ leaf = "borderangle", enabled = false }) + +-- Fade +hl.animation({ leaf = "fade", enabled = true, speed = 1, spring = "spring_slow" }) + +-- Zoom cursor +hl.animation({ leaf = "zoomFactor", enabled = true, speed = 6, spring = "spring_fast" }) + +-- Layer animations +hl.animation({ leaf = "layersIn", enabled = true, speed = 3, spring = "spring_fast", style = "slide" }) +hl.animation({ leaf = "layersOut", enabled = true, speed = 1.6, spring = "spring_fast", style = "slide" }) +hl.animation({ leaf = "fadeLayersIn", enabled = true, speed = 2, spring = "spring_fast" }) +hl.animation({ leaf = "fadeLayersOut", enabled = true, speed = 1.6, spring = "spring_fast" }) + +-- Workspace animations +hl.animation({ leaf = "workspaces", enabled = true, speed = 1, spring = "spring_slow", style = "slide" }) +hl.animation({ leaf = "specialWorkspace", enabled = true, speed = 1, spring = "spring_slow", style = "slidevert 80%" }) diff --git a/config/hypr/configs/ENVariables.conf b/config/hypr/configs/ENVariables.conf index b134b60d..e8a51555 100644 --- a/config/hypr/configs/ENVariables.conf +++ b/config/hypr/configs/ENVariables.conf @@ -10,7 +10,7 @@ # environment-variables # Current Version of KoolDots: -env = DOTS_VERSION,2.3.24 +env = DOTS_VERSION,2.3.25 ### Toolkit Backend Variables ### env = GDK_BACKEND,wayland,x11,* @@ -32,10 +32,12 @@ env = XDG_SESSION_TYPE,wayland env = QT_AUTO_SCREEN_SCALE_FACTOR,1 env = QT_WAYLAND_DISABLE_WINDOWDECORATION,1 env = QT_QPA_PLATFORMTHEME,qt6ct -env = QT_STYLE_OVERRIDE,kvantum +env = QT_STYLE_OVERRIDE,Fusion ### hyprland-qt-support ### -env = QT_QUICK_CONTROLS_STYLE,org.hyprland.style +# Keep a safe default. copy.sh switches this to org.hyprland.style when the +# matching QML style module is detected on the system. +env = QT_QUICK_CONTROLS_STYLE,Basic ### xwayland apps scale fix (useful if you are use monitor scaling) ### # Set same value if you use scaling in Monitors.conf @@ -47,8 +49,10 @@ env = QT_SCALE_FACTOR,1 # Bibata-Modern-Ice-Cursor # NOTE! You must have the hyprcursor version to activate this. # https://wiki.hyprland.org/Hypr-Ecosystem/hyprcursor/ -#env = HYPRCURSOR_THEME,Bibata-Modern-Ice -#env = HYPRCURSOR_SIZE,24 +env = HYPRCURSOR_THEME,Bibata-Modern-Ice +env = HYPRCURSOR_SIZE,24 +env = XCURSOR_THEME,Bibata-Modern-Ice +env = XCURSOR_SIZE,24 ### firefox ### env = MOZ_ENABLE_WAYLAND,1 @@ -61,10 +65,10 @@ env = ELECTRON_OZONE_PLATFORM_HINT,auto # auto selects Wayland if possible, X11 # This is from Hyprland Wiki. Below will be activated nvidia gpu detected # See hyprland wiki https://wiki.hyprland.org/Nvidia/#environment-variables -#env = LIBVA_DRIVER_NAME,nvidia -#env = __GLX_VENDOR_LIBRARY_NAME,nvidia -#env = NVD_BACKEND,direct -#env = GSK_RENDERER,ngl +env = LIBVA_DRIVER_NAME,nvidia +env = __GLX_VENDOR_LIBRARY_NAME,nvidia +env = NVD_BACKEND,direct +env = GSK_RENDERER,ngl ### additional ENV's for nvidia. Caution, activate with care ### #env = GBM_BACKEND,nvidia-drm @@ -77,7 +81,7 @@ env = ELECTRON_OZONE_PLATFORM_HINT,auto # auto selects Wayland if possible, X11 ### FOR VM and POSSIBLY NVIDIA ### # LIBGL_ALWAYS_SOFTWARE software mesa rendering #env = LIBGL_ALWAYS_SOFTWARE,1 # Warning. May cause hyprland to crash -#env = WLR_RENDERER_ALLOW_SOFTWARE,1 +env = WLR_RENDERER_ALLOW_SOFTWARE,1 ### nvidia firefox ### # check this post https://github.com/elFarto/nvidia-vaapi-driver#configuration diff --git a/config/hypr/configs/Keybinds.conf b/config/hypr/configs/Keybinds.conf index 82693694..db666f2f 100644 --- a/config/hypr/configs/Keybinds.conf +++ b/config/hypr/configs/Keybinds.conf @@ -18,13 +18,13 @@ source= $UserConfigs/01-UserDefaults.conf #### STANDARD #### # Common shortcuts #bindr = $mainMod, $mainMod_L, exec, pkill rofi || rofi -show drun -modi drun,filebrowser,run,window # Super Key to Launch rofi menu -bindd = $mainMod, D, App launcher, exec, pkill rofi || true && rofi -show drun -modi drun,filebrowser,run,window +bindd = $mainMod, D, App launcher, exec, pkill rofi || true; $scriptsDir/RofiFocusedWallpaperLink.sh >/dev/null 2>&1 || true; rofi -show drun -modi drun,filebrowser,run,window bindd = $mainMod, B, Open default browser, exec, xdg-open "https://" bindd = $mainMod, A, Desktop overview, exec, $scriptsDir/OverviewToggle.sh # toggles quickshell or ags overview (tries QS first, falls back to AGS) #bindd = $mainMod, A, Ags overview, exec, pkill rofi || true && ags -t 'overview' # desktop overview (if installed) #bindd = $mainMod, A, Quickshell overview, global, quickshell:overviewToggle # desktop overview (if installed) -bindd = $mainMod, Return, Open terminal, exec, $term -bindd = $mainMod, E, File manager, exec, $files +bindd = $mainMod, Return, Open terminal, exec, $scriptsDir/LaunchTerminal.sh "$term" +bindd = $mainMod, E, File manager, exec, $scriptsDir/LaunchFileManager.sh "$files" "$term" bindd = $mainMod, C, SSH session manager, exec, $scriptsDir/rofi-ssh-menu.sh # FEATURES / EXTRAS @@ -33,7 +33,7 @@ bindd = $mainMod, H, Help / cheat sheet, exec, $scriptsDir/KeyHints.sh bindd = $mainMod ALT, R, Refresh bar and menus, exec, $scriptsDir/Refresh.sh bindd = $mainMod ALT, E, Emoji menu, exec, $scriptsDir/RofiEmoji.sh bindd = $mainMod, S, Web search, exec, $scriptsDir/RofiSearch.sh -bindd = $mainMod CTRL, S, Window switcher, exec, rofi -show window +bindd = $mainMod CTRL, S, Window switcher, exec, $scriptsDir/RofiFocusedWallpaperLink.sh >/dev/null 2>&1 || true; rofi -show window bindd = $mainMod ALT, O, Toggle blur, exec, $scriptsDir/ChangeBlur.sh bindd = $mainMod SHIFT, G, Toggle game mode, exec, $scriptsDir/GameMode.sh bindd = $mainMod ALT, L, Toggle layouts, exec, $scriptsDir/ChangeLayout.sh toggle @@ -47,7 +47,7 @@ bindd = $mainMod SHIFT, H, Toggle Mute/Unmute for Active-Window, exec, $scriptsD bindd = ALT SHIFT, S, Hyprshot Screen Capture, exec, $scriptsDir/hyprshot.sh -m region -o $HOME/Pictures/Screenshots bindd = $mainMod SHIFT, F, Fullscreen, fullscreen -bindd = $mainMod CTRL, F, Maximize window, fullscreen, 1 +bindd = $mainMod, F, Maximize window, fullscreen, 1 bindd = $mainMod, SPACE, Float current window, togglefloating, bindd = $mainMod ALT, SPACE, Float all windows, exec, $scriptsDir/Float-all-Windows.sh # NOTE: Dropterminal is currently certified only with kitty. Not all terminals behave correctly as a dropdown. @@ -67,13 +67,13 @@ bindd = $mainMod, N, Toggle Hyprsunset - night light, exec, $scriptsDir/Hyprsuns # FEATURES / EXTRAS (UserScripts) bindd = $mainMod SHIFT, M, Online music, exec, $UserScripts/RofiBeats.sh -bindd = $mainMod, W, Select Wallpaper, exec, $UserScripts/WallpaperSelect.sh -bindd = $mainMod SHIFT, W, Wallpaper effects, exec, $UserScripts/WallpaperEffects.sh -bindd = CTRL ALT, W, Random wallpaper, exec, $UserScripts/WallpaperRandom.sh +bindd = $mainMod, W, Select Wallpaper, exec, $scriptsDir/WallpaperSelect.sh +bindd = $mainMod SHIFT, W, Wallpaper effects, exec, $scriptsDir/WallpaperEffects.sh +bindd = CTRL ALT, W, Random wallpaper, exec, $scriptsDir/WallpaperRandom.sh bindd = $mainMod CTRL, O, Toggle active window opacity, setprop, active opaque toggle bindd = $mainMod SHIFT, K, Search keybinds, exec, $scriptsDir/KeyBinds.sh bindd = $mainMod SHIFT, A, Animations menu, exec, $scriptsDir/Animations.sh -bindd = $mainMod SHIFT, O, Change ZSH (oh-my-zsh) theme, exec, $UserScripts/ZshChangeTheme.sh +bindd = $mainMod SHIFT, O, Change ZSH (oh-my-zsh) theme, exec, $scriptsDir/ZshChangeTheme.sh bindlnd = ALT_L, SHIFT_L, Switch keyboard layout globally, exec, $scriptsDir/KeyboardLayout.sh switch bindlnd = SHIFT_L, ALT_L, Switch keyboard layout per-window, exec, $scriptsDir/Tak0-Per-Window-Switch.sh bindd = $mainMod ALT, C, Calculator, exec, $UserScripts/RofiCalc.sh @@ -97,9 +97,9 @@ bindd = $mainMod SHIFT, E, Quick settings menu, exec, $scriptsDir/Kool_Quick_Set # Master Layout bindd = $mainMod CTRL, D, Remove master, layoutmsg, removemaster bindd = $mainMod, I, Add master, layoutmsg, addmaster -# j/k cycle windows globally -bindd = $mainMod, j, Cycle next, cyclenext -bindd = $mainMod, k, Cycle previous, cyclenext, prev +# j/k cycle windows (layout-aware) +bindd = $mainMod, j, Cycle next (layout-aware), exec, $scriptsDir/LayoutKeybindDispatch.sh cycle-next +bindd = $mainMod, k, Cycle previous (layout-aware), exec, $scriptsDir/LayoutKeybindDispatch.sh cycle-prev bindd = $mainMod CTRL, Return, Swap with master, layoutmsg, swapwithmaster # Dwindle Layout @@ -108,7 +108,7 @@ bindd = $mainMod, P, Toggle pseudo (dwindle), pseudo, # Works on either layout (Master or Dwindle) bindd = $mainMod, M, Set split ratio 0.3, exec, hyprctl dispatch splitratio 0.3 -# layout aware keybinds +# legacy init hook kept for compatibility; keybind behavior is now resolved dynamically exec-once = $scriptsDir/ChangeLayout.sh init # Direct layout binds @@ -122,6 +122,7 @@ bindd = $mainMod SHIFT, period, Move to right column, layoutmsg, move +col bindd = $mainMod SHIFT, comma, Move to left column, layoutmsg, move -col bindd = $mainMod ALT, comma, Swap columns left, layoutmsg, swapcol l bindd = $mainMod ALT, period, Swap columns right, layoutmsg, swapcol r +bindd = $mainMod, R, Cycle column width preset (scrolling), exec, bash $scriptsDir/ScrollCycleColumnWidth.sh # Set layout to Horizontal (Standard "Tape" style) bindd = $mainMod ALT, H, Horizonal scroll right,exec, hyprctl keyword scrolling:direction right @@ -198,11 +199,11 @@ bindd = $mainMod CTRL, H, Move active out of group, moveoutofgroup # Move active #bindd = $mainMod, right, Focus right, exec, bash -c 'if hyprctl activewindow -j | jq -e "((.grouped | type) == \"boolean\") or (.address == (.grouped[-1] // empty))" >/dev/null 2>&1; then hyprctl dispatch movefocus r; else hyprctl dispatch changegroupactive f; fi' #bindd = $mainMod, left, Focus left, exec, bash -c 'if hyprctl activewindow -j | jq -e "((.grouped | type) == \"boolean\") or (.address == (.grouped[0] // empty))" >/dev/null 2>&1; then hyprctl dispatch movefocus l; else hyprctl dispatch changegroupactive b; fi' -# Move focus with mainMod + arrow keys -bindd = $mainMod, left, Focus left, movefocus, l -bindd = $mainMod, right, Focus right, movefocus, r -bindd = $mainMod, up, Focus up, movefocus, u -bindd = $mainMod, down, Focus down, movefocus, d +# Move focus with mainMod + arrow keys (layout-aware) +bindd = $mainMod, left, Focus left (layout-aware), exec, $scriptsDir/LayoutKeybindDispatch.sh focus-left +bindd = $mainMod, right, Focus right (layout-aware), exec, $scriptsDir/LayoutKeybindDispatch.sh focus-right +bindd = $mainMod, up, Focus up (layout-aware), exec, $scriptsDir/LayoutKeybindDispatch.sh focus-up +bindd = $mainMod, down, Focus down (layout-aware), exec, $scriptsDir/LayoutKeybindDispatch.sh focus-down # Workspaces related bindd = $mainMod, tab, Next workspace, workspace, m+1 diff --git a/config/hypr/configs/Startup_Apps.conf b/config/hypr/configs/Startup_Apps.conf index bf8b3b4b..94a4837a 100644 --- a/config/hypr/configs/Startup_Apps.conf +++ b/config/hypr/configs/Startup_Apps.conf @@ -8,7 +8,7 @@ $scriptsDir = $HOME/.config/hypr/scripts $UserScripts = $HOME/.config/hypr/UserScripts $lock = $scriptsDir/LockScreen.sh -$SwwwRandom = $UserScripts/WallpaperAutoChange.sh +$SwwwRandom = $scriptsDir/WallpaperAutoChange.sh $livewallpaper="" $wallDIR = $HOME/Pictures/wallpapers # change path manually here if needed @@ -23,13 +23,16 @@ exec-once = dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CUR exec-once = systemctl --user import-environment WAYLAND_DISPLAY XDG_CURRENT_DESKTOP exec-once = $scriptsDir/Polkit.sh exec-once = nm-applet -exec-once = nm-tray # For ubuntu +#exec-once = nm-tray # For ubuntu Optional now exec-once = swaync #exec-once = ags #exec-once = blueman-applet #exec-once = rog-control-center exec-once = $scriptsDir/PortalHyprland.sh +exec-once = sh $HOME/.config/hypr/scripts/ApplyThemeMode.sh exec-once = sh $scriptsDir/WaybarStartup.sh +# Cursor refresh (enabled by installer on hybrid NVIDIA/GDM setups) +exec-once = sh -c 'sleep 0.3; hyprctl setcursor "${HYPRCURSOR_THEME:-Bibata-Modern-Ice}" "${HYPRCURSOR_SIZE:-24}"' exec-once = qs -c overview # Quickshell Overview exec-once = hypridle exec-once = $scriptsDir/LuaAutoReload.sh @@ -56,3 +59,5 @@ exec-once = wl-paste --type image --watch cliphist store #exec-once = $scriptsDir/PortalHyprland.sh exec-once = blueman-applet exec-once = $scriptsDir/KeybindsLayoutInit.sh +exec-once = ags +exec-once = qs diff --git a/config/hypr/configs/SystemSettings.conf b/config/hypr/configs/SystemSettings.conf index 8e64a78a..6db89ef8 100644 --- a/config/hypr/configs/SystemSettings.conf +++ b/config/hypr/configs/SystemSettings.conf @@ -157,7 +157,7 @@ render { cursor { sync_gsettings_theme = true - no_hardware_cursors = 2 # change to 1 if want to disable + no_hardware_cursors = 0 # change to 1 if want to disable enable_hyprcursor = true warp_on_change_workspace = 2 no_warps = true diff --git a/config/hypr/configs/WindowRules.conf b/config/hypr/configs/WindowRules.conf index 03ad5984..c292a6cb 100644 --- a/config/hypr/configs/WindowRules.conf +++ b/config/hypr/configs/WindowRules.conf @@ -567,3 +567,13 @@ windowrule { center = on size = (monitor_w*0.7) (monitor_h*0.75) } + +# Named rule for hyprland share picker +windowrule { + name = hyprland screen share picker + match:class = ^(hyprland-share-picker)$ + match:title = ^(Select what to share)$ + match:initial_class = ^(hyprland-share-picker)$ + float = on + center = on +} diff --git a/config/hypr/configs/system_keybinds.lua b/config/hypr/configs/system_keybinds.lua new file mode 100644 index 00000000..8223ecb9 --- /dev/null +++ b/config/hypr/configs/system_keybinds.lua @@ -0,0 +1,416 @@ +-- ================================================== +-- KoolDots (2026) +-- Project URL: https://github.com/LinuxBeginnings +-- License: GNU GPLv3 +-- SPDX-License-Identifier: GPL-3.0-or-later +-- ================================================== + +-- System defaults migrated from configs/Keybinds.conf (auto-generated). +-- Add keybinds with bind("MODS", "KEY", fn, opts). +-- Example: +-- bind("SUPER", "Z", exec_cmd("thunar"), { description = "Open file manager" }) + +local dsp = hl.dsp or hl +local function resolve_cmd(cmd) + local defaults = rawget(_G, "KOOLDOTS_DEFAULTS") or {} + local resolved_term = defaults.term or os.getenv("TERMINAL") or "kitty" + local resolved_files = defaults.files or "thunar" + local resolved_edit = defaults.edit or os.getenv("EDITOR") or "nano" + cmd = tostring(cmd) + cmd = cmd:gsub("%$term", resolved_term) + cmd = cmd:gsub("%$files", resolved_files) + cmd = cmd:gsub("%$edit", resolved_edit) + return cmd +end + +local function exec_cmd(cmd) + local resolved = resolve_cmd(cmd) + if dsp and dsp.exec_cmd then + return dsp.exec_cmd(resolved) + end + return function() hl.exec_cmd(resolved) end +end + +local function shell_quote(value) + return "'" .. tostring(value):gsub("'", "'\\''") .. "'" +end + +local function raw_dispatch_cmd(command) + if dsp and dsp.exec_raw then + return dsp.exec_raw(tostring(command)) + end + local expression = "hl.dsp.exec_raw(" .. string.format("%q", tostring(command)) .. ")" + return exec_cmd("hyprctl dispatch " .. shell_quote(expression)) +end + +local function trim(value) + return (value or ""):gsub("^%s+", ""):gsub("%s+$", "") +end + +local function chord(mods, key) + mods = trim(mods):gsub("%s+", " + ") + key = trim(key) + if mods == "" then + return key + end + return mods .. " + " .. key +end + +local function key_variants(key, mods) + key = trim(key):gsub("^xf86", "XF86") + local key_aliases = { + XF86AudioPlayPause = "XF86AudioPlay", + XF86audiolowervolume = "XF86AudioLowerVolume", + XF86audiomute = "XF86AudioMute", + XF86audioraisevolume = "XF86AudioRaiseVolume", + XF86audiostop = "XF86AudioStop", + } + key = key_aliases[key] or key + local shifted_number_keys = { + ["code:10"] = "exclam", + ["code:11"] = "at", + ["code:12"] = "numbersign", + ["code:13"] = "dollar", + ["code:14"] = "percent", + ["code:15"] = "asciicircum", + ["code:16"] = "ampersand", + ["code:17"] = "asterisk", + ["code:18"] = "parenleft", + ["code:19"] = "parenright", + } + local number_keys = { + ["code:10"] = "1", + ["code:11"] = "2", + ["code:12"] = "3", + ["code:13"] = "4", + ["code:14"] = "5", + ["code:15"] = "6", + ["code:16"] = "7", + ["code:17"] = "8", + ["code:18"] = "9", + ["code:19"] = "0", + } + if mods:match("SHIFT") and shifted_number_keys[key] then + local number_key = number_keys[key] + if number_key then + return { shifted_number_keys[key], number_key } + end + return { shifted_number_keys[key] } + end + if number_keys[key] then + return { number_keys[key] } + end + return { key } +end + +local function workspace_value(value) + value = trim(value) + return tonumber(value) or value +end + +local function direction(value) + local directions = { + l = "left", + r = "right", + u = "up", + d = "down", + left = "left", + right = "right", + up = "up", + down = "down", + } + return directions[trim(value)] or trim(value) +end + +local function dispatch(name, args) + local window_api = (dsp and dsp.window) or hl.window or {} + name = trim(name) + args = trim(args) + if name == "exec" then + return exec_cmd(args) + end + if name == "killactive" and window_api.close then + return window_api.close() + end + if name == "fullscreen" and window_api.fullscreen then + if args == "1" then + return window_api.fullscreen({ mode = "maximized" }) + end + return window_api.fullscreen({ mode = "fullscreen" }) + end + if name == "movefocus" and dsp and dsp.focus then + return function() + local ok, dispatcher = pcall(dsp.focus, { direction = direction(args) }) + if ok and dispatcher then + hl.dispatch(dispatcher) + end + end + end + if name == "cyclenext" then + if args == "prev" or args == "b" then + return exec_cmd("$HOME/.config/hypr/scripts/LuaCycleWindow.sh previous") + end + return exec_cmd("$HOME/.config/hypr/scripts/LuaCycleWindow.sh next") + end + if name == "swapwindow" then + local swap_direction = trim(args) + if swap_direction == "" then + return nil + end + return exec_cmd("$HOME/.config/hypr/scripts/LuaSwapWindow.sh " .. swap_direction) + end + if name == "workspace" and dsp and dsp.focus then + return function() hl.dispatch(dsp.focus({ workspace = workspace_value(args) })) end + end + if name == "movetoworkspace" and window_api.move then + return function() hl.dispatch(window_api.move({ workspace = workspace_value(args) })) end + end + if name == "movetoworkspacesilent" and window_api.move then + return function() hl.dispatch(window_api.move({ workspace = workspace_value(args), follow = false })) end + end + if name == "togglefloating" and window_api.float then + return function() hl.dispatch(window_api.float({ action = "toggle" })) end + end + if name == "resizewindow" and window_api.resize then + return window_api.resize() + end + if name == "resizeactive" and window_api.resize then + local x, y = args:match("^(%-?%d+)%s+(%-?%d+)$") + if x and y then + return window_api.resize({ x = tonumber(x) or 0, y = tonumber(y) or 0, relative = true }) + end + end + if name == "movewindow" and args == "" and window_api.drag then + return window_api.drag() + end + if args ~= "" then + return raw_dispatch_cmd(name .. " " .. args) + end + return raw_dispatch_cmd(name) +end + +local function bind(mods, key, fn, opts) + local seen = {} + for _, key_variant in ipairs(key_variants(key, mods)) do + local key_chord = chord(mods, key_variant) + if not seen[key_chord] then + seen[key_chord] = true + if opts then + hl.bind(key_chord, fn, opts) + else + hl.bind(key_chord, fn) + end + end + end +end + +local function unbind(mods, key) + if hl.unbind then + local seen = {} + for _, key_variant in ipairs(key_variants(key, mods)) do + local key_chord = chord(mods, key_variant) + if not seen[key_chord] then + seen[key_chord] = true + local ok = pcall(hl.unbind, mods, key_variant) + if not ok then + pcall(hl.unbind, key_chord) + end + end + end + end +end + +-- Converted from configs/Keybinds.conf +bind("SUPER", "D", exec_cmd("pkill rofi || true && rofi -show drun -modi drun, filebrowser, run, window"), { description = "app launcher" }) +bind("SUPER", "B", exec_cmd("xdg-open \"https://\""), { description = "open default browser" }) +bind("SUPER", "A", exec_cmd("$HOME/.config/hypr/scripts/OverviewToggle.sh"), { description = "desktop overview" }) +bind("SUPER", "Return", exec_cmd("$HOME/.config/hypr/scripts/LaunchTerminal.sh '$term'"), { description = "Open terminal" }) +bind("SUPER", "E", exec_cmd("$HOME/.config/hypr/scripts/LaunchFileManager.sh '$files' '$term'"), { description = "file manager" }) +bind("SUPER", "C", exec_cmd("$HOME/.config/hypr/scripts/rofi-ssh-menu.sh"), { description = "SSH session manager" }) +bind("SUPER", "T", exec_cmd("$HOME/.config/hypr/scripts/ThemeChanger.sh"), { description = "Global theme switcher using Wallust" }) +bind("SUPER", "H", exec_cmd("$HOME/.config/hypr/scripts/KeyHints.sh"), { description = "help / cheat sheet" }) +bind("SUPER ALT", "R", exec_cmd("$HOME/.config/hypr/scripts/Refresh.sh"), { description = "refresh bar and menus" }) +bind("SUPER ALT", "E", exec_cmd("$HOME/.config/hypr/scripts/RofiEmoji.sh"), { description = "emoji menu" }) +bind("SUPER", "S", exec_cmd("$HOME/.config/hypr/scripts/RofiSearch.sh"), { description = "web search" }) +bind("SUPER CTRL", "S", exec_cmd("rofi -show window"), { description = "window switcher" }) +bind("SUPER ALT", "O", exec_cmd("$HOME/.config/hypr/scripts/ChangeBlur.sh"), { description = "toggle blur" }) +bind("SUPER SHIFT", "G", exec_cmd("$HOME/.config/hypr/scripts/GameMode.sh"), { description = "toggle game mode" }) +bind("SUPER ALT", "L", exec_cmd("$HOME/.config/hypr/scripts/ChangeLayout.sh toggle"), { description = "toggle layouts" }) +bind("SUPER ALT", "V", exec_cmd("$HOME/.config/hypr/scripts/ClipManager.sh"), { description = "clipboard manager" }) +bind("SUPER CTRL", "R", exec_cmd("$HOME/.config/hypr/scripts/RofiThemeSelector.sh"), { description = "rofi theme selector" }) +bind("SUPER CTRL SHIFT", "R", exec_cmd("pkill rofi || true && $HOME/.config/hypr/scripts/RofiThemeSelector-modified.sh"), { description = "rofi theme selector (modified)" }) +bind("SUPER CTRL", "K", exec_cmd("$HOME/.config/hypr/scripts/Kitty_themes.sh"), { description = "Kitty theme selector" }) +bind("SUPER SHIFT", "B", exec_cmd("$HOME/.config/hypr/UserScripts/RainbowBorders-low-cpu.sh --run-once"), { description = "Set static Rainbow Border" }) +bind("SUPER SHIFT", "H", exec_cmd("$HOME/.config/hypr/scripts/Toggle-Active-Window-Audio.sh"), { description = "Toggle Mute/Unmute for Active-Window" }) +bind("ALT SHIFT", "S", exec_cmd("$HOME/.config/hypr/scripts/hyprshot.sh -m region -o $HOME/Pictures/Screenshots"), { description = "Hyprshot Screen Capture" }) +bind("SUPER SHIFT", "F", dispatch("fullscreen", ""), { description = "fullscreen" }) +bind("SUPER", "F", dispatch("fullscreen", "1"), { description = "maximize window" }) +bind("SUPER", "SPACE", dispatch("togglefloating", ""), { description = "Float current window" }) +bind("SUPER ALT", "SPACE", exec_cmd("$HOME/.config/hypr/scripts/Float-all-Windows.sh"), { description = "Float all windows" }) +bind("SUPER SHIFT", "Return", exec_cmd("$HOME/.config/hypr/scripts/Dropterminal.sh kitty"), { description = "DropDown terminal" }) +bind("SUPER ALT", "mouse_down", exec_cmd("hyprctl keyword cursor:zoom_factor \"$(hyprctl getoption cursor:zoom_factor | awk 'NR==1 {factor = $2; if (factor < 1) {factor = 1}; print factor * 2.0}')\""), { description = "zoom in" }) +bind("SUPER ALT", "mouse_up", exec_cmd("hyprctl keyword cursor:zoom_factor \"$(hyprctl getoption cursor:zoom_factor | awk 'NR==1 {factor = $2; if (factor < 1) {factor = 1}; print factor / 2.0}')\""), { description = "zoom out" }) +bind("SUPER CTRL ALT", "B", exec_cmd("pkill -SIGUSR1 waybar"), { description = "toggle waybar on/off" }) +bind("SUPER CTRL", "B", exec_cmd("$HOME/.config/hypr/scripts/WaybarStyles.sh"), { description = "waybar styles menu" }) +bind("SUPER ALT", "B", exec_cmd("$HOME/.config/hypr/scripts/WaybarLayout.sh"), { description = "waybar layout menu" }) +bind("SUPER", "N", exec_cmd("$HOME/.config/hypr/scripts/Hyprsunset.sh toggle"), { description = "Toggle Hyprsunset - night light" }) +bind("SUPER SHIFT", "M", exec_cmd("$HOME/.config/hypr/UserScripts/RofiBeats.sh"), { description = "online music" }) +bind("SUPER", "W", exec_cmd("$HOME/.config/hypr/scripts/WallpaperSelect.sh"), { description = "select wallpaper" }) +bind("SUPER SHIFT", "W", exec_cmd("$HOME/.config/hypr/scripts/WallpaperEffects.sh"), { description = "wallpaper effects" }) +bind("CTRL ALT", "W", exec_cmd("$HOME/.config/hypr/UserScripts/WallpaperRandom.sh"), { description = "random wallpaper" }) +bind("SUPER CTRL", "O", dispatch("setprop", "active opaque toggle"), { description = "toggle active window opacity" }) +bind("SUPER SHIFT", "K", exec_cmd("$HOME/.config/hypr/scripts/KeyBinds.sh"), { description = "search keybinds" }) +bind("SUPER SHIFT", "A", exec_cmd("$HOME/.config/hypr/scripts/Animations.sh"), { description = "animations menu" }) +bind("SUPER SHIFT", "R", exec_cmd("$HOME/.config/hypr/scripts/ZshChangeTheme.sh"), { description = "change oh-my-zsh theme" }) +bind("ALT_L", "SHIFT_L", exec_cmd("$HOME/.config/hypr/scripts/KeyboardLayout.sh switch"), { description = "switch keyboard layout globally", locked = true }) +bind("SHIFT_L", "ALT_L", exec_cmd("$HOME/.config/hypr/scripts/Tak0-Per-Window-Switch.sh"), { description = "switch keyboard layout per-window", locked = true }) +bind("SUPER ALT", "C", exec_cmd("$HOME/.config/hypr/UserScripts/RofiCalc.sh"), { description = "calculator" }) +bind("SUPER CTRL", "F9", dispatch("movecurrentworkspacetomonitor", "l"), { description = "move workspace to left monitor" }) +bind("SUPER CTRL", "F10", dispatch("movecurrentworkspacetomonitor", "r"), { description = "move workspace to right monitor" }) +bind("SUPER CTRL", "F11", dispatch("movecurrentworkspacetomonitor", "u"), { description = "move workspace to up monitor" }) +bind("SUPER CTRL", "F12", dispatch("movecurrentworkspacetomonitor", "d"), { description = "move workspace to down monitor" }) +bind("CTRL ALT", "Delete", exec_cmd("$HOME/.config/hypr/scripts/Logout.sh"), { description = "exit Hyprland" }) +bind("SUPER", "Q", dispatch("killactive", ""), { description = "close active window" }) +bind("SUPER SHIFT", "Q", exec_cmd("$HOME/.config/hypr/scripts/KillActiveProcess.sh"), { description = "Terminate active process" }) +bind("CTRL ALT", "L", exec_cmd("$HOME/.config/hypr/scripts/LockScreen.sh"), { description = "lock screen" }) +bind("CTRL ALT", "P", exec_cmd("$HOME/.config/hypr/scripts/Wlogout.sh"), { description = "powermenu" }) +bind("SUPER SHIFT", "N", exec_cmd("swaync-client -t -sw"), { description = "notification panel" }) +bind("SUPER SHIFT", "E", exec_cmd("$HOME/.config/hypr/scripts/Kool_Quick_Settings.sh"), { description = "Quick settings menu" }) +bind("SUPER CTRL", "D", dispatch("layoutmsg", "removemaster"), { description = "remove master" }) +bind("SUPER", "I", dispatch("layoutmsg", "addmaster"), { description = "add master" }) +bind( + "SUPER", + "j", + exec_cmd("$HOME/.config/hypr/scripts/LayoutKeybindDispatch.sh cycle-next"), + { description = "cycle next (layout-aware)" } +) +bind( + "SUPER", + "k", + exec_cmd("$HOME/.config/hypr/scripts/LayoutKeybindDispatch.sh cycle-prev"), + { description = "cycle previous (layout-aware)" } +) +bind("SUPER CTRL", "Return", dispatch("layoutmsg", "swapwithmaster"), { description = "swap with master" }) +bind("SUPER SHIFT", "I", dispatch("layoutmsg", "togglesplit"), { description = "toggle split (dwindle)" }) +bind("SUPER", "P", dispatch("pseudo", ""), { description = "toggle pseudo (dwindle)" }) +bind("SUPER", "M", exec_cmd("hyprctl dispatch splitratio 0.3"), { description = "set split ratio 0.3" }) +bind("SUPER ALT", "1", exec_cmd("$HOME/.config/hypr/scripts/ChangeLayout.sh dwindle"), { description = "layout dwindle" }) +bind("SUPER ALT", "2", exec_cmd("$HOME/.config/hypr/scripts/ChangeLayout.sh master"), { description = "layout master" }) +bind("SUPER ALT", "3", exec_cmd("$HOME/.config/hypr/scripts/ChangeLayout.sh scrolling"), { description = "layout scrolling" }) +bind("SUPER ALT", "4", exec_cmd("$HOME/.config/hypr/scripts/ChangeLayout.sh monocle"), { description = "layout monocle" }) +bind("SUPER SHIFT", "period", dispatch("layoutmsg", "move +col"), { description = "move to right column" }) +bind("SUPER SHIFT", "comma", dispatch("layoutmsg", "move -col"), { description = "move to left column" }) +bind("SUPER ALT", "comma", dispatch("layoutmsg", "swapcol l"), { description = "swap columns left" }) +bind("SUPER ALT", "period", dispatch("layoutmsg", "swapcol r"), { description = "swap columns right" }) +bind("SUPER ALT", "H", exec_cmd("hyprctl keyword scrolling:direction right"), { description = "Horizonal scroll right" }) +bind("SUPER ALT", "V", exec_cmd("hyprctl keyword scrolling:direction down"), { description = "Vertical Scroll down" }) +bind("SUPER ALT", "S", exec_cmd("bash -c '[[ $(hyprctl getoption scrolling:direction -j | jq -r \".str\") == \"right\" ]] && hyprctl keyword scrolling:direction down || hyprctl keyword scrolling:direction right'"), { description = "toggle scrolling V/H" }) +bind("ALT", "Tab", dispatch("cyclenext", ""), { description = "cycle next window" }) +bind("ALT", "Tab", dispatch("bringactivetotop", ""), { description = "bring active to top" }) +bind("", "xf86audioraisevolume", exec_cmd("$HOME/.config/hypr/scripts/Volume.sh --inc"), { description = "volume up", locked = true, ["repeat"] = true }) +bind("", "xf86audiolowervolume", exec_cmd("$HOME/.config/hypr/scripts/Volume.sh --dec"), { description = "volume down", locked = true, ["repeat"] = true }) +bind("ALT", "xf86audioraisevolume", exec_cmd("$HOME/.config/hypr/scripts/Volume.sh --inc-precise"), { description = "volume up precise", locked = true, ["repeat"] = true }) +bind("ALT", "xf86audiolowervolume", exec_cmd("$HOME/.config/hypr/scripts/Volume.sh --dec-precise"), { description = "volume down precise", locked = true, ["repeat"] = true }) +bind("", "xf86AudioMicMute", exec_cmd("$HOME/.config/hypr/scripts/Volume.sh --toggle-mic"), { description = "toggle mic mute", locked = true }) +bind("", "xf86audiomute", exec_cmd("$HOME/.config/hypr/scripts/Volume.sh --toggle"), { description = "toggle mute", locked = true }) +bind("", "xf86Sleep", exec_cmd("systemctl suspend"), { description = "sleep", locked = true }) +bind("", "xf86Rfkill", exec_cmd("$HOME/.config/hypr/scripts/AirplaneMode.sh"), { description = "airplane mode", locked = true }) +bind("", "xf86AudioPlayPause", exec_cmd("$HOME/.config/hypr/scripts/MediaCtrl.sh --pause"), { description = "play/pause", locked = true }) +bind("", "xf86AudioPause", exec_cmd("$HOME/.config/hypr/scripts/MediaCtrl.sh --pause"), { description = "pause", locked = true }) +bind("", "xf86AudioPlay", exec_cmd("$HOME/.config/hypr/scripts/MediaCtrl.sh --pause"), { description = "play", locked = true }) +bind("", "xf86AudioNext", exec_cmd("$HOME/.config/hypr/scripts/MediaCtrl.sh --nxt"), { description = "next track", locked = true }) +bind("", "xf86AudioPrev", exec_cmd("$HOME/.config/hypr/scripts/MediaCtrl.sh --prv"), { description = "previous track", locked = true }) +bind("", "xf86audiostop", exec_cmd("$HOME/.config/hypr/scripts/MediaCtrl.sh --stop"), { description = "stop", locked = true }) +bind("SUPER", "Print", exec_cmd("$HOME/.config/hypr/scripts/ScreenShot.sh --now"), { description = "screenshot now" }) +bind("SUPER SHIFT", "Print", exec_cmd("$HOME/.config/hypr/scripts/ScreenShot.sh --area"), { description = "screenshot (area)" }) +bind("SUPER CTRL", "Print", exec_cmd("$HOME/.config/hypr/scripts/ScreenShot.sh --in5"), { description = "screenshot in 5s" }) +bind("SUPER CTRL SHIFT", "Print", exec_cmd("$HOME/.config/hypr/scripts/ScreenShot.sh --in10"), { description = "screenshot in 10s" }) +bind("ALT", "Print", exec_cmd("$HOME/.config/hypr/scripts/ScreenShot.sh --active"), { description = "screenshot active window" }) +bind("SUPER SHIFT", "S", exec_cmd("$HOME/.config/hypr/scripts/ScreenShot.sh --swappy"), { description = "screenshot (swappy)" }) +bind("SUPER SHIFT", "left", dispatch("resizeactive", "-50 0"), { description = "resize left (-50)", ["repeat"] = true }) +bind("SUPER SHIFT", "right", dispatch("resizeactive", "50 0"), { description = "resize right (+50)", ["repeat"] = true }) +bind("SUPER SHIFT", "up", dispatch("resizeactive", "0 -50"), { description = "resize up (-50)", ["repeat"] = true }) +bind("SUPER SHIFT", "down", dispatch("resizeactive", "0 50"), { description = "resize down (+50)", ["repeat"] = true }) +bind("SUPER CTRL", "left", dispatch("movewindow", "l"), { description = "move window left" }) +bind("SUPER CTRL", "right", dispatch("movewindow", "r"), { description = "move window right" }) +bind("SUPER CTRL", "up", dispatch("movewindow", "u"), { description = "move window up" }) +bind("SUPER CTRL", "down", dispatch("movewindow", "d"), { description = "move window down" }) +bind("SUPER ALT", "left", dispatch("swapwindow", "l"), { description = "swap window left" }) +bind("SUPER ALT", "right", dispatch("swapwindow", "r"), { description = "swap window right" }) +bind("SUPER ALT", "up", dispatch("swapwindow", "u"), { description = "swap window up" }) +bind("SUPER ALT", "down", dispatch("swapwindow", "d"), { description = "swap window down" }) +bind("SUPER", "G", dispatch("togglegroup", ""), { description = "toggle group" }) +bind("SUPER", "Tab", dispatch("changegroupactive", "f"), { description = "Change Group Forward" }) +bind("SUPER CTRL", "tab", dispatch("changegroupactive", ""), { description = "change active in group" }) +bind("SUPER SHIFT", "Tab", dispatch("changegroupactive", "b"), { description = "Change Group Back" }) +bind("SUPER CTRL", "K", dispatch("moveintogroup", "l"), { description = "Move left into group" }) +bind("SUPER CTRL", "L", dispatch("moveintogroup", "r"), { description = "Move Right into group" }) +bind("SUPER CTRL", "H", dispatch("moveoutofgroup", ""), { description = "Move active out of group" }) +bind( + "SUPER", + "left", + exec_cmd("$HOME/.config/hypr/scripts/LayoutKeybindDispatch.sh focus-left"), + { description = "focus left (layout-aware)" } +) +bind( + "SUPER", + "right", + exec_cmd("$HOME/.config/hypr/scripts/LayoutKeybindDispatch.sh focus-right"), + { description = "focus right (layout-aware)" } +) +bind( + "SUPER", + "up", + exec_cmd("$HOME/.config/hypr/scripts/LayoutKeybindDispatch.sh focus-up"), + { description = "focus up (layout-aware)" } +) +bind( + "SUPER", + "down", + exec_cmd("$HOME/.config/hypr/scripts/LayoutKeybindDispatch.sh focus-down"), + { description = "focus down (layout-aware)" } +) +bind("SUPER", "tab", dispatch("workspace", "m+1"), { description = "next workspace" }) +bind("SUPER SHIFT", "tab", dispatch("workspace", "m-1"), { description = "previous workspace" }) +bind("SUPER SHIFT", "U", dispatch("movetoworkspace", "special"), { description = "move to special workspace" }) +bind("SUPER", "U", dispatch("togglespecialworkspace", ""), { description = "toggle special workspace" }) +bind("SUPER", "code:10", dispatch("workspace", "1"), { description = "workspace 1" }) +bind("SUPER", "code:11", dispatch("workspace", "2"), { description = "workspace 2" }) +bind("SUPER", "code:12", dispatch("workspace", "3"), { description = "workspace 3" }) +bind("SUPER", "code:13", dispatch("workspace", "4"), { description = "workspace 4" }) +bind("SUPER", "code:14", dispatch("workspace", "5"), { description = "workspace 5" }) +bind("SUPER", "code:15", dispatch("workspace", "6"), { description = "workspace 6" }) +bind("SUPER", "code:16", dispatch("workspace", "7"), { description = "workspace 7" }) +bind("SUPER", "code:17", dispatch("workspace", "8"), { description = "workspace 8" }) +bind("SUPER", "code:18", dispatch("workspace", "9"), { description = "workspace 9" }) +bind("SUPER", "code:19", dispatch("workspace", "10"), { description = "workspace 10" }) +bind("SUPER SHIFT", "code:10", dispatch("movetoworkspace", "1"), { description = "move to workspace 1" }) +bind("SUPER SHIFT", "code:11", dispatch("movetoworkspace", "2"), { description = "move to workspace 2" }) +bind("SUPER SHIFT", "code:12", dispatch("movetoworkspace", "3"), { description = "move to workspace 3" }) +bind("SUPER SHIFT", "code:13", dispatch("movetoworkspace", "4"), { description = "move to workspace 4" }) +bind("SUPER SHIFT", "code:14", dispatch("movetoworkspace", "5"), { description = "move to workspace 5" }) +bind("SUPER SHIFT", "code:15", dispatch("movetoworkspace", "6"), { description = "move to workspace 6" }) +bind("SUPER SHIFT", "code:16", dispatch("movetoworkspace", "7"), { description = "move to workspace 7" }) +bind("SUPER SHIFT", "code:17", dispatch("movetoworkspace", "8"), { description = "move to workspace 8" }) +bind("SUPER SHIFT", "code:18", dispatch("movetoworkspace", "9"), { description = "move to workspace 9" }) +bind("SUPER SHIFT", "code:19", dispatch("movetoworkspace", "10"), { description = "move to workspace 10" }) +bind("SUPER SHIFT", "bracketleft", dispatch("movetoworkspace", "-1"), { description = "move to previous workspace" }) +bind("SUPER SHIFT", "bracketright", dispatch("movetoworkspace", "+1"), { description = "move to next workspace" }) +bind("SUPER CTRL", "code:10", dispatch("movetoworkspacesilent", "1"), { description = "move silently to workspace 1" }) +bind("SUPER CTRL", "code:11", dispatch("movetoworkspacesilent", "2"), { description = "move silently to workspace 2" }) +bind("SUPER CTRL", "code:12", dispatch("movetoworkspacesilent", "3"), { description = "move silently to workspace 3" }) +bind("SUPER CTRL", "code:13", dispatch("movetoworkspacesilent", "4"), { description = "move silently to workspace 4" }) +bind("SUPER CTRL", "code:14", dispatch("movetoworkspacesilent", "5"), { description = "move silently to workspace 5" }) +bind("SUPER CTRL", "code:15", dispatch("movetoworkspacesilent", "6"), { description = "move silently to workspace 6" }) +bind("SUPER CTRL", "code:16", dispatch("movetoworkspacesilent", "7"), { description = "move silently to workspace 7" }) +bind("SUPER CTRL", "code:17", dispatch("movetoworkspacesilent", "8"), { description = "move silently to workspace 8" }) +bind("SUPER CTRL", "code:18", dispatch("movetoworkspacesilent", "9"), { description = "move silently to workspace 9" }) +bind("SUPER CTRL", "code:19", dispatch("movetoworkspacesilent", "10"), { description = "move silently to workspace 10" }) +bind("SUPER CTRL", "bracketleft", dispatch("movetoworkspacesilent", "-1"), { description = "move silently to previous workspace" }) +bind("SUPER CTRL", "bracketright", dispatch("movetoworkspacesilent", "+1"), { description = "move silently to next workspace" }) +bind("SUPER", "mouse_down", dispatch("workspace", "e+1"), { description = "next workspace" }) +bind("SUPER", "mouse_up", dispatch("workspace", "e-1"), { description = "previous workspace" }) +bind("SUPER", "period", dispatch("workspace", "e+1"), { description = "next workspace" }) +bind("SUPER", "comma", dispatch("workspace", "e-1"), { description = "previous workspace" }) +bind("SUPER", "mouse:272", dispatch("movewindow", ""), { description = "move window" }) +bind("SUPER", "mouse:273", dispatch("resizewindow", ""), { description = "resize window" }) diff --git a/config/hypr/hypridle.conf b/config/hypr/hypridle.conf index fbf0b3ad..9ef48140 100644 --- a/config/hypr/hypridle.conf +++ b/config/hypr/hypridle.conf @@ -1,7 +1,7 @@ # /* ---- 💫 https://github.com/LinuxBeginnings 💫 ---- */ # # Hypridle -# Original config submitted by https://github.com/SherLock707 - +# Original config submitted by https://github.com/SherLock707 + $iDIR="$HOME/.config/swaync/images/ja.png" general { @@ -35,12 +35,11 @@ listener { } # Turn off screen -# (disabled by default) -# listener { -# timeout = 630 # 10.5 min -# on-timeout = hyprctl dispatch dpms off # command to run when timeout has passed -# on-resume = hyprctl dispatch dpms on # command to run when activity is detected after timeout has fired. -# } + listener { + timeout = 720 # 12 min + on-timeout = hyprctl dispatch dpms off # command to run when timeout has passed + on-resume = hyprctl dispatch dpms on # command to run when activity is detected after timeout has fired. + } # Suspend # disabled by default # listener { diff --git a/config/hypr/initial-boot.sh b/config/hypr/initial-boot.sh index b45c31aa..84ae8c00 100755 --- a/config/hypr/initial-boot.sh +++ b/config/hypr/initial-boot.sh @@ -2,15 +2,15 @@ # /* ---- 💫 https://github.com/LinuxBeginnings 💫 ---- */ # # A bash script designed to run only once dotfiles installed -# THIS SCRIPT CAN BE DELETED ONCE SUCCESSFULLY BOOTED!! And also, edit ~/.config/hypr/configs/Settings.conf +# THIS SCRIPT CAN BE DELETED ONCE SUCCESSFULLY BOOTED!! And also, edit ${XDG_CONFIG_HOME:-$HOME/.config}/hypr/configs/Settings.conf # NOT necessary to do since this script is only designed to run only once as long as the marker exists -# marker file is located at ~/.config/hypr/.initial_startup_done +# marker file is located at ${XDG_CONFIG_HOME:-$HOME/.config}/hypr/.initial_startup_done # However, I do highly suggest not to touch it since again, as long as the marker exist, script wont run # Variables -scriptsDir=$HOME/.config/hypr/scripts -wallpaper=$HOME/.config/hypr/wallpaper_effects/.wallpaper_current -waybar_style="$HOME/.config/waybar/style/[Extra] Neon Circuit.css" +scriptsDir=${XDG_CONFIG_HOME:-$HOME/.config}/hypr/scripts +wallpaper=${XDG_CONFIG_HOME:-$HOME/.config}/hypr/wallpaper_effects/.wallpaper_current +waybar_style="${XDG_CONFIG_HOME:-$HOME/.config}/waybar/style/[Extra] Neon Circuit.css" kvantum_theme="catppuccin-mocha-blue" color_scheme="prefer-dark" gtk_theme="Flat-Remix-GTK-Blue-Dark" @@ -54,7 +54,7 @@ swww="$WWW img" effect="--transition-bezier .43,1.19,1,.4 --transition-fps 30 --transition-type grow --transition-pos 0.925,0.977 --transition-duration 2" # Check if a marker file exists. -if [ ! -f "$HOME/.config/hypr/.initial_startup_done" ]; then +if [ ! -f "${XDG_CONFIG_HOME:-$HOME/.config}/hypr/.initial_startup_done" ]; then # Apply appearance preferences early and synchronously to avoid startup races # where Flatpak/libadwaita apps can default to light mode. set_interface_pref_with_retry color-scheme "'$color_scheme'" "'$color_scheme'" || true @@ -82,14 +82,14 @@ if [ ! -f "$HOME/.config/hypr/.initial_startup_done" ]; then kvantummanager --set "$kvantum_theme" > /dev/null 2>&1 & # waybar style - #if [ -L "$HOME/.config/waybar/config" ]; then - ## ln -sf "$waybar_style" "$HOME/.config/waybar/style.css" + #if [ -L "${XDG_CONFIG_HOME:-$HOME/.config}/waybar/config" ]; then + ## ln -sf "$waybar_style" "${XDG_CONFIG_HOME:-$HOME/.config}/waybar/style.css" # "$scriptsDir/Refresh.sh" > /dev/null 2>&1 & #fi # Create a marker file to indicate that the script has been executed. - touch "$HOME/.config/hypr/.initial_startup_done" + touch "${XDG_CONFIG_HOME:-$HOME/.config}/hypr/.initial_startup_done" exit fi diff --git a/config/hypr/lua/env.lua b/config/hypr/lua/env.lua index 348bf5db..cc248c20 100644 --- a/config/hypr/lua/env.lua +++ b/config/hypr/lua/env.lua @@ -9,7 +9,7 @@ -- - config/hypr/configs/ENVariables.conf -- - config/hypr/UserConfigs/ENVariables.conf (active values only) -hl.env("DOTS_VERSION", "2.3.24") +hl.env("DOTS_VERSION", "2.3.25") hl.env("GDK_BACKEND", "wayland,x11,*") hl.env("QT_QPA_PLATFORM", "wayland;xcb") hl.env("CLUTTER_BACKEND", "wayland") @@ -19,8 +19,8 @@ hl.env("XDG_SESSION_TYPE", "wayland") hl.env("QT_AUTO_SCREEN_SCALE_FACTOR", "1") hl.env("QT_WAYLAND_DISABLE_WINDOWDECORATION", "1") hl.env("QT_QPA_PLATFORMTHEME", "qt6ct") -hl.env("QT_STYLE_OVERRIDE", "kvantum") -hl.env("QT_QUICK_CONTROLS_STYLE", "org.hyprland.style") +hl.env("QT_STYLE_OVERRIDE", "Fusion") +hl.env("QT_QUICK_CONTROLS_STYLE", "Basic") hl.env("GDK_SCALE", "1") hl.env("QT_SCALE_FACTOR", "1") hl.env("MOZ_ENABLE_WAYLAND", "1") diff --git a/config/hypr/lua/keybind_helpers.lua b/config/hypr/lua/keybind_helpers.lua index 92dc952b..97618d8f 100644 --- a/config/hypr/lua/keybind_helpers.lua +++ b/config/hypr/lua/keybind_helpers.lua @@ -112,17 +112,29 @@ local function dispatch(name, args) return raw_dispatch_cmd(args) end - if name == "killactive" and window_api.close then - return window_api.close() + if name == "killactive" then + if window_api.close then + return window_api.close() + end + if window_api.kill then + return window_api.kill() + end + return raw_dispatch_cmd("killactive") end if name == "togglefloating" and window_api.float then return window_api.float({ action = "toggle" }) end - if name == "fullscreen" and window_api.fullscreen then + if name == "fullscreen" then + if window_api.fullscreen then + if args == "1" then + return window_api.fullscreen({ mode = "maximized" }) + end + return window_api.fullscreen({ mode = "fullscreen" }) + end if args == "1" then - return window_api.fullscreen({ mode = "maximized" }) + return exec_cmd("hyprctl dispatch 'hl.dsp.window.fullscreen({ mode = \"maximized\" })'") end - return window_api.fullscreen({ mode = "fullscreen" }) + return exec_cmd("hyprctl dispatch 'hl.dsp.window.fullscreen({ mode = \"fullscreen\" })'") end if name == "pseudo" and window_api.pseudo then return window_api.pseudo() @@ -315,6 +327,7 @@ local keys_to_unbind = { "SUPER + V", "SUPER + W", "SUPER + P", + "SUPER + R", "SUPER + N", "SUPER + T", "SUPER + X", diff --git a/config/hypr/lua/keybinds.lua b/config/hypr/lua/keybinds.lua index 6bf71e47..3730e825 100644 --- a/config/hypr/lua/keybinds.lua +++ b/config/hypr/lua/keybinds.lua @@ -59,18 +59,33 @@ keybind_helpers.unbind_default_keys() -- ================================================== -- Section: Application launchers and utility scripts local app_binds = { - { "SUPER", "D", "pkill rofi || true && rofi -show drun -modi drun,filebrowser,run,window", "app launcher" }, + { + "SUPER", + "D", + "pkill rofi || true; $HOME/.config/hypr/scripts/RofiFocusedWallpaperLink.sh >/dev/null 2>&1 || true; rofi -show drun -modi drun,filebrowser,run,window", + "app launcher", + }, { "SUPER", "B", 'xdg-open "https://"', "open default browser" }, { "SUPER", "A", "$HOME/.config/hypr/scripts/OverviewToggle.sh", "desktop overview" }, - { "SUPER", "Return", "kitty", "Open terminal" }, - { "SUPER", "E", "thunar", "file manager" }, + { "SUPER", "Return", "$HOME/.config/hypr/scripts/LaunchTerminal.sh '$term'", "Open terminal" }, + { + "SUPER", + "E", + "$HOME/.config/hypr/scripts/LaunchFileManager.sh '$files' '$term'", + "file manager", + }, { "SUPER", "C", "$HOME/.config/hypr/scripts/rofi-ssh-menu.sh", "SSH session manager" }, { "SUPER", "T", "$HOME/.config/hypr/scripts/ThemeChanger.sh", "Global theme switcher using Wallust" }, { "SUPER", "H", "$HOME/.config/hypr/scripts/KeyHints.sh", "help / cheat sheet" }, { "SUPER ALT", "R", "$HOME/.config/hypr/scripts/Refresh.sh", "refresh bar and menus" }, { "SUPER ALT", "E", "$HOME/.config/hypr/scripts/RofiEmoji.sh", "emoji menu" }, { "SUPER", "S", "$HOME/.config/hypr/scripts/RofiSearch.sh", "web search" }, - { "SUPER CTRL", "S", "rofi -show window", "window switcher" }, + { + "SUPER CTRL", + "S", + "$HOME/.config/hypr/scripts/RofiFocusedWallpaperLink.sh >/dev/null 2>&1 || true; rofi -show window", + "window switcher", + }, { "SUPER ALT", "O", "$HOME/.config/hypr/scripts/ChangeBlur.sh", "toggle blur" }, { "SUPER SHIFT", "G", "$HOME/.config/hypr/scripts/GameMode.sh", "toggle game mode" }, { "SUPER ALT", "L", "$HOME/.config/hypr/scripts/ChangeLayout.sh toggle", "toggle layouts" }, @@ -122,12 +137,12 @@ local app_binds = { { "SUPER ALT", "B", "$HOME/.config/hypr/scripts/WaybarLayout.sh", "waybar layout menu" }, { "SUPER", "N", "$HOME/.config/hypr/scripts/Hyprsunset.sh toggle", "Toggle Hyprsunset - night light" }, { "SUPER SHIFT", "M", "$HOME/.config/hypr/UserScripts/RofiBeats.sh", "online music" }, - { "SUPER", "W", "$HOME/.config/hypr/UserScripts/WallpaperSelect.sh", "select wallpaper" }, - { "SUPER SHIFT", "W", "$HOME/.config/hypr/UserScripts/WallpaperEffects.sh", "wallpaper effects" }, - { "CTRL ALT", "W", "$HOME/.config/hypr/UserScripts/WallpaperRandom.sh", "random wallpaper" }, + { "SUPER", "W", "$HOME/.config/hypr/scripts/WallpaperSelect.sh", "select wallpaper" }, + { "SUPER SHIFT", "W", "$HOME/.config/hypr/scripts/WallpaperEffects.sh", "wallpaper effects" }, + { "CTRL ALT", "W", "$HOME/.config/hypr/scripts/WallpaperRandom.sh", "random wallpaper" }, { "SUPER SHIFT", "K", "$HOME/.config/hypr/scripts/KeyBinds.sh", "search keybinds" }, { "SUPER SHIFT", "A", "$HOME/.config/hypr/scripts/Animations.sh", "animations menu" }, - { "SUPER SHIFT", "O", "$HOME/.config/hypr/UserScripts/ZshChangeTheme.sh", "change oh-my-zsh theme" }, + { "SUPER SHIFT", "R", "$HOME/.config/hypr/scripts/ZshChangeTheme.sh", "change oh-my-zsh theme" }, { "SUPER ALT", "C", "$HOME/.config/hypr/UserScripts/RofiCalc.sh", "calculator" }, } for _, app in ipairs(app_binds) do @@ -196,7 +211,7 @@ end -- Section: Window/session controls bind("SUPER SHIFT", "F", dispatch("fullscreen", ""), { description = "fullscreen" }) -bind("SUPER CTRL", "F", dispatch("fullscreen", "1"), { description = "maximize window" }) +bind("SUPER", "F", dispatch("fullscreen", "1"), { description = "maximize window" }) bind("SUPER", "SPACE", dispatch("togglefloating", ""), { description = "Float current window" }) bind("SUPER CTRL", "O", dispatch("setprop", "active opaque toggle"), { description = "toggle active window opacity" }) bind( @@ -256,12 +271,17 @@ bind( -- Section: Layout and tiling controls bind("SUPER CTRL", "D", dispatch("layoutmsg", "removemaster"), { description = "remove master" }) bind("SUPER", "I", dispatch("layoutmsg", "addmaster"), { description = "add master" }) -bind("SUPER", "j", exec_cmd("$HOME/.config/hypr/scripts/LuaCycleWindow.sh next"), { description = "cycle next" }) +bind( + "SUPER", + "j", + exec_cmd("$HOME/.config/hypr/scripts/LayoutKeybindDispatch.sh cycle-next"), + { description = "cycle next (layout-aware)" } +) bind( "SUPER", "k", - exec_cmd("$HOME/.config/hypr/scripts/LuaCycleWindow.sh previous"), - { description = "cycle previous" } + exec_cmd("$HOME/.config/hypr/scripts/LayoutKeybindDispatch.sh cycle-prev"), + { description = "cycle previous (layout-aware)" } ) bind("SUPER CTRL", "Return", dispatch("layoutmsg", "swapwithmaster"), { description = "swap with master" }) bind("SUPER SHIFT", "I", dispatch("layoutmsg", "togglesplit"), { description = "toggle split (dwindle)" }) @@ -305,6 +325,88 @@ bind( ), { description = "toggle scrolling V/H" } ) +local col_width_presets = { 0.25, 0.33, 0.5, 0.66, 0.75, 1.0 } +local function _as_number(v) + if type(v) == "number" then + return v + end + if type(v) == "string" then + return tonumber(v) + end + return nil +end +local function _window_width(win) + if type(win) ~= "table" then + return nil + end + local sz = win.size + if type(sz) == "number" then + return sz + end + if type(sz) == "table" then + return _as_number(sz[1] or sz.width or sz.w) + end + return nil +end +local function _monitor_width(win) + local mon = type(win) == "table" and win.monitor or nil + if type(mon) == "table" then + local w = _as_number(mon.width or mon.w or (type(mon.size) == "table" and (mon.size[1] or mon.size.width))) + if w ~= nil then + return w + end + end + if hl.get_active_monitor then + local active_mon = hl.get_active_monitor() + if type(active_mon) == "table" then + local w = _as_number(active_mon.width or active_mon.w or (type(active_mon.size) == "table" and (active_mon.size[1] or active_mon.size.width))) + if w ~= nil then + return w + end + end + end + return nil +end +bind("SUPER", "R", function() + local ws = hl.get_active_workspace and hl.get_active_workspace() or nil + local ws_layout = ws and (ws.tiled_layout or ws.tiledLayout) or nil + if ws_layout ~= "scrolling" then + return + end + + local w = hl.get_active_window and hl.get_active_window() or nil + local col = w ~= nil and w.layout and w.layout.column or nil + local current_width = nil + if type(col) == "table" then + current_width = _as_number(col.width) + else + current_width = _as_number(col) + end + if type(current_width) ~= "number" then + local ww = _window_width(w) + local mw = _monitor_width(w) + if type(ww) == "number" and type(mw) == "number" and mw > 0 then + current_width = ww / mw + end + end + if type(current_width) ~= "number" or current_width <= 0 then + return + end + if current_width > 1 then + current_width = 1 + end + + local closest, best = 1, math.huge + for i, v in ipairs(col_width_presets) do + local diff = math.abs(v - current_width) + if diff < best then + best, closest = diff, i + end + end + + local nextIdx = closest % #col_width_presets + 1 + hl.dispatch(hl.dsp.layout("colresize " .. tostring(col_width_presets[nextIdx]))) +end, { description = "cycle column width preset (scrolling)" }) bind("ALT", "Tab", exec_cmd("$HOME/.config/hypr/scripts/LuaCycleWindow.sh next"), { description = "cycle next window" }) -- Section: Audio, media, and hardware keys @@ -511,10 +613,30 @@ bind("SUPER SHIFT", "Tab", dispatch("changegroupactive", "b"), { description = " bind("SUPER CTRL", "K", dispatch("moveintogroup", "l"), { description = "Move left into group" }) bind("SUPER CTRL", "L", dispatch("moveintogroup", "r"), { description = "Move Right into group" }) bind("SUPER CTRL", "H", dispatch("moveoutofgroup", ""), { description = "Move active out of group" }) -bind("SUPER", "left", dispatch("movefocus", "l"), { description = "focus left" }) -bind("SUPER", "right", dispatch("movefocus", "r"), { description = "focus right" }) -bind("SUPER", "up", dispatch("movefocus", "u"), { description = "focus up" }) -bind("SUPER", "down", dispatch("movefocus", "d"), { description = "focus down" }) +bind( + "SUPER", + "left", + exec_cmd("$HOME/.config/hypr/scripts/LayoutKeybindDispatch.sh focus-left"), + { description = "focus left (layout-aware)" } +) +bind( + "SUPER", + "right", + exec_cmd("$HOME/.config/hypr/scripts/LayoutKeybindDispatch.sh focus-right"), + { description = "focus right (layout-aware)" } +) +bind( + "SUPER", + "up", + exec_cmd("$HOME/.config/hypr/scripts/LayoutKeybindDispatch.sh focus-up"), + { description = "focus up (layout-aware)" } +) +bind( + "SUPER", + "down", + exec_cmd("$HOME/.config/hypr/scripts/LayoutKeybindDispatch.sh focus-down"), + { description = "focus down (layout-aware)" } +) -- Section: Workspace navigation and assignment -- Keep legacy relative workspace focus script binds commented for rollback during Lua API migration. diff --git a/config/hypr/lua/settings.lua b/config/hypr/lua/settings.lua index 78ae61e2..eaa5aeeb 100644 --- a/config/hypr/lua/settings.lua +++ b/config/hypr/lua/settings.lua @@ -159,7 +159,7 @@ hl.config({ hl.config({ cursor = { sync_gsettings_theme = true, - no_hardware_cursors = 2, + no_hardware_cursors = 0, enable_hyprcursor = true, warp_on_change_workspace = 2, no_warps = true, diff --git a/config/hypr/lua/startup.lua b/config/hypr/lua/startup.lua index 6c189113..1fa4df82 100644 --- a/config/hypr/lua/startup.lua +++ b/config/hypr/lua/startup.lua @@ -25,9 +25,18 @@ local function exec_once(cmd) local key = cmd:gsub("[^%w_.-]", "_"):sub(1, 80) local marker = "/tmp/hypr-lua-exec-once-" .. session .. "-" .. key local log = "/tmp/hypr-lua-startup-" .. key .. ".log" - local readiness = "runtime=${XDG_RUNTIME_DIR:-/run/user/$(id -u)}; export XDG_RUNTIME_DIR=\"$runtime\"; for _ in $(seq 1 200); do if [ -n \"$WAYLAND_DISPLAY\" ] && [ -S \"$runtime/$WAYLAND_DISPLAY\" ]; then break; fi; for sock in \"$runtime\"/wayland-[0-9]*; do [ -S \"$sock\" ] || continue; case \"$(basename \"$sock\")\" in *awww*) continue ;; esac; export WAYLAND_DISPLAY=\"$(basename \"$sock\")\"; break 2; done; sleep 0.1; done; if [ -n \"$HYPRLAND_INSTANCE_SIGNATURE\" ]; then hypr_sock=\"$runtime/hypr/$HYPRLAND_INSTANCE_SIGNATURE/.socket.sock\"; for _ in $(seq 1 200); do [ -S \"$hypr_sock\" ] && break; sleep 0.1; done; fi" + local readiness = + 'runtime=${XDG_RUNTIME_DIR:-/run/user/$(id -u)}; export XDG_RUNTIME_DIR="$runtime"; for _ in $(seq 1 200); do if [ -n "$WAYLAND_DISPLAY" ] && [ -S "$runtime/$WAYLAND_DISPLAY" ]; then break; fi; for sock in "$runtime"/wayland-[0-9]*; do [ -S "$sock" ] || continue; case "$(basename "$sock")" in *awww*) continue ;; esac; export WAYLAND_DISPLAY="$(basename "$sock")"; break 2; done; sleep 0.1; done; if [ -n "$HYPRLAND_INSTANCE_SIGNATURE" ]; then hypr_sock="$runtime/hypr/$HYPRLAND_INSTANCE_SIGNATURE/.socket.sock"; for _ in $(seq 1 200); do [ -S "$hypr_sock" ] && break; sleep 0.1; done; fi' local inner = readiness .. "; " .. cmd - local script = "[ -e " .. shell_quote(marker) .. " ] || { touch " .. shell_quote(marker) .. " && sh -lc " .. shell_quote(inner) .. " >>" .. shell_quote(log) .. " 2>&1 & }" + local script = "[ -e " + .. shell_quote(marker) + .. " ] || { touch " + .. shell_quote(marker) + .. " && sh -lc " + .. shell_quote(inner) + .. " >>" + .. shell_quote(log) + .. " 2>&1 & }" os.execute("sh -lc " .. shell_quote(script)) end -- Prefer lifecycle-hook orchestration for clarity while keeping exec_once @@ -39,9 +48,11 @@ local startup_commands = { "systemctl --user import-environment WAYLAND_DISPLAY XDG_CURRENT_DESKTOP", scriptsDir .. "/Polkit.sh", "nm-applet", - "nm-tray", + -- nm-tray now optional for ubuntu + -- "nm-tray", "swaync", scriptsDir .. "/PortalHyprland.sh", + "sh $HOME/.config/hypr/scripts/ApplyThemeMode.sh", "sh " .. scriptsDir .. "/WaybarStartup.sh", "qs -c overview", "hypridle", @@ -67,5 +78,5 @@ end -- Optional startup examples retained from the original config: -- exec_once("mpvpaper '*' -o \"load-scripts=no no-audio --loop\" \"\"") --- exec_once(userScripts .. "/WallpaperAutoChange.sh " .. wallDir) +-- exec_once(scriptsDir .. "/WallpaperAutoChange.sh " .. wallDir) -- exec_once(userScripts .. "/RainbowBorders.sh") diff --git a/config/hypr/lua/user_keybinds_helper.lua b/config/hypr/lua/user_keybinds_helper.lua index f9d4aa0c..66398bd9 100644 --- a/config/hypr/lua/user_keybinds_helper.lua +++ b/config/hypr/lua/user_keybinds_helper.lua @@ -125,14 +125,26 @@ local function dispatch(name, args) if name == "exec" then return exec_cmd(args) end - if name == "killactive" and window_api.close then - return window_api.close() + if name == "killactive" then + if window_api.close then + return window_api.close() + end + if window_api.kill then + return window_api.kill() + end + return raw_dispatch_cmd("killactive") end - if name == "fullscreen" and window_api.fullscreen then + if name == "fullscreen" then + if window_api.fullscreen then + if args == "1" then + return window_api.fullscreen({ mode = "maximized" }) + end + return window_api.fullscreen({ mode = "fullscreen" }) + end if args == "1" then - return window_api.fullscreen({ mode = "maximized" }) + return exec_cmd("hyprctl dispatch 'hl.dsp.window.fullscreen({ mode = \"maximized\" })'") end - return window_api.fullscreen({ mode = "fullscreen" }) + return exec_cmd("hyprctl dispatch 'hl.dsp.window.fullscreen({ mode = \"fullscreen\" })'") end if name == "movefocus" and dsp and dsp.focus then return function() diff --git a/config/hypr/lua/user_overrides.lua b/config/hypr/lua/user_overrides.lua index 42502315..149962d5 100644 --- a/config/hypr/lua/user_overrides.lua +++ b/config/hypr/lua/user_overrides.lua @@ -11,6 +11,36 @@ local configHome = os.getenv("XDG_CONFIG_HOME") or ((os.getenv("HOME") or "") .. local hyprDir = configHome .. "/hypr" local systemDir = hyprDir .. "/configs" local userDir = configHome .. "/hypr/UserConfigs" +local function has_kvantum_qml_module() + local cmd = "find /usr/lib /usr/lib64 /usr/share -type d -path '*/qml/*/kvantum' -print -quit 2>/dev/null" + local pipe = io.popen(cmd, "r") + if not pipe then + return false + end + local output = pipe:read("*a") or "" + pipe:close() + return output:match("%S") ~= nil +end + +local function apply_qt_style_fallbacks() + if not hl or not hl.env then + return + end + + if has_kvantum_qml_module() then + return + end + + local style_override = (os.getenv("QT_STYLE_OVERRIDE") or ""):lower() + if style_override == "kvantum" or style_override == "kvantum-dark" then + hl.env("QT_STYLE_OVERRIDE", "Fusion") + end + + local quick_controls = (os.getenv("QT_QUICK_CONTROLS_STYLE") or ""):lower() + if quick_controls == "kvantum" then + hl.env("QT_QUICK_CONTROLS_STYLE", "Basic") + end +end local function load_optional(path) local ok, err = pcall(dofile, path) @@ -61,6 +91,7 @@ end if not loaded_user_split then load_optional(userDir .. "/user_overrides.lua") -- legacy single-file support end +apply_qt_style_fallbacks() -- Legacy compatibility: import UserKeybinds.conf when user_keybinds.lua is missing. do diff --git a/config/hypr/lua/workspaces.lua b/config/hypr/lua/workspaces.lua index 287326ca..0ed3d8bf 100644 --- a/config/hypr/lua/workspaces.lua +++ b/config/hypr/lua/workspaces.lua @@ -10,3 +10,7 @@ -- Example: -- hl.workspace_rule({ workspace = "1", monitor = "eDP-1" }) +-- hl.workspace_rule({ workspace = "1", monitor = "HDMI-A-1", layout = "scrolling" }) +-- hl.workspace_rule({ workspace = "1", monitor = "HDMI-A-1", layout = "dwindle" }) +-- hl.workspace_rule({ workspace = "1", monitor = "HDMI-A-1", layout = "master" }) +-- hl.workspace_rule({ workspace = "1", monitor = "HDMI-A-1", layout = "monocle" }) diff --git a/config/hypr/scripts/Add-override-Hyprland-Portal.sh b/config/hypr/scripts/Add-override-Hyprland-Portal.sh index 1f321d51..b8a10ba4 100755 --- a/config/hypr/scripts/Add-override-Hyprland-Portal.sh +++ b/config/hypr/scripts/Add-override-Hyprland-Portal.sh @@ -14,7 +14,7 @@ SCRIPT_NAME="$(basename "$0")" DRY_RUN=0 ACTION="apply" -OVERRIDE_DIR="$HOME/.config/systemd/user/xdg-desktop-portal.service.d" +OVERRIDE_DIR="${XDG_CONFIG_HOME:-$HOME/.config}/systemd/user/xdg-desktop-portal.service.d" OVERRIDE_FILE="$OVERRIDE_DIR/override.conf" PORTAL_UNITS=( "xdg-desktop-portal.service" diff --git a/config/hypr/scripts/AirplaneMode.sh b/config/hypr/scripts/AirplaneMode.sh index 21aa04a8..17a8d9ac 100755 --- a/config/hypr/scripts/AirplaneMode.sh +++ b/config/hypr/scripts/AirplaneMode.sh @@ -7,7 +7,7 @@ # ================================================== # Airplane Mode. Turning on or off all wifi using rfkill. -notif="$HOME/.config/swaync/images/ja.png" +notif="${XDG_CONFIG_HOME:-$HOME/.config}/swaync/images/ja.png" # Check if any wireless device is blocked wifi_blocked=$(rfkill list wifi | grep -o "Soft blocked: yes") diff --git a/config/hypr/scripts/Animations.sh b/config/hypr/scripts/Animations.sh index 5fb77750..ae93429b 100755 --- a/config/hypr/scripts/Animations.sh +++ b/config/hypr/scripts/Animations.sh @@ -13,22 +13,44 @@ if pidof rofi > /dev/null; then fi # Variables -iDIR="$HOME/.config/swaync/images" -SCRIPTSDIR="$HOME/.config/hypr/scripts" -animations_dir="$HOME/.config/hypr/animations" -UserConfigs="$HOME/.config/hypr/UserConfigs" -rofi_theme="$HOME/.config/rofi/config-Animations.rasi" -msg='❗NOTE:❗ This will copy animations into UserAnimations.conf' +iDIR="${XDG_CONFIG_HOME:-$HOME/.config}/swaync/images" +SCRIPTSDIR="${XDG_CONFIG_HOME:-$HOME/.config}/hypr/scripts" +animations_dir="${XDG_CONFIG_HOME:-$HOME/.config}/hypr/animations" +UserConfigs="${XDG_CONFIG_HOME:-$HOME/.config}/hypr/UserConfigs" +rofi_theme="${XDG_CONFIG_HOME:-$HOME/.config}/rofi/config-Animations.rasi" +config_home="${XDG_CONFIG_HOME:-$HOME/.config}" +hypr_dir="$config_home/hypr" +lua_entry="$hypr_dir/hyprland.lua" +legacy_lua_entry="$config_home/hyprland.lua" + +# Detect active Hyprland config mode (Lua entrypoint vs legacy .conf includes) +if [[ -f "$lua_entry" || -f "$legacy_lua_entry" ]]; then + hypr_config_mode="lua" + animation_ext="lua" + target_animation_file="$UserConfigs/user_animations.lua" + msg='❗NOTE:❗ This will copy animations into user_animations.lua' +else + hypr_config_mode="conf" + animation_ext="conf" + target_animation_file="$UserConfigs/UserAnimations.conf" + msg='❗NOTE:❗ This will copy animations into UserAnimations.conf' +fi + # list of animation files, sorted alphabetically with numbers first -animations_list=$(find -L "$animations_dir" -maxdepth 1 -type f | sed 's/.*\///' | sed 's/\.conf$//' | sort -V) +animations_list=$(find -L "$animations_dir" -maxdepth 1 -type f -name "*.${animation_ext}" | sed 's/.*\///' | sed "s/\.${animation_ext}$//" | sort -V) + +if [[ -z "$animations_list" ]]; then + notify-send -u normal -i "$iDIR/ja.png" "No animation presets found" "Expected *.${animation_ext} in $animations_dir" + exit 0 +fi # Rofi Menu -chosen_file=$(echo "$animations_list" | rofi -i -dmenu -config $rofi_theme -mesg "$msg") +chosen_file=$(echo "$animations_list" | rofi -i -dmenu -config "$rofi_theme" -mesg "$msg") # Check if a file was selected if [[ -n "$chosen_file" ]]; then - full_path="$animations_dir/$chosen_file.conf" - cp "$full_path" "$UserConfigs/UserAnimations.conf" + full_path="$animations_dir/$chosen_file.$animation_ext" + cp "$full_path" "$target_animation_file" notify-send -u low -i "$iDIR/ja.png" "$chosen_file" "Hyprland Animation Loaded" fi diff --git a/config/hypr/scripts/ApplyThemeMode.sh b/config/hypr/scripts/ApplyThemeMode.sh new file mode 100755 index 00000000..f0b45aaf --- /dev/null +++ b/config/hypr/scripts/ApplyThemeMode.sh @@ -0,0 +1,11 @@ +#!/usr/bin/env bash +# ================================================== +# KoolDots (2026) +# Project URL: https://github.com/LinuxBeginnings +# License: GNU GPLv3 +# SPDX-License-Identifier: GPL-3.0-or-later +# ================================================== +# Re-apply saved Dark/Light mode on startup without toggling. + +SCRIPTSDIR="${XDG_CONFIG_HOME:-$HOME/.config}/hypr/scripts" +"$SCRIPTSDIR/DarkLight.sh" --apply-current --preserve-wallpaper --no-notify diff --git a/config/hypr/scripts/Brightness.sh b/config/hypr/scripts/Brightness.sh index bf0f4bf1..d3f221bf 100755 --- a/config/hypr/scripts/Brightness.sh +++ b/config/hypr/scripts/Brightness.sh @@ -7,7 +7,7 @@ # ================================================== # Script for Monitor backlights (if supported) using brightnessctl -iDIR="$HOME/.config/swaync/icons" +iDIR="${XDG_CONFIG_HOME:-$HOME/.config}/swaync/icons" notification_timeout=1000 step=10 # INCREASE/DECREASE BY THIS VALUE diff --git a/config/hypr/scripts/BrightnessKbd.sh b/config/hypr/scripts/BrightnessKbd.sh index 5bd09a78..ae24b2b2 100755 --- a/config/hypr/scripts/BrightnessKbd.sh +++ b/config/hypr/scripts/BrightnessKbd.sh @@ -7,7 +7,7 @@ # ================================================== # Script for keyboard backlights (if supported) using brightnessctl -iDIR="$HOME/.config/swaync/icons" +iDIR="${XDG_CONFIG_HOME:-$HOME/.config}/swaync/icons" # Get keyboard brightness get_kbd_backlight() { diff --git a/config/hypr/scripts/ChangeBlur.sh b/config/hypr/scripts/ChangeBlur.sh index 10b5914e..ca1be5ad 100755 --- a/config/hypr/scripts/ChangeBlur.sh +++ b/config/hypr/scripts/ChangeBlur.sh @@ -7,7 +7,7 @@ # ================================================== # Script for changing blurs on the fly -notif="$HOME/.config/swaync/images" +notif="${XDG_CONFIG_HOME:-$HOME/.config}/swaync/images" STATE=$(hyprctl -j getoption decoration:blur:passes | jq ".int") diff --git a/config/hypr/scripts/ChangeLayout.sh b/config/hypr/scripts/ChangeLayout.sh index 3c81bcbe..4e241e85 100755 --- a/config/hypr/scripts/ChangeLayout.sh +++ b/config/hypr/scripts/ChangeLayout.sh @@ -5,36 +5,168 @@ # License: GNU GPLv3 # SPDX-License-Identifier: GPL-3.0-or-later # ================================================== -# for changing Hyprland Layouts (master, dwindle, scrolling, monocle) on the fly - -notif="$HOME/.config/swaync/images/ja.png" +# Switch Hyprland layouts per active monitor/workspace. +# This avoids global layout mutations and keeps workspace-specific rules intact. +notif="${XDG_CONFIG_HOME:-$HOME/.config}/swaync/images/ja.png" +persist_layout_script="${XDG_CONFIG_HOME:-$HOME/.config}/hypr/scripts/PersistWorkspaceLayout.sh" layouts=(master dwindle scrolling monocle) quiet_mode=0 +normalize_layout() { + case "$1" in + master | dwindle | scrolling | monocle) + printf '%s\n' "$1" + ;; + *) + printf '\n' + ;; + esac +} + +wait_for_layout() { + local target="$1" + local actual="" + local attempt + + for attempt in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15; do + actual="$(get_layout)" + if [[ "$actual" == "$target" ]]; then + printf '%s\n' "$actual" + return 0 + fi + sleep 0.03 + done + + printf '%s\n' "$actual" + return 1 +} + +persist_current_workspace_layout() { + local target_layout="$1" + + if [[ ! -x "$persist_layout_script" ]]; then + return 0 + fi + + "$persist_layout_script" --quiet --layout "$target_layout" >/dev/null 2>&1 || true +} + +get_active_workspace_json() { + hyprctl -j activeworkspace 2>/dev/null || printf '{}' +} + get_layout() { - hyprctl -j getoption general:layout | jq -r '.str' + local ws_json layout + + ws_json="$(get_active_workspace_json)" + layout="$(jq -r '.tiledLayout // .tiled_layout // .layout // empty' <<<"$ws_json" 2>/dev/null || true)" + layout="$(normalize_layout "$layout")" + + if [[ -z "$layout" ]]; then + layout="$(hyprctl -j getoption general:layout 2>/dev/null | jq -r '.str // empty' 2>/dev/null || true)" + layout="$(normalize_layout "$layout")" + fi + + if [[ -z "$layout" ]]; then + layout="dwindle" + fi + + printf '%s\n' "$layout" } -set_hypr_layout() { +get_workspace_selector() { + local ws_json="$1" + local ws_id ws_name + + ws_id="$(jq -r '.id // empty' <<<"$ws_json" 2>/dev/null || true)" + ws_name="$(jq -r '.name // empty' <<<"$ws_json" 2>/dev/null || true)" + + if [[ "$ws_id" =~ ^[0-9]+$ ]] && ((ws_id > 0)); then + printf '%s\n' "$ws_id" + return 0 + fi + + if [[ -n "$ws_name" && "$ws_name" != "null" ]]; then + if [[ "$ws_name" == name:* || "$ws_name" == special:* ]]; then + printf '%s\n' "$ws_name" + else + printf 'name:%s\n' "$ws_name" + fi + return 0 + fi + + return 1 +} + +get_workspace_label() { + local ws_json="$1" + local ws_name ws_id + + ws_name="$(jq -r '.name // empty' <<<"$ws_json" 2>/dev/null || true)" + ws_id="$(jq -r '.id // empty' <<<"$ws_json" 2>/dev/null || true)" + + if [[ -n "$ws_name" && "$ws_name" != "null" ]]; then + printf '%s\n' "$ws_name" + return + fi + + if [[ -n "$ws_id" && "$ws_id" != "null" ]]; then + printf '%s\n' "$ws_id" + return + fi + + printf 'current\n' +} + +get_monitor_name() { + local ws_json="$1" + jq -r '.monitor // empty' <<<"$ws_json" 2>/dev/null || true +} + +escape_lua_string() { + local value="$1" + value="${value//\\/\\\\}" + value="${value//\"/\\\"}" + printf '%s' "$value" +} + +is_ok_output() { + local output="$1" + local normalized + + normalized="$(printf '%s\n' "$output" | tr -d '\r' | sed '/^[[:space:]]*$/d')" + [[ -z "$normalized" || "$normalized" == "ok" ]] +} + +set_workspace_layout_rule() { local target="$1" - local output + local ws_json workspace_selector monitor_name output + local ws_escaped monitor_escaped target_escaped + + ws_json="$(get_active_workspace_json)" + workspace_selector="$(get_workspace_selector "$ws_json" || true)" + monitor_name="$(get_monitor_name "$ws_json")" - output="$(hyprctl keyword general:layout "$target" 2>&1)" + if [[ -z "$workspace_selector" || -z "$monitor_name" ]]; then + echo "Unable to resolve active workspace context" >&2 + return 1 + fi + + output="$(hyprctl keyword workspace "${workspace_selector}, monitor:${monitor_name}, layout:${target}" 2>&1 || true)" if grep -q "keyword can't work with non-legacy parsers" <<<"$output"; then - output="$(hyprctl eval "hl.config({ general = { layout = \"${target}\" } })" 2>&1)" + ws_escaped="$(escape_lua_string "$workspace_selector")" + monitor_escaped="$(escape_lua_string "$monitor_name")" + target_escaped="$(escape_lua_string "$target")" + output="$(hyprctl eval "hl.workspace_rule({ workspace = \"${ws_escaped}\", monitor = \"${monitor_escaped}\", layout = \"${target_escaped}\" })" 2>&1 || true)" fi - if ! grep -q "^ok$" <<<"$output"; then + if ! is_ok_output "$output"; then echo "$output" >&2 return 1 fi } -hypr_keyword() { - hyprctl keyword "$@" >/dev/null 2>&1 || true -} - next_layout() { local current="$1" local i @@ -49,65 +181,24 @@ next_layout() { set_layout() { local target="$1" + local ws_json workspace_label monitor_name actual - if ! set_hypr_layout "$target"; then + ws_json="$(get_active_workspace_json)" + workspace_label="$(get_workspace_label "$ws_json")" + monitor_name="$(get_monitor_name "$ws_json")" + + if ! set_workspace_layout_rule "$target"; then if [[ "$quiet_mode" -eq 0 ]]; then notify-send -e -u critical -i "$notif" " Layout switch failed: $target" fi return 1 fi - hypr_keyword unbind SUPER,j - hypr_keyword unbind SUPER,k - hypr_keyword bind SUPER,j,cyclenext - hypr_keyword bind SUPER,k,cyclenext,prev - hypr_keyword unbind SUPER,left - hypr_keyword unbind SUPER,right - hypr_keyword unbind SUPER,up - hypr_keyword unbind SUPER,down - hypr_keyword unbind SUPER,O - - case "$target" in - "dwindle") - hypr_keyword bind SUPER,left,cyclenext,prev - hypr_keyword bind SUPER,up,cyclenext,prev - hypr_keyword bind SUPER,right,cyclenext - hypr_keyword bind SUPER,down,cyclenext - hypr_keyword bind SUPER,O,layoutmsg,togglesplit - ;; - "scrolling") - hypr_keyword bind SUPER,left,cyclenext,prev - hypr_keyword bind SUPER,up,cyclenext,prev - hypr_keyword bind SUPER,right,cyclenext - hypr_keyword bind SUPER,down,cyclenext - ;; - "monocle") - hypr_keyword bind SUPER,left,layoutmsg,cycleprev - hypr_keyword bind SUPER,up,layoutmsg,cycleprev - hypr_keyword bind SUPER,right,layoutmsg,cyclenext - hypr_keyword bind SUPER,down,layoutmsg,cyclenext - ;; - "master") - hypr_keyword bind SUPER,left,movefocus,l - hypr_keyword bind SUPER,right,movefocus,r - hypr_keyword bind SUPER,up,movefocus,u - hypr_keyword bind SUPER,down,movefocus,d - ;; - *) - hypr_keyword bind SUPER,left,movefocus,l - hypr_keyword bind SUPER,right,movefocus,r - hypr_keyword bind SUPER,up,movefocus,u - hypr_keyword bind SUPER,down,movefocus,d - echo "Unknown layout: $target" >&2 - return 1 - ;; - esac - - local actual - actual="$(get_layout)" + actual="$(wait_for_layout "$target")" if [[ "$actual" == "$target" ]]; then + persist_current_workspace_layout "$target" if [[ "$quiet_mode" -eq 0 ]]; then - notify-send -e -u low -i "$notif" " ${actual^} Layout" + notify-send -e -u low -i "$notif" " ${actual^} Layout · WS ${workspace_label}${monitor_name:+ @ ${monitor_name}}" fi else if [[ "$quiet_mode" -eq 0 ]]; then @@ -127,16 +218,20 @@ arg="${1:-toggle}" case "$arg" in init) - set_layout "$current" + # No startup keybind rebinding required anymore. + exit 0 + ;; +current | status | get) + printf '%s\n' "$current" ;; -toggle|next) +toggle | next) set_layout "$(next_layout "$current")" ;; -master|dwindle|scrolling|monocle) +master | dwindle | scrolling | monocle) set_layout "$arg" ;; *) - echo "Usage: $(basename "$0") [--quiet|--no-notify] [toggle|next|init|master|dwindle|scrolling|monocle]" >&2 + echo "Usage: $(basename "$0") [--quiet|--no-notify] [toggle|next|init|current|master|dwindle|scrolling|monocle]" >&2 exit 1 ;; esac diff --git a/config/hypr/scripts/ChangeStarshipPrompt.sh b/config/hypr/scripts/ChangeStarshipPrompt.sh new file mode 100755 index 00000000..44e50936 --- /dev/null +++ b/config/hypr/scripts/ChangeStarshipPrompt.sh @@ -0,0 +1,78 @@ +#!/usr/bin/env bash +# ================================================== +# KoolDots (2026) +# Project URL: https://github.com/LinuxBeginnings +# License: GNU GPLv3 +# SPDX-License-Identifier: GPL-3.0-or-later +# ================================================== +# Switch Starship prompt configs via Rofi. + +CONFIG_HOME="${XDG_CONFIG_HOME:-$HOME/.config}" +STARSHIP_DIR="$CONFIG_HOME/starship" +HYPR_STARSHIP_DIR="$CONFIG_HOME/hypr/starship" +STARSHIP_CONFIG="$CONFIG_HOME/starship.toml" +BACKUP_FILE="$STARSHIP_CONFIG.original" +ROFI_THEME="$CONFIG_HOME/rofi/config-starship.rasi" +RESTORE_LABEL="Retore orignal prompt" + +if ! command -v starship >/dev/null 2>&1; then + echo "starship is not installed" + exit 1 +fi + +if [[ ! -f "$ROFI_THEME" ]]; then + echo "Rofi theme not found: $ROFI_THEME" + exit 1 +fi + +if [[ ! -d "$STARSHIP_DIR" ]]; then + echo "Starship config directory not found: $STARSHIP_DIR" + exit 1 +fi + +mapfile -t available_prompts < <(find "$STARSHIP_DIR" -maxdepth 1 -type f -name "*.toml" -printf "%f\n" 2>/dev/null | sort -V) + +if [[ ${#available_prompts[@]} -eq 0 ]]; then + echo "No Starship prompt files found in $STARSHIP_DIR" + exit 1 +fi + +rofi_options=("${available_prompts[@]}") +if [[ -f "$BACKUP_FILE" ]]; then + rofi_options+=("$RESTORE_LABEL") +fi + +selection="$(printf '%s\n' "${rofi_options[@]}" | rofi -dmenu -i -p "Select Starship Prompt" -mesg "Select Starship Prompt" -theme "$ROFI_THEME")" + +if [[ -z "$selection" ]]; then + exit 0 +fi + +if [[ "$selection" == "$RESTORE_LABEL" ]]; then + if [[ -f "$BACKUP_FILE" ]]; then + if [[ -L "$STARSHIP_CONFIG" ]]; then + rm -f "$STARSHIP_CONFIG" + fi + cp -f "$BACKUP_FILE" "$STARSHIP_CONFIG" + else + echo "Backup not found: $BACKUP_FILE" + fi + exit 0 +fi + +selected_path="$STARSHIP_DIR/$selection" +if [[ ! -f "$selected_path" && -f "$HYPR_STARSHIP_DIR/$selection" ]]; then + selected_path="$HYPR_STARSHIP_DIR/$selection" +fi + +if [[ ! -f "$selected_path" ]]; then + echo "Selected prompt not found: $selection" + exit 1 +fi + +if [[ -f "$STARSHIP_CONFIG" && ! -L "$STARSHIP_CONFIG" ]]; then + cp -f "$STARSHIP_CONFIG" "$BACKUP_FILE" + rm -f "$STARSHIP_CONFIG" +fi + +ln -sfn "$selected_path" "$STARSHIP_CONFIG" diff --git a/config/hypr/scripts/ClipManager.sh b/config/hypr/scripts/ClipManager.sh index e3fbd066..19e15fd6 100755 --- a/config/hypr/scripts/ClipManager.sh +++ b/config/hypr/scripts/ClipManager.sh @@ -8,7 +8,7 @@ # Clipboard Manager. This script uses cliphist, rofi, and wl-copy. # Variables -rofi_theme="$HOME/.config/rofi/config-clipboard.rasi" +rofi_theme="${XDG_CONFIG_HOME:-$HOME/.config}/rofi/config-clipboard.rasi" msg='👀 **note** CTRL DEL = cliphist del (entry) or ALT DEL - cliphist wipe (all)' # Actions: # CTRL Del to delete an entry diff --git a/config/hypr/scripts/DarkLight.sh b/config/hypr/scripts/DarkLight.sh index 5b1cc3e7..16f1a4ef 100755 --- a/config/hypr/scripts/DarkLight.sh +++ b/config/hypr/scripts/DarkLight.sh @@ -13,24 +13,79 @@ PICTURES_DIR="$(xdg-user-dir PICTURES 2>/dev/null || echo "$HOME/Pictures")" wallpaper_base_path="$PICTURES_DIR/wallpapers/Dynamic-Wallpapers" dark_wallpapers="$wallpaper_base_path/Dark" light_wallpapers="$wallpaper_base_path/Light" -hypr_config_path="$HOME/.config/hypr" -swaync_style="$HOME/.config/swaync/style.css" -ags_style="$HOME/.config/ags/user/style.css" -SCRIPTSDIR="$HOME/.config/hypr/scripts" +hypr_config_path="${XDG_CONFIG_HOME:-$HOME/.config}/hypr" +swaync_style="${XDG_CONFIG_HOME:-$HOME/.config}/swaync/style.css" +ags_style="${XDG_CONFIG_HOME:-$HOME/.config}/ags/user/style.css" +SCRIPTSDIR="${XDG_CONFIG_HOME:-$HOME/.config}/hypr/scripts" # shellcheck source=/dev/null . "$SCRIPTSDIR/WallpaperCmd.sh" -notif="$HOME/.config/swaync/images/bell.png" -wallust_rofi="$HOME/.config/wallust/templates/colors-rofi.rasi" +notif="${XDG_CONFIG_HOME:-$HOME/.config}/swaync/images/bell.png" +wallust_rofi="${XDG_CONFIG_HOME:-$HOME/.config}/wallust/templates/colors-rofi.rasi" +theme_state_dir="${XDG_STATE_HOME:-$HOME/.local/state}/hypr" +theme_state_file="$theme_state_dir/theme_mode" +legacy_theme_state_file="$HOME/.cache/.theme_mode" -kitty_conf="$HOME/.config/kitty/kitty.conf" +kitty_conf="${XDG_CONFIG_HOME:-$HOME/.config}/kitty/kitty.conf" -wallust_config="$HOME/.config/wallust/wallust.toml" +wallust_config="${XDG_CONFIG_HOME:-$HOME/.config}/wallust/wallust.toml" pallete_dark="dark16" pallete_light="light16" -qt5ct_dark="$HOME/.config/qt5ct/colors/Catppuccin-Mocha.conf" -qt5ct_light="$HOME/.config/qt5ct/colors/Catppuccin-Latte.conf" -qt6ct_dark="$HOME/.config/qt6ct/colors/Catppuccin-Mocha.conf" -qt6ct_light="$HOME/.config/qt6ct/colors/Catppuccin-Latte.conf" +qt5ct_dark="${XDG_CONFIG_HOME:-$HOME/.config}/qt5ct/colors/Catppuccin-Mocha.conf" +qt5ct_light="${XDG_CONFIG_HOME:-$HOME/.config}/qt5ct/colors/Catppuccin-Latte.conf" +qt6ct_dark="${XDG_CONFIG_HOME:-$HOME/.config}/qt6ct/colors/Catppuccin-Mocha.conf" +qt6ct_light="${XDG_CONFIG_HOME:-$HOME/.config}/qt6ct/colors/Catppuccin-Latte.conf" +apply_saved_mode=0 +notify_enabled=1 +preserve_wallpaper=0 +forced_mode="" + +normalize_mode() { + case "$1" in + Dark|Light) printf '%s' "$1" ;; + *) printf '' ;; + esac +} + +read_saved_mode() { + local mode="" + if [ -f "$theme_state_file" ]; then + mode="$(normalize_mode "$(tr -d '\r\n' < "$theme_state_file")")" + fi + if [ -z "$mode" ] && [ -f "$legacy_theme_state_file" ]; then + mode="$(normalize_mode "$(tr -d '\r\n' < "$legacy_theme_state_file")")" + fi + [ -n "$mode" ] && printf '%s' "$mode" || printf 'Dark' +} + +while [ $# -gt 0 ]; do + case "$1" in + --apply-current) + apply_saved_mode=1 + ;; + --mode) + shift + forced_mode="$(normalize_mode "${1:-}")" + ;; + --no-notify) + notify_enabled=0 + ;; + --preserve-wallpaper) + preserve_wallpaper=1 + ;; + --help) + cat <<'EOF' +Usage: DarkLight.sh [--apply-current] [--mode Dark|Light] [--no-notify] [--preserve-wallpaper] + (no args) Toggle between Dark and Light and persist selection + --apply-current Re-apply saved mode (defaults to Dark when unset) + --mode <mode> Force target mode to Dark or Light + --no-notify Suppress notifications + --preserve-wallpaper Keep current wallpaper instead of choosing random Dynamic-Wallpapers image +EOF + exit 0 + ;; + esac + shift +done # intial kill process for pid in waybar rofi swaync ags swaybg; do @@ -45,28 +100,33 @@ done swww="$WWW_CMD img" effect="--transition-bezier .43,1.19,1,.4 --transition-fps 60 --transition-type grow --transition-pos 0.925,0.977 --transition-duration 2" -# Determine current theme mode -if [ "$(cat $HOME/.cache/.theme_mode)" = "Light" ]; then +# Determine target theme mode +saved_mode="$(read_saved_mode)" +if [ -n "$forced_mode" ]; then + next_mode="$forced_mode" +elif [ "$apply_saved_mode" -eq 1 ]; then + next_mode="$saved_mode" +elif [ "$saved_mode" = "Light" ]; then next_mode="Dark" - # Logic for Dark mode - wallpaper_path="$dark_wallpapers" else next_mode="Light" - # Logic for Light mode - wallpaper_path="$light_wallpapers" fi # Select Qt color scheme templates for the upcoming mode if [ "$next_mode" = "Dark" ]; then + wallpaper_path="$dark_wallpapers" qt5ct_color_scheme="$qt5ct_dark" qt6ct_color_scheme="$qt6ct_dark" else + wallpaper_path="$light_wallpapers" qt5ct_color_scheme="$qt5ct_light" qt6ct_color_scheme="$qt6ct_light" fi # Function to update theme mode for the next cycle update_theme_mode() { - echo "$next_mode" > "$HOME/.cache/.theme_mode" + mkdir -p "$theme_state_dir" "$HOME/.cache" + echo "$next_mode" > "$theme_state_file" + echo "$next_mode" > "$legacy_theme_state_file" } # Function to notify user @@ -84,8 +144,8 @@ fi # Function to set Waybar style set_waybar_style() { theme="$1" - waybar_styles="$HOME/.config/waybar/style" - waybar_style_link="$HOME/.config/waybar/style.css" + waybar_styles="${XDG_CONFIG_HOME:-$HOME/.config}/waybar/style" + waybar_style_link="${XDG_CONFIG_HOME:-$HOME/.config}/waybar/style.css" style_prefix="\\[${theme}\\].*\\.css$" style_file=$(find -L "$waybar_styles" -maxdepth 1 -type f -regex ".*$style_prefix" | shuf -n 1) @@ -99,7 +159,7 @@ set_waybar_style() { # Call the function after determining the mode set_waybar_style "$next_mode" -notify_user "$next_mode" +[ "$notify_enabled" -eq 1 ] && notify_user "$next_mode" # swaync color change @@ -140,29 +200,31 @@ for pid_kitty in $(pidof kitty); do done # Set Dynamic Wallpaper for Dark or Light Mode -if [ "$next_mode" = "Dark" ]; then - next_wallpaper="$(find -L "${dark_wallpapers}" -type f \( -iname "*.jpg" -o -iname "*.png" \) -print0 | shuf -n1 -z | xargs -0)" -else - next_wallpaper="$(find -L "${light_wallpapers}" -type f \( -iname "*.jpg" -o -iname "*.png" \) -print0 | shuf -n1 -z | xargs -0)" -fi +if [ "$preserve_wallpaper" -eq 0 ]; then + if [ "$next_mode" = "Dark" ]; then + next_wallpaper="$(find -L "${dark_wallpapers}" -type f \( -iname "*.jpg" -o -iname "*.png" \) -print0 | shuf -n1 -z | xargs -0)" + else + next_wallpaper="$(find -L "${light_wallpapers}" -type f \( -iname "*.jpg" -o -iname "*.png" \) -print0 | shuf -n1 -z | xargs -0)" + fi -# Update wallpaper using swww command -$swww "${next_wallpaper}" $effect + # Update wallpaper using swww command + $swww "${next_wallpaper}" $effect +fi # Set Kvantum Manager theme & QT5/QT6 settings if [ "$next_mode" = "Dark" ]; then kvantum_theme="catppuccin-mocha-blue" - #qt5ct_color_scheme="$HOME/.config/qt5ct/colors/Catppuccin-Mocha.conf" - #qt6ct_color_scheme="$HOME/.config/qt6ct/colors/Catppuccin-Mocha.conf" + #qt5ct_color_scheme="${XDG_CONFIG_HOME:-$HOME/.config}/qt5ct/colors/Catppuccin-Mocha.conf" + #qt6ct_color_scheme="${XDG_CONFIG_HOME:-$HOME/.config}/qt6ct/colors/Catppuccin-Mocha.conf" else kvantum_theme="catppuccin-latte-blue" - #qt5ct_color_scheme="$HOME/.config/qt5ct/colors/Catppuccin-Latte.conf" - #qt6ct_color_scheme="$HOME/.config/qt6ct/colors/Catppuccin-Latte.conf" + #qt5ct_color_scheme="${XDG_CONFIG_HOME:-$HOME/.config}/qt5ct/colors/Catppuccin-Latte.conf" + #qt6ct_color_scheme="${XDG_CONFIG_HOME:-$HOME/.config}/qt6ct/colors/Catppuccin-Latte.conf" fi -sed -i "s|^color_scheme_path=.*$|color_scheme_path=$qt5ct_color_scheme|" "$HOME/.config/qt5ct/qt5ct.conf" -sed -i "s|^color_scheme_path=.*$|color_scheme_path=$qt6ct_color_scheme|" "$HOME/.config/qt6ct/qt6ct.conf" +sed -i "s|^color_scheme_path=.*$|color_scheme_path=$qt5ct_color_scheme|" "${XDG_CONFIG_HOME:-$HOME/.config}/qt5ct/qt5ct.conf" +sed -i "s|^color_scheme_path=.*$|color_scheme_path=$qt6ct_color_scheme|" "${XDG_CONFIG_HOME:-$HOME/.config}/qt6ct/qt6ct.conf" kvantummanager --set "$kvantum_theme" @@ -234,8 +296,8 @@ set_custom_gtk_theme() { gsettings set $icon_setting "$selected_icon" ## QT5ct icon_theme - sed -i "s|^icon_theme=.*$|icon_theme=$selected_icon|" "$HOME/.config/qt5ct/qt5ct.conf" - sed -i "s|^icon_theme=.*$|icon_theme=$selected_icon|" "$HOME/.config/qt6ct/qt6ct.conf" + sed -i "s|^icon_theme=.*$|icon_theme=$selected_icon|" "${XDG_CONFIG_HOME:-$HOME/.config}/qt5ct/qt5ct.conf" + sed -i "s|^icon_theme=.*$|icon_theme=$selected_icon|" "${XDG_CONFIG_HOME:-$HOME/.config}/qt6ct/qt6ct.conf" # Flatpak GTK apps (icons) if command -v flatpak &> /dev/null; then @@ -268,7 +330,7 @@ ${SCRIPTSDIR}/Refresh.sh sleep 0.5 # Display notifications for theme and icon changes -notify-send -u low -i "$notif" " Themes switched to:" " $next_mode Mode" +[ "$notify_enabled" -eq 1 ] && notify-send -u low -i "$notif" " Themes switched to:" " $next_mode Mode" exit 0 diff --git a/config/hypr/scripts/Distro_update.sh b/config/hypr/scripts/Distro_update.sh index b9bcae71..20a710ee 100755 --- a/config/hypr/scripts/Distro_update.sh +++ b/config/hypr/scripts/Distro_update.sh @@ -8,7 +8,7 @@ # Simple bash script to check and will try to update your system # Local Paths -iDIR="$HOME/.config/swaync/images" +iDIR="${XDG_CONFIG_HOME:-$HOME/.config}/swaync/images" # Check for required tools (kitty) if ! command -v kitty &> /dev/null; then diff --git a/config/hypr/scripts/Dropterminal.sh b/config/hypr/scripts/Dropterminal.sh index 21349d4a..8c301f68 100755 --- a/config/hypr/scripts/Dropterminal.sh +++ b/config/hypr/scripts/Dropterminal.sh @@ -24,7 +24,7 @@ LOCK_FILE="/tmp/dropdown_terminal_lock" LAST_TOGGLE_FILE="/tmp/dropdown_terminal_last_toggle" MIN_TOGGLE_INTERVAL_MS=250 DROPDOWN_KITTY_CLASS="kitty-dropterm" -CONFIG_HOME="${XDG_CONFIG_HOME:-$HOME/.config}" +CONFIG_HOME="${XDG_CONFIG_HOME:-${XDG_CONFIG_HOME:-$HOME/.config}}" HYPR_DIR="$CONFIG_HOME/hypr" LUA_ENTRY="$HYPR_DIR/hyprland.lua" LEGACY_LUA_ENTRY="$CONFIG_HOME/hyprland.lua" diff --git a/config/hypr/scripts/ExternalBrightness.sh b/config/hypr/scripts/ExternalBrightness.sh index 59081e1d..f3bf2487 100755 --- a/config/hypr/scripts/ExternalBrightness.sh +++ b/config/hypr/scripts/ExternalBrightness.sh @@ -18,7 +18,7 @@ cache_file="/tmp/external_brightness_displays.cache" cache_ttl=300 # 5 minutes # Detect active Hyprland config mode (Lua entrypoint vs legacy .conf includes) -config_home="${XDG_CONFIG_HOME:-$HOME/.config}" +config_home="${XDG_CONFIG_HOME:-${XDG_CONFIG_HOME:-$HOME/.config}}" hypr_dir="$config_home/hypr" lua_entry="$hypr_dir/hyprland.lua" legacy_lua_entry="$config_home/hyprland.lua" diff --git a/config/hypr/scripts/Float-all-Windows.sh b/config/hypr/scripts/Float-all-Windows.sh index 25fdc465..1f754ec5 100755 --- a/config/hypr/scripts/Float-all-Windows.sh +++ b/config/hypr/scripts/Float-all-Windows.sh @@ -7,7 +7,7 @@ # ================================================== # Detect active Hyprland config mode (Lua entrypoint vs legacy .conf includes) -config_home="${XDG_CONFIG_HOME:-$HOME/.config}" +config_home="${XDG_CONFIG_HOME:-${XDG_CONFIG_HOME:-$HOME/.config}}" hypr_dir="$config_home/hypr" lua_entry="$hypr_dir/hyprland.lua" legacy_lua_entry="$config_home/hyprland.lua" diff --git a/config/hypr/scripts/GameMode.sh b/config/hypr/scripts/GameMode.sh index b104179e..c3a02948 100755 --- a/config/hypr/scripts/GameMode.sh +++ b/config/hypr/scripts/GameMode.sh @@ -7,13 +7,13 @@ # ================================================== # Game Mode. Turning off all animations -notif="$HOME/.config/swaync/images/ja.png" -SCRIPTSDIR="$HOME/.config/hypr/scripts" +notif="${XDG_CONFIG_HOME:-$HOME/.config}/swaync/images/ja.png" +SCRIPTSDIR="${XDG_CONFIG_HOME:-$HOME/.config}/hypr/scripts" # shellcheck source=/dev/null . "$SCRIPTSDIR/WallpaperCmd.sh" # Detect active Hyprland config mode (Lua entrypoint vs legacy .conf includes) -config_home="${XDG_CONFIG_HOME:-$HOME/.config}" +config_home="${XDG_CONFIG_HOME:-${XDG_CONFIG_HOME:-$HOME/.config}}" hypr_dir="$config_home/hypr" lua_entry="$hypr_dir/hyprland.lua" legacy_lua_entry="$config_home/hyprland.lua" diff --git a/config/hypr/scripts/Ghostty_themes.sh b/config/hypr/scripts/Ghostty_themes.sh index c3fcd792..7eef6c1c 100755 --- a/config/hypr/scripts/Ghostty_themes.sh +++ b/config/hypr/scripts/Ghostty_themes.sh @@ -7,14 +7,14 @@ # ================================================== # Ghostty theme selector -config_file="$HOME/.config/ghostty/config" -iDIR="$HOME/.config/swaync/images" -rofi_theme_primary="$HOME/.config/rofi/config-ghostty-theme.rasi" -rofi_theme_fallback="$HOME/.config/rofi/config-edit.rasi" -wallust_include_path="$HOME/.config/ghostty/wallust.conf" +config_file="${XDG_CONFIG_HOME:-$HOME/.config}/ghostty/config" +iDIR="${XDG_CONFIG_HOME:-$HOME/.config}/swaync/images" +rofi_theme_primary="${XDG_CONFIG_HOME:-$HOME/.config}/rofi/config-ghostty-theme.rasi" +rofi_theme_fallback="${XDG_CONFIG_HOME:-$HOME/.config}/rofi/config-edit.rasi" +wallust_include_path="${XDG_CONFIG_HOME:-$HOME/.config}/ghostty/wallust.conf" wallust_option_label="Set by wallpaper" default_option_label="Default - no color" -wallust_refresh_script="$HOME/.config/hypr/scripts/WallustSwww.sh" +wallust_refresh_script="${XDG_CONFIG_HOME:-$HOME/.config}/hypr/scripts/WallustSwww.sh" notify_user() { local icon="$1" diff --git a/config/hypr/scripts/HyprLayoutModule.sh b/config/hypr/scripts/HyprLayoutModule.sh index 22f12920..14e3b524 100755 --- a/config/hypr/scripts/HyprLayoutModule.sh +++ b/config/hypr/scripts/HyprLayoutModule.sh @@ -9,8 +9,8 @@ IFS=$'\n\t' -SCRIPTSDIR="$HOME/.config/hypr/scripts" -rofi_config="$HOME/.config/rofi/config-waybar-layout.rasi" +SCRIPTSDIR="${XDG_CONFIG_HOME:-$HOME/.config}/hypr/scripts" +rofi_config="${XDG_CONFIG_HOME:-$HOME/.config}/rofi/config-layout.rasi" change_layout="${SCRIPTSDIR}/ChangeLayout.sh" layouts=(dwindle scrolling monocle master) @@ -35,7 +35,17 @@ layout_name() { } get_layout() { - hyprctl -j getoption general:layout 2>/dev/null | jq -r '.str // "unknown"' 2>/dev/null + local layout + + if [[ -x "$change_layout" ]]; then + layout="$("$change_layout" --quiet current 2>/dev/null || true)" + if [[ -n "$layout" ]]; then + printf '%s\n' "$layout" + return + fi + fi + + hyprctl -j activeworkspace 2>/dev/null | jq -r '.tiledLayout // .tiled_layout // "unknown"' 2>/dev/null } next_layout() { @@ -68,7 +78,7 @@ show_status() { current="$(get_layout)" icon="$(layout_icon "$current")" name="$(layout_name "$current")" - tooltip="Hyprland layout: ${name} (${icon})\n\nLeft click: Select layout\nRight click: Cycle layout\n\nOptions:\n🄳 Dwindle\n🅂 Scrolling\n🄼 Monocle\nⓜ Master" + tooltip="Workspace layout: ${name} (${icon})\n\nLeft click: Select layout for active workspace\nRight click: Cycle active workspace layout\n\nOptions:\n🄳 Dwindle\n🅂 Scrolling\n🄼 Monocle\nⓜ Master" printf '{"text":"%s","tooltip":"%s","class":"%s"}\n' "$icon" "$tooltip" "$current" } @@ -97,7 +107,7 @@ show_menu() { return 0 fi - choice="$(printf '%s\n' "${options[@]}" | rofi -i -dmenu -p "Layout" -mesg "Left click selects • Right click cycles" -selected-row "$default_row" -config "$rofi_config")" + choice="$(printf '%s\n' "${options[@]}" | rofi -i -dmenu -p "Workspace layout" -mesg "Select layout for this workspace" -selected-row "$default_row" -config "$rofi_config")" [[ -z "$choice" ]] && exit 0 case "$choice" in diff --git a/config/hypr/scripts/HyprlockWallpaperSelect.sh b/config/hypr/scripts/HyprlockWallpaperSelect.sh new file mode 100755 index 00000000..a139ca36 --- /dev/null +++ b/config/hypr/scripts/HyprlockWallpaperSelect.sh @@ -0,0 +1,358 @@ +#!/usr/bin/env bash +# ================================================== +# KoolDots (2026) +# Project URL: https://github.com/LinuxBeginnings +# License: GNU GPLv3 +# SPDX-License-Identifier: GPL-3.0-or-later +# ================================================== +# Hyprlock wallpaper selector (images + video fallback) + +PICTURES_DIR="$(xdg-user-dir PICTURES 2>/dev/null || echo "$HOME/Pictures")" +wallDIR="$PICTURES_DIR/wallpapers" +scriptsDir="${XDG_CONFIG_HOME:-$HOME/.config}/hypr/scripts" +iDIR="${XDG_CONFIG_HOME:-$HOME/.config}/swaync/images" +# shellcheck source=/dev/null +. "$scriptsDir/WallpaperCmd.sh" 2>/dev/null || true + +rofi_theme="${XDG_CONFIG_HOME:-$HOME/.config}/rofi/config-wallpaper.rasi" +lock_cache_dir="${XDG_CONFIG_HOME:-$HOME/.config}/hypr/wallpaper_effects" +lock_wallpaper_link="$lock_cache_dir/.hyprlock_current" +lock_wallpaper_current="$lock_cache_dir/.wallpaper_current" +video_cache_dir="$HOME/.cache/hyprlock_preview" +find_notify_send() { + local candidate="" + if candidate="$(command -v notify-send 2>/dev/null)"; then + [ -n "$candidate" ] && [ -x "$candidate" ] && { printf '%s\n' "$candidate"; return 0; } + fi + for candidate in /usr/bin/notify-send /usr/sbin/notify-send /bin/notify-send /sbin/notify-send; do + [ -x "$candidate" ] && { printf '%s\n' "$candidate"; return 0; } + done + return 1 +} + +NOTIFY_SEND_BIN="$(find_notify_send || true)" + +notify_err() { + if [ -n "$NOTIFY_SEND_BIN" ]; then + if [ -f "$iDIR/error.png" ]; then + "$NOTIFY_SEND_BIN" -i "$iDIR/error.png" "Hyprlock Wallpaper" "$1" + else + "$NOTIFY_SEND_BIN" "Hyprlock Wallpaper" "$1" + fi + fi +} + +notify_ok() { + if [ -n "$NOTIFY_SEND_BIN" ]; then + if [ -f "$iDIR/ja.png" ]; then + "$NOTIFY_SEND_BIN" -i "$iDIR/ja.png" "Hyprlock Wallpaper" "$1" + else + "$NOTIFY_SEND_BIN" "Hyprlock Wallpaper" "$1" + fi + fi +} + +if ! command -v rofi >/dev/null 2>&1; then + notify_err "rofi not found" + exit 1 +fi +if ! command -v hyprctl >/dev/null 2>&1; then + notify_err "hyprctl not found" + exit 1 +fi +if ! command -v jq >/dev/null 2>&1; then + notify_err "jq not found" + exit 1 +fi +if ! command -v bc >/dev/null 2>&1; then + notify_err "bc not found" + exit 1 +fi +read_wallpaper_from_query() { + local monitor="$1" + [ -n "$monitor" ] || return 1 + "$WWW_CMD" query 2>/dev/null | awk -v mon="$monitor" ' + { + line=$0 + sub(/^Monitor[[:space:]]+/, "", line) + sub(/^:[[:space:]]*/, "", line) + mon_name=line + sub(/:.*/, "", mon_name) + gsub(/^[[:space:]]+|[[:space:]]+$/, "", mon_name) + if (mon_name != mon) next + + path=line + sub(/^.*image:[[:space:]]*/, "", path) + gsub(/^[[:space:]]+|[[:space:]]+$/, "", path) + if (path != line && length(path) > 0) { + print path + exit + } + } + ' +} + +read_cached_wallpaper() { + local cache_file="$1" + [ -f "$cache_file" ] || return 1 + awk 'NF && $0 !~ /^filter/ {print; exit}' "$cache_file" +} + +read_wallpaper_from_cache() { + local monitor="$1" + local cache_root="${WWW_CACHE_DIR:-$HOME/.cache/awww}" + local cache_file="$cache_root/$monitor" + local fallback_cache="" + local path="" + + case "$cache_root" in + "$HOME/.cache/awww") + fallback_cache="$HOME/.cache/swww/$monitor" + ;; + "$HOME/.cache/swww") + fallback_cache="$HOME/.cache/awww/$monitor" + ;; + esac + + path="$(read_cached_wallpaper "$cache_file" 2>/dev/null || true)" + if [ -z "$path" ] && [ -n "$fallback_cache" ]; then + path="$(read_cached_wallpaper "$fallback_cache" 2>/dev/null || true)" + fi + + [ -n "$path" ] && [ -f "$path" ] || return 1 + printf '%s\n' "$path" +} + +get_active_workspace_monitor() { + hyprctl activeworkspace -j 2>/dev/null | jq -r '.monitor // empty' | head -n1 +} + +monitor_exists() { + local monitor="$1" + [ -n "$monitor" ] || return 1 + hyprctl monitors -j 2>/dev/null | jq -r --arg mon "$monitor" '.[] | select(.name == $mon) | .name' | grep -qx "$monitor" +} + +focused_monitor="" +requested_monitor="${1:-${HYPRLOCK_TARGET_MONITOR:-}}" +if monitor_exists "$requested_monitor"; then + focused_monitor="$requested_monitor" +fi +if [[ -z "$focused_monitor" ]]; then + workspace_monitor="$(get_active_workspace_monitor)" + if monitor_exists "$workspace_monitor"; then + focused_monitor="$workspace_monitor" + fi +fi +if [[ -z "$focused_monitor" ]]; then + focused_monitor=$(hyprctl monitors -j | jq -r '.[] | select(.focused) | .name' | head -n1) +fi +if [[ -z "$focused_monitor" ]]; then + notify_err "Could not detect target monitor" + exit 1 +fi + +per_monitor_rofi_link="${XDG_CONFIG_HOME:-$HOME/.config}/rofi/.current_wallpaper_${focused_monitor}" +per_monitor_wallpaper_current="$lock_cache_dir/.wallpaper_current_${focused_monitor}" + +scale_factor=$(hyprctl monitors -j | jq -r --arg mon "$focused_monitor" '.[] | select(.name == $mon) | .scale') +monitor_height=$(hyprctl monitors -j | jq -r --arg mon "$focused_monitor" '.[] | select(.name == $mon) | .height') +icon_size=$(echo "scale=1; ($monitor_height * 3) / ($scale_factor * 150)" | bc) +adjusted_icon_size=$(echo "$icon_size" | awk '{if ($1 < 15) $1 = 20; if ($1 > 25) $1 = 25; print $1}') +rofi_override="element-icon{size:${adjusted_icon_size}%;}" + +mapfile -d '' PICS < <(find -L "${wallDIR}" -type f \( \ + -iname "*.jpg" -o -iname "*.jpeg" -o -iname "*.png" -o -iname "*.gif" -o \ + -iname "*.bmp" -o -iname "*.tiff" -o -iname "*.webp" -o \ + -iname "*.mp4" -o -iname "*.mkv" -o -iname "*.mov" -o -iname "*.webm" \) -print0) + +if [ "${#PICS[@]}" -eq 0 ]; then + notify_err "No wallpapers found in $wallDIR" + exit 1 +fi + +RANDOM_PIC="${PICS[$((RANDOM % ${#PICS[@]}))]}" +RANDOM_PIC_NAME="Random: $(basename "$RANDOM_PIC")" + +current_lock_path="" +if [ -L "$lock_wallpaper_link" ]; then + current_lock_path="$(readlink -f "$lock_wallpaper_link" 2>/dev/null || true)" +elif [ -f "$lock_wallpaper_link" ]; then + current_lock_path="$lock_wallpaper_link" +fi +current_lock_name="" +if [ -n "$current_lock_path" ]; then + current_lock_name="Current: $(basename "$current_lock_path")" +fi + +current_monitor_path="" +if [ -n "${WWW_CMD:-}" ] && command -v "$WWW_CMD" >/dev/null 2>&1; then + current_monitor_path="$(read_wallpaper_from_query "$focused_monitor")" +fi +if [ -z "$current_monitor_path" ] && [ -L "$per_monitor_rofi_link" ]; then + current_monitor_path="$(readlink -f "$per_monitor_rofi_link" 2>/dev/null || true)" +fi +if [ -z "$current_monitor_path" ] && [ -f "$per_monitor_rofi_link" ]; then + current_monitor_path="$per_monitor_rofi_link" +fi +if [ -z "$current_monitor_path" ] && [ -f "$per_monitor_wallpaper_current" ]; then + current_monitor_path="$per_monitor_wallpaper_current" +fi +if [ -z "$current_monitor_path" ]; then + current_monitor_path="$(read_wallpaper_from_cache "$focused_monitor" 2>/dev/null || true)" +fi +if [ -n "$current_monitor_path" ] && [ ! -f "$current_monitor_path" ]; then + current_monitor_path="" +fi +current_monitor_name="" +if [ -n "$current_monitor_path" ]; then + current_monitor_name="Current monitor: $(basename "$current_monitor_path")" +fi + +rofi_command="rofi -i -show -dmenu -config $rofi_theme -theme-str $rofi_override" + +menu() { + IFS=$'\n' sorted_options=($(sort <<<"${PICS[*]}")) + printf "%s\x00icon\x1f%s\n" "$RANDOM_PIC_NAME" "$RANDOM_PIC" + if [ -n "$current_monitor_name" ]; then + printf "%s\x00icon\x1f%s\n" "$current_monitor_name" "$current_monitor_path" + fi + if [ -n "$current_lock_name" ]; then + printf "%s\x00icon\x1f%s\n" "$current_lock_name" "$current_lock_path" + fi + for pic_path in "${sorted_options[@]}"; do + pic_name=$(basename "$pic_path") + if [[ "$pic_name" =~ \.gif$ ]]; then + cache_gif_image="$HOME/.cache/gif_preview/${pic_name}.png" + if [[ ! -f "$cache_gif_image" ]]; then + mkdir -p "$HOME/.cache/gif_preview" + magick "$pic_path[0]" -resize 1920x1080 "$cache_gif_image" + fi + printf "%s\x00icon\x1f%s\n" "$pic_name" "$cache_gif_image" + elif [[ "$pic_name" =~ \.(mp4|mkv|mov|webm|MP4|MKV|MOV|WEBM)$ ]]; then + cache_preview_image="$HOME/.cache/video_preview/${pic_name}.png" + if [[ ! -f "$cache_preview_image" ]]; then + mkdir -p "$HOME/.cache/video_preview" + ffmpeg -v error -y -i "$pic_path" -ss 00:00:01.000 -vframes 1 "$cache_preview_image" + fi + printf "%s\x00icon\x1f%s\n" "$pic_name" "$cache_preview_image" + else + printf "%s\x00icon\x1f%s\n" "$pic_name" "$pic_path" + fi + done +} + +update_hyprlock_config() { + local conf="$1" + local path="$2" + [ -f "$conf" ] || return 0 + + if grep -qE '^[[:space:]]*path[[:space:]]*=' "$conf"; then + sed -i -E "s|^[[:space:]]*path[[:space:]]*=.*| path = $path|" "$conf" + elif grep -qE '^[[:space:]]*background[[:space:]]*{' "$conf"; then + sed -i -E "/^[[:space:]]*background[[:space:]]*{/a\\ path = $path" "$conf" + else + printf "\nbackground {\n path = %s\n}\n" "$path" >>"$conf" + fi +} + +set_hyprlock_wallpaper() { + local selected_file="$1" + local target_monitor="${2:-$focused_monitor}" + local final_path="$selected_file" + + if [ ! -f "$selected_file" ]; then + notify_err "Failed for $target_monitor: selected file not found" + return 1 + fi + + if [[ "$selected_file" =~ \.(mp4|mkv|mov|webm|MP4|MKV|MOV|WEBM)$ ]]; then + if ! command -v ffmpeg >/dev/null 2>&1; then + notify_err "Failed for $target_monitor: ffmpeg not found for video preview" + return 1 + fi + mkdir -p "$video_cache_dir" + local video_name + video_name="$(basename "$selected_file")" + final_path="$video_cache_dir/${video_name}.png" + if ! ffmpeg -v error -y -i "$selected_file" -ss 00:00:01.000 -vframes 1 "$final_path"; then + notify_err "Failed for $target_monitor: could not generate video preview" + return 1 + fi + fi + + mkdir -p "$lock_cache_dir" + if ! ln -sf "$final_path" "$lock_wallpaper_link"; then + notify_err "Failed for $target_monitor: could not update hyprlock wallpaper link" + return 1 + fi + if ! cp -f "$final_path" "$lock_wallpaper_current"; then + notify_err "Failed for $target_monitor: could not update lock fallback wallpaper" + return 1 + fi + + update_hyprlock_config "${XDG_CONFIG_HOME:-$HOME/.config}/hypr/hyprlock.conf" "$lock_wallpaper_link" + update_hyprlock_config "${XDG_CONFIG_HOME:-$HOME/.config}/hypr/hyprlock-2k.conf" "$lock_wallpaper_link" + update_hyprlock_config "${XDG_CONFIG_HOME:-$HOME/.config}/hypr/hyprlock-1080p.conf" "$lock_wallpaper_link" + + pkill -USR1 hyprlock 2>/dev/null || true + + local resolved_path="" + if [ -L "$lock_wallpaper_link" ]; then + resolved_path="$(readlink -f "$lock_wallpaper_link" 2>/dev/null || true)" + elif [ -f "$lock_wallpaper_link" ]; then + resolved_path="$lock_wallpaper_link" + fi + + if [ -z "$resolved_path" ] || [ ! -f "$resolved_path" ]; then + notify_err "Failed for $target_monitor: hyprlock wallpaper was not applied" + return 1 + fi + + notify_ok "Set for $target_monitor: $(basename "$resolved_path")" + return 0 +} + +main() { + choice=$(menu | $rofi_command) + choice=$(echo "$choice" | xargs) + + if [[ -z "$choice" ]]; then + exit 0 + fi + + if [[ "$choice" == "$RANDOM_PIC_NAME" ]]; then + set_hyprlock_wallpaper "$RANDOM_PIC" "$focused_monitor" || exit 1 + return + fi + if [[ "$choice" == "$current_monitor_name" && -n "$current_monitor_path" ]]; then + set_hyprlock_wallpaper "$current_monitor_path" "$focused_monitor" || exit 1 + return + fi + + if [[ "$choice" == "$current_lock_name" && -n "$current_lock_path" ]]; then + set_hyprlock_wallpaper "$current_lock_path" "$focused_monitor" || exit 1 + return + fi + + if [[ -f "$choice" ]]; then + set_hyprlock_wallpaper "$choice" "$focused_monitor" || exit 1 + return + fi + + choice_basename=$(basename "$choice" | sed 's/\(.*\)\.[^.]*$/\1/') + selected_file=$(find "$wallDIR" -iname "$choice_basename.*" -print -quit) + + if [[ -z "$selected_file" ]]; then + notify_err "Selected choice not found: $choice" + exit 1 + fi + + set_hyprlock_wallpaper "$selected_file" "$focused_monitor" || exit 1 +} + +if pidof rofi >/dev/null; then + pkill rofi +fi + +main diff --git a/config/hypr/scripts/JavaManager.sh b/config/hypr/scripts/JavaManager.sh index 728c69a3..8f8f5612 100755 --- a/config/hypr/scripts/JavaManager.sh +++ b/config/hypr/scripts/JavaManager.sh @@ -201,7 +201,7 @@ generate_list() { } # --- 6. rofi --- -THEME="$HOME/.config/rofi/config.rasi" +THEME="${XDG_CONFIG_HOME:-$HOME/.config}/rofi/config.rasi" SELECTION=$(generate_list | rofi -dmenu -i \ -p " Java" \ diff --git a/config/hypr/scripts/KeyBinds.sh b/config/hypr/scripts/KeyBinds.sh index 1005e797..aff7b808 100755 --- a/config/hypr/scripts/KeyBinds.sh +++ b/config/hypr/scripts/KeyBinds.sh @@ -16,7 +16,7 @@ if pidof rofi > /dev/null; then fi # define the config files -config_home="${XDG_CONFIG_HOME:-$HOME/.config}" +config_home="${XDG_CONFIG_HOME:-${XDG_CONFIG_HOME:-$HOME/.config}}" hypr_dir="$config_home/hypr" keybinds_conf="$hypr_dir/configs/Keybinds.conf" user_keybinds_conf="$hypr_dir/UserConfigs/UserKeybinds.conf" @@ -26,7 +26,7 @@ lua_user_keybinds="$hypr_dir/UserConfigs/user_keybinds.lua" lua_system_keybinds="$hypr_dir/configs/system_keybinds.lua" lua_legacy_system_keybinds="$hypr_dir/UserConfigs/system_keybinds.lua" lua_overrides="$hypr_dir/UserConfigs/user_overrides.lua" -rofi_theme="$HOME/.config/rofi/config-keybinds.rasi" +rofi_theme="${XDG_CONFIG_HOME:-$HOME/.config}/rofi/config-keybinds.rasi" msg='☣️ NOTE ☣️: Clicking with Mouse or Pressing ENTER will have NO function' # detect active Hyprland config mode (Lua entrypoint vs legacy .conf includes) @@ -55,7 +55,7 @@ fi # Parse binds using the python script for speed # The last argument must be the user config for override logic to work correctly -display_keybinds=$("$HOME/.config/hypr/scripts/keybinds_parser.py" "${files[@]}") +display_keybinds=$("${XDG_CONFIG_HOME:-$HOME/.config}/hypr/scripts/keybinds_parser.py" "${files[@]}") # Check for suggestions file created by python script if [[ -f "/tmp/hypr_keybind_suggestions_file" ]]; then diff --git a/config/hypr/scripts/KeyHints.sh b/config/hypr/scripts/KeyHints.sh index a9f6660a..6ae8c4b5 100755 --- a/config/hypr/scripts/KeyHints.sh +++ b/config/hypr/scripts/KeyHints.sh @@ -62,7 +62,7 @@ GDK_BACKEND=$BACKEND yad \ "CTRL ALT Del" "Hyprland Exit" "(NOTE: Hyprland Will exit immediately)" \ " SHIFT F" "Fullscreen" "Toggles to full screen" \ " CTL F" "Fake Fullscreen" "Toggles to fake full screen" \ - " ALT L" "Toggle Dwindle|Floating|Monocle|Master layouts" "Hyprland Layouts" \ + " ALT L" "Toggle Dwindle|Scrolling|Monocle|Master layouts" "Active workspace layout" \ " SPACEBAR" "Toggle float" "single window" \ " ALT SPACEBAR" "Toggle all windows to float" "all windows" \ " ALT O" "Toggle Blur" "normal or less blur" \ diff --git a/config/hypr/scripts/KeybindsLayoutInit.sh b/config/hypr/scripts/KeybindsLayoutInit.sh index 280e381b..08aff951 100755 --- a/config/hypr/scripts/KeybindsLayoutInit.sh +++ b/config/hypr/scripts/KeybindsLayoutInit.sh @@ -5,14 +5,14 @@ # License: GNU GPLv3 # SPDX-License-Identifier: GPL-3.0-or-later # ================================================== -# Initialize J/K keybinds so they always cycle windows globally (no layout-specific behavior). +# Legacy startup hook for layout keybind initialization. +# Runtime keybind behavior is now resolved per keypress based on active workspace layout. set -euo pipefail -# Always reset and bind SUPER+J/K the same way on startup -hyprctl keyword unbind SUPER,j || true -hyprctl keyword unbind SUPER,k || true +scripts_dir="${XDG_CONFIG_HOME:-$HOME/.config}/hypr/scripts" -# Cycle windows globally -hyprctl keyword bind SUPER,j,cyclenext -hyprctl keyword bind SUPER,k,cyclenext,prev +# Keep compatibility with existing startup entries while avoiding global rebinding. +if [[ -x "${scripts_dir}/ChangeLayout.sh" ]]; then + "${scripts_dir}/ChangeLayout.sh" --quiet init >/dev/null 2>&1 || true +fi diff --git a/config/hypr/scripts/KeyboardLayout.sh b/config/hypr/scripts/KeyboardLayout.sh index fe092e7f..f126b895 100755 --- a/config/hypr/scripts/KeyboardLayout.sh +++ b/config/hypr/scripts/KeyboardLayout.sh @@ -5,10 +5,10 @@ # License: GNU GPLv3 # SPDX-License-Identifier: GPL-3.0-or-later # ================================================== -# This is for changing kb_layouts. Set kb_layouts in "$HOME/.config/hypr/UserConfigs/UserSettings.conf" +# This is for changing kb_layouts. Set kb_layouts in "${XDG_CONFIG_HOME:-$HOME/.config}/hypr/UserConfigs/UserSettings.conf" -notif_icon="$HOME/.config/swaync/images/ja.png" -SCRIPTSDIR="$HOME/.config/hypr/scripts" +notif_icon="${XDG_CONFIG_HOME:-$HOME/.config}/swaync/images/ja.png" +SCRIPTSDIR="${XDG_CONFIG_HOME:-$HOME/.config}/hypr/scripts" # Refined ignore list with patterns or specific device names ignore_patterns=( diff --git a/config/hypr/scripts/KillActiveProcess.sh b/config/hypr/scripts/KillActiveProcess.sh index 66d6b009..9af3f813 100755 --- a/config/hypr/scripts/KillActiveProcess.sh +++ b/config/hypr/scripts/KillActiveProcess.sh @@ -13,7 +13,7 @@ active_pid=$(hyprctl activewindow | grep -o 'pid: [0-9]*' | cut -d' ' -f2) if [[ -z "$active_pid" || ! "$active_pid" =~ ^[0-9]+$ ]]; then - notify-send -u low -i "$HOME/.config/swaync/images/error.png" "Kill Active Window" "No active window PID found." + notify-send -u low -i "${XDG_CONFIG_HOME:-$HOME/.config}/swaync/images/error.png" "Kill Active Window" "No active window PID found." exit 1 fi diff --git a/config/hypr/scripts/Kitty_themes.sh b/config/hypr/scripts/Kitty_themes.sh index 24a4ae11..0de21f8c 100755 --- a/config/hypr/scripts/Kitty_themes.sh +++ b/config/hypr/scripts/Kitty_themes.sh @@ -8,11 +8,11 @@ # Kitty Themes Source https://github.com/dexpota/kitty-themes # # Define directories and variables -kitty_themes_DiR="$HOME/.config/kitty/kitty-themes" # Kitty Themes Directory -kitty_config="$HOME/.config/kitty/kitty.conf" -iDIR="$HOME/.config/swaync/images" # For notifications -rofi_theme_for_this_script="$HOME/.config/rofi/config-kitty-theme.rasi" -wallust_refresh_script="$HOME/.config/hypr/scripts/WallustSwww.sh" +kitty_themes_DiR="${XDG_CONFIG_HOME:-$HOME/.config}/kitty/kitty-themes" # Kitty Themes Directory +kitty_config="${XDG_CONFIG_HOME:-$HOME/.config}/kitty/kitty.conf" +iDIR="${XDG_CONFIG_HOME:-$HOME/.config}/swaync/images" # For notifications +rofi_theme_for_this_script="${XDG_CONFIG_HOME:-$HOME/.config}/rofi/config-kitty-theme.rasi" +wallust_refresh_script="${XDG_CONFIG_HOME:-$HOME/.config}/hypr/scripts/WallustSwww.sh" debug_log="${XDG_CACHE_HOME:-$HOME/.cache}/kooldots-kitty-themes.log" # --- Helper Functions --- diff --git a/config/hypr/scripts/KooLsDotsUpdate.sh b/config/hypr/scripts/KooLsDotsUpdate.sh index 887993a5..0cfb42a4 100755 --- a/config/hypr/scripts/KooLsDotsUpdate.sh +++ b/config/hypr/scripts/KooLsDotsUpdate.sh @@ -8,8 +8,8 @@ # simple bash script to check if update is available by comparing local version and github version # Local Paths -local_dir="$HOME/.config/hypr" -iDIR="$HOME/.config/swaync/images/" +local_dir="${XDG_CONFIG_HOME:-$HOME/.config}/hypr" +iDIR="${XDG_CONFIG_HOME:-$HOME/.config}/swaync/images/" local_version=$(find "$local_dir" -maxdepth 1 -name 'v*' -printf '%f\n' 2>/dev/null | sort -V | tail -n 1 | sed 's/^v//') KooL_Dots_DIR="$HOME/Hyprland-Dots" diff --git a/config/hypr/scripts/Kool_Quick_Settings.sh b/config/hypr/scripts/Kool_Quick_Settings.sh index 6ec02bb8..70e98459 100755 --- a/config/hypr/scripts/Kool_Quick_Settings.sh +++ b/config/hypr/scripts/Kool_Quick_Settings.sh @@ -49,11 +49,31 @@ fi # variables configs="$hypr_dir/configs" UserConfigs="$hypr_dir/UserConfigs" -rofi_theme="$HOME/.config/rofi/config-edit.rasi" +rofi_theme="${XDG_CONFIG_HOME:-$HOME/.config}/rofi/config-edit.rasi" msg=' ⁉️ Choose what to do ⁉️' -iDIR="$HOME/.config/swaync/images" +iDIR="${XDG_CONFIG_HOME:-$HOME/.config}/swaync/images" scriptsDir="$hypr_dir/scripts" UserScripts="$hypr_dir/UserScripts" +user_defaults_conf="$UserConfigs/01-UserDefaults.conf" +user_defaults_lua="$UserConfigs/user_defaults.lua" +user_env_conf="$UserConfigs/ENVariables.conf" +user_env_lua="$UserConfigs/user_env.lua" +user_keybinds_conf="$UserConfigs/UserKeybinds.conf" +user_keybinds_lua="$UserConfigs/user_keybinds.lua" +user_startup_conf="$UserConfigs/Startup_Apps.conf" +user_startup_lua="$UserConfigs/user_startup.lua" +user_window_rules_conf="$UserConfigs/WindowRules.conf" +user_window_rules_lua="$UserConfigs/user_window_rules.lua" +user_layer_rules_conf="$UserConfigs/LayerRules.conf" +user_layer_rules_lua="$UserConfigs/user_layer_rules.lua" +user_settings_conf="$UserConfigs/UserSettings.conf" +user_settings_lua="$UserConfigs/user_settings.lua" +user_decorations_conf="$UserConfigs/UserDecorations.conf" +user_decorations_lua="$UserConfigs/user_decorations.lua" +user_animations_conf="$UserConfigs/UserAnimations.conf" +user_animations_lua="$UserConfigs/user_animations.lua" +user_laptops_conf="$UserConfigs/Laptops.conf" +user_laptops_lua="$UserConfigs/user_laptops.lua" # Function to show info notification show_info() { @@ -64,6 +84,22 @@ show_info() { fi } +get_context_monitor_name() { + if ! command -v hyprctl >/dev/null 2>&1; then + return 1 + fi + local monitor="" + if command -v jq >/dev/null 2>&1; then + monitor="$(hyprctl activeworkspace -j 2>/dev/null | jq -r '.monitor // empty' | head -n1)" + if [[ -z "$monitor" ]]; then + monitor="$(hyprctl monitors -j 2>/dev/null | jq -r '.[] | select(.focused) | .name' | head -n1)" + fi + else + monitor="$(hyprctl monitors 2>/dev/null | awk '/^Monitor/{name=$2} /focused: yes/{print name; exit}')" + fi + printf '%s' "$monitor" +} + # Determine whether an editor command is terminal-based (TUI) is_tui_editor() { local -a cmd=("$@") @@ -103,9 +139,24 @@ resolve_system_lua_file() { fi } -resolve_user_defaults_lua_file() { - local preferred="$UserConfigs/user_defaults.lua" - printf '%s' "$preferred" +resolve_mode_file() { + local preferred="$1" + local fallback="$2" + if [[ -f "$preferred" || ! -f "$fallback" ]]; then + printf '%s' "$preferred" + else + printf '%s' "$fallback" + fi +} + +resolve_user_overlay_file() { + local lua_file="$1" + local conf_file="$2" + if [[ "$hypr_config_mode" == "lua" ]]; then + resolve_mode_file "$lua_file" "$conf_file" + else + resolve_mode_file "$conf_file" "$lua_file" + fi } # Function to toggle Rainbow Borders script availability and refresh UI components toggle_rainbow_borders() { @@ -271,6 +322,7 @@ Edit System Default Startup Apps Edit System Default Window Rules Edit System Default Layer Rules Edit System Default Settings +Change Starship Prompt --- UTILITIES --- Set SDDM Wallpaper Choose Kitty Terminal Theme @@ -280,11 +332,13 @@ Configure Workspace Rules (nwg-displays) GTK Settings (nwg-look) QT Apps Settings (qt6ct) QT Apps Settings (qt5ct) +Set Hyprlock Wallpaper Choose Hyprland Animations Choose Monitor Profiles Choose Rofi Themes Search for Keybinds Toggle Waybar Weather units (C/F) +Toggle Waybar Clock (12H/24H) Toggle Game Mode Switch Dark-Light Theme Rainbow Borders Mode @@ -293,36 +347,32 @@ EOF # Main function to handle menu selection main() { + local quick_settings_monitor + quick_settings_monitor="$(get_context_monitor_name)" choice=$(menu | rofi -i -dmenu -config $rofi_theme -mesg "$msg") # Map choices to corresponding files case "$choice" in "Edit User Defaults") - if [[ "$hypr_config_mode" == "lua" ]]; then file="$(resolve_user_defaults_lua_file)"; else file="$UserConfigs/01-UserDefaults.conf"; fi ;; + file="$(resolve_user_overlay_file "$user_defaults_lua" "$user_defaults_conf")" ;; "Edit User ENV variables") - if [[ "$hypr_config_mode" == "lua" ]]; then file="$UserConfigs/user_env.lua"; else file="$UserConfigs/ENVariables.conf"; fi ;; + file="$(resolve_user_overlay_file "$user_env_lua" "$user_env_conf")" ;; "Edit User Keybinds") - if [[ "$hypr_config_mode" == "lua" ]]; then file="$UserConfigs/user_keybinds.lua"; else file="$UserConfigs/UserKeybinds.conf"; fi ;; + file="$(resolve_user_overlay_file "$user_keybinds_lua" "$user_keybinds_conf")" ;; "Edit User Startup Apps (overlay)") - if [[ "$hypr_config_mode" == "lua" ]]; then file="$UserConfigs/user_startup.lua"; else file="$UserConfigs/Startup_Apps.conf"; fi ;; + file="$(resolve_user_overlay_file "$user_startup_lua" "$user_startup_conf")" ;; "Edit User Window Rules (overlay)") - if [[ "$hypr_config_mode" == "lua" ]]; then file="$UserConfigs/user_window_rules.lua"; else file="$UserConfigs/WindowRules.conf"; fi ;; + file="$(resolve_user_overlay_file "$user_window_rules_lua" "$user_window_rules_conf")" ;; "Edit User Layer Rules (overlay)") - if [[ "$hypr_config_mode" == "lua" ]]; then file="$UserConfigs/user_layer_rules.lua"; else file="$UserConfigs/LayerRules.conf"; fi ;; + file="$(resolve_user_overlay_file "$user_layer_rules_lua" "$user_layer_rules_conf")" ;; "Edit User Settings") - if [[ "$hypr_config_mode" == "lua" ]]; then - file="$UserConfigs/user_settings.lua" - show_info "Lua mode detected. Edit UserConfigs/user_settings.lua for user settings." - else - file="$configs/SystemSettings.conf" - show_info "Editing default settings. Copy to UserConfigs/UserSettings.conf to override." - fi ;; + file="$(resolve_user_overlay_file "$user_settings_lua" "$user_settings_conf")" ;; "Edit User Decorations") - if [[ "$hypr_config_mode" == "lua" ]]; then file="$UserConfigs/user_decorations.lua"; else file="$UserConfigs/UserDecorations.conf"; fi ;; + file="$(resolve_user_overlay_file "$user_decorations_lua" "$user_decorations_conf")" ;; "Edit User Animations") - if [[ "$hypr_config_mode" == "lua" ]]; then file="$UserConfigs/user_animations.lua"; else file="$UserConfigs/UserAnimations.conf"; fi ;; + file="$(resolve_user_overlay_file "$user_animations_lua" "$user_animations_conf")" ;; "Edit User Laptop Settings") - if [[ "$hypr_config_mode" == "lua" ]]; then file="$UserConfigs/user_laptops.lua"; else file="$UserConfigs/Laptops.conf"; fi ;; + file="$(resolve_user_overlay_file "$user_laptops_lua" "$user_laptops_conf")" ;; "Edit System Default Keybinds") if [[ "$hypr_config_mode" == "lua" ]]; then file="$(resolve_system_lua_file system_keybinds.lua)"; else file="$configs/Keybinds.conf"; fi ;; "Edit System Default Startup Apps") @@ -333,7 +383,14 @@ main() { if [[ "$hypr_config_mode" == "lua" ]]; then file="$(resolve_system_lua_file system_layer_rules.lua)"; else file="$configs/LayerRules.conf"; fi ;; "Edit System Default Settings") if [[ "$hypr_config_mode" == "lua" ]]; then file="$(resolve_system_lua_file system_settings.lua)"; else file="$configs/SystemSettings.conf"; fi ;; - "Set SDDM Wallpaper") $scriptsDir/sddm_wallpaper.sh --normal ;; + "Change Starship Prompt") "$scriptsDir/ChangeStarshipPrompt.sh" ;; + "Set SDDM Wallpaper") + if [[ -n "$quick_settings_monitor" ]]; then + "$scriptsDir/sddm_wallpaper.sh" --normal "$quick_settings_monitor" + else + "$scriptsDir/sddm_wallpaper.sh" --normal + fi + ;; "Choose Kitty Terminal Theme") $scriptsDir/Kitty_themes.sh ;; "Choose Ghostty Terminal Theme") $scriptsDir/Ghostty_themes.sh ;; "Configure Monitors (nwg-displays)") @@ -366,11 +423,19 @@ main() { exit 1 fi qt5ct ;; + "Set Hyprlock Wallpaper") + if [[ -n "$quick_settings_monitor" ]]; then + "$scriptsDir/HyprlockWallpaperSelect.sh" "$quick_settings_monitor" + else + "$scriptsDir/HyprlockWallpaperSelect.sh" + fi + ;; "Choose Hyprland Animations") $scriptsDir/Animations.sh ;; "Choose Monitor Profiles") $scriptsDir/MonitorProfiles.sh ;; "Choose Rofi Themes") $scriptsDir/RofiThemeSelector.sh ;; "Search for Keybinds") $scriptsDir/KeyBinds.sh ;; "Toggle Waybar Weather units (C/F)") $scriptsDir/Toggle-weather-waybar-units.sh ;; + "Toggle Waybar Clock (12H/24H)") $scriptsDir/ToggleWaybarTime.sh ;; "Toggle Game Mode") $scriptsDir/GameMode.sh ;; "Switch Dark-Light Theme") $scriptsDir/DarkLight.sh ;; "Rainbow Borders Mode") rainbow_borders_menu ;; diff --git a/config/hypr/scripts/LaunchFileManager.sh b/config/hypr/scripts/LaunchFileManager.sh new file mode 100755 index 00000000..8436451b --- /dev/null +++ b/config/hypr/scripts/LaunchFileManager.sh @@ -0,0 +1,122 @@ +#!/usr/bin/env bash +# ================================================== +# KoolDots (2026) +# Project URL: https://github.com/LinuxBeginnings +# License: GNU GPLv3 +# SPDX-License-Identifier: GPL-3.0-or-later +# ================================================== +# Launch preferred file manager with fallback handling. +# Usage: +# LaunchFileManager.sh "<preferred-file-manager-cmd>" "<preferred-terminal-cmd>" +# Examples: +# LaunchFileManager.sh "thunar" "kitty" + +set -u + +notify_msg() { + local urgency="${1:-normal}" + local body="${2:-}" + if command -v notify-send >/dev/null 2>&1; then + notify-send -u "$urgency" "KooL Launchers" "$body" + fi +} + +trim() { + local value="${1:-}" + value="${value#"${value%%[![:space:]]*}"}" + value="${value%"${value##*[![:space:]]}"}" + printf '%s' "$value" +} + +command_bin_from_string() { + local cmd + cmd="$(trim "${1:-}")" + [[ -n "$cmd" ]] || return 1 + ( + eval "set -- $cmd" + printf '%s' "${1:-}" + ) 2>/dev/null +} + +command_exists_from_string() { + local bin + bin="$(command_bin_from_string "${1:-}" 2>/dev/null || true)" + [[ -n "$bin" ]] || return 1 + command -v "$bin" >/dev/null 2>&1 +} + +launch_command_string() { + local cmd + cmd="$(trim "${1:-}")" + [[ -n "$cmd" ]] || return 1 + + if ! command_exists_from_string "$cmd"; then + return 127 + fi + + ( + eval "exec $cmd" + ) >/dev/null 2>&1 & + local pid=$! + + sleep 0.35 + if kill -0 "$pid" >/dev/null 2>&1; then + disown "$pid" >/dev/null 2>&1 || true + return 0 + fi + + wait "$pid" + local rc=$? + [[ $rc -eq 0 ]] +} + +append_unique_candidate() { + local candidate + candidate="$(trim "${1:-}")" + [[ -n "$candidate" ]] || return 0 + local existing + for existing in "${CANDIDATES[@]}"; do + [[ "$existing" == "$candidate" ]] && return 0 + done + CANDIDATES+=("$candidate") +} + +script_dir="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" +terminal_launcher="$script_dir/LaunchTerminal.sh" + +preferred_files="$(trim "${1:-${FILE_MANAGER:-}}")" +preferred_term="$(trim "${2:-${TERMINAL:-kitty}}")" + +declare -a CANDIDATES=() +append_unique_candidate "$preferred_files" +append_unique_candidate "thunar" +append_unique_candidate "dolphin" +append_unique_candidate "nautilus" + +reported_preferred_issue=0 + +for candidate in "${CANDIDATES[@]}"; do + if launch_command_string "$candidate"; then + exit 0 + fi + + if [[ $reported_preferred_issue -eq 0 && -n "$preferred_files" && "$candidate" == "$preferred_files" ]]; then + if ! command_exists_from_string "$preferred_files"; then + notify_msg normal "Preferred file manager '$preferred_files' is not installed. Falling back." + else + notify_msg normal "Preferred file manager '$preferred_files' failed to launch. Falling back." + fi + reported_preferred_issue=1 + fi +done + +if command -v yazi >/dev/null 2>&1; then + if [[ -x "$terminal_launcher" ]] && "$terminal_launcher" "$preferred_term" "yazi"; then + exit 0 + fi +else + notify_msg normal "No GUI file manager was launched and 'yazi' is not installed." +fi + +notify_msg critical "Unable to launch file manager. Tried preferred app, thunar, dolphin, nautilus, then terminal + yazi." +exit 1 diff --git a/config/hypr/scripts/LaunchTerminal.sh b/config/hypr/scripts/LaunchTerminal.sh new file mode 100755 index 00000000..8992a40d --- /dev/null +++ b/config/hypr/scripts/LaunchTerminal.sh @@ -0,0 +1,160 @@ +#!/usr/bin/env bash +# ================================================== +# KoolDots (2026) +# Project URL: https://github.com/LinuxBeginnings +# License: GNU GPLv3 +# SPDX-License-Identifier: GPL-3.0-or-later +# ================================================== +# Launch preferred terminal with fallback handling. +# Usage: +# LaunchTerminal.sh "<preferred-terminal-cmd>" [payload-command] +# Examples: +# LaunchTerminal.sh "kitty" +# LaunchTerminal.sh "ghostty" "yazi" + +set -u + +notify_msg() { + local urgency="${1:-normal}" + local body="${2:-}" + if command -v notify-send >/dev/null 2>&1; then + notify-send -u "$urgency" "KooL Launchers" "$body" + fi +} + +trim() { + local value="${1:-}" + value="${value#"${value%%[![:space:]]*}"}" + value="${value%"${value##*[![:space:]]}"}" + printf '%s' "$value" +} + +shell_quote() { + local value="${1:-}" + printf "'%s'" "${value//\'/\'\\\'\'}" +} + +command_bin_from_string() { + local cmd + cmd="$(trim "${1:-}")" + [[ -n "$cmd" ]] || return 1 + ( + eval "set -- $cmd" + printf '%s' "${1:-}" + ) 2>/dev/null +} + +command_exists_from_string() { + local bin + bin="$(command_bin_from_string "${1:-}" 2>/dev/null || true)" + [[ -n "$bin" ]] || return 1 + command -v "$bin" >/dev/null 2>&1 +} + +launch_command_string() { + local cmd + cmd="$(trim "${1:-}")" + [[ -n "$cmd" ]] || return 1 + + if ! command_exists_from_string "$cmd"; then + return 127 + fi + + ( + eval "exec $cmd" + ) >/dev/null 2>&1 & + local pid=$! + + sleep 0.35 + if kill -0 "$pid" >/dev/null 2>&1; then + disown "$pid" >/dev/null 2>&1 || true + return 0 + fi + + wait "$pid" + local rc=$? + [[ $rc -eq 0 ]] +} + +build_terminal_command() { + local term_cmd payload bin q_payload + term_cmd="$(trim "${1:-}")" + payload="$(trim "${2:-}")" + + if [[ -z "$payload" ]]; then + printf '%s' "$term_cmd" + return 0 + fi + + bin="$(command_bin_from_string "$term_cmd" 2>/dev/null || true)" + q_payload="$(shell_quote "$payload")" + + case "$bin" in + gnome-terminal) + printf '%s -- %s' "$term_cmd" "$q_payload" + ;; + wezterm) + case "$term_cmd" in + *" start "* | "wezterm start") + printf '%s -- %s' "$term_cmd" "$q_payload" + ;; + *) + printf '%s start -- %s' "$term_cmd" "$q_payload" + ;; + esac + ;; + *) + printf '%s -e %s' "$term_cmd" "$q_payload" + ;; + esac +} + +append_unique_candidate() { + local candidate + candidate="$(trim "${1:-}")" + [[ -n "$candidate" ]] || return 0 + local existing + for existing in "${CANDIDATES[@]}"; do + [[ "$existing" == "$candidate" ]] && return 0 + done + CANDIDATES+=("$candidate") +} + +preferred_term="$(trim "${1:-${TERMINAL:-}}")" +payload_cmd="$(trim "${2:-}")" + +declare -a CANDIDATES=() +append_unique_candidate "$preferred_term" +append_unique_candidate "kitty" +append_unique_candidate "ghostty" +append_unique_candidate "alacritty" +append_unique_candidate "wezterm" +append_unique_candidate "konsole" +append_unique_candidate "gnome-terminal" + +reported_preferred_issue=0 +candidate_cmd="" + +for candidate in "${CANDIDATES[@]}"; do + candidate_cmd="$(build_terminal_command "$candidate" "$payload_cmd")" + if launch_command_string "$candidate_cmd"; then + exit 0 + fi + + if [[ $reported_preferred_issue -eq 0 && -n "$preferred_term" && "$candidate" == "$preferred_term" ]]; then + if ! command_exists_from_string "$preferred_term"; then + notify_msg normal "Preferred terminal '$preferred_term' is not installed. Falling back." + else + notify_msg normal "Preferred terminal '$preferred_term' failed to launch. Falling back." + fi + reported_preferred_issue=1 + fi +done + +if [[ -n "$payload_cmd" ]]; then + notify_msg critical "Unable to launch terminal for command '$payload_cmd'." +else + notify_msg critical "Unable to launch terminal. Install one of: kitty, ghostty, alacritty, wezterm, konsole, gnome-terminal." +fi + +exit 1 diff --git a/config/hypr/scripts/LaunchThunar.sh b/config/hypr/scripts/LaunchThunar.sh new file mode 100755 index 00000000..08ff911e --- /dev/null +++ b/config/hypr/scripts/LaunchThunar.sh @@ -0,0 +1,50 @@ +#!/usr/bin/env bash +# ================================================== +# KoolDots (2026) +# Project URL: https://github.com/LinuxBeginnings +# License: GNU GPLv3 +# SPDX-License-Identifier: GPL-3.0-or-later +# ================================================== +# +# Launch Thunar reliably from Hyprland keybinds. + +runtime="${XDG_RUNTIME_DIR:-/run/user/$(id -u)}" + +if [ -z "${WAYLAND_DISPLAY:-}" ]; then + for sock in "$runtime"/wayland-[0-9]*; do + [ -S "$sock" ] || continue + case "$(basename "$sock")" in + *awww*) continue ;; + esac + export WAYLAND_DISPLAY="$(basename "$sock")" + break + done +fi + +if [ -z "${DISPLAY:-}" ] && [ -n "${WAYLAND_DISPLAY:-}" ]; then + export DISPLAY=:1 +fi + +# If a stale daemon exists with no visible windows, restart it. +if pgrep -x thunar >/dev/null 2>&1; then + if command -v hyprctl >/dev/null 2>&1; then + if ! python3 - <<'PY' +import json +import subprocess +import sys + +try: + clients = json.loads(subprocess.check_output(["hyprctl", "clients", "-j"], text=True)) +except Exception: + sys.exit(0) + +sys.exit(0 if any((c.get("class") or "").lower() == "thunar" for c in clients) else 1) +PY + then + thunar --quit >/dev/null 2>&1 || pkill -x thunar >/dev/null 2>&1 || true + sleep 0.2 + fi + fi +fi + +exec thunar "$HOME" diff --git a/config/hypr/scripts/LayoutKeybindDispatch.sh b/config/hypr/scripts/LayoutKeybindDispatch.sh new file mode 100755 index 00000000..48d3a1c5 --- /dev/null +++ b/config/hypr/scripts/LayoutKeybindDispatch.sh @@ -0,0 +1,219 @@ +#!/usr/bin/env bash +# ================================================== +# KoolDots (2026) +# Project URL: https://github.com/LinuxBeginnings +# License: GNU GPLv3 +# SPDX-License-Identifier: GPL-3.0-or-later +# ================================================== +# Dispatch layout-sensitive navigation actions per active workspace. +# This keeps SUPER+J/K and SUPER+arrow behavior aligned with workspace rules. + +set -u + +if ! command -v hyprctl >/dev/null 2>&1; then + exit 0 +fi + +LUA_CYCLE_SCRIPT="${XDG_CONFIG_HOME:-$HOME/.config}/hypr/scripts/LuaCycleWindow.sh" + +normalize_layout() { + case "$1" in + master | dwindle | scrolling | monocle) + printf '%s\n' "$1" + ;; + *) + printf '\n' + ;; + esac +} + +get_active_layout() { + local layout + + layout="$(hyprctl -j activeworkspace 2>/dev/null | jq -r '.tiledLayout // .tiled_layout // .layout // empty' 2>/dev/null || true)" + layout="$(normalize_layout "$layout")" + + if [[ -z "$layout" ]]; then + layout="$(hyprctl -j getoption general:layout 2>/dev/null | jq -r '.str // empty' 2>/dev/null || true)" + layout="$(normalize_layout "$layout")" + fi + + if [[ -z "$layout" ]]; then + layout="dwindle" + fi + + printf '%s\n' "$layout" +} + +dispatch_quiet() { + local dispatcher="$1" + shift || true + if (($# > 0)); then + hyprctl dispatch "$dispatcher" "$@" >/dev/null 2>&1 || true + else + hyprctl dispatch "$dispatcher" >/dev/null 2>&1 || true + fi +} + +get_active_window_address() { + if ! command -v jq >/dev/null 2>&1; then + printf '\n' + return 0 + fi + hyprctl -j activewindow 2>/dev/null | jq -r '.address // empty' 2>/dev/null || true +} + +dispatch_changed_focus() { + local before after dispatcher="$1" + shift || true + before="$(get_active_window_address)" + dispatch_quiet "$dispatcher" "$@" + after="$(get_active_window_address)" + [[ -n "$before" && -n "$after" && "$before" != "$after" ]] +} + +direction_word() { + case "$1" in + l | left) printf 'left\n' ;; + r | right) printf 'right\n' ;; + u | up) printf 'up\n' ;; + d | down) printf 'down\n' ;; + *) printf 'right\n' ;; + esac +} + +dispatch_lua_focus() { + local dir_word + dir_word="$(direction_word "$1")" + hyprctl dispatch "hl.dsp.focus({ direction = \"$dir_word\" })" >/dev/null 2>&1 || true +} + +cycle_lua() { + local mode="${1:-next}" + if [[ -x "$LUA_CYCLE_SCRIPT" ]]; then + "$LUA_CYCLE_SCRIPT" "$mode" >/dev/null 2>&1 || true + return 0 + fi + case "$mode" in + previous | prev | back) dispatch_lua_focus left ;; + *) dispatch_lua_focus right ;; + esac +} + +cycle_next() { + local layout="$1" + case "$layout" in + scrolling) + if ! dispatch_changed_focus layoutmsg "focus r"; then + dispatch_lua_focus right + fi + ;; + monocle) + if ! dispatch_changed_focus layoutmsg cyclenext; then + cycle_lua next + fi + ;; + *) + if ! dispatch_changed_focus cyclenext; then + cycle_lua next + fi + ;; + esac +} + +cycle_prev() { + local layout="$1" + case "$layout" in + scrolling) + if ! dispatch_changed_focus layoutmsg "focus l"; then + dispatch_lua_focus left + fi + ;; + monocle) + if ! dispatch_changed_focus layoutmsg cycleprev; then + cycle_lua previous + fi + ;; + *) + if ! dispatch_changed_focus cyclenext prev; then + cycle_lua previous + fi + ;; + esac +} + +focus_by_layout() { + local layout="$1" + local direction="$2" + + case "$layout" in + master) + if ! dispatch_changed_focus movefocus "$direction"; then + dispatch_lua_focus "$direction" + fi + ;; + monocle) + case "$direction" in + l | u) cycle_prev "$layout" ;; + *) cycle_next "$layout" ;; + esac + ;; + dwindle | scrolling) + case "$direction" in + l | u) + if [[ "$layout" == "scrolling" ]]; then + if ! dispatch_changed_focus layoutmsg "focus $direction"; then + dispatch_lua_focus "$direction" + fi + else + cycle_prev "$layout" + fi + ;; + *) + if [[ "$layout" == "scrolling" ]]; then + if ! dispatch_changed_focus layoutmsg "focus $direction"; then + dispatch_lua_focus "$direction" + fi + else + cycle_next "$layout" + fi + ;; + esac + ;; + *) + if ! dispatch_changed_focus movefocus "$direction"; then + dispatch_lua_focus "$direction" + fi + ;; + esac +} + +layout="$(get_active_layout)" + +case "${1:-}" in +cycle-next | next) + cycle_next "$layout" + ;; +cycle-prev | prev | previous) + cycle_prev "$layout" + ;; +focus-left | left) + focus_by_layout "$layout" l + ;; +focus-right | right) + focus_by_layout "$layout" r + ;; +focus-up | up) + focus_by_layout "$layout" u + ;; +focus-down | down) + focus_by_layout "$layout" d + ;; +layout | current-layout | status) + printf '%s\n' "$layout" + ;; +*) + echo "Usage: $(basename "$0") [cycle-next|cycle-prev|focus-left|focus-right|focus-up|focus-down|layout]" >&2 + exit 1 + ;; +esac diff --git a/config/hypr/scripts/LockScreen.sh b/config/hypr/scripts/LockScreen.sh index b795a8f7..c63a1e90 100755 --- a/config/hypr/scripts/LockScreen.sh +++ b/config/hypr/scripts/LockScreen.sh @@ -10,7 +10,7 @@ #pidof hyprlock || hyprlock -q # Ensure weather cache is up-to-date before locking (Waybar/lockscreen readers) -bash "$HOME/.config/hypr/UserScripts/WeatherWrap.sh" >/dev/null 2>&1 & +bash "${XDG_CONFIG_HOME:-$HOME/.config}/hypr/UserScripts/WeatherWrap.sh" >/dev/null 2>&1 & loginctl lock-session diff --git a/config/hypr/scripts/LuaAutoReload.sh b/config/hypr/scripts/LuaAutoReload.sh index 4a9d5040..128c1fc9 100755 --- a/config/hypr/scripts/LuaAutoReload.sh +++ b/config/hypr/scripts/LuaAutoReload.sh @@ -9,8 +9,23 @@ set -euo pipefail -watch_root="$HOME/.config/hypr" +watch_root="${XDG_CONFIG_HOME:-$HOME/.config}/hypr" [ -d "$watch_root" ] || exit 0 +session="${HYPRLAND_INSTANCE_SIGNATURE:-default}" +pid_file="/tmp/hypr-lua-autoreload-${session}.pid" + +if [ -f "$pid_file" ]; then + existing_pid="$(cat "$pid_file" 2>/dev/null || true)" + if [ -n "$existing_pid" ] && kill -0 "$existing_pid" 2>/dev/null; then + exit 0 + fi +fi + +echo "$$" >"$pid_file" +cleanup() { + rm -f "$pid_file" +} +trap cleanup EXIT INT TERM reload_hypr() { hyprctl reload >/dev/null 2>&1 || true diff --git a/config/hypr/scripts/MediaCtrl.sh b/config/hypr/scripts/MediaCtrl.sh index aeabcac9..958543dc 100755 --- a/config/hypr/scripts/MediaCtrl.sh +++ b/config/hypr/scripts/MediaCtrl.sh @@ -7,7 +7,7 @@ # ================================================== # Playerctl -music_icon="$HOME/.config/swaync/icons/music.png" +music_icon="${XDG_CONFIG_HOME:-$HOME/.config}/swaync/icons/music.png" # Play the next track play_next() { diff --git a/config/hypr/scripts/MonitorProfiles.sh b/config/hypr/scripts/MonitorProfiles.sh index 6330d45c..09467e76 100755 --- a/config/hypr/scripts/MonitorProfiles.sh +++ b/config/hypr/scripts/MonitorProfiles.sh @@ -13,7 +13,7 @@ if pidof rofi > /dev/null; then fi # Detect active Hyprland config mode (Lua entrypoint vs legacy .conf includes) -config_home="${XDG_CONFIG_HOME:-$HOME/.config}" +config_home="${XDG_CONFIG_HOME:-${XDG_CONFIG_HOME:-$HOME/.config}}" hypr_dir="$config_home/hypr" lua_entry="$hypr_dir/hyprland.lua" legacy_lua_entry="$config_home/hyprland.lua" @@ -35,22 +35,22 @@ if [[ -z "$hypr_config_mode" ]]; then fi # Variables -iDIR="$HOME/.config/swaync/images" -SCRIPTSDIR="$HOME/.config/hypr/scripts" -monitor_dir="$HOME/.config/hypr/Monitor_Profiles" -target_conf="$HOME/.config/hypr/monitors.conf" -target_lua_user="$HOME/.config/hypr/UserConfigs/monitors.lua" -target_lua_legacy="$HOME/.config/hypr/lua/monitors.lua" -rofi_theme="$HOME/.config/rofi/config-Monitors.rasi" +iDIR="${XDG_CONFIG_HOME:-$HOME/.config}/swaync/images" +SCRIPTSDIR="${XDG_CONFIG_HOME:-$HOME/.config}/hypr/scripts" +monitor_dir="${XDG_CONFIG_HOME:-$HOME/.config}/hypr/Monitor_Profiles" +target_conf="${XDG_CONFIG_HOME:-$HOME/.config}/hypr/monitors.conf" +target_lua_user="${XDG_CONFIG_HOME:-$HOME/.config}/hypr/UserConfigs/monitors.lua" +target_lua_legacy="${XDG_CONFIG_HOME:-$HOME/.config}/hypr/lua/monitors.lua" +rofi_theme="${XDG_CONFIG_HOME:-$HOME/.config}/rofi/config-Monitors.rasi" if [[ "$hypr_config_mode" == "lua" ]]; then profile_ext="lua" target="$target_lua_user" - msg="❗NOTE:❗ This will overwrite $HOME/.config/hypr/UserConfigs/monitors.lua" + msg="❗NOTE:❗ This will overwrite ${XDG_CONFIG_HOME:-$HOME/.config}/hypr/UserConfigs/monitors.lua" else profile_ext="conf" target="$target_conf" - msg="❗NOTE:❗ This will overwrite $HOME/.config/hypr/monitors.conf" + msg="❗NOTE:❗ This will overwrite ${XDG_CONFIG_HOME:-$HOME/.config}/hypr/monitors.conf" fi # Define the list of files to ignore diff --git a/config/hypr/scripts/OverviewToggle.sh b/config/hypr/scripts/OverviewToggle.sh index 456ccef1..7c55ae82 100755 --- a/config/hypr/scripts/OverviewToggle.sh +++ b/config/hypr/scripts/OverviewToggle.sh @@ -9,7 +9,7 @@ set -euo pipefail -QS_OVERVIEW_DIR="${XDG_CONFIG_HOME:-$HOME/.config}/quickshell/overview" +QS_OVERVIEW_DIR="${XDG_CONFIG_HOME:-${XDG_CONFIG_HOME:-$HOME/.config}}/quickshell/overview" # 1) Prefer Quickshell when installed and configured if command -v qs >/dev/null 2>&1 && [ -d "$QS_OVERVIEW_DIR" ]; then diff --git a/config/hypr/scripts/PersistWorkspaceLayout.sh b/config/hypr/scripts/PersistWorkspaceLayout.sh new file mode 100755 index 00000000..b5745880 --- /dev/null +++ b/config/hypr/scripts/PersistWorkspaceLayout.sh @@ -0,0 +1,223 @@ +#!/usr/bin/env bash +# ================================================== +# KoolDots (2026) +# Project URL: https://github.com/LinuxBeginnings +# License: GNU GPLv3 +# SPDX-License-Identifier: GPL-3.0-or-later +# ================================================== +# Persist active monitor/workspace layout back into ~/.config/hypr/workspaces.conf. + +set -u + +quiet_mode=0 +layout_override="" +workspace_override="" +monitor_override="" +workspaces_file="${XDG_CONFIG_HOME:-$HOME/.config}/hypr/workspaces.conf" + +usage() { + cat <<'EOF' +Usage: PersistWorkspaceLayout.sh [--quiet] [--layout <layout>] [--workspace <selector>] [--monitor <monitor>] [--file <path>] + --quiet Suppress console notifications. + --layout <layout> Override layout (master|dwindle|scrolling|monocle). + --workspace <sel> Override workspace selector (e.g. 5, name:code, special:scratchpad). + --monitor <name> Override monitor name. + --file <path> Target workspace rules file (default: ~/.config/hypr/workspaces.conf). +EOF +} + +normalize_layout() { + case "$1" in + master | dwindle | scrolling | monocle) + printf '%s\n' "$1" + ;; + *) + printf '\n' + ;; + esac +} + +require_cmd() { + command -v "$1" >/dev/null 2>&1 || { + echo "Missing dependency: $1" >&2 + exit 1 + } +} + +get_active_workspace_json() { + hyprctl -j activeworkspace 2>/dev/null || printf '{}' +} + +get_workspace_selector() { + local ws_json="$1" + local ws_id ws_name + + ws_id="$(jq -r '.id // empty' <<<"$ws_json" 2>/dev/null || true)" + ws_name="$(jq -r '.name // empty' <<<"$ws_json" 2>/dev/null || true)" + + if [[ "$ws_id" =~ ^[0-9]+$ ]] && ((ws_id > 0)); then + printf '%s\n' "$ws_id" + return 0 + fi + + if [[ -n "$ws_name" && "$ws_name" != "null" ]]; then + if [[ "$ws_name" == name:* || "$ws_name" == special:* ]]; then + printf '%s\n' "$ws_name" + else + printf 'name:%s\n' "$ws_name" + fi + return 0 + fi + + return 1 +} + +while [[ $# -gt 0 ]]; do + case "$1" in + --quiet | --no-notify) + quiet_mode=1 + shift + ;; + --layout) + layout_override="${2:-}" + shift 2 + ;; + --workspace) + workspace_override="${2:-}" + shift 2 + ;; + --monitor) + monitor_override="${2:-}" + shift 2 + ;; + --file) + workspaces_file="${2:-}" + shift 2 + ;; + -h | --help) + usage + exit 0 + ;; + *) + echo "Unknown argument: $1" >&2 + usage >&2 + exit 1 + ;; + esac +done + +require_cmd hyprctl +require_cmd jq +require_cmd awk +require_cmd mktemp + +ws_json="$(get_active_workspace_json)" +workspace_selector="${workspace_override:-$(get_workspace_selector "$ws_json" || true)}" +monitor_name="${monitor_override:-$(jq -r '.monitor // empty' <<<"$ws_json" 2>/dev/null || true)}" + +if [[ -n "$layout_override" ]]; then + layout_name="$(normalize_layout "$layout_override")" +else + layout_name="$(jq -r '.tiledLayout // .tiled_layout // empty' <<<"$ws_json" 2>/dev/null || true)" + layout_name="$(normalize_layout "$layout_name")" + if [[ -z "$layout_name" ]]; then + layout_name="$(hyprctl -j getoption general:layout 2>/dev/null | jq -r '.str // empty' 2>/dev/null || true)" + layout_name="$(normalize_layout "$layout_name")" + fi +fi + +if [[ -z "$workspace_selector" || -z "$monitor_name" || -z "$layout_name" ]]; then + echo "Unable to resolve workspace, monitor, or layout for persistence" >&2 + exit 1 +fi + +mkdir -p "$(dirname "$workspaces_file")" +touch "$workspaces_file" + +tmp_file="$(mktemp "${workspaces_file}.XXXXXX")" +cleanup() { + rm -f "$tmp_file" +} +trap cleanup EXIT + +awk \ + -v target_ws="$workspace_selector" \ + -v target_mon="$monitor_name" \ + -v target_layout="$layout_name" ' +function trim(v) { + gsub(/^[[:space:]]+|[[:space:]]+$/, "", v) + return v +} +BEGIN { + updated = 0 +} +{ + line = $0 + content = line + comment = "" + hash_pos = index(line, "#") + if (hash_pos > 0) { + content = substr(line, 1, hash_pos - 1) + comment = substr(line, hash_pos) + } + stripped = trim(content) + indent_len = match(line, /[^[:space:]]/) - 1 + if (indent_len < 0) { + indent_len = length(line) + } + indent = substr(line, 1, indent_len) + + if (stripped ~ /^workspace[[:space:]]*=/) { + sub(/^workspace[[:space:]]*=[[:space:]]*/, "", stripped) + token_count = split(stripped, tokens, /,/) + ws = trim(tokens[1]) + mon = "" + extras_count = 0 + delete extras + + for (i = 2; i <= token_count; i++) { + token = trim(tokens[i]) + if (token == "") { + continue + } + if (token ~ /^monitor:/) { + mon = trim(substr(token, 9)) + continue + } + if (token ~ /^layout:/) { + continue + } + extras[++extras_count] = token + } + + if (ws == target_ws && mon == target_mon) { + if (!updated) { + rebuilt = indent "workspace = " ws ", monitor:" target_mon ", layout:" target_layout + for (i = 1; i <= extras_count; i++) { + rebuilt = rebuilt ", " extras[i] + } + if (comment != "") { + rebuilt = rebuilt " " comment + } + print rebuilt + updated = 1 + } + next + } + } + + print line +} +END { + if (!updated) { + print "workspace = " target_ws ", monitor:" target_mon ", layout:" target_layout + } +} +' "$workspaces_file" >"$tmp_file" + +mv "$tmp_file" "$workspaces_file" +trap - EXIT + +if [[ "$quiet_mode" -eq 0 ]]; then + printf 'Saved workspace layout: %s @ %s -> %s\n' "$workspace_selector" "$monitor_name" "$layout_name" +fi diff --git a/config/hypr/scripts/Polkit-Diag.sh b/config/hypr/scripts/Polkit-Diag.sh index aa4e69a8..8e0e9f23 100755 --- a/config/hypr/scripts/Polkit-Diag.sh +++ b/config/hypr/scripts/Polkit-Diag.sh @@ -15,7 +15,7 @@ INSTALL_OVERRIDE=0 FORCE_OVERRIDE=0 # Systemd override details for hyprpolkitagent -OVERRIDE_DIR="$HOME/.config/systemd/user/hyprpolkitagent.service.d" +OVERRIDE_DIR="${XDG_CONFIG_HOME:-$HOME/.config}/systemd/user/hyprpolkitagent.service.d" OVERRIDE_FILE="$OVERRIDE_DIR/override.conf" OVERRIDE_CONTENT="[Unit] diff --git a/config/hypr/scripts/PortalHyprland.sh b/config/hypr/scripts/PortalHyprland.sh index 3d3dc410..54ea71bb 100755 --- a/config/hypr/scripts/PortalHyprland.sh +++ b/config/hypr/scripts/PortalHyprland.sh @@ -10,21 +10,73 @@ set -euo pipefail is_ubuntu_family() { if [[ ! -r /etc/os-release ]]; then - return 1 + #return 1 + # It's been reported this also addresses + # The xdg-desktop-portal failure when not using + # UWSM on Arch + exit 0 fi # shellcheck disable=SC1091 . /etc/os-release - [[ "${ID:-}" == "ubuntu" \ - || "${ID:-}" == "linuxmint" \ - || "${ID:-}" == "zorin" \ - || "${ID:-}" == "rhino" \ - || "${ID_LIKE:-}" == *ubuntu* ]] + [[ "${ID:-}" == "ubuntu" || + "${ID:-}" == "linuxmint" || + "${ID:-}" == "zorin" || + "${ID:-}" == "rhino" || + "${ID_LIKE:-}" == *ubuntu* ]] } kill_quietly() { killall -q "$1" 2>/dev/null || true } +wait_for_wayland() { + local runtime_dir="${XDG_RUNTIME_DIR:-/run/user/$(id -u)}" + export XDG_RUNTIME_DIR="$runtime_dir" + + if [[ -n "${WAYLAND_DISPLAY:-}" && -S "$runtime_dir/$WAYLAND_DISPLAY" ]]; then + return 0 + fi + + for _ in $(seq 1 120); do + if [[ -n "${WAYLAND_DISPLAY:-}" && -S "$runtime_dir/$WAYLAND_DISPLAY" ]]; then + return 0 + fi + + for socket in "$runtime_dir"/wayland-[0-9]*; do + [[ -S "$socket" ]] || continue + case "$(basename "$socket")" in + *awww*) continue ;; + esac + export WAYLAND_DISPLAY="$(basename "$socket")" + return 0 + done + sleep 0.1 + done + + return 1 +} + +ensure_portal_env() { + export XDG_CURRENT_DESKTOP="${XDG_CURRENT_DESKTOP:-Hyprland}" + export XDG_SESSION_DESKTOP="${XDG_SESSION_DESKTOP:-Hyprland}" + export XDG_SESSION_TYPE="${XDG_SESSION_TYPE:-wayland}" + if [[ -f "/usr/share/glib-2.0/schemas/gschemas.compiled" ]]; then + export GSETTINGS_SCHEMA_DIR="/usr/share/glib-2.0/schemas" + fi + + local data_dirs="${XDG_DATA_DIRS:-}" + if [[ -z "$data_dirs" ]]; then + data_dirs="/usr/local/share:/usr/share" + else + if [[ ":$data_dirs:" != *":/usr/local/share:"* ]]; then + data_dirs="/usr/local/share:$data_dirs" + fi + if [[ ":$data_dirs:" != *":/usr/share:"* ]]; then + data_dirs="$data_dirs:/usr/share" + fi + fi + export XDG_DATA_DIRS="$data_dirs" +} start_portal_binary() { local description="$1" @@ -38,29 +90,74 @@ start_portal_binary() { echo "Warning: no $description binary found (checked: $*)" >&2 return 1 } -if ! is_ubuntu_family; then - exit 0 -fi +stop_portal_processes() { + kill_quietly xdg-desktop-portal-hyprland + kill_quietly xdg-desktop-portal-wlr + kill_quietly xdg-desktop-portal-gnome + kill_quietly xdg-desktop-portal-gtk + kill_quietly xdg-desktop-portal +} + +restart_portal_via_systemd() { + command -v systemctl >/dev/null 2>&1 || return 1 + ensure_portal_env + if command -v dbus-update-activation-environment >/dev/null 2>&1; then + dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP XDG_SESSION_DESKTOP XDG_SESSION_TYPE XDG_DATA_DIRS GSETTINGS_SCHEMA_DIR >/dev/null 2>&1 || true + fi + + systemctl --user import-environment WAYLAND_DISPLAY XDG_CURRENT_DESKTOP XDG_SESSION_DESKTOP XDG_SESSION_TYPE XDG_DATA_DIRS GSETTINGS_SCHEMA_DIR >/dev/null 2>&1 || true + systemctl --user stop xdg-desktop-portal.service xdg-desktop-portal-hyprland.service xdg-desktop-portal-gtk.service >/dev/null 2>&1 || true + stop_portal_processes + sleep 0.5 + systemctl --user reset-failed xdg-desktop-portal-hyprland.service xdg-desktop-portal.service xdg-desktop-portal-gtk.service >/dev/null 2>&1 || true + systemctl --user start graphical-session.target >/dev/null 2>&1 || true + + for _ in $(seq 1 30); do + if systemctl --user is-active --quiet graphical-session.target; then + break + fi + sleep 0.1 + done + + systemctl --user start xdg-desktop-portal-hyprland.service >/dev/null 2>&1 || true + if is_ubuntu_family; then + systemctl --user start xdg-desktop-portal-gtk.service >/dev/null 2>&1 || true + fi -sleep 1 -kill_quietly xdg-desktop-portal-hyprland -kill_quietly xdg-desktop-portal-wlr -kill_quietly xdg-desktop-portal-gnome -kill_quietly xdg-desktop-portal-gtk -kill_quietly xdg-desktop-portal -sleep 1 + for _ in $(seq 1 60); do + if systemctl --user is-active --quiet xdg-desktop-portal-hyprland.service; then + return 0 + fi + sleep 0.1 + done + return 1 +} -start_portal_binary "xdg-desktop-portal-hyprland" \ - /usr/lib/xdg-desktop-portal-hyprland \ - /usr/libexec/xdg-desktop-portal-hyprland +restart_portal_manually() { + sleep 1 + stop_portal_processes + sleep 1 -sleep 2 + start_portal_binary "xdg-desktop-portal-hyprland" \ + /usr/lib/xdg-desktop-portal-hyprland \ + /usr/libexec/xdg-desktop-portal-hyprland -start_portal_binary "xdg-desktop-portal-gtk" \ - /usr/lib/xdg-desktop-portal-gtk \ - /usr/libexec/xdg-desktop-portal-gtk + sleep 2 -start_portal_binary "xdg-desktop-portal" \ - /usr/lib/xdg-desktop-portal \ - /usr/libexec/xdg-desktop-portal + if is_ubuntu_family; then + start_portal_binary "xdg-desktop-portal-gtk" \ + /usr/lib/xdg-desktop-portal-gtk \ + /usr/libexec/xdg-desktop-portal-gtk || true + fi + + start_portal_binary "xdg-desktop-portal" \ + /usr/lib/xdg-desktop-portal \ + /usr/libexec/xdg-desktop-portal +} +wait_for_wayland || true +if command -v systemctl >/dev/null 2>&1; then + restart_portal_via_systemd || true +else + restart_portal_manually +fi diff --git a/config/hypr/scripts/PortalHyprlandUbuntu.sh b/config/hypr/scripts/PortalHyprlandUbuntu.sh index 86e1a6d3..79762a84 100755 --- a/config/hypr/scripts/PortalHyprlandUbuntu.sh +++ b/config/hypr/scripts/PortalHyprlandUbuntu.sh @@ -17,8 +17,8 @@ if [[ -r /etc/os-release ]]; then || "${ID:-}" == "zorin" \ || "${ID:-}" == "rhino" \ || "${ID_LIKE:-}" == *ubuntu* ]]; then - if [[ -x "$HOME/.config/hypr/scripts/PortalHyprland.sh" ]]; then - "$HOME/.config/hypr/scripts/PortalHyprland.sh" + if [[ -x "${XDG_CONFIG_HOME:-$HOME/.config}/hypr/scripts/PortalHyprland.sh" ]]; then + "${XDG_CONFIG_HOME:-$HOME/.config}/hypr/scripts/PortalHyprland.sh" fi fi fi diff --git a/config/hypr/scripts/Refresh.sh b/config/hypr/scripts/Refresh.sh index 947b6bfc..ed8c4a0c 100755 --- a/config/hypr/scripts/Refresh.sh +++ b/config/hypr/scripts/Refresh.sh @@ -7,8 +7,8 @@ # ================================================== # Scripts for refreshing ags, waybar, rofi, swaync, wallust -SCRIPTSDIR=$HOME/.config/hypr/scripts -UserScripts=$HOME/.config/hypr/UserScripts +SCRIPTSDIR=${XDG_CONFIG_HOME:-$HOME/.config}/hypr/scripts +UserScripts=${XDG_CONFIG_HOME:-$HOME/.config}/hypr/UserScripts # Define file_exists function file_exists() { @@ -32,10 +32,10 @@ pkill -f 'waybar-cava\..*\.conf' 2>/dev/null || true # quit ags & relaunch ags -#ags -q && ags & +ags -q && ags & # quit quickshell & relaunch quickshell -#pkill qs && qs & +pkill qs && qs & # some process to kill (exclude waybar to avoid restart loops) for pid in $(pidof rofi swaync ags swaybg); do diff --git a/config/hypr/scripts/RefreshNoWaybar.sh b/config/hypr/scripts/RefreshNoWaybar.sh index f5d564ac..c9e7464e 100755 --- a/config/hypr/scripts/RefreshNoWaybar.sh +++ b/config/hypr/scripts/RefreshNoWaybar.sh @@ -10,8 +10,8 @@ # Used by automatic wallpaper change # Modified inorder to refresh rofi background, Wallust, SwayNC only -SCRIPTSDIR=$HOME/.config/hypr/scripts -UserScripts=$HOME/.config/hypr/UserScripts +SCRIPTSDIR=${XDG_CONFIG_HOME:-$HOME/.config}/hypr/scripts +UserScripts=${XDG_CONFIG_HOME:-$HOME/.config}/hypr/UserScripts # Define file_exists function file_exists() { @@ -31,10 +31,10 @@ for _prs in "${_ps[@]}"; do done # quit ags & relaunch ags -#ags -q && ags & +ags -q && ags & # quit quickshell & relaunch quickshell -#pkill qs && qs & +pkill qs && qs & # reload swaync diff --git a/config/hypr/scripts/RofiEmoji.sh b/config/hypr/scripts/RofiEmoji.sh index 539a03b6..65463abc 100755 --- a/config/hypr/scripts/RofiEmoji.sh +++ b/config/hypr/scripts/RofiEmoji.sh @@ -7,7 +7,7 @@ # ================================================== # Variables -rofi_theme="$HOME/.config/rofi/config-emoji.rasi" +rofi_theme="${XDG_CONFIG_HOME:-$HOME/.config}/rofi/config-emoji.rasi" msg='** note ** 👀 Click or Return to choose || Ctrl V to Paste' # Check if rofi is already running diff --git a/config/hypr/scripts/RofiFocusedWallpaperLink.sh b/config/hypr/scripts/RofiFocusedWallpaperLink.sh new file mode 100755 index 00000000..c0f8d64a --- /dev/null +++ b/config/hypr/scripts/RofiFocusedWallpaperLink.sh @@ -0,0 +1,180 @@ +#!/usr/bin/env bash +# ================================================== +# KoolDots (2026) +# Project URL: https://github.com/LinuxBeginnings +# License: GNU GPLv3 +# SPDX-License-Identifier: GPL-3.0-or-later +# ================================================== +# Resolve focused-monitor wallpaper and refresh rofi focused wallpaper link. + +SCRIPTSDIR="${XDG_CONFIG_HOME:-$HOME/.config}/hypr/scripts" +ROFI_FOCUSED_LINK="${XDG_CONFIG_HOME:-$HOME/.config}/rofi/.current_wallpaper_focused" +ROFI_GLOBAL_LINK="${XDG_CONFIG_HOME:-$HOME/.config}/rofi/.current_wallpaper" +WALLPAPER_CURRENT="${XDG_CONFIG_HOME:-$HOME/.config}/hypr/wallpaper_effects/.wallpaper_current" + +# shellcheck source=/dev/null +. "$SCRIPTSDIR/WallpaperCmd.sh" 2>/dev/null || true + +read_cached_wallpaper() { + local cache_file="$1" + [[ -f "$cache_file" ]] || return 1 + awk 'NF && $0 !~ /^filter/ {print; exit}' "$cache_file" +} + +read_wallpaper_from_query() { + local monitor="$1" + [[ -n "$monitor" ]] || return 1 + [[ -n "${WWW_CMD:-}" ]] || return 1 + command -v "$WWW_CMD" >/dev/null 2>&1 || return 1 + "$WWW_CMD" query 2>/dev/null | awk -v mon="$monitor" ' + { + line=$0 + sub(/^Monitor[[:space:]]+/, "", line) + sub(/^:[[:space:]]*/, "", line) + mon_name=line + sub(/:.*/, "", mon_name) + gsub(/^[[:space:]]+|[[:space:]]+$/, "", mon_name) + if (mon_name != mon) next + + path=line + sub(/^.*image:[[:space:]]*/, "", path) + gsub(/^[[:space:]]+|[[:space:]]+$/, "", path) + if (path != line && length(path) > 0) { + print path + exit + } + } + ' +} + +resolve_link_or_file() { + local path="$1" + local resolved="" + if [[ -L "$path" ]]; then + resolved="$(readlink -f "$path" 2>/dev/null || true)" + if [[ -n "$resolved" && -f "$resolved" ]]; then + printf '%s\n' "$resolved" + return 0 + fi + fi + if [[ -f "$path" ]]; then + printf '%s\n' "$path" + return 0 + fi + return 1 +} + +get_active_workspace_monitor() { + command -v hyprctl >/dev/null 2>&1 || return 1 + if command -v jq >/dev/null 2>&1; then + hyprctl activeworkspace -j 2>/dev/null | jq -r '.monitor // empty' | head -n1 + else + hyprctl monitors 2>/dev/null | awk '/^Monitor/{name=$2} /focused: yes/{print name; exit}' + fi +} + +get_focused_monitor() { + command -v hyprctl >/dev/null 2>&1 || return 1 + if command -v jq >/dev/null 2>&1; then + hyprctl monitors -j 2>/dev/null | jq -r '.[] | select(.focused) | .name' | head -n1 + else + hyprctl monitors 2>/dev/null | awk '/^Monitor/{name=$2} /focused: yes/{print name; exit}' + fi +} + +monitor_exists() { + local monitor="$1" + [[ -n "$monitor" ]] || return 1 + command -v hyprctl >/dev/null 2>&1 || return 1 + if command -v jq >/dev/null 2>&1; then + hyprctl monitors -j 2>/dev/null | jq -r --arg mon "$monitor" '.[] | select(.name == $mon) | .name' | grep -qx "$monitor" + else + hyprctl monitors 2>/dev/null | awk '/^Monitor/{print $2}' | grep -qx "$monitor" + fi +} + +resolve_target_monitor() { + local monitor="" + monitor="$(get_active_workspace_monitor 2>/dev/null || true)" + if monitor_exists "$monitor"; then + printf '%s\n' "$monitor" + return 0 + fi + monitor="$(get_focused_monitor 2>/dev/null || true)" + if [[ -n "$monitor" ]]; then + printf '%s\n' "$monitor" + return 0 + fi + return 1 +} + +read_wallpaper_from_cache() { + local monitor="$1" + local cache_root="${WWW_CACHE_DIR:-$HOME/.cache/awww}" + local cache_file="$cache_root/$monitor" + local fallback_cache="" + local path="" + + case "$cache_root" in + "$HOME/.cache/awww") + fallback_cache="$HOME/.cache/swww/$monitor" + ;; + "$HOME/.cache/swww") + fallback_cache="$HOME/.cache/awww/$monitor" + ;; + esac + + path="$(read_cached_wallpaper "$cache_file" 2>/dev/null || true)" + if [[ -z "$path" && -n "$fallback_cache" ]]; then + path="$(read_cached_wallpaper "$fallback_cache" 2>/dev/null || true)" + fi + [[ -n "$path" && -f "$path" ]] || return 1 + printf '%s\n' "$path" +} + +resolve_focused_wallpaper() { + local monitor="$1" + local path="" + local per_monitor_link="" + local per_monitor_current="" + + if [[ -n "$monitor" ]]; then + per_monitor_link="${XDG_CONFIG_HOME:-$HOME/.config}/rofi/.current_wallpaper_${monitor}" + per_monitor_current="${XDG_CONFIG_HOME:-$HOME/.config}/hypr/wallpaper_effects/.wallpaper_current_${monitor}" + + path="$(read_wallpaper_from_query "$monitor" 2>/dev/null || true)" + if [[ -z "$path" ]]; then + path="$(resolve_link_or_file "$per_monitor_link" 2>/dev/null || true)" + fi + if [[ -z "$path" ]]; then + path="$(resolve_link_or_file "$per_monitor_current" 2>/dev/null || true)" + fi + if [[ -z "$path" ]]; then + path="$(read_wallpaper_from_cache "$monitor" 2>/dev/null || true)" + fi + fi + + if [[ -z "$path" ]]; then + path="$(resolve_link_or_file "$ROFI_GLOBAL_LINK" 2>/dev/null || true)" + fi + if [[ -z "$path" ]]; then + path="$(resolve_link_or_file "$WALLPAPER_CURRENT" 2>/dev/null || true)" + fi + + [[ -n "$path" && -f "$path" ]] || return 1 + printf '%s\n' "$path" +} + +main() { + local target_monitor="" + local wallpaper_path="" + + target_monitor="$(resolve_target_monitor 2>/dev/null || true)" + wallpaper_path="$(resolve_focused_wallpaper "$target_monitor" 2>/dev/null || true)" + [[ -n "$wallpaper_path" && -f "$wallpaper_path" ]] || exit 1 + + mkdir -p "$(dirname "$ROFI_FOCUSED_LINK")" + ln -sf "$wallpaper_path" "$ROFI_FOCUSED_LINK" +} + +main "$@" diff --git a/config/hypr/scripts/RofiSearch.sh b/config/hypr/scripts/RofiSearch.sh index 42b54d75..05520ed0 100755 --- a/config/hypr/scripts/RofiSearch.sh +++ b/config/hypr/scripts/RofiSearch.sh @@ -8,7 +8,7 @@ # For Searching via web browsers # Define the path to the config file -config_file=$HOME/.config/hypr/UserConfigs/01-UserDefaults.conf +config_file=${XDG_CONFIG_HOME:-$HOME/.config}/hypr/UserConfigs/01-UserDefaults.conf if ! command -v jq >/dev/null 2>&1; then notify-send -u low "Rofi Search" "jq is required for URL encoding. Please install jq." exit 1 @@ -33,7 +33,7 @@ if [[ -z "$Search_Engine" ]]; then fi # Rofi theme and message -rofi_theme="$HOME/.config/rofi/config-search.rasi" +rofi_theme="${XDG_CONFIG_HOME:-$HOME/.config}/rofi/config-search.rasi" msg='‼️ **note** ‼️ search via default web browser' # Kill Rofi if already running before execution diff --git a/config/hypr/scripts/RofiThemeSelector-modified.sh b/config/hypr/scripts/RofiThemeSelector-modified.sh index 535b7313..9dfafba1 100755 --- a/config/hypr/scripts/RofiThemeSelector-modified.sh +++ b/config/hypr/scripts/RofiThemeSelector-modified.sh @@ -5,12 +5,12 @@ # License: GNU GPLv3 # SPDX-License-Identifier: GPL-3.0-or-later # ================================================== -# A modified version of Rofi-Theme-Selector, concentrating only on ~/.local and also, applying only 10 @themes in ~/.config/rofi/config.rasi +# A modified version of Rofi-Theme-Selector, concentrating only on ~/.local and also, applying only 10 @themes in ${XDG_CONFIG_HOME:-$HOME/.config}/rofi/config.rasi # as opposed to continous adding of //@theme # This code is released in public domain by Dave Davenport <qball@gmpclient.org> -iDIR="$HOME/.config/swaync/images" +iDIR="${XDG_CONFIG_HOME:-$HOME/.config}/swaync/images" OS="linux" @@ -42,7 +42,7 @@ fi TMP_CONFIG_FILE=$(${MKTEMP}).rasi #rofi_theme_dir="${HOME}/.local/share/rofi/themes" -rofi_config_file="${XDG_CONFIG_HOME:-${HOME}/.config}/rofi/config.rasi" +rofi_config_file="${XDG_CONFIG_HOME:-${XDG_CONFIG_HOME:-$HOME/.config}}/rofi/config.rasi" ## # Array with parts to the found themes. @@ -57,7 +57,7 @@ declare -a theme_names ## # Find themes in defined directories find_themes() { - directories=("$HOME/.local/share/rofi/themes" "$HOME/.config/rofi/themes") + directories=("$HOME/.local/share/rofi/themes" "${XDG_CONFIG_HOME:-$HOME/.config}/rofi/themes") for TD in "${directories[@]}"; do if [ -d "$TD" ]; then @@ -86,8 +86,8 @@ add_theme_to_config() { # Determine the correct path for the theme if [[ -f "$HOME/.local/share/rofi/themes/$theme_name.rasi" ]]; then theme_path="$HOME/.local/share/rofi/themes/$theme_name.rasi" - elif [[ -f "$HOME/.config/rofi/themes/$theme_name.rasi" ]]; then - theme_path="$HOME/.config/rofi/themes/$theme_name.rasi" + elif [[ -f "${XDG_CONFIG_HOME:-$HOME/.config}/rofi/themes/$theme_name.rasi" ]]; then + theme_path="${XDG_CONFIG_HOME:-$HOME/.config}/rofi/themes/$theme_name.rasi" else echo "Theme not found: $theme_name" return 1 diff --git a/config/hypr/scripts/RofiThemeSelector.sh b/config/hypr/scripts/RofiThemeSelector.sh index db723b6f..1841b4f5 100755 --- a/config/hypr/scripts/RofiThemeSelector.sh +++ b/config/hypr/scripts/RofiThemeSelector.sh @@ -8,11 +8,11 @@ # Rofi Themes - Script to preview and apply themes by live-reloading the config. # --- Configuration --- -ROFI_THEMES_DIR_CONFIG="$HOME/.config/rofi/themes" +ROFI_THEMES_DIR_CONFIG="${XDG_CONFIG_HOME:-$HOME/.config}/rofi/themes" ROFI_THEMES_DIR_LOCAL="$HOME/.local/share/rofi/themes" -ROFI_CONFIG_FILE="$HOME/.config/rofi/config.rasi" -ROFI_THEME_FOR_THIS_SCRIPT="$HOME/.config/rofi/config-rofi-theme.rasi" # A separate rofi theme for the picker itself -IDIR="$HOME/.config/swaync/images" # For notifications +ROFI_CONFIG_FILE="${XDG_CONFIG_HOME:-$HOME/.config}/rofi/config.rasi" +ROFI_THEME_FOR_THIS_SCRIPT="${XDG_CONFIG_HOME:-$HOME/.config}/rofi/config-rofi-theme.rasi" # A separate rofi theme for the picker itself +IDIR="${XDG_CONFIG_HOME:-$HOME/.config}/swaync/images" # For notifications # --- Helper Functions --- diff --git a/config/hypr/scripts/ScreenShot.sh b/config/hypr/scripts/ScreenShot.sh index baad89a1..ed914552 100755 --- a/config/hypr/scripts/ScreenShot.sh +++ b/config/hypr/scripts/ScreenShot.sh @@ -13,9 +13,9 @@ PICTURES_DIR="$(xdg-user-dir PICTURES 2>/dev/null || echo "$HOME/Pictures")" dir="$PICTURES_DIR/Screenshots" file="Screenshot_${time}_${RANDOM}.png" -iDIR="$HOME/.config/swaync/icons" -iDoR="$HOME/.config/swaync/images" -sDIR="$HOME/.config/hypr/scripts" +iDIR="${XDG_CONFIG_HOME:-$HOME/.config}/swaync/icons" +iDoR="${XDG_CONFIG_HOME:-$HOME/.config}/swaync/images" +sDIR="${XDG_CONFIG_HOME:-$HOME/.config}/hypr/scripts" active_window_class=$(hyprctl -j activewindow | jq -r '(.class)') active_window_file="Screenshot_${time}_${active_window_class}.png" diff --git a/config/hypr/scripts/ScrollCycleColumnWidth.sh b/config/hypr/scripts/ScrollCycleColumnWidth.sh new file mode 100755 index 00000000..c9ab2668 --- /dev/null +++ b/config/hypr/scripts/ScrollCycleColumnWidth.sh @@ -0,0 +1,56 @@ +#!/usr/bin/env bash +set -euo pipefail + +if ! command -v hyprctl >/dev/null 2>&1; then + exit 0 +fi + +if ! command -v jq >/dev/null 2>&1; then + exit 0 +fi + +workspace_json="$(hyprctl -j activeworkspace 2>/dev/null || true)" +layout_name="$(jq -r '.tiledLayout // .tiled_layout // empty' <<<"$workspace_json")" + +if [[ "$layout_name" != "scrolling" ]]; then + exit 0 +fi + +window_json="$(hyprctl -j activewindow 2>/dev/null || true)" +column_width="$(jq -r '.layout.column.width // .layout.column // empty' <<<"$window_json")" +window_monitor="$(jq -r '.monitor // empty' <<<"$window_json")" +window_width="$(jq -r '.size[0] // empty' <<<"$window_json")" + +if [[ -n "$column_width" && "$column_width" != "null" ]]; then + if ! awk -v v="$column_width" 'BEGIN { exit !(v > 0 && v <= 1.0) }'; then + column_width="" + fi +fi + +if [[ -z "$column_width" || "$column_width" == "null" ]]; then + monitors_json="$(hyprctl -j monitors 2>/dev/null || true)" + monitor_width="$(jq -r --arg id "$window_monitor" '.[] | select((.id | tostring) == $id) | .width' <<<"$monitors_json" 2>/dev/null | head -n1)" + if [[ -n "$window_width" && -n "$monitor_width" && "$window_width" != "null" && "$monitor_width" != "null" ]]; then + column_width="$(awk -v w="$window_width" -v mw="$monitor_width" 'BEGIN { if (w > 0 && mw > 0) printf "%.6f", (w / mw); }')" + fi +fi + +if [[ -z "$column_width" || "$column_width" == "null" ]]; then + exit 0 +fi + +presets=(0.25 0.33 0.5 0.66 0.75 1.0) +closest_idx=0 +best_diff="" + +for idx in "${!presets[@]}"; do + preset="${presets[$idx]}" + diff="$(awk -v a="$preset" -v b="$column_width" 'BEGIN { d = a - b; if (d < 0) d = -d; printf "%.12f", d }')" + if [[ -z "$best_diff" ]] || awk -v d="$diff" -v b="$best_diff" 'BEGIN { exit !(d < b) }'; then + best_diff="$diff" + closest_idx="$idx" + fi +done + +next_idx=$(( (closest_idx + 1) % ${#presets[@]} )) +hyprctl dispatch layoutmsg "colresize ${presets[$next_idx]}" >/dev/null 2>&1 || true diff --git a/config/hypr/scripts/ScrollMaximizeToggle.sh b/config/hypr/scripts/ScrollMaximizeToggle.sh new file mode 100755 index 00000000..29c06eb4 --- /dev/null +++ b/config/hypr/scripts/ScrollMaximizeToggle.sh @@ -0,0 +1,175 @@ +#!/usr/bin/env bash +set -euo pipefail + +if ! command -v hyprctl >/dev/null 2>&1; then + exit 1 +fi +dispatch_ok() { + local dispatcher="$1" + shift + local output="" + case "$dispatcher" in + fullscreen) + if [[ "${1:-}" == "1" ]]; then + output="$(hyprctl dispatch 'hl.dsp.window.fullscreen({ mode = "maximized" })' 2>&1 || true)" + else + output="$(hyprctl dispatch 'hl.dsp.window.fullscreen({ mode = "fullscreen" })' 2>&1 || true)" + fi + ;; + layoutmsg) + local msg="${1:-}" + msg="${msg//\\/\\\\}" + msg="${msg//\"/\\\"}" + output="$(hyprctl dispatch "hl.dsp.layout(\"${msg}\")" 2>&1 || true)" + ;; + *) + output="$(hyprctl dispatch "$dispatcher" "$@" 2>&1 || true)" + ;; + esac + local normalized="" + normalized="$(printf '%s' "$output" | tr -d '\r\n')" + [[ -z "$normalized" || "$normalized" == "ok" ]] +} + +if ! command -v jq >/dev/null 2>&1; then + dispatch_ok fullscreen 1 >/dev/null 2>&1 || true + exit 0 +fi + +run_layoutmsg() { + local msg="$1" + dispatch_ok layoutmsg "$msg" +} +toggle_maximize() { + local active_window_json="$1" + local fullscreen_state="" + fullscreen_state="$(jq -r ' + (.fullscreen // .fullscreenClient // 0) as $value + | if ($value | type) == "boolean" then + (if $value then 1 else 0 end) + elif ($value | type) == "number" then + $value + elif ($value | type) == "string" then + ($value | tonumber? // 0) + else + 0 + end + ' <<<"$active_window_json" 2>/dev/null || true)" + if [[ -n "$fullscreen_state" && "$fullscreen_state" != "null" ]] && awk -v v="$fullscreen_state" 'BEGIN { exit !(v > 0) }'; then + dispatch_ok fullscreen 1 >/dev/null 2>&1 || true + return 0 + fi + return 1 +} + +workspace_json="$(hyprctl -j activeworkspace 2>/dev/null || true)" +layout_name="$(jq -r '.tiledLayout // .tiled_layout // empty' <<<"$workspace_json")" + +if [[ "$layout_name" != "scrolling" ]]; then + dispatch_ok fullscreen 1 >/dev/null 2>&1 || true + exit 0 +fi + +window_json="$(hyprctl -j activewindow 2>/dev/null || true)" +if [[ -z "$window_json" || "$window_json" == "null" ]]; then + exit 0 +fi +if toggle_maximize "$window_json"; then + exit 0 +fi + +window_address="$(jq -r '.address // empty' <<<"$window_json")" +window_width="$(jq -r '.size[0] // empty' <<<"$window_json")" +column_width="$(jq -r ' + .layout.column as $col + | if ($col | type) == "number" then $col + elif ($col | type) == "object" then ($col.width // empty) + elif ($col | type) == "string" then ($col | tonumber? // empty) + else empty + end +' <<<"$window_json")" +if [[ -n "$column_width" && "$column_width" != "null" ]]; then + if ! awk -v v="$column_width" 'BEGIN { exit !(v > 0 && v <= 1.0) }'; then + column_width="" + fi +fi + +if [[ -z "$window_address" || -z "$window_width" || "$window_width" == "null" ]]; then + dispatch_ok fullscreen 1 >/dev/null 2>&1 || true + exit 0 +fi + +runtime_dir="${XDG_RUNTIME_DIR:-/tmp}" +state_dir="${runtime_dir}/hypr" +state_file="${state_dir}/scrolling-maximize-state.json" +mkdir -p "$state_dir" + +if [[ ! -s "$state_file" ]]; then + printf '{}\n' > "$state_file" +elif ! jq -e . "$state_file" >/dev/null 2>&1; then + printf '{}\n' > "$state_file" +fi + +saved_width="$(jq -r --arg key "$window_address" ' + .[$key] as $saved + | if ($saved | type) == "number" then $saved + elif ($saved | type) == "object" then ($saved.width // empty) + elif ($saved | type) == "string" then ($saved | tonumber? // empty) + else empty + end +' "$state_file" 2>/dev/null || true)" +tmp_file="$(mktemp "${state_file}.XXXXXX")" +cleanup() { + rm -f "$tmp_file" +} +trap cleanup EXIT + +if [[ -n "$saved_width" && "$saved_width" != "null" ]]; then + restored=0 + if run_layoutmsg "colresize ${saved_width}"; then + restored=1 + elif run_layoutmsg "colresize exact ${saved_width}"; then + restored=1 + fi + if [[ "$restored" -eq 1 ]]; then + jq --arg key "$window_address" 'del(.[$key])' "$state_file" > "$tmp_file" + mv "$tmp_file" "$state_file" + fi + trap - EXIT + exit 0 +fi +if [[ -z "$column_width" || "$column_width" == "null" ]]; then + if run_layoutmsg "colresize 1.0"; then + max_width="" + for _ in 1 2 3 4 5 6; do + candidate_width="$(hyprctl -j activewindow 2>/dev/null | jq -r '.size[0] // empty')" + if [[ -n "$candidate_width" && "$candidate_width" != "null" ]] && awk -v v="$candidate_width" 'BEGIN { exit !(v > 0) }'; then + if [[ -z "$max_width" ]] || awk -v c="$candidate_width" -v m="$max_width" 'BEGIN { exit !(c > m) }'; then + max_width="$candidate_width" + fi + fi + sleep 0.05 + done + if [[ -n "$max_width" ]]; then + column_width="$(awk -v w="$window_width" -v mw="$max_width" 'BEGIN { if (w > 0 && mw > 0) printf "%.6f", (w / mw); }')" + fi + else + dispatch_ok fullscreen 1 >/dev/null 2>&1 || true + trap - EXIT + exit 0 + fi + if [[ -z "$column_width" || "$column_width" == "null" ]]; then + trap - EXIT + exit 0 + fi + jq --arg key "$window_address" --argjson value "$column_width" '. + {($key): $value}' "$state_file" > "$tmp_file" + mv "$tmp_file" "$state_file" + trap - EXIT + exit 0 +fi + +jq --arg key "$window_address" --argjson value "$column_width" '. + {($key): $value}' "$state_file" > "$tmp_file" +mv "$tmp_file" "$state_file" +trap - EXIT + +run_layoutmsg "colresize 1.0" >/dev/null 2>&1 || dispatch_ok fullscreen 1 >/dev/null 2>&1 || true diff --git a/config/hypr/scripts/Sounds.sh b/config/hypr/scripts/Sounds.sh index 3af4944f..e763475c 100755 --- a/config/hypr/scripts/Sounds.sh +++ b/config/hypr/scripts/Sounds.sh @@ -10,7 +10,7 @@ theme="freedesktop" # Set the theme for the system sounds. mute=false # Set to true to mute the system sounds. -directSoundDir="$HOME/.config/hypr/sounds" +directSoundDir="${XDG_CONFIG_HOME:-$HOME/.config}/hypr/sounds" # Mute individual sounds here. muteScreenshots=false diff --git a/config/hypr/scripts/Tak0-Autodispatch.sh b/config/hypr/scripts/Tak0-Autodispatch.sh index cabe1672..8eea93ad 100755 --- a/config/hypr/scripts/Tak0-Autodispatch.sh +++ b/config/hypr/scripts/Tak0-Autodispatch.sh @@ -72,7 +72,7 @@ fi echo "=== Deploy '$CMD' → WS $TARGET_WS @ $(date) ===" >>"$LOGFILE" # Detect active Hyprland config mode -config_home="${XDG_CONFIG_HOME:-$HOME/.config}" +config_home="${XDG_CONFIG_HOME:-${XDG_CONFIG_HOME:-$HOME/.config}}" hypr_dir="$config_home/hypr" lua_entry="$hypr_dir/hyprland.lua" legacy_lua_entry="$config_home/hyprland.lua" diff --git a/config/hypr/scripts/Tak0-Per-Window-Switch.sh b/config/hypr/scripts/Tak0-Per-Window-Switch.sh index eba3b380..cc878615 100755 --- a/config/hypr/scripts/Tak0-Per-Window-Switch.sh +++ b/config/hypr/scripts/Tak0-Per-Window-Switch.sh @@ -19,12 +19,12 @@ ################################################################## MAP_FILE="$HOME/.cache/kb_layout_per_window" -ICON="$HOME/.config/swaync/images/ja.png" +ICON="${XDG_CONFIG_HOME:-$HOME/.config}/swaync/images/ja.png" SCRIPT_NAME="$(basename "$0")" SCRIPT_PATH="$(readlink -f "$0")" # Detect active Hyprland config mode -config_home="${XDG_CONFIG_HOME:-$HOME/.config}" +config_home="${XDG_CONFIG_HOME:-${XDG_CONFIG_HOME:-$HOME/.config}}" hypr_dir="$config_home/hypr" lua_entry="$hypr_dir/hyprland.lua" legacy_lua_entry="$config_home/hyprland.lua" diff --git a/config/hypr/scripts/ThemeChanger.sh b/config/hypr/scripts/ThemeChanger.sh index c19908e4..f592300c 100755 --- a/config/hypr/scripts/ThemeChanger.sh +++ b/config/hypr/scripts/ThemeChanger.sh @@ -9,8 +9,8 @@ set -euo pipefail # Wallust v3/v4 compatibility wallust_args=() # shellcheck source=/dev/null -if [ -f "$HOME/.config/hypr/scripts/WallustConfig.sh" ]; then - . "$HOME/.config/hypr/scripts/WallustConfig.sh" +if [ -f "${XDG_CONFIG_HOME:-$HOME/.config}/hypr/scripts/WallustConfig.sh" ]; then + . "${XDG_CONFIG_HOME:-$HOME/.config}/hypr/scripts/WallustConfig.sh" fi # SPDX-FileCopyrightText: 2025-present Ahum Maitra theahummaitra@gmail.com @@ -32,8 +32,12 @@ require rofi # notify-send is optional have_notify() { command -v notify-send >/dev/null 2>&1; } capture_current_layout() { + if [ -x "${XDG_CONFIG_HOME:-$HOME/.config}/hypr/scripts/ChangeLayout.sh" ]; then + "${XDG_CONFIG_HOME:-$HOME/.config}/hypr/scripts/ChangeLayout.sh" --no-notify current 2>/dev/null | awk 'NF {print; exit}' + return 0 + fi if command -v jq >/dev/null 2>&1; then - hyprctl -j getoption general:layout 2>/dev/null | jq -r '.str // empty' + hyprctl -j activeworkspace 2>/dev/null | jq -r '.tiledLayout // .tiled_layout // empty' else hyprctl getoption general:layout 2>/dev/null | awk 'NR==1 {print $2}' fi @@ -42,13 +46,9 @@ restore_layout_after_reload() { local layout="$1" [ -n "$layout" ] || return 0 - if [ -x "$HOME/.config/hypr/scripts/ChangeLayout.sh" ]; then - if "$HOME/.config/hypr/scripts/ChangeLayout.sh" --no-notify "$layout" >/dev/null 2>&1; then - return 0 - fi + if [ -x "${XDG_CONFIG_HOME:-$HOME/.config}/hypr/scripts/ChangeLayout.sh" ]; then + "${XDG_CONFIG_HOME:-$HOME/.config}/hypr/scripts/ChangeLayout.sh" --no-notify "$layout" >/dev/null 2>&1 || true fi - - hyprctl keyword general:layout "$layout" >/dev/null 2>&1 || true } reload_hypr_preserve_layout() { command -v hyprctl >/dev/null 2>&1 || return 0 @@ -91,9 +91,9 @@ if [ ! -s "$theme_cache" ] || [ "$cache_age" -gt "$cache_max_age" ]; then fi ensure_wallust_waybar_style() { - local waybar_style="$HOME/.config/waybar/style.css" - local colors_file="$HOME/.config/waybar/wallust/colors-waybar.css" - local styles_dir="$HOME/.config/waybar/style" + local waybar_style="${XDG_CONFIG_HOME:-$HOME/.config}/waybar/style.css" + local colors_file="${XDG_CONFIG_HOME:-$HOME/.config}/waybar/wallust/colors-waybar.css" + local styles_dir="${XDG_CONFIG_HOME:-$HOME/.config}/waybar/style" [ -f "$colors_file" ] || return 0 if [ -f "$waybar_style" ] && grep -q 'colors-waybar.css' "$waybar_style"; then return 0 @@ -119,7 +119,7 @@ reload_running_cava_colors() { fi } -wallust_hypr_colors="$HOME/.config/hypr/wallust/wallust-hyprland.conf" +wallust_hypr_colors="${XDG_CONFIG_HOME:-$HOME/.config}/hypr/wallust/wallust-hyprland.conf" extract_wallust_hex() { local key="$1" awk -v key="$key" ' @@ -180,16 +180,16 @@ if wallust "${wallust_args[@]}" theme -- "${choice}" >"$wallust_log" 2>&1; then # Wait until template targets exist, are newer than start_ts, and are stable (size/mtime stops changing) # Ensure Ghostty directory exists so Wallust can write target even if Ghostty isn't installed - mkdir -p "$HOME/.config/ghostty" || true + mkdir -p "${XDG_CONFIG_HOME:-$HOME/.config}/ghostty" || true targets=( - "$HOME/.config/waybar/wallust/colors-waybar.css" - "$HOME/.config/rofi/wallust/colors-rofi.rasi" - "$HOME/.config/hypr/wallust/wallust-hyprland.conf" + "${XDG_CONFIG_HOME:-$HOME/.config}/waybar/wallust/colors-waybar.css" + "${XDG_CONFIG_HOME:-$HOME/.config}/rofi/wallust/colors-rofi.rasi" + "${XDG_CONFIG_HOME:-$HOME/.config}/hypr/wallust/wallust-hyprland.conf" ) # Normalize Ghostty palette syntax in case upstream templates or older targets used ':' - ghostty_conf="$HOME/.config/ghostty/wallust.conf" + ghostty_conf="${XDG_CONFIG_HOME:-$HOME/.config}/ghostty/wallust.conf" if [ -f "$ghostty_conf" ]; then sed -i -E 's/^(\s*palette\s*=\s*)([0-9]{1,2}):/\1\2=/' "$ghostty_conf" 2>/dev/null || true fi @@ -239,7 +239,7 @@ if wallust "${wallust_args[@]}" theme -- "${choice}" >"$wallust_log" 2>&1; then # Small cushion before refresh to mirror wallpaper flow sleep 0.2 # Normalize Rofi selection colors to use the palette's accent (color12) - rofi_colors="$HOME/.config/rofi/wallust/colors-rofi.rasi" + rofi_colors="${XDG_CONFIG_HOME:-$HOME/.config}/rofi/wallust/colors-rofi.rasi" if [ -f "$rofi_colors" ]; then accent_hex=$(sed -n 's/^\s*color12:\s*\(#[0-9A-Fa-f]\{6\}\).*/\1/p' "$rofi_colors" | head -n1) [ -z "$accent_hex" ] && accent_hex=$(sed -n 's/^\s*color13:\s*\(#[0-9A-Fa-f]\{6\}\).*/\1/p' "$rofi_colors" | head -n1) @@ -258,8 +258,8 @@ if wallust "${wallust_args[@]}" theme -- "${choice}" >"$wallust_log" 2>&1; then reload_running_cava_colors # Refresh bars/menus after files are ready - if [ -x "$HOME/.config/hypr/scripts/Refresh.sh" ]; then - "$HOME/.config/hypr/scripts/Refresh.sh" >/dev/null 2>&1 || true + if [ -x "${XDG_CONFIG_HOME:-$HOME/.config}/hypr/scripts/Refresh.sh" ]; then + "${XDG_CONFIG_HOME:-$HOME/.config}/hypr/scripts/Refresh.sh" >/dev/null 2>&1 || true else if command -v waybar-msg >/dev/null 2>&1; then waybar-msg cmd reload >/dev/null 2>&1 || true diff --git a/config/hypr/scripts/Toggle-Active-Window-Audio.sh b/config/hypr/scripts/Toggle-Active-Window-Audio.sh index c954541f..42d63217 100755 --- a/config/hypr/scripts/Toggle-Active-Window-Audio.sh +++ b/config/hypr/scripts/Toggle-Active-Window-Audio.sh @@ -7,7 +7,7 @@ # ================================================== set -euo pipefail -XDG_CONFIG_HOME="${XDG_CONFIG_HOME:-$HOME/.config}" +XDG_CONFIG_HOME="${XDG_CONFIG_HOME:-${XDG_CONFIG_HOME:-$HOME/.config}}" swayIconDir="${XDG_CONFIG_HOME}/swaync/icons" #// Credits to sl1ng for the orginal script. Rewritten by Vyle. diff --git a/config/hypr/scripts/Toggle-weather-waybar-units.sh b/config/hypr/scripts/Toggle-weather-waybar-units.sh index abc089ff..bf0b102e 100755 --- a/config/hypr/scripts/Toggle-weather-waybar-units.sh +++ b/config/hypr/scripts/Toggle-weather-waybar-units.sh @@ -7,7 +7,7 @@ # ================================================== # Toggle waybar-weather units between metric and imperial -CONFIG_FILE="$HOME/.config/waybar-weather/config.toml" +CONFIG_FILE="${XDG_CONFIG_HOME:-$HOME/.config}/waybar-weather/config.toml" if [ ! -f "$CONFIG_FILE" ]; then notify-send "Weather units" "Config not found: $CONFIG_FILE" diff --git a/config/hypr/scripts/ToggleWaybarTime.sh b/config/hypr/scripts/ToggleWaybarTime.sh new file mode 100755 index 00000000..2273c3af --- /dev/null +++ b/config/hypr/scripts/ToggleWaybarTime.sh @@ -0,0 +1,101 @@ +#!/usr/bin/env bash +# ================================================== +# KoolDots (2026) +# Project URL: https://github.com/LinuxBeginnings +# License: GNU GPLv3 +# SPDX-License-Identifier: GPL-3.0-or-later +# ================================================== +# Toggle Waybar clock format between 12H and 24H + +MODULES_FILE="${XDG_CONFIG_HOME:-$HOME/.config}/waybar/Modules" +notify_swaync() { + command -v notify-send >/dev/null 2>&1 || return 0 + export XDG_RUNTIME_DIR="${XDG_RUNTIME_DIR:-/run/user/$(id -u)}" + local icon="${XDG_CONFIG_HOME:-$HOME/.config}/swaync/images/note.png" + if [ -z "${DBUS_SESSION_BUS_ADDRESS:-}" ]; then + local bus_path="${XDG_RUNTIME_DIR}/bus" + if [ -S "$bus_path" ]; then + export DBUS_SESSION_BUS_ADDRESS="unix:path=$bus_path" + fi + fi + DBUS_SESSION_BUS_ADDRESS="$DBUS_SESSION_BUS_ADDRESS" XDG_RUNTIME_DIR="$XDG_RUNTIME_DIR" \ + notify-send -a "Waybar Time" -u low -t 2000 -i "$icon" "$@" >/dev/null 2>&1 || true +} + +if [ ! -f "$MODULES_FILE" ]; then + notify_swaync "Modules file not found: $MODULES_FILE" + exit 1 +fi + +is_12h_active() { + grep -qE '^[[:space:]]*"format":[[:space:]]*" {:%I:%M %p}"' "$MODULES_FILE" +} + +apply_12h() { + sed -i 's#^\([[:space:]]*\)//\("format": " {:%I:%M %p}".*\)#\1\2#' "$MODULES_FILE" + sed -i 's#^\([[:space:]]*\)\("format": " {:%H:%M:%S}".*\)#\1//\2#' "$MODULES_FILE" + sed -i 's#^\([[:space:]]*\)\("format": " {:%H:%M}".*\)#\1//\2#' "$MODULES_FILE" + sed -i 's#^\([[:space:]]*\)//\("format": "{:%I:%M %p - %d/%b}".*\)#\1\2#' "$MODULES_FILE" + sed -i 's#^\([[:space:]]*\)\("format": "{:%H:%M - %d/%b}".*\)#\1//\2#' "$MODULES_FILE" + sed -i 's#^\([[:space:]]*\)//\("format": "{:%B | %a %d, %Y | %I:%M %p}".*\)#\1\2#' "$MODULES_FILE" + sed -i 's#^\([[:space:]]*\)\("format": "{:%B | %a %d, %Y | %H:%M}".*\)#\1//\2#' "$MODULES_FILE" + sed -i 's#^\([[:space:]]*\)//\("format": "{:%A, %I:%M %P}".*\)#\1\2#' "$MODULES_FILE" + sed -i 's#^\([[:space:]]*\)\("format": "{:%a %d | %H:%M}".*\)#\1//\2#' "$MODULES_FILE" +} + +apply_24h() { + sed -i 's#^\([[:space:]]*\)\("format": " {:%I:%M %p}".*\)#\1//\2#' "$MODULES_FILE" + sed -i 's#^\([[:space:]]*\)//\("format": " {:%H:%M:%S}".*\)#\1\2#' "$MODULES_FILE" + sed -i 's#^\([[:space:]]*\)//\("format": " {:%H:%M}".*\)#\1\2#' "$MODULES_FILE" + sed -i 's#^\([[:space:]]*\)\("format": "{:%I:%M %p - %d/%b}".*\)#\1//\2#' "$MODULES_FILE" + sed -i 's#^\([[:space:]]*\)//\("format": "{:%H:%M - %d/%b}".*\)#\1\2#' "$MODULES_FILE" + sed -i 's#^\([[:space:]]*\)\("format": "{:%B | %a %d, %Y | %I:%M %p}".*\)#\1//\2#' "$MODULES_FILE" + sed -i 's#^\([[:space:]]*\)//\("format": "{:%B | %a %d, %Y | %H:%M}".*\)#\1\2#' "$MODULES_FILE" + sed -i 's#^\([[:space:]]*\)\("format": "{:%A, %I:%M %P}".*\)#\1//\2#' "$MODULES_FILE" + sed -i 's#^\([[:space:]]*\)//\("format": "{:%a %d | %H:%M}".*\)#\1\2#' "$MODULES_FILE" +} + +restart_waybar() { + local manage_with_systemd=0 + + if command -v systemctl >/dev/null 2>&1; then + if systemctl --user --quiet is-active waybar.service 2>/dev/null || systemctl --user --quiet is-enabled waybar.service 2>/dev/null; then + manage_with_systemd=1 + fi + fi + + if [ "$manage_with_systemd" -eq 1 ]; then + systemctl --user stop waybar.service >/dev/null 2>&1 || true + fi + + pkill -x waybar >/dev/null 2>&1 || true + pkill -x '.waybar-wrapped' >/dev/null 2>&1 || true + sleep 0.2 + if pgrep -x waybar >/dev/null 2>&1 || pgrep -x '.waybar-wrapped' >/dev/null 2>&1; then + pkill -9 -x waybar >/dev/null 2>&1 || true + pkill -9 -x '.waybar-wrapped' >/dev/null 2>&1 || true + fi + sleep 0.2 + + if [ "$manage_with_systemd" -eq 1 ]; then + if ! systemctl --user start waybar.service >/dev/null 2>&1; then + waybar >/dev/null 2>&1 & + fi + else + waybar >/dev/null 2>&1 & + fi +} + +if is_12h_active; then + apply_24h + mode="24H" +else + apply_12h + mode="12H" +fi + +restart_waybar +sleep 0.3 + +notify_swaync "Switched to ${mode} format" +printf 'Waybar Time: switched to %s format\n' "$mode" diff --git a/config/hypr/scripts/TouchPad.sh b/config/hypr/scripts/TouchPad.sh index 1042a652..73cbfb46 100755 --- a/config/hypr/scripts/TouchPad.sh +++ b/config/hypr/scripts/TouchPad.sh @@ -6,14 +6,14 @@ # SPDX-License-Identifier: GPL-3.0-or-later # ================================================== # For disabling touchpad. -# Edit the Touchpad_Device on ~/.config/hypr/UserConfigs/Laptops.conf according to your system +# Edit the Touchpad_Device on ${XDG_CONFIG_HOME:-$HOME/.config}/hypr/UserConfigs/Laptops.conf according to your system # use hyprctl devices to get your system touchpad device name # source https://github.com/hyprwm/Hyprland/discussions/4283?sort=new#discussioncomment-8648109 set -euo pipefail -notif="$HOME/.config/swaync/images/ja.png" -laptops_conf="$HOME/.config/hypr/UserConfigs/Laptops.conf" +notif="${XDG_CONFIG_HOME:-$HOME/.config}/swaync/images/ja.png" +laptops_conf="${XDG_CONFIG_HOME:-$HOME/.config}/hypr/UserConfigs/Laptops.conf" touchpad_device="${TOUCHPAD_DEVICE:-}" if [[ -z "$touchpad_device" && -f "$laptops_conf" ]]; then diff --git a/config/hypr/scripts/UserConfigsSwitcher.sh b/config/hypr/scripts/UserConfigsSwitcher.sh index 7d9968a6..6259f363 100755 --- a/config/hypr/scripts/UserConfigsSwitcher.sh +++ b/config/hypr/scripts/UserConfigsSwitcher.sh @@ -7,7 +7,7 @@ # ================================================== # Script to manage UserConfigs and UserConfigsBak -HYPR_CONFIG_DIR="$HOME/.config/hypr" +HYPR_CONFIG_DIR="${XDG_CONFIG_HOME:-$HOME/.config}/hypr" USER_CONFIGS="$HYPR_CONFIG_DIR/UserConfigs" USER_CONFIGS_BAK="$HYPR_CONFIG_DIR/UserConfigsBak" diff --git a/config/hypr/scripts/Volume.sh b/config/hypr/scripts/Volume.sh index dec7837c..c6ef8873 100755 --- a/config/hypr/scripts/Volume.sh +++ b/config/hypr/scripts/Volume.sh @@ -7,8 +7,8 @@ # ================================================== # Scripts for volume controls for audio and mic -iDIR="$HOME/.config/swaync/icons" -sDIR="$HOME/.config/hypr/scripts" +iDIR="${XDG_CONFIG_HOME:-$HOME/.config}/swaync/icons" +sDIR="${XDG_CONFIG_HOME:-$HOME/.config}/hypr/scripts" # Get Volume get_volume() { diff --git a/config/hypr/UserScripts/WallpaperAutoChange.sh b/config/hypr/scripts/WallpaperAutoChange.sh index 5cee2a1e..a12e90d8 100755 --- a/config/hypr/UserScripts/WallpaperAutoChange.sh +++ b/config/hypr/scripts/WallpaperAutoChange.sh @@ -12,12 +12,13 @@ # # NOTE: this script uses bash (not POSIX shell) for the RANDOM variable -wallust_refresh=$HOME/.config/hypr/scripts/RefreshNoWaybar.sh -SCRIPTSDIR="$HOME/.config/hypr/scripts" +wallust_refresh=${XDG_CONFIG_HOME:-$HOME/.config}/hypr/scripts/RefreshNoWaybar.sh +SCRIPTSDIR="${XDG_CONFIG_HOME:-$HOME/.config}/hypr/scripts" # shellcheck source=/dev/null . "$SCRIPTSDIR/WallpaperCmd.sh" focused_monitor=$(hyprctl monitors | awk '/^Monitor/{name=$2} /focused: yes/{print name}') +wallpaper_base="${XDG_CONFIG_HOME:-$HOME/.config}/hypr/wallpaper_effects/.wallpaper_base_${focused_monitor}" if [[ $# -lt 1 ]] || [[ ! -d $1 ]]; then echo "Usage: @@ -41,8 +42,10 @@ while true; do | while read -r img; do resize_mode="$(wallpaper_resize_mode "$img" "$focused_monitor")" "$WWW_CMD" img -o "$focused_monitor" --resize "$resize_mode" "$img" + mkdir -p "$(dirname "$wallpaper_base")" + cp -f "$img" "$wallpaper_base" || true # Regenerate colors from the exact image path to avoid cache races - $HOME/.config/hypr/scripts/WallustSwww.sh "$img" + ${XDG_CONFIG_HOME:-$HOME/.config}/hypr/scripts/WallustSwww.sh "$img" # Refresh UI components that depend on wallust output $wallust_refresh sleep $INTERVAL diff --git a/config/hypr/scripts/WallpaperDaemon.sh b/config/hypr/scripts/WallpaperDaemon.sh index 60c35a6d..aeb6c397 100755 --- a/config/hypr/scripts/WallpaperDaemon.sh +++ b/config/hypr/scripts/WallpaperDaemon.sh @@ -7,7 +7,7 @@ # ================================================== # Start wallpaper daemon, preferring awww with swww fallback -SCRIPTSDIR="$HOME/.config/hypr/scripts" +SCRIPTSDIR="${XDG_CONFIG_HOME:-$HOME/.config}/hypr/scripts" # shellcheck source=/dev/null . "$SCRIPTSDIR/WallpaperCmd.sh" @@ -21,8 +21,8 @@ for _ in {1..50}; do sleep 0.1 done -wallpaper_link="$HOME/.config/rofi/.current_wallpaper" -wallpaper_current="$HOME/.config/hypr/wallpaper_effects/.wallpaper_current" +wallpaper_link="${XDG_CONFIG_HOME:-$HOME/.config}/rofi/.current_wallpaper" +wallpaper_current="${XDG_CONFIG_HOME:-$HOME/.config}/hypr/wallpaper_effects/.wallpaper_current" read_cached_wallpaper() { local cache_file="$1" @@ -40,8 +40,8 @@ get_monitors() { apply_wallpaper_for_monitor() { local monitor="$1" - local per_monitor_link="$HOME/.config/rofi/.current_wallpaper_${monitor}" - local per_monitor_current="$HOME/.config/hypr/wallpaper_effects/.wallpaper_current_${monitor}" + local per_monitor_link="${XDG_CONFIG_HOME:-$HOME/.config}/rofi/.current_wallpaper_${monitor}" + local per_monitor_current="${XDG_CONFIG_HOME:-$HOME/.config}/hypr/wallpaper_effects/.wallpaper_current_${monitor}" local wallpaper_path="" # Prefer per-monitor symlink target if valid diff --git a/config/hypr/scripts/WallpaperEffects.sh b/config/hypr/scripts/WallpaperEffects.sh new file mode 100755 index 00000000..fc88ba1e --- /dev/null +++ b/config/hypr/scripts/WallpaperEffects.sh @@ -0,0 +1,140 @@ +#!/usr/bin/env bash +# ================================================== +# KoolDots (2026) +# Project URL: https://github.com/LinuxBeginnings +# License: GNU GPLv3 +# SPDX-License-Identifier: GPL-3.0-or-later +# ================================================== +# Wallpaper Effects using ImageMagick (SUPER SHIFT W) + +# Variables +terminal=kitty +wallpaper_current="${XDG_CONFIG_HOME:-$HOME/.config}/hypr/wallpaper_effects/.wallpaper_current" +wallpaper_output="${XDG_CONFIG_HOME:-$HOME/.config}/hypr/wallpaper_effects/.wallpaper_modified" +wallpaper_base="${XDG_CONFIG_HOME:-$HOME/.config}/hypr/wallpaper_effects/.wallpaper_base" +wallpaper_link="${XDG_CONFIG_HOME:-$HOME/.config}/rofi/.current_wallpaper" +SCRIPTSDIR="${XDG_CONFIG_HOME:-$HOME/.config}/hypr/scripts" +# shellcheck source=/dev/null +. "$SCRIPTSDIR/WallpaperCmd.sh" +focused_monitor=$(hyprctl monitors -j | jq -r '.[] | select(.focused) | .name') +per_monitor_wallpaper_base="${XDG_CONFIG_HOME:-$HOME/.config}/hypr/wallpaper_effects/.wallpaper_base_${focused_monitor}" +per_monitor_wallpaper_current="${XDG_CONFIG_HOME:-$HOME/.config}/hypr/wallpaper_effects/.wallpaper_current_${focused_monitor}" +per_monitor_wallpaper_link="${XDG_CONFIG_HOME:-$HOME/.config}/rofi/.current_wallpaper_${focused_monitor}" +rofi_theme="${XDG_CONFIG_HOME:-$HOME/.config}/rofi/config-wallpaper-effect.rasi" + +# Directory for swaync +iDIR="${XDG_CONFIG_HOME:-$HOME/.config}/swaync/images" +iDIRi="${XDG_CONFIG_HOME:-$HOME/.config}/swaync/icons" + +# swww/awww transition config +FPS=60 +TYPE="wipe" +DURATION=2 +BEZIER=".43,1.19,1,.4" +if [[ "$WWW_CMD" == "swww" || "$WWW_CMD" == "awww" ]]; then + SWWW_PARAMS=(--transition-fps "$FPS" --transition-type "$TYPE" --transition-duration "$DURATION" --transition-bezier "$BEZIER") +else + SWWW_PARAMS=() +fi + +# Define ImageMagick effects +declare -A effects=( + ["No Effects"]="no-effects" + ["Black & White"]="magick $wallpaper_base -colorspace gray -sigmoidal-contrast 10,40% $wallpaper_output" + ["Blurred"]="magick $wallpaper_base -blur 0x10 $wallpaper_output" + ["Charcoal"]="magick $wallpaper_base -charcoal 0x5 $wallpaper_output" + ["Edge Detect"]="magick $wallpaper_base -edge 1 $wallpaper_output" + ["Emboss"]="magick $wallpaper_base -emboss 0x5 $wallpaper_output" + ["Frame Raised"]="magick $wallpaper_base +raise 150 $wallpaper_output" + ["Frame Sunk"]="magick $wallpaper_base -raise 150 $wallpaper_output" + ["Negate"]="magick $wallpaper_base -negate $wallpaper_output" + ["Oil Paint"]="magick $wallpaper_base -paint 4 $wallpaper_output" + ["Posterize"]="magick $wallpaper_base -posterize 4 $wallpaper_output" + ["Polaroid"]="magick $wallpaper_base -polaroid 0 $wallpaper_output" + ["Sepia Tone"]="magick $wallpaper_base -sepia-tone 65% $wallpaper_output" + ["Solarize"]="magick $wallpaper_base -solarize 80% $wallpaper_output" + ["Sharpen"]="magick $wallpaper_base -sharpen 0x5 $wallpaper_output" + ["Vignette"]="magick $wallpaper_base -vignette 0x3 $wallpaper_output" + ["Vignette-black"]="magick $wallpaper_base -background black -vignette 0x3 $wallpaper_output" + ["Zoomed"]="magick $wallpaper_base -gravity Center -extent 1:1 $wallpaper_output" +) +persist_wallpaper_state() { + local source_wallpaper="$1" + [ -n "$source_wallpaper" ] && [ -f "$source_wallpaper" ] || return 0 + + mkdir -p "$(dirname "$wallpaper_current")" "$(dirname "$wallpaper_link")" + cp -f "$source_wallpaper" "$wallpaper_current" || true + ln -sf "$source_wallpaper" "$wallpaper_link" || true + + if [[ -n "$focused_monitor" ]]; then + cp -f "$source_wallpaper" "$per_monitor_wallpaper_current" || true + ln -sf "$source_wallpaper" "$per_monitor_wallpaper_link" || true + fi +} + +# Function to apply no effects +no-effects() { + local resize_mode + resize_mode="$(wallpaper_resize_mode "$wallpaper_base" "$focused_monitor")" + "$WWW_CMD" img -o "$focused_monitor" --resize "$resize_mode" "$wallpaper_base" "${SWWW_PARAMS[@]}" || return 1 + persist_wallpaper_state "$wallpaper_base" + + notify-send -u low -i "$iDIR/ja.png" "No wallpaper" "effects applied" + # copying wallpaper for rofi menu + cp "$wallpaper_base" "$wallpaper_output" +} + +# Function to run rofi menu +main() { + # Populate rofi menu options + options=("No Effects") + for effect in "${!effects[@]}"; do + [[ "$effect" != "No Effects" ]] && options+=("$effect") + done + + choice=$(printf "%s\n" "${options[@]}" | LC_COLLATE=C sort | rofi -dmenu -i -config $rofi_theme) + + # Process user choice + if [[ -n "$choice" ]]; then + if [[ -f "$per_monitor_wallpaper_base" ]]; then + wallpaper_base="$per_monitor_wallpaper_base" + fi + if [[ ! -f "$wallpaper_base" ]]; then + mkdir -p "$(dirname "$wallpaper_base")" + cp -f "$wallpaper_current" "$wallpaper_base" || true + fi + if [[ "$choice" == "No Effects" ]]; then + no-effects + elif [[ "${effects[$choice]+exists}" ]]; then + # Apply selected effect + notify-send -u normal -i "$iDIR/ja.png" "Applying:" "$choice effects" + if ! eval "${effects[$choice]}"; then + notify-send -u critical -i "$iDIR/error.png" "Wallpaper effect failed" "$choice could not be applied" + return 1 + fi + + # intial kill process + for pid in swaybg mpvpaper; do + killall -SIGUSR1 "$pid" 2>/dev/null || true + done + + sleep 1 + local resize_mode + resize_mode="$(wallpaper_resize_mode "$wallpaper_output" "$focused_monitor")" + "$WWW_CMD" img -o "$focused_monitor" --resize "$resize_mode" "$wallpaper_output" "${SWWW_PARAMS[@]}" + persist_wallpaper_state "$wallpaper_output" + notify-send -u low -i "$iDIR/ja.png" "$choice" "effects applied" + else + echo "Effect '$choice' not recognized." + fi + fi +} + +# Check if rofi is already running and kill it +if pidof rofi > /dev/null; then + pkill rofi +fi + +main + +sleep 1 diff --git a/config/hypr/UserScripts/WallpaperRandom.sh b/config/hypr/scripts/WallpaperRandom.sh index aae80426..8480295c 100755 --- a/config/hypr/UserScripts/WallpaperRandom.sh +++ b/config/hypr/scripts/WallpaperRandom.sh @@ -9,11 +9,12 @@ PICTURES_DIR="$(xdg-user-dir PICTURES 2>/dev/null || echo "$HOME/Pictures")" wallDIR="$PICTURES_DIR/wallpapers" -SCRIPTSDIR="$HOME/.config/hypr/scripts" +SCRIPTSDIR="${XDG_CONFIG_HOME:-$HOME/.config}/hypr/scripts" # shellcheck source=/dev/null . "$SCRIPTSDIR/WallpaperCmd.sh" focused_monitor=$(hyprctl monitors -j | jq -r '.[] | select(.focused) | .name') +wallpaper_base="${XDG_CONFIG_HOME:-$HOME/.config}/hypr/wallpaper_effects/.wallpaper_base_${focused_monitor}" PICS=($(find -L "${wallDIR}" -type f \( -name "*.jpg" -o -name "*.jpeg" -o -name "*.png" -o -name "*.pnm" -o -name "*.tga" -o -name "*.tiff" -o -name "*.webp" -o -name "*.bmp" -o -name "*.farbfeld" -o -name "*.gif" \))) RANDOMPICS=${PICS[ $RANDOM % ${#PICS[@]} ]} @@ -36,6 +37,8 @@ resize_mode="$(wallpaper_resize_mode "$RANDOMPICS" "$focused_monitor")" "$WWW_CMD" img -o "$focused_monitor" --resize "$resize_mode" "$RANDOMPICS" "${SWWW_PARAMS[@]}" wait $! +mkdir -p "$(dirname "$wallpaper_base")" +cp -f "$RANDOMPICS" "$wallpaper_base" || true if ! "$SCRIPTSDIR/WallustSwww.sh" "$RANDOMPICS"; then notify-send -u critical "Wallust failed" "Wallpaper theme not refreshed" exit 1 diff --git a/config/hypr/UserScripts/WallpaperSelect.sh b/config/hypr/scripts/WallpaperSelect.sh index 2e5ecd86..a1684798 100755 --- a/config/hypr/UserScripts/WallpaperSelect.sh +++ b/config/hypr/scripts/WallpaperSelect.sh @@ -11,15 +11,16 @@ terminal=kitty PICTURES_DIR="$(xdg-user-dir PICTURES 2>/dev/null || echo "$HOME/Pictures")" wallDIR="$PICTURES_DIR/wallpapers" -SCRIPTSDIR="$HOME/.config/hypr/scripts" +SCRIPTSDIR="${XDG_CONFIG_HOME:-$HOME/.config}/hypr/scripts" # shellcheck source=/dev/null . "$SCRIPTSDIR/WallpaperCmd.sh" -wallpaper_current="$HOME/.config/hypr/wallpaper_effects/.wallpaper_current" -wallpaper_link="$HOME/.config/rofi/.current_wallpaper" +wallpaper_current="${XDG_CONFIG_HOME:-$HOME/.config}/hypr/wallpaper_effects/.wallpaper_current" +wallpaper_link="${XDG_CONFIG_HOME:-$HOME/.config}/rofi/.current_wallpaper" +wallpaper_base="${XDG_CONFIG_HOME:-$HOME/.config}/hypr/wallpaper_effects/.wallpaper_base" # Directory for swaync -iDIR="$HOME/.config/swaync/images" -iDIRi="$HOME/.config/swaync/icons" +iDIR="${XDG_CONFIG_HOME:-$HOME/.config}/swaync/images" +iDIRi="${XDG_CONFIG_HOME:-$HOME/.config}/swaync/icons" # swww/awww transition config FPS=60 @@ -40,11 +41,12 @@ if ! command -v bc &>/dev/null; then fi # Variables -rofi_theme="$HOME/.config/rofi/config-wallpaper.rasi" +rofi_theme="${XDG_CONFIG_HOME:-$HOME/.config}/rofi/config-wallpaper.rasi" focused_monitor=$(hyprctl monitors -j | jq -r '.[] | select(.focused) | .name') -per_monitor_wallpaper_current="$HOME/.config/hypr/wallpaper_effects/.wallpaper_current_${focused_monitor}" -per_monitor_wallpaper_link="$HOME/.config/rofi/.current_wallpaper_${focused_monitor}" +per_monitor_wallpaper_current="${XDG_CONFIG_HOME:-$HOME/.config}/hypr/wallpaper_effects/.wallpaper_current_${focused_monitor}" +per_monitor_wallpaper_link="${XDG_CONFIG_HOME:-$HOME/.config}/rofi/.current_wallpaper_${focused_monitor}" +per_monitor_wallpaper_base="${XDG_CONFIG_HOME:-$HOME/.config}/hypr/wallpaper_effects/.wallpaper_base_${focused_monitor}" # Ensure focused_monitor is detected if [[ -z "$focused_monitor" ]]; then @@ -60,19 +62,14 @@ icon_size=$(echo "scale=1; ($monitor_height * 3) / ($scale_factor * 150)" | bc) adjusted_icon_size=$(echo "$icon_size" | awk '{if ($1 < 15) $1 = 20; if ($1 > 25) $1 = 25; print $1}') rofi_override="element-icon{size:${adjusted_icon_size}%;}" -# Kill existing wallpaper daemons for video +# Kill existing wallpaper daemons for video on the focused monitor only kill_wallpaper_for_video() { - "$WWW_CMD" kill 2>/dev/null - pkill mpvpaper 2>/dev/null - pkill swaybg 2>/dev/null - pkill hyprpaper 2>/dev/null + pkill -f "mpvpaper.*$focused_monitor" 2>/dev/null } -# Kill existing wallpaper daemons for image +# Kill existing wallpaper daemons for image on the focused monitor only kill_wallpaper_for_image() { - pkill mpvpaper 2>/dev/null - pkill swaybg 2>/dev/null - pkill hyprpaper 2>/dev/null + pkill -f "mpvpaper.*$focused_monitor" 2>/dev/null } # Retrieve wallpapers (both images & videos) @@ -133,7 +130,7 @@ menu() { modify_startup_config() { local selected_file="$1" - local startup_config="$HOME/.config/hypr/UserConfigs/Startup_Apps.conf" + local startup_config="${XDG_CONFIG_HOME:-$HOME/.config}/hypr/UserConfigs/Startup_Apps.conf" # Check if it's a live wallpaper (video) if [[ "$selected_file" =~ \.(mp4|mkv|mov|webm)$ ]]; then @@ -185,6 +182,9 @@ apply_image_wallpaper() { mkdir -p "$(dirname "$per_monitor_wallpaper_current")" "$(dirname "$per_monitor_wallpaper_link")" ln -sf "$image_path" "$per_monitor_wallpaper_link" || true cp -f "$image_path" "$per_monitor_wallpaper_current" || true + mkdir -p "$(dirname "$per_monitor_wallpaper_base")" + cp -f "$image_path" "$per_monitor_wallpaper_base" || true + cp -f "$image_path" "$wallpaper_base" || true # Run additional scripts (pass the image path to avoid cache race conditions) if ! "$SCRIPTSDIR/WallustSwww.sh" "$image_path"; then @@ -207,8 +207,8 @@ apply_video_wallpaper() { fi kill_wallpaper_for_video - # Apply video wallpaper using mpvpaper - mpvpaper '*' -o "load-scripts=no no-audio --loop" "$video_path" & + # Apply video wallpaper only to the focused monitor + mpvpaper "$focused_monitor" -o "load-scripts=no no-audio --loop" "$video_path" & } # Main function diff --git a/config/hypr/scripts/WallustConfig.sh b/config/hypr/scripts/WallustConfig.sh index 44ddff0b..6605a084 100755 --- a/config/hypr/scripts/WallustConfig.sh +++ b/config/hypr/scripts/WallustConfig.sh @@ -8,7 +8,7 @@ # Wallust version compatibility helpers # # Purpose: -# - Wallust v3 reads ~/.config/wallust/wallust.toml (this repo ships a v3 config) +# - Wallust v3 reads ${XDG_CONFIG_HOME:-$HOME/.config}/wallust/wallust.toml (this repo ships a v3 config) # - Wallust v4 alpha uses a different config schema; users frequently install it # via wallust-git, which will fail to parse the v3 config. # @@ -31,8 +31,8 @@ wallust_prepare_args() { # Wallust v4 supports -C/--config-file. if [ -n "$major" ] && [ "$major" -ge 4 ]; then - local v4_cfg="$HOME/.config/wallust/wallust-v4.toml" - local v4_kitty_cfg="$HOME/.config/wallust/wallust-kitty-v4.toml" + local v4_cfg="${XDG_CONFIG_HOME:-$HOME/.config}/wallust/wallust-v4.toml" + local v4_kitty_cfg="${XDG_CONFIG_HOME:-$HOME/.config}/wallust/wallust-kitty-v4.toml" if [ -f "$v4_cfg" ]; then wallust_args=(-C "$v4_cfg") diff --git a/config/hypr/scripts/WallustSwww.sh b/config/hypr/scripts/WallustSwww.sh index 3472d519..7807cf4c 100755 --- a/config/hypr/scripts/WallustSwww.sh +++ b/config/hypr/scripts/WallustSwww.sh @@ -13,15 +13,19 @@ set -euo pipefail wallust_args=() wallust_kitty_args=() # shellcheck source=/dev/null -if [ -f "$HOME/.config/hypr/scripts/WallustConfig.sh" ]; then - . "$HOME/.config/hypr/scripts/WallustConfig.sh" +if [ -f "${XDG_CONFIG_HOME:-$HOME/.config}/hypr/scripts/WallustConfig.sh" ]; then + . "${XDG_CONFIG_HOME:-$HOME/.config}/hypr/scripts/WallustConfig.sh" fi have_notify() { command -v notify-send >/dev/null 2>&1; } wallust_log="${XDG_CACHE_HOME:-$HOME/.cache}/wallust/wallust-swww.log" mkdir -p "$(dirname "$wallust_log")" capture_current_layout() { + if [ -x "${XDG_CONFIG_HOME:-$HOME/.config}/hypr/scripts/ChangeLayout.sh" ]; then + "${XDG_CONFIG_HOME:-$HOME/.config}/hypr/scripts/ChangeLayout.sh" --no-notify current 2>/dev/null | awk 'NF {print; exit}' + return 0 + fi if command -v jq >/dev/null 2>&1; then - hyprctl -j getoption general:layout 2>/dev/null | jq -r '.str // empty' + hyprctl -j activeworkspace 2>/dev/null | jq -r '.tiledLayout // .tiled_layout // empty' else hyprctl getoption general:layout 2>/dev/null | awk 'NR==1 {print $2}' fi @@ -30,13 +34,9 @@ restore_layout_after_reload() { local layout="$1" [ -n "$layout" ] || return 0 - if [ -x "$HOME/.config/hypr/scripts/ChangeLayout.sh" ]; then - if "$HOME/.config/hypr/scripts/ChangeLayout.sh" --no-notify "$layout" >/dev/null 2>&1; then - return 0 - fi + if [ -x "${XDG_CONFIG_HOME:-$HOME/.config}/hypr/scripts/ChangeLayout.sh" ]; then + "${XDG_CONFIG_HOME:-$HOME/.config}/hypr/scripts/ChangeLayout.sh" --no-notify "$layout" >/dev/null 2>&1 || true fi - - hyprctl keyword general:layout "$layout" >/dev/null 2>&1 || true } reload_hypr_preserve_layout() { command -v hyprctl >/dev/null 2>&1 || return 0 @@ -49,11 +49,11 @@ reload_hypr_preserve_layout() { restore_layout_after_reload "$active_layout" } ensure_wallust_waybar_style() { - local waybar_style="$HOME/.config/waybar/style.css" - local colors_file="$HOME/.config/waybar/wallust/colors-waybar.css" - local styles_dir="$HOME/.config/waybar/style" + local waybar_style="${XDG_CONFIG_HOME:-$HOME/.config}/waybar/style.css" + local colors_file="${XDG_CONFIG_HOME:-$HOME/.config}/waybar/wallust/colors-waybar.css" + local styles_dir="${XDG_CONFIG_HOME:-$HOME/.config}/waybar/style" [ -f "$colors_file" ] || return 0 - if [ -f "$waybar_style" ] && grep -q 'colors-waybar.css' "$waybar_style"; then + if [ -f "$waybar_style" ]; then return 0 fi local candidates=( @@ -88,8 +88,8 @@ else cache_dir="$HOME/.cache/swww/" cache_dir_fallback="$HOME/.cache/awww/" fi -rofi_link="$HOME/.config/rofi/.current_wallpaper" -wallpaper_current="$HOME/.config/hypr/wallpaper_effects/.wallpaper_current" +rofi_link="${XDG_CONFIG_HOME:-$HOME/.config}/rofi/.current_wallpaper" +wallpaper_current="${XDG_CONFIG_HOME:-$HOME/.config}/hypr/wallpaper_effects/.wallpaper_current" read_cached_wallpaper() { local cache_file="$1" if [[ -f "$cache_file" ]]; then @@ -163,7 +163,7 @@ mkdir -p "$(dirname "$wallpaper_current")" cp -f "$wallpaper_path" "$wallpaper_current" || true # Ensure Ghostty directory exists so Wallust can write target even if Ghostty isn't installed -mkdir -p "$HOME/.config/ghostty" || true +mkdir -p "${XDG_CONFIG_HOME:-$HOME/.config}/ghostty" || true wait_for_templates() { local start_ts="$1" shift @@ -188,7 +188,7 @@ wait_for_templates() { return 1 } -# Run wallust (silent) to regenerate templates defined in ~/.config/wallust/wallust.toml +# Run wallust (silent) to regenerate templates defined in ${XDG_CONFIG_HOME:-$HOME/.config}/wallust/wallust.toml # -s is used in this repo to keep things quiet and avoid extra prompts start_ts=$(date +%s) if ! wallust "${wallust_args[@]}" run -s "$wallpaper_path" >"$wallust_log" 2>&1; then @@ -197,9 +197,9 @@ if ! wallust "${wallust_args[@]}" run -s "$wallpaper_path" >"$wallust_log" 2>&1; exit 1 fi wallust_targets=( - "$HOME/.config/waybar/wallust/colors-waybar.css" - "$HOME/.config/rofi/wallust/colors-rofi.rasi" - "$HOME/.config/hypr/wallust/wallust-hyprland.conf" + "${XDG_CONFIG_HOME:-$HOME/.config}/waybar/wallust/colors-waybar.css" + "${XDG_CONFIG_HOME:-$HOME/.config}/rofi/wallust/colors-rofi.rasi" + "${XDG_CONFIG_HOME:-$HOME/.config}/hypr/wallust/wallust-hyprland.conf" ) if ! wait_for_templates "$start_ts" "${wallust_targets[@]}"; then have_notify && notify-send -u critical -a WallustSwww \ @@ -210,7 +210,7 @@ ensure_wallust_waybar_style reload_running_cava_colors # Normalize Rofi selection colors to a brighter accent and readable foreground -rofi_colors="$HOME/.config/rofi/wallust/colors-rofi.rasi" +rofi_colors="${XDG_CONFIG_HOME:-$HOME/.config}/rofi/wallust/colors-rofi.rasi" if [ -f "$rofi_colors" ]; then accent_hex=$(sed -n 's/^\s*color13:\s*\(#[0-9A-Fa-f]\{6\}\).*/\1/p' "$rofi_colors" | head -n1) [ -z "$accent_hex" ] && accent_hex=$(sed -n 's/^\s*color12:\s*\(#[0-9A-Fa-f]\{6\}\).*/\1/p' "$rofi_colors" | head -n1) @@ -244,7 +244,7 @@ run_wallust_with_config() { # Legacy fallback for builds that still honor env-based config override. WALLUST_CONFIG="$cfg" wallust run -s "$wallpaper_path" || true } -wallust_hypr_colors="$HOME/.config/hypr/wallust/wallust-hyprland.conf" +wallust_hypr_colors="${XDG_CONFIG_HOME:-$HOME/.config}/hypr/wallust/wallust-hyprland.conf" extract_wallust_hex() { local key="$1" awk -v key="$key" ' @@ -274,7 +274,7 @@ apply_hypr_border_fallback() { } apply_hypr_gap_fallback() { - local decorations_lua="$HOME/.config/hypr/UserConfigs/user_decorations.lua" + local decorations_lua="${XDG_CONFIG_HOME:-$HOME/.config}/hypr/UserConfigs/user_decorations.lua" [ -s "$decorations_lua" ] || return 0 local gaps_in gaps_out border_size gaps_in="$(sed -n 's/^[[:space:]]*gaps_in[[:space:]]*=[[:space:]]*\([0-9]\+\).*/\1/p' "$decorations_lua" | head -n1)" @@ -289,9 +289,9 @@ apply_hypr_gap_fallback() { # Apply Hyprland updates immediately to avoid delayed border/gap changes. reload_hypr_preserve_layout -kitty_cfg="$HOME/.config/wallust/wallust-kitty.toml" +kitty_cfg="${XDG_CONFIG_HOME:-$HOME/.config}/wallust/wallust-kitty.toml" if [ "${#wallust_kitty_args[@]}" -gt 0 ]; then - kitty_cfg="$HOME/.config/wallust/wallust-kitty-v4.toml" + kitty_cfg="${XDG_CONFIG_HOME:-$HOME/.config}/wallust/wallust-kitty-v4.toml" fi ( if [ -f "$kitty_cfg" ]; then @@ -300,7 +300,7 @@ fi # Reload kitty colors when wallpaper-based theme is active. # Use SIGUSR1 directly to avoid extra latency from kitty remote-control calls. - kitty_wallust_theme="$HOME/.config/kitty/kitty-themes/01-Wallust.conf" + kitty_wallust_theme="${XDG_CONFIG_HOME:-$HOME/.config}/kitty/kitty-themes/01-Wallust.conf" if [ -s "$kitty_wallust_theme" ]; then if pidof kitty >/dev/null 2>&1; then for pid in $(pidof kitty); do @@ -310,13 +310,13 @@ fi fi # Normalize Ghostty palette syntax in case ':' was used by older files - if [ -f "$HOME/.config/ghostty/wallust.conf" ]; then - sed -i -E 's/^(\s*palette\s*=\s*)([0-9]{1,2}):/\1\2=/' "$HOME/.config/ghostty/wallust.conf" 2>/dev/null || true + if [ -f "${XDG_CONFIG_HOME:-$HOME/.config}/ghostty/wallust.conf" ]; then + sed -i -E 's/^(\s*palette\s*=\s*)([0-9]{1,2}):/\1\2=/' "${XDG_CONFIG_HOME:-$HOME/.config}/ghostty/wallust.conf" 2>/dev/null || true fi # Light wait for Ghostty colors file to be present then signal Ghostty to reload (SIGUSR2) for _ in 1 2 3; do - [ -s "$HOME/.config/ghostty/wallust.conf" ] && break + [ -s "${XDG_CONFIG_HOME:-$HOME/.config}/ghostty/wallust.conf" ] && break sleep 0.1 done if pidof ghostty >/dev/null; then diff --git a/config/hypr/scripts/WaybarLayout.sh b/config/hypr/scripts/WaybarLayout.sh index 66d45a07..51e93bb3 100755 --- a/config/hypr/scripts/WaybarLayout.sh +++ b/config/hypr/scripts/WaybarLayout.sh @@ -10,10 +10,10 @@ IFS=$'\n\t' # Define directories -waybar_layouts="$HOME/.config/waybar/configs" -waybar_config="$HOME/.config/waybar/config" -SCRIPTSDIR="$HOME/.config/hypr/scripts" -rofi_config="$HOME/.config/rofi/config-waybar-layout.rasi" +waybar_layouts="${XDG_CONFIG_HOME:-$HOME/.config}/waybar/configs" +waybar_config="${XDG_CONFIG_HOME:-$HOME/.config}/waybar/config" +SCRIPTSDIR="${XDG_CONFIG_HOME:-$HOME/.config}/hypr/scripts" +rofi_config="${XDG_CONFIG_HOME:-$HOME/.config}/rofi/config-waybar-layout.rasi" msg=' 🎌 NOTE: Some waybar LAYOUT NOT fully compatible with some STYLES' # Apply selected configuration diff --git a/config/hypr/scripts/WaybarScripts.sh b/config/hypr/scripts/WaybarScripts.sh index afb55712..dfd175f1 100755 --- a/config/hypr/scripts/WaybarScripts.sh +++ b/config/hypr/scripts/WaybarScripts.sh @@ -5,10 +5,10 @@ # License: GNU GPLv3 # SPDX-License-Identifier: GPL-3.0-or-later # ================================================== -# This file used on waybar modules sourcing defaults set in $HOME/.config/hypr/UserConfigs/01-UserDefaults.conf +# This file used on waybar modules sourcing defaults set in ${XDG_CONFIG_HOME:-$HOME/.config}/hypr/UserConfigs/01-UserDefaults.conf # Define the path to the config file -config_file=$HOME/.config/hypr/UserConfigs/01-UserDefaults.conf +config_file=${XDG_CONFIG_HOME:-$HOME/.config}/hypr/UserConfigs/01-UserDefaults.conf # Check if the config file exists if [[ ! -f "$config_file" ]]; then @@ -31,7 +31,7 @@ fi # Execute accordingly based on the passed argument launch_files() { if [[ -z "$files" ]]; then - notify-send -u low -i "$HOME/.config/swaync/images/error.png" "Waybar: files" "Set \$files in 01-UserDefaults.conf or install a default file manager." + notify-send -u low -i "${XDG_CONFIG_HOME:-$HOME/.config}/swaync/images/error.png" "Waybar: files" "Set \$files in 01-UserDefaults.conf or install a default file manager." return 1 fi eval "$files &" diff --git a/config/hypr/scripts/WaybarStyles.sh b/config/hypr/scripts/WaybarStyles.sh index 611e0a12..ab951e22 100755 --- a/config/hypr/scripts/WaybarStyles.sh +++ b/config/hypr/scripts/WaybarStyles.sh @@ -10,10 +10,10 @@ IFS=$'\n\t' # Define directories -waybar_styles="$HOME/.config/waybar/style" -waybar_style="$HOME/.config/waybar/style.css" -SCRIPTSDIR="$HOME/.config/hypr/scripts" -rofi_config="$HOME/.config/rofi/config-waybar-style.rasi" +waybar_styles="${XDG_CONFIG_HOME:-$HOME/.config}/waybar/style" +waybar_style="${XDG_CONFIG_HOME:-$HOME/.config}/waybar/style.css" +SCRIPTSDIR="${XDG_CONFIG_HOME:-$HOME/.config}/hypr/scripts" +rofi_config="${XDG_CONFIG_HOME:-$HOME/.config}/rofi/config-waybar-style.rasi" msg=' 🎌 NOTE: Some waybar STYLES NOT fully compatible with some LAYOUTS' # Apply selected style diff --git a/config/hypr/UserScripts/ZshChangeTheme.sh b/config/hypr/scripts/ZshChangeTheme.sh index 94c1b448..21049317 100755 --- a/config/hypr/UserScripts/ZshChangeTheme.sh +++ b/config/hypr/scripts/ZshChangeTheme.sh @@ -11,8 +11,8 @@ # after choosing theme, TTY need to be closed and re-open # Variables -iDIR="$HOME/.config/swaync/images" -rofi_theme="$HOME/.config/rofi/config-zsh-theme.rasi" +iDIR="${XDG_CONFIG_HOME:-$HOME/.config}/swaync/images" +rofi_theme="${XDG_CONFIG_HOME:-$HOME/.config}/rofi/config-zsh-theme.rasi" if [ -n "$(grep -i nixos < /etc/os-release)" ]; then notify-send -i "$iDIR/note.png" "NOT Supported" "Sorry NixOS does not support this KooL feature" diff --git a/config/hypr/scripts/fastfetch-wrapper.sh b/config/hypr/scripts/fastfetch-wrapper.sh index ad5f7873..ea76afff 100755 --- a/config/hypr/scripts/fastfetch-wrapper.sh +++ b/config/hypr/scripts/fastfetch-wrapper.sh @@ -6,7 +6,7 @@ SPECIFIC_ID=$ID FAMILY_ID=$ID_LIKE # 2. Define your asset directory -ASSET_DIR="$HOME/.config/fastfetch/images" +ASSET_DIR="${XDG_CONFIG_HOME:-$HOME/.config}/fastfetch/images" # 3. Selection Logic if [ -f "$ASSET_DIR/$SPECIFIC_ID.png" ]; then diff --git a/config/hypr/scripts/kooldots-add-ssh-agent.sh b/config/hypr/scripts/kooldots-add-ssh-agent.sh new file mode 100755 index 00000000..56a62437 --- /dev/null +++ b/config/hypr/scripts/kooldots-add-ssh-agent.sh @@ -0,0 +1,310 @@ +#!/usr/bin/env bash +# ================================================== +# KoolDots (2026) +# Project URL: https://github.com/LinuxBeginnings +# License: GNU GPLv3 +# SPDX-License-Identifier: GPL-3.0-or-later +# ================================================== +# Adds a user ssh-agent systemd service and wires SSH_AUTH_SOCK into Hyprland. + +set -euo pipefail + +SCRIPT_NAME="$(basename "$0")" +CONFIG_HOME="${XDG_CONFIG_HOME:-$HOME/.config}" +HYPR_DIR="$CONFIG_HOME/hypr" +USER_CONFIGS_DIR="$HYPR_DIR/UserConfigs" +ENV_CONF="$USER_CONFIGS_DIR/ENVariables.conf" +ENV_LUA="$USER_CONFIGS_DIR/user_env.lua" +SYSTEMD_USER_DIR="$CONFIG_HOME/systemd/user" +SERVICE_NAME="ssh-agent" +SERVICE_FILE="$SYSTEMD_USER_DIR/${SERVICE_NAME}.service" +SSH_CONFIG="$HOME/.ssh/config" + +DRY_RUN=0 +ACTION="status" +SHOW_SYSTEMD_STATUS=0 +SHOW_HELP=0 + +info() { printf '[INFO] %s\n' "$*"; } +warn() { printf '[WARN] %s\n' "$*"; } +step() { printf '[STEP] %s\n' "$*"; } + +usage() { + cat <<USAGE +Usage: $SCRIPT_NAME [options] + +Options: + -h, --help Show help. + -d, --dry-run Show what would change without writing files or running systemctl. + -s, --status Show installed/config status and systemctl status output. + -e, --enable Install/enable the user service. + -D, --disable Stop/disable the user service. + -r, --remove Disable and remove the user service file. + +Notes: + --disable has a short flag -D to avoid clashing with -d (dry-run). + Set HYPR_CONFIG_MODE=lua|conf|hyprlang|auto to override detection. + Keys must be loaded separately (e.g. ssh-add ~/.ssh/id_ed25519). AddKeysToAgent only auto-adds after first use. +USAGE +} + +ORIGINAL_ARGS=$# +if [ "$ORIGINAL_ARGS" -eq 0 ]; then + SHOW_HELP=1 + SHOW_SYSTEMD_STATUS=1 +fi + +while [ "$#" -gt 0 ]; do + case "$1" in + -h|--help) + usage + exit 0 + ;; + -d|--dry-run) + DRY_RUN=1 + ;; + -s|--status) + ACTION="status" + SHOW_SYSTEMD_STATUS=1 + ;; + -e|--enable) + ACTION="enable" + ;; + -D|--disable|--disable-service|--disable) + ACTION="disable" + ;; + -r|--remove) + ACTION="remove" + ;; + *) + warn "Unknown option: $1" + usage + exit 1 + ;; + esac + shift +done + +run_cmd() { + if [ "$DRY_RUN" -eq 1 ]; then + printf '[DRY-RUN] %s\n' "$*" + return 0 + fi + "$@" +} + +detect_hypr_config_mode() { + local lua_entry="$HYPR_DIR/hyprland.lua" + local legacy_lua_entry="$CONFIG_HOME/hyprland.lua" + local mode="${HYPR_CONFIG_MODE:-}" + if [ -n "$mode" ]; then + case "${mode,,}" in + lua) echo "lua"; return ;; + conf|hyprlang) echo "conf"; return ;; + auto) ;; + *) ;; + esac + fi + if [ -f "$lua_entry" ] || [ -f "$legacy_lua_entry" ]; then + echo "lua" + else + echo "conf" + fi +} + +service_exists() { + [ -f "$SERVICE_FILE" ] +} + +systemctl_user() { + if ! command -v systemctl >/dev/null 2>&1; then + warn "systemctl not found; cannot manage the user service." + return 1 + fi + run_cmd systemctl --user "$@" +} + +service_status_summary() { + local enabled="unknown" + local active="unknown" + if command -v systemctl >/dev/null 2>&1; then + enabled="$(systemctl --user is-enabled "$SERVICE_NAME" 2>/dev/null || true)" + active="$(systemctl --user is-active "$SERVICE_NAME" 2>/dev/null || true)" + fi + if service_exists; then + info "Service file exists: $SERVICE_FILE" + else + warn "Service file missing: $SERVICE_FILE" + fi + info "Service enabled: ${enabled:-unknown}" + info "Service active: ${active:-unknown}" +} + +env_present_conf() { + [ -f "$ENV_CONF" ] && grep -Eq '^[[:space:]]*env[[:space:]]*=[[:space:]]*SSH_AUTH_SOCK,' "$ENV_CONF" +} + +env_present_lua() { + [ -f "$ENV_LUA" ] && grep -Eq 'hl\.env\([[:space:]]*["'\'']SSH_AUTH_SOCK["'\'']' "$ENV_LUA" +} + +ensure_env_conf() { + if env_present_conf; then + info "Hyprland ENV already set in $ENV_CONF" + return 0 + fi + step "Adding SSH_AUTH_SOCK to $ENV_CONF" + if [ "$DRY_RUN" -eq 1 ]; then + printf '[DRY-RUN] append SSH_AUTH_SOCK to %s\n' "$ENV_CONF" + return 0 + fi + mkdir -p "$(dirname "$ENV_CONF")" + touch "$ENV_CONF" + printf '\n# SSH agent socket\nenv = SSH_AUTH_SOCK,$XDG_RUNTIME_DIR/ssh-agent.socket\n' >> "$ENV_CONF" +} + +ensure_env_lua() { + if env_present_lua; then + info "Hyprland ENV already set in $ENV_LUA" + return 0 + fi + step "Adding SSH_AUTH_SOCK to $ENV_LUA" + if [ "$DRY_RUN" -eq 1 ]; then + printf '[DRY-RUN] append SSH_AUTH_SOCK to %s\n' "$ENV_LUA" + return 0 + fi + mkdir -p "$(dirname "$ENV_LUA")" + touch "$ENV_LUA" + cat <<'LUA' >> "$ENV_LUA" + +-- SSH agent socket +hl.env("SSH_AUTH_SOCK", (os.getenv("XDG_RUNTIME_DIR") or "") .. "/ssh-agent.socket") +LUA +} + +ensure_ssh_config() { + if [ ! -f "$SSH_CONFIG" ]; then + warn "$SSH_CONFIG not found; skipping AddKeysToAgent check." + return 0 + fi + if grep -Eq '^[[:space:]]*AddKeysToAgent[[:space:]]+yes' "$SSH_CONFIG"; then + info "AddKeysToAgent already set in $SSH_CONFIG" + return 0 + fi + step "Adding AddKeysToAgent to $SSH_CONFIG" + if [ "$DRY_RUN" -eq 1 ]; then + printf '[DRY-RUN] append AddKeysToAgent to %s\n' "$SSH_CONFIG" + return 0 + fi + printf '\n# Automatically add keys to ssh-agent\nAddKeysToAgent yes\n' >> "$SSH_CONFIG" +} + +create_service_file() { + if service_exists; then + info "Service file already exists: $SERVICE_FILE" + return 0 + fi + step "Creating systemd user service file" + if [ "$DRY_RUN" -eq 1 ]; then + printf '[DRY-RUN] create service file %s\n' "$SERVICE_FILE" + return 0 + fi + mkdir -p "$SYSTEMD_USER_DIR" + cat <<'EOF' > "$SERVICE_FILE" +[Unit] +Description=SSH key agent + +[Service] +Type=simple +Environment=SSH_AUTH_SOCK=%t/ssh-agent.socket +ExecStart=/usr/bin/ssh-agent -D -a $SSH_AUTH_SOCK + +[Install] +WantedBy=default.target +EOF +} + +enable_service() { + step "Enabling ssh-agent user service" + systemctl_user daemon-reload + systemctl_user enable --now "$SERVICE_NAME" +} + +disable_service() { + step "Disabling ssh-agent user service" + systemctl_user disable --now "$SERVICE_NAME" +} + +remove_service() { + step "Removing ssh-agent user service" + if service_exists; then + disable_service || true + if [ "$DRY_RUN" -eq 1 ]; then + printf '[DRY-RUN] remove service file %s\n' "$SERVICE_FILE" + else + rm -f "$SERVICE_FILE" + fi + systemctl_user daemon-reload + else + warn "Service file not found; nothing to remove." + fi +} + +show_status() { + info "Detected Hyprland config mode: $(detect_hypr_config_mode)" + service_status_summary + info "SSH_AUTH_SOCK in ENVariables.conf: $(env_present_conf && echo yes || echo no)" + info "SSH_AUTH_SOCK in user_env.lua: $(env_present_lua && echo yes || echo no)" + if [ -f "$SSH_CONFIG" ]; then + info "AddKeysToAgent in ~/.ssh/config: $(grep -Eq '^[[:space:]]*AddKeysToAgent[[:space:]]+yes' "$SSH_CONFIG" && echo yes || echo no)" + else + warn "~/.ssh/config not found." + fi + if [ "$SHOW_SYSTEMD_STATUS" -eq 1 ] && command -v systemctl >/dev/null 2>&1; then + systemctl --user status "$SERVICE_NAME" || true + fi +} + +apply_hypr_env() { + local mode + mode="$(detect_hypr_config_mode)" + if [ "$mode" = "lua" ]; then + ensure_env_lua + else + ensure_env_conf + fi +} + +if [ "$SHOW_HELP" -eq 1 ]; then + usage +fi + +case "$ACTION" in + status) + show_status + ;; + enable) + step "Step 1/4: Ensure service file" + create_service_file + step "Step 2/4: Enable user service" + enable_service + step "Step 3/4: Update Hyprland environment" + apply_hypr_env + step "Step 4/4: Update SSH config" + ensure_ssh_config + show_status + ;; + disable) + disable_service + show_status + ;; + remove) + remove_service + show_status + ;; + *) + warn "Unknown action: $ACTION" + usage + exit 1 + ;; +esac diff --git a/config/hypr/scripts/rofi-emacs-keybinds b/config/hypr/scripts/rofi-emacs-keybinds index bee1a54d..6617d3b0 100755 --- a/config/hypr/scripts/rofi-emacs-keybinds +++ b/config/hypr/scripts/rofi-emacs-keybinds @@ -2,7 +2,7 @@ set -u set -o pipefail -ROFI_CONFIG="${HOME}/.config/rofi/config-emacs-keybinds.rasi" +ROFI_CONFIG="${XDG_CONFIG_HOME:-$HOME/.config}/rofi/config-emacs-keybinds.rasi" CACHE_FILE="${HOME}/.cache/rofi-emacs-keybinds.txt" if [[ ! -s "${CACHE_FILE}" ]]; then diff --git a/config/hypr/scripts/rofi-ssh-menu.sh b/config/hypr/scripts/rofi-ssh-menu.sh index d1640c66..1b058f59 100755 --- a/config/hypr/scripts/rofi-ssh-menu.sh +++ b/config/hypr/scripts/rofi-ssh-menu.sh @@ -10,7 +10,7 @@ set -euo pipefail SSH_CONFIG="${HOME}/.ssh/config" -ROFI_CONFIG="${HOME}/.config/rofi/config.rasi" +ROFI_CONFIG="${XDG_CONFIG_HOME:-$HOME/.config}/rofi/config.rasi" MSG='Select a host to connect via SSH' notify() { diff --git a/config/hypr/scripts/sddm_wallpaper.sh b/config/hypr/scripts/sddm_wallpaper.sh index deee938c..f30bac9b 100755 --- a/config/hypr/scripts/sddm_wallpaper.sh +++ b/config/hypr/scripts/sddm_wallpaper.sh @@ -7,69 +7,409 @@ # ================================================== # SDDM Wallpaper and Wallust Colors Setter -# for the upcoming changes on the simple_sddm_theme - # variables terminal=kitty PICTURES_DIR="$(xdg-user-dir PICTURES 2>/dev/null || echo "$HOME/Pictures")" wallDIR="$PICTURES_DIR/wallpapers" -SCRIPTSDIR="$HOME/.config/hypr/scripts" -wallpaper_current="$HOME/.config/hypr/wallpaper_effects/.wallpaper_current" -wallpaper_modified="$HOME/.config/hypr/wallpaper_effects/.wallpaper_modified" +SCRIPTSDIR="${XDG_CONFIG_HOME:-$HOME/.config}/hypr/scripts" +wallpaper_link="${XDG_CONFIG_HOME:-$HOME/.config}/rofi/.current_wallpaper" +wallpaper_current="${XDG_CONFIG_HOME:-$HOME/.config}/hypr/wallpaper_effects/.wallpaper_current" +wallpaper_modified="${XDG_CONFIG_HOME:-$HOME/.config}/hypr/wallpaper_effects/.wallpaper_modified" +rofi_theme="${XDG_CONFIG_HOME:-$HOME/.config}/rofi/config-wallpaper.rasi" +# Directory for swaync +iDIR="${XDG_CONFIG_HOME:-$HOME/.config}/swaync/images" +iDIRi="${XDG_CONFIG_HOME:-$HOME/.config}/swaync/icons" +video_preview_cache="$HOME/.cache/video_preview" +sddm_video_cache="$HOME/.cache/sddm_preview" +# shellcheck source=/dev/null +. "$SCRIPTSDIR/WallpaperCmd.sh" 2>/dev/null || true + +find_notify_send() { + local candidate="" + if candidate="$(command -v notify-send 2>/dev/null)"; then + if [[ -n "$candidate" && -x "$candidate" ]]; then + printf '%s\n' "$candidate" + return 0 + fi + fi + for candidate in /usr/bin/notify-send /usr/sbin/notify-send /bin/notify-send /sbin/notify-send; do + if [[ -x "$candidate" ]]; then + printf '%s\n' "$candidate" + return 0 + fi + done + return 1 +} + +NOTIFY_SEND_BIN="$(find_notify_send || true)" + +notify_err() { + if [[ -n "$NOTIFY_SEND_BIN" ]]; then + if [[ -f "$iDIR/error.png" ]]; then + "$NOTIFY_SEND_BIN" -i "$iDIR/error.png" "SDDM" "$1" + else + "$NOTIFY_SEND_BIN" "SDDM" "$1" + fi + fi +} + +notify_ok() { + if [[ -n "$NOTIFY_SEND_BIN" ]]; then + if [[ -f "$iDIR/ja.png" ]]; then + "$NOTIFY_SEND_BIN" -i "$iDIR/ja.png" "SDDM" "$1" + else + "$NOTIFY_SEND_BIN" "SDDM" "$1" + fi + fi +} + +read_cached_wallpaper() { + local cache_file="$1" + [[ -f "$cache_file" ]] || return 1 + awk 'NF && $0 !~ /^filter/ {print; exit}' "$cache_file" +} + +read_wallpaper_from_query() { + local monitor="$1" + [[ -n "$monitor" ]] || return 1 + [[ -n "${WWW_CMD:-}" ]] || return 1 + command -v "$WWW_CMD" >/dev/null 2>&1 || return 1 + "$WWW_CMD" query 2>/dev/null | awk -v mon="$monitor" ' + { + line=$0 + sub(/^Monitor[[:space:]]+/, "", line) + sub(/^:[[:space:]]*/, "", line) + mon_name=line + sub(/:.*/, "", mon_name) + gsub(/^[[:space:]]+|[[:space:]]+$/, "", mon_name) + if (mon_name != mon) next + path=line + sub(/^.*image:[[:space:]]*/, "", path) + gsub(/^[[:space:]]+|[[:space:]]+$/, "", path) + if (path != line && length(path) > 0) { + print path + exit + } + } + ' +} + +read_wallpaper_from_cache() { + local monitor="$1" + local cache_root="${WWW_CACHE_DIR:-$HOME/.cache/awww}" + local cache_file="$cache_root/$monitor" + local fallback_cache="" + local path="" + + case "$cache_root" in + "$HOME/.cache/awww") + fallback_cache="$HOME/.cache/swww/$monitor" + ;; + "$HOME/.cache/swww") + fallback_cache="$HOME/.cache/awww/$monitor" + ;; + esac + + path="$(read_cached_wallpaper "$cache_file" 2>/dev/null || true)" + if [[ -z "$path" && -n "$fallback_cache" ]]; then + path="$(read_cached_wallpaper "$fallback_cache" 2>/dev/null || true)" + fi + + [[ -n "$path" && -f "$path" ]] || return 1 + printf '%s\n' "$path" +} + +calculate_rofi_icon_size() { + local monitor="$1" + local scale_factor="" + local monitor_height="" + local icon_size="" + local adjusted_icon_size="" + + if [[ -z "$monitor" ]]; then + monitor="$(get_focused_monitor 2>/dev/null || true)" + fi + + if [[ -z "$monitor" ]]; then + printf '22\n' + return 0 + fi + + if command -v hyprctl >/dev/null 2>&1 && command -v jq >/dev/null 2>&1 && command -v bc >/dev/null 2>&1; then + scale_factor="$(hyprctl monitors -j 2>/dev/null | jq -r --arg mon "$monitor" '.[] | select(.name == $mon) | .scale' | head -n1)" + monitor_height="$(hyprctl monitors -j 2>/dev/null | jq -r --arg mon "$monitor" '.[] | select(.name == $mon) | .height' | head -n1)" + if [[ -n "$scale_factor" && -n "$monitor_height" && "$scale_factor" != "null" && "$monitor_height" =~ ^[0-9]+$ ]]; then + icon_size="$(echo "scale=1; ($monitor_height * 3) / ($scale_factor * 150)" | bc 2>/dev/null || true)" + adjusted_icon_size="$(echo "$icon_size" | awk '{if ($1 < 15) $1 = 20; if ($1 > 25) $1 = 25; print int($1)}')" + if [[ "$adjusted_icon_size" =~ ^[0-9]+$ ]]; then + printf '%s\n' "$adjusted_icon_size" + return 0 + fi + fi + fi + + printf '22\n' +} + +resolve_link_or_file() { + local path="$1" + local resolved="" + if [[ -L "$path" ]]; then + resolved="$(readlink -f "$path" 2>/dev/null || true)" + if [[ -n "$resolved" && -f "$resolved" ]]; then + printf '%s\n' "$resolved" + return 0 + fi + fi + if [[ -f "$path" ]]; then + printf '%s\n' "$path" + return 0 + fi + return 1 +} + +get_active_workspace_monitor() { + if ! command -v hyprctl >/dev/null 2>&1; then + return 1 + fi + if command -v jq >/dev/null 2>&1; then + hyprctl activeworkspace -j 2>/dev/null | jq -r '.monitor // empty' | head -n1 + else + hyprctl monitors 2>/dev/null | awk '/^Monitor/{name=$2} /focused: yes/{print name; exit}' + fi +} + +get_focused_monitor() { + if ! command -v hyprctl >/dev/null 2>&1; then + return 1 + fi + if command -v jq >/dev/null 2>&1; then + hyprctl monitors -j 2>/dev/null | jq -r '.[] | select(.focused) | .name' | head -n1 + else + hyprctl monitors 2>/dev/null | awk '/^Monitor/{name=$2} /focused: yes/{print name; exit}' + fi +} + +monitor_exists() { + local monitor="$1" + [[ -n "$monitor" ]] || return 1 + command -v hyprctl >/dev/null 2>&1 || return 1 + if command -v jq >/dev/null 2>&1; then + hyprctl monitors -j 2>/dev/null | jq -r --arg mon "$monitor" '.[] | select(.name == $mon) | .name' | grep -qx "$monitor" + else + hyprctl monitors 2>/dev/null | awk '/^Monitor/{print $2}' | grep -qx "$monitor" + fi +} + +resolve_target_monitor() { + local requested="$1" + local monitor="" + if monitor_exists "$requested"; then + printf '%s\n' "$requested" + return 0 + fi + monitor="$(get_active_workspace_monitor 2>/dev/null || true)" + if monitor_exists "$monitor"; then + printf '%s\n' "$monitor" + return 0 + fi + monitor="$(get_focused_monitor 2>/dev/null || true)" + if [[ -n "$monitor" ]]; then + printf '%s\n' "$monitor" + return 0 + fi + return 1 +} + +resolve_normal_wallpaper() { + local monitor="$1" + local path="" + local per_monitor_rofi_link="" + local per_monitor_current="" + + if [[ -n "$monitor" ]]; then + per_monitor_rofi_link="${XDG_CONFIG_HOME:-$HOME/.config}/rofi/.current_wallpaper_${monitor}" + per_monitor_current="${XDG_CONFIG_HOME:-$HOME/.config}/hypr/wallpaper_effects/.wallpaper_current_${monitor}" + + path="$(read_wallpaper_from_query "$monitor" 2>/dev/null || true)" + if [[ -z "$path" ]]; then + path="$(resolve_link_or_file "$per_monitor_rofi_link" 2>/dev/null || true)" + fi + if [[ -z "$path" ]]; then + path="$(resolve_link_or_file "$per_monitor_current" 2>/dev/null || true)" + fi + if [[ -z "$path" ]]; then + path="$(read_wallpaper_from_cache "$monitor" 2>/dev/null || true)" + fi + fi + + if [[ -z "$path" ]]; then + path="$(resolve_link_or_file "$wallpaper_current" 2>/dev/null || true)" + fi + if [[ -z "$path" ]]; then + path="$(resolve_link_or_file "$wallpaper_link" 2>/dev/null || true)" + fi + + [[ -n "$path" && -f "$path" ]] || return 1 + printf '%s\n' "$path" +} + +resolve_effects_wallpaper() { + local monitor="$1" + local path="" + local per_monitor_modified="" + + if [[ -n "$monitor" ]]; then + per_monitor_modified="${XDG_CONFIG_HOME:-$HOME/.config}/hypr/wallpaper_effects/.wallpaper_modified_${monitor}" + path="$(resolve_link_or_file "$per_monitor_modified" 2>/dev/null || true)" + fi + + if [[ -z "$path" ]]; then + path="$(resolve_link_or_file "$wallpaper_modified" 2>/dev/null || true)" + fi + if [[ -z "$path" ]]; then + path="$(resolve_normal_wallpaper "$monitor" 2>/dev/null || true)" + fi + + [[ -n "$path" && -f "$path" ]] || return 1 + printf '%s\n' "$path" +} + +resolve_current_sddm_background() { + local sddm_simple="$1" + local candidate="" + for candidate in "$sddm_simple/Backgrounds/default" "$sddm_simple/Backgrounds/default.jpg" "$sddm_simple/Backgrounds/default.png"; do + if [[ -f "$candidate" ]]; then + printf '%s\n' "$candidate" + return 0 + fi + done + return 1 +} + +extract_color() { + local key="$1" + local value + value="$(grep -oP "$key:\\s*\\K#[A-Fa-f0-9]+" "$rofi_wallust" | head -n1)" + printf '%s\n' "$value" +} + +prepare_sddm_wallpaper() { + local selected_file="$1" + local target_monitor="$2" + local prepared_path="$selected_file" + + if [[ ! -f "$selected_file" ]]; then + notify_err "Selected file not found for ${target_monitor:-current context}." + return 1 + fi + + if [[ "$selected_file" =~ \.(mp4|mkv|mov|webm|MP4|MKV|MOV|WEBM)$ ]]; then + if ! command -v ffmpeg >/dev/null 2>&1; then + notify_err "ffmpeg not found; cannot convert selected video wallpaper." + return 1 + fi + mkdir -p "$sddm_video_cache" + local video_name + video_name="$(basename "$selected_file")" + prepared_path="$sddm_video_cache/${video_name}.png" + if ! ffmpeg -v error -y -i "$selected_file" -ss 00:00:01.000 -vframes 1 "$prepared_path"; then + notify_err "Could not generate preview from selected video wallpaper." + return 1 + fi + fi + + printf '%s\n' "$prepared_path" +} + +# Parse arguments +mode="effects" # default +requested_monitor="${SDDM_TARGET_MONITOR:-${HYPRLOCK_TARGET_MONITOR:-}}" +for arg in "$@"; do + case "$arg" in + --normal) + mode="normal" + ;; + --effects) + mode="effects" + ;; + --monitor=*) + requested_monitor="${arg#--monitor=}" + ;; + --*) + ;; + *) + if [[ -z "$requested_monitor" ]]; then + requested_monitor="$arg" + fi + ;; + esac +done + # Resolve SDDM themes directory (standard paths and NixOS path) sddm_themes_dir="/usr/share/sddm/themes" -if [ ! -d "$sddm_themes_dir" ] && [ -d "/run/current-system/sw/share/sddm/themes" ]; then +if [[ ! -d "$sddm_themes_dir" && -d "/run/current-system/sw/share/sddm/themes" ]]; then sddm_themes_dir="/run/current-system/sw/share/sddm/themes" fi sddm_simple="$sddm_themes_dir/simple_sddm_2" +sddm_theme_conf="$sddm_simple/theme.conf" # rofi-wallust-sddm colors path -rofi_wallust="$HOME/.config/rofi/wallust/colors-rofi.rasi" -sddm_theme_conf="$sddm_simple/theme.conf" +rofi_wallust="${XDG_CONFIG_HOME:-$HOME/.config}/rofi/wallust/colors-rofi.rasi" if [[ ! -f "$rofi_wallust" ]]; then - notify-send -i "$iDIR/error.png" "SDDM" "Wallust colors file not found ($rofi_wallust). Aborting." + notify_err "Wallust colors file not found ($rofi_wallust). Aborting." + exit 1 +fi +if [[ ! -d "$sddm_simple/Backgrounds" ]]; then + notify_err "SDDM theme backgrounds not found ($sddm_simple/Backgrounds)." + exit 1 +fi +if [[ ! -f "$sddm_theme_conf" ]]; then + notify_err "SDDM theme config not found ($sddm_theme_conf)." + exit 1 +fi +if [[ ! -d "$wallDIR" ]]; then + notify_err "Wallpaper directory not found ($wallDIR)." + exit 1 +fi +if ! command -v rofi >/dev/null 2>&1; then + notify_err "rofi not found." + exit 1 +fi +if ! command -v "$terminal" >/dev/null 2>&1; then + notify_err "Terminal '$terminal' not found." + exit 1 +fi +if ! command -v sudo >/dev/null 2>&1; then + notify_err "sudo not found." exit 1 fi -# Directory for swaync -iDIR="$HOME/.config/swaync/images" -iDIRi="$HOME/.config/swaync/icons" - -# Parse arguments -mode="effects" # default -if [[ "$1" == "--normal" ]]; then - mode="normal" -elif [[ "$1" == "--effects" ]]; then - mode="effects" +# Abort on NixOS where this repo doesn't manage SDDM and themes are typically read-only +if hostnamectl 2>/dev/null | grep -q 'Operating System: NixOS'; then + notify_err "NixOS detected: skipping SDDM background change." + exit 0 fi # Abort if SDDM is not running (avoid errors on non-SDDM systems) if command -v systemctl >/dev/null 2>&1; then if ! systemctl is-active --quiet sddm; then - notify-send -i "$iDIR/error.png" "SDDM" "SDDM is not running. Skipping SDDM wallpaper update." + notify_err "SDDM is not running. Skipping SDDM wallpaper update." exit 0 fi elif ! pidof sddm >/dev/null 2>&1; then - notify-send -i "$iDIR/error.png" "SDDM" "SDDM is not running. Skipping SDDM wallpaper update." + notify_err "SDDM is not running. Skipping SDDM wallpaper update." exit 0 fi # Extract colors from rofi wallust config - -extract_color() { - local key="$1" - local value - value=$(grep -oP "$key:\s*\K#[A-Fa-f0-9]+" "$rofi_wallust" | head -n1) - echo "$value" -} - -color0=$(extract_color "color1") -color1=$(extract_color "color0") -color7=$(extract_color "color14") -color10=$(extract_color "color10") -color12=$(extract_color "color12") -color13=$(extract_color "color13") -foreground=$(extract_color "foreground") +color0="$(extract_color "color1")" +color1="$(extract_color "color0")" +color7="$(extract_color "color14")" +color10="$(extract_color "color10")" +color12="$(extract_color "color12")" +color13="$(extract_color "color13")" +foreground="$(extract_color "foreground")" missing_colors=() for var in color0 color1 color7 color10 color12 color13 foreground; do @@ -79,57 +419,172 @@ for var in color0 color1 color7 color10 color12 color13 foreground; do done if [[ ${#missing_colors[@]} -gt 0 ]]; then - notify-send -i "$iDIR/error.png" "SDDM" "Missing color(s): ${missing_colors[*]}. Run Wallust first." + notify_err "Missing color(s): ${missing_colors[*]}. Run Wallust first." exit 1 fi -#background-color=$(grep -oP 'background:\s*\K#[A-Fa-f0-9]+' "$rofi_wallust") -# wallpaper to use +target_monitor="$(resolve_target_monitor "$requested_monitor" 2>/dev/null || true)" +current_monitor_path="" if [[ "$mode" == "normal" ]]; then - wallpaper_path="$wallpaper_current" + current_monitor_path="$(resolve_normal_wallpaper "$target_monitor" 2>/dev/null || true)" else - wallpaper_path="$wallpaper_modified" + current_monitor_path="$(resolve_effects_wallpaper "$target_monitor" 2>/dev/null || true)" fi +current_sddm_path="$(resolve_current_sddm_background "$sddm_simple" 2>/dev/null || true)" -# Abort on NixOS where this repo doesn't manage SDDM and themes are typically read-only -if hostnamectl 2>/dev/null | grep -q 'Operating System: NixOS'; then - notify-send -i "$iDIR/error.png" "SDDM" "NixOS detected: skipping SDDM background change." +current_monitor_label="" +if [[ -n "$current_monitor_path" && -f "$current_monitor_path" ]]; then + if [[ -n "$target_monitor" ]]; then + current_monitor_label="Current monitor ($target_monitor): $(basename "$current_monitor_path")" + else + current_monitor_label="Current monitor wallpaper: $(basename "$current_monitor_path")" + fi +fi + +current_sddm_label="" +if [[ -n "$current_sddm_path" && -f "$current_sddm_path" ]]; then + current_sddm_label="Current SDDM background: $(basename "$current_sddm_path")" +fi + +mapfile -d '' WALLPAPERS < <(find -L "$wallDIR" -type f \( \ + -iname "*.jpg" -o -iname "*.jpeg" -o -iname "*.png" -o -iname "*.gif" -o \ + -iname "*.bmp" -o -iname "*.tiff" -o -iname "*.webp" -o \ + -iname "*.mp4" -o -iname "*.mkv" -o -iname "*.mov" -o -iname "*.webm" \ +\) -print0) + +if [[ ${#WALLPAPERS[@]} -eq 0 ]]; then + notify_err "No wallpapers found in $wallDIR." + exit 1 +fi + +random_wallpaper="${WALLPAPERS[$((RANDOM % ${#WALLPAPERS[@]}))]}" +random_label="Random: $(basename "$random_wallpaper")" + +has_ffmpeg=0 +if command -v ffmpeg >/dev/null 2>&1; then + has_ffmpeg=1 +fi + +menu_message="Select SDDM wallpaper" +if [[ -n "$target_monitor" ]]; then + menu_message="Select SDDM wallpaper for $target_monitor" +fi +rofi_icon_size="$(calculate_rofi_icon_size "$target_monitor")" +rofi_override="element-icon{size:${rofi_icon_size}%;}" + +menu() { + local -a sorted_options=() + local pic_path pic_name cache_preview_image + + mapfile -t sorted_options < <(printf '%s\n' "${WALLPAPERS[@]}" | sort) + + printf "%s\x00icon\x1f%s\n" "$random_label" "$random_wallpaper" + if [[ -n "$current_monitor_label" && -n "$current_monitor_path" ]]; then + printf "%s\x00icon\x1f%s\n" "$current_monitor_label" "$current_monitor_path" + fi + if [[ -n "$current_sddm_label" && -n "$current_sddm_path" ]]; then + printf "%s\x00icon\x1f%s\n" "$current_sddm_label" "$current_sddm_path" + fi + + for pic_path in "${sorted_options[@]}"; do + pic_name="$(basename "$pic_path")" + if [[ "$pic_name" =~ \.(mp4|mkv|mov|webm|MP4|MKV|MOV|WEBM)$ ]]; then + cache_preview_image="$video_preview_cache/${pic_name}.png" + if [[ ! -f "$cache_preview_image" && "$has_ffmpeg" -eq 1 ]]; then + mkdir -p "$video_preview_cache" + ffmpeg -v error -y -i "$pic_path" -ss 00:00:01.000 -vframes 1 "$cache_preview_image" >/dev/null 2>&1 || true + fi + if [[ -f "$cache_preview_image" ]]; then + printf "%s\x00icon\x1f%s\n" "$pic_name" "$cache_preview_image" + else + printf "%s\n" "$pic_name" + fi + else + printf "%s\x00icon\x1f%s\n" "$pic_name" "$pic_path" + fi + done +} + +rofi_cmd=(rofi -i -show -dmenu -mesg "$menu_message" -theme-str "$rofi_override") +if [[ -f "$rofi_theme" ]]; then + rofi_cmd+=(-config "$rofi_theme") +fi + +choice="$(menu | "${rofi_cmd[@]}")" +choice="${choice#"${choice%%[![:space:]]*}"}" +choice="${choice%"${choice##*[![:space:]]}"}" + +if [[ -z "$choice" ]]; then exit 0 fi -# Launch terminal and apply changes -$terminal -e bash -c " -echo 'Enter your password to update SDDM wallpapers and colors'; +selected_file="" +if [[ "$choice" == "$random_label" ]]; then + selected_file="$random_wallpaper" +elif [[ -n "$current_monitor_label" && "$choice" == "$current_monitor_label" ]]; then + selected_file="$current_monitor_path" +elif [[ -n "$current_sddm_label" && "$choice" == "$current_sddm_label" ]]; then + selected_file="$current_sddm_path" +elif [[ -f "$choice" ]]; then + selected_file="$choice" +else + choice_basename="$(basename "$choice" | sed 's/\(.*\)\.[^.]*$/\1/')" + selected_file="$(find -L "$wallDIR" -type f -iname "$choice_basename.*" -print -quit)" +fi -# Update the colors in the SDDM config -sudo sed -i \"s/HeaderTextColor=\\\"#.*\\\"/HeaderTextColor=\\\"$color13\\\"/\" \"$sddm_theme_conf\" -sudo sed -i \"s/DateTextColor=\\\"#.*\\\"/DateTextColor=\\\"$color13\\\"/\" \"$sddm_theme_conf\" -sudo sed -i \"s/TimeTextColor=\\\"#.*\\\"/TimeTextColor=\\\"$color13\\\"/\" \"$sddm_theme_conf\" -sudo sed -i \"s/DropdownSelectedBackgroundColor=\\\"#.*\\\"/DropdownSelectedBackgroundColor=\\\"$color13\\\"/\" \"$sddm_theme_conf\" -sudo sed -i \"s/SystemButtonsIconsColor=\\\"#.*\\\"/SystemButtonsIconsColor=\\\"$color13\\\"/\" \"$sddm_theme_conf\" -sudo sed -i \"s/SessionButtonTextColor=\\\"#.*\\\"/SessionButtonTextColor=\\\"$color13\\\"/\" \"$sddm_theme_conf\" -sudo sed -i \"s/VirtualKeyboardButtonTextColor=\\\"#.*\\\"/VirtualKeyboardButtonTextColor=\\\"$color13\\\"/\" \"$sddm_theme_conf\" -sudo sed -i \"s/HighlightBackgroundColor=\\\"#.*\\\"/HighlightBackgroundColor=\\\"$color12\\\"/\" \"$sddm_theme_conf\" -sudo sed -i \"s/LoginFieldTextColor=\\\"#.*\\\"/LoginFieldTextColor=\\\"$color12\\\"/\" \"$sddm_theme_conf\" -sudo sed -i \"s/PasswordFieldTextColor=\\\"#.*\\\"/PasswordFieldTextColor=\\\"$color12\\\"/\" \"$sddm_theme_conf\" +if [[ -z "$selected_file" || ! -f "$selected_file" ]]; then + notify_err "Selected wallpaper not found: $choice" + exit 1 +fi -sudo sed -i \"s/DropdownBackgroundColor=\\\"#.*\\\"/DropdownBackgroundColor=\\\"$color1\\\"/\" \"$sddm_theme_conf\" -sudo sed -i \"s/HighlightTextColor=\\\"#.*\\\"/HighlightTextColor=\\\"$color10\\\"/\" \"$sddm_theme_conf\" +wallpaper_path="$(prepare_sddm_wallpaper "$selected_file" "$target_monitor" 2>/dev/null || true)" +if [[ -z "$wallpaper_path" || ! -f "$wallpaper_path" ]]; then + notify_err "Could not prepare selected wallpaper for SDDM." + exit 1 +fi + +# Launch terminal and apply changes +if ! "$terminal" -e bash -c ' +set -e +theme_conf="$1" +wallpaper_path="$2" +sddm_simple="$3" +color13="$4" +color12="$5" +color1="$6" +color10="$7" +color7="$8" -sudo sed -i \"s/PlaceholderTextColor=\\\"#.*\\\"/PlaceholderTextColor=\\\"$color7\\\"/\" \"$sddm_theme_conf\" -sudo sed -i \"s/UserIconColor=\\\"#.*\\\"/UserIconColor=\\\"$color7\\\"/\" \"$sddm_theme_conf\" -sudo sed -i \"s/PasswordIconColor=\\\"#.*\\\"/PasswordIconColor=\\\"$color7\\\"/\" \"$sddm_theme_conf\" +echo "Enter your password to update SDDM wallpapers and colors" + +# Update the colors in the SDDM config +sudo sed -i "s/HeaderTextColor=\"#.*\"/HeaderTextColor=\"$color13\"/" "$theme_conf" +sudo sed -i "s/DateTextColor=\"#.*\"/DateTextColor=\"$color13\"/" "$theme_conf" +sudo sed -i "s/TimeTextColor=\"#.*\"/TimeTextColor=\"$color13\"/" "$theme_conf" +sudo sed -i "s/DropdownSelectedBackgroundColor=\"#.*\"/DropdownSelectedBackgroundColor=\"$color13\"/" "$theme_conf" +sudo sed -i "s/SystemButtonsIconsColor=\"#.*\"/SystemButtonsIconsColor=\"$color13\"/" "$theme_conf" +sudo sed -i "s/SessionButtonTextColor=\"#.*\"/SessionButtonTextColor=\"$color13\"/" "$theme_conf" +sudo sed -i "s/VirtualKeyboardButtonTextColor=\"#.*\"/VirtualKeyboardButtonTextColor=\"$color13\"/" "$theme_conf" +sudo sed -i "s/HighlightBackgroundColor=\"#.*\"/HighlightBackgroundColor=\"$color12\"/" "$theme_conf" +sudo sed -i "s/LoginFieldTextColor=\"#.*\"/LoginFieldTextColor=\"$color12\"/" "$theme_conf" +sudo sed -i "s/PasswordFieldTextColor=\"#.*\"/PasswordFieldTextColor=\"$color12\"/" "$theme_conf" +sudo sed -i "s/DropdownBackgroundColor=\"#.*\"/DropdownBackgroundColor=\"$color1\"/" "$theme_conf" +sudo sed -i "s/HighlightTextColor=\"#.*\"/HighlightTextColor=\"$color10\"/" "$theme_conf" +sudo sed -i "s/PlaceholderTextColor=\"#.*\"/PlaceholderTextColor=\"$color7\"/" "$theme_conf" +sudo sed -i "s/UserIconColor=\"#.*\"/UserIconColor=\"$color7\"/" "$theme_conf" +sudo sed -i "s/PasswordIconColor=\"#.*\"/PasswordIconColor=\"$color7\"/" "$theme_conf" # Copy wallpaper to SDDM theme -# Primary: set Backgrounds/default (no extension) for simple_sddm_2 -sudo cp -f \"$wallpaper_path\" \"$sddm_simple/Backgrounds/default\" || true -# Fallbacks: if theme ships default.jpg or default.png, update those too -if [ -e \"$sddm_simple/Backgrounds/default.jpg\" ]; then - sudo cp -f \"$wallpaper_path\" \"$sddm_simple/Backgrounds/default.jpg\" +sudo cp -f "$wallpaper_path" "$sddm_simple/Backgrounds/default" +if [ -e "$sddm_simple/Backgrounds/default.jpg" ]; then + sudo cp -f "$wallpaper_path" "$sddm_simple/Backgrounds/default.jpg" fi -if [ -e \"$sddm_simple/Backgrounds/default.png\" ]; then - sudo cp -f \"$wallpaper_path\" \"$sddm_simple/Backgrounds/default.png\" +if [ -e "$sddm_simple/Backgrounds/default.png" ]; then + sudo cp -f "$wallpaper_path" "$sddm_simple/Backgrounds/default.png" +fi +' _ "$sddm_theme_conf" "$wallpaper_path" "$sddm_simple" "$color13" "$color12" "$color1" "$color10" "$color7"; then + notify_err "Failed to update SDDM for ${target_monitor:-current context}: $(basename "$wallpaper_path")." + exit 1 fi -notify-send -i \"$iDIR/ja.png\" \"SDDM\" \"Background SET\" -"
\ No newline at end of file +notify_ok "Set for ${target_monitor:-current context}: $(basename "$wallpaper_path")." diff --git a/config/hypr/scripts/set-default-thunar-terminal.sh b/config/hypr/scripts/set-default-thunar-terminal.sh index fd50eb6c..cf5107cf 100755 --- a/config/hypr/scripts/set-default-thunar-terminal.sh +++ b/config/hypr/scripts/set-default-thunar-terminal.sh @@ -11,7 +11,7 @@ setup_default_terminal() { # 1. Configure XFCE/Exo (Thunar's primary helper) # This handles "Open Terminal Here" and "Open with [CLI App]" - HELPER_DIR="$HOME/.config/xfce4" + HELPER_DIR="${XDG_CONFIG_HOME:-$HOME/.config}/xfce4" mkdir -p "$HELPER_DIR" KITTY_PATH="$(command -v kitty 2>/dev/null || true)" if [ -z "$KITTY_PATH" ]; then diff --git a/config/hypr/scripts/update_WindowRules.sh b/config/hypr/scripts/update_WindowRules.sh index 293b14e9..d9cb08e4 100755 --- a/config/hypr/scripts/update_WindowRules.sh +++ b/config/hypr/scripts/update_WindowRules.sh @@ -7,7 +7,7 @@ # ================================================== # Script to update WindowRules config if Hyprland version is >= 0.53 -CONFIGS_DIR="$HOME/.config/hypr/configs" +CONFIGS_DIR="${XDG_CONFIG_HOME:-$HOME/.config}/hypr/configs" TARGET_FILE="$CONFIGS_DIR/WindowRules.conf" get_hyprland_version() { diff --git a/config/hypr/v2.3.24 b/config/hypr/v2.3.25 index e69de29b..e69de29b 100644 --- a/config/hypr/v2.3.24 +++ b/config/hypr/v2.3.25 diff --git a/config/hypr/workspaces.conf b/config/hypr/workspaces.conf index 5417d940..52a4d94d 100644 --- a/config/hypr/workspaces.conf +++ b/config/hypr/workspaces.conf @@ -21,6 +21,11 @@ # workspace = 6, monitor:DP-2 # workspace = 7, monitor:DP-2 # workspace = 8, monitor:DP-2 +# Assigning workspace + layout to a monitor. Below are just examples +# workspace = 1, monitor:HDMI-A-1, layout:scrolling +# workspace = 1, monitor:HDMI-A-1, layout:dwindle +# workspace = 1, monitor:HDMI-A-1, layout:master +# workspace = 1, monitor:HDMI-A-1, layout:monocle # example rules (from wiki) diff --git a/config/rofi/config-layout.rasi b/config/rofi/config-layout.rasi new file mode 100644 index 00000000..d94178cd --- /dev/null +++ b/config/rofi/config-layout.rasi @@ -0,0 +1,63 @@ +/* ---- 💫 https://github.com/LinuxBeginnings 💫 ---- */ +/* Layout Selector (compact) */ + +@import "~/.config/rofi/config-rofi-theme.rasi" + +/* ---- Mainbox ---- */ +mainbox { + children: [ "message", "listview" ]; + spacing: 10px; + padding: 12px; +} + +/* ---- Window ---- */ +window { + width: 520px; + height: 320px; +} + +/* ---- Entry ---- */ +entry { + enabled: false; +} + +/* ---- Message ---- */ +message { + enabled: true; + margin: 0px 6px 0px 6px; + padding: 10px; + border-radius: 10px; + background-color: inherit; +} + +textbox { + text-color: inherit; + background-color: inherit; +} + +/* ---- Listview ---- */ +listview { + columns: 1; + lines: 4; + fixed-height: true; + margin: 8px 10px; + padding: 6px; + scrollbar: false; + spacing: 4px; + cycle: true; +} + +element { + padding: 6px; +} + +/* ---- Elements ---- */ +element-icon { + size: 0%; +} +element-text { + horizontal-align: 0.0; + vertical-align: 0.5; + margin: 0px; + padding: 0px; +} diff --git a/config/rofi/config-starship.rasi b/config/rofi/config-starship.rasi new file mode 100644 index 00000000..983f8658 --- /dev/null +++ b/config/rofi/config-starship.rasi @@ -0,0 +1,63 @@ +/* ---- 💫 https://github.com/LinuxBeginnings 💫 ---- */ +/* Starship Selector (tall) */ + +@import "~/.config/rofi/config-rofi-theme.rasi" + +/* ---- Mainbox ---- */ +mainbox { + children: [ "message", "listview" ]; + spacing: 10px; + padding: 12px; +} + +/* ---- Window ---- */ +window { + width: 520px; + height: 620; +} + +/* ---- Entry ---- */ +entry { + enabled: false; +} + +/* ---- Message ---- */ +message { + enabled: true; + margin: 0px 6px 0px 6px; + padding: 10px; + border-radius: 10px; + background-color: inherit; +} + +textbox { + text-color: inherit; + background-color: inherit; +} + +/* ---- Listview ---- */ +listview { + columns: 1; + lines: 13; + fixed-height: true; + margin: 8px 10px; + padding: 6px; + scrollbar: false; + spacing: 4px; + cycle: true; +} + +element { + padding: 6px; +} + +/* ---- Elements ---- */ +element-icon { + size: 0%; +} +element-text { + horizontal-align: 0.0; + vertical-align: 0.5; + margin: 0px; + padding: 0px; +} diff --git a/config/rofi/themes/KooL_style-1.rasi b/config/rofi/themes/KooL_style-1.rasi index 6a3d8f08..fdfc955e 100644 --- a/config/rofi/themes/KooL_style-1.rasi +++ b/config/rofi/themes/KooL_style-1.rasi @@ -69,7 +69,7 @@ inputbar { border-radius: 20px; orientation: horizontal; children: ["entry", "dummy", "mode-switcher" ]; - background-image: url("~/.config/rofi/.current_wallpaper", width); + background-image: url("~/.config/rofi/.current_wallpaper_focused", width); } /* ---- Entry input ---- */ diff --git a/config/rofi/themes/KooL_style-13-Vertical.rasi b/config/rofi/themes/KooL_style-13-Vertical.rasi index 218251a4..e591f6b2 100644 --- a/config/rofi/themes/KooL_style-13-Vertical.rasi +++ b/config/rofi/themes/KooL_style-13-Vertical.rasi @@ -95,7 +95,7 @@ inputbar { border-radius: 10px; border-color: @border-color; background-color: @background; - background-image: url("~/.config/rofi/.current_wallpaper", width); + background-image: url("~/.config/rofi/.current_wallpaper_focused", width); children: [ "textbox-prompt-colon","entry" ]; border: 0px; } diff --git a/config/rofi/themes/KooL_style-3-FullScreen-v1.rasi b/config/rofi/themes/KooL_style-3-FullScreen-v1.rasi index ab3107f1..591f078f 100644 --- a/config/rofi/themes/KooL_style-3-FullScreen-v1.rasi +++ b/config/rofi/themes/KooL_style-3-FullScreen-v1.rasi @@ -82,7 +82,7 @@ inputbar { border-radius: 20px; orientation: horizontal; children: ["entry", "dummy", "mode-switcher" ]; - background-image: url("~/.config/rofi/.current_wallpaper", width); + background-image: url("~/.config/rofi/.current_wallpaper_focused", width); } /* ---- Entry input ---- */ diff --git a/config/rofi/themes/KooL_style-5.rasi b/config/rofi/themes/KooL_style-5.rasi index 8370158c..0c22762d 100644 --- a/config/rofi/themes/KooL_style-5.rasi +++ b/config/rofi/themes/KooL_style-5.rasi @@ -59,7 +59,7 @@ mainbox { enabled: true; orientation: vertical; padding: 8px; - background-image: url("~/.config/rofi/.current_wallpaper", width); + background-image: url("~/.config/rofi/.current_wallpaper_focused", width); children: [ "inputbar", "listbox" ]; border-radius: 12px; } diff --git a/config/rofi/themes/KooL_style-6.rasi b/config/rofi/themes/KooL_style-6.rasi index 1172fb92..8320ecc8 100644 --- a/config/rofi/themes/KooL_style-6.rasi +++ b/config/rofi/themes/KooL_style-6.rasi @@ -69,7 +69,7 @@ inputbar { border-radius: 25px; orientation: horizontal; children: ["entry", "dummy", "mode-switcher" ]; - background-image: url("~/.config/rofi/.current_wallpaper", width); + background-image: url("~/.config/rofi/.current_wallpaper_focused", width); } /* ---- Entry input ---- */ diff --git a/config/rofi/themes/KooL_style-8.rasi b/config/rofi/themes/KooL_style-8.rasi index b369ea96..80265dc6 100644 --- a/config/rofi/themes/KooL_style-8.rasi +++ b/config/rofi/themes/KooL_style-8.rasi @@ -66,7 +66,7 @@ inputbar { padding: 4em; children: [ "textbox-prompt-colon", "entry" ]; background-color: transparent; - background-image: url("~/.config/rofi/.current_wallpaper", width); + background-image: url("~/.config/rofi/.current_wallpaper_focused", width); } textbox-prompt-colon { diff --git a/config/starship/1-line-nix.toml b/config/starship/1-line-nix.toml new file mode 100644 index 00000000..e3b534b5 --- /dev/null +++ b/config/starship/1-line-nix.toml @@ -0,0 +1,79 @@ +add_newline = true +format = "$nix_shell$hostname$directory$git_branch$git_state$git_status$character" +palette = "base16" + +[character] +error_symbol = "[❯](red)" +success_symbol = "[❯](#5597b9)" +vimcmd_symbol = "[❮](cyan)" + +[directory] +style = "#5597b9" + +[git_branch] +format = "on [$symbol$branch]($style)[](#0e4975) " +style = "fg:#5597b9 bg:#0e4975" +symbol = "[](#0e4975) " + +[git_state] +format = "([$state( $progress_current/$progress_total)]($style)) " +style = "bright-black" + +[git_status] +conflicted = "" +deleted = "" +format = "[[(*$conflicted$untracked$modified$staged$renamed$deleted)](218)($ahead_behind$stashed)]($style)" +renamed = "" +stashed = "≡" +style = "cyan" + +[nix_shell] +format = "[$symbol]($style) " +style = "" +symbol = "🐚" + +[palettes.base16] +base00 = "#0a1b37" +base01 = "#0e4975" +base02 = "#0870a3" +base03 = "#04abe0" +base04 = "#b1bbbc" +base05 = "#efe0c3" +base06 = "#fdeead" +base07 = "#fff2c5" +base08 = "#3a9cbf" +base09 = "#279bc4" +base0A = "#e76865" +base0B = "#c8797a" +base0C = "#6693bc" +base0D = "#5597b9" +base0E = "#e9646b" +base0F = "#6c97ba" +base10 = "#0a1b37" +base11 = "#0a1b37" +base12 = "#3a9cbf" +base13 = "#e76865" +base14 = "#c8797a" +base15 = "#6693bc" +base16 = "#5597b9" +base17 = "#e9646b" +black = "#0a1b37" +blue = "#5597b9" +bright-black = "#04abe0" +bright-blue = "#5597b9" +bright-cyan = "#6693bc" +bright-green = "#c8797a" +bright-magenta = "#e9646b" +bright-purple = "#e9646b" +bright-red = "#3a9cbf" +bright-white = "#fff2c5" +bright-yellow = "#e76865" +brown = "#6c97ba" +cyan = "#6693bc" +green = "#c8797a" +magenta = "#e9646b" +orange = "#279bc4" +purple = "#e9646b" +red = "#3a9cbf" +white = "#efe0c3" +yellow = "#e76865" diff --git a/config/starship/1-line-simple.toml b/config/starship/1-line-simple.toml new file mode 100644 index 00000000..0cf72924 --- /dev/null +++ b/config/starship/1-line-simple.toml @@ -0,0 +1,173 @@ +"$schema" = 'https://starship.rs/config-schema.json' + +command_timeout = 120 +palette = 'catppuccin_mocha' +add_newline = false +[character] +# Note the use of Catppuccin color 'peach' +success_symbol = "[[](green) ❯](peach)" +error_symbol = "[[](red) ❯](peach)" +vimcmd_symbol = "[❮](subtext1)" # For use with zsh-vi-mode + + + +[palettes.catppuccin_mocha] +rosewater = "#f5e0dc" +flamingo = "#f2cdcd" +pink = "#f5c2e7" +mauve = "#cba6f7" +red = "#f38ba8" +maroon = "#eba0ac" +peach = "#fab387" +yellow = "#f9e2af" +green = "#a6e3a1" +teal = "#94e2d5" +sky = "#89dceb" +sapphire = "#74c7ec" +blue = "#89b4fa" +lavender = "#b4befe" +text = "#cdd6f4" +subtext1 = "#bac2de" +subtext0 = "#a6adc8" +overlay2 = "#9399b2" +overlay1 = "#7f849c" +overlay0 = "#6c7086" +surface2 = "#585b70" +surface1 = "#45475a" +surface0 = "#313244" +base = "#1e1e2e" +mantle = "#181825" +crust = "#11111b" + +[aws] +symbol = " " + +[buf] +symbol = " " + +[c] +symbol = " " + +[cmake] +symbol = " " + +[conda] +symbol = " " + +[crystal] +symbol = " " + +[dart] +symbol = " " + +[directory] +read_only = " " +truncation_length = 4 +style = "bold lavender" + +[docker_context] +symbol = " " + +[elixir] +symbol = " " + +[elm] +symbol = " " + +[fennel] +symbol = " " + +[fossil_branch] +symbol = " " + +[git_branch] +symbol = " " +style = "bold mauve" + +[git_commit] +tag_symbol = ' ' + +[golang] +symbol = " " + +[guix_shell] +symbol = " " + +[haskell] +symbol = " " + +[haxe] +symbol = " " + +[hg_branch] +symbol = " " + +[hostname] +ssh_symbol = " " + +[java] +symbol = " " + +[julia] +symbol = " " + +[kotlin] +symbol = " " + +[lua] +symbol = " " + +[memory_usage] +symbol = " " + +[meson] +symbol = " " + +[nim] +symbol = " " + +[nix_shell] +symbol = " " + +[nodejs] +symbol = " " + +[ocaml] +symbol = " " + +[package] +symbol = " " + +[perl] +symbol = " " + +[php] +symbol = " " + +[pijul_channel] +symbol = " " + +[python] +symbol = " " + +[rlang] +symbol = " " + +[ruby] +symbol = " " + +[rust] +symbol = " " + +[scala] +symbol = " " + +[swift] +symbol = " " + +[zig] +symbol = " " + +[gradle] +symbol = " " + diff --git a/config/starship/2-line-classic-garuda.toml b/config/starship/2-line-classic-garuda.toml new file mode 100644 index 00000000..5ec1c550 --- /dev/null +++ b/config/starship/2-line-classic-garuda.toml @@ -0,0 +1,146 @@ +## FIRST LINE/ROW: Info & Status +# First param ─┌ +[username] +format = " [╭─$user]($style)@" +show_always = true +style_root = "bold red" +style_user = "bold red" + +# Second param +[hostname] +disabled = false +format = "[$hostname]($style) in " +ssh_only = false +style = "bold dimmed red" + +# Third param +[directory] +style = "purple" +truncate_to_repo = true +truncation_length = 0 +truncation_symbol = "repo: " + +# Fourth param +[sudo] +disabled = false + +# Before all the version info (python, nodejs, php, etc.) +[git_status] +ahead = "⇡${count}" +behind = "⇣${count}" +deleted = "x" +diverged = "⇕⇡${ahead_count}⇣${behind_count}" +style = "white" + +# Last param in the first line/row +[cmd_duration] +disabled = false +format = "took [$duration]($style)" +min_time = 1 + + +## SECOND LINE/ROW: Prompt +# Somethere at the beginning +[battery] +charging_symbol = "" +disabled = true +discharging_symbol = "" +full_symbol = "" + +[[battery.display]] # "bold red" style when capacity is between 0% and 10% +disabled = false +style = "bold red" +threshold = 15 + +[[battery.display]] # "bold yellow" style when capacity is between 10% and 30% +disabled = true +style = "bold yellow" +threshold = 50 + +[[battery.display]] # "bold green" style when capacity is between 10% and 30% +disabled = true +style = "bold green" +threshold = 80 + +# Prompt: optional param 1 +[time] +disabled = true +format = " 🕙 $time($style)\n" +style = "bright-white" +time_format = "%T" + +# Prompt: param 2 +[character] +error_symbol = " [×](bold red)" +success_symbol = " [╰─λ](bold red)" + +# SYMBOLS +[status] +disabled = false +format = '[\[$symbol$status_common_meaning$status_signal_name$status_maybe_int\]]($style)' +map_symbol = true +pipestatus = true +symbol = "🔴" + +[aws] +symbol = " " + +[conda] +symbol = " " + +[dart] +symbol = " " + +[docker_context] +symbol = " " + +[elixir] +symbol = " " + +[elm] +symbol = " " + +[git_branch] +symbol = " " + +[golang] +symbol = " " + +[hg_branch] +symbol = " " + +[java] +symbol = " " + +[julia] +symbol = " " + +[nim] +symbol = " " + +[nix_shell] +symbol = " " + +[nodejs] +symbol = " " + +[package] +symbol = " " + +[perl] +symbol = " " + +[php] +symbol = " " + +[python] +symbol = " " + +[ruby] +symbol = " " + +[rust] +symbol = " " + +[swift] +symbol = "ﯣ " diff --git a/config/starship/2-line-cool.toml b/config/starship/2-line-cool.toml new file mode 100644 index 00000000..0aae3558 --- /dev/null +++ b/config/starship/2-line-cool.toml @@ -0,0 +1,65 @@ +format = """ +[░▒▓](#a3aed2)\ +[ ](bg:#a3aed2 fg:#090c0c)\ +[](bg:#769ff0 fg:#a3aed2)\ +$directory\ +[](fg:#769ff0 bg:#394260)\ +$git_branch\ +$git_status\ +[](fg:#394260 bg:#212736)\ +$nodejs\ +$rust\ +$golang\ +$php\ +[](fg:#212736 bg:#1d2230)\ +$time\ +[ ](fg:#1d2230)\ +\n$character""" + +[directory] +style = "fg:#e3e5e5 bg:#769ff0" +format = "[ $path ]($style)" +truncation_length = 3 +truncation_symbol = "…/" + +[directory.substitutions] +"Documents" = " " +"Downloads" = " " +"Music" = " " +"Pictures" = " " + +[git_branch] +symbol = "" +style = "bg:#394260" +format = '[[ $symbol $branch ](fg:#769ff0 bg:#394260)]($style)' + +[git_status] +style = "bg:#394260" +format = '[[($all_status$ahead_behind )](fg:#769ff0 bg:#394260)]($style)' + +[nodejs] +symbol = "" +style = "bg:#212736" +format = '[[ $symbol ($version) ](fg:#769ff0 bg:#212736)]($style)' + +[rust] +symbol = "" +style = "bg:#212736" +format = '[[ $symbol ($version) ](fg:#769ff0 bg:#212736)]($style)' + +[golang] +symbol = "ﳑ" +style = "bg:#212736" +format = '[[ $symbol ($version) ](fg:#769ff0 bg:#212736)]($style)' + +[php] +symbol = "" +style = "bg:#212736" +format = '[[ $symbol ($version) ](fg:#769ff0 bg:#212736)]($style)' + +[time] +disabled = true +time_format = "%R" # Hour:Minute Format +style = "bg:#1d2230" +format = '[[ $time ](fg:#a0a9cb bg:#1d2230)]($style)' + diff --git a/config/starship/2-line-nixos.toml b/config/starship/2-line-nixos.toml new file mode 100644 index 00000000..4f21fd5e --- /dev/null +++ b/config/starship/2-line-nixos.toml @@ -0,0 +1,79 @@ +add_newline = false +format = "$nix_shell$hostname$directory$git_branch$git_state$git_status\n$character" +palette = "base16" + +[character] +error_symbol = "[❯](red)" +success_symbol = "[❯](#5597b9)" +vimcmd_symbol = "[❮](cyan)" + +[directory] +style = "#5597b9" + +[git_branch] +format = "on [$symbol$branch]($style)[](#0e4975) " +style = "fg:#5597b9 bg:#0e4975" +symbol = "[](#0e4975) " + +[git_state] +format = "([$state( $progress_current/$progress_total)]($style)) " +style = "bright-black" + +[git_status] +conflicted = "" +deleted = "" +format = "[[(*$conflicted$untracked$modified$staged$renamed$deleted)](218)($ahead_behind$stashed)]($style)" +renamed = "" +stashed = "≡" +style = "cyan" + +[nix_shell] +format = "[$symbol]($style) " +style = "" +symbol = "🐚" + +[palettes.base16] +base00 = "#0a1b37" +base01 = "#0e4975" +base02 = "#0870a3" +base03 = "#04abe0" +base04 = "#b1bbbc" +base05 = "#efe0c3" +base06 = "#fdeead" +base07 = "#fff2c5" +base08 = "#3a9cbf" +base09 = "#279bc4" +base0A = "#e76865" +base0B = "#c8797a" +base0C = "#6693bc" +base0D = "#5597b9" +base0E = "#e9646b" +base0F = "#6c97ba" +base10 = "#0a1b37" +base11 = "#0a1b37" +base12 = "#3a9cbf" +base13 = "#e76865" +base14 = "#c8797a" +base15 = "#6693bc" +base16 = "#5597b9" +base17 = "#e9646b" +black = "#0a1b37" +blue = "#5597b9" +bright-black = "#04abe0" +bright-blue = "#5597b9" +bright-cyan = "#6693bc" +bright-green = "#c8797a" +bright-magenta = "#e9646b" +bright-purple = "#e9646b" +bright-red = "#3a9cbf" +bright-white = "#fff2c5" +bright-yellow = "#e76865" +brown = "#6c97ba" +cyan = "#6693bc" +green = "#c8797a" +magenta = "#e9646b" +orange = "#279bc4" +purple = "#e9646b" +red = "#3a9cbf" +white = "#efe0c3" +yellow = "#e76865" diff --git a/config/starship/chris-titus.toml b/config/starship/chris-titus.toml new file mode 100644 index 00000000..dcf96bda --- /dev/null +++ b/config/starship/chris-titus.toml @@ -0,0 +1,129 @@ +format = """ +[](#3B4252)\ +$python\ +$username\ +[](bg:#434C5E fg:#3B4252)\ +$directory\ +[](fg:#434C5E bg:#4C566A)\ +$git_branch\ +$git_status\ +[](fg:#4C566A bg:#86BBD8)\ +$c\ +$elixir\ +$elm\ +$golang\ +$haskell\ +$java\ +$julia\ +$nodejs\ +$nim\ +$rust\ +[](fg:#86BBD8 bg:#06969A)\ +$docker_context\ +[](fg:#06969A bg:#33658A)\ +$time\ +[ ](fg:#33658A)\ +""" +command_timeout = 5000 +# Disable the blank line at the start of the prompt +# add_newline = false + +# You can also replace your username with a neat symbol like to save some space +[username] +show_always = true +style_user = "bg:#3B4252" +style_root = "bg:#3B4252" +format = '[$user ]($style)' + +[directory] +style = "bg:#434C5E" +format = "[ $path ]($style)" +truncation_length = 3 +truncation_symbol = "…/" + +# Here is how you can shorten some long paths by text replacement +# similar to mapped_locations in Oh My Posh: +[directory.substitutions] +"Documents" = " " +"Downloads" = " " +"Music" = " " +"Pictures" = " " +# Keep in mind that the order matters. For example: +# "Important Documents" = " " +# will not be replaced, because "Documents" was already substituted before. +# So either put "Important Documents" before "Documents" or use the substituted version: +# "Important " = " " + +[c] +symbol = " " +style = "bg:#86BBD8" +format = '[ $symbol ($version) ]($style)' + +[docker_context] +symbol = " " +style = "bg:#06969A" +format = '[ $symbol $context ]($style) $path' + +[elixir] +symbol = " " +style = "bg:#86BBD8" +format = '[ $symbol ($version) ]($style)' + +[elm] +symbol = " " +style = "bg:#86BBD8" +format = '[ $symbol ($version) ]($style)' + +[git_branch] +symbol = "" +style = "bg:#4C566A" +format = '[ $symbol $branch ]($style)' + +[git_status] +style = "bg:#4C566A" +format = '[$all_status$ahead_behind ]($style)' + +[golang] +symbol = " " +style = "bg:#86BBD8" +format = '[ $symbol ($version) ]($style)' + +[haskell] +symbol = " " +style = "bg:#86BBD8" +format = '[ $symbol ($version) ]($style)' + +[java] +symbol = " " +style = "bg:#86BBD8" +format = '[ $symbol ($version) ]($style)' + +[julia] +symbol = " " +style = "bg:#86BBD8" +format = '[ $symbol ($version) ]($style)' + +[nodejs] +symbol = "" +style = "bg:#86BBD8" +format = '[ $symbol ($version) ]($style)' + +[nim] +symbol = " " +style = "bg:#86BBD8" +format = '[ $symbol ($version) ]($style)' + +[python] +style = "bg:#3B4252" +format = '[(\($virtualenv\) )]($style)' + +[rust] +symbol = "" +style = "bg:#86BBD8" +format = '[ $symbol ($version) ]($style)' + +[time] +disabled = false +time_format = "%R" # Hour:Minute Format +style = "bg:#33658A" +format = '[ $time ]($style)' diff --git a/config/starship/classic.toml b/config/starship/classic.toml new file mode 100644 index 00000000..8dd1645f --- /dev/null +++ b/config/starship/classic.toml @@ -0,0 +1,250 @@ +palette = "catppuccin_mocha" + +[palettes.catppuccin_mocha] +rosewater = "#f5e0dc" +flamingo = "#f2cdcd" +pink = "#f5c2e7" +mauve = "#cba6f7" +red = "#f38ba8" +maroon = "#eba0ac" +peach = "#fab387" +yellow = "#f9e2af" +green = "#a6e3a1" +teal = "#94e2d5" +sky = "#89dceb" +sapphire = "#74c7ec" +blue = "#89b4fa" +lavender = "#b4befe" +text = "#cdd6f4" +subtext1 = "#bac2de" +subtext0 = "#a6adc8" +overlay2 = "#9399b2" +overlay1 = "#7f849c" +overlay0 = "#6c7086" +surface2 = "#585b70" +surface1 = "#45475a" +surface0 = "#313244" +base = "#1e1e2e" +mantle = "#181825" +crust = "#11111b" + +## FIRST LINE/ROW: Info & Status +[username] +format = "[$user]($style)@" +show_always = true +style_root = "bold red" +style_user = "bold mauve" + +[hostname] +disabled = false +format = "[$hostname]($style) in " +ssh_only = false +style = "bold maroon" +ssh_symbol = " " + +[directory] +style = "bold peach" +truncate_to_repo = true +truncation_length = 0 +truncation_symbol = "repo: " +read_only = "" + +[git_metrics] +disabled = false +added_style = 'bold green' +format = '[+$added]($added_style)/[-$deleted]($deleted_style) ' + +[sudo] +disabled = false + +[git_status] +ahead = "${count}" +behind = "${count}" +deleted = "x" +diverged = "${ahead_count}${behind_count}" +style = "text" + +[git_branch] +symbol = " " +style = "bold green" + +[nix_shell] +format = 'via [$symbol(($name))]($style) ' +symbol = " " + +[cmd_duration] +disabled = false +style="bold flamingo" +format = "took [$duration]($style)" +show_milliseconds = true +show_notifications = false +min_time_to_notify = 30_000 + +## SECOND LINE/ROW: Prompt +[battery] +charging_symbol = "" +disabled = true +discharging_symbol = "" +full_symbol = "" + +[[battery.display]] # "bold red" style when capacity is between 0% and 15% +disabled = false +style = "bold red" +threshold = 15 + +[[battery.display]] # "bold peach" style when capacity is between 15% and 50% +disabled = true +style = "bold peach" +threshold = 50 + +[[battery.display]] # "bold green" style when capacity is between 50% and 90% +disabled = true +style = "bold green" +threshold = 90 + +[status] +disabled = false +format = '[\[$symbol$status_common_meaning$status_signal_name$status_maybe_int\]]($style)' +map_symbol = true +pipestatus = true +symbol = "✖" +not_executable_symbol = "" +not_found_symbol = "" +sigint_symbol = "" +signal_symbol = "" + +[os] +disabled = true +format = ' [$symbol]($style)' +style = "bold mauve" + +[character] +error_symbol = "" +success_symbol = "❯(bold green)" + +# SYMBOLS +[git_commit] +tag_symbol = ' ' + +[golang] +symbol = " " + +[guix_shell] +symbol = " " + +[haskell] +symbol = " " + +[haxe] +symbol = " " + +[hg_branch] +symbol = " " + +[java] +symbol = " " + +[julia] +symbol = " " + +[kotlin] +symbol = " " + +[lua] +symbol = " " + +[memory_usage] +symbol = " " + +[meson] +symbol = " " + +[nim] +symbol = " " + +[nodejs] +symbol = " " + +[ocaml] +symbol = " " + +[os.symbols] +Alpaquita = " " +Alpine = " " +AlmaLinux = " " +Amazon = " " +Android = " " +Arch = " " +Artix = " " +CentOS = " " +Debian = " " +DragonFly = " " +Emscripten = " " +EndeavourOS = " " +Fedora = " " +FreeBSD = " " +Garuda = " " +Gentoo = " " +HardenedBSD = " " +Illumos = " " +Kali = " " +Linux = " " +Mabox = " " +Macos = " " +Manjaro = " " +Mariner = " " +MidnightBSD = " " +Mint = " " +NetBSD = " " +NixOS = " " +OpenBSD = " " +openSUSE = " " +OracleLinux = " " +Pop = " " +Raspbian = " " +Redhat = " " +RedHatEnterprise = " " +RockyLinux = " " +Redox = " " +Solus = " " +SUSE = " " +Ubuntu = " " +Unknown = " " +Void = " " +Windows = " " + +[package] +symbol = " " + +[perl] +symbol = " " + +[php] +symbol = " " + +[pijul_channel] +symbol = " " + +[python] +symbol = " " + +[rlang] +symbol = " " + +[ruby] +symbol = " " + +[rust] +symbol = " " + +[scala] +symbol = " " + +[swift] +symbol = " " + +[zig] +symbol = " " + +[gradle] +symbol = " " diff --git a/config/starship/eric-dubois.toml b/config/starship/eric-dubois.toml new file mode 100644 index 00000000..4c3a8c42 --- /dev/null +++ b/config/starship/eric-dubois.toml @@ -0,0 +1,191 @@ +"$schema" = 'https://starship.rs/config-schema.json' + +format = """ +[](surface0)\ +$os\ +$username\ +[](bg:peach fg:surface0)\ +$directory\ +[](fg:peach bg:green)\ +$git_branch\ +$git_status\ +[](fg:green bg:teal)\ +$c\ +$rust\ +$golang\ +$nodejs\ +$php\ +$java\ +$kotlin\ +$haskell\ +$python\ +[](fg:teal bg:blue)\ +$docker_context\ +[](fg:blue bg:pink)\ +$time\ +[ ](fg:pink)\ +$line_break$character""" + +palette = 'catppuccin_mocha' + +[palettes.gruvbox_dark] +color_fg0 = '#fbf1c7' +color_bg1 = '#3c3836' +color_bg3 = '#665c54' +color_blue = '#458588' +color_aqua = '#689d6a' +color_green = '#98971a' +color_orange = '#d65d0e' +color_purple = '#b16286' +color_red = '#cc241d' +color_yellow = '#d79921' + +[palettes.catppuccin_mocha] +rosewater = "#f5e0dc" +flamingo = "#f2cdcd" +pink = "#f5c2e7" +orange = "#cba6f7" +red = "#f38ba8" +maroon = "#eba0ac" +peach = "#fab387" +yellow = "#f9e2af" +green = "#a6e3a1" +teal = "#94e2d5" +sky = "#89dceb" +sapphire = "#74c7ec" +blue = "#89b4fa" +lavender = "#b4befe" +text = "#cdd6f4" +subtext1 = "#bac2de" +subtext0 = "#a6adc8" +overlay2 = "#9399b2" +overlay1 = "#7f849c" +overlay0 = "#6c7086" +surface2 = "#585b70" +surface1 = "#45475a" +surface0 = "#313244" +base = "#1e1e2e" +mantle = "#181825" +crust = "#11111b" + +[os] +disabled = false +style = "bg:surface0 fg:text" + +[os.symbols] +Windows = "" +Ubuntu = "" +SUSE = "" +Raspbian = "" +Mint = "" +Macos = "" +Manjaro = "" +Linux = "" +Gentoo = "" +Fedora = "" +Alpine = "" +Amazon = "" +Android = "" +Arch = "" +Artix = "" +CentOS = "" +Debian = "" +Redhat = "" +RedHatEnterprise = "" + +[username] +show_always = true +style_user = "bg:surface0 fg:text" +style_root = "bg:surface0 fg:text" +format = '[ $user ]($style)' + +[directory] +style = "fg:mantle bg:peach" +format = "[ $path ]($style)" +truncation_length = 3 +truncation_symbol = "…/" + +[directory.substitutions] +"Documents" = " " +"Downloads" = " " +"Music" = " " +"Pictures" = " " +"Developer" = " " + +[git_branch] +symbol = "" +style = "bg:teal" +format = '[[ $symbol $branch ](fg:base bg:green)]($style)' + +[git_status] +style = "bg:teal" +format = '[[($all_status$ahead_behind )](fg:base bg:green)]($style)' + +[nodejs] +symbol = "" +style = "bg:teal" +format = '[[ $symbol( $version) ](fg:base bg:teal)]($style)' + +[c] +symbol = " " +style = "bg:teal" +format = '[[ $symbol( $version) ](fg:base bg:teal)]($style)' + +[rust] +symbol = "" +style = "bg:teal" +format = '[[ $symbol( $version) ](fg:base bg:teal)]($style)' + +[golang] +symbol = "" +style = "bg:teal" +format = '[[ $symbol( $version) ](fg:base bg:teal)]($style)' + +[php] +symbol = "" +style = "bg:teal" +format = '[[ $symbol( $version) ](fg:base bg:teal)]($style)' + +[java] +symbol = " " +style = "bg:teal" +format = '[[ $symbol( $version) ](fg:base bg:teal)]($style)' + +[kotlin] +symbol = "" +style = "bg:teal" +format = '[[ $symbol( $version) ](fg:base bg:teal)]($style)' + +[haskell] +symbol = "" +style = "bg:teal" +format = '[[ $symbol( $version) ](fg:base bg:teal)]($style)' + +[python] +symbol = "" +style = "bg:teal" +format = '[[ $symbol( $version) ](fg:base bg:teal)]($style)' + +[docker_context] +symbol = "" +style = "bg:mantle" +format = '[[ $symbol( $context) ](fg:#83a598 bg:color_bg3)]($style)' + +[time] +disabled = false +# time_format = "%R" +time_format = "%I:%M %p" +style = "pink" +format = '[[ $time ](fg:mantle bg:pink)]($style)' + +[line_break] +disabled = false + +[character] +disabled = false +success_symbol = '[>](bold fg:green)' +error_symbol = '[>](bold fg:red)' +vimcmd_symbol = '[<](bold fg:creen)' +vimcmd_replace_one_symbol = '[<](bold fg:purple)' +vimcmd_replace_symbol = '[<](bold fg:purple)' +vimcmd_visual_symbol = '[<](bold fg:lavender)' diff --git a/config/starship/nobara.toml b/config/starship/nobara.toml new file mode 100644 index 00000000..8e189039 --- /dev/null +++ b/config/starship/nobara.toml @@ -0,0 +1,248 @@ +palette = "catppuccin_macchiato" +format = """ +[░▒▓](crust)\ +$os\ +[](bg:lavender fg:crust)\ +$directory\ +[ ](fg:lavender bg:surface0)\ +$git_branch\ +$git_status\ +$hg_branch\ +[ ](fg:surface0 bg:crust)\ +[▓▒░](crust)\ +[ ◦•](surface2)\ +$fill\ +[•◦ ](surface2)\ +[░▒▓](crust)\ +[ ](fg:surface0 bg:crust)\ +$status\ +$cmd_duration\ +[ ](fg:crust bg:surface0)\ +$battery\ +[▓▒░](crust) +[·](surface0)\ +[·](surface2)\ +[•](overlay1)\ +[ ](teal)\ +""" + +[fill] +symbol = "·" +style = "surface2" + +[directory] +style = "fg:surface0 bg:lavender" +format = "[ $path ]($style)" +truncation_length = 3 +truncation_symbol = "…/" + +[directory.substitutions] +"~" = " " +"Applications" = " " +"Desktop" = " " +"Developer" = " " +"Documents" = " " +"Downloads" = " " +"Games" = " " +"GitHub" = " " +"Library" = " " +"Movies" = " " +"Music" = " " +"Pictures" = " " +"Projects" = " " +"Public" = " " +"Screenshots" = " " +"Videos" = " " +"Thunderbird" = " " +"source" = " " +"comm" = " " + + +[git_branch] +symbol = "" +style = "bg:surface0" +format = '[[ $symbol $branch ](fg:lavender bg:surface0)]($style)' + +[git_status] +style = "bg:surface0" +format = '[[($all_status$ahead_behind )](fg:lavender bg:surface0)]($style)' + +[hg_branch] +disabled = false +symbol = "" +style = "bg:surface0" +format = '[[ $symbol $branch ](fg:lavender bg:surface0)]($style)' + +[cmd_duration] +disabled = false +min_time = 0 +show_milliseconds = true +style = "fg:text bg:surface0" +format = '[$duration]($style)' + +[status] +symbol = ' ' +success_symbol = ' ' +not_executable_symbol = ' ' +not_found_symbol = ' ' +map_symbol = true +disabled = false +style = 'fg:text bg:surface0' +format = '[$symbol]($style)' + + +[battery] +disabled = false +full_symbol = '' +charging_symbol = '⚡️' +discharging_symbol = '' +unknown_symbol = '' +empty_symbol = '' +format = '[[ $symbol $percentage ](fg:text bg:crust)]($style)' + +[[battery.display]] +threshold = 25 +discharging_symbol = '' +style = 'fg:yellow bg:crust' + +[[battery.display]] +threshold = 10 +discharging_symbol = '' +style = 'fg:peach bg:crust' + +[[battery.display]] +threshold = 5 +discharging_symbol = '' +style = 'bold fg:red bg:crust' + +[os] +format = '[ $symbol]($style)' +style = 'fg:lavender bg:crust' +disabled = false + +[os.symbols] +Arch = " " +Debian = " " +Fedora = " " +FreeBSD = " " +Linux = " " +Macos = " " +NixOS = " " +Nobara = " " +Pop = " " +Raspbian = " " +Ubuntu = " " +Unknown = " " + +# palette tables should be last in the config ⚓️ +[palettes.catppuccin_macchiato] +rosewater = "#f4dbd6" +flamingo = "#f0c6c6" +pink = "#f5bde6" +mauve = "#c6a0f6" +red = "#ed8796" +maroon = "#ee99a0" +peach = "#f5a97f" +yellow = "#eed49f" +green = "#a6da95" +teal = "#8bd5ca" +sky = "#91d7e3" +sapphire = "#7dc4e4" +blue = "#8aadf4" +lavender = "#b7bdf8" +text = "#cad3f5" +subtext1 = "#b8c0e0" +subtext0 = "#a5adcb" +overlay2 = "#939ab7" +overlay1 = "#8087a2" +overlay0 = "#6e738d" +surface2 = "#5b6078" +surface1 = "#494d64" +surface0 = "#363a4f" +base = "#24273a" +mantle = "#1e2030" +crust = "#181926" + +[palettes.catppuccin_frappe] +rosewater = "#f2d5cf" +flamingo = "#eebebe" +pink = "#f4b8e4" +mauve = "#ca9ee6" +red = "#e78284" +maroon = "#ea999c" +peach = "#ef9f76" +yellow = "#e5c890" +green = "#a6d189" +teal = "#81c8be" +sky = "#99d1db" +sapphire = "#85c1dc" +blue = "#8caaee" +lavender = "#babbf1" +text = "#c6d0f5" +subtext1 = "#b5bfe2" +subtext0 = "#a5adce" +overlay2 = "#949cbb" +overlay1 = "#838ba7" +overlay0 = "#737994" +surface2 = "#626880" +surface1 = "#51576d" +surface0 = "#414559" +base = "#303446" +mantle = "#292c3c" +crust = "#232634" + +[palettes.catppuccin_latte] +rosewater = "#dc8a78" +flamingo = "#dd7878" +pink = "#ea76cb" +mauve = "#8839ef" +red = "#d20f39" +maroon = "#e64553" +peach = "#fe640b" +yellow = "#df8e1d" +green = "#40a02b" +teal = "#179299" +sky = "#04a5e5" +sapphire = "#209fb5" +blue = "#1e66f5" +lavender = "#7287fd" +text = "#4c4f69" +subtext1 = "#5c5f77" +subtext0 = "#6c6f85" +overlay2 = "#7c7f93" +overlay1 = "#8c8fa1" +overlay0 = "#9ca0b0" +surface2 = "#acb0be" +surface1 = "#bcc0cc" +surface0 = "#ccd0da" +base = "#eff1f5" +mantle = "#e6e9ef" +crust = "#dce0e8" + +[palettes.catppuccin_mocha] +rosewater = "#f5e0dc" +flamingo = "#f2cdcd" +pink = "#f5c2e7" +mauve = "#cba6f7" +red = "#f38ba8" +maroon = "#eba0ac" +peach = "#fab387" +yellow = "#f9e2af" +green = "#a6e3a1" +teal = "#94e2d5" +sky = "#89dceb" +sapphire = "#74c7ec" +blue = "#89b4fa" +lavender = "#b4befe" +text = "#cdd6f4" +subtext1 = "#bac2de" +subtext0 = "#a6adc8" +overlay2 = "#9399b2" +overlay1 = "#7f849c" +overlay0 = "#6c7086" +surface2 = "#585b70" +surface1 = "#45475a" +surface0 = "#313244" +base = "#1e1e2e" +mantle = "#181825" +crust = "#11111b" diff --git a/config/starship/purple-1line.toml b/config/starship/purple-1line.toml new file mode 100644 index 00000000..878a0c54 --- /dev/null +++ b/config/starship/purple-1line.toml @@ -0,0 +1,79 @@ +add_newline = true +format = "$nix_shell$hostname$directory$git_branch$git_state$git_status\n$character" +palette = "base16" + +[character] +error_symbol = "[❯](red)" +success_symbol = "[❯](#c76aeb)" +vimcmd_symbol = "[❮](cyan)" + +[directory] +style = "#c76aeb" + +[git_branch] +format = "on [$symbol$branch]($style)[](#4e3593) " +style = "fg:#c76aeb bg:#4e3593" +symbol = "[](#4e3593) " + +[git_state] +format = "([$state( $progress_current/$progress_total)]($style)) " +style = "bright-black" + +[git_status] +conflicted = "" +deleted = "" +format = "[[(*$conflicted$untracked$modified$staged$renamed$deleted)](218)($ahead_behind$stashed)]($style)" +renamed = "" +stashed = "≡" +style = "cyan" + +[nix_shell] +format = "[$symbol]($style) " +style = "" +symbol = "🐚" + +[palettes.base16] +base00 = "#191837" +base01 = "#4e3593" +base02 = "#7d4fcd" +base03 = "#da72f3" +base04 = "#ef99ff" +base05 = "#f1dafd" +base06 = "#fcecf6" +base07 = "#fbeeff" +base08 = "#ba6eeb" +base09 = "#c668f1" +base0A = "#c86ae2" +base0B = "#f243e6" +base0C = "#c36ced" +base0D = "#c76aeb" +base0E = "#b274ea" +base0F = "#ec43e7" +base10 = "#191837" +base11 = "#191837" +base12 = "#ba6eeb" +base13 = "#c86ae2" +base14 = "#f243e6" +base15 = "#c36ced" +base16 = "#c76aeb" +base17 = "#b274ea" +black = "#191837" +blue = "#c76aeb" +bright-black = "#da72f3" +bright-blue = "#c76aeb" +bright-cyan = "#c36ced" +bright-green = "#f243e6" +bright-magenta = "#b274ea" +bright-purple = "#b274ea" +bright-red = "#ba6eeb" +bright-white = "#fbeeff" +bright-yellow = "#c86ae2" +brown = "#ec43e7" +cyan = "#c36ced" +green = "#f243e6" +magenta = "#b274ea" +orange = "#c668f1" +purple = "#b274ea" +red = "#ba6eeb" +white = "#f1dafd" +yellow = "#c86ae2" diff --git a/config/starship/ranbow.toml b/config/starship/ranbow.toml new file mode 100644 index 00000000..7cca5ee9 --- /dev/null +++ b/config/starship/ranbow.toml @@ -0,0 +1,181 @@ +"$schema" = 'https://starship.rs/config-schema.json' + +format = """ +[](color_orange)\ +$os\ +$username\ +[](bg:color_yellow fg:color_orange)\ +$directory\ +[](fg:color_yellow bg:color_aqua)\ +$git_branch\ +$git_status\ +[](fg:color_aqua bg:color_blue)\ +$c\ +$cpp\ +$rust\ +$golang\ +$nodejs\ +$php\ +$java\ +$kotlin\ +$haskell\ +$python\ +[](fg:color_blue bg:color_bg3)\ +$docker_context\ +$conda\ +$pixi\ +[](fg:color_bg3 bg:color_bg1)\ +$time\ +[ ](fg:color_bg1)\ +$line_break$character""" + +palette = 'gruvbox_dark' + +[palettes.gruvbox_dark] +color_fg0 = '#fbf1c7' +color_bg1 = '#3c3836' +color_bg3 = '#665c54' +color_blue = '#458588' +color_aqua = '#689d6a' +color_green = '#98971a' +color_orange = '#d65d0e' +color_purple = '#b16286' +color_red = '#cc241d' +color_yellow = '#d79921' + +[os] +disabled = false +style = "bg:color_orange fg:color_fg0" + +[os.symbols] +Windows = "" +Ubuntu = "" +SUSE = "" +Raspbian = "" +Mint = "" +Macos = "" +Manjaro = "" +Linux = "" +Gentoo = "" +Fedora = "" +Alpine = "" +Amazon = "" +Android = "" +AOSC = "" +Arch = "" +Artix = "" +EndeavourOS = "" +CentOS = "" +Debian = "" +Redhat = "" +RedHatEnterprise = "" +Pop = "" + +[username] +show_always = true +style_user = "bg:color_orange fg:color_fg0" +style_root = "bg:color_orange fg:color_fg0" +format = '[ $user ]($style)' + +[directory] +style = "fg:color_fg0 bg:color_yellow" +format = "[ $path ]($style)" +truncation_length = 3 +truncation_symbol = "…/" + +[directory.substitutions] +"Documents" = " " +"Downloads" = " " +"Music" = " " +"Pictures" = " " +"Developer" = " " + +[git_branch] +symbol = "" +style = "bg:color_aqua" +format = '[[ $symbol $branch ](fg:color_fg0 bg:color_aqua)]($style)' + +[git_status] +style = "bg:color_aqua" +format = '[[($all_status$ahead_behind )](fg:color_fg0 bg:color_aqua)]($style)' + +[nodejs] +symbol = "" +style = "bg:color_blue" +format = '[[ $symbol( $version) ](fg:color_fg0 bg:color_blue)]($style)' + +[c] +symbol = " " +style = "bg:color_blue" +format = '[[ $symbol( $version) ](fg:color_fg0 bg:color_blue)]($style)' + +[cpp] +symbol = " " +style = "bg:color_blue" +format = '[[ $symbol( $version) ](fg:color_fg0 bg:color_blue)]($style)' + +[rust] +symbol = "" +style = "bg:color_blue" +format = '[[ $symbol( $version) ](fg:color_fg0 bg:color_blue)]($style)' + +[golang] +symbol = "" +style = "bg:color_blue" +format = '[[ $symbol( $version) ](fg:color_fg0 bg:color_blue)]($style)' + +[php] +symbol = "" +style = "bg:color_blue" +format = '[[ $symbol( $version) ](fg:color_fg0 bg:color_blue)]($style)' + +[java] +symbol = "" +style = "bg:color_blue" +format = '[[ $symbol( $version) ](fg:color_fg0 bg:color_blue)]($style)' + +[kotlin] +symbol = "" +style = "bg:color_blue" +format = '[[ $symbol( $version) ](fg:color_fg0 bg:color_blue)]($style)' + +[haskell] +symbol = "" +style = "bg:color_blue" +format = '[[ $symbol( $version) ](fg:color_fg0 bg:color_blue)]($style)' + +[python] +symbol = "" +style = "bg:color_blue" +format = '[[ $symbol( $version) ](fg:color_fg0 bg:color_blue)]($style)' + +[docker_context] +symbol = "" +style = "bg:color_bg3" +format = '[[ $symbol( $context) ](fg:#83a598 bg:color_bg3)]($style)' + +[conda] +style = "bg:color_bg3" +format = '[[ $symbol( $environment) ](fg:#83a598 bg:color_bg3)]($style)' + +[pixi] +style = "bg:color_bg3" +format = '[[ $symbol( $version)( $environment) ](fg:color_fg0 bg:color_bg3)]($style)' + +[time] +disabled = false +time_format = "%R" +style = "bg:color_bg1" +format = '[[ $time ](fg:color_fg0 bg:color_bg1)]($style)' + +[line_break] +disabled = false + +[character] +disabled = false +success_symbol = '[](bold fg:color_green)' +error_symbol = '[](bold fg:color_red)' +vimcmd_symbol = '[](bold fg:color_green)' +vimcmd_replace_one_symbol = '[](bold fg:color_purple)' +vimcmd_replace_symbol = '[](bold fg:color_purple)' +vimcmd_visual_symbol = '[](bold fg:color_yellow)' diff --git a/config/starship/simple-prompt.toml b/config/starship/simple-prompt.toml new file mode 100644 index 00000000..bf659198 --- /dev/null +++ b/config/starship/simple-prompt.toml @@ -0,0 +1,187 @@ +[character] +success_symbol = "[>](bold green)" +error_symbol = "[x](bold red)" +vimcmd_symbol = "[<](bold green)" + +[git_commit] +tag_symbol = " tag " + +[git_status] +ahead = ">" +behind = "<" +diverged = "<>" +renamed = "r" +deleted = "x" + +[aws] +symbol = "aws " + +[bun] +symbol = "bun " + +[c] +symbol = "C " + +[cobol] +symbol = "cobol " + +[conda] +symbol = "conda " + +[crystal] +symbol = "cr " + +[cmake] +symbol = "cmake " + +[daml] +symbol = "daml " + +[dart] +symbol = "dart " + +[deno] +symbol = "deno " + +[dotnet] +symbol = ".NET " + +[directory] +read_only = " ro" + +[docker_context] +symbol = "docker " + +[elixir] +symbol = "exs " + +[elm] +symbol = "elm " + +[git_branch] +symbol = "git " + +[golang] +symbol = "go " + +[guix_shell] +symbol = "guix " + +[hg_branch] +symbol = "hg " + +[java] +symbol = "java " + +[julia] +symbol = "jl " + +[kotlin] +symbol = "kt " + +[lua] +symbol = "lua " + +[nodejs] +symbol = "nodejs " + +[memory_usage] +symbol = "memory " + +[meson] +symbol = "meson " + +[nim] +symbol = "nim " + +[nix_shell] +symbol = "nix " + +[ocaml] +symbol = "ml " + +[opa] +symbol = "opa " + +[os.symbols] +Alpine = "alp " +Amazon = "amz " +Android = "andr " +Arch = "rch " +CentOS = "cent " +Debian = "deb " +DragonFly = "dfbsd " +Emscripten = "emsc " +EndeavourOS = "ndev " +Fedora = "fed " +FreeBSD = "fbsd " +Garuda = "garu " +Gentoo = "gent " +HardenedBSD = "hbsd " +Illumos = "lum " +Linux = "lnx " +Macos = "mac " +Manjaro = "mjo " +Mariner = "mrn " +MidnightBSD = "mid " +Mint = "mint " +NetBSD = "nbsd " +NixOS = "nix " +OpenBSD = "obsd " +openSUSE = "osuse " +OracleLinux = "orac " +Pop = "pop " +Raspbian = "rasp " +Redhat = "rhl " +RedHatEnterprise = "rhel " +Redox = "redox " +Solus = "sol " +SUSE = "suse " +Ubuntu = "ubnt " +Unknown = "unk " +Windows = "win " + +[package] +symbol = "pkg " + +[perl] +symbol = "pl " + +[php] +symbol = "php " + +[pulumi] +symbol = "pulumi " + +[purescript] +symbol = "purs " + +[python] +symbol = "py " + +[raku] +symbol = "raku " + +[ruby] +symbol = "rb " + +[rust] +symbol = "rs " + +[scala] +symbol = "scala " + +[spack] +symbol = "spack " + +[sudo] +symbol = "sudo " + +[swift] +symbol = "swift " + +[terraform] +symbol = "terraform " + +[zig] +symbol = "zig " diff --git a/config/starship/vill-minimalist.toml b/config/starship/vill-minimalist.toml new file mode 100644 index 00000000..509b861b --- /dev/null +++ b/config/starship/vill-minimalist.toml @@ -0,0 +1,405 @@ +# "$schema" = 'https://starship.rs/config-schema.json' +add_newline = false +format = """\ + \ + $directory\ + $git_branch$git_commit$git_state $git_status\ + $character\n +""" +right_format = """ +$singularity\ +$kubernetes\ +$vcsh\ +$hg_branch\ +$pijul_channel\ +$c\ +$cmake\ +$cobol\ +$daml\ +$dart\ +$deno\ +$dotnet\ +$elixir\ +$elm\ +$erlang\ +$fennel\ +$golang\ +$guix_shell\ +$haskell\ +$haxe\ +$helm\ +$java\ +$julia\ +$kotlin\ +$gradle\ +$lua\ +$nim\ +$nodejs\ +$ocaml\ +$opa\ +$perl\ +$pulumi\ +$purescript\ +$python\ +$raku\ +$rlang\ +$red\ +$ruby\ +$rust\ +$scala\ +$solidity\ +$swift\ +$terraform\ +$vlang\ +$vagrant\ +$zig\ +$buf\ +$conda\ +$meson\ +$spack\ +$memory_usage\ +$aws\ +$gcloud\ +$openstack\ +$azure\ +$cpp\ +$kotlin\ +$ocaml\ +$pixi\ +$rlang\ +$php\ +$crystal\ +$custom\ +$status\ +$os\ +$time""" + +continuation_prompt = '▶▶ ' + + +# style_choices: +# bold +# italic +# underline +# dimmed +# inverted +# blink +# hidden +# strikethrough +# bg:<color> +# fg:<color> +# <color> +# none + +#NOTE: you can customize the symbols, e.g: +# [character] +# success_symbol = "[ ]($bold fg:#f8f8f2)" +# error_symbol = "[ ➤ ]($bold fg:#fb4934)" + +[directory] +disabled = false +format = "[$path](bold fg:#8be9fd)" +truncate_to_repo = false +# home_symbol = "" + +[git_branch] +format = " [ $branch](fg:#9198a1)" + +[git_status] +ahead = '⇡${count}' +behind = '⇣${count}' +diverged = '⇕⇡${ahead_count}⇣${behind_count}' +format = '[[( $all_status$ahead_behind )](fg:#769ff0)]($style)' +style = "bg:#394260" + + +[time] +disabled = false +format = '[[ $time ](fg:#a0a9cb )]($style)' +time_format = "%R" # Hour:Minute Format + +[deno] +format = " [deno](italic) [ ](green bold)" +version_format = "${raw}" + +[lua] +format = " [lua](italic) [${symbol}]($style)" +style = "bold bright-yellow" +symbol = "⨀ " +version_format = "${raw}" + +[nodejs] +detect_extensions = [] +detect_files = ["package-lock.json", "yarn.lock"] +detect_folders = ["node_modules"] +format = "[ ](bold bright-green)" +version_format = "${raw}" + +[python] +format = "[${symbol}(${virtualenv}) ${version}]($style)" +style = "bold bright-yellow" +symbol = "[ ](bold bright-blue)" +version_format = "${raw}" + +[ruby] +format = " [rb](italic) [${symbol}]($style)" +style = "bold red" +symbol = " " +version_format = "${raw}" + +[rust] +style = "bold bright-red" +format = " rs(italic) $symbol($style)" +symbol = " " + +[swift] +format = " [sw](italic) [${symbol}]($style)" +style = "bold bright-red" +symbol = " " +version_format = "${raw}" + +[aws] +disabled = true +format = " [aws](italic) [$symbol $profile $region]($style)" +style = "bold blue" +symbol = " " + +[buf] +style = "bold bright-red" +format = " [buf](italic) [$symbol $buf_version]($style)" +symbol = "■ " + +[c] +style = "bold bright-cyan" +format = " [$symbol(-$name)]($style)" +symbol = "ℂ " + +[cpp] +style = "bold bright-cyan" +format = " [cpp](italic) [$symbol]($style)" +symbol = " " + +[kotlin] +format = " [kotlin](italic) [$symbol]($style)" +style = "bold bright-red" +symbol = " " + +[ocaml] +format = " [ocaml](italic) [$symbol]($style)" +style = "bold bright-yellow" +symbol = " " + +[perl] +format = " [perl](italic) [$symbol]($style)" +style = "bold bright-cyan" +symbol = " " + +[php] +format = " [php](italic) [$symbol]($style)" +style = "bold bright-red" +symbol = " " + +[pixi] +format = " [pixi](italic) [$symbol]($style)" +style = "bold bright-yellow" +symbol = "pixi " + +[rlang] +format = " [rlang](italic) [$symbol]($style)" +style = "bold bright-cyan" +symbol = " " + +[meson] +format = " [meson](italic) [$symbol]($style)" +style = "bold bright-red" +symbol = "meson " + +[conda] +style = "bold bright-red" +format = " conda [$symbol$environment]($style)" +symbol = "◯ " + +[dart] +style = "bold bright-cyan" +format = " dart [$symbol]($style)" +symbol = " " + + +[elixir] +style = "bold bright-yellow" +format = " exs [$symbol OTP $otp_version ]($style)" +symbol = " " + +[elm] +style = "bold bright-red" +format = " elm [$symbol]($style)" +symbol = "◩ " + +[golang] +style = "bold bright-blue" +format = " go [$symbol]($style)" +symbol = "∩ " + +[haskell] +style = "bold bright-yellow" +format = " hs [$symbol]($style)" +symbol = "❯λ " + +[java] +style = "bold bright-red" +format = " java [${symbol}]($style)" +symbol = " " + +[julia] +style = "bold bright-cyan" +format = " jl [$symbol]($style)" +symbol = "◎ " + +[memory_usage] +style = "bold bright-cyan" +format = " mem [${ram}( ${swap})]($style)" +symbol = "▪▫▪ " + +[nim] +style = "bold bright-yellow" +format = " nim [$symbol]($style)" +symbol = "▴▲▴ " + +[nix_shell] +format = '[$symbol nix⎪$state⎪]($style) [$name](italic dimmed white)' +impure_msg = '[⌽](bold dimmed red)' +pure_msg = '[⌾](bold dimmed green)' +style = 'bold italic dimmed blue' +symbol = ' ' +unknown_msg = '[◌](bold dimmed ellow)' + +[spack] +style = "bold bright-yellow" +format = " spack [$symbol$environment]($style)" +symbol = "◇ " + + +[zig] +style = "bold bright-yellow" +format = " zig [$symbol]($style)" +symbol = " " + + +[scala] +format = " scala [$symbol]($style)" +symbol = " " + +[singularity] +style = "bold bright-yellow" +format = " [singularity](italic) [$symbol]($style)" +symbol = "singularity " + +[kubernetes] +style = "bold bright-cyan" +format = " [kubernetes](italic) [$symbol]($style)" +symbol = " " + +[vcsh] +style = "bold bright-red" +format = " [vcsh](italic) [$symbol]($style)" +symbol = "vcsh " + +[cobol] +style = "bold bright-yellow" +format = " [cobol](italic) [$symbol]($style)" +symbol = "cobol " + +[daml] +style = "bold bright-cyan" +format = " [daml](italic) [$symbol]($style)" +symbol = "daml " + +[dotnet] +style = "bold bright-red" +format = " [dotnet](italic) [$symbol]($style)" +symbol = ".NET " + +[erlang] +style = "bold bright-yellow" +format = " [erlang](italic) [$symbol]($style)" +symbol = " " + +[fennel] +style = "bold bright-cyan" +format = " [fennel](italic) [$symbol]($style)" +symbol = " " + +[haxe] +style = "bold bright-red" +format = " [haxe](italic) [$symbol]($style)" +symbol = " " + +[helm] +style = "bold bright-yellow" +format = " [helm](italic) [$symbol]($style)" +symbol = "helm " + +[opa] +style = "bold bright-cyan" +format = " [opa](italic) [$symbol]($style)" +symbol = "opa " + +[pulumi] +format = " [pulumi](italic) [$symbol]($style)" +style = "bold bright-red" +symbol = "pulumi " + +[purescript] +style = "bold bright-yellow" +format = " [purescript](italic) [$symbol]($style)" +symbol = " " + +[raku] +style = "bold bright-cyan" +format = " [raku](italic) [$symbol]($style)" +symbol = "raku " + +[red] +style = "bold bright-red" +format = " [red](italic) [$symbol]($style)" +symbol = "red " + +[solidity] +style = "bold bright-yellow" +format = " [solidity](italic) [$symbol]($style)" +symbol = " " + +[terraform] +style = "bold bright-cyan" +format = " [terraform](italic) [$symbol]($style)" +symbol = "terraform " + +[vlang] +format = " [vlang](italic) [$symbol]($style)" +style = "bold bright-red" +symbol = "vlang " + +[vagrant] +format = " [vagrant](italic) [$symbol]($style)" +style = "bold bright-yellow" +symbol = "vagrant " + +[gcloud] +format = " [gcloud](italic) [$symbol]($style)" +style = "bold bright-cyan" +symbol = "gcloud " + +[openstack] +format = " [openstack](italic) [$symbol]($style)" +style = "bold bright-red" +symbol = "openstack " + +[azure] +format = " [azure](italic) [$symbol]($style)" +style = "bold bright-yellow" +symbol = " " + +[crystal] +format = " [crystal](italic) [$symbol]($style)" +style = "bold bright-cyan" +symbol = " " diff --git a/config/systemd/user/xdg-desktop-portal.service.d/override.conf b/config/systemd/user/xdg-desktop-portal.service.d/override.conf new file mode 100644 index 00000000..22ce3905 --- /dev/null +++ b/config/systemd/user/xdg-desktop-portal.service.d/override.conf @@ -0,0 +1,4 @@ +[Unit] +Requisite= +Requires=graphical-session.target +After=graphical-session.target diff --git a/config/waybar/ModulesWorkspaces b/config/waybar/ModulesWorkspaces index 15f5da5b..fe75ea19 100644 --- a/config/waybar/ModulesWorkspaces +++ b/config/waybar/ModulesWorkspaces @@ -198,6 +198,7 @@ "class<kitty-dropterm>": " ", "class<com.mitchellh.ghostty>": " ", "class<org.wezfurlong.wezterm>": " ", + "class<waveterm>": " 🌊", "class<play.mii.Boxxy>": " ", "class<Warp|warp|dev.warp.Warp|warp-terminal>": " ", diff --git a/config/waybar/style/0-VERTICAL-Catpuccin-Mocha.css b/config/waybar/style/0-VERTICAL-Catpuccin-Mocha.css deleted file mode 100644 index a72b2694..00000000 --- a/config/waybar/style/0-VERTICAL-Catpuccin-Mocha.css +++ /dev/null @@ -1,267 +0,0 @@ -/* ---- 💫 https://github.com/LinuxBeginnings 💫 ---- */ -/* Vertical Catpuccin Mocha */ -/* As stated on title, best style for vertical layout waybar config */ - -* { - font-family: "JetBrainsMono Nerd Font"; - font-weight: bold; - min-height: 0; - /* set font-size to 100% if font scaling is set to 1.00 using nwg-look */ - /* NOTE: Waybar v14+ ignores % font-size values */ - font-size: 99%; - font-feature-settings: '"zero", "ss01", "ss02", "ss03", "ss04", "ss05", "cv31"'; -} - -@import "../waybar/style/catppuccin-themes/mocha.css"; - -window#waybar { - background-color: @base; - border-radius: 5px; - /* Waybar scaling: adjust font-size to scale the bar */ - font-size: 14px; -} - -tooltip { - background: @base; - opacity: 1; - border-radius: 10px; - border-width: 2px; - border-style: solid; - border-color: @sapphire; -} - -/* Waybar scaling: adjust tooltip label font-size to scale the bar */ -tooltip label { - color: @blue; - /* Waybar scaling: adjust tooltip label font-size to scale the bar */ - font-size: 14px; -} - -#taskbar button, -#workspaces button { - color: @surface2; - background-color: transparent; - padding-top: 4px; - padding-bottom: 4px; - padding-right: 6px; - padding-left: 4px; -} - -#taskbar button.active, -#workspaces button.active { - color: @maroon; -} - -#taskbar button.focused, -#workspaces button.focused { - color: @rosewater; - background: transparent; - border-radius: 15px; -} - -#workspaces button.urgent { - color: #11111b; - background: transparent; - border-radius: 15px; -} - -#taskbar button:hover, -#workspaces button:hover { - background: transparent; - color: @flamingo; - border-radius: 15px; -} - -#backlight, -#backlight-slider, -#battery, -#bluetooth, -#clock, -#cpu, -#disk, -#idle_inhibitor, -#keyboard-state, -#memory, -#mode, -#mpris, -#network, -#power-profiles-daemon, -#pulseaudio, -#pulseaudio-slider, -#taskbar button, -#taskbar, -#temperature, -#tray, -#window, -#wireplumber, -#workspaces, -#custom-backlight, -#custom-nightlight, -#custom-browser, -#custom-cava_mviz, -#custom-cycle_wall, -#custom-dot_update, -#custom-file_manager, -#custom-keybinds, -#custom-keyboard, -#custom-light_dark, -#custom-nightlight, -#custom-lock, -#custom-hint, -#custom-hypridle, -#custom-hypr_layout, -#custom-menu, -#custom-playerctl, -#custom-power_vertical, -#custom-power, -#custom-quit, -#custom-reboot, -#custom-settings, -#custom-spotify, -#custom-swaync, -#custom-tty, -#custom-updater, -#custom-hyprpicker, -#custom-weather, -#custom-weather2, -#custom-weather.clearNight, -#custom-weather.cloudyFoggyDay, -#custom-weather.cloudyFoggyNight, -#custom-weather.default, -#custom-weather.rainyDay, -#custom-weather.rainyNight, -#custom-weather.severe, -#custom-weather.showyIcyDay, -#custom-weather.snowyIcyNight, -#custom-weather.sunnyDay { - opacity: 1; - padding-top: 4px; - padding-bottom: 4px; - padding-right: 6px; - padding-left: 6px; -} - -#idle_inhibitor { - color: @pink; - border-bottom: 8px solid rgba(0, 0, 0, 0.2); -} - -#mpris { - color: @rosewater; -} - -#battery { - color: #a6e3a1; - padding-left: 15px; - border-radius: 15px 0 0 15px; -} - -@keyframes blink { - to { - background-color: #ffffff; - color: #333333; - } -} - -#battery.critical:not(.charging) { - color: #f53c3c; - animation-name: blink; - animation-duration: 0.5s; - animation-timing-function: linear; - animation-iteration-count: infinite; - animation-direction: alternate; -} - -#custom-lock, -#custom-power { - color: @red; - border-radius: 15px; - font-weight: bolder; - padding-left: 1px; -} - -#network { - background-color: transparent; - color: @mauve; -} - -#backlight { - color: @flamingo; -} - - -#custom-weather { - color: @green; - border-radius: 15px; - background-color: transparent; -} - -#custom-menu { - color: #89b4fa; -} - -#pulseaudio { - background-color: transparent; - color: @blue; -} - -#clock, -#clock-calender { - color: @sapphire; -} - -#backlight-slider slider, -#pulseaudio-slider slider { - min-height: 7px; - min-width: 15px; - opacity: 0; - background-color: @text; - border-radius: 3px; - box-shadow: 1px 5px 6px 1px #272727; -} - -#backlight-slider trough, -#pulseaudio-slider trough { - min-height: 100px; - min-width: 7px; - border-radius: 5px; - background-color: @surface0; -} - -window#waybar.bottombar #backlight-slider trough, -window#waybar.bottombar #pulseaudio-slider trough { - min-height: 7px; - /* Waybar scaling: adjust font-size to scale the bar */ - font-size: 14px; -} - -#backlight-slider highlight, -#pulseaudio-slider highlight { - min-width: 5px; - border-radius: 5px; - background-color: @blue; -} - -/* --- tray readability override (global) --- */ -#tray > *, -#tray > .passive, -#tray > .active, -#tray > .needs-attention { - background: rgba(137, 180, 250, 0.55); - border-radius: 8px; - border: 1px solid rgba(17, 17, 27, 0.35); - margin-left: 1px; - margin-right: 1px; - padding-left: 2px; - padding-right: 2px; - color: rgba(17, 17, 27, 0.98); - -gtk-icon-effect: none; -} - -#tray image { - background: transparent; - color: rgba(17, 17, 27, 0.98); - -gtk-icon-style: symbolic; - -gtk-icon-effect: none; - opacity: 1; -} diff --git a/config/waybar/style/0-VERTICAL-Golden-Noir.css b/config/waybar/style/0-VERTICAL-Golden-Noir.css deleted file mode 100644 index 45a6fe5a..00000000 --- a/config/waybar/style/0-VERTICAL-Golden-Noir.css +++ /dev/null @@ -1,251 +0,0 @@ -/* ----------- 💫 https://github.com/LinuxBeginnings 💫 -------- */ -/* ...............Golden Noir................ */ -/* --- 👍 designed by https://github.com/Krautt 👍 --- */ - -* { - font-family: "JetBrainsMono Nerd Font"; - font-weight: bold; - min-height: 0; - /* set font-size to 100% if font scaling is set to 1.00 using nwg-look */ - /* NOTE: Waybar v14+ ignores % font-size values */ - font-size: 99%; - font-feature-settings: '"zero", "ss01", "ss02", "ss03", "ss04", "ss05", "cv31"'; -} - -window#waybar { - background: #040406; - border-radius: 30px; - color: #cba6f7; - - /* Waybar scaling: adjust font-size to scale the bar */ - font-size: 14px; -} - -window#waybar.hidden { - opacity: 0.5; - /* Waybar scaling: adjust font-size to scale the bar */ - font-size: 14px; -} - -tooltip { - background: #1e1e2e; - border-radius: 10px; - border-width: 2px; - border-style: solid; - border-color: #11111b; - color: #ffd700; -} - -/*-----module groups----*/ -.modules-left, -.modules-right { - padding-top: 2px; - padding-bottom: 2px; - padding-right: 4px; - padding-left: 4px; - -} - -.modules-center { - border-top: 1px solid #ffd700; - border-bottom: 1px solid #ffd700; - border-radius: 20px; - padding-top: 2px; - padding-bottom: 2px; - padding-right: 4px; - padding-left: 4px; -} - -#taskbar button, -#workspaces button { - color: #6E6A86; - box-shadow: none; - text-shadow: none; - padding: 0px; - border-radius: 9px; - padding-left: 4px; - padding-right: 4px; - animation: gradient_f 20s ease-in infinite; - transition: all 0.5s cubic-bezier(.55,-0.68,.48,1.682); -} - -#taskbar button.active, -#workspaces button.active { - color: #ffd700; - border-radius: 50%; - background-color: black; - border-radius: 15px 15px 15px 15px; - padding-left: 5px; - padding-right: 5px; - animation: gradient_f 20s ease-in infinite; - transition: all 0.3s cubic-bezier(.55,-0.68,.48,1.682); -} - -#workspaces button.focused { - color: #d8dee9; -} - -#workspaces button.urgent { - color: #11111b; - border-radius: 10px; -} - -#taskbar button:hover, -#workspaces button:hover { - color: #ffd700; - border-radius: 15px; - padding-left: 2px; - padding-right: 2px; - animation: gradient_f 20s ease-in infinite; - transition: all 0.3s cubic-bezier(.55,-0.68,.48,1.682); -} - -#backlight, -#backlight-slider, -#battery, -#bluetooth, -#clock, -#cpu, -#disk, -#idle_inhibitor, -#keyboard-state, -#memory, -#mode, -#mpris, -#network, -#power-profiles-daemon, -#pulseaudio, -#pulseaudio-slider, -#taskbar, -#temperature, -#tray, -#window, -#wireplumber, -#workspaces, -#custom-backlight, -#custom-nightlight, -#custom-browser, -#custom-cava_mviz, -#custom-cycle_wall, -#custom-dot_update, -#custom-file_manager, -#custom-keybinds, -#custom-keyboard, -#custom-light_dark, -#custom-nightlight, -#custom-lock, -#custom-hint, -#custom-hypridle, -#custom-hypr_layout, -#custom-menu, -#custom-playerctl, -#custom-power_vertical, -#custom-power, -#custom-quit, -#custom-reboot, -#custom-settings, -#custom-spotify, -#custom-swaync, -#custom-tty, -#custom-updater, -#custom-hyprpicker, -#custom-weather, -#custom-weather2, -#custom-weather.clearNight, -#custom-weather.cloudyFoggyDay, -#custom-weather.cloudyFoggyNight, -#custom-weather.default, -#custom-weather.rainyDay, -#custom-weather.rainyNight, -#custom-weather.severe, -#custom-weather.showyIcyDay, -#custom-weather.snowyIcyNight, -#custom-weather.sunnyDay { - color: #e5d9f5; - padding-top: 5px; - padding-bottom: 5px; - padding-right: 5px; - padding-left: 5px; -} - -#temperature.critical { - background-color: #ff0000; -} - -@keyframes blink { - to { - color: #000000; - } -} - -/*-----Indicators----*/ -#custom-hypridle.notactive, -#idle_inhibitor.activated { - color: #39FF14; - border-bottom: 8px solid rgba(0, 0, 0, 0.2); -} - -#battery.critical:not(.charging) { - color: #f53c3c; - animation-name: blink; - animation-duration: 3.0s; - animation-timing-function: steps(12); - animation-iteration-count: infinite; - animation-direction: alternate; -} - -#backlight-slider slider, -#pulseaudio-slider slider { - min-height: 7px; - min-width: 15px; - opacity: 0; - background-image: none; - border: none; - box-shadow: none; -} - -#backlight-slider trough, -#pulseaudio-slider trough { - min-height: 100px; - min-width: 7px; - border-radius: 5px; - background-color: #22252a; -} - -window#waybar.bottombar #backlight-slider trough, -window#waybar.bottombar #pulseaudio-slider trough { - min-height: 7px; - /* Waybar scaling: adjust font-size to scale the bar */ - font-size: 14px; -} - -#backlight-slider highlight, -#pulseaudio-slider highlight { - min-width: 5px; - border-radius: 5px; - background-color: #ba5663; -} - -/* --- tray readability override (global) --- */ -#tray > *, -#tray > .passive, -#tray > .active, -#tray > .needs-attention { - background: rgba(137, 180, 250, 0.55); - border-radius: 8px; - border: 1px solid rgba(17, 17, 27, 0.35); - margin-left: 1px; - margin-right: 1px; - padding-left: 2px; - padding-right: 2px; - color: rgba(17, 17, 27, 0.98); - -gtk-icon-effect: none; -} - -#tray image { - background: transparent; - color: rgba(17, 17, 27, 0.98); - -gtk-icon-style: symbolic; - -gtk-icon-effect: none; - opacity: 1; -} diff --git a/config/waybar/style/0-VERTICAL-Oglo-Chicklets.css b/config/waybar/style/0-VERTICAL-Oglo-Chicklets.css deleted file mode 100644 index 90b287fd..00000000 --- a/config/waybar/style/0-VERTICAL-Oglo-Chicklets.css +++ /dev/null @@ -1,448 +0,0 @@ -/* ---- 💫 https://github.com/LinuxBeginnings 💫 ---- */ -/* Oglo Chicklets */ - -* { - font-family: "JetBrainsMono Nerd Font", FontAwesome, Roboto, Helvetica, Arial, sans-serif; - /* NOTE: Waybar v14+ ignores % font-size values */ - font-size: 99%; - font-weight: bold; -} - -window#waybar { - background-color: #232a2e; - border-bottom: 8px solid #1d2327; - color: #d3c6aa; - transition-property: background-color; - transition-duration: .5s; - /* Waybar scaling: adjust font-size to scale the bar */ - font-size: 14px; -} - -window#waybar.hidden { - opacity: 0.2; - /* Waybar scaling: adjust font-size to scale the bar */ - font-size: 14px; -} - -/* -window#waybar.empty { - background-color: transparent; - /* Waybar scaling: adjust font-size to scale the bar */ - font-size: 14px; -} -window#waybar.solo { - background-color: #FFFFFF; - /* Waybar scaling: adjust font-size to scale the bar */ - font-size: 14px; -} -*/ - -button { - all: unset; - background-color: #778f52; - color: #2d353b; - border: none; - border-bottom: 8px solid #5d743e; - border-radius: 5px; - padding-left: 5px; - padding-right: 5px; - transition: transform 0.1s ease-in-out; -} - -button:hover { - background: inherit; - background-color: #92ab6c; - border-bottom: 8px solid #788f57; -} - -button.active { - background: inherit; - background-color: #a5be7e; - border-bottom: 8px solid #8aa168; -} - -#mode { - background-color: #64727D; - border-bottom: 3px solid #ffffff; -} - -#backlight, -#backlight-slider, -#battery, -#bluetooth, -#clock, -#cpu, -#disk, -#idle_inhibitor, -#keyboard-state, -#memory, -#mode, -#mpris, -#network, -#power-profiles-daemon, -#pulseaudio, -#pulseaudio-slider, -#taskbar, -#temperature, -#tray, -#window, -#wireplumber, -#workspaces, -#custom-backlight, -#custom-nightlight, -#custom-browser, -#custom-cava_mviz, -#custom-cycle_wall, -#custom-dot_update, -#custom-file_manager, -#custom-keybinds, -#custom-keyboard, -#custom-light_dark, -#custom-nightlight, -#custom-lock, -#custom-hint, -#custom-hypridle, -#custom-hypr_layout, -#custom-menu, -#custom-playerctl, -#custom-power_vertical, -#custom-power, -#custom-quit, -#custom-reboot, -#custom-settings, -#custom-spotify, -#custom-swaync, -#custom-tty, -#custom-updater, -#custom-hyprpicker, -#custom-weather, -#custom-weather2, -#custom-weather.clearNight, -#custom-weather.cloudyFoggyDay, -#custom-weather.cloudyFoggyNight, -#custom-weather.default, -#custom-weather.rainyDay, -#custom-weather.rainyNight, -#custom-weather.severe, -#custom-weather.showyIcyDay, -#custom-weather.snowyIcyNight, -#custom-weather.sunnyDay{ - color: #ffffff; - padding-top: 2px; - padding-bottom: 2px; - border-radius: 5px; - padding-left: 5px; - padding-right: 5px; -} - -#window, -#workspaces { - margin: 5px; -} - -/* If workspaces is the leftmost module, omit left margin */ -.modules-left > widget:first-child > #workspaces { - margin-left: 0; -} - -/* If workspaces is the rightmost module, omit right margin */ -.modules-right > widget:last-child > #workspaces { - margin-right: 0; -} - -#window { - background-color: #343f44; - color: #d3c6aa; - border-bottom: 8px solid #2b3539; -} - -#custom-swaync { - background-color: #778f52; - color: #2d353b; - border-bottom: 8px solid #5d743e; -} - -#custom-menu { - background-color: #778f52; - color: #2d353b; - border-bottom: 8px solid #5d743e; -} - -#custom-power { - background-color: #ee606a; - color: #2d353b; - border-bottom: 8px solid #ca4853; - padding-left: 5px; -} - -#custom-power_vertical{ - background-color: #ee606a; - color: #2d353b; - border-bottom: 8px solid #ca4853; -} - -#clock { - background-color: #96a84c; - color: #2d353b; - border-bottom: 8px solid #7a8c37; -} - -#battery { - background-color: #3a998f; - color: #2d353b; - border-bottom: 8px solid #227d74; -} - -@keyframes blink { - to { - background-color: #ffffff; - color: #000000; - } -} - -#battery.critical:not(.charging) { - background-color: #ee606a; - color: #2d353b; - border-bottom: 8px solid #ca4853; - animation-name: blink; - animation-duration: 3.0s; - animation-timing-function: steps(12); - animation-iteration-count: infinite; - animation-direction: alternate; -} - -label:focus { - background-color: #000000; -} - -#cpu { - background-color: #778f52; - color: #2d353b; - border-bottom: 8px solid #5d743e; -} - -#memory { - background-color: #d980ad; - color: #2d353b; - border-bottom: 8px solid #b86790; -} - -#disk { - background-color: #964B00; - border-bottom: 8px solid #793300; -} - -#custom-lock, -#custom-light_dark, -#custom-nightlight, -#backlight { - background-color: #64b6ac; - color: #2d353b; - border-bottom: 8px solid #4f9990; - padding-left: 5px; -} - -#network { - background-color: #2980b9; -} - -#network.disconnected { - background-color: #f53c3c; -} - -#pulseaudio { - background-color: #d8ac47; - color: #2d353b; - border-bottom: 8px solid #b78f30; -} - -#pulseaudio.muted { - background-color: #90b1b1; - color: #2a5c45; -} - -#wireplumber { - background-color: #fff0f5; - color: #000000; -} - -#wireplumber.muted { - background-color: #f53c3c; -} - -#custom-media { - background-color: #66cc99; - color: #2a5c45; - min-width: 100px; -} - -#custom-media.custom-spotify { - background-color: #66cc99; -} - -#custom-media.custom-vlc { - background-color: #ffa000; -} - -#temperature { - background-color: #f0932b; - border-bottom: 8px solid #b78f30; -} - -#temperature.critical { - background-color: #eb4d4b; -} - -#tray { - background-color: #e67f51; - color: #2d353b;; - border-bottom: 8px solid #c3653b; -} - -#tray > .passive { - -gtk-icon-effect: dim; -} - -#tray > .needs-attention { - -gtk-icon-effect: highlight; - background-color: #eb4d4b; -} - -#idle_inhibitor { - background-color: #2d3436; - border-bottom: 8px solid #7a8c37; -} - -#idle_inhibitor.activated { - background-color: #ecf0f1; - border-bottom: 8px solid #7a8c37; - color: #2d3436; -} - -#mpd { - background-color: #66cc99; - color: #2a5c45; -} - -#mpd.disconnected { - background-color: #f53c3c; -} - -#mpd.stopped { - background-color: #90b1b1; -} - -#mpd.paused { - background-color: #51a37a; -} - -#language { - background: #00b093; - color: #740864; - min-width: 16px; -} - -#keyboard-state { - background: #97e1ad; - color: #000000; - min-width: 16px; - border-bottom: 8px solid #78b48a; -} - -#keyboard-state > label { - padding: 0 5px; -} - -#keyboard-state > label.locked { - background: rgba(0, 0, 0, 0.2); -} - -#scratchpad { - background: rgba(0, 0, 0, 0.2); -} - -#scratchpad.empty { - background-color: transparent; -} - -tooltip { - background-color: #232a2e; - border: none; - border-bottom: 8px solid #1d2327; -} - -tooltip decoration { - box-shadow: none; -} - -tooltip decoration:backdrop { - box-shadow: none; -} - -/* Waybar scaling: adjust tooltip label font-size to scale the bar */ -tooltip label { - color: #d3c6aa; - padding-left: 5px; - padding-right: 5px; - padding-top: 0px; - padding-bottom: 5px; - /* Waybar scaling: adjust tooltip label font-size to scale the bar */ - font-size: 14px; -} - - -#backlight-slider slider, -#pulseaudio-slider slider { - min-height: 7px; - min-width: 15px; - opacity: 0; - background-color: #ffa000; - border-radius: 3px; - box-shadow: 1px 5px 6px 1px #272727; -} - -#backlight-slider trough, -#pulseaudio-slider trough { - min-height: 100px; - min-width: 7px; - border-radius: 5px; - background-color: #d8ac47; -} - -window#waybar.bottombar #backlight-slider trough, -window#waybar.bottombar #pulseaudio-slider trough { - min-height: 7px; - /* Waybar scaling: adjust font-size to scale the bar */ - font-size: 14px; -} - -#backlight-slider highlight, -#pulseaudio-slider highlight { - min-width: 5px; - border-radius: 5px; - background-color: #64b6ac; -} - -/* --- tray readability override (global) --- */ -#tray > *, -#tray > .passive, -#tray > .active, -#tray > .needs-attention { - background: rgba(137, 180, 250, 0.55); - border-radius: 8px; - border: 1px solid rgba(17, 17, 27, 0.35); - margin-left: 1px; - margin-right: 1px; - padding-left: 2px; - padding-right: 2px; - color: rgba(17, 17, 27, 0.98); - -gtk-icon-effect: none; -} - -#tray image { - background: transparent; - color: rgba(17, 17, 27, 0.98); - -gtk-icon-style: symbolic; - -gtk-icon-effect: none; - opacity: 1; -} diff --git a/config/waybar/style/Black-&-White-Monochrome.css b/config/waybar/style/Black-&-White-Monochrome.css index 60ff6e6e..03fadbf1 100644 --- a/config/waybar/style/Black-&-White-Monochrome.css +++ b/config/waybar/style/Black-&-White-Monochrome.css @@ -2,112 +2,112 @@ /* Black & White MonoChrome */ * { - font-family: "JetBrainsMono Nerd Font"; - font-weight: bold; - min-height: 0; - /* set font-size to 100% if font scaling is set to 1.00 using nwg-look */ - /* NOTE: Waybar v14+ ignores % font-size values */ - font-size: 99%; - font-feature-settings: '"zero", "ss01", "ss02", "ss03", "ss04", "ss05", "cv31"'; + font-family: "JetBrainsMono Nerd Font"; + font-weight: bold; + min-height: 0; + /* set font-size to 100% if font scaling is set to 1.00 using nwg-look */ + /* NOTE: Waybar v14+ ignores % font-size values */ + font-size: 99%; + font-feature-settings: '"zero", "ss01", "ss02", "ss03", "ss04", "ss05", "cv31"'; } window#waybar, window#waybar.empty, window#waybar.empty #window { - background-color: transparent; - padding: 0px; - border: 0px; - /* Waybar scaling: adjust font-size to scale the bar */ - font-size: 14px; + background-color: transparent; + padding: 0px; + border: 0px; + /* Waybar scaling: adjust font-size to scale the bar */ + font-size: 14px; } tooltip { - color: white; - background: #1e1e2e; - opacity: 0.8; - border-radius: 10px; - border-width: 2px; - border-style: solid; - border-color: white; + color: white; + background: #1e1e2e; + opacity: 0.8; + border-radius: 10px; + border-width: 2px; + border-style: solid; + border-color: white; } /* Waybar scaling: adjust tooltip label font-size to scale the bar */ -tooltip label{ - color: #cdd6f4; - /* Waybar scaling: adjust tooltip label font-size to scale the bar */ - font-size: 14px; +tooltip label { + color: #cdd6f4; + /* Waybar scaling: adjust tooltip label font-size to scale the bar */ + font-size: 14px; } /*-----module groups----*/ .modules-right { - background-color: black; - color: white; - border-bottom: 1px; - border-style: solid; - border-color: white; - border-radius: 10px; - padding-top: 2px; - padding-bottom: 2px; - padding-right: 4px; - padding-left: 4px; + background-color: black; + color: white; + border-bottom: 1px; + border-style: solid; + border-color: white; + border-radius: 10px; + padding-top: 2px; + padding-bottom: 2px; + padding-right: 4px; + padding-left: 4px; } .modules-center { - background-color: black; - color: white; - border-bottom: 1px; - border-style: solid; - border-color: white; - border-radius: 10px; - padding-top: 2px; - padding-bottom: 2px; - padding-right: 4px; - padding-left: 4px; + background-color: black; + color: white; + border-bottom: 1px; + border-style: solid; + border-color: white; + border-radius: 10px; + padding-top: 2px; + padding-bottom: 2px; + padding-right: 4px; + padding-left: 4px; } .modules-left { - background-color: black; - color: white; - border-bottom: 1px; - border-style: solid; - border-color: white; - border-radius: 10px; - padding-top: 2px; - padding-bottom: 2px; - padding-right: 4px; - padding-left: 4px; + background-color: black; + color: white; + border-bottom: 1px; + border-style: solid; + border-color: white; + border-radius: 10px; + padding-top: 2px; + padding-bottom: 2px; + padding-right: 4px; + padding-left: 4px; } /*-----modules indv----*/ #taskbar button, #workspaces button { - color: dimgrey; - box-shadow: none; - text-shadow: none; - padding: 0px; - border-radius: 9px; - padding-left: 4px; - padding-right: 4px; - animation: gradient_f 20s ease-in infinite; - transition: all 0.5s cubic-bezier(.55,-0.68,.48,1.682); + color: dimgrey; + box-shadow: none; + text-shadow: none; + padding: 0px; + border-radius: 9px; + padding-left: 4px; + padding-right: 4px; + animation: gradient_f 20s ease-in infinite; + transition: all 0.5s cubic-bezier(0.55, -0.68, 0.48, 1.682); } #taskbar button:hover, #workspaces button:hover { - color: white; - background-color: #7f849c; - padding-left: 2px; - padding-right: 2px; - animation: gradient_f 20s ease-in infinite; - transition: all 0.3s cubic-bezier(.55,-0.68,.48,1.682); + color: white; + background-color: #7f849c; + padding-left: 2px; + padding-right: 2px; + animation: gradient_f 20s ease-in infinite; + transition: all 0.3s cubic-bezier(0.55, -0.68, 0.48, 1.682); } #taskbar button.active, #workspaces button.active { - color: white; - padding-left: 8px; - padding-right: 8px; - animation: gradient_f 20s ease-in infinite; - transition: all 0.3s cubic-bezier(.55,-0.68,.48,1.682); + color: white; + padding-left: 8px; + padding-right: 8px; + animation: gradient_f 20s ease-in infinite; + transition: all 0.3s cubic-bezier(0.55, -0.68, 0.48, 1.682); } #workspaces button.persistent { - border-radius: 10px; + border-radius: 10px; } #backlight, @@ -164,68 +164,68 @@ tooltip label{ #custom-weather.clearNight, #custom-weather.cloudyFoggyDay, #custom-weather.cloudyFoggyNight, -#custom-weather.default, +#custom-weather.default, #custom-weather.rainyDay, #custom-weather.rainyNight, #custom-weather.severe, #custom-weather.showyIcyDay, #custom-weather.snowyIcyNight, #custom-weather.sunnyDay { - padding-top: 4px; - padding-bottom: 4px; - padding-right: 6px; - padding-left: 6px; + padding-top: 4px; + padding-bottom: 4px; + padding-right: 6px; + padding-left: 6px; } /*-----Indicators----*/ #custom-hypridle.notactive, #idle_inhibitor.activated { - color: #39FF14; - border-bottom: 8px solid rgba(0, 0, 0, 0.2); + color: #39ff14; + border-top: 8px solid rgba(0, 0, 0, 0.2); } #pulseaudio.muted { - color: #cc3436; + color: #cc3436; } #temperature.critical { - color: red; + color: red; } @keyframes blink { - to { - color: #000000; - } + to { + color: #000000; + } } #battery.critical:not(.charging) { - color: #f53c3c; - animation-name: blink; - animation-duration: 3.0s; - animation-timing-function: steps(12); - animation-iteration-count: infinite; - animation-direction: alternate; + color: #f53c3c; + animation-name: blink; + animation-duration: 3s; + animation-timing-function: steps(12); + animation-iteration-count: infinite; + animation-direction: alternate; } #backlight-slider slider, #pulseaudio-slider slider { - min-width: 0px; - min-height: 0px; - opacity: 0; - background-image: none; - border: none; - box-shadow: none; + min-width: 0px; + min-height: 0px; + opacity: 0; + background-image: none; + border: none; + box-shadow: none; } #backlight-slider trough, #pulseaudio-slider trough { - min-width: 80px; - min-height: 5px; - border-radius: 5px; + min-width: 80px; + min-height: 5px; + border-radius: 5px; } #backlight-slider highlight, #pulseaudio-slider highlight { - min-height: 10px; - border-radius: 5px; + min-height: 10px; + border-radius: 5px; } /* --- tray readability override (global) --- */ diff --git a/config/waybar/style/Catppuccin-Frappe.css b/config/waybar/style/Catppuccin-Frappe.css index 228098a6..3778bad0 100644 --- a/config/waybar/style/Catppuccin-Frappe.css +++ b/config/waybar/style/Catppuccin-Frappe.css @@ -2,13 +2,13 @@ /* Catppuccin Frappe */ * { - font-family: "JetBrainsMono Nerd Font"; - font-weight: bold; - min-height: 0; - /* set font-size to 100% if font scaling is set to 1.00 using nwg-look */ - /* NOTE: Waybar v14+ ignores % font-size values */ - font-size: 99%; - font-feature-settings: '"zero", "ss01", "ss02", "ss03", "ss04", "ss05", "cv31"'; + font-family: "JetBrainsMono Nerd Font"; + font-weight: bold; + min-height: 0; + /* set font-size to 100% if font scaling is set to 1.00 using nwg-look */ + /* NOTE: Waybar v14+ ignores % font-size values */ + font-size: 99%; + font-feature-settings: '"zero", "ss01", "ss02", "ss03", "ss04", "ss05", "cv31"'; } @import "../waybar/style/catppuccin-themes/frappe.css"; @@ -33,43 +33,43 @@ window#waybar.hidden { #taskbar button, #workspaces button { - box-shadow: none; - text-shadow: none; - padding: 4px; - border-radius: 9px; - animation: gradient_f 20s ease-in infinite; - transition: all 0.5s cubic-bezier(.55,-0.68,.48,1.682); + box-shadow: none; + text-shadow: none; + padding: 4px; + border-radius: 9px; + animation: gradient_f 20s ease-in infinite; + transition: all 0.5s cubic-bezier(0.55, -0.68, 0.48, 1.682); } #taskbar button:hover, #workspaces button:hover { - border-radius: 10px; - color: @overlay0; - background-color: @surface0; - padding-left: 2px; - padding-right: 2px; - animation: gradient_f 20s ease-in infinite; - transition: all 0.3s cubic-bezier(.55,-0.68,.48,1.682); + border-radius: 10px; + color: @overlay0; + background-color: @surface0; + padding-left: 2px; + padding-right: 2px; + animation: gradient_f 20s ease-in infinite; + transition: all 0.3s cubic-bezier(0.55, -0.68, 0.48, 1.682); } #workspaces button.persistent { - color: @surface1; - border-radius: 10px; + color: @surface1; + border-radius: 10px; } #taskbar button.active, #workspaces button.active { - color: @peach; - border-radius: 10px; - padding-left: 8px; - padding-right: 8px; - animation: gradient_f 20s ease-in infinite; - transition: all 0.3s cubic-bezier(.55,-0.68,.48,1.682); + color: @peach; + border-radius: 10px; + padding-left: 8px; + padding-right: 8px; + animation: gradient_f 20s ease-in infinite; + transition: all 0.3s cubic-bezier(0.55, -0.68, 0.48, 1.682); } #workspaces button.urgent { - color: @red; - border-radius: 0px; + color: @red; + border-radius: 0px; } #backlight, @@ -127,32 +127,32 @@ window#waybar.hidden { #custom-weather.clearNight, #custom-weather.cloudyFoggyDay, #custom-weather.cloudyFoggyNight, -#custom-weather.default, +#custom-weather.default, #custom-weather.rainyDay, #custom-weather.rainyNight, #custom-weather.severe, #custom-weather.showyIcyDay, #custom-weather.snowyIcyNight, #custom-weather.sunnyDay { - padding-top: 4px; - padding-bottom: 4px; - padding-right: 6px; - padding-left: 6px; + padding-top: 4px; + padding-bottom: 4px; + padding-right: 6px; + padding-left: 6px; } /*-----Indicators----*/ #custom-hypridle.notactive, #idle_inhibitor.activated { - color: #39FF14; - border-bottom: 3px solid @sapphire; + color: #39ff14; + border-bottom: 3px solid @sapphire; } #backlight { - color: @blue; + color: @blue; } #battery { - color: @green; + color: @green; } @keyframes blink { @@ -162,43 +162,43 @@ window#waybar.hidden { } #battery.critical:not(.charging) { - background-color: @red; - color: @theme_text_color; - animation-name: blink; - animation-duration: 3.0s; - animation-timing-function: steps(12); - animation-iteration-count: infinite; - animation-direction: alternate; - box-shadow: inset 0 -3px transparent; + background-color: @red; + color: @theme_text_color; + animation-name: blink; + animation-duration: 3s; + animation-timing-function: steps(12); + animation-iteration-count: infinite; + animation-direction: alternate; + box-shadow: inset 0 -3px transparent; } #bluetooth { - color: @blue; + color: @blue; } #clock { - color: @yellow; + color: @yellow; } #cpu { - color: @green; + color: @green; } #custom-keyboard, #memory { - color: @sky; + color: @sky; } #disk { - color: @sapphire; + color: @sapphire; } #temperature { - color: @teal; + color: @teal; } #temperature.critical { - background-color: @red; + background-color: @red; } #tray > .passive { @@ -209,87 +209,87 @@ window#waybar.hidden { } #keyboard-state { - color: @flamingo; + color: @flamingo; } #custom-cava_mviz { - color: @pink; + color: @pink; } #custom-menu { - color: @rosewater; + color: @rosewater; } #custom-power { - color: @red; + color: @red; } #custom-updater { - color: @red; + color: @red; } #custom-light_dark { - color: @blue; + color: @blue; } #custom-weather { - color: @lavender; + color: @lavender; } #custom-lock { - color: @maroon; + color: @maroon; } #pulseaudio { - color: @sapphire; + color: @sapphire; } #pulseaudio.bluetooth { - color: @pink; + color: @pink; } #pulseaudio.muted { - color: @red; + color: @red; } #window { - color: @mauve; + color: @mauve; } #mpris { - color:@lavender; + color: @lavender; } #network { - color: @teal; + color: @teal; } #network.disconnected, #network.disabled { - background-color: @surface0; - color: @text; + background-color: @surface0; + color: @text; } #backlight-slider slider, #pulseaudio-slider slider { - min-width: 0px; - min-height: 0px; - opacity: 0; - background-image: none; - border: none; - box-shadow: none; + min-width: 0px; + min-height: 0px; + opacity: 0; + background-image: none; + border: none; + box-shadow: none; } #backlight-slider trough, #pulseaudio-slider trough { - min-width: 80px; - min-height: 5px; - border-radius: 5px; + min-width: 80px; + min-height: 5px; + border-radius: 5px; } #backlight-slider highlight, #pulseaudio-slider highlight { - min-height: 10px; - border-radius: 5px; + min-height: 10px; + border-radius: 5px; } /* --- tray readability override (global) --- */ diff --git a/config/waybar/style/Catppuccin-Mocha.css b/config/waybar/style/Catppuccin-Mocha.css index e1bd0eee..5d760224 100644 --- a/config/waybar/style/Catppuccin-Mocha.css +++ b/config/waybar/style/Catppuccin-Mocha.css @@ -2,99 +2,102 @@ /* Catppuccin Mocha */ * { - font-family: "JetBrainsMono Nerd Font"; - font-weight: bold; - min-height: 0; - /* set font-size to 100% if font scaling is set to 1.00 using nwg-look */ - /* NOTE: Waybar v14+ ignores % font-size values */ - font-size: 99%; - font-feature-settings: '"zero", "ss01", "ss02", "ss03", "ss04", "ss05", "cv31"'; + font-family: "JetBrainsMono Nerd Font"; + font-weight: bold; + min-height: 0; + /* set font-size to 100% if font scaling is set to 1.00 using nwg-look */ + /* NOTE: Waybar v14+ ignores % font-size values */ + font-size: 99%; + font-feature-settings: '"zero", "ss01", "ss02", "ss03", "ss04", "ss05", "cv31"'; } @import "../waybar/style/catppuccin-themes/mocha.css"; window#waybar { - transition-property: background-color; - transition-duration: 0.5s; - background: transparent; - border-radius: 10px; - /* Waybar scaling: adjust font-size to scale the bar */ - font-size: 14px; + transition-property: background-color; + transition-duration: 0.5s; + background: transparent; + border-radius: 10px; + /* Waybar scaling: adjust font-size to scale the bar */ + font-size: 14px; } window#waybar.hidden { - opacity: 0.2; - /* Waybar scaling: adjust font-size to scale the bar */ - font-size: 14px; + opacity: 0.2; + /* Waybar scaling: adjust font-size to scale the bar */ + font-size: 14px; } window#waybar.empty, window#waybar.empty #window { - background-color: transparent; - padding: 0px; - border: 0px; - /* Waybar scaling: adjust font-size to scale the bar */ - font-size: 14px; + background-color: transparent; + padding: 0px; + border: 0px; + /* Waybar scaling: adjust font-size to scale the bar */ + font-size: 14px; } #taskbar button, #workspaces button { - color: @overlay1; - box-shadow: none; - text-shadow: none; - padding: 0px; - border-radius: 9px; - padding-left: 4px; - padding-right: 4px; - animation: gradient_f 20s ease-in infinite; - transition: all 0.5s cubic-bezier(.55,-0.68,.48,1.682); + color: @overlay1; + box-shadow: none; + text-shadow: none; + padding: 0px; + border-radius: 9px; + padding-left: 4px; + padding-right: 4px; + animation: gradient_f 20s ease-in infinite; + transition: all 0.5s cubic-bezier(0.55, -0.68, 0.48, 1.682); } #taskbar button:hover, #workspaces button:hover { - border-radius: 10px; - color: @peach; - background-color: @surface0; - padding-left: 2px; - padding-right: 2px; - animation: gradient_f 20s ease-in infinite; - transition: all 0.3s cubic-bezier(.55,-0.68,.48,1.682); + border-radius: 10px; + color: @peach; + background-color: @surface0; + padding-left: 2px; + padding-right: 2px; + animation: gradient_f 20s ease-in infinite; + transition: all 0.3s cubic-bezier(0.55, -0.68, 0.48, 1.682); } #workspaces button.persistent { - color: @surface1; - border-radius: 10px; + color: @surface1; + border-radius: 10px; } #taskbar button.active, #workspaces button.active { - color: @mauve; - border-radius: 10px; - padding-left: 8px; - padding-right: 8px; - animation: gradient_f 20s ease-in infinite; - transition: all 0.3s cubic-bezier(.55,-0.68,.48,1.682); + color: @mauve; + border-radius: 10px; + padding-left: 8px; + padding-right: 8px; + animation: gradient_f 20s ease-in infinite; + transition: all 0.3s cubic-bezier(0.55, -0.68, 0.48, 1.682); } #workspaces button.urgent { - color: @red; - border-radius: 0px; + color: @red; + border-radius: 0px; } /* This section can be use if you want to separate waybar modules */ -.modules-left, .modules-center, .modules-right { - background: @theme_base_color; - border: 0.5px solid @overlay0; - padding-top: 2px; - padding-bottom: 2px; - padding-right: 4px; - padding-left: 4px; - border-radius: 10px; -} +.modules-left, +.modules-center, +.modules-right { + background: @theme_base_color; + border: 0.5px solid @overlay0; + padding-top: 2px; + padding-bottom: 2px; + padding-right: 4px; + padding-left: 4px; + border-radius: 10px; +} -.modules-left, .modules-right { - border: 1px solid @blue; -} +.modules-left, +.modules-right { + border: 1px solid @blue; +} #backlight, #backlight-slider, @@ -151,23 +154,23 @@ window#waybar.empty #window { #custom-weather.clearNight, #custom-weather.cloudyFoggyDay, #custom-weather.cloudyFoggyNight, -#custom-weather.default, +#custom-weather.default, #custom-weather.rainyDay, #custom-weather.rainyNight, #custom-weather.severe, #custom-weather.showyIcyDay, #custom-weather.snowyIcyNight, #custom-weather.sunnyDay { - padding-top: 4px; - padding-bottom: 4px; - padding-right: 6px; - padding-left: 6px; + padding-top: 4px; + padding-bottom: 4px; + padding-right: 6px; + padding-left: 6px; } /*-----Indicators----*/ #custom-hypridle.notactive, #idle_inhibitor.activated { - color: #39FF14; - border-bottom: 8px solid rgba(0, 0, 0, 0.2); + color: #39ff14; + border-top: 8px solid rgba(0, 0, 0, 0.2); } #bluetooth, @@ -188,11 +191,11 @@ window#waybar.empty #window { #battery.critical:not(.charging) { background-color: @red; color: @theme_text_color; - animation-name: blink; - animation-duration: 3.0s; - animation-timing-function: steps(12); - animation-iteration-count: infinite; - animation-direction: alternate; + animation-name: blink; + animation-duration: 3s; + animation-timing-function: steps(12); + animation-iteration-count: infinite; + animation-direction: alternate; box-shadow: inset 0 -3px transparent; } @@ -233,7 +236,7 @@ window#waybar.empty #window { } #custom-cava_mviz { - color: @pink; + color: @pink; } #custom-menu { @@ -276,7 +279,7 @@ window#waybar.empty #window { } #mpris { - color:@lavender; + color: @lavender; } #network { @@ -290,25 +293,25 @@ window#waybar.empty #window { #backlight-slider slider, #pulseaudio-slider slider { - min-width: 0px; - min-height: 0px; - opacity: 0; - background-image: none; - border: none; - box-shadow: none; + min-width: 0px; + min-height: 0px; + opacity: 0; + background-image: none; + border: none; + box-shadow: none; } #backlight-slider trough, #pulseaudio-slider trough { - min-width: 80px; - min-height: 5px; - border-radius: 5px; + min-width: 80px; + min-height: 5px; + border-radius: 5px; } #backlight-slider highlight, #pulseaudio-slider highlight { - min-height: 10px; - border-radius: 5px; + min-height: 10px; + border-radius: 5px; } /* --- tray readability override (global) --- */ diff --git a/config/waybar/style/Colored-Chroma-Glow.css b/config/waybar/style/Colored-Chroma-Glow.css index 4a1c8e4f..2e561e2a 100644 --- a/config/waybar/style/Colored-Chroma-Glow.css +++ b/config/waybar/style/Colored-Chroma-Glow.css @@ -2,103 +2,103 @@ /* Chroma Glow */ * { - font-family: "JetBrainsMono Nerd Font"; - font-weight: bold; - min-height: 0; - /* set font-size to 100% if font scaling is set to 1.00 using nwg-look */ - /* NOTE: Waybar v14+ ignores % font-size values */ - font-size: 99%; - font-feature-settings: '"zero", "ss01", "ss02", "ss03", "ss04", "ss05", "cv31"'; + font-family: "JetBrainsMono Nerd Font"; + font-weight: bold; + min-height: 0; + /* set font-size to 100% if font scaling is set to 1.00 using nwg-look */ + /* NOTE: Waybar v14+ ignores % font-size values */ + font-size: 99%; + font-feature-settings: '"zero", "ss01", "ss02", "ss03", "ss04", "ss05", "cv31"'; } window#waybar { - background-color: transparent; - color: #ffffff; - transition-property: background-color; - transition-duration: .5s; - border-radius: 10px; - /* Waybar scaling: adjust font-size to scale the bar */ - font-size: 14px; + background-color: transparent; + color: #ffffff; + transition-property: background-color; + transition-duration: 0.5s; + border-radius: 10px; + /* Waybar scaling: adjust font-size to scale the bar */ + font-size: 14px; } window#waybar.hidden { - opacity: 0.1; - /* Waybar scaling: adjust font-size to scale the bar */ - font-size: 14px; + opacity: 0.1; + /* Waybar scaling: adjust font-size to scale the bar */ + font-size: 14px; } window#waybar.empty, window#waybar.empty #window { - padding: 0px; - border: 0px; - background-color: transparent; - /* Waybar scaling: adjust font-size to scale the bar */ - font-size: 14px; + padding: 0px; + border: 0px; + background-color: transparent; + /* Waybar scaling: adjust font-size to scale the bar */ + font-size: 14px; } tooltip { - color: #40a02b; - background: #1e1e2e; - opacity: 0.8; - border-radius: 10px; - border-width: 2px; - border-style: solid; - border-color: #11111b; + color: #40a02b; + background: #1e1e2e; + opacity: 0.8; + border-radius: 10px; + border-width: 2px; + border-style: solid; + border-color: #11111b; } /* Waybar scaling: adjust tooltip label font-size to scale the bar */ -tooltip label{ - color: #cdd6f4; - /* Waybar scaling: adjust tooltip label font-size to scale the bar */ - font-size: 14px; +tooltip label { + color: #cdd6f4; + /* Waybar scaling: adjust tooltip label font-size to scale the bar */ + font-size: 14px; } #taskbar button, #workspaces button { - background-color: transparent; - color: grey; - box-shadow: none; - text-shadow: none; - padding: 0px; - border-radius: 9px; - padding-left: 4px; - padding-right: 4px; - animation: gradient_f 20s ease-in infinite; - transition: all 0.5s cubic-bezier(.55,-0.68,.48,1.682); + background-color: transparent; + color: grey; + box-shadow: none; + text-shadow: none; + padding: 0px; + border-radius: 9px; + padding-left: 4px; + padding-right: 4px; + animation: gradient_f 20s ease-in infinite; + transition: all 0.5s cubic-bezier(0.55, -0.68, 0.48, 1.682); } #taskbar button.active, #workspaces button.active { - background-color: transparent; - color: #D3D3D3; - padding-left: 8px; - padding-right: 8px; - animation: gradient_f 20s ease-in infinite; - transition: all 0.3s cubic-bezier(.55,-0.68,.48,1.682); + background-color: transparent; + color: #d3d3d3; + padding-left: 8px; + padding-right: 8px; + animation: gradient_f 20s ease-in infinite; + transition: all 0.3s cubic-bezier(0.55, -0.68, 0.48, 1.682); } #taskbar button:hover, #workspaces button:hover { - background: rgba(0, 0, 0, 0.2); - color: #D3D3D3; - padding-left: 2px; - padding-right: 2px; - animation: gradient_f 20s ease-in infinite; - transition: all 0.3s cubic-bezier(.55,-0.68,.48,1.682); + background: rgba(0, 0, 0, 0.2); + color: #d3d3d3; + padding-left: 2px; + padding-right: 2px; + animation: gradient_f 20s ease-in infinite; + transition: all 0.3s cubic-bezier(0.55, -0.68, 0.48, 1.682); } #workspaces button.focused { - background-color: #bbccdd; - color: #323232; + background-color: #bbccdd; + color: #323232; } #workspaces button.urgent { - background-color: #eb4d4b; + background-color: #eb4d4b; } #mode { - background-color: #64727D; - border-bottom: 3px solid #ffffff; + background-color: #64727d; + border-bottom: 3px solid #ffffff; } #backlight, @@ -155,17 +155,17 @@ tooltip label{ #custom-weather.clearNight, #custom-weather.cloudyFoggyDay, #custom-weather.cloudyFoggyNight, -#custom-weather.default, +#custom-weather.default, #custom-weather.rainyDay, #custom-weather.rainyNight, #custom-weather.severe, #custom-weather.showyIcyDay, #custom-weather.snowyIcyNight, #custom-weather.sunnyDay { - padding-top: 4px; - padding-bottom: 4px; - padding-right: 6px; - padding-left: 6px; + padding-top: 4px; + padding-bottom: 4px; + padding-right: 6px; + padding-left: 6px; } /* If workspaces is the leftmost module, omit left margin */ @@ -177,15 +177,15 @@ tooltip label{ } #clock { - color: #fe640b; + color: #fe640b; } #custom-updater { - color: #7287fd; + color: #7287fd; } #battery { - color: #32CD32; + color: #32cd32; } /* #battery.charging { @@ -194,157 +194,157 @@ tooltip label{ } */ @keyframes blink { - to { - background-color: #ffffff; - color: #333333; - } + to { + background-color: #ffffff; + color: #333333; + } } #battery.critical:not(.charging) { - color: #f53c3c; - animation-name: blink; - animation-duration: 3.0s; - animation-timing-function: steps(12); - animation-iteration-count: infinite; - animation-direction: alternate; + color: #f53c3c; + animation-name: blink; + animation-duration: 3s; + animation-timing-function: steps(12); + animation-iteration-count: infinite; + animation-direction: alternate; } label:focus { - background-color: #000000; + background-color: #000000; } #custom-keyboard, -#custom-menu{ - color: yellow; - /*padding: 3px;*/ +#custom-menu { + color: yellow; + /*padding: 3px;*/ } #cpu { - color: blue; + color: blue; } #memory { - color: green; + color: green; } #custom-light_dark, #custom-nightlight, #backlight { - color: white; + color: white; } #bluetooth { - color: blue; + color: blue; } #network { - color: #dd7878; + color: #dd7878; } #network.disconnected { - color: #df3320; + color: #df3320; } #custom-swaync, #custom-keybinds { - color: #1e66f5; + color: #1e66f5; } #wireplumber, #pulseaudio { - color: green; + color: green; } #wireplumber.muted, #pulseaudio.muted { - color: grey; + color: grey; } #custom-power { - color: red; + color: red; } #keyboard-state { - color: #dd7878; + color: #dd7878; } #disk { - color: brown; + color: brown; } #custom-weather { - color: #df8e1d; + color: #df8e1d; } #custom-lock { - color: #ffa000; + color: #ffa000; } #temperature { - color: #FF5349; + color: #ff5349; } #temperature.critical { - background-color: #ff0000; + background-color: #ff0000; } #tray { - /* background-color: #505050; */ + /* background-color: #505050; */ } /*-----Indicators----*/ #custom-hypridle.notactive, #idle_inhibitor.activated { - color: #39FF14; - border-bottom: 8px solid rgba(0, 0, 0, 0.2); + color: #39ff14; + border-top: 8px solid rgba(0, 0, 0, 0.2); } #mpd { - color: #2a5c45; + color: #2a5c45; } #mpd.disconnected { - background-color: #f53c3c; + background-color: #f53c3c; } #mpd.stopped { - background-color: #90b1b1; + background-color: #90b1b1; } #mpd.paused { - background-color: #51a37a; + background-color: #51a37a; } #custom-language { - color: #7da6ff; - min-width: 16px; + color: #7da6ff; + min-width: 16px; } #custom-separator { - color: #606060; + color: #606060; } #backlight-slider slider, #pulseaudio-slider slider { - min-width: 0px; - min-height: 0px; - opacity: 0; - background-image: none; - border: none; - box-shadow: none; + min-width: 0px; + min-height: 0px; + opacity: 0; + background-image: none; + border: none; + box-shadow: none; } #backlight-slider trough, #pulseaudio-slider trough { - min-width: 80px; - min-height: 5px; - border-radius: 5px; + min-width: 80px; + min-height: 5px; + border-radius: 5px; } #backlight-slider highlight, #pulseaudio-slider highlight { - min-height: 10px; - border-radius: 5px; + min-height: 10px; + border-radius: 5px; } /* --- tray readability override (global) --- */ diff --git a/config/waybar/style/Colored-Translucent.css b/config/waybar/style/Colored-Translucent.css index 12818f6c..42f4474a 100644 --- a/config/waybar/style/Colored-Translucent.css +++ b/config/waybar/style/Colored-Translucent.css @@ -2,10 +2,10 @@ /* Translucent */ @define-color critical #ff0000; /* critical color */ -@define-color warning #f3f809; /* warning color */ -@define-color fgcolor #ffffff; /* foreground color */ -@define-color bgcolor #303030; /* background color */ -@define-color bgcolor #222436; /* background color */ +@define-color warning #f3f809; /* warning color */ +@define-color fgcolor #ffffff; /* foreground color */ +@define-color bgcolor #303030; /* background color */ +@define-color bgcolor #222436; /* background color */ @define-color alert #df3320; @define-color accent1 #ff7a93; @@ -16,86 +16,86 @@ @define-color accent6 #0db9d7; * { -font-family: "JetBrainsMono Nerd Font"; -font-weight: bold; -min-height: 0; -/* set font-size to 100% if font scaling is set to 1.00 using nwg-look */ -/* NOTE: Waybar v14+ ignores % font-size values */ -font-size: 99%; -font-feature-settings: '"zero", "ss01", "ss02", "ss03", "ss04", "ss05", "cv31"'; + font-family: "JetBrainsMono Nerd Font"; + font-weight: bold; + min-height: 0; + /* set font-size to 100% if font scaling is set to 1.00 using nwg-look */ + /* NOTE: Waybar v14+ ignores % font-size values */ + font-size: 99%; + font-feature-settings: '"zero", "ss01", "ss02", "ss03", "ss04", "ss05", "cv31"'; } window#waybar { - background-color: rgba(0,0,0,0.3); - color: #ffffff; - transition-property: background-color; - transition-duration: .5s; - border-radius: 10px; - /* Waybar scaling: adjust font-size to scale the bar */ - font-size: 14px; + background-color: rgba(0, 0, 0, 0.3); + color: #ffffff; + transition-property: background-color; + transition-duration: 0.5s; + border-radius: 10px; + /* Waybar scaling: adjust font-size to scale the bar */ + font-size: 14px; } window#waybar.hidden { - opacity: 0.1; - /* Waybar scaling: adjust font-size to scale the bar */ - font-size: 14px; + opacity: 0.1; + /* Waybar scaling: adjust font-size to scale the bar */ + font-size: 14px; } tooltip { - background: #1e1e2e; - opacity: 0.6; - border-radius: 10px; - border-width: 2px; - border-style: solid; - border-color: #11111b; + background: #1e1e2e; + opacity: 0.6; + border-radius: 10px; + border-width: 2px; + border-style: solid; + border-color: #11111b; } #taskbar button, #workspaces button { - background-color: transparent; - color: @fgcolor; - box-shadow: none; - text-shadow: none; - padding: 4px; - border-radius: 9px; - animation: gradient_f 20s ease-in infinite; - transition: all 0.5s cubic-bezier(.55,-0.68,.48,1.682); + background-color: transparent; + color: @fgcolor; + box-shadow: none; + text-shadow: none; + padding: 4px; + border-radius: 9px; + animation: gradient_f 20s ease-in infinite; + transition: all 0.5s cubic-bezier(0.55, -0.68, 0.48, 1.682); } #taskbar button.active, #workspaces button.active { - background-color: rgba(0, 0, 0, 0.2); - color: @accent2; - padding-left: 8px; - padding-right: 8px; - animation: gradient_f 20s ease-in infinite; - transition: all 0.3s cubic-bezier(.55,-0.68,.48,1.682); + background-color: rgba(0, 0, 0, 0.2); + color: @accent2; + padding-left: 8px; + padding-right: 8px; + animation: gradient_f 20s ease-in infinite; + transition: all 0.3s cubic-bezier(0.55, -0.68, 0.48, 1.682); } #taskbar button:hover, #workspaces button:hover { - background: rgba(0, 0, 0, 0.2); - color: @accent3; - padding-left: 2px; - padding-right: 2px; - animation: gradient_f 20s ease-in infinite; - transition: all 0.3s cubic-bezier(.55,-0.68,.48,1.682); + background: rgba(0, 0, 0, 0.2); + color: @accent3; + padding-left: 2px; + padding-right: 2px; + animation: gradient_f 20s ease-in infinite; + transition: all 0.3s cubic-bezier(0.55, -0.68, 0.48, 1.682); } #workspaces button.focused { - background-color: rgba(0, 0, 0, 0.35); - color: @accent5; - /* box-shadow: inset 0 -3px #ffffff; */ + background-color: rgba(0, 0, 0, 0.35); + color: @accent5; + /* box-shadow: inset 0 -3px #ffffff; */ } #workspaces button.urgent { - background-color: #eb4d4b; - color: #ffffff; + background-color: #eb4d4b; + color: #ffffff; } #mode { - background-color: #64727D; - border-bottom: 3px solid #ffffff; + background-color: #64727d; + border-bottom: 3px solid #ffffff; } #backlight, @@ -153,17 +153,17 @@ tooltip { #custom-weather.clearNight, #custom-weather.cloudyFoggyDay, #custom-weather.cloudyFoggyNight, -#custom-weather.default, +#custom-weather.default, #custom-weather.rainyDay, #custom-weather.rainyNight, #custom-weather.severe, #custom-weather.showyIcyDay, #custom-weather.snowyIcyNight, #custom-weather.sunnyDay { - padding-top: 4px; - padding-bottom: 4px; - padding-right: 6px; - padding-left: 6px; + padding-top: 4px; + padding-bottom: 4px; + padding-right: 6px; + padding-left: 6px; } /* If workspaces is the leftmost module, omit left margin */ @@ -175,15 +175,15 @@ tooltip { } #clock { - color: @accent2; + color: @accent2; } #custom-updater { - color: #7287fd; + color: #7287fd; } #battery { - color: @accent5; + color: @accent5; } /* #battery.charging { @@ -192,175 +192,175 @@ tooltip { } */ @keyframes blink { - to { - background-color: #ffffff; - color: #333333; - } + to { + background-color: #ffffff; + color: #333333; + } } #battery.critical:not(.charging) { - color: @critical; - animation-name: blink; - animation-duration: 3.0s; - animation-timing-function: steps(12); - animation-iteration-count: infinite; - animation-direction: alternate; + color: @critical; + animation-name: blink; + animation-duration: 3s; + animation-timing-function: steps(12); + animation-iteration-count: infinite; + animation-direction: alternate; } label:focus { - background-color: #000000; + background-color: #000000; } -#custom-menu{ - color: #FFFFFF; - /*padding: 3px;*/ +#custom-menu { + color: #ffffff; + /*padding: 3px;*/ } #custom-keyboard, #cpu { - color: @accent1; + color: @accent1; } #memory { - color: @accent3; + color: @accent3; } #backlight { - color: #cdd6f4; + color: #cdd6f4; } #bluetooth { - color: #1e66f5; + color: #1e66f5; } #network { - color: @accent3; + color: @accent3; } #network.disconnected { - color: @alert; + color: @alert; } #pulseaudio { - color: @accent4; + color: @accent4; } #pulseaudio-muted { - color: @accent2; + color: @accent2; } #wireplumber { - color: @accent4; + color: @accent4; } #wireplumber-muted { - color: @accent2; + color: @accent2; } -#pluseaudio-source-muted{ - color: #a0a0a0; +#pluseaudio-source-muted { + color: #a0a0a0; } #custom-power { - color: #cc3436; + color: #cc3436; } #disk { - color: @accent5; + color: @accent5; } #custom-power_profile { - color: @accent3; + color: @accent3; } #custom-media { - background-color: #66cc99; - color: #2a5c45; - min-width: 100px; + background-color: #66cc99; + color: #2a5c45; + min-width: 100px; } #custom-weather { - color: #66cc99; + color: #66cc99; } #custom-weather2 { - color: #66cc99; + color: #66cc99; } #custom-lock { - color: #ffa000; + color: #ffa000; } #keyboard-state, #temperature { - color: @accent6; - /* background-color: #f0932b; */ + color: @accent6; + /* background-color: #f0932b; */ } #temperature.critical { - background-color: @critical; + background-color: @critical; } #tray { - /* background-color: #505050; */ + /* background-color: #505050; */ } #custom-hypridle, #idle_inhibitor { - color: #f9e2af; - /*background-color: #2d3436; - border-bottom: 8px solid rgba(0, 0, 0, 0.2);*/ + color: #f9e2af; + /*background-color: #2d3436; */ + border-top: 8px solid rgba(0, 0, 0, 0.2); } /*-----Indicators----*/ #custom-hypridle.notactive, #idle_inhibitor.activated { - color: #39FF14; - border-bottom: 8px solid rgba(0, 0, 0, 0.2); + color: #39ff14; + border-top: 8px solid rgba(0, 0, 0, 0.2); } #mpd { - color: #2a5c45; + color: #2a5c45; } #mpd.disconnected { - background-color: #f53c3c; + background-color: #f53c3c; } #mpd.stopped { - background-color: #90b1b1; + background-color: #90b1b1; } #mpd.paused { - background-color: #51a37a; + background-color: #51a37a; } #custom-language { - color: @accent5; - min-width: 16px; + color: @accent5; + min-width: 16px; } #custom-separator { - color: #606060; + color: #606060; } #backlight-slider slider, #pulseaudio-slider slider { - min-width: 0px; - min-height: 0px; - opacity: 0; - background-image: none; - border: none; - box-shadow: none; + min-width: 0px; + min-height: 0px; + opacity: 0; + background-image: none; + border: none; + box-shadow: none; } #backlight-slider trough, #pulseaudio-slider trough { - min-width: 80px; - min-height: 5px; - border-radius: 5px; + min-width: 80px; + min-height: 5px; + border-radius: 5px; } #backlight-slider highlight, #pulseaudio-slider highlight { - min-height: 10px; - border-radius: 5px; + min-height: 10px; + border-radius: 5px; } /* --- tray readability override (global) --- */ diff --git a/config/waybar/style/Colorful-Aurora-Blossom.css b/config/waybar/style/Colorful-Aurora-Blossom.css index cb1e9269..6b7ebc89 100644 --- a/config/waybar/style/Colorful-Aurora-Blossom.css +++ b/config/waybar/style/Colorful-Aurora-Blossom.css @@ -2,92 +2,102 @@ /* Aurora Blossom */ * { - font-family: "JetBrainsMono Nerd Font"; - font-weight: bold; - /* set font-size to 100% if font scaling is set to 1.00 using nwg-look */ - /* NOTE: Waybar v14+ ignores % font-size values */ - font-size: 99%; - font-feature-settings: '"zero", "ss01", "ss02", "ss03", "ss04", "ss05", "cv31"'; + font-family: "JetBrainsMono Nerd Font"; + font-weight: bold; + /* set font-size to 100% if font scaling is set to 1.00 using nwg-look */ + /* NOTE: Waybar v14+ ignores % font-size values */ + font-size: 99%; + font-feature-settings: '"zero", "ss01", "ss02", "ss03", "ss04", "ss05", "cv31"'; } window#waybar { - background: transparent; - /* Waybar scaling: adjust font-size to scale the bar */ - font-size: 14px; + background: transparent; + /* Waybar scaling: adjust font-size to scale the bar */ + font-size: 14px; } -window#waybar.empty , +window#waybar.empty, window#waybar.empty #window { - background-color: transparent; - padding: 0px; - border: 0px; - /* Waybar scaling: adjust font-size to scale the bar */ - font-size: 14px; + background-color: transparent; + padding: 0px; + border: 0px; + /* Waybar scaling: adjust font-size to scale the bar */ + font-size: 14px; } tooltip { - color: black; - background-image: linear-gradient(45deg, #7287fd 10%, #209fb5 54%, #8839ef 90%); - opacity: 0.8; - border-radius: 10px; + color: black; + background-image: linear-gradient( + 45deg, + #7287fd 10%, + #209fb5 54%, + #8839ef 90% + ); + opacity: 0.8; + border-radius: 10px; } /* Waybar scaling: adjust tooltip label font-size to scale the bar */ -tooltip label{ - color: black; - /* Waybar scaling: adjust tooltip label font-size to scale the bar */ - font-size: 14px; +tooltip label { + color: black; + /* Waybar scaling: adjust tooltip label font-size to scale the bar */ + font-size: 14px; } /*-----module groups----*/ .modules-left, .modules-center, .modules-right { - background-image: linear-gradient(45deg, #7287fd 10%, #209fb5 54%, #8839ef 90%); - color: black; - border-radius: 6px; - padding-top: 2px; - padding-bottom: 2px; - padding-right: 4px; - padding-left: 4px; + background-image: linear-gradient( + 45deg, + #7287fd 10%, + #209fb5 54%, + #8839ef 90% + ); + color: black; + border-radius: 6px; + padding-top: 2px; + padding-bottom: 2px; + padding-right: 4px; + padding-left: 4px; } /*-----modules indv----*/ #taskbar button, #workspaces button { - color: black; - box-shadow: none; - text-shadow: none; - padding: 0px; - border-radius: 9px; - padding-left: 4px; - padding-right: 4px; - animation: gradient_f 20s ease-in infinite; - transition: all 0.5s cubic-bezier(.55,-0.68,.48,1.682); + color: black; + box-shadow: none; + text-shadow: none; + padding: 0px; + border-radius: 9px; + padding-left: 4px; + padding-right: 4px; + animation: gradient_f 20s ease-in infinite; + transition: all 0.5s cubic-bezier(0.55, -0.68, 0.48, 1.682); } #taskbar button:hover, #workspaces button:hover { - color: grey; - background-color: rgba(0,153,153,0.2); - padding-left: 2px; - padding-right: 2px; - animation: gradient_f 20s ease-in infinite; - transition: all 0.3s cubic-bezier(.55,-0.68,.48,1.682); + color: grey; + background-color: rgba(0, 153, 153, 0.2); + padding-left: 2px; + padding-right: 2px; + animation: gradient_f 20s ease-in infinite; + transition: all 0.3s cubic-bezier(0.55, -0.68, 0.48, 1.682); } #taskbar button.active, #workspaces button.active { - color: grey; - padding-left: 8px; - padding-right: 8px; - animation: gradient_f 20s ease-in infinite; - transition: all 0.3s cubic-bezier(.55,-0.68,.48,1.682); + color: grey; + padding-left: 8px; + padding-right: 8px; + animation: gradient_f 20s ease-in infinite; + transition: all 0.3s cubic-bezier(0.55, -0.68, 0.48, 1.682); } #workspaces button.persistent { - border-radius: 10px; + border-radius: 10px; } #backlight, @@ -145,72 +155,73 @@ tooltip label{ #custom-weather.clearNight, #custom-weather.cloudyFoggyDay, #custom-weather.cloudyFoggyNight, -#custom-weather.default, +#custom-weather.default, #custom-weather.rainyDay, #custom-weather.rainyNight, #custom-weather.severe, #custom-weather.showyIcyDay, #custom-weather.snowyIcyNight, #custom-weather.sunnyDay { - padding-top: 4px; - padding-bottom: 4px; - padding-right: 6px; - padding-left: 6px; + padding-top: 4px; + padding-bottom: 4px; + padding-right: 6px; + padding-left: 6px; } #custom-power { - padding: 1px 3px; + padding-right: 2px; + padding-left: 2px; } /*-----Indicators----*/ #custom-hypridle.notactive, #idle_inhibitor.activated { - color: #39FF14; - border-bottom: 8px solid rgba(0, 0, 0, 0.2); + color: #39ff14; + border-top: 8px solid rgba(0, 0, 0, 0.2); } #pulseaudio.muted { - color: #cc3436; + color: #cc3436; } #temperature.critical { - color: #cc3436; + color: #cc3436; } @keyframes blink { - to { - color: #000000; - } + to { + color: #000000; + } } #battery.critical:not(.charging) { - color: #f53c3c; - animation-name: blink; - animation-duration: 3.0s; - animation-timing-function: steps(12); - animation-iteration-count: infinite; - animation-direction: alternate; + color: #f53c3c; + animation-name: blink; + animation-duration: 3s; + animation-timing-function: steps(12); + animation-iteration-count: infinite; + animation-direction: alternate; } #backlight-slider slider, #pulseaudio-slider slider { - min-width: 0px; - min-height: 0px; - opacity: 0; - background-image: none; - border: none; - box-shadow: none; + min-width: 0px; + min-height: 0px; + opacity: 0; + background-image: none; + border: none; + box-shadow: none; } #backlight-slider trough, #pulseaudio-slider trough { - background-color: #7f849c; - min-width: 80px; - min-height: 5px; - border-radius: 5px; + background-color: #7f849c; + min-width: 80px; + min-height: 5px; + border-radius: 5px; } #pulseaudio-slider highlight, #backlight-slider highlight { - min-width: 10px; - border-radius: 5px; + min-width: 10px; + border-radius: 5px; } /* --- tray readability override (global) --- */ diff --git a/config/waybar/style/Colorful-Aurora.css b/config/waybar/style/Colorful-Aurora.css index d56cdd22..9ce23f99 100644 --- a/config/waybar/style/Colorful-Aurora.css +++ b/config/waybar/style/Colorful-Aurora.css @@ -2,80 +2,85 @@ /* Aurora */ * { -font-family: "JetBrainsMono Nerd Font"; -font-weight: bold; -/* set font-size to 100% if font scaling is set to 1.00 using nwg-look */ -/* NOTE: Waybar v14+ ignores % font-size values */ -font-size: 99%; -font-feature-settings: '"zero", "ss01", "ss02", "ss03", "ss04", "ss05", "cv31"'; + font-family: "JetBrainsMono Nerd Font"; + font-weight: bold; + /* set font-size to 100% if font scaling is set to 1.00 using nwg-look */ + /* NOTE: Waybar v14+ ignores % font-size values */ + font-size: 99%; + font-feature-settings: '"zero", "ss01", "ss02", "ss03", "ss04", "ss05", "cv31"'; } window#waybar, window#waybar.empty, window#waybar.empty #window { - background-color: transparent; - padding: 0px; - border: 0px; - /* Waybar scaling: adjust font-size to scale the bar */ - font-size: 14px; + background-color: transparent; + padding: 0px; + border: 0px; + /* Waybar scaling: adjust font-size to scale the bar */ + font-size: 14px; } tooltip { - color: black; - background-image: linear-gradient(45deg, #7287fd 10%, #209fb5 54%, #8839ef 90%); - opacity: 0.8; - border-radius: 10px; + color: black; + background-image: linear-gradient( + 45deg, + #7287fd 10%, + #209fb5 54%, + #8839ef 90% + ); + opacity: 0.8; + border-radius: 10px; } /* Waybar scaling: adjust tooltip label font-size to scale the bar */ -tooltip label{ - color: black; - /* Waybar scaling: adjust tooltip label font-size to scale the bar */ - font-size: 14px; +tooltip label { + color: black; + /* Waybar scaling: adjust tooltip label font-size to scale the bar */ + font-size: 14px; } /*-----module groups----*/ .modules-left, .modules-center, .modules-right { - padding-top: 2px; - padding-bottom: 2px; - padding-right: 4px; - padding-left: 4px; + padding-top: 2px; + padding-bottom: 2px; + padding-right: 4px; + padding-left: 4px; } /*-----modules indv----*/ #taskbar button, #workspaces button { - color: grey; - box-shadow: none; - text-shadow: none; - padding: 0px; - border-radius: 9px; - padding-left: 4px; - padding-right: 4px; - animation: gradient_f 20s ease-in infinite; - transition: all 0.5s cubic-bezier(.55,-0.68,.48,1.682); + color: grey; + box-shadow: none; + text-shadow: none; + padding: 0px; + border-radius: 9px; + padding-left: 4px; + padding-right: 4px; + animation: gradient_f 20s ease-in infinite; + transition: all 0.5s cubic-bezier(0.55, -0.68, 0.48, 1.682); } #taskbar button:hover, #workspaces button:hover { - color: black; - background-color: rgba(0,153,153,0.2); - padding-left: 2px; - padding-right: 2px; - animation: gradient_f 20s ease-in infinite; - transition: all 0.3s cubic-bezier(.55,-0.68,.48,1.682); + color: black; + background-color: rgba(0, 153, 153, 0.2); + padding-left: 2px; + padding-right: 2px; + animation: gradient_f 20s ease-in infinite; + transition: all 0.3s cubic-bezier(0.55, -0.68, 0.48, 1.682); } #taskbar button.active, #workspaces button.active { - color: black; - padding-left: 8px; - padding-right: 8px; - animation: gradient_f 20s ease-in infinite; - transition: all 0.3s cubic-bezier(.55,-0.68,.48,1.682); + color: black; + padding-left: 8px; + padding-right: 8px; + animation: gradient_f 20s ease-in infinite; + transition: all 0.3s cubic-bezier(0.55, -0.68, 0.48, 1.682); } #workspaces button.persistent { - border-radius: 10px; + border-radius: 10px; } #backlight, @@ -132,91 +137,91 @@ tooltip label{ #custom-weather.clearNight, #custom-weather.cloudyFoggyDay, #custom-weather.cloudyFoggyNight, -#custom-weather.default, +#custom-weather.default, #custom-weather.rainyDay, #custom-weather.rainyNight, #custom-weather.severe, #custom-weather.showyIcyDay, #custom-weather.snowyIcyNight, #custom-weather.sunnyDay { - background-image: linear-gradient(45deg, #95E6CB, #59C2FF, #D2A6FF); - color: black; - border: 1px; - border-style: solid; - border-radius: 6px; - padding-top: 4px; - padding-bottom: 4px; - padding-right: 6px; - padding-left: 6px; + background-image: linear-gradient(45deg, #95e6cb, #59c2ff, #d2a6ff); + color: black; + border: 1px; + border-style: solid; + border-radius: 6px; + padding-top: 4px; + padding-bottom: 4px; + padding-right: 6px; + padding-left: 6px; } #backlight { - padding-right: 2px; + padding-right: 2px; } #custom-power { - padding-left: 10px; - padding-right: 2px; + padding-left: 0px; + padding-right: 2px; } #custom-menu { - padding-right: 8px; + padding-right: 8px; } #custom-cycle_wall { - padding-right: 2px; + padding-right: 2px; } #network { - padding-right: 12px; + padding-right: 12px; } /*-----Indicators----*/ #custom-hypridle.notactive, #idle_inhibitor.activated { - color: #39FF14; - border-bottom: 8px solid rgba(0, 0, 0, 0.2); + color: #39ff14; + border-top: 8px solid rgba(0, 0, 0, 0.2); } #pulseaudio.muted { - color: #cc3436; + color: #cc3436; } #temperature.critical { - background: red; - color: black; + background: red; + color: black; } @keyframes blink { - to { - color: #000000; - } + to { + color: #000000; + } } #battery.critical:not(.charging) { - color: #f53c3c; - animation-name: blink; - animation-duration: 3.0s; - animation-timing-function: steps(12); - animation-iteration-count: infinite; - animation-direction: alternate; + color: #f53c3c; + animation-name: blink; + animation-duration: 3s; + animation-timing-function: steps(12); + animation-iteration-count: infinite; + animation-direction: alternate; } #backlight-slider slider, #pulseaudio-slider slider { - min-width: 0px; - min-height: 0px; - opacity: 0; - background-image: none; - border: none; - box-shadow: none; + min-width: 0px; + min-height: 0px; + opacity: 0; + background-image: none; + border: none; + box-shadow: none; } #backlight-slider trough, #pulseaudio-slider trough { - background-color: #7f849c; - min-width: 80px; - min-height: 5px; - border-radius: 5px; + background-color: #7f849c; + min-width: 80px; + min-height: 5px; + border-radius: 5px; } #backlight-slider highlight, #pulseaudio-slider highlight { - min-height: 10px; - border-radius: 5px; + min-height: 10px; + border-radius: 5px; } /* --- tray readability override (global) --- */ diff --git a/config/waybar/style/Colorful-Oglo-Chicklets.css b/config/waybar/style/Colorful-Oglo-Chicklets.css index e870c3e7..e0c574da 100644 --- a/config/waybar/style/Colorful-Oglo-Chicklets.css +++ b/config/waybar/style/Colorful-Oglo-Chicklets.css @@ -2,68 +2,72 @@ /* Oglo Chicklets */ * { - font-family: "JetBrainsMono Nerd Font", FontAwesome, Roboto, Helvetica, Arial, sans-serif; - /* NOTE: Waybar v14+ ignores % font-size values */ - font-size: 99%; - font-weight: bold; + font-family: + "JetBrainsMono Nerd Font", FontAwesome, Roboto, Helvetica, Arial, sans-serif; + /* NOTE: Waybar v14+ ignores % font-size values */ + font-size: 99%; + font-weight: bold; } window#waybar { - background-color: #232a2e; - border-bottom: 8px solid #1d2327; - color: #d3c6aa; - transition-property: background-color; - transition-duration: .5s; - /* Waybar scaling: adjust font-size to scale the bar */ - font-size: 14px; + background-color: #232a2e; + border-bottom: 8px solid #1d2327; + color: #d3c6aa; + transition-property: background-color; + transition-duration: 0.5s; + /* Waybar scaling: adjust font-size to scale the bar */ + font-size: 14px; } window#waybar.hidden { - opacity: 0.2; - /* Waybar scaling: adjust font-size to scale the bar */ - font-size: 14px; + opacity: 0.2; + /* Waybar scaling: adjust font-size to scale the bar */ + font-size: 14px; } /* window#waybar.empty { - background-color: transparent; - /* Waybar scaling: adjust font-size to scale the bar */ - font-size: 14px; + background-color: transparent; + font-size: 14px; } +*/ + +/* window#waybar.solo { - background-color: #FFFFFF; - /* Waybar scaling: adjust font-size to scale the bar */ - font-size: 14px; + background-color: #ffffff; + font-size: 14px; } */ button { - all: unset; - background-color: #778f52; - color: #2d353b; - border: none; - border-bottom: 8px solid #5d743e; - border-radius: 5px; - padding-left: 15px; - padding-right: 15px; - transition: transform 0.1s ease-in-out; + all: unset; + background-color: #778f52; + color: #2d353b; + border: none; + border-bottom: 8px solid #5d743e; + border-radius: 5px; + padding-left: 15px; + padding-right: 15px; + padding-top: 2px; + padding-bottom: 2px; + transition: transform 0.1s ease-in-out; } button:hover { - background: inherit; - background-color: #92ab6c; - border-bottom: 8px solid #788f57; + background: inherit; + background-color: #92ab6c; + border-bottom: 8px solid #788f57; } button.active { - background: inherit; - background-color: #a5be7e; - border-bottom: 8px solid #8aa168; + background: inherit; + background-color: #a5be7e; + border-bottom: 8px solid #8aa168; } #mode { - background-color: #64727D; - border-bottom: 3px solid #ffffff; + background-color: #64727d; + border-bottom: 3px solid #ffffff; } #backlight, @@ -74,14 +78,13 @@ button.active { #cpu, #disk, #idle_inhibitor, -#keyboard-state, #memory, #mode, #mpris, #network, #power-profiles-daemon, #pulseaudio, -#pulseaudio-slider, +#pulseaudio-slider, #taskbar, #temperature, #tray, @@ -120,249 +123,329 @@ button.active { #custom-weather.clearNight, #custom-weather.cloudyFoggyDay, #custom-weather.cloudyFoggyNight, -#custom-weather.default, +#custom-weather.default, #custom-weather.rainyDay, #custom-weather.rainyNight, #custom-weather.severe, #custom-weather.showyIcyDay, #custom-weather.snowyIcyNight, -#custom-weather.sunnyDay{ - color: #ffffff; - padding-top: 2px; - padding-bottom: 2px; - border-radius: 5px; - padding-left: 5px; - padding-right: 5px; +#custom-weather.sunnyDay { + color: #ffffff; + padding-top: 2px; + padding-bottom: 2px; + border-radius: 5px; + padding-left: 5px; + padding-right: 5px; } #window, -#workspaces { - margin: 0 4px; +#custom-hypr_layout, +#custom-cava_mviz, +#custom-playerctl, +#custom-spotify, +#custom-media, +#custom-updater { + margin: 0 4px; +} + +#battery, +#cpu, +#memory, +#disk, +#network, +#pulseaudio, +#tray, +#idle_inhibitor, +#custom-swaync, +#custom-menu, +#custom-power { + margin-top: 2px; + margin-bottom: 2px; } /* If workspaces is the leftmost module, omit left margin */ .modules-left > widget:first-child > #workspaces { - margin-left: 0; + margin-left: 0; } /* If workspaces is the rightmost module, omit right margin */ .modules-right > widget:last-child > #workspaces { - margin-right: 0; + margin-right: 0; } -#window { - background-color: #343f44; - color: #d3c6aa; - border-bottom: 8px solid #2b3539; +#window, +#custom-hypr_layout, +#custom-cava_mviz, +#custom-playerctl, +#custom-spotify, +#custom-media, +#custom-updater { + background-color: #2980b9; + color: #ffffff; + border-bottom: 8px solid #1f618d; + padding-top: 2px; + padding-bottom: 2px; +} + +#custom-weather2 { + background-color: #343f44; + color: #d3c6aa; + border-bottom: 8px solid #2b3539; + padding-top: 2px; + padding-bottom: 2px; } #custom-swaync { - background-color: #778f52; - color: #2d353b; - border-bottom: 8px solid #5d743e; + background-color: #778f52; + color: #2d353b; + border-bottom: 8px solid #5d743e; } #custom-menu { - background-color: #778f52; - color: #2d353b; - border-bottom: 8px solid #5d743e; + background-color: #778f52; + color: #2d353b; + border-bottom: 8px solid #5d743e; } #custom-power { - background-color: #ee606a; - color: #2d353b; - border-bottom: 8px solid #ca4853; - padding-left: 10px; + background-color: #ee606a; + color: #2d353b; + border-bottom: 8px solid #ca4853; + padding-left: 2px; } -#custom-power_vertical{ - background-color: #ee606a; - color: #2d353b; - border-bottom: 8px solid #ca4853; +#custom-power_vertical { + background-color: #ee606a; + color: #2d353b; + border-bottom: 8px solid #ca4853; } #clock { - background-color: #96a84c; - color: #2d353b; - border-bottom: 8px solid #7a8c37; + background-color: #96a84c; + color: #2d353b; + border-bottom: 8px solid #7a8c37; } #battery { - background-color: #3a998f; - color: #2d353b; - border-bottom: 8px solid #227d74; + background-color: #3a998f; + color: #2d353b; + border-bottom: 8px solid #227d74; } @keyframes blink { - to { - background-color: #ffffff; - color: #000000; - } + to { + background-color: #ffffff; + color: #000000; + } } #battery.critical:not(.charging) { - background-color: #ee606a; - color: #2d353b; - border-bottom: 8px solid #ca4853; - animation-name: blink; - animation-duration: 3.0s; - animation-timing-function: steps(12); - animation-iteration-count: infinite; - animation-direction: alternate; + background-color: #ee606a; + color: #2d353b; + border-bottom: 8px solid #ca4853; + animation-name: blink; + animation-duration: 3s; + animation-timing-function: steps(12); + animation-iteration-count: infinite; + animation-direction: alternate; } label:focus { - background-color: #000000; + background-color: #000000; } #cpu { - background-color: #778f52; - color: #2d353b; - border-bottom: 8px solid #5d743e; + background-color: #778f52; + color: #2d353b; + border-bottom: 8px solid #5d743e; } #memory { - background-color: #d980ad; - color: #2d353b; - border-bottom: 8px solid #b86790; + background-color: #d980ad; + color: #2d353b; + border-bottom: 8px solid #b86790; } #disk { - background-color: #964B00; - border-bottom: 8px solid #793300; + background-color: #964b00; + border-bottom: 8px solid #793300; } #custom-lock, #custom-light_dark, #custom-nightlight, #backlight { - background-color: #64b6ac; - color: #2d353b; - border-bottom: 8px solid #4f9990; - padding-left: 10px; + background-color: #64b6ac; + color: #2d353b; + border-bottom: 8px solid #4f9990; + padding-left: 10px; } #network { - background-color: #2980b9; + background-color: #2980b9; + border-bottom: 8px solid #1f618d; } #network.disconnected { - background-color: #f53c3c; + background-color: #f53c3c; + border-bottom: 8px solid #c0392b; } #pulseaudio { - background-color: #d8ac47; - color: #2d353b; - border-bottom: 8px solid #b78f30; + background-color: #d8ac47; + color: #2d353b; + border-bottom: 8px solid #b78f30; } #pulseaudio.muted { - background-color: #90b1b1; - color: #2a5c45; + background-color: #90b1b1; + color: #2a5c45; + border-bottom: 8px solid #729292; } #wireplumber { - background-color: #fff0f5; - color: #000000; + background-color: #fff0f5; + color: #000000; + border-bottom: 8px solid #e0d1d6; } #wireplumber.muted { - background-color: #f53c3c; + background-color: #f53c3c; + border-bottom: 8px solid #c0392b; } #custom-media { - background-color: #66cc99; - color: #2a5c45; - min-width: 100px; + background-color: #66cc99; + color: #2a5c45; + min-width: 100px; + border-bottom: 8px solid #51a37a; } #custom-media.custom-spotify { - background-color: #66cc99; + background-color: #66cc99; } #custom-media.custom-vlc { - background-color: #ffa000; + background-color: #ffa000; } #temperature { - background-color: #f0932b; - border-bottom: 8px solid #b78f30; + background-color: #f0932b; + border-bottom: 8px solid #b78f30; } #temperature.critical { - background-color: #eb4d4b; + background-color: #eb4d4b; + border-bottom: 8px solid #b73d3b; } #tray { - background-color: #e67f51; - color: #2d353b;; - border-bottom: 8px solid #c3653b; + background-color: #e67f51; + color: #2d353b; + border-bottom: 8px solid #c3653b; } #tray > .passive { - -gtk-icon-effect: dim; + -gtk-icon-effect: dim; } #tray > .needs-attention { - -gtk-icon-effect: highlight; - background-color: #eb4d4b; + -gtk-icon-effect: highlight; + background-color: #eb4d4b; + border-bottom: 8px solid #b73d3b; } #idle_inhibitor { - background-color: #2d3436; - border-bottom: 8px solid #1d2327; + background-color: #96a84c; + border-bottom: 8px solid #7a8c37; + color: #2d3436; } #idle_inhibitor.activated { - background-color: #ecf0f1; - border-bottom: 8px solid #7a8c37; - color: #2d3436; + background-color: #eb4d4b; + border-bottom: 8px solid #7a8c37; + color: #2d3436; } #mpd { - background-color: #66cc99; - color: #2a5c45; + background-color: #66cc99; + color: #2a5c45; + border-bottom: 8px solid #51a37a; } #mpd.disconnected { - background-color: #f53c3c; + background-color: #f53c3c; + border-bottom: 8px solid #c0392b; } #mpd.stopped { - background-color: #90b1b1; + background-color: #90b1b1; + border-bottom: 8px solid #729292; } #mpd.paused { - background-color: #51a37a; + background-color: #51a37a; + border-bottom: 8px solid #3d7a5c; } #language { - background: #00b093; - color: #740864; - min-width: 16px; + background: #00b093; + color: #740864; + min-width: 16px; + border-bottom: 8px solid #008c75; +} + +/* Specific styling for left workspaces to match center window */ +.modules-left #workspaces button { + background-color: #2980b9; + color: #ffffff; + border-bottom: 8px solid #1f618d; + padding-top: 2px; + padding-bottom: 2px; +} + +.modules-left #workspaces button.active { + background-color: #3498db; + border-bottom: 8px solid #2980b9; + padding-top: 2px; + padding-bottom: 2px; +} + +.modules-left #workspaces button:hover { + background-color: #3498db; + border-bottom: 8px solid #2980b9; + padding-top: 2px; + padding-bottom: 2px; } #keyboard-state { - background: #97e1ad; - color: #000000; - min-width: 16px; - border-bottom: 8px solid #78b48a; + background-color: #97e1ad; + color: #000000; + border-bottom: 8px solid #558b66; + padding-left: 10px; + padding-right: 10px; + padding-top: 2px; + padding-bottom: 2px; + margin-left: 4px; + margin-right: 4px; + border-radius: 5px; } #keyboard-state > label { - padding: 0 5px; + padding: 0 5px; + background-color: transparent; } #keyboard-state > label.locked { - background: rgba(0, 0, 0, 0.2); + background: rgba(0, 0, 0, 0.2); } #scratchpad { - background: rgba(0, 0, 0, 0.2); + background: rgba(0, 0, 0, 0.2); } #scratchpad.empty { - background-color: transparent; + background-color: transparent; } tooltip { @@ -390,47 +473,46 @@ tooltip label { font-size: 14px; } - #pulseaudio-slider slider { - min-width: 0px; - min-height: 0px; - opacity: 0; - background-image: none; - border: none; - box-shadow: none; + min-width: 0px; + min-height: 0px; + opacity: 0; + background-image: none; + border: none; + box-shadow: none; } #pulseaudio-slider trough { - background-color: #7f849c; - min-width: 80px; - min-height: 5px; - border-radius: 5px; + background-color: #7f849c; + min-width: 80px; + min-height: 5px; + border-radius: 5px; } #pulseaudio-slider highlight { - min-height: 10px; - border-radius: 5px; + min-height: 10px; + border-radius: 5px; } #backlight-slider slider { - min-width: 0px; - min-height: 0px; - opacity: 0; - background-image: none; - border: none; - box-shadow: none; + min-width: 0px; + min-height: 0px; + opacity: 0; + background-image: none; + border: none; + box-shadow: none; } #backlight-slider trough { - background-color: #7f849c; - min-width: 80px; - min-height: 10px; - border-radius: 5px; + background-color: #7f849c; + min-width: 80px; + min-height: 10px; + border-radius: 5px; } #backlight-slider highlight { - min-width: 10px; - border-radius: 5px; + min-width: 10px; + border-radius: 5px; } /* --- tray readability override (global) --- */ diff --git a/config/waybar/style/Colorful-Rainbow-Spectrum.css b/config/waybar/style/Colorful-Rainbow-Spectrum.css index a23fb79a..88deb406 100644 --- a/config/waybar/style/Colorful-Rainbow-Spectrum.css +++ b/config/waybar/style/Colorful-Rainbow-Spectrum.css @@ -2,86 +2,86 @@ /* Rainbow Spectrum */ * { -font-family: "JetBrainsMono Nerd Font"; -font-weight: bold; -min-height: 0; -/* set font-size to 100% if font scaling is set to 1.00 using nwg-look */ -/* NOTE: Waybar v14+ ignores % font-size values */ -font-size: 99%; -font-feature-settings: '"zero", "ss01", "ss02", "ss03", "ss04", "ss05", "cv31"'; + font-family: "JetBrainsMono Nerd Font"; + font-weight: bold; + min-height: 0; + /* set font-size to 100% if font scaling is set to 1.00 using nwg-look */ + /* NOTE: Waybar v14+ ignores % font-size values */ + font-size: 99%; + font-feature-settings: '"zero", "ss01", "ss02", "ss03", "ss04", "ss05", "cv31"'; } window#waybar { - background-color: rgba(0,0,0,0); - transition-property: background-color; - transition-duration: .5s; - /* Waybar scaling: adjust font-size to scale the bar */ - font-size: 14px; + background-color: rgba(0, 0, 0, 0); + transition-property: background-color; + transition-duration: 0.5s; + /* Waybar scaling: adjust font-size to scale the bar */ + font-size: 14px; } window#waybar.hidden { - opacity: 0.5; - /* Waybar scaling: adjust font-size to scale the bar */ - font-size: 14px; + opacity: 0.5; + /* Waybar scaling: adjust font-size to scale the bar */ + font-size: 14px; } window#waybar.empty, window#waybar.empty #window { - padding: 0px; - border: 0px; - background-color: transparent; - /* Waybar scaling: adjust font-size to scale the bar */ - font-size: 14px; + padding: 0px; + border: 0px; + background-color: transparent; + /* Waybar scaling: adjust font-size to scale the bar */ + font-size: 14px; } tooltip { - background: #1e1e2e; - opacity: 0.8; - border-radius: 10px; - border-width: 2px; - border-style: solid; - border-color: #11111b; + background: #1e1e2e; + opacity: 0.8; + border-radius: 10px; + border-width: 2px; + border-style: solid; + border-color: #11111b; } /* Waybar scaling: adjust tooltip label font-size to scale the bar */ -tooltip label{ - color: #cdd6f4; - /* Waybar scaling: adjust tooltip label font-size to scale the bar */ - font-size: 14px; +tooltip label { + color: #cdd6f4; + /* Waybar scaling: adjust tooltip label font-size to scale the bar */ + font-size: 14px; } #taskbar button, #workspaces button { - background-color: #d9e0ee; - color: #3A3B3C; - box-shadow: none; - text-shadow: none; - padding: 0px; - border-radius: 9px; - padding-left: 4px; - padding-right: 4px; - animation: gradient_f 20s ease-in infinite; - transition: all 0.5s cubic-bezier(.55,-0.68,.48,1.682); + background-color: #d9e0ee; + color: #3a3b3c; + box-shadow: none; + text-shadow: none; + padding: 0px; + border-radius: 9px; + padding-left: 4px; + padding-right: 4px; + animation: gradient_f 20s ease-in infinite; + transition: all 0.5s cubic-bezier(0.55, -0.68, 0.48, 1.682); } #taskbar button.active, #workspaces button.active { - background-color: #eba0ac; - color: #3A3B3C; - padding-left: 8px; - padding-right: 8px; - animation: gradient_f 20s ease-in infinite; - transition: all 0.3s cubic-bezier(.55,-0.68,.48,1.682); + background-color: #eba0ac; + color: #3a3b3c; + padding-left: 8px; + padding-right: 8px; + animation: gradient_f 20s ease-in infinite; + transition: all 0.3s cubic-bezier(0.55, -0.68, 0.48, 1.682); } #taskbar button:hover, #workspaces button:hover { - background: #eb6f92; - color: #f6c177; - padding-left: 3px; - padding-right: 3px; - animation: gradient_f 20s ease-in infinite; - transition: all 0.3s cubic-bezier(.55,-0.68,.48,1.682); + background: #eb6f92; + color: #f6c177; + padding-left: 3px; + padding-right: 3px; + animation: gradient_f 20s ease-in infinite; + transition: all 0.3s cubic-bezier(0.55, -0.68, 0.48, 1.682); } #backlight, @@ -139,96 +139,96 @@ tooltip label{ #custom-weather.clearNight, #custom-weather.cloudyFoggyDay, #custom-weather.cloudyFoggyNight, -#custom-weather.default, +#custom-weather.default, #custom-weather.rainyDay, #custom-weather.rainyNight, #custom-weather.severe, #custom-weather.showyIcyDay, #custom-weather.snowyIcyNight, #custom-weather.sunnyDay { - border-radius: 16px; - color: #3A3B3C; - border: 1px solid #b4befe; - padding-top: 4px; - padding-bottom: 4px; - padding-right: 6px; - padding-left: 6px; + border-radius: 16px; + color: #3a3b3c; + border: 1px solid #b4befe; + padding-top: 4px; + padding-bottom: 4px; + padding-right: 6px; + padding-left: 6px; } #backlight { - background-color: #cba6f7; + background-color: #cba6f7; } #battery { - background-color: #f9e2af; + background-color: #f9e2af; } @keyframes blink { - to { - color: #000000; - } + to { + color: #000000; + } } #battery.critical:not(.charging) { - background-color: #f38ba8; - color: #f38ba8; - animation-name: blink; - animation-duration: 3.0s; - animation-timing-function: steps(12); - animation-iteration-count: infinite; - animation-direction: alternate; + background-color: #f38ba8; + color: #f38ba8; + animation-name: blink; + animation-duration: 3s; + animation-timing-function: steps(12); + animation-iteration-count: infinite; + animation-direction: alternate; } #clock { - background-color: #a6e3a1; + background-color: #a6e3a1; } #mpris { - background-color: #fab387; - color: black; + background-color: #fab387; + color: black; } #custom-keyboard, #keyboard-state, #keyboard-state label, #keyboard-state label.locked, #cpu { - background-color: #89dceb; + background-color: #89dceb; } #memory { - background-color: #eba0ac; + background-color: #eba0ac; } #disk { - background-color: #b4befe; + background-color: #b4befe; } #tray { - background-color: #b4befe; + background-color: #b4befe; } #tray > .passive { - -gtk-icon-effect: dim; + -gtk-icon-effect: dim; } #tray > .needs-attention { - -gtk-icon-effect: highlight; + -gtk-icon-effect: highlight; } #custom-menu { - background-color: #f5c2e7; - /*padding: 1px;*/ - padding-right: 10px; - border-radius: 16px; - color: #3A3B3C; - border: 1px solid #b4befe; + background-color: #f5c2e7; + /*padding: 1px;*/ + padding-right: 10px; + border-radius: 16px; + color: #3a3b3c; + border: 1px solid #b4befe; } #custom-power { - background-color: #f38ba8; - padding: 0px 0px 0px 6px; + background-color: #f38ba8; + padding: 0px 0px 0px 0px; } #custom-updater { - background-color: #e6ed7b; + background-color: #e6ed7b; } #custom-cava_mviz, @@ -237,35 +237,35 @@ tooltip label{ #custom-file_manager, #custom-tty, #custom-settings { - background: linear-gradient(45deg, #14e81e 10%, #017ed5 54%, #8d00c4 90%); + background: linear-gradient(45deg, #14e81e 10%, #017ed5 54%, #8d00c4 90%); } #custom-cycle_wall { - background-color: #94e2d5; + background-color: #94e2d5; } #custom-swaync, #custom-weather { - background-color: #cba6f7; + background-color: #cba6f7; } #custom-reboot, #wireplumber { - background-color: #a6e3a1; + background-color: #a6e3a1; } #wireplumber.muted { - background-color: #313244; - color: #cdd6f4; + background-color: #313244; + color: #cdd6f4; } #custom-lock { - background-color: #89dceb; + background-color: #89dceb; } #custom-quit, #temperature { - background-color: #86b4fa; + background-color: #86b4fa; } #temperature.critical { @@ -277,67 +277,68 @@ tooltip label{ #custom-nightlight, #custom-hypridle, #idle_inhibitor { - background-color: #86b4fa; - border-bottom: 8px solid rgba(0, 0, 0, 0.2); + background-color: #86b4fa; + border-bottom: 0px solid rgba(0, 0, 0, 0.2); } /*-----Indicators----*/ #custom-hypridle.notactive, #idle_inhibitor.activated { - color: #39FF14; - border-bottom: 8px solid rgba(0, 0, 0, 0.2); + color: #39ff14; + border-bottom: 0px solid rgba(0, 0, 0, 0.2); } #bluetooth { - background-color: #89dceb; + background-color: #89dceb; } #window { - background-color: #89dceb; + background-color: #89dceb; } #custom-hint, #pulseaudio { - background-color: #fab387; + background-color: #fab387; } #pulseaudio.bluetooth { - background-color: #f5c2e7; + background-color: #f5c2e7; } #pulseaudio.muted { - background-color: #313244; - color: #cdd6f4; + background-color: #313244; + color: #cdd6f4; } #network { - background-color: #89b4fa; - padding-right: 12px; + background-color: #89b4fa; + padding-right: 12px; } -#network.disconnected,#network.disabled { - background-color: #313244; - color: #cdd6f4; +#network.disconnected, +#network.disabled { + background-color: #313244; + color: #cdd6f4; } #backlight-slider slider, #pulseaudio-slider slider { - min-width: 0px; - min-height: 0px; - opacity: 0; - background-image: none; - border: none; - box-shadow: none; + min-width: 0px; + min-height: 0px; + opacity: 0; + background-image: none; + border: none; + box-shadow: none; } #backlight-slider trough, #pulseaudio-slider trough { - min-width: 80px; - min-height: 5px; - border-radius: 5px; + min-width: 80px; + min-height: 5px; + border-radius: 5px; } #backlight-slider highlight, #pulseaudio-slider highlight { - min-height: 10px; - border-radius: 5px; + min-height: 10px; + border-radius: 5px; } /* --- tray readability override (global) --- */ diff --git a/config/waybar/style/Colorful-stolen-style.css b/config/waybar/style/Colorful-stolen-style.css index b3ba6149..35d96a0a 100644 --- a/config/waybar/style/Colorful-stolen-style.css +++ b/config/waybar/style/Colorful-stolen-style.css @@ -1,13 +1,13 @@ /* ----------- 💫 https://github.com/LinuxBeginnings 💫 -------- */ /* ....[Colorful] Stolen ......... */ * { - font-family: "JetBrainsMono Nerd Font"; - font-weight: bold; - min-height: 0; - /* set font-size to 100% if font scaling is set to 1.00 using nwg-look */ - /* NOTE: Waybar v14+ ignores % font-size values */ - font-size: 99%; - font-feature-settings: '"zero", "ss01", "ss02", "ss03", "ss04", "ss05", "cv31"'; + font-family: "JetBrainsMono Nerd Font"; + font-weight: bold; + min-height: 0; + /* set font-size to 100% if font scaling is set to 1.00 using nwg-look */ + /* NOTE: Waybar v14+ ignores % font-size values */ + font-size: 99%; + font-feature-settings: '"zero", "ss01", "ss02", "ss03", "ss04", "ss05", "cv31"'; } window#waybar { @@ -126,7 +126,7 @@ window#waybar.empty #window { #idle_inhibitor { color: #7aa2f7; - border-bottom: 2px solid #455a64; + border-top: 2px solid #455a64; } #backlight { @@ -189,7 +189,6 @@ window#waybar.empty #window { #custom-niflveil.empty { color: #c0caf5; - } #cpu { @@ -247,17 +246,15 @@ window#waybar.empty #window { } #custom-menu { - color: #7dcfff; padding-left: 14px; padding-right: 12px; } #custom-power { - color: #f7768e; - padding-left: 8px; - padding-right: 17px; + padding-left: 6px; + padding-right: 10px; } #custom-updater { @@ -266,7 +263,6 @@ window#waybar.empty #window { border-radius: 20px; padding-left: 10pt; padding-right: 12px; - } #custom-light_dark { @@ -275,7 +271,6 @@ window#waybar.empty #window { #custom-weather { color: #9fe044; - } #custom-speaker { @@ -284,7 +279,6 @@ window#waybar.empty #window { #pulseaudio { color: #faba4a; - } #pulseaudio.bluetooth { diff --git a/config/waybar/style/Dark-Golden-Eclipse.css b/config/waybar/style/Dark-Golden-Eclipse.css index 0a8e7fe4..2a45a91a 100644 --- a/config/waybar/style/Dark-Golden-Eclipse.css +++ b/config/waybar/style/Dark-Golden-Eclipse.css @@ -2,26 +2,25 @@ /* Golden Eclipse */ * { -font-family: "JetBrainsMono Nerd Font"; -font-weight: bold; -min-height: 0; -/* set font-size to 100% if font scaling is set to 1.00 using nwg-look */ -/* NOTE: Waybar v14+ ignores % font-size values */ -font-size: 99%; -font-feature-settings: '"zero", "ss01", "ss02", "ss03", "ss04", "ss05", "cv31"'; -padding: 1px; + font-family: "JetBrainsMono Nerd Font"; + font-weight: bold; + min-height: 0; + /* set font-size to 100% if font scaling is set to 1.00 using nwg-look */ + /* NOTE: Waybar v14+ ignores % font-size values */ + font-size: 99%; + font-feature-settings: '"zero", "ss01", "ss02", "ss03", "ss04", "ss05", "cv31"'; + padding: 1px; } - window#waybar { transition-property: background-color; transition-duration: 0.5s; - background: #000000; - padding-top: 3px; - padding-bottom: 3px; - padding-right: 4px; - padding-left: 4px; - border-radius: 12px; + background: #000000; + padding-top: 3px; + padding-bottom: 3px; + padding-right: 4px; + padding-left: 4px; + border-radius: 12px; /* Waybar scaling: adjust font-size to scale the bar */ font-size: 14px; } @@ -51,7 +50,7 @@ window#waybar.hidden { #network, #power-profiles-daemon, #pulseaudio, -#pulseaudio-slider, +#pulseaudio-slider, #taskbar, #temperature, #tray, @@ -89,18 +88,18 @@ window#waybar.hidden { #custom-weather.clearNight, #custom-weather.cloudyFoggyDay, #custom-weather.cloudyFoggyNight, -#custom-weather.default, +#custom-weather.default, #custom-weather.rainyDay, #custom-weather.rainyNight, #custom-weather.severe, #custom-weather.showyIcyDay, #custom-weather.snowyIcyNight, -#custom-weather.sunnyDay{ - color: #fcba03; - padding-top: 3px; - padding-bottom: 3px; - padding-right: 6px; - padding-left: 6px; +#custom-weather.sunnyDay { + color: #fcba03; + padding-top: 3px; + padding-bottom: 3px; + padding-right: 6px; + padding-left: 6px; } #temperature.critical { @@ -115,73 +114,72 @@ window#waybar.hidden { } @keyframes blink { - to { - color: #000000; - } + to { + color: #000000; + } } /*-----Indicators----*/ #custom-hypridle.notactive, #idle_inhibitor.activated { - color: cyan; - border-bottom: 8px solid rgba(0, 0, 0, 0.2); + color: cyan; + border-top: 8px solid rgba(0, 0, 0, 0.2); } #battery.critical:not(.charging) { - color: #f53c3c; - animation-name: blink; - animation-duration: 3.0s; - animation-timing-function: steps(12); - animation-iteration-count: infinite; - animation-direction: alternate; + color: #f53c3c; + animation-name: blink; + animation-duration: 3s; + animation-timing-function: steps(12); + animation-iteration-count: infinite; + animation-direction: alternate; } #taskbar button, #workspaces button { - box-shadow: none; - text-shadow: none; - padding: 0px; - border-radius: 9px; - padding-left: 4px; - padding-right: 4px; - animation: gradient_f 20s ease-in infinite; - transition: all 0.5s cubic-bezier(.55,-0.68,.48,1.682); - color: #fcba03; + box-shadow: none; + text-shadow: none; + padding: 0px; + border-radius: 9px; + padding-left: 4px; + padding-right: 4px; + animation: gradient_f 20s ease-in infinite; + transition: all 0.5s cubic-bezier(0.55, -0.68, 0.48, 1.682); + color: #fcba03; } #taskbar button:hover, #workspaces button:hover { - border-radius: 10px; - color: #a6adc8; - background-color: #ffeb8a; - padding-left: 2px; - padding-right: 2px; - animation: gradient_f 20s ease-in infinite; - transition: all 0.3s cubic-bezier(.55,-0.68,.48,1.682); + border-radius: 10px; + color: #a6adc8; + background-color: #ffeb8a; + padding-left: 2px; + padding-right: 2px; + animation: gradient_f 20s ease-in infinite; + transition: all 0.3s cubic-bezier(0.55, -0.68, 0.48, 1.682); } #workspaces button.persistent { - color: #fcba03; - border-radius: 10px; + color: #fcba03; + border-radius: 10px; } #taskbar button.active, #workspaces button.active { - color: black; - background-color: #fcba03; - border-radius: 10px; - padding-left: 8px; - padding-right: 8px; - animation: gradient_f 20s ease-in infinite; - transition: all 0.3s cubic-bezier(.55,-0.68,.48,1.682); + color: black; + background-color: #fcba03; + border-radius: 10px; + padding-left: 8px; + padding-right: 8px; + animation: gradient_f 20s ease-in infinite; + transition: all 0.3s cubic-bezier(0.55, -0.68, 0.48, 1.682); } #workspaces button.urgent { - color: red; - border-radius: 0px; + color: red; + border-radius: 0px; } - #pulseaudio.muted { color: red; } @@ -194,25 +192,25 @@ window#waybar.hidden { #backlight-slider slider, #pulseaudio-slider slider { - min-width: 0px; - min-height: 0px; - opacity: 0; - background-image: none; - border: none; - box-shadow: none; + min-width: 0px; + min-height: 0px; + opacity: 0; + background-image: none; + border: none; + box-shadow: none; } #backlight-slider trough, #pulseaudio-slider trough { - min-width: 80px; - min-height: 5px; - border-radius: 5px; + min-width: 80px; + min-height: 5px; + border-radius: 5px; } #backlight-slider highlight, #pulseaudio-slider highlight { - min-height: 10px; - border-radius: 5px; + min-height: 10px; + border-radius: 5px; } /* --- tray readability override (global) --- */ diff --git a/config/waybar/style/Dark-Golden-Noir.css b/config/waybar/style/Dark-Golden-Noir.css index edfd3c7f..d9b4c33c 100644 --- a/config/waybar/style/Dark-Golden-Noir.css +++ b/config/waybar/style/Dark-Golden-Noir.css @@ -3,101 +3,100 @@ /* --- 👍 designed by https://github.com/Krautt 👍 --- */ * { - font-family: "JetBrainsMono Nerd Font"; - font-weight: bold; - min-height: 0; - /* set font-size to 100% if font scaling is set to 1.00 using nwg-look */ - /* NOTE: Waybar v14+ ignores % font-size values */ - font-size: 99%; - font-feature-settings: '"zero", "ss01", "ss02", "ss03", "ss04", "ss05", "cv31"'; + font-family: "JetBrainsMono Nerd Font"; + font-weight: bold; + min-height: 0; + /* set font-size to 100% if font scaling is set to 1.00 using nwg-look */ + /* NOTE: Waybar v14+ ignores % font-size values */ + font-size: 99%; + font-feature-settings: '"zero", "ss01", "ss02", "ss03", "ss04", "ss05", "cv31"'; } window#waybar { - background: #040406; - border-radius: 30px; - color: #cba6f7; + background: #040406; + border-radius: 30px; + color: #cba6f7; - /* Waybar scaling: adjust font-size to scale the bar */ - font-size: 14px; + /* Waybar scaling: adjust font-size to scale the bar */ + font-size: 14px; } window#waybar.hidden { - opacity: 0.5; - /* Waybar scaling: adjust font-size to scale the bar */ - font-size: 14px; + opacity: 0.5; + /* Waybar scaling: adjust font-size to scale the bar */ + font-size: 14px; } tooltip { - background: #1e1e2e; - border-radius: 10px; - border-width: 2px; - border-style: solid; - border-color: #11111b; - color: #ffd700; + background: #1e1e2e; + border-radius: 10px; + border-width: 2px; + border-style: solid; + border-color: #11111b; + color: #ffd700; } /*-----module groups----*/ .modules-left, .modules-right { - padding-top: 2px; - padding-bottom: 2px; - padding-right: 4px; - padding-left: 4px; - + padding-top: 2px; + padding-bottom: 2px; + padding-right: 4px; + padding-left: 4px; } .modules-center { - border-left: 1px solid #ffd700; - border-right: 1px solid #ffd700; - border-radius: 20px; - padding-top: 2px; - padding-bottom: 2px; - padding-right: 4px; - padding-left: 4px; + border-left: 1px solid #ffd700; + border-right: 1px solid #ffd700; + border-radius: 20px; + padding-top: 2px; + padding-bottom: 2px; + padding-right: 4px; + padding-left: 4px; } #taskbar button, #workspaces button { - color: #6E6A86; - box-shadow: none; - text-shadow: none; - padding: 0px; - border-radius: 9px; - padding-left: 4px; - padding-right: 4px; - animation: gradient_f 20s ease-in infinite; - transition: all 0.5s cubic-bezier(.55,-0.68,.48,1.682); + color: #6e6a86; + box-shadow: none; + text-shadow: none; + padding: 0px; + border-radius: 9px; + padding-left: 4px; + padding-right: 4px; + animation: gradient_f 20s ease-in infinite; + transition: all 0.5s cubic-bezier(0.55, -0.68, 0.48, 1.682); } #taskbar button.active, #workspaces button.active { - color: #ffd700; - border-radius: 50%; - background-color: black; - border-radius: 15px 15px 15px 15px; - padding-left: 8px; - padding-right: 8px; - animation: gradient_f 20s ease-in infinite; - transition: all 0.3s cubic-bezier(.55,-0.68,.48,1.682); + color: #ffd700; + border-radius: 50%; + background-color: black; + border-radius: 15px 15px 15px 15px; + padding-left: 8px; + padding-right: 8px; + animation: gradient_f 20s ease-in infinite; + transition: all 0.3s cubic-bezier(0.55, -0.68, 0.48, 1.682); } #workspaces button.focused { - color: #d8dee9; + color: #d8dee9; } #workspaces button.urgent { - color: #11111b; - border-radius: 10px; + color: #11111b; + border-radius: 10px; } #taskbar button:hover, #workspaces button:hover { - color: #ffd700; - border-radius: 15px; - padding-left: 2px; - padding-right: 2px; - animation: gradient_f 20s ease-in infinite; - transition: all 0.3s cubic-bezier(.55,-0.68,.48,1.682); + color: #ffd700; + border-radius: 15px; + padding-left: 2px; + padding-right: 2px; + animation: gradient_f 20s ease-in infinite; + transition: all 0.3s cubic-bezier(0.55, -0.68, 0.48, 1.682); } #backlight, @@ -154,69 +153,69 @@ tooltip { #custom-weather.clearNight, #custom-weather.cloudyFoggyDay, #custom-weather.cloudyFoggyNight, -#custom-weather.default, +#custom-weather.default, #custom-weather.rainyDay, #custom-weather.rainyNight, #custom-weather.severe, #custom-weather.showyIcyDay, #custom-weather.snowyIcyNight, #custom-weather.sunnyDay { - color: #e5d9f5; - padding-top: 5px; - padding-bottom: 5px; - padding-right: 6px; - padding-left: 6px; + color: #e5d9f5; + padding-top: 5px; + padding-bottom: 5px; + padding-right: 6px; + padding-left: 6px; } #temperature.critical { - background-color: #ff0000; + background-color: #ff0000; } @keyframes blink { - to { - color: #000000; - } + to { + color: #000000; + } } /*-----Indicators----*/ #custom-hypridle.notactive, #idle_inhibitor.activated { - color: #39FF14; - border-bottom: 8px solid rgba(0, 0, 0, 0.2); + color: #39ff14; + border-top: 8px solid rgba(0, 0, 0, 0.2); } #battery.critical:not(.charging) { - color: #f53c3c; - animation-name: blink; - animation-duration: 3.0s; - animation-timing-function: steps(12); - animation-iteration-count: infinite; - animation-direction: alternate; + color: #f53c3c; + animation-name: blink; + animation-duration: 3s; + animation-timing-function: steps(12); + animation-iteration-count: infinite; + animation-direction: alternate; } #backlight-slider slider, #pulseaudio-slider slider { - min-width: 0px; - min-height: 0px; - opacity: 0; - background-image: none; - border: none; - box-shadow: none; + min-width: 0px; + min-height: 0px; + opacity: 0; + background-image: none; + border: none; + box-shadow: none; } #backlight-slider trough, #pulseaudio-slider trough { - min-width: 80px; - min-height: 5px; - border-radius: 5px; - background-color: #22252a; + min-width: 80px; + min-height: 5px; + border-radius: 5px; + background-color: #22252a; } #backlight-slider highlight, #pulseaudio-slider highlight { - min-height: 10px; - border-radius: 5px; - background-color: #ba5663; + min-height: 10px; + border-radius: 5px; + background-color: #ba5663; } /* --- tray readability override (global) --- */ diff --git a/config/waybar/style/Dark-Half-Moon.css b/config/waybar/style/Dark-Half-Moon.css index 797a1c68..776ffcc3 100644 --- a/config/waybar/style/Dark-Half-Moon.css +++ b/config/waybar/style/Dark-Half-Moon.css @@ -4,45 +4,46 @@ /* --- 👍 shared by https://github.com/TomekBobrowicz 👍 --- */ * { - font-family: "JetBrainsMono Nerd Font"; - font-weight: bold; - min-height: 0; - /* set font-size to 100% if font scaling is set to 1.00 using nwg-look */ - /* NOTE: Waybar v14+ ignores % font-size values */ - font-size: 99%; - font-feature-settings: '"zero", "ss01", "ss02", "ss03", "ss04", "ss05", "cv31"'; + font-family: "JetBrainsMono Nerd Font"; + font-weight: bold; + min-height: 0; + /* set font-size to 100% if font scaling is set to 1.00 using nwg-look */ + /* NOTE: Waybar v14+ ignores % font-size values */ + font-size: 99%; + font-feature-settings: '"zero", "ss01", "ss02", "ss03", "ss04", "ss05", "cv31"'; } - window#waybar { - background-color: rgba(26,27,38,0); - border-bottom: 1px solid rgba(26,27,38,0); + background-color: rgba(26, 27, 38, 0); + border-bottom: 1px solid rgba(26, 27, 38, 0); border-radius: 0px; - color: #E6B673; + color: #e6b673; /* Waybar scaling: adjust font-size to scale the bar */ font-size: 14px; } -#waybar.empty, #waybar.tiled, #waybar.floating { - background-color: transparent; +#waybar.empty, +#waybar.tiled, +#waybar.floating { + background-color: transparent; } window#waybar.empty, window#waybar.empty #window { - background-color: transparent; - /* Waybar scaling: adjust font-size to scale the bar */ - font-size: 14px; + background-color: transparent; + /* Waybar scaling: adjust font-size to scale the bar */ + font-size: 14px; } #taskbar, #workspaces { - background: #0F1419; + background: #0f1419; margin: 5px; padding: 0px 1px; border-radius: 15px; border: 0px; font-style: normal; - color: #0F1419; + color: #0f1419; } #taskbar button, @@ -51,10 +52,10 @@ window#waybar.empty #window { margin: 4px 3px; border-radius: 15px; border: 0px; - color: #0F1419; - background: linear-gradient(45deg, #95E6CB, #59C2FF, #D2A6FF); + color: #0f1419; + background: linear-gradient(45deg, #95e6cb, #59c2ff, #d2a6ff); opacity: 0.5; - transition: all 0.3s cubic-bezier(.55,-0.68,.48,1.682); + transition: all 0.3s cubic-bezier(0.55, -0.68, 0.48, 1.682); } #taskbar button.active, @@ -63,70 +64,69 @@ window#waybar.empty #window { margin: 4px 3px; border-radius: 15px; border: 0px; - color: #0F1419; - background: linear-gradient(45deg, #59C2FF, #D2A6FF); - opacity: 1.0; + color: #0f1419; + background: linear-gradient(45deg, #59c2ff, #d2a6ff); + opacity: 1; min-width: 40px; - transition: all 0.3s cubic-bezier(.55,-0.68,.48,1.682); + transition: all 0.3s cubic-bezier(0.55, -0.68, 0.48, 1.682); } #workspaces button:hover { border-radius: 15px; - color: #0F1419; - background: linear-gradient(45deg, #59C2FF, #D2A6FF); + color: #0f1419; + background: linear-gradient(45deg, #59c2ff, #d2a6ff); opacity: 0.8; - transition: all 0.3s cubic-bezier(.55,-0.68,.48,1.682); - + transition: all 0.3s cubic-bezier(0.55, -0.68, 0.48, 1.682); } @keyframes gradient_horizontal { -0% { - background-position: 0% 50%; - } -50% { - background-position: 100% 50%; - } -100% { - background-position: 0% 50%; - } + 0% { + background-position: 0% 50%; + } + 50% { + background-position: 100% 50%; + } + 100% { + background-position: 0% 50%; + } } @keyframes swiping { -0% { - background-position: 0% 200%; - } -100% { - background-position: 200% 200%; - } + 0% { + background-position: 0% 200%; + } + 100% { + background-position: 200% 200%; + } } tooltip { -background: #0F1419; -border: 1px solid #D2A6FF; -border-radius: 10px; + background: #0f1419; + border: 1px solid #d2a6ff; + border-radius: 10px; } /* Waybar scaling: adjust tooltip label font-size to scale the bar */ tooltip label { -color: #F3F4F5; -/* Waybar scaling: adjust tooltip label font-size to scale the bar */ -font-size: 14px; + color: #f3f4f5; + /* Waybar scaling: adjust tooltip label font-size to scale the bar */ + font-size: 14px; } #window { - color: #E6E1CF; - background: #0F1419; - border-radius: 50px 50px; - margin: 5px; - padding: 2px 15px; + color: #e6e1cf; + background: #0f1419; + border-radius: 50px 50px; + margin: 5px; + padding: 2px 15px; } #temperature, #memory { - color: #E6B673; - background: #0F1419; - border-radius: 50px 50px; - margin: 5px; - padding: 2px 15px; + color: #e6b673; + background: #0f1419; + border-radius: 50px 50px; + margin: 5px; + padding: 2px 15px; } #custom-light_dark, @@ -137,205 +137,205 @@ font-size: 14px; #custom-hypr_layout, #idle_inhibitor, #clock { - color: #B8CC52; - background: #0F1419; - border-radius: 50px 50px; - margin: 5px; - padding: 2px 15px; + color: #b8cc52; + background: #0f1419; + border-radius: 50px 50px; + margin: 5px; + padding: 2px 15px; } /*-----Indicators----*/ #custom-hypridle.notactive, #idle_inhibitor.activated { - color: #39FF14; - border-bottom: 1px solid rgba(26,27,38,0); + color: #39ff14; + border-top: 6px solid rgba(26, 27, 38, 0); } #bluetooth { - color: blue; - background: #0F1419; - border-radius: 50px 50px; - margin: 5px; - padding: 2px 15px; + color: blue; + background: #0f1419; + border-radius: 50px 50px; + margin: 5px; + padding: 2px 15px; } #custom-playerctl, #power-profiles-daemon, #custom-cycle_wall, #cpu { - color: #F3F4F5; - background: #0F1419; - border-radius: 50px 50px; - margin: 5px; - padding: 2px 15px; + color: #f3f4f5; + background: #0f1419; + border-radius: 50px 50px; + margin: 5px; + padding: 2px 15px; } #disk { - color: #B8CC52; - background: #0F1419; - border-radius: 50px 50px; - margin: 5px; - padding: 2px 15px; + color: #b8cc52; + background: #0f1419; + border-radius: 50px 50px; + margin: 5px; + padding: 2px 15px; } #backlight, #battery { - color: #F07178; - background: #0F1419; - border-radius: 50px 50px; - margin: 5px; - padding: 2px 15px; + color: #f07178; + background: #0f1419; + border-radius: 50px 50px; + margin: 5px; + padding: 2px 15px; } #mpris { - color: #F07178; - background: #0F1419; - border-radius: 50px 50px; - margin: 5px; - padding-left: 8px; - padding-right: 2px; + color: #f07178; + background: #0f1419; + border-radius: 50px 50px; + margin: 5px; + padding-left: 8px; + padding-right: 2px; } #backlight { - color: white; - background: #0F1419; - border-radius: 50px 50px; - margin: 5px; - padding: 2px 15px; + color: white; + background: #0f1419; + border-radius: 50px 50px; + margin: 5px; + padding: 2px 15px; } #network { - color: #FF8F40; - background: #0F1419; - border-radius: 50px 50px; - margin: 5px; - padding: 2px 15px; + color: #ff8f40; + background: #0f1419; + border-radius: 50px 50px; + margin: 5px; + padding: 2px 15px; } #custom-hyprbindings { - color: #D2A6FF; - background: #0F1419; - background: #0F1419; - border-radius: 50px 50px; - margin: 5px; - padding: 2px 15px; + color: #d2a6ff; + background: #0f1419; + background: #0f1419; + border-radius: 50px 50px; + margin: 5px; + padding: 2px 15px; } #tray { - color: #E6E1CF; - background: #0F1419; - border-radius: 50px 50px; - margin: 5px; - padding: 2px 15px; + color: #e6e1cf; + background: #0f1419; + border-radius: 50px 50px; + margin: 5px; + padding: 2px 15px; } #pulseaudio { - color: #59C2FF; - background: #0F1419; - border-radius: 50px 50px; - margin: 5px; - padding: 2px 15px; + color: #59c2ff; + background: #0f1419; + border-radius: 50px 50px; + margin: 5px; + padding: 2px 15px; } #custom-notification { - color: #95E6CB; - background: #0F1419; - border-radius: 50px 50px; - margin: 5px; - padding: 2px 15px; + color: #95e6cb; + background: #0f1419; + border-radius: 50px 50px; + margin: 5px; + padding: 2px 15px; } #custom-browser, #custom-file_manager, #custom-tty, #custom-settings { - border-radius: 50px 50px; - margin: 5px; - padding: 2px 15px; - color: #0F1419; - background: linear-gradient(45deg, #95E6CB, #59C2FF, #D2A6FF); + border-radius: 50px 50px; + margin: 5px; + padding: 2px 15px; + color: #0f1419; + background: linear-gradient(45deg, #95e6cb, #59c2ff, #d2a6ff); } #custom-weather { - color: #59C2FF; - background: #0F1419; - border-radius: 50px 50px; - margin: 5px; - padding: 2px 15px; + color: #59c2ff; + background: #0f1419; + border-radius: 50px 50px; + margin: 5px; + padding: 2px 15px; } #custom-weather2 { - color: #59C2FF; - background: #0F1419; - border-radius: 50px 50px; - margin: 5px; - padding: 2px 15px; + color: #59c2ff; + background: #0f1419; + border-radius: 50px 50px; + margin: 5px; + padding: 2px 15px; } #custom-menu { - color: #59C2FF; - background: #0F1419; - border-radius: 0px 15px 50px 0px; - margin: 5px 5px 5px 0px; - padding: 1px 15px; + color: #59c2ff; + background: #0f1419; + border-radius: 0px 15px 50px 0px; + margin: 5px 5px 5px 0px; + padding: 1px 15px; } #custom-power { - color: #D2A6FF; - background: #0F1419; - border-radius: 15px 0px 0px 50px; - margin: 5px 0px; - padding: 2px 5px 2px 15px; -} + color: #d2a6ff; + background: #0f1419; + border-radius: 15px 0px 0px 50px; + margin: 5px 0px; + padding: 2px 5px 2px 15px; +} #custom-lock { - color: red; - background: #0F1419; - border-radius: 50px 50px; - margin: 5px; - padding: 2px 15px; + color: red; + background: #0f1419; + border-radius: 50px 50px; + margin: 5px; + padding: 2px 15px; } #custom-power_vertical, #keyboard-state { - color: green; - background: #0F1419; - border-radius: 50px 50px; - margin: 5px; - padding: 2px 15px; + color: green; + background: #0f1419; + border-radius: 50px 50px; + margin: 5px; + padding: 2px 15px; } #battery.critical:not(.charging) { - color: #f53c3c; - animation-name: blink; - animation-duration: 3.0s; - animation-timing-function: steps(12); - animation-iteration-count: infinite; - animation-direction: alternate; + color: #f53c3c; + animation-name: blink; + animation-duration: 3s; + animation-timing-function: steps(12); + animation-iteration-count: infinite; + animation-direction: alternate; } #backlight-slider slider, #pulseaudio-slider slider { - min-width: 0px; - min-height: 0px; - opacity: 0; - background-image: none; - border: none; - box-shadow: none; + min-width: 0px; + min-height: 0px; + opacity: 0; + background-image: none; + border: none; + box-shadow: none; } #backlight-slider trough, #pulseaudio-slider trough { - min-width: 80px; - min-height: 5px; - border-radius: 5px; - background-color: #6E6A86; + min-width: 80px; + min-height: 5px; + border-radius: 5px; + background-color: #6e6a86; } #backlight-slider highlight, #pulseaudio-slider highlight { - min-height: 10px; - border-radius: 5px; - background-color: purple; + min-height: 10px; + border-radius: 5px; + background-color: purple; } /* --- tray readability override (global) --- */ diff --git a/config/waybar/style/Dark-Latte-Wallust-combined.css b/config/waybar/style/Dark-Latte-Wallust-combined.css index 898c3dc2..7f698cb5 100644 --- a/config/waybar/style/Dark-Latte-Wallust-combined.css +++ b/config/waybar/style/Dark-Latte-Wallust-combined.css @@ -17,106 +17,106 @@ @define-color button-color @color11; @define-color button-hover @color13; -@import '../../.config/waybar/wallust/colors-waybar.css'; +@import "../../.config/waybar/wallust/colors-waybar.css"; @import "../waybar/style/catppuccin-themes/latte.css"; * { - font-family: "JetBrainsMono Nerd Font"; - font-weight: bold; - min-height: 0; - /* set font-size to 100% if font scaling is set to 1.00 using nwg-look */ - /* NOTE: Waybar v14+ ignores % font-size values */ - font-size: 99%; - font-feature-settings: '"zero", "ss01", "ss02", "ss03", "ss04", "ss05", "cv31"'; + font-family: "JetBrainsMono Nerd Font"; + font-weight: bold; + min-height: 0; + /* set font-size to 100% if font scaling is set to 1.00 using nwg-look */ + /* NOTE: Waybar v14+ ignores % font-size values */ + font-size: 99%; + font-feature-settings: '"zero", "ss01", "ss02", "ss03", "ss04", "ss05", "cv31"'; } window#waybar { - background: transparent; - border-radius: 0px; - color: #cba6f7; - /* Waybar scaling: adjust font-size to scale the bar */ - font-size: 14px; + background: transparent; + border-radius: 0px; + color: #cba6f7; + /* Waybar scaling: adjust font-size to scale the bar */ + font-size: 14px; } window#waybar.hidden { - opacity: 0; - /* Waybar scaling: adjust font-size to scale the bar */ - font-size: 14px; + opacity: 0; + /* Waybar scaling: adjust font-size to scale the bar */ + font-size: 14px; } tooltip { - background: #1e1e2e; - border-radius: 12px; - border-width: 1px; - border-style: solid; - border-color: @border-color; - color: #ffffff; + background: #1e1e2e; + border-radius: 12px; + border-width: 1px; + border-style: solid; + border-color: @border-color; + color: #ffffff; } /*-----module groups----*/ .modules-left, .modules-center, .modules-right { - background-color: @background-module; - border-radius:15px; - border-bottom:2px solid @border-color; - padding-top: 2px; - padding-bottom: 0px; - padding-right: 4px; - padding-left: 4px; + background-color: @background-module; + border-radius: 15px; + border-bottom: 2px solid @border-color; + padding-top: 2px; + padding-bottom: 0px; + padding-right: 4px; + padding-left: 4px; } #workspaces { - padding: 0px 1px; - border-radius: 15px; - border:2px solid @border-color; - font-weight: bold; - font-style: normal; - opacity: 1; - color:#FFFFFF; + padding: 0px 1px; + border-radius: 15px; + border: 2px solid @border-color; + font-weight: bold; + font-style: normal; + opacity: 1; + color: #ffffff; } -#taskbar button, +#taskbar button, #workspaces button { - color: @color15; - box-shadow: none; - text-shadow: none; - border-radius: 30px; - padding-left: 4px; - padding-right: 4px; - animation: gradient_f 20s ease-in infinite; - transition: all 0.5s cubic-bezier(.55,-0.68,.48,1.682); + color: @color15; + box-shadow: none; + text-shadow: none; + border-radius: 30px; + padding-left: 4px; + padding-right: 4px; + animation: gradient_f 20s ease-in infinite; + transition: all 0.5s cubic-bezier(0.55, -0.68, 0.48, 1.682); } #taskbar button.active, #workspaces button.active { - color: #ffd700; - border-radius: 50%; - background-color: black; - border-radius: 15px 15px 15px 15px; - padding-left: 8px; - padding-right: 8px; - animation: gradient_f 20s ease-in infinite; - transition: all 0.3s cubic-bezier(.55,-0.68,.48,1.682); + color: #ffd700; + border-radius: 50%; + background-color: black; + border-radius: 15px 15px 15px 15px; + padding-left: 8px; + padding-right: 8px; + animation: gradient_f 20s ease-in infinite; + transition: all 0.3s cubic-bezier(0.55, -0.68, 0.48, 1.682); } #workspaces button.focused { - color: #d8dee9; + color: #d8dee9; } #workspaces button.urgent { - color: #11111b; - border-radius: 10px; + color: #11111b; + border-radius: 10px; } #taskbar button:hover, #workspaces button:hover { - color: #ffd700; - border-radius: 10px; - padding-left: 2px; - padding-right: 2px; - animation: gradient_f 20s ease-in infinite; - transition: all 0.3s cubic-bezier(.55,-0.68,.48,1.682); + color: #ffd700; + border-radius: 10px; + padding-left: 2px; + padding-right: 2px; + animation: gradient_f 20s ease-in infinite; + transition: all 0.3s cubic-bezier(0.55, -0.68, 0.48, 1.682); } #backlight, @@ -173,120 +173,122 @@ tooltip { #custom-weather.clearNight, #custom-weather.cloudyFoggyDay, #custom-weather.cloudyFoggyNight, -#custom-weather.default, +#custom-weather.default, #custom-weather.rainyDay, #custom-weather.rainyNight, #custom-weather.severe, #custom-weather.showyIcyDay, #custom-weather.snowyIcyNight, #custom-weather.sunnyDay { - color: #e5d9f5; - padding-right: 6px; - padding-left: 6px;; + color: #e5d9f5; + padding-right: 6px; + padding-left: 6px; } #temperature.critical { - background-color: #ff0000; + background-color: #ff0000; } @keyframes blink { - to { - color: #000000; - } + to { + color: #000000; + } } #backlight-slider slider, #pulseaudio-slider slider { - min-width: 0px; - min-height: 0px; - opacity: 0; - background-image: none; - border: none; - box-shadow: none; + min-width: 0px; + min-height: 0px; + opacity: 0; + background-image: none; + border: none; + box-shadow: none; } #backlight-slider trough, #pulseaudio-slider trough { - min-width: 80px; - min-height: 5px; - border-radius: 5px; - background-color: #22252a; + min-width: 80px; + min-height: 5px; + border-radius: 5px; + background-color: #22252a; } #backlight-slider highlight, #pulseaudio-slider highlight { - min-height: 10px; - border-radius: 5px; - background-color: #ba5663; + min-height: 10px; + border-radius: 5px; + background-color: #ba5663; } #pulseaudio-slider, #pulseaudio { - color: @color13; + color: @color13; } #pulseaudio.muted { - color: red; + color: red; } #memory { - color: @sapphire; + color: @sapphire; } #cpu { - color: @mauve; + color: @mauve; } #battery { - color: @rosewater; + color: @rosewater; } #disk { - color: @sky; + color: @sky; } #temperature.critical { - background-color: @red; + background-color: @red; } #battery.critical:not(.charging) { - color: #f53c3c; - animation-name: blink; - animation-duration: 3.0s; - animation-timing-function: steps(12); - animation-iteration-count: infinite; - animation-direction: alternate; + color: #f53c3c; + animation-name: blink; + animation-duration: 3s; + animation-timing-function: steps(12); + animation-iteration-count: infinite; + animation-direction: alternate; } #custom-hypridle, #custom-lock, #idle_inhibitor { - color: @teal; - border-bottom: 8px solid rgba(0, 0, 0, 0.2); + color: @teal; + padding-top: 8px; + border-bottom: 8px solid rgba(0, 0, 0, 0); } /*-----Indicators----*/ #custom-hypridle.notactive, #idle_inhibitor.activated { - color: #39FF14; - border-bottom: 8px solid rgba(0, 0, 0, 0.2); + color: #39ff14; + padding-top: 8px; + border-bottom: 8px solid rgba(0, 0, 0, 0); } - #clock#2 { - color: #efe8f7; + color: #efe8f7; } #clock { - color: @sapphire; - border-radius: 15px; - border:2px solid @border-color; + color: @sapphire; + border-radius: 15px; + border: 2px solid @border-color; } #custom-updates { - color: @yellow; + color: @yellow; +} +#swaync { + color: #ffd700; } -#swaync{ - color: #ffd700;} /* --- tray readability override (global) --- */ #tray > *, diff --git a/config/waybar/style/Dark-Purpl.css b/config/waybar/style/Dark-Purpl.css index 9fa8f628..586aca3b 100644 --- a/config/waybar/style/Dark-Purpl.css +++ b/config/waybar/style/Dark-Purpl.css @@ -3,105 +3,105 @@ /* --- 👍 designed by https://github.com/Krautt 👍 --- */ * { - font-family: "JetBrainsMono Nerd Font"; - font-weight: bold; - min-height: 0; - /* set font-size to 100% if font scaling is set to 1.00 using nwg-look */ - /* NOTE: Waybar v14+ ignores % font-size values */ - font-size: 99%; - font-feature-settings: '"zero", "ss01", "ss02", "ss03", "ss04", "ss05", "cv31"'; + font-family: "JetBrainsMono Nerd Font"; + font-weight: bold; + min-height: 0; + /* set font-size to 100% if font scaling is set to 1.00 using nwg-look */ + /* NOTE: Waybar v14+ ignores % font-size values */ + font-size: 99%; + font-feature-settings: '"zero", "ss01", "ss02", "ss03", "ss04", "ss05", "cv31"'; } window#waybar { - background: #100214; - color: #cba6f7; - /* Waybar scaling: adjust font-size to scale the bar */ - font-size: 14px; + background: #100214; + color: #cba6f7; + /* Waybar scaling: adjust font-size to scale the bar */ + font-size: 14px; } window#waybar.hidden { - opacity: 0.5; - /* Waybar scaling: adjust font-size to scale the bar */ - font-size: 14px; + opacity: 0.5; + /* Waybar scaling: adjust font-size to scale the bar */ + font-size: 14px; } tooltip { - background: #1e1e2e; - border-radius: 10px; - border-width: 2px; - border-style: solid; - border-color: #11111b; - color: #cba6f7; + background: #1e1e2e; + border-radius: 10px; + border-width: 2px; + border-style: solid; + border-color: #11111b; + color: #cba6f7; } /*-----module groups----*/ .modules-right { - border: 3px solid #20052a; - border-radius: 100px 0px 0px 0px; - background-color: #3d174b; - padding-top: 2px; - padding-bottom: 2px; - padding-right: 5px; - padding-left: 5px; + border: 3px solid #20052a; + border-radius: 100px 0px 0px 0px; + background-color: #3d174b; + padding-top: 2px; + padding-bottom: 2px; + padding-right: 5px; + padding-left: 5px; } .modules-center { - padding-top: 2px; - padding-bottom: 2px; - padding-right: 4px; - padding-left: 4px; + padding-top: 2px; + padding-bottom: 2px; + padding-right: 4px; + padding-left: 4px; } .modules-left { - /*background-color: #1e1e2e;*/ - border: 3px solid #20052a; - border-radius: 0px 0px 100px 0px; - background-color: #441a53; - padding-top: 2px; - padding-bottom: 2px; - padding-right: 5px; - padding-left: 5px; + /*background-color: #1e1e2e;*/ + border: 3px solid #20052a; + border-radius: 0px 0px 100px 0px; + background-color: #441a53; + padding-top: 2px; + padding-bottom: 2px; + padding-right: 5px; + padding-left: 5px; } #taskbar button, #workspaces button { - color: #6E6A86; - box-shadow: none; - text-shadow: none; - padding: 0px; - border-radius: 9px; - padding-left: 4px; - padding-right: 4px; - animation: gradient_f 20s ease-in infinite; - transition: all 0.5s cubic-bezier(.55,-0.68,.48,1.682); + color: #6e6a86; + box-shadow: none; + text-shadow: none; + padding: 0px; + border-radius: 9px; + padding-left: 4px; + padding-right: 4px; + animation: gradient_f 20s ease-in infinite; + transition: all 0.5s cubic-bezier(0.55, -0.68, 0.48, 1.682); } #workspaces button.active { - color: #cba6f7; - border-radius: 20%; - background-color: black; - padding-left: 8px; - padding-right: 8px; - animation: gradient_f 20s ease-in infinite; - transition: all 0.3s cubic-bezier(.55,-0.68,.48,1.682); + color: #cba6f7; + border-radius: 20%; + background-color: black; + padding-left: 8px; + padding-right: 8px; + animation: gradient_f 20s ease-in infinite; + transition: all 0.3s cubic-bezier(0.55, -0.68, 0.48, 1.682); } #workspaces button.focused { - color: #d8dee9; + color: #d8dee9; } #workspaces button.urgent { - color: #11111b; - border-radius: 10px; + color: #11111b; + border-radius: 10px; } #workspaces button:hover { - color: #9CCFD8; - border-radius: 15px; - padding-left: 2px; - padding-right: 2px; - animation: gradient_f 20s ease-in infinite; - transition: all 0.3s cubic-bezier(.55,-0.68,.48,1.682); + color: #9ccfd8; + border-radius: 15px; + padding-left: 2px; + padding-right: 2px; + animation: gradient_f 20s ease-in infinite; + transition: all 0.3s cubic-bezier(0.55, -0.68, 0.48, 1.682); } #backlight, @@ -158,84 +158,84 @@ tooltip { #custom-weather.clearNight, #custom-weather.cloudyFoggyDay, #custom-weather.cloudyFoggyNight, -#custom-weather.default, +#custom-weather.default, #custom-weather.rainyDay, #custom-weather.rainyNight, #custom-weather.severe, #custom-weather.showyIcyDay, #custom-weather.snowyIcyNight, #custom-weather.sunnyDay { - color: whitesmoke; - padding-top: 4px; - padding-bottom: 4px; - padding-right: 6px; - padding-left: 6px; + color: whitesmoke; + padding-top: 4px; + padding-bottom: 4px; + padding-right: 6px; + padding-left: 6px; } #temperature.critical { - background-color: #ff0000; + background-color: #ff0000; } @keyframes blink { - to { - color: #000000; - } + to { + color: #000000; + } } /*-----Indicators----*/ #custom-hypridle.notactive, #idle_inhibitor.activated { - color: #39FF14; - border-bottom: 8px solid rgba(0, 0, 0, 0.2); + color: #39ff14; + border-top: 8px solid rgba(0, 0, 0, 0.2); } #taskbar button.active { - background-color: purple; - padding-left: 12px; - padding-right: 12px; - animation: gradient_f 20s ease-in infinite; - transition: all 0.3s cubic-bezier(.55,-0.68,.48,1.682); + background-color: purple; + padding-left: 12px; + padding-right: 12px; + animation: gradient_f 20s ease-in infinite; + transition: all 0.3s cubic-bezier(0.55, -0.68, 0.48, 1.682); } #taskbar button:hover { - padding-left: 3px; - padding-right: 3px; - animation: gradient_f 20s ease-in infinite; - transition: all 0.3s cubic-bezier(.55,-0.68,.48,1.682); + padding-left: 3px; + padding-right: 3px; + animation: gradient_f 20s ease-in infinite; + transition: all 0.3s cubic-bezier(0.55, -0.68, 0.48, 1.682); } #battery.critical:not(.charging) { - color: #f53c3c; - animation-name: blink; - animation-duration: 3.0s; - animation-timing-function: steps(12); - animation-iteration-count: infinite; - animation-direction: alternate; + color: #f53c3c; + animation-name: blink; + animation-duration: 3s; + animation-timing-function: steps(12); + animation-iteration-count: infinite; + animation-direction: alternate; } #backlight-slider slider, #pulseaudio-slider slider { - min-width: 0px; - min-height: 0px; - opacity: 0; - background-image: none; - border: none; - box-shadow: none; + min-width: 0px; + min-height: 0px; + opacity: 0; + background-image: none; + border: none; + box-shadow: none; } #backlight-slider trough, #pulseaudio-slider trough { - min-width: 80px; - min-height: 5px; - border-radius: 5px; - background-color: #6E6A86; + min-width: 80px; + min-height: 5px; + border-radius: 5px; + background-color: #6e6a86; } #backlight-slider highlight, #pulseaudio-slider highlight { - min-height: 10px; - border-radius: 5px; - background-color: purple; + min-height: 10px; + border-radius: 5px; + background-color: purple; } /* --- tray readability override (global) --- */ diff --git a/config/waybar/style/Dark-Wallust-Obsidian-Edge.css b/config/waybar/style/Dark-Wallust-Obsidian-Edge.css index 84199a7e..dc255123 100644 --- a/config/waybar/style/Dark-Wallust-Obsidian-Edge.css +++ b/config/waybar/style/Dark-Wallust-Obsidian-Edge.css @@ -1,96 +1,96 @@ /* ---- 💫 https://github.com/LinuxBeginnings 💫 ---- */ /* Dark - Obsidian Edge */ -@import '../../.config/waybar/wallust/colors-waybar.css'; +@import "../../.config/waybar/wallust/colors-waybar.css"; * { -font-family: "JetBrainsMono Nerd Font"; -font-weight: bold; -min-height: 0; -/* set font-size to 100% if font scaling is set to 1.00 using nwg-look */ -/* NOTE: Waybar v14+ ignores % font-size values */ -font-size: 99%; -font-feature-settings: '"zero", "ss01", "ss02", "ss03", "ss04", "ss05", "cv31"'; + font-family: "JetBrainsMono Nerd Font"; + font-weight: bold; + min-height: 0; + /* set font-size to 100% if font scaling is set to 1.00 using nwg-look */ + /* NOTE: Waybar v14+ ignores % font-size values */ + font-size: 99%; + font-feature-settings: '"zero", "ss01", "ss02", "ss03", "ss04", "ss05", "cv31"'; } window#waybar { - background: black; - border-radius: 12px; - /* Waybar scaling: adjust font-size to scale the bar */ - font-size: 14px; + background: black; + border-radius: 12px; + /* Waybar scaling: adjust font-size to scale the bar */ + font-size: 14px; } window#waybar.hidden { - opacity: 0.5; - /* Waybar scaling: adjust font-size to scale the bar */ - font-size: 14px; + opacity: 0.5; + /* Waybar scaling: adjust font-size to scale the bar */ + font-size: 14px; } tooltip { - color: @foreground; - background: rgba(0, 0, 0, 0.8); - border-radius: 10px; + color: @foreground; + background: rgba(0, 0, 0, 0.8); + border-radius: 10px; } /* Waybar scaling: adjust tooltip label font-size to scale the bar */ tooltip label { - color: @foreground; - padding-right: 2px; - padding-left: 2px; - /* Waybar scaling: adjust tooltip label font-size to scale the bar */ - font-size: 14px; + color: @foreground; + padding-right: 2px; + padding-left: 2px; + /* Waybar scaling: adjust tooltip label font-size to scale the bar */ + font-size: 14px; } /*-----module groups----*/ .modules-left, .modules-center, .modules-right { - border: 0px solid #b4befe; - border-radius: 10px; - padding-top: 2px; - padding-bottom: 2px; - padding-right: 4px; - padding-left: 4px; + border: 0px solid #b4befe; + border-radius: 10px; + padding-top: 2px; + padding-bottom: 2px; + padding-right: 4px; + padding-left: 4px; } #taskbar button, #workspaces button { - color: @color12; - box-shadow: none; - text-shadow: none; - padding: 4px; - border-radius: 9px; - animation: gradient_f 20s ease-in infinite; - transition: all 0.5s cubic-bezier(.55,-0.68,.48,1.682); + color: @color12; + box-shadow: none; + text-shadow: none; + padding: 4px; + border-radius: 9px; + animation: gradient_f 20s ease-in infinite; + transition: all 0.5s cubic-bezier(0.55, -0.68, 0.48, 1.682); } #taskbar button.active, #workspaces button.active { - color: @foreground; - border-radius: 15px 15px 15px 15px; - padding-left: 8px; - padding-right: 8px; - animation: gradient_f 20s ease-in infinite; - transition: all 0.3s cubic-bezier(.55,-0.68,.48,1.682); + color: @foreground; + border-radius: 15px 15px 15px 15px; + padding-left: 8px; + padding-right: 8px; + animation: gradient_f 20s ease-in infinite; + transition: all 0.3s cubic-bezier(0.55, -0.68, 0.48, 1.682); } #workspaces button.focused { - color: #d8dee9; + color: #d8dee9; } #workspaces button.urgent { - color: #11111b; - border-radius: 10px; + color: #11111b; + border-radius: 10px; } #taskbar button:hover, #workspaces button:hover { - color: @color9; - border-radius: 15px; - padding-left: 2px; - padding-right: 2px; - animation: gradient_f 20s ease-in infinite; - transition: all 0.3s cubic-bezier(.55,-0.68,.48,1.682); + color: @color9; + border-radius: 15px; + padding-left: 2px; + padding-right: 2px; + animation: gradient_f 20s ease-in infinite; + transition: all 0.3s cubic-bezier(0.55, -0.68, 0.48, 1.682); } #backlight, @@ -147,68 +147,68 @@ tooltip label { #custom-weather.clearNight, #custom-weather.cloudyFoggyDay, #custom-weather.cloudyFoggyNight, -#custom-weather.default, +#custom-weather.default, #custom-weather.rainyDay, #custom-weather.rainyNight, #custom-weather.severe, #custom-weather.showyIcyDay, #custom-weather.snowyIcyNight, #custom-weather.sunnyDay { - color: @foreground; - border-radius: 8px; - padding-top: 5px; - padding-bottom: 5px; - padding-right: 6px; - padding-left: 6px; + color: @foreground; + border-radius: 8px; + padding-top: 5px; + padding-bottom: 5px; + padding-right: 6px; + padding-left: 6px; } #temperature.critical { - background-color: #ff0000; + background-color: #ff0000; } @keyframes blink { - to { - color: #000000; - } + to { + color: #000000; + } } /*-----Indicators----*/ #custom-hypridle.notactive, #idle_inhibitor.activated { - color: #39FF14; - border-bottom: 8px solid rgba(0, 0, 0, 0.2); + color: #39ff14; + border-top: 8px solid rgba(0, 0, 0, 0.2); } #battery.critical:not(.charging) { - color: #f53c3c; - animation-name: blink; - animation-duration: 3.0s; - animation-timing-function: steps(12); - animation-iteration-count: infinite; - animation-direction: alternate; + color: #f53c3c; + animation-name: blink; + animation-duration: 3s; + animation-timing-function: steps(12); + animation-iteration-count: infinite; + animation-direction: alternate; } #backlight-slider slider, #pulseaudio-slider slider { - min-width: 0px; - min-height: 0px; - opacity: 0; - background-image: none; - border: none; - box-shadow: none; + min-width: 0px; + min-height: 0px; + opacity: 0; + background-image: none; + border: none; + box-shadow: none; } #backlight-slider trough, #pulseaudio-slider trough { - min-width: 80px; - min-height: 5px; - border-radius: 5px; + min-width: 80px; + min-height: 5px; + border-radius: 5px; } #backlight-slider highlight, #pulseaudio-slider highlight { - min-height: 10px; - border-radius: 5px; + min-height: 10px; + border-radius: 5px; } /* --- tray readability override (global) --- */ diff --git a/config/waybar/style/Extra-Crimson.css b/config/waybar/style/Extra-Crimson.css index 3a326a02..fbfb80cf 100644 --- a/config/waybar/style/Extra-Crimson.css +++ b/config/waybar/style/Extra-Crimson.css @@ -2,90 +2,90 @@ /* ..........Crimson.................. */ /* --- 👍 designed by https://github.com/Krautt 👍 --- */ -*{ -font-family: "JetBrainsMono Nerd Font"; -font-weight: bold; -/* set font-size to 100% if font scaling is set to 1.00 using nwg-look */ -/* NOTE: Waybar v14+ ignores % font-size values */ -font-size: 99%; -font-feature-settings: '"zero", "ss01", "ss02", "ss03", "ss04", "ss05", "cv31"'; +* { + font-family: "JetBrainsMono Nerd Font"; + font-weight: bold; + /* set font-size to 100% if font scaling is set to 1.00 using nwg-look */ + /* NOTE: Waybar v14+ ignores % font-size values */ + font-size: 99%; + font-feature-settings: '"zero", "ss01", "ss02", "ss03", "ss04", "ss05", "cv31"'; } - + window#waybar { - background: #240303; - color: wheat; - border-radius: 0px 0px 100px 100px; - border: 1px solid grey; - /* Waybar scaling: adjust font-size to scale the bar */ - font-size: 14px; + background: #240303; + color: wheat; + border-radius: 0px 0px 100px 100px; + border: 1px solid grey; + /* Waybar scaling: adjust font-size to scale the bar */ + font-size: 14px; } - + window#waybar.hidden { - opacity: 0.5; - /* Waybar scaling: adjust font-size to scale the bar */ - font-size: 14px; -} + opacity: 0.5; + /* Waybar scaling: adjust font-size to scale the bar */ + font-size: 14px; +} tooltip { - background: #240303; - border-radius: 10px; - border-width: 2px; - border-style: solid; - border-color: #11111b; - color: wheat; + background: #240303; + border-radius: 10px; + border-width: 2px; + border-style: solid; + border-color: #11111b; + color: wheat; } /*-----module groups----*/ .modules-left, .modules-center, .modules-right { - padding-top: 2px; - padding-bottom: 2px; - padding-right: 4px; - padding-left: 4px; + padding-top: 2px; + padding-bottom: 2px; + padding-right: 4px; + padding-left: 4px; } #taskbar button, #workspaces button { - color: wheat; - box-shadow: none; - text-shadow: none; - padding: 4px; - border-radius: 9px; - animation: gradient_f 20s ease-in infinite; - transition: all 0.5s cubic-bezier(.55,-0.68,.48,1.682); + color: wheat; + box-shadow: none; + text-shadow: none; + padding: 4px; + border-radius: 9px; + animation: gradient_f 20s ease-in infinite; + transition: all 0.5s cubic-bezier(0.55, -0.68, 0.48, 1.682); } -#taskbar button.active, +#taskbar button.active, #workspaces button.active { - color: rgb(108, 18, 18); - background-color: #000000; - border: 1px solid grey; - border-radius: 15px 15px 15px 15px; - padding-left: 8px; - padding-right: 8px; - animation: gradient_f 20s ease-in infinite; - transition: all 0.3s cubic-bezier(.55,-0.68,.48,1.682); + color: rgb(108, 18, 18); + background-color: #000000; + border: 1px solid grey; + border-radius: 15px 15px 15px 15px; + padding-left: 8px; + padding-right: 8px; + animation: gradient_f 20s ease-in infinite; + transition: all 0.3s cubic-bezier(0.55, -0.68, 0.48, 1.682); } - + #workspaces button.focused { - color: #d8dee9; + color: #d8dee9; } - + #workspaces button.urgent { - color: #11111b; - border-radius: 10px; + color: #11111b; + border-radius: 10px; } -#taskbar button:hover, +#taskbar button:hover, #workspaces button:hover { - color: rgb(71, 14, 14); - background-color: #000000; - border-radius: 15px; - padding-left: 3px; - padding-right: 3px; - animation: gradient_f 20s ease-in infinite; - transition: all 0.3s cubic-bezier(.55,-0.68,.48,1.682); + color: rgb(71, 14, 14); + background-color: #000000; + border-radius: 15px; + padding-left: 3px; + padding-right: 3px; + animation: gradient_f 20s ease-in infinite; + transition: all 0.3s cubic-bezier(0.55, -0.68, 0.48, 1.682); } #backlight, @@ -142,69 +142,69 @@ tooltip { #custom-weather.clearNight, #custom-weather.cloudyFoggyDay, #custom-weather.cloudyFoggyNight, -#custom-weather.default, +#custom-weather.default, #custom-weather.rainyDay, #custom-weather.rainyNight, #custom-weather.severe, #custom-weather.showyIcyDay, #custom-weather.snowyIcyNight, #custom-weather.sunnyDay { - color: wheat; - padding-top: 5px; - padding-bottom: 5px; - padding-right: 6px; - padding-left: 6px; + color: wheat; + padding-top: 5px; + padding-bottom: 5px; + padding-right: 6px; + padding-left: 6px; } - + #temperature.critical { - background-color: #ff0000; + background-color: #ff0000; } - + @keyframes blink { - to { - color: #000000; - } + to { + color: #000000; + } } /*-----Indicators----*/ #custom-hypridle.notactive, #idle_inhibitor.activated { - color: #39FF14; - border-bottom: 8px solid rgba(0, 0, 0, 0.2); + color: #39ff14; + border-top: 8px solid rgba(0, 0, 0, 0.2); } - + #battery.critical:not(.charging) { - color: #f53c3c; - animation-name: blink; - animation-duration: 3.0s; - animation-timing-function: steps(12); - animation-iteration-count: infinite; - animation-direction: alternate; + color: #f53c3c; + animation-name: blink; + animation-duration: 3s; + animation-timing-function: steps(12); + animation-iteration-count: infinite; + animation-direction: alternate; } - + #backlight-slider slider, #pulseaudio-slider slider { - min-width: 0px; - min-height: 0px; - opacity: 0; - background-image: none; - border: none; - box-shadow: none; + min-width: 0px; + min-height: 0px; + opacity: 0; + background-image: none; + border: none; + box-shadow: none; } #backlight-slider trough, #pulseaudio-slider trough { - min-width: 80px; - min-height: 5px; - border-radius: 5px; - background-color: #22252a; + min-width: 80px; + min-height: 5px; + border-radius: 5px; + background-color: #22252a; } #backlight-slider highlight, #pulseaudio-slider highlight { - min-height: 10px; - border-radius: 5px; - background-color: #ba5663; + min-height: 10px; + border-radius: 5px; + background-color: #ba5663; } /* --- tray readability override (global) --- */ diff --git a/config/waybar/style/Extra-EverForest.css b/config/waybar/style/Extra-EverForest.css index e91221ba..c3ae5668 100644 --- a/config/waybar/style/Extra-EverForest.css +++ b/config/waybar/style/Extra-EverForest.css @@ -53,9 +53,9 @@ window#waybar { } window#waybar.hidden { - opacity: 0.5; - /* Waybar scaling: adjust font-size to scale the bar */ - font-size: 14px; + opacity: 0.5; + /* Waybar scaling: adjust font-size to scale the bar */ + font-size: 14px; } #window { @@ -179,7 +179,7 @@ window#waybar.hidden { background-color: @red; color: @fg; animation-name: blink; - animation-duration: 3.0s; + animation-duration: 3s; animation-timing-function: steps(12); animation-iteration-count: infinite; animation-direction: alternate; @@ -227,14 +227,14 @@ window#waybar.hidden { border-radius: 5px; margin-left: 5px; background-color: @blue; - border-bottom: 8px solid rgba(0, 0, 0, 0.2); + border-top: 8px solid rgba(0, 0, 0, 0.2); color: @black; } /*-----Indicators----*/ #custom-hypridle.notactive, #idle_inhibitor.activated { background-color: @fg; - border-bottom: 8px solid rgba(0, 0, 0, 0.2); + border-bottom: 8px solid rgba(0, 0, 0, 0.2); color: @bg0; } @@ -248,27 +248,27 @@ window#waybar.hidden { #backlight-slider slider, #pulseaudio-slider slider { - min-width: 0px; - min-height: 0px; - opacity: 0; - background-image: none; - border: none; - box-shadow: none; + min-width: 0px; + min-height: 0px; + opacity: 0; + background-image: none; + border: none; + box-shadow: none; } #backlight-slider trough, #pulseaudio-slider trough { - min-width: 80px; - min-height: 5px; - border-radius: 5px; - background-color: #22252a; + min-width: 80px; + min-height: 5px; + border-radius: 5px; + background-color: #22252a; } #backlight-slider highlight, #pulseaudio-slider highlight { - min-height: 10px; - border-radius: 5px; - background-color: #ba5663; + min-height: 10px; + border-radius: 5px; + background-color: #ba5663; } #backlight, @@ -324,15 +324,15 @@ window#waybar.hidden { #custom-weather.clearNight, #custom-weather.cloudyFoggyDay, #custom-weather.cloudyFoggyNight, -#custom-weather.default, +#custom-weather.default, #custom-weather.rainyDay, #custom-weather.rainyNight, #custom-weather.severe, #custom-weather.showyIcyDay, #custom-weather.snowyIcyNight, #custom-weather.sunnyDay { - padding-right: 5px; - padding-left: 5px; + padding-right: 5px; + padding-left: 5px; } /* --- tray readability override (global) --- */ diff --git a/config/waybar/style/Extra-Mauve.css b/config/waybar/style/Extra-Mauve.css index 2c8ad2af..10da92c5 100644 --- a/config/waybar/style/Extra-Mauve.css +++ b/config/waybar/style/Extra-Mauve.css @@ -3,108 +3,108 @@ /* --- 👍 designed by https://github.com/CelestiaKai 👍 --- */ * { - font-family: "JetBrainsMono Nerd Font"; - font-weight: bold; - min-height: 0; - /* set font-size to 100% if font scaling is set to 1.00 using nwg-look */ - /* NOTE: Waybar v14+ ignores % font-size values */ - font-size: 99%; - font-feature-settings: '"zero", "ss01", "ss02", "ss03", "ss04", "ss05", "cv31"'; + font-family: "JetBrainsMono Nerd Font"; + font-weight: bold; + min-height: 0; + /* set font-size to 100% if font scaling is set to 1.00 using nwg-look */ + /* NOTE: Waybar v14+ ignores % font-size values */ + font-size: 99%; + font-feature-settings: '"zero", "ss01", "ss02", "ss03", "ss04", "ss05", "cv31"'; } window#waybar { - background: #11111b; - color: #cba6f7; - /* Waybar scaling: adjust font-size to scale the bar */ - font-size: 14px; + background: #11111b; + color: #cba6f7; + /* Waybar scaling: adjust font-size to scale the bar */ + font-size: 14px; } window#waybar.hidden { - opacity: 0.5; - /* Waybar scaling: adjust font-size to scale the bar */ - font-size: 14px; + opacity: 0.5; + /* Waybar scaling: adjust font-size to scale the bar */ + font-size: 14px; } tooltip { - background: #1e1e2e; - border-radius: 10px; - border-width: 2px; - border-style: solid; - border-color: #11111b; - color: #cba6f7; + background: #1e1e2e; + border-radius: 10px; + border-width: 2px; + border-style: solid; + border-color: #11111b; + color: #cba6f7; } /*-----module groups----*/ .modules-left, .modules-right { - border: 3px solid #11111b; - border-radius: 10px 10px 10px 10px; - background-color: #313244; - padding-top: 2px; - padding-bottom: 2px; - padding-right: 4px; - padding-left: 4px; + border: 3px solid #11111b; + border-radius: 10px 10px 10px 10px; + background-color: #313244; + padding-top: 2px; + padding-bottom: 2px; + padding-right: 4px; + padding-left: 4px; } .modules-center { - padding-top: 2px; - padding-bottom: 2px; - padding-right: 4px; - padding-left: 4px; + padding-top: 2px; + padding-bottom: 2px; + padding-right: 4px; + padding-left: 4px; } #taskbar button, #workspaces button { - color: #6E6A86; - box-shadow: none; - text-shadow: none; - padding: 0px; - border-radius: 9px; - padding-left: 4px; - padding-right: 4px; - animation: gradient_f 20s ease-in infinite; - transition: all 0.5s cubic-bezier(.55,-0.68,.48,1.682); + color: #6e6a86; + box-shadow: none; + text-shadow: none; + padding: 0px; + border-radius: 9px; + padding-left: 4px; + padding-right: 4px; + animation: gradient_f 20s ease-in infinite; + transition: all 0.5s cubic-bezier(0.55, -0.68, 0.48, 1.682); } #taskbar button.active, #workspaces button.active { - color: #1e1e1e; - border-radius: 30%; - background-color: #cba6f7; - padding-left: 6px; - padding-right: 8px; - animation: gradient_f 20s ease-in infinite; - transition: all 0.3s cubic-bezier(.55,-0.68,.48,1.682); + color: #1e1e1e; + border-radius: 30%; + background-color: #cba6f7; + padding-left: 6px; + padding-right: 8px; + animation: gradient_f 20s ease-in infinite; + transition: all 0.3s cubic-bezier(0.55, -0.68, 0.48, 1.682); } #workspaces button.active:hover { - color: #1e1e1e; - border-radius: 30%; - background-color: #cba6f7; - padding-left: 6px; - padding-right: 8px; + color: #1e1e1e; + border-radius: 30%; + background-color: #cba6f7; + padding-left: 6px; + padding-right: 8px; } #workspaces button.focused { - color: #d8dee9; + color: #d8dee9; } #workspaces button.urgent { - border-radius: 30%; - background-color: #cba6f7; - color: #1e1e1e; + border-radius: 30%; + background-color: #cba6f7; + color: #1e1e1e; } #taskbar button:hover, #workspaces button:hover { - color: #1e1e1e; - border: 3px solid #1e1e2e; - background-color: #cba6f7; - border-radius: 30%; - padding-left: 4px; - padding-right: 4px; - animation: gradient_f 20s ease-in infinite; - transition: all 0.3s cubic-bezier(.55,-0.68,.48,1.682); + color: #1e1e1e; + border: 3px solid #1e1e2e; + background-color: #cba6f7; + border-radius: 30%; + padding-left: 4px; + padding-right: 4px; + animation: gradient_f 20s ease-in infinite; + transition: all 0.3s cubic-bezier(0.55, -0.68, 0.48, 1.682); } #backlight, @@ -161,70 +161,69 @@ tooltip { #custom-weather.clearNight, #custom-weather.cloudyFoggyDay, #custom-weather.cloudyFoggyNight, -#custom-weather.default, +#custom-weather.default, #custom-weather.rainyDay, #custom-weather.rainyNight, #custom-weather.severe, #custom-weather.showyIcyDay, #custom-weather.snowyIcyNight, #custom-weather.sunnyDay { - color: whitesmoke; - padding-top: 4px; - padding-bottom: 4px; - padding-right: 6px; - padding-left: 6px; - + color: whitesmoke; + padding-top: 4px; + padding-bottom: 4px; + padding-right: 6px; + padding-left: 6px; } #temperature.critical { - background-color: #ff0000; + background-color: #ff0000; } @keyframes blink { - to { - color: #000000; - } + to { + color: #000000; + } } /*-----Indicators----*/ #custom-hypridle.notactive, #idle_inhibitor.activated { - color: #39FF14; - border-bottom: 8px solid rgba(0, 0, 0, 0.2); + color: #39ff14; + border-bottom: 3px solid rgba(0, 0, 0, 0.2); } #battery.critical:not(.charging) { - color: #f53c3c; - animation-name: blink; - animation-duration: 3.0s; - animation-timing-function: steps(12); - animation-iteration-count: infinite; - animation-direction: alternate; + color: #f53c3c; + animation-name: blink; + animation-duration: 3s; + animation-timing-function: steps(12); + animation-iteration-count: infinite; + animation-direction: alternate; } #backlight-slider slider, #pulseaudio-slider slider { - min-width: 0px; - min-height: 0px; - opacity: 0; - background-image: none; - border: none; - box-shadow: none; + min-width: 0px; + min-height: 0px; + opacity: 0; + background-image: none; + border: none; + box-shadow: none; } #backlight-slider trough, #pulseaudio-slider trough { - min-width: 80px; - min-height: 5px; - border-radius: 5px; - background-color: #6E6A86; + min-width: 80px; + min-height: 5px; + border-radius: 5px; + background-color: #6e6a86; } #backlight-slider highlight, #pulseaudio-slider highlight { - min-height: 10px; - border-radius: 5px; - background-color: purple; + min-height: 10px; + border-radius: 5px; + background-color: purple; } /* --- tray readability override (global) --- */ diff --git a/config/waybar/style/Extra-Modern-Combined-Transparent.css b/config/waybar/style/Extra-Modern-Combined-Transparent.css index 353c321c..7a4a9f77 100644 --- a/config/waybar/style/Extra-Modern-Combined-Transparent.css +++ b/config/waybar/style/Extra-Modern-Combined-Transparent.css @@ -30,93 +30,93 @@ @define-color textcolor3 @foreground; @define-color iconcolor @foreground; -@import '../../.config/waybar/wallust/colors-waybar.css'; +@import "../../.config/waybar/wallust/colors-waybar.css"; @import "../waybar/style/catppuccin-themes/latte.css"; * { - font-family: "JetBrainsMono Nerd Font"; - font-weight: bold; - min-height: 0; - /* set font-size to 100% if font scaling is set to 1.00 using nwg-look */ - /* NOTE: Waybar v14+ ignores % font-size values */ - font-size: 99%; - font-feature-settings: '"zero", "ss01", "ss02", "ss03", "ss04", "ss05", "cv31"'; + font-family: "JetBrainsMono Nerd Font"; + font-weight: bold; + min-height: 0; + /* set font-size to 100% if font scaling is set to 1.00 using nwg-look */ + /* NOTE: Waybar v14+ ignores % font-size values */ + font-size: 99%; + font-feature-settings: '"zero", "ss01", "ss02", "ss03", "ss04", "ss05", "cv31"'; } window#waybar { - background-color: transparent; - border-radius: 6px; - padding-top: 2px; - padding-bottom: 0px; - padding-right: 4px; - padding-left: 4px; - /* Waybar scaling: adjust font-size to scale the bar */ - font-size: 14px; + background-color: transparent; + border-radius: 6px; + padding-top: 2px; + padding-bottom: 0px; + padding-right: 4px; + padding-left: 4px; + /* Waybar scaling: adjust font-size to scale the bar */ + font-size: 14px; } tooltip { - background: #1e1e2e; - border-radius: 12px; - border-width: 1px; - border-style: solid; - border-color: @border-color; - color: #ffffff; + background: #1e1e2e; + border-radius: 12px; + border-width: 1px; + border-style: solid; + border-color: @border-color; + color: #ffffff; } #taskbar button, #workspaces button { - padding: 0px 3px; - margin: 3px 2px; - border-radius: 4px; - color: @textcolor1; - background-color: @workspacesbackground2; - transition: all 0.1s linear; - opacity: 0.4; + padding: 0px 3px; + margin: 3px 2px; + border-radius: 4px; + color: @textcolor1; + background-color: @workspacesbackground2; + transition: all 0.1s linear; + opacity: 0.4; } #taskbar button.active, #workspaces button.active { - color: @textcolor1; - background: @workspacesbackground2; - border-radius: 4px; - min-width: 30px; - animation: gradient_f 20s ease-in infinite; - transition: all 0.3s cubic-bezier(.55,-0.68,.48,1.682); - opacity: 1.0; + color: @textcolor1; + background: @workspacesbackground2; + border-radius: 4px; + min-width: 30px; + animation: gradient_f 20s ease-in infinite; + transition: all 0.3s cubic-bezier(0.55, -0.68, 0.48, 1.682); + opacity: 1; } #taskbar button:hover, #workspaces button:hover { - color: @red; - background: @workspacesbackground2; - border-radius: 3px; - opacity:0.6; - animation: gradient_f 20s ease-in infinite; - transition: all 0.3s cubic-bezier(.55,-0.68,.48,1.682); + color: @red; + background: @workspacesbackground2; + border-radius: 3px; + opacity: 0.6; + animation: gradient_f 20s ease-in infinite; + transition: all 0.3s cubic-bezier(0.55, -0.68, 0.48, 1.682); } #workspaces button.focused { - color: #d8dee9; + color: #d8dee9; } #workspaces button.urgent { - color: #11111b; - border-radius: 10px; + color: #11111b; + border-radius: 10px; } /*-----module groups----*/ .modules-left, .modules-right { - background-color: transparent; + background-color: transparent; } .modules-center { - background-color: @background-module; - border-radius: 0px 0px 45px 45px; - padding-top: 8px; - padding-bottom: 8px; - padding-left: 10px; - padding-right: 6px; + background-color: @background-module; + border-radius: 0px 0px 45px 45px; + padding-top: 8px; + padding-bottom: 8px; + padding-left: 10px; + padding-right: 6px; } #backlight, @@ -181,77 +181,77 @@ tooltip { #custom-weather.showyIcyDay, #custom-weather.snowyIcyNight, #custom-weather.sunnyDay { - color: white; - padding-right: 6px; - padding-left: 6px; + color: white; + padding-right: 6px; + padding-left: 6px; } #temperature.critical { - background-color: #ff0000; + background-color: #ff0000; } @keyframes blink { - to { - color: #000000; - } + to { + color: #000000; + } } #custom-hint { - color: @peach; - padding-right: 6px; - padding-left: 6px; + color: @peach; + padding-right: 6px; + padding-left: 6px; } #pulseaudio.muted { - color: red; + color: red; } #temperature.critical { - background-color: @red; + background-color: @red; } #battery.critical:not(.charging) { - color: #f53c3c; - animation-name: blink; - animation-duration: 3.0s; - animation-timing-function: steps(12); - animation-iteration-count: infinite; - animation-direction: alternate; + color: #f53c3c; + animation-name: blink; + animation-duration: 3s; + animation-timing-function: steps(12); + animation-iteration-count: infinite; + animation-direction: alternate; } #pulseaudio-slider, #pulseaudio { - color: @foreground; + color: @foreground; } #backlight-slider slider, #pulseaudio-slider slider { - min-width: 0px; - min-height: 0px; - opacity: 0; - background-image: none; - border: none; - box-shadow: none; + min-width: 0px; + min-height: 0px; + opacity: 0; + background-image: none; + border: none; + box-shadow: none; } #backlight-slider trough, #pulseaudio-slider trough { - min-width: 80px; - min-height: 5px; - border-radius: 5px; + min-width: 80px; + min-height: 5px; + border-radius: 5px; } #backlight-slider highlight, #pulseaudio-slider highlight { - min-height: 10px; - border-radius: 5px; + min-height: 10px; + border-radius: 5px; } #custom-hypridle, #custom-lock, #idle_inhibitor { - color: @teal; - border-bottom: 8px solid rgba(0, 0, 0, 0.2); + color: @teal; + border-bottom: 2px solid rgba(0, 0, 0, 0.2); } #custom-weather, @@ -266,29 +266,30 @@ tooltip { #custom-weather.showyIcyDay, #custom-weather.snowyIcyNight, #custom-weather.sunnyDay { - color: @lavender; - padding-right: 6px; - padding-left: 6px; + color: @lavender; + padding-right: 6px; + padding-left: 6px; } /*-----Indicators----*/ #custom-hypridle.notactive, #idle_inhibitor.activated { - color: #39FF14; - border-bottom: 8px solid rgba(0, 0, 0, 0.2); + color: #39ff14; + border-top: 2px solid rgba(0, 0, 0, 0.2); } #clock { - color: @sapphire; - border-radius: 15px; + color: @sapphire; + border-radius: 15px; } #custom-updates { - color: @yellow; + color: @yellow; } -#custom-swaync{ - color: #ffd700;} +#custom-swaync { + color: #ffd700; +} /* --- tray readability override (global) --- */ #tray > *, diff --git a/config/waybar/style/Extra-Rose-Pine.css b/config/waybar/style/Extra-Rose-Pine.css index 94b40f7b..cfbf0e94 100644 --- a/config/waybar/style/Extra-Rose-Pine.css +++ b/config/waybar/style/Extra-Rose-Pine.css @@ -1,7 +1,6 @@ /* ---- 💫 https://github.com/LinuxBeginnings 💫 ---- */ /* Rose Pine */ - @define-color bar-bg rgba(0, 0, 0, 0); @define-color main-bg #26233a; @define-color main-fg #ebbcba; @@ -11,103 +10,103 @@ @define-color wb-hvr-fg #f6c177; * { - font-family: "JetBrainsMono Nerd Font"; - font-weight: bold; - /* set font-size to 100% if font scaling is set to 1.00 using nwg-look */ - /* NOTE: Waybar v14+ ignores % font-size values */ - font-size: 99%; - font-feature-settings: '"zero", "ss01", "ss02", "ss03", "ss04", "ss05", "cv31"'; - border-radius: 12px; + font-family: "JetBrainsMono Nerd Font"; + font-weight: bold; + /* set font-size to 100% if font scaling is set to 1.00 using nwg-look */ + /* NOTE: Waybar v14+ ignores % font-size values */ + font-size: 99%; + font-feature-settings: '"zero", "ss01", "ss02", "ss03", "ss04", "ss05", "cv31"'; + border-radius: 12px; } window#waybar { - background: @bar-bg; - /* Waybar scaling: adjust font-size to scale the bar */ - font-size: 14px; + background: @bar-bg; + /* Waybar scaling: adjust font-size to scale the bar */ + font-size: 14px; } window#waybar.empty, window#waybar.empty #window { - background-color: transparent; - padding: 0px; - border: 0px; - /* Waybar scaling: adjust font-size to scale the bar */ - font-size: 14px; + background-color: transparent; + padding: 0px; + border: 0px; + /* Waybar scaling: adjust font-size to scale the bar */ + font-size: 14px; } tooltip { - background: @main-bg; - color: @main-fg; - border-radius: 8px; - border-width: 0px; + background: @main-bg; + color: @main-fg; + border-radius: 8px; + border-width: 0px; } #taskbar button, #workspaces button { - box-shadow: none; - text-shadow: none; - padding: 0px; - border-bottom: 2px; - border-color: #2B5D34; - border-style: solid; - border-radius: 10px; - padding-left: 2px; - padding-right: 4px; - background: @main-bg; - color: @main-fg; - animation: gradient_f 20s ease-in infinite; - transition: all 0.5s cubic-bezier(.55,-0.68,.48,1.682); + box-shadow: none; + text-shadow: none; + padding: 0px; + border-bottom: 2px; + border-color: #2b5d34; + border-style: solid; + border-radius: 10px; + padding-left: 2px; + padding-right: 4px; + background: @main-bg; + color: @main-fg; + animation: gradient_f 20s ease-in infinite; + transition: all 0.5s cubic-bezier(0.55, -0.68, 0.48, 1.682); } #workspaces button.active { - background: @wb-act-bg; - color: @wb-act-fg; - padding-left: 2px; - padding-right: 4px; - animation: gradient_f 20s ease-in infinite; - transition: all 0.3s cubic-bezier(.55,-0.68,.48,1.682); + background: @wb-act-bg; + color: @wb-act-fg; + padding-left: 2px; + padding-right: 4px; + animation: gradient_f 20s ease-in infinite; + transition: all 0.3s cubic-bezier(0.55, -0.68, 0.48, 1.682); } #workspaces button:hover { - background: @wb-hvr-bg; - color: @wb-hvr-fg; - padding-left: 2px; - padding-right: 2px; - animation: gradient_f 20s ease-in infinite; - transition: all 0.3s cubic-bezier(.55,-0.68,.48,1.682); + background: @wb-hvr-bg; + color: @wb-hvr-fg; + padding-left: 2px; + padding-right: 2px; + animation: gradient_f 20s ease-in infinite; + transition: all 0.3s cubic-bezier(0.55, -0.68, 0.48, 1.682); } #taskbar button { - box-shadow: none; - text-shadow: none; - padding: 0px; - border-bottom: 2px; - border-color: #2B5D34; - border-style: solid; - border-radius: 10px; - padding-left: 3px; - padding-right: 3px; - color: @wb-color; - animation: gradient_f 20s ease-in infinite; - transition: all 0.5s cubic-bezier(.55,-0.68,.48,1.682); + box-shadow: none; + text-shadow: none; + padding: 0px; + border-bottom: 2px; + border-color: #2b5d34; + border-style: solid; + border-radius: 10px; + padding-left: 3px; + padding-right: 3px; + color: @wb-color; + animation: gradient_f 20s ease-in infinite; + transition: all 0.5s cubic-bezier(0.55, -0.68, 0.48, 1.682); } #taskbar button.active { - background: @wb-act-bg; - color: @wb-act-color; - padding-left: 8px; - padding-right: 8px; - animation: gradient_f 20s ease-in infinite; - transition: all 0.3s cubic-bezier(.55,-0.68,.48,1.682); + background: @wb-act-bg; + color: @wb-act-color; + padding-left: 8px; + padding-right: 8px; + animation: gradient_f 20s ease-in infinite; + transition: all 0.3s cubic-bezier(0.55, -0.68, 0.48, 1.682); } #taskbar button:hover { - background: @wb-hvr-bg; - color: @wb-hvr-color; - padding-left: 3px; - padding-right: 3px; - animation: gradient_f 20s ease-in infinite; - transition: all 0.3s cubic-bezier(.55,-0.68,.48,1.682); + background: @wb-hvr-bg; + color: @wb-hvr-color; + padding-left: 3px; + padding-right: 3px; + animation: gradient_f 20s ease-in infinite; + transition: all 0.3s cubic-bezier(0.55, -0.68, 0.48, 1.682); } #backlight, @@ -162,35 +161,35 @@ tooltip { #custom-weather.clearNight, #custom-weather.cloudyFoggyDay, #custom-weather.cloudyFoggyNight, -#custom-weather.default, +#custom-weather.default, #custom-weather.rainyDay, #custom-weather.rainyNight, #custom-weather.severe, #custom-weather.showyIcyDay, #custom-weather.snowyIcyNight, #custom-weather.sunnyDay { - color: @main-fg; - background: @main-bg; - opacity: 1; - border-bottom: 2px; - border-color: #2B5D34; - border-style: solid; - border-radius: 10px; - padding-top: 4px; - padding-bottom: 4px; - padding-right: 6px; - padding-left: 6px; + color: @main-fg; + background: @main-bg; + opacity: 1; + border-bottom: 2px; + border-color: #2b5d34; + border-style: solid; + border-radius: 10px; + padding-top: 4px; + padding-bottom: 4px; + padding-right: 6px; + padding-left: 6px; } #temperature.critical { - background-color: red; + background-color: red; } /*-----Indicators----*/ #custom-hypridle.notactive, #idle_inhibitor.activated { - color: #39FF14; - border-bottom: 2px; + color: #39ff14; + border-bottom: 2px; } @keyframes blink { @@ -203,7 +202,7 @@ tooltip { background-color: red; color: white; animation-name: blink; - animation-duration: 3.0s; + animation-duration: 3s; animation-timing-function: steps(12); animation-iteration-count: infinite; animation-direction: alternate; @@ -211,42 +210,43 @@ tooltip { } #backlight { - padding-right: 2px; + padding-right: 2px; } #network { - padding-right: 12px; + padding-right: 12px; } #custom-power { - padding-right: 1px; + padding-left: 0px; + padding-right: 1px; } #group-motherboard, #group-laptop, #group-audio { - color: @main-fg; - background-color: @main-bg; + color: @main-fg; + background-color: @main-bg; } #backlight-slider slider, #pulseaudio-slider slider { - min-width: 0px; - min-height: 0px; - opacity: 0; - background-image: none; - border: none; - box-shadow: none; + min-width: 0px; + min-height: 0px; + opacity: 0; + background-image: none; + border: none; + box-shadow: none; } #backlight-slider trough, #pulseaudio-slider trough { - min-width: 80px; - min-height: 5px; - border-radius: 5px; + min-width: 80px; + min-height: 5px; + border-radius: 5px; } #backlight-slider highlight, #pulseaudio-slider highlight { - min-height: 10px; - border-radius: 5px; + min-height: 10px; + border-radius: 5px; } /* --- tray readability override (global) --- */ diff --git a/config/waybar/style/Extra-Simple-Pink.css b/config/waybar/style/Extra-Simple-Pink.css index 9b69a8bd..072580fe 100644 --- a/config/waybar/style/Extra-Simple-Pink.css +++ b/config/waybar/style/Extra-Simple-Pink.css @@ -3,100 +3,99 @@ /* --- 👍 designed by https://github.com/Krautt 👍 --- */ * { - font-family: "JetBrainsMono Nerd Font"; - font-weight: bold; - min-height: 0; - /* set font-size to 100% if font scaling is set to 1.00 using nwg-look */ - /* NOTE: Waybar v14+ ignores % font-size values */ - font-size: 99%; - font-feature-settings: '"zero", "ss01", "ss02", "ss03", "ss04", "ss05", "cv31"'; + font-family: "JetBrainsMono Nerd Font"; + font-weight: bold; + min-height: 0; + /* set font-size to 100% if font scaling is set to 1.00 using nwg-look */ + /* NOTE: Waybar v14+ ignores % font-size values */ + font-size: 99%; + font-feature-settings: '"zero", "ss01", "ss02", "ss03", "ss04", "ss05", "cv31"'; } window#waybar { - background: black; - border-radius: 50px; - color: whitesmoke; - /* Waybar scaling: adjust font-size to scale the bar */ - font-size: 14px; + background: black; + border-radius: 50px; + color: whitesmoke; + /* Waybar scaling: adjust font-size to scale the bar */ + font-size: 14px; } window#waybar.hidden { - opacity: 0.5; - /* Waybar scaling: adjust font-size to scale the bar */ - font-size: 14px; + opacity: 0.5; + /* Waybar scaling: adjust font-size to scale the bar */ + font-size: 14px; } tooltip { - background: #1e1e2e; - border-radius: 10px; - border-width: 2px; - border-style: solid; - border-color: #11111b; - color: pink; + background: #1e1e2e; + border-radius: 10px; + border-width: 2px; + border-style: solid; + border-color: #11111b; + color: pink; } /*-----module groups----*/ .modules-left, .modules-right { - border: 5px solid #19141b; - border-radius: 50px 50px 50px 50px; - background-color: #ba5663; - padding-top: 2px; - padding-bottom: 2px; - padding-right: 4px; - padding-left: 4px; + border: 5px solid #19141b; + border-radius: 50px 50px 50px 50px; + background-color: #ba5663; + padding-top: 2px; + padding-bottom: 2px; + padding-right: 4px; + padding-left: 4px; } .modules-center { - background-color: black; - padding-top: 2px; - padding-bottom: 2px; - padding-right: 4px; - padding-left: 4px; + background-color: black; + padding-top: 2px; + padding-bottom: 2px; + padding-right: 4px; + padding-left: 4px; } #taskbar button, #workspaces button { - color: pink; - box-shadow: none; - text-shadow: none; - border-radius: 9px; - padding-left: 4px; - padding-right: 4px; - animation: gradient_f 20s ease-in infinite; - transition: all 0.5s cubic-bezier(.55,-0.68,.48,1.682); + color: pink; + box-shadow: none; + text-shadow: none; + border-radius: 9px; + padding-left: 4px; + padding-right: 4px; + animation: gradient_f 20s ease-in infinite; + transition: all 0.5s cubic-bezier(0.55, -0.68, 0.48, 1.682); } #taskbar button.active, #workspaces button.active { - color: whitesmoke; - background-color: pink; - border-radius: 15px 15px 15px 15px; - padding-left: 8px; - padding-right: 8px; - animation: gradient_f 20s ease-in infinite; - transition: all 0.3s cubic-bezier(.55,-0.68,.48,1.682); - + color: whitesmoke; + background-color: pink; + border-radius: 15px 15px 15px 15px; + padding-left: 8px; + padding-right: 8px; + animation: gradient_f 20s ease-in infinite; + transition: all 0.3s cubic-bezier(0.55, -0.68, 0.48, 1.682); } #workspaces button.focused { - color: #c42a60; + color: #c42a60; } #workspaces button.urgent { - color: #11111b; - border-radius: 10px; + color: #11111b; + border-radius: 10px; } #taskbar button:hover, #workspaces button:hover { - color: #ba5663; - background-color: #0d0a0d; - border-radius: 15px; - padding-left: 2px; - padding-right: 2px; - animation: gradient_f 20s ease-in infinite; - transition: all 0.3s cubic-bezier(.55,-0.68,.48,1.682); + color: #ba5663; + background-color: #0d0a0d; + border-radius: 15px; + padding-left: 2px; + padding-right: 2px; + animation: gradient_f 20s ease-in infinite; + transition: all 0.3s cubic-bezier(0.55, -0.68, 0.48, 1.682); } #backlight, @@ -154,70 +153,69 @@ tooltip { #custom-weather.clearNight, #custom-weather.cloudyFoggyDay, #custom-weather.cloudyFoggyNight, -#custom-weather.default, +#custom-weather.default, #custom-weather.rainyDay, #custom-weather.rainyNight, #custom-weather.severe, #custom-weather.showyIcyDay, #custom-weather.snowyIcyNight, #custom-weather.sunnyDay { - color: whitesmoke; - padding-top: 2px; - padding-bottom: 2px; - padding-right: 4px; - padding-left: 4px; - + color: whitesmoke; + padding-top: 2px; + padding-bottom: 2px; + padding-right: 4px; + padding-left: 4px; } #temperature.critical { - background-color: #ff0000; + background-color: #ff0000; } @keyframes blink { - to { - color: #000000; - } + to { + color: #000000; + } } /*-----Indicators----*/ #custom-hypridle.notactive, #idle_inhibitor.activated { - color: #39FF14; - border-bottom: 8px solid rgba(0, 0, 0, 0.2); + color: #39ff14; + border-bottom: 1px solid rgba(0, 0, 0, 0.2); } #battery.critical:not(.charging) { - color: #f53c3c; - animation-name: blink; - animation-duration: 3.0s; - animation-timing-function: steps(12); - animation-iteration-count: infinite; - animation-direction: alternate; + color: #f53c3c; + animation-name: blink; + animation-duration: 3s; + animation-timing-function: steps(12); + animation-iteration-count: infinite; + animation-direction: alternate; } #backlight-slider slider, #pulseaudio-slider slider { - min-width: 0px; - min-height: 0px; - opacity: 0; - background-image: none; - border: none; - box-shadow: none; + min-width: 0px; + min-height: 0px; + opacity: 0; + background-image: none; + border: none; + box-shadow: none; } #backlight-slider trough, #pulseaudio-slider trough { - min-width: 80px; - min-height: 5px; - border-radius: 5px; - background-color: #22252a; + min-width: 80px; + min-height: 5px; + border-radius: 5px; + background-color: #22252a; } #backlight-slider highlight, #pulseaudio-slider highlight { - min-height: 10px; - border-radius: 5px; - background-color: #ba5663; + min-height: 10px; + border-radius: 5px; + background-color: #ba5663; } /* --- tray readability override (global) --- */ diff --git a/config/waybar/style/Light-Monochrome-Contrast.css b/config/waybar/style/Light-Monochrome-Contrast.css index afa18d0b..7992e63d 100644 --- a/config/waybar/style/Light-Monochrome-Contrast.css +++ b/config/waybar/style/Light-Monochrome-Contrast.css @@ -2,92 +2,92 @@ /* Light - MonoChrome Contrast */ * { -font-family: "JetBrainsMono Nerd Font"; -font-weight: bold; -min-height: 0; -/* set font-size to 100% if font scaling is set to 1.00 using nwg-look */ -/* NOTE: Waybar v14+ ignores % font-size values */ -font-size: 99%; -font-feature-settings: '"zero", "ss01", "ss02", "ss03", "ss04", "ss05", "cv31"'; + font-family: "JetBrainsMono Nerd Font"; + font-weight: bold; + min-height: 0; + /* set font-size to 100% if font scaling is set to 1.00 using nwg-look */ + /* NOTE: Waybar v14+ ignores % font-size values */ + font-size: 99%; + font-feature-settings: '"zero", "ss01", "ss02", "ss03", "ss04", "ss05", "cv31"'; } window#waybar, window#waybar.empty, window#waybar.empty #window { - background-color: transparent; - padding: 0px; - border: 0px; - /* Waybar scaling: adjust font-size to scale the bar */ - font-size: 14px; + background-color: transparent; + padding: 0px; + border: 0px; + /* Waybar scaling: adjust font-size to scale the bar */ + font-size: 14px; } tooltip { - color: white; - background: #1e1e2e; - opacity: 0.8; - border-radius: 10px; - border-width: 2px; - border-style: solid; - border-color: white; + color: white; + background: #1e1e2e; + opacity: 0.8; + border-radius: 10px; + border-width: 2px; + border-style: solid; + border-color: white; } /* Waybar scaling: adjust tooltip label font-size to scale the bar */ -tooltip label{ - color: #cdd6f4; - /* Waybar scaling: adjust tooltip label font-size to scale the bar */ - font-size: 14px; +tooltip label { + color: #cdd6f4; + /* Waybar scaling: adjust tooltip label font-size to scale the bar */ + font-size: 14px; } /*-----module groups----*/ .modules-left, .modules-center, .modules-right { - background-color: white; - color: black; - border-bottom: 2px; - border-style: solid; - border-color: black; - border-radius: 10px; - padding-top: 2px; - padding-bottom: 2px; - padding-right: 4px; - padding-left: 4px; + background-color: white; + color: black; + border-bottom: 2px; + border-style: solid; + border-color: black; + border-radius: 10px; + padding-top: 2px; + padding-bottom: 2px; + padding-right: 4px; + padding-left: 4px; } /*-----modules indv----*/ #taskbar button, #workspaces button { - color: black; - box-shadow: none; - text-shadow: none; - padding: 0px; - border-radius: 9px; - padding-left: 4px; - padding-right: 4px; - animation: gradient_f 20s ease-in infinite; - transition: all 0.5s cubic-bezier(.55,-0.68,.48,1.682); + color: black; + box-shadow: none; + text-shadow: none; + padding: 0px; + border-radius: 9px; + padding-left: 4px; + padding-right: 4px; + animation: gradient_f 20s ease-in infinite; + transition: all 0.5s cubic-bezier(0.55, -0.68, 0.48, 1.682); } #taskbar button:hover, #workspaces button:hover { - color: grey; - background-color: rgba(0,153,153,0.2); - padding-left: 2px; - padding-right: 2px; - animation: gradient_f 20s ease-in infinite; - transition: all 0.3s cubic-bezier(.55,-0.68,.48,1.682); + color: grey; + background-color: rgba(0, 153, 153, 0.2); + padding-left: 2px; + padding-right: 2px; + animation: gradient_f 20s ease-in infinite; + transition: all 0.3s cubic-bezier(0.55, -0.68, 0.48, 1.682); } #taskbar button.active, #workspaces button.active { - background-color: grey; - color: black; - padding-left: 8px; - padding-right: 8px; - animation: gradient_f 20s ease-in infinite; - transition: all 0.3s cubic-bezier(.55,-0.68,.48,1.682); + background-color: grey; + color: black; + padding-left: 8px; + padding-right: 8px; + animation: gradient_f 20s ease-in infinite; + transition: all 0.3s cubic-bezier(0.55, -0.68, 0.48, 1.682); } #workspaces button.persistent { - border-radius: 10px; + border-radius: 10px; } #backlight, @@ -144,72 +144,73 @@ tooltip label{ #custom-weather.clearNight, #custom-weather.cloudyFoggyDay, #custom-weather.cloudyFoggyNight, -#custom-weather.default, +#custom-weather.default, #custom-weather.rainyDay, #custom-weather.rainyNight, #custom-weather.severe, #custom-weather.showyIcyDay, #custom-weather.snowyIcyNight, #custom-weather.sunnyDay { - padding-top: 4px; - padding-bottom: 4px; - padding-right: 6px; - padding-left: 6px; + padding-top: 4px; + padding-bottom: 4px; + padding-right: 6px; + padding-left: 6px; } #custom-power { - padding: 1px 3px; + padding-right: 2px; + padding-left: 1px; } /*-----Indicators----*/ #custom-hypridle.notactive, #idle_inhibitor.activated { - color: #39FF14; - border-bottom: 8px solid rgba(0, 0, 0, 0.2); + color: #39ff14; + border-bottom: 0px solid rgba(0, 0, 0, 0.2); } #pulseaudio.muted { - color: #cc3436; + color: #cc3436; } #temperature.critical { - color: #cc3436; + color: #cc3436; } @keyframes blink { - to { - color: #000000; - } + to { + color: #000000; + } } #battery.critical:not(.charging) { - color: #f53c3c; - animation-name: blink; - animation-duration: 3.0s; - animation-timing-function: steps(12); - animation-iteration-count: infinite; - animation-direction: alternate; + color: #f53c3c; + animation-name: blink; + animation-duration: 3s; + animation-timing-function: steps(12); + animation-iteration-count: infinite; + animation-direction: alternate; } #backlight-slider slider, #pulseaudio-slider slider { - min-width: 0px; - min-height: 0px; - opacity: 0; - background-image: none; - border: none; - box-shadow: none; + min-width: 0px; + min-height: 0px; + opacity: 0; + background-image: none; + border: none; + box-shadow: none; } #backlight-slider trough, #pulseaudio-slider trough { - min-width: 80px; - min-height: 5px; - border-radius: 5px; - background-color: grey; + min-width: 80px; + min-height: 5px; + border-radius: 5px; + background-color: grey; } #backlight-slider highlight, #pulseaudio-slider highlight { - min-height: 10px; - border-radius: 5px; + min-height: 10px; + border-radius: 5px; } /* --- tray readability override (global) --- */ diff --git a/config/waybar/style/Light-Obsidian-Glow.css b/config/waybar/style/Light-Obsidian-Glow.css index ab428569..6b0b36f1 100644 --- a/config/waybar/style/Light-Obsidian-Glow.css +++ b/config/waybar/style/Light-Obsidian-Glow.css @@ -2,81 +2,81 @@ /* Light - Obsidian Glow */ * { -font-family: "JetBrainsMono Nerd Font"; -font-weight: bold; -min-height: 0; -/* set font-size to 100% if font scaling is set to 1.00 using nwg-look */ -/* NOTE: Waybar v14+ ignores % font-size values */ -font-size: 99%; -font-feature-settings: '"zero", "ss01", "ss02", "ss03", "ss04", "ss05", "cv31"'; + font-family: "JetBrainsMono Nerd Font"; + font-weight: bold; + min-height: 0; + /* set font-size to 100% if font scaling is set to 1.00 using nwg-look */ + /* NOTE: Waybar v14+ ignores % font-size values */ + font-size: 99%; + font-feature-settings: '"zero", "ss01", "ss02", "ss03", "ss04", "ss05", "cv31"'; } window#waybar { - background: white; - border-radius: 12px; - /* Waybar scaling: adjust font-size to scale the bar */ - font-size: 14px; + background: white; + border-radius: 12px; + /* Waybar scaling: adjust font-size to scale the bar */ + font-size: 14px; } window#waybar.hidden { - opacity: 0.7; - /* Waybar scaling: adjust font-size to scale the bar */ - font-size: 14px; + opacity: 0.7; + /* Waybar scaling: adjust font-size to scale the bar */ + font-size: 14px; } tooltip { - background: white; - border-radius: 10px; + background: white; + border-radius: 10px; } /* Waybar scaling: adjust tooltip label font-size to scale the bar */ tooltip label { - color: #373737; - padding-right: 2px; - padding-left: 2px; - /* Waybar scaling: adjust tooltip label font-size to scale the bar */ - font-size: 14px; + color: #373737; + padding-right: 2px; + padding-left: 2px; + /* Waybar scaling: adjust tooltip label font-size to scale the bar */ + font-size: 14px; } #taskbar button, #workspaces button { - color: #585b70; - box-shadow: none; - text-shadow: none; - padding: 0px; - border-radius: 9px; - padding-left: 4px; - padding-right: 4px; - animation: gradient_f 20s ease-in infinite; - transition: all 0.5s cubic-bezier(.55,-0.68,.48,1.682); + color: #585b70; + box-shadow: none; + text-shadow: none; + padding: 0px; + border-radius: 9px; + padding-left: 4px; + padding-right: 4px; + animation: gradient_f 20s ease-in infinite; + transition: all 0.5s cubic-bezier(0.55, -0.68, 0.48, 1.682); } #workspaces button.active { - background-color: dimgrey; - color: #000000; - border-radius: 15px 15px 15px 15px; - padding-left: 8px; - padding-right: 8px; - animation: gradient_f 20s ease-in infinite; - transition: all 0.3s cubic-bezier(.55,-0.68,.48,1.682); + background-color: dimgrey; + color: #000000; + border-radius: 15px 15px 15px 15px; + padding-left: 8px; + padding-right: 8px; + animation: gradient_f 20s ease-in infinite; + transition: all 0.3s cubic-bezier(0.55, -0.68, 0.48, 1.682); } #workspaces button.focused { - color: #000000; + color: #000000; } #workspaces button.urgent { - color: #000000; - border-radius: 10px; + color: #000000; + border-radius: 10px; } #workspaces button:hover { - color: #000000; - border-radius: 15px; - padding-left: 2px; - padding-right: 2px; - animation: gradient_f 20s ease-in infinite; - transition: all 0.3s cubic-bezier(.55,-0.68,.48,1.682); + color: #000000; + border-radius: 15px; + padding-left: 2px; + padding-right: 2px; + animation: gradient_f 20s ease-in infinite; + transition: all 0.3s cubic-bezier(0.55, -0.68, 0.48, 1.682); } #backlight, @@ -133,86 +133,86 @@ tooltip label { #custom-weather.clearNight, #custom-weather.cloudyFoggyDay, #custom-weather.cloudyFoggyNight, -#custom-weather.default, +#custom-weather.default, #custom-weather.rainyDay, #custom-weather.rainyNight, #custom-weather.severe, #custom-weather.showyIcyDay, #custom-weather.snowyIcyNight, #custom-weather.sunnyDay { - color: #000000; - border-radius: 8px; - padding-top: 4px; - padding-bottom: 4px; - padding-right: 6px; - padding-left: 6px; + color: #000000; + border-radius: 8px; + padding-top: 4px; + padding-bottom: 4px; + padding-right: 6px; + padding-left: 6px; } #temperature.critical { - background-color: #ff0000; + background-color: #ff0000; } @keyframes blink { - to { - color: #000000; - } + to { + color: #000000; + } } /*-----Indicators----*/ #custom-hypridle.notactive, #idle_inhibitor.activated { - color: #39FF14; - border-bottom: 8px solid rgba(0, 0, 0, 0.2); + color: #39ff14; + border-bottom: 0px solid rgba(0, 0, 0, 0.2); } #taskbar button.active { - background-color: #585b70; - color: #cdd6f4; - padding-left: 12px; - padding-right: 12px; - animation: gradient_f 20s ease-in infinite; - transition: all 0.3s cubic-bezier(.55,-0.68,.48,1.682); + background-color: #585b70; + color: #cdd6f4; + padding-left: 12px; + padding-right: 12px; + animation: gradient_f 20s ease-in infinite; + transition: all 0.3s cubic-bezier(0.55, -0.68, 0.48, 1.682); } #taskbar button:hover { - padding-left: 3px; - padding-right: 3px; - animation: gradient_f 20s ease-in infinite; - transition: all 0.3s cubic-bezier(.55,-0.68,.48,1.682); + padding-left: 3px; + padding-right: 3px; + animation: gradient_f 20s ease-in infinite; + transition: all 0.3s cubic-bezier(0.55, -0.68, 0.48, 1.682); } #battery.critical:not(.charging) { - color: #f53c3c; - animation-name: blink; - animation-duration: 3.0s; - animation-timing-function: steps(12); - animation-iteration-count: infinite; - animation-direction: alternate; + color: #f53c3c; + animation-name: blink; + animation-duration: 3s; + animation-timing-function: steps(12); + animation-iteration-count: infinite; + animation-direction: alternate; } #backlight-slider slider, #pulseaudio-slider slider { - min-width: 0px; - min-height: 0px; - opacity: 0; - background-image: none; - border: none; - box-shadow: none; + min-width: 0px; + min-height: 0px; + opacity: 0; + background-image: none; + border: none; + box-shadow: none; } #backlight-slider trough, #pulseaudio-slider trough { - min-width: 80px; - min-height: 5px; - border-radius: 5px; - background-color: grey; + min-width: 80px; + min-height: 5px; + border-radius: 5px; + background-color: grey; } #backlight-slider highlight, #pulseaudio-slider highlight { - min-height: 10px; - border-radius: 5px; - background-color: #ba5663; + min-height: 10px; + border-radius: 5px; + background-color: #ba5663; } /* --- tray readability override (global) --- */ diff --git a/config/waybar/style/Rainbow-RGB-Bordered.css b/config/waybar/style/Rainbow-RGB-Bordered.css index 932f75b8..53306120 100644 --- a/config/waybar/style/Rainbow-RGB-Bordered.css +++ b/config/waybar/style/Rainbow-RGB-Bordered.css @@ -3,87 +3,89 @@ /* Designed by https://github.com/0xl30 */ * { - font-family: "JetBrainsMono Nerd Font"; - font-weight: bold; - min-height: 0; - /* set font-size to 100% if font scaling is set to 1.00 using nwg-look */ - /* NOTE: Waybar v14+ ignores % font-size values */ - font-size: 99%; - font-feature-settings: '"zero", "ss01", "ss02", "ss03", "ss04", "ss05", "cv31"'; + font-family: "JetBrainsMono Nerd Font"; + font-weight: bold; + min-height: 0; + /* set font-size to 100% if font scaling is set to 1.00 using nwg-look */ + /* NOTE: Waybar v14+ ignores % font-size values */ + font-size: 99%; + font-feature-settings: '"zero", "ss01", "ss02", "ss03", "ss04", "ss05", "cv31"'; } @import "../waybar/style/catppuccin-themes/rgbmocha.css"; window#waybar { - transition-property: background-color; - transition-duration: 0.5s; - background: transparent; - border-radius: 2px; - /* Waybar scaling: adjust font-size to scale the bar */ - font-size: 14px; + transition-property: background-color; + transition-duration: 0.5s; + background: transparent; + border-radius: 2px; + /* Waybar scaling: adjust font-size to scale the bar */ + font-size: 14px; } window#waybar.hidden { - opacity: 0.2; - /* Waybar scaling: adjust font-size to scale the bar */ - font-size: 14px; + opacity: 0.2; + /* Waybar scaling: adjust font-size to scale the bar */ + font-size: 14px; } window#waybar.empty, window#waybar.empty #window { - background-color: transparent; - padding: 0px; - border: 0px; - /* Waybar scaling: adjust font-size to scale the bar */ - font-size: 14px; + background-color: transparent; + padding: 0px; + border: 0px; + /* Waybar scaling: adjust font-size to scale the bar */ + font-size: 14px; } #taskbar button, #workspaces button { - color: @overlay1; - box-shadow: none; - text-shadow: none; - padding: 0px; - border-radius: 9px; - padding-left: 4px; - padding-right: 4px; - animation: gradient_f 20s ease-in infinite; - transition: all 0.5s cubic-bezier(.55,-0.68,.48,1.682); + color: @overlay1; + box-shadow: none; + text-shadow: none; + padding: 0px; + border-radius: 9px; + padding-left: 4px; + padding-right: 4px; + animation: gradient_f 20s ease-in infinite; + transition: all 0.5s cubic-bezier(0.55, -0.68, 0.48, 1.682); } #taskbar button:hover, #workspaces button:hover { - border-radius: 10px; - color: @peach; - background-color: @surface0; - padding-left: 2px; - padding-right: 2px; - animation: gradient_f 20s ease-in infinite; - transition: all 0.3s cubic-bezier(.55,-0.68,.48,1.682); + border-radius: 10px; + color: @peach; + background-color: @surface0; + padding-left: 2px; + padding-right: 2px; + animation: gradient_f 20s ease-in infinite; + transition: all 0.3s cubic-bezier(0.55, -0.68, 0.48, 1.682); } #workspaces button.persistent { - color: @surface1; - border-radius: 10px; + color: @surface1; + border-radius: 10px; } #taskbar button.active, #workspaces button.active { - color: @mauve; - border-radius: 10px; - padding-left: 8px; - padding-right: 8px; - animation: gradient_f 20s ease-in infinite; - transition: all 0.3s cubic-bezier(.55,-0.68,.48,1.682); + color: @mauve; + border-radius: 10px; + padding-left: 8px; + padding-right: 8px; + animation: gradient_f 20s ease-in infinite; + transition: all 0.3s cubic-bezier(0.55, -0.68, 0.48, 1.682); } #workspaces button.urgent { - color: @red; - border-radius: 0px; + color: @red; + border-radius: 0px; } /* This section can be use if you want to separate waybar modules */ -.modules-left, .modules-center, .modules-right { +.modules-left, +.modules-center, +.modules-right { background: @theme_base_color; border: 2px solid transparent; padding-top: 2px; @@ -92,11 +94,20 @@ window#waybar.empty #window { padding-left: 4px; border-radius: 0px; - border-image: linear-gradient(90deg, red, orange, yellow, green, blue, indigo, violet) 1; - animation: rainbow-gradient 20s ease-in-out infinite; /* Adjust timing as needed */ + border-image: linear-gradient( + 90deg, + red, + orange, + yellow, + green, + blue, + indigo, + violet + ) + 1; + animation: rainbow-gradient 20s ease-in-out infinite; /* Adjust timing as needed */ } - #backlight, #backlight-slider, #battery, @@ -152,23 +163,23 @@ window#waybar.empty #window { #custom-weather.clearNight, #custom-weather.cloudyFoggyDay, #custom-weather.cloudyFoggyNight, -#custom-weather.default, +#custom-weather.default, #custom-weather.rainyDay, #custom-weather.rainyNight, #custom-weather.severe, #custom-weather.showyIcyDay, #custom-weather.snowyIcyNight, #custom-weather.sunnyDay { - padding-top: 4px; - padding-bottom: 4px; - padding-right: 6px; - padding-left: 6px; + padding-top: 4px; + padding-bottom: 4px; + padding-right: 6px; + padding-left: 6px; } /*-----Indicators----*/ #custom-hypridle.notactive, #idle_inhibitor.activated { - color: #39FF14; - border-bottom: 8px solid rgba(0, 0, 0, 0.2); + color: #39ff14; + border-bottom: 0px solid rgba(0, 0, 0, 0.2); } #bluetooth, @@ -190,7 +201,7 @@ window#waybar.empty #window { background-color: @red; color: @theme_text_color; animation-name: blink; - animation-duration: 3.0s; + animation-duration: 3s; animation-timing-function: steps(12); animation-iteration-count: infinite; animation-direction: alternate; @@ -234,17 +245,24 @@ window#waybar.empty #window { } #custom-cava_mviz { - animation: rainbow-text 0.80s linear infinite; + animation: rainbow-text 0.8s linear infinite; } @keyframes rainbow-text { - 0% { color: rgb(0, 247, 198); } /* Low amplitude */ - 42% { color: rgb(60, 0, 179); } /* Mid amplitude */ - 71% { color: indigo; } /* Higher amplitude */ - 100% { color: rgb(234, 0, 255); } /* Maximum amplitude */ + 0% { + color: rgb(0, 247, 198); + } /* Low amplitude */ + 42% { + color: rgb(60, 0, 179); + } /* Mid amplitude */ + 71% { + color: indigo; + } /* Higher amplitude */ + 100% { + color: rgb(234, 0, 255); + } /* Maximum amplitude */ } - #custom-menu { color: @rosewater; } @@ -285,7 +303,7 @@ window#waybar.empty #window { } #mpris { - color:@lavender; + color: @lavender; } #network { @@ -299,25 +317,25 @@ window#waybar.empty #window { #backlight-slider slider, #pulseaudio-slider slider { - min-width: 0px; - min-height: 0px; - opacity: 0; - background-image: none; - border: none; - box-shadow: none; + min-width: 0px; + min-height: 0px; + opacity: 0; + background-image: none; + border: none; + box-shadow: none; } #backlight-slider trough, #pulseaudio-slider trough { - min-width: 80px; - min-height: 5px; - border-radius: 5px; + min-width: 80px; + min-height: 5px; + border-radius: 5px; } #backlight-slider highlight, #pulseaudio-slider highlight { - min-height: 10px; - border-radius: 5px; + min-height: 10px; + border-radius: 5px; } /* --- tray readability override (global) --- */ diff --git a/config/waybar/style/Retro-Simple-Style.css b/config/waybar/style/Retro-Simple-Style.css index 03ae4a33..49725bfd 100644 --- a/config/waybar/style/Retro-Simple-Style.css +++ b/config/waybar/style/Retro-Simple-Style.css @@ -9,14 +9,13 @@ @define-color green #b8bb26; * { - font-family: "JetBrainsMono Nerd Font"; - font-weight: bold; - min-height: 0; - /* set font-size to 100% if font scaling is set to 1.00 using nwg-look */ - /* NOTE: Waybar v14+ ignores % font-size values */ - font-size: 99%; - font-feature-settings: '"zero", "ss01", "ss02", "ss03", "ss04", "ss05", "cv31"'; - + font-family: "JetBrainsMono Nerd Font"; + font-weight: bold; + min-height: 0; + /* set font-size to 100% if font scaling is set to 1.00 using nwg-look */ + /* NOTE: Waybar v14+ ignores % font-size values */ + font-size: 99%; + font-feature-settings: '"zero", "ss01", "ss02", "ss03", "ss04", "ss05", "cv31"'; } window#waybar { @@ -102,7 +101,7 @@ window#waybar { #custom-weather.clearNight, #custom-weather.cloudyFoggyDay, #custom-weather.cloudyFoggyNight, -#custom-weather.default, +#custom-weather.default, #custom-weather.rainyDay, #custom-weather.rainyNight, #custom-weather.severe, @@ -131,7 +130,7 @@ window#waybar { background-color: @red; color: white; animation-name: blink; - animation-duration: 3.0s; + animation-duration: 3s; animation-timing-function: steps(12); animation-iteration-count: infinite; animation-direction: alternate; @@ -141,8 +140,8 @@ window#waybar { /*-----Indicators----*/ #custom-hypridle.notactive, #idle_inhibitor.activated { - color: #39FF14; - border-bottom: 3px solid yellow; + color: #39ff14; + border-bottom: 0px solid yellow; } #battery.critical, @@ -154,7 +153,7 @@ window#waybar { } #temperature.critical { - background-color: red; + background-color: red; } #battery.charging { @@ -164,27 +163,27 @@ window#waybar { #backlight-slider slider, #pulseaudio-slider slider { - min-width: 0px; - min-height: 0px; - opacity: 0; - background-image: none; - border: none; - box-shadow: none; + min-width: 0px; + min-height: 0px; + opacity: 0; + background-image: none; + border: none; + box-shadow: none; } #backlight-slider trough, #pulseaudio-slider trough { - min-width: 80px; - min-height: 5px; - border-radius: 5px; - background-color: @dim; + min-width: 80px; + min-height: 5px; + border-radius: 5px; + background-color: @dim; } #backlight-slider highlight, #pulseaudio-slider highlight { - min-height: 10px; - border-radius: 5px; - background-color: @green; + min-height: 10px; + border-radius: 5px; + background-color: @green; } /* --- tray readability override (global) --- */ diff --git a/config/waybar/style/Transparent-Crystal-Clear.css b/config/waybar/style/Transparent-Crystal-Clear.css index ae4f57c0..4e4fb3fa 100644 --- a/config/waybar/style/Transparent-Crystal-Clear.css +++ b/config/waybar/style/Transparent-Crystal-Clear.css @@ -2,79 +2,78 @@ /* .......Crystal Clear....................... */ /* --- 👍 designed by https://github.com/Krautt 👍 --- */ -*{ - font-family: "JetBrainsMono Nerd Font"; - font-weight: bold; - min-height: 0; - /* set font-size to 100% if font scaling is set to 1.00 using nwg-look */ - /* NOTE: Waybar v14+ ignores % font-size values */ - font-size: 99%; - font-feature-settings: '"zero", "ss01", "ss02", "ss03", "ss04", "ss05", "cv31"'; +* { + font-family: "JetBrainsMono Nerd Font"; + font-weight: bold; + min-height: 0; + /* set font-size to 100% if font scaling is set to 1.00 using nwg-look */ + /* NOTE: Waybar v14+ ignores % font-size values */ + font-size: 99%; + font-feature-settings: '"zero", "ss01", "ss02", "ss03", "ss04", "ss05", "cv31"'; } - + window#waybar { - background:transparent; - border-radius: 1px; - color: whitesmoke; - /* Waybar scaling: adjust font-size to scale the bar */ - font-size: 14px; + background: transparent; + border-radius: 1px; + color: whitesmoke; + /* Waybar scaling: adjust font-size to scale the bar */ + font-size: 14px; } - + window#waybar.hidden { - opacity: 0.5; - /* Waybar scaling: adjust font-size to scale the bar */ - font-size: 14px; + opacity: 0.5; + /* Waybar scaling: adjust font-size to scale the bar */ + font-size: 14px; } -window#waybar.empty -window#waybar.empty #window { - padding: 0px; - border: 0px; - background-color: transparent; - /* Waybar scaling: adjust font-size to scale the bar */ - font-size: 14px; +window#waybar.empty window#waybar.empty #window { + padding: 0px; + border: 0px; + background-color: transparent; + /* Waybar scaling: adjust font-size to scale the bar */ + font-size: 14px; } -#taskbar button, +#taskbar button, #workspaces button { - color: #6E6A86; - box-shadow: none; - text-shadow: none; - padding: 0px; - border-radius: 9px; - padding-left: 4px; - padding-right: 4px; - animation: gradient_f 20s ease-in infinite; - transition: all 0.5s cubic-bezier(.55,-0.68,.48,1.682); + color: #6e6a86; + box-shadow: none; + text-shadow: none; + padding: 0px; + border-radius: 9px; + padding-left: 4px; + padding-right: 4px; + animation: gradient_f 20s ease-in infinite; + transition: all 0.5s cubic-bezier(0.55, -0.68, 0.48, 1.682); } - + #workspaces button.active { - color: whitesmoke; - border-radius: 15px 15px 15px 15px; - padding-left: 8px; - padding-right: 8px; - animation: gradient_f 20s ease-in infinite; - transition: all 0.3s cubic-bezier(.55,-0.68,.48,1.682); + color: whitesmoke; + border-radius: 15px 15px 15px 15px; + padding-left: 8px; + padding-right: 8px; + animation: gradient_f 20s ease-in infinite; + transition: all 0.3s cubic-bezier(0.55, -0.68, 0.48, 1.682); } - + #workspaces button.focused { - color: #d8dee9; + color: #d8dee9; } - + #workspaces button.urgent { - color: #11111b; - border-radius: 10px; + color: #11111b; + border-radius: 10px; } - + #workspaces button:hover { - color: whitesmoke; - border-radius: 15px; - padding-left: 2px; - padding-right: 2px; - animation: gradient_f 20s ease-in infinite; - transition: all 0.3s cubic-bezier(.55,-0.68,.48,1.682); + color: whitesmoke; + border-radius: 15px; + padding-left: 2px; + padding-right: 2px; + animation: gradient_f 20s ease-in infinite; + transition: all 0.3s cubic-bezier(0.55, -0.68, 0.48, 1.682); } - + #backlight, #battery, #bluetooth, @@ -127,83 +126,82 @@ window#waybar.empty #window { #custom-weather.clearNight, #custom-weather.cloudyFoggyDay, #custom-weather.cloudyFoggyNight, -#custom-weather.default -#custom-weather.rainyDay, +#custom-weather.default #custom-weather.rainyDay, #custom-weather.rainyNight, #custom-weather.severe, #custom-weather.showyIcyDay, #custom-weather.snowyIcyNight, #custom-weather.sunnyDay { - padding-top: 4px; - padding-bottom: 4px; - padding-right: 6px; - padding-left: 6px; + padding-top: 4px; + padding-bottom: 4px; + padding-right: 6px; + padding-left: 6px; } - + #temperature.critical { - background-color: #ff0000; + background-color: #ff0000; } - + @keyframes blink { - to { - color: #000000; - } + to { + color: #000000; + } } /*-----Indicators----*/ #custom-hypridle.notactive, #idle_inhibitor.activated { - color: #39FF14; - border-bottom: 8px solid rgba(0, 0, 0, 0.2); + color: #39ff14; + border-bottom: 0px solid rgba(0, 0, 0, 0.2); } #taskbar button:hover { - padding-left: 3px; - padding-right: 3px; - animation: gradient_f 20s ease-in infinite; - transition: all 0.3s cubic-bezier(.55,-0.68,.48,1.682); + padding-left: 3px; + padding-right: 3px; + animation: gradient_f 20s ease-in infinite; + transition: all 0.3s cubic-bezier(0.55, -0.68, 0.48, 1.682); } - + #taskbar button.active { - background-color: #7f849c; - padding-left: 12px; - padding-right: 12px; - animation: gradient_f 20s ease-in infinite; - transition: all 0.3s cubic-bezier(.55,-0.68,.48,1.682); + background-color: #7f849c; + padding-left: 12px; + padding-right: 12px; + animation: gradient_f 20s ease-in infinite; + transition: all 0.3s cubic-bezier(0.55, -0.68, 0.48, 1.682); } - + #battery.critical:not(.charging) { - color: #f53c3c; - animation-name: blink; - animation-duration: 3.0s; - animation-timing-function: steps(12); - animation-iteration-count: infinite; - animation-direction: alternate; + color: #f53c3c; + animation-name: blink; + animation-duration: 3s; + animation-timing-function: steps(12); + animation-iteration-count: infinite; + animation-direction: alternate; } #backlight-slider slider, #pulseaudio-slider slider { - min-width: 0px; - min-height: 0px; - opacity: 0; - background-image: none; - border: none; - box-shadow: none; + min-width: 0px; + min-height: 0px; + opacity: 0; + background-image: none; + border: none; + box-shadow: none; } #backlight-slider trough, #pulseaudio-slider trough { - min-width: 80px; - min-height: 10px; - border-radius: 5px; - background-color: black; + min-width: 80px; + min-height: 10px; + border-radius: 5px; + background-color: black; } #backlight-slider highlight, #pulseaudio-slider highlight { - min-height: 10px; - border-radius: 5px; - background-color: wheat; + min-height: 10px; + border-radius: 5px; + background-color: wheat; } /* --- tray readability override (global) --- */ diff --git a/config/waybar/style/VERTICAL-Catpuccin-Mocha.css b/config/waybar/style/VERTICAL-Catpuccin-Mocha.css index f2fecff9..7c092fa2 100644 --- a/config/waybar/style/VERTICAL-Catpuccin-Mocha.css +++ b/config/waybar/style/VERTICAL-Catpuccin-Mocha.css @@ -3,13 +3,13 @@ /* As stated on title, best style for vertical layout waybar config */ * { - font-family: "JetBrainsMono Nerd Font"; - font-weight: bold; - min-height: 0; - /* set font-size to 100% if font scaling is set to 1.00 using nwg-look */ - /* NOTE: Waybar v14+ ignores % font-size values */ - font-size: 99%; - font-feature-settings: '"zero", "ss01", "ss02", "ss03", "ss04", "ss05", "cv31"'; + font-family: "JetBrainsMono Nerd Font"; + font-weight: bold; + min-height: 0; + /* set font-size to 100% if font scaling is set to 1.00 using nwg-look */ + /* NOTE: Waybar v14+ ignores % font-size values */ + font-size: 99%; + font-feature-settings: '"zero", "ss01", "ss02", "ss03", "ss04", "ss05", "cv31"'; } @import "../waybar/style/catppuccin-themes/mocha.css"; @@ -41,10 +41,10 @@ tooltip label { #workspaces button { color: @surface2; background-color: transparent; - padding-top: 4px; - padding-bottom: 4px; - padding-right: 6px; - padding-left: 4px; + padding-top: 4px; + padding-bottom: 4px; + padding-right: 6px; + padding-left: 4px; } #taskbar button.active, @@ -126,7 +126,7 @@ tooltip label { #custom-weather.clearNight, #custom-weather.cloudyFoggyDay, #custom-weather.cloudyFoggyNight, -#custom-weather.default, +#custom-weather.default, #custom-weather.rainyDay, #custom-weather.rainyNight, #custom-weather.severe, @@ -142,7 +142,7 @@ tooltip label { #idle_inhibitor { color: @pink; - border-bottom: 8px solid rgba(0, 0, 0, 0.2); + border-bottom: 0px solid rgba(0, 0, 0, 0.2); } #mpris { @@ -188,7 +188,6 @@ tooltip label { color: @flamingo; } - #custom-weather { color: @green; border-radius: 15px; diff --git a/config/waybar/style/Wallust-Bordered-Chroma-Fusion-Edge.css b/config/waybar/style/Wallust-Bordered-Chroma-Fusion-Edge.css index 6426a420..71215c29 100644 --- a/config/waybar/style/Wallust-Bordered-Chroma-Fusion-Edge.css +++ b/config/waybar/style/Wallust-Bordered-Chroma-Fusion-Edge.css @@ -17,48 +17,48 @@ @define-color button-color @color11; @define-color button-hover @color9; -@import '../../.config/waybar/wallust/colors-waybar.css'; +@import "../../.config/waybar/wallust/colors-waybar.css"; @import "../waybar/style/catppuccin-themes/latte.css"; * { - font-family: "JetBrainsMono Nerd Font"; - font-weight: bold; - min-height: 0; - /* set font-size to 100% if font scaling is set to 1.00 using nwg-look */ - /* NOTE: Waybar v14+ ignores % font-size values */ - font-size: 99%; - font-feature-settings: '"zero", "ss01", "ss02", "ss03", "ss04", "ss05", "cv31"'; + font-family: "JetBrainsMono Nerd Font"; + font-weight: bold; + min-height: 0; + /* set font-size to 100% if font scaling is set to 1.00 using nwg-look */ + /* NOTE: Waybar v14+ ignores % font-size values */ + font-size: 99%; + font-feature-settings: '"zero", "ss01", "ss02", "ss03", "ss04", "ss05", "cv31"'; } window#waybar { - background: linear-gradient(0deg, @border-color, black); - /*background: rgba(1, 117, 84, 0.5);*/ - /*background: @transparent;*/ - border-bottom-right-radius: 20px; - border-bottom-left-radius: 20px; - border-top-left-radius: 20px; - border-top-right-radius: 20px; - border:2px solid black; - /* Waybar scaling: adjust font-size to scale the bar */ - font-size: 14px; + background: linear-gradient(0deg, @border-color, black); + /*background: rgba(1, 117, 84, 0.5);*/ + /*background: @transparent;*/ + border-bottom-right-radius: 20px; + border-bottom-left-radius: 20px; + border-top-left-radius: 20px; + border-top-right-radius: 20px; + border: 2px solid black; + /* Waybar scaling: adjust font-size to scale the bar */ + font-size: 14px; } window#waybar.empty, window#waybar.empty #window { - background-color: transparent; - padding: 0px; - border: 0px; - /* Waybar scaling: adjust font-size to scale the bar */ - font-size: 14px; + background-color: transparent; + padding: 0px; + border: 0px; + /* Waybar scaling: adjust font-size to scale the bar */ + font-size: 14px; } tooltip { - background-color: transparent; - border-radius: 10px; - border-width: 1px; - border-style: solid; - border-color: #11111b; - color: @border-color; + background-color: transparent; + border-radius: 10px; + border-width: 1px; + border-style: solid; + border-color: #11111b; + color: @border-color; } #backlight, @@ -114,70 +114,69 @@ tooltip { #custom-weather.clearNight, #custom-weather.cloudyFoggyDay, #custom-weather.cloudyFoggyNight, -#custom-weather.default, +#custom-weather.default, #custom-weather.rainyDay, #custom-weather.rainyNight, #custom-weather.severe, #custom-weather.showyIcyDay, #custom-weather.snowyIcyNight, #custom-weather.sunnyDay { - background-color: @background-module; - border-radius: 25px; - padding: 0px 10px 0px 10px; - margin: 5px; - opacity: 1; - border:2px solid @border-color; - + background-color: @background-module; + border-radius: 25px; + padding: 0px 10px 0px 10px; + margin: 5px; + opacity: 1; + border: 2px solid @border-color; } #custom-power { - color: red; - padding: 0px 0px 0px 7px; - opacity:1.0; + color: red; + padding: 0px 0px 0px 0px; + opacity: 1; } #backlight { - padding: 0px 2px 0px 6px; + padding: 0px 2px 0px 6px; } #custom-light_dark, #custom-nightlight, -#custom-menu{ - color: @flamingo; - padding: 0px 8px 0px 4px; - opacity:1.0; +#custom-menu { + color: @flamingo; + padding: 0px 8px 0px 4px; + opacity: 1; } #custom-weather, #custom-weather2, #custom-updates { - color: @yellow; + color: @yellow; } #mpris { - padding-right: 2px; + padding-right: 2px; } #keyboard-state, #clock { - color: @sapphire; + color: @sapphire; } #temperature { - color: @rosewater; + color: @rosewater; } #network { - padding-left: 2px; - color: @rosewater; + padding-left: 2px; + color: @rosewater; } #custom-swaync, #custom-hint, #tray { - color: aliceblue; + color: aliceblue; } #taskbar, -#window { - color:#FFFFFF; +#window { + color: #ffffff; } #bluetooth, @@ -185,141 +184,140 @@ tooltip { #custom-cycle_wall, #custom-keyboard, #custom-light_dark { - color: @lavender; + color: @lavender; } #custom-lock, #custom-hypridle, #idle_inhibitor { - color: @teal; - border-bottom: 8px solid rgba(0, 0, 0, 0.2); + color: @teal; + border-bottom: 0px solid rgba(0, 0, 0, 0.2); } /*-----Indicators----*/ #custom-hypridle.notactive, #idle_inhibitor.activated { - color: #39FF14; - border-bottom: 8px solid rgba(0, 0, 0, 0.2); + color: #39ff14; + border-bottom: 0px solid rgba(0, 0, 0, 0.2); } -#custom-cava_mviz{ - color: @color2; +#custom-cava_mviz { + color: @color2; } #workspaces { - border-radius: 25px; - border:2px solid @border-color; - opacity:0.8; - color:#FFFFFF; - margin: 6px; - + border-radius: 25px; + border: 2px solid @border-color; + opacity: 0.8; + color: #ffffff; + margin: 6px; } #taskbar button, #workspaces button { - border-radius: 15px; - border:0px; - color: @color15; - padding-left: 2px; - padding-right: 2px; - animation: gradient_f 20s ease-in infinite; - transition: all 0.5s cubic-bezier(.55,-0.68,.48,1.682); - opacity:0.8; + border-radius: 15px; + border: 0px; + color: @color15; + padding-left: 2px; + padding-right: 2px; + animation: gradient_f 20s ease-in infinite; + transition: all 0.5s cubic-bezier(0.55, -0.68, 0.48, 1.682); + opacity: 0.8; } #taskbar button.active, #workspaces button.active { - color: #FFFFFF; - background: @button-color; - border-radius: 25px; - padding-left: 4px; - padding-right: 4px; - animation: gradient_f 20s ease-in infinite; - transition: all 0.3s cubic-bezier(.55,-0.68,.48,1.682); - opacity:1.0; + color: #ffffff; + background: @button-color; + border-radius: 25px; + padding-left: 4px; + padding-right: 4px; + animation: gradient_f 20s ease-in infinite; + transition: all 0.3s cubic-bezier(0.55, -0.68, 0.48, 1.682); + opacity: 1; } #workspaces button.empty { - color: #FFFFFF; - opacity:1.0; + color: #ffffff; + opacity: 1; } #taskbar button:hover, #workspaces button:hover { - color: #FFFFFF; - background: @button-hover; - border-radius: 15px; - opacity:1.0; - padding-left: 2px; - padding-right: 2px; - animation: gradient_f 20s ease-in infinite; - transition: all 0.3s cubic-bezier(.55,-0.68,.48,1.682); + color: #ffffff; + background: @button-hover; + border-radius: 15px; + opacity: 1; + padding-left: 2px; + padding-right: 2px; + animation: gradient_f 20s ease-in infinite; + transition: all 0.3s cubic-bezier(0.55, -0.68, 0.48, 1.682); } #pulseaudio-slider, #pulseaudio { - color: @color13; + color: @color13; } #pulseaudio.muted { - color: red; + color: red; } #memory { - color: @sapphire; + color: @sapphire; } #cpu { - color: @mauve; + color: @mauve; } #battery { - color: @rosewater; + color: @rosewater; } #disk { - color: @sky; + color: @sky; } #temperature.critical { - background-color: red; + background-color: red; } @keyframes blink { - to { - color: #000000; - } + to { + color: #000000; + } } #battery.critical:not(.charging) { - color: #f53c3c; - animation-name: blink; - animation-duration: 3.0s; - animation-timing-function: steps(12); - animation-iteration-count: infinite; - animation-direction: alternate; + color: #f53c3c; + animation-name: blink; + animation-duration: 3s; + animation-timing-function: steps(12); + animation-iteration-count: infinite; + animation-direction: alternate; } #backlight-slider slider, #pulseaudio-slider slider { - min-width: 0px; - min-height: 0px; - opacity: 0; - background-image: none; - border: none; - box-shadow: none; + min-width: 0px; + min-height: 0px; + opacity: 0; + background-image: none; + border: none; + box-shadow: none; } #backlight-slider trough, #pulseaudio-slider trough { - min-width: 80px; - min-height: 5px; - border-radius: 5px; + min-width: 80px; + min-height: 5px; + border-radius: 5px; } #backlight-slider highlight, #pulseaudio-slider highlight { - min-height: 10px; - border-radius: 5px; + min-height: 10px; + border-radius: 5px; } /* --- tray readability override (global) --- */ diff --git a/config/waybar/style/Wallust-Bordered-Chroma-Simple.css b/config/waybar/style/Wallust-Bordered-Chroma-Simple.css index 3f51751a..05ad5f91 100644 --- a/config/waybar/style/Wallust-Bordered-Chroma-Simple.css +++ b/config/waybar/style/Wallust-Bordered-Chroma-Simple.css @@ -1,97 +1,96 @@ /* ----------- 💫 https://github.com/LinuxBeginnings 💫 -------- */ /* Wallust Bordered - Chroma Simple */ -@import '../../.config/waybar/wallust/colors-waybar.css'; - +@import "../../.config/waybar/wallust/colors-waybar.css"; * { - font-family: "JetBrainsMono Nerd Font"; - font-weight: bold; - /* set font-size to 100% if font scaling is set to 1.00 using nwg-look */ - /* NOTE: Waybar v14+ ignores % font-size values */ - font-size: 99%; - min-height: 0; + font-family: "JetBrainsMono Nerd Font"; + font-weight: bold; + /* set font-size to 100% if font scaling is set to 1.00 using nwg-look */ + /* NOTE: Waybar v14+ ignores % font-size values */ + font-size: 99%; + min-height: 0; } /* Make group buttons themselves use readable text */ #group-audio, #group-mobo_drawer { - background: @background; - color: @color15; - border: 2px solid @color13; + background: @background; + color: @color15; + border: 2px solid @color13; } window#waybar { - background-color: transparent; - color: @foreground; - padding-left: 15px; - padding-right: 15px; - /* Waybar scaling: adjust font-size to scale the bar */ - font-size: 14px; + background-color: transparent; + color: @foreground; + padding-left: 15px; + padding-right: 15px; + /* Waybar scaling: adjust font-size to scale the bar */ + font-size: 14px; } window#waybar.empty, window#waybar.empty #window { - background-color: transparent; - padding: 0px; - border: 0px; - /* Waybar scaling: adjust font-size to scale the bar */ - font-size: 14px; + background-color: transparent; + padding: 0px; + border: 0px; + /* Waybar scaling: adjust font-size to scale the bar */ + font-size: 14px; } tooltip { - background-color: @background; - color: @foreground; - border-radius: 10px; - border-width: 1.5px; - border-style: solid; - border-color: @color13; - transition: 0.3s; - opacity: 0.9; + background-color: @background; + color: @foreground; + border-radius: 10px; + border-width: 1.5px; + border-style: solid; + border-color: @color13; + transition: 0.3s; + opacity: 0.9; } #taskbar button, #workspaces { - border-radius: 20px; - background: @background; - opacity: 1; - padding: 0px 10px; - margin: 0; - margin-top: 5px; - border: 2px solid @color12; + border-radius: 20px; + background: @background; + opacity: 1; + padding: 0px 10px; + margin: 0; + margin-top: 5px; + border: 2px solid @color12; } #workspaces button { - color: @color10; - box-shadow: none; - text-shadow: none; - padding-right: 12px; - border-radius: 9px; - animation: gradient_f 20s ease-in infinite; - transition: all 0.5s cubic-bezier(.55,-0.68,.48,1.682); + color: @color10; + box-shadow: none; + text-shadow: none; + padding-right: 12px; + border-radius: 9px; + animation: gradient_f 20s ease-in infinite; + transition: all 0.5s cubic-bezier(0.55, -0.68, 0.48, 1.682); } #taskbar button.active, #workspaces button.active { - color: @color12; - padding-right: 12px; - background-color: @background; - animation: gradient_f 20s ease-in infinite; - transition: all 0.3s cubic-bezier(.55,-0.68,.48,1.682); + color: @color12; + padding-right: 12px; + background-color: @background; + animation: gradient_f 20s ease-in infinite; + transition: all 0.3s cubic-bezier(0.55, -0.68, 0.48, 1.682); } #workspaces button.urgent { - color: #11111b; - border-radius: 10px; + color: #11111b; + border-radius: 10px; } #taskbar button:hover, #workspaces button:hover { - color: @color12; - padding-left: 0px; - padding-right: 2px; - animation: gradient_f 20s ease-in infinite; - transition: all 0.3s cubic-bezier(.55,-0.68,.48,1.682); + color: @color12; + padding-left: 0px; + padding-right: 2px; + animation: gradient_f 20s ease-in infinite; + transition: all 0.3s cubic-bezier(0.55, -0.68, 0.48, 1.682); } #backlight, @@ -156,140 +155,138 @@ tooltip { #custom-weather.showyIcyDay, #custom-weather.snowyIcyNight, #custom-weather.sunnyDay { - border-radius: 20px; - background: @background; - opacity: 1; - padding: 0px 10px; - margin: 0; - margin-top: 5px; - border: 2px solid @color13; + border-radius: 20px; + background: @background; + opacity: 1; + padding: 0px 10px; + margin: 0; + margin-top: 5px; + border: 2px solid @color13; } - #cpu { - border: 2px solid @color5; - color: @foreground; - background: @color12; + border: 2px solid @color5; + color: @foreground; + background: @color12; } #memory { - color: @foreground; - background: @color12; + color: @foreground; + background: @color12; } #disk { - color: @foreground; - background: @color12; - border: 2px solid @color13; + color: @foreground; + background: @color12; + border: 2px solid @color13; } -#temperature{ - color: @foreground; - background: @color12; +#temperature { + color: @foreground; + background: @color12; } #temperature.critical { - color: red; - border: 2px solid red; + color: red; + border: 2px solid red; } #custom-power { - color: @color13; - padding-left: 10px; - padding-right: 2px; - border: 2px solid @color13; + color: @color13; + padding-left: 1px; + padding-right: 2px; + border: 2px solid @color13; } #backlight { - color: @color14; - padding-right: 5px; + color: @color14; + padding-right: 5px; } #tray { - border-radius: 20px; - margin-right: 5px; -/* padding: 0px 4px; */ - padding-left: 15px; - padding-right: 15px; - border: 2px solid @color7; + border-radius: 20px; + margin-right: 5px; + /* padding: 0px 4px; */ + padding-left: 15px; + padding-right: 15px; + border: 2px solid @color7; } #mpris { - padding-left: 16px; + padding-left: 16px; } #tray.empty { - background-color: transparent; - border-color: transparent; - border: 0px; + background-color: transparent; + border-color: transparent; + border: 0px; } #window { - margin-left: 5px; - margin-right: 5px; - border: 2px solid @color9; + margin-left: 5px; + margin-right: 5px; + border: 2px solid @color9; } #clock { - color: @color13; + color: @color13; } #clock:hover { - color: @color13; - background: @background; - border: 2px solid @color13; + color: @color13; + background: @background; + border: 2px solid @color13; } - #bluetooth { - color: @color12; - margin-right: 10px -} + color: @color12; + margin-right: 10px; +} #pulseaudio.microphone, #pulseaudio { - background-color: @color12; - color: @color15; - border: 2px solid @color13; + background-color: @color12; + color: @color15; + border: 2px solid @color13; } #pulseaudio.muted { - color: @color13; - padding-right: 20px; + color: @color13; + padding-right: 20px; } #battery { - color: @color10; - margin-right: 5px; - padding-right: 15px; - border: 2px solid @color14; + color: @color10; + margin-right: 5px; + padding-right: 15px; + border: 2px solid @color14; } /*-----Indicators----*/ #custom-hypridle.notactive, #idle_inhibitor.activated { - color: #39FF14; - border-bottom: 8px solid rgba(0, 0, 0, 0.2); + color: #39ff14; + border-bottom: 0px solid rgba(0, 0, 0, 0.2); } #battery.good { - color: @color14; - border: 2px solid @color15; + color: @color14; + border: 2px solid @color15; } #battery.warning { - color: @color13; - border-left: 0px; - border: 2px solid @color12; + color: @color13; + border-left: 0px; + border: 2px solid @color12; } #battery.charging { - color: @color10; + color: @color10; } #battery.critical { - color: @color13; - border-left: 0px; - border: 2px solid @color8; + color: @color13; + border-left: 0px; + border: 2px solid @color8; } @keyframes blink { @@ -302,7 +299,7 @@ tooltip { background-color: red; color: white; animation-name: blink; - animation-duration: 3.0s; + animation-duration: 3s; animation-timing-function: steps(12); animation-iteration-count: infinite; animation-direction: alternate; @@ -310,33 +307,33 @@ tooltip { } #custom-weather { - color: @color12; - border-right: 0px; - margin-left: 0px; - margin-right: 5px; + color: @color12; + border-right: 0px; + margin-left: 0px; + margin-right: 5px; } #backlight-slider slider, #pulseaudio-slider slider { - min-width: 0px; - min-height: 0px; - opacity: 0; - background-image: none; - border: none; - box-shadow: none; + min-width: 0px; + min-height: 0px; + opacity: 0; + background-image: none; + border: none; + box-shadow: none; } #backlight-slider trough, #pulseaudio-slider trough { - min-width: 80px; - min-height: 5px; - border-radius: 5px; + min-width: 80px; + min-height: 5px; + border-radius: 5px; } #backlight-slider highlight, #pulseaudio-slider highlight { - min-height: 10px; - border-radius: 5px; + min-height: 10px; + border-radius: 5px; } /* Ensure group drawer modules match base style (avoid bright per-module colors) */ @@ -347,9 +344,9 @@ tooltip { #group-mobo_drawer #power-profiles-daemon, #group-mobo_drawer #memory, #group-mobo_drawer #disk { - background-color: @background; - color: @color15; - border: 2px solid @color13; + background-color: @background; + color: @color15; + border: 2px solid @color13; } /* Global overrides for this style (match other widgets: dark bg + light text) */ @@ -360,9 +357,9 @@ tooltip { #disk, #temperature, #power-profiles-daemon { - background-color: @background; - color: @color15; - border: 2px solid @color13; + background-color: @background; + color: @color15; + border: 2px solid @color13; } /* --- tray readability override (global) --- */ diff --git a/config/waybar/style/Wallust-Box-type.css b/config/waybar/style/Wallust-Box-type.css index b5d0424f..76a76ca7 100644 --- a/config/waybar/style/Wallust-Box-type.css +++ b/config/waybar/style/Wallust-Box-type.css @@ -162,16 +162,17 @@ window#waybar.empty #window { } #custom-power { - padding-right: 2px; + padding-right: 0px; + padding-left: 0px; } /*-----Indicators----*/ #custom-hypridle.notactive, #idle_inhibitor.activated { color: #39ff14; - border-bottom-width: 5px; - border-bottom-color: @color12; - border-bottom-style: solid; + border-bottom-width: 5px; + border-bottom-color: @color12; + border-bottom-style: solid; } #network { diff --git a/config/waybar/style/Wallust-Chroma-Edge.css b/config/waybar/style/Wallust-Chroma-Edge.css index b1d6811b..c7acf7f0 100644 --- a/config/waybar/style/Wallust-Chroma-Edge.css +++ b/config/waybar/style/Wallust-Chroma-Edge.css @@ -198,7 +198,7 @@ tooltip label { #custom-power { color: #cc3436; - padding: 0px 0px 0px 6px; + padding: 0px 0px 0px 0px; } #custom-launcher { @@ -353,7 +353,7 @@ label:focus { #custom-hypridle.notactive, #idle_inhibitor.activated { color: #39ff14; - border-bottom: 8px solid rgba(0, 0, 0, 0.2); + border-bottom: 0px solid rgba(0, 0, 0, 0.2); } #temperature { diff --git a/config/waybar/style/Wallust-Chroma-Fusion.css b/config/waybar/style/Wallust-Chroma-Fusion.css index 808c7e9b..07ef6094 100644 --- a/config/waybar/style/Wallust-Chroma-Fusion.css +++ b/config/waybar/style/Wallust-Chroma-Fusion.css @@ -17,47 +17,47 @@ @define-color button-color @color11; @define-color button-hover @color12; -@import '../../.config/waybar/wallust/colors-waybar.css'; +@import "../../.config/waybar/wallust/colors-waybar.css"; @import "../waybar/style/catppuccin-themes/latte.css"; * { - font-family: "JetBrainsMono Nerd Font"; - font-weight: bold; - min-height: 0; - /* set font-size to 100% if font scaling is set to 1.00 using nwg-look */ - /* NOTE: Waybar v14+ ignores % font-size values */ - font-size: 99%; - font-feature-settings: '"zero", "ss01", "ss02", "ss03", "ss04", "ss05", "cv31"'; + font-family: "JetBrainsMono Nerd Font"; + font-weight: bold; + min-height: 0; + /* set font-size to 100% if font scaling is set to 1.00 using nwg-look */ + /* NOTE: Waybar v14+ ignores % font-size values */ + font-size: 99%; + font-feature-settings: '"zero", "ss01", "ss02", "ss03", "ss04", "ss05", "cv31"'; } window#waybar { - background: linear-gradient(0deg, @border-color, black); - /*background: rgba(1, 117, 84, 0.5);*/ - /*background: @transparent;*/ - border-bottom-right-radius: 20px; - border-bottom-left-radius: 20px; - border-top-left-radius: 20px; - border-top-right-radius: 20px; - /* Waybar scaling: adjust font-size to scale the bar */ - font-size: 14px; + background: linear-gradient(0deg, @border-color, black); + /*background: rgba(1, 117, 84, 0.5);*/ + /*background: @transparent;*/ + border-bottom-right-radius: 20px; + border-bottom-left-radius: 20px; + border-top-left-radius: 20px; + border-top-right-radius: 20px; + /* Waybar scaling: adjust font-size to scale the bar */ + font-size: 14px; } window#waybar.empty, window#waybar.empty #window { - background-color: transparent; - padding: 0px; - border: 0px; - /* Waybar scaling: adjust font-size to scale the bar */ - font-size: 14px; + background-color: transparent; + padding: 0px; + border: 0px; + /* Waybar scaling: adjust font-size to scale the bar */ + font-size: 14px; } tooltip { - background-color: @background-module; - border-radius: 10px; - border-width: 2px; - border-style: solid; - border-color: #11111b; - color: @color2; + background-color: @background-module; + border-radius: 10px; + border-width: 2px; + border-style: solid; + border-color: #11111b; + color: @color2; } #backlight, @@ -115,67 +115,67 @@ tooltip { #custom-weather.clearNight, #custom-weather.cloudyFoggyDay, #custom-weather.cloudyFoggyNight, -#custom-weather.default, +#custom-weather.default, #custom-weather.rainyDay, #custom-weather.rainyNight, #custom-weather.severe, #custom-weather.showyIcyDay, #custom-weather.snowyIcyNight, #custom-weather.sunnyDay { - background-color: @background-module; - border-radius: 25px; - margin: 5px 5px 5px 5px; - opacity: 1; - padding-top: 4px; - padding-bottom: 4px; - padding-right: 6px; - padding-left: 6px; + background-color: @background-module; + border-radius: 25px; + margin: 5px 5px 5px 5px; + opacity: 1; + padding-top: 4px; + padding-bottom: 4px; + padding-right: 6px; + padding-left: 6px; } #backlight { - padding: 0px 2px 0px 6px; + padding: 0px 2px 0px 6px; } #custom-power { - color: red; - padding: 0px 0px 0px 6px; - opacity:1.0; + color: red; + padding: 0px 0px 0px 0px; + opacity: 1; } #custom-light_dark, #custom-nightlight, -#custom-menu{ - color: @flamingo; - padding: 0px 8px 0px 4px; - opacity:1.0; +#custom-menu { + color: @flamingo; + padding: 0px 8px 0px 4px; + opacity: 1; } #mpris { - color: @sapphire; - padding-right: 0px; + color: @sapphire; + padding-right: 0px; } #custom-swaync, #custom-weather, #custom-weather2, #custom-updater { - color: @yellow; + color: @yellow; } #keyboard-state, #clock { - color: @sapphire; + color: @sapphire; } #network, #temperature { - color: @rosewater; + color: @rosewater; } #custom-hint, #tray { - color: aliceblue; + color: aliceblue; } #taskbar, -#window { - color:#FFFFFF; +#window { + color: #ffffff; } #bluetooth, @@ -183,150 +183,149 @@ tooltip { #custom-cycle_wall, #custom-keyboard, #custom-light_dark { - color: @lavender; + color: @lavender; } #custom-cava_mviz { - color: @color15; - background-color: rgba(15, 96, 95, 0.65); - border: 1px solid @color10; + color: @color15; + background-color: rgba(15, 96, 95, 0.65); + border: 1px solid @color10; } #custom-lock, #custom-hypridle, #idle_inhibitor { - color: @teal; - border-bottom: 8px solid rgba(0, 0, 0, 0.2); + color: @teal; + border-bottom: 0px solid rgba(0, 0, 0, 0.2); } /*-----Indicators----*/ #custom-hypridle.notactive, #idle_inhibitor.activated { - color: #39FF14; - border-bottom: 8px solid rgba(0, 0, 0, 0.2); + color: #39ff14; + border-bottom: 0px solid rgba(0, 0, 0, 0.2); } #workspaces { - margin: 3px 3px 3px 3px; - padding: 0px 1px; - border-radius: 25px; - font-weight: bold; - font-style: normal; - opacity:0.8; - color:#FFFFFF; - + margin: 3px 3px 3px 3px; + padding: 0px 1px; + border-radius: 25px; + font-weight: bold; + font-style: normal; + opacity: 0.8; + color: #ffffff; } #taskbar button, #workspaces button { - margin: 1px 1px; - border-radius: 15px; - border: 1px solid transparent; - background: transparent; - color: @color15; - padding-left: 2px; - padding-right: 2px; - animation: gradient_f 20s ease-in infinite; - transition: all 0.5s cubic-bezier(.55,-0.68,.48,1.682); - opacity:0.8; + margin: 1px 1px; + border-radius: 15px; + border: 1px solid transparent; + background: transparent; + color: @color15; + padding-left: 2px; + padding-right: 2px; + animation: gradient_f 20s ease-in infinite; + transition: all 0.5s cubic-bezier(0.55, -0.68, 0.48, 1.682); + opacity: 0.8; } #taskbar button.active, #workspaces button.active { - color: @color0; - background: @color12; - border: 1px solid @color15; - border-radius: 15px; - padding-left: 4px; - padding-right: 4px; - animation: gradient_f 20s ease-in infinite; - transition: all 0.3s cubic-bezier(.55,-0.68,.48,1.682); - opacity:1.0; + color: @color0; + background: @color12; + border: 1px solid @color15; + border-radius: 15px; + padding-left: 4px; + padding-right: 4px; + animation: gradient_f 20s ease-in infinite; + transition: all 0.3s cubic-bezier(0.55, -0.68, 0.48, 1.682); + opacity: 1; } #workspaces button.empty { - color: #FFFFFF; - opacity:1.0; + color: #ffffff; + opacity: 1; } #taskbar button:hover, #workspaces button:hover { - color: @color0; - background: @color11; - border: 1px solid @color15; - border-radius: 15px; - opacity:1.0; - padding-left: 2px; - padding-right: 2px; - animation: gradient_f 20s ease-in infinite; - transition: all 0.3s cubic-bezier(.55,-0.68,.48,1.682); + color: @color0; + background: @color11; + border: 1px solid @color15; + border-radius: 15px; + opacity: 1; + padding-left: 2px; + padding-right: 2px; + animation: gradient_f 20s ease-in infinite; + transition: all 0.3s cubic-bezier(0.55, -0.68, 0.48, 1.682); } #pulseaudio-slider, #pulseaudio { - color: @color13; + color: @color13; } #pulseaudio.muted { - color: red; + color: red; } #memory { - color: @sapphire; + color: @sapphire; } #cpu { - color: @mauve; + color: @mauve; } #battery { - color: @rosewater; + color: @rosewater; } #disk { - color: @sky; + color: @sky; } #temperature.critical { - background-color: red; + background-color: red; } @keyframes blink { - to { - color: #000000; - } + to { + color: #000000; + } } #battery.critical:not(.charging) { - color: #f53c3c; - animation-name: blink; - animation-duration: 3.0s; - animation-timing-function: steps(12); - animation-iteration-count: infinite; - animation-direction: alternate; + color: #f53c3c; + animation-name: blink; + animation-duration: 3s; + animation-timing-function: steps(12); + animation-iteration-count: infinite; + animation-direction: alternate; } #backlight-slider slider, #pulseaudio-slider slider { - min-width: 0px; - min-height: 0px; - opacity: 0; - background-image: none; - border: none; - box-shadow: none; + min-width: 0px; + min-height: 0px; + opacity: 0; + background-image: none; + border: none; + box-shadow: none; } #backlight-slider trough, #pulseaudio-slider trough { - min-width: 80px; - min-height: 5px; - border-radius: 5px; + min-width: 80px; + min-height: 5px; + border-radius: 5px; } #backlight-slider highlight, #pulseaudio-slider highlight { - min-height: 10px; - border-radius: 5px; + min-height: 10px; + border-radius: 5px; } /* --- tray readability override (global) --- */ diff --git a/config/waybar/style/Wallust-Chroma-Tally-V2.css b/config/waybar/style/Wallust-Chroma-Tally-V2.css index 4fd9e6b3..be00b262 100644 --- a/config/waybar/style/Wallust-Chroma-Tally-V2.css +++ b/config/waybar/style/Wallust-Chroma-Tally-V2.css @@ -1,74 +1,79 @@ /* ---- 💫 https://github.com/LinuxBeginnings 💫 ---- */ /* Wallust - Chroma Tally v2 */ -/* edited by: https://github.com/prateekshukla1108 */ +/* edited by: https://github.com/prateekshukla1108 */ -@import '../../.config/waybar/wallust/colors-waybar.css'; +@import "../../.config/waybar/wallust/colors-waybar.css"; * { - font-family: "JetBrainsMono Nerd Font"; - font-weight: bold; - min-height: 0; - /* NOTE: Waybar v14+ ignores % font-size values */ - font-size: 99%; - font-feature-settings: '"zero", "ss01", "ss02", "ss03", "ss04", "ss05", "cv31"'; + font-family: "JetBrainsMono Nerd Font"; + font-weight: bold; + min-height: 0; + /* NOTE: Waybar v14+ ignores % font-size values */ + font-size: 99%; + font-feature-settings: '"zero", "ss01", "ss02", "ss03", "ss04", "ss05", "cv31"'; } window#waybar { - background: @color0; /* Dark background */ - border-radius: 12px; - border-bottom: 2px; - border-style: solid; - border-color: @color7; /* Light border */ - /* Waybar scaling: adjust font-size to scale the bar */ - font-size: 14px; + background: @color0; /* Dark background */ + border-radius: 12px; + border-bottom: 2px; + border-style: solid; + border-color: @color7; /* Light border */ + /* Waybar scaling: adjust font-size to scale the bar */ + font-size: 14px; } #workspaces { - background: transparent; - padding: 2px; - border-radius: 15px; - border: 0px; - font-style: normal; - color: @color7; /* Light text */ + background: transparent; + padding: 2px; + border-radius: 15px; + border: 0px; + font-style: normal; + color: @color7; /* Light text */ } #taskbar button, #workspaces button { - padding: 0px 5px; - border-radius: 15px; - border: 0px; - color: @color7; /* Light text */ - background: linear-gradient(45deg, @color5, @color6, @color7); /* Lighter gradient */ - opacity: 0.5; - transition: all 0.3s cubic-bezier(.55,-0.68,.48,1.682); + padding: 0px 5px; + border-radius: 15px; + border: 0px; + color: @color7; /* Light text */ + background: linear-gradient( + 45deg, + @color5, + @color6, + @color7 + ); /* Lighter gradient */ + opacity: 0.5; + transition: all 0.3s cubic-bezier(0.55, -0.68, 0.48, 1.682); } #taskbar button.active, #workspaces button.active { - padding: 0px 5px; - border-radius: 15px; - border: 0px; - color: @color7; /* Light text */ - background: linear-gradient(45deg, @color5, @color6); /* Lighter gradient */ - opacity: 1.0; - min-width: 40px; - transition: all 0.3s cubic-bezier(.55,-0.68,.48,1.682); + padding: 0px 5px; + border-radius: 15px; + border: 0px; + color: @color7; /* Light text */ + background: linear-gradient(45deg, @color5, @color6); /* Lighter gradient */ + opacity: 1; + min-width: 40px; + transition: all 0.3s cubic-bezier(0.55, -0.68, 0.48, 1.682); } #workspaces button:hover { - border-radius: 15px; - color: @color7; /* Light text */ - background: linear-gradient(45deg, @color6, @color7); /* Lighter gradient */ - opacity: 0.8; - transition: all 0.3s cubic-bezier(.55,-0.68,.48,1.682); + border-radius: 15px; + color: @color7; /* Light text */ + background: linear-gradient(45deg, @color6, @color7); /* Lighter gradient */ + opacity: 0.8; + transition: all 0.3s cubic-bezier(0.55, -0.68, 0.48, 1.682); } tooltip { - background: @background-alt; /* Theme-neutral tooltip background */ - opacity: 0.8; - border-radius: 6px; - color: @color7; /* Light text */ + background: @background-alt; /* Theme-neutral tooltip background */ + opacity: 0.8; + border-radius: 6px; + color: @color7; /* Light text */ } #backlight, @@ -125,108 +130,108 @@ tooltip { #custom-weather.clearNight, #custom-weather.cloudyFoggyDay, #custom-weather.cloudyFoggyNight, -#custom-weather.default, +#custom-weather.default, #custom-weather.rainyDay, #custom-weather.rainyNight, #custom-weather.severe, #custom-weather.showyIcyDay, #custom-weather.snowyIcyNight, #custom-weather.sunnyDay { - padding-top: 5px; - padding-bottom: 5px; - padding-right: 6px; - padding-left: 6px; - color: @color6; /* Lighter - changed from color5 */ + padding-top: 5px; + padding-bottom: 5px; + padding-right: 6px; + padding-left: 6px; + color: @color6; /* Lighter - changed from color5 */ } #clock { - color: @color6; /* Lighter */ + color: @color6; /* Lighter */ } #backlight { - color: @color5; /* Lighter */ + color: @color5; /* Lighter */ } #battery { - color: @color6; /* Lighter */ + color: @color6; /* Lighter */ } #battery.charging { - color: @color7; /* Lightest */ + color: @color7; /* Lightest */ } @keyframes blink { - to { - color: @color4; /* Slightly lighter blink color */ - background-color: @color7; /* Lightest */ - } + to { + color: @color4; /* Slightly lighter blink color */ + background-color: @color7; /* Lightest */ + } } #battery.critical:not(.charging) { - background: @color5; /* Lighter background */ - color: @color7; /* Lightest */ - animation-name: blink; - animation-duration: 3.0s; - animation-timing-function: steps(12); - animation-iteration-count: infinite; - animation-direction: alternate; + background: @color5; /* Lighter background */ + color: @color7; /* Lightest */ + animation-name: blink; + animation-duration: 3s; + animation-timing-function: steps(12); + animation-iteration-count: infinite; + animation-direction: alternate; } #cpu { - color: @color6; /* Lighter */ + color: @color6; /* Lighter */ } #disk { - color: @color5; /* Lighter */ + color: @color5; /* Lighter */ } #custom-keyboard, #memory { - color: @color6; /* Lighter */ + color: @color6; /* Lighter */ } #network.disabled { - color: @color5; /* Lighter */ + color: @color5; /* Lighter */ } -#network{ - color: @color6; /* Lighter */ +#network { + color: @color6; /* Lighter */ } #network.disconnected { - color: @color5; /* Lighter */ + color: @color5; /* Lighter */ } #pulseaudio { - color: @color7; /* Lightest */ + color: @color7; /* Lightest */ } #pulseaudio.muted { - color: @color5; /* Lighter */ + color: @color5; /* Lighter */ } #custom-light_dark, #custom-nightlight, #temperature { - color: @color6; /* Lighter */ + color: @color6; /* Lighter */ } #temperature.critical { - color: @color5; /* Lighter */ + color: @color5; /* Lighter */ } #keyboard-state, #custom-hypridle, #idle_inhibitor { - color: @color5; /* Lighter */ - border-bottom: 2px; + color: @color5; /* Lighter */ + border-bottom: 0px; } /*-----Indicators----*/ #custom-hypridle.notactive, #idle_inhibitor.activated { - color: @color4; /* Slightly lighter */ - border-bottom: 2px; + color: @color4; /* Slightly lighter */ + border-bottom: 0px; } #tray { @@ -234,54 +239,54 @@ tooltip { #custom-swaync, #custom-menu { - color: @color7; /* Lightest */ - padding-left: 8px; + color: @color7; /* Lightest */ + padding-left: 8px; } -#custom-power{ - color: @color6; /* Lighter */ +#custom-power { + color: @color6; /* Lighter */ } -#window{ - border-style: hidden; +#window { + border-style: hidden; +} + +#custom-lock, +#bluetooth { + color: @color5; /* Lighter */ } -#custom-lock, -#bluetooth{ - color: @color5; /* Lighter */ +#custom-cava_mviz { + color: @color7; /* Lightest */ } -#custom-cava_mviz{ - color: @color7; /* Lightest */ -} - -#custom-weather{ - color: @color5; /* Lighter */ +#custom-weather { + color: @color5; /* Lighter */ } #backlight-slider slider, #pulseaudio-slider slider { - min-width: 0px; - min-height: 0px; - opacity: 0; - background-image: none; - border: none; - box-shadow: none; + min-width: 0px; + min-height: 0px; + opacity: 0; + background-image: none; + border: none; + box-shadow: none; } #backlight-slider trough, #pulseaudio-slider trough { - min-width: 80px; - min-height: 5px; - border-radius: 5px; - background-color: @color2; /* Slightly darker trough */ + min-width: 80px; + min-height: 5px; + border-radius: 5px; + background-color: @color2; /* Slightly darker trough */ } #backlight-slider highlight, #pulseaudio-slider highlight { - min-height: 10px; - border-radius: 5px; - background-color: @color6; /* Lighter highlight */ + min-height: 10px; + border-radius: 5px; + background-color: @color6; /* Lighter highlight */ } /* --- tray readability override (global) --- */ diff --git a/config/waybar/style/Wallust-Chroma-Tally.css b/config/waybar/style/Wallust-Chroma-Tally.css index faa6c206..372f6b6c 100644 --- a/config/waybar/style/Wallust-Chroma-Tally.css +++ b/config/waybar/style/Wallust-Chroma-Tally.css @@ -1,73 +1,72 @@ /* ---- 💫 https://github.com/LinuxBeginnings 💫 ---- */ /* Wallust - Chroma Tally */ -@import '../../.config/waybar/wallust/colors-waybar.css'; +@import "../../.config/waybar/wallust/colors-waybar.css"; * { -font-family: "JetBrainsMono Nerd Font"; -font-weight: bold; -min-height: 0; -/* set font-size to 100% if font scaling is set to 1.00 using nwg-look */ -/* NOTE: Waybar v14+ ignores % font-size values */ -font-size: 99%; -font-feature-settings: '"zero", "ss01", "ss02", "ss03", "ss04", "ss05", "cv31"'; + font-family: "JetBrainsMono Nerd Font"; + font-weight: bold; + min-height: 0; + /* set font-size to 100% if font scaling is set to 1.00 using nwg-look */ + /* NOTE: Waybar v14+ ignores % font-size values */ + font-size: 99%; + font-feature-settings: '"zero", "ss01", "ss02", "ss03", "ss04", "ss05", "cv31"'; } window#waybar { - background: rgba (0, 0, 0, 0.5); - border-radius: 12px; - border-bottom: 2px; - border-style: solid; - border-color: @color12; - /* Waybar scaling: adjust font-size to scale the bar */ - font-size: 14px; + background: rgba (0, 0, 0, 0.5); + border-radius: 12px; + border-bottom: 2px; + border-style: solid; + border-color: @color12; + /* Waybar scaling: adjust font-size to scale the bar */ + font-size: 14px; } #workspaces { - background: transparent; - padding: 2px; - border-radius: 15px; - border: 0px; - font-style: normal; - color: #0F1419; + background: transparent; + padding: 2px; + border-radius: 15px; + border: 0px; + font-style: normal; + color: #0f1419; } #taskbar button, #workspaces button { - padding: 0px 5px; - border-radius: 15px; - border: 0px; - color: #0F1419; - background: linear-gradient(45deg, #95E6CB, #59C2FF, #D2A6FF); - opacity: 0.5; - transition: all 0.3s cubic-bezier(.55,-0.68,.48,1.682); + padding: 0px 5px; + border-radius: 15px; + border: 0px; + color: #0f1419; + background: linear-gradient(45deg, #95e6cb, #59c2ff, #d2a6ff); + opacity: 0.5; + transition: all 0.3s cubic-bezier(0.55, -0.68, 0.48, 1.682); } #taskbar button.active, #workspaces button.active { - padding: 0px 5px; - border-radius: 15px; - border: 0px; - color: #0F1419; - background: linear-gradient(45deg, #59C2FF, #D2A6FF); - opacity: 1.0; - min-width: 40px; - transition: all 0.3s cubic-bezier(.55,-0.68,.48,1.682); + padding: 0px 5px; + border-radius: 15px; + border: 0px; + color: #0f1419; + background: linear-gradient(45deg, #59c2ff, #d2a6ff); + opacity: 1; + min-width: 40px; + transition: all 0.3s cubic-bezier(0.55, -0.68, 0.48, 1.682); } #workspaces button:hover { - border-radius: 15px; - color: #0F1419; - background: linear-gradient(45deg, #59C2FF, #D2A6FF); - opacity: 0.8; - transition: all 0.3s cubic-bezier(.55,-0.68,.48,1.682); - + border-radius: 15px; + color: #0f1419; + background: linear-gradient(45deg, #59c2ff, #d2a6ff); + opacity: 0.8; + transition: all 0.3s cubic-bezier(0.55, -0.68, 0.48, 1.682); } tooltip { - background: #1e1e2e; - opacity: 0.8; - border-radius: 6px; + background: #1e1e2e; + opacity: 0.8; + border-radius: 6px; } #backlight, @@ -124,112 +123,111 @@ tooltip { #custom-weather.clearNight, #custom-weather.cloudyFoggyDay, #custom-weather.cloudyFoggyNight, -#custom-weather.default, +#custom-weather.default, #custom-weather.rainyDay, #custom-weather.rainyNight, #custom-weather.severe, #custom-weather.showyIcyDay, #custom-weather.snowyIcyNight, #custom-weather.sunnyDay { - padding-top: 5px; - padding-bottom: 5px; - padding-right: 6px; - padding-left: 6px; + padding-top: 5px; + padding-bottom: 5px; + padding-right: 6px; + padding-left: 6px; } - + /* ----------------------------------------------------------------------------- * Module styles * -------------------------------------------------------------------------- */ - #clock { - color:#a3be8c; + color: #a3be8c; } #backlight { - color: #ebcb8b; + color: #ebcb8b; } #battery { - color: #d8dee9; + color: #d8dee9; } #battery.charging { - color: #81a1c1; + color: #81a1c1; } @keyframes blink { - to { - color: #4c566a; - background-color: #eceff4; - } + to { + color: #4c566a; + background-color: #eceff4; + } } #battery.critical:not(.charging) { - background: #bf616a; - color: #eceff4; - animation-name: blink; - animation-duration: 3.0s; - animation-timing-function: steps(12); - animation-iteration-count: infinite; - animation-direction: alternate; + background: #bf616a; + color: #eceff4; + animation-name: blink; + animation-duration: 3s; + animation-timing-function: steps(12); + animation-iteration-count: infinite; + animation-direction: alternate; } #cpu { - color: #a3be8c; + color: #a3be8c; } #disk { - color: #94e2d5; + color: #94e2d5; } #custom-keyboard, #memory { - color: #d3869b; + color: #d3869b; } #network.disabled { - color:#bf616a; + color: #bf616a; } -#network{ - color:#a3be8c; +#network { + color: #a3be8c; } #network.disconnected { - color: #bf616a; + color: #bf616a; } #pulseaudio { - color: #04a5e5; + color: #04a5e5; } #pulseaudio.muted { - color: #9ca0b0; + color: #9ca0b0; } #custom-light_dark, #custom-nightlight, #temperature { - color: #7287fd; + color: #7287fd; } #temperature.critical { - color: #bf616a; + color: #bf616a; } #keyboard-state, #custom-hypridle, #idle_inhibitor { - color: #ebcb8b; - border-bottom: 2px; + color: #ebcb8b; + border-bottom: 0px; } /*-----Indicators----*/ #custom-hypridle.notactive, #idle_inhibitor.activated { - color: #39FF14; - border-bottom: 2px; + color: #39ff14; + border-bottom: 0px; } #tray { @@ -237,51 +235,51 @@ tooltip { #custom-swaync, #custom-menu { - color: yellow; - padding-left: 8px; + color: yellow; + padding-left: 8px; } -#custom-power{ - color: #eba0ac; +#custom-power { + color: #eba0ac; } -#window{ - border-style: hidden; +#window { + border-style: hidden; +} + +#custom-lock, +#bluetooth { + color: #d08770; } -#custom-lock, -#bluetooth{ - color:#d08770; +#custom-cava_mviz { + color: @color11; } -#custom-cava_mviz{ - color: @color11; -} - -#custom-weather{ - color:#d08770; +#custom-weather { + color: #d08770; } #backlight-slider slider, #pulseaudio-slider slider { - min-width: 0px; - min-height: 0px; - opacity: 0; - background-image: none; - border: none; - box-shadow: none; + min-width: 0px; + min-height: 0px; + opacity: 0; + background-image: none; + border: none; + box-shadow: none; } #backlight-slider trough, #pulseaudio-slider trough { - min-width: 80px; - min-height: 5px; - border-radius: 5px; + min-width: 80px; + min-height: 5px; + border-radius: 5px; } #backlight-slider highlight, #pulseaudio-slider highlight { - min-height: 10px; - border-radius: 5px; + min-height: 10px; + border-radius: 5px; } /* --- tray readability override (global) --- */ diff --git a/config/waybar/style/Wallust-Colored.css b/config/waybar/style/Wallust-Colored.css index f4bc3eef..137a48ad 100644 --- a/config/waybar/style/Wallust-Colored.css +++ b/config/waybar/style/Wallust-Colored.css @@ -1,116 +1,115 @@ /* ----------- 💫 https://github.com/LinuxBeginnings 💫 -------- */ /* Wallust Colored*/ -@import '../../.config/waybar/wallust/colors-waybar.css'; +@import "../../.config/waybar/wallust/colors-waybar.css"; * { - font-family: "JetBrainsMono Nerd Font"; - font-weight: bold; - min-height: 0; - /* set font-size to 100% if font scaling is set to 1.00 using nwg-look */ - /* NOTE: Waybar v14+ ignores % font-size values */ - font-size: 96%; - font-feature-settings: '"zero", "ss01", "ss02", "ss03", "ss04", "ss05", "cv31"'; + font-family: "JetBrainsMono Nerd Font"; + font-weight: bold; + min-height: 0; + /* set font-size to 100% if font scaling is set to 1.00 using nwg-look */ + /* NOTE: Waybar v14+ ignores % font-size values */ + font-size: 96%; + font-feature-settings: '"zero", "ss01", "ss02", "ss03", "ss04", "ss05", "cv31"'; } window#waybar.hidden { - opacity: 0.5; - /* Waybar scaling: adjust font-size to scale the bar */ - font-size: 14px; + opacity: 0.5; + /* Waybar scaling: adjust font-size to scale the bar */ + font-size: 14px; } window#waybar, window#waybar.empty #window { - padding: 0px; - border: 0px; - background-color: transparent; - /* Waybar scaling: adjust font-size to scale the bar */ - font-size: 14px; + padding: 0px; + border: 0px; + background-color: transparent; + /* Waybar scaling: adjust font-size to scale the bar */ + font-size: 14px; } - tooltip { - background: @background; - border-radius: 10px; - border-width: 1px; - border-style: solid; - border-color: @color15; + background: @background; + border-radius: 10px; + border-width: 1px; + border-style: solid; + border-color: @color15; } /*-----module groups----*/ .modules-right { - border: 3px solid @color12; - border-radius: 40px 0px 0px 0px; - background-color: @background-alt; - padding-top: 2px; - padding-bottom: 2px; - padding-right: 4px; - padding-left: 4px; + border: 3px solid @color12; + border-radius: 0px 0px 0px 0px; + background-color: @background-alt; + padding-top: 2px; + padding-bottom: 2px; + padding-right: 4px; + padding-left: 4px; } .modules-center { - border: 3px solid @color7; - border-radius: 60px 0px 60px 0px; - background-color: @background; - padding-top: 2px; - padding-bottom: 2px; - padding-right: 4px; - padding-left: 4px; + border: 3px solid @color7; + border-radius: 0px 0px 60px 0px; + background-color: @background; + padding-top: 2px; + padding-bottom: 2px; + padding-right: 4px; + padding-left: 4px; } .modules-left { - border: 3px solid @color12; - border-radius: 0px 0px 40px 0px; - background-color: @background-alt; - padding-top: 2px; - padding-bottom: 2px; - padding-right: 4px; - padding-left: 4px; + border: 3px solid @color12; + border-radius: 0px 0px 0px 0px; + background-color: @background-alt; + padding-top: 2px; + padding-bottom: 2px; + padding-right: 4px; + padding-left: 4px; } #taskbar button, #workspaces button { - color: @foreground; - box-shadow: none; - text-shadow: none; - padding: 0px; - border-radius: 9px; - padding-left: 4px; - padding-right: 4px; - animation: gradient_f 20s ease-in infinite; - transition: all 0.5s cubic-bezier(.55,-0.68,.48,1.682); + color: @foreground; + box-shadow: none; + text-shadow: none; + padding: 0px; + border-radius: 9px; + padding-left: 4px; + padding-right: 4px; + animation: gradient_f 20s ease-in infinite; + transition: all 0.5s cubic-bezier(0.55, -0.68, 0.48, 1.682); } #taskbar button.active, #workspaces button.active { - color: @background; - background-color: @color7; - padding-left: 8px; - padding-right: 8px; - animation: gradient_f 20s ease-in infinite; - transition: all 0.3s cubic-bezier(.55,-0.68,.48,1.682); + color: @background; + background-color: @color7; + padding-left: 8px; + padding-right: 8px; + animation: gradient_f 20s ease-in infinite; + transition: all 0.3s cubic-bezier(0.55, -0.68, 0.48, 1.682); } #workspaces button.focused { - color: @color4; + color: @color4; } #workspaces button.urgent { - color: #11111b; - border-radius: 10px; + color: #11111b; + border-radius: 10px; } #taskbar button:hover, #workspaces button:hover { - color: @color4; - padding-left: 2px; - padding-right: 2px; - animation: gradient_f 20s ease-in infinite; - transition: all 0.3s cubic-bezier(.55,-0.68,.48,1.682); + color: @color4; + padding-left: 2px; + padding-right: 2px; + animation: gradient_f 20s ease-in infinite; + transition: all 0.3s cubic-bezier(0.55, -0.68, 0.48, 1.682); } #clock#2 { - color: @color6; + color: @color6; } #backlight, @@ -174,64 +173,64 @@ tooltip { #custom-weather.showyIcyDay, #custom-weather.snowyIcyNight, #custom-weather.sunnyDay { - color: @foreground; - padding-top: 4px; - padding-bottom: 4px; - padding-right: 6px; - padding-left: 6px; + color: @foreground; + padding-top: 4px; + padding-bottom: 4px; + padding-right: 6px; + padding-left: 6px; } #temperature.critical { - background-color: #ff0000; + background-color: #ff0000; } @keyframes blink { - to { - color: #000000; - } + to { + color: #000000; + } } /*-----Indicators----*/ #custom-hypridle.notactive, #idle_inhibitor.activated { - color: #39FF14; - border-bottom: 8px solid rgba(0, 0, 0, 0.2); + color: #39ff14; + border-bottom: 0px solid rgba(0, 0, 0, 0.2); } #battery.critical:not(.charging) { - color: #f53c3c; - animation-name: blink; - animation-duration: 3.0s; - animation-timing-function: steps(12); - animation-iteration-count: infinite; - animation-direction: alternate; + color: #f53c3c; + animation-name: blink; + animation-duration: 3s; + animation-timing-function: steps(12); + animation-iteration-count: infinite; + animation-direction: alternate; } #backlight-slider slider, #pulseaudio-slider slider { - min-width: 0px; - min-height: 0px; - opacity: 0; - background-image: none; - border: none; - box-shadow: none; + min-width: 0px; + min-height: 0px; + opacity: 0; + background-image: none; + border: none; + box-shadow: none; } #backlight-slider trough, #pulseaudio-slider trough { - min-width: 80px; - min-height: 5px; - border-radius: 5px; + min-width: 80px; + min-height: 5px; + border-radius: 5px; } #backlight-slider highlight, #pulseaudio-slider highlight { - min-height: 10px; - border-radius: 5px; + min-height: 10px; + border-radius: 5px; } #custom-cava_mviz { - padding-right: 10px; + padding-right: 10px; } /* --- tray readability override (global) --- */ diff --git a/config/waybar/style/Wallust-Simple.css b/config/waybar/style/Wallust-Simple.css index 052f7b79..4708349f 100644 --- a/config/waybar/style/Wallust-Simple.css +++ b/config/waybar/style/Wallust-Simple.css @@ -1,92 +1,94 @@ /* ----------- 💫 https://github.com/LinuxBeginnings 💫 -------- */ /* Wallust - Simple */ -*{ -font-family: "JetBrainsMono Nerd Font"; -font-weight: bold; -min-height: 0; -/* set font-size to 100% if font scaling is set to 1.00 using nwg-look */ -/* NOTE: Waybar v14+ ignores % font-size values */ -font-size: 99%; -font-feature-settings: '"zero", "ss01", "ss02", "ss03", "ss04", "ss05", "cv31"'; +* { + font-family: "JetBrainsMono Nerd Font"; + font-weight: bold; + min-height: 0; + /* set font-size to 100% if font scaling is set to 1.00 using nwg-look */ + /* NOTE: Waybar v14+ ignores % font-size values */ + font-size: 99%; + font-feature-settings: '"zero", "ss01", "ss02", "ss03", "ss04", "ss05", "cv31"'; } -@import '../../.config/waybar/wallust/colors-waybar.css'; +@import "../../.config/waybar/wallust/colors-waybar.css"; -#waybar.empty, #waybar.tiled, #waybar.floating { - background-color: transparent; +#waybar.empty, +#waybar.tiled, +#waybar.floating { + background-color: transparent; } window#waybar, window#waybar.empty, window#waybar.empty #window { - background-color: transparent; - padding: 0px; - border: 0px; - /* Waybar scaling: adjust font-size to scale the bar */ - font-size: 14px; + background-color: transparent; + padding: 0px; + border: 0px; + /* Waybar scaling: adjust font-size to scale the bar */ + font-size: 14px; } tooltip { - color: @color13; - background: @color10; - opacity: 1.0; - border-radius: 10px; + color: @color13; + background: @color10; + opacity: 1; + border-radius: 10px; } /*-----module groups----*/ .modules-left, .modules-center, .modules-right { - background-color: @color0; - border: 0.5px solid @color15; - border-radius: 10px; - padding-top: 2px; - padding-bottom: 2px; - padding-right: 4px; - padding-left: 4px; + background-color: @color0; + border: 0.5px solid @color15; + border-radius: 10px; + padding-top: 2px; + padding-bottom: 2px; + padding-right: 4px; + padding-left: 4px; } /*-----modules indv----*/ #taskbar button, #workspaces button { - color: @color2; - box-shadow: none; - text-shadow: none; - padding: 0px; - border-radius: 9px; - padding-left: 4px; - padding-right: 4px; - animation: gradient_f 20s ease-in infinite; - transition: all 0.5s cubic-bezier(.55,-0.68,.48,1.682); + color: @color2; + box-shadow: none; + text-shadow: none; + padding: 0px; + border-radius: 9px; + padding-left: 4px; + padding-right: 4px; + animation: gradient_f 20s ease-in infinite; + transition: all 0.5s cubic-bezier(0.55, -0.68, 0.48, 1.682); } #taskbar button.active, #workspaces button.active { - color: @foreground; - background-color: @color2; - padding-left: 8px; - padding-right: 8px; - animation: gradient_f 20s ease-in infinite; - transition: all 0.3s cubic-bezier(.55,-0.68,.48,1.682); + color: @foreground; + background-color: @color2; + padding-left: 8px; + padding-right: 8px; + animation: gradient_f 20s ease-in infinite; + transition: all 0.3s cubic-bezier(0.55, -0.68, 0.48, 1.682); } #workspaces button.focused { - color: @color4; + color: @color4; } #workspaces button.urgent { - color: #11111b; - border-radius: 10px; + color: #11111b; + border-radius: 10px; } #taskbar button:hover, #workspaces button:hover { - color: @color4; - padding-left: 2px; - padding-right: 2px; - animation: gradient_f 20s ease-in infinite; - transition: all 0.3s cubic-bezier(.55,-0.68,.48,1.682); + color: @color4; + padding-left: 2px; + padding-right: 2px; + animation: gradient_f 20s ease-in infinite; + transition: all 0.3s cubic-bezier(0.55, -0.68, 0.48, 1.682); } #backlight, @@ -151,75 +153,75 @@ tooltip { #custom-weather.showyIcyDay, #custom-weather.snowyIcyNight, #custom-weather.sunnyDay { - color: @color12; - padding-top: 4px; - padding-bottom: 4px; - padding-right: 6px; - padding-left: 6px;; + color: @color12; + padding-top: 4px; + padding-bottom: 4px; + padding-right: 6px; + padding-left: 6px; } #mode { - color: #cc3436; - font-weight: bold; + color: #cc3436; + font-weight: bold; } #custom-power { - /*background-color: rgba(0,119,179,0.6);*/ - /*border-radius: 50px;*/ - padding: 1px 3px; + /*background-color: rgba(0,119,179,0.6);*/ + /*border-radius: 50px;*/ + padding: 0px 3px; } /*-----Indicators----*/ #custom-hypridle.notactive, #idle_inhibitor.activated { - color: #39FF14; - border-bottom: 8px solid rgba(0, 0, 0, 0.2); + color: #39ff14; + border-bottom: 0px solid rgba(0, 0, 0, 0.2); } #pulseaudio.muted { - color: #cc3436; + color: #cc3436; } #pulseaudio-microphone.muted { - color: #cc3436; + color: #cc3436; } #temperature.critical { - background-color: #ff0000; + background-color: #ff0000; } @keyframes blink { - to { - color: #000000; - } + to { + color: #000000; + } } #battery.critical:not(.charging) { - color: #f53c3c; - animation-name: blink; - animation-duration: 3.0s; - animation-timing-function: steps(12); - animation-iteration-count: infinite; - animation-direction: alternate; + color: #f53c3c; + animation-name: blink; + animation-duration: 3s; + animation-timing-function: steps(12); + animation-iteration-count: infinite; + animation-direction: alternate; } #backlight-slider slider, #pulseaudio-slider slider { - min-width: 0px; - min-height: 0px; - opacity: 0; - background-image: none; - border: none; - box-shadow: none; + min-width: 0px; + min-height: 0px; + opacity: 0; + background-image: none; + border: none; + box-shadow: none; } #backlight-slider trough, #pulseaudio-slider trough { - min-width: 80px; - min-height: 5px; - border-radius: 5px; + min-width: 80px; + min-height: 5px; + border-radius: 5px; } #backlight-slider highlight, #pulseaudio-slider highlight { - min-height: 10px; - border-radius: 5px; + min-height: 10px; + border-radius: 5px; } /* --- tray readability override (global) --- */ diff --git a/config/waybar/style/Wallust-Transparent-Crystal-Clear.css b/config/waybar/style/Wallust-Transparent-Crystal-Clear.css index a6541a59..48651c18 100644 --- a/config/waybar/style/Wallust-Transparent-Crystal-Clear.css +++ b/config/waybar/style/Wallust-Transparent-Crystal-Clear.css @@ -2,115 +2,112 @@ /* ....Wallust Transparent - Crystal Clear........ */ /* --- 👍 original designed by https://github.com/Krautt 👍 --- */ -@import '../../.config/waybar/wallust/colors-waybar.css'; +@import "../../.config/waybar/wallust/colors-waybar.css"; @define-color critical #ff0000; /* critical color */ -@define-color warning #f3f809; /* warning color */ -@define-color text @color12; /* text color */ -@define-color text-alt @color13; /* text alternative color */ -@define-color bg @color7; /* background color */ +@define-color warning #f3f809; /* warning color */ +@define-color text @color12; /* text color */ +@define-color text-alt @color13; /* text alternative color */ +@define-color bg @color7; /* background color */ -*{ - font-family: "JetBrainsMono Nerd Font"; - font-weight: bold; - min-height: 0; - /* set font-size to 100% if font scaling is set to 1.00 using nwg-look */ - /* NOTE: Waybar v14+ ignores % font-size values */ - font-size: 99%; - font-feature-settings: '"zero", "ss01", "ss02", "ss03", "ss04", "ss05", "cv31"'; +* { + font-family: "JetBrainsMono Nerd Font"; + font-weight: bold; + min-height: 0; + /* set font-size to 100% if font scaling is set to 1.00 using nwg-look */ + /* NOTE: Waybar v14+ ignores % font-size values */ + font-size: 99%; + font-feature-settings: '"zero", "ss01", "ss02", "ss03", "ss04", "ss05", "cv31"'; } - + window#waybar { - background:transparent; - border-radius: 1px; - color: @text; - /* Waybar scaling: adjust font-size to scale the bar */ - font-size: 14px; + background: transparent; + border-radius: 1px; + color: @text; + /* Waybar scaling: adjust font-size to scale the bar */ + font-size: 14px; } - + window#waybar.hidden { - opacity: 0.5; - /* Waybar scaling: adjust font-size to scale the bar */ - font-size: 14px; + opacity: 0.5; + /* Waybar scaling: adjust font-size to scale the bar */ + font-size: 14px; } window#waybar.empty { - background-color: transparent; - /* Waybar scaling: adjust font-size to scale the bar */ - font-size: 14px; + background-color: transparent; + /* Waybar scaling: adjust font-size to scale the bar */ + font-size: 14px; } - + window#waybar.empty #window { - padding: 0px; - border: 0px; - background-color: transparent; - /* Waybar scaling: adjust font-size to scale the bar */ - font-size: 14px; -} + padding: 0px; + border: 0px; + background-color: transparent; + /* Waybar scaling: adjust font-size to scale the bar */ + font-size: 14px; +} /*-----module groups----*/ .modules-right { - } .modules-center { - } .modules-left { - } tooltip { - color: @color12; - background: @color10; - opacity: 0.8; - border-radius: 10px; - border-width: 1px; - border-style: solid; + color: @color12; + background: @color10; + opacity: 0.8; + border-radius: 10px; + border-width: 1px; + border-style: solid; } #taskbar button, #workspaces button { - color: @text-alt; - box-shadow: none; - text-shadow: none; - padding: 0px; - border-radius: 9px; - padding-left: 4px; - padding-right: 4px; - animation: gradient_f 20s ease-in infinite; - transition: all 0.5s cubic-bezier(.55,-0.68,.48,1.682); + color: @text-alt; + box-shadow: none; + text-shadow: none; + padding: 0px; + border-radius: 9px; + padding-left: 4px; + padding-right: 4px; + animation: gradient_f 20s ease-in infinite; + transition: all 0.5s cubic-bezier(0.55, -0.68, 0.48, 1.682); } - + #taskbar button.active, #workspaces button.active { - color: @text; - border-radius: 15px 15px 15px 15px; - padding-left: 8px; - padding-right: 8px; - animation: gradient_f 20s ease-in infinite; - transition: all 0.3s cubic-bezier(.55,-0.68,.48,1.682); + color: @text; + border-radius: 15px 15px 15px 15px; + padding-left: 8px; + padding-right: 8px; + animation: gradient_f 20s ease-in infinite; + transition: all 0.3s cubic-bezier(0.55, -0.68, 0.48, 1.682); } - + #workspaces button.focused { - color: @text-alt; + color: @text-alt; } - + #workspaces button.urgent { - color: @warning; - border-radius: 10px; + color: @warning; + border-radius: 10px; } -#taskbar button:hover, +#taskbar button:hover, #workspaces button:hover { - color: @text; - border-radius: 15px; - padding-left: 2px; - padding-right: 2px; - animation: gradient_f 20s ease-in infinite; - transition: all 0.3s cubic-bezier(.55,-0.68,.48,1.682); + color: @text; + border-radius: 15px; + padding-left: 2px; + padding-right: 2px; + animation: gradient_f 20s ease-in infinite; + transition: all 0.3s cubic-bezier(0.55, -0.68, 0.48, 1.682); } - + #backlight, #battery, #bluetooth, @@ -162,68 +159,67 @@ tooltip { #custom-weather.clearNight, #custom-weather.cloudyFoggyDay, #custom-weather.cloudyFoggyNight, -#custom-weather.default -#custom-weather.rainyDay, +#custom-weather.default #custom-weather.rainyDay, #custom-weather.rainyNight, #custom-weather.severe, #custom-weather.showyIcyDay, #custom-weather.snowyIcyNight, #custom-weather.sunnyDay { - padding-top: 4px; - padding-bottom: 4px; - padding-right: 6px; - padding-left: 6px; + padding-top: 4px; + padding-bottom: 4px; + padding-right: 6px; + padding-left: 6px; } - + #temperature.critical { - background-color: #ff0000; + background-color: #ff0000; } - + @keyframes blink { - to { - color: #000000; - } + to { + color: #000000; + } } /*-----Indicators----*/ #custom-hypridle.notactive, #idle_inhibitor.activated { - color: #39FF14; - border-bottom: 8px solid rgba(0, 0, 0, 0.2); + color: #39ff14; + border-bottom: 0px solid rgba(0, 0, 0, 0.2); } - + #battery.critical:not(.charging) { - color: @critical; - animation-name: blink; - animation-duration: 3.0s; - animation-timing-function: steps(12); - animation-iteration-count: infinite; - animation-direction: alternate; + color: @critical; + animation-name: blink; + animation-duration: 3s; + animation-timing-function: steps(12); + animation-iteration-count: infinite; + animation-direction: alternate; } #backlight-slider slider, #pulseaudio-slider slider { - min-width: 0px; - min-height: 0px; - opacity: 0; - background-image: none; - border: none; - box-shadow: none; + min-width: 0px; + min-height: 0px; + opacity: 0; + background-image: none; + border: none; + box-shadow: none; } #backlight-slider trough, #pulseaudio-slider trough { - min-width: 80px; - min-height: 10px; - border-radius: 5px; - background-color: black; + min-width: 80px; + min-height: 10px; + border-radius: 5px; + background-color: black; } #backlight-slider highlight, #pulseaudio-slider highlight { - min-height: 10px; - border-radius: 5px; - background-color: wheat; + min-height: 10px; + border-radius: 5px; + background-color: wheat; } /* --- tray readability override (global) --- */ diff --git a/config/yazi/keymap.toml b/config/yazi/keymap.toml index ba212c92..d64f76da 100644 --- a/config/yazi/keymap.toml +++ b/config/yazi/keymap.toml @@ -41,7 +41,7 @@ prepend_keymap = [ { on = "S", run = "search fd", desc = "Search files by name using fd" }, { on = [ "T", - ], run = "plugin --sync hide-preview", desc = "Hide or show the preview" }, + ], run = "plugin toggle-pane min-preview", desc = "Hide or show the preview" }, { on = [ "y", ], run = [ diff --git a/config/yazi/package.toml b/config/yazi/package.toml index deedca73..961e3e13 100644 --- a/config/yazi/package.toml +++ b/config/yazi/package.toml @@ -23,10 +23,6 @@ use = "yazi-rs/plugins:smart-filter" rev = "1db18bb" hash = "c887903a63a2ff520081b6d90a4b3392" -[[plugin.deps]] -use = "yazi-rs/plugins:hide-preview" -rev = "1db18bb" -hash = "99aa06d3014798d86001c324468d497f" [[plugin.deps]] use = "yazi-rs/plugins:git" |
