From 617525a31793f00de11a5b00e94ea933037d4822 Mon Sep 17 00:00:00 2001 From: Colin Date: Mon, 26 Feb 2024 20:57:35 +0000 Subject: [PATCH] programs: add rofi (dmenu-style launcher/file browser) --- hosts/common/programs/default.nix | 1 + hosts/common/programs/rofi/config.rasi | 33 +++++++++++++++++++++ hosts/common/programs/rofi/default.nix | 40 ++++++++++++++++++++++++++ 3 files changed, 74 insertions(+) create mode 100644 hosts/common/programs/rofi/config.rasi create mode 100644 hosts/common/programs/rofi/default.nix diff --git a/hosts/common/programs/default.nix b/hosts/common/programs/default.nix index 222e13b1..378fc32e 100644 --- a/hosts/common/programs/default.nix +++ b/hosts/common/programs/default.nix @@ -77,6 +77,7 @@ ./playerctl.nix ./rhythmbox.nix ./ripgrep.nix + ./rofi ./sane-scripts.nix ./sfeed.nix ./signal-desktop.nix diff --git a/hosts/common/programs/rofi/config.rasi b/hosts/common/programs/rofi/config.rasi new file mode 100644 index 00000000..64c2f6a7 --- /dev/null +++ b/hosts/common/programs/rofi/config.rasi @@ -0,0 +1,33 @@ +/* to show active config: `rofi -dump-config` + * to show keybindings: `rofi -show keys` + * to show theme config: `rofi -dump-theme` + * - for live theme switching: `rofi-theme-selector` + */ + +configuration { + modes: "combi"; + show-icons: true; + combi-modes: "filebrowser,drun,run"; + kb-accept-entry: "Return,KP_Enter,XF86PowerOff"; + kb-row-up: "Up,XF86AudioRaiseVolume"; + kb-row-down: "Down,XF86AudioLowerVolume"; + filebrowser { + /* filebrowser starting directory */ + directory: "/home"; + /* display-name: text to prepend in combi mode */ + display-name: "/"; + } + drun { + display-name: " "; + } + run { + display-name: "run "; + } + /* combi-display-format: "{mode} {text}"; */ + /* combi-display-format: "{text}"; */ + combi-display-format: "{mode}{text}"; + + drun-use-desktop-cache: true; +} + +@theme "gruvbox-light" diff --git a/hosts/common/programs/rofi/default.nix b/hosts/common/programs/rofi/default.nix new file mode 100644 index 00000000..8d00af53 --- /dev/null +++ b/hosts/common/programs/rofi/default.nix @@ -0,0 +1,40 @@ +# rofi: app-launcher/file-browser/omni-menu +# +# select options: +# - `rofi -show` +# - use as a launcher/file browser +# - `rofi -sidebar-mode` +# - separate tabs for filebrowser, drun, etc. +# - `rofi -pid /run/user/$UID/rofi.pid -replace` +# - single-instance mode +# - pid is probably optional, just need `-replace`. +# +# ROFI POWERSCRIPTS/EXTENSIONS/PLUGINS: +# collections: +# - +# - +# - turns rofi into a hierarchical menu, like sxmo +# +# - +# - +# - +# - +# - +# - +# - +{ pkgs, ... }: +{ + sane.programs.rofi = { + # 2024/02/26: wayland is only supported by the fork: . + # it's actively maintained though, and more of an overlay than a true fork. + packageUnwrapped = pkgs.rofi-wayland; + + fs.".config/rofi/config.rasi".symlink.target = ./config.rasi; + # redirect its default drun cache location + fs.".cache/rofi-drun-desktop.cache".symlink.target = "rofi/rofi-drun-desktop.cache"; + persist.byStore.plaintext = [ + # optional, for caching .desktop files rofi finds on disk (perf) + ".cache/rofi" + ]; + }; +}