Merge pull request #135284 from legendofmiracles/weylus

Sandro f18f2d87 cbd06e48

Changed files
+108
nixos
modules
pkgs
applications
graphics
weylus
top-level
+1
nixos/modules/module-list.nix
···
./programs/vim.nix
./programs/wavemon.nix
./programs/waybar.nix
+
./programs/weylus.nix
./programs/wireshark.nix
./programs/wshowkeys.nix
./programs/xfs_quota.nix
+47
nixos/modules/programs/weylus.nix
···
+
{ config, lib, pkgs, ... }:
+
+
with lib;
+
+
let
+
cfg = config.programs.weylus;
+
in
+
{
+
options.programs.weylus = with types; {
+
enable = mkEnableOption "weylus";
+
+
openFirewall = mkOption {
+
type = bool;
+
default = false;
+
description = ''
+
Open ports needed for the functionality of the program.
+
'';
+
};
+
+
users = mkOption {
+
type = listOf str;
+
default = [ ];
+
description = ''
+
To enable stylus and multi-touch support, the user you're going to use must be added to this list.
+
These users can synthesize input events system-wide, even when another user is logged in - untrusted users should not be added.
+
'';
+
};
+
+
package = mkOption {
+
type = package;
+
default = pkgs.weylus;
+
defaultText = "pkgs.weylus";
+
description = "Weylus package to install.";
+
};
+
};
+
config = mkIf cfg.enable {
+
networking.firewall = mkIf cfg.openFirewall {
+
allowedTCPPorts = [ 1701 9001 ];
+
};
+
+
hardware.uinput.enable = true;
+
+
users.groups.uinput.members = cfg.users;
+
+
environment.systemPackages = [ cfg.package ];
+
};
+
}
+58
pkgs/applications/graphics/weylus/default.nix
···
+
{ lib
+
, dbus
+
, stdenv
+
, gst_all_1
+
, xorg
+
, libdrm
+
, libva
+
, fetchzip
+
, copyDesktopItems
+
, fontconfig
+
, libpng
+
, autoPatchelfHook
+
}:
+
+
stdenv.mkDerivation rec {
+
pname = "weylus";
+
version = "0.11.2";
+
+
src = fetchzip {
+
url = "https://github.com/H-M-H/Weylus/releases/download/v${version}/linux.zip";
+
sha256 = "sha256-coA8qUpUgRjVBF/0LZgimx61fTTpdck/AO6e+r2uNu0=";
+
stripRoot = false;
+
};
+
+
installPhase = ''
+
runHook preInstall
+
+
install -Dm755 ./weylus $out/bin/weylus
+
copyDesktopItems ./weylus.desktop
+
+
runHook postInstall
+
'';
+
+
buildInputs = [
+
libpng
+
dbus
+
libdrm
+
fontconfig
+
libva
+
gst_all_1.gst-plugins-base
+
# autoPatchelfHook complains if these are missing, even on wayland
+
xorg.libXft
+
xorg.libXinerama
+
xorg.libXcursor
+
xorg.libXrandr
+
xorg.libXcomposite
+
xorg.libXtst
+
];
+
+
nativeBuildInputs = [ copyDesktopItems autoPatchelfHook ];
+
+
meta = with lib; {
+
description = "Use your tablet as graphic tablet/touch screen on your computer";
+
homepage = "https://github.com/H-M-H/Weylus";
+
license = with licenses; [ agpl3Only ];
+
maintainers = with maintainers; [ legendofmiracles ];
+
};
+
}
+2
pkgs/top-level/all-packages.nix
···
weidu = callPackage ../tools/games/weidu { };
+
weylus = callPackage ../applications/graphics/weylus { };
+
gfshare = callPackage ../tools/security/gfshare { };
gobgp = callPackage ../tools/networking/gobgp { };