more nix-colors; nushell fzf fix
This commit is contained in:
@@ -1,4 +1,8 @@
|
||||
{pkgs, ...}: {
|
||||
{
|
||||
config,
|
||||
pkgs,
|
||||
...
|
||||
}: {
|
||||
imports = [
|
||||
./fish.nix
|
||||
./fzf.nix
|
||||
@@ -32,7 +36,136 @@
|
||||
withPython3 = true;
|
||||
};
|
||||
|
||||
programs.bat = {enable = true;};
|
||||
programs.bat = {
|
||||
enable = true;
|
||||
config = {
|
||||
theme = "universal";
|
||||
};
|
||||
themes = {
|
||||
universal = {
|
||||
src = pkgs.writeText "universal.tmTheme" ''
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Universal (nix-colors)</string>
|
||||
<key>settings</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>background</key>
|
||||
<string>#${config.colorScheme.palette.base00}</string>
|
||||
<key>foreground</key>
|
||||
<string>#${config.colorScheme.palette.base05}</string>
|
||||
<key>caret</key>
|
||||
<string>#${config.colorScheme.palette.base05}</string>
|
||||
<key>selection</key>
|
||||
<string>#${config.colorScheme.palette.base02}</string>
|
||||
<key>selectionForeground</key>
|
||||
<string>#${config.colorScheme.palette.base05}</string>
|
||||
<key>lineHighlight</key>
|
||||
<string>#${config.colorScheme.palette.base01}</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Comment</string>
|
||||
<key>scope</key>
|
||||
<string>comment</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#${config.colorScheme.palette.base03}</string>
|
||||
<key>fontStyle</key>
|
||||
<string>italic</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>String</string>
|
||||
<key>scope</key>
|
||||
<string>string</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#${config.colorScheme.palette.base0A}</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Number</string>
|
||||
<key>scope</key>
|
||||
<string>constant.numeric</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#${config.colorScheme.palette.base0E}</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Keyword</string>
|
||||
<key>scope</key>
|
||||
<string>keyword</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#${config.colorScheme.palette.base08}</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Function</string>
|
||||
<key>scope</key>
|
||||
<string>entity.name.function</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#${config.colorScheme.palette.base0B}</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Type</string>
|
||||
<key>scope</key>
|
||||
<string>entity.name.type, storage.type</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#${config.colorScheme.palette.base0D}</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Variable</string>
|
||||
<key>scope</key>
|
||||
<string>variable</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#${config.colorScheme.palette.base05}</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Constant</string>
|
||||
<key>scope</key>
|
||||
<string>constant</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#${config.colorScheme.palette.base0E}</string>
|
||||
</dict>
|
||||
</dict>
|
||||
</array>
|
||||
</dict>
|
||||
</plist>
|
||||
'';
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
programs.direnv = {
|
||||
enable = true;
|
||||
|
@@ -11,6 +11,43 @@ in {
|
||||
config = mkIf cfg.enable {
|
||||
programs.fish = {
|
||||
enable = true;
|
||||
interactiveShellInit = ''
|
||||
# Fish colors using universal nix-colors palette
|
||||
# Text colors
|
||||
set -g fish_color_normal ${config.colorScheme.palette.base05} # text
|
||||
set -g fish_color_param ${config.colorScheme.palette.base05} # text
|
||||
set -g fish_color_comment ${config.colorScheme.palette.base03} # muted
|
||||
set -g fish_color_autosuggestion ${config.colorScheme.palette.base03} # muted
|
||||
|
||||
# Command colors
|
||||
set -g fish_color_command ${config.colorScheme.palette.base0D} # accent6 (blue)
|
||||
set -g fish_color_quote ${config.colorScheme.palette.base0A} # accent3 (yellow)
|
||||
set -g fish_color_redirection ${config.colorScheme.palette.base0E} # accent7 (purple)
|
||||
set -g fish_color_end ${config.colorScheme.palette.base08} # accent1 (red)
|
||||
set -g fish_color_error ${config.colorScheme.palette.base08} # accent1 (red)
|
||||
set -g fish_color_operator ${config.colorScheme.palette.base0C} # accent5 (cyan)
|
||||
set -g fish_color_escape ${config.colorScheme.palette.base09} # accent2 (orange)
|
||||
|
||||
# Path colors
|
||||
set -g fish_color_cwd ${config.colorScheme.palette.base0B} # accent4 (green)
|
||||
set -g fish_color_cwd_root ${config.colorScheme.palette.base08} # accent1 (red)
|
||||
set -g fish_color_valid_path --underline
|
||||
|
||||
# Interactive colors
|
||||
set -g fish_color_match ${config.colorScheme.palette.base0B} # accent4 (green)
|
||||
set -g fish_color_selection --background=${config.colorScheme.palette.base02} # overlay
|
||||
set -g fish_color_search_match --background=${config.colorScheme.palette.base02} # overlay
|
||||
set -g fish_color_history_current --bold
|
||||
set -g fish_color_user ${config.colorScheme.palette.base0B} # accent4 (green)
|
||||
set -g fish_color_host ${config.colorScheme.palette.base0D} # accent6 (blue)
|
||||
set -g fish_color_cancel -r
|
||||
|
||||
# Pager colors
|
||||
set -g fish_pager_color_completion normal
|
||||
set -g fish_pager_color_description ${config.colorScheme.palette.base03} # muted
|
||||
set -g fish_pager_color_prefix ${config.colorScheme.palette.base0E} # accent7 (purple)
|
||||
set -g fish_pager_color_progress ${config.colorScheme.palette.base0B} # accent4 (green)
|
||||
'';
|
||||
loginShellInit = ''
|
||||
set -x NIX_PATH nixpkgs=channel:nixos-unstable
|
||||
set -x NIX_LOG info
|
||||
|
@@ -13,18 +13,18 @@ in {
|
||||
enable = true;
|
||||
enableFishIntegration = true;
|
||||
colors = {
|
||||
"fg" = "#f8f8f2";
|
||||
"bg" = "#282a36";
|
||||
"hl" = "#bd93f9";
|
||||
"fg+" = "#f8f8f2";
|
||||
"bg+" = "#44475a";
|
||||
"hl+" = "#bd93f9";
|
||||
"info" = "#ffb86c";
|
||||
"prompt" = "#50fa7b";
|
||||
"pointer" = "#ff79c6";
|
||||
"marker" = "#ff79c6";
|
||||
"spinner" = "#ffb86c";
|
||||
"header" = "#6272a4";
|
||||
"fg" = "#${config.colorScheme.palette.base05}";
|
||||
"bg" = "#${config.colorScheme.palette.base00}";
|
||||
"hl" = "#${config.colorScheme.palette.base0E}";
|
||||
"fg+" = "#${config.colorScheme.palette.base05}";
|
||||
"bg+" = "#${config.colorScheme.palette.base02}";
|
||||
"hl+" = "#${config.colorScheme.palette.base0E}";
|
||||
"info" = "#${config.colorScheme.palette.base09}";
|
||||
"prompt" = "#${config.colorScheme.palette.base0B}";
|
||||
"pointer" = "#${config.colorScheme.palette.base08}";
|
||||
"marker" = "#${config.colorScheme.palette.base08}";
|
||||
"spinner" = "#${config.colorScheme.palette.base09}";
|
||||
"header" = "#${config.colorScheme.palette.base03}";
|
||||
};
|
||||
defaultOptions = [
|
||||
"--preview='bat --color=always -n {}'"
|
||||
|
@@ -20,7 +20,7 @@ in {
|
||||
$env.EDITOR = "nvim"
|
||||
$env.VISUAL = "zed"
|
||||
$env.FZF_DEFAULT_COMMAND = "fd --type f --exclude .git --follow --hidden"
|
||||
$env.FZF_DEFAULT_OPTS = "--preview='bat --color=always -n {}' --bind 'ctrl-/:toggle-preview' --header 'Press CTRL-Y to copy command into clipboard' --bind 'ctrl-/:toggle-preview' --bind 'ctrl-y:execute-silent(echo -n {2..} | wl-copy)+abort' --color bg:#282a36,bg+:#44475a,fg:#f8f8f2,fg+:#f8f8f2,header:#6272a4,hl:#bd93f9,hl+:#bd93f9,info:#ffb86c,marker:#ff79c6,pointer:#ff79c6,prompt:#50fa7b,spinner:#ffb86c"
|
||||
$env.FZF_DEFAULT_OPTS = "--preview='bat --color=always --style=numbers --line-range=:500 {}' --bind 'ctrl-/:toggle-preview' --header 'Press CTRL-Y to copy to clipboard' --bind 'ctrl-y:execute-silent(echo {} | wl-copy)' --color bg:#${config.colorScheme.palette.base00},bg+:#${config.colorScheme.palette.base02},fg:#${config.colorScheme.palette.base05},fg+:#${config.colorScheme.palette.base05},header:#${config.colorScheme.palette.base03},hl:#${config.colorScheme.palette.base0E},hl+:#${config.colorScheme.palette.base0E},info:#${config.colorScheme.palette.base09},marker:#${config.colorScheme.palette.base08},pointer:#${config.colorScheme.palette.base08},prompt:#${config.colorScheme.palette.base0B},spinner:#${config.colorScheme.palette.base09}"
|
||||
$env.XDG_DATA_HOME = $"($env.HOME)/.local/share"
|
||||
$env.FZF_DEFAULT_COMMAND = "fd --type f --exclude .git --follow --hidden"
|
||||
$env.SSH_AUTH_SOCK = "/run/user/1000/gnupg/S.gpg-agent.ssh"
|
||||
@@ -28,6 +28,45 @@ in {
|
||||
source /run/agenix/${config.home.username}-secrets
|
||||
'';
|
||||
configFile.text = ''
|
||||
# FZF integration functions for nushell
|
||||
def fzf-file [] {
|
||||
fd --type f --exclude .git --follow --hidden | fzf --preview 'bat --color=always --style=numbers --line-range=:500 {}' --bind 'ctrl-y:execute-silent(echo {} | wl-copy)'
|
||||
}
|
||||
|
||||
def fzf-dir [] {
|
||||
fd --type d --exclude .git --follow --hidden | fzf --preview 'ls -la {}'
|
||||
}
|
||||
|
||||
def fzf-history [] {
|
||||
history | get command | reverse | fzf --bind 'ctrl-y:execute-silent(echo {} | wl-copy)'
|
||||
}
|
||||
|
||||
# Key bindings for FZF
|
||||
$env.config = {
|
||||
keybindings: [
|
||||
{
|
||||
name: fzf_file
|
||||
modifier: control
|
||||
keycode: char_t
|
||||
mode: [emacs, vi_normal, vi_insert]
|
||||
event: {
|
||||
send: executehostcommand
|
||||
cmd: "commandline edit --insert (fzf-file)"
|
||||
}
|
||||
}
|
||||
{
|
||||
name: fzf_history
|
||||
modifier: control
|
||||
keycode: char_r
|
||||
mode: [emacs, vi_normal, vi_insert]
|
||||
event: {
|
||||
send: executehostcommand
|
||||
cmd: "commandline edit --replace (fzf-history)"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
if (tty) == "/dev/tty1" {
|
||||
exec uwsm start -S -F /run/current-system/sw/bin/Hyprland
|
||||
}
|
||||
|
@@ -13,6 +13,56 @@ in {
|
||||
enable = true;
|
||||
enableFishIntegration = true;
|
||||
enableNushellIntegration = true;
|
||||
settings = {
|
||||
format = "$all$character";
|
||||
palette = "universal";
|
||||
|
||||
palettes.universal = {
|
||||
background = "#${config.colorScheme.palette.base00}";
|
||||
surface = "#${config.colorScheme.palette.base01}";
|
||||
muted = "#${config.colorScheme.palette.base03}";
|
||||
text = "#${config.colorScheme.palette.base05}";
|
||||
bright = "#${config.colorScheme.palette.base07}";
|
||||
accent1 = "#${config.colorScheme.palette.base08}";
|
||||
accent2 = "#${config.colorScheme.palette.base09}";
|
||||
accent3 = "#${config.colorScheme.palette.base0A}";
|
||||
accent4 = "#${config.colorScheme.palette.base0B}";
|
||||
accent5 = "#${config.colorScheme.palette.base0C}";
|
||||
accent6 = "#${config.colorScheme.palette.base0D}";
|
||||
accent7 = "#${config.colorScheme.palette.base0E}";
|
||||
};
|
||||
|
||||
character = {
|
||||
success_symbol = "[❯](accent7)";
|
||||
error_symbol = "[❯](accent1)";
|
||||
};
|
||||
|
||||
directory = {
|
||||
style = "accent6";
|
||||
truncation_length = 3;
|
||||
truncate_to_repo = false;
|
||||
};
|
||||
|
||||
git_branch = {
|
||||
style = "accent7";
|
||||
};
|
||||
|
||||
git_status = {
|
||||
style = "accent5";
|
||||
};
|
||||
|
||||
cmd_duration = {
|
||||
style = "accent3";
|
||||
};
|
||||
|
||||
hostname = {
|
||||
style = "accent4";
|
||||
};
|
||||
|
||||
username = {
|
||||
style_user = "accent2";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
|
@@ -11,6 +11,22 @@ in {
|
||||
config = mkIf cfg.enable {
|
||||
programs.zellij = {
|
||||
enable = true;
|
||||
settings = {
|
||||
theme = "universal";
|
||||
themes.universal = {
|
||||
bg = "#${config.colorScheme.palette.base00}";
|
||||
fg = "#${config.colorScheme.palette.base05}";
|
||||
black = "#${config.colorScheme.palette.base01}";
|
||||
red = "#${config.colorScheme.palette.base08}";
|
||||
green = "#${config.colorScheme.palette.base0B}";
|
||||
yellow = "#${config.colorScheme.palette.base0A}";
|
||||
blue = "#${config.colorScheme.palette.base0D}";
|
||||
magenta = "#${config.colorScheme.palette.base0E}";
|
||||
cyan = "#${config.colorScheme.palette.base0C}";
|
||||
white = "#${config.colorScheme.palette.base07}";
|
||||
orange = "#${config.colorScheme.palette.base09}";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
|
Reference in New Issue
Block a user