dwm{,-status}, dmenu{,-wayland}, st (+ forks): move to by-name, refactor (#424634)

This commit is contained in:
Weijia Wang 2025-07-24 02:31:19 +02:00 committed by GitHub
commit 5a456c6ef2
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
9 changed files with 131 additions and 148 deletions

View File

@ -1,51 +0,0 @@
{
lib,
stdenv,
fetchFromGitHub,
fontconfig,
libX11,
libXext,
libXft,
ncurses,
pkg-config,
}:
stdenv.mkDerivation {
pname = "mcaimi-st";
version = "0.pre+unstable=2021-08-30";
src = fetchFromGitHub {
owner = "mcaimi";
repo = "st";
rev = "1a8cad03692ee6d32c03a136cdc76bdb169e15d8";
hash = "sha256-xyVEvD8s1J9Wj9NB4Gg+0ldvde7M8IVpzCOTttC1IY0=";
};
nativeBuildInputs = [
pkg-config
];
buildInputs = [
fontconfig
libX11
libXext
libXft
ncurses
];
installPhase = ''
runHook preInstall
TERMINFO=$out/share/terminfo make install PREFIX=$out
runHook postInstall
'';
meta = with lib; {
homepage = "https://github.com/gnotclub/xst";
description = "Suckless Terminal fork";
mainProgram = "st";
license = licenses.mit;
maintainers = with maintainers; [ ];
platforms = platforms.linux;
};
}

View File

@ -18,7 +18,7 @@
stdenv.mkDerivation {
pname = "dmenu-wayland";
version = "unstable-2023-05-18";
version = "0-unstable-2023-05-18";
src = fetchFromGitHub {
owner = "nyyManni";
@ -63,12 +63,12 @@ stdenv.mkDerivation {
--prefix PATH : $out/bin
'';
meta = with lib; {
license = licenses.mit;
platforms = platforms.linux;
meta = {
license = lib.licenses.mit;
platforms = lib.platforms.linux;
description = "Efficient dynamic menu for wayland (wlroots)";
homepage = "https://github.com/nyyManni/dmenu-wayland";
maintainers = with maintainers; [ rewine ];
maintainers = with lib.maintainers; [ rewine ];
mainProgram = "dmenu-wl";
};
}

View File

@ -1,37 +1,36 @@
{
lib,
stdenv,
fetchurl,
fetchzip,
fontconfig,
libX11,
libXinerama,
libXft,
pkg-config,
zlib,
writeText,
conf ? null,
patches ? null,
# customization
config,
conf ? config.dmenu.conf or null,
extraLibs ? config.dmenu.extraLibs or [ ],
patches ? config.dmenu.patches or [ ],
# update script dependencies
gitUpdater,
}:
stdenv.mkDerivation rec {
stdenv.mkDerivation (finalAttrs: {
pname = "dmenu";
version = "5.3";
src = fetchurl {
url = "https://dl.suckless.org/tools/dmenu-${version}.tar.gz";
sha256 = "sha256-Go9T5v0tdJg57IcMXiez4U2lw+6sv8uUXRWeHVQzeV8=";
src = fetchzip {
url = "https://dl.suckless.org/tools/dmenu-${finalAttrs.version}.tar.gz";
hash = "sha256-3lRLa3NIg+7bUSDnef/rVL3XwvWWHTIPQ8mcVaq/SVI=";
};
nativeBuildInputs = [ pkg-config ];
buildInputs = [
fontconfig
libX11
libXinerama
zlib
libXft
];
] ++ extraLibs;
inherit patches;
@ -50,25 +49,22 @@ stdenv.mkDerivation rec {
makeFlagsArray+=(
PREFIX="$out"
CC="$CC"
# default config.mk hardcodes dependent libraries and include paths
INCS="`$PKG_CONFIG --cflags fontconfig x11 xft xinerama`"
LIBS="`$PKG_CONFIG --libs fontconfig x11 xft xinerama`"
)
'';
passthru.updateScript = gitUpdater { url = "git://git.suckless.org/dmenu"; };
meta = with lib; {
meta = {
description = "Generic, highly customizable, and efficient menu for the X Window System";
homepage = "https://tools.suckless.org/dmenu";
license = licenses.mit;
maintainers = with maintainers; [
license = lib.licenses.mit;
maintainers = with lib.maintainers; [
pSub
globin
qusic
_0david0mp
];
platforms = platforms.all;
platforms = lib.platforms.all;
mainProgram = "dmenu";
};
}
})

View File

@ -7,7 +7,7 @@
libnotify,
makeWrapper,
pkg-config,
xorg,
libX11,
enableAlsaUtils ? true,
alsa-utils,
coreutils,
@ -31,14 +31,14 @@ let
];
in
rustPlatform.buildRustPackage rec {
rustPlatform.buildRustPackage (finalAttrs: {
pname = "dwm-status";
version = "1.10.0";
src = fetchFromGitHub {
owner = "Gerschtli";
repo = pname;
tag = version;
repo = "dwm-status";
tag = finalAttrs.version;
hash = "sha256-982JFYZroskKppAOZjBWOFt624FfRjhXpYN57s/cM50=";
};
@ -50,7 +50,7 @@ rustPlatform.buildRustPackage rec {
dbus
gdk-pixbuf
libnotify
xorg.libX11
libX11
];
useFetchCargoVendor = true;
@ -65,7 +65,7 @@ rustPlatform.buildRustPackage rec {
meta = {
description = "Highly performant and configurable DWM status service";
homepage = "https://github.com/Gerschtli/dwm-status";
changelog = "https://github.com/Gerschtli/dwm-status/blob/${src.rev}/CHANGELOG.md";
changelog = "https://github.com/Gerschtli/dwm-status/blob/${finalAttrs.src.rev}/CHANGELOG.md";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [
gepbird
@ -74,4 +74,4 @@ rustPlatform.buildRustPackage rec {
mainProgram = "dwm-status";
platforms = lib.platforms.linux;
};
}
})

View File

@ -1,25 +1,28 @@
{
lib,
stdenv,
fetchurl,
fetchzip,
libX11,
libXinerama,
libXft,
writeText,
pkg-config,
patches ? [ ],
conf ? null,
# customization
config,
conf ? config.dwm.conf or null,
patches ? config.dwm.patches or [ ],
extraLibs ? config.dwm.extraLibs or [ ],
# update script dependencies
gitUpdater,
}:
stdenv.mkDerivation rec {
stdenv.mkDerivation (finalAttrs: {
pname = "dwm";
version = "6.5";
src = fetchurl {
url = "https://dl.suckless.org/dwm/${pname}-${version}.tar.gz";
sha256 = "sha256-Ideev6ny+5MUGDbCZmy4H0eExp1k5/GyNS+blwuglyk=";
src = fetchzip {
url = "https://dl.suckless.org/dwm/dwm-${finalAttrs.version}.tar.gz";
hash = "sha256-Cc4B8evvuRxOjbeOhg3oAs3Nxi/msxWg950/eiq536w=";
};
nativeBuildInputs = lib.optional stdenv.hostPlatform.isStatic pkg-config;
@ -28,14 +31,16 @@ stdenv.mkDerivation rec {
libX11
libXinerama
libXft
];
] ++ extraLibs;
prePatch = ''
sed -i "s@/usr/local@$out@" config.mk
'';
preBuild = lib.optional stdenv.hostPlatform.isStatic ''
makeFlagsArray+=(LDFLAGS="$(${stdenv.cc.targetPrefix}pkg-config --static --libs x11 xinerama xft)")
preBuild = ''
makeFlagsArray+=(
"PREFIX=$out"
"CC=$CC"
${lib.optionalString stdenv.hostPlatform.isStatic ''
LDFLAGS="$(${stdenv.cc.targetPrefix}pkg-config --static --libs x11 xinerama xft)"
''}
)
'';
# Allow users set their own list of patches
@ -49,13 +54,11 @@ stdenv.mkDerivation rec {
in
lib.optionalString (conf != null) "cp ${configFile} config.def.h";
makeFlags = [ "CC=${stdenv.cc.targetPrefix}cc" ];
passthru.updateScript = gitUpdater {
url = "git://git.suckless.org/dwm";
};
meta = with lib; {
meta = {
homepage = "https://dwm.suckless.org/";
description = "Extremely fast, small, and dynamic window manager for X";
longDescription = ''
@ -67,9 +70,9 @@ stdenv.mkDerivation rec {
multiple tags. Selecting certain tags displays all windows with these
tags.
'';
license = licenses.mit;
maintainers = with maintainers; [ neonfuz ];
platforms = platforms.all;
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ neonfuz ];
platforms = lib.platforms.all;
mainProgram = "dwm";
};
}
})

View File

@ -0,0 +1,53 @@
{
lib,
stdenv,
fetchFromGitHub,
fontconfig,
libX11,
libXext,
libXft,
ncurses,
pkg-config,
nix-update-script,
}:
stdenv.mkDerivation {
pname = "mcaimi-st";
version = "0-unstable-2025-03-12";
src = fetchFromGitHub {
owner = "mcaimi";
repo = "st";
rev = "f1ae5cdafadceaf622e1c0ff56da04803bf658b3";
hash = "sha256-rGru0LqbuJQ4QOts6xYDztAST0K5HCys2gUPZg2w4SE=";
};
nativeBuildInputs = [
pkg-config
];
buildInputs = [
fontconfig
libX11
libXext
libXft
ncurses
];
installFlags = [
"TERMINFO=$(out)/share/terminfo"
"PREFIX=$(out)"
];
passthru.updateScript = nix-update-script {
extraArgs = [ "--version=branch" ];
};
meta = {
homepage = "https://github.com/mcaimi/st";
description = "Suckless Terminal fork";
mainProgram = "st";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ ];
platforms = lib.platforms.linux;
};
}

View File

@ -1,7 +1,7 @@
{
lib,
stdenv,
fetchurl,
fetchzip,
pkg-config,
fontconfig,
freetype,
@ -9,9 +9,10 @@
libXft,
ncurses,
writeText,
conf ? null,
patches ? [ ],
extraLibs ? [ ],
config,
conf ? config.st.conf or null,
patches ? config.st.patches or [ ],
extraLibs ? config.st.extraLibs or [ ],
nixosTests,
# update script dependencies
gitUpdater,
@ -21,9 +22,9 @@ stdenv.mkDerivation (finalAttrs: {
pname = "st";
version = "0.9.2";
src = fetchurl {
src = fetchzip {
url = "https://dl.suckless.org/st/st-${finalAttrs.version}.tar.gz";
hash = "sha256-ayFdT0crIdYjLzDyIRF6d34kvP7miVXd77dCZGf5SUs=";
hash = "sha256-pFyK4XvV5Z4gBja8J996zF6wkdgQCNVccqUJ5+ejB/w=";
};
outputs = [
@ -73,12 +74,12 @@ stdenv.mkDerivation (finalAttrs: {
};
};
meta = with lib; {
meta = {
homepage = "https://st.suckless.org/";
description = "Simple Terminal for X from Suckless.org Community";
license = licenses.mit;
maintainers = with maintainers; [ qusic ];
platforms = platforms.unix;
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ qusic ];
platforms = lib.platforms.unix;
mainProgram = "st";
};
})

View File

@ -8,17 +8,18 @@
libXft,
ncurses,
pkg-config,
nix-update-script,
}:
stdenv.mkDerivation rec {
stdenv.mkDerivation (finalAttrs: {
pname = "xst";
version = "0.10.0";
src = fetchFromGitHub {
owner = "gnotclub";
repo = pname;
rev = "v${version}";
sha256 = "sha256-2pXR9U2tTBd0lyeQ3BjnXW+Ne9aUQg/+rnpmYPPG06A=";
repo = "xst";
tag = "v${finalAttrs.version}";
hash = "sha256-2pXR9U2tTBd0lyeQ3BjnXW+Ne9aUQg/+rnpmYPPG06A=";
};
nativeBuildInputs = [
@ -32,20 +33,19 @@ stdenv.mkDerivation rec {
ncurses
];
installPhase = ''
runHook preInstall
installFlags = [
"TERMINFO=$(out)/share/terminfo"
"PREFIX=$(out)"
];
TERMINFO=$out/share/terminfo make install PREFIX=$out
passthru.updateScript = nix-update-script { };
runHook postInstall
'';
meta = with lib; {
meta = {
homepage = "https://github.com/gnotclub/xst";
description = "Simple terminal fork that can load config from Xresources";
mainProgram = "xst";
license = licenses.mit;
maintainers = [ maintainers.vyp ];
platforms = platforms.linux;
license = lib.licenses.mit;
maintainers = [ lib.maintainers.vyp ];
platforms = lib.platforms.linux;
};
}
})

View File

@ -1541,14 +1541,6 @@ with pkgs;
emojiSupport = true;
};
st = callPackage ../applications/terminal-emulators/st {
conf = config.st.conf or null;
patches = config.st.patches or [ ];
extraLibs = config.st.extraLibs or [ ];
};
xst = callPackage ../applications/terminal-emulators/st/xst.nix { };
mcaimi-st = callPackage ../applications/terminal-emulators/st/mcaimi-st.nix { };
termite = callPackage ../applications/terminal-emulators/termite/wrapper.nix {
termite = termite-unwrapped;
};
@ -12013,9 +12005,6 @@ with pkgs;
djview4 = djview;
dmenu = callPackage ../applications/misc/dmenu { };
dmenu-wayland = callPackage ../applications/misc/dmenu/wayland.nix { };
dmenu-rs-enable-plugins = dmenu-rs.override { enablePlugins = true; };
dmensamenu = callPackage ../applications/misc/dmensamenu {
@ -12058,14 +12047,6 @@ with pkgs;
wlroots = wlroots_0_18;
};
dwm = callPackage ../applications/window-managers/dwm {
# dwm is configured entirely through source modification. Allow users to
# specify patches through nixpkgs.config.dwm.patches
patches = config.dwm.patches or [ ];
};
dwm-status = callPackage ../applications/window-managers/dwm/dwm-status.nix { };
evilwm = callPackage ../applications/window-managers/evilwm {
patches = config.evilwm.patches or [ ];
};