push sheeet
Some checks failed
Periodic Merges (6h) / master → staging-nixos (push) Failing after 12m50s
Periodic Merges (6h) / master → staging-next (push) Failing after 12m54s
Periodic Merges (24h) / merge-base(master,staging) → haskell-updates (push) Failing after 11m54s
Periodic Merges (6h) / staging-next → staging (push) Failing after 12m13s
Periodic Merges (24h) / staging-next-25.05 → staging-25.05 (push) Failing after 13m24s
Periodic Merges (24h) / release-25.05 → staging-next-25.05 (push) Failing after 14m28s

This commit is contained in:
Dark Steveneq
2025-10-09 14:15:47 +02:00
commit 646b892680
49168 changed files with 5897842 additions and 0 deletions

View File

@@ -0,0 +1,50 @@
{
lib,
fetchFromGitHub,
stdenv,
wayland-scanner,
wlr-protocols,
wayland,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "wl-clicker";
version = "0.3.1";
nativeBuildInputs = [ wayland-scanner ];
buildInputs = [
wlr-protocols
wayland
];
src = fetchFromGitHub {
owner = "phonetic112";
repo = "wl-clicker";
rev = "v${finalAttrs.version}";
hash = "sha256-HuUK1kkqIdB5SdcewJ1J8elzqrFaFWC3BRV3GgcasTU=";
};
postPatch = ''
sed -i 's|/usr|${wlr-protocols}|g' Makefile
'';
installPhase = ''
runHook preInstall
mkdir -p $out/bin
install build/wl-clicker $out/bin/wl-clicker
runHook postInstall
'';
meta = {
description = "Wayland autoclicker";
longDescription = "Script for auto clicking at incredibly high speeds - user must be a part of `input` group to run.";
homepage = "https://github.com/phonetic112/wl-clicker";
license = lib.licenses.mit;
maintainers = [ lib.maintainers.Flameopathic ];
mainProgram = "wl-clicker";
platforms = lib.platforms.linux;
broken = stdenv.hostPlatform.isLinux && stdenv.hostPlatform.isAarch64;
};
})

View File

@@ -0,0 +1,36 @@
{
lib,
stdenv,
rustPlatform,
fetchFromGitHub,
pkg-config,
wayland,
}:
rustPlatform.buildRustPackage rec {
pname = "wl-clip-persist";
version = "0.5.0";
src = fetchFromGitHub {
owner = "Linus789";
repo = "wl-clip-persist";
rev = "v${version}";
hash = "sha256-MEH8ADsFst/CgTc9QW4x0dBXJ5ssQDVa55qPcsALJRg=";
};
cargoHash = "sha256-iQI5Z/gk+EFNQNma+T2/y77F8M+kPuSS2QKO6QV9dm4=";
nativeBuildInputs = [ pkg-config ];
buildInputs = [ wayland ];
meta = with lib; {
broken = stdenv.hostPlatform.isDarwin;
description = "Keep Wayland clipboard even after programs close";
homepage = "https://github.com/Linus789/wl-clip-persist";
inherit (wayland.meta) platforms;
license = licenses.mit;
mainProgram = "wl-clip-persist";
maintainers = with maintainers; [ name-snrl ];
};
}

View File

@@ -0,0 +1,89 @@
{
lib,
rustPlatform,
fetchFromGitHub,
installShellFiles,
pkg-config,
wayland,
withNativeLibs ? false,
}:
rustPlatform.buildRustPackage rec {
pname = "wl-clipboard-rs";
version = "0.9.2";
src = fetchFromGitHub {
owner = "YaLTeR";
repo = "wl-clipboard-rs";
rev = "v${version}";
hash = "sha256-IC19J3S4QP6eEH4zWDrTh/lQcsDzopjWGO6Vm+/cl78=";
};
cargoHash = "sha256-bkCrAyYxYkgeS0BSUzKipN21ZZL+RJzNyg7Mx+7V8Pg=";
cargoBuildFlags = [
"--package=wl-clipboard-rs"
"--package=wl-clipboard-rs-tools"
]
++ lib.optionals withNativeLibs [
"--features=native_lib"
];
nativeBuildInputs = [
installShellFiles
]
++ lib.optionals withNativeLibs [
pkg-config
];
buildInputs = [
installShellFiles
]
++ lib.optionals withNativeLibs [
wayland
];
preCheck = ''
export XDG_RUNTIME_DIR=$(mktemp -d)
'';
# Assertion errors
checkFlags = [
"--skip=tests::copy::copy_large"
"--skip=tests::copy::copy_multi_no_additional_text_mime_types_test"
"--skip=tests::copy::copy_multi_test"
"--skip=tests::copy::copy_randomized"
"--skip=tests::copy::copy_test"
];
postInstall = ''
installManPage target/man/wl-copy.1
installManPage target/man/wl-paste.1
installShellCompletion --cmd wl-copy \
--bash target/completions/wl-copy.bash \
--fish target/completions/wl-copy.fish \
--zsh target/completions/_wl-copy
installShellCompletion --cmd wl-paste \
--bash target/completions/wl-paste.bash \
--fish target/completions/wl-paste.fish \
--zsh target/completions/_wl-paste
'';
meta = {
description = "Command-line copy/paste utilities for Wayland, written in Rust";
homepage = "https://github.com/YaLTeR/wl-clipboard-rs";
changelog = "https://github.com/YaLTeR/wl-clipboard-rs/blob/v${version}/CHANGELOG.md";
platforms = lib.platforms.linux;
license = with lib.licenses; [
asl20
mit
];
mainProgram = "wl-clip";
maintainers = with lib.maintainers; [
thiagokokada
donovanglover
];
};
}

View File

@@ -0,0 +1,38 @@
{
lib,
stdenv,
fetchFromGitHub,
wl-clipboard,
bash,
}:
stdenv.mkDerivation rec {
pname = "wl-clipboard-x11";
version = "5";
src = fetchFromGitHub {
owner = "brunelli";
repo = "wl-clipboard-x11";
rev = "v${version}";
hash = "sha256-i+oF1Mu72O5WPTWzqsvo4l2CERWWp4Jq/U0DffPZ8vg=";
};
strictDeps = true;
buildInputs = [ bash ];
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 = "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; [ artturin ];
mainProgram = "xclip";
platforms = platforms.linux;
};
}

View File

@@ -0,0 +1,59 @@
{
lib,
stdenv,
fetchFromGitHub,
meson,
ninja,
pkg-config,
wayland,
wayland-protocols,
wayland-scanner,
xdg-utils,
makeWrapper,
}:
stdenv.mkDerivation rec {
pname = "wl-clipboard";
version = "2.2.1";
src = fetchFromGitHub {
owner = "bugaevc";
repo = "wl-clipboard";
rev = "v${version}";
hash = "sha256-BYRXqVpGt9FrEBYQpi2kHPSZyeMk9o1SXkxjjcduhiY=";
};
strictDeps = true;
nativeBuildInputs = [
meson
ninja
pkg-config
wayland-scanner
makeWrapper
];
buildInputs = [
wayland
wayland-protocols
];
mesonFlags = [
"-Dfishcompletiondir=share/fish/vendor_completions.d"
];
# Fix for https://github.com/NixOS/nixpkgs/issues/251261
postInstall = lib.optionalString (!xdg-utils.meta.broken) ''
wrapProgram $out/bin/wl-copy \
--suffix PATH : ${lib.makeBinPath [ xdg-utils ]}
'';
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
kashw2
];
platforms = platforms.unix;
};
}

View File

@@ -0,0 +1,71 @@
{
lib,
stdenv,
fetchFromGitHub,
slurp,
grim,
zenity,
wl-clipboard,
imagemagick,
makeWrapper,
bash,
libnotify,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "wl-color-picker";
version = "1.4";
src = fetchFromGitHub {
owner = "jgmdev";
repo = "wl-color-picker";
tag = "v${finalAttrs.version}";
hash = "sha256-u04eO5QfIEBNEoh9w0w2Kz+vyCLuIzCStyz+lKarF3w=";
};
strictDeps = true;
nativeBuildInputs = [
makeWrapper
bash
];
patchPhase = ''
patchShebangs .
substituteInPlace Makefile \
--replace "which" "ls" \
--replace "grim" "${lib.getExe grim}" \
--replace "slurp" "${lib.getExe slurp}" \
--replace "zenity" "${lib.getExe zenity}" \
--replace "convert" "${lib.getExe' imagemagick "convert"}" \
--replace "wl-copy" "${lib.getExe' wl-clipboard "wl-copy"}" \
--replace "notify-send" "${lib.getExe' libnotify "notify-send"}"
'';
installFlags = [ "DESTDIR=${placeholder "out"}" ];
postInstall = ''
wrapProgram $out/usr/bin/wl-color-picker \
--prefix PATH : ${
lib.makeBinPath [
grim
slurp
imagemagick
zenity
wl-clipboard
libnotify
]
}
mkdir -p $out/bin
ln -s $out/usr/bin/wl-color-picker $out/bin/wl-color-picker
'';
meta = {
description = "Wayland color picker that also works on wlroots";
homepage = "https://github.com/jgmdev/wl-color-picker";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ onny ];
platforms = lib.platforms.linux;
mainProgram = "wl-color-picker";
};
})

View File

@@ -0,0 +1,37 @@
{
lib,
fetchFromGitHub,
makeBinaryWrapper,
rustPlatform,
}:
rustPlatform.buildRustPackage {
pname = "wl-crosshair";
version = "0.1.0-unstable-2024-05-09";
src = fetchFromGitHub {
owner = "lelgenio";
repo = "wl-crosshair";
rev = "39b716cf410a1b45006f50f32f8d63de5c43aedb";
hash = "sha256-q5key9BWJjJQqECrhflso9ZTzULBeScvromo0S4fjqE=";
};
cargoHash = "sha256-34K8Vjb7MrB8WGGLase+GnN2bUDuAnvU6VWRV1k+ZYM=";
nativeBuildInputs = [ makeBinaryWrapper ];
postInstall = ''
mkdir -p $out/share
cp -r ./cursors $out/share/cursors
wrapProgram $out/bin/wl-crosshair \
--set-default WL_CROSSHAIR_IMAGE_PATH $out/share/cursors/inverse-v.png
'';
meta = {
description = "Crosshair overlay for wlroots compositor";
homepage = "https://github.com/lelgenio/wl-crosshair";
license = lib.licenses.unfree; # didn't found a license
mainProgram = "wl-crosshair";
maintainers = with lib.maintainers; [ Guanran928 ];
platforms = lib.platforms.linux;
};
}

View File

@@ -0,0 +1,20 @@
diff --git a/meson.build b/meson.build
index 5253f52..f5ff82e 100644
--- a/meson.build
+++ b/meson.build
@@ -6,7 +6,6 @@ project(
# Define dependecies
dep_gtk3 = dependency('gtk+-3.0')
-dep_wlroots = dependency('wlroots')
dep_wayland_client = dependency('wayland-client')
@@ -75,7 +74,6 @@ executable(
'wl-gammactl',
sources,
dependencies : [
- dep_wlroots,
dep_wayland_client,
dep_gtk3
],

View File

@@ -0,0 +1,62 @@
{
lib,
stdenv,
fetchFromGitHub,
meson,
pkg-config,
ninja,
wayland,
wayland-scanner,
wlr-protocols,
gtk3,
glib,
}:
stdenv.mkDerivation {
pname = "wl-gammactl";
version = "0-unstable-2021-09-13";
src = fetchFromGitHub {
owner = "mischw";
repo = "wl-gammactl";
rev = "e2385950d97a3baf1b6e2f064dd419ccec179586";
sha256 = "8iMJK4O/sNIGPOBZQEfK47K6OjT6sxYFe19O2r/VSr8=";
};
strictDeps = true;
nativeBuildInputs = [
meson
pkg-config
ninja
glib
wayland-scanner
];
buildInputs = [
wayland
gtk3
];
postUnpack = ''
rmdir source/wlr-protocols
ln -s ${wlr-protocols}/share/wlr-protocols source
'';
patches = [ ./dont-need-wlroots.diff ];
postPatch = ''
substituteInPlace meson.build --replace "git = find_program('git')" "git = 'false'"
'';
meta = with lib; {
description = "Contrast, brightness, and gamma adjustments for Wayland";
longDescription = ''
Small GTK GUI application to set contrast, brightness, and gamma for wayland compositors which
support the wlr-gamma-control protocol extension.
'';
homepage = "https://github.com/mischw/wl-gammactl";
license = licenses.mit;
platforms = platforms.linux;
maintainers = with maintainers; [ lodi ];
mainProgram = "wl-gammactl";
};
}

View File

@@ -0,0 +1,54 @@
{
lib,
fetchFromGitHub,
rustPlatform,
stdenv,
wayland,
libxkbcommon,
fontconfig,
pkg-config,
autoPatchelfHook,
}:
rustPlatform.buildRustPackage {
pname = "wl-gammarelay-applet";
version = "0.1.4";
src = fetchFromGitHub {
owner = "lgbishop";
repo = "wl-gammarelay-applet";
rev = "8a0d9e6364d7445fc69c59b2f168cfec91c2fe87";
sha256 = "sha256-t6bycmaquZ0IMs/WnAzkz5FnIWKIq0BTbeeoUFLeuYg=";
};
cargoHash = "sha256-XrU519ibku7OMKxt51gzVOZVOiqgdrBrxAJuBIcAtgc=";
nativeBuildInputs = [
pkg-config
autoPatchelfHook
];
buildInputs = [
(lib.getLib stdenv.cc.cc)
];
runtimeDependencies = [
wayland
libxkbcommon
fontconfig.lib
];
meta = {
description = "Control wl-gammarelay-rs via applet";
longDescription = ''
wl-gammarelay-applet is a small desktop applet for controlling
wl-gammarelay-rs via DBus. This applet is written in Rust and
provides a Slint UI.
'';
homepage = "https://github.com/lgbishop/wl-gammarelay-applet";
mainProgram = "wl-gammarelay-applet";
license = lib.licenses.mit;
platforms = lib.platforms.linux;
maintainers = with lib.maintainers; [ lgbishop ];
};
}

View File

@@ -0,0 +1,28 @@
{
lib,
fetchFromGitHub,
rustPlatform,
}:
rustPlatform.buildRustPackage rec {
pname = "wl-gammarelay-rs";
version = "1.0.1";
src = fetchFromGitHub {
owner = "MaxVerevkin";
repo = "wl-gammarelay-rs";
tag = "v${version}";
hash = "sha256-WdY90CUtphtUUFAh+daSQGmlWTn28Qc79A5yHTV3IOY=";
};
cargoHash = "sha256-B7ot2qcs1rXcrBveXRdZlbiKCRvNAg+OfqYuZv6m8PM=";
meta = {
description = "Simple program that provides DBus interface to control display temperature and brightness under wayland without flickering";
homepage = "https://github.com/MaxVerevkin/wl-gammarelay-rs";
license = lib.licenses.gpl3Plus;
mainProgram = "wl-gammarelay-rs";
maintainers = with lib.maintainers; [ quantenzitrone ];
platforms = lib.platforms.unix;
badPlatforms = lib.platforms.darwin;
};
}

View File

@@ -0,0 +1,68 @@
{
lib,
fetchFromGitHub,
gitUpdater,
gtk3,
libxkbcommon,
meson,
ninja,
opencv,
pixman,
pkg-config,
stdenv,
wayland,
wayland-protocols,
wayland-scanner,
}:
let
pname = "wl-kbptr";
version = "0.4.0";
in
stdenv.mkDerivation {
inherit pname version;
src = fetchFromGitHub {
owner = "moverest";
repo = "wl-kbptr";
tag = "v${version}";
hash = "sha256-4ZxiRlIcVpYT9AzMguqzuZ5p7lZbH/m7ZX839tsCgMU=";
};
depsBuildBuild = [ pkg-config ];
nativeBuildInputs = [
meson
ninja
pkg-config
wayland-scanner
];
buildInputs = [
gtk3
libxkbcommon
opencv
pixman
wayland
wayland-protocols
];
mesonFlags = [ "-Dopencv=enabled" ];
strictDeps = true;
passthru = {
updateScript = gitUpdater { };
};
meta = {
homepage = "https://github.com/moverest/wl-kbptr";
description = "Control the mouse pointer with the keyboard on Wayland";
changelog = "https://github.com/moverest/wl-kbptr/releases/tag/v${version}";
license = lib.licenses.gpl3;
mainProgram = "wl-kbptr";
maintainers = [
lib.maintainers.luftmensch-luftmensch
lib.maintainers.clementpoiret
];
inherit (wayland.meta) platforms;
};
}

View File

@@ -0,0 +1,95 @@
{
lib,
stdenv,
fetchFromGitHub,
cmake,
pkg-config,
wayland,
wayland-protocols,
wayland-scanner,
wlr-protocols,
libGL,
libgbm,
bash,
installExampleScripts ? true,
makeWrapper,
installShellFiles,
pipectl,
slurp,
rofi,
scdoc,
}:
let
wl-present-binpath = lib.makeBinPath [
pipectl
rofi
slurp
(placeholder "out")
];
in
stdenv.mkDerivation rec {
pname = "wl-mirror";
version = "0.18.3";
src = fetchFromGitHub {
owner = "Ferdi265";
repo = "wl-mirror";
rev = "v${version}";
hash = "sha256-xj+CZPHeMAisOMB8mYSIc2jAa5iQD5pM+Stccq4gnak=";
};
strictDeps = true;
depsBuildBuild = [ pkg-config ];
nativeBuildInputs = [
cmake
pkg-config
wayland-scanner
scdoc
makeWrapper
installShellFiles
];
buildInputs = [
libGL
libgbm
wayland
wayland-protocols
wlr-protocols
bash
];
postPatch = ''
echo 'v${version}' > version.txt
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"}"
"-DINSTALL_DOCUMENTATION=ON"
"-DWITH_GBM=ON"
];
postInstall = ''
installShellCompletion --cmd wl-mirror \
--bash ../scripts/completions/bash-completions/_wl-mirror \
--zsh ../scripts/completions/zsh-completions/_wl-mirror
installShellCompletion --cmd wl-present \
--bash ../scripts/completions/bash-completions/_wl-present \
--zsh ../scripts/completions/zsh-completions/_wl-present
''
+ lib.optionalString installExampleScripts ''
wrapProgram $out/bin/wl-present --prefix PATH ":" ${wl-present-binpath}
'';
meta = with lib; {
homepage = "https://github.com/Ferdi265/wl-mirror";
description = "Simple Wayland output mirror client";
license = licenses.gpl3;
maintainers = with maintainers; [ synthetica ];
platforms = platforms.linux;
};
}

View File

@@ -0,0 +1,36 @@
{
stdenv,
lib,
fetchFromGitHub,
cmake,
scdoc,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "wl-restart";
version = "0.3.0";
src = fetchFromGitHub {
owner = "Ferdi265";
repo = "wl-restart";
tag = "v${finalAttrs.version}";
hash = "sha256-wLaZBqw/Yx0Oc7s3ffAmx3zakjhEBHM09uJcfsVHbnQ=";
};
cmakeFlags = [ (lib.cmakeBool "INSTALL_DOCUMENTATION" true) ];
nativeBuildInputs = [
scdoc
cmake
];
meta = {
description = "Simple tool that restarts your compositor when it crashes";
homepage = "https://github.com/Ferdi265/wl-restart";
changelog = "https://github.com/Ferdi265/wl-restart/releases/tag/v${finalAttrs.version}";
license = lib.licenses.gpl3Plus;
mainProgram = "wl-restart";
maintainers = with lib.maintainers; [ bot-wxt1221 ];
platforms = lib.platforms.linux;
};
})

View File

@@ -0,0 +1,58 @@
{
lib,
stdenv,
rustPlatform,
fetchFromGitHub,
pkg-config,
installShellFiles,
libdrm,
ffmpeg_6,
wayland,
nix-update-script,
}:
rustPlatform.buildRustPackage (finalAttrs: {
pname = "wl-screenrec";
version = "0.2.0";
src = fetchFromGitHub {
owner = "russelltg";
repo = "wl-screenrec";
tag = "v${finalAttrs.version}";
hash = "sha256-sLuhVeyzFp6sFKGK7Y7DPAPk7IdFAqAtjm56zhrX3fA=";
};
cargoHash = "sha256-atfWEAo6tMLEzFtiLlxp8fyVKa1cF/4SZFMYStDYZwU=";
nativeBuildInputs = [
pkg-config
rustPlatform.bindgenHook
installShellFiles
];
buildInputs = [
wayland
libdrm
ffmpeg_6
];
doCheck = false; # tests use host compositor, etc
postInstall = lib.optionalString (stdenv.buildPlatform.canExecute stdenv.hostPlatform) ''
installShellCompletion --cmd wl-screenrec \
--bash <($out/bin/wl-screenrec --generate-completions bash) \
--fish <($out/bin/wl-screenrec --generate-completions fish) \
--zsh <($out/bin/wl-screenrec --generate-completions zsh)
'';
passthru.updateScript = nix-update-script { };
meta = {
description = "High performance wlroots screen recording, featuring hardware encoding";
homepage = "https://github.com/russelltg/wl-screenrec";
license = lib.licenses.asl20;
platforms = lib.platforms.linux;
mainProgram = "wl-screenrec";
maintainers = with lib.maintainers; [ colemickens ];
};
})

View File

@@ -0,0 +1,37 @@
{
lib,
stdenv,
fetchFromGitHub,
cmake,
}:
stdenv.mkDerivation rec {
pname = "wla-dx";
version = "10.6";
src = fetchFromGitHub {
owner = "vhelin";
repo = "wla-dx";
tag = "v${version}";
hash = "sha256-t+X1Y1NhAGi4NOPik2fuLZAR3A7NQMAkSgWvqAFaIik=";
};
installPhase = ''
runHook preInstall
mkdir -p $out/bin
install binaries/* $out/bin
runHook postInstall
'';
nativeBuildInputs = [ cmake ];
meta = {
homepage = "https://www.villehelin.com/wla.html";
description = "Yet Another GB-Z80/Z80/6502/65C02/6510/65816/HUC6280/SPC-700 Multi Platform Cross Assembler Package";
license = lib.licenses.gpl2;
maintainers = with lib.maintainers; [ matthewbauer ];
platforms = lib.platforms.all;
};
}

View File

@@ -0,0 +1,59 @@
{
lib,
stdenv,
fetchFromGitHub,
cmake,
extra-cmake-modules,
glfw3,
libX11,
libXau,
libXdmcp,
libepoxy,
libffi,
libxcb,
pkg-config,
wayland,
wayland-scanner,
}:
stdenv.mkDerivation {
pname = "wlay";
version = "unstable-2022-01-26";
src = fetchFromGitHub {
owner = "atx";
repo = "wlay";
rev = "ed316060ac3ac122c0d3d8918293e19dfe9a6c90";
hash = "sha256-Lu+EyoDHiXK9QzD4jdwbllCOCl2aEU+uK6/KxC2AUGQ=";
fetchSubmodules = true;
};
nativeBuildInputs = [
cmake
extra-cmake-modules
pkg-config
wayland-scanner
];
buildInputs = [
glfw3
libX11
libXau
libXdmcp
libepoxy
libffi
libxcb
wayland
];
strictDeps = true;
meta = {
homepage = "https://github.com/atx/wlay";
description = "Graphical output management for Wayland";
license = lib.licenses.mit;
maintainers = [ ];
inherit (wayland.meta) platforms;
mainProgram = "wlay";
};
}

View File

@@ -0,0 +1,41 @@
{
lib,
python3,
fetchPypi,
}:
python3.pkgs.buildPythonPackage rec {
pname = "wlc";
version = "1.15";
pyproject = true;
src = fetchPypi {
inherit pname version;
hash = "sha256-0T8cMq5Mrv/Ygo6BfYho3sjFuu8dYZyUMtJc5gabuG4=";
};
build-system = with python3.pkgs; [ setuptools ];
dependencies = with python3.pkgs; [
argcomplete
python-dateutil
requests
pyxdg
responses
twine
];
nativeCheckInputs = with python3.pkgs; [
pytestCheckHook
];
pythonImportsCheck = [ "wlc" ];
meta = with lib; {
description = "Weblate commandline client using Weblate's REST API";
homepage = "https://github.com/WeblateOrg/wlc";
license = licenses.gpl3Plus;
maintainers = with maintainers; [ paperdigits ];
mainProgram = "wlc";
};
}

View File

@@ -0,0 +1,54 @@
{
lib,
stdenv,
fetchFromSourcehut,
meson,
ninja,
cmake,
pkg-config,
wayland-scanner,
wayland-protocols,
wayland,
cairo,
scdoc,
}:
stdenv.mkDerivation rec {
pname = "wlclock";
version = "1.0.1";
src = fetchFromSourcehut {
owner = "~leon_plickat";
repo = "wlclock";
rev = "v${version}";
sha256 = "sha256-aHA4kXHYH+KvAJSep5X3DqsiK6WFpXr3rGQl/KNiUcY=";
};
depsBuildBuild = [
pkg-config
];
nativeBuildInputs = [
meson
ninja
cmake
pkg-config
scdoc
wayland-scanner
];
buildInputs = [
wayland-protocols
wayland
cairo
];
meta = with lib; {
description = "Digital analog clock for Wayland desktops";
homepage = "https://git.sr.ht/~leon_plickat/wlclock";
license = licenses.gpl3;
maintainers = with maintainers; [ nomisiv ];
platforms = with platforms; linux;
mainProgram = "wlclock";
};
}

View File

@@ -0,0 +1,77 @@
{
stdenv,
lib,
gitUpdater,
fetchFromGitHub,
testers,
cmake,
pkg-config,
boost,
gtest,
wayland,
wayland-scanner,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "wlcs";
version = "1.8.1";
src = fetchFromGitHub {
owner = "MirServer";
repo = "wlcs";
tag = "v${finalAttrs.version}";
hash = "sha256-W4/a7neFcaqdPIAWDk5TcIuIWZ76rC7xCk3beJVqE/E=";
};
strictDeps = true;
nativeBuildInputs = [
cmake
pkg-config
wayland-scanner
];
buildInputs = [
boost
gtest
wayland
wayland-scanner # needed by cmake
];
# GCC14-exclusive maybe-uninitialized error at higher optimisation levels that looks weird
env.NIX_CFLAGS_COMPILE = lib.optionalString stdenv.cc.isGNU "-Wno-error=maybe-uninitialized";
passthru = {
tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage;
updateScript = gitUpdater {
rev-prefix = "v";
};
};
meta = {
description = "Wayland Conformance Test Suite";
longDescription = ''
wlcs aspires to be a protocol-conformance-verifying test suite usable by Wayland
compositor implementors.
It is growing out of porting the existing Weston test suite to be run in Mir's
test suite, but it is designed to be usable by any compositor.
wlcs relies on compositors providing an integration module, providing wlcs with
API hooks to start a compositor, connect a client, move a window, and so on.
This makes both writing and debugging tests easier - the tests are (generally)
in the same address space as the compositor, so there is a consistent global
clock available, it's easier to poke around in compositor internals, and
standard debugging tools can follow control flow from the test client to the
compositor and back again.
'';
homepage = "https://github.com/MirServer/wlcs";
changelog = "https://github.com/MirServer/wlcs/releases/tag/v${finalAttrs.version}";
license = lib.licenses.gpl3Only;
maintainers = with lib.maintainers; [ OPNA2608 ];
platforms = lib.platforms.linux;
pkgConfigModules = [
"wlcs"
];
};
})

View File

@@ -0,0 +1,25 @@
From 2538e41f001fa363d3459efe3b8102a354b06dd0 Mon Sep 17 00:00:00 2001
From: Kenny Levinsen <kl@kl.wtf>
Date: Sun, 16 Jan 2022 23:16:30 +0100
Subject: [PATCH 1/2] Update Cargo.lock
---
Cargo.lock | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/Cargo.lock b/Cargo.lock
index 3da9a07..1ad4a86 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -796,7 +796,7 @@ checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
[[package]]
name = "wldash"
-version = "0.2.0"
+version = "0.3.0"
dependencies = [
"alsa",
"bitflags",
--
2.44.0

View File

@@ -0,0 +1,112 @@
From b2ae30bab412472f1d2ff90439134a8a465fdf9a Mon Sep 17 00:00:00 2001
From: Kenny Levinsen <kl@kl.wtf>
Date: Mon, 2 May 2022 11:21:47 +0200
Subject: [PATCH 2/2] Update fontconfig
---
Cargo.lock | 38 +++++++++++++++++++++++++++++---------
Cargo.toml | 2 +-
2 files changed, 30 insertions(+), 10 deletions(-)
diff --git a/Cargo.lock b/Cargo.lock
index 1ad4a86..6821181 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -137,7 +137,16 @@ version = "0.4.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b11f15d1e3268f140f68d390637d5e76d849782d971ae7063e0da69fe9709a76"
dependencies = [
- "libloading",
+ "libloading 0.6.7",
+]
+
+[[package]]
+name = "dlib"
+version = "0.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ac1b7517328c04c2aa68422fc60a41b92208182142ed04a25879c26c8f878794"
+dependencies = [
+ "libloading 0.7.3",
]
[[package]]
@@ -166,9 +175,9 @@ checksum = "e88a8acf291dafb59c2d96e8f59828f3838bb1a70398823ade51a84de6a6deed"
[[package]]
name = "fontconfig"
-version = "0.2.0"
+version = "0.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a5570e7ce35ffb621b31934530c4b3b8ce9fdd8bf8436e98f9c7ebadff2ef259"
+checksum = "a25320ad784a9578ada0b395dd7dcd2321109404bbb341ec27e64b01a1e49b47"
dependencies = [
"yeslogic-fontconfig-sys",
]
@@ -237,6 +246,16 @@ dependencies = [
"winapi",
]
+[[package]]
+name = "libloading"
+version = "0.7.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "efbc0f03f9a775e9f6aed295c6a1ba2253c5757a9e03d55c6caa46a681abcddd"
+dependencies = [
+ "cfg-if 1.0.0",
+ "winapi",
+]
+
[[package]]
name = "libpulse-binding"
version = "2.23.0"
@@ -398,9 +417,9 @@ dependencies = [
[[package]]
name = "once_cell"
-version = "1.5.2"
+version = "1.10.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "13bd41f508810a131401606d54ac32a467c97172d74ba7662562ebba5ad07fa0"
+checksum = "87f3e037eac156d1775da914196f0f37741a274155e34a0b7e427c35d2a2ecb9"
[[package]]
name = "opaque-debug"
@@ -803,7 +822,7 @@ dependencies = [
"byteorder",
"chrono",
"dbus",
- "dlib",
+ "dlib 0.4.2",
"fontconfig",
"fuzzy-matcher",
"itertools",
@@ -843,11 +862,12 @@ dependencies = [
[[package]]
name = "yeslogic-fontconfig-sys"
-version = "2.11.1"
+version = "3.0.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e194a0c5cd1b5c87215eed9d26aca9799fa1b599fe2e178977d6f8ccc812e3d3"
+checksum = "cb3f5a91c31bef6650d3a1b69192b4217fd88e4cfedc8101813e4dc3394ecbb8"
dependencies = [
"const-cstr",
- "libc",
+ "dlib 0.5.0",
+ "once_cell",
"pkg-config",
]
diff --git a/Cargo.toml b/Cargo.toml
index abb3807..691daa7 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -46,5 +46,5 @@ serde_yaml = { version = "0.8", optional = true }
libpulse-binding = { version = "2.22", optional = true }
alsa = { version = "0.4.0", optional = true }
-fontconfig = "0.2.0"
+fontconfig = "0.5.0"
unicode-segmentation = "1.6.0"
--
2.44.0

View File

@@ -0,0 +1,74 @@
{
lib,
alsa-lib,
dbus,
fetchFromGitHub,
fontconfig,
libpulseaudio,
libxkbcommon,
pkg-config,
rustPlatform,
wayland,
enableAlsaWidget ? true,
enablePulseaudioWidget ? true,
}:
let
pname = "wldash";
version = "0.3.0";
libraryPath = lib.makeLibraryPath [
wayland
libxkbcommon
];
in
rustPlatform.buildRustPackage {
inherit pname version;
buildNoDefaultFeatures = true;
buildFeatures = [
"yaml-cfg"
"json-cfg"
]
++ lib.optionals enableAlsaWidget [ "alsa-widget" ]
++ lib.optionals enablePulseaudioWidget [ "pulseaudio-widget" ];
src = fetchFromGitHub {
owner = "kennylevinsen";
repo = "wldash";
rev = "v${version}";
hash = "sha256-ZzsBD3KKTT+JGiFCpdumPyVAE2gEJvzCq+nRnK3RdxI=";
};
strictDeps = true;
nativeBuildInputs = [ pkg-config ];
buildInputs = [
dbus
fontconfig
]
++ lib.optionals enableAlsaWidget [ alsa-lib ]
++ lib.optionals enablePulseaudioWidget [ libpulseaudio ];
cargoPatches = [
./0001-Update-Cargo.lock.patch
./0002-Update-fontconfig.patch
];
cargoHash = "sha256-gvIsm6D6ZvRm0APw+xpayY+yt2IedMpWoa/hmvIpmV8=";
dontPatchELF = true;
postInstall = ''
patchelf --set-rpath ${libraryPath}:$(patchelf --print-rpath $out/bin/wldash) $out/bin/wldash
'';
meta = {
description = "Wayland launcher/dashboard";
homepage = "https://github.com/kennylevinsen/wldash";
license = lib.licenses.gpl3;
maintainers = with lib.maintainers; [ bbenno ];
mainProgram = "wldash";
platforms = lib.platforms.linux;
sourceProvenance = with lib.sourceTypes; [ fromSource ];
};
}

View File

@@ -0,0 +1,84 @@
{
lib,
fetchFromGitHub,
rustPlatform,
nix-update-script,
# Deps
installShellFiles,
pkg-config,
scdoc,
wrapGAppsHook4,
at-spi2-atk,
glib,
gtk4,
gtk4-layer-shell,
libadwaita,
librsvg,
libxml2,
}:
rustPlatform.buildRustPackage rec {
pname = "wleave";
version = "0.6.2";
src = fetchFromGitHub {
owner = "AMNatty";
repo = "wleave";
rev = version;
hash = "sha256-+0EKnaxRaHRxRvhASuvfpUijEZJFimR4zSzOyC3FOkQ=";
};
cargoHash = "sha256-MRVWiQNzETFbWeKwYeoXSUY9gncRCsYdPEZhpOKcTvA=";
nativeBuildInputs = [
installShellFiles
pkg-config
scdoc
wrapGAppsHook4
];
buildInputs = [
at-spi2-atk
glib
gtk4
gtk4-layer-shell
libadwaita
librsvg
libxml2
];
postPatch = ''
substituteInPlace src/config.rs \
--replace-fail "/etc/wleave" "$out/etc/${pname}"
substituteInPlace layout.json \
--replace-fail "/usr/share/wleave" "$out/share/${pname}"
'';
postInstall = ''
install -Dm644 -t "$out/etc/wleave" {"style.css","layout.json"}
install -Dm644 -t "$out/share/wleave/icons" icons/*
for f in man/*.scd; do
local page="man/$(basename "$f" .scd)"
scdoc < "$f" > "$page"
installManPage "$page"
done
installShellCompletion --cmd wleave \
--bash <(cat completions/wleave.bash) \
--fish <(cat completions/wleave.fish) \
--zsh <(cat completions/_wleave)
'';
passthru.updateScript = nix-update-script { };
meta = with lib; {
description = "Wayland-native logout script written in GTK4";
homepage = "https://github.com/AMNatty/wleave";
license = licenses.mit;
mainProgram = "wleave";
maintainers = with maintainers; [ ludovicopiero ];
platforms = platforms.linux;
};
}

View File

@@ -0,0 +1,44 @@
{
lib,
rustPlatform,
fetchFromSourcehut,
autoPatchelfHook,
gcc-unwrapped,
wayland,
libxkbcommon,
nix-update-script,
}:
rustPlatform.buildRustPackage (finalAttrs: {
pname = "wlgreet";
version = "0.5.0";
src = fetchFromSourcehut {
owner = "~kennylevinsen";
repo = "wlgreet";
rev = finalAttrs.version;
hash = "sha256-TQTHFBOTxtSuzrAG4cjZ9oirl80xc0rPdYeLJ0t39DQ=";
};
cargoHash = "sha256-ITo9qvcT5aOybWLV7kn9BZbux6uxx1RwRGWCGQYdZ2I=";
nativeBuildInputs = [ autoPatchelfHook ];
buildInputs = [ gcc-unwrapped ];
runtimeDependencies = map lib.getLib [
gcc-unwrapped
wayland
libxkbcommon
];
passthru.updateScript = nix-update-script { };
meta = {
description = "Raw wayland greeter for greetd, to be run under sway or similar";
mainProgram = "wlgreet";
homepage = "https://git.sr.ht/~kennylevinsen/wlgreet";
license = lib.licenses.gpl3Plus;
maintainers = [ ];
platforms = lib.platforms.linux;
};
})

View File

@@ -0,0 +1,44 @@
{
lib,
stdenv,
fetchFromGitHub,
meson,
ninja,
pkg-config,
wayland,
wayland-protocols,
wayland-scanner,
}:
stdenv.mkDerivation {
pname = "wlinhibit";
version = "0.1.2";
src = fetchFromGitHub {
owner = "0x5a4";
repo = "wlinhibit";
rev = "v0.1.2";
hash = "sha256-mAEBnlIfW1R5+3CMH4ZumQ39Ss2K7PfW28I4/O9saWE=";
};
buildInputs = [
wayland
wayland-protocols
];
strictDeps = true;
nativeBuildInputs = [
meson
ninja
pkg-config
wayland-scanner
];
meta = {
description = "Simple, stupid idle inhibitor for wayland";
license = lib.licenses.mit;
homepage = "https://github.com/0x5a4/wlinhibit";
platforms = lib.platforms.linux;
maintainers = with lib.maintainers; [ _0x5a4 ];
};
}

View File

@@ -0,0 +1,51 @@
{
stdenv,
lib,
rustPlatform,
fetchCrate,
pkg-config,
libusb1,
udev,
nix-update-script,
versionCheckHook,
}:
rustPlatform.buildRustPackage rec {
pname = "wlink";
version = "0.1.1";
src = fetchCrate {
inherit pname version;
hash = "sha256-YxozhEJh/KBirlA6ymIEbJY3r7wYSeTL40W2xQLyue0=";
};
cargoHash = "sha256-Hv+W8yFw6zAKwrV6gf9fWOkR/LFNgAD7WwQsHBqTnPI=";
nativeBuildInputs = [ pkg-config ];
buildInputs = [
libusb1
udev
];
doInstallCheck = true;
nativeInstallCheckInputs = [ versionCheckHook ];
passthru = {
updateScript = nix-update-script { };
};
meta = {
description = "WCH-Link flash tool for WCH's RISC-V MCUs(CH32V, CH56X, CH57X, CH58X, CH59X, CH32L103, CH32X035, CH641, CH643)";
homepage = "https://github.com/ch32-rs/wlink";
changelog = "https://github.com/ch32-rs/wlink/releases/tag/v${version}";
license = with lib.licenses; [
mit # or
asl20
];
platforms = with lib.platforms; linux ++ darwin ++ windows;
broken = !stdenv.hostPlatform.isLinux;
maintainers = with lib.maintainers; [ jwillikers ];
mainProgram = "wlink";
};
}

View File

@@ -0,0 +1,49 @@
{
lib,
stdenv,
fetchFromGitHub,
meson,
ninja,
pkg-config,
udev,
wayland,
wayland-protocols,
wayland-scanner,
}:
let
version = "0.3";
in
stdenv.mkDerivation {
pname = "wljoywake";
inherit version;
src = fetchFromGitHub {
repo = "wljoywake";
owner = "nowrep";
rev = "v${version}";
hash = "sha256-zSYNfsFjswaSXZPlIDMDC87NK/6AKtArHBeWCWDDR3E=";
};
nativeBuildInputs = [
meson
ninja
pkg-config
wayland-scanner
];
buildInputs = [
udev
wayland
wayland-protocols
];
meta = with lib; {
description = "Wayland tool for idle inhibit when using joysticks";
homepage = "https://github.com/nowrep/wljoywake";
license = licenses.gpl2;
platforms = platforms.linux;
maintainers = [ maintainers.jtrees ];
mainProgram = "wljoywake";
};
}

View File

@@ -0,0 +1,28 @@
{
lib,
python3Packages,
fetchPypi,
}:
python3Packages.buildPythonApplication rec {
pname = "wllvm";
version = "1.3.1";
pyproject = true;
src = fetchPypi {
inherit pname version;
hash = "sha256-PgV6V18FyezIZpqMQEbyv98MaVM7h7T7/Kvg3yMMwzE=";
};
build-system = with python3Packages; [ setuptools ];
pythonImportsCheck = [ "wllvm.wllvm" ];
meta = with lib; {
homepage = "https://github.com/travitch/whole-program-llvm";
description = "Wrapper script to build whole-program LLVM bitcode files";
license = licenses.mit;
maintainers = with maintainers; [ mic92 ];
platforms = platforms.all;
};
}

View File

@@ -0,0 +1,55 @@
{
lib,
stdenv,
fetchFromGitea,
libxcrypt,
pkg-config,
wayland,
wayland-protocols,
libxkbcommon,
wayland-scanner,
}:
stdenv.mkDerivation {
pname = "wlock";
version = "0-unstable-2024-09-13";
src = fetchFromGitea {
domain = "codeberg.org";
owner = "sewn";
repo = "wlock";
rev = "be975445fa0da7252f8e13b610c518dd472652d0";
hash = "sha256-Xt7Q51RhFG+UXYukxfORIhc4Df86nxtpDhAhaSmI38A=";
};
postPatch = ''
substituteInPlace Makefile --replace-fail 'chmod 4755' 'chmod 755'
'';
buildInputs = [
libxcrypt
wayland
wayland-protocols
libxkbcommon
];
strictDeps = true;
makeFlags = [
"PREFIX=$(out)"
("WAYLAND_SCANNER=" + lib.getExe wayland-scanner)
];
nativeBuildInputs = [
pkg-config
wayland-scanner
];
meta = {
description = "Sessionlocker for Wayland compositors that support the ext-session-lock-v1 protocol";
license = lib.licenses.gpl3;
homepage = "https://codeberg.org/sewn/wlock";
platforms = lib.platforms.linux;
maintainers = with lib.maintainers; [ fliegendewurst ];
mainProgram = "wlock";
};
}

View File

@@ -0,0 +1,87 @@
{
lib,
fetchFromGitHub,
gitUpdater,
gtk-layer-shell,
gtk3,
libxkbcommon,
meson,
ninja,
pkg-config,
scdoc,
stdenv,
wayland,
wayland-protocols,
# gtk-layer-shell fails to cross-compile due to a hard dependency
# on gobject-introspection.
# Disable it when cross-compiling since it's an optional dependency.
# This disables transparency support.
withGtkLayerShell ? (stdenv.buildPlatform == stdenv.hostPlatform),
}:
stdenv.mkDerivation (finalAttrs: {
pname = "wlogout";
version = "1.2.2";
src = fetchFromGitHub {
owner = "ArtsyMacaw";
repo = "wlogout";
rev = finalAttrs.version;
hash = "sha256-/tYZy56ku68ziSOhy6Dex9RGy+blkU6CN2ze76y7718=";
};
outputs = [
"out"
"man"
];
depsBuildBuild = [
pkg-config
];
nativeBuildInputs = [
meson
ninja
pkg-config
scdoc
];
buildInputs = [
gtk3
libxkbcommon
wayland
wayland-protocols
]
++ lib.optionals withGtkLayerShell [
gtk-layer-shell
];
strictDeps = true;
mesonFlags = [
"--datadir=${placeholder "out"}/share"
"--sysconfdir=${placeholder "out"}/etc"
];
postPatch = ''
substituteInPlace style.css \
--replace "/usr/share/wlogout" "$out/share/wlogout"
substituteInPlace main.c \
--replace "/etc/wlogout" "$out/etc/wlogout"
'';
passthru = {
updateScript = gitUpdater { };
};
meta = {
homepage = "https://github.com/ArtsyMacaw/wlogout";
description = "Wayland based logout menu";
changelog = "https://github.com/ArtsyMacaw/wlogout/releases/tag/${finalAttrs.src.rev}";
license = with lib.licenses; [ mit ];
mainProgram = "wlogout";
maintainers = [ ];
inherit (wayland.meta) platforms;
};
})

View File

@@ -0,0 +1,40 @@
{
lib,
stdenv,
fetchFromSourcehut,
wayland,
wayland-scanner,
}:
stdenv.mkDerivation (finalAttr: {
pname = "wlopm";
version = "1.0.0";
src = fetchFromSourcehut {
owner = "~leon_plickat";
repo = "wlopm";
rev = "v${finalAttr.version}";
hash = "sha256-GrcV51mUZUaiiYhko8ysaTieJoZDcunLn1yG5k+TpQQ=";
};
strictDeps = true;
nativeBuildInputs = [ wayland-scanner ];
buildInputs = [ wayland ];
installFlags = [ "PREFIX=$(out)" ];
preInstall = ''
mkdir -p $out/share/bash-completion/completions
'';
meta = {
description = "Simple client implementing zwlr-output-power-management-v1";
homepage = "https://git.sr.ht/~leon_plickat/wlopm";
mainProgram = "wlopm";
license = lib.licenses.gpl3Only;
maintainers = with lib.maintainers; [ arjan-s ];
platforms = lib.platforms.linux;
};
})

View File

@@ -0,0 +1,54 @@
{
fetchgit,
gawk,
jq,
lib,
makeWrapper,
slurp,
stdenv,
sway,
bash,
}:
stdenv.mkDerivation {
pname = "wlprop";
version = "unstable-2022-08-18";
src = fetchgit {
url = "https://gist.github.com/f313386043395ff06570e02af2d9a8e0";
rev = "758c548bfb4be5b437c428c8062b3987f126f002";
sha256 = "sha256-ZJ9LYYrU2cNYikiVNTlEcI4QXcoqfl7iwk3Be+NhGG8=";
};
strictDeps = true;
nativeBuildInputs = [ makeWrapper ];
buildInputs = [ bash ];
dontBuild = true;
installPhase = ''
runHook preInstall
install -Dm755 wlprop.sh $out/bin/wlprop
wrapProgram "$out/bin/wlprop" \
--prefix PATH : "$out/bin:${
lib.makeBinPath [
gawk
jq
slurp
sway
]
}"
runHook postInstall
'';
passthru.scriptName = "wlprop.sh";
meta = with lib; {
description = "Xprop clone for wlroots based compositors";
homepage = "https://gist.github.com/crispyricepc/f313386043395ff06570e02af2d9a8e0";
license = licenses.mit;
maintainers = [ ];
platforms = platforms.linux;
mainProgram = "wlprop";
};
}

View File

@@ -0,0 +1,41 @@
{
lib,
python3,
fetchFromGitHub,
}:
python3.pkgs.buildPythonApplication rec {
pname = "wlr-layout-ui";
version = "1.6.16";
pyproject = true;
src = fetchFromGitHub {
owner = "fdev31";
repo = "wlr-layout-ui";
tag = version;
hash = "sha256-CghOj5fQnuHd6PMeLOX4NKdVw7+pueZXahzYcAMwNOA=";
};
nativeBuildInputs = [
python3.pkgs.poetry-core
];
propagatedBuildInputs = with python3.pkgs; [
pyglet
tomli
tomli-w
];
postInstall = ''
install -Dm644 files/wlr-layout-ui.desktop $out/share/applications/wlr-layout-ui.desktop
'';
meta = with lib; {
description = "Simple GUI to setup the screens layout on wlroots based systems";
homepage = "https://github.com/fdev31/wlr-layout-ui/";
maintainers = with maintainers; [ bnlrnz ];
license = licenses.mit;
mainProgram = "wlrlui";
platforms = subtractLists platforms.darwin platforms.unix;
};
}

View File

@@ -0,0 +1,44 @@
{
lib,
stdenv,
fetchFromGitLab,
meson,
ninja,
pkg-config,
wayland,
wayland-scanner,
}:
stdenv.mkDerivation rec {
pname = "wlr-randr";
version = "0.5.0";
src = fetchFromGitLab {
domain = "gitlab.freedesktop.org";
owner = "emersion";
repo = "wlr-randr";
rev = "v${version}";
hash = "sha256-lHOGpY0IVnR8QdSqJbtIA4FkhmQ/zDiFNqqXyj8iw/s=";
};
strictDeps = true;
nativeBuildInputs = [
meson
ninja
pkg-config
wayland-scanner
];
buildInputs = [ wayland ];
depsBuildBuild = [
pkg-config
];
meta = with lib; {
description = "Xrandr clone for wlroots compositors";
homepage = "https://gitlab.freedesktop.org/emersion/wlr-randr";
license = licenses.mit;
maintainers = with maintainers; [ ma27 ];
platforms = platforms.linux;
mainProgram = "wlr-randr";
};
}

View File

@@ -0,0 +1,44 @@
{
lib,
rustPlatform,
fetchFromGitHub,
pkg-config,
cairo,
glib,
libxkbcommon,
pango,
}:
rustPlatform.buildRustPackage rec {
pname = "wlr-which-key";
version = "1.3.0";
src = fetchFromGitHub {
owner = "MaxVerevkin";
repo = "wlr-which-key";
rev = "v${version}";
hash = "sha256-2dVTN5aaXeGBUKhsuUyDfELyL4AcKoaPXD0gN7ydL/Y=";
};
cargoHash = "sha256-v+4/lD00rjJvrQ2NQqFusZc0zQbM9mBG5T9bNioNGKQ=";
nativeBuildInputs = [
pkg-config
];
buildInputs = [
cairo
glib
libxkbcommon
pango
];
meta = with lib; {
description = "Keymap manager for wlroots-based compositors";
homepage = "https://github.com/MaxVerevkin/wlr-which-key";
license = licenses.gpl3Only;
maintainers = with maintainers; [ xlambein ];
platforms = platforms.linux;
mainProgram = "wlr-which-key";
};
}

View File

@@ -0,0 +1,54 @@
{
lib,
stdenv,
fetchFromSourcehut,
meson,
pkg-config,
scdoc,
ninja,
libxkbcommon,
wayland,
wayland-scanner,
}:
stdenv.mkDerivation rec {
pname = "wlrctl";
version = "0.2.2";
src = fetchFromSourcehut {
owner = "~brocellous";
repo = "wlrctl";
rev = "v${version}";
sha256 = "sha256-5mDcCSHbZMbfXbksAO4YhELznKpanse7jtbtfr09HL0=";
};
strictDeps = true;
depsBuildBuild = [
pkg-config
];
nativeBuildInputs = [
meson
pkg-config
scdoc
ninja
wayland-scanner
];
buildInputs = [
libxkbcommon
wayland
];
env.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.linux;
mainProgram = "wlrctl";
};
}

View File

@@ -0,0 +1,54 @@
{
lib,
stdenv,
fetchFromSourcehut,
meson,
pkg-config,
ninja,
wayland-scanner,
scdoc,
wayland,
wayland-protocols,
}:
stdenv.mkDerivation rec {
pname = "wlsunset";
version = "0.4.0";
src = fetchFromSourcehut {
owner = "~kennylevinsen";
repo = "wlsunset";
rev = version;
sha256 = "sha256-U/yROKkU9pOBLIIIsmkltF64tt5ZR97EAxxGgrFYwNg=";
};
strictDeps = true;
depsBuildBuild = [
pkg-config
];
nativeBuildInputs = [
meson
pkg-config
ninja
wayland-scanner
scdoc
];
buildInputs = [
wayland
wayland-protocols
];
meta = {
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 = lib.licenses.mit;
platforms = lib.platforms.linux;
maintainers = with lib.maintainers; [ wineee ];
mainProgram = "wlsunset";
};
}

View File

@@ -0,0 +1,74 @@
{
lib,
fetchFromGitHub,
makeWrapper,
rustPlatform,
marked-man,
coreutils,
vulkan-loader,
wayland,
pkg-config,
udev,
v4l-utils,
dbus,
nix-update-script,
}:
rustPlatform.buildRustPackage rec {
pname = "wluma";
version = "4.10.0";
src = fetchFromGitHub {
owner = "maximbaz";
repo = "wluma";
tag = version;
hash = "sha256-gO7l0VnOs6BoBxZKkkXyxiBP7JB+G8ScrfuADNveys4=";
};
postPatch = ''
# Needs chmod and chgrp
substituteInPlace 90-wluma-backlight.rules --replace-fail \
'RUN+="/bin/' 'RUN+="${coreutils}/bin/'
substituteInPlace wluma.service --replace-fail \
'ExecStart=/usr/bin/wluma' 'ExecStart=${placeholder "out"}/bin/wluma'
'';
cargoHash = "sha256-UFe+/qJ9jCJ0QtSeY9QFT8VPXQGWIG2tqay+WE2rhKU=";
nativeBuildInputs = [
makeWrapper
pkg-config
rustPlatform.bindgenHook
marked-man
];
buildInputs = [
udev
v4l-utils
vulkan-loader
dbus
];
postInstall = ''
wrapProgram $out/bin/wluma \
--prefix LD_LIBRARY_PATH : "${lib.makeLibraryPath [ wayland ]}"
'';
passthru.updateScript = nix-update-script { };
meta = {
description = "Automatic brightness adjustment based on screen contents and ALS";
homepage = "https://github.com/maximbaz/wluma";
changelog = "https://github.com/maximbaz/wluma/releases/tag/${version}";
license = lib.licenses.isc;
maintainers = with lib.maintainers; [
yshym
jmc-figueira
atemu
Rishik-Y
];
platforms = lib.platforms.linux;
mainProgram = "wluma";
};
}

View File

@@ -0,0 +1,75 @@
{
lib,
stdenv,
fetchFromGitHub,
aml,
cyrus_sasl,
ffmpeg,
gnutls,
libGL,
libdrm,
libgcrypt,
libjpeg,
libpng,
libxkbcommon,
lzo,
libgbm,
meson,
ninja,
openssl,
pkg-config,
pixman,
wayland,
wayland-scanner,
zlib,
nix-update-script,
}:
stdenv.mkDerivation {
pname = "wlvncc";
version = "0-unstable-2025-07-07";
src = fetchFromGitHub {
owner = "any1";
repo = "wlvncc";
rev = "bc6063aeacd4fbe9ac8f58f4ba3c5388b3e1f1f2";
hash = "sha256-Udu/CtrNBqnlgZCK2cS8VWNTfHJGXdijTnNIWnAW2Nw=";
};
nativeBuildInputs = [
meson
ninja
pkg-config
wayland-scanner
];
buildInputs = [
aml
cyrus_sasl
ffmpeg
gnutls
libGL
libdrm
libgcrypt
libjpeg
libpng
libxkbcommon
lzo
libgbm
openssl
pixman
wayland
zlib
];
passthru.updateScript = nix-update-script { extraArgs = [ "--version=branch" ]; };
meta = {
description = "Wayland Native VNC Client";
homepage = "https://github.com/any1/wlvncc";
license = lib.licenses.gpl2Only;
maintainers = with lib.maintainers; [ teutat3s ];
platforms = lib.platforms.linux;
mainProgram = "wlvncc";
};
}

View File

@@ -0,0 +1,100 @@
{
alsa-lib,
dbus,
fetchFromGitHub,
fontconfig,
lib,
libGL,
libX11,
libxcb,
libXext,
libXrandr,
libxkbcommon,
makeWrapper,
nix-update-script,
openvr,
openxr-loader,
pipewire,
pkg-config,
pulseaudio,
rustPlatform,
shaderc,
stdenv,
testers,
wayland,
wlx-overlay-s,
# openvr support is broken on aarch64-linux
withOpenVr ? !stdenv.hostPlatform.isAarch64,
}:
rustPlatform.buildRustPackage rec {
pname = "wlx-overlay-s";
version = "25.4.2";
src = fetchFromGitHub {
owner = "galister";
repo = "wlx-overlay-s";
rev = "v${version}";
hash = "sha256-lWUfhiHRxu72p9ZG2f2fZH6WZECm/fOKcK05MLZV+MI=";
};
cargoHash = "sha256-em5sWSty2/pZp2jTwBnLUIBgPOcoMpwELwj984XYf+k=";
# explicitly only add openvr if withOpenVr is set to true.
buildNoDefaultFeatures = true;
buildFeatures = [
"openxr"
"osc"
"x11"
"wayland"
"wayvr"
]
++ lib.optional withOpenVr "openvr";
nativeBuildInputs = [
makeWrapper
pkg-config
rustPlatform.bindgenHook
];
buildInputs = [
alsa-lib
dbus
fontconfig
libGL
libX11
libxcb
libXext
libXrandr
libxkbcommon
openxr-loader
pipewire
wayland
]
++ lib.optional withOpenVr openvr;
env.SHADERC_LIB_DIR = "${lib.getLib shaderc}/lib";
postPatch = ''
substituteAllInPlace src/res/watch.yaml \
--replace '"pactl"' '"${lib.getExe' pulseaudio "pactl"}"'
# TODO: src/res/keyboard.yaml references 'whisper_stt'
'';
passthru = {
tests.testVersion = testers.testVersion { package = wlx-overlay-s; };
updateScript = nix-update-script { };
};
meta = {
description = "Wayland/X11 desktop overlay for SteamVR and OpenXR, Vulkan edition";
homepage = "https://github.com/galister/wlx-overlay-s";
license = lib.licenses.gpl3Only;
maintainers = with lib.maintainers; [ Scrumplex ];
platforms = lib.platforms.linux;
broken = stdenv.hostPlatform.isAarch64 && withOpenVr;
mainProgram = "wlx-overlay-s";
};
}