fix(nu): dark mode sync performance issues
This commit is contained in:
parent
46bae46c9e
commit
8a08c1f35d
1 changed files with 22 additions and 39 deletions
|
@ -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)")
|
||||||
|
}
|
||||||
)
|
)
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
Loading…
Reference in a new issue