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

View File

@ -1,37 +1,36 @@
{ {
lib, lib,
stdenv, stdenv,
fetchurl, fetchzip,
fontconfig, fontconfig,
libX11, libX11,
libXinerama, libXinerama,
libXft, libXft,
pkg-config,
zlib,
writeText, writeText,
conf ? null, # customization
patches ? null, config,
conf ? config.dmenu.conf or null,
extraLibs ? config.dmenu.extraLibs or [ ],
patches ? config.dmenu.patches or [ ],
# update script dependencies # update script dependencies
gitUpdater, gitUpdater,
}: }:
stdenv.mkDerivation rec { stdenv.mkDerivation (finalAttrs: {
pname = "dmenu"; pname = "dmenu";
version = "5.3"; version = "5.3";
src = fetchurl { src = fetchzip {
url = "https://dl.suckless.org/tools/dmenu-${version}.tar.gz"; url = "https://dl.suckless.org/tools/dmenu-${finalAttrs.version}.tar.gz";
sha256 = "sha256-Go9T5v0tdJg57IcMXiez4U2lw+6sv8uUXRWeHVQzeV8="; hash = "sha256-3lRLa3NIg+7bUSDnef/rVL3XwvWWHTIPQ8mcVaq/SVI=";
}; };
nativeBuildInputs = [ pkg-config ];
buildInputs = [ buildInputs = [
fontconfig fontconfig
libX11 libX11
libXinerama libXinerama
zlib
libXft libXft
]; ] ++ extraLibs;
inherit patches; inherit patches;
@ -50,25 +49,22 @@ stdenv.mkDerivation rec {
makeFlagsArray+=( makeFlagsArray+=(
PREFIX="$out" PREFIX="$out"
CC="$CC" 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"; }; 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"; description = "Generic, highly customizable, and efficient menu for the X Window System";
homepage = "https://tools.suckless.org/dmenu"; homepage = "https://tools.suckless.org/dmenu";
license = licenses.mit; license = lib.licenses.mit;
maintainers = with maintainers; [ maintainers = with lib.maintainers; [
pSub pSub
globin globin
qusic qusic
_0david0mp _0david0mp
]; ];
platforms = platforms.all; platforms = lib.platforms.all;
mainProgram = "dmenu"; mainProgram = "dmenu";
}; };
} })

View File

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

View File

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

View File

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

View File

@ -1541,14 +1541,6 @@ with pkgs;
emojiSupport = true; 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 = callPackage ../applications/terminal-emulators/termite/wrapper.nix {
termite = termite-unwrapped; termite = termite-unwrapped;
}; };
@ -12013,9 +12005,6 @@ with pkgs;
djview4 = djview; djview4 = djview;
dmenu = callPackage ../applications/misc/dmenu { };
dmenu-wayland = callPackage ../applications/misc/dmenu/wayland.nix { };
dmenu-rs-enable-plugins = dmenu-rs.override { enablePlugins = true; }; dmenu-rs-enable-plugins = dmenu-rs.override { enablePlugins = true; };
dmensamenu = callPackage ../applications/misc/dmensamenu { dmensamenu = callPackage ../applications/misc/dmensamenu {
@ -12058,14 +12047,6 @@ with pkgs;
wlroots = wlroots_0_18; 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 { evilwm = callPackage ../applications/window-managers/evilwm {
patches = config.evilwm.patches or [ ]; patches = config.evilwm.patches or [ ];
}; };