zaneyos/config/home/wezterm.nix
2024-02-24 13:28:26 -06:00

110 lines
3.7 KiB
Nix

{ pkgs, config, lib, ... }:
let
palette = config.colorScheme.palette;
inherit (import ../../options.nix) wezterm;
in lib.mkIf (wezterm == true) {
home.packages = with pkgs; [
pkgs.wezterm
];
home.file.".config/wezterm/wezterm.lua".text = ''
local wezterm = require 'wezterm'
-- This will hold the configuration.
local config = wezterm.config_builder()
config.colors = {
foreground = '#${palette.base05}',
background = '#${palette.base00}',
-- Overrides the cell background color when the current cell is occupied by the
-- cursor and the cursor style is set to Block
cursor_bg = '#${palette.base07}',
-- Overrides the text color when the current cell is occupied by the cursor
cursor_fg = '#${palette.base00}',
-- Specifies the border color of the cursor when the cursor style is set to Block,
-- or the color of the vertical or horizontal bar when the cursor style is set to
-- Bar or Underline.
cursor_border = '#${palette.base07}',
-- the foreground color of selected text
selection_fg = '#${palette.base01}',
-- the background color of selected text
selection_bg = '#${palette.base0D}',
-- The color of the scrollbar "thumb"; the portion that represents the current viewport
scrollbar_thumb = '#222222',
-- The color of the split lines between panes
split = '#444444',
ansi = {
'#${palette.base00}',
'#${palette.base0C}',
'#${palette.base09}',
'#${palette.base0A}',
'#${palette.base0F}',
'#${palette.base0E}',
'#${palette.base07}',
'#${palette.base05}',
},
brights = {
'#${palette.base01}',
'#${palette.base0C}',
'#${palette.base09}',
'#${palette.base0B}',
'#${palette.base03}',
'#${palette.base0E}',
'#${palette.base0D}',
'#${palette.base05}',
},
-- Arbitrary colors of the palette in the range from 16 to 255
indexed = { [136] = '#af8700' },
-- Since: 20220319-142410-0fcdea07
-- When the IME, a dead key or a leader key are being processed and are effectively
-- holding input pending the result of input composition, change the cursor
-- to this color to give a visual cue about the compose state.
compose_cursor = 'orange',
-- Colors for copy_mode and quick_select
-- available since: 20220807-113146-c2fee766
-- In copy_mode, the color of the active text is:
-- 1. copy_mode_active_highlight_* if additional text was selected using the mouse
-- 2. selection_* otherwise
copy_mode_active_highlight_bg = { Color = '#000000' },
-- use `AnsiColor` to specify one of the ansi color palette values
-- (index 0-15) using one of the names "Black", "Maroon", "Green",
-- "Olive", "Navy", "Purple", "Teal", "Silver", "Grey", "Red", "Lime",
-- "Yellow", "Blue", "Fuchsia", "Aqua" or "White".
copy_mode_active_highlight_fg = { AnsiColor = 'Black' },
copy_mode_inactive_highlight_bg = { Color = '#52ad70' },
copy_mode_inactive_highlight_fg = { AnsiColor = 'White' },
quick_select_label_bg = { Color = 'peru' },
quick_select_label_fg = { Color = '#ffffff' },
quick_select_match_bg = { AnsiColor = 'Navy' },
quick_select_match_fg = { Color = '#ffffff' },
}
wezterm.font_with_fallback({
-- /.local/share/fonts/JetBrainsMono.ttf, FontConfig
"JetBrains Mono",
-- /.local/share/fonts/Symbols-Regular.ttf, FontConfig
"Symbols Nerd Font Mono",
-- /.local/share/fonts/NotoColorEmoji.ttf, FontConfig
-- Assumed to have Emoji Presentation
-- Pixel sizes: [128]
"Noto Color Emoji",
})
-- and finally, return the configuration to wezterm
return config
'';
}