{ pkgs, lib, config, ... }: { home.packages = with pkgs; [ niri waypaper xwayland-satellite ]; systemd.user.targets.niri-session = { Unit = { Description = "Niri session"; BindsTo = [ "graphical-session.target" ]; Wants = [ "graphical-session-pre.target" "xdg-desktop-autostart.target" ]; After = [ "graphical-session-pre.target" ]; Before = [ "xdg-desktop-autostart.target" ]; }; }; home.file."${config.xdg.configHome}/niri/wallpaper.png" = { source = ../hyprland/wallpaper.png; }; home.activation.linkNiriConfig = lib.hm.dag.entryAnywhere '' if [ ! -e "$HOME/.config/niri/config.kdl" ]; then $DRY_RUN_CMD ln -s "$HOME/projects/aciceri/nixfleet/hmModules/niri/config.kdl" "$HOME/.config/niri/config.kdl" fi ''; home.sessionVariables = { DISPLAY = ":0"; QT_QPA_PLATFORM = "wayland"; }; programs.rofi = { enable = true; package = pkgs.rofi-wayland; theme = let inherit (config.lib.formats.rasi) mkLiteral; cfg = config.programs.fzf.catppuccin; palette = (lib.importJSON "${config.catppuccin.sources.palette}/palette.json").${cfg.flavor}.colors; selectColor = color: palette.${color}.hex; in lib.mkForce { "*" = { # blue = mkLiteral "#0000FF"; # white = mkLiteral "#FFFFFF"; # black = mkLiteral "#000000"; # grey = mkLiteral "#eeeeee"; blue = mkLiteral (selectColor "blue"); white = mkLiteral "#FFFFFF"; black = mkLiteral "#000000"; grey = mkLiteral "#eeeeee"; spacing = 2; background-color = mkLiteral "#00000000"; border-color = mkLiteral "#444444FF"; anchor = mkLiteral "north"; location = mkLiteral "center"; }; "window" = { transparency = "real"; background-color = mkLiteral "#00000000"; border = 0; padding = mkLiteral "0% 0% 1em 0%"; x-offset = 0; y-offset = mkLiteral "-10%"; }; "mainbox" = { padding = mkLiteral "0px"; border = 0; spacing = mkLiteral "1%"; }; "message" = { border = 0; border-radius = mkLiteral "4px"; padding = mkLiteral "1em"; background-color = mkLiteral "@white"; text-color = mkLiteral "@black"; }; "textbox normal" = { text-color = mkLiteral "#002B36FF"; padding = 0; border = 0; }; "listview" = { fixed-height = 1; border = 0; padding = mkLiteral "1em"; reverse = false; border-radius = mkLiteral "4px"; columns = 1; background-color = mkLiteral "@white"; }; "element" = { border = 0; padding = mkLiteral "2px"; highlight = mkLiteral "bold"; }; "element-text" = { background-color = mkLiteral "inherit"; text-color = mkLiteral "inherit"; }; "element normal.normal" = { text-color = mkLiteral "#002B36FF"; background-color = mkLiteral "#F5F5F500"; }; "element normal.urgent" = { text-color = mkLiteral "#D75F00FF"; background-color = mkLiteral "#F5F5F5FF"; }; "element normal.active" = { text-color = mkLiteral "#005F87FF"; background-color = mkLiteral "#F5F5F5FF"; }; "element selected.normal" = { text-color = mkLiteral "#F5F5F5FF"; background-color = mkLiteral "#4271AEFF"; }; "element selected.urgent" = { text-color = mkLiteral "#F5F5F5FF"; background-color = mkLiteral "#D75F00FF"; }; "element selected.active" = { text-color = mkLiteral "#F5F5F5FF"; background-color = mkLiteral "#005F87FF"; }; "element alternate.normal" = { text-color = mkLiteral "#002B36FF"; background-color = mkLiteral "#D0D0D0FF"; }; "element alternate.urgent" = { text-color = mkLiteral "#D75F00FF"; background-color = mkLiteral "#D0D0D0FF"; }; "element alternate.active" = { text-color = mkLiteral "#005F87FF"; background-color = mkLiteral "#D0D0D0FF"; }; "scrollbar" = { border = 0; padding = 0; }; "inputbar" = { spacing = 0; border = 0; padding = mkLiteral "0.5em 1em"; background-color = mkLiteral "@grey"; index = 0; border-radius = mkLiteral "4px"; children = map mkLiteral [ "prompt" "textbox-prompt-colon" "entry" "case-indicator" ]; }; "inputbar normal" = { foreground-color = mkLiteral "#002B36FF"; background-color = mkLiteral "#F5F5F500"; }; "mode-switcher" = { border = 0; padding = mkLiteral "0.5em 1em"; background-color = mkLiteral "@grey"; index = 10; }; "button selected" = { text-color = mkLiteral "#4271AEFF"; }; "textbox-prompt-colon" = { expand = false; str = ":"; margin = mkLiteral "0px 0.3em 0em 0em"; text-color = mkLiteral "@black"; }; "error-message" = { border = 0; border-radius = mkLiteral "4px"; padding = mkLiteral "1em"; background-color = mkLiteral "#FF8888"; text-color = mkLiteral "@black"; }; }; extraConfig = { modi = "drun,window,ssh"; combi-modes = [ "drun" "window" "ssh" ]; }; font = "Iosevka Comfy 12"; terminal = "footclient"; pass = { enable = true; package = pkgs.rofi-pass-wayland; }; plugins = [ pkgs.rofi-calc ]; }; }