From: Andre Ramnitz Date: Mon, 27 Oct 2025 22:21:15 +0000 (+0100) Subject: hypr: update config X-Git-Url: https://git.ramnitz.eu/?a=commitdiff_plain;h=d5a59b61fd144704bb5bd22603264f7b6f9073f6;p=dotfiles.git hypr: update config --- diff --git a/dot-config/hypr/fragments/env.conf b/dot-config/hypr/fragments/env.conf index 648a7104..968982c2 100644 --- a/dot-config/hypr/fragments/env.conf +++ b/dot-config/hypr/fragments/env.conf @@ -16,8 +16,7 @@ env = SDL_VIDEODRIVER,wayland # remove or set to x11 for games providing older v env = CLUTTER_BACKEND,wayland # tweak swww -env = SWWW_TRANSITION_FPS,60 -env = SWWW_TRANSITION_STEP,2 +env = SWWW_TRANSITION_FPS,59 # necessary for hi-dpi displays: # env = GDK_SCALE=1 # scaling XWayland clients @@ -31,7 +30,6 @@ env = HYPRCURSOR_SIZE,40 # tweak applications/frameworks env = QT_WAYLAND_DISABLE_WINDOWDECORATION,1 -env = XDG_MENU_PREFIX,plasma- # test stuff env = TERMINAL,/usr/bin/foot diff --git a/dot-config/hypr/fragments/keybinds.conf b/dot-config/hypr/fragments/keybinds.conf index 3c9171d9..0c280e9f 100644 --- a/dot-config/hypr/fragments/keybinds.conf +++ b/dot-config/hypr/fragments/keybinds.conf @@ -9,16 +9,17 @@ $mainmod = SUPER # mainmod shortcuts # ─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── # example: bind = $mainmod Shift, Return, exec, [float; size 1280 800;] foot -o pad=0x0 -bind = $mainmod, Return, exec, foot +bind = $mainmod, Return, exec, footclient +bind = $mainmod Ctrl, Return, exec, foot +bind = $mainmod Shift, Return, exec, footclient -w 1280x800 -o pad=0x0 -a popup bind = $mainmod Shift, Q, killactive, -bind = $mainmod Shift, Return, exec, foot -w 1280x800 -o pad=0x0 -a popup bind = $mainmod, A, pseudo, # dwindle, A for Artificial bind = $mainmod, B, exec, $HOME/.config/hypr/scripts/browser_focus_or_run.sh # bind = $mainmod, C, exec, killall fuzzel || cliphist list | fuzzel -d --config=$HOME/.config/fuzzel/fuzzel-emojii.ini --prompt='Copy > ' | cliphist decode | wl-copy -bind = $mainmod, C, exec, foot -a clipse -e clipse +bind = $mainmod Ctrl, C, exec, foot -a clipse -e clipse bind = $mainmod, D, exec, killall fuzzel || fuzzel --config=$HOME/.config/fuzzel/fuzzel-centered.ini bind = $mainmod SHIFT, D, exec, sherlock -bind = $mainmod, E, exec, foot -a lf lfrun +bind = $mainmod, E, exec, foot -a lf lf bind = $mainmod SHIFT, E, exec, dolphin bind = $mainmod, F, fullscreen,1 bind = $mainmod Shift, F, fullscreen,0 @@ -26,11 +27,6 @@ bind = $mainmod, G, togglegroup bind = $mainmod SHIFT, G, lockactivegroup, toggle bind = $mainmod CTRL, G, denywindowfromgroup, toggle bind = $mainmod ALT, G, moveoutofgroup, active -bind = $mainmod, M, togglespecialworkspace, magic -bind = $mainmod, M, movetoworkspace, +0 -bind = $mainmod, M, togglespecialworkspace, magic -bind = $mainmod, M, movetoworkspace, special:magic -bind = $mainmod, M, togglespecialworkspace, magic bind = $mainmod, P, exec, foot -w 640x400 -a popup -H hyprpicker #color Pipette bind = $mainmod, S, layoutmsg, swapwithmaster # master bind = $mainmod, S, togglesplit, # dwindle @@ -39,10 +35,26 @@ bind = $mainmod, V, togglefloating bind = $mainmod, W, exec, killall -SIGUSR1 waybar bind = $mainmod SHIFT, W, exec, killall -SIGUSR2 waybar bind = $mainmod, grave, exec, ~/.config/hypr/scripts/RofiEmoji.sh -bind = $mainmod, Z, centerwindow +bind = $mainmod, C, centerwindow # scratchpad bind = $mainmod, I, togglespecialworkspace, overlay bind = $mainmod SHIFT, I, movetoworkspace, special:overlay +# virtually minimalized windows +bind = $mainmod, M, togglespecialworkspace, magic +bind = $mainmod, M, movetoworkspace, +0 +bind = $mainmod, M, togglespecialworkspace, magic +bind = $mainmod, M, movetoworkspace, special:magic +bind = $mainmod, M, togglespecialworkspace, magic +bind = $mainmod SHIFT, M, togglespecialworkspace, sorcery +bind = $mainmod SHIFT, M, movetoworkspace, +0 +bind = $mainmod SHIFT, M, togglespecialworkspace, sorcery +bind = $mainmod SHIFT, M, movetoworkspace, special:sorcery +bind = $mainmod SHIFT, M, togglespecialworkspace, sorcery +bind = ALT CTRL, k, togglespecialworkspace, keepassxc +bind = ALT CTRL, k, movetoworkspace, +0 +bind = ALT CTRL, k, togglespecialworkspace, keepassxc +bind = ALT CTRL, k, movetoworkspace, special:keepassxc +bind = ALT CTRL, k, togglespecialworkspace, keepassxc # suremod keys (prevent fat-fingering 'em by accident) @@ -57,7 +69,7 @@ bind = $suremod, L, exec, ~/.config/hypr/scripts/powermen bind = $mainmod, Print, exec, hyprshot -m output -m active -o $HOME/Bilder/Screenshots bind = SHIFT, Print, exec, hyprshot -m window -m active -o $HOME/Bilder/Screenshots bind = CTRL, Print, exec, hyprshot -z -m region -o $HOME/Bilder/Screenshots -bind = ALT CTRL, L, exec, hyprlock +bind = ALT CTRL, L, exec, hyprlock # media keys # ─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── @@ -226,7 +238,63 @@ binde = CTRL, i, exec, ~/.config/hypr/scripts/gaps.sh binde = CTRL, o, exec, ~/.config/hypr/scripts/gaps.sh --reset_gaps_out # use reset to go back to the global submap -bind = , escape, submap, reset +bind = , catchall, submap, reset + +# will reset the submap, which will return to the global submap +submap = reset + + +# ─────────────────────────────────────────────────────────── +# will switch to a submap called resize16-9 +bind = $mainmod, Z, submap, resize16-9 + +# will start a submap called "gaps" +submap = resize16-9 + +# sets repeatable binds for resizing the active window +bind = , 1, exec, hyprctl dispatch 'resizewindowpixel exact 640 360,activewindow' +bind = , 1, exec, submap, reset +bind = , 2, exec, hyprctl dispatch 'resizewindowpixel exact 853 480,activewindow' +bind = , 2, exec, submap, reset +bind = , 3, exec, hyprctl dispatch 'resizewindowpixel exact 1280 720,activewindow' +bind = , 3, exec, submap, reset +bind = , 4, exec, hyprctl dispatch 'resizewindowpixel exact 1920 1080,activewindow' +bind = , 4, exec, submap, reset +bind = , 5, exec, hyprctl dispatch 'resizewindowpixel exact 2400 1350,activewindow' +bind = , 5, exec, submap, reset +bind = , 6, exec, hyprctl dispatch 'resizewindowpixel exact 2560 1440,activewindow' +bind = , 6, exec, submap, reset + +# use reset to go back to the global submap +bind = , catchall, submap, reset + +# will reset the submap, which will return to the global submap +submap = reset + + +# ─────────────────────────────────────────────────────────── +# will switch to a submap called resize16-10 +bind = $mainmod Shift, Z, submap, resize12-10 + +# will start a submap called "gaps" +submap = resize12-10 + +# sets repeatable binds for resizing the active window +bind = , 1, exec, hyprctl dispatch 'resizewindowpixel exact 432 360,activewindow' +bind = , 1, exec, submap, reset +bind = , 2, exec, hyprctl dispatch 'resizewindowpixel exact 576 480,activewindow' +bind = , 2, exec, submap, reset +bind = , 3, exec, hyprctl dispatch 'resizewindowpixel exact 864 720,activewindow' +bind = , 3, exec, submap, reset +bind = , 4, exec, hyprctl dispatch 'resizewindowpixel exact 1296 1080,activewindow' +bind = , 4, exec, submap, reset +bind = , 5, exec, hyprctl dispatch 'resizewindowpixel exact 1620 1350,activewindow' +bind = , 5, exec, submap, reset +bind = , 6, exec, hyprctl dispatch 'resizewindowpixel exact 1728 1440,activewindow' +bind = , 6, exec, submap, reset + +# use reset to go back to the global submap +bind = , catchall, submap, reset # will reset the submap, which will return to the global submap submap = reset diff --git a/dot-config/hypr/fragments/windowrules.conf b/dot-config/hypr/fragments/windowrules.conf index 3e1bc34b..0fb8493e 100644 --- a/dot-config/hypr/fragments/windowrules.conf +++ b/dot-config/hypr/fragments/windowrules.conf @@ -24,13 +24,15 @@ windowrule = stayfocused, class:^(com.nextcloud.desktopclient.nextcloud)$ windowrule = float, class: ^(com.nextcloud.desktopclient.nextcloud)$ windowrule = float, class:^(kdesystemsettings.*)$ -windowrule = float, size 1560 1000, pin, workspace special:overlay, class:^(org.keepassxc.KeePassXC)$ +windowrule = float, size 1560 1000, pin, workspace special:overlay, class:^(org.keepassxc.KeePassXC|KeePassXC)$ # handle dialogs windowrule = float, title:^((Über|About|Öffnen).*)$ -windowrule = stayfocused, title:^((Über|About|Öffnen).*)$ -windowrule = float, class:^((org.kde.kwalletd6|org.kde.ksecretd).*)$ -windowrule = stayfocused, class:^((org.kde.kwalletd6|org.kde.ksecretd).*)$ +windowrule = stayfocused, title:^((Über|About|Öffnen|Neuen Ordner erstellen|Datei überschreiben).*)$ +windowrule = float, class:^((org.kde.kwalletd6|org.kde.ksecretd|org.kde.polkit-kde-authentication-agent-1).*)$ +windowrule = stayfocused, class:^((org.kde.kwalletd6|org.kde.ksecretd|org.kde.polkit-kde-authentication-agent-1).*)$ +windowrule = float, title:^(.*)auncher$ +windowrule = stayfocused, class:negative:heroic,title:^(.*)Launcher$ # indicate windows with special attention windowrulev2 = bordercolor 0xff$berror 0xff$black 30deg, initialTitle:^(upgrayyedd)$ @@ -68,25 +70,31 @@ windowrule = tag +neverdim, class:^(Microsoft-edge.*)$ windowrule = tag +neverdim, class:^(firefox.*)$ windowrule = workspace 1, class:^(firefox.*)$ windowrule = group barred, class:^(firefox.*)$, title:^(Mozilla Firefox)$ +windowrule = workspace 1, class:^(org.qutebrowser.*)$ +windowrule = group barred, class:^(org.qutebrowser.*)$ # handle video PiPs -windowrule = float, class:^(firefox.*)$, title:^(Bild-im-Bild|Picture-in-picture)$ -windowrule = move onscreen 100%-w-10 4%+h, class:^(firefox.*)$, title:^(Bild-im-Bild|Picture-in-picture)$ -windowrule = size 800 450, class:^(firefox.*)$, title:^(Bild-im-Bild|Picture-in-picture)$ -windowrule = plugin:hyprbars:nobar, class:^(firefox.*)$, title:^(Bild-im-Bild|Picture-in-picture)$ -windowrule = noinitialfocus, class:^(firefox.*)$, title:^(Bild-im-Bild|Picture-in-picture)$ -windowrule = group deny, class:^(firefox.*)$, title:^(Bild-im-Bild|Picture-in-picture)$ -windowrule = pin, class:^(firefox.*)$, title:^(Bild-im-Bild|Picture-in-picture)$ +windowrule = float, class:^(firefox.*)$, initialTitle:^(Bild-im-Bild|Picture-in-Picture)$ +windowrule = move onscreen 100%-w-10 52, class:^(firefox.*)$, initialTitle:^(Bild-im-Bild|Picture-in-Picture)$ +windowrule = size 800 450, class:^(firefox.*)$, initialTitle:^(Bild-im-Bild|Picture-in-Picture)$ +windowrule = plugin:hyprbars:nobar, class:^(firefox.*)$, initialTitle:^(Bild-im-Bild|Picture-in-Picture)$ +windowrule = noinitialfocus, class:^(firefox.*)$, initialTitle:^(Bild-im-Bild|Picture-in-Picture)$ +windowrule = group deny, class:^(firefox.*)$, initialTitle:^(Bild-im-Bild|Picture-in-Picture)$ +windowrule = pin, class:^(firefox.*)$, initialTitle:^(Bild-im-Bild|Picture-in-Picture)$ +windowrule = noborder, class:^(firefox.*)$, initialTitle:^(Bild-im-Bild|Picture-in-Picture)$ +windowrule = content video, class:^(firefox.*)$, initialTitle:^(Bild-im-Bild|Picture-in-Picture)$ # handle terminal(s/-apps) windowrule = float, class:^(popup)$ windowrule = float, class:^(clipse)$ windowrule = plugin:hyprbars:nobar, class:^(clipse)$ +windowrule = float, stayfocused, center, opacity 1.0 override, class:^(kakpopup)$ +# handle music player clients windowrule = pseudo, class:^(ncmpcpp)$ windowrule = workspace 4, class:^(ncmpcpp)$ windowrule = noinitialfocus, class:^(ncmpcpp)$ -windowrule = float, stayfocused, center, opacity 1.0 override, class:^(kakpopup)$ +windowrule = workspace 4, class:^(deezer-nativefier.*)$ # handle other clients windowrule = float, class:^(openrgb)$ @@ -94,8 +102,10 @@ windowrule = float, class:^(nwg-look)$ windowrule = float, class:^(alsa-scarlett-gui)$ windowrule = float, class:^(lstopo)$ windowrule = float, class:^(org.corectrl.CoreCtrl)$ +windowrule = float, initialTitle:^(LACT)$ windowrule = float, class:^(lutris)$ windowrule = workspace 7, class:^(thunderbird|thunderbird-bin)$ +windowrule = tag +neverdim, class:^(Gkrellm)$ windowrule = float, class:^(pavucontrol.*)$ windowrule = maxsize 600 800, class:^(pavucontrol.*)$ @@ -122,27 +132,24 @@ windowrule = group deny, class:^(ueberzugpp.*)$ windowrule = float, class:^(org.freedesktop.impl.portal.desktop.kde)$ windowrule = stayfocused, class:^(org.freedesktop.impl.portal.desktop.kde)$ -# handle steam client -windowrule = float, class:^(steam)$ -windowrule = workspace 6, class:^(steam)$ -windowrule = minsize 1 1, title:^()$, class:^(steam)$ +# handle game launchers +windowrule = workspace 6, initialclass:^(steam|heroic)$ +windowrule = float, initialclass:^(steam)$, title:^(Freundesliste|Friendlist)$ +windowrule = float, initialClass:^(steam)$, title:negative:^()$ +windowrule = size 300 800, initialclass:^(steam)$, title:^(Freundesliste|Friendlist)$ +windowrule = move onscreen 100%-w-10 25%, initialclass:^(steam)$, title:^(Freundesliste|Friendlist)$ +windowrule = minsize 1 1, initialClass:^(steam)$, title:^()$ windowrule = plugin:hyprbars:nobar,class:^(steam)$ -# windowrule = decorate 0, class:^(steam)$ -# windowrule = stayfocused, title:^()$, class:^(steam)$, title:^(Steam)$ -# windowrule = suppressevent activate, class:^(steam)$, title:^(Steam)$ -# windowrule = noanim 1, class:^(steam)$ -# windowrule = noblur 1, class:^(steam)$ -# windowrule = norounding 1, class:^(steam)$ -# windowrule = nodim 1, class:^(steam)$ # handle wine/proton games $GAMES = ^(steam_app_.*|steam_proton|streaming_client|gamescope)$ -windowrule = tag +game, class:$GAMES - +windowrule = tag +game, initialClass:$GAMES +windowrule = content game, tag:game # handle TAGS (always handle tags last) windowrule = nodim 1, tag:neverdim +windowrule = float, tag:game windowrule = nodim 1, tag:game windowrule = noblur 1, tag:game windowrule = norounding 1, tag:game @@ -152,8 +159,8 @@ windowrule = opaque 1, tag:game windowrule = minsize 1280 800, tag:game windowrule = move 50% 50%, tag:game windowrule = plugin:hyprbars:nobar, tag:game -windowrule = idleinhibit always, tag:game -windowrule = fullscreenstate 2 3, tag:game +windowrule = idleinhibit always, tag:game windowrule = fullscreen, tag:game +windowrule = fullscreen, initialTitle:^(vkcube)$ # windowrule = immediate, tag:game #experimental diff --git a/dot-config/hypr/hyprland.conf b/dot-config/hypr/hyprland.conf index 3d4f6ac2..01cf485a 100644 --- a/dot-config/hypr/hyprland.conf +++ b/dot-config/hypr/hyprland.conf @@ -13,12 +13,13 @@ monitorv2 { mode = preferred position = 0x0 scale = 1 - bitdepth = 8 + bitdepth = auto cm = auto - sdrbrightness = 0.80 + sdrbrightness = 1.00 sdrsaturation = 1.00 sdr_min_luminance = 0.005 sdr_max_luminance = 245 + vrr = 1 } # other displays @@ -26,16 +27,20 @@ monitor=,preferred,auto-center-right,1,vrr,2 # Execute your favorite apps at launch exec-once = dbus-update-activation-environment --systemd --all -# exec-once = /usr/bin/gnome-keyring-daemon --start --components=secrets --daemonize exec-once = /usr/libexec/pam_kwallet_init -exec-once = ~/.config/hypr/scripts/startup.sh +# exec-once = ~/.config/hypr/scripts/startup.sh +exec-once = openrc --user gui # AFTER pam_kwallet_init!!! exec-once = hyprpm reload +exec-once = matugen image /home/andy/Wallpapers/3440x1440-jffmy9eofxof1.jpg +exec-once = env XDG_MENU_PREFIX=plasma- kbuildsycoca6 # Unset variables on exit +exec-shutdown = lastwall save +exec-shutdown = openrc --user default exec-shutdown = setenv WAYLAND_DISPLAY= XDG_SESSION_TYPE= XDG_CURRENT_DESKTOP= general { - allow_tearing = 0 + allow_tearing = 1 border_size = 2 gaps_in = 5 gaps_out = 10 @@ -58,7 +63,7 @@ dwindle { force_split = 2 smart_split = 0 split_width_multiplier = 2.0 - single_window_aspect_ratio = 16 10 + single_window_aspect_ratio = 16 9.1 single_window_aspect_ratio_tolerance = 0.1 pseudotile = 1 # master switch for pseudotiling. Enabling is bound to mainMod + A in the keybinds section below preserve_split = 1 # you probably want this @@ -121,12 +126,23 @@ input { sensitivity = 0 # -1.0 - 1.0, 0 means no modification. off_window_axis_events = 2 # default = 1 scroll_points = 3 + # scroll with right mouse button and mouse movement + # scroll_method = on_button_down + # scroll_button = 273 } device { name = razer-razer-basilisk-v3 - sensitivity = -0.1 - accel_profile = custom 0.3308622437 0.000 0.224 0.449 0.673 0.997 1.335 1.672 2.010 2.348 2.685 3.186 3.699 4.212 4.725 5.237 5.750 6.263 6.776 7.288 7.801 8.314 8.827 9.339 9.852 10.365 10.878 11.390 11.903 12.416 13.476 + sensitivity = 0 + # accel_profile = custom 0.3308622437 0.000 0.224 0.449 0.673 0.997 1.335 1.672 2.010 2.348 2.685 3.186 3.699 4.212 4.725 5.237 5.750 6.263 6.776 7.288 7.801 8.314 8.827 9.339 9.852 10.365 10.878 11.390 11.903 12.416 13.476 + accel_profile = custom 0.0965014878 0.000 0.099 0.198 0.297 0.396 0.495 0.627 0.776 0.925 1.074 1.223 1.372 1.521 1.670 1.819 1.969 2.153 2.379 2.606 2.832 3.058 3.285 3.511 3.738 3.964 4.190 4.417 4.643 4.870 5.096 5.322 5.549 5.775 6.002 6.228 6.454 6.681 6.907 7.133 7.360 7.586 7.813 8.039 8.265 8.492 8.718 8.945 9.171 9.397 9.865 + # accel_profile = flat +} + +device { + name = zsa-technology-labs-moonlander-mark-i-1 + sensitivity = -0.1 + accel_profile = flat } group { @@ -161,6 +177,7 @@ group { round_only_edges = 1 gradients = 1 gradient_rounding = 10 + gradient_rounding_power = 2 gradient_round_only_edges = 1 stacked = 0 gaps_in = 2 @@ -170,10 +187,12 @@ group { } misc { - force_default_wallpaper = 1 # Set to 0 to disable the anime mascot wallpapers + force_default_wallpaper = 0 # Set to 0 to disable the anime mascot wallpapers + disable_hyprland_logo = 0 key_press_enables_dpms = 1 - vfr = 1 #enable for battery savings - render_unfocused_fps = 60 + vfr = 1 # set to 1 for battery savings + vrr = 2 + render_unfocused_fps = 59 allow_session_lock_restore = 1 initial_workspace_tracking = 1 font_family = ZedMono NFP @@ -192,20 +211,22 @@ xwayland { } render { - direct_scanout = 2 + direct_scanout = 1 cm_fs_passthrough = 2 cm_enabled = 1 send_content_type = 1 - cm_auto_hdr = 1 - new_render_scheduling = 1 + cm_auto_hdr = 2 + new_render_scheduling = 0 } cursor { enable_hyprcursor = 1 no_warps = 0 - no_hardware_cursors = 0 + no_hardware_cursors = 2 no_break_fs_vrr = 2 + warp_on_change_workspace = 1 warp_on_toggle_special = 1 + use_cpu_buffer = 2 # 2=nvidia-only } ecosystem { diff --git a/dot-config/hypr/hyprlock.conf b/dot-config/hypr/hyprlock.conf index 202cbef7..8115d757 100644 --- a/dot-config/hypr/hyprlock.conf +++ b/dot-config/hypr/hyprlock.conf @@ -13,9 +13,9 @@ animations { background { monitor = - path = ~/Bilder/Wallpapers-simple/atmosphere.png + path = ~/Bilder/Wallpapers-simple/atmosphere.png color = 0xdd$background - blur_passes = 2 + blur_passes = 3 blur_size = 7 noise = 0.0117 contrast = 0.8916 @@ -43,7 +43,7 @@ image { shape { size = 300, 20 - color = 0xff$primary + color = 0xff$secondary rounding = 8 border_size = 2 border_color = 0xff$outline_variant diff --git a/dot-config/hypr/scripts/accel.py b/dot-config/hypr/scripts/accel.py new file mode 100755 index 00000000..b438b4de --- /dev/null +++ b/dot-config/hypr/scripts/accel.py @@ -0,0 +1,161 @@ +#!/usr/bin/env python3 + +# original at https://gist.github.com/yinonburgansky/7be4d0489a0df8c06a923240b8eb0191 +# modified for ease of use in Hyprland + +# calculation are based on http://www.esreality.com/index.php?a=post&id=1945096 +# assuming windows 10 uses the same calculation as windows 7. +# guesses have been made calculation is not accurate +# touchpad users make sure your touchpad is calibrated with `sudo libinput measure touchpad-size` + +# import matplotlib.pyplot as plt +import struct +import os +import sys + +# ===== PARAMETERS ===== +# set according to your device: +device_dpi = 1200 # mouse dpi +screen_dpi = 110 +screen_scaling_factor = 1 +sample_point_count = 50 # should be enough but you can try to increase for accuracy of windows function +sensitivity_factor = 4.5 +# sensitivity factor translation table: (windows slider notches) +# 1 = 0.1 +# 2 = 0.2 +# 3 = 0.4 +# 4 = 0.6 +# 5 = 0.8 +# 6 = 1.0 default +# 7 = 1.2 +# 8 = 1.4 +# 9 = 1.6 +# 10 = 1.8 +# 11 = 2.0 +# ===== END PARAMETERS ===== + +def find_arg(arg): + for i in sys.argv: + if i == arg: + return True + + return False + + +if find_arg("help") or find_arg("-h") or find_arg("--help") or find_arg("h"): + print(f'{sys.argv[0]} [[accel_profile] [scroll_points] device=]') + print('To get the device, run `hyprctl devices` and get its name') + exit(0) + +# TODO: find accurate formulas for scale x and scale y +# mouse speed: inch/s to device-units/millisecond +scale_x = device_dpi / 1e3 +# pointer speed: inch/s to screen pixels/millisecond +scale_y = screen_dpi / 1e3 / screen_scaling_factor * sensitivity_factor + +# print(f'scale_x={scale_x}, scale_y={scale_y}') + + +def float16x16(num): + return struct.unpack(' [+-][value] [toggle]" -# exit 1 -# fi -# if [[ -n "$TOGGLE" ]]; then -# CUR=$(hyprctl hyprsunset "$CMD") -# FMT=$(LC_NUMERIC="en_US.UTF-8" printf "%.0f" "$CUR" 2>/dev/null) -# if [ "$FMT" = "$DELTA" ]; then -# if [ "$CMD" = "gamma" ]; then -# DELTA=100 -# else -# DELTA=6500 -# fi -# fi -# fi -# [ "$CMD" = "gamma" ] && LEN=3 || LEN=4 -# if [[ -n "$DELTA" ]]; then -# # rate limit and queue commands to workaround nvidia freezing on ctm spam -# flock /tmp/sunset.lock sleep 0.1 -# # tell waybar to update after a change -# pkill -SIGRTMIN+"$LEN" waybar -# fi -# if NUM=$(hyprctl hyprsunset "$CMD" "$DELTA"); then -# if FMT=$(LC_NUMERIC="en_US.UTF-8" printf "%$LEN.0f" "$NUM" 2>/dev/null); then -# echo "$FMT" -# fi -# fi - diff --git a/dot-config/hypr/scripts/startup.sh b/dot-config/hypr/scripts/startup.sh index 58e88393..17cd30d8 100755 --- a/dot-config/hypr/scripts/startup.sh +++ b/dot-config/hypr/scripts/startup.sh @@ -38,7 +38,7 @@ pidof xembedsniproxy && pkill xembedsniproxy || xembedsniproxy > /dev/null 2>&1 pidof udiskie && pkill udiskie || udiskie --no-automount --no-notify --tray > /dev/null 2>&1 & openrgb --startminimized -p sunset > /dev/null 2>&1 & ! pidof hypridle && hypridle & -! pidof hyprsunset && hyprsunset & +# ! pidof hyprsunset && hyprsunset & ! pidof clipse && clipse --listen #------------------------------------------------------ autorun flatpaks/other (delayed) diff --git a/dot-config/hypr/sunsetr.toml b/dot-config/hypr/sunsetr.toml deleted file mode 100644 index 12ce83c5..00000000 --- a/dot-config/hypr/sunsetr.toml +++ /dev/null @@ -1,9 +0,0 @@ -# Sunsetr configuration -sunset = "21:00:00" # Time to transition to night mode (HH:MM:SS) -sunrise = "06:00:00" # Time to transition to day mode (HH:MM:SS) -night_temp = 4000 # Color temperature after sunset (1000-20000) Kelvin -night_gamma = 90.0 # Gamma percentage for night (0-200%) -day_gamma = 100.0 # Gamma percentage for day (0-200%) -start_hyprsunset = true # Whether to start hyprsunset automatically - # Set true if you're not using hyprsunset.service -