{ config, config', inputs, lib, pkgs, ... }: with lib; let cfg = config.myOptions.programs.foot; in { options.myOptions.programs.foot = { enable = mkEnableOption "enable foot"; server = mkOption { description = "enable foot server mode"; default = true; type = types.bool; }; }; config = mkIf cfg.enable { home-manager.users.${config'.username} = { programs.foot = { enable = true; package = inputs.nixpkgs-wayland.packages.${pkgs.system}.foot; server.enable = cfg.server; settings = { main = { term = "xterm-256color"; app-id = "foot"; title = "foot"; locked-title = "no"; font = "JetBrains Mono Nerd Font:size=16"; line-height = 20; letter-spacing = 0; horizontal-letter-offset = 0; vertical-letter-offset = -0.75; box-drawings-uses-font-glyphs = "no"; dpi-aware = "no"; initial-window-size-chars = "104x36"; initial-window-mode = "windowed"; pad = "5x5 center"; resize-delay-ms = 100; notify = "${pkgs.libnotify}/bin/notify-send -a \${app-id} -i \${app-id} \${title} \${body}"; bold-text-in-bright = "no"; word-delimiters = ",│`|:\"'()[]{}<>"; selection-target = "primary"; }; bell = { urgent = "yes"; notify = "yes"; command = "notify-send bell"; command-focused = "no"; }; scrollback = { lines = 100000; multiplier = 10.0; indicator-position = "relative"; indicator-format = "line"; }; url = { launch = "${pkgs.xdg-utils}/bin/xdg-open \${url}"; label-letters = "sadfjklewcmpgh"; osc8-underline = "always"; protocols = "http, https, ftp, ftps, file, gemini, gopher, irc, ircs"; uri-characters = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-_.,~:;/?#@!$&%*+=\"'()[]"; }; cursor = { style = "block"; blink = "no"; }; mouse = { hide-when-typing = "yes"; alternate-scroll-mode = "yes"; }; colors = { alpha = 0.85; foreground = "dee1e6"; background = "101419"; # Normal/regular colors (color palette 0-7) regular0 = "c5c8cd"; # black regular1 = "bd3c42"; # red regular2 = "69b373"; # green regular3 = "ceac67"; # yellow regular4 = "4d82c8"; # blue regular5 = "a367cb"; # magenta regular6 = "519bc6"; # cyan regular7 = "101419"; # white # Bright colors (color palette 8-15) bright0 = "989ba0"; # bright black bright1 = "c24147"; # bright red bright2 = "6eb878"; # bright green bright3 = "d3b16c"; # bright yellow bright4 = "5287cd"; # bright blue bright5 = "a86cd0"; # bright magenta bright6 = "56a0cb"; # bright cyan bright7 = "1f2328"; # bright white }; csd = { preferred = "server"; }; key-bindings = { show-urls-launch = "Control+Shift+u"; unicode-input = "Control+Shift+i"; }; mouse-bindings = { selection-override-modifiers = "Shift"; primary-paste = "BTN_MIDDLE"; select-begin = "BTN_LEFT"; select-begin-block = "Control+BTN_LEFT"; select-extend = "BTN_RIGHT"; select-extend-character-wise = "Control+BTN_RIGHT"; select-word = "BTN_LEFT-2"; select-word-whitespace = "Control+BTN_LEFT-2"; #select-row = "BTN_LEFT-3"; }; }; }; }; }; }