{ pkgs, lib, config, ... }: { home.packages = with pkgs; [ libsixel # for displaying images ]; programs.foot = { enable = true; server.enable = false; settings = { main = { app-id = "foot"; title = "foot"; locked-title = "no"; term = "xterm-256color"; # Stylix overrides these # font = "monospace:size=10.5"; # vertical-letter-offset = "-0.75"; # bold-text-in-bright = "no"; pad = "12x21 center"; resize-delay-ms = 100; notify = "notify-send -a \${app-id} -i \${app-id} \${title} \${body}"; selection-target = "primary"; # box-drawings-uses-font-glyphs = "yes"; # dpi-aware = "yes"; word-delimiters = ",│`|:\"'()[]{}<>"; }; cursor = { style = "beam"; beam-thickness = 2; blink = "no"; unfocused-style = "hollow"; }; scrollback = { lines = 10000; multiplier = 3; }; bell = { urgent = "yes"; notify = "yes"; visual = "no"; command = "notify-send bell"; command-focused = "no"; }; url = { launch = "xdg-open \${url}"; label-letters = "sadfjklewcmpgh"; osc8-underline = "url-mode"; protocols = "http, https, ftp, ftps, file, gemini, gopher, irc, ircs"; uri-characters = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-_.,~:;/?#@!$&%*+=\"'()[]"; }; colors = with config.colorScheme.palette; { foreground = base04; background = base00; regular0 = base00; regular1 = base08; regular2 = base0B; regular3 = base0A; regular4 = base0D; regular5 = base0E; regular6 = base0C; regular7 = base05; bright0 = base03; bright1 = base08; bright2 = base0B; bright3 = base0A; bright4 = base07; bright5 = base0E; bright6 = base07; bright7 = base06; }; mouse = { hide-when-typing = "yes"; }; 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"; }; }; }; }