From 51c30283cef861697e3a9436f3f90fb8700748e6 Mon Sep 17 00:00:00 2001 From: Miguel Palhas Date: Sat, 5 Oct 2024 11:15:41 +0100 Subject: [PATCH] rofi launchers --- home/common/programs/desktop.nix | 2 ++ home/common/programs/hyprland.nix | 3 ++ home/common/programs/rofi.nix | 5 ++- pkgs/rofi-launchers/package.nix | 57 +++++++++++++++++++++++++++++++ 4 files changed, 66 insertions(+), 1 deletion(-) create mode 100644 pkgs/rofi-launchers/package.nix diff --git a/home/common/programs/desktop.nix b/home/common/programs/desktop.nix index cc5d078..5645fa8 100644 --- a/home/common/programs/desktop.nix +++ b/home/common/programs/desktop.nix @@ -23,4 +23,6 @@ pkgs.bun ]; + + imports = [ ./rofi.nix ]; } diff --git a/home/common/programs/hyprland.nix b/home/common/programs/hyprland.nix index 0eaef5c..81bb1a4 100644 --- a/home/common/programs/hyprland.nix +++ b/home/common/programs/hyprland.nix @@ -77,6 +77,9 @@ "$mod, f, fullscreen, 0" "$mod SHIFT, f, fullscreen, 1" +# rofi +"$mod, space, exec, ~/.config/rofi-launchers/type-2/launcher.sh" + # move focus with mod + arrows "$mod, h, movefocus, l" "$mod, j, movefocus, d" diff --git a/home/common/programs/rofi.nix b/home/common/programs/rofi.nix index 9037bc0..015b8bd 100644 --- a/home/common/programs/rofi.nix +++ b/home/common/programs/rofi.nix @@ -1,7 +1,10 @@ { pkgs, ... }: { - xdg.configFile."rofi-launchers".source = builtins.fetchFromGithub { + home.packages = with pkgs; [rofi (callPackage ../../../pkgs/rofi-launchers/package.nix {})]; + + xdg.configFile."rofi-launchers".source = pkgs.fetchFromGitHub { owner = "adi1090x"; repo = "rofi"; rev = "dce10e9"; + sha256 = "sha256-ZSosFsi/M5Gqb9gsUqS7hu89uOu9078Dus4Y+WCphZc="; }; } diff --git a/pkgs/rofi-launchers/package.nix b/pkgs/rofi-launchers/package.nix new file mode 100644 index 0000000..99512a1 --- /dev/null +++ b/pkgs/rofi-launchers/package.nix @@ -0,0 +1,57 @@ +{ lib, stdenvNoCC, fetchFromGitHub, rofi }: + +stdenvNoCC.mkDerivation { + name = "rofi-launchers"; + + src = fetchFromGitHub { + owner = "adi1090x"; + repo = "rofi"; + rev = "master"; + hash = "sha256-IPtn0bDIUmSwm24YowURgNrs907RrcfrRM9TdhE2c0I="; + }; + + buildInputs = [ rofi ]; + + postPatch = '' + files=$(find files/scripts -type l) + for file in $files; do + substituteInPlace $file \ + --replace-fail '$HOME/.config/rofi' "$out/share" \ + --replace-fail "rofi " "${lib.getExe rofi} " + done + + files=$(find files/launchers -type f -name "*.rasi") + for file in $files; do + substituteInPlace $file \ + --replace-quiet '~/.config/rofi' "$out/share" + done + ''; + + installPhase = '' + runHook preInstall + + # Install all scripts as binaries + mkdir -p $out/bin + for script in files/scripts/*; do + install -Dm755 $script $out/bin/$(basename $script) + done + + # Install Fonts + mkdir -p "$out/share/fonts" + cp -r fonts/* "$out/share/fonts" + + # Install other necessary files + mkdir -p "$out/share" + cp -r files/* "$out/share" + + runHook postInstall + ''; + + meta = { + description = "A collection of rofi launchers"; + homepage = "https://github.com/adi1090x/rofi"; + maintainers = with lib.maintainers; [ ]; + platforms = lib.platforms.linux; + }; +} +