From 79fea1ad0896721db4b123b6cf66dfad8e785389 Mon Sep 17 00:00:00 2001 From: Aram Markarov Date: Thu, 25 Dec 2025 21:50:39 +0100 Subject: [PATCH] setup hypr git repo --- hypridle.conf | 16 +++++++ hyprland.conf | 6 +++ hyprlock.conf | 99 ++++++++++++++++++++++++++++++++++++++++ modules/binds.conf | 63 +++++++++++++++++++++++++ modules/executes.conf | 14 ++++++ modules/macchiato.conf | 77 +++++++++++++++++++++++++++++++ modules/monitors.conf | 7 +++ modules/settings.conf | 71 ++++++++++++++++++++++++++++ modules/windowrules.conf | 15 ++++++ scripts/hyprpanel.sh | 22 +++++++++ 10 files changed, 390 insertions(+) create mode 100644 hypridle.conf create mode 100644 hyprland.conf create mode 100644 hyprlock.conf create mode 100644 modules/binds.conf create mode 100644 modules/executes.conf create mode 100644 modules/macchiato.conf create mode 100644 modules/monitors.conf create mode 100644 modules/settings.conf create mode 100644 modules/windowrules.conf create mode 100755 scripts/hyprpanel.sh diff --git a/hypridle.conf b/hypridle.conf new file mode 100644 index 0000000..23fe11e --- /dev/null +++ b/hypridle.conf @@ -0,0 +1,16 @@ +general { + lock_cmd = pidof hyprlock || uwsm-app hyprlock + before_sleep_cmd = loginctl lock-session + after_sleep_cmd = hyprctl dispatch dpms on +} + +listener { + timeout = 620 + on-timeout = hyprctl dispatch dpms off + on-resume = hyprctl dispatch dpms on +} + +listener { + timeout = 86400 + on-timeout = systemctl hibernate +} diff --git a/hyprland.conf b/hyprland.conf new file mode 100644 index 0000000..89c1aa8 --- /dev/null +++ b/hyprland.conf @@ -0,0 +1,6 @@ +source = ./modules/macchiato.conf +source = ./modules/settings.conf +source = ./modules/binds.conf +source = ./modules/executes.conf +source = ./modules/windowrules.conf +source = ./modules/monitors.conf diff --git a/hyprlock.conf b/hyprlock.conf new file mode 100644 index 0000000..d2497c5 --- /dev/null +++ b/hyprlock.conf @@ -0,0 +1,99 @@ +source = $HOME/.config/hypr/modules/macchiato.conf + +$accent = $mauve +$accentAlpha = $mauveAlpha + +# GENERAL +general { + hide_cursor = true +} + +# BACKGROUND +background { + monitor = + path = $HOME/.config/background + blur_passes = 0 + color = $base +} + +# LAYOUT +label { + monitor = + text = Layout: $LAYOUT + color = $text + font_size = 25 + font_family = $font + position = 30, -30 + halign = left + valign = top +} + +# TIME +label { + monitor = + text = $TIME + color = $text + font_size = 90 + font_family = $font + position = -30, 0 + halign = right + valign = top +} + +# DATE +label { + monitor = + text = cmd[update:43200000] date +"%A, %d %B %Y" + color = $text + font_size = 25 + font_family = 0XProto Nerd Font + position = -30, -150 + halign = right + valign = top +} + +# FINGERPRINT +{ + monitor = ""; + text = "$FPRINTPROMPT"; + color = "$text"; + font_size = 14; + font_family = font; + position = "0, -107"; + halign = "center"; + valign = "center"; +} + +# USER AVATAR +image { + monitor = + path = $HOME/.face + size = 100 + border_color = $accent + position = 0, 75 + halign = center + valign = center +} + +# INPUT FIELD +input-field { + monitor = + size = 300, 60 + outline_thickness = 4 + dots_size = 0.2 + dots_spacing = 0.2 + dots_center = true + outer_color = $accent + inner_color = $surface0 + font_color = $text + fade_on_empty = false + placeholder_text = 󰌾 Logged in as $USER + hide_input = false + check_color = $accent + fail_color = $red + fail_text = $FAIL ($ATTEMPTS) + capslock_color = $yellow + position = 0, -47 + halign = center + valign = center +} diff --git a/modules/binds.conf b/modules/binds.conf new file mode 100644 index 0000000..d65a7dd --- /dev/null +++ b/modules/binds.conf @@ -0,0 +1,63 @@ +bindm = SUPER,mouse:272,movewindow +bindm = SUPER,mouse:273,resizewindow + +bind = SUPER,RETURN,exec, uwsm app -S out -- wezterm +bind = SUPER,Q,killactive +bind = SUPER,M,exit +bind = SUPER,E,exec, uwsm app -S out -- thunar +bind = SUPER,S,togglefloating +bind = SUPER,P,pseudo +bind = SUPER,B,exec, uwsm app -S out -- firefox +bind = SUPER,I,exec, uwsm app -S out -- hyprlock + +bind = SUPER,H,movefocus,l +bind = SUPER,L,movefocus,r +bind = SUPER,K,movefocus,u +bind = SUPER,J,movefocus,d +binde = SUPER SHIFT,L,resizeactive, 50 0 +binde = SUPER SHIFT,H,resizeactive, -50 0 +binde = SUPER SHIFT,K,resizeactive, 0 -50 +binde = SUPER SHIFT,J,resizeactive, 0 50 + +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 = ALT,1,movetoworkspace,1 +bind = ALT,2,movetoworkspace,2 +bind = ALT,3,movetoworkspace,3 +bind = ALT,4,movetoworkspace,4 +bind = ALT,5,movetoworkspace,5 +bind = ALT,6,movetoworkspace,6 +bind = ALT,7,movetoworkspace,7 +bind = ALT,8,movetoworkspace,8 +bind = ALT,9,movetoworkspace,9 +bind = ALT,0,movetoworkspace,10 +bind = SUPER,mouse_down,workspace,e+1 +bind = SUPER,mouse_up,workspace,e-1 +bind = SUPER,g,togglegroup +bind = SUPER,tab,changegroupactive + +bind = SUPER, F,fullscreen +bind = SUPER, D, exec, fuzzel --launch-prefix="uwsm app -- " +bindel = , XF86AudioRaiseVolume, exec, uwsm-app -S out -- wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%+ +bindel = , XF86AudioLowerVolume, exec, uwsm-app -S out -- wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%- +bindel = , XF86AudioMute, exec, uwsm-app -S out -- wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle +bindel = , F14, exec, uwsm-app -S out -- wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle +bindel = , F15, exec, uwsm-app -S out -- wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle +bindel = , F17, exec, uwsm-app -S out -- wpctl set-volume @DEFAULT_AUDIO_SOURCE@ 5%+ +bindel = , F16, exec, uwsm-app -S out -- wpctl set-volume @DEFAULT_AUDIO_SOURCE@ 5%- + +bindl = , XF86AudioPlay, exec, uwsm-app -S out -- playerctl play-pause +bindl = , XF86AudioPrev, exec, uwsm-app -S out -- playerctl previous +bindl = , XF86AudioNext, exec, uwsm-app -S out -- playerctl next + +bind = , PRINT, exec, uwsm-app -S out -- hyprshot -m region + +bind = SUPER, Y, exec, pkill .hyprpanel-wrap && hyprpanel & diff --git a/modules/executes.conf b/modules/executes.conf new file mode 100644 index 0000000..249fb4d --- /dev/null +++ b/modules/executes.conf @@ -0,0 +1,14 @@ +exec-once = dispwin -d 1 color_profiles/1440p\ monitor.icm +exec-once = uwsm app -S out -- swww-daemon +exec-once = uwsm app -S out -- hyprpanel +exec-once = uwsm app -S out -- AyuGram +exec-once = uwsm app -S out -- teams-for-linux +exec-once = uwsm app -S out -- vesktop +exec-once = uwsm app -S out -- steam -silent +exec-once = uwsm app -S out -- thunderbird +exec-once = uwsm app -S out -- fcitx5 +exec-once = uwsm app -S out -- wl-paste --type text --watch cliphist store +exec-once = uwsm app -S out -- wl-paste --type image --watch cliphist store +exec-once = uwsm app -S out -- hypridle +exec-once = uwsm app -S out -- nextcloud --background +exec-once = systemctl --user start hyprpolkitagent.service diff --git a/modules/macchiato.conf b/modules/macchiato.conf new file mode 100644 index 0000000..a179511 --- /dev/null +++ b/modules/macchiato.conf @@ -0,0 +1,77 @@ +$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 diff --git a/modules/monitors.conf b/modules/monitors.conf new file mode 100644 index 0000000..8b66aa3 --- /dev/null +++ b/modules/monitors.conf @@ -0,0 +1,7 @@ +monitor= DP-2, 2560x1440@240, 2160x0, 1, bitdepth, 10, cm, srgb +monitor = DP-3, 3840x2160@60, 0x0, 1, bitdepth, 10, transform, 1 + +render { + cm_auto_hdr = 0 + cm_fs_passthrough = 1 +} diff --git a/modules/settings.conf b/modules/settings.conf new file mode 100644 index 0000000..f434c17 --- /dev/null +++ b/modules/settings.conf @@ -0,0 +1,71 @@ +input { + kb_layout = us + kb_variant = + kb_model = + kb_options = fkeys:basic_13-24 + kb_rules = + sensitivity = 0 + accel_profile = flat + follow_mouse = 1 +} + +general { + gaps_in = 4 + gaps_out = 6 + border_size = 3 + col.active_border = $sky $teal $green $blue $lavender 90deg + col.inactive_border = $crust 90deg +} + +decoration { + rounding = 5 + shadow { + enabled = true + range = 25 + render_power = 5 + color = $base + color_inactive = $mantle + } + blur { + enabled = true + size = 2 + passes = 3 + new_optimizations = on + ignore_opacity = true + contrast = 1.0 + brightness = 1.0 + vibrancy = 0 + vibrancy_darkness = 0 + xray = false + noise = 0.05 + popups = true + input_methods = true + } + +} + +animations { + enabled = 1 + bezier = overshot,0.13,0.99,0.29,1.1 + animation = windows,1,4,overshot,slide + animation = border,1,10,default + animation = fade,1,10,default + animation = workspaces,1,6,overshot,slidevert +} + +dwindle { #laptop specific + pseudotile = true + preserve_split = true +} + +ecosystem { + no_update_news = true +} + +misc { + disable_hyprland_logo = true +} + +debug { + full_cm_proto = true +} diff --git a/modules/windowrules.conf b/modules/windowrules.conf new file mode 100644 index 0000000..f17553b --- /dev/null +++ b/modules/windowrules.conf @@ -0,0 +1,15 @@ +windowrule = opacity 0.0 override, class:^(xwaylandvideobridge)$ +windowrule = noanim, class:^(xwaylandvideobridge)$ +windowrule = noinitialfocus, class:^(xwaylandvideobridge)$ +windowrule = maxsize 1 1, class:^(xwaylandvideobridge)$ +windowrule = noblur, class:^(xwaylandvideobridge)$ +windowrule = nofocus, class:^(xwaylandvideobridge)$ + +windowrule = noblur, class:^(org.gnome.Nautilus)$ +windowrulev2 = idleinhibit fullscreen, class:.* +windowrule = idleinhibit always, content:video +windowrule = idleinhibit always, content:game +windowrule = idleinhibit always, fullscreenstate:client 2 +windowrule = idleinhibit always, fullscreenstate:internal 2 + + diff --git a/scripts/hyprpanel.sh b/scripts/hyprpanel.sh new file mode 100755 index 0000000..44d5e38 --- /dev/null +++ b/scripts/hyprpanel.sh @@ -0,0 +1,22 @@ +#!/usr/bin/env bash + +PANEL_CMD="hyprpanel" +PANEL_KILL="pkill .hyprpanel-wrap" + +while true; do + ACTIVE_WS=$(hyprctl -j activeworkspace | jq '.id') + + CLIENTS_ON_WS=$(hyprctl -j clients \ + | jq "[.[] | select(.workspace.id == $ACTIVE_WS)] | length") + + if [ "$CLIENTS_ON_WS" -gt 0 ]; then + # Workspace is NOT empty → kill panel + pgrep -f .hyprpanel-wrap >/dev/null && $PANEL_KILL + else + # Workspace is empty → launch panel + pgrep -f .hyprpanel-wrap >/dev/null || $PANEL_CMD & + fi + + sleep 0.5 +done +