mirror of
https://github.com/donovanglover/nix-config.git
synced 2025-01-31 09:59:15 +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 = [{
|
home-manager.sharedModules = [{
|
||||||
programs.rofi = {
|
programs.rofi = {
|
||||||
enable = true;
|
enable = true;
|
||||||
package = pkgs.rofi-wayland;
|
package = (pkgs.callPackage ./package/wrapper.nix {
|
||||||
|
rofi-unwrapped = (pkgs.callPackage ./package/wayland.nix { });
|
||||||
|
});
|
||||||
cycle = false;
|
cycle = false;
|
||||||
extraConfig = {
|
extraConfig = {
|
||||||
modi = "drun,filebrowser";
|
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