fix(nu): dark mode sync performance issues

This commit is contained in:
winston 2024-05-19 17:55:11 +02:00
parent 46bae46c9e
commit 8a08c1f35d
Signed by: winston
GPG key ID: 3786770EDBC2B481

View file

@ -7,13 +7,12 @@
let let
inherit (pkgs.stdenv) isDarwin isLinux; inherit (pkgs.stdenv) isDarwin isLinux;
vividBuilder = vividCatppuccin = pkgs.runCommand "vivid-catppuccin" { nativeBuildInputs = [ pkgs.vivid ]; } ''
flavor: mkdir -p $out
pkgs.runCommand "vivid-${flavor}" { nativeBuildInputs = [ pkgs.vivid ]; } '' for flavor in mocha macchiato frappe latte; do
vivid generate catppuccin-${flavor} > $out vivid generate "catppuccin-''${flavor}" > "$out/''${flavor}"
''; done
vividLatte = vividBuilder "latte"; '';
vividMocha = vividBuilder "mocha";
in in
{ {
config = lib.mkIf config.isGraphical { config = lib.mkIf config.isGraphical {
@ -69,48 +68,32 @@ in
programs.zsh.initExtra = '' programs.zsh.initExtra = ''
zadm_sync() { zadm_sync() {
BAT_THEME="Catppuccin $(dark-mode-ternary Mocha Latte)" local flavor="$(dark-mode-ternary mocha latte)"
LS_COLORS="$(cat $(dark-mode-ternary ${vividMocha} ${vividLatte}))"
STARSHIP_CONFIG__PALETTE="catppuccin_$(dark-mode-ternary mocha latte)" BAT_THEME="Catppuccin ''${flavor^}"
LS_COLORS="$(cat "${vividCatppuccin}/''${flavor}")"
STARSHIP_CONFIG__PALETTE="catppuccin_''${flavor}"
export BAT_THEME LS_COLORS STARSHIP_CONFIG__PALETTE export BAT_THEME LS_COLORS STARSHIP_CONFIG__PALETTE
fast-theme "XDG:catppuccin-$(dark-mode-ternary mocha latte)" >/dev/null fast-theme "XDG:catppuccin-''${flavor}" >/dev/null
} }
add-zsh-hook precmd zadm_sync add-zsh-hook precmd zadm_sync
''; '';
programs.nushell.extraConfig = '' programs.nushell.extraConfig = ''
def dark-mode-ternary [dark: string, light: string] {
let system = (uname | get operating-system);
if ($system == "Darwin") {
if ((defaults read -g AppleInterfaceStyle e> /dev/null =) == "Dark") {
$dark
} else {
$light
}
} else if ($system == "Linux") {
if ((dbus-send --session --print-reply=literal --reply-timeout=5 --dest=org.freedesktop.portal.Desktop /org/freedesktop/portal/desktop org.freedesktop.portal.Settings.Read string:'org.freedesktop.appearance' string:'color-scheme' e> /dev/null | str contains "uint32 1")) {
$dark
} else {
$light
}
} else {
$light
}
}
$env.config = ($env.config? | default {}) $env.config = ($env.config? | default {})
$env.config.hooks = ($env.config.hooks? | default {}) $env.config.hooks = ($env.config.hooks? | default {})
$env.config.hooks.pre_prompt = ( $env.config.hooks.pre_prompt = (
$env.config.hooks.pre_prompt? $env.config.hooks.pre_prompt?
| default [] | default []
| append [ | append {||
{ $env.config.color_config = (catppuccin (dark-mode-ternary mocha latte)) } let flavor = dark-mode-ternary "mocha" "latte"
{ $env.BAT_THEME = $"Catppuccin (dark-mode-ternary Mocha Latte)" }
{ $env.STARSHIP_CONFIG__PALETTE = $"catppuccin_(dark-mode-ternary mocha latte)" } $env.config.color_config = (catppuccin $flavor)
{ $env.LS_COLORS = (cat (dark-mode-ternary ${vividMocha} ${vividLatte})) } $env.BAT_THEME = "Catppuccin " + ($flavor | str capitalize)
] $env.STARSHIP_CONFIG__PALETTE = "catppuccin_" + $flavor
$env.LS_COLORS = (cat $"${vividCatppuccin}/($flavor)")
}
) )
''; '';
}; };