removes work specific files uses unified modules
This commit is contained in:
parent
80c8cdef62
commit
8d24fc479e
12 changed files with 169 additions and 491 deletions
|
|
@ -1,47 +1,20 @@
|
|||
{ config, pkgs, ... }:
|
||||
{ pkgs, ... }:
|
||||
|
||||
{
|
||||
programs.fish = {
|
||||
enable = true;
|
||||
|
||||
functions = {
|
||||
ff = "bash ${./ff.bash}";
|
||||
fish_greeting = "fortune -a";
|
||||
localip = "ifconfig | grep \"inet \" | grep -v 127.0.0.1 | awk '{print $2}' | head -n 1";
|
||||
publicip = "curl -4 ifconfig.me";
|
||||
dbui = /* fish */ ''
|
||||
nvim +"DBUI"
|
||||
'';
|
||||
ff = ''
|
||||
bash ${./ff.bash}
|
||||
kill_tunnels = /* fish */ ''
|
||||
ps -o pid,command | grep "^[0-9]\{4,5\} ssh -NL" | awk '{print $1}' | xargs kill -9
|
||||
'';
|
||||
envsource = ''
|
||||
for line in (cat $argv | grep -v '^#')
|
||||
set item (string split -m 1 '=' $line)
|
||||
set -gx $item[1] $item[2]
|
||||
end
|
||||
'';
|
||||
fish_greeting = "fortune -a";
|
||||
resize_images = ''
|
||||
# Resize all JPG images in the current directory and its subdirectories
|
||||
# Usage: resize_images [percentage]
|
||||
# Example: resize_images 20 - resizes all images to 20% of original size
|
||||
# If no percentage is provided, defaults to 40%
|
||||
|
||||
set -l percentage $argv[1]
|
||||
if test -z "$percentage"
|
||||
set percentage 40
|
||||
end
|
||||
|
||||
for img in (find . -type f -name "*.JPG")
|
||||
set original_size (stat -f %z "$img")
|
||||
magick convert "$img" -resize "$percentage%" "$img"
|
||||
set new_size (stat -f %z "$img")
|
||||
echo "Processed $img"
|
||||
echo "Original size: $original_size bytes"
|
||||
echo "New size: $new_size bytes"
|
||||
echo "---"
|
||||
end
|
||||
'';
|
||||
localip = "ifconfig | grep \"inet \" | grep -v 127.0.0.1 | awk '{print $2}' | head -n 1";
|
||||
publicip = "curl -4 ifconfig.me";
|
||||
fzf = ''
|
||||
fzf = /* fish */ ''
|
||||
set -Ux FZF_DEFAULT_OPTS "
|
||||
--color=fg:#ffffff,bg:#0d0e1c,hl:#ef8386
|
||||
--color=fg+:#ffffff,bg+:#1d2235,hl+:#ef8386
|
||||
|
|
@ -51,32 +24,50 @@
|
|||
|
||||
command fzf
|
||||
'';
|
||||
zellij_session_delete = ''
|
||||
if test -z "$argv[1]"
|
||||
return
|
||||
dev_projects = /* fish */ ''
|
||||
if hn == "dnsc-work"
|
||||
begin
|
||||
fd . ~/dev/ride/apps/backend/edge-services -t d -d 1;
|
||||
fd . ~/dev/ride/apps/backend/backend-services -t d -d 1;
|
||||
fd . ~/dev/ride/apps/frontend/projects -t d -d 1;
|
||||
fd . ~/dev/ride/apps/native -t d -d 1;
|
||||
fd . ~/dev/ride/packages -t d -d 1;
|
||||
echo "$HOME/dev/ride/apps/frontend";
|
||||
echo "$HOME/dev/ride/apps/lib";
|
||||
echo "$HOME/dev/ride/apps/packages";
|
||||
echo "$HOME/dev/ride";
|
||||
end
|
||||
else
|
||||
fd . ~/dev -t d -d 1
|
||||
end
|
||||
|
||||
set -l session_name (basename $argv[1])
|
||||
echo "delete $session_name"
|
||||
'';
|
||||
zellij_session_kill = ''
|
||||
if test -z "$argv[1]"
|
||||
return
|
||||
cdd = /* fish */ ''
|
||||
set folder (dev_projects | fzf)
|
||||
cd $folder
|
||||
'';
|
||||
cdr = /* fish */ ''
|
||||
set folder (dev_projects | fzf)
|
||||
cd $folder
|
||||
|
||||
if test -n "$folder"
|
||||
set service (basename $folder)
|
||||
cd $folder
|
||||
|
||||
if test -f "package.json"
|
||||
set script_cmd (jq -r '.scripts | to_entries | .[] | "\(.key): \(.value)"' package.json | fzf)
|
||||
|
||||
if test -n "$script_cmd"
|
||||
set script_name (string split ": " $script_cmd)[1]
|
||||
if test -n "$script_name"
|
||||
echo "Running: npm run $script_name"
|
||||
npm run $script_name
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
set -l session_name (basename $argv[1])
|
||||
echo "delete $session_name"
|
||||
'';
|
||||
zellij_session_fzf = ''
|
||||
command fzf \
|
||||
--prompt="Select project: " \
|
||||
--header="Enter: Select | Ctrl+D: Delete Session | Ctrl+K: Kill Session" \
|
||||
--bind="ctrl-d:execute(zellij_session_delete {})+reload($0 --generate-list)" \
|
||||
--bind="ctrl-k:execute(zellij_session_kill {})+reload($0 --generate-list)"
|
||||
'';
|
||||
sessionizer = ''
|
||||
set -l options (fd . $HOME/dev/ -t d -d 1)
|
||||
set -l selected (options | zellij_session_fzf)
|
||||
sessionizer = /* fish */ ''
|
||||
set -l selected (dev_projects | fzf --prompt "Create/switch to session: ")
|
||||
if test -z "$selected"
|
||||
return 1
|
||||
end
|
||||
|
|
@ -89,7 +80,7 @@
|
|||
zellij attach "$session_name" --create
|
||||
end
|
||||
'';
|
||||
nn = ''
|
||||
nn = /* fish */ ''
|
||||
# Require a title argument
|
||||
if test (count $argv) -lt 1
|
||||
echo "Usage: nn \"My Note\""
|
||||
|
|
@ -130,7 +121,7 @@
|
|||
# Open file in neovim
|
||||
nvim $fullpath
|
||||
'';
|
||||
fish_mode_prompt = ''
|
||||
fish_mode_prompt = /* fish */ ''
|
||||
switch $fish_bind_mode
|
||||
case default
|
||||
set_color --bold brcyan
|
||||
|
|
@ -153,62 +144,88 @@
|
|||
end
|
||||
set_color normal
|
||||
'';
|
||||
setup_winterly_theme_colors = /* fish */ ''
|
||||
set --universal fish_color_autosuggestion brblack # autosuggestions
|
||||
set --universal fish_color_command brwhite # commands
|
||||
set --universal fish_color_comment brblack # code comments
|
||||
set --universal fish_color_cwd brblack # current working directory in the default prompt
|
||||
set --universal fish_color_end brblack # process separators like ';' and '&'
|
||||
set --universal fish_color_error brwhite # highlight potential errors
|
||||
set --universal fish_color_escape brblack # highlight character escapes like '\n' and '\x70'
|
||||
set --universal fish_color_match yellow # highlight matching parenthesis
|
||||
set --universal fish_color_normal brwhite # default color
|
||||
set --universal fish_color_operator brblack # parameter expansion operators like '*' and '~'
|
||||
set --universal fish_color_param bryellow # regular command parameters
|
||||
set --universal fish_color_quote brmagenta # quoted blocks of text
|
||||
set --universal fish_color_redirection brwhite # IO redirections
|
||||
set --universal fish_color_search --bold --background=black --foreground=bryellow
|
||||
set --universal fish_color_search_match --background black # highlight history search matches and the selected pager item (must be a background)
|
||||
set --universal fish_pager_color_selected_background --background black --foreground brmagenta
|
||||
set --universal fish_pager_color_progress --foreground=brwhite --background=black
|
||||
set --universal fish_color_selection --background magenta # when selecting text (in vi visual mode)
|
||||
set --universal fish_color_cancel brblack # the '^C' indicator on a canceled command
|
||||
set --universal fish_color_host brwhite # current host system in some of fish default prompts
|
||||
set --universal fish_color_host_remote yellow #ayu:syntax.constant current host system in some of fish default prompts, if fish is running remotely (via ssh or similar)
|
||||
set --universal fish_color_user brwhite # current username in some of fish default prompts
|
||||
'';
|
||||
setup_homebrew = /* fish */ ''
|
||||
fish_add_path /opt/homebrew/bin
|
||||
|
||||
if test -d (brew --prefix)"/share/fish/completions"
|
||||
set -p fish_complete_path (brew --prefix)/share/fish/completions
|
||||
end
|
||||
|
||||
if test -d (brew --prefix)"/share/fish/vendor_completions.d"
|
||||
set -p fish_complete_path (brew --prefix)/share/fish/vendor_completions.d
|
||||
end
|
||||
'';
|
||||
setup_path = /* fish */ ''
|
||||
fish_add_path /run/wrappers/bin
|
||||
fish_add_path /run/current-system/sw/bin
|
||||
|
||||
if uname == "Darwin"
|
||||
setup_homebrew
|
||||
end
|
||||
'';
|
||||
setup_env = /* fish */ ''
|
||||
set -l user_env (cat $HOME/.env)
|
||||
|
||||
if test -z "$user_env"
|
||||
echo "~/.env not found"
|
||||
return 1
|
||||
end
|
||||
|
||||
for line in (user_env | grep -v '^#')
|
||||
set item (string split -m 1 '=' $line)
|
||||
set -gx $item[1] $item[2]
|
||||
end
|
||||
'';
|
||||
setup_work = /* fish */ ''
|
||||
fish_add_path $ANDROID_HOME/emulator
|
||||
fish_add_path $ANDROID_HOME/platform-tools
|
||||
rbenv init - | source
|
||||
'';
|
||||
};
|
||||
|
||||
interactiveShellInit = ''
|
||||
interactiveShellInit = /* fish */ ''
|
||||
# Set some global values
|
||||
set -x GPG_TTY (tty)
|
||||
set hn (prompt_hostname)
|
||||
set fish_cursor_default block blink
|
||||
|
||||
fish_vi_key_bindings insert
|
||||
bind ctrl-s sessionizer
|
||||
|
||||
# Custom Colorscheme
|
||||
set --universal fish_color_autosuggestion brblack # autosuggestions
|
||||
set --universal fish_color_command brwhite # commands
|
||||
set --universal fish_color_comment brblack # code comments
|
||||
set --universal fish_color_cwd brblack # current working directory in the default prompt
|
||||
set --universal fish_color_end brblack # process separators like ';' and '&'
|
||||
set --universal fish_color_error brwhite # highlight potential errors
|
||||
set --universal fish_color_escape brblack # highlight character escapes like '\n' and '\x70'
|
||||
set --universal fish_color_match yellow # highlight matching parenthesis
|
||||
set --universal fish_color_normal brwhite # default color
|
||||
set --universal fish_color_operator brblack # parameter expansion operators like '*' and '~'
|
||||
set --universal fish_color_param bryellow # regular command parameters
|
||||
set --universal fish_color_quote brmagenta # quoted blocks of text
|
||||
set --universal fish_color_redirection brwhite # IO redirections
|
||||
set --universal fish_color_search --bold --background=black --foreground=bryellow
|
||||
set --universal fish_color_search_match --background black # highlight history search matches and the selected pager item (must be a background)
|
||||
set --universal fish_pager_color_selected_background --background black --foreground brmagenta
|
||||
set --universal fish_pager_color_progress --foreground=brwhite --background=black
|
||||
set --universal fish_color_selection --background magenta # when selecting text (in vi visual mode)
|
||||
set --universal fish_color_cancel brblack # the '^C' indicator on a canceled command
|
||||
set --universal fish_color_host brwhite # current host system in some of fish default prompts
|
||||
set --universal fish_color_host_remote yellow #ayu:syntax.constant current host system in some of fish default prompts, if fish is running remotely (via ssh or similar)
|
||||
set --universal fish_color_user brwhite # current username in some of fish default prompts
|
||||
setup_winterly_theme_colors
|
||||
setup_env
|
||||
setup_path
|
||||
|
||||
set -x GPG_TTY (tty)
|
||||
fish_add_path /run/wrappers/bin
|
||||
fish_add_path /run/current-system/sw/bin
|
||||
|
||||
switch (uname)
|
||||
case Darwin
|
||||
fish_add_path /opt/homebrew/bin
|
||||
if test -d (brew --prefix)"/share/fish/completions"
|
||||
set -p fish_complete_path (brew --prefix)/share/fish/completions
|
||||
end
|
||||
if test -d (brew --prefix)"/share/fish/vendor_completions.d"
|
||||
set -p fish_complete_path (brew --prefix)/share/fish/vendor_completions.d
|
||||
end
|
||||
if hn == "dnsc-work"
|
||||
setup_work
|
||||
end
|
||||
|
||||
envsource ~/.env
|
||||
|
||||
zoxide init fish | source
|
||||
direnv hook fish | source
|
||||
# Third party integration not covered by
|
||||
# home manager's enableFishIntegration
|
||||
fnm env --use-on-cd --shell fish | source
|
||||
|
||||
# Temporary fix because of https://github.com/atuinsh/atuin/issues/2803
|
||||
# atuin init fish | sed 's/-k up/up/' | source
|
||||
'';
|
||||
|
||||
shellAbbrs = {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue