From 7aef478be782ede7894ad32525578aba0064f60c Mon Sep 17 00:00:00 2001 From: dichgrem Date: Wed, 9 Jul 2025 12:22:03 +0800 Subject: [PATCH] update:hypr --- hypr/config/animations.conf | 15 ++ hypr/config/autostart.conf | 23 +++ hypr/{theme.conf => config/colors.conf} | 15 ++ hypr/config/decorations.conf | 25 ++++ hypr/config/defaults.conf | 10 ++ hypr/config/environment.conf | 7 + hypr/config/input.conf | 10 ++ hypr/config/keybinds.conf | 154 ++++++++++++++++++++ hypr/config/monitor.conf | 16 +++ hypr/config/variables.conf | 80 +++++++++++ hypr/config/windowrules.conf | 62 +++++++++ hypr/hyprland.conf | 22 +++ hypr/hyprland/autostart.conf | 9 -- hypr/hyprland/basic.conf | 136 ------------------ hypr/hyprland/bind.conf | 178 ------------------------ hypr/hyprlock.conf | 3 +- hypr/scripts/screenshot | 3 + hypr/scripts/screenshot_area | 3 + hypr/scripts/screenshot_full | 3 + 19 files changed, 450 insertions(+), 324 deletions(-) create mode 100644 hypr/config/animations.conf create mode 100644 hypr/config/autostart.conf rename hypr/{theme.conf => config/colors.conf} (62%) create mode 100644 hypr/config/decorations.conf create mode 100644 hypr/config/defaults.conf create mode 100644 hypr/config/environment.conf create mode 100644 hypr/config/input.conf create mode 100644 hypr/config/keybinds.conf create mode 100644 hypr/config/monitor.conf create mode 100644 hypr/config/variables.conf create mode 100644 hypr/config/windowrules.conf create mode 100644 hypr/hyprland.conf delete mode 100644 hypr/hyprland/autostart.conf delete mode 100644 hypr/hyprland/basic.conf delete mode 100644 hypr/hyprland/bind.conf create mode 100755 hypr/scripts/screenshot create mode 100755 hypr/scripts/screenshot_area create mode 100755 hypr/scripts/screenshot_full diff --git a/hypr/config/animations.conf b/hypr/config/animations.conf new file mode 100644 index 0000000..1406989 --- /dev/null +++ b/hypr/config/animations.conf @@ -0,0 +1,15 @@ +# ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ +# ┃ Animations Configuration ┃ +# ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ + +# https://wiki.hyprland.org/0.45.0/Configuring/Animations/ + +animations { + enabled = yes + bezier = overshot, 0.13, 0.99, 0.29, 1.1 + animation = windowsIn, 1, 4, overshot, slide + animation = windowsOut, 1, 5, default, popin 80% + animation = border, 1, 5, default + animation = workspacesIn, 1, 6, overshot, slide + animation = workspacesOut, 1, 6, overshot, slidefade 80% +} diff --git a/hypr/config/autostart.conf b/hypr/config/autostart.conf new file mode 100644 index 0000000..9dfcc50 --- /dev/null +++ b/hypr/config/autostart.conf @@ -0,0 +1,23 @@ +# ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ +# ┃ Autostart Configuration ┃ +# ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ + +source = ~/.config/hypr/config/defaults.conf + +# Autostart wiki https://wiki.hyprland.org/0.45.0/Configuring/Keywords/#executing # +exec-once = swww-daemon +exec-once = waybar & +exec-once = fcitx5 -d & +exec-once = mako & +exec-once = nm-applet --indicator & +exec-once = bash -c "mkfifo /tmp/$HYPRLAND_INSTANCE_SIGNATURE.wob && tail -f /tmp/$HYPRLAND_INSTANCE_SIGNATURE.wob | wob & disown" & +exec-once = /usr/lib/polkit-kde-authentication-agent-1 & + +# ## Slow app launch fix +exec-once = systemctl --user import-environment & +exec-once = hash dbus-update-activation-environment 2>/dev/null & +exec-once = dbus-update-activation-environment --systemd & + +# ## Idle configuration +exec-once = $idlehandler + diff --git a/hypr/theme.conf b/hypr/config/colors.conf similarity index 62% rename from hypr/theme.conf rename to hypr/config/colors.conf index 0855b5d..7aa2630 100644 --- a/hypr/theme.conf +++ b/hypr/config/colors.conf @@ -1,3 +1,17 @@ +# ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ +# ┃ Colors Configuration ┃ +# ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ + +$cachylgreen = rgba(82dcccff) +$cachymgreen = rgba(00aa84ff) +$cachydgreen = rgba(007d6fff) +$cachylblue = rgba(01ccffff) +$cachymblue = rgba(182545ff) +$cachydblue = rgba(111826ff) +$cachywhite = rgba(ffffffff) +$cachygrey = rgba(ddddddff) +$cachygray = rgba(798bb2ff) + # Catpucchin Mocha $rosewater = rgb(f5e0dc) @@ -77,3 +91,4 @@ $mantleAlpha = 181825 $crust = rgb(11111b) $crustAlpha = 11111b + diff --git a/hypr/config/decorations.conf b/hypr/config/decorations.conf new file mode 100644 index 0000000..cb742d0 --- /dev/null +++ b/hypr/config/decorations.conf @@ -0,0 +1,25 @@ +# ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ +# ┃ Decorations Configuration ┃ +# ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ + +source = ~/.config/hypr/config/colors.conf + +# https://wiki.hyprland.org/0.45.0/Configuring/Variables/#decoration + +decoration { + active_opacity = 1 + rounding = 4 + + # https://wiki.hyprland.org/0.45.0/Configuring/Variables/#blur + blur { + size = 15 + passes = 2 # more passes = more resource intensive. + xray = true + } + + # https://wiki.hyprland.org/0.45.0/Configuring/Variables/#shadow + shadow { + enabled = false + } + +} diff --git a/hypr/config/defaults.conf b/hypr/config/defaults.conf new file mode 100644 index 0000000..1ad0233 --- /dev/null +++ b/hypr/config/defaults.conf @@ -0,0 +1,10 @@ +# ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ +# ┃ Defaults Configuration ┃ +# ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ + +$filemanager = thunar +#$applauncher = rofi -show combi -modi window,run,combi -combi-modi window,run +$applauncher = wofi +$terminal = alacritty +$idlehandler = swayidle -w timeout 300 'swaylock -f -c 000000' before-sleep 'swaylock -f -c 000000' +$capturing = grim -g "$(slurp)" - | swappy -f - diff --git a/hypr/config/environment.conf b/hypr/config/environment.conf new file mode 100644 index 0000000..acca543 --- /dev/null +++ b/hypr/config/environment.conf @@ -0,0 +1,7 @@ +# ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ +# ┃ Enviroment Configuration ┃ +# ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ + +envd = HYPRCURSOR_SIZE,24 +envd = XCURSOR_SIZE,24 +envd = QT_CURSOR_SIZE,24 diff --git a/hypr/config/input.conf b/hypr/config/input.conf new file mode 100644 index 0000000..e906aa4 --- /dev/null +++ b/hypr/config/input.conf @@ -0,0 +1,10 @@ +# ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ +# ┃ Input Configuration ┃ +# ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ + +# Input wiki https://wiki.hyprland.org/0.45.0/Configuring/Variables/#input + +input { + follow_mouse = 2 # 0|1|2|3 + float_switch_override_focus = 2 +} diff --git a/hypr/config/keybinds.conf b/hypr/config/keybinds.conf new file mode 100644 index 0000000..df8ce87 --- /dev/null +++ b/hypr/config/keybinds.conf @@ -0,0 +1,154 @@ + +# ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ +# ┃ Keybinds ┃ +# ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ + +source = ~/.config/hypr/config/defaults.conf + +# https://wiki.hyprland.org/Configuring/Binds/ +bindd = $mainMod, RETURN, Opens your preferred terminal emulator ($terminal), exec, $terminal +bindd = $mainMod, E, Opens your preferred filemanager ($filemanager), exec, $filemanager +bindd = $mainMod, A, Screen capture selection, exec, $capturing +bindd = $mainMod, Q, Closes (not kill) current window, killactive, +bindd = $mainMod SHIFT, M, Exits Hyprland by terminating the user sessions, exec, loginctl terminate-user "" +bindd = $mainMod, V, Switches current window between floating and tiling mode, togglefloating, +bindd = $mainMod, SPACE, Runs your application launcher, exec, $applauncher +bindd = $mainMod, F, Toggles current window fullscreen mode, fullscreen +bindd = $mainMod, Y, Pin current window (shows on all workspaces),pin +bindd = $mainMod, J, Toggles curren window split mode, togglesplit, # dwindle + +# ======= Grouping Windows ======= +bindd = $mainMod, K, Toggles current window group mode (ungroup all related), togglegroup, +bindd = $mainMod, Tab, Switches to the next window in the group, changegroupactive, f + +# ======= Toggle Gaps ======= + +bindd = $mainMod SHIFT, G, Set CachyOS default gaps, exec, hyprctl --batch "keyword general:gaps_out 5;keyword general:gaps_in 3" +bindd = $mainMod, G, Remove gaps between window, exec, hyprctl --batch "keyword general:gaps_out 0;keyword general:gaps_in 0" + +# ======= Volume Control ======= + +bindel = , XF86AudioRaiseVolume, exec, pactl set-sink-volume @DEFAULT_SINK@ +5% && pactl get-sink-volume @DEFAULT_SINK@ | grep -oP '\d+(?=%)' | awk '{if($1>100) system("pactl set-sink-volume @DEFAULT_SINK@ 100%")}' && pactl get-sink-volume @DEFAULT_SINK@ | grep -oP '\d+(?=%)' | awk '{print $1}' | head -1 > /tmp/$HYPRLAND_INSTANCE_SIGNATURE.wob # Raise Volume +bindel = , XF86AudioLowerVolume, exec, pactl set-sink-volume @DEFAULT_SINK@ -5% && pactl get-sink-volume @DEFAULT_SINK@ | grep -oP '\d+(?=%)' | awk '{print $1}' | head -1 > /tmp/$HYPRLAND_INSTANCE_SIGNATURE.wob # Lower Volume +bindel = , XF86AudioMute, exec, amixer sset Master toggle | sed -En '/\[on\]/ s/.*\[([0-9]+)%\].*/\1/ p; /\[off\]/ s/.*/0/p' | head -1 > /tmp/$HYPRLAND_INSTANCE_SIGNATURE.wob #Mutes player audio + +# ======= Playback Control ======= + +bindd = , XF86AudioPlay, Toggles play/pause, exec, playerctl play-pause +bindd = , XF86AudioNext, Next track, exec, playerctl next +bindd = , XF86AudioPrev, Previous track, exec, playerctl previous + +# ======= Screen Brightness ======= + +bindel = , XF86MonBrightnessUp, exec, brightnessctl s +5% #Increases brightness 5% +bindel = , XF86MonBrightnessDown, exec, brightnessctl s 5%- #Decreases brightness 5% +bindd = $mainMod SHIFT, P, Runs the calculator application, exec, gnome-calculator +#bindd = $mainMod, L, Lock the screen, exec, swaylock-fancy -e -K -p 10 -f Hack-Regular +bindd = $mainMod, L, Lock the screen, exec, hyprlock +bindd = $mainMod, O, Reload/restarts Waybar, exec, killall -SIGUSR2 waybar + +# ======= Window Actions ======= + +## Move window with mainMod + LMB/RMB and dragging +bindd = $mainMod, mouse:272, Move the window towards a direction, movewindow +## Move window towards a direction +bindd = $mainMod SHIFT, left, Move active window to the left, movewindow, l +bindd = $mainMod SHIFT, right, Move active window to the right, movewindow, r +bindd = $mainMod SHIFT, up, Move active window upwards, movewindow, u +bindd = $mainMod SHIFT, down, Move active window downwards, movewindow, d +## Move focus with mainMod + arrow keys +bindd = $mainMod, left, Move focus to the left, movefocus, l +bindd = $mainMod, right, Move focus to the right, movefocus, r +bindd = $mainMod, up, Move focus upwards, movefocus, u +bindd = $mainMod, down, Move focus downwards, movefocus, d +## Resizing windows +# Activate keyboard window resize mode +# https://wiki.hyprland.org/Configuring/Binds/#submaps +bindd = $mainMod, R, Activates window resizing mode, submap, resize +submap = resize +bindd = , right, Resize to the right (resizing mode), resizeactive, 15 0 +bindd = , left, Resize to the left (resizing mode), resizeactive, -15 0 +bindd = , up, Resize upwards (resizing mode), resizeactive, 0 -15 +bindd = , down, Resize downwards (resizing mode), resizeactive, 0 15 +bindd = , l, Resize to the right (resizing mode), resizeactive, 15 0 +bindd = , h, Resize to the left (resizing mode), resizeactive, -15 0 +bindd = , k, Resize upwards (resizing mode), resizeactive, 0 -15 +bindd = , j, Resize downwards (resizing mode), resizeactive, 0 15 +bindd = , escape, Ends window resizing mode, submap, reset +submap = reset +# Quick resize window with keyboard +# !!! added $mainMod here because CTRL + SHIFT is used for word selection in various text editors +bindd = $mainMod CTRL SHIFT, right, Resize to the right, resizeactive, 15 0 +bindd = $mainMod CTRL SHIFT, left, Resize to the left, resizeactive, -15 0 +bindd = $mainMod CTRL SHIFT, up, Resize upwards, resizeactive, 0 -15 +bindd = $mainMod CTRL SHIFT, down, Resize downwards, resizeactive, 0 15 +bindd = $mainMod CTRL SHIFT, l, Resize to the right, resizeactive, 15 0 +bindd = $mainMod CTRL SHIFT, h, Resize to the left, resizeactive, -15 0 +bindd = $mainMod CTRL SHIFT, k, Resize upwards, resizeactive, 0 -15 +bindd = $mainMod CTRL SHIFT, j, Resize downwards, resizeactive, 0 15 +# Resize window with mainMod + LMB/RMB and dragging +bindm = $mainMod, mouse:273, resizewindow #Resize the window towards a direction +bindm = $mainMod, mouse:272, movewindow #Drag window +## Resizing Windows End # +## Move active window to a workspace with $mainMod + CTRL + [0-9] +bindd = $mainMod CTRL, 1, Move window and switch to workspace 1, movetoworkspace, 1 +bindd = $mainMod CTRL, 2, Move window and switch to workspace 2, movetoworkspace, 2 +bindd = $mainMod CTRL, 3, Move window and switch to workspace 3, movetoworkspace, 3 +bindd = $mainMod CTRL, 4, Move window and switch to workspace 4, movetoworkspace, 4 +bindd = $mainMod CTRL, 5, Move window and switch to workspace 5, movetoworkspace, 5 +bindd = $mainMod CTRL, 6, Move window and switch to workspace 6, movetoworkspace, 6 +bindd = $mainMod CTRL, 7, Move window and switch to workspace 7, movetoworkspace, 7 +bindd = $mainMod CTRL, 8, Move window and switch to workspace 8, movetoworkspace, 8 +bindd = $mainMod CTRL, 9, Move window and switch to workspace 9, movetoworkspace, 9 +bindd = $mainMod CTRL, 0, Move window and switch to workspace 10, movetoworkspace, 10 +bindd = $mainMod CTRL, left, Move window and switch to the next workspace, movetoworkspace, -1 +bindd = $mainMod CTRL, right, Move window and switch to the previous workspace, movetoworkspace, +1 +## Same as above, but doesn't switch to the workspace +bindd = $mainMod SHIFT, 1, Move window silently to workspace 1, movetoworkspacesilent, 1 +bindd = $mainMod SHIFT, 2, Move window silently to workspace 2, movetoworkspacesilent, 2 +bindd = $mainMod SHIFT, 3, Move window silently to workspace 3, movetoworkspacesilent, 3 +bindd = $mainMod SHIFT, 4, Move window silently to workspace 4, movetoworkspacesilent, 4 +bindd = $mainMod SHIFT, 5, Move window silently to workspace 5, movetoworkspacesilent, 5 +bindd = $mainMod SHIFT, 6, Move window silently to workspace 6, movetoworkspacesilent, 6 +bindd = $mainMod SHIFT, 7, Move window silently to workspace 7, movetoworkspacesilent, 7 +bindd = $mainMod SHIFT, 8, Move window silently to workspace 8, movetoworkspacesilent, 8 +bindd = $mainMod SHIFT, 9, Move window silently to workspace 9, movetoworkspacesilent, 9 +bindd = $mainMod SHIFT, 0, Move window silently to workspace 10, movetoworkspacesilent, 10 +# Window actions End # + +# ======= Workspace Actions ======= + +# Switch workspaces with mainMod + [0-9] +bindd = $mainMod, 1, Switch to workspace 1, workspace, 1 +bindd = $mainMod, 2, Switch to workspace 2, workspace, 2 +bindd = $mainMod, 3, Switch to workspace 3, workspace, 3 +bindd = $mainMod, 4, Switch to workspace 4, workspace, 4 +bindd = $mainMod, 5, Switch to workspace 5, workspace, 5 +bindd = $mainMod, 6, Switch to workspace 6, workspace, 6 +bindd = $mainMod, 7, Switch to workspace 7, workspace, 7 +bindd = $mainMod, 8, Switch to workspace 8, workspace, 8 +bindd = $mainMod, 9, Switch to workspace 9, workspace, 9 +bindd = $mainMod, 0, Switch to workspace 10, workspace, 10 +# Scroll through existing workspaces with mainMod + , or . +bindd = $mainMod, PERIOD, Scroll through workspaces incrementally, workspace, e+1 +bindd = $mainMod, COMMA, Scroll through workspaces decrementally, workspace, e-1 +# With $mainMod + scroll +bindd = $mainMod, mouse_down, Scroll through workspaces incrementally, workspace, e+1 +bindd = $mainMod, mouse_up, Scroll through workspaces decrementally, workspace, e-1 +bindd = $mainMod, slash, Switch to the previous workspace, workspace, previous +# Special workspaces (scratchpads) +bindd = $mainMod, minus, Move active window to Special workspace, movetoworkspace,special +bindd = $mainMod, equal, Toggles the Special workspace, togglespecialworkspace, special +bindd = $mainMod, F1, Call special workspace scratchpad, togglespecialworkspace, scratchpad +bindd = $mainMod ALT SHIFT, F1, Move active window to special workspace scratchpad, movetoworkspacesilent, special:scratchpad + +# ======= Additional Settings ======= + +# https://wiki.hyprland.org/Configuring/Binds +binds { + allow_workspace_cycles = 1 + workspace_back_and_forth = 1 + workspace_center_on = 1 + movefocus_cycles_fullscreen = true + window_direction_monitor_fallback = true +} diff --git a/hypr/config/monitor.conf b/hypr/config/monitor.conf new file mode 100644 index 0000000..afbc3d4 --- /dev/null +++ b/hypr/config/monitor.conf @@ -0,0 +1,16 @@ +# ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ +# ┃ Monitor Configuration ┃ +# ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ + +# Monitor wiki https://wiki.hyprland.org/0.45.0/Configuring/Monitors/ + +monitor = , preferred, auto, 1.25 + + +# If you need to scale things like steam etc, please uncomment these lines. +# Adjust GDK_SCALE accordingly to your liking. +#xwayland { +# force_zero_scaling = true # Unscale XWayland +#} + +#env = GDK_SCALE, 1.25 # GDK Scaling Factor diff --git a/hypr/config/variables.conf b/hypr/config/variables.conf new file mode 100644 index 0000000..113e3e7 --- /dev/null +++ b/hypr/config/variables.conf @@ -0,0 +1,80 @@ +# ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ +# ┃ Variables Configuration ┃ +# ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ + +source = ~/.config/hypr/config/colors.conf + +# Variables wiki https://wiki.hyprland.org/0.45.0/Configuring/Variables/ # +# https://wiki.hyprland.org/0.45.0/Configuring/Variables/#general +general { + + gaps_in = 3 + gaps_out = 5 + border_size = 3 + col.active_border = $cachylgreen + col.inactive_border = $cachymblue + layout = dwindle # master|dwindle + + # https://wiki.hyprland.org/0.45.0/Configuring/Variables/#snap + snap { + enabled = true + } + +} + +# https://wiki.hyprland.org/0.45.0/Configuring/Variables/#gestures +gestures { + workspace_swipe = true + workspace_swipe_fingers = 4 + workspace_swipe_distance = 250 + workspace_swipe_min_speed_to_force = 15 + workspace_swipe_create_new = false +} + +# https://wiki.hyprland.org/0.45.0/Configuring/Variables/#group +group { + col.border_active = $cachydgreen + col.border_inactive = $cachylgreen + col.border_locked_active = $cachymgreen + col.border_locked_inactive = $cachydblue + + # https://wiki.hyprland.org/0.45.0/Configuring/Variables/#groupbar + groupbar { + font_family = "Fira Sans" + text_color = $cachydblue + col.active = $cachydgreen + col.inactive = $cachylgreen + col.locked_active = $cachymgreen + col.locked_inactive = $cachydblue + } +} +# https://wiki.hyprland.org/0.45.0/Configuring/Variables/#misc +misc { + font_family = "Fira Sans" + splash_font_family = "Fira Sans" + disable_hyprland_logo = true + col.splash = $cachylgreen + background_color = $cachydblue + enable_swallow = true + swallow_regex = ^(cachy-browser|firefox|nautilus|nemo|thunar|btrfs-assistant.)$ + focus_on_activate = true + vrr = 2 +} + +# https://wiki.hyprland.org/0.45.0/Configuring/Variables/#render +render { + direct_scanout = true +} + +# See https://wiki.hyprland.org/0.45.0/Configuring/Dwindle-Layout/ for more +dwindle { + special_scale_factor = 0.8 + pseudotile = true # master switch for pseudotiling. Enabling is bound to mainMod + P in the keybinds section below + preserve_split = true +} + +# See https://wiki.hyprland.org/0.45.0/Configuring/Master-Layout/ for more +master { + new_status = master + special_scale_factor = 0.8 +} diff --git a/hypr/config/windowrules.conf b/hypr/config/windowrules.conf new file mode 100644 index 0000000..d8f8973 --- /dev/null +++ b/hypr/config/windowrules.conf @@ -0,0 +1,62 @@ +# ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ +# ┃ Windowrules Configuration ┃ +# ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ + +# Windows Rules https://wiki.hyprland.org/0.45.0/Configuring/Window-Rules/ # + +# Float Necessary Windows +windowrule = float, class:^(org.pulseaudio.pavucontrol) +windowrule = float, class:^()$,title:^(Picture in picture)$ +windowrule = float, class:^()$,title:^(Save File)$ +windowrule = float, class:^()$,title:^(Open File)$ +windowrule = float, class:^(LibreWolf)$,title:^(Picture-in-Picture)$ +windowrule = float, class:^(blueman-manager)$ +windowrule = float, class:^(xdg-desktop-portal-gtk|xdg-desktop-portal-kde|xdg-desktop-portal-hyprland)(.*)$ +windowrule = float, class:^(polkit-gnome-authentication-agent-1|hyprpolkitagent|org.org.kde.polkit-kde-authentication-agent-1)(.*)$ +windowrule = float, class:^(CachyOSHello)$ +windowrule = float, class:^(zenity)$ +windowrule = float, class:^()$,title:^(Steam - Self Updater)$ +# Increase the opacity +windowrule = opacity 0.92, class:^(thunar|nemo)$ +windowrule = opacity 0.96, class:^(discord|armcord|webcord)$ +windowrule = opacity 0.95, title:^(QQ|Telegram)$ +windowrule = opacity 0.95, title:^(NetEase Cloud Music Gtk4)$ +# General window rules +windowrule = float, title:^(Picture-in-Picture)$ +windowrule = size 960 540, title:^(Picture-in-Picture)$ +windowrule = move 25%-, title:^(Picture-in-Picture)$ +windowrule = float, title:^(imv|mpv|danmufloat|termfloat|nemo|ncmpcpp)$ +windowrule = move 25%-, title:^(imv|mpv|danmufloat|termfloat|nemo|ncmpcpp)$ +windowrule = size 960 540, title:^(imv|mpv|danmufloat|termfloat|nemo|ncmpcpp)$ +windowrule = pin, title:^(danmufloat)$ +windowrule = rounding 5, title:^(danmufloat|termfloat)$ +windowrule = animation slide right, class:^(kitty|Alacritty)$ +windowrule = noblur, class:^(org.mozilla.firefox)$ +# Decorations related to floating windows on workspaces 1 to 10 +windowrule = bordersize 2, floating:1, onworkspace:w[fv1-10] +windowrule = bordercolor $cachylblue, floating:1, onworkspace:w[fv1-10] +windowrule = rounding 8, floating:1, onworkspace:w[fv1-10] +# Decorations related to tiling windows on workspaces 1 to 10 +windowrule = bordersize 3, floating:0, onworkspace:f[1-10] +windowrule = rounding 4, floating:0, onworkspace:f[1-10] +# Windows Rules End # + +# Workspaces Rules https://wiki.hyprland.org/0.45.0/Configuring/Workspace-Rules/ # +# workspace = 1, default:true, monitor:$priMon +# workspace = 6, default:true, monitor:$secMon +# Workspace selectors https://wiki.hyprland.org/0.45.0/Configuring/Workspace-Rules/#workspace-selectors +# workspace = r[1-5], monitor:$priMon +# workspace = r[6-10], monitor:$secMon +# workspace = special:scratchpad, on-created-empty:$applauncher +# no_gaps_when_only deprecated instead workspaces rules with selectors can do the same +# Smart gaps from 0.45.0 https://wiki.hyprland.org/0.45.0/Configuring/Workspace-Rules/#smart-gaps +workspace = w[tv1-10], gapsout:5, gapsin:3 +workspace = f[1], gapsout:5, gapsin:3 +# Workspaces Rules End # + +# Layers Rules # +layerrule = animation slide top, logout_dialog +# layerrule = animation popin 50%, waybar +layerrule = animation slide down, waybar +layerrule = animation fade 50%, wallpaper +# Layers Rules End # diff --git a/hypr/hyprland.conf b/hypr/hyprland.conf new file mode 100644 index 0000000..3a45025 --- /dev/null +++ b/hypr/hyprland.conf @@ -0,0 +1,22 @@ +# ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ +# ┃ CachyOS Hyprland Configuration ┃ +# ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ + +$mainMod = SUPER + +# ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ +# ┃ Source Files ┃ +# ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ +source = ~/.config/hypr/config/animations.conf +source = ~/.config/hypr/config/autostart.conf +source = ~/.config/hypr/config/decorations.conf +source = ~/.config/hypr/config/environment.conf +source = ~/.config/hypr/config/input.conf +source = ~/.config/hypr/config/keybinds.conf +source = ~/.config/hypr/config/monitor.conf +source = ~/.config/hypr/config/variables.conf +source = ~/.config/hypr/config/windowrules.conf + +# Modifying these configs can be done by creating a user defined config in the home directory, e.g. +## ~/.config/hypr/config/user-config.conf +# source = ~/.config/hypr/config/user-config.conf diff --git a/hypr/hyprland/autostart.conf b/hypr/hyprland/autostart.conf deleted file mode 100644 index 907a5b7..0000000 --- a/hypr/hyprland/autostart.conf +++ /dev/null @@ -1,9 +0,0 @@ -exec-once = fcitx5 -d -r -exec-once = nm-applet -exec-once = swayosd-server -exec-once = swww-daemon -exec-once = swww restore -exec-once = xprop -root -f _XWAYLAND_GLOBAL_OUTPUT_SCALE 32c -set _XWAYLAND_GLOBAL_OUTPUT_SCALE $SCALE -exec-once = waybar - -# exec-once = sleep 1 && strawberry diff --git a/hypr/hyprland/basic.conf b/hypr/hyprland/basic.conf deleted file mode 100644 index 66bedbc..0000000 --- a/hypr/hyprland/basic.conf +++ /dev/null @@ -1,136 +0,0 @@ -source = ~/.config/hypr/theme.conf - -animations { - enabled = true - bezier = liner, 1, 1, 1, 1 - bezier = overshot, 0.13, 0.99, 0.29, 1.1 - bezier = wind, 0.05, 0.9, 0.1, 1.05 - bezier = winIn, 0.1, 1.1, 0.1, 1.1 - animation = windows, 1, 6, wind, slide - animation = windowsIn, 1, 7, winIn, slide - animation = windowsOut, 1, 7, default, popin 80% - animation = windowsMove, 1, 5, wind, slide - animation = border, 1, 1, liner - animation = fade, 1, 10, default - animation = workspaces, 1, 8, default, slidefade 20% - animation = specialWorkspaceIn, 1, 8, default, fade - animation = specialWorkspaceOut, 1, 8, default, fade -} - - -debug { - suppress_errors = true - watchdog_timeout = 0 -} - - -decoration { - active_opacity = 1.0 - blur { - enabled = false - } - dim_inactive = false - fullscreen_opacity = 1.0 - inactive_opacity = 1.0 - rounding = 4 - shadow { - enabled = false - } -} - - -ecosystem { - no_donation_nag = true - no_update_news = true -} - - -env = XDG_SESSION_DESKTOP, Hyprland - - -general { - gaps_in = 1 - gaps_out = 1 - border_size = 1 - col.active_border = $lavender - col.inactive_border = $base - layout = hy3 -} - - -gestures { - workspace_swipe = true - workspace_swipe_fingers = 3 - workspace_swipe_distance = 250 - workspace_swipe_invert = true - workspace_swipe_min_speed_to_force = 15 - workspace_swipe_cancel_ratio = 0.5 - workspace_swipe_create_new = false -} - - -input { - follow_mouse = 1 - float_switch_override_focus = 2 - kb_layout = $KEYBOARDLAYOUT - numlock_by_default = false - sensitivity = 0 - touchpad { - disable_while_typing = true - natural_scroll = true - scroll_factor = 0.5 - } -} - - -misc { - always_follow_on_dnd = true - disable_autoreload = true - disable_hyprland_logo = true - disable_hyprland_qtutils_check = true; - disable_splash_rendering = true; - disable_xdg_env_checks = true; - enable_anr_dialog = false; - enable_swallow = true - focus_on_activate = true - initial_workspace_tracking = 0 - key_press_enables_dpms = false - layers_hog_keyboard_focus = true - mouse_move_enables_dpms = false - vfr = true -} - - -plugin { - hy3 { - no_gaps_when_only = 1 - node_collapse_policy = 1 - group_inset = 10 - tab_first_window = true - tabs { - col.active = rgb(b4befe) - col.active.border = rgb(313244) - col.active.text = rgb(181825) - col.inactive = rgb(181825) - col.inactive.border = rgb(313244) - col.inactive.text = rgb(b4befe) - col.urgent = rgb(f2cdcd) - col.urgent.border = rgb(313244) - col.urgent.text = rgb(181825) - from_top = false - height = 14 - padding = 2 - render_text = true - rounding = 6 - text_center = true - text_font = Sarasa Gothic SC - text_height = 10 - text_padding = 0 - } - } -} - - -xwayland { - force_zero_scaling = true -} diff --git a/hypr/hyprland/bind.conf b/hypr/hyprland/bind.conf deleted file mode 100644 index e450e49..0000000 --- a/hypr/hyprland/bind.conf +++ /dev/null @@ -1,178 +0,0 @@ -## bind settings -binds { - workspace_back_and_forth = 1 - allow_workspace_cycles = 1 -} - - -## App Launcher -bindr = ALT, SPACE, exec, fuzzel - - -## Restart some programs -### Input Tool -bind = Ctrl_ALT, I, exec, pkill fcitx5 -9;sleep 1;fcitx5 -d --replace; sleep 1;fcitx5-remote -r -### Notification Manager -bind = Ctrl_ALT, N, exec, swaync-client -rs -### Status Bar -bind = Ctrl_ALT, B, exec, pkill waybar;sleep 1;waybar # Status Bar - - -## Shortcuts -### File Explorer -bind = SUPER, E, exec, nemo -### Logout Menu -bind = CTRL_SUPER, Q, exec, wlogout -### Terminal Emulator -bind = SUPER, T, exec, alacritty -### Screenshot (Area Mod) -bind = SUPER, S, exec, sh ~/.config/waybar/scripts/Screenshot-Area.sh -### Screenshot (Fullscreen Mod) -bind = SUPER_ALT, S, exec, sh ~/.config/waybar/scripts/Screenshot-Fullscreen.sh -### Screenshot (Window Mod) -bind = SUPER_CTRL, S, exec, sh ~/.config/waybar/scripts/Screenshot-Hyprland-Window.sh -### Screenshot (OCR Mod) -bind = SUPER_CTRL_ALT, S, exec, sh ~/.config/waybar/scripts/Screenshot-OCR.sh - - -## Window actions -bind = SUPER, F, fullscreen -bind = SUPER, Q, hy3:killactive - -## Window actions (bonus) -bind = SUPER_SHIFT, F, togglefloating - - -## Workspace jumping -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 - - -## Window movement between Workspace -### without switching to the Workspace -bind = SUPER_CTRL, 1, movetoworkspacesilent, 1 -bind = SUPER_CTRL, 2, movetoworkspacesilent, 2 -bind = SUPER_CTRL, 3, movetoworkspacesilent, 3 -bind = SUPER_CTRL, 4, movetoworkspacesilent, 4 -bind = SUPER_CTRL, 5, movetoworkspacesilent, 5 -bind = SUPER_CTRL, 6, movetoworkspacesilent, 6 -bind = SUPER_CTRL, 7, movetoworkspacesilent, 7 -bind = SUPER_CTRL, 8, movetoworkspacesilent, 8 -bind = SUPER_CTRL, 9, movetoworkspacesilent, 9 -bind = SUPER_CTRL, 0, movetoworkspacesilent, 10 - -### also switching to the Workspace -bind = SUPER_SHIFT, 1, movetoworkspace, 1 -bind = SUPER_SHIFT, 2, movetoworkspace, 2 -bind = SUPER_SHIFT, 3, movetoworkspace, 3 -bind = SUPER_SHIFT, 4, movetoworkspace, 4 -bind = SUPER_SHIFT, 5, movetoworkspace, 5 -bind = SUPER_SHIFT, 6, movetoworkspace, 6 -bind = SUPER_SHIFT, 7, movetoworkspace, 7 -bind = SUPER_SHIFT, 8, movetoworkspace, 8 -bind = SUPER_SHIFT, 9, movetoworkspace, 9 -bind = SUPER_SHIFT, 0, movetoworkspace, 10 - -bind = SUPER_SHIFT, mouse_down, movetoworkspace, -1 -bind = SUPER_SHIFT, mouse_up, movetoworkspace, +1 - -bind = SUPER_SHIFT, mouse:275, movetoworkspace, e+1 -bind = SUPER_SHIFT, mouse:276, movetoworkspace, e-1 - - -### Special Workspace -bind = SUPER, Grave, togglespecialworkspace -bind = SUPER_CTRL, Grave, movetoworkspacesilent, special -bind = SUPER_SHIFT, Grave, movetoworkspace, special - - -## Workspace movement -bind = SUPER_CTRL, left, workspace, -1 -bind = SUPER_CTRL, right, workspace, +1 - -### Using Vim-like keys -bind = SUPER_CTRL, H, workspace, -1 -bind = SUPER_CTRL, L, workspace, +1 - -## Window focus movement -### Using Alt+Tab -bind = ALT, Tab, hy3:movefocus, r -bind = ALT_SHIFT, Tab, hy3:movefocus, l - -### Using Arrow keys -bind = SUPER, left, hy3:movefocus,l -bind = SUPER, right, hy3:movefocus,r -bind = SUPER, up, hy3:movefocus,u -bind = SUPER, down, hy3:movefocus,d - -### Using Vim-like keys -bind = SUPER_Alt, H, hy3:movefocus, l -bind = SUPER_Alt, L, hy3:movefocus, r -bind = SUPER_Alt, K, hy3:movefocus, u -bind = SUPER_Alt, J, hy3:movefocus, d - - -## Window direction movement -### Using Arrow keys -bind = SUPER_SHIFT, left, hy3:movewindow,l -bind = SUPER_SHIFT, right, hy3:movewindow,r -bind = SUPER_SHIFT, up, hy3:movewindow,u -bind = SUPER_SHIFT, down, hy3:movewindow,d - -### Using Vim-like keys -bind = SUPER_SHIFT, H, hy3:movefocus, l -bind = SUPER_SHIFT, L, hy3:movefocus, r -bind = SUPER_SHIFT, K, hy3:movefocus, u -bind = SUPER_SHIFT, J, hy3:movefocus, d - - -## Some smart actions with Mouse -bindm = SUPER, mouse:272, movewindow -bindm = SUPER, mouse:273, resizewindow - -bind = SUPER, mouse_down, workspace, -1 -bind = SUPER, mouse_up, workspace, +1 - -bind = SUPER, mouse:275, workspace, e+1 -bind = SUPER, mouse:276, workspace, e-1 - -### hy3 bonus -bindn = , mouse:272, hy3:focustab, mouse -bindn = , mouse_down, hy3:focustab, l, require_hovered -bindn = , mouse_up, hy3:focustab, r, require_hovered - - -## Brightness control -bindel = , XF86MonBrightnessUp, exec, swayosd-client --brightness +5 -bindel = , XF86MonBrightnessDown, exec, swayosd-client --brightness -5 - - -## Playback control -bindl = ,XF86AudioPlay,exec, playerctl play-pause -bindl = ,XF86AudioNext,exec, playerctl next -bindl = ,XF86AudioPrev,exec, playerctl previous - -### Playback control (bonus) -bindl = CONTROL_ALT, Return, exec, playerctl play-pause -bindl = CONTROL_ALT, right, exec, playerctl next -bindl = CONTROL_ALT, left, exec, playerctl previous - - -## Volume control -bindel = ,XF86AudioRaiseVolume, exec, swayosd-client --output-volume +2 -bindel = ,XF86AudioLowerVolume, exec, swayosd-client --output-volume -2 -bindl = ,XF86AudioMicMute, exec, swayosd-client --input-volume mute-toggle -bindl = ,XF86AudioMute, exec, swayosd-client --output-volume mute-toggle - - -## Volume control (bonus) -bindel = CONTROL_ALT, up, exec, swayosd-client --output-volume +2 -bindel = CONTROL_ALT, down, exec, swayosd-client --output-volume -2 diff --git a/hypr/hyprlock.conf b/hypr/hyprlock.conf index a8212e1..d339698 100644 --- a/hypr/hyprlock.conf +++ b/hypr/hyprlock.conf @@ -1,4 +1,4 @@ -source = $HOME/.config/hypr/theme.conf +source = $HOME/.config/hypr/config/colors.conf $accent = $mauve $accentAlpha = $mauveAlpha @@ -75,3 +75,4 @@ input-field { halign = center valign = center } + diff --git a/hypr/scripts/screenshot b/hypr/scripts/screenshot new file mode 100755 index 0000000..ecc11b9 --- /dev/null +++ b/hypr/scripts/screenshot @@ -0,0 +1,3 @@ +#!/usr/bin/bash +grim -g "$(slurp)" - | wl-copy -t image/png +notify-send "Screenshot copied to clipboard" diff --git a/hypr/scripts/screenshot_area b/hypr/scripts/screenshot_area new file mode 100755 index 0000000..52218e2 --- /dev/null +++ b/hypr/scripts/screenshot_area @@ -0,0 +1,3 @@ +#!/usr/bin/bash +grimblast copy area || exit +notify-send "Screenshot copied to clipboard" diff --git a/hypr/scripts/screenshot_full b/hypr/scripts/screenshot_full new file mode 100755 index 0000000..0608891 --- /dev/null +++ b/hypr/scripts/screenshot_full @@ -0,0 +1,3 @@ +#!/usr/bin/bash +grimblast copy output || exit +notify-send "Screenshot copied to clipboard"