Compare commits

...

2 Commits

Author SHA1 Message Date
b08b77e1dd
Update hyprland 2025-05-25 00:12:04 +02:00
911be51b29
Update waybar 2025-05-25 00:11:29 +02:00
4 changed files with 164 additions and 61 deletions

View File

@ -1,12 +1,14 @@
monitor = HDMI-A-1, preferred, auto, 1.25 monitor = HDMI-A-1, preferred, auto, 1.25
$terminal = ghostty $terminal = ghostty
$fileManager = dolphin $fileManager = thunar
$menu = wofi --show drun $menu = fuzzel
exec-once = hyprpaper exec-once = hyprpaper
exec-once = waybar exec-once = waybar
exec-once = xrdb -merge "$HOME/.Xresources" exec-once = xrdb -merge "$HOME/.Xresources"
exec-once = thunar --daemon
exec-once = dunst
env = XCURSOR_SIZE,24 env = XCURSOR_SIZE,24
env = HYPRCURSOR_SIZE,24 env = HYPRCURSOR_SIZE,24
@ -17,7 +19,7 @@ general {
border_size = 4 border_size = 4
col.active_border = rgb(5e72eb) rgb(ff9190) 45deg col.active_border = rgb(f12711) rgb(f5af19) 45deg
col.inactive_border = rgba(595959aa) col.inactive_border = rgba(595959aa)
resize_on_border = false resize_on_border = false
@ -32,29 +34,47 @@ xwayland {
force_zero_scaling = true force_zero_scaling = true
} }
# {{{ Decoration
# See https://wiki.hyprland.org/Configuring/Variables/#decoration
decoration { decoration {
rounding = 10 rounding = 10
rounding_power = 2 rounding_power = 2.0
active_opacity = 1.0 active_opacity = 1.0
inactive_opacity = 1.0 inactive_opacity = 1.0
fullscreen_opacity = 1.0
dim_inactive = false
dim_strength = 0.5
# See https://wiki.hyprland.org/Configuring/Variables/#shadow
shadow { shadow {
enabled = true enabled = false
range = 4
render_power = 3
color = rgba(1a1a1aee) color = rgba(1a1a1aee)
range = 8
render_power = 3
sharp = false
ignore_window = true
offset = 0 0
scale = 1.0
} }
# See https://wiki.hyprland.org/Configuring/Variables/#blur
blur { blur {
enabled = true enabled = false
size = 3 size = 8
passes = 1 passes = 1
ignore_opacity = true
noise = 0.1
contrast = 0.9
brightness = 0.8
vibrancy = 0.1696 vibrancy = 0.1696
} }
} }
# }}}
# {{{ Animations
# See https://wiki.hyprland.org/Configuring/Animations/
animations { animations {
enabled = yes, please :) enabled = yes, please :)
@ -83,6 +103,7 @@ animations {
animation = workspacesIn, 1, 1.21, almostLinear, fade animation = workspacesIn, 1, 1.21, almostLinear, fade
animation = workspacesOut, 1, 1.94, almostLinear, fade animation = workspacesOut, 1, 1.94, almostLinear, fade
} }
# }}}
# Ref https://wiki.hyprland.org/Configuring/Workspace-Rules/ # Ref https://wiki.hyprland.org/Configuring/Workspace-Rules/
# "Smart gaps" / "No gaps when only" # "Smart gaps" / "No gaps when only"
@ -108,14 +129,10 @@ misc {
} }
#############
### INPUT ###
#############
# https://wiki.hyprland.org/Configuring/Variables/#input # https://wiki.hyprland.org/Configuring/Variables/#input
input { input {
kb_layout = de kb_layout = de
kb_variant = neo_qwertz # kb_variant = neo_qwertz
kb_model = pc105 kb_model = pc105
kb_options = kb_options =
kb_rules = kb_rules =
@ -141,23 +158,20 @@ device {
sensitivity = -0.5 sensitivity = -0.5
} }
# {{{ Keybindings
###################
### KEYBINDINGS ###
###################
# See https://wiki.hyprland.org/Configuring/Keywords/ # See https://wiki.hyprland.org/Configuring/Keywords/
$mainMod = SUPER # Sets "Windows" key as main modifier $mainMod = SUPER # Sets "Windows" key as main modifier
# Example binds, see https://wiki.hyprland.org/Configuring/Binds/ for more # Example binds, see https://wiki.hyprland.org/Configuring/Binds/ for more
bind = $mainMod, return, exec, $terminal
bind = $mainMod, Q, killactive, bind = $mainMod, Q, killactive,
bind = $mainMod, M, exit, bind = $mainMod, M, exit,
bind = $mainMod, E, exec, $fileManager
bind = $mainMod, V, togglefloating, bind = $mainMod, V, togglefloating,
bind = $mainMod, F, fullscreen, 1
bind = $mainMod SHIFT, F, fullscreen, 0
bind = $mainMod, return, exec, $terminal
bind = $mainMod, E, exec, $fileManager
bind = $mainMod, R, exec, $menu bind = $mainMod, R, exec, $menu
bind = $mainMod, P, pseudo, # dwindle
bind = $mainMod, J, togglesplit, # dwindle
# Move focus with mainMod + arrow keys # Move focus with mainMod + arrow keys
bind = $mainMod, left, movefocus, l bind = $mainMod, left, movefocus, l
@ -165,6 +179,11 @@ bind = $mainMod, right, movefocus, r
bind = $mainMod, up, movefocus, u bind = $mainMod, up, movefocus, u
bind = $mainMod, down, movefocus, d bind = $mainMod, down, movefocus, d
bind = $mainMod, H, movefocus, l
bind = $mainMod, L, movefocus, r
bind = $mainMod, K, movefocus, u
bind = $mainMod, J, movefocus, d
# Switch workspaces with mainMod + [0-9] # Switch workspaces with mainMod + [0-9]
bind = $mainMod, 1, workspace, 1 bind = $mainMod, 1, workspace, 1
bind = $mainMod, 2, workspace, 2 bind = $mainMod, 2, workspace, 2
@ -215,18 +234,22 @@ bindl = , XF86AudioPause, exec, playerctl play-pause
bindl = , XF86AudioPlay, exec, playerctl play-pause bindl = , XF86AudioPlay, exec, playerctl play-pause
bindl = , XF86AudioPrev, exec, playerctl previous bindl = , XF86AudioPrev, exec, playerctl previous
############################## # }}}
### WINDOWS AND WORKSPACES ### # {{{ Window Rules
##############################
# See https://wiki.hyprland.org/Configuring/Window-Rules/ for more # See https://wiki.hyprland.org/Configuring/Window-Rules/ for more
# See https://wiki.hyprland.org/Configuring/Workspace-Rules/ for workspace rules # See https://wiki.hyprland.org/Configuring/Workspace-Rules/ for workspace rules
# Example windowrule
# windowrule = float,class:^(kitty)$,title:^(kitty)$
# Ignore maximize requests from apps. You'll probably like this.
windowrule = suppressevent maximize, class:.* windowrule = suppressevent maximize, class:.*
# Use `hyprctl clients` to find the class of an application
windowrule = workspace 1, class:vivaldi.*
windowrule = workspace 3, class:discord
windowrule = workspace 3, class:Signal
windowrule = workspace 5, class:Spotify
# Fix some dragging issues with XWayland # Fix some dragging issues with XWayland
windowrule = nofocus,class:^$,title:^$,xwayland:1,floating:1,fullscreen:0,pinned:0 windowrule = nofocus,class:^$,title:^$,xwayland:1,floating:1,fullscreen:0,pinned:0
# }}}

View File

@ -8,3 +8,5 @@
@define-color red-gradient #D32F2F; @define-color red-gradient #D32F2F;
@define-color blue #0091EA; @define-color blue #0091EA;
@define-color blue-gradient #00B0FF; @define-color blue-gradient #00B0FF;
@define-color purple #651FFF;
@define-color purple-gradient #7C4DFF;

View File

@ -1,52 +1,113 @@
// Waybar Config
// https://github.com/Alexays/Waybar
// Marvin Elsen <contact@marvinelsen.com>
// See https://github.com/Alexays/Waybar/wiki/Configuration#bar-config
{ {
"layer": "top", "layer": "top",
"position": "top", "position": "top",
"modules-left": ["hyprland/workspaces"], "modules-left": ["hyprland/workspaces"],
"modules-center": ["clock#date", "clock#time"], "modules-center": ["clock#date", "clock#time"],
"modules-right": ["tray", "network", "bluetooth"], "modules-right": ["tray", "pulseaudio#input", "pulseaudio#output", "bluetooth", "network"],
// See https://github.com/Alexays/Waybar/wiki/Module:-Hyprland
"hyprland/workspaces": { "hyprland/workspaces": {
"format": "{name}", "format": "{icon}",
"format-icons": {
"1": "一",
"2": "二",
"3": "三",
"4": "四",
"5": "五",
"6": "六",
"7": "七",
"8": "八",
"9": "九",
"10": "十"
},
"on-scroll-up": "hyprctl dispatch workspace +1",
"on-scroll-down": "hyprctl dispatch workspace -1",
"persistent-workspaces": { "persistent-workspaces": {
"*": 5, "*": 5
} }
}, },
// See https://github.com/Alexays/Waybar/wiki/Module:-Bluetooth
"bluetooth": { "bluetooth": {
"format-on": "󰂯 On", "format-on": "󰂯 On",
"format-connected": "󰂱 On", "format-connected": "󰂱 On",
"format-off": "󰂲 Off", "format-off": "󰂲 Off",
"format-no-controller": "󰂲 No Controller", "format-disabled": "󰂲 Disabled",
"format-no-controller": "󰂲 No Controller",
"tooltip-format": "{controller_alias}\t{controller_address}\n\n{num_connections} connected", "tooltip-format": "{controller_alias}\t{controller_address}\n\n{num_connections} connected",
"tooltip-format-connected": "{controller_alias}\t{controller_address}\n\n{num_connections} connected\n\n{device_enumerate}", "tooltip-format-connected": "{controller_alias}\t{controller_address}\n\n{num_connections} connected:\n\n{device_enumerate}",
"tooltip-format-enumerate-connected": "{device_alias}\t{device_address}", "tooltip-format-enumerate-connected": "{device_alias}\t{device_address}",
"tooltip-format-enumerate-connected-battery": "{device_alias}\t{device_address}\t{device_battery_percentage}%" "tooltip-format-enumerate-connected-battery": "{device_alias}\t{device_address}\t{device_battery_percentage}%",
"on-click": "rfkill toggle bluetooth"
}, },
"pulseaudio": { // See https://github.com/Alexays/Waybar/wiki/Module:-PulseAudio
"tooltip": false, "pulseaudio#input": {
"scroll-step": 5, "format": "{format_source}",
"format": "{icon} {volume}%", "format-source": "󰍬 {volume}%",
"format-muted": "{icon} {volume}%", "format-source-muted": "󰍭 Muted",
"on-click":"pactl set-sink-mute @DEFAULT_SINK@ toggle", "on-click": "pactl set-source-mute @DEFAULT_SOURCE@ toggle",
"on-click-right": "pavucontrol --tab=4",
"on-scroll-up": "pactl set-source-volume @DEFAULT_SOURCE@ +5%",
"on-scroll-down": "pactl set-source-volume @DEFAULT_SOURCE@ -5%",
"tooltip": false
},
// See https://github.com/Alexays/Waybar/wiki/Module:-PulseAudio
"pulseaudio#output": {
"format": "{icon} {volume}%",
"format-muted": "󰖁 Muted",
"on-click": "pactl set-sink-mute @DEFAULT_SINK@ toggle",
"on-click-right": "pavucontrol",
"format-icons": { "format-icons": {
"default": ["", "", ""] "default": ["", "", ""],
} "headphone": "󰋋",
"speaker": "󰓃"
},
"scroll-step": 5
}, },
// See https://github.com/Alexays/Waybar/wiki/Module:-Network
"network": { "network": {
"format-wifi": "󰖩 Online", "format-wifi": "󰖩 Online",
"format-ethernet": "󰛳 Online", "format-ethernet": "󰛳 Online",
"format-disconnected": "󰲜 Offline", "format-disconnected": "󰲜 Offline",
"tooltip-format-ethernet": "{ifname}\t{ipaddr}" "tooltip-format-ethernet": "{ifname}\t{ipaddr}",
"tooltip-format-wifi": "{essid}\t{signalStrength}%",
"tooltip-format-disconnected": "Disconnected",
"family": "ipv4"
}, },
"tray":{ // See https://github.com/Alexays/Waybar/wiki/Module:-Tray
"icon-size":18, "tray": {
"icon-size": 18,
"spacing": 10, "spacing": 10,
"show-passive-items": true "show-passive-items": true
}, },
// See https://github.com/Alexays/Waybar/wiki/Module:-Clock
"clock#date": { "clock#date": {
"interval": 60, "format": "{:%a %b %d}",
"format": "{:%a %b %d}" "tooltip-format": "<tt>{calendar}</tt>",
"calendar": {
"mode": "month",
"mode-mon-col": 3,
"weeks-pos": "right",
"format": {
"months": "<span color='#ffead3'><b>{}</b></span>",
"days": "<span color='#ecc6d9'><b>{}</b></span>",
"weeks": "<span color='#99ffdd'><b>W{}</b></span>",
"weekdays": "<span color='#ffcc66'><b>{}</b></span>",
"today": "<span color='#ff6699'><b><u>{}</u></b></span>"
}
},
"actions": {
"on-click-right": "mode",
"on-scroll-up": "shift_up",
"on-scroll-down": "shift_down"
}
}, },
// See https://github.com/Alexays/Waybar/wiki/Module:-Clock
"clock#time": { "clock#time": {
"interval": 60, "format": "{:%H:%M}",
"format": "{:%H:%M}" "tooltip": false
} }
} }

View File

@ -1,7 +1,11 @@
/* Waybar Style */
/* https://github.com/Alexays/Waybar */
/* Marvin Elsen <contact@marvinelsen.com */
/* See https://github.com/Alexays/Waybar/wiki/Styling */
@import "colors.css"; @import "colors.css";
* { * {
border: none;
font-family: "Inter SemiBold", "FantasqueSansM Nerd Font"; font-family: "Inter SemiBold", "FantasqueSansM Nerd Font";
font-size: 1rem; font-size: 1rem;
} }
@ -10,10 +14,6 @@ window#waybar {
background: transparent; background: transparent;
} }
window#waybar.hidden {
opacity: 0.2;
}
#waybar .module { #waybar .module {
margin-top: 8px; margin-top: 8px;
@ -46,6 +46,7 @@ window#waybar.hidden {
#workspaces button { #workspaces button {
border-radius: 16px; border-radius: 16px;
color: @text; color: @text;
border-radius: 20px;
} }
#workspaces button.empty { #workspaces button.empty {
@ -88,3 +89,19 @@ window#waybar.hidden {
background: linear-gradient(0deg, @red 0%, @red-gradient 100%); background: linear-gradient(0deg, @red 0%, @red-gradient 100%);
} }
#pulseaudio.input {
background: linear-gradient(0deg, @purple 0%, @purple-gradient 100%);
}
#pulseaudio.input.source-muted {
background: linear-gradient(0deg, @red 0%, @red-gradient 100%);
}
#pulseaudio.output {
background: linear-gradient(0deg, @purple 0%, @purple-gradient 100%);
}
#pulseaudio.output.muted {
background: linear-gradient(0deg, @red 0%, @red-gradient 100%);
}