hyprwm / Hyprland

Hyprland is an independent, highly customizable, dynamic tiling Wayland compositor that doesn't sacrifice on its looks.
https://hyprland.org
BSD 3-Clause "New" or "Revised" License
21.86k stars 910 forks source link

Cannot disable device as default #8458

Open tienbuigia opened 2 weeks ago

tienbuigia commented 2 weeks ago

Already reported ? *

Regression?

Yes

System Info and Version

System/Version info ```sh Hyprland 0.45.0 built from branch at commit dirty (). Date: Tag: , commits: built against aquamarine 0.4.3 flags set: debug System Information: System name: Linux Node name: t14 Release: 6.11.6-arch1-1 Version: #1 SMP PREEMPT_DYNAMIC Fri, 01 Nov 2024 03:30:41 +0000 GPU information: 07:00.0 VGA compatible controller [0300]: Advanced Micro Devices, Inc. [AMD/ATI] Renoir [Radeon Vega Series / Radeon Vega Mobile Series] [1002:1636] (rev d3) (prog-if 00 [VGA controller]) os-release: NAME="Arch Linux" PRETTY_NAME="Arch Linux" ID=arch BUILD_ID=rolling ANSI_COLOR="38;2;23;147;209" HOME_URL="https://archlinux.org/" DOCUMENTATION_URL="https://wiki.archlinux.org/" SUPPORT_URL="https://bbs.archlinux.org/" BUG_REPORT_URL="https://gitlab.archlinux.org/groups/archlinux/-/issues" PRIVACY_POLICY_URL="https://terms.archlinux.org/docs/privacy-policy/" LOGO=archlinux-logo plugins: ======Config-Start====== Config File: /home/tien/.config/hypr/hyprland.conf: Read Succeeded env = MOZ_ENABLE_WAYLAND,1 env = QT_QPA_PLATFORM,wayland env = CLUTTER_BACKEND,wayland env = SDL_VIDEODRIVER,wayland env = GDK_BACKEND,wayland env = GRIM_DEFAULT_DIR,$HOME/screenshot env = TERMINAL,footclient # env = TERMINAL,kitty env = EDITOR,nvim env = BROWSER,firefox env = YDOTOOL_SOCKET,/tmp/.ydotool_socket env = XCURSOR_SIZE,64 env = HYPRCURSOR_SIZE,64 $srcDir = ~/.config/hypr/script exec-once = foot --server exec-once = dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP=Hyprland exec-once = xrdb -merge ~/.config/x11/xresources # load xresources since X app still read it on xwayland, nice exec-once = waybar exec-once = setbgd exec-once = jamesdsp -t exec-once = gammastep -l 21.05:105.7 exec-once = fcitx5 -d exec-once = $srcDir/notsystemd.sh exec-once = swayidle exec-once = kanshi exec = notify-send "hyprland" "reloaded" monitor = , preferred, auto, 1 general { border_size = 3 col.active_border = rgb(d8dee9) col.inactive_border = rgb(2e3440) layout = master gaps_in = 3 gaps_out = 10 } input { repeat_rate = 60 repeat_delay = 300 accel_profile = flat follow_mouse = 2 mouse_refocus = false } device { name = elan-touchpad enabled = false } device { name = 'synps/2-synaptics-touchpad' enabled = false } cursor { inactive_timeout = 5 no_warps = true } decoration { shadow { enabled = false } blur { enabled = true noise = 0.2 } } animations { enabled = true } misc { disable_hyprland_logo = true disable_splash_rendering = true enable_swallow = true swallow_regex = ^(kitty|footclient|foot|alacritty)$ mouse_move_enables_dpms = true key_press_enables_dpms = true } source = mapping.conf source = masterlayout.conf source = rules.conf source = animation.conf # vim: ft=conf Config File: /home/tien/.config/hypr/mapping.conf: Read Succeeded $TERMINAL = footclient $BROWSER = firefox # basic functionals bindm = super, mouse:272, movewindow bindm = super, mouse:273, resizewindow bind = supershift, q, exit bind = super, q, killactive bind = super, backspace, execr, sebastian # bind=super,j,cyclenext,prev # bind=super,k,cyclenext bind = super, f, fullscreen, 0 bind = supershift, f, fullscreen, 1 # bind = alt, f, fullscreenstate, 0 2 bind = supershift, space, togglefloating bind = super, g, execr, $srcDir/togglegap.sh bind = supershift, i, execr, $srcDir/toggleidle.sh bind = super, b, execr, $srcDir/togglebar.sh bind = super, u, execr, $srcDir/toggletouchpad.sh 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 = supershift, 1, movetoworkspacesilent, 1 bind = supershift, 2, movetoworkspacesilent, 2 bind = supershift, 3, movetoworkspacesilent, 3 bind = supershift, 4, movetoworkspacesilent, 4 bind = supershift, 5, movetoworkspacesilent, 5 bind = supershift, 6, movetoworkspacesilent, 6 bind = supershift, 7, movetoworkspacesilent, 7 bind = supershift, 8, movetoworkspacesilent, 8 bind = supershift, 9, movetoworkspacesilent, 9 # open apps bind = super, d, execr, tofi-run | xargs -0 sh -c bind = super, w, execr, $BROWSER bind = super, Return, execr, $TERMINAL bind = super, n, execr, $TERMINAL -T "🗞" newsboat && kill -36 $(pidof waybar) bind = super, m, execr, $TERMINAL ncmpcpp bind = super, grave, execr, getemoji bind = super, F4, execr, $TERMINAL pulsemixer bind = super, e, execr, $TERMINAL sh -c 'cd ~/doc/notes/; nvim "$(tr -dc "a-zA-Z0-9" > ~/.local/share/personal/bookmarks bind = super, i, execr, save_img # screenshots bind =, print, execr, screenshot -f bind = shift, print, execr, screenshot -s bind = alt, print, execr, screenshot -a bind = super, print, execr, screenshot -C # clipboard version (use ctrl key) bind = ctrl, print, execr, screenshot -cf bind = ctrlshift, print, execr, screenshot -cs bind = ctrlalt, print, execr, screenshot -ca # f10 bind =, f10, execr, screenshot -f bind = shift, f10, execr, screenshot -s bind = alt, f10, execr, screenshot -a bind = shiftalt, f10, execr, screenshot -es bind = super, f10, execr, screenshot -C # clipboard version (use ctrl key) bind = ctrl, f10, execr, screenshot -cf bind = ctrlshift, f10, execr, screenshot -cs bind = ctrlalt, f10, execr, screenshot -ca # color picker bind = alt, p, execr, screenshot -p # those function keys bind = , XF86AudioMute, execr, vol toggle bind = , XF86AudioMicMute, execr, vol mictoggle bindle = , XF86AudioRaiseVolume, execr, vol up bindle = , XF86AudioLowerVolume, execr, vol down binde = , XF86MonBrightnessUp, execr, light up binde = , XF86MonBrightnessDown, execr, light down bindl = , XF86AudioNext, execr, mpc -q next && songinfo bindl = , XF86AudioPrev, execr, mpc -q prev && songinfo bindl = , XF86AudioStop, execr, mpc -q stop && songinfo bindl = , XF86AudioPlay, execr, mpc -q play && songinfo bind = , XF86WebCam, execr, qrclip bind = , XF86ScreenSaver, execr, swaylock bind = , XF86Display, execr, selectdisplay bind = , XF86TouchpadToggle, execr, toggletouchpad bind = , XF86Favorites, execr, wl-paste >> ~/.local/share/personal/bookmarks Config File: /home/tien/.config/hypr/masterlayout.conf: Read Succeeded master { new_on_top = true } # keybinds bind = super, space, layoutmsg, swapwithmaster master bind = super, j, layoutmsg, cyclenext bind = super, k, layoutmsg, cycleprev bind = supershift, j, layoutmsg, swapnext bind = supershift, k, layoutmsg, swapprev bind = super, o, layoutmsg, addmaster bind = supershift, o, layoutmsg, removemaster bind = super, y, layoutmsg, orientationtop bind = super, t, layoutmsg, orientationleft bind = super, h, splitratio, -0.05 bind = super, l, splitratio, +0.05 # vim: ft=conf Config File: /home/tien/.config/hypr/rules.conf: Read Succeeded windowrulev2 = float, class:(Gajim) windowrulev2 = float, class:(Gimp) windowrulev2 = tile, class:(Nsxiv) windowrulev2 = tile, class:(Focus50) # windowrulev2 = opacity .9 .8, class:^(firefox)$ # windowrulev2 = opacity .8 .75, class:^(foot|kitty|footclient)$ # windowrulev2 = opacity .8 .75, class:^(org.gajim.Gajim)$ windowrulev2 = idleinhibit focus, class:(Netflix) # vim: ft=conf Config File: /home/tien/.config/hypr/animation.conf: Read Succeeded # vim: set ft=conf: # I enjoy animation but don't like manually config them, so I copied this from # https://github.com/end-4/dots-hyprland bezier = linear, 0, 0, 1, 1 bezier = md3_standard, 0.2, 0, 0, 1 bezier = md3_decel, 0.05, 0.7, 0.1, 1 bezier = md3_accel, 0.3, 0, 0.8, 0.15 bezier = overshot, 0.05, 0.9, 0.1, 1.1 bezier = crazyshot, 0.1, 1.5, 0.76, 0.92 bezier = hyprnostretch, 0.05, 0.9, 0.1, 1.0 bezier = menu_decel, 0.1, 1, 0, 1 bezier = menu_accel, 0.38, 0.04, 1, 0.07 bezier = easeInOutCirc, 0.85, 0, 0.15, 1 bezier = easeOutCirc, 0, 0.55, 0.45, 1 bezier = easeOutExpo, 0.16, 1, 0.3, 1 bezier = softAcDecel, 0.26, 0.26, 0.15, 1 bezier = md2, 0.4, 0, 0.2, 1 # use with .2s duration # Animation configs animation = windows, 1, 3, md3_decel, popin 60% animation = windowsIn, 1, 3, md3_decel, popin 60% animation = windowsOut, 1, 3, md3_accel, popin 60% animation = border, 1, 10, default animation = fade, 1, 3, md3_decel # animation = layers, 1, 2, md3_decel, slide animation = layersIn, 1, 3, menu_decel, slide animation = layersOut, 1, 1.6, menu_accel animation = fadeLayersIn, 1, 2, menu_decel animation = fadeLayersOut, 1, 4.5, menu_accel # animation = workspaces, 1, 7, menu_decel, slide # animation = workspaces, 1, 2.5, softAcDecel, slide animation = workspaces, 1, 7, menu_decel, slidefade 15% # animation = specialWorkspace, 1, 3, md3_decel, slidefadevert 15% animation = specialWorkspace, 1, 3, md3_decel, slidevert ======Config-End======== ```

Description

The device I set to enabled: false never get disable:

device {
  name    = elan-touchpad
  enabled = false
}

It only be disabled when I run this command: hyprctl keyword "device[elan-touchpad]:enabled" false

This have been like this for pretty long time, since hyprland remove the easy way to setup touchpad (remove getoption for device and change syntax).

I have 2 machines, one running hyprland version 0.41 (ubuntu) and this one is 0.45 (archlinux). Both of them have this issue.

How to reproduce

  1. setup a device in your config file (touchpad for me)
    device {
    name    = elan-touchpad
    enabled = false
    }
  2. reload your config, or restart hyprland
  3. check if the device is disabled

Crash reports, logs, images, videos

No response

nickodei commented 6 days ago

Hey, I tried it out with my bluetooth mouse and it disabled it with this config:

device {
  name=cx-2.4g-receiver-mouse
  enabled=false
}

device {
  name=cx-2.4g-receiver-consumer-control-1
  enabled=false
}

Can you run hyprctl devices ? Maybe it is category dependent or there are multiple devices for the same touchpad. Would have a surface that has some devices in a lot of categories and could try with that.