foot.nix: purge home-manager

This commit is contained in:
Charlie Root 2024-10-29 22:31:21 +01:00
commit bdcc685975
Signed by: faukah
SSH key fingerprint: SHA256:jpYIt4Vkz1NBTQcks/N9OPTfTFxE6KF2W/rV7hrfrIw

View file

@ -2,104 +2,133 @@
config, config,
lib, lib,
pkgs, pkgs,
self',
... ...
}: let }: let
cfg = config.modules.system.programs.terminals.foot; cfg = config.modules.system.programs.terminals.foot;
inherit (config.modules.other.system) username; colours = config.modules.style.colorScheme.colors;
inherit (config.modules.style.colorScheme) colors;
inherit (lib) mkIf; inherit (lib) mkIf;
foot-config = pkgs.writeText "foot.ini" (lib.generators.toINI {} {
main = {
term = "foot";
app-id = "foot";
title = "foot";
locked-title = "no";
font = "Iosevka Nerd Font:size=14";
font-bold = "Iosevka Nerd Font:size=14";
line-height = 20;
letter-spacing = 0;
horizontal-letter-offset = 0;
vertical-letter-offset = 0;
box-drawings-uses-font-glyphs = "no";
dpi-aware = "no";
# selection-target = "primary";
# dpi-aware = false;
# pad = "0x0 center";
bold-text-in-bright = "no";
word-delimiters = ",`|:\"'()[]{}<>";
selection-target = "primary";
initial-window-size-chars = "104x36";
initial-window-mode = "windowed";
pad = "8x8 center";
resize-delay-ms = 100;
};
desktop-notifications.command = "${pkgs.libnotify}/bin/notify-send -a \${app-id} -i \${app-id} \${title} \${body}";
bell = {
urgent = "yes";
notify = "yes";
command = "${pkgs.libnotify}/bin/notify-send bell";
command-focused = "no";
};
scrollback = {
lines = 10000;
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-_.,~:;/?#@!$&%*+="'()[]'';
};
tweak = {
font-monospace-warn = "no";
sixel = "yes";
};
cursor = {
style = "beam";
blink = "no";
};
mouse = {
hide-when-typing = "yes"; # not really needed since we already enable this in Hyprland.
alternate-scroll-mode = "yes";
};
csd.preferred = "server";
key-bindings = {
scrollback-up-half-page = "Control+k";
scrollback-up-page = "Control+Shift+k";
scrollback-down-half-page = "Control+j";
scrollback-down-page = "Control+Shift+j";
};
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";
};
colors = with colours; {
background = base00; # base color
foreground = base05; # text color
regular0 = base03; # black
regular1 = base08; # red
regular2 = base0B; # green
regular3 = base0A; # yellow
regular4 = base0D; # blue
regular5 = base0F; #magenta
regular6 = base0C; #cyan
regular7 = base06; #white
bright0 = base04; # Surface 2
bright1 = base08; # red
bright2 = base0B; # green
bright3 = base0A; # yellow
bright4 = base0D; # blue
bright5 = base0F; # pink
bright6 = base0C; # teal
bright7 = base07; # Subtext 0
alpha = 1.0;
};
});
foot-wrapped = pkgs.symlinkJoin {
name = "foot-wrapped";
paths = [pkgs.foot];
buildInputs = [pkgs.makeWrapper];
postBuild = ''
wrapProgram $out/bin/foot --add-flags "--config=${foot-config}"
'';
};
in { in {
config = mkIf cfg.enable { config = mkIf cfg.enable {
home-manager.users.${username} = { environment.systemPackages = [foot-wrapped];
home.packages = with pkgs; [
libsixel # for displaying images
];
programs.foot = {
enable = true;
server.enable = false;
package = pkgs.foot;
settings = {
main = {
term = "foot";
app-id = "foot";
title = "foot";
locked-title = "no";
shell = "${self'.packages.fish}/bin/fish";
font = "Iosevka Nerd Font:size=14";
font-bold = "Iosevka Nerd Font:size=14";
selection-target = "primary";
dpi-aware = false;
pad = "0x0 center";
};
desktop-notifications.command = "${pkgs.libnotify}/bin/notify-send -a \${app-id} -i \${app-id} \${title} \${body}";
bell = {
urgent = "yes";
notify = "yes";
command = "${pkgs.libnotify}/bin/notify-send bell";
command-focused = "no";
};
scrollback = {
lines = 10000;
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-_.,~:;/?#@!$&%*+="'()[]'';
};
tweak = {
font-monospace-warn = "no";
sixel = "yes";
};
cursor = {
style = "beam";
blink = "true";
};
mouse = {
hide-when-typing = "yes"; # not really needed since we already enable this in Hyprland.
alternate-scroll-mode = "yes";
};
# colors = with colors; {
# background = base00; # base color
# foreground = base05; # text color
# regular0 = base03; # black
# regular1 = base08; # red
# regular2 = base0B; # green
# regular3 = base0A; # yellow
# regular4 = base0D; # blue
# regular5 = base0F; #magenta
# regular6 = base0C; #cyan
# regular7 = base06; #white
# bright0 = base04; # Surface 2
# bright1 = base08; # red
# bright2 = base0B; # green
# bright3 = base0A; # yellow
# bright4 = base0D; # blue
# bright5 = base0F; # pink
# bright6 = base0C; # teal
# bright7 = base07; # Subtext 0
# alpha = 0.85;
# };
};
};
};
}; };
} }