add hyprland

This commit is contained in:
Tim Gröger 2026-04-21 12:19:19 +02:00
parent 30fb0e5959
commit 6090f8f90e
29 changed files with 1380 additions and 626 deletions

20
.zshrc
View File

@ -181,3 +181,23 @@ else
fi fi
source ~/.env.secrets 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"
'

View File

@ -10,3 +10,5 @@ confirm-close-surface = false
# Maus-Support für Neovim # Maus-Support für Neovim
mouse-hide-while-typing = true mouse-hide-while-typing = true
shell-integration = zsh

View File

@ -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

View File

@ -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

15
hypr/config.d/env.conf Normal file
View File

@ -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 monitors 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

70
hypr/config.d/input.conf Normal file
View File

@ -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 =
}

View File

@ -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. :(
}

View File

@ -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

View File

@ -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"

View File

@ -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

View File

@ -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

0
hypr/config.d/rules.conf Normal file
View File

View File

@ -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

View File

@ -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
}

16
hypr/hypridle.conf Normal file
View File

@ -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
}

22
hypr/hyprland.conf Normal file
View File

@ -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

64
hypr/hyprlock.conf Normal file
View File

@ -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 = <span foreground="##cad3f5">Passwort eingeben...</span>
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
}

10
hypr/scripts/clamshell.sh Executable file
View File

@ -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

178
hypr/try.conf Normal file
View File

@ -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

22
laio/astronvim.yaml Normal file
View File

@ -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

26
laio/nvim.yaml Normal file
View File

@ -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

26
laio/qmk.yaml Normal file
View File

@ -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

88
waybar/config.jsonc Normal file
View File

@ -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": "<big>{:%Y %B}</big>\n<tt><small>{calendar}</small></tt>",
"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ä"
}
}

View File

@ -20,9 +20,11 @@
"modules-left": [ "modules-left": [
"sway/workspaces", "sway/workspaces",
"hyprland/workspaces"
], ],
"modules-center": [ "modules-center": [
"sway/window", "sway/window",
"hyprland/window"
], ],
"modules-right": [ "modules-right": [
"network", "network",
@ -133,6 +135,11 @@
"format": "{}", "format": "{}",
"max-length": 120 "max-length": 120
}, },
"hyprland/window": {
"format": "{}",
"max-length": 120
},
"sway/workspaces": { "sway/workspaces": {
"all-outputs": false, "all-outputs": false,
@ -156,6 +163,28 @@
"default": "", "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": { "pulseaudio": {
//"scroll-step": 1, //"scroll-step": 1,
@ -181,6 +210,7 @@
"modules-left": [ "modules-left": [
"backlight", "backlight",
"sway/mode", "sway/mode",
"hyprland/submap"
], ],
"modules-right": [ "modules-right": [
"memory", "memory",
@ -236,4 +266,8 @@
"format": "<span style=\"italic\"> {}</span>", // Icon: expand-arrows-alt "format": "<span style=\"italic\"> {}</span>", // Icon: expand-arrows-alt
"tooltip": false "tooltip": false
}, },
"hyprland/submap": {
"format": "<span style=\"italic\"> {}</span>", // Icon: expand-arrows-alt
"tooltip": false
},
}] }]

View File

@ -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": "<span style=\"italic\">{}</span>"
},
"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": "<span color=\"#f53c3c\"></span> ",
"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": "<big>{:%Y %B}</big>\n<tt><small>{calendar}</small></tt>",
"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
}
}

37
waybar/macchiato.css Normal file
View File

@ -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;

View File

@ -1,195 +1,141 @@
/* ============================================================================= @import "macchiato.css";
*
* 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; all: unset;
border-radius: 0; /* font-family: FantasqueSansMono Nerd Font; */
font-family: Hack Nerd Font Mono Propo;
font-size: 17px;
min-height: 0; min-height: 0;
margin: 0;
padding: 0;
} }
/* The whole bar */
#waybar { #waybar {
/*background: #323232;*/ background: transparent;
background: rgba(50, 50, 50, 0.7); color: @text;
color: white; margin: 5px 5px;
/* 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 */ #workspaces {
#battery, border-radius: 1rem 0px 0px 1rem;
#clock, margin: 5px;
#cpu, margin-right: 0px;
#custom-keyboard-layout, background-color: @surface0;
#memory, margin-left: 1rem;
#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 { #workspaces button {
border-top: 2px solid transparent; font-family: Hack Nerd Mono Font;
/* To compensate for the top border and still have vertical centering */ font-weight: 500;
padding-bottom: 2px; /* color: @lavender; */
padding-left: 10px; background-color: transparent;
padding-right: 10px; border-radius: 1rem;
color: #888888; 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; #workspaces button.active {
color: white; background-color: @teal;
background-color: #285577; 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 { #workspaces button:hover {
border-color: #c9545d; color: @sapphire;
color: #c9545d; 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;
} }

201
waybar/style.css.new.old Normal file
View File

@ -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;
}

View File

@ -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;
}