1{
2 config,
3 lib,
4 pkgs,
5 ...
6}:
7let
8 cfg = config.programs.wshowkeys;
9in
10{
11 options = {
12 programs.wshowkeys = {
13 enable = lib.mkEnableOption ''
14 wshowkeys (displays keypresses on screen on supported Wayland
15 compositors). It requires root permissions to read input events, but
16 these permissions are dropped after startup'';
17 package = lib.mkPackageOption pkgs "wshowkeys" { };
18 };
19 };
20
21 config = lib.mkIf cfg.enable {
22 security.wrappers.wshowkeys = {
23 setuid = true;
24 owner = "root";
25 group = "root";
26 source = lib.getExe cfg.package;
27 };
28 };
29
30 meta.maintainers = with lib.maintainers; [ primeos ];
31}