mirror of
https://github.com/donovanglover/nix-config.git
synced 2024-12-15 19:30:51 +01:00
rofi: Add custom rofi-wayland package
This is a modified version of the package in nixpkgs that uses the latest commit.
This commit is contained in:
parent
04d13c993d
commit
24f61278c6
@ -4,7 +4,9 @@
|
||||
home-manager.sharedModules = [{
|
||||
programs.rofi = {
|
||||
enable = true;
|
||||
package = pkgs.rofi-wayland;
|
||||
package = (pkgs.callPackage ./package/wrapper.nix {
|
||||
rofi-unwrapped = (pkgs.callPackage ./package/wayland.nix { });
|
||||
});
|
||||
cycle = false;
|
||||
extraConfig = {
|
||||
modi = "drun,filebrowser";
|
||||
|
71
desktop/rofi/package/default.nix
Normal file
71
desktop/rofi/package/default.nix
Normal file
@ -0,0 +1,71 @@
|
||||
{ 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;
|
||||
};
|
||||
}
|
32
desktop/rofi/package/wayland.nix
Normal file
32
desktop/rofi/package/wayland.nix
Normal file
@ -0,0 +1,32 @@
|
||||
{ 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;
|
||||
};
|
||||
})
|
42
desktop/rofi/package/wrapper.nix
Normal file
42
desktop/rofi/package/wrapper.nix
Normal file
@ -0,0 +1,42 @@
|
||||
{ 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