From 92b172b0a3aa3c5e49be3bac18ffd5b8ecf9edba Mon Sep 17 00:00:00 2001 From: Tibo De Peuter Date: Mon, 22 Sep 2025 18:26:47 +0200 Subject: [PATCH] feat(hypr): Add dotfiles --- nixos/users/tdpeuter/dotfiles.nix | 5 + stow/hyprland/.config/hypr/docked.conf | 6 + stow/hyprland/.config/hypr/hyprland.conf | 291 +++++++++++++++++++ stow/hyprland/.config/hypr/input-output.conf | 62 ++++ stow/hyprland/.config/hypr/keybinds.conf | 161 ++++++++++ stow/hyprland/.config/hypr/monitors.conf | 10 + stow/hyprland/.config/hypr/undocked.conf | 9 + stow/hyprland/.config/hypr/workspaces.conf | 0 8 files changed, 544 insertions(+) create mode 100644 stow/hyprland/.config/hypr/docked.conf create mode 100644 stow/hyprland/.config/hypr/hyprland.conf create mode 100644 stow/hyprland/.config/hypr/input-output.conf create mode 100644 stow/hyprland/.config/hypr/keybinds.conf create mode 100644 stow/hyprland/.config/hypr/monitors.conf create mode 100644 stow/hyprland/.config/hypr/undocked.conf create mode 100644 stow/hyprland/.config/hypr/workspaces.conf diff --git a/nixos/users/tdpeuter/dotfiles.nix b/nixos/users/tdpeuter/dotfiles.nix index 7c0f06e..d56b93e 100644 --- a/nixos/users/tdpeuter/dotfiles.nix +++ b/nixos/users/tdpeuter/dotfiles.nix @@ -32,6 +32,11 @@ in { recursive = true; source = ../../../stow/git/.config/git; }; + ".config/hypr" = { + inherit (config.sisyphus.desktop.hyprland) enable; + recursive = true; + source = ../../../stow/hyprland/.config/hypr; + }; ".config/kitty" = { enable = false; recursive = true; diff --git a/stow/hyprland/.config/hypr/docked.conf b/stow/hyprland/.config/hypr/docked.conf new file mode 100644 index 0000000..ea4034f --- /dev/null +++ b/stow/hyprland/.config/hypr/docked.conf @@ -0,0 +1,6 @@ +monitor=desc:BOE 0x08CF,1920x1080@60.0,640x3240,1.0 +monitor=desc:Hewlett Packard HP ZR2740w CNT319Y008,2560x1440@59.95,0x1800,1.0 +monitor=desc:Dell Inc. DELL P2214H 29C2937M4YTL,1920x1080@60.0,2560x1800,1.0 +monitor=desc:Dell Inc. DELL P2214H 29C2937M4YTL,transform,1 +monitor=desc:Samsung Electric Company SAMSUNG,1920x1080@60.0,640x0,0.6000000000000001 +monitor=desc:Samsung Electric Company SAMSUNG,disable diff --git a/stow/hyprland/.config/hypr/hyprland.conf b/stow/hyprland/.config/hypr/hyprland.conf new file mode 100644 index 0000000..e692826 --- /dev/null +++ b/stow/hyprland/.config/hypr/hyprland.conf @@ -0,0 +1,291 @@ +# ~/.config/hypr/hyperland.conf + +general { + border_size = 1 + no_border_on_floating = false + + gaps_in = 3 + gaps_out = 5 + gaps_workspaces = 0 + + col.inactive_border = 0xff444444 + col.active_border = 0xffffffff + col.nogroup_border = 0xffff00ff + + layout = dwindle + + no_focus_fallback = true + + resize_on_border = true + extend_border_grab_area = 5 + hover_icon_on_border = true + + allow_tearing = false + + resize_corner = 0 + + snap { + enabled = false + window_gap = 10 + monitor_gap = 10 + border_overlap = false + } +} + +decoration { + rounding = 0 + # rounding_power = 4.0 + + active_opacity = 1.0 + inactive_opacity = 1.0 + fullscreen_opacity = 1.0 + dim_inactive = false + dim_strength = 0.5 + dim_special = 0.2 + dim_around = 0.4 + + blur { + enabled = true + + size = 8 + passes = 1 + noise = 0.01 + contrast = 0.8 + brightness = 0.8 + vibrancy = 0.0 + vibrancy_darkness = 0.0 + + ignore_opacity = true + new_optimizations = true + xray = true + special = false + popups = false + # input_methods = false + } + + shadow { + enabled = false + + range = 4 + render_power = 3 + sharp = false + + ignore_window = true + + color = 0xee1a1a1a + color_inactive = 0xee1a1a1a + # offset = [0,0] + scale = 1.0 + } +} + +animations { + enabled = false + first_launch_animation = true +} + +gestures { + workspace_swipe = true + workspace_swipe_fingers = 3 + workspace_swipe_min_fingers = false + workspace_swipe_distance = 300 + workspace_swipe_invert = true + workspace_swipe_min_speed_to_force = 30 + workspace_swipe_cancel_ratio = 0.2 + workspace_swipe_direction_lock = true + workspace_swipe_direction_lock_threshold = 10 + + workspace_swipe_touch = false + workspace_swipe_touch_invert = false + + workspace_swipe_create_new = false + + workspace_swipe_forever = true + + workspace_swipe_use_r = false +} + +group { + auto_group = true + insert_after_current = true + focus_removed_window = true + drag_into_group = 1 + merge_groups_on_drag = true + merge_groups_on_groupbar = true + merge_floated_into_tiled_on_groupbar = false + group_on_movetoworkspace = false + + col.border_active = 0x66ffff00 + col.border_inactive = 0x66777700 + col.border_locked_active = 0x66ff5500 + col.border_locked_inactive = 0x66775500 + + groupbar { + enabled = true + font_family = misc:font_family + font_size = 8 + gradients = true + height = 14 + stacked = false + priority = 3 + render_titles = false + scrolling = true + + text_color = 0xffffffff + + col.active = 0x66ffff00 + col.inactive = 0x66777700 + col.locked_active = 0x66ff5500 + col.locked_inactive = 0x66775500 + } +} + +misc { + disable_hyprland_logo = true + disable_splash_rendering = true + + col.splash = 0xffffffff + + font_family = Letter + # splash_font_family = + force_default_wallpaper = -1 + vfr = true + vrr = 1 + mouse_move_enables_dpms = false + key_press_enables_dpms = true + always_follow_on_dnd = true + layers_hog_keyboard_focus = true + animate_manual_resizes = false + animate_mouse_windowdragging = false + disable_autoreload = true + enable_swallow = false + # swallow_regex = + # swallow_exception_regex = + focus_on_activate = true + mouse_move_focuses_monitor = true + render_ahead_of_time = false + render_ahead_safezone = 1 + allow_session_lock_restore = false + background_color = 0x018281 + close_special_on_empty = true + new_window_takes_over_fullscreen = 2 + exit_window_retains_fullscreen = false + initial_workspace_tracking = 1 + middle_click_paste = false + render_unfocused_fps = 12 + disable_xdg_env_checks = false + # disable_hyprland_qtutils_check = false + # lockdead_screen_delay = 1000 +} + +binds { + pass_mouse_when_bound = false + scroll_event_delay = 300 + workspace_back_and_forth = false + allow_workspace_cycles = false + workspace_center_on = 1 + focus_preferred_method = 0 + ignore_group_lock = false + # movefocus_cycles_fullscreen = true + # movefocus_cycles_groupfirst = false + disable_keybind_grabbing = false + window_direction_monitor_fallback = true + # allow_pin_fullscreen = true +} + +xwayland { + enabled = true + use_nearest_neighbor = true + force_zero_scaling = false +} + +opengl { + nvidia_anti_flicker = false + force_introspection = 2 +} + +render { + explicit_sync = 2 + explicit_sync_kms = 2 + direct_scanout = false + expand_undersized_textures = true + # xp_mode = false + # ctm_animation = 2 + # allow_early_buffer_release = true +} + +cursor { + sync_gsettings_theme = true + no_hardware_cursors = false + no_break_fs_vrr = false + min_refresh_rate = 24 + hotspot_padding = 1 + inactive_timeout = 10 + no_warps = false + persistent_warps = false + warp_on_change_workspace = 0 + # default_monitor = + zoom_factor = 1.0 + zoom_rigid = false + # enable_hypercursor = false + hide_on_key_press = true + hide_on_touch = true + # use_cpu_buffer = 2 + # warp_back_after_non_mouse_input = false +} + +ecosystem { + # no_update_news = false + # no_donation_nag = true +} + +exec-once = gnome-keyring-daemon --start --components=secrets +exec-once = dunst --verbosity crit +exec-once = waycorner +exec-once = waybar + +# TODO Replace with something else? +exec-once = wlsunset -t 2500 -l 50.51 -L 4.21 + +exec-once = nextcloud --background + +# STYLING +exec-once = swaybg -i "${HOME}/.local/state/sisyphus/bg" --mode=fill +env = XCURSOR_SIZE,24 + +# SHIFT CAPS CTRL/CONTROL ALT MOD2 MOD3 SUPER/WIN/LOGO/MOD4 MOD5 +$flag = MOD4 + +$left = h +$down = j +$up = k +$right = l + +$term = foot +$menu = j4-dmenu-desktop --dmenu="rofi -dmenu -i" --no-generic --usage-log="/home/tdpeuter/.local/state/dmenu.log" --term=$term +$lock = swaylock + +source = /home/tdpeuter/.config/hypr/input-output.conf +source = /home/tdpeuter/.config/hypr/keybinds.conf + +$mode_launcher = Launch (f)irefox, (t)hunderbird. +bind = $flag, O, submap, $mode_launcher +submap = $mode_launcher + +bind = , F, exec, firefox +bind = , F, submap, reset +bind = , T, exec, thunderbird +bind = , T, submap, reset +bind = , Z, exec, zen +bind = , Z, submap, reset + +bind = $flag, O, submap, reset +bind = , Escape, submap, reset +bind = , Return, submap, reset + +submap = reset + +# https://wiki.hyprland.org/Nvidia/#environment-variables +env = __GLX_VENDOR_LIBRARY_NAME,nvidia +env = LIBVA_DRIVER_NAME,nvidia +env = NVD_BACKEND,direct diff --git a/stow/hyprland/.config/hypr/input-output.conf b/stow/hyprland/.config/hypr/input-output.conf new file mode 100644 index 0000000..3c04c15 --- /dev/null +++ b/stow/hyprland/.config/hypr/input-output.conf @@ -0,0 +1,62 @@ +# ~/.config/hypr/input-output.conf + +input { + kb_layout = us,be,us + kb_variant = altgr-intl,iso-alternate,dvorak + + numlock_by_default = true + resolve_binds_by_sym = false + + repeat_rate = 25 + repeat_delay = 600 + + sensitivity = 0.0 + accel_profile = flat + force_no_accel = false + + left_handed = false + scroll_method = 2fg + scroll_button_lock = true + scroll_factor = 1.0 + natural_scroll = false + + follow_mouse = 2 + focus_on_close = 0 + mouse_refocus = true + float_switch_override_focus = 1 + special_fallthrough = false + off_window_axis_events = 1 + emulate_discrete_scroll = 1 + + touchpad { + disable_while_typing = true + natural_scroll = true + scroll_factor = 0.8 + middle_button_emulation = false + tap_button_map = lrm + clickfinger_behavior = false + tap-to-click = true + drag_lock = false + tap-and-drag = true + } +} + +device { + name = at-translated-set-2-keyboard + numlock_by_default = false +} + +monitor = , preferred, auto, 1 + +monitor = desc:BOE 0x08CF, preferred, 640x1440, 1 +monitor = desc:Hewlett Packard HP ZR2740w CNT319Y008, preferred, auto-up, 1 +# Vertical monitors +monitor = desc:Dell Inc. DELL P2214H 29C2937M4YTL, preferred, auto-right, 1, transform, 1 +monitor = desc:Samsung Electric Company S22C650, preferred, auto-right, 1, transform, 1 + +# TV +monitor = desc:Samsung Electric Company SAMSUNG, disable + +bindl = , switch:on:Lid Switch, exec, hyprctl keyword monitor "eDP-1, disable" +bindl = , switch:off:Lid Switch, exec, hyprctl keyword monitor "eDP-1, enable" + diff --git a/stow/hyprland/.config/hypr/keybinds.conf b/stow/hyprland/.config/hypr/keybinds.conf new file mode 100644 index 0000000..514e5f0 --- /dev/null +++ b/stow/hyprland/.config/hypr/keybinds.conf @@ -0,0 +1,161 @@ +$notify = "${SCRIPT_DIR}/notify.sh" + +# Navigation + +# Focus +bind = $flag, $up, movefocus, u +bind = $flag, $right, movefocus, r +bind = $flag, $down, movefocus, d +bind = $flag, $left, movefocus, l + +bind = $flag, up, movefocus, u +bind = $flag, right, movefocus, r +bind = $flag, down, movefocus, d +bind = $flag, left, movefocus, l + +# Move windows +bind = $flag+Shift, $up, movewindow, u +bind = $flag+Shift, $right, movewindow, r +bind = $flag+Shift, $down, movewindow, d +bind = $flag+Shift, $left, movewindow, l + +bind = $flag+Shift, up, movewindow, u +bind = $flag+Shift, right, movewindow, r +bind = $flag+Shift, down, movewindow, d +bind = $flag+Shift, left, movewindow, l + +# $flag+Next move scratchpad +# $flag+KP_Next move scratchpad +# $flag+Prior scratchpad show +# $flag+KP_Prior scratchpad show +bind = $flag, Next, movetoworkspace, special:scratchpad +bind = $flag, KP_Next, movetoworkspace, special:scratchpad + +bind = $flag, Prior, togglespecialworkspace, special:scratchpad +bind = $flag, Prior, movetoworkspace, special:scratchpad +bind = $flag, Prior, togglespecialworkspace, special:scratchpad + +# bind = $flag, Next, movetoworkspace, special:magic +# bind = $flag, Next, togglespecialworkspace, magic + +# bind = $flag, KP_Next, togglespecialworkspace, magic +# bind = $flag, KP_Next, movetoworkspace, +0 +# bind = $flag, KP_Next, togglespecialworkspace, magic +# bind = $flag, KP_Next, movetoworkspace, special:magic +# bind = $flag, KP_Next, togglespecialworkspace, magic + +# Layouts +# bind = $flag, z, layout toggle split +# bind = $flag, x, layout tabbed +# bind = $flag, c, split horizontal +# bind = $flag, v, split vertical + +bind = $flag, f, togglefloating +bind = $flag+Shift, f, settiled + +bind = $flag, s, pin +bind = $flag, s, setfloating +bind = $flag+Shift, s, pin +bind = $flag+Shift, s, settiled + +bind = $flag, F11, fullscreen, 1 +# bind = $flag, Prior, fullscreen, 1 +# bind = $flag, KP_Prior, fullscreen, 1 + +# Workspaces + +$ws1 = 1 +$ws2 = 2 +$ws3 = 3 +$ws4 = 4 +$ws5 = 5 +$ws6 = 6 +$ws7 = 7 +$ws8 = 8 +$ws9 = 9 +$ws10 = 10 +$ws11 = 11 +$ws12 = 12 + +# Focus a specific workspace +bind = $flag, 1, workspace, $ws1 +bind = $flag, 2, workspace, $ws2 +bind = $flag, 3, workspace, $ws3 +bind = $flag, 4, workspace, $ws4 +bind = $flag, 5, workspace, $ws5 +bind = $flag, 6, workspace, $ws6 +bind = $flag, 7, workspace, $ws7 +bind = $flag, 8, workspace, $ws8 +bind = $flag, 9, workspace, $ws9 +bind = $flag, 0, workspace, $ws10 +bind = $flag, minus, workspace, $ws11 +bind = $flag, equal, workspace, $ws12 + +# Move window to a specific workspace +bind = $flag+Shift, 1, movetoworkspace, $ws1 +bind = $flag+Shift, 2, movetoworkspace, $ws2 +bind = $flag+Shift, 3, movetoworkspace, $ws3 +bind = $flag+Shift, 4, movetoworkspace, $ws4 +bind = $flag+Shift, 5, movetoworkspace, $ws5 +bind = $flag+Shift, 6, movetoworkspace, $ws6 +bind = $flag+Shift, 7, movetoworkspace, $ws7 +bind = $flag+Shift, 8, movetoworkspace, $ws8 +bind = $flag+Shift, 9, movetoworkspace, $ws9 +bind = $flag+Shift, 0, movetoworkspace, $ws10 +bind = $flag+Shift, Minus, movetoworkspace, $ws11 +bind = $flag+Shift, Equal, movetoworkspace, $ws12 + +# Go through workspaces in order +bind = $flag+Ctrl, $left, workspace, e-1 +bind = $flag+Ctrl, $right, workspace, e+1 + +bind = $flag+Ctrl, left, workspace, e-1 +bind = $flag+Ctrl, right, workspace, e+1 + +bind = $flag+Ctrl+Shift, $left, movetoworkspace, e-1 +bind = $flag+Ctrl+Shift, $right, movetoworkspace, e+1 + +bind = $flag+Ctrl+Shift, left, movetoworkspace, e-1 +bind = $flag+Ctrl+Shift, right, movetoworkspace, e+1 + +# GNOME-like keybinds +bind = $flag+Alt, $left, workspace, e-1 +bind = $flag+Alt, $right, workspace, e+1 + +bind = $flag+Alt, left, workspace, e-1 +bind = $flag+Alt, right, workspace, e+1 + +bind = $flag+Alt+Shift, $left, movetoworkspace, e-1 +bind = $flag+Alt+Shift, $right, movetoworkspace, e+1 + +bind = $flag+Alt+Shift, left, movetoworkspace, e-1 +bind = $flag+Alt+Shift, right, movetoworkspace, e+1 + +# Shortcuts + +# Reload +bind = Alt+Shift, r, exec, "hyperctl reload" +bind = Ctrl+Alt+Shift, r, forcerendererreload +bind = Alt+Shift, e, exit + +# Kill a window +bind = $flag, q, closewindow, activewindow + +# Start a terminal +bind = $flag, Return, exec, $term +bind = CTRL&ALT, T, exec, $term +# Application menu +bind = Alt, Space, exec, $menu +bind = Alt, Tab, focuscurrentorlast + +bind = $flag, e, exec, $term -e vifm + +bind = Ctrl+Shift, a, exec, notify-send "hole!" && hyprctl setcursor _ 87 && sleep 5 && hyprctl setcursor _ 24 + +# bind = $flag, mouse_up, movefocus, l +bind = SUPER, mouse_down, workspace, e-1 +bind = SUPER, mouse_up, workspace, e+1 +# bind = $flag, mouse_down, movefocus, r + +bind = $flag, Delete, exec, $lock + diff --git a/stow/hyprland/.config/hypr/monitors.conf b/stow/hyprland/.config/hypr/monitors.conf new file mode 100644 index 0000000..4b551d3 --- /dev/null +++ b/stow/hyprland/.config/hypr/monitors.conf @@ -0,0 +1,10 @@ +# Generated by nwg-displays on 2025-01-27 at 13:58:39. Do not edit manually. + +monitor=desc:BOE 0x08CF,1920x1080@60.0,0x0,1.0 +monitor=desc:Hewlett Packard HP ZR2740w CNT319Y008,2560x1440@59.95,0x1800,1.0 +monitor=desc:Hewlett Packard HP ZR2740w CNT319Y008,disable +monitor=desc:Dell Inc. DELL P2214H 29C2937M4YTL,1920x1080@60.0,2560x1800,1.0 +monitor=desc:Dell Inc. DELL P2214H 29C2937M4YTL,transform,1 +monitor=desc:Dell Inc. DELL P2214H 29C2937M4YTL,disable +monitor=desc:Samsung Electric Company SAMSUNG,0x0@60.0,-1x-1,1.0 +monitor=desc:Samsung Electric Company SAMSUNG,disable diff --git a/stow/hyprland/.config/hypr/undocked.conf b/stow/hyprland/.config/hypr/undocked.conf new file mode 100644 index 0000000..6f27cc4 --- /dev/null +++ b/stow/hyprland/.config/hypr/undocked.conf @@ -0,0 +1,9 @@ +monitor=desc:BOE 0x08CF,1920x1080@60.0,0x0,1.0 +monitor=desc:Hewlett Packard HP ZR2740w CNT319Y008,2560x1440@59.95,0x1800,1.0 +monitor=desc:Hewlett Packard HP ZR2740w CNT319Y008,disable +monitor=desc:Dell Inc. DELL P2214H 29C2937M4YTL,1920x1080@60.0,2560x1800,1.0 +monitor=desc:Dell Inc. DELL P2214H 29C2937M4YTL,transform,1 +monitor=desc:Dell Inc. DELL P2214H 29C2937M4YTL,disable +monitor=desc:Samsung Electric Company SAMSUNG,0x0@60.0,-1x-1,1.0 +monitor=desc:Samsung Electric Company SAMSUNG,disable + diff --git a/stow/hyprland/.config/hypr/workspaces.conf b/stow/hyprland/.config/hypr/workspaces.conf new file mode 100644 index 0000000..e69de29