diff options
Diffstat (limited to 'nixpkgs/pkgs/tools/wayland')
27 files changed, 994 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/tools/wayland/cliphist/default.nix b/nixpkgs/pkgs/tools/wayland/cliphist/default.nix new file mode 100644 index 000000000000..9ccad4397dd9 --- /dev/null +++ b/nixpkgs/pkgs/tools/wayland/cliphist/default.nix @@ -0,0 +1,23 @@ +{ lib, buildGoModule, fetchFromGitHub }: + +buildGoModule rec { + pname = "cliphist"; + version = "0.3.0"; + + src = fetchFromGitHub { + owner = "sentriz"; + repo = pname; + rev = "v${version}"; + sha256 = "sha256-fx33m7DCp5N9VGI/H/IO66ECdFLobRRAAuRGNu4gzSk="; + }; + + vendorSha256 = "sha256-UrKSDvskGwHjwkb/fjvaJZ8xXFD98BFeSJxwJpc8A+M="; + + meta = with lib; { + description = "Wayland clipboard manager"; + homepage = "https://github.com/sentriz/cliphist"; + license = licenses.gpl3Only; + platforms = platforms.linux; + maintainers = with maintainers; [ dit7ya ]; + }; +} diff --git a/nixpkgs/pkgs/tools/wayland/clipman/default.nix b/nixpkgs/pkgs/tools/wayland/clipman/default.nix new file mode 100644 index 000000000000..3c974f4cb779 --- /dev/null +++ b/nixpkgs/pkgs/tools/wayland/clipman/default.nix @@ -0,0 +1,37 @@ +{ buildGoModule +, fetchFromGitHub +, lib +, wl-clipboard +, makeWrapper +}: + +buildGoModule rec { + pname = "clipman"; + version = "1.6.1"; + + src = fetchFromGitHub { + owner = "yory8"; + repo = pname; + rev = "v${version}"; + sha256 = "sha256-aZvtgeaS3xxl5/A/Pwlbu0sI7bw2MONbEIK42IDcMy0="; + }; + + vendorSha256 = "sha256-Z/sVCJz/igPDdeczC6pemLub6X6z4ZGlBwBmRsEnXKI="; + + doCheck = false; + + nativeBuildInputs = [ makeWrapper ]; + + postInstall = '' + wrapProgram $out/bin/clipman \ + --prefix PATH : ${lib.makeBinPath [ wl-clipboard ]} + ''; + + meta = with lib; { + homepage = "https://github.com/yory8/clipman"; + description = "A simple clipboard manager for Wayland"; + license = licenses.gpl3Only; + maintainers = with maintainers; [ ma27 ]; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/tools/wayland/kanshi/default.nix b/nixpkgs/pkgs/tools/wayland/kanshi/default.nix new file mode 100644 index 000000000000..6373af70b2e8 --- /dev/null +++ b/nixpkgs/pkgs/tools/wayland/kanshi/default.nix @@ -0,0 +1,40 @@ +{ lib +, stdenv +, fetchFromGitHub +, meson +, ninja +, pkg-config +, scdoc +, wayland +}: + +stdenv.mkDerivation rec { + pname = "kanshi"; + version = "1.2.0"; + + src = fetchFromGitHub { + owner = "emersion"; + repo = "kanshi"; + rev = "v${version}"; + sha256 = "sha256-RVMeS2qEjTYK6r7IwMeFSqfRpKR8di2eQXhewfhTnYI="; + }; + + nativeBuildInputs = [ meson ninja pkg-config scdoc ]; + buildInputs = [ wayland ]; + + meta = with lib; { + homepage = "https://github.com/emersion/kanshi"; + description = "Dynamic display configuration tool"; + longDescription = '' + kanshi allows you to define output profiles that are automatically enabled + and disabled on hotplug. For instance, this can be used to turn a laptop's + internal screen off when docked. + + kanshi can be used on Wayland compositors supporting the + wlr-output-management protocol. + ''; + license = licenses.mit; + maintainers = with maintainers; [ balsoft ]; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/tools/wayland/oguri/default.nix b/nixpkgs/pkgs/tools/wayland/oguri/default.nix new file mode 100644 index 000000000000..458ea310a01d --- /dev/null +++ b/nixpkgs/pkgs/tools/wayland/oguri/default.nix @@ -0,0 +1,39 @@ +{ lib +, stdenv +, fetchFromGitHub +, pkg-config +, meson +, ninja +, cairo +, gdk-pixbuf +, wayland +, wayland-protocols +}: + +stdenv.mkDerivation rec { + pname = "oguri"; + version = "unstable-2020-12-19"; + + src = fetchFromGitHub { + owner = "vilhalmer"; + repo = pname; + rev = "6937fee10a9b0ef3ad8f94f606c0e0d9e7dec564"; + sha256 = "sXNvpI/YPDPd2cXQAfRO4ut21gSCXxbo1DpaZmHJDYQ="; + }; + + nativeBuildInputs = [ pkg-config meson ninja ]; + buildInputs = [ + cairo + gdk-pixbuf + wayland + wayland-protocols + ]; + + meta = with lib; { + homepage = "https://github.com/vilhalmer/oguri/"; + description = "A very nice animated wallpaper daemon for Wayland compositors"; + license = licenses.mit; + maintainers = with maintainers; [ AndersonTorres ]; + platforms = platforms.unix; + }; +} diff --git a/nixpkgs/pkgs/tools/wayland/sirula/default.nix b/nixpkgs/pkgs/tools/wayland/sirula/default.nix new file mode 100644 index 000000000000..c95cbd00c5d5 --- /dev/null +++ b/nixpkgs/pkgs/tools/wayland/sirula/default.nix @@ -0,0 +1,32 @@ +{ lib +, fetchFromGitHub +, rustPlatform +, pkg-config +, gtk3 +, gtk-layer-shell +}: + +rustPlatform.buildRustPackage rec { + pname = "sirula"; + version = "unstable-2021-10-12"; + + src = fetchFromGitHub { + owner = "DorianRudolph"; + repo = "sirula"; + rev = "b300cabde03ec4d8c28ed84e318166b675fb4a77"; + sha256 = "0pxdgjpqaf1bq1y1flafg0ksk8548rif6pfbw0lp31p655pq95c8"; + }; + + cargoSha256 = "175rl09jmnj8pd5isyp2chnn66vdz1c16fgqhnjsxvbcasmn8vdj"; + + nativeBuildInputs = [ pkg-config ]; + + buildInputs = [ gtk3 gtk-layer-shell ]; + + meta = with lib; { + description = "Simple app launcher for wayland written in rust"; + homepage = "https://github.com/DorianRudolph/sirula"; + license = with licenses; [ gpl3Plus ]; + maintainers = with maintainers; [ twitchyliquid64 ]; + }; +} diff --git a/nixpkgs/pkgs/tools/wayland/slurp/default.nix b/nixpkgs/pkgs/tools/wayland/slurp/default.nix new file mode 100644 index 000000000000..1105813550fb --- /dev/null +++ b/nixpkgs/pkgs/tools/wayland/slurp/default.nix @@ -0,0 +1,47 @@ +{ lib +, stdenv +, fetchFromGitHub +, meson +, ninja +, pkg-config +, cairo +, libxkbcommon +, wayland +, wayland-protocols +, buildDocs ? true, scdoc +}: + +stdenv.mkDerivation rec { + pname = "slurp"; + version = "1.3.2"; + + src = fetchFromGitHub { + owner = "emersion"; + repo = "slurp"; + rev = "v${version}"; + sha256 = "sha256-5ZB34rqLyZmfjT/clxNRDmF0qgITFZ5xt/gIEXQzvQE="; + }; + + nativeBuildInputs = [ + meson + ninja + pkg-config + ] ++ lib.optional buildDocs scdoc; + + buildInputs = [ + cairo + libxkbcommon + wayland + wayland-protocols + ]; + + mesonFlags = lib.optional buildDocs "-Dman-pages=enabled"; + + meta = with lib; { + description = "Select a region in a Wayland compositor"; + homepage = "https://github.com/emersion/slurp"; + license = licenses.mit; + maintainers = with maintainers; [ buffet ]; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/tools/wayland/swaycwd/default.nix b/nixpkgs/pkgs/tools/wayland/swaycwd/default.nix new file mode 100644 index 000000000000..9214f38b3303 --- /dev/null +++ b/nixpkgs/pkgs/tools/wayland/swaycwd/default.nix @@ -0,0 +1,37 @@ +{ lib +, nimPackages +, fetchFromGitLab +, enableShells ? [ "bash" "zsh" "fish" "sh" "posh" ] +}: +nimPackages.buildNimPackage rec{ + pname = "swaycwd"; + version = "0.0.2"; + + src = fetchFromGitLab { + owner = "cab404"; + repo = pname; + rev = "v${version}"; + hash = "sha256-OZWOPtOqcX+fVQCxWntrn98EzFu70WH55rfYCPDMSKk="; + }; + + preConfigure = '' + { + echo 'let enabledShells: seq[string] = @${builtins.toJSON enableShells}' + echo 'export enabledShells' + } > shells.nim + cat << EOF > swaycwd.nimble + srcDir = "." + bin = "swaycwd" + EOF + ''; + + nimFlags = [ "--opt:speed" ]; + + meta = with lib; { + homepage = "https://gitlab.com/cab404/swaycwd"; + description = "Returns cwd for shell in currently focused sway window, or home directory if cannot find shell"; + maintainers = with maintainers; [ cab404 ]; + platforms = platforms.linux; + license = licenses.gpl3Only; + }; +} diff --git a/nixpkgs/pkgs/tools/wayland/swaykbdd/default.nix b/nixpkgs/pkgs/tools/wayland/swaykbdd/default.nix new file mode 100644 index 000000000000..4584018596df --- /dev/null +++ b/nixpkgs/pkgs/tools/wayland/swaykbdd/default.nix @@ -0,0 +1,24 @@ +{ lib, stdenv, fetchFromGitHub, meson, ninja, json_c, pkg-config }: + +stdenv.mkDerivation rec { + pname = "swaykbdd"; + version = "1.0"; + + src = fetchFromGitHub { + owner = "artemsen"; + repo = "swaykbdd"; + rev = "v${version}"; + sha256 = "101mbf7pvm4ykmkh29g5xswrzdhdwq0rslzxqqfd5ksf1fphzgxd"; + }; + + nativeBuildInputs = [ meson ninja pkg-config ]; + buildInputs = [ json_c ]; + + meta = with lib; { + description = "Per-window keyboard layout for Sway"; + homepage = "https://github.com/artemsen/swaykbdd"; + license = licenses.mit; + maintainers = with maintainers; [ ivankovnatsky ]; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/tools/wayland/swayr/default.nix b/nixpkgs/pkgs/tools/wayland/swayr/default.nix new file mode 100644 index 000000000000..9ccc13532c2a --- /dev/null +++ b/nixpkgs/pkgs/tools/wayland/swayr/default.nix @@ -0,0 +1,30 @@ +{ lib, fetchFromSourcehut, rustPlatform }: + +rustPlatform.buildRustPackage rec { + pname = "swayr"; + version = "0.11.2"; + + src = fetchFromSourcehut { + owner = "~tsdh"; + repo = "swayr"; + rev = "v${version}"; + sha256 = "sha256-IjOoQbKCiwuoCsh2bOmvcSH3/9KMmavmn1Ib1TLBH8w="; + }; + + cargoSha256 = "sha256-EYaISBnWKplKUAKa9SZufWcykeR/qeApvqwIGB9jt3Q="; + + patches = [ + ./icon-paths.patch + ]; + + preCheck = '' + export HOME=$TMPDIR + ''; + + meta = with lib; { + description = "A window switcher (and more) for sway"; + homepage = "https://git.sr.ht/~tsdh/swayr"; + license = with licenses; [ gpl3Plus ]; + maintainers = with maintainers; [ artturin ]; + }; +} diff --git a/nixpkgs/pkgs/tools/wayland/swayr/icon-paths.patch b/nixpkgs/pkgs/tools/wayland/swayr/icon-paths.patch new file mode 100644 index 000000000000..8fafc4c4153c --- /dev/null +++ b/nixpkgs/pkgs/tools/wayland/swayr/icon-paths.patch @@ -0,0 +1,17 @@ +diff --git a/src/config.rs b/src/config.rs +index de7d04b..291114b 100644 +--- a/src/config.rs ++++ b/src/config.rs +@@ -197,6 +197,12 @@ impl Default for Format { + ), + urgency_end: Some("</span>".to_string()), + icon_dirs: Some(vec![ ++ "/run/current-system/sw/share/icons/hicolor/scalable/apps".to_string(), ++ "/run/current-system/sw/share/icons/hicolor/48x48/apps".to_string(), ++ "/run/current-system/sw/share/pixmaps".to_string(), ++ "~/.nix-profile/share/icons/hicolor/scalable/apps".to_string(), ++ "~/.nix-profile/share/icons/hicolor/48x48/apps".to_string(), ++ "~/.nix-profile/share/pixmaps".to_string(), + "/usr/share/icons/hicolor/scalable/apps".to_string(), + "/usr/share/icons/hicolor/48x48/apps".to_string(), + "/usr/share/pixmaps".to_string(), diff --git a/nixpkgs/pkgs/tools/wayland/wayland-proxy-virtwl/default.nix b/nixpkgs/pkgs/tools/wayland/wayland-proxy-virtwl/default.nix new file mode 100644 index 000000000000..4008461cc15f --- /dev/null +++ b/nixpkgs/pkgs/tools/wayland/wayland-proxy-virtwl/default.nix @@ -0,0 +1,45 @@ +{ lib +, fetchFromGitHub +, ocamlPackages +, buildPackages +}: + +ocamlPackages.buildDunePackage rec { + pname = "wayland-proxy-virtwl"; + version = "unstable-2021-12-05"; + + src = fetchFromGitHub { + owner = "talex5"; + repo = pname; + rev = "d7f58d405514dd031f2f12e402c8c6a58e62a885"; + sha256 = "0riwaqdlrx2gzkrb02v4zdl4ivpmz9g5w87lj3bhqs0l3s6c249s"; + }; + + postPatch = '' + # no need to vendor + rm -r ocaml-wayland + ''; + + useDune2 = true; + minimumOCamlVersion = "4.08"; + + nativeBuildInputs = [ + buildPackages.ocamlPackages.ppx_cstruct + ]; + + buildInputs = with ocamlPackages; [ + wayland + cmdliner + logs + cstruct-lwt + ]; + + doCheck = true; + + meta = { + homepage = "https://github.com/talex5/wayland-virtwl-proxy"; + description = "Proxy Wayland connections across a VM boundary"; + license = lib.licenses.asl20; + maintainers = [ lib.maintainers.sternenseemann ]; + }; +} diff --git a/nixpkgs/pkgs/tools/wayland/wayland-utils/default.nix b/nixpkgs/pkgs/tools/wayland/wayland-utils/default.nix new file mode 100644 index 000000000000..16bce1723aa6 --- /dev/null +++ b/nixpkgs/pkgs/tools/wayland/wayland-utils/default.nix @@ -0,0 +1,30 @@ +{ lib, stdenv, fetchurl +, meson, pkg-config, ninja, wayland-scanner +, wayland, wayland-protocols +}: + +stdenv.mkDerivation rec { + pname = "wayland-utils"; + version = "1.0.0"; + + src = fetchurl { + url = "https://wayland.freedesktop.org/releases/${pname}-${version}.tar.xz"; + sha256 = "1h38l850ww6hxjb1l8iwa33nkbz8q88bw6lh0aryjyp8b16crzk4"; + }; + + nativeBuildInputs = [ meson pkg-config ninja wayland-scanner ]; + buildInputs = [ wayland wayland-protocols ]; + + meta = with lib; { + description = "Wayland utilities (wayland-info)"; + longDescription = '' + A collection of Wayland related utilities: + - wayland-info: A utility for displaying information about the Wayland + protocols supported by a Wayland compositor. + ''; + homepage = "https://gitlab.freedesktop.org/wayland/wayland-utils"; + license = licenses.mit; # Expat version + platforms = platforms.linux; + maintainers = with maintainers; [ primeos ]; + }; +} diff --git a/nixpkgs/pkgs/tools/wayland/wdomirror/default.nix b/nixpkgs/pkgs/tools/wayland/wdomirror/default.nix new file mode 100644 index 000000000000..8fddf51f539d --- /dev/null +++ b/nixpkgs/pkgs/tools/wayland/wdomirror/default.nix @@ -0,0 +1,38 @@ +{ lib +, stdenv +, fetchFromGitHub +, meson +, ninja +, pkg-config +, wayland +, wayland-protocols +}: + +stdenv.mkDerivation { + pname = "wdomirror"; + version = "unstable-2021-01-08"; + + src = fetchFromGitHub { + owner = "progandy"; + repo = "wdomirror"; + rev = "e4a4934e6f739909fbf346cbc001c72690b5c906"; + sha256 = "1fz0sajhdjqas3l6mpik8w1k15wbv65hgh9r9vdgfqvw5l6cx7jv"; + }; + + nativeBuildInputs = [ meson ninja pkg-config wayland-protocols ]; + + buildInputs = [ wayland ]; + + installPhase = '' + runHook preInstall + install -m755 -D wdomirror $out/bin/wdomirror + runHook postInstall + ''; + + meta = with lib; { + description = "Mirrors an output of a wlroots compositor to a window"; + license = licenses.mit; + platforms = platforms.unix; + maintainers = with maintainers; [ jpas ]; + }; +} diff --git a/nixpkgs/pkgs/tools/wayland/wev/default.nix b/nixpkgs/pkgs/tools/wayland/wev/default.nix new file mode 100644 index 000000000000..d04cee342b7e --- /dev/null +++ b/nixpkgs/pkgs/tools/wayland/wev/default.nix @@ -0,0 +1,39 @@ +{ lib +, stdenv +, fetchFromSourcehut +, pkg-config +, scdoc +, wayland-scanner +, wayland +, wayland-protocols +, libxkbcommon +}: + +stdenv.mkDerivation rec { + pname = "wev"; + version = "1.0.0"; + + src = fetchFromSourcehut { + owner = "~sircmpwn"; + repo = pname; + rev = version; + sha256 = "0l71v3fzgiiv6xkk365q1l08qvaymxd4kpaya6r2g8yzkr7i2hms"; + }; + + nativeBuildInputs = [ pkg-config scdoc wayland-scanner ]; + buildInputs = [ wayland wayland-protocols libxkbcommon ]; + + installFlags = [ "PREFIX=$(out)" ]; + + meta = with lib; { + homepage = "https://git.sr.ht/~sircmpwn/wev"; + description = "Wayland event viewer"; + longDescription = '' + This is a tool for debugging events on a Wayland window, analagous to the + X11 tool xev. + ''; + license = licenses.mit; + maintainers = with maintainers; [ primeos ]; + platforms = platforms.unix; + }; +} diff --git a/nixpkgs/pkgs/tools/wayland/wl-clipboard-x11/default.nix b/nixpkgs/pkgs/tools/wayland/wl-clipboard-x11/default.nix new file mode 100644 index 000000000000..5e87342dff89 --- /dev/null +++ b/nixpkgs/pkgs/tools/wayland/wl-clipboard-x11/default.nix @@ -0,0 +1,29 @@ +{ lib, stdenv, fetchFromGitHub, wl-clipboard }: + +stdenv.mkDerivation rec { + pname = "wl-clipboard-x11"; + version = "5"; + + src = fetchFromGitHub { + owner = "brunelli"; + repo = pname; + rev = "v${version}"; + hash = "sha256-i+oF1Mu72O5WPTWzqsvo4l2CERWWp4Jq/U0DffPZ8vg="; + }; + + makeFlags = [ "PREFIX=${placeholder "out"}" ]; + + postPatch = '' + substituteInPlace src/wl-clipboard-x11 \ + --replace '$(command -v wl-copy)' ${wl-clipboard}/bin/wl-copy \ + --replace '$(command -v wl-paste)' ${wl-clipboard}/bin/wl-paste + ''; + + meta = with lib; { + description = "A wrapper to use wl-clipboard as a drop-in replacement for X11 clipboard tools"; + homepage = "https://github.com/brunelli/wl-clipboard-x11"; + license = licenses.gpl3Plus; + maintainers = with maintainers; [ samuelgrf ]; + mainProgram = "xclip"; + }; +} diff --git a/nixpkgs/pkgs/tools/wayland/wl-clipboard/default.nix b/nixpkgs/pkgs/tools/wayland/wl-clipboard/default.nix new file mode 100644 index 000000000000..0bc195e96260 --- /dev/null +++ b/nixpkgs/pkgs/tools/wayland/wl-clipboard/default.nix @@ -0,0 +1,33 @@ +{ lib +, stdenv +, fetchFromGitHub +, meson +, ninja +, pkg-config +, wayland +, wayland-protocols +}: + +stdenv.mkDerivation rec { + pname = "wl-clipboard"; + version = "2.0.0"; + + src = fetchFromGitHub { + owner = "bugaevc"; + repo = "wl-clipboard"; + rev = "v${version}"; + sha256 = "0c4w87ipsw09aii34szj9p0xfy0m00wyjpll0gb0aqmwa60p0c5d"; + }; + + nativeBuildInputs = [ meson ninja pkg-config wayland-protocols ]; + buildInputs = [ wayland ]; + + meta = with lib; { + homepage = "https://github.com/bugaevc/wl-clipboard"; + description = "Command-line copy/paste utilities for Wayland"; + license = licenses.gpl3Plus; + maintainers = with maintainers; [ dywedir ]; + platforms = platforms.linux; + }; +} +# TODO: is wayland-protocols a nativeBuildInput or a buildInput? diff --git a/nixpkgs/pkgs/tools/wayland/wl-mirror/default.nix b/nixpkgs/pkgs/tools/wayland/wl-mirror/default.nix new file mode 100644 index 000000000000..4476c5be93c7 --- /dev/null +++ b/nixpkgs/pkgs/tools/wayland/wl-mirror/default.nix @@ -0,0 +1,62 @@ +{ lib +, stdenv +, fetchFromGitHub +, cmake +, pkg-config +, wayland +, wayland-protocols +, wayland-scanner +, wlr-protocols +, libGL +, installExampleScripts ? true +, makeWrapper +, pipectl +, slurp +, rofi +}: + +let + wl-present-binpath = lib.makeBinPath [ + pipectl + rofi + slurp + (placeholder "out") + ]; +in + +stdenv.mkDerivation rec { + pname = "wl-mirror"; + version = "0.8.1"; + + src = fetchFromGitHub { + owner = "Ferdi265"; + repo = "wl-mirror"; + rev = "v${version}"; + hash = "sha256-P5rvZPpIStlOSGj3PaiXAMPWqgWpkC+4IrixEMwoGJU="; + }; + + patchPhase = '' + substituteInPlace CMakeLists.txt \ + --replace 'WL_PROTOCOL_DIR "/usr' 'WL_PROTOCOL_DIR "${wayland-protocols}' \ + --replace 'WLR_PROTOCOL_DIR "/usr' 'WLR_PROTOCOL_DIR "${wlr-protocols}' + ''; + + cmakeFlags = [ + "-DINSTALL_EXAMPLE_SCRIPTS=${if installExampleScripts then "ON" else "OFF"}" + ]; + + postInstall = lib.optionalString installExampleScripts '' + wrapProgram $out/bin/wl-present --prefix PATH ":" ${wl-present-binpath} + ''; + + nativeBuildInputs = [ cmake pkg-config wayland-scanner makeWrapper ]; + buildInputs = [ libGL wayland wayland-protocols wlr-protocols ]; + + meta = with lib; { + homepage = "https://github.com/Ferdi265/wl-mirror"; + description = "Mirrors an output onto a Wayland surface."; + license = licenses.gpl3; + maintainers = with maintainers; [ synthetica twitchyliquid64 ]; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/tools/wayland/wlogout/default.nix b/nixpkgs/pkgs/tools/wayland/wlogout/default.nix new file mode 100644 index 000000000000..d9d442126010 --- /dev/null +++ b/nixpkgs/pkgs/tools/wayland/wlogout/default.nix @@ -0,0 +1,56 @@ +{ lib +, stdenv +, fetchFromGitHub +, pkg-config +, meson +, ninja +, scdoc +, gtk3 +, libxkbcommon +, wayland +, wayland-protocols +, gtk-layer-shell +}: + +stdenv.mkDerivation rec { + pname = "wlogout"; + version = "1.1.1"; + + src = fetchFromGitHub { + owner = "ArtsyMacaw"; + repo = "wlogout"; + rev = version; + sha256 = "cTscfx+erHVFHwwYpN7pADQWt5sq75sQSyXSP/H8kOs="; + }; + + nativeBuildInputs = [ pkg-config meson ninja scdoc ]; + buildInputs = [ + gtk3 + libxkbcommon + wayland + wayland-protocols + gtk-layer-shell + ]; + + postPatch = '' + substituteInPlace style.css \ + --replace "/usr/share/wlogout" "$out/share/${pname}" + + substituteInPlace main.c \ + --replace "/etc/wlogout" "$out/etc/${pname}" + ''; + + mesonFlags = [ + "--datadir=${placeholder "out"}/share" + "--sysconfdir=${placeholder "out"}/etc" + ]; + + meta = with lib; { + homepage = "https://github.com/ArtsyMacaw/wlogout"; + description = "A wayland based logout menu"; + license = licenses.mit; + maintainers = with maintainers; [ AndersonTorres ]; + platforms = platforms.unix; + }; +} +# TODO: shell completions diff --git a/nixpkgs/pkgs/tools/wayland/wlr-randr/default.nix b/nixpkgs/pkgs/tools/wayland/wlr-randr/default.nix new file mode 100644 index 000000000000..e2c941998a99 --- /dev/null +++ b/nixpkgs/pkgs/tools/wayland/wlr-randr/default.nix @@ -0,0 +1,31 @@ +{ lib +, stdenv +, fetchFromGitHub +, meson +, ninja +, pkg-config +, wayland +}: + +stdenv.mkDerivation rec { + pname = "wlr-randr"; + version = "0.2.0"; + + src = fetchFromGitHub { + owner = "emersion"; + repo = pname; + rev = "v${version}"; + sha256 = "sha256-JeSxFXSFxcTwJz9EaLb18wtD4ZIT+ATeYM5OyDTJhDQ="; + }; + + nativeBuildInputs = [ meson ninja pkg-config ]; + buildInputs = [ wayland ]; + + meta = with lib; { + description = "An xrandr clone for wlroots compositors"; + homepage = "https://github.com/emersion/wlr-randr"; + license = licenses.mit; + maintainers = with maintainers; [ ma27 ]; + platforms = platforms.unix; + }; +} diff --git a/nixpkgs/pkgs/tools/wayland/wlrctl/default.nix b/nixpkgs/pkgs/tools/wayland/wlrctl/default.nix new file mode 100644 index 000000000000..7cb54d381b0b --- /dev/null +++ b/nixpkgs/pkgs/tools/wayland/wlrctl/default.nix @@ -0,0 +1,26 @@ +{ lib, stdenv, fetchFromSourcehut, meson, pkg-config, scdoc, ninja, libxkbcommon, wayland }: + +stdenv.mkDerivation rec { + pname = "wlrctl"; + version = "0.2.1"; + + src = fetchFromSourcehut { + owner = "~brocellous"; + repo = "wlrctl"; + rev = "v${version}"; + sha256 = "039cxc82k7x473n6d65jray90rj35qmfdmr390zy0c7ic7vn4b78"; + }; + + nativeBuildInputs = [ meson pkg-config scdoc ninja ]; + buildInputs = [ libxkbcommon wayland ]; + + NIX_CFLAGS_COMPILE = "-Wno-error=type-limits"; + + meta = with lib; { + description = "Command line utility for miscellaneous wlroots Wayland extensions"; + homepage = "https://git.sr.ht/~brocellous/wlrctl"; + license = licenses.mit; + maintainers = with maintainers; [ puffnfresh artturin ]; + platforms = platforms.unix; + }; +} diff --git a/nixpkgs/pkgs/tools/wayland/wlsunset/default.nix b/nixpkgs/pkgs/tools/wayland/wlsunset/default.nix new file mode 100644 index 000000000000..7ced81616f63 --- /dev/null +++ b/nixpkgs/pkgs/tools/wayland/wlsunset/default.nix @@ -0,0 +1,32 @@ +{ lib, stdenv, fetchFromSourcehut +, meson, pkg-config, ninja, wayland-scanner, scdoc +, wayland, wayland-protocols +}: + +stdenv.mkDerivation rec { + pname = "wlsunset"; + version = "0.2.0"; + + src = fetchFromSourcehut { + owner = "~kennylevinsen"; + repo = pname; + rev = version; + sha256 = "0hhsddh3rs066rbsjksr8kcwg8lvglbvs67dq0r5wx5c1xcwb51w"; + }; + + nativeBuildInputs = [ meson pkg-config ninja wayland-scanner scdoc ]; + buildInputs = [ wayland wayland-protocols ]; + + meta = with lib; { + description = "Day/night gamma adjustments for Wayland"; + longDescription = '' + Day/night gamma adjustments for Wayland compositors supporting + wlr-gamma-control-unstable-v1. + ''; + homepage = "https://sr.ht/~kennylevinsen/wlsunset/"; + changelog = "https://git.sr.ht/~kennylevinsen/wlsunset/refs/${version}"; + license = licenses.mit; + platforms = platforms.unix; + maintainers = with maintainers; [ primeos ]; + }; +} diff --git a/nixpkgs/pkgs/tools/wayland/wluma/default.nix b/nixpkgs/pkgs/tools/wayland/wluma/default.nix new file mode 100644 index 000000000000..2921e3858b41 --- /dev/null +++ b/nixpkgs/pkgs/tools/wayland/wluma/default.nix @@ -0,0 +1,35 @@ +{ lib +, fetchFromGitHub +, makeWrapper +, rustPlatform +, vulkan-loader +}: + +rustPlatform.buildRustPackage rec { + pname = "wluma"; + version = "2.0.1"; + + src = fetchFromGitHub { + owner = "maximbaz"; + repo = "wluma"; + rev = version; + sha256 = "sha256-fqBEJS+SQoPNNEw6jyoiZjq/chY73bQ+cM21F8RdNPE="; + }; + + nativeBuildInputs = [ makeWrapper ]; + + postInstall = '' + wrapProgram $out/bin/wluma \ + --prefix LD_LIBRARY_PATH : "${lib.makeLibraryPath [ vulkan-loader ]}" + ''; + + cargoSha256 = "sha256-dZBA6VeJRHmqpazRwjLP1kYcYYN5LCFWkIaXqp4/RkQ="; + + meta = with lib; { + description = "Automatic brightness adjustment based on screen contents and ALS"; + homepage = "https://github.com/maximbaz/wluma"; + license = licenses.isc; + maintainers = with maintainers; [ yevhenshymotiuk ]; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/tools/wayland/wob/default.nix b/nixpkgs/pkgs/tools/wayland/wob/default.nix new file mode 100644 index 000000000000..7f5b7b61c628 --- /dev/null +++ b/nixpkgs/pkgs/tools/wayland/wob/default.nix @@ -0,0 +1,43 @@ +{ lib +, stdenv +, fetchFromGitHub +, meson +, ninja +, pkg-config +, scdoc +, wayland-scanner +, wayland +, wayland-protocols +, libseccomp +}: + +stdenv.mkDerivation rec { + pname = "wob"; + version = "0.12"; + + src = fetchFromGitHub { + owner = "francma"; + repo = pname; + rev = version; + sha256 = "sha256-gVQqZbz6ylBBlmhSgyaSEvAyMi48QiuviwZodPVGJxI="; + }; + + nativeBuildInputs = [ meson ninja pkg-config scdoc wayland-scanner ]; + buildInputs = [ wayland wayland-protocols ] + ++ lib.optional stdenv.isLinux libseccomp; + + mesonFlags = lib.optional stdenv.isLinux "-Dseccomp=enabled"; + + meta = with lib; { + inherit (src.meta) homepage; + description = "A lightweight overlay bar for Wayland"; + longDescription = '' + A lightweight overlay volume/backlight/progress/anything bar for Wayland, + inspired by xob. + ''; + changelog = "https://github.com/francma/wob/releases/tag/${version}"; + license = licenses.isc; + maintainers = with maintainers; [ primeos ]; + platforms = platforms.unix; + }; +} diff --git a/nixpkgs/pkgs/tools/wayland/wshowkeys/default.nix b/nixpkgs/pkgs/tools/wayland/wshowkeys/default.nix new file mode 100644 index 000000000000..32fb81fe1886 --- /dev/null +++ b/nixpkgs/pkgs/tools/wayland/wshowkeys/default.nix @@ -0,0 +1,36 @@ +{ lib, stdenv, fetchFromGitHub +, meson, pkg-config, wayland-scanner, ninja +, cairo, libinput, pango, wayland, wayland-protocols, libxkbcommon +}: + +stdenv.mkDerivation rec { + pname = "wshowkeys-unstable"; + version = "2021-08-01"; + + src = fetchFromGitHub { + owner = "ammgws"; + repo = "wshowkeys"; + rev = "e8bfc78f08ebdd1316daae59ecc77e62bba68b2b"; + sha256 = "sha256-/HvNCQWsXOJZeCxHWmsLlbBDhBzF7XP/SPLdDiWMDC4="; + }; + + nativeBuildInputs = [ meson pkg-config wayland-scanner ninja ]; + buildInputs = [ cairo libinput pango wayland wayland-protocols libxkbcommon ]; + + meta = with 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://github.com/ammgws/wshowkeys"; + license = with licenses; [ gpl3Only mit ]; + # Some portions of the code are taken from Sway which is MIT licensed. + # TODO: gpl3Only or gpl3Plus (ask upstream)? + platforms = platforms.unix; + maintainers = with maintainers; [ primeos berbiche ]; + }; +} diff --git a/nixpkgs/pkgs/tools/wayland/wtype/default.nix b/nixpkgs/pkgs/tools/wayland/wtype/default.nix new file mode 100644 index 000000000000..3476f3abcdaa --- /dev/null +++ b/nixpkgs/pkgs/tools/wayland/wtype/default.nix @@ -0,0 +1,34 @@ +{ lib +, stdenv +, fetchFromGitHub + +, meson +, ninja +, pkg-config + +, libxkbcommon +, wayland +}: + +stdenv.mkDerivation rec { + pname = "wtype"; + version = "0.3"; + + src = fetchFromGitHub { + owner = "atx"; + repo = "wtype"; + rev = "v${version}"; + hash = "sha256-8q2PxI3ItR4tsP/KOiSlqnuK4ZSe7OdekheolEFVmys="; + }; + + nativeBuildInputs = [ meson ninja pkg-config wayland ]; + buildInputs = [ libxkbcommon wayland ]; + + meta = with lib; { + description = "xdotool type for wayland"; + homepage = "https://github.com/atx/wtype"; + license = licenses.mit; + platforms = platforms.linux; + maintainers = with maintainers; [ justinlovinger ]; + }; +} diff --git a/nixpkgs/pkgs/tools/wayland/ydotool/default.nix b/nixpkgs/pkgs/tools/wayland/ydotool/default.nix new file mode 100644 index 000000000000..4a75eac8c574 --- /dev/null +++ b/nixpkgs/pkgs/tools/wayland/ydotool/default.nix @@ -0,0 +1,41 @@ +{ lib, stdenv, fetchFromGitHub, pkg-config, cmake, boost, libevdevplus, libuinputplus, iodash, cxxopts}: + +stdenv.mkDerivation rec { + pname = "ydotool"; + version = "unstable-2021-01-20"; + + src = fetchFromGitHub { + owner = "ReimuNotMoe"; + repo = "ydotool"; + rev = "b1d041f52f7bac364d6539b1251d29c3b77c0f37"; + sha256 = "1gzdbx6fv0dbcyia3yyzhv93az2gf90aszb9kcj5cnxywfpv9w9g"; + }; + + # upstream decided to use a cpp package manager called cpm. + # we need to disable that because it wants networking, furthermore, + # it does some system folder creating which also needs to be disabled. + # Both changes are to respect the sandbox. + patches = [ ./fixup-cmakelists.patch ]; + + + # cxxopts is a header only library. + # See pull request: https://github.com/ReimuNotMoe/ydotool/pull/105 + postPatch = '' + substituteInPlace CMakeLists.txt --replace \ + "PUBLIC cxxopts" \ + "PUBLIC" + ''; + + nativeBuildInputs = [ cmake pkg-config ]; + buildInputs = [ + boost libevdevplus libuinputplus iodash cxxopts + ]; + + meta = with lib; { + inherit (src.meta) homepage; + description = "Generic Linux command-line automation tool"; + license = licenses.mit; + maintainers = with maintainers; [ willibutz ]; + platforms = with platforms; linux; + }; +} diff --git a/nixpkgs/pkgs/tools/wayland/ydotool/fixup-cmakelists.patch b/nixpkgs/pkgs/tools/wayland/ydotool/fixup-cmakelists.patch new file mode 100644 index 000000000000..965d5c38d83f --- /dev/null +++ b/nixpkgs/pkgs/tools/wayland/ydotool/fixup-cmakelists.patch @@ -0,0 +1,58 @@ +From bb8bc44d22060cd1215712117cf30eae09f4f6ba Mon Sep 17 00:00:00 2001 +From: Jappie Klooster <jappieklooster@hotmail.com> +Date: Fri, 2 Apr 2021 14:04:14 -0400 +Subject: [PATCH] Fixup cmaklists + +We remove cpm, which is a package manager for c++, +which requires networking, so it's better just deleted. + +Furthermore we delete the adddirectory statements. +These want to modify directories outside of the sandbox. +--- + CMakeLists.txt | 26 -------------------------- + 1 file changed, 26 deletions(-) + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index b5e8789..b797538 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -13,30 +13,6 @@ endif() + + include(${CPM_DOWNLOAD_LOCATION}) + +-CPMAddPackage( +- NAME IODash +- GITHUB_REPOSITORY YukiWorkshop/IODash +- VERSION 0.1.0 +-) +- +-CPMAddPackage( +- NAME libevdevPlus +- GITHUB_REPOSITORY YukiWorkshop/libevdevPlus +- VERSION 0.2.1 +-) +- +-CPMAddPackage( +- NAME libuInputPlus +- GITHUB_REPOSITORY YukiWorkshop/libuInputPlus +- VERSION 0.2.1 +-) +- +-CPMAddPackage( +- NAME cxxopts +- GITHUB_REPOSITORY jarro2783/cxxopts +- VERSION 3.0.0 +- GIT_TAG 2d8e17c4f88efce80e274cb03eeb902e055a91d3 +-) + + set(SOURCE_FILES_LIBRARY + CommonIncludes.hpp +@@ -74,5 +50,3 @@ add_executable(ydotool ${SOURCE_FILES_CLIENT}) + target_link_libraries(ydotool ydotool_library dl pthread uInputPlus evdevPlus) + install(TARGETS ydotool DESTINATION ${CMAKE_INSTALL_BINDIR}) + +-add_subdirectory(Daemon) +-add_subdirectory(manpage) +-- +2.29.2 + |