merge kmscon and tty configs
This commit is contained in:
parent
193b006557
commit
7829fcd0ce
4 changed files with 21 additions and 20 deletions
|
@ -6,6 +6,7 @@
|
|||
./zellij.nix
|
||||
./carapace.nix
|
||||
./direnv.nix
|
||||
./tty.nix
|
||||
];
|
||||
programs.mosh.enable = true;
|
||||
}
|
||||
|
|
93
modules/shell/tty.nix
Normal file
93
modules/shell/tty.nix
Normal file
|
@ -0,0 +1,93 @@
|
|||
{
|
||||
pkgs,
|
||||
config,
|
||||
lib,
|
||||
...
|
||||
}: let
|
||||
# generate shell command options for kmscon fom an attrset
|
||||
generateOptions = with builtins; (
|
||||
opts:
|
||||
toString (
|
||||
attrValues (
|
||||
mapAttrs (name: value: "--${name} ${toString value}") opts
|
||||
)
|
||||
)
|
||||
);
|
||||
# generate a hexadecimal number lookup table to get integers from them
|
||||
hexLookupTable = with lib; (listToAttrs (genList (i: {
|
||||
name = let
|
||||
r = toHexString i;
|
||||
in (
|
||||
# pad with 0 in front if only 1 digit
|
||||
if (stringLength r) == 1
|
||||
then "0${r}"
|
||||
else r
|
||||
);
|
||||
value = toString i;
|
||||
})
|
||||
256));
|
||||
# "parse" hex color strings and convert them to kmscon options
|
||||
hexToOpt = with lib; (color:
|
||||
concatStringsSep "," [
|
||||
(getAttr (substring 1 2 (toUpper color)) hexLookupTable)
|
||||
(getAttr (substring 3 2 (toUpper color)) hexLookupTable)
|
||||
(getAttr (substring 5 2 (toUpper color)) hexLookupTable)
|
||||
]);
|
||||
in {
|
||||
# TODO: global colorscheme vars for everything
|
||||
console.colors = [
|
||||
"282828"
|
||||
"cc241d"
|
||||
"98971a"
|
||||
"d79921"
|
||||
"458588"
|
||||
"b16286"
|
||||
"689d6a"
|
||||
"a89984"
|
||||
"928374"
|
||||
"fb4934"
|
||||
"b8bb26"
|
||||
"fabd2f"
|
||||
"83a598"
|
||||
"d3869b"
|
||||
"8ec07c"
|
||||
"ebdbb2"
|
||||
];
|
||||
|
||||
services.kmscon = {
|
||||
enable = true;
|
||||
fonts = [
|
||||
{
|
||||
name = "FiraCode Nerd Font";
|
||||
package = pkgs.nerdfonts.override {fonts = ["FiraCode"];};
|
||||
}
|
||||
];
|
||||
extraConfig = "font-size=14";
|
||||
# extraOptions = "--term xterm-256color";
|
||||
extraOptions = generateOptions {
|
||||
xkb-layout = config.services.xserver.xkb.layout;
|
||||
xkb-variant = config.services.xserver.xkb.variant;
|
||||
|
||||
palette = "custom";
|
||||
palette-foreground = hexToOpt "#ebdbb2";
|
||||
palette-background = hexToOpt "#282828";
|
||||
palette-black = hexToOpt "#282828";
|
||||
palette-red = hexToOpt "#cc241d";
|
||||
palette-green = hexToOpt "#98971a";
|
||||
palette-yellow = hexToOpt "#d79921";
|
||||
palette-blue = hexToOpt "#458588";
|
||||
palette-magenta = hexToOpt "#b16286";
|
||||
palette-cyan = hexToOpt "#689d6a";
|
||||
palette-light-grey = hexToOpt "#a89984";
|
||||
palette-dark-grey = hexToOpt "#928374";
|
||||
palette-light-red = hexToOpt "#fb4934";
|
||||
palette-light-green = hexToOpt "#b8bb26";
|
||||
palette-light-yellow = hexToOpt "#fabd2f";
|
||||
palette-light-blue = hexToOpt "#83a598";
|
||||
palette-light-magenta = hexToOpt "#d3869b";
|
||||
palette-light-cyan = hexToOpt "#8ec07c";
|
||||
palette-white = hexToOpt "#ebdbb2";
|
||||
};
|
||||
hwRender = true;
|
||||
};
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue