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,4 +1,4 @@
|
||||||
{ config, pkgs, ... }:
|
{ ... }:
|
||||||
|
|
||||||
{
|
{
|
||||||
home.username = "dennis";
|
home.username = "dennis";
|
||||||
|
|
@ -7,7 +7,7 @@
|
||||||
home.sessionVariables = {
|
home.sessionVariables = {
|
||||||
EDITOR = "nvim";
|
EDITOR = "nvim";
|
||||||
GOPATH = "$HOME/go";
|
GOPATH = "$HOME/go";
|
||||||
JAVA_HOME = "/Library/Java/JavaVirtualMachines/zulu-17.jdk/Contents/Home";
|
JAVA_HOME = "/Library/Java/JavaVirtualMachines/zulu-17.jdk/Contents/Home";
|
||||||
ANDROID_HOME = "$HOME/Library/Android/sdk";
|
ANDROID_HOME = "$HOME/Library/Android/sdk";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
@ -15,11 +15,10 @@
|
||||||
|
|
||||||
imports = [
|
imports = [
|
||||||
../modules/git
|
../modules/git
|
||||||
../modules/fish/work.nix
|
../modules/zoxide
|
||||||
../modules/atuin
|
../modules/fish
|
||||||
../modules/wezterm
|
../modules/wezterm
|
||||||
../modules/nvim
|
../modules/nvim
|
||||||
../modules/lazygit
|
|
||||||
];
|
];
|
||||||
|
|
||||||
programs.home-manager.enable = true;
|
programs.home-manager.enable = true;
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
{ config, pkgs, ... }:
|
{ ... }:
|
||||||
|
|
||||||
{
|
{
|
||||||
home.username = "dennis";
|
home.username = "dennis";
|
||||||
|
|
@ -16,14 +16,10 @@
|
||||||
../modules/ssh
|
../modules/ssh
|
||||||
../modules/git
|
../modules/git
|
||||||
../modules/zoxide
|
../modules/zoxide
|
||||||
../modules/atuin
|
|
||||||
../modules/fish
|
../modules/fish
|
||||||
../modules/wezterm
|
|
||||||
../modules/nvim
|
../modules/nvim
|
||||||
../modules/lazygit
|
|
||||||
../modules/raycast
|
|
||||||
../modules/zellij
|
|
||||||
../modules/ghostty
|
../modules/ghostty
|
||||||
|
../modules/zellij
|
||||||
];
|
];
|
||||||
|
|
||||||
programs.home-manager.enable = true;
|
programs.home-manager.enable = true;
|
||||||
|
|
|
||||||
|
|
@ -1,15 +1,18 @@
|
||||||
{ config, pkgs, ... }:
|
{ pkgs, ... }:
|
||||||
|
|
||||||
{
|
{
|
||||||
nix = {
|
nix = {
|
||||||
package = pkgs.nix;
|
package = pkgs.nix;
|
||||||
settings.experimental-features = [ "nix-command" "flakes" ];
|
settings.experimental-features = [
|
||||||
|
"nix-command"
|
||||||
|
"flakes"
|
||||||
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
nixpkgs = {
|
nixpkgs = {
|
||||||
config = {
|
config = {
|
||||||
allowUnfree = true;
|
allowUnfree = true;
|
||||||
allowUnfreePredicate = (_: true);
|
allowUnfreePredicate = (_: true);
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
@ -33,7 +36,6 @@
|
||||||
lazygit
|
lazygit
|
||||||
fortune
|
fortune
|
||||||
zoxide
|
zoxide
|
||||||
atuin
|
|
||||||
fnm
|
fnm
|
||||||
gcc
|
gcc
|
||||||
];
|
];
|
||||||
|
|
@ -43,7 +45,6 @@
|
||||||
imports = [
|
imports = [
|
||||||
../modules/git
|
../modules/git
|
||||||
../modules/fish
|
../modules/fish
|
||||||
../modules/atuin
|
|
||||||
../modules/nvim/deck.nix
|
../modules/nvim/deck.nix
|
||||||
../modules/lazygit
|
../modules/lazygit
|
||||||
];
|
];
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
{ _config, pkgs, inputs, ... }:
|
{ _config, pkgs, ... }:
|
||||||
|
|
||||||
{
|
{
|
||||||
home.username = "dennis";
|
home.username = "dennis";
|
||||||
|
|
@ -64,8 +64,11 @@
|
||||||
antialiasing = true;
|
antialiasing = true;
|
||||||
defaultFonts = {
|
defaultFonts = {
|
||||||
monospace = [ "VictorMono Nerd Font" ];
|
monospace = [ "VictorMono Nerd Font" ];
|
||||||
sansSerif = [ "Adwaita Sans" "Noto Color Emoji" ];
|
sansSerif = [
|
||||||
serif = ["Bodoni Moda"];
|
"Adwaita Sans"
|
||||||
|
"Noto Color Emoji"
|
||||||
|
];
|
||||||
|
serif = [ "Bodoni Moda" ];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
@ -85,7 +88,7 @@
|
||||||
package = pkgs.bibata-cursors;
|
package = pkgs.bibata-cursors;
|
||||||
name = "Bibata-Modern-Ice";
|
name = "Bibata-Modern-Ice";
|
||||||
size = 24;
|
size = 24;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
# Services
|
# Services
|
||||||
|
|
|
||||||
|
|
@ -1,15 +1,13 @@
|
||||||
{
|
{
|
||||||
inputs,
|
inputs,
|
||||||
outputs,
|
outputs,
|
||||||
lib,
|
|
||||||
config,
|
|
||||||
pkgs,
|
pkgs,
|
||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
{
|
{
|
||||||
imports = [
|
imports = [
|
||||||
inputs.home-manager.darwinModules.home-manager
|
inputs.home-manager.darwinModules.home-manager
|
||||||
../../modules/aerospace/work.nix
|
../../modules/aerospace
|
||||||
];
|
];
|
||||||
|
|
||||||
# Setting the user
|
# Setting the user
|
||||||
|
|
|
||||||
|
|
@ -69,22 +69,42 @@
|
||||||
"if".app-id = "app.zen-browser.zen";
|
"if".app-id = "app.zen-browser.zen";
|
||||||
run = "move-node-to-workspace 1";
|
run = "move-node-to-workspace 1";
|
||||||
}
|
}
|
||||||
|
{
|
||||||
|
"if".app-id = "company.thebrowser.Browser";
|
||||||
|
run = "move-node-to-workspace 1";
|
||||||
|
}
|
||||||
{
|
{
|
||||||
"if".app-id = "com.github.wez.wezterm";
|
"if".app-id = "com.github.wez.wezterm";
|
||||||
run = "move-node-to-workspace 2";
|
run = "move-node-to-workspace 2";
|
||||||
}
|
}
|
||||||
|
{
|
||||||
|
"if".app-id = "com.mitchellh.ghostty";
|
||||||
|
run = "move-node-to-workspace 2";
|
||||||
|
}
|
||||||
{
|
{
|
||||||
"if".app-id = "com.apple.Preview";
|
"if".app-id = "com.apple.Preview";
|
||||||
run = "move-node-to-workspace 3";
|
run = "move-node-to-workspace 3";
|
||||||
}
|
}
|
||||||
|
{
|
||||||
|
"if".app-id = "com.apple.dt.Xcode";
|
||||||
|
run = "move-node-to-workspace 3";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
"if".app-id = "com.postmanlabs.mac";
|
||||||
|
run = "move-node-to-workspace 3";
|
||||||
|
}
|
||||||
{
|
{
|
||||||
"if".app-id = "com.apple.iCal";
|
"if".app-id = "com.apple.iCal";
|
||||||
run = "move-node-to-workspace 4";
|
run = "move-node-to-workspace 4";
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
"if".app-id = "com.spotify.client";
|
"if".app-id = "com.microsoft.teams2";
|
||||||
run = "move-node-to-workspace 5";
|
run = "move-node-to-workspace 5";
|
||||||
}
|
}
|
||||||
|
{
|
||||||
|
"if".app-id = "com.spotify.client";
|
||||||
|
run = "move-node-to-workspace 6";
|
||||||
|
}
|
||||||
{
|
{
|
||||||
"if".app-id = "com.apple.reminders";
|
"if".app-id = "com.apple.reminders";
|
||||||
run = "move-node-to-workspace 6";
|
run = "move-node-to-workspace 6";
|
||||||
|
|
|
||||||
|
|
@ -1,91 +0,0 @@
|
||||||
{
|
|
||||||
services.aerospace = {
|
|
||||||
enable = true;
|
|
||||||
settings = {
|
|
||||||
accordion-padding = 25;
|
|
||||||
gaps = {
|
|
||||||
inner.horizontal = 6;
|
|
||||||
inner.vertical = 6;
|
|
||||||
outer.left = 6;
|
|
||||||
outer.bottom = 6;
|
|
||||||
outer.top = 6;
|
|
||||||
outer.right = 6;
|
|
||||||
};
|
|
||||||
workspace-to-monitor-force-assignment = {
|
|
||||||
"1" = "main";
|
|
||||||
"2" = "main";
|
|
||||||
"3" = "main";
|
|
||||||
"4" = "main";
|
|
||||||
"5" = "secondary";
|
|
||||||
"6" = "secondary";
|
|
||||||
};
|
|
||||||
mode.main.binding = {
|
|
||||||
alt-h = "focus left";
|
|
||||||
alt-j = "focus down";
|
|
||||||
alt-k = "focus up";
|
|
||||||
alt-l = "focus right";
|
|
||||||
alt-shift-h = "move left";
|
|
||||||
alt-shift-j = "move down";
|
|
||||||
alt-shift-k = "move up";
|
|
||||||
alt-shift-l = "move right";
|
|
||||||
alt-comma = "layout tiles horizontal vertical";
|
|
||||||
alt-period = "layout accordion horizontal vertical";
|
|
||||||
alt-f = "fullscreen";
|
|
||||||
alt-1 = "workspace 1";
|
|
||||||
alt-2 = "workspace 2";
|
|
||||||
alt-3 = "workspace 3";
|
|
||||||
alt-4 = "workspace 4";
|
|
||||||
alt-5 = "workspace 5";
|
|
||||||
alt-6 = "workspace 6";
|
|
||||||
alt-shift-1 = [
|
|
||||||
"move-node-to-workspace 1"
|
|
||||||
"workspace 1"
|
|
||||||
];
|
|
||||||
alt-shift-2 = [
|
|
||||||
"move-node-to-workspace 2"
|
|
||||||
"workspace 2"
|
|
||||||
];
|
|
||||||
alt-shift-3 = [
|
|
||||||
"move-node-to-workspace 3"
|
|
||||||
"workspace 3"
|
|
||||||
];
|
|
||||||
alt-shift-4 = [
|
|
||||||
"move-node-to-workspace 4"
|
|
||||||
"workspace 4"
|
|
||||||
];
|
|
||||||
alt-shift-5 = [
|
|
||||||
"move-node-to-workspace 5"
|
|
||||||
"workspace 5"
|
|
||||||
];
|
|
||||||
alt-shift-6 = [
|
|
||||||
"move-node-to-workspace 6"
|
|
||||||
"workspace 6"
|
|
||||||
];
|
|
||||||
alt-tab = "workspace-back-and-forth";
|
|
||||||
alt-shift-tab = "move-workspace-to-monitor --wrap-around next";
|
|
||||||
};
|
|
||||||
on-window-detected = [
|
|
||||||
{
|
|
||||||
"if".app-id = "company.thebrowser.Browser";
|
|
||||||
run = "move-node-to-workspace 1";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
"if".app-id = "com.github.wez.wezterm";
|
|
||||||
run = "move-node-to-workspace 2";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
"if".app-id = "com.postmanlabs.mac";
|
|
||||||
run = "move-node-to-workspace 3";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
"if".app-id = "com.apple.dt.Xcode";
|
|
||||||
run = "move-node-to-workspace 3";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
"if".app-id = "com.microsoft.teams2";
|
|
||||||
run = "move-node-to-workspace 5";
|
|
||||||
}
|
|
||||||
];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
@ -2,5 +2,6 @@
|
||||||
programs.direnv = {
|
programs.direnv = {
|
||||||
enable = true;
|
enable = true;
|
||||||
nix-direnv.enable = true;
|
nix-direnv.enable = true;
|
||||||
|
enableFishIntegration = true;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,47 +1,20 @@
|
||||||
{ config, pkgs, ... }:
|
{ pkgs, ... }:
|
||||||
|
|
||||||
{
|
{
|
||||||
programs.fish = {
|
programs.fish = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
|
||||||
functions = {
|
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 */ ''
|
dbui = /* fish */ ''
|
||||||
nvim +"DBUI"
|
nvim +"DBUI"
|
||||||
'';
|
'';
|
||||||
ff = ''
|
kill_tunnels = /* fish */ ''
|
||||||
bash ${./ff.bash}
|
ps -o pid,command | grep "^[0-9]\{4,5\} ssh -NL" | awk '{print $1}' | xargs kill -9
|
||||||
'';
|
'';
|
||||||
envsource = ''
|
fzf = /* fish */ ''
|
||||||
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 = ''
|
|
||||||
set -Ux FZF_DEFAULT_OPTS "
|
set -Ux FZF_DEFAULT_OPTS "
|
||||||
--color=fg:#ffffff,bg:#0d0e1c,hl:#ef8386
|
--color=fg:#ffffff,bg:#0d0e1c,hl:#ef8386
|
||||||
--color=fg+:#ffffff,bg+:#1d2235,hl+:#ef8386
|
--color=fg+:#ffffff,bg+:#1d2235,hl+:#ef8386
|
||||||
|
|
@ -51,32 +24,50 @@
|
||||||
|
|
||||||
command fzf
|
command fzf
|
||||||
'';
|
'';
|
||||||
zellij_session_delete = ''
|
dev_projects = /* fish */ ''
|
||||||
if test -z "$argv[1]"
|
if hn == "dnsc-work"
|
||||||
return
|
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
|
end
|
||||||
|
|
||||||
set -l session_name (basename $argv[1])
|
|
||||||
echo "delete $session_name"
|
|
||||||
'';
|
'';
|
||||||
zellij_session_kill = ''
|
cdd = /* fish */ ''
|
||||||
if test -z "$argv[1]"
|
set folder (dev_projects | fzf)
|
||||||
return
|
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
|
end
|
||||||
|
|
||||||
set -l session_name (basename $argv[1])
|
|
||||||
echo "delete $session_name"
|
|
||||||
'';
|
'';
|
||||||
zellij_session_fzf = ''
|
sessionizer = /* fish */ ''
|
||||||
command fzf \
|
set -l selected (dev_projects | fzf --prompt "Create/switch to session: ")
|
||||||
--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)
|
|
||||||
if test -z "$selected"
|
if test -z "$selected"
|
||||||
return 1
|
return 1
|
||||||
end
|
end
|
||||||
|
|
@ -89,7 +80,7 @@
|
||||||
zellij attach "$session_name" --create
|
zellij attach "$session_name" --create
|
||||||
end
|
end
|
||||||
'';
|
'';
|
||||||
nn = ''
|
nn = /* fish */ ''
|
||||||
# Require a title argument
|
# Require a title argument
|
||||||
if test (count $argv) -lt 1
|
if test (count $argv) -lt 1
|
||||||
echo "Usage: nn \"My Note\""
|
echo "Usage: nn \"My Note\""
|
||||||
|
|
@ -130,7 +121,7 @@
|
||||||
# Open file in neovim
|
# Open file in neovim
|
||||||
nvim $fullpath
|
nvim $fullpath
|
||||||
'';
|
'';
|
||||||
fish_mode_prompt = ''
|
fish_mode_prompt = /* fish */ ''
|
||||||
switch $fish_bind_mode
|
switch $fish_bind_mode
|
||||||
case default
|
case default
|
||||||
set_color --bold brcyan
|
set_color --bold brcyan
|
||||||
|
|
@ -153,62 +144,88 @@
|
||||||
end
|
end
|
||||||
set_color normal
|
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 hn (prompt_hostname)
|
||||||
set fish_cursor_default block blink
|
set fish_cursor_default block blink
|
||||||
|
|
||||||
fish_vi_key_bindings insert
|
fish_vi_key_bindings insert
|
||||||
bind ctrl-s sessionizer
|
|
||||||
|
|
||||||
# Custom Colorscheme
|
setup_winterly_theme_colors
|
||||||
set --universal fish_color_autosuggestion brblack # autosuggestions
|
setup_env
|
||||||
set --universal fish_color_command brwhite # commands
|
setup_path
|
||||||
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
|
|
||||||
|
|
||||||
set -x GPG_TTY (tty)
|
if hn == "dnsc-work"
|
||||||
fish_add_path /run/wrappers/bin
|
setup_work
|
||||||
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
|
|
||||||
end
|
end
|
||||||
|
|
||||||
envsource ~/.env
|
# Third party integration not covered by
|
||||||
|
# home manager's enableFishIntegration
|
||||||
zoxide init fish | source
|
|
||||||
direnv hook fish | source
|
|
||||||
fnm env --use-on-cd --shell fish | source
|
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 = {
|
shellAbbrs = {
|
||||||
|
|
|
||||||
|
|
@ -1,266 +0,0 @@
|
||||||
{ _config, _pkgs, ... }:
|
|
||||||
|
|
||||||
{
|
|
||||||
programs.fish = {
|
|
||||||
enable = true;
|
|
||||||
|
|
||||||
functions = {
|
|
||||||
dbui = ''
|
|
||||||
nvim +"DBUI"
|
|
||||||
'';
|
|
||||||
cdr = ''
|
|
||||||
set folder (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";
|
|
||||||
end | fzf);
|
|
||||||
set service (basename $folder)
|
|
||||||
|
|
||||||
cd $folder
|
|
||||||
'';
|
|
||||||
cdn = ''
|
|
||||||
set folder (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";
|
|
||||||
end | fzf);
|
|
||||||
set service (basename $folder)
|
|
||||||
|
|
||||||
cd $folder
|
|
||||||
nvim +"lua Snacks.picker.files({ hidden = true })"
|
|
||||||
'';
|
|
||||||
cdf = ''
|
|
||||||
set folder (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";
|
|
||||||
end | fzf);
|
|
||||||
set service (basename $folder)
|
|
||||||
|
|
||||||
cd $folder
|
|
||||||
bash ${./ff.bash}
|
|
||||||
'';
|
|
||||||
rr = ''
|
|
||||||
set folder (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;
|
|
||||||
echo "$HOME/dev/ride/apps/frontend";
|
|
||||||
echo "$HOME/dev/ride/apps/lib";
|
|
||||||
echo "$HOME/dev/ride";
|
|
||||||
end | fzf);
|
|
||||||
|
|
||||||
if test -n "$folder"
|
|
||||||
set service (basename $folder)
|
|
||||||
cd $folder
|
|
||||||
|
|
||||||
# Check if package.json exists
|
|
||||||
if test -f "package.json"
|
|
||||||
# Extract and format npm scripts for fzf
|
|
||||||
set script_cmd (jq -r '.scripts | to_entries | .[] | "\(.key): \(.value)"' package.json | fzf)
|
|
||||||
|
|
||||||
if test -n "$script_cmd"
|
|
||||||
# Extract just the script name before the colon
|
|
||||||
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
|
|
||||||
'';
|
|
||||||
ff = ''
|
|
||||||
bash ${./ff.bash}
|
|
||||||
'';
|
|
||||||
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 = ''
|
|
||||||
set -Ux FZF_DEFAULT_OPTS "
|
|
||||||
--color=fg:#ffffff,bg:#0d0e1c,hl:#ef8386
|
|
||||||
--color=fg+:#ffffff,bg+:#1d2235,hl+:#ef8386
|
|
||||||
--color=border:#61647a,header:#88ca9f,gutter:#0d0e1c
|
|
||||||
--color=spinner:#fec43f,info:#00bcff
|
|
||||||
--color=pointer:#feacd0,marker:#ff5f59,prompt:#9ac8e0"
|
|
||||||
|
|
||||||
command fzf
|
|
||||||
'';
|
|
||||||
dbui_stg = ''
|
|
||||||
kill_tunnels && ssh -NL 4321:192.168.0.168:3306 otc & nvim +DBUI
|
|
||||||
'';
|
|
||||||
dbui_prod = ''
|
|
||||||
kill_tunnels && ssh -NL 4322:192.168.0.38:3306 otc-prod & nvim +DBUI
|
|
||||||
'';
|
|
||||||
kill_tunnels = ''
|
|
||||||
ps -o pid,command | grep "^[0-9]\{4,5\} ssh -NL" | awk '{print $1}' | xargs kill -9
|
|
||||||
'';
|
|
||||||
pr_comments = ''
|
|
||||||
gh api repos/digital-h-gmbh/ride/pulls/$argv/comments | jq -r '.[] | "- [ ] Fix \nnvim +\(.line) \(.path)\n\"\(.body)\"\n\n"' >./pr-comments.md && nvim ./pr-comments.md
|
|
||||||
'';
|
|
||||||
nn = ''
|
|
||||||
# Require a title argument
|
|
||||||
if test (count $argv) -lt 1
|
|
||||||
echo "Usage: nn \"My Note\""
|
|
||||||
return 1
|
|
||||||
end
|
|
||||||
|
|
||||||
# Join all arguments into single title (preserves spaces inside quotes)
|
|
||||||
set -l title $argv[1]
|
|
||||||
|
|
||||||
# Timestamp up to minutes, format: YYYY-MM-DD_HH-MM
|
|
||||||
set -l ts (date "+%Y%m%d%H%M")
|
|
||||||
|
|
||||||
# Normalize title: lowercase, replace spaces with hyphens, remove/replace
|
|
||||||
# characters unsafe for filenames (keep a-z0-9- and replace others with -)
|
|
||||||
set -l slug (string lower -- $title)
|
|
||||||
# Replace any sequence of non-alphanumeric characters with single hyphen
|
|
||||||
set -l slug (echo $slug | sed -E 's/[^a-z0-9]+/-/g' | sed -E 's/^-|-$//g')
|
|
||||||
|
|
||||||
# Compose filename
|
|
||||||
set -l filename "$ts"_"$slug.md"
|
|
||||||
|
|
||||||
# Directory for notes (change if you prefer another path)
|
|
||||||
set -l notes_dir ~/notes
|
|
||||||
|
|
||||||
# Ensure directory exists
|
|
||||||
test -d $notes_dir; or mkdir -p $notes_dir
|
|
||||||
|
|
||||||
# Full path
|
|
||||||
set -l fullpath "$notes_dir/$filename"
|
|
||||||
|
|
||||||
# If file doesn't exist, create with timestamp and title at top
|
|
||||||
if not test -f $fullpath
|
|
||||||
# Human-friendly timestamp line (no seconds)
|
|
||||||
set -l display_ts (date "+%Y-%m-%d %H:%M")
|
|
||||||
printf "---\nCREATED_AT: %s\n---\n\n# %s\n\n" "$display_ts" "$title" > $fullpath
|
|
||||||
end
|
|
||||||
|
|
||||||
# Open file in neovim
|
|
||||||
nvim $fullpath
|
|
||||||
'';
|
|
||||||
fish_mode_prompt = ''
|
|
||||||
switch $fish_bind_mode
|
|
||||||
case default
|
|
||||||
set_color --bold blue
|
|
||||||
echo '[N] '
|
|
||||||
case insert
|
|
||||||
set_color --bold green
|
|
||||||
echo '[I] '
|
|
||||||
case replace_one
|
|
||||||
set_color --bold green
|
|
||||||
echo '[R] '
|
|
||||||
case replace
|
|
||||||
set_color --bold bryellow
|
|
||||||
echo '[R] '
|
|
||||||
case visual
|
|
||||||
set_color --bold brmagenta
|
|
||||||
echo '[V] '
|
|
||||||
case '*'
|
|
||||||
set_color --bold red
|
|
||||||
echo '[?] '
|
|
||||||
end
|
|
||||||
set_color normal
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
|
|
||||||
interactiveShellInit = ''
|
|
||||||
set hn (prompt_hostname)
|
|
||||||
set fish_cursor_default block blink
|
|
||||||
set fish_cursor_insert line blink
|
|
||||||
set fish_cursor_replace_one underscore blink
|
|
||||||
set fish_cursor_visual block
|
|
||||||
set fish_vi_force_cursor 1
|
|
||||||
fish_vi_key_bindings
|
|
||||||
|
|
||||||
# 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 brmagenta # regular command parameters
|
|
||||||
set --universal fish_color_quote bryellow # 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
|
|
||||||
|
|
||||||
fish_add_path /run/current-system/sw/bin
|
|
||||||
fish_add_path /opt/homebrew/bin
|
|
||||||
fish_add_path $ANDROID_HOME/emulator
|
|
||||||
fish_add_path $ANDROID_HOME/platform-tools
|
|
||||||
fish_add_path $HOME/.config/fish/plugins
|
|
||||||
|
|
||||||
envsource ~/.env
|
|
||||||
|
|
||||||
zoxide init fish | source
|
|
||||||
fnm env --use-on-cd --shell fish | source
|
|
||||||
rbenv init - | source
|
|
||||||
|
|
||||||
# Temporary fix because of https://github.com/atuinsh/atuin/issues/2803
|
|
||||||
atuin init fish | sed 's/-k up/up/' | source
|
|
||||||
'';
|
|
||||||
|
|
||||||
shellAbbrs = {
|
|
||||||
lg = "nvim +Neogit";
|
|
||||||
gg = "nvim +Neogit";
|
|
||||||
gco = "git checkout";
|
|
||||||
frc = "source ~/.config/fish/**/*.fish";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
@ -8,8 +8,8 @@
|
||||||
font-family = "Victor Mono";
|
font-family = "Victor Mono";
|
||||||
font-style = "SemiBold";
|
font-style = "SemiBold";
|
||||||
background-opacity = 0.945;
|
background-opacity = 0.945;
|
||||||
window-padding-x = 12;
|
window-padding-x = 0;
|
||||||
window-padding-y = 12;
|
window-padding-y = 0;
|
||||||
window-padding-balance = true;
|
window-padding-balance = true;
|
||||||
window-inherit-working-directory = true;
|
window-inherit-working-directory = true;
|
||||||
window-theme = "ghostty";
|
window-theme = "ghostty";
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
{
|
{
|
||||||
programs.zoxide = {
|
programs.zoxide = {
|
||||||
enable = true;
|
enable = true;
|
||||||
enableBashIntegration = true;
|
enableFishIntegration = true;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue