forked from extern/nix-config
meta: Replace rofi package with overlay
This significantly reduces the complexity of maintaining a more recent version of rofi-wayland.
This commit is contained in:
parent
29cde7537e
commit
176f59f3bd
@ -1,17 +1,8 @@
|
||||
{
|
||||
pkgs,
|
||||
lib,
|
||||
...
|
||||
}: {
|
||||
{lib, ...}: {
|
||||
home-manager.sharedModules = [
|
||||
{
|
||||
programs.rofi = {
|
||||
enable = true;
|
||||
|
||||
package = pkgs.callPackage ../../packages/rofi/wrapper.nix {
|
||||
rofi-unwrapped = pkgs.callPackage ../../packages/rofi/wayland.nix {};
|
||||
};
|
||||
|
||||
cycle = false;
|
||||
|
||||
extraConfig = {
|
||||
|
@ -2,5 +2,6 @@
|
||||
imports = [
|
||||
./alejandra
|
||||
./joshuto
|
||||
./rofi
|
||||
];
|
||||
}
|
||||
|
20
overlays/rofi/default.nix
Normal file
20
overlays/rofi/default.nix
Normal file
@ -0,0 +1,20 @@
|
||||
{pkgs, ...}: {
|
||||
nixpkgs.overlays = [
|
||||
(final: prev: {
|
||||
rofi-unwrapped = prev.rofi-unwrapped.overrideAttrs (oldAttrs: rec {
|
||||
version = "d06095b5ed40e5d28236b7b7b575ca867696d847";
|
||||
|
||||
src = final.fetchFromGitHub {
|
||||
owner = "lbonn";
|
||||
repo = "rofi";
|
||||
rev = version;
|
||||
fetchSubmodules = true;
|
||||
sha256 = "sha256-8IfHpaVFGeWqyw+tLjNtg+aWwAHhSA5PuXJYjpoht2E=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = oldAttrs.nativeBuildInputs ++ [pkgs.wayland-scanner];
|
||||
buildInputs = oldAttrs.buildInputs ++ [pkgs.wayland pkgs.wayland-protocols];
|
||||
});
|
||||
})
|
||||
];
|
||||
}
|
@ -1,71 +0,0 @@
|
||||
{
|
||||
stdenv,
|
||||
lib,
|
||||
fetchFromGitHub,
|
||||
meson,
|
||||
ninja,
|
||||
pkg-config,
|
||||
libxkbcommon,
|
||||
pango,
|
||||
which,
|
||||
git,
|
||||
cairo,
|
||||
libxcb,
|
||||
xcbutil,
|
||||
xcbutilwm,
|
||||
xcbutilxrm,
|
||||
xcb-util-cursor,
|
||||
libstartup_notification,
|
||||
bison,
|
||||
flex,
|
||||
librsvg,
|
||||
check,
|
||||
glib,
|
||||
buildPackages,
|
||||
}:
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "rofi-unwrapped";
|
||||
version = "1.7.5";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "davatorium";
|
||||
repo = "rofi";
|
||||
rev = version;
|
||||
fetchSubmodules = true;
|
||||
sha256 = "sha256-3XFusKeckagEPfbLtt1xAVTEfn1Qebdi/Iq1AYbHCR4=";
|
||||
};
|
||||
|
||||
preConfigure = ''
|
||||
patchShebangs "script"
|
||||
# root not present in build /etc/passwd
|
||||
sed -i 's/~root/~nobody/g' test/helper-expand.c
|
||||
'';
|
||||
|
||||
depsBuildBuild = [buildPackages.stdenv.cc pkg-config glib];
|
||||
nativeBuildInputs = [meson ninja pkg-config flex bison];
|
||||
buildInputs = [
|
||||
libxkbcommon
|
||||
pango
|
||||
cairo
|
||||
git
|
||||
librsvg
|
||||
check
|
||||
libstartup_notification
|
||||
libxcb
|
||||
xcbutil
|
||||
xcbutilwm
|
||||
xcbutilxrm
|
||||
xcb-util-cursor
|
||||
which
|
||||
];
|
||||
|
||||
doCheck = false;
|
||||
|
||||
meta = with lib; {
|
||||
description = "Window switcher, run dialog and dmenu replacement";
|
||||
homepage = "https://github.com/davatorium/rofi";
|
||||
license = licenses.mit;
|
||||
maintainers = with maintainers; [bew];
|
||||
platforms = with platforms; linux;
|
||||
};
|
||||
}
|
@ -1,32 +0,0 @@
|
||||
{
|
||||
stdenv,
|
||||
lib,
|
||||
fetchFromGitHub,
|
||||
rofi-unwrapped,
|
||||
wayland-scanner,
|
||||
wayland-protocols,
|
||||
wayland,
|
||||
}:
|
||||
rofi-unwrapped.overrideAttrs (oldAttrs: rec {
|
||||
pname = "rofi-wayland-unwrapped";
|
||||
version = "git";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "lbonn";
|
||||
repo = "rofi";
|
||||
rev = "d06095b5ed40e5d28236b7b7b575ca867696d847";
|
||||
fetchSubmodules = true;
|
||||
sha256 = "sha256-8IfHpaVFGeWqyw+tLjNtg+aWwAHhSA5PuXJYjpoht2E=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = oldAttrs.nativeBuildInputs ++ [wayland-scanner];
|
||||
buildInputs = oldAttrs.buildInputs ++ [wayland wayland-protocols];
|
||||
|
||||
meta = with lib; {
|
||||
description = "Window switcher, run dialog and dmenu replacement for Wayland";
|
||||
homepage = "https://github.com/lbonn/rofi";
|
||||
license = licenses.mit;
|
||||
maintainers = with maintainers; [bew];
|
||||
platforms = with platforms; linux;
|
||||
};
|
||||
})
|
@ -1,56 +0,0 @@
|
||||
{
|
||||
symlinkJoin,
|
||||
lib,
|
||||
rofi-unwrapped,
|
||||
makeWrapper,
|
||||
wrapGAppsHook,
|
||||
gdk-pixbuf,
|
||||
hicolor-icon-theme,
|
||||
theme ? null,
|
||||
plugins ? [],
|
||||
symlink-dmenu ? false,
|
||||
}:
|
||||
symlinkJoin {
|
||||
name = "rofi-${rofi-unwrapped.version}";
|
||||
|
||||
paths =
|
||||
[
|
||||
rofi-unwrapped.out
|
||||
]
|
||||
++ (lib.forEach plugins (p: p.out));
|
||||
|
||||
nativeBuildInputs = [makeWrapper wrapGAppsHook];
|
||||
buildInputs = [gdk-pixbuf];
|
||||
|
||||
preferLocalBuild = true;
|
||||
passthru.unwrapped = rofi-unwrapped;
|
||||
|
||||
dontWrapGApps = true;
|
||||
|
||||
postBuild = ''
|
||||
rm -rf $out/bin
|
||||
mkdir $out/bin
|
||||
ln -s ${rofi-unwrapped}/bin/* $out/bin
|
||||
rm $out/bin/rofi
|
||||
|
||||
gappsWrapperArgsHook
|
||||
makeWrapper ${rofi-unwrapped}/bin/rofi $out/bin/rofi \
|
||||
''${gappsWrapperArgs[@]} \
|
||||
--prefix XDG_DATA_DIRS : ${hicolor-icon-theme}/share \
|
||||
${lib.optionalString (plugins != []) ''--prefix XDG_DATA_DIRS : ${lib.concatStringsSep ":" (lib.forEach plugins (p: "${p.out}/share"))}''} \
|
||||
${lib.optionalString (theme != null) ''--add-flags "-theme ${theme}"''} \
|
||||
${lib.optionalString (plugins != []) ''--add-flags "-plugin-path $out/lib/rofi"''}
|
||||
|
||||
${lib.optionalString symlink-dmenu "ln -s ${rofi-unwrapped}/bin/rofi $out/bin/dmenu"}
|
||||
|
||||
rm $out/bin/rofi-theme-selector
|
||||
makeWrapper ${rofi-unwrapped}/bin/rofi-theme-selector $out/bin/rofi-theme-selector \
|
||||
--prefix XDG_DATA_DIRS : $out/share
|
||||
'';
|
||||
|
||||
meta =
|
||||
rofi-unwrapped.meta
|
||||
// {
|
||||
priority = (rofi-unwrapped.meta.priority or 0) - 1;
|
||||
};
|
||||
}
|
Loading…
Reference in New Issue
Block a user