From dee36c277cc9459e2c4b03eca0d509e0630e48bb Mon Sep 17 00:00:00 2001 From: Michael Beck Date: Wed, 12 Mar 2025 21:20:52 +0100 Subject: [PATCH] Adds cachyos standard hyprland dotfiles --- .config/hypr/config/animations.conf | 15 +++ .config/hypr/config/autostart.conf | 23 ++++ .config/hypr/config/colors.conf | 13 +++ .config/hypr/config/decorations.conf | 25 +++++ .config/hypr/config/defaults.conf | 9 ++ .config/hypr/config/environment.conf | 7 ++ .config/hypr/config/input.conf | 11 ++ .config/hypr/config/keybinds.conf | 153 +++++++++++++++++++++++++++ .config/hypr/config/monitor.conf | 16 +++ .config/hypr/config/variables.conf | 80 ++++++++++++++ .config/hypr/config/windowrules.conf | 63 +++++++++++ .config/hypr/hyprland.conf | 22 ++++ .config/hypr/scripts/screenshot | 3 + .config/hypr/scripts/screenshot_area | 3 + .config/hypr/scripts/screenshot_full | 3 + 15 files changed, 446 insertions(+) create mode 100644 .config/hypr/config/animations.conf create mode 100644 .config/hypr/config/autostart.conf create mode 100644 .config/hypr/config/colors.conf create mode 100644 .config/hypr/config/decorations.conf create mode 100644 .config/hypr/config/defaults.conf create mode 100644 .config/hypr/config/environment.conf create mode 100644 .config/hypr/config/input.conf create mode 100644 .config/hypr/config/keybinds.conf create mode 100644 .config/hypr/config/monitor.conf create mode 100644 .config/hypr/config/variables.conf create mode 100644 .config/hypr/config/windowrules.conf create mode 100644 .config/hypr/hyprland.conf create mode 100755 .config/hypr/scripts/screenshot create mode 100755 .config/hypr/scripts/screenshot_area create mode 100755 .config/hypr/scripts/screenshot_full diff --git a/.config/hypr/config/animations.conf b/.config/hypr/config/animations.conf new file mode 100644 index 0000000..1406989 --- /dev/null +++ b/.config/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/.config/hypr/config/autostart.conf b/.config/hypr/config/autostart.conf new file mode 100644 index 0000000..e664c67 --- /dev/null +++ b/.config/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 = swaybg -o \* -i /usr/share/wallpapers/cachyos-wallpapers/Skyscraper.png -m fill +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 -c ~/.config/hypr/wob.ini & 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/.config/hypr/config/colors.conf b/.config/hypr/config/colors.conf new file mode 100644 index 0000000..5f3a3ef --- /dev/null +++ b/.config/hypr/config/colors.conf @@ -0,0 +1,13 @@ +# ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ +# ┃ 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) diff --git a/.config/hypr/config/decorations.conf b/.config/hypr/config/decorations.conf new file mode 100644 index 0000000..cb742d0 --- /dev/null +++ b/.config/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/.config/hypr/config/defaults.conf b/.config/hypr/config/defaults.conf new file mode 100644 index 0000000..91d8db2 --- /dev/null +++ b/.config/hypr/config/defaults.conf @@ -0,0 +1,9 @@ +# ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ +# ┃ Defaults Configuration ┃ +# ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ + +$filemanager = +$applauncher = rofi -show combi -modi window,run,combi -combi-modi window,run +$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/.config/hypr/config/environment.conf b/.config/hypr/config/environment.conf new file mode 100644 index 0000000..acca543 --- /dev/null +++ b/.config/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/.config/hypr/config/input.conf b/.config/hypr/config/input.conf new file mode 100644 index 0000000..979859f --- /dev/null +++ b/.config/hypr/config/input.conf @@ -0,0 +1,11 @@ +# ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ +# ┃ Input Configuration ┃ +# ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ + +# Input wiki https://wiki.hyprland.org/0.45.0/Configuring/Variables/#input + +input { + kb_layout = de + follow_mouse = 2 # 0|1|2|3 + float_switch_override_focus = 2 +} diff --git a/.config/hypr/config/keybinds.conf b/.config/hypr/config/keybinds.conf new file mode 100644 index 0000000..4fe94a2 --- /dev/null +++ b/.config/hypr/config/keybinds.conf @@ -0,0 +1,153 @@ + +# ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ +# ┃ 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%")}' # Raise Volume +bindel = , XF86AudioLowerVolume, exec, pactl set-sink-volume @DEFAULT_SINK@ -5% # 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, 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/.config/hypr/config/monitor.conf b/.config/hypr/config/monitor.conf new file mode 100644 index 0000000..d1eff56 --- /dev/null +++ b/.config/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 + + +# 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/.config/hypr/config/variables.conf b/.config/hypr/config/variables.conf new file mode 100644 index 0000000..113e3e7 --- /dev/null +++ b/.config/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/.config/hypr/config/windowrules.conf b/.config/hypr/config/windowrules.conf new file mode 100644 index 0000000..a453f41 --- /dev/null +++ b/.config/hypr/config/windowrules.conf @@ -0,0 +1,63 @@ +# ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ +# ┃ Windowrules Configuration ┃ +# ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ + +# Windows Rules https://wiki.hyprland.org/0.45.0/Configuring/Window-Rules/ # + +# Float Necessary Windows +windowrule = float, Rofi +windowrulev2 = float, class:^(org.pulseaudio.pavucontrol) +windowrulev2 = float, class:^()$,title:^(Picture in picture)$ +windowrulev2 = float, class:^()$,title:^(Save File)$ +windowrulev2 = float, class:^()$,title:^(Open File)$ +windowrulev2 = float, class:^(LibreWolf)$,title:^(Picture-in-Picture)$ +windowrulev2 = float, class:^(blueman-manager)$ +windowrulev2 = float, class:^(xdg-desktop-portal-gtk|xdg-desktop-portal-kde|xdg-desktop-portal-hyprland)(.*)$ +windowrulev2 = float, class:^(polkit-gnome-authentication-agent-1|hyprpolkitagent|org.org.kde.polkit-kde-authentication-agent-1)(.*)$ +windowrulev2 = float, class:^(CachyOSHello)$ +windowrulev2 = float, class:^(zenity)$ +windowrulev2 = float, class:^()$,title:^(Steam - Self Updater)$ +# Increase the opacity +windowrulev2 = opacity 0.92, class:^(thunar|nemo)$ +windowrulev2 = opacity 0.96, class:^(discord|armcord|webcord)$ +windowrulev2 = opacity 0.95, title:^(QQ|Telegram)$ +windowrulev2 = opacity 0.95, title:^(NetEase Cloud Music Gtk4)$ +# General window rules +windowrulev2 = float, title:^(Picture-in-Picture)$ +windowrulev2 = size 960 540, title:^(Picture-in-Picture)$ +windowrulev2 = move 25%-, title:^(Picture-in-Picture)$ +windowrulev2 = float, title:^(imv|mpv|danmufloat|termfloat|nemo|ncmpcpp)$ +windowrulev2 = move 25%-, title:^(imv|mpv|danmufloat|termfloat|nemo|ncmpcpp)$ +windowrulev2 = size 960 540, title:^(imv|mpv|danmufloat|termfloat|nemo|ncmpcpp)$ +windowrulev2 = pin, title:^(danmufloat)$ +windowrulev2 = rounding 5, title:^(danmufloat|termfloat)$ +windowrulev2 = animation slide right, class:^(kitty|Alacritty)$ +windowrulev2 = noblur, class:^(org.mozilla.firefox)$ +# Decorations related to floating windows on workspaces 1 to 10 +windowrulev2 = bordersize 2, floating:1, onworkspace:w[fv1-10] +windowrulev2 = bordercolor $cachylblue, floating:1, onworkspace:w[fv1-10] +windowrulev2 = rounding 8, floating:1, onworkspace:w[fv1-10] +# Decorations related to tiling windows on workspaces 1 to 10 +windowrulev2 = bordersize 3, floating:0, onworkspace:f[1-10] +windowrulev2 = 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/.config/hypr/hyprland.conf b/.config/hypr/hyprland.conf new file mode 100644 index 0000000..6c493fd --- /dev/null +++ b/.config/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/.config/hypr/scripts/screenshot b/.config/hypr/scripts/screenshot new file mode 100755 index 0000000..ecc11b9 --- /dev/null +++ b/.config/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/.config/hypr/scripts/screenshot_area b/.config/hypr/scripts/screenshot_area new file mode 100755 index 0000000..52218e2 --- /dev/null +++ b/.config/hypr/scripts/screenshot_area @@ -0,0 +1,3 @@ +#!/usr/bin/bash +grimblast copy area || exit +notify-send "Screenshot copied to clipboard" diff --git a/.config/hypr/scripts/screenshot_full b/.config/hypr/scripts/screenshot_full new file mode 100755 index 0000000..0608891 --- /dev/null +++ b/.config/hypr/scripts/screenshot_full @@ -0,0 +1,3 @@ +#!/usr/bin/bash +grimblast copy output || exit +notify-send "Screenshot copied to clipboard"