wshowkeys: init at 2019-09-26

Changed files
+60
nixos
modules
pkgs
tools
wayland
wshowkeys
top-level
+1
nixos/modules/module-list.nix
···
./programs/wavemon.nix
./programs/waybar.nix
./programs/wireshark.nix
+
./programs/wshowkeys.nix
./programs/x2goserver.nix
./programs/xfs_quota.nix
./programs/xonsh.nix
+22
nixos/modules/programs/wshowkeys.nix
···
+
{ config, lib, pkgs, ... }:
+
+
with lib;
+
+
let
+
cfg = config.programs.wshowkeys;
+
in {
+
meta.maintainers = with maintainers; [ primeos ];
+
+
options = {
+
programs.wshowkeys = {
+
enable = mkEnableOption ''
+
wshowkeys (displays keypresses on screen on supported Wayland
+
compositors). It requires root permissions to read input events, but
+
these permissions are dropped after startup'';
+
};
+
};
+
+
config = mkIf cfg.enable {
+
security.wrappers.wshowkeys.source = "${pkgs.wshowkeys}/bin/wshowkeys";
+
};
+
}
+35
pkgs/tools/wayland/wshowkeys/default.nix
···
+
{ stdenv, fetchurl
+
, meson, pkg-config, wayland, ninja
+
, cairo, libinput, pango, wayland-protocols, libxkbcommon
+
}:
+
+
let
+
version = "2019-09-26";
+
commit = "a9bf6bca0361b57c67e4627bf53363a7048457fd";
+
in stdenv.mkDerivation rec {
+
pname = "wshowkeys-unstable";
+
inherit version;
+
+
src = fetchurl {
+
url = "https://git.sr.ht/~sircmpwn/wshowkeys/archive/${commit}.tar.gz";
+
sha256 = "0b21z3csd3v4lw5b8a6lpx5gfsdk0gjmm8906sa72hyfd1p39b7g";
+
};
+
+
nativeBuildInputs = [ meson pkg-config wayland ninja ];
+
buildInputs = [ cairo libinput pango wayland-protocols libxkbcommon ];
+
+
meta = with stdenv.lib; {
+
description = "Displays keys being pressed on a Wayland session";
+
longDescription = ''
+
Displays keypresses on screen on supported Wayland compositors (requires
+
wlr_layer_shell_v1 support).
+
Note: This tool requires root permissions to read input events, but these
+
permissions are dropped after startup. The NixOS module provides such a
+
setuid binary (use "programs.wshowkeys.enable = true;").
+
'';
+
homepage = "https://git.sr.ht/~sircmpwn/wshowkeys";
+
license = licenses.mit;
+
platforms = platforms.unix;
+
maintainers = with maintainers; [ primeos ];
+
};
+
}
+2
pkgs/top-level/all-packages.nix
···
wrangler = callPackage ../development/tools/wrangler { };
+
wshowkeys = callPackage ../tools/wayland/wshowkeys { };
+
xkcdpass = with pythonPackages; toPythonApplication xkcdpass;
xob = callPackage ../tools/X11/xob { };