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,36 @@
{
lib,
python3Packages,
fetchPypi,
}:
python3Packages.buildPythonApplication rec {
pname = "i3altlayout";
version = "0.3";
format = "setuptools";
src = fetchPypi {
inherit pname version;
sha256 = "1h0phf3s6ljffxw0bs73k041wildaz01h37iv5mxhami41wrh4qf";
};
pythonRemoveDeps = [ "enum-compat" ];
pythonPath = with python3Packages; [
i3ipc
docopt
];
doCheck = false;
pythonImportsCheck = [ "i3altlayout" ];
meta = with lib; {
maintainers = with maintainers; [ magnetophon ];
description = "Helps you handle more efficiently your screen real estate in i3wm by auto-splitting windows on their longest side";
mainProgram = "i3altlayout";
homepage = "https://github.com/deadc0de6/i3altlayout";
license = licenses.gpl3Only;
platforms = platforms.linux;
};
}

View File

@@ -0,0 +1,34 @@
{
lib,
rustPlatform,
fetchFromGitHub,
}:
rustPlatform.buildRustPackage {
pname = "i3-auto-layout";
version = "unstable-2022-05-29";
src = fetchFromGitHub {
owner = "chmln";
repo = "i3-auto-layout";
rev = "9e41eb3891991c35b7d35c9558e788899519a983";
sha256 = "sha256-gpVYVyh+2y4Tttvw1SuCf7mx/nxR330Ob2R4UmHZSJs=";
};
cargoHash = "sha256-oKpcYhD9QNW+8gFVybDEnz58cZ+2Bf4bwYuflXiJ1jc=";
# Currently no tests are implemented, so we avoid building the package twice
doCheck = false;
meta = with lib; {
description = "Automatic, optimal tiling for i3wm";
mainProgram = "i3-auto-layout";
homepage = "https://github.com/chmln/i3-auto-layout";
license = licenses.mit;
maintainers = with maintainers; [
mephistophiles
perstark
];
platforms = platforms.linux;
};
}

View File

@@ -0,0 +1,30 @@
{
lib,
buildPythonPackage,
fetchPypi,
i3ipc,
}:
buildPythonPackage rec {
pname = "i3-balance-workspace";
version = "1.8.6";
format = "setuptools";
src = fetchPypi {
inherit pname version;
hash = "sha256-zJdn/Q6r60FQgfehtQfeDkmN0Rz3ZaqgNhiWvjyQFy0=";
};
propagatedBuildInputs = [ i3ipc ];
doCheck = false; # project has no test
pythonImportsCheck = [ "i3_balance_workspace" ];
meta = {
description = "Balance windows and workspaces in i3wm";
homepage = "https://pypi.org/project/i3-balance-workspace/";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ euxane ];
mainProgram = "i3_balance_workspace";
};
}

View File

@@ -0,0 +1,84 @@
{
fetchFromGitHub,
lib,
stdenv,
perl,
makeWrapper,
iproute2,
acpi,
sysstat,
alsa-utils,
scripts ? [
"bandwidth"
"battery"
"cpu_usage"
"disk"
"iface"
"load_average"
"memory"
"volume"
"wifi"
],
}:
let
perlscripts = [
"battery"
"cpu_usage"
"openvpn"
"temperature"
];
contains_any = l1: l2: 0 < lib.length (lib.intersectLists l1 l2);
in
stdenv.mkDerivation rec {
pname = "i3blocks-gaps";
version = "1.4";
src = fetchFromGitHub {
owner = "Airblader";
repo = "i3blocks-gaps";
rev = "4cfdf93c75f729a2c96d471004d31734e923812f";
sha256 = "0v9307ij8xzwdaxay3r75sd2cp453s3qb6q7dy9fks2p6wwqpazi";
};
makeFlags = [ "all" ];
installFlags = [
"PREFIX=\${out}"
"VERSION=${version}"
];
buildInputs = lib.optional (contains_any scripts perlscripts) perl;
nativeBuildInputs = [ makeWrapper ];
postFixup =
lib.optionalString (lib.elem "bandwidth" scripts) ''
wrapProgram $out/libexec/i3blocks/bandwidth \
--prefix PATH : ${lib.makeBinPath [ iproute2 ]}
''
+ lib.optionalString (lib.elem "battery" scripts) ''
wrapProgram $out/libexec/i3blocks/battery \
--prefix PATH : ${lib.makeBinPath [ acpi ]}
''
+ lib.optionalString (lib.elem "cpu_usage" scripts) ''
wrapProgram $out/libexec/i3blocks/cpu_usage \
--prefix PATH : ${lib.makeBinPath [ sysstat ]}
''
+ lib.optionalString (lib.elem "iface" scripts) ''
wrapProgram $out/libexec/i3blocks/iface \
--prefix PATH : ${lib.makeBinPath [ iproute2 ]}
''
+ lib.optionalString (lib.elem "volume" scripts) ''
wrapProgram $out/libexec/i3blocks/volume \
--prefix PATH : ${lib.makeBinPath [ alsa-utils ]}
'';
meta = with lib; {
description = "Flexible scheduler for your i3bar blocks -- this is a fork to use with i3-gaps";
mainProgram = "i3blocks";
homepage = "https://github.com/Airblader/i3blocks-gaps";
license = licenses.gpl3;
maintainers = with maintainers; [ carlsverre ];
platforms = platforms.linux;
};
}

View File

@@ -0,0 +1,42 @@
{
fetchFromGitHub,
fetchpatch,
lib,
stdenv,
autoreconfHook,
pkg-config,
}:
stdenv.mkDerivation {
pname = "i3blocks";
version = "1.5";
src = fetchFromGitHub {
owner = "vivien";
repo = "i3blocks";
rev = "3417602a2d8322bc866861297f535e1ef80b8cb0";
sha256 = "0v8mwnm8qzpv6xnqvrk43s4b9iyld4naqzbaxk4ldq1qkhai0wsv";
};
patches = [
# XDG_CONFIG_DIRS can contain multiple elements separated by colons, which should be searched in order.
(fetchpatch {
# https://github.com/vivien/i3blocks/pull/405
url = "https://github.com/edef1c/i3blocks/commit/d57b32f9a364aeaf36869efdd54240433c737e57.patch";
sha256 = "102xb0ax0hmg82dz2gzfag470dkckzf2yizai0izacvrz0d3ngj1";
})
];
nativeBuildInputs = [
autoreconfHook
pkg-config
];
meta = with lib; {
description = "Flexible scheduler for your i3bar blocks";
mainProgram = "i3blocks";
homepage = "https://github.com/vivien/i3blocks";
license = licenses.gpl3;
platforms = with platforms; freebsd ++ linux;
};
}

View File

@@ -0,0 +1,28 @@
{
lib,
fetchFromGitHub,
rustPlatform,
}:
rustPlatform.buildRustPackage {
pname = "i3-cycle-focus";
version = "unstable-2021-09-27";
src = fetchFromGitHub {
owner = "TheDoctor314";
repo = "i3-cycle-focus";
rev = "d94f22e4b8502de4ed846a211fa0c8418b3e3e89";
hash = "sha256-caZKvxOqoYgPs+Zjltj8K0/ospjkLnA4kh0rsTjeU3Y=";
};
cargoHash = "sha256-6d3a9iaXKakbs7g/649nO39bh4Ka8jcBI/yJImTqoZs=";
meta = with lib; {
description = "Simple tool to cyclically switch between the windows on the active workspace";
mainProgram = "i3-cycle-focus";
homepage = "https://github.com/TheDoctor314/i3-cycle-focus";
license = licenses.unlicense;
maintainers = with maintainers; [ GaetanLepage ];
platforms = platforms.linux;
};
}

View File

@@ -0,0 +1,173 @@
{
fetchFromGitHub,
lib,
stdenv,
pkg-config,
makeWrapper,
meson,
ninja,
installShellFiles,
libxcb,
xcbutilkeysyms,
xcbutil,
xcbutilwm,
xcbutilxrm,
libstartup_notification,
libX11,
pcre2,
libev,
yajl,
xcb-util-cursor,
perl,
pango,
perlPackages,
libxkbcommon,
xorgserver,
xvfb-run,
xdotool,
xorg,
which,
asciidoc,
xmlto,
docbook_xml_dtd_45,
docbook_xsl,
findXMLCatalogs,
nixosTests,
nix-update-script,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "i3";
version = "4.24";
src = fetchFromGitHub {
owner = "i3";
repo = "i3";
tag = finalAttrs.version;
hash = "sha256-2tuhfB/SMN+osCBfZtw/yDPhNNEhBH4Qo6dexpqVWYk=";
};
nativeBuildInputs = [
pkg-config
makeWrapper
meson
ninja
installShellFiles
perl
asciidoc
xmlto
docbook_xml_dtd_45
docbook_xsl
findXMLCatalogs
];
mesonFlags = [
(lib.mesonBool "docs" true)
(lib.mesonBool "mans" true)
];
buildInputs = [
libxcb
xcbutilkeysyms
xcbutil
xcbutilwm
xcbutilxrm
libxkbcommon
libstartup_notification
libX11
pcre2
libev
yajl
xcb-util-cursor
perl
pango
perlPackages.AnyEventI3
perlPackages.X11XCB
perlPackages.IPCRun
perlPackages.ExtUtilsPkgConfig
perlPackages.InlineC
];
postPatch = ''
patchShebangs .
# This testcase generates a Perl executable file with a shebang, and
# patchShebangs can't replace a shebang in the middle of a file.
if [ -f testcases/t/318-i3-dmenu-desktop.t ]; then
substituteInPlace testcases/t/318-i3-dmenu-desktop.t \
--replace-fail "#!/usr/bin/env perl" "#!${lib.getExe perl}"
fi
'';
# xvfb-run is available only on Linux
doCheck = stdenv.hostPlatform.isLinux;
nativeCheckInputs = lib.optionals finalAttrs.finalPackage.doCheck [
xorgserver
xvfb-run
xdotool
xorg.setxkbmap
xorg.xrandr
which
];
checkPhase = ''
runHook preCheck
test_failed=
# "| cat" disables fancy progress reporting which makes the log unreadable.
./complete-run.pl -p 1 --keep-xserver-output | cat || test_failed="complete-run.pl returned $?"
if [ -z "$test_failed" ]; then
# Apparently some old versions of `complete-run.pl` did not return a
# proper exit code, so check the log for signs of errors too.
grep -q '^not ok' latest/complete-run.log && test_failed="test log contains errors" ||:
fi
if [ -n "$test_failed" ]; then
echo "***** Error: $test_failed"
echo "===== Test log ====="
cat latest/complete-run.log
echo "===== End of test log ====="
false
fi
runHook postCheck
'';
postInstall = ''
wrapProgram "$out/bin/i3-save-tree" --prefix PERL5LIB ":" "$PERL5LIB"
for program in $out/bin/i3-sensible-*; do
sed -i 's/which/command -v/' $program
done
installManPage man/*.1
'';
separateDebugInfo = true;
passthru = {
updateScript = nix-update-script { };
tests = {
inherit (nixosTests) i3wm;
};
};
meta = {
description = "Tiling window manager";
homepage = "https://i3wm.org";
maintainers = with lib.maintainers; [
modulistic
fpletz
];
mainProgram = "i3";
license = lib.licenses.bsd3;
platforms = lib.platforms.unix;
longDescription = ''
A tiling window manager primarily targeted at advanced users and
developers. Based on a tree as data structure, supports tiling,
stacking, and tabbing layouts, handled dynamically, as well as
floating windows. Configured via plain text file. Multi-monitor.
UTF-8 clean.
'';
};
})

View File

@@ -0,0 +1,49 @@
{
lib,
stdenv,
fetchFromGitHub,
pkg-config,
xorgproto,
libxcb,
xcbutilkeysyms,
xorg,
i3ipc-glib,
glib,
}:
stdenv.mkDerivation {
pname = "i3easyfocus";
version = "20190411";
src = fetchFromGitHub {
owner = "cornerman";
repo = "i3-easyfocus";
rev = "fffb468f7274f9d7c9b92867c8cb9314ec6cf81a";
sha256 = "1db23vzzmp0hnfss1fkd80za6d2pajx7hdwikw50pk95jq0w8wfm";
};
nativeBuildInputs = [ pkg-config ];
buildInputs = [
libxcb
xcbutilkeysyms
xorgproto
xorg.libX11.dev
i3ipc-glib
glib.dev
];
# Makefile has no rule for 'install'
installPhase = ''
mkdir -p $out/bin
cp i3-easyfocus $out/bin
'';
meta = with lib; {
description = "Focus and select windows in i3";
mainProgram = "i3-easyfocus";
homepage = "https://github.com/cornerman/i3-easyfocus";
maintainers = with maintainers; [ teto ];
license = licenses.gpl3;
platforms = platforms.linux;
};
}

View File

@@ -0,0 +1,31 @@
{
lib,
rustPlatform,
fetchFromGitHub,
}:
rustPlatform.buildRustPackage rec {
pname = "i3-ratiosplit";
version = "0.1.0";
src = fetchFromGitHub {
owner = "333fred";
repo = "i3-ratiosplit";
rev = "v${version}";
sha256 = "0yfmr5zk2c2il9d31yjjbr48sqgcq6hp4a99hl5mjm2ajyhy5bz3";
};
cargoHash = "sha256-no5fJ5nlwyS/PVi9J5Ek3c3Rp7A3MflpReo9kwJrj6U=";
# Currently no tests are implemented, so we avoid building the package twice
doCheck = false;
meta = with lib; {
description = "Resize newly created windows";
mainProgram = "i3-ratiosplit";
homepage = "https://github.com/333fred/i3-ratiosplit";
license = licenses.mit;
maintainers = with maintainers; [ svrana ];
platforms = platforms.linux;
};
}

View File

@@ -0,0 +1,43 @@
{
lib,
buildPythonApplication,
click,
i3ipc,
psutil,
natsort,
fetchPypi,
xprop,
xdotool,
importlib-metadata,
}:
buildPythonApplication rec {
pname = "i3-resurrect";
version = "1.4.5";
format = "setuptools";
src = fetchPypi {
inherit pname version;
hash = "sha256-13FKRvEE4vHq5G51G1UyBnfNiWeS9Q/SYCG16E1Sn4c=";
};
propagatedBuildInputs = [
click
psutil
xprop
natsort
i3ipc
xdotool
importlib-metadata
];
doCheck = false; # no tests
meta = with lib; {
homepage = "https://github.com/JonnyHaystack/i3-resurrect";
description = "Simple but flexible solution to saving and restoring i3 workspaces";
mainProgram = "i3-resurrect";
license = licenses.gpl3;
platforms = platforms.linux;
maintainers = with maintainers; [ magnetophon ];
};
}

View File

@@ -0,0 +1,52 @@
{
lib,
stdenv,
fetchFromGitHub,
pkg-config,
xorgproto,
libxcb,
autoreconfHook,
json-glib,
gtk-doc,
which,
gobject-introspection,
}:
stdenv.mkDerivation rec {
pname = "i3ipc-glib";
version = "1.0.1";
src = fetchFromGitHub {
owner = "acrisci";
repo = "i3ipc-glib";
rev = "v${version}";
sha256 = "01fzvrbnzcwx0vxw29igfpza9zwzp2s7msmzb92v01z0rz0y5m0p";
};
strictDeps = true;
nativeBuildInputs = [
autoreconfHook
which
pkg-config
gtk-doc
gobject-introspection
];
buildInputs = [
libxcb
json-glib
xorgproto
];
preAutoreconf = ''
gtkdocize
'';
meta = with lib; {
description = "C interface library to i3wm";
homepage = "https://github.com/acrisci/i3ipc-glib";
maintainers = with maintainers; [ teto ];
license = licenses.gpl3;
platforms = platforms.linux;
};
}

View File

@@ -0,0 +1,21 @@
commit 410e98569c87469672086d4144f7ca0f2ee08fb7
Author: Michael Hoang <enzime@users.noreply.github.com>
Date: Sun May 21 00:13:37 2023 +1000
Allow project to be built with just `pip`
---
pyproject.toml | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/pyproject.toml b/pyproject.toml
index 10ed786..574e42a 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -1,3 +1,7 @@
+[build-system]
+requires = ["poetry-core"]
+build-backend = "poetry.core.masonry.api"
+
[tool.poetry]
name = "kitti3"
version = "0.5.1"

View File

@@ -0,0 +1,42 @@
{
buildPythonApplication,
fetchFromGitHub,
poetry-core,
i3ipc,
lib,
}:
buildPythonApplication {
pname = "kitti3";
version = "unstable-2021-09-11";
format = "pyproject";
src = fetchFromGitHub {
owner = "LandingEllipse";
repo = "kitti3";
rev = "f9f94c8b9f8b61a9d085206ada470cfe755a2a92";
hash = "sha256-bcIzbDpIe2GKS9EcVqpjwz0IG2ixNMn06OIQpZ7PeH0=";
};
patches = [
# Fixes `build-system` not being specified in `pyproject.toml`
# https://github.com/LandingEllipse/kitti3/pull/25
./kitti3-fix-build-system.patch
];
nativeBuildInputs = [
poetry-core
];
propagatedBuildInputs = [
i3ipc
];
meta = with lib; {
homepage = "https://github.com/LandingEllipse/kitti3";
description = "Kitty drop-down service for sway & i3wm";
mainProgram = "kitti3";
license = licenses.bsd3;
maintainers = [ ];
};
}

View File

@@ -0,0 +1,62 @@
{
lib,
stdenv,
fetchFromGitHub,
vim,
makeWrapper,
jq,
rofi,
xrandr,
xdotool,
i3,
gawk,
libnotify,
}:
let
path = lib.makeBinPath [
vim
jq
rofi
xrandr
xdotool
i3
gawk
libnotify
];
in
stdenv.mkDerivation {
pname = "i3-layout-manager";
version = "unstable-2020-05-04";
src = fetchFromGitHub {
owner = "klaxalk";
repo = "i3-layout-manager";
rev = "df54826bba351d8bcd7ebeaf26c07c713af7912c";
sha256 = "0ccvr43yp26fnh5d82cw7jcfq2sbxzzmdx2cp15bmxr8ixr8knc3";
};
nativeBuildInputs = [ makeWrapper ];
dontBuild = true;
installPhase = ''
runHook preInstall
install -D layout_manager.sh $out/bin/layout_manager
wrapProgram $out/bin/layout_manager \
--prefix PATH : "${path}"
runHook postInstall
'';
meta = with lib; {
homepage = "https://github.com/klaxalk/i3-layout-manager";
description = "Saving, loading and managing layouts for i3wm";
mainProgram = "layout_manager";
license = licenses.mit;
platforms = platforms.linux;
maintainers = [ ];
};
}

View File

@@ -0,0 +1,41 @@
{
i3lock-color,
lib,
stdenv,
fetchFromGitHub,
fetchpatch,
libGL,
}:
i3lock-color.overrideAttrs (oldAttrs: rec {
pname = "i3lock-blur";
version = "2.10";
src = fetchFromGitHub {
owner = "karulont";
repo = "i3lock-blur";
rev = version;
sha256 = "sha256-rBQHYVD9rurzTEXrgEnOziOP22D2EePC1+EV9Wi2pa0=";
};
patches = [
# Pull patch pending upstream inclusion for -fno-common toolchain
# support: https://github.com/karulont/i3lock-blur/pull/22
(fetchpatch {
name = "fno-common.patch";
url = "https://github.com/karulont/i3lock-blur/commit/ec8fe0e7f7d78bf445602ed517efd5c324bb32f7.patch";
sha256 = "sha256-0hXUr+ZEB1tpI3xw80/hGzKyeGuna4CQmEvK6t0VBqU=";
})
];
buildInputs = oldAttrs.buildInputs ++ [ libGL ];
meta = with lib; {
description = "Improved screenlocker based upon XCB and PAM with background blurring filter";
homepage = "https://github.com/karulont/i3lock-blur/";
license = licenses.bsd3;
maintainers = [ ];
platforms = platforms.all;
broken = stdenv.hostPlatform.isDarwin; # never built on Hydra https://hydra.nixos.org/job/nixpkgs/trunk/i3lock-blur.x86_64-darwin
};
})

View File

@@ -0,0 +1,97 @@
{
lib,
stdenv,
fetchFromGitHub,
autoreconfHook,
pkg-config,
libxcb,
xcbutilkeysyms,
xcbutilimage,
pam,
libX11,
libev,
cairo,
libxkbcommon,
libxkbfile,
libjpeg_turbo,
xcbutilxrm,
xorg,
}:
stdenv.mkDerivation rec {
version = "2.13.c.5";
pname = "i3lock-color";
src = fetchFromGitHub {
owner = "PandorasFox";
repo = "i3lock-color";
rev = version;
sha256 = "sha256-fuLeglRif2bruyQRqiL3nm3q6qxoHcPdVdL+QjGBR/k=";
};
nativeBuildInputs = [
autoreconfHook
pkg-config
];
buildInputs = [
libxcb
xcbutilkeysyms
xcbutilimage
pam
libX11
libev
cairo
libxkbcommon
libxkbfile
libjpeg_turbo
xcbutilxrm
xorg.xcbutil
];
makeFlags = [ "all" ];
preInstall = ''
mkdir -p $out/share/man/man1
'';
installFlags = [
"PREFIX=\${out}"
"SYSCONFDIR=\${out}/etc"
"MANDIR=\${out}/share/man"
];
postInstall = ''
mv $out/bin/i3lock $out/bin/i3lock-color
ln -s $out/bin/i3lock-color $out/bin/i3lock
mv $out/share/man/man1/i3lock.1 $out/share/man/man1/i3lock-color.1
sed -i 's/\(^\|\s\|"\)i3lock\(\s\|$\)/\1i3lock-color\2/g' $out/share/man/man1/i3lock-color.1
'';
meta = with lib; {
description = "Simple screen locker like slock, enhanced version with extra configuration options";
longDescription = ''
Simple screen locker. After locking, a colored background (default: white) or
a configurable image is shown, and a ring-shaped unlock-indicator gives feedback
for every keystroke. After entering your password, the screen is unlocked again.
i3lock-color is forked from i3lock (https://i3wm.org/i3lock/) with the following
enhancements / additional configuration options:
- indicator:
- shape: ring or bar
- size: configurable
- all colors: configurable
- all texts: configurable
- visibility: can be always visible, can be restricted to some screens
- background: optionally show a blurred screen instead of a single color
- more information: show text at configurable positions:
- clock: time/date with configurable format
- keyboard-layout
'';
homepage = "https://github.com/PandorasFox/i3lock-color";
maintainers = with maintainers; [ malyn ];
mainProgram = "i3lock-color";
license = licenses.bsd3;
platforms = platforms.all;
broken = stdenv.hostPlatform.isDarwin;
};
}

View File

@@ -0,0 +1,46 @@
{
lib,
stdenv,
fetchFromGitHub,
xorg,
i3lock,
}:
stdenv.mkDerivation {
pname = "i3lock-fancy-rapid";
version = "unstable-2021-04-21";
src = fetchFromGitHub {
owner = "yvbbrjdr";
repo = "i3lock-fancy-rapid";
rev = "6eeebd4caa177b82fa5010b5e8828cce3f89fb97";
hash = "sha256-EoX8ts0yV/zkb4wgEh4P8noU+UraRS4w9pp+76v+Nm0=";
};
buildInputs = [ xorg.libX11 ];
propagatedBuildInputs = [ i3lock ];
postPatch = ''
substituteInPlace i3lock-fancy-rapid.c \
--replace '"i3lock"' '"${i3lock}/bin/i3lock"'
'';
installPhase = ''
runHook preInstall
install -D i3lock-fancy-rapid $out/bin/i3lock-fancy-rapid
ln -s $out/bin/i3lock-fancy-rapid $out/bin/i3lock
runHook postInstall
'';
meta = with lib; {
description = "Faster implementation of i3lock-fancy";
homepage = "https://github.com/yvbbrjdr/i3lock-fancy-rapid";
maintainers = with maintainers; [ nickhu ];
mainProgram = "i3lock-fancy-rapid";
license = licenses.bsd3;
platforms = platforms.linux;
};
}

View File

@@ -0,0 +1,80 @@
{
coreutils,
fetchFromGitHub,
fontconfig,
gawk,
getopt,
i3lock-color,
imagemagick,
installShellFiles,
lib,
makeWrapper,
scrot,
stdenv,
screenshotCommand ? "",
}:
stdenv.mkDerivation {
pname = "i3lock-fancy";
version = "unstable-2023-04-28";
src = fetchFromGitHub {
owner = "meskarune";
repo = "i3lock-fancy";
rev = "55f5c30071403faf5ae4363a54b6d1f63876d5ce";
hash = "sha256-ISymKlxLE4/ChDiyjnavFx4T5hEVI62cCxYLWrWiHrg=";
};
nativeBuildInputs = [
makeWrapper
installShellFiles
];
postPatch = ''
sed -i i3lock-fancy \
-e 's|icon="/usr/share/i3lock-fancy/icons/lockdark.png"|icon="'$out'/share/i3lock-fancy/icons/lockdark.png"|' \
-e 's|icon="/usr/share/i3lock-fancy/icons/lock.png"|icon="'$out'/share/i3lock-fancy/icons/lock.png"|'
rm Makefile
''
+ lib.optionalString (screenshotCommand != "") ''
sed -i i3lock-fancy \
-e "s|shot=(import -silent -window root)|shot=(${screenshotCommand})|";
'';
installPhase = ''
runHook preInstall
mkdir -p $out/bin $out/share/i3lock-fancy/icons
cp i3lock-fancy $out/bin/i3lock-fancy
ln -s $out/bin/i3lock-fancy $out/bin/i3lock
cp icons/lock*.png $out/share/i3lock-fancy/icons
installManPage doc/i3lock-fancy.1
runHook postInstall
'';
postInstall = ''
wrapProgram $out/bin/i3lock-fancy \
--prefix PATH : ${
lib.makeBinPath [
coreutils
fontconfig
gawk
getopt
i3lock-color
imagemagick
scrot
]
}
'';
meta = with lib; {
description = "Bash script that takes a screenshot of the desktop, blurs the background and adds a lock icon and text";
homepage = "https://github.com/meskarune/i3lock-fancy";
maintainers = [ maintainers.reedrw ];
mainProgram = "i3lock-fancy";
license = licenses.mit;
platforms = platforms.linux;
};
}

View File

@@ -0,0 +1,68 @@
{
stdenv,
lib,
fetchFromGitHub,
meson,
ninja,
pkg-config,
libxcb,
xcbutilkeysyms,
xcbutilimage,
xcbutilxrm,
pam,
libX11,
libev,
cairo,
libxkbcommon,
libxkbfile,
xorg,
}:
stdenv.mkDerivation rec {
pname = "i3lock";
version = "2.15";
src = fetchFromGitHub {
owner = "i3";
repo = "i3lock";
rev = version;
sha256 = "sha256-OyV6GSLnNV3GUqrfs3OBnIaBvicH2PXgeY4acOk5dR4=";
};
separateDebugInfo = true;
nativeBuildInputs = [
meson
ninja
pkg-config
];
buildInputs = [
libxcb
xcbutilkeysyms
xcbutilimage
xcbutilxrm
pam
libX11
libev
cairo
libxkbcommon
libxkbfile
xorg.xcbutil
];
meta = with lib; {
description = "Simple screen locker like slock";
longDescription = ''
Simple screen locker. After locking, a colored background (default: white) or
a configurable image is shown, and a ring-shaped unlock-indicator gives feedback
for every keystroke. After entering your password, the screen is unlocked again.
'';
homepage = "https://i3wm.org/i3lock/";
maintainers = with maintainers; [
malyn
];
mainProgram = "i3lock";
license = licenses.bsd3;
platforms = platforms.all;
};
}

View File

@@ -0,0 +1,31 @@
{
fetchFromGitHub,
lib,
i3,
pcre,
}:
i3.overrideAttrs (oldAttrs: {
pname = "i3-rounded";
version = "4.21.1";
src = fetchFromGitHub {
owner = "LinoBigatti";
repo = "i3-rounded";
rev = "524c9f7b50f8c540b2ae3480b242c30d8775f98e";
sha256 = "0y7m1s1y8f9vgkp7byi33js8n4rigiykd71s936i5d4rwlzrxiwm";
};
buildInputs = oldAttrs.buildInputs ++ [ pcre ];
# Some tests are failing.
doCheck = false;
meta = with lib; {
description = "Fork of i3-gaps that adds rounding to window corners";
homepage = "https://github.com/LinoBigatti/i3-rounded";
maintainers = with maintainers; [ marsupialgutz ];
license = licenses.bsd3;
platforms = platforms.unix;
};
})

View File

@@ -0,0 +1,57 @@
{
fetchurl,
lib,
stdenv,
libconfuse,
yajl,
alsa-lib,
libpulseaudio,
libnl,
meson,
ninja,
perl,
pkg-config,
asciidoc,
xmlto,
docbook_xml_dtd_45,
docbook_xsl,
}:
stdenv.mkDerivation rec {
pname = "i3status";
version = "2.15";
src = fetchurl {
url = "https://i3wm.org/i3status/i3status-${version}.tar.xz";
sha256 = "sha256-bGf1LK5PE533ZK0cxzZWK+D5d1B5G8IStT80wG6vIgU=";
};
separateDebugInfo = true;
nativeBuildInputs = [
meson
ninja
perl
pkg-config
asciidoc
xmlto
docbook_xml_dtd_45
docbook_xsl
];
buildInputs = [
libconfuse
yajl
alsa-lib
libpulseaudio
libnl
];
meta = {
description = "Generates a status line for i3bar, dzen2, xmobar or lemonbar";
homepage = "https://i3wm.org";
maintainers = with lib.maintainers; [ stapelberg ];
license = lib.licenses.bsd3;
platforms = lib.platforms.all;
mainProgram = "i3status";
};
}

View File

@@ -0,0 +1,45 @@
{
lib,
buildPythonApplication,
fetchFromGitHub,
poetry-core,
i3ipc,
xlib,
six,
}:
buildPythonApplication {
pname = "i3-swallow";
version = "unstable-2022-02-19";
format = "pyproject";
src = fetchFromGitHub {
owner = "jamesofarrell";
repo = "i3-swallow";
rev = "6fbc04645c483fe733de56b56743e453693d4c78";
sha256 = "1l3x8mixwq4n0lnyp0wz5vijgnypamq6lqjazcd2ywl2jv8d6fif";
};
nativeBuildInputs = [
poetry-core
];
propagatedBuildInputs = [
i3ipc
xlib
six
];
# No tests available
doCheck = false;
meta = with lib; {
homepage = "https://github.com/jamesofarrell/i3-swallow";
description = "Swallow a terminal window in i3wm";
license = licenses.mit;
platforms = platforms.linux;
mainProgram = "swallow";
maintainers = [ ];
};
}

View File

@@ -0,0 +1,37 @@
{
lib,
fetchFromGitHub,
python3Packages,
}:
python3Packages.buildPythonApplication {
pname = "i3-wk-switch";
version = "2020-03-18";
format = "other";
src = fetchFromGitHub {
owner = "tmfink";
repo = "i3-wk-switch";
rev = "a618cb8f52120aa8d533bb7c0c8de3ff13b3dc06";
sha256 = "0ci0w5igjk5xa8x4rx17cpgmdkamwjmavxhp0vp6213cl93ybjhz";
};
propagatedBuildInputs = with python3Packages; [ i3ipc ];
dontBuild = true;
doCheck = false;
installPhase = ''
mkdir -p "$out/bin"
cp i3-wk-switch.py "$out/bin/i3-wk-switch"
'';
meta = with lib; {
description = "XMonad-like workspace switching for i3 and sway";
mainProgram = "i3-wk-switch";
maintainers = with maintainers; [ synthetica ];
platforms = platforms.linux;
license = licenses.mit;
homepage = "https://travisf.net/i3-wk-switcher";
};
}

View File

@@ -0,0 +1,50 @@
{
lib,
fetchFromGitHub,
rustPlatform,
xorg,
python3,
pkg-config,
cairo,
expat,
libxkbcommon,
}:
rustPlatform.buildRustPackage rec {
pname = "wmfocus";
version = "1.5.0";
src = fetchFromGitHub {
owner = "svenstaro";
repo = "wmfocus";
rev = "v${version}";
sha256 = "sha256-94MgE2j8HaS8IyzHEDtoqTls2A8xD96v2iAFx9XfMcw=";
};
cargoHash = "sha256-tYzJS/ApjGuvNnGuBEVr54AGcEmDhG9HtirZvtmNslY=";
nativeBuildInputs = [
python3
pkg-config
];
buildInputs = [
cairo
expat
libxkbcommon
xorg.xcbutilkeysyms
];
# For now, this is the only available featureset. This is also why the file is
# in the i3 folder, even though it might be useful for more than just i3
# users.
buildFeatures = [ "i3" ];
meta = with lib; {
description = "Visually focus windows by label";
mainProgram = "wmfocus";
homepage = "https://github.com/svenstaro/wmfocus";
license = licenses.mit;
maintainers = with maintainers; [ synthetica ];
platforms = platforms.linux;
};
}

View File

@@ -0,0 +1,29 @@
{
lib,
rustPlatform,
fetchFromGitHub,
}:
rustPlatform.buildRustPackage {
pname = "workstyle";
version = "unstable-2023-08-23";
src = fetchFromGitHub {
owner = "pierrechevalier83";
repo = "workstyle";
rev = "8bde72d9a9dd67e0fc7c0545faca53df23ed3753";
sha256 = "sha256-yhnt7edhgVy/cZ6FpF6AZWPoeMeEKTXP+87no2KeIYU=";
};
cargoHash = "sha256-es8kS1w71TuQ1pKb4/wXtpukWEBqUJUA+GX3uXOYbtU=";
doCheck = false; # No tests
meta = with lib; {
description = "Sway workspaces with style";
homepage = "https://github.com/pierrechevalier83/workstyle";
license = licenses.mit;
maintainers = with maintainers; [ FlorianFranzen ];
mainProgram = "workstyle";
};
}

View File

@@ -0,0 +1,40 @@
{
lib,
fetchFromGitHub,
rustPlatform,
libxcb,
python3,
}:
rustPlatform.buildRustPackage rec {
pname = "i3wsr";
version = "3.1.2";
src = fetchFromGitHub {
owner = "roosta";
repo = "i3wsr";
rev = "v${version}";
hash = "sha256-8cQM2M9XjS4FSSX1/WHqmTP842Ahd1XoaqOWSGSEE0s=";
};
cargoHash = "sha256-d+pFDvmfsuJbanUlheHxln9BY1HxU3UQE+pWRthGcc4=";
nativeBuildInputs = [ python3 ];
buildInputs = [ libxcb ];
# has not tests
doCheck = false;
meta = with lib; {
mainProgram = "i3wsr";
description = "Automatically change i3 workspace names based on their contents";
longDescription = ''
Automatically sets the workspace names to match the windows on the workspace.
The chosen name for a workspace is a user-defined composite of the WM_CLASS X11
window property for each window in a workspace.
'';
homepage = "https://github.com/roosta/i3wsr";
license = licenses.mit;
maintainers = [ maintainers.sebbadk ];
};
}