forked from poz/niksos
124 lines
5 KiB
Nix
124 lines
5 KiB
Nix
{
|
|
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";
|
|
};
|
|
};
|
|
};
|
|
};
|
|
};
|
|
}
|