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,35 @@
{
lib,
rustPlatform,
fetchFromGitHub,
testers,
i3-back,
}:
rustPlatform.buildRustPackage rec {
pname = "i3-back";
version = "0.3.2";
src = fetchFromGitHub {
owner = "Cretezy";
repo = "i3-back";
tag = "v${version}";
hash = "sha256-xGfX7ttWrcIVhy+MkR5RZr2DCAwIKwGu7zkafHcrjaE=";
};
# The tool needs a nightly compiler.
RUSTC_BOOTSTRAP = 1;
cargoHash = "sha256-o/um/Ugm3GfDz1daBKxoDD7ailUu6QJ0rj5jcKWB0lM=";
passthru.tests.version = testers.testVersion { package = i3-back; };
meta = {
description = "i3/Sway utility to switch focus to your last focused window";
homepage = "https://github.com/Cretezy/i3-back";
changelog = "https://github.com/Cretezy/i3-back/blob/main/CHANGELOG.md";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ gabyx ];
platforms = lib.platforms.linux;
mainProgram = "i3-back";
};
}

View File

@@ -0,0 +1,25 @@
{
lib,
rustPlatform,
fetchCrate,
}:
rustPlatform.buildRustPackage rec {
pname = "i3-open-next-ws";
version = "0.1.5";
src = fetchCrate {
inherit pname version;
hash = "sha256-eYHCm8jEv6Ll6/h1kcYHNxWGnVWI41ZB96Jec9oZFsY=";
};
cargoHash = "sha256-ND80SweURwVbqxcYwgvnk186BjhISr8Pz0B8BVf0DMY=";
meta = {
description = "Workspace management utility for i3 and sway, that picks the first unused workspace automagically";
homepage = "https://github.com/JohnDowson/i3-open-next-ws";
license = lib.licenses.mit;
mainProgram = "i3-open-next-ws";
maintainers = with lib.maintainers; [ quantenzitrone ];
platforms = lib.platforms.linux;
};
}

View File

@@ -0,0 +1,61 @@
{
lib,
stdenv,
fetchFromGitHub,
gitUpdater,
coreutils,
bash,
gawk,
libpulseaudio,
alsa-lib,
libnotify,
}:
stdenv.mkDerivation rec {
pname = "i3-volume";
version = "3.9.0";
src = fetchFromGitHub {
owner = "hastinbe";
repo = "i3-volume";
rev = "v${version}";
hash = "sha256-vmyfEXJ/5TRWIJQCblYcy8owI03F+ARNAEd0ni5ublM=";
};
buildInputs = [
libpulseaudio
alsa-lib
libnotify
];
dontBuild = true;
installPhase = ''
runHook preInstall
install -Dm755 volume $out/bin/i3-volume
mkdir -p $out/share/doc/i3-volume/
cp -a i3volume-alsa.conf $out/share/doc/i3-volume/i3volume-alsa.conf
cp -a i3volume-pulseaudio.conf $out/share/doc/i3-volume/i3volume-pulseaudio.conf
runHook postInstall
'';
passthru.updateScript = gitUpdater {
rev-prefix = "v";
};
# Example usage for `services.pipewire.enabled = true;` (will use `amixer` program) - `i3-volume -a -n -c 0 up 100`
meta = {
description = "Volume control with on-screen display notifications";
longDescription = ''
Use keyboard volume keys to mute, increase, or decrease the volume. Volume indicators in status lines will be updated and, when notifications are enabled, a popup will display the volume level.
Works with any window manager, such as [i3wm](https://i3wm.org/), [bspwm](https://github.com/baskerville/bspwm), and [KDE](https://kde.org/), as a standalone script, or with statusbars such as [polybar](https://github.com/polybar/polybar), [i3blocks](https://github.com/vivien/i3blocks), [i3status](https://github.com/i3/i3status), and more.
'';
homepage = "https://github.com/hastinbe/i3-volume";
mainProgram = "i3-volume";
license = lib.licenses.gpl2;
platforms = lib.platforms.linux;
};
}

View File

@@ -0,0 +1,35 @@
{
lib,
python3Packages,
fetchPypi,
}:
python3Packages.buildPythonApplication rec {
pname = "i3a";
version = "2.1.1";
format = "pyproject";
src = fetchPypi {
inherit pname version;
hash = "sha256-b1bB7Gto4aL1rbQXIelBVhutjIvZY+K+Y66BGN7OcCs=";
};
build-system = [
python3Packages.setuptools
python3Packages.setuptools-scm
];
dependencies = [ python3Packages.i3ipc ];
doCheck = false;
pythonImportsCheck = [ "i3a" ];
meta = with lib; {
changelog = "https://git.goral.net.pl/i3a.git/log/";
description = "Set of scripts used for automation of i3 and sway window manager layouts";
homepage = "https://git.goral.net.pl/i3a.git/about";
license = licenses.gpl3Plus;
maintainers = with maintainers; [ moni ];
};
}

View File

@@ -0,0 +1,33 @@
{
lib,
fetchFromGitHub,
rustPlatform,
pkg-config,
pango,
}:
rustPlatform.buildRustPackage rec {
pname = "i3bar-river";
version = "1.1.0";
src = fetchFromGitHub {
owner = "MaxVerevkin";
repo = "i3bar-river";
rev = "v${version}";
hash = "sha256-0ux0woVp9HVCJf/oND2AKHj30eNC/w1WDnlPafLTgxM=";
};
cargoHash = "sha256-dwOinrHvk0MRKlbn62MEfmcyXNf+ZfYzVNtv7teRsV4=";
nativeBuildInputs = [ pkg-config ];
buildInputs = [ pango ];
meta = with lib; {
description = "Port of i3bar for river";
homepage = "https://github.com/MaxVerevkin/i3bar-river";
license = licenses.gpl3Only;
maintainers = with maintainers; [ nicegamer7 ];
mainProgram = "i3bar-river";
platforms = platforms.linux;
};
}

View File

@@ -0,0 +1,49 @@
{
lib,
stdenv,
i3lock,
imagemagick,
scrot,
playerctl,
fetchFromGitLab,
}:
stdenv.mkDerivation rec {
pname = "i3lock-pixeled";
version = "1.2.1";
src = fetchFromGitLab {
owner = "Ma27";
repo = "i3lock-pixeled";
rev = version;
sha256 = "1l9yjf9say0mcqnnjkyj4z3f6y83bnx4jsycd1h10p3m8afbh8my";
};
propagatedBuildInputs = [
i3lock
imagemagick
scrot
playerctl
];
makeFlags = [
"PREFIX=$(out)/bin"
];
patchPhase = ''
substituteInPlace i3lock-pixeled \
--replace i3lock "${i3lock}/bin/i3lock" \
--replace convert "${imagemagick}/bin/convert" \
--replace scrot "${scrot}/bin/scrot" \
--replace playerctl "${playerctl}/bin/playerctl"
'';
meta = with lib; {
description = "Simple i3lock helper which pixels a screenshot by scaling it down and up to get a pixeled version of the screen when the lock is active";
mainProgram = "i3lock-pixeled";
homepage = "https://gitlab.com/Ma27/i3lock-pixeled";
license = licenses.mit;
platforms = platforms.linux;
maintainers = with maintainers; [ ma27 ];
};
}

View File

@@ -0,0 +1,51 @@
{
lib,
fetchFromGitHub,
python3Packages,
glibcLocales,
}:
python3Packages.buildPythonApplication rec {
pname = "i3minator";
version = "0.0.4";
format = "pyproject";
src = fetchFromGitHub {
owner = "carlesso";
repo = "i3minator";
rev = version;
sha256 = "07dic5d2m0zw0psginpl43xn0mpxw7wilj49d02knz69f7c416lm";
};
LC_ALL = "en_US.UTF-8";
buildInputs = [ glibcLocales ];
build-system = [
python3Packages.setuptools
];
dependencies = [
python3Packages.pyyaml
python3Packages.i3-py
];
# No tests
doCheck = false;
pythonImportsCheck = [ "i3minator" ];
meta = {
description = "i3 project manager similar to tmuxinator";
mainProgram = "i3minator";
longDescription = ''
A simple "workspace manager" for i3. It allows to quickly
manage workspaces defining windows and their layout. The
project is inspired by tmuxinator and uses i3-py.
'';
homepage = "https://github.com/carlesso/i3minator";
license = lib.licenses.wtfpl;
maintainers = [ ];
platforms = lib.platforms.linux;
};
}

View File

@@ -0,0 +1,98 @@
{
lib,
fetchFromGitHub,
libpulseaudio,
libnotify,
gobject-introspection,
python3Packages,
unstableGitUpdater,
fetchpatch2,
extraLibs ? [ ],
}:
python3Packages.buildPythonApplication rec {
# i3pystatus moved to rolling release:
# https://github.com/enkore/i3pystatus/issues/584
version = "3.35-unstable-2024-06-13";
pname = "i3pystatus";
pyproject = true;
build-system = [ python3Packages.setuptools ];
src = fetchFromGitHub {
owner = "enkore";
repo = "i3pystatus";
rev = "f3c539ad78ad1c54fc36e8439bf3905a784ccb34";
hash = "sha256-3AGREY+elHQk8kaoFp8AHEzk2jNC/ICGYPh2hXo2G/w=";
};
patches = [
# absolutifies the path to the test data in buds test so it can be run from anywhere
(fetchpatch2 {
# https://github.com/enkore/i3pystatus/pull/869
url = "https://github.com/enkore/i3pystatus/commit/7a39c3527566411eb1b3e4f79191839ac4b0424e.patch";
hash = "sha256-kSf2Nrypw8CCHC7acDkQXI27178HA3NJlyRWkHyYOGs=";
})
];
nativeBuildInputs = [ gobject-introspection ];
buildInputs = [
libpulseaudio
libnotify
];
nativeCheckInputs = [ python3Packages.pytestCheckHook ];
checkInputs = [ python3Packages.requests ];
propagatedBuildInputs =
with python3Packages;
[
keyring
colour
netifaces
psutil
basiciw
pygobject3
]
++ extraLibs;
makeWrapperArgs = [
# LC_TIME != C results in locale.Error: unsupported locale setting
"--set"
"LC_TIME"
"C"
"--suffix"
"LD_LIBRARY_PATH"
":"
"${lib.makeLibraryPath [ libpulseaudio ]}"
];
postPatch = ''
makeWrapperArgs+=(--set GI_TYPELIB_PATH "$GI_TYPELIB_PATH")
'';
postInstall = ''
makeWrapper ${python3Packages.python.interpreter} $out/bin/${pname}-python-interpreter \
--prefix PYTHONPATH : "$PYTHONPATH" \
''${makeWrapperArgs[@]}
'';
passthru.updateScript = unstableGitUpdater { };
meta = {
mainProgram = "i3pystatus";
homepage = "https://github.com/enkore/i3pystatus";
description = "Complete replacement for i3status";
longDescription = ''
i3pystatus is a growing collection of python scripts for status output compatible
to i3status / i3bar of the i3 window manager.
'';
license = lib.licenses.mit;
platforms = lib.platforms.linux;
maintainers = with lib.maintainers; [
igsha
lucasew
];
};
}

View File

@@ -0,0 +1,100 @@
{
lib,
rustPlatform,
fetchFromGitHub,
pkg-config,
makeWrapper,
installShellFiles,
dbus,
libpulseaudio,
notmuch,
openssl,
ethtool,
lm_sensors,
iw,
iproute2,
pandoc,
pipewire,
withICUCalendar ? false,
withPipewire ? true,
withNotmuch ? false,
}:
rustPlatform.buildRustPackage rec {
pname = "i3status-rust";
version = "0.34.0";
src = fetchFromGitHub {
owner = "greshake";
repo = "i3status-rust";
rev = "refs/tags/v${version}";
hash = "sha256-E0HGF7oyffBWUT61fQZ+tjwDi7q9IhtV6DiF8TGeVsU=";
};
cargoHash = "sha256-S6GdPntLC0351GaPmirxVsngOtbcWaPNkzax0yZNNb4=";
nativeBuildInputs = [
pkg-config
makeWrapper
installShellFiles
pandoc
]
++ (lib.optionals withPipewire [ rustPlatform.bindgenHook ]);
buildInputs = [
dbus
libpulseaudio
openssl
lm_sensors
]
++ (lib.optionals withPipewire [ pipewire ])
++ (lib.optionals withNotmuch [ notmuch ]);
buildFeatures = [
"maildir"
"pulseaudio"
]
++ (lib.optionals withICUCalendar [ "icu_calendar" ])
++ (lib.optionals withPipewire [ "pipewire" ])
++ (lib.optionals withNotmuch [ "notmuch" ]);
prePatch = ''
substituteInPlace src/util.rs \
--replace "/usr/share/i3status-rust" "$out/share"
'';
postBuild = ''
cargo xtask generate-manpage
'';
postInstall = ''
mkdir -p $out/share
cp -R examples files/* $out/share
installManPage man/*
'';
postFixup = ''
wrapProgram $out/bin/i3status-rs --prefix PATH : ${
lib.makeBinPath [
iproute2
ethtool
iw
]
}
'';
# Currently no tests are implemented, so we avoid building the package twice
doCheck = false;
meta = with lib; {
description = "Very resource-friendly and feature-rich replacement for i3status";
homepage = "https://github.com/greshake/i3status-rust";
license = licenses.gpl3Only;
mainProgram = "i3status-rs";
maintainers = with maintainers; [
backuitist
globin
];
platforms = platforms.linux;
};
}