2023-08-28 21:37:19 +02:00
|
|
|
{ config, lib, pkgs, ... }:
|
2023-08-28 00:20:46 +02:00
|
|
|
|
2024-04-03 11:52:10 +02:00
|
|
|
let
|
|
|
|
inherit (pkgs) rofi-wayland;
|
|
|
|
inherit (lib) mkForce;
|
|
|
|
inherit (config.lib.formats.rasi) mkLiteral;
|
2024-08-03 19:28:03 +02:00
|
|
|
inherit (config.lib.stylix.colors.withHashtag) base00 base05;
|
2024-04-03 11:52:10 +02:00
|
|
|
in
|
2023-08-28 00:20:46 +02:00
|
|
|
{
|
|
|
|
programs.rofi = {
|
|
|
|
enable = true;
|
|
|
|
cycle = false;
|
|
|
|
|
2024-04-03 11:52:10 +02:00
|
|
|
package = rofi-wayland;
|
2023-08-28 21:37:19 +02:00
|
|
|
|
2023-08-28 00:20:46 +02:00
|
|
|
extraConfig = {
|
|
|
|
modi = "drun,filebrowser";
|
|
|
|
font = "Noto Sans CJK JP 12";
|
|
|
|
show-icons = true;
|
2024-01-28 05:57:54 +01:00
|
|
|
disable-history = true;
|
2024-04-07 16:21:13 +02:00
|
|
|
hover-select = true;
|
2023-08-28 00:20:46 +02:00
|
|
|
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";
|
2024-07-23 23:49:41 +02:00
|
|
|
kb-cancel = "Escape,MouseMiddle";
|
2023-08-28 00:20:46 +02:00
|
|
|
};
|
|
|
|
|
2023-09-01 01:04:57 +02:00
|
|
|
# Based on Newman Sánchez's Launchpad theme <https://github.com/newmanls/rofi-themes-collection>
|
2024-04-03 11:52:10 +02:00
|
|
|
theme = mkForce {
|
2023-08-28 00:20:46 +02:00
|
|
|
"*" = {
|
|
|
|
font = "Noto Sans CJK JP Bold 12";
|
|
|
|
background-color = mkLiteral "transparent";
|
2024-08-03 19:28:03 +02:00
|
|
|
foreground = mkLiteral "${base05}";
|
|
|
|
text-color = mkLiteral "${base05}";
|
2023-08-28 00:20:46 +02:00
|
|
|
padding = mkLiteral "0px";
|
|
|
|
margin = mkLiteral "0px";
|
|
|
|
};
|
|
|
|
|
|
|
|
window = {
|
|
|
|
fullscreen = true;
|
|
|
|
padding = mkLiteral "1em";
|
2024-08-03 19:28:03 +02:00
|
|
|
background-color = mkLiteral "${base00}dd";
|
2023-08-28 00:20:46 +02:00
|
|
|
};
|
|
|
|
|
|
|
|
mainbox = {
|
|
|
|
padding = mkLiteral "8px";
|
|
|
|
};
|
|
|
|
|
|
|
|
inputbar = {
|
2024-08-03 19:28:03 +02:00
|
|
|
background-color = mkLiteral "${base05}20";
|
2023-08-28 00:20:46 +02:00
|
|
|
|
|
|
|
margin = mkLiteral "0px calc( 50% - 230px )";
|
|
|
|
padding = mkLiteral "4px 8px";
|
|
|
|
spacing = mkLiteral "8px";
|
|
|
|
|
|
|
|
border = mkLiteral "1px";
|
|
|
|
border-radius = mkLiteral "2px";
|
2024-08-03 19:28:03 +02:00
|
|
|
border-color = mkLiteral "${base05}40";
|
2023-08-28 00:20:46 +02:00
|
|
|
|
|
|
|
children = map mkLiteral [ "icon-search" "entry" ];
|
|
|
|
};
|
|
|
|
|
|
|
|
prompt = {
|
|
|
|
enabled = false;
|
|
|
|
};
|
|
|
|
|
|
|
|
icon-search = {
|
|
|
|
expand = false;
|
|
|
|
filename = "search";
|
|
|
|
vertical-align = mkLiteral "0.5";
|
|
|
|
};
|
|
|
|
|
|
|
|
entry = {
|
|
|
|
placeholder = "Search";
|
2024-08-03 19:28:03 +02:00
|
|
|
placeholder-color = mkLiteral "${base05}20";
|
2023-08-28 00:20:46 +02:00
|
|
|
};
|
|
|
|
|
|
|
|
listview = {
|
2023-08-29 05:46:20 +02:00
|
|
|
margin = mkLiteral "48px calc( 50% - 720px )";
|
|
|
|
margin-bottom = mkLiteral "0px";
|
2023-08-28 00:20:46 +02:00
|
|
|
spacing = mkLiteral "48px";
|
2023-08-29 05:46:20 +02:00
|
|
|
columns = 6;
|
2023-08-28 00:20:46 +02:00
|
|
|
fixed-columns = true;
|
|
|
|
};
|
|
|
|
|
|
|
|
"element, element-text, element-icon" = {
|
|
|
|
cursor = mkLiteral "pointer";
|
|
|
|
};
|
|
|
|
|
|
|
|
element = {
|
|
|
|
padding = mkLiteral "8px";
|
|
|
|
spacing = mkLiteral "4px";
|
|
|
|
|
|
|
|
orientation = mkLiteral "vertical";
|
2023-08-29 05:46:20 +02:00
|
|
|
border-radius = mkLiteral "12px";
|
2023-08-28 00:20:46 +02:00
|
|
|
};
|
|
|
|
|
|
|
|
"element selected" = {
|
2024-08-03 19:28:03 +02:00
|
|
|
background-color = mkLiteral "${base05}33";
|
2023-08-28 00:20:46 +02:00
|
|
|
};
|
|
|
|
|
|
|
|
element-icon = {
|
2023-08-29 05:46:20 +02:00
|
|
|
size = mkLiteral "5.75em";
|
2023-08-28 00:20:46 +02:00
|
|
|
horizontal-align = mkLiteral "0.5";
|
|
|
|
};
|
|
|
|
|
|
|
|
element-text = {
|
|
|
|
horizontal-align = mkLiteral "0.5";
|
|
|
|
};
|
|
|
|
};
|
|
|
|
};
|
|
|
|
}
|