lifetracker/modules/apps/hyprland/rofi.nix
2025-01-31 23:58:11 -08:00

227 lines
8.6 KiB
Nix

{ config, pkgs, username, lib, ... }:
{
config = lib.mkIf config.hyprland.enable {
home-manager.users.${username} = {
home.packages = with pkgs; [
(writeShellScriptBin "rofi-launcher" ''
if pgrep -x "rofi" > /dev/null; then
# Rofi is running, kill it
pkill -x rofi
exit 0
fi
rofi -show drun
'')
];
programs = {
rofi = {
enable = true;
package = pkgs.rofi-wayland;
extraConfig = {
modi = "drun,filebrowser,run";
show-icons = true;
icon-theme = "Papirus";
location = 0;
font = "JetBrainsMono Nerd Font Mono 12";
drun-display-format = "{icon} {name}";
display-drun = " Apps";
display-run = " Run";
display-filebrowser = " File";
};
# theme =
# let
# inherit (config.lib.formats.rasi) mkLiteral;
# in
# {
# "*" = {
# bg = mkLiteral "#${config.stylix.base16Scheme.base00}";
# bg-alt = mkLiteral "#${config.stylix.base16Scheme.base09}";
# foreground = mkLiteral "#${config.stylix.base16Scheme.base01}";
# selected = mkLiteral "#${config.stylix.base16Scheme.base08}";
# active = mkLiteral "#${config.stylix.base16Scheme.base0B}";
# text-selected = mkLiteral "#${config.stylix.base16Scheme.base00}";
# text-color = mkLiteral "#${config.stylix.base16Scheme.base05}";
# border-color = mkLiteral "#${config.stylix.base16Scheme.base0F}";
# urgent = mkLiteral "#${config.stylix.base16Scheme.base0E}";
# };
# "window" = {
# width = mkLiteral "50%";
# transparency = "real";
# orientation = mkLiteral "vertical";
# cursor = mkLiteral "default";
# spacing = mkLiteral "0px";
# border = mkLiteral "2px";
# border-color = "@border-color";
# border-radius = mkLiteral "20px";
# background-color = mkLiteral "@bg";
# };
# "mainbox" = {
# padding = mkLiteral "15px";
# enabled = true;
# orientation = mkLiteral "vertical";
# children = map mkLiteral [
# "inputbar"
# "listbox"
# ];
# background-color = mkLiteral "transparent";
# };
# "inputbar" = {
# enabled = true;
# padding = mkLiteral "10px 10px 200px 10px";
# margin = mkLiteral "10px";
# background-color = mkLiteral "transparent";
# border-radius = "25px";
# orientation = mkLiteral "horizontal";
# children = map mkLiteral [
# "entry"
# "dummy"
# "mode-switcher"
# ];
# background-image = mkLiteral ''url("~/Pictures/Wallpapers/beautifulmountainscape.jpg", width)'';
# };
# "entry" = {
# enabled = true;
# expand = false;
# width = mkLiteral "20%";
# padding = mkLiteral "10px";
# border-radius = mkLiteral "12px";
# background-color = mkLiteral "@selected";
# text-color = mkLiteral "@text-selected";
# cursor = mkLiteral "text";
# placeholder = "🖥️ Search ";
# placeholder-color = mkLiteral "inherit";
# };
# "listbox" = {
# spacing = mkLiteral "10px";
# padding = mkLiteral "10px";
# background-color = mkLiteral "transparent";
# orientation = mkLiteral "vertical";
# children = map mkLiteral [
# "message"
# "listview"
# ];
# };
# "listview" = {
# enabled = true;
# columns = 2;
# lines = 6;
# cycle = true;
# dynamic = true;
# scrollbar = false;
# layout = mkLiteral "vertical";
# reverse = false;
# fixed-height = false;
# fixed-columns = true;
# spacing = mkLiteral "10px";
# background-color = mkLiteral "transparent";
# border = mkLiteral "0px";
# };
# "dummy" = {
# expand = true;
# background-color = mkLiteral "transparent";
# };
# "mode-switcher" = {
# enabled = true;
# spacing = mkLiteral "10px";
# background-color = mkLiteral "transparent";
# };
# "button" = {
# width = mkLiteral "5%";
# padding = mkLiteral "12px";
# border-radius = mkLiteral "12px";
# background-color = mkLiteral "@text-selected";
# text-color = mkLiteral "@text-color";
# cursor = mkLiteral "pointer";
# };
# "button selected" = {
# background-color = mkLiteral "@selected";
# text-color = mkLiteral "@text-selected";
# };
# "scrollbar" = {
# width = mkLiteral "4px";
# border = 0;
# handle-color = mkLiteral "@border-color";
# handle-width = mkLiteral "8px";
# padding = 0;
# };
# "element" = {
# enabled = true;
# spacing = mkLiteral "10px";
# padding = mkLiteral "10px";
# border-radius = mkLiteral "12px";
# background-color = mkLiteral "transparent";
# cursor = mkLiteral "pointer";
# };
# "element normal.normal" = {
# background-color = mkLiteral "inherit";
# text-color = mkLiteral "inherit";
# };
# "element normal.urgent" = {
# background-color = mkLiteral "@urgent";
# text-color = mkLiteral "@foreground";
# };
# "element normal.active" = {
# background-color = mkLiteral "@active";
# text-color = mkLiteral "@foreground";
# };
# "element selected.normal" = {
# background-color = mkLiteral "@selected";
# text-color = mkLiteral "@text-selected";
# };
# "element selected.urgent" = {
# background-color = mkLiteral "@urgent";
# text-color = mkLiteral "@text-selected";
# };
# "element selected.active" = {
# background-color = mkLiteral "@urgent";
# text-color = mkLiteral "@text-selected";
# };
# "element alternate.normal" = {
# background-color = mkLiteral "transparent";
# text-color = mkLiteral "inherit";
# };
# "element alternate.urgent" = {
# background-color = mkLiteral "transparent";
# text-color = mkLiteral "inherit";
# };
# "element alternate.active" = {
# background-color = mkLiteral "transparent";
# text-color = mkLiteral "inherit";
# };
# "element-icon" = {
# background-color = mkLiteral "transparent";
# text-color = mkLiteral "inherit";
# size = mkLiteral "36px";
# cursor = mkLiteral "inherit";
# };
# "element-text" = {
# background-color = mkLiteral "transparent";
# font = "JetBrainsMono Nerd Font Mono 12";
# text-color = mkLiteral "inherit";
# cursor = mkLiteral "inherit";
# vertical-align = mkLiteral "0.5";
# horizontal-align = mkLiteral "0.0";
# };
# "message" = {
# background-color = mkLiteral "transparent";
# border = mkLiteral "0px";
# };
# "textbox" = {
# padding = mkLiteral "12px";
# border-radius = mkLiteral "10px";
# background-color = mkLiteral "@bg-alt";
# text-color = mkLiteral "@bg";
# vertical-align = mkLiteral "0.5";
# horizontal-align = mkLiteral "0.0";
# };
# "error-message" = {
# padding = mkLiteral "12px";
# border-radius = mkLiteral "20px";
# background-color = mkLiteral "@bg-alt";
# text-color = mkLiteral "@bg";
# };
# };
};
};
};
};}