fix: Properly monitor keyboard ability of Surface tablets

This commit is contained in:
UGA Innovation Factory
2025-12-08 17:47:59 +00:00
committed by Hunter Halloran
parent 6ea6185d7c
commit 0b90280d9d

View File

@@ -55,9 +55,12 @@
}; };
}; };
security.pam.services."login".enableGnomeKeyring = true; i18n.inputMethod = {
security.pam.services."gdm-password".enableGnomeKeyring = true; enabled = "ibus";
services.gnome.gnome-keyring.enable = true; ibus.engines = [ pkgs.ibus-engines.m17n ];
};
services.gnome.gnome-keyring.enable = inputs.nixpkgs.lib.mkForce false;
systemd.user.services.squeekboard = { systemd.user.services.squeekboard = {
description = "Squeekboard on-screen keyboard"; description = "Squeekboard on-screen keyboard";
@@ -80,6 +83,22 @@
"/run/current-system/sw/share/gsettings-schemas/${pkgs.gsettings-desktop-schemas.name}/glib-2.0/schemas"; "/run/current-system/sw/share/gsettings-schemas/${pkgs.gsettings-desktop-schemas.name}/glib-2.0/schemas";
}; };
services.udev.extraRules = ''
# These shouldn't be counted as keyboards, but should still produce events
ACTION=="add|change", KERNEL=="event*", ATTRS{name}=="Video Bus", \
ENV{ID_INPUT_KEYBOARD}="", ENV{ID_INPUT_KEY}=""
ACTION=="add|change", KERNEL=="event*", ATTRS{name}=="Power Button", \
ENV{ID_INPUT_KEYBOARD}="", ENV{ID_INPUT_KEY}=""
ACTION=="add|change", KERNEL=="event*", ATTRS{name}=="Intel HID events", \
ENV{ID_INPUT_KEYBOARD}="", ENV{ID_INPUT_KEY}=""
ACTION=="add|change", KERNEL=="event*", ATTRS{name}=="Intel HID 5 button array", \
ENV{ID_INPUT_KEYBOARD}="", ENV{ID_INPUT_KEY}=""
ACTION=="change", SUBSYSTEM=="switch", ATTRS{name}=="Intel HID switches", \
ENV{SW_TABLET_MODE}="1"
ACTION=="add|change", KERNEL=="event*", ATTRS{name}=="AT Translated Set 2 keyboard", \
ENV{ID_INPUT_KEY}="", ENV{ID_INPUT_KEYBOARD}=""
'';
systemd.user.services."force-osk" = { systemd.user.services."force-osk" = {
description = "Force-enable GNOME OSK after session init"; description = "Force-enable GNOME OSK after session init";
wantedBy = [ "graphical-session.target" ]; wantedBy = [ "graphical-session.target" ];