diff --git a/sw-kiosk.nix b/sw-kiosk.nix index 68be3c3..86c93fd 100644 --- a/sw-kiosk.nix +++ b/sw-kiosk.nix @@ -54,10 +54,13 @@ }]; }; }; + + i18n.inputMethod = { + enabled = "ibus"; + ibus.engines = [ pkgs.ibus-engines.m17n ]; + }; - security.pam.services."login".enableGnomeKeyring = true; - security.pam.services."gdm-password".enableGnomeKeyring = true; - services.gnome.gnome-keyring.enable = true; + services.gnome.gnome-keyring.enable = inputs.nixpkgs.lib.mkForce false; systemd.user.services.squeekboard = { 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"; }; + 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" = { description = "Force-enable GNOME OSK after session init"; wantedBy = [ "graphical-session.target" ];