Updates to color handling, deemphasize neovim
parent
7ce0b53808
commit
e9120ed0eb
|
@ -80,13 +80,13 @@ various extensions for nix-darwin
|
||||||
|
|
||||||
#### home
|
#### home
|
||||||
|
|
||||||
customization for kitty terminal and neovim
|
customization for kitty terminal and kakoune
|
||||||
|
|
||||||
### overlays
|
### overlays
|
||||||
|
|
||||||
#### colors
|
#### colors
|
||||||
|
|
||||||
cross-application color configurations
|
pure nix colorscheme palettes
|
||||||
|
|
||||||
### pkgs
|
### pkgs
|
||||||
|
|
||||||
|
|
|
@ -7,7 +7,6 @@
|
||||||
./git.nix
|
./git.nix
|
||||||
./kakoune.nix
|
./kakoune.nix
|
||||||
./kitty.nix
|
./kitty.nix
|
||||||
./neovim.nix
|
|
||||||
./shells.nix
|
./shells.nix
|
||||||
];
|
];
|
||||||
|
|
||||||
|
@ -35,7 +34,13 @@
|
||||||
fish = {
|
fish = {
|
||||||
functions = {
|
functions = {
|
||||||
set-bat-colors = {
|
set-bat-colors = {
|
||||||
body = ''set -xg BAT_THEME "Solarized ($term_background)"'';
|
body = ''
|
||||||
|
if test "$term_background" = light
|
||||||
|
set -xg BAT_THEME "OneHalfLight"
|
||||||
|
else
|
||||||
|
set -xg BAT_THEME "OneHalfDark"
|
||||||
|
end
|
||||||
|
'';
|
||||||
onVariable = "term_background";
|
onVariable = "term_background";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
@ -44,6 +49,19 @@
|
||||||
set-bat-colors
|
set-bat-colors
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
neovim = {
|
||||||
|
enable = true;
|
||||||
|
viAlias = true;
|
||||||
|
vimAlias = true;
|
||||||
|
vimdiffAlias = true;
|
||||||
|
extraConfig = builtins.readFile ../configs/init.vim;
|
||||||
|
plugins = with pkgs.vimPlugins; [
|
||||||
|
neovim-sensible
|
||||||
|
tokyonight-nvim
|
||||||
|
lightline-vim
|
||||||
|
ctrlp
|
||||||
|
];
|
||||||
|
};
|
||||||
# vscode
|
# vscode
|
||||||
vscode = with pkgs; {
|
vscode = with pkgs; {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
@ -91,6 +109,7 @@
|
||||||
nix-tree
|
nix-tree
|
||||||
] ++ lib.optionals stdenv.isDarwin [
|
] ++ lib.optionals stdenv.isDarwin [
|
||||||
m-cli # useful macOS CLI commands
|
m-cli # useful macOS CLI commands
|
||||||
|
is-dark-mode # see /overlays/colors.nix
|
||||||
];
|
];
|
||||||
# }}}
|
# }}}
|
||||||
|
|
||||||
|
|
106
home/neovim.nix
106
home/neovim.nix
|
@ -1,106 +0,0 @@
|
||||||
{ config, pkgs, lib, ... }:
|
|
||||||
|
|
||||||
let
|
|
||||||
inherit (lib) getName mkIf optional;
|
|
||||||
# inherit (config.lib.file) mkOutOfStoreSymlink;
|
|
||||||
nixConfigDir = "${config.home.homeDirectory}/dotfiles.nix";
|
|
||||||
|
|
||||||
# nvr = "${pkgs.neovim-remote}/bin/nvr";
|
|
||||||
|
|
||||||
pluginWithDeps = plugin: deps: plugin.overrideAttrs (_: { dependencies = deps; });
|
|
||||||
|
|
||||||
nonVSCodePlugin = plugin: {
|
|
||||||
plugin = plugin;
|
|
||||||
optional = true;
|
|
||||||
config = ''if !exists('g:vscode') | packadd ${plugin.pname} | endif'';
|
|
||||||
};
|
|
||||||
in
|
|
||||||
|
|
||||||
{
|
|
||||||
# Neovim
|
|
||||||
# https://rycee.gitlab.io/home-manager/options.html#opt-programs.neovim.enable
|
|
||||||
programs.neovim = {
|
|
||||||
enable = true;
|
|
||||||
viAlias = true;
|
|
||||||
vimAlias = true;
|
|
||||||
vimdiffAlias = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
# Config and plugins ------------------------------------------------------------------------- {{{
|
|
||||||
|
|
||||||
home.sessionVariables = {
|
|
||||||
EDITOR = "nvim";
|
|
||||||
};
|
|
||||||
|
|
||||||
# TODO: migrate to lua config
|
|
||||||
# Minimal init.vim config to load Lua config. Nix and Home Manager don't currently support
|
|
||||||
# `init.lua`.
|
|
||||||
# xdg.configFile."nvim/lua".source = mkOutOfStoreSymlink "${nixConfigDir}/configs/nvim/lua";
|
|
||||||
# xdg.configFile."nvim/colors".source = mkOutOfStoreSymlink "${nixConfigDir}/configs/nvim/colors";
|
|
||||||
# programs.neovim.extraConfig = "lua require('init')";
|
|
||||||
programs.neovim.extraConfig = builtins.readFile ../configs/init.vim;
|
|
||||||
|
|
||||||
programs.neovim.plugins = with pkgs.vimPlugins; [
|
|
||||||
neovim-sensible
|
|
||||||
tabular
|
|
||||||
vim-commentary
|
|
||||||
vim-surround
|
|
||||||
tokyonight-nvim
|
|
||||||
lightline-vim
|
|
||||||
vim-fish
|
|
||||||
vim-nix
|
|
||||||
ctrlp
|
|
||||||
] ++ map (p: { plugin = p; optional = true; }) [
|
|
||||||
which-key-nvim
|
|
||||||
zoomwintab-vim
|
|
||||||
nvim-treesitter
|
|
||||||
] ++ map nonVSCodePlugin [
|
|
||||||
direnv-vim
|
|
||||||
vim-fugitive
|
|
||||||
dhall-vim
|
|
||||||
haskell-vim
|
|
||||||
];
|
|
||||||
# }}}
|
|
||||||
|
|
||||||
# Shell related ------------------------------------------------------------------------------ {{{
|
|
||||||
|
|
||||||
# From personal addon module `./modules/programs/neovim/extras.nix`
|
|
||||||
programs.neovim.extras.termBufferAutoChangeDir = true;
|
|
||||||
programs.neovim.extras.nvrAliases.enable = true;
|
|
||||||
|
|
||||||
# programs.fish.functions.set-nvim-background = mkIf config.programs.neovim.enable {
|
|
||||||
# # See `./shells.nix` for more on how this is used.
|
|
||||||
# body = ''
|
|
||||||
# # Set `background` of all running Neovim instances base on `$term_background`.
|
|
||||||
# for server in (${nvr} --serverlist)
|
|
||||||
# ${nvr} -s --nostart --servername $server -c "set background=$term_background" &
|
|
||||||
# end
|
|
||||||
# '';
|
|
||||||
# onVariable = "term_background";
|
|
||||||
# };
|
|
||||||
|
|
||||||
# programs.fish.interactiveShellInit = mkIf config.programs.neovim.enable ''
|
|
||||||
# # Run Neovim related functions on init for their effects, and to register them so they are
|
|
||||||
# # triggered when the relevant event happens or variable changes.
|
|
||||||
# set-nvim-background
|
|
||||||
# '';
|
|
||||||
# }}}
|
|
||||||
|
|
||||||
# Required packages -------------------------------------------------------------------------- {{{
|
|
||||||
|
|
||||||
programs.neovim.extraPackages = with pkgs; [
|
|
||||||
# neovim-remote
|
|
||||||
gcc # needed for nvim-treesitter
|
|
||||||
tree-sitter # needed for nvim-treesitter
|
|
||||||
|
|
||||||
# Language servers
|
|
||||||
# See `../configs/nvim/lua/init.lua` for configuration.
|
|
||||||
# ccls
|
|
||||||
nodePackages.bash-language-server
|
|
||||||
nodePackages.vim-language-server
|
|
||||||
nodePackages.vscode-langservers-extracted
|
|
||||||
nodePackages.yaml-language-server
|
|
||||||
rnix-lsp
|
|
||||||
] ++ optional (pkgs.stdenv.system != "x86_64-darwin") sumneko-lua-language-server;
|
|
||||||
# }}}
|
|
||||||
}
|
|
|
@ -71,8 +71,7 @@
|
||||||
# trigger when this variable changes. We use a universal variable so that all instances of Fish
|
# trigger when this variable changes. We use a universal variable so that all instances of Fish
|
||||||
# have the same value for the variable.
|
# have the same value for the variable.
|
||||||
set-background-to-macOS.body = ''
|
set-background-to-macOS.body = ''
|
||||||
# Returns 'Dark' if in dark mode fails otherwise.
|
if is-dark-mode
|
||||||
if defaults read -g AppleInterfaceStyle &>/dev/null
|
|
||||||
set -U term_background dark
|
set -U term_background dark
|
||||||
else
|
else
|
||||||
set -U term_background light
|
set -U term_background light
|
||||||
|
@ -102,7 +101,7 @@
|
||||||
alias btm "btm --color default"
|
alias btm "btm --color default"
|
||||||
end
|
end
|
||||||
# Set LS_COLORS
|
# Set LS_COLORS
|
||||||
set -xg LS_COLORS (${pkgs.vivid}/bin/vivid generate solarized-$term_background)
|
set -xg LS_COLORS (${pkgs.vivid}/bin/vivid generate one-$term_background)
|
||||||
# Set color variables
|
# Set color variables
|
||||||
if test "$term_background" = light
|
if test "$term_background" = light
|
||||||
set emphasized_text brgreen # base01
|
set emphasized_text brgreen # base01
|
||||||
|
@ -143,6 +142,16 @@
|
||||||
set -g fish_color_escape red # color of character escapes like '\n' and and '\x70'
|
set -g fish_color_escape red # color of character escapes like '\n' and and '\x70'
|
||||||
set -g fish_color_cancel red # color of the '^C' indicator on a canceled command
|
set -g fish_color_cancel red # color of the '^C' indicator on a canceled command
|
||||||
'';
|
'';
|
||||||
|
|
||||||
|
from-dir = {
|
||||||
|
argumentNames = [ "dir" ];
|
||||||
|
body = ''
|
||||||
|
pushd $dir
|
||||||
|
set -e argv[1]
|
||||||
|
$argv
|
||||||
|
popd
|
||||||
|
'';
|
||||||
|
};
|
||||||
};
|
};
|
||||||
# }}}
|
# }}}
|
||||||
|
|
||||||
|
@ -152,18 +161,22 @@
|
||||||
programs.fish.shellAliases =
|
programs.fish.shellAliases =
|
||||||
let
|
let
|
||||||
nixConfigDir = "${config.home.homeDirectory}/dotfiles.nix";
|
nixConfigDir = "${config.home.homeDirectory}/dotfiles.nix";
|
||||||
inNix = cmd: "pushd ${nixConfigDir}/; ${cmd}; popd";
|
|
||||||
in
|
in
|
||||||
with pkgs; {
|
with pkgs; {
|
||||||
# Nix related
|
# Nix related
|
||||||
# drb = "pushd ${nixConfigDir}/; darwin-rebuild build --flake ${nixConfigDir}/; popd";
|
from-nix = "from-dir ${nixConfigDir}";
|
||||||
drb = inNix "darwin-rebuild flake --flake ${nixConfigDir}/";
|
# darwin-rebuild build
|
||||||
# drs = "pushd ${nixConfigDir}/; darwin-rebuild switch --flake ${nixConfigDir}/; popd";
|
drb = "from-nix darwin-rebuild build --flake .";
|
||||||
drs = inNix "darwin-rebuild switch --flake ${nixConfigDir}/";
|
# darwin-rebuild switch full
|
||||||
|
drsf = "from-nix darwin-rebuild switch --flake .";
|
||||||
|
# darwin-rebuild switch (no homebrew)
|
||||||
|
drs = "from-nix darwin-rebuild switch --flake . --override-input homebrew-enabled github:boolean-option/false";
|
||||||
|
# edit darwin-rebuild config in codium
|
||||||
drc = "codium ${nixConfigDir}";
|
drc = "codium ${nixConfigDir}";
|
||||||
|
# edit darwin-rebuild config in vim
|
||||||
drv = "vim ${nixConfigDir}";
|
drv = "vim ${nixConfigDir}";
|
||||||
# drk = "pushd ${nixConfigDir}/; kak ./flake.nix; popd";
|
# edit darwin-rebuild config in kakoune
|
||||||
drk = inNix "kak flake.nix";
|
drk = "from-nix kak flake.nix";
|
||||||
flakeup = "nix flake update ${nixConfigDir}/";
|
flakeup = "nix flake update ${nixConfigDir}/";
|
||||||
nb = "nix build";
|
nb = "nix build";
|
||||||
nd = "nix develop";
|
nd = "nix develop";
|
||||||
|
@ -171,6 +184,7 @@
|
||||||
nr = "nix run";
|
nr = "nix run";
|
||||||
ns = "nix search nixpkgs";
|
ns = "nix search nixpkgs";
|
||||||
nsh = "nix shell";
|
nsh = "nix shell";
|
||||||
|
nrp = "nix repl --expr '{pkgs=(import <nixpkgs> {});}'";
|
||||||
|
|
||||||
# Other
|
# Other
|
||||||
".." = "cd ..";
|
".." = "cd ..";
|
||||||
|
@ -178,17 +192,17 @@
|
||||||
cat = "${bat}/bin/bat";
|
cat = "${bat}/bin/bat";
|
||||||
du = "${du-dust}/bin/dust";
|
du = "${du-dust}/bin/dust";
|
||||||
g = "${gitAndTools.git}/bin/git";
|
g = "${gitAndTools.git}/bin/git";
|
||||||
la = "ll -a";
|
|
||||||
ll = "ls -l --time-style long-iso --icons";
|
|
||||||
ls = "${exa}/bin/exa";
|
ls = "${exa}/bin/exa";
|
||||||
|
ll = "ls -l --time-style long-iso --icons";
|
||||||
|
la = "ll -a";
|
||||||
ps = "${procs}/bin/procs";
|
ps = "${procs}/bin/procs";
|
||||||
|
code = "${vscodium}/bin/codium";
|
||||||
|
http = "${xh}/bin/xh";
|
||||||
|
https = "${xh}/bin/xhs";
|
||||||
|
top = "${bottom}/bin/btm";
|
||||||
|
htop = "${bottom}/bin/btm";
|
||||||
tb = "toggle-background";
|
tb = "toggle-background";
|
||||||
sb = "set-background-to-macOS";
|
sb = "set-background-to-macOS";
|
||||||
code = "codium";
|
|
||||||
http = "xh";
|
|
||||||
https = "xhs";
|
|
||||||
top = "btm";
|
|
||||||
htop = "btm";
|
|
||||||
};
|
};
|
||||||
|
|
||||||
# Configuration that should be above `loginShellInit` and `interactiveShellInit`.
|
# Configuration that should be above `loginShellInit` and `interactiveShellInit`.
|
||||||
|
|
|
@ -1,168 +0,0 @@
|
||||||
{ config, lib, pkgs, ... }:
|
|
||||||
|
|
||||||
with lib;
|
|
||||||
|
|
||||||
let
|
|
||||||
cfg = config.programs.neovim.extras;
|
|
||||||
nvr = "${pkgs.neovim-remote}/bin/nvr";
|
|
||||||
|
|
||||||
shellConfig = with cfg.nvrAliases; ''
|
|
||||||
# START programs.neovim.extras config ----------------------------------------------------------
|
|
||||||
'' + optionalString cfg.termBufferAutoChangeDir ''
|
|
||||||
# If shell is running in a Neovim terminal buffer, set the PWD of the buffer to `$PWD`.
|
|
||||||
if test -n "$NVIM_LISTEN_ADDRESS"; nvim-sync-term-buffer-pwd; end
|
|
||||||
'' + optionalString cfg.nvrAliases.enable ''
|
|
||||||
# Neovim Remote aliases
|
|
||||||
if test -n "$NVIM_LISTEN_ADDRESS"
|
|
||||||
alias ${edit} "${nvr}"
|
|
||||||
alias ${split} "${nvr} -o"
|
|
||||||
alias ${vsplit} "${nvr} -O"
|
|
||||||
alias ${tabedit} "${nvr} --remote-tab"
|
|
||||||
alias ${nvim} "command nvim"
|
|
||||||
alias nvim "echo 'This shell is running in a Neovim termainal buffer. Use \'${nvim}\' to a nested instance of Neovim, otherwise use ${edit}, ${split}, ${vsplit}, or ${tabedit} to open files in the this Neovim instance.'"
|
|
||||||
else
|
|
||||||
alias ${edit} "nvim"
|
|
||||||
end
|
|
||||||
'' + ''
|
|
||||||
# END programs.neovim.extras config ------------------------------------------------------------
|
|
||||||
'';
|
|
||||||
in
|
|
||||||
{
|
|
||||||
options.programs.neovim.extras = {
|
|
||||||
termBufferAutoChangeDir = mkOption {
|
|
||||||
type = types.bool;
|
|
||||||
default = false;
|
|
||||||
description = ''
|
|
||||||
When enabled, the <literal>pwd</literal> of terminal buffers in Neovim are automatically
|
|
||||||
updated to match <literal>$PWD</literal> of the shell running inside them.
|
|
||||||
Note that you cannot use this option if you are using
|
|
||||||
<option>programs.neovim.configure</option>, use <option>programs.neovim.extraConfig</option>
|
|
||||||
and <option>programs.neovim.plugins</option> instead.
|
|
||||||
(Currently only works with Fish shell.)
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
|
|
||||||
nvrAliases = {
|
|
||||||
enable = mkOption {
|
|
||||||
type = types.bool;
|
|
||||||
default = false;
|
|
||||||
description = ''
|
|
||||||
When enabled, shell aliases for helpful Neovim Remote commands are created if the shell is
|
|
||||||
running inside a Neovim terminal buffer. Additionally, running <command>nvim</command>
|
|
||||||
won't open a nested Neovim instance but instead print a message listing the available
|
|
||||||
<command>nvr</command> aliases, as well as the command to run if you actually want to open
|
|
||||||
a nested Neovim instance.
|
|
||||||
Note that you cannot use this option if you are using
|
|
||||||
<option>programs.neovim.configure</option>, use
|
|
||||||
<option>programs.neovim.extraConfig</option> and <option>programs.neovim.plugins</option>
|
|
||||||
instead.
|
|
||||||
(Currently only works with Fish shell.)
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
|
|
||||||
edit = mkOption {
|
|
||||||
type = types.str;
|
|
||||||
default = "n";
|
|
||||||
description = ''
|
|
||||||
Equivalent to Neovim's <command>:edit</command> command, i.e., running
|
|
||||||
<command>n [file]</command> will open the file in the current window.
|
|
||||||
When not in Neovim this also acts as an alias for <command>nvim</command>.
|
|
||||||
(Alias for <command>nvr</command>.)
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
|
|
||||||
split = mkOption {
|
|
||||||
type = types.str;
|
|
||||||
default = "ns";
|
|
||||||
description = ''
|
|
||||||
Equivalent to Neovim's <command>:split/command> command.
|
|
||||||
(Alias for <command>nvr -o</command>.)
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
|
|
||||||
vsplit = mkOption {
|
|
||||||
type = types.str;
|
|
||||||
default = "nv";
|
|
||||||
description = ''
|
|
||||||
Equivalent to Neovim's <command>:vsplit/command> command.
|
|
||||||
(Alias for <command>nvr -O</command>.)
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
|
|
||||||
tabedit = mkOption {
|
|
||||||
type = types.str;
|
|
||||||
default = "nt";
|
|
||||||
description = ''
|
|
||||||
Equivalent to Neovim's <command>:tabedit</command> command.
|
|
||||||
(Alias for <command>nvr --remote-tab</command>.)
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
|
|
||||||
nvim = mkOption {
|
|
||||||
type = types.str;
|
|
||||||
default = "neovim";
|
|
||||||
description = ''
|
|
||||||
Opens a nested Neovim instance.
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
luaPackages = mkOption {
|
|
||||||
type = with types; listOf package;
|
|
||||||
default = [ ];
|
|
||||||
example = [ pkgs.luajitPackages.busted pkgs.luajitPackages.luafilesystem ];
|
|
||||||
description = ''
|
|
||||||
Lua packages to make available in Neovim Lua environment.
|
|
||||||
Note that you cannot use this option if you are using
|
|
||||||
<option>programs.neovim.configure</option>, use <option>programs.neovim.extraConfig</option>
|
|
||||||
and <option>programs.neovim.plugins</option> instead.
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
config = mkIf config.programs.neovim.enable {
|
|
||||||
programs.fish.functions.nvim-sync-term-buffer-pwd = mkIf cfg.termBufferAutoChangeDir {
|
|
||||||
body = ''
|
|
||||||
if test -n "$NVIM_LISTEN_ADDRESS"
|
|
||||||
${nvr} -c "let g:term_buffer_pwds.$fish_pid = '$PWD' | call Set_term_buffer_pwd() "
|
|
||||||
end
|
|
||||||
'';
|
|
||||||
onVariable = "PWD";
|
|
||||||
};
|
|
||||||
|
|
||||||
programs.neovim.extraConfig = mkIf cfg.termBufferAutoChangeDir ''
|
|
||||||
" START programs.neovim.extras.termBufferAutoChangeDir config --------------------------------
|
|
||||||
" Dictionary used to track the PWD of terminal buffers. Keys should be PIDs and values are is
|
|
||||||
" PWD of the shell with that PID. These values are updated from the shell using `nvr`.
|
|
||||||
let g:term_buffer_pwds = {}
|
|
||||||
" Function to call to update the PWD of the current terminal buffer.
|
|
||||||
function Set_term_buffer_pwd() abort
|
|
||||||
if &buftype == 'terminal' && exists('g:term_buffer_pwds[b:terminal_job_pid]')
|
|
||||||
execute 'lchd ' . g:term_buffer_pwds[b:terminal_job_pid]
|
|
||||||
endif
|
|
||||||
endfunction
|
|
||||||
" Sometimes the PWD the shell in a terminal buffer will change when in another buffer, so
|
|
||||||
" when entering a terminal buffer we update try to update it's PWD.
|
|
||||||
augroup NvimTermPwd
|
|
||||||
au!
|
|
||||||
au BufEnter * if &buftype == 'terminal' | call Set_term_buffer_pwd() | endif
|
|
||||||
augroup END
|
|
||||||
" END programs.neovim.extras.termBufferAutoChangeDir config ----------------------------------
|
|
||||||
'';
|
|
||||||
|
|
||||||
programs.fish.interactiveShellInit = mkIf
|
|
||||||
(cfg.termBufferAutoChangeDir || cfg.nvrAliases.enable)
|
|
||||||
shellConfig;
|
|
||||||
|
|
||||||
programs.neovim.plugins = lib.singleton (
|
|
||||||
pkgs.vimUtils.buildVimPluginFrom2Nix {
|
|
||||||
name = "lua-env";
|
|
||||||
src = pkgs.linkFarm "neovim-lua-env" (
|
|
||||||
lib.forEach cfg.luaPackages (
|
|
||||||
p: { name = "lua"; path = "${p}/lib/lua/${p.lua.luaversion}"; }
|
|
||||||
)
|
|
||||||
);
|
|
||||||
}
|
|
||||||
);
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,10 +1,10 @@
|
||||||
# Used in Kitty terminal config: `./kitty-configs.nix`
|
|
||||||
|
|
||||||
final: prev: {
|
final: prev: {
|
||||||
lib = prev.lib // {
|
lib = prev.lib // {
|
||||||
colors = {
|
colors = {
|
||||||
solarized = import ./colors/solarized.nix;
|
|
||||||
tokyonight = import ./colors/tokyonight.nix;
|
tokyonight = import ./colors/tokyonight.nix;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
is-dark-mode = prev.writeShellScriptBin "is-dark-mode" ''
|
||||||
|
defaults read -g AppleInterfaceStyle &>/dev/null
|
||||||
|
'';
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,118 +0,0 @@
|
||||||
# Colors from: https://ethanschoonover.com/solarized
|
|
||||||
|
|
||||||
# SOLARIZED HEX 16/8 TERMCOL XTERM/HEX L*A*B RGB HSB
|
|
||||||
# --------- ------- ---- ------- ----------- ---------- ----------- -----------
|
|
||||||
# base03 #002b36 8/4 brblack 234 #1c1c1c 15 -12 -12 0 43 54 193 100 21
|
|
||||||
# base02 #073642 0/4 black 235 #262626 20 -12 -12 7 54 66 192 90 26
|
|
||||||
# base01 #586e75 10/7 brgreen 240 #585858 45 -07 -07 88 110 117 194 25 46
|
|
||||||
# base00 #657b83 11/7 bryellow 241 #626262 50 -07 -07 101 123 131 195 23 51
|
|
||||||
# base0 #839496 12/6 brblue 244 #808080 60 -06 -03 131 148 150 186 13 59
|
|
||||||
# base1 #93a1a1 14/4 brcyan 245 #8a8a8a 65 -05 -02 147 161 161 180 9 63
|
|
||||||
# base2 #eee8d5 7/7 white 254 #e4e4e4 92 -00 10 238 232 213 44 11 93
|
|
||||||
# base3 #fdf6e3 15/7 brwhite 230 #ffffd7 97 00 10 253 246 227 44 10 99
|
|
||||||
# yellow #b58900 3/3 yellow 136 #af8700 60 10 65 181 137 0 45 100 71
|
|
||||||
# orange #cb4b16 9/3 brred 166 #d75f00 50 50 55 203 75 22 18 89 80
|
|
||||||
# red #dc322f 1/1 red 160 #d70000 50 65 45 220 50 47 1 79 86
|
|
||||||
# magenta #d33682 5/5 magenta 125 #af005f 50 65 -05 211 54 130 331 74 83
|
|
||||||
# violet #6c71c4 13/5 brmagenta 61 #5f5faf 50 15 -45 108 113 196 237 45 77
|
|
||||||
# blue #268bd2 4/4 blue 33 #0087ff 55 -10 -45 38 139 210 205 82 82
|
|
||||||
# cyan #2aa198 6/6 cyan 37 #00afaf 60 -35 -05 42 161 152 175 74 63
|
|
||||||
# green #859900 2/2 green 64 #5f8700 60 -20 65 133 153 0 68 100 60
|
|
||||||
|
|
||||||
rec {
|
|
||||||
colors = {
|
|
||||||
darkBase = "002b36"; # base03
|
|
||||||
darkBasehl = "073642"; # base02
|
|
||||||
darkestTone = "586e75"; # base01
|
|
||||||
darkTone = "657b83"; # base00
|
|
||||||
lightTone = "839496"; # base0
|
|
||||||
lightestTone = "93a1a1"; # base1
|
|
||||||
lightBasehl = "eee8d5"; # base2
|
|
||||||
lightBase = "fdf6e3"; # base3
|
|
||||||
yellow = "b58900";
|
|
||||||
orange = "cb4b16";
|
|
||||||
red = "dc322f";
|
|
||||||
magenta = "d33682";
|
|
||||||
violet = "6c71c4";
|
|
||||||
blue = "268bd2";
|
|
||||||
cyan = "2aa198";
|
|
||||||
green = "859900";
|
|
||||||
};
|
|
||||||
|
|
||||||
_light = with colors; {
|
|
||||||
base = lightBase;
|
|
||||||
basehl = lightBasehl;
|
|
||||||
invbase = darkBase;
|
|
||||||
invbasehl = darkBasehl;
|
|
||||||
main = darkTone;
|
|
||||||
faded = lightTone;
|
|
||||||
muted = lightestTone;
|
|
||||||
strong = darkestTone;
|
|
||||||
inherit (colors) yellow orange red megenta violet blue cyan green;
|
|
||||||
};
|
|
||||||
|
|
||||||
_dark = with colors; {
|
|
||||||
base = darkBase;
|
|
||||||
basehl = darkBasehl;
|
|
||||||
invbase = lightBase;
|
|
||||||
invbasehl = lightBasehl;
|
|
||||||
main = lightTone;
|
|
||||||
faded = darkTone;
|
|
||||||
muted = darkestTone;
|
|
||||||
strong = lightestTone;
|
|
||||||
inherit (colors) yellow orange red megenta violet blue cyan green;
|
|
||||||
};
|
|
||||||
|
|
||||||
backgroundDependentColors = colors: with colors; {
|
|
||||||
background = "#${base}";
|
|
||||||
foreground = "#${main}";
|
|
||||||
|
|
||||||
# Cursor
|
|
||||||
cursor = "#${blue}";
|
|
||||||
cursor_text_color = "#${base}";
|
|
||||||
|
|
||||||
# Selection
|
|
||||||
selection_background = "#${muted}";
|
|
||||||
selection_foreground = "#${base}";
|
|
||||||
|
|
||||||
# Tab bar
|
|
||||||
tab_bar_background = "#${basehl}";
|
|
||||||
inactive_tab_background = "#${strong}";
|
|
||||||
};
|
|
||||||
|
|
||||||
dark = backgroundDependentColors _dark;
|
|
||||||
light = backgroundDependentColors _light;
|
|
||||||
|
|
||||||
common = with colors; {
|
|
||||||
# black
|
|
||||||
color0 = "#${darkBasehl}";
|
|
||||||
color8 = "#${darkBase}";
|
|
||||||
# red
|
|
||||||
color1 = "#${red}";
|
|
||||||
color9 = "#${orange}";
|
|
||||||
# green
|
|
||||||
color2 = "#${green}";
|
|
||||||
color10 = "#${darkestTone}";
|
|
||||||
# yellow
|
|
||||||
color3 = "#${yellow}";
|
|
||||||
color11 = "#${darkTone}";
|
|
||||||
# blue
|
|
||||||
color4 = "#${blue}";
|
|
||||||
color12 = "#${lightTone}";
|
|
||||||
# magenta
|
|
||||||
color5 = "#${magenta}";
|
|
||||||
color13 = "#${violet}";
|
|
||||||
# cyan
|
|
||||||
color6 = "#${cyan}";
|
|
||||||
color14 = "#${lightestTone}";
|
|
||||||
# white
|
|
||||||
color7 = "#${lightBasehl}";
|
|
||||||
color15 = "#${lightBase}";
|
|
||||||
# url underline color to fit colors
|
|
||||||
url_color = "#${blue}";
|
|
||||||
# tab bar
|
|
||||||
active_tab_foreground = "#${lightBase}";
|
|
||||||
active_tab_background = "#${green}";
|
|
||||||
inactive_tab_foreground = "#${lightBase}";
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -4,6 +4,11 @@ let
|
||||||
callPackage
|
callPackage
|
||||||
(./. + "/${name}.nix")
|
(./. + "/${name}.nix")
|
||||||
{ "${name}-src" = inputs."${name}-src"; };
|
{ "${name}-src" = inputs."${name}-src"; };
|
||||||
pkgs = [ "dark-mode-notify" "luar" "smarttab-kak" ];
|
pkgs = [
|
||||||
|
"dark-mode-notify"
|
||||||
|
"luar"
|
||||||
|
"smarttab-kak"
|
||||||
|
"kitty-themes"
|
||||||
|
];
|
||||||
in
|
in
|
||||||
genAttrs pkgs buildPkg
|
genAttrs pkgs buildPkg
|
||||||
|
|
|
@ -0,0 +1,13 @@
|
||||||
|
{ kitty-themes-src, stdenv, ... }:
|
||||||
|
|
||||||
|
stdenv.mkDerivation {
|
||||||
|
name = "kitty-themes";
|
||||||
|
src = kitty-themes-src;
|
||||||
|
dontBuild = true;
|
||||||
|
|
||||||
|
installPhase = ''
|
||||||
|
mkdir -p $out
|
||||||
|
|
||||||
|
cp themes/* $out
|
||||||
|
'';
|
||||||
|
}
|
Loading…
Reference in New Issue