mirror of
https://github.com/donovanglover/nix-config.git
synced 2025-06-21 18:21:31 +02:00
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 @@
|
|||||||
{
|
{lib, ...}: {
|
||||||
pkgs,
|
|
||||||
lib,
|
|
||||||
...
|
|
||||||
}: {
|
|
||||||
home-manager.sharedModules = [
|
home-manager.sharedModules = [
|
||||||
{
|
{
|
||||||
programs.rofi = {
|
programs.rofi = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
|
||||||
package = pkgs.callPackage ../../packages/rofi/wrapper.nix {
|
|
||||||
rofi-unwrapped = pkgs.callPackage ../../packages/rofi/wayland.nix {};
|
|
||||||
};
|
|
||||||
|
|
||||||
cycle = false;
|
cycle = false;
|
||||||
|
|
||||||
extraConfig = {
|
extraConfig = {
|
||||||
|
@ -2,5 +2,6 @@
|
|||||||
imports = [
|
imports = [
|
||||||
./alejandra
|
./alejandra
|
||||||
./joshuto
|
./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…
x
Reference in New Issue
Block a user