From 6090f8f90e0a9a12096876383e849b90680d7175 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tim=20Gr=C3=B6ger?= Date: Tue, 21 Apr 2026 12:19:19 +0200 Subject: [PATCH] add hyprland --- .zshrc | 20 ++ ghostty/config.ghostty | 2 + hypr/config.d/autostart.conf | 18 ++ hypr/config.d/bindings.conf | 75 ++++++++ hypr/config.d/env.conf | 15 ++ hypr/config.d/input.conf | 70 +++++++ hypr/config.d/look_and_feel.conf | 130 +++++++++++++ hypr/config.d/macchiato.conf | 78 ++++++++ hypr/config.d/monitor.conf | 13 ++ hypr/config.d/permissions.conf | 15 ++ hypr/config.d/programms.conf | 11 ++ hypr/config.d/rules.conf | 0 hypr/config.d/wallrizz.conf | 23 +++ hypr/config.d/workspace.conf | 60 ++++++ hypr/hypridle.conf | 16 ++ hypr/hyprland.conf | 22 +++ hypr/hyprlock.conf | 64 +++++++ hypr/scripts/clamshell.sh | 10 + hypr/try.conf | 178 +++++++++++++++++ laio/astronvim.yaml | 22 +++ laio/nvim.yaml | 26 +++ laio/qmk.yaml | 26 +++ waybar/config.jsonc | 88 +++++++++ waybar/{config => config.new.old} | 34 ++++ waybar/config.old | 166 ---------------- waybar/macchiato.css | 37 ++++ waybar/style.css | 306 ++++++++++++------------------ waybar/style.css.new.old | 201 ++++++++++++++++++++ waybar/style.css.old | 280 --------------------------- 29 files changed, 1380 insertions(+), 626 deletions(-) create mode 100644 hypr/config.d/autostart.conf create mode 100644 hypr/config.d/bindings.conf create mode 100644 hypr/config.d/env.conf create mode 100644 hypr/config.d/input.conf create mode 100644 hypr/config.d/look_and_feel.conf create mode 100644 hypr/config.d/macchiato.conf create mode 100644 hypr/config.d/monitor.conf create mode 100644 hypr/config.d/permissions.conf create mode 100644 hypr/config.d/programms.conf create mode 100644 hypr/config.d/rules.conf create mode 100644 hypr/config.d/wallrizz.conf create mode 100644 hypr/config.d/workspace.conf create mode 100644 hypr/hypridle.conf create mode 100644 hypr/hyprland.conf create mode 100644 hypr/hyprlock.conf create mode 100755 hypr/scripts/clamshell.sh create mode 100644 hypr/try.conf create mode 100644 laio/astronvim.yaml create mode 100644 laio/nvim.yaml create mode 100644 laio/qmk.yaml create mode 100644 waybar/config.jsonc rename waybar/{config => config.new.old} (87%) delete mode 100644 waybar/config.old create mode 100644 waybar/macchiato.css create mode 100644 waybar/style.css.new.old delete mode 100644 waybar/style.css.old diff --git a/.zshrc b/.zshrc index 642e2eb..56f09ef 100644 --- a/.zshrc +++ b/.zshrc @@ -181,3 +181,23 @@ else fi source ~/.env.secrets +# Pfad zu fpath hinzufügen +fpath=(~/.zsh/completions $fpath) + +# Completions initialisieren +autoload -U compinit && compinit + +export FZF_DEFAULT_OPTS=' + --layout=reverse + --info=inline + --height=80% + --multi + --preview-window=right:60% + --border="rounded" + --margin=1 + --padding=1 + --prompt="🔭 " + --pointer="▶" + --marker="✓" + --color="bg+:-1,gutter:-1,prompt:#7aa2f7,pointer:#7aa2f7,marker:#9ece6a,hl:#ff9e64,hl+:#ff9e64" +' diff --git a/ghostty/config.ghostty b/ghostty/config.ghostty index aaf88c7..6eba74c 100644 --- a/ghostty/config.ghostty +++ b/ghostty/config.ghostty @@ -10,3 +10,5 @@ confirm-close-surface = false # Maus-Support für Neovim mouse-hide-while-typing = true + +shell-integration = zsh diff --git a/hypr/config.d/autostart.conf b/hypr/config.d/autostart.conf new file mode 100644 index 0000000..e99acf4 --- /dev/null +++ b/hypr/config.d/autostart.conf @@ -0,0 +1,18 @@ +################# +### AUTOSTART ### +################# + +# Autostart necessary processes (like notifications daemons, status bars, etc.) +# Or execute your favorite apps at launch like this: + +exec-once = $terminal +# exec-once = waybar +exec-once = ironbar +exec-once = gsettings set org.gnome.desktop.interface icon-theme 'candy-icons-master' +exec-once = hypridle +# exec-once = nm-applet & +# exec-once = waybar & hyprpaper & firefox +# exec-once = qs -c noctalia-shell +# +exec = ~/.config/hypr/scripts/clamshell.sh +exec-once = awww-daemon diff --git a/hypr/config.d/bindings.conf b/hypr/config.d/bindings.conf new file mode 100644 index 0000000..57dceb5 --- /dev/null +++ b/hypr/config.d/bindings.conf @@ -0,0 +1,75 @@ +################### +### KEYBINDINGS ### +################### + +# See https://wiki.hypr.land/Configuring/Keywords/ +$mainMod = SUPER # Sets "Windows" key as main modifier +$mainShiftMod = SUPER_SHIFT + +# Example binds, see https://wiki.hypr.land/Configuring/Binds/ for more +bind = $mainMod, Return, exec, $terminal +bind = $mainShiftMod, X, killactive, +bind = $mainMod, M, exec, command -v hyprshutdown >/dev/null 2>&1 && hyprshutdown || hyprctl dispatch exit +bind = $mainMod, e, exec, $fileManager +bind = $mainShiftMod, f, togglefloating, +bind = $mainMod, a, exec, $menu +bind = $mainMod, P, pseudo, # dwindle +bind = $mainMod, J, layoutmsg, togglesplit # dwindle +bind = $mainMod, L, exec, loginctl lock-session +# Move focus with mainMod + arrow keys +bind = $mainMod, left, movefocus, l +bind = $mainMod, right, movefocus, r +bind = $mainMod, up, movefocus, u +bind = $mainMod, down, movefocus, d + +bind = $mainMod SHIFT, C, exec, hyprctl reload && pkill ironbar; ironbar & + +# Switch workspaces with mainMod + [0-9] +bind = $mainMod, 1, workspace, 1 +bind = $mainMod, 2, workspace, 2 +bind = $mainMod, 3, workspace, 3 +bind = $mainMod, 4, workspace, 4 +bind = $mainMod, 5, workspace, 5 +bind = $mainMod, 6, workspace, 6 +bind = $mainMod, 7, workspace, 7 +bind = $mainMod, 8, workspace, 8 +bind = $mainMod, 9, workspace, 9 +bind = $mainMod, 0, workspace, 10 + +# Move active window to a workspace with mainMod + SHIFT + [0-9] +bind = $mainMod SHIFT, 1, movetoworkspace, 1 +bind = $mainMod SHIFT, 2, movetoworkspace, 2 +bind = $mainMod SHIFT, 3, movetoworkspace, 3 +bind = $mainMod SHIFT, 4, movetoworkspace, 4 +bind = $mainMod SHIFT, 5, movetoworkspace, 5 +bind = $mainMod SHIFT, 6, movetoworkspace, 6 +bind = $mainMod SHIFT, 7, movetoworkspace, 7 +bind = $mainMod SHIFT, 8, movetoworkspace, 8 +bind = $mainMod SHIFT, 9, movetoworkspace, 9 +bind = $mainMod SHIFT, 0, movetoworkspace, 10 + +# Example special workspace (scratchpad) +bind = $mainMod, S, togglespecialworkspace, magic +bind = $mainMod SHIFT, S, movetoworkspace, special:magic + +# Scroll through existing workspaces with mainMod + scroll +bind = $mainMod, mouse_down, workspace, e+1 +bind = $mainMod, mouse_up, workspace, e-1 + +# Move/resize windows with mainMod + LMB/RMB and dragging +bindm = $mainMod, mouse:272, movewindow +bindm = $mainMod, mouse:273, resizewindow + +# Laptop multimedia keys for volume and LCD brightness +bindel = ,XF86AudioRaiseVolume, exec, wpctl set-volume -l 1 @DEFAULT_AUDIO_SINK@ 5%+ +bindel = ,XF86AudioLowerVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%- +bindel = ,XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle +bindel = ,XF86AudioMicMute, exec, wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle +bindel = ,XF86MonBrightnessUp, exec, brightnessctl -e4 -n2 set 5%+ +bindel = ,XF86MonBrightnessDown, exec, brightnessctl -e4 -n2 set 5%- + +# Requires playerctl +bindl = , XF86AudioNext, exec, playerctl next +bindl = , XF86AudioPause, exec, playerctl play-pause +bindl = , XF86AudioPlay, exec, playerctl play-pause +bindl = , XF86AudioPrev, exec, playerctl previous diff --git a/hypr/config.d/env.conf b/hypr/config.d/env.conf new file mode 100644 index 0000000..dd2b551 --- /dev/null +++ b/hypr/config.d/env.conf @@ -0,0 +1,15 @@ +############################# +### ENVIRONMENT VARIABLES ### +############################# + +# See https://wiki.hypr.land/Configuring/Environment-variables/ + +env = XCURSOR_SIZE,24 +env = HYPRCURSOR_SIZE,24 +env = XDG_CURRENT_DESKTOP,Hyprland +env = XDG_SESSION_TYPE,wayland +env = XDG_SESSION_DESKTOP,Hyprland +env = QT_AUTO_SCREEN_SCALE_FACTOR,1# - (From the Qt documentation) enables automatic scaling, based on the monitor’s pixel density +env = QT_QPA_PLATFORM,wayland;xcb# - Tell Qt applications to use the Wayland backend, and fall back to X11 if Wayland is unavailable +env = QT_WAYLAND_DISABLE_WINDOWDECORATION,1# - Disables window decorations on Qt applications +env = QT_QPA_PLATFORMTHEME,qt5c diff --git a/hypr/config.d/input.conf b/hypr/config.d/input.conf new file mode 100644 index 0000000..50cd673 --- /dev/null +++ b/hypr/config.d/input.conf @@ -0,0 +1,70 @@ +############# +### INPUT ### +############# + +# https://wiki.hypr.land/Configuring/Variables/#input +input { + kb_layout = de + kb_variant = neo + kb_model = + kb_options = grp:alt_shift_toggle + kb_rules = + resolve_binds_by_sym = 1 + + follow_mouse = 1 + + sensitivity = 0 # -1.0 - 1.0, 0 means no modification. + + touchpad { + natural_scroll = true + } +} + +# See https://wiki.hypr.land/Configuring/Gestures +gesture = 3, horizontal, workspace + +# Example per-device config +# See https://wiki.hypr.land/Configuring/Keywords/#per-device-input-configs for more +device { + name = epic-mouse-v1 + sensitivity = -0.5 +} + +# device { +# name = at-translated-set-2-keyboard +# kb_layout = de +# kb_variant = neo +# } + +device { + name = crimsen-manufactor-crimsens-tastatur + kb_layout = de + kb_variant = + kb_model = + kb_options = + kb_rules = +} +device { + name = crimsen-manufactor-crimsens-tastatur-system-control + kb_layout = de + kb_variant = + kb_model = + kb_options = + kb_rules = +} +device { + name = crimsen-manufactor-crimsens-tastatur-consumer-control + kb_layout = de + kb_variant = + kb_model = + kb_options = + kb_rules = +} +device { + name = crimsen-manufactor-crimsens-tastatur-keyboard + kb_layout = de + kb_variant = + kb_model = + kb_options = + kb_rules = +} diff --git a/hypr/config.d/look_and_feel.conf b/hypr/config.d/look_and_feel.conf new file mode 100644 index 0000000..50b7743 --- /dev/null +++ b/hypr/config.d/look_and_feel.conf @@ -0,0 +1,130 @@ +##################### +### LOOK AND FEEL ### +##################### + +# Refer to https://wiki.hypr.land/Configuring/Variables/ + +# https://wiki.hypr.land/Configuring/Variables/#general +general { + gaps_in = 5 + gaps_out = 10 + + border_size = 2 + + # https://wiki.hypr.land/Configuring/Variables/#variable-types for info about colors + # col.active_border = rgba(33ccffee) rgba(00ff99ee) 45deg + col.active_border = $teal + # col.inactive_border = rgba(595959aa) + col.inactive_border = $surface0 + + # col.group_border_active=$flamingo + # col.group_border=$surface0 + + # Set to true enable resizing windows by clicking and dragging on borders and gaps + resize_on_border = true + + # Please see https://wiki.hypr.land/Configuring/Tearing/ before you turn this on + allow_tearing = false + + layout = dwindle +} + +# https://wiki.hypr.land/Configuring/Variables/#decoration +decoration { + rounding = 10 + rounding_power = 2 + + # Change transparency of focused and unfocused windows + active_opacity = 1.0 + inactive_opacity = 1.0 + + shadow { + enabled = true + range = 4 + render_power = 3 + color = rgba(1a1a1aee) + } + + # https://wiki.hypr.land/Configuring/Variables/#blur + blur { + enabled = true + size = 3 + passes = 1 + + vibrancy = 0.1696 + } +} + +# https://wiki.hypr.land/Configuring/Variables/#animations +animations { + enabled = yes, please :) + + # Default curves, see https://wiki.hypr.land/Configuring/Animations/#curves + # NAME, X0, Y0, X1, Y1 + bezier = easeOutQuint, 0.23, 1, 0.32, 1 + bezier = easeInOutCubic, 0.65, 0.05, 0.36, 1 + bezier = linear, 0, 0, 1, 1 + bezier = almostLinear, 0.5, 0.5, 0.75, 1 + bezier = quick, 0.15, 0, 0.1, 1 + + # Default animations, see https://wiki.hypr.land/Configuring/Animations/ + # NAME, ONOFF, SPEED, CURVE, [STYLE] + animation = global, 1, 10, default + animation = border, 1, 5.39, easeOutQuint + animation = windows, 1, 4.79, easeOutQuint + animation = windowsIn, 1, 4.1, easeOutQuint, popin 87% + animation = windowsOut, 1, 1.49, linear, popin 87% + animation = fadeIn, 1, 1.73, almostLinear + animation = fadeOut, 1, 1.46, almostLinear + animation = fade, 1, 3.03, quick + animation = layers, 1, 3.81, easeOutQuint + animation = layersIn, 1, 4, easeOutQuint, fade + animation = layersOut, 1, 1.5, linear, fade + animation = fadeLayersIn, 1, 1.79, almostLinear + animation = fadeLayersOut, 1, 1.39, almostLinear + animation = workspaces, 1, 1.94, almostLinear, fade + animation = workspacesIn, 1, 1.21, almostLinear, fade + animation = workspacesOut, 1, 1.94, almostLinear, fade + animation = zoomFactor, 1, 7, quick +} + +# Ref https://wiki.hypr.land/Configuring/Workspace-Rules/ +# "Smart gaps" / "No gaps when only" +# uncomment all if you wish to use that. +# workspace = w[tv1], gapsout:0, gapsin:0 +# workspace = f[1], gapsout:0, gapsin:0 +# windowrule { +# name = no-gaps-wtv1 +# match:float = false +# match:workspace = w[tv1] +# +# border_size = 0 +# rounding = 0 +# } +# +# windowrule { +# name = no-gaps-f1 +# match:float = false +# match:workspace = f[1] +# +# border_size = 0 +# rounding = 0 +# } + +# See https://wiki.hypr.land/Configuring/Dwindle-Layout/ for more +dwindle { + pseudotile = true # Master switch for pseudotiling. Enabling is bound to mainMod + P in the keybinds section below + preserve_split = true # You probably want this + force_split = 2 +} + +# See https://wiki.hypr.land/Configuring/Master-Layout/ for more +master { + new_status = master +} + +# https://wiki.hypr.land/Configuring/Variables/#misc +misc { + force_default_wallpaper = -1 # Set to 0 or 1 to disable the anime mascot wallpapers + disable_hyprland_logo = false # If true disables the random hyprland logo / anime girl background. :( +} diff --git a/hypr/config.d/macchiato.conf b/hypr/config.d/macchiato.conf new file mode 100644 index 0000000..fdc1a68 --- /dev/null +++ b/hypr/config.d/macchiato.conf @@ -0,0 +1,78 @@ +# Catppuccin Macchiato +$rosewater = rgb(f4dbd6) +$rosewaterAlpha = f4dbd6 + +$flamingo = rgb(f0c6c6) +$flamingoAlpha = f0c6c6 + +$pink = rgb(f5bde6) +$pinkAlpha = f5bde6 + +$mauve = rgb(c6a0f6) +$mauveAlpha = c6a0f6 + +$red = rgb(ed8796) +$redAlpha = ed8796 + +$maroon = rgb(ee99a0) +$maroonAlpha = ee99a0 + +$peach = rgb(f5a97f) +$peachAlpha = f5a97f + +$yellow = rgb(eed49f) +$yellowAlpha = eed49f + +$green = rgb(a6da95) +$greenAlpha = a6da95 + +$teal = rgb(8bd5ca) +$tealAlpha = 8bd5ca + +$sky = rgb(91d7e3) +$skyAlpha = 91d7e3 + +$sapphire = rgb(7dc4e4) +$sapphireAlpha = 7dc4e4 + +$blue = rgb(8aadf4) +$blueAlpha = 8aadf4 + +$lavender = rgb(b7bdf8) +$lavenderAlpha = b7bdf8 + +$text = rgb(cad3f5) +$textAlpha = cad3f5 + +$subtext1 = rgb(b8c0e0) +$subtext1Alpha = b8c0e0 + +$subtext0 = rgb(a5adcb) +$subtext0Alpha = a5adcb + +$overlay2 = rgb(939ab7) +$overlay2Alpha = 939ab7 + +$overlay1 = rgb(8087a2) +$overlay1Alpha = 8087a2 + +$overlay0 = rgb(6e738d) +$overlay0Alpha = 6e738d + +$surface2 = rgb(5b6078) +$surface2Alpha = 5b6078 + +$surface1 = rgb(494d64) +$surface1Alpha = 494d64 + +$surface0 = rgb(363a4f) +$surface0Alpha = 363a4f + +$base = rgb(24273a) +$baseAlpha = 24273a + +$mantle = rgb(1e2030) +$mantleAlpha = 1e2030 + +$crust = rgb(181926) +$crustAlpha = 181926 diff --git a/hypr/config.d/monitor.conf b/hypr/config.d/monitor.conf new file mode 100644 index 0000000..c0bcbf0 --- /dev/null +++ b/hypr/config.d/monitor.conf @@ -0,0 +1,13 @@ +################ +### MONITORS ### +################ + +# See https://wiki.hypr.land/Configuring/Monitors/ +monitor=,preferred,auto,1.0 + +# Deaktiviert den internen Monitor beim Zuklappen, wenn ein externer dran ist +# Ersetze 'eDP-1' durch den Namen deines Laptop-Bildschirms +bindl = , switch:on:Lid Switch, exec, hyprctl keyword monitor "eDP-1, disable" + +# Aktiviert den internen Monitor wieder beim Aufklappen +bindl = , switch:off:Lid Switch, exec, hyprctl keyword monitor "eDP-1, preferred, auto, 1" diff --git a/hypr/config.d/permissions.conf b/hypr/config.d/permissions.conf new file mode 100644 index 0000000..40bd3be --- /dev/null +++ b/hypr/config.d/permissions.conf @@ -0,0 +1,15 @@ +################### +### PERMISSIONS ### +################### + +# See https://wiki.hypr.land/Configuring/Permissions/ +# Please note permission changes here require a Hyprland restart and are not applied on-the-fly +# for security reasons + +# ecosystem { +# enforce_permissions = 1 +# } + +# permission = /usr/(bin|local/bin)/grim, screencopy, allow +# permission = /usr/(lib|libexec|lib64)/xdg-desktop-portal-hyprland, screencopy, allow +# permission = /usr/(bin|local/bin)/hyprpm, plugin, allow diff --git a/hypr/config.d/programms.conf b/hypr/config.d/programms.conf new file mode 100644 index 0000000..1cc3ff3 --- /dev/null +++ b/hypr/config.d/programms.conf @@ -0,0 +1,11 @@ +################### +### MY PROGRAMS ### +################### + +# See https://wiki.hypr.land/Configuring/Keywords/ + +# Set programs that you use +$terminal = /home/crimsen/.local/bin/ghostty +$fileManager = nautilus +#$menu = hyprlauncher +$menu = wofi diff --git a/hypr/config.d/rules.conf b/hypr/config.d/rules.conf new file mode 100644 index 0000000..e69de29 diff --git a/hypr/config.d/wallrizz.conf b/hypr/config.d/wallrizz.conf new file mode 100644 index 0000000..f9be745 --- /dev/null +++ b/hypr/config.d/wallrizz.conf @@ -0,0 +1,23 @@ +$wallpaperDir = ~/Bilder/wallpaper +$WR = WallRizz -n -e -s 81x25 -d $wallpaperDir $themeMode -f "STD.setenv('enableBlur',true)" +$WallRizz = kitty -1 -o allow_remote_control=yes -o background_opacity=$overlay_window_opacity --title=WallRizz $WR +$WallRizzRandom = kitty -1 -o allow_remote_control=yes --class=hidden --title=hidden $WR -r + +# WallRizz MODERN BLOCK SYNTAX +windowrule { + name = wallrizz-stack + match:title = ^(WallRizz)$ + + float = on + pin = on + dim_around = on + border_size = 10 + rounding = 20 + size = 363 981 + move = 80% 5% + animation = slide right +} + +# Key binds +bindd = ,f3, Apply wallpaper preset, exec, $WallRizz +bindd = $mainMod, f3, Apply random wallpaper, exec, $WallRizzRandom diff --git a/hypr/config.d/workspace.conf b/hypr/config.d/workspace.conf new file mode 100644 index 0000000..9ced1d9 --- /dev/null +++ b/hypr/config.d/workspace.conf @@ -0,0 +1,60 @@ +############################## +### WINDOWS AND WORKSPACES ### +############################## + +# See https://wiki.hypr.land/Configuring/Window-Rules/ for more +# See https://wiki.hypr.land/Configuring/Workspace-Rules/ for workspace rules + +# Example windowrules that are useful + +windowrule { + # Ignore maximize requests from all apps. You'll probably like this. + name = suppress-maximize-events + match:class = .* + + suppress_event = maximize +} + +windowrule { + # Fix some dragging issues with XWayland + name = fix-xwayland-drags + match:class = ^$ + match:title = ^$ + match:xwayland = true + match:float = true + match:fullscreen = false + match:pin = false + + no_focus = true +} + +# Hyprland-run windowrule +windowrule { + name = move-hyprland-run + + match:class = hyprland-run + + move = 20 monitor_h-120 + float = yes +} + +windowrule { + name = Iron Thread + match:class = iron_thread + no_initial_focus = true + +} + +windowrule { + name = Ghostty + match:class = com.mitchellh.ghostty + workspace = 1 + move = 100 100 + size = 100 100 +} + +windowrule { + name = Google Chrome + match:class = google-chrome + workspace = 2 +} diff --git a/hypr/hypridle.conf b/hypr/hypridle.conf new file mode 100644 index 0000000..f230418 --- /dev/null +++ b/hypr/hypridle.conf @@ -0,0 +1,16 @@ +general { + lock_cmd = pidof hyprlock || hyprlock # Verhindert mehrfaches Starten + before_sleep_cmd = loginctl lock-session # Sperren vor dem Standby + after_sleep_cmd = hyprctl dispatch dpms on # Monitor an nach dem Aufwachen +} + +listener { + timeout = 300 # 5 Minuten + on-timeout = loginctl lock-session # Sperren +} + +listener { + timeout = 330 # 5.5 Minuten + on-timeout = hyprctl dispatch dpms off # Monitor aus + on-resume = hyprctl dispatch dpms on # Monitor an +} diff --git a/hypr/hyprland.conf b/hypr/hyprland.conf new file mode 100644 index 0000000..c312bf5 --- /dev/null +++ b/hypr/hyprland.conf @@ -0,0 +1,22 @@ +# This is an example Hyprland config file. +# Refer to the wiki for more information. +# https://wiki.hypr.land/Configuring/ + +# Please note not all available settings / options are set here. +# For a full list, see the wiki + +# You can split this configuration into multiple files +# Create your files separately and then link them to this file like this: +# source = ~/.config/hypr/myColors.conf +# +source = config.d/macchiato.conf +source = config.d/monitor.conf +source = config.d/programms.conf +source = config.d/autostart.conf +source = config.d/env.conf +source = config.d/permissions.conf +source = config.d/look_and_feel.conf +source = config.d/input.conf +source = config.d/bindings.conf +source = config.d/workspace.conf +source = config.d/wallrizz.conf diff --git a/hypr/hyprlock.conf b/hypr/hyprlock.conf new file mode 100644 index 0000000..ec10293 --- /dev/null +++ b/hypr/hyprlock.conf @@ -0,0 +1,64 @@ +general { + no_fade_in = false + grace = 0 + disable_loading = true +} + +background { + monitor = + path = screenshot # Nimmt einen Screenshot vom aktuellen Desktop + color = rgb(24273a) # Fallback auf Macchiato Base + blur_passes = 3 + blur_size = 7 + noise = 0.0117 + contrast = 0.8916 + brightness = 0.8172 +} + +input-field { + monitor = + size = 250, 60 + outline_thickness = 4 + dots_size = 0.2 + dots_spacing = 0.2 + dots_center = true + + # Farben im Macchiato Style + outer_color = rgb(c6a0f6) # Mauve + inner_color = rgb(363a4f) # Surface0 + font_color = rgb(cad3f5) # Text + + check_color = rgb(eed49f) # Yellow (beim Prüfen) + fail_color = rgb(ed8796) # Red (bei falschem Passwort) + + fade_on_empty = false + placeholder_text = Passwort eingeben... + hide_input = false + position = 0, -20 + halign = center + valign = center +} + +# Uhrzeit +label { + monitor = + text = $TIME + color = rgb(cad3f5) # Text + font_size = 120 + font_family = JetBrains Mono Nerd Font Bold + position = 0, 80 + halign = center + valign = center +} + +# Benutzername +label { + monitor = + text = Hallo, $USER + color = rgb(b7bdf8) # Lavender + font_size = 25 + font_family = JetBrains Mono Nerd Font + position = 0, -130 + halign = center + valign = center +} diff --git a/hypr/scripts/clamshell.sh b/hypr/scripts/clamshell.sh new file mode 100755 index 0000000..cb96e43 --- /dev/null +++ b/hypr/scripts/clamshell.sh @@ -0,0 +1,10 @@ +#!/bin/env bash +if hyprctl monitors | grep -q "ID [1-9]"; then + if grep -q open /proc/acpi/button/lid/LID/state; then + hyprctl keyword monitor "eDP-1, preferred, auto, 1" + else + hyprctl keyword monitor "eDP-1, disable" + fi +fi + + diff --git a/hypr/try.conf b/hypr/try.conf new file mode 100644 index 0000000..5b82641 --- /dev/null +++ b/hypr/try.conf @@ -0,0 +1,178 @@ +source=~/.config/hypr/mocha.conf + +monitor=,preferred,auto,1 +monitor=eDP-1,1920x1080,0x0,1 + + +input { + follow_mouse=1 + + touchpad { + natural_scroll=no + } +} + +general { + sensitivity=1.0 # for mouse cursor + + gaps_in=5 + gaps_out=10 + border_size=5 + + col.active_border=$pink + col.inactive_border=$surface0 + + col.group_border_active=$flamingo + col.group_border=$surface0 + + apply_sens_to_raw=0 # whether to apply the sensitivity to raw input (e.g. used by games where you aim using your mouse) +} + +misc { + disable_hyprland_logo=yes + disable_splash_rendering=yes +} + +decoration { + rounding=10 + blur=1 + blur_size=2 # minimum 1 + blur_passes=1 # minimum 1, more passes = more resource intensive. + # Your blur "amount" is blur_size * blur_passes, but high blur_size (over around 5-ish) will produce artifacts. + # if you want heavy blur, you need to up the blur_passes. + # the more passes, the more you can up the blur_size without noticing artifacts. + + col.shadow=$surface0 + col.shadow_inactive=$surface0 +} + +bezier=overshot,0.05,0.9,0.1,1.1 + +animations { + enabled=1 + animation=windows,1,8,overshot,popin +# animation=fade,1,8,overshot - This breaks for whatever reason? + animation=workspaces,1,8,overshot,slidevert +} + +dwindle { + pseudotile=0 # enable pseudotiling on dwindle +} + +gestures { + workspace_swipe=yes +} + +exec-once=dbus-update-activation-environment --systemd DISPLAY WAYLAND_DISPLAY HYPRLAND_INSTANCE_SIGNATURE XDG_CURRENT_DESKTOP && systemctl --user start hyprland-session.target +exec=hyprpaper & +exec-once=blueman-applet & +exec-once=mako & +exec-once=waybar & + +windowrule=workspace 1 silent,firefox +windowrule=workspace 2 silent,discord +windowrule=workspace 4 silent,YouTube Music +windowrule=workspace special silent,title:^(Firefox — Sharing Indicator)$ + +bind=SUPER,Alt_R,exec,pkill --signal USR1 waybar + +bind=SUPER,RETURN,exec,foot +bind=SUPERSHIFT,q,killactive, +bind=SUPERSHIFT,e,exec,powermenu +bind=SUPERSHIFT,c,exec,hyprctl reload +bind=SUPERSHIFT,SPACE,togglefloating, +bind=SUPER,D,exec,rofi -show drun +bind=SUPER,C,exec,hyprpicker -n -a +bind=SUPER,F,fullscreen,0, +bind=CTRL,SPACE,exec,makoctl dismiss +bind=SUPERSHIFT,b,exec,firefox +bind=SUPERALT,L,exec,swaylock +bind=,Print,exec,wayshot-ss | wl-copy +bind=SUPERSHIFT,m,exec,wayshot-ss > ~/media/pictures/"$(date +"%s")"-wayshot.png +bind=SUPERALT,m,exec,wl-ocr +bind=SUPERSHIFTALT,m,exec,wl-qr + +binde=,XF86AudioRaiseVolume,exec,pamixer -i 5 && notify-send -t 1000 " Audio" "$(pamixer --get-volume-human)" --hint="int:value:$(pamixer --get-volume)" +binde=,XF86AudioLowerVolume,exec,pamixer -d 5 && notify-send -t 1000 " Audio" "$(pamixer --get-volume-human)" --hint="int:value:$(pamixer --get-volume)" +bind=,XF86AudioMute,exec,pamixer -t && notify-send -t 1000 "ﱝ Audio" "Muted" + +bind=,XF86AudioPlay,exec,playerctl play-pause +bind=,XF86AudioNext,exec,playerctl next +bind=,XF86AudioPrev,exec,playerctl previous + +binde=,XF86MonBrightnessUp,exec,brightnessctl s +5% && notify-send -t 1000 " Brightness" "$(light)%" --hint="int:value:$(light)" +binde=,XF86MonBrightnessDown,exec,brightnessctl s 5%- && notify-send -t 1000 " Brightness" "$(light)%" --hint="int:value:$(light)" + +bind=SUPER,1,workspace,1 +bind=SUPER,2,workspace,2 +bind=SUPER,3,workspace,3 +bind=SUPER,4,workspace,4 +bind=SUPER,5,workspace,5 +bind=SUPER,6,workspace,6 +bind=SUPER,7,workspace,7 +bind=SUPER,8,workspace,8 +bind=SUPER,9,workspace,9 +bind=SUPER,0,workspace,10 + +bind=SUPERSHIFT,1,movetoworkspacesilent,1 +bind=SUPERSHIFT,2,movetoworkspacesilent,2 +bind=SUPERSHIFT,3,movetoworkspacesilent,3 +bind=SUPERSHIFT,4,movetoworkspacesilent,4 +bind=SUPERSHIFT,5,movetoworkspacesilent,5 +bind=SUPERSHIFT,6,movetoworkspacesilent,6 +bind=SUPERSHIFT,7,movetoworkspacesilent,7 +bind=SUPERSHIFT,8,movetoworkspacesilent,8 +bind=SUPERSHIFT,9,movetoworkspacesilent,9 +bind=SUPERSHIFT,0,movetoworkspacesilent,10 + +bind=SUPER,minus,togglespecialworkspace +bind=SUPERSHIFT,minus,movetoworkspace,special + +bind=SUPER,R,submap,resize +submap=resize + + binde=,h,resizeactive,-10 0 + binde=,l,resizeactive,10 0 + binde=,k,resizeactive,0 -10 + binde=,j,resizeactive,0 10 + + bind=,escape,submap,reset +submap=reset + +bind=SUPER,M,submap,move +submap=move + + binde=,h,moveactive,-10 0 + binde=,l,moveactive,10 0 + binde=,k,moveactive,0 -10 + binde=,j,moveactive,0 10 + + bind=,escape,submap,reset +submap=reset + +bind=SUPER,B,submap,brightness +submap=brightness + + binde=,l,exec,brightnessctl s +5% && notify-send -t 1000 " Brightness" "$(light)%" --hint="int:value:$(light)" + binde=,h,exec,brightnessctl s 5%- && notify-send -t 1000 " Brightness" "$(light)%" --hint="int:value:$(light)" + + bind=,escape,submap,reset +submap=reset + +bind=SUPER,h,movefocus,l +bind=SUPER,l,movefocus,r +bind=SUPER,j,movefocus,u +bind=SUPER,k,movefocus,d + +bind=SUPERSHIFT,h,movewindow,l +bind=SUPERSHIFT,l,movewindow,r +bind=SUPERSHIFT,j,movewindow,u +bind=SUPERSHIFT,k,movewindow,d + +bind=SUPERSHIFT,z,togglegroup +bind=SUPER,z,submap,group +submap=group + bind=,l,changegroupactive,f + bind=,h,changegroupactive,b + bind=,escape,submap,reset +submap=reset diff --git a/laio/astronvim.yaml b/laio/astronvim.yaml new file mode 100644 index 0000000..bd35b9e --- /dev/null +++ b/laio/astronvim.yaml @@ -0,0 +1,22 @@ +--- +name: astronvim + +startup: + - command: echo + args: + - starting astronvim session # add commands here to run on session startup + +shutdown: + - command: echo + args: + - stopping astronvim session # add commands here to run on session shutdown + +path: /home/crimsen/.config/nvim + +windows: + - name: code + flex_direction: column # panes are above one another, if ommited defaults to row where panes are side by side + panes: + - name: Editor + commands: + - command: nvim diff --git a/laio/nvim.yaml b/laio/nvim.yaml new file mode 100644 index 0000000..4112528 --- /dev/null +++ b/laio/nvim.yaml @@ -0,0 +1,26 @@ +--- +name: nvim + +startup: + - command: echo + args: + - starting nvim session # add commands here to run on session startup + +shutdown: + - command: echo + args: + - stopping nvim session # add commands here to run on session shutdown + +path: /home/crimsen/.config/nvim/ + +windows: + - name: code + flex_direction: column # panes are above one another, if ommited defaults to row where panes are side by side + panes: + - name: Editor + commands: + - command: nvim + - name: cli + flex_direction: column + panes: + - name: CLI diff --git a/laio/qmk.yaml b/laio/qmk.yaml new file mode 100644 index 0000000..66a9dad --- /dev/null +++ b/laio/qmk.yaml @@ -0,0 +1,26 @@ +--- +name: qmk + +startup: + - command: echo + args: + - starting qmk session # add commands here to run on session startup + +shutdown: + - command: echo + args: + - stopping qmk session # add commands here to run on session shutdown + +path: /home/crimsen/qmk_firmware/ + +windows: + - name: code + flex_direction: column # panes are above one another, if ommited defaults to row where panes are side by side + panes: + - name: Editor + commands: + - command: nvim + - name: cli + flex_direction: column + panes: + - name: CLI diff --git a/waybar/config.jsonc b/waybar/config.jsonc new file mode 100644 index 0000000..31738bb --- /dev/null +++ b/waybar/config.jsonc @@ -0,0 +1,88 @@ +{ + "layer": "top", // Waybar at top layer + "position": "top", // Waybar position (top|bottom|left|right) + // "width": 1280, // Waybar width + // Choose the order of the modules + "modules-left": ["hyprland/workspaces", "custom/music"], + "modules-center": ["clock"], + "modules-right": ["pulseaudio", "backlight", "battery", "tray", "custom/lock", "custom/power"], + "hyprland/workspaces": { + "disable-scroll": true, + "sort-by-name": true, + "format": " {icon} ", + "format-icons": { + "1": "", + // "1":"1", + //"1:www": "龜", // Icon: firefox-browser + "2": "", + //"2:mail": "", // Icon: mail + //"3": "", + "3":"󰂫", + //"3:editor": "", // Icon: code + "4": "", + //"4:terminals": "", // Icon: terminal + "5": "", + //"5:portal": "", // Icon: terminal + "6": "", + "default": "", + }, + "persistent-workspaces": { "1":[], "2":[], "3":[], "4":[], "5":[], "6":[]} + }, + "tray": { + "icon-size": 21, + "spacing": 10 + }, + "custom/music": { + // "format": " {}", + "format": "󰝚 {}", + "escape": true, + "interval": 5, + "tooltip": false, + "exec": "playerctl metadata --format='{{ title }}'", + "on-click": "playerctl play-pause", + "max-length": 50 + }, + "clock": { + "timezone": "Europe/Berlin", + "tooltip-format": "{:%Y %B}\n{calendar}", + "format-alt": " {:%d/%m/%Y}", + "format": " {:%H:%M}" + }, + "backlight": { + "device": "intel_backlight", + "format": "{icon}", + "format-icons": ["", "", "", "", "", "", "", "", ""] + }, + "battery": { + "states": { + "warning": 30, + "critical": 15 + }, + "format": "{icon}", + "format-charging": "󰂄", + "format-plugged": "󰂄", + "format-alt": "{icon}", + "format-icons": ["", "", "", "", "", "", "", "", "", "", "", ""] + }, + "pulseaudio": { + // "scroll-step": 1, // %, can be a float + "format": "{icon} {volume}%", + "format-muted": "", + "format-icons": { + "default": ["", "", " "] + }, + "on-click": "pavucontrol" + }, + "custom/lock": { + "tooltip": false, + "on-click": "sh -c '(sleep 0.5s; swaylock --grace 0)' & disown", + "format": "", + }, + "custom/power": { + "tooltip": false, + "on-click": "wlogout &", + // "format": "襤" + "format": " " + // "format": "moopä" + } +} diff --git a/waybar/config b/waybar/config.new.old similarity index 87% rename from waybar/config rename to waybar/config.new.old index bbba74c..e11ba20 100644 --- a/waybar/config +++ b/waybar/config.new.old @@ -20,9 +20,11 @@ "modules-left": [ "sway/workspaces", + "hyprland/workspaces" ], "modules-center": [ "sway/window", + "hyprland/window" ], "modules-right": [ "network", @@ -133,6 +135,11 @@ "format": "{}", "max-length": 120 }, + + "hyprland/window": { + "format": "{}", + "max-length": 120 + }, "sway/workspaces": { "all-outputs": false, @@ -156,6 +163,28 @@ "default": "", } }, + "hyprland/workspaces": { + "all-outputs": true, + "disable-scroll": true, + "format": "{icon} {name}", + "format-icons": { + "1": "", + //"1:www": "龜", // Icon: firefox-browser + "2": "", + //"2:mail": "", // Icon: mail + //"3": "", + "3":"", + //"3:editor": "", // Icon: code + "4": "", + //"4:terminals": "", // Icon: terminal + "5": "", + //"5:portal": "", // Icon: terminal + "6": "", + "urgent": "", + //"focused": "", + "default": "", + } + }, "pulseaudio": { //"scroll-step": 1, @@ -181,6 +210,7 @@ "modules-left": [ "backlight", "sway/mode", + "hyprland/submap" ], "modules-right": [ "memory", @@ -236,4 +266,8 @@ "format": " {}", // Icon: expand-arrows-alt "tooltip": false }, + "hyprland/submap": { + "format": " {}", // Icon: expand-arrows-alt + "tooltip": false + }, }] diff --git a/waybar/config.old b/waybar/config.old deleted file mode 100644 index 495a62a..0000000 --- a/waybar/config.old +++ /dev/null @@ -1,166 +0,0 @@ -{ - // "layer": "top", // Waybar at top layer - // "position": "bottom", // Waybar position (top|bottom|left|right) - "height": 30, // Waybar height (to be removed for auto height) - // "width": 1280, // Waybar width - "spacing": 4, // Gaps between modules (4px) - // Choose the order of the modules - "modules-left": ["sway/workspaces", "sway/mode", "sway/scratchpad", "custom/media"], - "modules-center": ["sway/window"], - "modules-right": ["mpd", "idle_inhibitor", "pulseaudio", "network", "cpu", "memory", "temperature", "backlight", "keyboard-state", "sway/language", "battery", "battery#bat2", "clock", "tray"], - // Modules configuration - "sway/workspaces": { - "disable-scroll": true, - "all-outputs": true, - "format": "{name}: {icon}", - "format-icons": { - "1": "", - "2": "", - "3": "", - "4": "", - "5": "", - "urgent": "", - "focused": "", - "default": "" - } - }, - "keyboard-state": { - "numlock": true, - "capslock": true, - "format": "{name} {icon}", - "format-icons": { - "locked": "", - "unlocked": "" - } - }, - "sway/mode": { - "format": "{}" - }, - "sway/scratchpad": { - "format": "{icon} {count}", - "show-empty": false, - "format-icons": ["", ""], - "tooltip": true, - "tooltip-format": "{app}: {title}" - }, - "mpd": { - "format": "{stateIcon} {consumeIcon}{randomIcon}{repeatIcon}{singleIcon}{artist} - {album} - {title} ({elapsedTime:%M:%S}/{totalTime:%M:%S}) ⸨{songPosition}|{queueLength}⸩ {volume}% ", - "format-disconnected": "Disconnected ", - "format-stopped": "{consumeIcon}{randomIcon}{repeatIcon}{singleIcon}Stopped ", - "unknown-tag": "N/A", - "interval": 2, - "consume-icons": { - "on": " " - }, - "random-icons": { - "off": " ", - "on": " " - }, - "repeat-icons": { - "on": " " - }, - "single-icons": { - "on": "1 " - }, - "state-icons": { - "paused": "", - "playing": "" - }, - "tooltip-format": "MPD (connected)", - "tooltip-format-disconnected": "MPD (disconnected)" - }, - "idle_inhibitor": { - "format": "{icon}", - "format-icons": { - "activated": "", - "deactivated": "" - } - }, - "tray": { - // "icon-size": 21, - "spacing": 10 - }, - "clock": { - // "timezone": "America/New_York", - "tooltip-format": "{:%Y %B}\n{calendar}", - "format-alt": "{:%Y-%m-%d}" - }, - "cpu": { - "format": "{usage}% ", - "tooltip": false - }, - "memory": { - "format": "{}% " - }, - "temperature": { - // "thermal-zone": 2, - // "hwmon-path": "/sys/class/hwmon/hwmon2/temp1_input", - "critical-threshold": 80, - // "format-critical": "{temperatureC}°C {icon}", - "format": "{temperatureC}°C {icon}", - "format-icons": ["", "", ""] - }, - "backlight": { - // "device": "acpi_video1", - "format": "{percent}% {icon}", - "format-icons": ["", "", "", "", "", "", "", "", ""] - }, - "battery": { - "states": { - // "good": 95, - "warning": 30, - "critical": 15 - }, - "format": "{capacity}% {icon}", - "format-charging": "{capacity}% ", - "format-plugged": "{capacity}% ", - "format-alt": "{time} {icon}", - // "format-good": "", // An empty format will hide the module - // "format-full": "", - "format-icons": ["", "", "", "", ""] - }, - "battery#bat2": { - "bat": "BAT2" - }, - "network": { - // "interface": "wlp2*", // (Optional) To force the use of this interface - "format-wifi": "{essid} ({signalStrength}%) ", - "format-ethernet": "{ipaddr}/{cidr} ", - "tooltip-format": "{ifname} via {gwaddr} ", - "format-linked": "{ifname} (No IP) ", - "format-disconnected": "Disconnected ⚠", - "format-alt": "{ifname}: {ipaddr}/{cidr}" - }, - "pulseaudio": { - // "scroll-step": 1, // %, can be a float - "format": "{volume}% {icon} {format_source}", - "format-bluetooth": "{volume}% {icon} {format_source}", - "format-bluetooth-muted": " {icon} {format_source}", - "format-muted": " {format_source}", - "format-source": "{volume}% ", - "format-source-muted": "", - "format-icons": { - "headphone": "", - "hands-free": "", - "headset": "", - "phone": "", - "portable": "", - "car": "", - "default": ["", "", ""] - }, - "on-click": "pavucontrol" - }, - "custom/media": { - "format": "{icon} {}", - "return-type": "json", - "max-length": 40, - "format-icons": { - "spotify": "", - "default": "🎜" - }, - "escape": true, - "exec": "$HOME/.config/waybar/mediaplayer.py 2> /dev/null" // Script in resources folder - // "exec": "$HOME/.config/waybar/mediaplayer.py --player spotify 2> /dev/null" // Filter player based on name - } -} - diff --git a/waybar/macchiato.css b/waybar/macchiato.css new file mode 100644 index 0000000..12bc89c --- /dev/null +++ b/waybar/macchiato.css @@ -0,0 +1,37 @@ +/* +* +* Catppuccin Mocha palette +* Maintainer: rubyowo +* +*/ + +@define-color base #24273a; +@define-color mantle #1e2030; +@define-color crust #181926; + +@define-color text #cad3f5; +@define-color subtext0 #a5adcb; +@define-color subtext1 #b8c0e0; + +@define-color surface0 #363a4f; +@define-color surface1 #494d64; +@define-color surface2 #5b6078; + +@define-color overlay0 #6e738d; +@define-color overlay1 #8087a2; +@define-color overlay2 #939ab7; + +@define-color blue #8aadf4; +@define-color lavender #b7bdf8; +@define-color sapphire #7dc4e4; +@define-color sky #91d7e3; +@define-color teal #8bd5ca; +@define-color green #a6da95; +@define-color yellow #eed49f; +@define-color peach #f5a97f; +@define-color maroon #ee99a0; +@define-color red #ed8796; +@define-color mauve #c6a0f6; +@define-color pink #f5bde6; +@define-color flamingo #f0c6c6; +@define-color rosewater #f4dbd6; diff --git a/waybar/style.css b/waybar/style.css index 67adf39..add8716 100644 --- a/waybar/style.css +++ b/waybar/style.css @@ -1,195 +1,141 @@ -/* ============================================================================= - * - * Waybar configuration - * - * Configuration reference: https://github.com/Alexays/Waybar/wiki/Configuration - * - * =========================================================================== */ - -/* ----------------------------------------------------------------------------- - * Keyframes - * -------------------------------------------------------------------------- */ - -@keyframes blink-warning { - 70% { - color: white; - } - - to { - color: white; - background-color: orange; - } -} - -@keyframes blink-critical { - 70% { - color: white; - } - - to { - color: white; - background-color: red; - } -} - -/* ----------------------------------------------------------------------------- - * Base styles - * -------------------------------------------------------------------------- */ - -/* Reset all styles */ +@import "macchiato.css"; * { - border: none; - border-radius: 0; + all: unset; + /* font-family: FantasqueSansMono Nerd Font; */ + font-family: Hack Nerd Font Mono Propo; + font-size: 17px; min-height: 0; - margin: 0; - padding: 0; } -/* The whole bar */ #waybar { - /*background: #323232;*/ - background: rgba(50, 50, 50, 0.7); - color: white; - /* font-family: Cantarell, Noto Sans, sans-serif; */ - /* font-family: "Hack Nerd Font", "Noto Sans", sans-serif; */ - font-family: "Hack Nerd Font"; - font-size: 14px; + background: transparent; + color: @text; + margin: 5px 5px; } -/* Each module */ -#battery, -#clock, -#cpu, -#custom-keyboard-layout, -#memory, -#mode, -#network, -#pulseaudio, -#temperature, -#tray { - padding-left: 10px; - padding-right: 10px; -} - -/* ----------------------------------------------------------------------------- - * Module styles - * -------------------------------------------------------------------------- */ - -#battery { - animation-timing-function: linear; - animation-iteration-count: infinite; - animation-direction: alternate; -} - -#battery.warning { - color: orange; -} - -#battery.critical { - color: red; -} - -#battery.warning.discharging { - animation-name: blink-warning; - animation-duration: 3s; -} - -#battery.critical.discharging { - animation-name: blink-critical; - animation-duration: 2s; -} - -#clock { - font-weight: bold; -} - -#cpu { - /* No styles */ -} - -#cpu.warning { - color: orange; -} - -#cpu.critical { - color: red; -} - -#memory { - animation-timing-function: linear; - animation-iteration-count: infinite; - animation-direction: alternate; -} - -#memory.warning { - color: orange; -} - -#memory.critical { - color: red; - animation-name: blink-critical; - animation-duration: 2s; -} - -#mode { - background: #64727d; - border-top: 2px solid white; - /* To compensate for the top border and still have vertical centering */ - padding-bottom: 2px; -} - -#network { - /* No styles */ -} - -#network.disconnected { - color: orange; -} - -#pulseaudio { - /* No styles */ -} - -#pulseaudio.muted { - /* No styles */ -} - -#custom-spotify { - color: rgb(102, 220, 105); -} - -#temperature { - /* No styles */ -} - -#temperature.critical { - color: red; -} - -#tray { - /* No styles */ -} - -#window { - font-weight: bold; +#workspaces { + border-radius: 1rem 0px 0px 1rem; + margin: 5px; + margin-right: 0px; + background-color: @surface0; + margin-left: 1rem; } #workspaces button { - border-top: 2px solid transparent; - /* To compensate for the top border and still have vertical centering */ - padding-bottom: 2px; - padding-left: 10px; - padding-right: 10px; - color: #888888; + font-family: Hack Nerd Mono Font; + font-weight: 500; + /* color: @lavender; */ + background-color: transparent; + border-radius: 1rem; + margin: 0.5rem; + padding: 0.2rem; + padding-left: 0rem; + padding-right: 0.5rem; +} +#workspaces button#hyprland-workspace-1 { + background-color: #f38ba8; /* Catppuccin Red */ + border-bottom: 3px solid #f38ba8; + } + +#workspaces button.2 { + background-color: #fab387; /* Catppuccin Peach */ + border-bottom: 3px solid #fab387; + } + + #workspaces button.3 { + background-color: #f9e2af; /* Catppuccin Yellow */ + border-bottom: 3px solid #f9e2af; + } + + #workspaces button.4 { +background-color: #a6e3a1; /* Catppuccin Green */ + border-bottom: 3px solid #a6e3a1; } -#workspaces button.focused { - border-color: #4c7899; - color: white; - background-color: #285577; + +#workspaces button.active { + background-color: @teal; + font-family: Hack Nerd Mono Font; + color: @surface0; + border-radius: 1rem; + margin: 0.5rem; + padding: 0rem; + padding-right: 0.5rem; + transition: width 0.5s, height 0.5s, background-color 0.5s; } -#workspaces button.urgent { - border-color: #c9545d; - color: #c9545d; +#workspaces button:hover { + color: @sapphire; + border-radius: 1rem; +} + +#custom-music, +#tray, +#backlight, +#clock, +#pulseaudio, +#custom-lock, +#custom-power { + background-color: @surface0; + padding: 0.5rem 1rem; + margin: 5px 0; +} + +#clock { + color: @blue; + /* border-radius: 0px 1rem 1rem 0px; */ + border-radius: 1rem; + margin-right: 1rem; +} + +#battery { + background-color: @surface0; + margin: 5px 0; + margin-right: 1rem; + padding: 0.5rem 1rem; + color: @green; + border-radius: 0px 1rem 1rem 0px; +} + +#battery.charging { + color: @green; +} + +#battery.warning:not(.charging) { + color: @red; +} + +#backlight { + color: @yellow; +} + +#backlight { + border-radius: 0; +} + +#pulseaudio { + color: @maroon; + border-radius: 1rem 0px 0px 1rem; + margin-left: 1rem; +} + +#custom-music { + color: @mauve; + border-radius: 0px 1rem 1rem 0px; +} + +#custom-lock { + border-radius: 1rem 0px 0px 1rem; + color: @lavender; +} + +#custom-power { + margin-right: 1rem; + border-radius: 0px 1rem 1rem 0px; + color: @red; +} + +#tray { + margin-right: 1rem; + border-radius: 1rem; } diff --git a/waybar/style.css.new.old b/waybar/style.css.new.old new file mode 100644 index 0000000..3145e18 --- /dev/null +++ b/waybar/style.css.new.old @@ -0,0 +1,201 @@ +/* ============================================================================= + * + * Waybar configuration + * + * Configuration reference: https://github.com/Alexays/Waybar/wiki/Configuration + * + * =========================================================================== */ + +/* ----------------------------------------------------------------------------- + * Keyframes + * -------------------------------------------------------------------------- */ + +@keyframes blink-warning { + 70% { + color: white; + } + + to { + color: white; + background-color: orange; + } +} + +@keyframes blink-critical { + 70% { + color: white; + } + + to { + color: white; + background-color: red; + } +} + +/* ----------------------------------------------------------------------------- + * Base styles + * -------------------------------------------------------------------------- */ + +/* Reset all styles */ +* { + border: none; + border-radius: 0; + min-height: 0; + margin: 0; + padding: 0; +} + +/* The whole bar */ +#waybar { + /*background: #323232;*/ + background: rgba(50, 50, 50, 0.7); + color: white; + /* font-family: Cantarell, Noto Sans, sans-serif; */ + /* font-family: "Hack Nerd Font", "Noto Sans", sans-serif; */ + font-family: "Hack Nerd Font"; + font-size: 14px; +} + +/* Each module */ +#battery, +#clock, +#cpu, +#custom-keyboard-layout, +#memory, +#mode, +#network, +#pulseaudio, +#temperature, +#tray { + padding-left: 10px; + padding-right: 10px; +} + +/* ----------------------------------------------------------------------------- + * Module styles + * -------------------------------------------------------------------------- */ + +#battery { + animation-timing-function: linear; + animation-iteration-count: infinite; + animation-direction: alternate; +} + +#battery.warning { + color: orange; +} + +#battery.critical { + color: red; +} + +#battery.warning.discharging { + animation-name: blink-warning; + animation-duration: 3s; +} + +#battery.critical.discharging { + animation-name: blink-critical; + animation-duration: 2s; +} + +#clock { + font-weight: bold; +} + +#cpu { + /* No styles */ +} + +#cpu.warning { + color: orange; +} + +#cpu.critical { + color: red; +} + +#memory { + animation-timing-function: linear; + animation-iteration-count: infinite; + animation-direction: alternate; +} + +#memory.warning { + color: orange; +} + +#memory.critical { + color: red; + animation-name: blink-critical; + animation-duration: 2s; +} + +#mode { + background: #64727d; + border-top: 2px solid white; + /* To compensate for the top border and still have vertical centering */ + padding-bottom: 2px; +} + +#network { + /* No styles */ +} + +#network.disconnected { + color: orange; +} + +#pulseaudio { + /* No styles */ +} + +#pulseaudio.muted { + /* No styles */ +} + +#custom-spotify { + color: rgb(102, 220, 105); +} + +#temperature { + /* No styles */ +} + +#temperature.critical { + color: red; +} + +#tray { + /* No styles */ +} + +#window { + font-weight: bold; +} + +#workspaces button { + border-top: 2px solid transparent; + /* To compensate for the top border and still have vertical centering */ + padding-bottom: 2px; + padding-left: 10px; + padding-right: 10px; + color: #888888; +} + +#workspaces button.focused { + border-color: #4c7899; + color: white; + background-color: #285577; +} + +#workspaces button.active { + border-color: #4c7899; + color: white; + background-color: #285577; +} + +#workspaces button.urgent { + border-color: #c9545d; + color: #c9545d; +} diff --git a/waybar/style.css.old b/waybar/style.css.old deleted file mode 100644 index cf5c5fb..0000000 --- a/waybar/style.css.old +++ /dev/null @@ -1,280 +0,0 @@ -* { - /* `otf-font-awesome` is required to be installed for icons */ - font-family: FontAwesome, Roboto, Helvetica, Arial, sans-serif; - font-size: 13px; -} - -window#waybar { - background-color: rgba(43, 48, 59, 0.5); - border-bottom: 3px solid rgba(100, 114, 125, 0.5); - color: #ffffff; - transition-property: background-color; - transition-duration: .5s; -} - -window#waybar.hidden { - opacity: 0.2; -} - -/* -window#waybar.empty { - background-color: transparent; -} -window#waybar.solo { - background-color: #FFFFFF; -} -*/ - -window#waybar.termite { - background-color: #3F3F3F; -} - -window#waybar.chromium { - background-color: #000000; - border: none; -} - -button { - /* Use box-shadow instead of border so the text isn't offset */ - box-shadow: inset 0 -3px transparent; - /* Avoid rounded borders under each button name */ - border: none; - border-radius: 0; -} - -/* https://github.com/Alexays/Waybar/wiki/FAQ#the-workspace-buttons-have-a-strange-hover-effect */ -button:hover { - background: inherit; - box-shadow: inset 0 -3px #ffffff; -} - -#workspaces button { - padding: 0 5px; - background-color: transparent; - color: #ffffff; -} - -#workspaces button:hover { - background: rgba(0, 0, 0, 0.2); -} - -#workspaces button.focused { - background-color: #64727D; - box-shadow: inset 0 -3px #ffffff; -} - -#workspaces button.urgent { - background-color: #eb4d4b; -} - -#mode { - background-color: #64727D; - border-bottom: 3px solid #ffffff; -} - -#clock, -#battery, -#cpu, -#memory, -#disk, -#temperature, -#backlight, -#network, -#pulseaudio, -#wireplumber, -#custom-media, -#tray, -#mode, -#idle_inhibitor, -#scratchpad, -#mpd { - padding: 0 10px; - color: #ffffff; -} - -#window, -#workspaces { - margin: 0 4px; -} - -/* 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; -} - -#clock { - background-color: #64727D; -} - -#battery { - background-color: #ffffff; - color: #000000; -} - -#battery.charging, #battery.plugged { - color: #ffffff; - background-color: #26A65B; -} - -@keyframes blink { - to { - background-color: #ffffff; - color: #000000; - } -} - -#battery.critical:not(.charging) { - background-color: #f53c3c; - color: #ffffff; - animation-name: blink; - animation-duration: 0.5s; - animation-timing-function: linear; - animation-iteration-count: infinite; - animation-direction: alternate; -} - -label:focus { - background-color: #000000; -} - -#cpu { - background-color: #2ecc71; - color: #000000; -} - -#memory { - background-color: #9b59b6; -} - -#disk { - background-color: #964B00; -} - -#backlight { - background-color: #90b1b1; -} - -#network { - background-color: #2980b9; -} - -#network.disconnected { - background-color: #f53c3c; -} - -#pulseaudio { - background-color: #f1c40f; - color: #000000; -} - -#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; -} - -#temperature.critical { - background-color: #eb4d4b; -} - -#tray { - background-color: #2980b9; -} - -#tray > .passive { - -gtk-icon-effect: dim; -} - -#tray > .needs-attention { - -gtk-icon-effect: highlight; - background-color: #eb4d4b; -} - -#idle_inhibitor { - background-color: #2d3436; -} - -#idle_inhibitor.activated { - background-color: #ecf0f1; - 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; - padding: 0 5px; - margin: 0 5px; - min-width: 16px; -} - -#keyboard-state { - background: #97e1ad; - color: #000000; - padding: 0 0px; - margin: 0 5px; - min-width: 16px; -} - -#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; -}