{ config, pkgs, lib, ... }: let cfg = config.programs.foot; foot-pkg = pkgs.symlinkJoin { name = "foot-wrapped"; paths = [ pkgs.foot (pkgs.nerdfonts.override { fonts = [ "CascadiaCode" ]; }) ]; }; in { programs.foot = { server.enable = cfg.enable; package = foot-pkg; settings = { main = { term = "xterm-256color"; dpi-aware = "yes"; font = "CaskaydiaCove Nerd Font:11"; }; mouse = { hide-when-typing = "yes"; }; }; }; programs.fish.functions.icat = # TODO: find window manager agnostic way to get current window size lib.mkIf (cfg.enable && config.wayland.windowManager.hyprland.enable) { body = '' set --local width $(hyprctl -j activewindow | jaq '.size[0]') set --local maximgwidth $(math "ceil($width * 0.7)") img2sixel --width $maximgwidth $argv ''; }; home.packages = lib.mkIf cfg.enable ( builtins.attrValues { inherit (pkgs) libsixel jaq hyprland; } ); }