feat(hypr): support mice in mk-device-block and add mouse device blocks

Expand mk-device-block.sh to list mice alongside keyboards and emit the
pointer-appropriate config block. Add device blocks for the Logitech
Pro 2 and G903 mice in input.lua.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
main
Amir Alexander Abdelbaki 2026-05-31 23:27:00 +02:00
parent 572fc00755
commit b114b7f523
2 changed files with 51 additions and 8 deletions

View File

@ -25,3 +25,19 @@ hl.device({
repeat_delay = 500, repeat_delay = 500,
sensitivity = 0, sensitivity = 0,
}) })
hl.device({
name = "logitech-pro-2-mouse-1",
sensitivity = 0,
accel_profile = "",
left_handed = false, -- left-handed mode handled on the mouse's onboard memory
natural_scroll = false,
scroll_points = "",
})
hl.device({
name = "logitech-g903-ls-1",
sensitivity = 0,
accel_profile = "",
left_handed = false,
natural_scroll = false,
scroll_points = "",
})

View File

@ -1,27 +1,40 @@
#!/usr/bin/env bash #!/usr/bin/env bash
set -euo pipefail set -euo pipefail
keyboards=$(hyprctl devices -j | jq -r '.keyboards[].name') devices=$(hyprctl devices -j)
if [[ -z "$keyboards" ]]; then # Tag each device with its type so the right block can be emitted on selection.
echo "No keyboard devices found" >&2 entries=$(jq -r '
(.keyboards[]?.name | "keyboard\t" + .),
(.mice[]?.name | "mouse\t" + .)
' <<<"$devices")
if [[ -z "$entries" ]]; then
echo "No keyboard or mouse devices found" >&2
exit 1 exit 1
fi fi
if command -v fzf &>/dev/null; then if command -v fzf &>/dev/null; then
selected=$(printf '%s\n' $keyboards | fzf --prompt="Select keyboard: " --height=~10) selected=$(printf '%s\n' "$entries" | fzf --prompt="Select device: " --height=~10 --with-nth=2.. --delimiter='\t')
else else
echo "Select a keyboard device:" >&2 echo "Select a device:" >&2
select selected in $keyboards; do IFS=$'\n'
select selected in $entries; do
[[ -n "$selected" ]] && break [[ -n "$selected" ]] && break
done done
unset IFS
fi fi
[[ -z "$selected" ]] && exit 1 [[ -z "$selected" ]] && exit 1
cat <<EOF type=${selected%%$'\t'*}
name=${selected#*$'\t'}
case "$type" in
keyboard)
cat <<EOF
hl.device({ hl.device({
name = "$selected", name = "$name",
kb_layout = "", kb_layout = "",
kb_variant = "", kb_variant = "",
kb_model = "", kb_model = "",
@ -32,3 +45,17 @@ hl.device({
sensitivity = 0, sensitivity = 0,
}) })
EOF EOF
;;
mouse)
cat <<EOF
hl.device({
name = "$name",
sensitivity = 0,
accel_profile = "",
left_handed = false,
natural_scroll = false,
scroll_points = "",
})
EOF
;;
esac