Revert "meta: Remove rofi"

Currently rofi seems like the most feature complete launcher that gets
the job done. I'd rather use it than code a custom solution at the
moment.
This commit is contained in:
Donovan Glover 2023-08-27 18:20:46 -04:00
parent f2aa0efe21
commit e941e20acf
No known key found for this signature in database
GPG Key ID: EA7408A77AE1BE65
4 changed files with 130 additions and 0 deletions

View File

@ -19,6 +19,7 @@
./neovim.nix ./neovim.nix
./pqiv.nix ./pqiv.nix
./qutebrowser.nix ./qutebrowser.nix
./rofi.nix
./swaylock.nix ./swaylock.nix
./thunar.nix ./thunar.nix
./udiskie.nix ./udiskie.nix

106
home/rofi.nix Normal file
View File

@ -0,0 +1,106 @@
{ config, lib, ... }:
{
programs.rofi = {
enable = true;
cycle = false;
extraConfig = {
modi = "drun,filebrowser";
font = "Noto Sans CJK JP 12";
show-icons = true;
bw = 0;
display-drun = "";
display-window = "";
display-combi = "";
icon-theme = "Fluent-dark";
terminal = "kitty";
drun-match-fields = "name";
drun-display-format = "{name}";
me-select-entry = "";
me-accept-entry = "MousePrimary";
};
theme = let inherit (config.lib.formats.rasi) mkLiteral; in with config.lib.stylix.colors; lib.mkForce {
"*" = {
font = "Noto Sans CJK JP Bold 12";
background-color = mkLiteral "transparent";
foreground = mkLiteral "#${base05}";
text-color = mkLiteral "#${base05}";
padding = mkLiteral "0px";
margin = mkLiteral "0px";
};
window = {
fullscreen = true;
padding = mkLiteral "1em";
background-color = mkLiteral "#${base00}dd";
};
mainbox = {
padding = mkLiteral "8px";
};
inputbar = {
background-color = mkLiteral "#${base05}20";
margin = mkLiteral "0px calc( 50% - 230px )";
padding = mkLiteral "4px 8px";
spacing = mkLiteral "8px";
border = mkLiteral "1px";
border-radius = mkLiteral "2px";
border-color = mkLiteral "#${base05}40";
children = map mkLiteral [ "icon-search" "entry" ];
};
prompt = {
enabled = false;
};
icon-search = {
expand = false;
filename = "search";
vertical-align = mkLiteral "0.5";
};
entry = {
placeholder = "Search";
placeholder-color = mkLiteral "#${base05}20";
};
listview = {
margin = mkLiteral "48px calc( 50% - 560px )";
spacing = mkLiteral "48px";
columns = 5;
fixed-columns = true;
};
"element, element-text, element-icon" = {
cursor = mkLiteral "pointer";
};
element = {
padding = mkLiteral "8px";
spacing = mkLiteral "4px";
orientation = mkLiteral "vertical";
border-radius = mkLiteral "16px";
};
"element selected" = {
background-color = mkLiteral "#${base05}33";
};
element-icon = {
size = mkLiteral "5em";
horizontal-align = mkLiteral "0.5";
};
element-text = {
horizontal-align = mkLiteral "0.5";
};
};
};
}

View File

@ -1,5 +1,6 @@
{ {
imports = [ imports = [
./alejandra.nix ./alejandra.nix
./rofi.nix
]; ];
} }

22
overlays/rofi.nix Normal file
View File

@ -0,0 +1,22 @@
{ 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 ];
});
})
];
}