aboutsummaryrefslogtreecommitdiff
path: root/share/cfg/foot.nix
blob: 3545d0f2c19939ad305a045df9fd5436f6e6db12 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
{
  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:14";
      };

      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;
    }
  );
}