From 72e3d7e0003110716244fa2ab926039b21b28dc7 Mon Sep 17 00:00:00 2001 From: Henrik Hautakoski Date: Sat, 4 Apr 2026 14:23:09 +0200 Subject: [PATCH] add hyperland config again --- hypr/hypridle.conf | 26 ++++ hypr/hyprland.conf | 217 +++++++++++++++++++++++++++++++++ hypr/hyprlock.conf | 90 ++++++++++++++ hypr/hyprpaper.conf | 5 + hypr/hyprtoolkit.conf | 9 ++ hypr/scripts/focus-or-start.sh | 13 ++ 6 files changed, 360 insertions(+) create mode 100644 hypr/hypridle.conf create mode 100644 hypr/hyprland.conf create mode 100644 hypr/hyprlock.conf create mode 100644 hypr/hyprpaper.conf create mode 100644 hypr/hyprtoolkit.conf create mode 100755 hypr/scripts/focus-or-start.sh diff --git a/hypr/hypridle.conf b/hypr/hypridle.conf new file mode 100644 index 0000000..094e5bb --- /dev/null +++ b/hypr/hypridle.conf @@ -0,0 +1,26 @@ + +general { + lock_cmd = pidof hyprlock || hyprlock # avoid starting multiple hyprlock instances. + # before_sleep_cmd = loginctl lock-session # lock before suspend. + # after_sleep_cmd = hyprctl dispatch dpms on # to avoid having to press a key twice to turn on the display. +} + +# Turn screen off after 5 min +listener { + timeout = 300 + on-timeout = hyprctl dispatch dpms off + on-resume = hyprctl dispatch dpms on && brightnessctl -r +} + +# Lock screen after 10 min +listener { + timeout = 600 + on-timeout = loginctl lock-session +} + + +# Suspend after 30 min +# listener { +# timeout = 1800 +# on-timeout = systemctl suspend +# } diff --git a/hypr/hyprland.conf b/hypr/hyprland.conf new file mode 100644 index 0000000..413220a --- /dev/null +++ b/hypr/hyprland.conf @@ -0,0 +1,217 @@ + +# Variables +# ----------------------------------------- + +# monitors +$mainMonitor=DP-2 +$secondMonitor=HDMI-A-1 + +# colors +$color_border = rgb(1a1c2d) +$color_active_border = $color_border +$color_inactive_border = $color_border + +# Set programs that you use +$terminal = alacritty +$menu = rofi -show drun +$run_prog = rofi -show run +$screenshot = grim -g "$(slurp)" - | wl-copy +$focusOrStart = .config/hypr/scripts/focus-or-start.sh + +# Settings +# ----------------------------------------- + +# Some default env vars. +env = XCURSOR_THEME,Qogir +env = XCURSOR_SIZE,24 +env = QT_QPA_PLATFORMTHEME,qt5ct # change to qt6ct if you have that +env = WLR_NO_HARDWARE_CURSORS,1 + +## Nvidia stuff +env = LIBVA_DRIVER_NAME,nvidia +env = __GLX_VENDOR_LIBRARY_NAME,nvidia + +general { + gaps_in = 0,0,-1,-1 + gaps_out = -1 + border_size = 1 + col.active_border = $color_active_border + col.inactive_border = $color_inactive_border + layout = dwindle + allow_tearing = false + resize_on_border = false +} + +input { + kb_layout = pnx-us-se + # kb_variant = + # kb_model = + # kb_options = + # kb_rules = + + follow_mouse = 1 + accel_profile = flat + force_no_accel = true +} + +cursor { + no_hardware_cursors = true + enable_hyprcursor = true + + # Dont hide my cursor! + hide_on_key_press = false +} + +decoration { + rounding = 0 + active_opacity = 1.0 + inactive_opacity = 1.0 + dim_inactive = false + dim_strength = 0.1 + + blur { + enabled = true + size = 4 + passes = 2 + popups = true + ignore_opacity = false + } + + shadow { + enabled = false + } +} + +animations { + enabled = yes + animation = windows, 1, 2, default + animation = border, 0 + animation = borderangle, 0 + animation = fade, 1, 1, default + animation = workspaces, 1, 2, default +} + +dwindle { + pseudotile = no # master switch for pseudotiling. + preserve_split = false +} + +misc { + # disable the anime mascot wallpapers + force_default_wallpaper = 0 + # Disable hyperland logo and splash + disable_hyprland_logo = true + disable_splash_rendering = true + # Set background color instead. + background_color = 0x000000 + # Disable autoreload as i can reload myself. + disable_autoreload = true +} + +debug { + overlay = false + disable_logs = false +} + +ecosystem { + no_update_news = true + no_donation_nag = true +} + +# Monitors +# ----------------------------------------- + +# See https://wiki.hyprland.org/Configuring/Monitors/ +#monitor=,preferred,auto,auto +monitor=$mainMonitor,preferred,0x0,1 +monitor=$secondMonitor,1920x1080@60,760x-1080,1 + +# Workspaces and windows +# ----------------------------------------- + +workspace = 1,monitor:$mainMonitor,default:true +workspace = 2,monitor:$mainMonitor,default:true +workspace = 3,monitor:$mainMonitor,default:true +workspace = 4,monitor:$mainMonitor,default:true +workspace = 5,monitor:$secondMonitor,persistent:true,default:true + +windowrule = match:float 1, opacity 0.9 +windowrule = match:class firefox, workspace 2 +windowrule = match:class class:org.telegram.desktop.*, workspace 5 + +layerrule = match:namespace ^rofi$, no_anim 1 + +# Keybinds +# ----------------------------------------- + +$mainMod = SUPER + +# programs +bind = $mainMod, D, exec, $menu +bind = $mainMod, P, exec, $run_prog +bind = $mainMod, Return, exec, $terminal +bind = $mainMod, T, exec, $focusOrStart "telegram" "org.telegram" +bind = $mainMod, G, exec, $focusOrStart "vivaldi-stable" "vivaldi-stable" +bind = $mainMod, S, exec, $screenshot + +# Windows +bind = $mainMod, X, killactive, +bind = $mainMod, F, togglefloating, +bind = $mainMod, V, togglesplit, # dwindle + +# Move focus with mainMod + arrow keys +bind = $mainMod, left, movefocus, l +bind = $mainMod, H, movefocus, l +bind = $mainMod, right, movefocus, r +bind = $mainMod, L, movefocus, r +bind = $mainMod, up, movefocus, u +bind = $mainMod, K, movefocus, u +bind = $mainMod, down, movefocus, d +bind = $mainMod, J, movefocus, d + +# Switch workspaces with mainMod + [0-9] +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 + +# Move active window to a workspace with mainMod + SHIFT + [0-9] +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 + +# Example special workspace (scratchpad) +#bind = $mainMod, S, togglespecialworkspace, magic +#bind = $mainMod SHIFT, S, movetoworkspace, special:magic + +# Move/resize windows with mainMod + LMB/RMB and dragging +bindm = $mainMod, mouse:272, movewindow +bindm = $mainMod, mouse:273, resizewindow + +# Autostart +# ------------- + +# Hyprland apps +exec-once = hypridle + +# set wallpaper +exec-once=hyprpaper + +# Bar +exec-once=waybar + +# Programs +exec-once=nm-applet +exec-once=nextcloud +exec-once=telegram diff --git a/hypr/hyprlock.conf b/hypr/hyprlock.conf new file mode 100644 index 0000000..cbae601 --- /dev/null +++ b/hypr/hyprlock.conf @@ -0,0 +1,90 @@ +# sample hyprlock.conf +# for more configuration options, refer https://wiki.hyprland.org/Hypr-Ecosystem/hyprlock +# +# rendered text in all widgets supports pango markup (e.g. or tags) +# ref. https://wiki.hyprland.org/Hypr-Ecosystem/hyprlock/#general-remarks +# +# shortcuts to clear password buffer: ESC, Ctrl+U, Ctrl+Backspace +# +# you can get started by copying this config to ~/.config/hypr/hyprlock.conf +# + +$mainMonitor=DP-2 +$font = Monospace +$color_text=rgb(205, 214, 244) +$color_fail=rgb(235, 160, 172) +$color_check=rgb(180, 190, 254) +$color_input=rgb(147, 153, 178) + +general { + hide_cursor = true + ignore_empty_input = true + immediate_render = true +} + +animations { + enabled = true + bezier = linear, 1, 1, 0, 0 + animation = fade, 1, 3, linear + animation = inputFieldColors, 0 + animation = inputFieldFade, 0 + animation = inputFieldWidth, 0 + animation = inputFieldDots, 1, 1, linear +} + +background { + monitor = $mainMonitor + path = screenshot + vibrancy = 0.02 + color = rgb(17, 17, 27) + blur_passes = 5 +} + +input-field { + monitor = $mainMonitor + size = 500, 70 + outline_thickness = 0 + outer_color = rgba(0, 0, 0, 0) + inner_color = rgba(0, 0, 0, 0) + font_color = $color_input + check_color = $color_check + fail_color = $color_fail + swap_font_color = true + fade_on_empty = false + rounding = 0 + placeholder_text = + fail_text = $PAMFAIL ($ATTEMPTS) + + dots_size = 0.4 + dots_spacing = 0.2 + dots_center = true + + position = 0, 0 + halign = center + valign = center +} + +# TIME +label { + monitor = $mainMonitor + text = $TIME # ref. https://wiki.hyprland.org/Hypr-Ecosystem/hyprlock/#variable-substitution + font_size = 90 + color = $color_text + + position = 0, -300 + halign = center + valign = top +} + +# DATE +label { + monitor = $mainMonitor + text = cmd[update:60000] date +"%A, %d %B %Y" # update every 60 seconds + font_size = 25 + color = $color_text + + position = 0, -450 + halign = center + valign = top +} + diff --git a/hypr/hyprpaper.conf b/hypr/hyprpaper.conf new file mode 100644 index 0000000..5259520 --- /dev/null +++ b/hypr/hyprpaper.conf @@ -0,0 +1,5 @@ +wallpaper { + monitor = + path = ~/.local/share/wallpapers/wallpaper.jpeg + fit_mode = fit +} diff --git a/hypr/hyprtoolkit.conf b/hypr/hyprtoolkit.conf new file mode 100644 index 0000000..c2ada9c --- /dev/null +++ b/hypr/hyprtoolkit.conf @@ -0,0 +1,9 @@ + +base = 0xFF0E1019 +alternate_base = 0xFF1A1C2D +background = 0xF00D0F17 +accent = 0xFF1A1C2D +accent_secondary= 0xFFFF0000 +text = 0xffECEEF4 +rounding_small = 5 +rounding_large = 10 diff --git a/hypr/scripts/focus-or-start.sh b/hypr/scripts/focus-or-start.sh new file mode 100755 index 0000000..093d1eb --- /dev/null +++ b/hypr/scripts/focus-or-start.sh @@ -0,0 +1,13 @@ +#!/bin/sh + +execCommand=$1 +className=$2 + +class=$(hyprctl -j clients | jq -r ".[] | select(.class | startswith(\"${className}\")) | .class") + +if [[ $class != "" ]] +then + hyprctl dispatch focuswindow "class:${class}" +else + ${execCommand} & +fi