diff options
Diffstat (limited to 'arch/hyprland/.config/hypr')
| -rw-r--r-- | arch/hyprland/.config/hypr/hypridle.conf | 32 | ||||
| -rw-r--r-- | arch/hyprland/.config/hypr/hyprland.conf | 86 | ||||
| -rw-r--r-- | arch/hyprland/.config/hypr/hyprlock.conf | 52 | ||||
| -rw-r--r-- | arch/hyprland/.config/hypr/keybinds.conf | 106 | ||||
| -rw-r--r-- | arch/hyprland/.config/hypr/monitors.conf | 8 | ||||
| -rw-r--r-- | arch/hyprland/.config/hypr/theme.conf | 7 | ||||
| -rw-r--r-- | arch/hyprland/.config/hypr/windowrules.conf | 62 |
7 files changed, 353 insertions, 0 deletions
diff --git a/arch/hyprland/.config/hypr/hypridle.conf b/arch/hyprland/.config/hypr/hypridle.conf new file mode 100644 index 0000000..c6e2ac8 --- /dev/null +++ b/arch/hyprland/.config/hypr/hypridle.conf @@ -0,0 +1,32 @@ +general { + lock_cmd = pidof hyprlock || hyprlock + before_sleep_cmd = loginctl lock-session + after_sleep_cmd = hyprctl dispatch dpms on + ignore_dbus_inhibit = false +} + +# Dim screen after 2.5 min +listener { + timeout = 150 + on-timeout = brightnessctl -s set 10% + on-resume = brightnessctl -r +} + +# Lock after 5 min +listener { + timeout = 300 + on-timeout = loginctl lock-session +} + +# Display off after 5.5 min +listener { + timeout = 330 + on-timeout = hyprctl dispatch dpms off + on-resume = hyprctl dispatch dpms on +} + +# Suspend after 30 min +listener { + timeout = 1800 + on-timeout = systemctl suspend +} diff --git a/arch/hyprland/.config/hypr/hyprland.conf b/arch/hyprland/.config/hypr/hyprland.conf new file mode 100644 index 0000000..65c7338 --- /dev/null +++ b/arch/hyprland/.config/hypr/hyprland.conf @@ -0,0 +1,86 @@ +source = ~/.config/hypr/monitors.conf +source = ~/.config/hypr/theme.conf +source = ~/.config/hypr/keybinds.conf +source = ~/.config/hypr/windowrules.conf + +# NVIDIA +env = WLR_NO_HARDWARE_CURSORS,1 +env = EGL_PLATFORM,wayland +env = OZONE_PLATFORM,wayland +env = XCURSOR_SIZE,24 +env = XCURSOR_THEME,Bibata-Modern-Classic + +general { + layout = dwindle + gaps_in = 3 + gaps_out = 3 + border_size = 2 + # border colors are in theme.conf +} + +dwindle { + pseudotile = true + preserve_split = true +} + +input { + kb_layout = us + follow_mouse = 1 + special_fallthrough = true + touchpad { + natural_scroll = false + } +} + +binds { + movefocus_cycles_fullscreen = 1 +} + +cursor { + no_hardware_cursors = 1 +} + +misc { + disable_hyprland_logo = true + disable_splash_rendering = true + font_family = JetBrainsMono Nerd Font + vfr = 1 + vrr = 1 + enable_swallow = true +} + +decoration { + rounding = 4 + active_opacity = 1.0 + inactive_opacity = 0.92 + blur { + enabled = true + size = 6 + passes = 3 + vibrancy = 0.2 + special = true + new_optimizations = true + } + shadow { + enabled = true + range = 4 + render_power = 3 + } +} + +animations { + enabled = true + bezier = myBezier, 0.05, 0.97, 0.05, 0.97 + animation = windows, 1, 4, myBezier + animation = windowsOut, 1, 4, default, popin 80% + animation = fade, 1, 4, default + animation = workspaces, 1, 4, default +} + +exec-once = awww-daemon +exec-once = mako +exec-once = hypridle +exec-once = /usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1 +exec-once = eww daemon && eww open bar +exec-once = bash -c 'sleep 0.5; [ -f ~/.cache/wallust/last-wallpaper ] && ~/.local/bin/set-wallpaper "$(cat ~/.cache/wallust/last-wallpaper)"' +exec-once = spicetify watch -s diff --git a/arch/hyprland/.config/hypr/hyprlock.conf b/arch/hyprland/.config/hypr/hyprlock.conf new file mode 100644 index 0000000..24dd752 --- /dev/null +++ b/arch/hyprland/.config/hypr/hyprlock.conf @@ -0,0 +1,52 @@ +general { + hide_cursor = true + no_fade_in = false + disable_loading_bar = true + ignore_empty_input = true +} + +background { + monitor = + # Wallust: replace with path = ~/.cache/wallust/last-wallpaper + path = screenshot + blur_passes = 3 + blur_size = 7 + brightness = 0.5 +} + +label { + monitor = + text = cmd[update:1000] date +"%-H:%M" + font_size = 72 + font_family = JetBrainsMono Nerd Font + color = rgba(cdd6f4ff) + position = 0, 200 + halign = center + valign = center +} + +label { + monitor = + text = cmd[update:60000] date +"%A, %B %d" + font_size = 18 + font_family = JetBrainsMono Nerd Font + color = rgba(cdd6f4cc) + position = 0, 120 + halign = center + valign = center +} + +input-field { + monitor = + size = 300, 48 + outline_thickness = 2 + outer_color = rgba(cdd6f4ff) + inner_color = rgba(1e1e2ecc) + font_color = rgba(cdd6f4ff) + fade_on_empty = true + placeholder_text = Password + font_family = JetBrainsMono Nerd Font + position = 0, -80 + halign = center + valign = center +} diff --git a/arch/hyprland/.config/hypr/keybinds.conf b/arch/hyprland/.config/hypr/keybinds.conf new file mode 100644 index 0000000..2f00c8f --- /dev/null +++ b/arch/hyprland/.config/hypr/keybinds.conf @@ -0,0 +1,106 @@ +$mainMod = SUPER + +# ── Core ────────────────────────────────────────────────────────────────────── +bind = $mainMod, Q, exec, ghostty +bind = $mainMod, C, killactive +bind = $mainMod, J, togglesplit +bind = $mainMod CTRL, V, togglefloating +bind = $mainMod, F, fullscreen, 1 +bind = $mainMod CTRL, F, fullscreen, 0 +bind = $mainMod SHIFT, L, exec, loginctl lock-session +bind = $mainMod, R, exec, ~/.local/bin/launcher +bind = $mainMod, W, exec, ghostty --class=float-term -e ~/.local/bin/pick-wallpaper +bind = $mainMod SHIFT, F, exec, zen-browser + +# Keyboard pointer modes (wl-kbptr) +bind = $mainMod, G, exec, pkill wl-kbptr || true; wl-kbptr -o modes=floating,click -o mode_floating.source=detect +bind = $mainMod, M, exec, pkill wl-kbptr || true; wl-kbptr -o modes=tile,bisect,click + +# Clipboard +bind = $mainMod SHIFT, V, exec, cliphist list | bemenu | cliphist decode | wl-copy + +# ── Focus movement ──────────────────────────────────────────────────────────── +bind = $mainMod, left, movefocus, l +bind = $mainMod, right, movefocus, r +bind = $mainMod, up, movefocus, u +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 + +# ── Mouse scroll wheel movement ─────────────────────────────────────────────── +binde = $mainMod, B, exec, ydotool mousemove --wheel -- 0 1 +binde = $mainMod, V, exec, ydotool mousemove --wheel -- 0 -1 + +# ── Workspaces ──────────────────────────────────────────────────────────────── +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 + +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 + +bind = $mainMod, mouse_down, workspace, e+1 +bind = $mainMod, mouse_up, workspace, e-1 + +# ── Special workspaces (scratchpads) ───────────────────────────────────────── +bind = $mainMod, S, togglespecialworkspace, magic +bind = $mainMod SHIFT, S, movetoworkspace, special:magic + +# ── Screenshots ─────────────────────────────────────────────────────────────── +bind = , Print, exec, grim -g "$(slurp)" - | wl-copy +bind = $mainMod, Print, exec, grim - | wl-copy +bind = $mainMod SHIFT, Print, exec, grim -g "$(hyprctl activewindow -j | jq -r '"\(.at[0]),\(.at[1]) \(.size[0])x\(.size[1])"')" - | wl-copy + +# ── Resize submap ───────────────────────────────────────────────────────────── +bind = $mainMod CTRL, R, submap, resize + +submap = resize +binde = , h, resizeactive, -20 0 +binde = , j, resizeactive, 0 20 +binde = , k, resizeactive, 0 -20 +binde = , l, resizeactive, 20 0 +binde = , left, resizeactive, -20 0 +binde = , down, resizeactive, 0 20 +binde = , up, resizeactive, 0 -20 +binde = , right, resizeactive, 20 0 +bind = , Escape, submap, reset +bind = , Return, submap, reset +bind = , catchall, submap, reset +submap = reset + +# ── Mouse window management ─────────────────────────────────────────────────── +bindm = $mainMod, mouse:272, movewindow +bindm = $mainMod CTRL, mouse:272, movewindow +bindm = $mainMod, mouse:273, resizewindow + +# ── Media keys ──────────────────────────────────────────────────────────────── +bindl = , XF86AudioPlay, exec, playerctl play-pause +bindl = , XF86AudioNext, exec, playerctl next +bindl = , XF86AudioPrev, exec, playerctl previous +bindl = , XF86AudioMute, exec, pamixer -t + +bindle = , XF86AudioRaiseVolume, exec, pamixer -i 5 +bindle = , XF86AudioLowerVolume, exec, pamixer -d 5 +bindle = , XF86MonBrightnessUp, exec, brightnessctl set +5% +bindle = , XF86MonBrightnessDown, exec, brightnessctl set 5%- + +bind = $mainMod, F2, exec, brightnessctl -d asus::kbd_backlight set 1- +bind = $mainMod, F3, exec, brightnessctl -d asus::kbd_backlight set +1 +bind = $mainMod, F4, exec, asusctl aura effect --next-mode diff --git a/arch/hyprland/.config/hypr/monitors.conf b/arch/hyprland/.config/hypr/monitors.conf new file mode 100644 index 0000000..6acb585 --- /dev/null +++ b/arch/hyprland/.config/hypr/monitors.conf @@ -0,0 +1,8 @@ +# Laptop screen +monitor = desc:BOE NE160WUM-NX2, 1920x1200@165, 0x0, 1 + +# Fallback for any other connected display +monitor = , preferred, auto, 1 + +# Multi-monitor: uncomment and configure when adding external display +# monitor = desc:YOUR_MONITOR_DESC, 1920x1080@144, auto, 1, transform, 1 diff --git a/arch/hyprland/.config/hypr/theme.conf b/arch/hyprland/.config/hypr/theme.conf new file mode 100644 index 0000000..0107198 --- /dev/null +++ b/arch/hyprland/.config/hypr/theme.conf @@ -0,0 +1,7 @@ +# Theme / color configuration — generated by wallust +# Run set-wallpaper <path> to regenerate +# +# If ~/.cache/wallust/hyprland-colors.conf doesn't exist yet (first boot), +# the fallback colors below are used until you set a wallpaper. + +source = ~/.cache/wallust/hyprland-colors.conf diff --git a/arch/hyprland/.config/hypr/windowrules.conf b/arch/hyprland/.config/hypr/windowrules.conf new file mode 100644 index 0000000..6778846 --- /dev/null +++ b/arch/hyprland/.config/hypr/windowrules.conf @@ -0,0 +1,62 @@ +# ── Spotify transparency ────────────────────────────────────────────────────── +# Barely-noticeable opacity lets Hyprland's compositor blur show wallpaper +# bleed-through behind the CSS rgba panels in the spicetify theme. +windowrule { + name = spotify-transparency + match:class = Spotify + opacity = 0.90 override +} + +# ── Floating terminal (Super+Q with float-term class) ───────────────────────── +windowrule { + name = float-term + match:class = float-term + float = true + center = true + stay_focused = true + size = 900 600 +} + +# ── Wallpaper picker ───────────────────────────────────────────────────────── +windowrule { + name = wallpaper-picker + match:class = wallpaper-picker + float = true + center = true + size = 1200 700 +} + +# ── bemenu launcher window ──────────────────────────────────────────────────── +windowrule { + name = launcher + match:class = launcher + float = true + center = true + size = 800 500 +} + +# ── Suppress maximize requests ──────────────────────────────────────────────── +windowrule { + name = suppress-maximize + match:class = .* + suppress_event = maximize +} + +# ── Fix XWayland drag artifacts ─────────────────────────────────────────────── +windowrule { + name = fix-xwayland-drags + match:class = ^$ + match:title = ^$ + match:xwayland = true + match:float = true + match:fullscreen = false + match:pin = false + no_focus = true +} + +# ── Inhibit idle when fullscreen ───────────────────────────────────────────── +windowrule { + name = no-idle-fullscreen + match:fullscreen = true + idle_inhibit = fullscreen +} |