From df9edd76abe29a91fa801c6c2d79da2cc0c91c55 Mon Sep 17 00:00:00 2001 From: Thierry Pouplier Date: Sat, 20 Sep 2025 14:13:50 -0400 Subject: [PATCH] Hypr config --- hypr/.config/hypr/hypridle.conf | 34 +++ hypr/.config/hypr/hyprland.conf | 361 +++++++++++++++++++++++++++++++ hypr/.config/hypr/hyprlock.conf | 111 ++++++++++ hypr/.config/hypr/hyprpaper.conf | 2 + hypr/.config/hypr/hyprshade.toml | 8 + hypr/.config/hypr/mocha.conf | 78 +++++++ 6 files changed, 594 insertions(+) create mode 100644 hypr/.config/hypr/hypridle.conf create mode 100644 hypr/.config/hypr/hyprland.conf create mode 100644 hypr/.config/hypr/hyprlock.conf create mode 100644 hypr/.config/hypr/hyprpaper.conf create mode 100644 hypr/.config/hypr/hyprshade.toml create mode 100644 hypr/.config/hypr/mocha.conf diff --git a/hypr/.config/hypr/hypridle.conf b/hypr/.config/hypr/hypridle.conf new file mode 100644 index 0000000..dfb64d0 --- /dev/null +++ b/hypr/.config/hypr/hypridle.conf @@ -0,0 +1,34 @@ +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. +} + +listener { + timeout = 300 # 5min. + on-timeout = brightnessctl -s set 10 # set monitor backlight to minimum, avoid 0 on OLED monitor. + on-resume = brightnessctl -r # monitor backlight restore. +} + +# turn off keyboard backlight, comment out this section if you dont have a keyboard backlight. +listener { + timeout = 150 # 2.5min. + on-timeout = brightnessctl -sd rgb:kbd_backlight set 0 # turn off keyboard backlight. + on-resume = brightnessctl -rd rgb:kbd_backlight # turn on keyboard backlight. +} + +listener { + timeout = 600 # 10min + on-timeout = loginctl lock-session # lock screen when timeout has passed +} + +listener { + timeout = 630 # 10.5min + on-timeout = hyprctl dispatch dpms off # screen off when timeout has passed + on-resume = hyprctl dispatch dpms on # screen on when activity is detected after timeout has fired. +} + +listener { + timeout = 1800 # 30min + on-timeout = systemctl suspend # suspend pc +} diff --git a/hypr/.config/hypr/hyprland.conf b/hypr/.config/hypr/hyprland.conf new file mode 100644 index 0000000..f737b5c --- /dev/null +++ b/hypr/.config/hypr/hyprland.conf @@ -0,0 +1,361 @@ +# This is an example Hyprland config file. +# Refer to the wiki for more information. +# https://wiki.hyprland.org/Configuring/Configuring-Hyprland/ + +# Please note not all available settings / options are set here. +# For a full list, see the wiki + +# You can split this configuration into multiple files +# Create your files separately and then link them to this file like this: +# source = ~/.config/hypr/myColors.conf +source = ~/.cache/wal/colors-hyprland.conf + +################ +### MONITORS ### +################ + +# See https://wiki.hyprland.org/Configuring/Monitors/ +# Useful command: +# hyprctl monitors all +## Valkyrie setup +# monitor=eDP-1,highres,auto,2 #3200x1800,0x0,2 +# monitor=HDMI-A-2,2560x1600,auto,1 #1600x0,1 #x-370,1,transform,1 +## Ingenuity setup +monitor=eDP-1,1920x1080,0x0,1 +monitor=DP-3,1920x1080,1920x0,1 # HDMI screen +# Horizontal setup +#monitor=DP-4,1920x1080,-960x-1080,1 # Left screen +#monitor=DP-6,1920x1080,-960x-1080,1 # Left screen +#monitor=DP-5,1920x1080,960x-1080,1 # Right screen +#monitor=DP-7,1920x1080,960x-1080,1 # Right screen +# Vertical setup +monitor=DP-4,1920x1080,0x-1080,1,transform,0 # Left screen +monitor=DP-6,1920x1080,0x-1080,1,transform,0 # Left screen +monitor=DP-5,1920x1080,1920x-1480,1,transform,1 # Right screen +monitor=DP-7,1920x1080,1920x-1480,1,transform,1 # Right screen + +################### +### MY PROGRAMS ### +################### + +# See https://wiki.hyprland.org/Configuring/Keywords/ + +# Set programs that you use +$terminal = kitty +$fileManager = emacsclient -c -a emacs --eval '(dirvish "$HOME")' +$menu = wofi --show drun +$zen = zen-browser +$music = kitty ncspot +$monitoring = kitty btop + +################# +### AUTOSTART ### +################# + +# Autostart necessary processes (like notifications daemons, status bars, etc.) +# Or execute your favorite apps at launch like this: + +# exec-once = $terminal +# exec-once = nm-applet & +exec = hyprshade auto +exec-once = udiskie +exec-once = waybar +exec-once = swww-daemon +exec-once = swaync +exec-once = hypridle +exec-once = hyprlock +exec-once = /usr/bin/emacs --daemon +exec-once = dbus-update-activation-environment --systemd HYPRLAND_INSTANCE_SIGNATURE + +############################# +### ENVIRONMENT VARIABLES ### +############################# + +# See https://wiki.hyprland.org/Configuring/Environment-variables/ + +env = XCURSOR_SIZE,24 +env = HYPRCURSOR_SIZE,24 +env = LIBVA_DRIVER_NAME,nvidia +env = __GLX_VENDOR_LIBRARY_NAME,nvidia +env = WLR_NO_HARDWARE_CURSOR,1 +env = XDG_SESSION_TYPE,wayland +env = GBM_BACKEND,nvidia-drm +env = WLR_RENDERER_ALLOW_SOFTWARE,1 + +##################### +### LOOK AND FEEL ### +##################### + +# Refer to https://wiki.hyprland.org/Configuring/Variables/ + +# https://wiki.hyprland.org/Configuring/Variables/#general +general { + gaps_in = 4.5 + gaps_out = 9 + + border_size = 2 + + # https://wiki.hyprland.org/Configuring/Variables/#variable-types for info about colors + col.active_border = $color1 $color1 $color2 45deg + col.inactive_border = $background + + # Set to true enable resizing windows by clicking and dragging on borders and gaps + resize_on_border = false + + # Please see https://wiki.hyprland.org/Configuring/Tearing/ before you turn this on + allow_tearing = false + + layout = dwindle +} + +# https://wiki.hyprland.org/Configuring/Variables/#decoration +decoration { + rounding = 4 + + # Change transparency of focused and unfocused windows + active_opacity = 0.9 + inactive_opacity = 0.75 + + # https://wiki.hyprland.org/Configuring/Variables/#blur + blur { + enabled = false + # enabled = true + # size = 16 + # passes = 2 + # new_optimizations = true + } + layerrule = blur, waybar +} + +# https://wiki.hyprland.org/Configuring/Variables/#animations +animations { + enabled = true + + # Default animations, see https://wiki.hyprland.org/Configuring/Animations/ for more + + bezier = myBezier, 0.05, 0.9, 0.1, 1.05 + + animation = windows, 1, 2, myBezier + animation = windowsOut, 1, 2, default, popin 80% + animation = border, 1, 2, default + animation = borderangle, 1, 2, default + animation = fade, 1, 2, default + animation = workspaces, 1, 2, default + animation = specialWorkspace, 1, 2, myBezier, slidefadevert -10% +} + +# See https://wiki.hyprland.org/Configuring/Dwindle-Layout/ for more +dwindle { + pseudotile = true # Master switch for pseudotiling. Enabling is bound to mainMod + P in the keybinds section below + preserve_split = true # You probably want this +} + +# See https://wiki.hyprland.org/Configuring/Master-Layout/ for more +master { + new_status = master +} + +# https://wiki.hyprland.org/Configuring/Variables/#misc +misc { + force_default_wallpaper = 0 # Set to 0 or 1 to disable the anime mascot wallpapers + disable_hyprland_logo = true # If true disables the random hyprland logo / anime girl background. :( +} + + +############# +### INPUT ### +############# + +# https://wiki.hyprland.org/Configuring/Variables/#input +input { + kb_layout = us,ca #,halmak + kb_options = grp:win_space_toggle, ctrl:nocaps + # kb_variant = + # kb_model = + # kb_rules = + + follow_mouse = 1 + + sensitivity = 0.5 # -1.0 - 1.0, 0 means no modification. + + touchpad { + natural_scroll = true + disable_while_typing = true + } +} + +# https://wiki.hyprland.org/Configuring/Variables/#gestures +gestures { + # workspace_swipe = false +} + +# Example per-device config +# See https://wiki.hyprland.org/Configuring/Keywords/#per-device-input-configs for more +device { + name = epic-mouse-v1 + sensitivity = -0.5 +} + +################### +### KEYBINDINGS ### +################### + +# See https://wiki.hyprland.org/Configuring/Keywords/ +$mainMod = SUPER # Sets "Windows" key as main modifier + +# Example binds, see https://wiki.hyprland.org/Configuring/Binds/ for more +bind = $mainMod, T, exec, $terminal +bind = $mainMod, D, killactive, +bind = $mainMod SHIFT, Q, exit, +bind = $mainMod, U, exec, ~/ExoKortex/2-Areas/IT/config/scripts/make_all.sh +bind = $mainMod, M, exec, $monitoring +bind = $mainMod, W, exec, $fileManager +bind = $mainMod, V, togglefloating, +bind = $mainMod, R, exec, $menu +bind = $mainMod, Z, exec, $zen +#bind = $mainMod, P, pseudo, # dwindle +bind = $mainMod, P, togglesplit, # dwindle +bind = $mainMod, N, movecurrentworkspacetomonitor, -1 +bind = $mainMod SHIFT, N, movecurrentworkspacetomonitor, +1 +bind = $mainMod, X, swapwindow +bind = $mainMod, B, exec, nerd-dictation begin +bind = $mainMod, G, exec, nerd-dictation end +bind = $mainMod, A, exec, $music +# +# Full screen +bind = SUPER, F, fullscreen + +# Screenshot +bind = , PRINT, exec, hyprshot -m output +bind = $mainMod, PRINT, exec, hyprshot -m window +bind = shift, PRINT, exec, hyprshot -m region + +# hyprlock +bind = $mainMod, o, exec, hyprlock + +# Move focus with mainMod + arrow keys +bind = $mainMod, h, movefocus, l +bind = $mainMod, j, movefocus, d +bind = $mainMod, k, movefocus, u +bind = $mainMod, l, movefocus, r + +# Forward and reverse cycle (to focus floating) +bind = $mainMod, Tab, cyclenext +bind = $mainMod SHIFT, Tab, cyclenext, prev + +# Resize windows +bind = $mainMod CTRL, l, resizeactive, 20 0 +bind = $mainMod CTRL, h, resizeactive, -20 0 +bind = $mainMod CTRL, k, resizeactive, 0 -20 +bind = $mainMod CTRL, j, resizeactive, 0 20 + +# Swap window position +bind = $mainMod SHIFT, h, swapwindow, l +bind = $mainMod SHIFT, j, swapwindow, d +bind = $mainMod SHIFT, k, swapwindow, u +bind = $mainMod SHIFT, l, swapwindow, r + +# Move floating window +bind = $mainMod SHIFT, l, moveactive, 100 0 +bind = $mainMod SHIFT, h, moveactive, -100 0 +bind = $mainMod SHIFT, k, moveactive, 0 -100 +bind = $mainMod SHIFT, j, moveactive, 0 100 + +# 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 +bind = $mainMod, 0, workspace, 10 + +# 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 +bind = $mainMod SHIFT, 0, movetoworkspace, 10 + +# Example special workspace (scratchpad) +bind = $mainMod, S, togglespecialworkspace, magic +bind = $mainMod SHIFT, S, movetoworkspace, special:magic + +# Scroll through existing workspaces with mainMod + scroll +bind = $mainMod, mouse_down, workspace, e+1 +bind = $mainMod, mouse_up, workspace, e-1 + +# Move/resize windows with mainMod + LMB/RMB and dragging +bindm = $mainMod, mouse:272, movewindow +bindm = $mainMod, mouse:273, resizewindow + +# Laptop multimedia keys for volume and LCD brightness +bindel = ,XF86AudioRaiseVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%+ +bindel = ,XF86AudioLowerVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%- +bindel = ,XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle +bindel = ,XF86AudioMicMute, exec, wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle +bindel = ,XF86MonBrightnessUp, exec, brightnessctl s 10%+ +bindel = ,XF86MonBrightnessDown, exec, brightnessctl s 10%- + +# Requires playerctl +bindl = , XF86AudioNext, exec, playerctl next +bindl = , XF86AudioPause, exec, playerctl play-pause +bindl = , XF86AudioPlay, exec, playerctl play-pause +bindl = , XF86AudioPrev, exec, playerctl previous + +# Emacs-everywhere +bind = $mainMod, E, exec, emacsclient --eval '(thanos/type)' +windowrulev2 = float,title:^(emacs-float)$ + +# Play/Pause +# bind = $mainMod, P, exec, playerctl play-pause + +# Next Track +# bind = $mainmod SHIFT, L, exec, playerctl next + +# Previous Track +# bind = $mainmod SHIFT, H, exec, playerctl previous + +# Volume Up (player volume) +# bind = $mainmod , U, exec, playerctl volume 0.05+ + +# Volume Down (player volume) +# bind = $mainmod, D, exec, playerctl volume 0.05- + +# Stop Playback +# bind = $mainmod, S, exec, playerctl stop + +############################## +### WINDOWS AND WORKSPACES ### +############################## + +# See https://wiki.hyprland.org/Configuring/Window-Rules/ for more +# See https://wiki.hyprland.org/Configuring/Workspace-Rules/ for workspace rules + +# Example windowrule v1 +# windowrule = float, ^(kitty)$ + +# Example windowrule v2 +# windowrulev2 = float,class:^(kitty)$,title:^(kitty)$ + +# Ignore maximize requests from apps. You'll probably like this. +windowrulev2 = suppressevent maximize, class:.* + +# Fix some dragging issues with XWayland +windowrulev2 = nofocus,class:^$,title:^$,xwayland:1,floating:1,fullscreen:0,pinned:0 + +workspace = 1, name:short-1, monitor:DP-4 # Left screen +workspace = 2, name:short-2, monitor:DP-4 # Left screen +workspace = 3, name:long-1, monitor:DP-5 # Right screen +workspace = 4, name:long-2, monitor:DP-5 # Right screen +workspace = 5, name:smoll, monitor:eDP-1 # Laptop screen +#workspace = 4, name:windows, monitor:DP-4, on-created-empty:VBoxManage startvm "Windows 11" +#workspace = special:scratchpad, on-created-empty:kitty diff --git a/hypr/.config/hypr/hyprlock.conf b/hypr/.config/hypr/hyprlock.conf new file mode 100644 index 0000000..851ac12 --- /dev/null +++ b/hypr/.config/hypr/hyprlock.conf @@ -0,0 +1,111 @@ +source = $HOME/.cache/wal/colors-hyprland.conf + +general { + ignore_empty_input = true +} + +background { + monitor = + path = $wallpaper + # color = $color1 + + # all these options are taken from hyprland, see https://wiki.hyprland.org/Configuring/Variables/#blur for explanations + blur_size = 4 + blur_passes = 3 # 0 disables blurring + noise = 0.0117 + contrast = 1.3000 # Vibrant!!! + brightness = 0.8000 + vibrancy = 0.2100 + vibrancy_darkness = 0.0 +} + +# Hours +label { + monitor = + text = cmd[update:1000] echo " $(date +"%H") " + color = $color6 + font_size = 112 + font_family = Geist Mono 10 + shadow_passes = 3 + shadow_size = 4 + + position = 0, 220 + halign = center + valign = center +} + +# Minutes +label { + monitor = + text = cmd[update:1000] echo " $(date +"%M") " + color = $color6 + font_size = 112 + font_family = Geist Mono 10 + shadow_passes = 3 + shadow_size = 4 + + position = 0, 80 + halign = center + valign = center +} + +# Today +label { + monitor = + text = cmd[update:18000000] echo " "$(date +'%A')" " + color = $color7 + font_size = 22 + font_family = JetBrainsMono Nerd Font 10 + + position = 0, 30 + halign = center + valign = center +} + +# Week +label { + monitor = + text = cmd[update:18000000] echo " "$(date +'%d %b')" " + color = $color7 + font_size = 18 + font_family = JetBrainsMono Nerd Font 10 + + position = 0, 6 + halign = center + valign = center +} + +# Degrees +label { + monitor = + text = cmd[update:18000000] echo "Feels like $(curl -s 'wttr.in?format=%t' | tr -d '+') " + color = $color7 + font_size = 18 + font_family = Geist Mono 10 + + position = 0, 40 + halign = center + valign = bottom +} + +input-field { + monitor = + size = 250, 50 + outline_thickness = 3 + + dots_size = 0.26 # Scale of input-field height, 0.2 - 0.8 + dots_spacing = 0.64 # Scale of dots' absolute size, 0.0 - 1.0 + dots_center = true + dots_rouding = -1 + + rounding = 22 + outer_color = $color0 + inner_color = $color0 + font_color = $color6 + fade_on_empty = true + placeholder_text = Password... # Text rendered in the input box when it's empty. + + position = 0, 120 + halign = center + valign = bottom +} diff --git a/hypr/.config/hypr/hyprpaper.conf b/hypr/.config/hypr/hyprpaper.conf new file mode 100644 index 0000000..f11abef --- /dev/null +++ b/hypr/.config/hypr/hyprpaper.conf @@ -0,0 +1,2 @@ +preload = ~/.config/wallpapers/tree_bark.jpg +wallpaper = , ~/.config/wallpapers/tree_bark.jpg diff --git a/hypr/.config/hypr/hyprshade.toml b/hypr/.config/hypr/hyprshade.toml new file mode 100644 index 0000000..4cb2fcd --- /dev/null +++ b/hypr/.config/hypr/hyprshade.toml @@ -0,0 +1,8 @@ +[[shades]] +name = "vibrance" +default = true # will be activated when no other shader is scheduled + +[[shades]] +name = "blue-light-filter" +start_time = 19:00:00 +end_time = 06:00:00 diff --git a/hypr/.config/hypr/mocha.conf b/hypr/.config/hypr/mocha.conf new file mode 100644 index 0000000..8ccb56a --- /dev/null +++ b/hypr/.config/hypr/mocha.conf @@ -0,0 +1,78 @@ + +$rosewater = rgb(f5e0dc) +$rosewaterAlpha = f5e0dc + +$flamingo = rgb(f2cdcd) +$flamingoAlpha = f2cdcd + +$pink = rgb(f5c2e7) +$pinkAlpha = f5c2e7 + +$mauve = rgb(cba6f7) +$mauveAlpha = cba6f7 + +$red = rgb(f38ba8) +$redAlpha = f38ba8 + +$maroon = rgb(eba0ac) +$maroonAlpha = eba0ac + +$peach = rgb(fab387) +$peachAlpha = fab387 + +$yellow = rgb(f9e2af) +$yellowAlpha = f9e2af + +$green = rgb(a6e3a1) +$greenAlpha = a6e3a1 + +$teal = rgb(94e2d5) +$tealAlpha = 94e2d5 + +$sky = rgb(89dceb) +$skyAlpha = 89dceb + +$sapphire = rgb(74c7ec) +$sapphireAlpha = 74c7ec + +$blue = rgb(89b4fa) +$blueAlpha = 89b4fa + +$lavender = rgb(b4befe) +$lavenderAlpha = b4befe + +$text = rgb(cdd6f4) +$textAlpha = cdd6f4 + +$subtext1 = rgb(bac2de) +$subtext1Alpha = bac2de + +$subtext0 = rgb(a6adc8) +$subtext0Alpha = a6adc8 + +$overlay2 = rgb(9399b2) +$overlay2Alpha = 9399b2 + +$overlay1 = rgb(7f849c) +$overlay1Alpha = 7f849c + +$overlay0 = rgb(6c7086) +$overlay0Alpha = 6c7086 + +$surface2 = rgb(585b70) +$surface2Alpha = 585b70 + +$surface1 = rgb(45475a) +$surface1Alpha = 45475a + +$surface0 = rgb(313244) +$surface0Alpha = 313244 + +$base = rgb(1e1e2e) +$baseAlpha = 1e1e2e + +$mantle = rgb(181825) +$mantleAlpha = 181825 + +$crust = rgb(11111b) +$crustAlpha = 11111b