feat: sync .config dotfiles, transition Node to mise, integrate 1Password CLI/SSH Agent, and add optional AI CLI tools
This commit is contained in:
+60
-45
@@ -1,18 +1,18 @@
|
|||||||
#? Config file for btop v. 1.4.0
|
#? Config file for btop v.1.4.6
|
||||||
|
|
||||||
#* Name of a btop++/bpytop/bashtop formatted ".theme" file, "Default" and "TTY" for builtin themes.
|
#* Name of a btop++/bpytop/bashtop formatted ".theme" file, "Default" and "TTY" for builtin themes.
|
||||||
#* Themes should be placed in "../share/btop/themes" relative to binary or "$HOME/.config/btop/themes"
|
#* Themes should be placed in "../share/btop/themes" relative to binary or "$HOME/.config/btop/themes"
|
||||||
color_theme = "/Users/rj/.config/btop/themes/catppuccin_mocha.theme"
|
color_theme = "/Users/rj/.config/btop/themes/catppuccin_mocha.theme"
|
||||||
|
|
||||||
#* If the theme set background should be shown, set to False if you want terminal background transparency.
|
#* If the theme set background should be shown, set to False if you want terminal background transparency.
|
||||||
theme_background = False
|
theme_background = false
|
||||||
|
|
||||||
#* Sets if 24-bit truecolor should be used, will convert 24-bit colors to 256 color (6x6x6 color cube) if false.
|
#* Sets if 24-bit truecolor should be used, will convert 24-bit colors to 256 color (6x6x6 color cube) if false.
|
||||||
truecolor = True
|
truecolor = true
|
||||||
|
|
||||||
#* Set to true to force tty mode regardless if a real tty has been detected or not.
|
#* Set to true to force tty mode regardless if a real tty has been detected or not.
|
||||||
#* Will force 16-color mode and TTY theme, set all graph symbols to "tty" and swap out other non tty friendly symbols.
|
#* Will force 16-color mode and TTY theme, set all graph symbols to "tty" and swap out other non tty friendly symbols.
|
||||||
force_tty = False
|
force_tty = false
|
||||||
|
|
||||||
#* Define presets for the layout of the boxes. Preset 0 is always all boxes shown with default settings. Max 9 presets.
|
#* Define presets for the layout of the boxes. Preset 0 is always all boxes shown with default settings. Max 9 presets.
|
||||||
#* Format: "box_name:P:G,box_name:P:G" P=(0 or 1) for alternate positions, G=graph symbol to use for box.
|
#* Format: "box_name:P:G,box_name:P:G" P=(0 or 1) for alternate positions, G=graph symbol to use for box.
|
||||||
@@ -22,10 +22,13 @@ presets = "cpu:1:default,proc:0:default cpu:0:default,mem:0:default,net:0:defaul
|
|||||||
|
|
||||||
#* Set to True to enable "h,j,k,l,g,G" keys for directional control in lists.
|
#* Set to True to enable "h,j,k,l,g,G" keys for directional control in lists.
|
||||||
#* Conflicting keys for h:"help" and k:"kill" is accessible while holding shift.
|
#* Conflicting keys for h:"help" and k:"kill" is accessible while holding shift.
|
||||||
vim_keys = True
|
vim_keys = true
|
||||||
|
|
||||||
#* Rounded corners on boxes, is ignored if TTY mode is ON.
|
#* Rounded corners on boxes, is ignored if TTY mode is ON.
|
||||||
rounded_corners = True
|
rounded_corners = true
|
||||||
|
|
||||||
|
#* Use terminal synchronized output sequences to reduce flickering on supported terminals.
|
||||||
|
terminal_sync = true
|
||||||
|
|
||||||
#* Default symbols to use for graph creation, "braille", "block" or "tty".
|
#* Default symbols to use for graph creation, "braille", "block" or "tty".
|
||||||
#* "braille" offers the highest resolution but might not be included in all fonts.
|
#* "braille" offers the highest resolution but might not be included in all fonts.
|
||||||
@@ -57,37 +60,40 @@ update_ms = 2000
|
|||||||
proc_sorting = "memory"
|
proc_sorting = "memory"
|
||||||
|
|
||||||
#* Reverse sorting order, True or False.
|
#* Reverse sorting order, True or False.
|
||||||
proc_reversed = False
|
proc_reversed = false
|
||||||
|
|
||||||
#* Show processes as a tree.
|
#* Show processes as a tree.
|
||||||
proc_tree = False
|
proc_tree = false
|
||||||
|
|
||||||
#* Use the cpu graph colors in the process list.
|
#* Use the cpu graph colors in the process list.
|
||||||
proc_colors = True
|
proc_colors = true
|
||||||
|
|
||||||
#* Use a darkening gradient in the process list.
|
#* Use a darkening gradient in the process list.
|
||||||
proc_gradient = True
|
proc_gradient = true
|
||||||
|
|
||||||
#* If process cpu usage should be of the core it's running on or usage of the total available cpu power.
|
#* If process cpu usage should be of the core it's running on or usage of the total available cpu power.
|
||||||
proc_per_core = False
|
proc_per_core = false
|
||||||
|
|
||||||
#* Show process memory as bytes instead of percent.
|
#* Show process memory as bytes instead of percent.
|
||||||
proc_mem_bytes = True
|
proc_mem_bytes = true
|
||||||
|
|
||||||
#* Show cpu graph for each process.
|
#* Show cpu graph for each process.
|
||||||
proc_cpu_graphs = True
|
proc_cpu_graphs = true
|
||||||
|
|
||||||
#* Use /proc/[pid]/smaps for memory information in the process info box (very slow but more accurate)
|
#* Use /proc/[pid]/smaps for memory information in the process info box (very slow but more accurate)
|
||||||
proc_info_smaps = False
|
proc_info_smaps = false
|
||||||
|
|
||||||
#* Show proc box on left side of screen instead of right.
|
#* Show proc box on left side of screen instead of right.
|
||||||
proc_left = False
|
proc_left = false
|
||||||
|
|
||||||
#* (Linux) Filter processes tied to the Linux kernel(similar behavior to htop).
|
#* (Linux) Filter processes tied to the Linux kernel(similar behavior to htop).
|
||||||
proc_filter_kernel = False
|
proc_filter_kernel = false
|
||||||
|
|
||||||
#* In tree-view, always accumulate child process resources in the parent process.
|
#* In tree-view, always accumulate child process resources in the parent process.
|
||||||
proc_aggregate = False
|
proc_aggregate = false
|
||||||
|
|
||||||
|
#* Should cpu and memory usage display be preserved for dead processes when paused.
|
||||||
|
keep_dead_proc_usage = false
|
||||||
|
|
||||||
#* Sets the CPU stat shown in upper half of the CPU graph, "total" is always available.
|
#* Sets the CPU stat shown in upper half of the CPU graph, "total" is always available.
|
||||||
#* Select from a list of detected attributes from the options menu.
|
#* Select from a list of detected attributes from the options menu.
|
||||||
@@ -98,25 +104,28 @@ cpu_graph_upper = "total"
|
|||||||
cpu_graph_lower = "total"
|
cpu_graph_lower = "total"
|
||||||
|
|
||||||
#* Toggles if the lower CPU graph should be inverted.
|
#* Toggles if the lower CPU graph should be inverted.
|
||||||
cpu_invert_lower = True
|
cpu_invert_lower = true
|
||||||
|
|
||||||
#* Set to True to completely disable the lower CPU graph.
|
#* Set to True to completely disable the lower CPU graph.
|
||||||
cpu_single_graph = False
|
cpu_single_graph = false
|
||||||
|
|
||||||
#* Show cpu box at bottom of screen instead of top.
|
#* Show cpu box at bottom of screen instead of top.
|
||||||
cpu_bottom = False
|
cpu_bottom = false
|
||||||
|
|
||||||
#* Shows the system uptime in the CPU box.
|
#* Shows the system uptime in the CPU box.
|
||||||
show_uptime = True
|
show_uptime = true
|
||||||
|
|
||||||
|
#* Shows the CPU package current power consumption in watts. Requires running `make setcap` or `make setuid` or running with sudo.
|
||||||
|
show_cpu_watts = true
|
||||||
|
|
||||||
#* Show cpu temperature.
|
#* Show cpu temperature.
|
||||||
check_temp = True
|
check_temp = true
|
||||||
|
|
||||||
#* Which sensor to use for cpu temperature, use options menu to select from list of available sensors.
|
#* Which sensor to use for cpu temperature, use options menu to select from list of available sensors.
|
||||||
cpu_sensor = "Auto"
|
cpu_sensor = "Auto"
|
||||||
|
|
||||||
#* Show temperatures for cpu cores also if check_temp is True and sensors has been found.
|
#* Show temperatures for cpu cores also if check_temp is True and sensors has been found.
|
||||||
show_coretemp = True
|
show_coretemp = true
|
||||||
|
|
||||||
#* Set a custom mapping between core and coretemp, can be needed on certain cpus to get correct temperature for correct core.
|
#* Set a custom mapping between core and coretemp, can be needed on certain cpus to get correct temperature for correct core.
|
||||||
#* Use lm-sensors or similar to see which cores are reporting temperatures on your machine.
|
#* Use lm-sensors or similar to see which cores are reporting temperatures on your machine.
|
||||||
@@ -128,63 +137,63 @@ cpu_core_map = ""
|
|||||||
temp_scale = "celsius"
|
temp_scale = "celsius"
|
||||||
|
|
||||||
#* Use base 10 for bits/bytes sizes, KB = 1000 instead of KiB = 1024.
|
#* Use base 10 for bits/bytes sizes, KB = 1000 instead of KiB = 1024.
|
||||||
base_10_sizes = False
|
base_10_sizes = false
|
||||||
|
|
||||||
#* Show CPU frequency.
|
#* Show CPU frequency.
|
||||||
show_cpu_freq = True
|
show_cpu_freq = true
|
||||||
|
|
||||||
#* Draw a clock at top of screen, formatting according to strftime, empty string to disable.
|
#* Draw a clock at top of screen, formatting according to strftime, empty string to disable.
|
||||||
#* Special formatting: /host = hostname | /user = username | /uptime = system uptime
|
#* Special formatting: /host = hostname | /user = username | /uptime = system uptime
|
||||||
clock_format = "%X"
|
clock_format = "%X"
|
||||||
|
|
||||||
#* Update main ui in background when menus are showing, set this to false if the menus is flickering too much for comfort.
|
#* Update main ui in background when menus are showing, set this to false if the menus is flickering too much for comfort.
|
||||||
background_update = True
|
background_update = true
|
||||||
|
|
||||||
#* Custom cpu model name, empty string to disable.
|
#* Custom cpu model name, empty string to disable.
|
||||||
custom_cpu_name = ""
|
custom_cpu_name = ""
|
||||||
|
|
||||||
#* Optional filter for shown disks, should be full path of a mountpoint, separate multiple values with whitespace " ".
|
#* Optional filter for shown disks, should be full path of a mountpoint, separate multiple values with whitespace " ".
|
||||||
#* Begin line with "exclude=" to change to exclude filter, otherwise defaults to "most include" filter. Example: disks_filter="exclude=/boot /home/user".
|
#* Only disks matching the filter will be shown. Prepend exclude= to only show disks not matching the filter. Examples: disk_filter="/boot /home/user", disks_filter="exclude=/boot /home/user"
|
||||||
disks_filter = ""
|
disks_filter = ""
|
||||||
|
|
||||||
#* Show graphs instead of meters for memory values.
|
#* Show graphs instead of meters for memory values.
|
||||||
mem_graphs = True
|
mem_graphs = true
|
||||||
|
|
||||||
#* Show mem box below net box instead of above.
|
#* Show mem box below net box instead of above.
|
||||||
mem_below_net = False
|
mem_below_net = false
|
||||||
|
|
||||||
#* Count ZFS ARC in cached and available memory.
|
#* Count ZFS ARC in cached and available memory.
|
||||||
zfs_arc_cached = True
|
zfs_arc_cached = true
|
||||||
|
|
||||||
#* If swap memory should be shown in memory box.
|
#* If swap memory should be shown in memory box.
|
||||||
show_swap = True
|
show_swap = true
|
||||||
|
|
||||||
#* Show swap as a disk, ignores show_swap value above, inserts itself after first disk.
|
#* Show swap as a disk, ignores show_swap value above, inserts itself after first disk.
|
||||||
swap_disk = True
|
swap_disk = true
|
||||||
|
|
||||||
#* If mem box should be split to also show disks info.
|
#* If mem box should be split to also show disks info.
|
||||||
show_disks = True
|
show_disks = true
|
||||||
|
|
||||||
#* Filter out non physical disks. Set this to False to include network disks, RAM disks and similar.
|
#* Filter out non physical disks. Set this to False to include network disks, RAM disks and similar.
|
||||||
only_physical = True
|
only_physical = true
|
||||||
|
|
||||||
#* Read disks list from /etc/fstab. This also disables only_physical.
|
#* Read disks list from /etc/fstab. This also disables only_physical.
|
||||||
use_fstab = True
|
use_fstab = true
|
||||||
|
|
||||||
#* Setting this to True will hide all datasets, and only show ZFS pools. (IO stats will be calculated per-pool)
|
#* Setting this to True will hide all datasets, and only show ZFS pools. (IO stats will be calculated per-pool)
|
||||||
zfs_hide_datasets = False
|
zfs_hide_datasets = false
|
||||||
|
|
||||||
#* Set to true to show available disk space for privileged users.
|
#* Set to true to show available disk space for privileged users.
|
||||||
disk_free_priv = False
|
disk_free_priv = false
|
||||||
|
|
||||||
#* Toggles if io activity % (disk busy time) should be shown in regular disk usage view.
|
#* Toggles if io activity % (disk busy time) should be shown in regular disk usage view.
|
||||||
show_io_stat = True
|
show_io_stat = true
|
||||||
|
|
||||||
#* Toggles io mode for disks, showing big graphs for disk read/write speeds.
|
#* Toggles io mode for disks, showing big graphs for disk read/write speeds.
|
||||||
io_mode = False
|
io_mode = false
|
||||||
|
|
||||||
#* Set to True to show combined read/write io graphs in io mode.
|
#* Set to True to show combined read/write io graphs in io mode.
|
||||||
io_graph_combined = False
|
io_graph_combined = false
|
||||||
|
|
||||||
#* Set the top speed for the io graphs in MiB/s (100 by default), use format "mountpoint:speed" separate disks with whitespace " ".
|
#* Set the top speed for the io graphs in MiB/s (100 by default), use format "mountpoint:speed" separate disks with whitespace " ".
|
||||||
#* Example: "/mnt/media:100 /:20 /boot:1".
|
#* Example: "/mnt/media:100 /:20 /boot:1".
|
||||||
@@ -196,23 +205,29 @@ net_download = 100
|
|||||||
net_upload = 100
|
net_upload = 100
|
||||||
|
|
||||||
#* Use network graphs auto rescaling mode, ignores any values set above and rescales down to 10 Kibibytes at the lowest.
|
#* Use network graphs auto rescaling mode, ignores any values set above and rescales down to 10 Kibibytes at the lowest.
|
||||||
net_auto = True
|
net_auto = true
|
||||||
|
|
||||||
#* Sync the auto scaling for download and upload to whichever currently has the highest scale.
|
#* Sync the auto scaling for download and upload to whichever currently has the highest scale.
|
||||||
net_sync = True
|
net_sync = true
|
||||||
|
|
||||||
#* Starts with the Network Interface specified here.
|
#* Starts with the Network Interface specified here.
|
||||||
net_iface = ""
|
net_iface = ""
|
||||||
|
|
||||||
|
#* "True" shows bitrates in base 10 (Kbps, Mbps). "False" shows bitrates in binary sizes (Kibps, Mibps, etc.). "Auto" uses base_10_sizes.
|
||||||
|
base_10_bitrate = "Auto"
|
||||||
|
|
||||||
#* Show battery stats in top right if battery is present.
|
#* Show battery stats in top right if battery is present.
|
||||||
show_battery = True
|
show_battery = true
|
||||||
|
|
||||||
#* Which battery to use if multiple are present. "Auto" for auto detection.
|
#* Which battery to use if multiple are present. "Auto" for auto detection.
|
||||||
selected_battery = "Auto"
|
selected_battery = "Auto"
|
||||||
|
|
||||||
#* Show power stats of battery next to charge indicator.
|
#* Show power stats of battery next to charge indicator.
|
||||||
show_battery_watts = True
|
show_battery_watts = true
|
||||||
|
|
||||||
#* Set loglevel for "~/.config/btop/btop.log" levels are: "ERROR" "WARNING" "INFO" "DEBUG".
|
#* Set loglevel for "~/.local/state/btop.log" levels are: "ERROR" "WARNING" "INFO" "DEBUG".
|
||||||
#* The level set includes all lower levels, i.e. "DEBUG" will show all logging info.
|
#* The level set includes all lower levels, i.e. "DEBUG" will show all logging info.
|
||||||
log_level = "DISABLED"
|
log_level = "DISABLED"
|
||||||
|
|
||||||
|
#* Automatically save current settings to config file on exit.
|
||||||
|
save_config_on_exit = true
|
||||||
|
|||||||
+1
@@ -0,0 +1 @@
|
|||||||
|
/Applications/OrbStack.app/Contents/MacOS/../Resources/completions/fish/docker.fish
|
||||||
+1
@@ -0,0 +1 @@
|
|||||||
|
/Applications/OrbStack.app/Contents/MacOS/../Resources/completions/fish/kubectl.fish
|
||||||
@@ -1,21 +0,0 @@
|
|||||||
complete --command nvm --exclusive
|
|
||||||
complete --command nvm --exclusive --long version --description "Print version"
|
|
||||||
complete --command nvm --exclusive --long help --description "Print help"
|
|
||||||
complete --command nvm --long silent --description "Suppress standard output"
|
|
||||||
|
|
||||||
complete --command nvm --exclusive --condition __fish_use_subcommand --arguments install --description "Download and activate the specified Node version"
|
|
||||||
complete --command nvm --exclusive --condition __fish_use_subcommand --arguments use --description "Activate the specified Node version in the current shell"
|
|
||||||
complete --command nvm --exclusive --condition __fish_use_subcommand --arguments list --description "List installed Node versions"
|
|
||||||
complete --command nvm --exclusive --condition __fish_use_subcommand --arguments list-remote --description "List available Node versions to install"
|
|
||||||
complete --command nvm --exclusive --condition __fish_use_subcommand --arguments current --description "Print the currently-active Node version"
|
|
||||||
complete --command nvm --exclusive --condition "__fish_seen_subcommand_from install" --arguments "(
|
|
||||||
test -e $nvm_data && string split ' ' <$nvm_data/.index
|
|
||||||
)"
|
|
||||||
complete --command nvm --exclusive --condition "__fish_seen_subcommand_from use" --arguments "(_nvm_list | string split ' ')"
|
|
||||||
complete --command nvm --exclusive --condition __fish_use_subcommand --arguments uninstall --description "Uninstall the specified Node version"
|
|
||||||
complete --command nvm --exclusive --condition "__fish_seen_subcommand_from uninstall" --arguments "(
|
|
||||||
_nvm_list | string split ' ' | string replace system ''
|
|
||||||
)"
|
|
||||||
complete --command nvm --exclusive --condition "__fish_seen_subcommand_from use uninstall" --arguments "(
|
|
||||||
set --query nvm_default_version && echo default
|
|
||||||
)"
|
|
||||||
+1
@@ -0,0 +1 @@
|
|||||||
|
/Applications/OrbStack.app/Contents/MacOS/../Resources/completions/fish/orbctl.fish
|
||||||
@@ -8,6 +8,8 @@ alias update-system="brew update && brew upgrade && npm update -g"
|
|||||||
alias do-st="docker compose"
|
alias do-st="docker compose"
|
||||||
alias do-re="docker compose down && docker compose up -d"
|
alias do-re="docker compose down && docker compose up -d"
|
||||||
alias hetzi="ssh root@128.140.71.88"
|
alias hetzi="ssh root@128.140.71.88"
|
||||||
|
alias hdock="ssh dockerserver-1@192.168.0.156"
|
||||||
|
alias proxi="ssh root@192.168.0.31"
|
||||||
alias qaserv="TERM=xterm-256color ssh root@195.201.17.47"
|
alias qaserv="TERM=xterm-256color ssh root@195.201.17.47"
|
||||||
alias kc1="set -gx KUBECONFIG ~/.kube/config"
|
alias kc1="set -gx KUBECONFIG ~/.kube/config"
|
||||||
alias kc2="set -gx KUBECONFIG ~/.kube/mobilistics"
|
alias kc2="set -gx KUBECONFIG ~/.kube/mobilistics"
|
||||||
@@ -35,10 +37,12 @@ alias kdesc="kubectl describe"
|
|||||||
alias kpf="kubectl port-forward"
|
alias kpf="kubectl port-forward"
|
||||||
|
|
||||||
# Testing
|
# Testing
|
||||||
alias pw="npx playwright"
|
alias pw="pnpm exec playwright"
|
||||||
alias pwt="npx playwright test"
|
alias pwt="pnpm exec playwright test"
|
||||||
alias pwh="npx playwright test --headed"
|
alias pwui="pnpm exec playwright test --ui"
|
||||||
alias pwr="npx playwright show-report"
|
alias pwh="pnpm exec playwright test --headed"
|
||||||
|
alias pwr="pnpm exec playwright show-report"
|
||||||
|
alias dpwt="DEBUG=pw:api,pw:network pnpm exec playwright test"
|
||||||
|
|
||||||
# Python/Go
|
# Python/Go
|
||||||
alias py="python3"
|
alias py="python3"
|
||||||
|
|||||||
@@ -0,0 +1,172 @@
|
|||||||
|
function tiffy
|
||||||
|
# --- KONFIGURATION ---
|
||||||
|
set -l SOURCE_NAME "sources/github/Baerspektivo/projectTiffy"
|
||||||
|
set -l SESSION_STORE "$HOME/.config/fish/tiffy_session"
|
||||||
|
|
||||||
|
# Hilfsfunktion zum Auflisten der verfuegbaren Repos
|
||||||
|
if test "$argv[1]" = "--list-sources"
|
||||||
|
echo "Suche verfuegbare Jules-Quellen..."
|
||||||
|
curl -s "https://jules.googleapis.com/v1alpha/sources" -H "X-Goog-Api-Key: $JULES_API_KEY" | jq .
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
|
# Befehl zum Abholen der letzten Session (tiffy fetch oder tiffy gib)
|
||||||
|
if test "$argv[1]" = "fetch"; or test "$argv[1]" = "gib"
|
||||||
|
if test -f "$SESSION_STORE"
|
||||||
|
read -l S_ID TARGET_FILE < "$SESSION_STORE"
|
||||||
|
echo "Pruefe letzte Session $S_ID fuer Datei $TARGET_FILE..."
|
||||||
|
set -l ACT (curl -s "https://jules.googleapis.com/v1alpha/sessions/$S_ID/activities" -H "X-Goog-Api-Key: $JULES_API_KEY")
|
||||||
|
set -l RES (echo $ACT | jq -r '.activities[]? | (.progressUpdated?.description // .agentMessaged?.agentMessage // empty)' | grep "```" | tail -n 1)
|
||||||
|
|
||||||
|
if test -n "$RES"
|
||||||
|
set -l DETECTED_LANG (echo "$RES" | string match -r '```(\w+)' | head -n 2 | tail -n 1)
|
||||||
|
set -l EXT "ts"
|
||||||
|
switch "$DETECTED_LANG"
|
||||||
|
case "go"; set EXT "go"
|
||||||
|
case "typescript" "ts"; set EXT "ts"
|
||||||
|
case "javascript" "js"; set EXT "js"
|
||||||
|
case "python" "py"; set EXT "py"
|
||||||
|
case "html"; set EXT "html"
|
||||||
|
case "json"; set EXT "json"
|
||||||
|
end
|
||||||
|
set -l FINAL_TARGET (string replace -r '\.[^.]+$' ".$EXT" "$TARGET_FILE")
|
||||||
|
echo "$RES" | sed -n '/^```/,/^```/ p' | sed '1d;$d' > "$FINAL_TARGET"
|
||||||
|
if test ! -s "$FINAL_TARGET"; echo "$RES" > "$FINAL_TARGET"; end
|
||||||
|
echo "Code erfolgreich nachgeholt und gespeichert: $FINAL_TARGET"
|
||||||
|
else
|
||||||
|
echo "Noch kein Code in Session $S_ID gefunden."
|
||||||
|
end
|
||||||
|
return
|
||||||
|
else
|
||||||
|
echo "Keine gespeicherte Session gefunden."
|
||||||
|
return 1
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
# Befehl um eine Folgefrage mit optionalen neuen Dateien zu senden
|
||||||
|
if test "$argv[1]" = "ask"
|
||||||
|
if test -f "$SESSION_STORE"
|
||||||
|
read -l S_ID TARGET_FILE < "$SESSION_STORE"
|
||||||
|
|
||||||
|
set -l ASSET_FILES
|
||||||
|
set -l MSG_PARTS
|
||||||
|
# Argumente ab dem zweiten (nach "ask") auf Dateien pruefen
|
||||||
|
for arg in $argv[2..-1]
|
||||||
|
if test -f "$arg"
|
||||||
|
set -a ASSET_FILES "$arg"
|
||||||
|
else
|
||||||
|
set -a MSG_PARTS "$arg"
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
set -l USER_MSG (string join " " $MSG_PARTS)
|
||||||
|
set -l ADD_CONTEXT ""
|
||||||
|
for f in $ASSET_FILES
|
||||||
|
echo "Lese zusaetzliche Datei: $f"
|
||||||
|
set ADD_CONTEXT "$ADD_CONTEXT\n\n--- FILE: $f ---\n"(cat "$f")
|
||||||
|
end
|
||||||
|
|
||||||
|
set -l FOLLOW_UP (string join "\n" "$USER_MSG" "$ADD_CONTEXT")
|
||||||
|
|
||||||
|
if test -z (string trim "$FOLLOW_UP")
|
||||||
|
echo "Fehler: Keine Nachricht oder Datei angegeben."
|
||||||
|
return 1
|
||||||
|
end
|
||||||
|
|
||||||
|
echo "Sende Nachricht und Kontext an bestehende Session $S_ID..."
|
||||||
|
set -l ESCAPED_FOLLOW_UP (printf "%s" "$FOLLOW_UP" | python3 -c 'import json, sys; print(json.dumps(sys.stdin.read()), end="")')
|
||||||
|
|
||||||
|
curl -s "https://jules.googleapis.com/v1alpha/sessions/$S_ID:sendMessage" \
|
||||||
|
-X POST -H "Content-Type: application/json" -H "X-Goog-Api-Key: $JULES_API_KEY" \
|
||||||
|
-d "{ \"prompt\": $ESCAPED_FOLLOW_UP }" > /dev/null
|
||||||
|
|
||||||
|
# Polling
|
||||||
|
set -l RESULT ""
|
||||||
|
echo "Warte auf Antwort..."
|
||||||
|
for i in (seq 1 36)
|
||||||
|
sleep 5
|
||||||
|
set -l ACT_RES (curl -s "https://jules.googleapis.com/v1alpha/sessions/$S_ID/activities" -H "X-Goog-Api-Key: $JULES_API_KEY")
|
||||||
|
set RESULT (echo $ACT_RES | jq -r '.activities[]? | (.progressUpdated?.description // .agentMessaged?.agentMessage // empty)' | grep "```" | tail -n 1)
|
||||||
|
if test -n "$RESULT"; break; end
|
||||||
|
echo -n "."
|
||||||
|
end
|
||||||
|
|
||||||
|
if test -n "$RESULT"
|
||||||
|
echo -e "\nAntwort erhalten. Speichere..."
|
||||||
|
set -l FINAL_TARGET (string replace -r '\.[^.]+$' ".ts" "$TARGET_FILE")
|
||||||
|
echo "$RESULT" | sed -n '/^```/,/^```/ p' | sed '1d;$d' > "$FINAL_TARGET"
|
||||||
|
echo "Code aktualisiert: $FINAL_TARGET"
|
||||||
|
else
|
||||||
|
echo -e "\nKeine schnelle Antwort. Nutze 'tiffy fetch' spaeter."
|
||||||
|
end
|
||||||
|
return
|
||||||
|
else
|
||||||
|
echo "Keine aktive Session zum Fortfuehren gefunden."
|
||||||
|
return 1
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
# Resume-Modus fuer manuelle ID-Eingabe
|
||||||
|
if test (count $argv) -eq 1; and string match -r '^\d+$' "$argv[1]" > /dev/null
|
||||||
|
set -l S_ID "$argv[1]"
|
||||||
|
set -l ACT (curl -s "[https://jules.googleapis.com/v1alpha/sessions/$S_ID/activities](https://jules.googleapis.com/v1alpha/sessions/$S_ID/activities)" -H "X-Goog-Api-Key: $JULES_API_KEY")
|
||||||
|
set -l RES (echo $ACT | jq -r '.activities[]? | (.progressUpdated?.description // .agentMessaged?.agentMessage // empty)' | grep "```" | tail -n 1)
|
||||||
|
echo "$RES"
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
|
# Normaler Session-Start (mehrere Dateien moeglich)
|
||||||
|
set -l FILES
|
||||||
|
set -l MSG_PARTS
|
||||||
|
for arg in $argv
|
||||||
|
if test -f "$arg"; set -a FILES "$arg"; else; set -a MSG_PARTS "$arg"; end
|
||||||
|
end
|
||||||
|
|
||||||
|
if test (count $FILES) -eq 0; echo "Fehler: Datei nicht gefunden!"; return 1; end
|
||||||
|
|
||||||
|
set -l USER_MESSAGE (string join " " $MSG_PARTS)
|
||||||
|
set -l CONTEXT ""
|
||||||
|
for f in $FILES
|
||||||
|
echo "Lese Datei: $f"
|
||||||
|
set CONTEXT "$CONTEXT\n\n--- FILE: $f ---\n"(cat "$f")
|
||||||
|
end
|
||||||
|
|
||||||
|
set -l ESCAPED_PROMPT (printf "%s" "$USER_MESSAGE\n$CONTEXT" | python3 -c 'import json, sys; print(json.dumps(sys.stdin.read()), end="")')
|
||||||
|
|
||||||
|
echo "Session-Start fuer $SOURCE_NAME..."
|
||||||
|
set -l PAYLOAD "{ \"prompt\": $ESCAPED_PROMPT, \"sourceContext\": { \"source\": \"$SOURCE_NAME\", \"githubRepoContext\": { \"startingBranch\": \"main\" } } }"
|
||||||
|
|
||||||
|
set -l SESSION_RESPONSE (curl -s "https://jules.googleapis.com/v1alpha/sessions" \
|
||||||
|
-X POST -H "Content-Type: application/json" -H "X-Goog-Api-Key: $JULES_API_KEY" -d "$PAYLOAD")
|
||||||
|
|
||||||
|
set -l SESSION_ID (echo $SESSION_RESPONSE | jq -r '.id // empty')
|
||||||
|
if test -z "$SESSION_ID"; echo "API Fehler."; echo $SESSION_RESPONSE | jq .; return 1; end
|
||||||
|
|
||||||
|
# Speichert die erste Datei als Referenz fuer den Zielnamen
|
||||||
|
echo "$SESSION_ID $FILES[1]" > "$SESSION_STORE"
|
||||||
|
echo "Jules arbeitet... (Session: $SESSION_ID)"
|
||||||
|
|
||||||
|
set -l RESULT ""
|
||||||
|
for i in (seq 1 36)
|
||||||
|
sleep 5
|
||||||
|
set -l ACT_RES (curl -s "https://jules.googleapis.com/v1alpha/sessions/$SESSION_ID/activities" -H "X-Goog-Api-Key: $JULES_API_KEY")
|
||||||
|
set RESULT (echo $ACT_RES | jq -r '.activities[]? | (.progressUpdated?.description // .agentMessaged?.agentMessage // empty)' | grep "```" | tail -n 1)
|
||||||
|
if test -n "$RESULT"; break; end
|
||||||
|
echo -n "."
|
||||||
|
end
|
||||||
|
|
||||||
|
if test -z "$RESULT"; echo -e "\nNutze 'tiffy fetch' zum Abrufen."; return 0; end
|
||||||
|
|
||||||
|
set -l DETECTED_LANG (echo "$RESULT" | string match -r '```(\w+)' | head -n 2 | tail -n 1)
|
||||||
|
set -l EXT "ts"
|
||||||
|
switch "$DETECTED_LANG"
|
||||||
|
case "go"; set EXT "go"
|
||||||
|
case "typescript" "ts"; set EXT "ts"
|
||||||
|
case "javascript" "js"; set EXT "js"
|
||||||
|
case "python" "py"; set EXT "py"
|
||||||
|
end
|
||||||
|
|
||||||
|
set -l TARGET_FILE (string replace -r '\.[^.]+$' ".$EXT" "$FILES[1]")
|
||||||
|
echo "$RESULT" | sed -n '/^```/,/^```/ p' | sed '1d;$d' > "$TARGET_FILE"
|
||||||
|
echo -e "\nCode lokal gespeichert: $TARGET_FILE"
|
||||||
|
end
|
||||||
@@ -1,28 +0,0 @@
|
|||||||
set --query XDG_DATA_HOME || set --local XDG_DATA_HOME ~/.local/share
|
|
||||||
set --query nvm_mirror || set --global nvm_mirror https://nodejs.org/dist
|
|
||||||
set --query nvm_data || set --global nvm_data $XDG_DATA_HOME/nvm
|
|
||||||
|
|
||||||
function _nvm_install --on-event nvm_install
|
|
||||||
test ! -d $nvm_data && command mkdir -p $nvm_data
|
|
||||||
echo "Downloading the Node distribution index..." 2>/dev/null
|
|
||||||
_nvm_index_update
|
|
||||||
end
|
|
||||||
|
|
||||||
function _nvm_update --on-event nvm_update
|
|
||||||
set --query --universal nvm_data && set --erase --universal nvm_data
|
|
||||||
set --query --universal nvm_mirror && set --erase --universal nvm_mirror
|
|
||||||
set --query nvm_mirror || set --global nvm_mirror https://nodejs.org/dist
|
|
||||||
end
|
|
||||||
|
|
||||||
function _nvm_uninstall --on-event nvm_uninstall
|
|
||||||
command rm -rf $nvm_data
|
|
||||||
|
|
||||||
set --query nvm_current_version && _nvm_version_deactivate $nvm_current_version
|
|
||||||
|
|
||||||
set --names | string replace --filter --regex -- "^nvm" "set --erase nvm" | source
|
|
||||||
functions --erase (functions --all | string match --entire --regex -- "^_nvm_")
|
|
||||||
end
|
|
||||||
|
|
||||||
if status is-interactive && set --query nvm_default_version && ! set --query nvm_current_version
|
|
||||||
nvm use --silent $nvm_default_version
|
|
||||||
end
|
|
||||||
@@ -1,10 +1,10 @@
|
|||||||
|
# Go environment
|
||||||
|
set -gx GOPATH ~/go
|
||||||
|
set -gx GO111MODULE on
|
||||||
|
|
||||||
# Development paths
|
# Development paths
|
||||||
fish_add_path /opt/homebrew/bin
|
fish_add_path /opt/homebrew/bin
|
||||||
fish_add_path ~/.cargo/bin
|
fish_add_path ~/.cargo/bin
|
||||||
fish_add_path ~/.local/bin
|
fish_add_path ~/.local/bin
|
||||||
fish_add_path /usr/local/go/bin
|
fish_add_path /usr/local/go/bin
|
||||||
fish_add_path $GOPATH/bin
|
fish_add_path $GOPATH/bin
|
||||||
|
|
||||||
# Go environment
|
|
||||||
set -gx GOPATH ~/go
|
|
||||||
set -gx GO111MODULE on
|
|
||||||
|
|||||||
@@ -2,3 +2,71 @@
|
|||||||
# Startup commands only
|
# Startup commands only
|
||||||
neofetch
|
neofetch
|
||||||
|
|
||||||
|
if type -q mise
|
||||||
|
mise activate fish | source
|
||||||
|
end
|
||||||
|
|
||||||
|
# Added by OrbStack: command-line tools and integration
|
||||||
|
# This won't be added again if you remove it.
|
||||||
|
source ~/.orbstack/shell/init2.fish 2>/dev/null || :
|
||||||
|
|
||||||
|
set -g fish_key_bindings fish_default_key_bindings
|
||||||
|
|
||||||
|
# This file was created by fish when upgrading to version 4.3, to migrate
|
||||||
|
# theme variables from universal to global scope.
|
||||||
|
# Don't edit this file, as it will be written by the web-config tool (`fish_config`).
|
||||||
|
# To customize your theme, delete this file and see
|
||||||
|
# help interactive#syntax-highlighting
|
||||||
|
# or
|
||||||
|
# man fish-interactive | less +/^SYNTAX.HIGHLIGHTING
|
||||||
|
# for appropriate commands to add to ~/.config/fish/config.fish instead.
|
||||||
|
# See also the release notes for fish 4.3.0 (run `help relnotes`).
|
||||||
|
|
||||||
|
fish_add_path /opt/homebrew/bin
|
||||||
|
fish_add_path /Users/r.kallinich/go/bin
|
||||||
|
fish_add_path /Users/r.kallinich/.cargo/bin
|
||||||
|
fish_add_path /Applications/Ghostty.app/Contents/MacOS
|
||||||
|
|
||||||
|
|
||||||
|
set --global fish_color_autosuggestion brblack
|
||||||
|
set --global fish_color_cancel -r
|
||||||
|
set --global fish_color_command normal
|
||||||
|
set --global fish_color_comment red
|
||||||
|
set --global fish_color_cwd green
|
||||||
|
set --global fish_color_cwd_root red
|
||||||
|
set --global fish_color_end green
|
||||||
|
set --global fish_color_error brred
|
||||||
|
set --global fish_color_escape brcyan
|
||||||
|
set --global fish_color_history_current --bold
|
||||||
|
set --global fish_color_host normal
|
||||||
|
set --global fish_color_host_remote yellow
|
||||||
|
set --global fish_color_normal normal
|
||||||
|
set --global fish_color_operator brcyan
|
||||||
|
set --global fish_color_param cyan
|
||||||
|
set --global fish_color_quote yellow
|
||||||
|
set --global fish_color_redirection cyan --bold
|
||||||
|
set --global fish_color_search_match white --background=brblack
|
||||||
|
set --global fish_color_selection white --bold --background=brblack
|
||||||
|
set --global fish_color_status red
|
||||||
|
set --global fish_color_user brgreen
|
||||||
|
set --global fish_color_valid_path --underline
|
||||||
|
set --global fish_pager_color_completion normal
|
||||||
|
set --global fish_pager_color_description yellow -i
|
||||||
|
set --global fish_pager_color_prefix normal --bold --underline
|
||||||
|
set --global fish_pager_color_progress brwhite --background=cyan
|
||||||
|
set --global fish_pager_color_selected_background -r
|
||||||
|
|
||||||
|
# API-Keys
|
||||||
|
set -gx GEMINI_API_KEY "AIzaSyBu-u9JIHoPR_wIsjwjelo1lGUzzxKKofQ"
|
||||||
|
set -gx JULES_API_KEY "AQ.Ab8RN6LXe33UjfpBGpityANYBO-pHUwZEG7wKoM4V7yWTAezoQ"
|
||||||
|
set -gx GCP_PROJECT_ID "gen-lang-client-0990109275"
|
||||||
|
# 1Password SSH Agent
|
||||||
|
if test -e "$HOME/.1password/agent.sock"
|
||||||
|
set -gx SSH_AUTH_SOCK "$HOME/.1password/agent.sock"
|
||||||
|
else if test -e "$HOME/Library/Group Containers/2BU85C4SUE.com.1password/t/agent.sock"
|
||||||
|
set -gx SSH_AUTH_SOCK "$HOME/Library/Group Containers/2BU85C4SUE.com.1password/t/agent.sock"
|
||||||
|
end
|
||||||
|
|
||||||
|
|
||||||
|
# Added by Antigravity CLI installer
|
||||||
|
set -gx PATH "/Users/r.kallinich/.local/bin" $PATH
|
||||||
|
|||||||
@@ -1,4 +1,3 @@
|
|||||||
jorgebucaran/fisher
|
jorgebucaran/fisher
|
||||||
jorgebucaran/nvm.fish
|
|
||||||
patrickf1/fzf.fish
|
patrickf1/fzf.fish
|
||||||
franciscolourenco/done
|
franciscolourenco/done
|
||||||
|
|||||||
@@ -1,20 +0,0 @@
|
|||||||
function _nvm_index_update
|
|
||||||
test ! -d $nvm_data && command mkdir -p $nvm_data
|
|
||||||
|
|
||||||
set --local index $nvm_data/.index
|
|
||||||
|
|
||||||
if not command curl -q --location --silent $nvm_mirror/index.tab >$index.temp
|
|
||||||
command rm -f $index.temp
|
|
||||||
echo "nvm: Can't update index, host unavailable: \"$nvm_mirror\"" >&2
|
|
||||||
return 1
|
|
||||||
end
|
|
||||||
|
|
||||||
command awk -v OFS=\t '
|
|
||||||
/v0.9.12/ { exit } # Unsupported
|
|
||||||
NR > 1 {
|
|
||||||
print $1 (NR == 2 ? " latest" : $10 != "-" ? " lts/" tolower($10) : "")
|
|
||||||
}
|
|
||||||
' $index.temp >$index
|
|
||||||
|
|
||||||
command rm -f $index.temp
|
|
||||||
end
|
|
||||||
@@ -1,14 +0,0 @@
|
|||||||
function _nvm_list
|
|
||||||
set --local versions $nvm_data/*
|
|
||||||
|
|
||||||
set --query versions[1] &&
|
|
||||||
string match --entire --regex -- (
|
|
||||||
string replace --all -- $nvm_data/ "" $versions |
|
|
||||||
string match --regex -- "v\d.+" |
|
|
||||||
string escape --style=regex |
|
|
||||||
string join "|"
|
|
||||||
) <$nvm_data/.index
|
|
||||||
|
|
||||||
command --all node |
|
|
||||||
string match --quiet --invert --regex -- "^$nvm_data" && echo system
|
|
||||||
end
|
|
||||||
@@ -1,4 +0,0 @@
|
|||||||
function _nvm_version_activate --argument-names ver
|
|
||||||
set --global --export nvm_current_version $ver
|
|
||||||
set --prepend PATH $nvm_data/$ver/bin
|
|
||||||
end
|
|
||||||
@@ -1,5 +0,0 @@
|
|||||||
function _nvm_version_deactivate --argument-names ver
|
|
||||||
test "$nvm_current_version" = "$ver" && set --erase nvm_current_version
|
|
||||||
set --local index (contains --index -- $nvm_data/$ver/bin $PATH) &&
|
|
||||||
set --erase PATH[$index]
|
|
||||||
end
|
|
||||||
@@ -1,237 +0,0 @@
|
|||||||
function nvm --description "Node version manager"
|
|
||||||
for silent in --silent -s
|
|
||||||
if set --local index (contains --index -- $silent $argv)
|
|
||||||
set --erase argv[$index] && break
|
|
||||||
end
|
|
||||||
set --erase silent
|
|
||||||
end
|
|
||||||
|
|
||||||
set --local cmd $argv[1]
|
|
||||||
set --local ver $argv[2]
|
|
||||||
|
|
||||||
if set --query silent && ! set --query cmd[1]
|
|
||||||
echo "nvm: Version number not specified (see nvm -h for usage)" >&2
|
|
||||||
return 1
|
|
||||||
end
|
|
||||||
|
|
||||||
if ! set --query ver[1] && contains -- "$cmd" install use
|
|
||||||
for file in .nvmrc .node-version
|
|
||||||
set file (_nvm_find_up $PWD $file) && read ver <$file && break
|
|
||||||
end
|
|
||||||
|
|
||||||
if ! set --query ver[1]
|
|
||||||
echo "nvm: Invalid version or missing \".nvmrc\" file" >&2
|
|
||||||
return 1
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
set --local their_version $ver
|
|
||||||
|
|
||||||
switch "$cmd"
|
|
||||||
case -v --version
|
|
||||||
echo "nvm, version 2.2.18"
|
|
||||||
case "" -h --help
|
|
||||||
echo "Usage: nvm install <version> Download and activate the specified Node version"
|
|
||||||
echo " nvm install Install the version specified in the nearest .nvmrc file"
|
|
||||||
echo " nvm use <version> Activate the specified Node version in the current shell"
|
|
||||||
echo " nvm use Activate the version specified in the nearest .nvmrc file"
|
|
||||||
echo " nvm list List installed Node versions"
|
|
||||||
echo " nvm list-remote List available Node versions to install"
|
|
||||||
echo " nvm list-remote <regex> List Node versions matching a given regex pattern"
|
|
||||||
echo " nvm current Print the currently-active Node version"
|
|
||||||
echo " nvm uninstall <version> Uninstall the specified Node version"
|
|
||||||
echo "Options:"
|
|
||||||
echo " -s, --silent Suppress standard output"
|
|
||||||
echo " -v, --version Print the version of nvm"
|
|
||||||
echo " -h, --help Print this help message"
|
|
||||||
echo "Variables:"
|
|
||||||
echo " nvm_arch Override architecture, e.g. x64-musl"
|
|
||||||
echo " nvm_mirror Use a mirror for downloading Node binaries"
|
|
||||||
echo " nvm_default_version Set the default version for new shells"
|
|
||||||
echo " nvm_default_packages Install a list of packages every time a Node version is installed"
|
|
||||||
echo " nvm_data Set a custom directory for storing nvm data"
|
|
||||||
echo "Examples:"
|
|
||||||
echo " nvm install latest Install the latest version of Node"
|
|
||||||
echo " nvm use 14.15.1 Use Node version 14.15.1"
|
|
||||||
echo " nvm use system Activate the system's Node version"
|
|
||||||
|
|
||||||
case install
|
|
||||||
_nvm_index_update
|
|
||||||
|
|
||||||
string match --entire --regex -- (_nvm_version_match $ver) <$nvm_data/.index | read ver alias
|
|
||||||
|
|
||||||
if ! set --query ver[1]
|
|
||||||
echo "nvm: Invalid version number or alias: \"$their_version\"" >&2
|
|
||||||
return 1
|
|
||||||
end
|
|
||||||
|
|
||||||
if test ! -e $nvm_data/$ver
|
|
||||||
set --local os (command uname -s | string lower)
|
|
||||||
set --local ext tar.gz
|
|
||||||
set --local arch (command uname -m)
|
|
||||||
set --local tarcmd tar
|
|
||||||
|
|
||||||
switch $os
|
|
||||||
case aix
|
|
||||||
set arch ppc64
|
|
||||||
case sunos
|
|
||||||
case linux
|
|
||||||
case darwin
|
|
||||||
case {msys_nt,mingw\*_nt}\*
|
|
||||||
set os win
|
|
||||||
set ext zip
|
|
||||||
set tarcmd bsdtar
|
|
||||||
case \*
|
|
||||||
echo "nvm: Unsupported operating system: \"$os\"" >&2
|
|
||||||
return 1
|
|
||||||
end
|
|
||||||
|
|
||||||
switch $arch
|
|
||||||
case i\*86
|
|
||||||
set arch x86
|
|
||||||
case x86_64
|
|
||||||
set arch x64
|
|
||||||
case arm64
|
|
||||||
string match --regex --quiet "v(?<major>\d+)" $ver
|
|
||||||
if test "$os" = darwin -a $major -lt 16
|
|
||||||
set arch x64
|
|
||||||
end
|
|
||||||
case armv6 armv6l
|
|
||||||
set arch armv6l
|
|
||||||
case armv7 armv7l
|
|
||||||
set arch armv7l
|
|
||||||
case armv8 armv8l aarch64
|
|
||||||
set arch arm64
|
|
||||||
end
|
|
||||||
|
|
||||||
set --query nvm_arch && set arch $nvm_arch
|
|
||||||
|
|
||||||
set --local dir "node-$ver-$os-$arch"
|
|
||||||
set --local url $nvm_mirror/$ver/$dir.$ext
|
|
||||||
|
|
||||||
command mkdir -p $nvm_data/$ver
|
|
||||||
|
|
||||||
if ! set --query silent
|
|
||||||
echo -e "Installing Node \x1b[1m$ver\x1b[22m $alias"
|
|
||||||
echo -e "Fetching \x1b[4m$url\x1b[24m\x1b[7m"
|
|
||||||
end
|
|
||||||
|
|
||||||
if ! command curl -q $silent --progress-bar --location $url |
|
|
||||||
command $tarcmd --extract --gzip --directory $nvm_data/$ver 2>/dev/null
|
|
||||||
command rm -rf $nvm_data/$ver
|
|
||||||
echo -e "\033[F\33[2K\x1b[0mnvm: Invalid mirror or host unavailable: \"$url\"" >&2
|
|
||||||
return 1
|
|
||||||
end
|
|
||||||
|
|
||||||
set --query silent || echo -en "\033[F\33[2K\x1b[0m"
|
|
||||||
|
|
||||||
if test "$os" = win
|
|
||||||
command mv $nvm_data/$ver/$dir $nvm_data/$ver/bin
|
|
||||||
else
|
|
||||||
command mv $nvm_data/$ver/$dir/* $nvm_data/$ver
|
|
||||||
command rm -rf $nvm_data/$ver/$dir
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
if test $ver != "$nvm_current_version"
|
|
||||||
set --query nvm_current_version && _nvm_version_deactivate $nvm_current_version
|
|
||||||
_nvm_version_activate $ver
|
|
||||||
|
|
||||||
set --query nvm_default_packages[1] && npm install --global $silent $nvm_default_packages
|
|
||||||
end
|
|
||||||
|
|
||||||
set --query silent || printf "Now using Node %s (npm %s) %s\n" (_nvm_node_info)
|
|
||||||
case use
|
|
||||||
test $ver = default && set ver $nvm_default_version
|
|
||||||
_nvm_list | string match --entire --regex -- (_nvm_version_match $ver) | read ver __
|
|
||||||
|
|
||||||
if ! set --query ver[1]
|
|
||||||
echo "nvm: Can't use Node \"$their_version\", version must be installed first" >&2
|
|
||||||
return 1
|
|
||||||
end
|
|
||||||
|
|
||||||
if test $ver != "$nvm_current_version"
|
|
||||||
set --query nvm_current_version && _nvm_version_deactivate $nvm_current_version
|
|
||||||
test $ver != system && _nvm_version_activate $ver
|
|
||||||
end
|
|
||||||
|
|
||||||
set --query silent || printf "Now using Node %s (npm %s) %s\n" (_nvm_node_info)
|
|
||||||
case uninstall
|
|
||||||
if test -z "$ver"
|
|
||||||
echo "nvm: Not enough arguments for command: \"$cmd\"" >&2
|
|
||||||
return 1
|
|
||||||
end
|
|
||||||
|
|
||||||
test $ver = default && test ! -z "$nvm_default_version" && set ver $nvm_default_version
|
|
||||||
|
|
||||||
_nvm_list | string match --entire --regex -- (_nvm_version_match $ver) | read ver __
|
|
||||||
|
|
||||||
if ! set -q ver[1]
|
|
||||||
echo "nvm: Node version not installed or invalid: \"$their_version\"" >&2
|
|
||||||
return 1
|
|
||||||
end
|
|
||||||
|
|
||||||
set --query silent || printf "Uninstalling Node %s %s\n" $ver (string replace ~ \~ "$nvm_data/$ver/bin/node")
|
|
||||||
|
|
||||||
_nvm_version_deactivate $ver
|
|
||||||
|
|
||||||
command rm -rf $nvm_data/$ver
|
|
||||||
case current
|
|
||||||
_nvm_current
|
|
||||||
case ls list
|
|
||||||
_nvm_list | _nvm_list_format (_nvm_current) $argv[2]
|
|
||||||
case lsr {ls,list}-remote
|
|
||||||
_nvm_index_update || return
|
|
||||||
_nvm_list | command awk '
|
|
||||||
FILENAME == "-" && (is_local[$1] = FNR == NR) { next } {
|
|
||||||
print $0 (is_local[$1] ? " ✓" : "")
|
|
||||||
}
|
|
||||||
' - $nvm_data/.index | _nvm_list_format (_nvm_current) $argv[2]
|
|
||||||
case \*
|
|
||||||
echo "nvm: Unknown command or option: \"$cmd\" (see nvm -h for usage)" >&2
|
|
||||||
return 1
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
function _nvm_find_up --argument-names path file
|
|
||||||
test -e "$path/$file" && echo $path/$file || begin
|
|
||||||
test ! -z "$path" || return
|
|
||||||
_nvm_find_up (string replace --regex -- '/[^/]*$' "" $path) $file
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
function _nvm_version_match --argument-names ver
|
|
||||||
string replace --regex -- '^v?(\d+|\d+\.\d+)$' 'v$1.' $ver |
|
|
||||||
string replace --filter --regex -- '^v?(\d+)' 'v$1' |
|
|
||||||
string escape --style=regex || string lower '\b'$ver'(?:/\w+)?$'
|
|
||||||
end
|
|
||||||
|
|
||||||
function _nvm_list_format --argument-names current regex
|
|
||||||
command awk -v current="$current" -v regex="$regex" '
|
|
||||||
$0 ~ regex {
|
|
||||||
aliases[versions[i++] = $1] = $2 " " $3
|
|
||||||
pad = (n = length($1)) > pad ? n : pad
|
|
||||||
}
|
|
||||||
END {
|
|
||||||
if (!i) exit 1
|
|
||||||
while (i--)
|
|
||||||
printf((current == versions[i] ? " ▶ " : " ") "%"pad"s %s\n",
|
|
||||||
versions[i], aliases[versions[i]])
|
|
||||||
}
|
|
||||||
'
|
|
||||||
end
|
|
||||||
|
|
||||||
function _nvm_current
|
|
||||||
command --search --quiet node || return
|
|
||||||
set --query nvm_current_version && echo $nvm_current_version || echo system
|
|
||||||
end
|
|
||||||
|
|
||||||
function _nvm_node_info
|
|
||||||
set --local npm_path (string replace bin/npm-cli.js "" (realpath (command --search npm)))
|
|
||||||
test -f $npm_path/package.json || set --local npm_version_default (command npm --version)
|
|
||||||
command node --eval "
|
|
||||||
console.log(process.version)
|
|
||||||
console.log('$npm_version_default' ? '$npm_version_default': require('$npm_path/package.json').version)
|
|
||||||
console.log(process.execPath)
|
|
||||||
" | string replace -- ~ \~
|
|
||||||
end
|
|
||||||
@@ -21,4 +21,4 @@ palette:
|
|||||||
- "#7aa2f7" # bright blue
|
- "#7aa2f7" # bright blue
|
||||||
- "#bb9af7" # bright magenta
|
- "#bb9af7" # bright magenta
|
||||||
- "#7dcfff" # bright cyan
|
- "#7dcfff" # bright cyan
|
||||||
- "#c0caf5" # bright white
|
- "#c0caf5" # bright white
|
||||||
@@ -0,0 +1,2 @@
|
|||||||
|
[tools]
|
||||||
|
node = "20.20.1"
|
||||||
@@ -1,885 +0,0 @@
|
|||||||
# See this wiki page for more info:
|
|
||||||
# https://github.com/dylanaraps/neofetch/wiki/Customizing-Info
|
|
||||||
print_info() {
|
|
||||||
info title
|
|
||||||
info underline
|
|
||||||
|
|
||||||
# info "Host" model
|
|
||||||
# info "Packages" packages
|
|
||||||
# info "Resolution" resolution
|
|
||||||
# info "DE" de
|
|
||||||
# info "WM" wm
|
|
||||||
# info "WM Theme" wm_theme
|
|
||||||
# info "Theme" theme
|
|
||||||
# info "Icons" icons
|
|
||||||
# info "Terminal" term
|
|
||||||
# info "Terminal Font" term_font
|
|
||||||
|
|
||||||
info "OS" distro
|
|
||||||
info "Kernel" kernel
|
|
||||||
info "Uptime" uptime
|
|
||||||
info "Shell" shell
|
|
||||||
info "CPU" cpu
|
|
||||||
info "GPU" gpu
|
|
||||||
info "Memory" memory
|
|
||||||
info "Disk" disk
|
|
||||||
|
|
||||||
command -v docker >/dev/null && prin "Docker" "$(docker --version | cut -d' ' -f3 | tr -d ',')"
|
|
||||||
command -v kubectl >/dev/null && prin "Kubectl" "$(kubectl version --client --output=yaml 2>/dev/null | grep gitVersion | cut -d' ' -f4)"
|
|
||||||
command -v go >/dev/null && prin "Go" "$(go version | cut -d' ' -f3)"
|
|
||||||
command -v python3 >/dev/null && prin "Python" "$(python3 --version | cut -d' ' -f2)"
|
|
||||||
command -v node >/dev/null && prin "Node" "$(node --version)"
|
|
||||||
# info "GPU Driver" gpu_driver # Linux/macOS only
|
|
||||||
# info "CPU Usage" cpu_usage
|
|
||||||
# info "Disk" disk
|
|
||||||
# info "Battery" battery
|
|
||||||
# info "Font" font
|
|
||||||
# info "Song" song
|
|
||||||
# [[ "$player" ]] && prin "Music Player" "$player"
|
|
||||||
# info "Local IP" local_ip
|
|
||||||
# info "Public IP" public_ip
|
|
||||||
# info "Users" users
|
|
||||||
# info "Locale" locale # This only works on glibc systems.
|
|
||||||
|
|
||||||
info cols
|
|
||||||
}
|
|
||||||
|
|
||||||
# Performance optimizations
|
|
||||||
kernel_shorthand="on"
|
|
||||||
distro_shorthand="off"
|
|
||||||
os_arch="on"
|
|
||||||
uptime_shorthand="on"
|
|
||||||
memory_percent="on"
|
|
||||||
memory_unit="gib"
|
|
||||||
shell_path="off"
|
|
||||||
shell_version="on"
|
|
||||||
cpu_speed="on"
|
|
||||||
cpu_cores="logical"
|
|
||||||
cpu_temp="off" # Often not needed for DevOps
|
|
||||||
speed_shorthand="on"
|
|
||||||
|
|
||||||
# Title
|
|
||||||
|
|
||||||
|
|
||||||
# Hide/Show Fully qualified domain name.
|
|
||||||
#
|
|
||||||
# Default: 'off'
|
|
||||||
# Values: 'on', 'off'
|
|
||||||
# Flag: --title_fqdn
|
|
||||||
title_fqdn="off"
|
|
||||||
|
|
||||||
|
|
||||||
# Kernel
|
|
||||||
|
|
||||||
|
|
||||||
# Shorten the output of the kernel function.
|
|
||||||
#
|
|
||||||
# Default: 'on'
|
|
||||||
# Values: 'on', 'off'
|
|
||||||
# Flag: --kernel_shorthand
|
|
||||||
# Supports: Everything except *BSDs (except PacBSD and PC-BSD)
|
|
||||||
#
|
|
||||||
# Example:
|
|
||||||
# on: '4.8.9-1-ARCH'
|
|
||||||
# off: 'Linux 4.8.9-1-ARCH'
|
|
||||||
kernel_shorthand="on"
|
|
||||||
|
|
||||||
|
|
||||||
# Distro
|
|
||||||
|
|
||||||
|
|
||||||
# Shorten the output of the distro function
|
|
||||||
#
|
|
||||||
# Default: 'off'
|
|
||||||
# Values: 'on', 'tiny', 'off'
|
|
||||||
# Flag: --distro_shorthand
|
|
||||||
# Supports: Everything except Windows and Haiku
|
|
||||||
distro_shorthand="off"
|
|
||||||
|
|
||||||
# Show/Hide OS Architecture.
|
|
||||||
# Show 'x86_64', 'x86' and etc in 'Distro:' output.
|
|
||||||
#
|
|
||||||
# Default: 'on'
|
|
||||||
# Values: 'on', 'off'
|
|
||||||
# Flag: --os_arch
|
|
||||||
#
|
|
||||||
# Example:
|
|
||||||
# on: 'Arch Linux x86_64'
|
|
||||||
# off: 'Arch Linux'
|
|
||||||
os_arch="on"
|
|
||||||
|
|
||||||
|
|
||||||
# Uptime
|
|
||||||
|
|
||||||
|
|
||||||
# Shorten the output of the uptime function
|
|
||||||
#
|
|
||||||
# Default: 'on'
|
|
||||||
# Values: 'on', 'tiny', 'off'
|
|
||||||
# Flag: --uptime_shorthand
|
|
||||||
#
|
|
||||||
# Example:
|
|
||||||
# on: '2 days, 10 hours, 3 mins'
|
|
||||||
# tiny: '2d 10h 3m'
|
|
||||||
# off: '2 days, 10 hours, 3 minutes'
|
|
||||||
uptime_shorthand="on"
|
|
||||||
|
|
||||||
|
|
||||||
# Memory
|
|
||||||
|
|
||||||
|
|
||||||
# Show memory pecentage in output.
|
|
||||||
#
|
|
||||||
# Default: 'off'
|
|
||||||
# Values: 'on', 'off'
|
|
||||||
# Flag: --memory_percent
|
|
||||||
#
|
|
||||||
# Example:
|
|
||||||
# on: '1801MiB / 7881MiB (22%)'
|
|
||||||
# off: '1801MiB / 7881MiB'
|
|
||||||
memory_percent="off"
|
|
||||||
|
|
||||||
# Change memory output unit.
|
|
||||||
#
|
|
||||||
# Default: 'mib'
|
|
||||||
# Values: 'kib', 'mib', 'gib'
|
|
||||||
# Flag: --memory_unit
|
|
||||||
#
|
|
||||||
# Example:
|
|
||||||
# kib '1020928KiB / 7117824KiB'
|
|
||||||
# mib '1042MiB / 6951MiB'
|
|
||||||
# gib: ' 0.98GiB / 6.79GiB'
|
|
||||||
memory_unit="mib"
|
|
||||||
|
|
||||||
|
|
||||||
# Packages
|
|
||||||
|
|
||||||
|
|
||||||
# Show/Hide Package Manager names.
|
|
||||||
#
|
|
||||||
# Default: 'tiny'
|
|
||||||
# Values: 'on', 'tiny' 'off'
|
|
||||||
# Flag: --package_managers
|
|
||||||
#
|
|
||||||
# Example:
|
|
||||||
# on: '998 (pacman), 8 (flatpak), 4 (snap)'
|
|
||||||
# tiny: '908 (pacman, flatpak, snap)'
|
|
||||||
# off: '908'
|
|
||||||
package_managers="on"
|
|
||||||
|
|
||||||
|
|
||||||
# Shell
|
|
||||||
|
|
||||||
|
|
||||||
# Show the path to $SHELL
|
|
||||||
#
|
|
||||||
# Default: 'off'
|
|
||||||
# Values: 'on', 'off'
|
|
||||||
# Flag: --shell_path
|
|
||||||
#
|
|
||||||
# Example:
|
|
||||||
# on: '/bin/bash'
|
|
||||||
# off: 'bash'
|
|
||||||
shell_path="off"
|
|
||||||
|
|
||||||
# Show $SHELL version
|
|
||||||
#
|
|
||||||
# Default: 'on'
|
|
||||||
# Values: 'on', 'off'
|
|
||||||
# Flag: --shell_version
|
|
||||||
#
|
|
||||||
# Example:
|
|
||||||
# on: 'bash 4.4.5'
|
|
||||||
# off: 'bash'
|
|
||||||
shell_version="on"
|
|
||||||
|
|
||||||
|
|
||||||
# CPU
|
|
||||||
|
|
||||||
|
|
||||||
# CPU speed type
|
|
||||||
#
|
|
||||||
# Default: 'bios_limit'
|
|
||||||
# Values: 'scaling_cur_freq', 'scaling_min_freq', 'scaling_max_freq', 'bios_limit'.
|
|
||||||
# Flag: --speed_type
|
|
||||||
# Supports: Linux with 'cpufreq'
|
|
||||||
# NOTE: Any file in '/sys/devices/system/cpu/cpu0/cpufreq' can be used as a value.
|
|
||||||
speed_type="bios_limit"
|
|
||||||
|
|
||||||
# CPU speed shorthand
|
|
||||||
#
|
|
||||||
# Default: 'off'
|
|
||||||
# Values: 'on', 'off'.
|
|
||||||
# Flag: --speed_shorthand
|
|
||||||
# NOTE: This flag is not supported in systems with CPU speed less than 1 GHz
|
|
||||||
#
|
|
||||||
# Example:
|
|
||||||
# on: 'i7-6500U (4) @ 3.1GHz'
|
|
||||||
# off: 'i7-6500U (4) @ 3.100GHz'
|
|
||||||
speed_shorthand="off"
|
|
||||||
|
|
||||||
# Enable/Disable CPU brand in output.
|
|
||||||
#
|
|
||||||
# Default: 'on'
|
|
||||||
# Values: 'on', 'off'
|
|
||||||
# Flag: --cpu_brand
|
|
||||||
#
|
|
||||||
# Example:
|
|
||||||
# on: 'Intel i7-6500U'
|
|
||||||
# off: 'i7-6500U (4)'
|
|
||||||
cpu_brand="on"
|
|
||||||
|
|
||||||
# CPU Speed
|
|
||||||
# Hide/Show CPU speed.
|
|
||||||
#
|
|
||||||
# Default: 'on'
|
|
||||||
# Values: 'on', 'off'
|
|
||||||
# Flag: --cpu_speed
|
|
||||||
#
|
|
||||||
# Example:
|
|
||||||
# on: 'Intel i7-6500U (4) @ 3.1GHz'
|
|
||||||
# off: 'Intel i7-6500U (4)'
|
|
||||||
cpu_speed="on"
|
|
||||||
|
|
||||||
# CPU Cores
|
|
||||||
# Display CPU cores in output
|
|
||||||
#
|
|
||||||
# Default: 'logical'
|
|
||||||
# Values: 'logical', 'physical', 'off'
|
|
||||||
# Flag: --cpu_cores
|
|
||||||
# Support: 'physical' doesn't work on BSD.
|
|
||||||
#
|
|
||||||
# Example:
|
|
||||||
# logical: 'Intel i7-6500U (4) @ 3.1GHz' (All virtual cores)
|
|
||||||
# physical: 'Intel i7-6500U (2) @ 3.1GHz' (All physical cores)
|
|
||||||
# off: 'Intel i7-6500U @ 3.1GHz'
|
|
||||||
cpu_cores="logical"
|
|
||||||
|
|
||||||
# CPU Temperature
|
|
||||||
# Hide/Show CPU temperature.
|
|
||||||
# Note the temperature is added to the regular CPU function.
|
|
||||||
#
|
|
||||||
# Default: 'off'
|
|
||||||
# Values: 'C', 'F', 'off'
|
|
||||||
# Flag: --cpu_temp
|
|
||||||
# Supports: Linux, BSD
|
|
||||||
# NOTE: For FreeBSD and NetBSD-based systems, you'll need to enable
|
|
||||||
# coretemp kernel module. This only supports newer Intel processors.
|
|
||||||
#
|
|
||||||
# Example:
|
|
||||||
# C: 'Intel i7-6500U (4) @ 3.1GHz [27.2°C]'
|
|
||||||
# F: 'Intel i7-6500U (4) @ 3.1GHz [82.0°F]'
|
|
||||||
# off: 'Intel i7-6500U (4) @ 3.1GHz'
|
|
||||||
cpu_temp="on"
|
|
||||||
|
|
||||||
|
|
||||||
# GPU
|
|
||||||
|
|
||||||
|
|
||||||
# Enable/Disable GPU Brand
|
|
||||||
#
|
|
||||||
# Default: 'on'
|
|
||||||
# Values: 'on', 'off'
|
|
||||||
# Flag: --gpu_brand
|
|
||||||
#
|
|
||||||
# Example:
|
|
||||||
# on: 'AMD HD 7950'
|
|
||||||
# off: 'HD 7950'
|
|
||||||
gpu_brand="on"
|
|
||||||
|
|
||||||
# Which GPU to display
|
|
||||||
#
|
|
||||||
# Default: 'all'
|
|
||||||
# Values: 'all', 'dedicated', 'integrated'
|
|
||||||
# Flag: --gpu_type
|
|
||||||
# Supports: Linux
|
|
||||||
#
|
|
||||||
# Example:
|
|
||||||
# all:
|
|
||||||
# GPU1: AMD HD 7950
|
|
||||||
# GPU2: Intel Integrated Graphics
|
|
||||||
#
|
|
||||||
# dedicated:
|
|
||||||
# GPU1: AMD HD 7950
|
|
||||||
#
|
|
||||||
# integrated:
|
|
||||||
# GPU1: Intel Integrated Graphics
|
|
||||||
gpu_type="all"
|
|
||||||
|
|
||||||
|
|
||||||
# Resolution
|
|
||||||
|
|
||||||
|
|
||||||
# Display refresh rate next to each monitor
|
|
||||||
# Default: 'off'
|
|
||||||
# Values: 'on', 'off'
|
|
||||||
# Flag: --refresh_rate
|
|
||||||
# Supports: Doesn't work on Windows.
|
|
||||||
#
|
|
||||||
# Example:
|
|
||||||
# on: '1920x1080 @ 60Hz'
|
|
||||||
# off: '1920x1080'
|
|
||||||
refresh_rate="off"
|
|
||||||
|
|
||||||
|
|
||||||
# Gtk Theme / Icons / Font
|
|
||||||
|
|
||||||
|
|
||||||
# Shorten output of GTK Theme / Icons / Font
|
|
||||||
#
|
|
||||||
# Default: 'off'
|
|
||||||
# Values: 'on', 'off'
|
|
||||||
# Flag: --gtk_shorthand
|
|
||||||
#
|
|
||||||
# Example:
|
|
||||||
# on: 'Numix, Adwaita'
|
|
||||||
# off: 'Numix [GTK2], Adwaita [GTK3]'
|
|
||||||
gtk_shorthand="off"
|
|
||||||
|
|
||||||
|
|
||||||
# Enable/Disable gtk2 Theme / Icons / Font
|
|
||||||
#
|
|
||||||
# Default: 'on'
|
|
||||||
# Values: 'on', 'off'
|
|
||||||
# Flag: --gtk2
|
|
||||||
#
|
|
||||||
# Example:
|
|
||||||
# on: 'Numix [GTK2], Adwaita [GTK3]'
|
|
||||||
# off: 'Adwaita [GTK3]'
|
|
||||||
gtk2="on"
|
|
||||||
|
|
||||||
# Enable/Disable gtk3 Theme / Icons / Font
|
|
||||||
#
|
|
||||||
# Default: 'on'
|
|
||||||
# Values: 'on', 'off'
|
|
||||||
# Flag: --gtk3
|
|
||||||
#
|
|
||||||
# Example:
|
|
||||||
# on: 'Numix [GTK2], Adwaita [GTK3]'
|
|
||||||
# off: 'Numix [GTK2]'
|
|
||||||
gtk3="on"
|
|
||||||
|
|
||||||
|
|
||||||
# IP Address
|
|
||||||
|
|
||||||
|
|
||||||
# Website to ping for the public IP
|
|
||||||
#
|
|
||||||
# Default: 'http://ident.me'
|
|
||||||
# Values: 'url'
|
|
||||||
# Flag: --ip_host
|
|
||||||
public_ip_host="http://ident.me"
|
|
||||||
|
|
||||||
# Public IP timeout.
|
|
||||||
#
|
|
||||||
# Default: '2'
|
|
||||||
# Values: 'int'
|
|
||||||
# Flag: --ip_timeout
|
|
||||||
public_ip_timeout=2
|
|
||||||
|
|
||||||
|
|
||||||
# Desktop Environment
|
|
||||||
|
|
||||||
|
|
||||||
# Show Desktop Environment version
|
|
||||||
#
|
|
||||||
# Default: 'on'
|
|
||||||
# Values: 'on', 'off'
|
|
||||||
# Flag: --de_version
|
|
||||||
de_version="on"
|
|
||||||
|
|
||||||
|
|
||||||
# Disk
|
|
||||||
|
|
||||||
|
|
||||||
# Which disks to display.
|
|
||||||
# The values can be any /dev/sdXX, mount point or directory.
|
|
||||||
# NOTE: By default we only show the disk info for '/'.
|
|
||||||
#
|
|
||||||
# Default: '/'
|
|
||||||
# Values: '/', '/dev/sdXX', '/path/to/drive'.
|
|
||||||
# Flag: --disk_show
|
|
||||||
#
|
|
||||||
# Example:
|
|
||||||
# disk_show=('/' '/dev/sdb1'):
|
|
||||||
# 'Disk (/): 74G / 118G (66%)'
|
|
||||||
# 'Disk (/mnt/Videos): 823G / 893G (93%)'
|
|
||||||
#
|
|
||||||
# disk_show=('/'):
|
|
||||||
# 'Disk (/): 74G / 118G (66%)'
|
|
||||||
#
|
|
||||||
disk_show=('/')
|
|
||||||
|
|
||||||
# Disk subtitle.
|
|
||||||
# What to append to the Disk subtitle.
|
|
||||||
#
|
|
||||||
# Default: 'mount'
|
|
||||||
# Values: 'mount', 'name', 'dir', 'none'
|
|
||||||
# Flag: --disk_subtitle
|
|
||||||
#
|
|
||||||
# Example:
|
|
||||||
# name: 'Disk (/dev/sda1): 74G / 118G (66%)'
|
|
||||||
# 'Disk (/dev/sdb2): 74G / 118G (66%)'
|
|
||||||
#
|
|
||||||
# mount: 'Disk (/): 74G / 118G (66%)'
|
|
||||||
# 'Disk (/mnt/Local Disk): 74G / 118G (66%)'
|
|
||||||
# 'Disk (/mnt/Videos): 74G / 118G (66%)'
|
|
||||||
#
|
|
||||||
# dir: 'Disk (/): 74G / 118G (66%)'
|
|
||||||
# 'Disk (Local Disk): 74G / 118G (66%)'
|
|
||||||
# 'Disk (Videos): 74G / 118G (66%)'
|
|
||||||
#
|
|
||||||
# none: 'Disk: 74G / 118G (66%)'
|
|
||||||
# 'Disk: 74G / 118G (66%)'
|
|
||||||
# 'Disk: 74G / 118G (66%)'
|
|
||||||
disk_subtitle="mount"
|
|
||||||
|
|
||||||
# Disk percent.
|
|
||||||
# Show/Hide disk percent.
|
|
||||||
#
|
|
||||||
# Default: 'on'
|
|
||||||
# Values: 'on', 'off'
|
|
||||||
# Flag: --disk_percent
|
|
||||||
#
|
|
||||||
# Example:
|
|
||||||
# on: 'Disk (/): 74G / 118G (66%)'
|
|
||||||
# off: 'Disk (/): 74G / 118G'
|
|
||||||
disk_percent="on"
|
|
||||||
|
|
||||||
|
|
||||||
# Song
|
|
||||||
|
|
||||||
|
|
||||||
# Manually specify a music player.
|
|
||||||
#
|
|
||||||
# Default: 'auto'
|
|
||||||
# Values: 'auto', 'player-name'
|
|
||||||
# Flag: --music_player
|
|
||||||
#
|
|
||||||
# Available values for 'player-name':
|
|
||||||
#
|
|
||||||
# amarok
|
|
||||||
# audacious
|
|
||||||
# banshee
|
|
||||||
# bluemindo
|
|
||||||
# clementine
|
|
||||||
# cmus
|
|
||||||
# deadbeef
|
|
||||||
# deepin-music
|
|
||||||
# dragon
|
|
||||||
# elisa
|
|
||||||
# exaile
|
|
||||||
# gnome-music
|
|
||||||
# gmusicbrowser
|
|
||||||
# gogglesmm
|
|
||||||
# guayadeque
|
|
||||||
# io.elementary.music
|
|
||||||
# iTunes
|
|
||||||
# juk
|
|
||||||
# lollypop
|
|
||||||
# mocp
|
|
||||||
# mopidy
|
|
||||||
# mpd
|
|
||||||
# muine
|
|
||||||
# netease-cloud-music
|
|
||||||
# olivia
|
|
||||||
# playerctl
|
|
||||||
# pogo
|
|
||||||
# pragha
|
|
||||||
# qmmp
|
|
||||||
# quodlibet
|
|
||||||
# rhythmbox
|
|
||||||
# sayonara
|
|
||||||
# smplayer
|
|
||||||
# spotify
|
|
||||||
# strawberry
|
|
||||||
# tauonmb
|
|
||||||
# tomahawk
|
|
||||||
# vlc
|
|
||||||
# xmms2d
|
|
||||||
# xnoise
|
|
||||||
# yarock
|
|
||||||
music_player="auto"
|
|
||||||
|
|
||||||
# Format to display song information.
|
|
||||||
#
|
|
||||||
# Default: '%artist% - %album% - %title%'
|
|
||||||
# Values: '%artist%', '%album%', '%title%'
|
|
||||||
# Flag: --song_format
|
|
||||||
#
|
|
||||||
# Example:
|
|
||||||
# default: 'Song: Jet - Get Born - Sgt Major'
|
|
||||||
song_format="%artist% - %album% - %title%"
|
|
||||||
|
|
||||||
# Print the Artist, Album and Title on separate lines
|
|
||||||
#
|
|
||||||
# Default: 'off'
|
|
||||||
# Values: 'on', 'off'
|
|
||||||
# Flag: --song_shorthand
|
|
||||||
#
|
|
||||||
# Example:
|
|
||||||
# on: 'Artist: The Fratellis'
|
|
||||||
# 'Album: Costello Music'
|
|
||||||
# 'Song: Chelsea Dagger'
|
|
||||||
#
|
|
||||||
# off: 'Song: The Fratellis - Costello Music - Chelsea Dagger'
|
|
||||||
song_shorthand="off"
|
|
||||||
|
|
||||||
# 'mpc' arguments (specify a host, password etc).
|
|
||||||
#
|
|
||||||
# Default: ''
|
|
||||||
# Example: mpc_args=(-h HOST -P PASSWORD)
|
|
||||||
mpc_args=()
|
|
||||||
|
|
||||||
|
|
||||||
# Text Colors
|
|
||||||
|
|
||||||
|
|
||||||
# Text Colors
|
|
||||||
#
|
|
||||||
# Default: 'distro'
|
|
||||||
# Values: 'distro', 'num' 'num' 'num' 'num' 'num' 'num'
|
|
||||||
# Flag: --colors
|
|
||||||
#
|
|
||||||
# Each number represents a different part of the text in
|
|
||||||
# this order: 'title', '@', 'underline', 'subtitle', 'colon', 'info'
|
|
||||||
#
|
|
||||||
# Example:
|
|
||||||
# colors=(distro) - Text is colored based on Distro colors.
|
|
||||||
# colors=(4 6 1 8 8 6) - Text is colored in the order above.
|
|
||||||
colors=(distro)
|
|
||||||
|
|
||||||
|
|
||||||
# Text Options
|
|
||||||
|
|
||||||
|
|
||||||
# Toggle bold text
|
|
||||||
#
|
|
||||||
# Default: 'on'
|
|
||||||
# Values: 'on', 'off'
|
|
||||||
# Flag: --bold
|
|
||||||
bold="on"
|
|
||||||
|
|
||||||
# Enable/Disable Underline
|
|
||||||
#
|
|
||||||
# Default: 'on'
|
|
||||||
# Values: 'on', 'off'
|
|
||||||
# Flag: --underline
|
|
||||||
underline_enabled="on"
|
|
||||||
|
|
||||||
# Underline character
|
|
||||||
#
|
|
||||||
# Default: '-'
|
|
||||||
# Values: 'string'
|
|
||||||
# Flag: --underline_char
|
|
||||||
underline_char="-"
|
|
||||||
|
|
||||||
|
|
||||||
# Info Separator
|
|
||||||
# Replace the default separator with the specified string.
|
|
||||||
#
|
|
||||||
# Default: ':'
|
|
||||||
# Flag: --separator
|
|
||||||
#
|
|
||||||
# Example:
|
|
||||||
# separator="->": 'Shell-> bash'
|
|
||||||
# separator=" =": 'WM = dwm'
|
|
||||||
separator=":"
|
|
||||||
|
|
||||||
|
|
||||||
# Color Blocks
|
|
||||||
|
|
||||||
|
|
||||||
# Color block range
|
|
||||||
# The range of colors to print.
|
|
||||||
#
|
|
||||||
# Default: '0', '15'
|
|
||||||
# Values: 'num'
|
|
||||||
# Flag: --block_range
|
|
||||||
#
|
|
||||||
# Example:
|
|
||||||
#
|
|
||||||
# Display colors 0-7 in the blocks. (8 colors)
|
|
||||||
# neofetch --block_range 0 7
|
|
||||||
#
|
|
||||||
# Display colors 0-15 in the blocks. (16 colors)
|
|
||||||
# neofetch --block_range 0 15
|
|
||||||
block_range=(0 15)
|
|
||||||
|
|
||||||
# Toggle color blocks
|
|
||||||
#
|
|
||||||
# Default: 'on'
|
|
||||||
# Values: 'on', 'off'
|
|
||||||
# Flag: --color_blocks
|
|
||||||
color_blocks="on"
|
|
||||||
|
|
||||||
# Color block width in spaces
|
|
||||||
#
|
|
||||||
# Default: '3'
|
|
||||||
# Values: 'num'
|
|
||||||
# Flag: --block_width
|
|
||||||
block_width=3
|
|
||||||
|
|
||||||
# Color block height in lines
|
|
||||||
#
|
|
||||||
# Default: '1'
|
|
||||||
# Values: 'num'
|
|
||||||
# Flag: --block_height
|
|
||||||
block_height=1
|
|
||||||
|
|
||||||
# Color Alignment
|
|
||||||
#
|
|
||||||
# Default: 'auto'
|
|
||||||
# Values: 'auto', 'num'
|
|
||||||
# Flag: --col_offset
|
|
||||||
#
|
|
||||||
# Number specifies how far from the left side of the terminal (in spaces) to
|
|
||||||
# begin printing the columns, in case you want to e.g. center them under your
|
|
||||||
# text.
|
|
||||||
# Example:
|
|
||||||
# col_offset="auto" - Default behavior of neofetch
|
|
||||||
# col_offset=7 - Leave 7 spaces then print the colors
|
|
||||||
col_offset="auto"
|
|
||||||
|
|
||||||
# Progress Bars
|
|
||||||
|
|
||||||
|
|
||||||
# Bar characters
|
|
||||||
#
|
|
||||||
# Default: '-', '='
|
|
||||||
# Values: 'string', 'string'
|
|
||||||
# Flag: --bar_char
|
|
||||||
#
|
|
||||||
# Example:
|
|
||||||
# neofetch --bar_char 'elapsed' 'total'
|
|
||||||
# neofetch --bar_char '-' '='
|
|
||||||
bar_char_elapsed="-"
|
|
||||||
bar_char_total="="
|
|
||||||
|
|
||||||
# Toggle Bar border
|
|
||||||
#
|
|
||||||
# Default: 'on'
|
|
||||||
# Values: 'on', 'off'
|
|
||||||
# Flag: --bar_border
|
|
||||||
bar_border="on"
|
|
||||||
|
|
||||||
# Progress bar length in spaces
|
|
||||||
# Number of chars long to make the progress bars.
|
|
||||||
#
|
|
||||||
# Default: '15'
|
|
||||||
# Values: 'num'
|
|
||||||
# Flag: --bar_length
|
|
||||||
bar_length=15
|
|
||||||
|
|
||||||
# Progress bar colors
|
|
||||||
# When set to distro, uses your distro's logo colors.
|
|
||||||
#
|
|
||||||
# Default: 'distro', 'distro'
|
|
||||||
# Values: 'distro', 'num'
|
|
||||||
# Flag: --bar_colors
|
|
||||||
#
|
|
||||||
# Example:
|
|
||||||
# neofetch --bar_colors 3 4
|
|
||||||
# neofetch --bar_colors distro 5
|
|
||||||
bar_color_elapsed="distro"
|
|
||||||
bar_color_total="distro"
|
|
||||||
|
|
||||||
|
|
||||||
# Info display
|
|
||||||
# Display a bar with the info.
|
|
||||||
#
|
|
||||||
# Default: 'off'
|
|
||||||
# Values: 'bar', 'infobar', 'barinfo', 'off'
|
|
||||||
# Flags: --cpu_display
|
|
||||||
# --memory_display
|
|
||||||
# --battery_display
|
|
||||||
# --disk_display
|
|
||||||
#
|
|
||||||
# Example:
|
|
||||||
# bar: '[---=======]'
|
|
||||||
# infobar: 'info [---=======]'
|
|
||||||
# barinfo: '[---=======] info'
|
|
||||||
# off: 'info'
|
|
||||||
cpu_display="off"
|
|
||||||
memory_display="off"
|
|
||||||
battery_display="off"
|
|
||||||
disk_display="off"
|
|
||||||
|
|
||||||
|
|
||||||
# Backend Settings
|
|
||||||
|
|
||||||
|
|
||||||
# Image backend.
|
|
||||||
#
|
|
||||||
# Default: 'ascii'
|
|
||||||
# Values: 'ascii', 'caca', 'chafa', 'jp2a', 'iterm2', 'off',
|
|
||||||
# 'pot', 'termpix', 'pixterm', 'tycat', 'w3m', 'kitty'
|
|
||||||
# Flag: --backend
|
|
||||||
image_backend="ascii"
|
|
||||||
|
|
||||||
# Image Source
|
|
||||||
#
|
|
||||||
# Which image or ascii file to display.
|
|
||||||
#
|
|
||||||
# Default: 'auto'
|
|
||||||
# Values: 'auto', 'ascii', 'wallpaper', '/path/to/img', '/path/to/ascii', '/path/to/dir/'
|
|
||||||
# 'command output (neofetch --ascii "$(fortune | cowsay -W 30)")'
|
|
||||||
# Flag: --source
|
|
||||||
#
|
|
||||||
# NOTE: 'auto' will pick the best image source for whatever image backend is used.
|
|
||||||
# In ascii mode, distro ascii art will be used and in an image mode, your
|
|
||||||
# wallpaper will be used.
|
|
||||||
image_source="auto"
|
|
||||||
|
|
||||||
|
|
||||||
# Ascii Options
|
|
||||||
|
|
||||||
|
|
||||||
# Ascii distro
|
|
||||||
# Which distro's ascii art to display.
|
|
||||||
#
|
|
||||||
# Default: 'auto'
|
|
||||||
# Values: 'auto', 'distro_name'
|
|
||||||
# Flag: --ascii_distro
|
|
||||||
# NOTE: AIX, Alpine, Anarchy, Android, Antergos, antiX, "AOSC OS",
|
|
||||||
# "AOSC OS/Retro", Apricity, ArcoLinux, ArchBox, ARCHlabs,
|
|
||||||
# ArchStrike, XFerience, ArchMerge, Arch, Artix, Arya, Bedrock,
|
|
||||||
# Bitrig, BlackArch, BLAG, BlankOn, BlueLight, bonsai, BSD,
|
|
||||||
# BunsenLabs, Calculate, Carbs, CentOS, Chakra, ChaletOS,
|
|
||||||
# Chapeau, Chrom*, Cleanjaro, ClearOS, Clear_Linux, Clover,
|
|
||||||
# Condres, Container_Linux, CRUX, Cucumber, Debian, Deepin,
|
|
||||||
# DesaOS, Devuan, DracOS, DarkOs, DragonFly, Drauger, Elementary,
|
|
||||||
# EndeavourOS, Endless, EuroLinux, Exherbo, Fedora, Feren, FreeBSD,
|
|
||||||
# FreeMiNT, Frugalware, Funtoo, GalliumOS, Garuda, Gentoo, Pentoo,
|
|
||||||
# gNewSense, GNOME, GNU, GoboLinux, Grombyang, Guix, Haiku, Huayra,
|
|
||||||
# Hyperbola, janus, Kali, KaOS, KDE_neon, Kibojoe, Kogaion,
|
|
||||||
# Korora, KSLinux, Kubuntu, LEDE, LFS, Linux_Lite,
|
|
||||||
# LMDE, Lubuntu, Lunar, macos, Mageia, MagpieOS, Mandriva,
|
|
||||||
# Manjaro, Maui, Mer, Minix, LinuxMint, MX_Linux, Namib,
|
|
||||||
# Neptune, NetBSD, Netrunner, Nitrux, NixOS, Nurunner,
|
|
||||||
# NuTyX, OBRevenge, OpenBSD, openEuler, OpenIndiana, openmamba,
|
|
||||||
# OpenMandriva, OpenStage, OpenWrt, osmc, Oracle, OS Elbrus, PacBSD,
|
|
||||||
# Parabola, Pardus, Parrot, Parsix, TrueOS, PCLinuxOS, Peppermint,
|
|
||||||
# popos, Porteus, PostMarketOS, Proxmox, Puppy, PureOS, Qubes, Radix,
|
|
||||||
# Raspbian, Reborn_OS, Redstar, Redcore, Redhat, Refracted_Devuan,
|
|
||||||
# Regata, Rosa, sabotage, Sabayon, Sailfish, SalentOS, Scientific,
|
|
||||||
# Septor, SereneLinux, SharkLinux, Siduction, Slackware, SliTaz,
|
|
||||||
# SmartOS, Solus, Source_Mage, Sparky, Star, SteamOS, SunOS,
|
|
||||||
# openSUSE_Leap, openSUSE_Tumbleweed, openSUSE, SwagArch, Tails,
|
|
||||||
# Trisquel, Ubuntu-Budgie, Ubuntu-GNOME, Ubuntu-MATE, Ubuntu-Studio,
|
|
||||||
# Ubuntu, Venom, Void, Obarun, windows10, Windows7, Xubuntu, Zorin,
|
|
||||||
# and IRIX have ascii logos
|
|
||||||
# NOTE: Arch, Ubuntu, Redhat, and Dragonfly have 'old' logo variants.
|
|
||||||
# Use '{distro name}_old' to use the old logos.
|
|
||||||
# NOTE: Ubuntu has flavor variants.
|
|
||||||
# Change this to Lubuntu, Kubuntu, Xubuntu, Ubuntu-GNOME,
|
|
||||||
# Ubuntu-Studio, Ubuntu-Mate or Ubuntu-Budgie to use the flavors.
|
|
||||||
# NOTE: Arcolinux, Dragonfly, Fedora, Alpine, Arch, Ubuntu,
|
|
||||||
# CRUX, Debian, Gentoo, FreeBSD, Mac, NixOS, OpenBSD, android,
|
|
||||||
# Antrix, CentOS, Cleanjaro, ElementaryOS, GUIX, Hyperbola,
|
|
||||||
# Manjaro, MXLinux, NetBSD, Parabola, POP_OS, PureOS,
|
|
||||||
# Slackware, SunOS, LinuxLite, OpenSUSE, Raspbian,
|
|
||||||
# postmarketOS, and Void have a smaller logo variant.
|
|
||||||
# Use '{distro name}_small' to use the small variants.
|
|
||||||
ascii_distro="auto"
|
|
||||||
|
|
||||||
# Ascii Colors
|
|
||||||
#
|
|
||||||
# Default: 'distro'
|
|
||||||
# Values: 'distro', 'num' 'num' 'num' 'num' 'num' 'num'
|
|
||||||
# Flag: --ascii_colors
|
|
||||||
#
|
|
||||||
# Example:
|
|
||||||
# ascii_colors=(distro) - Ascii is colored based on Distro colors.
|
|
||||||
# ascii_colors=(4 6 1 8 8 6) - Ascii is colored using these colors.
|
|
||||||
ascii_colors=(distro)
|
|
||||||
|
|
||||||
# Bold ascii logo
|
|
||||||
# Whether or not to bold the ascii logo.
|
|
||||||
#
|
|
||||||
# Default: 'on'
|
|
||||||
# Values: 'on', 'off'
|
|
||||||
# Flag: --ascii_bold
|
|
||||||
ascii_bold="on"
|
|
||||||
|
|
||||||
|
|
||||||
# Image Options
|
|
||||||
|
|
||||||
|
|
||||||
# Image loop
|
|
||||||
# Setting this to on will make neofetch redraw the image constantly until
|
|
||||||
# Ctrl+C is pressed. This fixes display issues in some terminal emulators.
|
|
||||||
#
|
|
||||||
# Default: 'off'
|
|
||||||
# Values: 'on', 'off'
|
|
||||||
# Flag: --loop
|
|
||||||
image_loop="off"
|
|
||||||
|
|
||||||
# Thumbnail directory
|
|
||||||
#
|
|
||||||
# Default: '~/.cache/thumbnails/neofetch'
|
|
||||||
# Values: 'dir'
|
|
||||||
thumbnail_dir="${XDG_CACHE_HOME:-${HOME}/.cache}/thumbnails/neofetch"
|
|
||||||
|
|
||||||
# Crop mode
|
|
||||||
#
|
|
||||||
# Default: 'normal'
|
|
||||||
# Values: 'normal', 'fit', 'fill'
|
|
||||||
# Flag: --crop_mode
|
|
||||||
#
|
|
||||||
# See this wiki page to learn about the fit and fill options.
|
|
||||||
# https://github.com/dylanaraps/neofetch/wiki/What-is-Waifu-Crop%3F
|
|
||||||
crop_mode="normal"
|
|
||||||
|
|
||||||
# Crop offset
|
|
||||||
# Note: Only affects 'normal' crop mode.
|
|
||||||
#
|
|
||||||
# Default: 'center'
|
|
||||||
# Values: 'northwest', 'north', 'northeast', 'west', 'center'
|
|
||||||
# 'east', 'southwest', 'south', 'southeast'
|
|
||||||
# Flag: --crop_offset
|
|
||||||
crop_offset="center"
|
|
||||||
|
|
||||||
# Image size
|
|
||||||
# The image is half the terminal width by default.
|
|
||||||
#
|
|
||||||
# Default: 'auto'
|
|
||||||
# Values: 'auto', '00px', '00%', 'none'
|
|
||||||
# Flags: --image_size
|
|
||||||
# --size
|
|
||||||
image_size="auto"
|
|
||||||
|
|
||||||
# Gap between image and text
|
|
||||||
#
|
|
||||||
# Default: '3'
|
|
||||||
# Values: 'num', '-num'
|
|
||||||
# Flag: --gap
|
|
||||||
gap=3
|
|
||||||
|
|
||||||
# Image offsets
|
|
||||||
# Only works with the w3m backend.
|
|
||||||
#
|
|
||||||
# Default: '0'
|
|
||||||
# Values: 'px'
|
|
||||||
# Flags: --xoffset
|
|
||||||
# --yoffset
|
|
||||||
yoffset=0
|
|
||||||
xoffset=0
|
|
||||||
|
|
||||||
# Image background color
|
|
||||||
# Only works with the w3m backend.
|
|
||||||
#
|
|
||||||
# Default: ''
|
|
||||||
# Values: 'color', 'blue'
|
|
||||||
# Flag: --bg_color
|
|
||||||
background_color=
|
|
||||||
|
|
||||||
|
|
||||||
# Misc Options
|
|
||||||
|
|
||||||
# Stdout mode
|
|
||||||
# Turn off all colors and disables image backend (ASCII/Image).
|
|
||||||
# Useful for piping into another command.
|
|
||||||
# Default: 'off'
|
|
||||||
# Values: 'on', 'off'
|
|
||||||
stdout="off"
|
|
||||||
+29
-28
@@ -1,38 +1,39 @@
|
|||||||
{
|
{
|
||||||
"Comment.nvim": { "branch": "master", "commit": "e30b7f2008e52442154b66f7c519bfd2f1e32acb" },
|
"Comment.nvim": { "branch": "master", "commit": "e30b7f2008e52442154b66f7c519bfd2f1e32acb" },
|
||||||
"LuaSnip": { "branch": "master", "commit": "73813308abc2eaeff2bc0d3f2f79270c491be9d7" },
|
"LuaSnip": { "branch": "master", "commit": "0abc8f390b278c3b4aabc4c004ac8a088b65cf24" },
|
||||||
"better-escape.nvim": { "branch": "master", "commit": "19a38aab94961016430905ebec30d272a01e9742" },
|
|
||||||
"cmp-buffer": { "branch": "main", "commit": "b74fab3656eea9de20a9b8116afa3cfc4ec09657" },
|
"cmp-buffer": { "branch": "main", "commit": "b74fab3656eea9de20a9b8116afa3cfc4ec09657" },
|
||||||
"cmp-nvim-lsp": { "branch": "main", "commit": "bd5a7d6db125d4654b50eeae9f5217f24bb22fd3" },
|
"cmp-nvim-lsp": { "branch": "main", "commit": "cbc7b02bb99fae35cb42f514762b89b5126651ef" },
|
||||||
"cmp-path": { "branch": "main", "commit": "c642487086dbd9a93160e1679a1327be111cbc25" },
|
"cmp-path": { "branch": "main", "commit": "c642487086dbd9a93160e1679a1327be111cbc25" },
|
||||||
"cmp_luasnip": { "branch": "master", "commit": "98d9cb5c2c38532bd9bdb481067b20fea8f32e90" },
|
"cmp_luasnip": { "branch": "master", "commit": "98d9cb5c2c38532bd9bdb481067b20fea8f32e90" },
|
||||||
"conform.nvim": { "branch": "master", "commit": "fbcb4fa7f34bfea9be702ffff481a8e336ebf6ed" },
|
"conform.nvim": { "branch": "master", "commit": "619363c30309d29ffa631e67c8183f2a72caa373" },
|
||||||
"fidget.nvim": { "branch": "main", "commit": "3f5475949679953af6d78654db29b944fa826e6a" },
|
"dressing.nvim": { "branch": "master", "commit": "2d7c2db2507fa3c4956142ee607431ddb2828639" },
|
||||||
"friendly-snippets": { "branch": "main", "commit": "572f5660cf05f8cd8834e096d7b4c921ba18e175" },
|
"fidget.nvim": { "branch": "main", "commit": "6f793b2bcd2d35e201c09520f698bb763220908a" },
|
||||||
"gitsigns.nvim": { "branch": "main", "commit": "1ee5c1fd068c81f9dd06483e639c2aa4587dc197" },
|
"friendly-snippets": { "branch": "main", "commit": "6cd7280adead7f586db6fccbd15d2cac7e2188b9" },
|
||||||
"harpoon": { "branch": "harpoon2", "commit": "ed1f853847ffd04b2b61c314865665e1dadf22c7" },
|
"gitsigns.nvim": { "branch": "main", "commit": "2038c666bd9d8a0b7349a0b6ee00dc83104b9ecf" },
|
||||||
"indent-blankline.nvim": { "branch": "master", "commit": "005b56001b2cb30bfa61b7986bc50657816ba4ba" },
|
"harpoon": { "branch": "harpoon2", "commit": "87b1a3506211538f460786c23f98ec63ad9af4e5" },
|
||||||
"lazy.nvim": { "branch": "main", "commit": "1ea3c4085785f460fb0e46d2fe1ee895f5f9e7c1" },
|
"indent-blankline.nvim": { "branch": "master", "commit": "d28a3f70721c79e3c5f6693057ae929f3d9c0a03" },
|
||||||
"lualine.nvim": { "branch": "master", "commit": "b8c23159c0161f4b89196f74ee3a6d02cdc3a955" },
|
"lazy.nvim": { "branch": "main", "commit": "306a05526ada86a7b30af95c5cc81ffba93fef97" },
|
||||||
"mason-lspconfig.nvim": { "branch": "main", "commit": "6bdb14f230de0904229ec367b410fb817e59b072" },
|
"lualine.nvim": { "branch": "master", "commit": "221ce6b2d999187044529f49da6554a92f740a96" },
|
||||||
"mason.nvim": { "branch": "main", "commit": "ad7146aa61dcaeb54fa900144d768f040090bff0" },
|
"mason-lspconfig.nvim": { "branch": "main", "commit": "21c5b3ebeaa0412e28096bb0701434c51c1fbf76" },
|
||||||
"neo-tree.nvim": { "branch": "main", "commit": "4c60a198e3f92098778a32a1c76d2bd7ba46a3b5" },
|
"mason.nvim": { "branch": "main", "commit": "2a6940af80375532e5e9e7c1f2fc6319a1b7a69d" },
|
||||||
|
"neo-tree.nvim": { "branch": "main", "commit": "83e7a2982fd12b9c3d35bc39dd5877cd91a02a61" },
|
||||||
"neodev.nvim": { "branch": "main", "commit": "46aa467dca16cf3dfe27098042402066d2ae242d" },
|
"neodev.nvim": { "branch": "main", "commit": "46aa467dca16cf3dfe27098042402066d2ae242d" },
|
||||||
"nui.nvim": { "branch": "main", "commit": "de740991c12411b663994b2860f1a4fd0937c130" },
|
"nui.nvim": { "branch": "main", "commit": "de740991c12411b663994b2860f1a4fd0937c130" },
|
||||||
"nvim-autopairs": { "branch": "master", "commit": "7a2c97cccd60abc559344042fefb1d5a85b3e33b" },
|
"nvim-autopairs": { "branch": "master", "commit": "7b9923abad60b903ece7c52940e1321d39eccc79" },
|
||||||
"nvim-cmp": { "branch": "main", "commit": "b5311ab3ed9c846b585c0c15b7559be131ec4be9" },
|
"nvim-cmp": { "branch": "main", "commit": "a1d504892f2bc56c2e79b65c6faded2fd21f3eca" },
|
||||||
"nvim-lspconfig": { "branch": "master", "commit": "ac98db2f9f06a56498ec890a96928774eae412c3" },
|
"nvim-lspconfig": { "branch": "master", "commit": "bfcc0171a43f22afa61d927ffe9fcb6cb85dc99e" },
|
||||||
"nvim-surround": { "branch": "main", "commit": "a868c256c861044beb9794b4dd126480dcdfbdad" },
|
"nvim-surround": { "branch": "main", "commit": "2e93e154de9ff326def6480a4358bfc149d5da2c" },
|
||||||
"nvim-treesitter": { "branch": "master", "commit": "42fc28ba918343ebfd5565147a42a26580579482" },
|
"nvim-treesitter": { "branch": "master", "commit": "cf12346a3414fa1b06af75c79faebe7f76df080a" },
|
||||||
"nvim-treesitter-textobjects": { "branch": "master", "commit": "71385f191ec06ffc60e80e6b0c9a9d5daed4824c" },
|
"nvim-treesitter-textobjects": { "branch": "master", "commit": "5ca4aaa6efdcc59be46b95a3e876300cfead05ef" },
|
||||||
"nvim-ts-context-commentstring": { "branch": "main", "commit": "1b212c2eee76d787bbea6aa5e92a2b534e7b4f8f" },
|
"nvim-web-devicons": { "branch": "master", "commit": "dfbfaa967a6f7ec50789bead7ef87e336c1fa63c" },
|
||||||
"nvim-web-devicons": { "branch": "master", "commit": "b8221e42cf7287c4dcde81f232f58d7b947c210d" },
|
"oil.nvim": { "branch": "master", "commit": "b73018b75affd13fa38e2fc94ef753b465f770d7" },
|
||||||
"plenary.nvim": { "branch": "master", "commit": "b9fd5226c2f76c951fc8ed5923d85e4de065e509" },
|
"plenary.nvim": { "branch": "master", "commit": "74b06c6c75e4eeb3108ec01852001636d85a932b" },
|
||||||
"schemastore.nvim": { "branch": "main", "commit": "caad5439cc80809be7475b625a5e36d1bb06cc7e" },
|
"schemastore.nvim": { "branch": "main", "commit": "c73e2b170a4927d1dc1b48e878bba6cf0ed9b07c" },
|
||||||
"telescope-fzf-native.nvim": { "branch": "main", "commit": "1f08ed60cafc8f6168b72b80be2b2ea149813e55" },
|
"telescope-fzf-native.nvim": { "branch": "main", "commit": "b25b749b9db64d375d782094e2b9dce53ad53a40" },
|
||||||
"telescope-ui-select.nvim": { "branch": "master", "commit": "6e51d7da30bd139a6950adf2a47fda6df9fa06d2" },
|
"telescope-ui-select.nvim": { "branch": "master", "commit": "6e51d7da30bd139a6950adf2a47fda6df9fa06d2" },
|
||||||
"telescope.nvim": { "branch": "0.1.x", "commit": "a0bbec21143c7bc5f8bb02e0005fa0b982edc026" },
|
"telescope.nvim": { "branch": "0.1.x", "commit": "a0bbec21143c7bc5f8bb02e0005fa0b982edc026" },
|
||||||
"tokyonight.nvim": { "branch": "main", "commit": "d14614cbfc63b6037bfccd48bb982d2ad2003352" },
|
"tokyonight.nvim": { "branch": "main", "commit": "cdc07ac78467a233fd62c493de29a17e0cf2b2b6" },
|
||||||
"vim-fugitive": { "branch": "master", "commit": "61b51c09b7c9ce04e821f6cf76ea4f6f903e3cf4" },
|
"undotree": { "branch": "master", "commit": "6fa6b57cda8459e1e4b2ca34df702f55242f4e4d" },
|
||||||
"which-key.nvim": { "branch": "main", "commit": "b4177e3eaf15fe5eb8357ebac2286d488be1ed00" }
|
"vim-fugitive": { "branch": "master", "commit": "3b753cf8c6a4dcde6edee8827d464ba9b8c4a6f0" },
|
||||||
|
"which-key.nvim": { "branch": "main", "commit": "3aab2147e74890957785941f0c1ad87d0a44c15a" }
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -26,6 +26,7 @@ opt.ignorecase = true
|
|||||||
opt.smartcase = true
|
opt.smartcase = true
|
||||||
opt.hlsearch = true
|
opt.hlsearch = true
|
||||||
opt.incsearch = true
|
opt.incsearch = true
|
||||||
|
opt.inccommand = 'split'
|
||||||
|
|
||||||
-- Aussehen
|
-- Aussehen
|
||||||
opt.termguicolors = true
|
opt.termguicolors = true
|
||||||
@@ -59,3 +60,31 @@ opt.completeopt = 'menu,menuone,noselect'
|
|||||||
|
|
||||||
-- Fold (erstmal aus)
|
-- Fold (erstmal aus)
|
||||||
opt.foldenable = false
|
opt.foldenable = false
|
||||||
|
|
||||||
|
-- ============================================================================
|
||||||
|
-- NEU: Automatischer Wechsel für QA vs. Speed (Hybrid Line Numbers)
|
||||||
|
-- ============================================================================
|
||||||
|
-- Normal Mode = Relative Nummern (zum schnellen Springen)
|
||||||
|
-- Insert Mode = Absolute Nummern (zum Ablesen für Tickets/Kollegen)
|
||||||
|
local augroup = vim.api.nvim_create_augroup("numbertoggle", {})
|
||||||
|
|
||||||
|
vim.api.nvim_create_autocmd({ "BufEnter", "FocusGained", "InsertLeave", "CmdlineLeave" }, {
|
||||||
|
group = augroup,
|
||||||
|
pattern = "*",
|
||||||
|
callback = function()
|
||||||
|
if vim.o.nu and vim.api.nvim_get_mode().mode ~= "i" then
|
||||||
|
vim.opt.relativenumber = true
|
||||||
|
end
|
||||||
|
end,
|
||||||
|
})
|
||||||
|
|
||||||
|
vim.api.nvim_create_autocmd({ "BufLeave", "FocusLost", "InsertEnter", "CmdlineEnter" }, {
|
||||||
|
group = augroup,
|
||||||
|
pattern = "*",
|
||||||
|
callback = function()
|
||||||
|
if vim.o.nu then
|
||||||
|
vim.opt.relativenumber = false
|
||||||
|
vim.cmd "redraw"
|
||||||
|
end
|
||||||
|
end,
|
||||||
|
})
|
||||||
|
|||||||
@@ -1,67 +1,57 @@
|
|||||||
-- ============================================================================
|
-- ============================================================================
|
||||||
-- Editor - Quality of Life Plugins
|
-- Editor Enhancements - Comment, Surround, etc.
|
||||||
-- ============================================================================
|
-- ============================================================================
|
||||||
|
|
||||||
return {
|
return {
|
||||||
-- Auto pairs
|
-- Comment.nvim - gc zum Kommentieren
|
||||||
{
|
|
||||||
'windwp/nvim-autopairs',
|
|
||||||
event = 'InsertEnter',
|
|
||||||
config = true,
|
|
||||||
},
|
|
||||||
|
|
||||||
-- Comment.nvim
|
|
||||||
{
|
{
|
||||||
'numToStr/Comment.nvim',
|
'numToStr/Comment.nvim',
|
||||||
event = { 'BufReadPost', 'BufNewFile' },
|
event = 'VeryLazy',
|
||||||
dependencies = {
|
|
||||||
'JoosepAlviste/nvim-ts-context-commentstring',
|
|
||||||
},
|
|
||||||
config = function()
|
config = function()
|
||||||
require('Comment').setup({
|
require('Comment').setup({
|
||||||
pre_hook = require('ts_context_commentstring.integrations.comment_nvim').create_pre_hook(),
|
-- LHS of toggle mappings in NORMAL mode
|
||||||
|
toggler = {
|
||||||
|
line = 'gcc', -- Line-comment toggle
|
||||||
|
block = 'gbc', -- Block-comment toggle
|
||||||
|
},
|
||||||
|
-- LHS of operator-pending mappings in NORMAL and VISUAL mode
|
||||||
|
opleader = {
|
||||||
|
line = 'gc', -- Line-comment operator
|
||||||
|
block = 'gb', -- Block-comment operator
|
||||||
|
},
|
||||||
})
|
})
|
||||||
end,
|
end,
|
||||||
},
|
},
|
||||||
|
|
||||||
-- Surround
|
-- Surround - ys/cs/ds für quotes, brackets, etc.
|
||||||
{
|
{
|
||||||
'kylechui/nvim-surround',
|
'kylechui/nvim-surround',
|
||||||
version = '*',
|
version = '*',
|
||||||
event = 'VeryLazy',
|
event = 'VeryLazy',
|
||||||
config = true,
|
config = function()
|
||||||
|
require('nvim-surround').setup()
|
||||||
|
end,
|
||||||
},
|
},
|
||||||
|
|
||||||
-- Better escape
|
-- Auto-pairs
|
||||||
{
|
{
|
||||||
'max397574/better-escape.nvim',
|
'windwp/nvim-autopairs',
|
||||||
event = 'InsertEnter',
|
event = 'InsertEnter',
|
||||||
config = function()
|
config = function()
|
||||||
require('better_escape').setup({
|
require('nvim-autopairs').setup()
|
||||||
mapping = { 'jk', 'jj' },
|
|
||||||
timeout = 200,
|
|
||||||
})
|
|
||||||
end,
|
end,
|
||||||
},
|
},
|
||||||
|
|
||||||
-- Which-key (zeigt Keybindings)
|
-- Undo-tree - Visueller Undo-Verlauf
|
||||||
{
|
{
|
||||||
'folke/which-key.nvim',
|
'mbbill/undotree',
|
||||||
event = 'VeryLazy',
|
cmd = 'UndotreeToggle',
|
||||||
init = function()
|
keys = {
|
||||||
vim.o.timeout = true
|
{ '<leader>u', '<cmd>UndotreeToggle<CR>', desc = 'Toggle Undotree' },
|
||||||
vim.o.timeoutlen = 300
|
|
||||||
end,
|
|
||||||
opts = {
|
|
||||||
-- Deine Leader-Gruppen
|
|
||||||
spec = {
|
|
||||||
{ '<leader>f', group = 'Find' },
|
|
||||||
{ '<leader>g', group = 'Git' },
|
|
||||||
{ '<leader>h', group = 'Hunk' },
|
|
||||||
{ '<leader>t', group = 'Toggle' },
|
|
||||||
{ '<leader>c', group = 'Code' },
|
|
||||||
{ '<leader>w', group = 'Workspace' },
|
|
||||||
},
|
|
||||||
},
|
},
|
||||||
|
config = function()
|
||||||
|
vim.g.undotree_WindowLayout = 3
|
||||||
|
vim.g.undotree_SetFocusWhenToggle = 1
|
||||||
|
end,
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -8,6 +8,14 @@ return {
|
|||||||
'lewis6991/gitsigns.nvim',
|
'lewis6991/gitsigns.nvim',
|
||||||
event = { 'BufReadPre', 'BufNewFile' },
|
event = { 'BufReadPre', 'BufNewFile' },
|
||||||
opts = {
|
opts = {
|
||||||
|
current_line_blame = true,
|
||||||
|
current_line_blame_opts = {
|
||||||
|
virt_text = true,
|
||||||
|
virt_text_pos = 'eol',
|
||||||
|
delay = 100,
|
||||||
|
},
|
||||||
|
current_line_blame_formatter = ' <author> • <author_time:%d.%m.%Y> • <summary>',
|
||||||
|
|
||||||
signs = {
|
signs = {
|
||||||
add = { text = '│' },
|
add = { text = '│' },
|
||||||
change = { text = '│' },
|
change = { text = '│' },
|
||||||
@@ -41,8 +49,10 @@ return {
|
|||||||
-- Actions
|
-- Actions
|
||||||
map('n', '<leader>hs', gs.stage_hunk, { desc = 'Stage hunk' })
|
map('n', '<leader>hs', gs.stage_hunk, { desc = 'Stage hunk' })
|
||||||
map('n', '<leader>hr', gs.reset_hunk, { desc = 'Reset hunk' })
|
map('n', '<leader>hr', gs.reset_hunk, { desc = 'Reset hunk' })
|
||||||
map('v', '<leader>hs', function() gs.stage_hunk({ vim.fn.line('.'), vim.fn.line('v') }) end, { desc = 'Stage hunk' })
|
map('v', '<leader>hs', function() gs.stage_hunk({ vim.fn.line('.'), vim.fn.line('v') }) end,
|
||||||
map('v', '<leader>hr', function() gs.reset_hunk({ vim.fn.line('.'), vim.fn.line('v') }) end, { desc = 'Reset hunk' })
|
{ desc = 'Stage hunk' })
|
||||||
|
map('v', '<leader>hr', function() gs.reset_hunk({ vim.fn.line('.'), vim.fn.line('v') }) end,
|
||||||
|
{ desc = 'Reset hunk' })
|
||||||
map('n', '<leader>hS', gs.stage_buffer, { desc = 'Stage buffer' })
|
map('n', '<leader>hS', gs.stage_buffer, { desc = 'Stage buffer' })
|
||||||
map('n', '<leader>hu', gs.undo_stage_hunk, { desc = 'Undo stage hunk' })
|
map('n', '<leader>hu', gs.undo_stage_hunk, { desc = 'Undo stage hunk' })
|
||||||
map('n', '<leader>hR', gs.reset_buffer, { desc = 'Reset buffer' })
|
map('n', '<leader>hR', gs.reset_buffer, { desc = 'Reset buffer' })
|
||||||
@@ -61,11 +71,11 @@ return {
|
|||||||
'tpope/vim-fugitive',
|
'tpope/vim-fugitive',
|
||||||
cmd = { 'Git', 'G', 'Gdiffsplit', 'Gread', 'Gwrite', 'Ggrep', 'GMove', 'GDelete', 'GBrowse', 'GRemove', 'GRename', 'Glgrep', 'Gedit' },
|
cmd = { 'Git', 'G', 'Gdiffsplit', 'Gread', 'Gwrite', 'Ggrep', 'GMove', 'GDelete', 'GBrowse', 'GRemove', 'GRename', 'Glgrep', 'Gedit' },
|
||||||
keys = {
|
keys = {
|
||||||
{ '<leader>gs', '<cmd>Git<cr>', desc = 'Git status' },
|
{ '<leader>gs', '<cmd>Git<cr>', desc = 'Git status' },
|
||||||
{ '<leader>gc', '<cmd>Git commit<cr>', desc = 'Git commit' },
|
{ '<leader>gc', '<cmd>Git commit<cr>', desc = 'Git commit' },
|
||||||
{ '<leader>gp', '<cmd>Git push<cr>', desc = 'Git push' },
|
{ '<leader>gp', '<cmd>Git push<cr>', desc = 'Git push' },
|
||||||
{ '<leader>gl', '<cmd>Git log<cr>', desc = 'Git log' },
|
{ '<leader>gl', '<cmd>Git log<cr>', desc = 'Git log' },
|
||||||
{ '<leader>gb', '<cmd>Git blame<cr>', desc = 'Git blame' },
|
{ '<leader>gb', '<cmd>Git blame<cr>', desc = 'Git blame' },
|
||||||
{ '<leader>gd', '<cmd>Gdiffsplit<cr>', desc = 'Git diff' },
|
{ '<leader>gd', '<cmd>Gdiffsplit<cr>', desc = 'Git diff' },
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -10,10 +10,10 @@ return {
|
|||||||
-- Mason: LSP Server installer
|
-- Mason: LSP Server installer
|
||||||
'williamboman/mason.nvim',
|
'williamboman/mason.nvim',
|
||||||
'williamboman/mason-lspconfig.nvim',
|
'williamboman/mason-lspconfig.nvim',
|
||||||
|
|
||||||
-- Status updates für LSP
|
-- Status updates für LSP
|
||||||
{ 'j-hui/fidget.nvim', opts = {} },
|
{ 'j-hui/fidget.nvim', opts = {} },
|
||||||
|
|
||||||
-- Neodev für Neovim config entwicklung
|
-- Neodev für Neovim config entwicklung
|
||||||
{ 'folke/neodev.nvim', opts = {} },
|
{ 'folke/neodev.nvim', opts = {} },
|
||||||
},
|
},
|
||||||
@@ -38,22 +38,26 @@ return {
|
|||||||
require('mason-lspconfig').setup({
|
require('mason-lspconfig').setup({
|
||||||
ensure_installed = {
|
ensure_installed = {
|
||||||
-- Primary (TypeScript/Playwright)
|
-- Primary (TypeScript/Playwright)
|
||||||
'ts_ls', -- TypeScript/JavaScript
|
'ts_ls', -- TypeScript/JavaScript
|
||||||
|
|
||||||
-- Secondary (Go)
|
-- Secondary (Go)
|
||||||
'gopls', -- Go
|
'gopls', -- Go
|
||||||
|
|
||||||
-- Python (für Scripts/Workflows)
|
-- Python (für Scripts/Workflows)
|
||||||
'pyright', -- Python
|
'pyright', -- Python
|
||||||
|
|
||||||
|
-- LaTeX
|
||||||
|
'texlab',
|
||||||
|
|
||||||
-- Supporting
|
-- Supporting
|
||||||
'lua_ls', -- Lua (für Neovim config)
|
'lua_ls', -- Lua (für Neovim config)
|
||||||
'html', -- HTML
|
'html', -- HTML
|
||||||
'cssls', -- CSS
|
'cssls', -- CSS
|
||||||
'jsonls', -- JSON
|
'jsonls', -- JSON
|
||||||
'yamlls', -- YAML
|
'yamlls', -- YAML
|
||||||
'dockerls', -- Dockerfile
|
'dockerls', -- Dockerfile
|
||||||
'docker_compose_language_service', -- Docker Compose
|
'docker_compose_language_service', -- Docker Compose
|
||||||
|
'eslint', -- Eslinter
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
|
|
||||||
@@ -98,11 +102,25 @@ return {
|
|||||||
callback = vim.lsp.buf.clear_references,
|
callback = vim.lsp.buf.clear_references,
|
||||||
})
|
})
|
||||||
end
|
end
|
||||||
end,
|
|
||||||
|
if client and client.name == 'eslint' then
|
||||||
|
vim.api.nvim_create_autocmd('BufWritePre', {
|
||||||
|
buffer = event.buf,
|
||||||
|
callback = function()
|
||||||
|
-- Statt vim.cmd('EslintFixAll') nutzen wir die direkte LSP-Aktion:
|
||||||
|
vim.lsp.buf.code_action({
|
||||||
|
context = { only = { "source.fixAll.eslint" } },
|
||||||
|
apply = true,
|
||||||
|
})
|
||||||
|
end,
|
||||||
|
desc = 'ESLint: Fixe alle Probleme beim Speichern (0.11 Style)',
|
||||||
|
})
|
||||||
|
end
|
||||||
|
end
|
||||||
})
|
})
|
||||||
|
|
||||||
-- ========== Server Configurations ==========
|
-- ========== Server Configurations ==========
|
||||||
|
|
||||||
-- TypeScript/JavaScript (ts_ls)
|
-- TypeScript/JavaScript (ts_ls)
|
||||||
vim.lsp.config('ts_ls', {
|
vim.lsp.config('ts_ls', {
|
||||||
capabilities = capabilities,
|
capabilities = capabilities,
|
||||||
@@ -203,6 +221,43 @@ return {
|
|||||||
},
|
},
|
||||||
})
|
})
|
||||||
|
|
||||||
|
-- Eslinter
|
||||||
|
vim.lsp.config('eslint', {
|
||||||
|
capabilities = capabilities,
|
||||||
|
settings = {
|
||||||
|
workingDirectory = { mode = 'auto' },
|
||||||
|
},
|
||||||
|
})
|
||||||
|
vim.lsp.enable('eslint')
|
||||||
|
|
||||||
|
|
||||||
|
-- LaTeX (texlab)
|
||||||
|
vim.lsp.config('texlab', {
|
||||||
|
capabilities = capabilities,
|
||||||
|
settings = {
|
||||||
|
texlab = {
|
||||||
|
build = {
|
||||||
|
executable = 'pdflatex',
|
||||||
|
args = { '%f' },
|
||||||
|
onSave = true, -- Auto-compile beim Speichern
|
||||||
|
forwardSearchAfter = false,
|
||||||
|
},
|
||||||
|
forwardSearch = {
|
||||||
|
executable = 'open',
|
||||||
|
args = { '%p' },
|
||||||
|
},
|
||||||
|
chktex = {
|
||||||
|
onOpenAndSave = true,
|
||||||
|
},
|
||||||
|
diagnosticsDelay = 300,
|
||||||
|
latexFormatter = 'latexindent',
|
||||||
|
latexindent = {
|
||||||
|
modifyLineBreaks = false,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
})
|
||||||
|
|
||||||
-- JSON mit Schema Support
|
-- JSON mit Schema Support
|
||||||
vim.lsp.config('jsonls', {
|
vim.lsp.config('jsonls', {
|
||||||
capabilities = capabilities,
|
capabilities = capabilities,
|
||||||
@@ -247,14 +302,22 @@ return {
|
|||||||
capabilities = capabilities,
|
capabilities = capabilities,
|
||||||
})
|
})
|
||||||
|
|
||||||
-- ========== Diagnostics Configuration ==========
|
-- ========== Diagnostics Configuration (Modern 0.11 Style) ==========
|
||||||
|
|
||||||
vim.diagnostic.config({
|
vim.diagnostic.config({
|
||||||
|
-- Hier werden die Zeichen jetzt direkt definiert (ersetzt sign_define)
|
||||||
|
signs = {
|
||||||
|
text = {
|
||||||
|
[vim.diagnostic.severity.ERROR] = '✘',
|
||||||
|
[vim.diagnostic.severity.WARN] = '▲',
|
||||||
|
[vim.diagnostic.severity.HINT] = '⚑',
|
||||||
|
[vim.diagnostic.severity.INFO] = '»',
|
||||||
|
},
|
||||||
|
},
|
||||||
virtual_text = {
|
virtual_text = {
|
||||||
prefix = '●',
|
prefix = '●',
|
||||||
source = 'if_many',
|
source = 'if_many',
|
||||||
},
|
},
|
||||||
signs = true,
|
|
||||||
underline = true,
|
underline = true,
|
||||||
update_in_insert = false,
|
update_in_insert = false,
|
||||||
severity_sort = true,
|
severity_sort = true,
|
||||||
@@ -266,24 +329,21 @@ return {
|
|||||||
},
|
},
|
||||||
})
|
})
|
||||||
|
|
||||||
-- Diagnostic signs
|
-- LSP Hover & Signature Help Styling
|
||||||
local signs = { Error = '✘', Warn = '▲', Hint = '⚑', Info = '»' }
|
local handlers = {
|
||||||
for type, icon in pairs(signs) do
|
['textDocument/hover'] = vim.lsp.with(vim.lsp.handlers.hover, { border = 'rounded' }),
|
||||||
local hl = 'DiagnosticSign' .. type
|
['textDocument/signatureHelp'] = vim.lsp.with(vim.lsp.handlers.signature_help, { border = 'rounded' }),
|
||||||
vim.fn.sign_define(hl, { text = icon, texthl = hl, numhl = '' })
|
}
|
||||||
|
|
||||||
|
-- Handlers registrieren
|
||||||
|
for method, handler in pairs(handlers) do
|
||||||
|
vim.lsp.handlers[method] = handler
|
||||||
end
|
end
|
||||||
|
|
||||||
-- LSP Hover border
|
-- Hover Popup Styling (Highlights)
|
||||||
vim.lsp.handlers['textDocument/hover'] = vim.lsp.with(
|
vim.api.nvim_set_hl(0, 'NormalFloat', { bg = '#1e1e1e', fg = '#ffffff' })
|
||||||
vim.lsp.handlers.hover,
|
vim.api.nvim_set_hl(0, 'FloatBorder', { fg = '#61afef', bg = '#1e1e1e' })
|
||||||
{ border = 'rounded' }
|
end, -- Hier endet die config-Funktion des Plugins
|
||||||
)
|
|
||||||
|
|
||||||
vim.lsp.handlers['textDocument/signatureHelp'] = vim.lsp.with(
|
|
||||||
vim.lsp.handlers.signature_help,
|
|
||||||
{ border = 'rounded' }
|
|
||||||
)
|
|
||||||
end,
|
|
||||||
},
|
},
|
||||||
|
|
||||||
-- SchemaStore für JSON/YAML
|
-- SchemaStore für JSON/YAML
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
-- ============================================================================
|
-- ============================================================================
|
||||||
-- Neo-tree - File Explorer (ASCII Mode - Keine Nerd Font Icons benötigt)
|
-- Neo-tree - File Explorer
|
||||||
-- ============================================================================
|
-- ============================================================================
|
||||||
|
|
||||||
return {
|
return {
|
||||||
|
|||||||
@@ -0,0 +1,13 @@
|
|||||||
|
return {
|
||||||
|
'stevearc/oil.nvim',
|
||||||
|
dependencies = { "nvim-tree/nvim-web-devicons" },
|
||||||
|
config = function()
|
||||||
|
require("oil").setup({
|
||||||
|
view_options = {
|
||||||
|
show_hidden = true, -- Damit du auch .husky, .env etc. siehst
|
||||||
|
},
|
||||||
|
})
|
||||||
|
-- Der Primeagen-Shortcut: Einfach '-' drücken um den Ordner zu öffnen
|
||||||
|
vim.keymap.set("n", "-", "<CMD>Oil<CR>", { desc = "Open parent directory" })
|
||||||
|
end,
|
||||||
|
}
|
||||||
@@ -17,7 +17,7 @@ return {
|
|||||||
end,
|
end,
|
||||||
},
|
},
|
||||||
{ 'nvim-telescope/telescope-ui-select.nvim' },
|
{ 'nvim-telescope/telescope-ui-select.nvim' },
|
||||||
{ 'nvim-tree/nvim-web-devicons', enabled = vim.g.have_nerd_font },
|
{ 'nvim-tree/nvim-web-devicons', enabled = vim.g.have_nerd_font },
|
||||||
},
|
},
|
||||||
config = function()
|
config = function()
|
||||||
local telescope = require('telescope')
|
local telescope = require('telescope')
|
||||||
|
|||||||
@@ -1,59 +1,73 @@
|
|||||||
-- ============================================================================
|
-- ============================================================================
|
||||||
-- UI - Colorscheme & Statusline
|
-- UI Enhancements - Colorscheme, Statusline, Which-Key
|
||||||
-- ============================================================================
|
-- ============================================================================
|
||||||
|
|
||||||
return {
|
return {
|
||||||
-- Tokyonight Theme
|
-- Colorscheme: Tokyo Night
|
||||||
{
|
{
|
||||||
'folke/tokyonight.nvim',
|
'folke/tokyonight.nvim',
|
||||||
lazy = false,
|
|
||||||
priority = 1000,
|
priority = 1000,
|
||||||
config = function()
|
config = function()
|
||||||
require('tokyonight').setup({
|
require('tokyonight').setup({
|
||||||
style = 'night',
|
style = 'night',
|
||||||
transparent = true,
|
transparent = true, -- DEIN ALTER WERT!
|
||||||
terminal_colors = true,
|
terminal_colors = true,
|
||||||
styles = {
|
styles = {
|
||||||
sidebars = 'transparent',
|
comments = { italic = true },
|
||||||
floats = 'transparent',
|
keywords = { italic = true },
|
||||||
|
sidebars = 'transparent', -- DEIN ALTER WERT!
|
||||||
|
floats = 'transparent', -- DEIN ALTER WERT!
|
||||||
},
|
},
|
||||||
on_colors = function(colors)
|
|
||||||
colors.bg_statusline = colors.none
|
|
||||||
end,
|
|
||||||
})
|
})
|
||||||
vim.cmd.colorscheme('tokyonight-night')
|
vim.cmd.colorscheme('tokyonight-night')
|
||||||
end,
|
end,
|
||||||
},
|
},
|
||||||
|
|
||||||
-- Lualine Statusline
|
-- Statusline
|
||||||
{
|
{
|
||||||
'nvim-lualine/lualine.nvim',
|
'nvim-lualine/lualine.nvim',
|
||||||
dependencies = { 'nvim-tree/nvim-web-devicons' },
|
dependencies = { 'nvim-tree/nvim-web-devicons' },
|
||||||
|
config = function()
|
||||||
|
require('lualine').setup({
|
||||||
|
options = {
|
||||||
|
theme = 'tokyonight',
|
||||||
|
component_separators = { left = '', right = '' },
|
||||||
|
section_separators = { left = '', right = '' },
|
||||||
|
},
|
||||||
|
sections = {
|
||||||
|
lualine_a = { 'mode' },
|
||||||
|
lualine_b = { 'branch', 'diff', 'diagnostics' },
|
||||||
|
lualine_c = {
|
||||||
|
{
|
||||||
|
'filename',
|
||||||
|
path = 1, -- Relativer Pfad
|
||||||
|
}
|
||||||
|
},
|
||||||
|
lualine_x = { 'encoding', 'fileformat', 'filetype' },
|
||||||
|
lualine_y = { 'progress' },
|
||||||
|
lualine_z = { 'location' }
|
||||||
|
},
|
||||||
|
})
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
|
||||||
|
-- Which-Key: Zeigt verfügbare Keybindings
|
||||||
|
{
|
||||||
|
'folke/which-key.nvim',
|
||||||
event = 'VeryLazy',
|
event = 'VeryLazy',
|
||||||
opts = {
|
opts = {
|
||||||
options = {
|
preset = 'modern',
|
||||||
theme = 'tokyonight',
|
delay = 500,
|
||||||
component_separators = { left = '', right = '' },
|
win = {
|
||||||
section_separators = { left = '', right = '' },
|
border = 'rounded',
|
||||||
globalstatus = true,
|
|
||||||
},
|
},
|
||||||
sections = {
|
spec = {
|
||||||
lualine_a = { 'mode' },
|
{ '<leader>f', group = 'find' },
|
||||||
lualine_b = { 'branch', 'diff', 'diagnostics' },
|
{ '<leader>g', group = 'git' },
|
||||||
lualine_c = {
|
{ '<leader>e', group = 'explorer' },
|
||||||
{
|
{ '<leader>c', group = 'code' },
|
||||||
'filename',
|
{ '<leader>w', group = 'workspace' },
|
||||||
path = 1, -- Relativer Pfad
|
{ '<leader>a', group = 'avente/ai' },
|
||||||
symbols = {
|
|
||||||
modified = '[+]',
|
|
||||||
readonly = '[-]',
|
|
||||||
unnamed = '[No Name]',
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
lualine_x = { 'encoding', 'fileformat', 'filetype' },
|
|
||||||
lualine_y = { 'progress' },
|
|
||||||
lualine_z = { 'location' }
|
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
@@ -61,15 +75,32 @@ return {
|
|||||||
-- Indent guides
|
-- Indent guides
|
||||||
{
|
{
|
||||||
'lukas-reineke/indent-blankline.nvim',
|
'lukas-reineke/indent-blankline.nvim',
|
||||||
event = { 'BufReadPost', 'BufNewFile' },
|
|
||||||
main = 'ibl',
|
main = 'ibl',
|
||||||
|
event = { 'BufReadPost', 'BufNewFile' },
|
||||||
opts = {
|
opts = {
|
||||||
indent = {
|
indent = {
|
||||||
char = '│',
|
char = '│',
|
||||||
},
|
},
|
||||||
scope = {
|
scope = {
|
||||||
show_start = false,
|
enabled = true,
|
||||||
show_end = false,
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
|
||||||
|
{
|
||||||
|
'stevearc/dressing.nvim',
|
||||||
|
lazy = false, -- Wichtig, damit es sofort bereit ist
|
||||||
|
opts = {
|
||||||
|
input = {
|
||||||
|
enabled = true,
|
||||||
|
default_prompt = "➤ ",
|
||||||
|
border = "rounded",
|
||||||
|
relative = "editor",
|
||||||
|
prefer_width = 50,
|
||||||
|
},
|
||||||
|
select = {
|
||||||
|
enabled = true,
|
||||||
|
backend = { "nui", "builtin" }, -- Telescope hier bewusst rauslassen!
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -14,7 +14,7 @@ $line_break\
|
|||||||
$character"""
|
$character"""
|
||||||
|
|
||||||
# Fast command execution
|
# Fast command execution
|
||||||
command_timeout = 1000
|
command_timeout = 3000
|
||||||
|
|
||||||
[time]
|
[time]
|
||||||
disabled = false
|
disabled = false
|
||||||
|
|||||||
@@ -0,0 +1,5 @@
|
|||||||
|
# Maus-support aktivate
|
||||||
|
set -g mouse on
|
||||||
|
|
||||||
|
# Options:
|
||||||
|
set -g history-limit 10000
|
||||||
Executable → Regular
@@ -53,15 +53,30 @@ nvim
|
|||||||
### Manuelle Installation
|
### Manuelle Installation
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
# Core tools installieren
|
# Custom taps hinzufügen (für Yabai)
|
||||||
brew install git neovim fish starship fzf ripgrep fd bat btop
|
brew tap koekeishiya/formulae
|
||||||
brew install --cask ghostty
|
|
||||||
|
# Core & Development tools installieren
|
||||||
|
brew install git neovim fish starship fzf ripgrep fd bat btop neofetch direnv lazygit mise yabai tmux
|
||||||
|
brew install --cask ghostty 1password-cli
|
||||||
|
|
||||||
# Symlinks erstellen
|
# Symlinks erstellen
|
||||||
ln -sf ~/gits/dotfiles/.config/fish ~/.config/fish
|
ln -sf ~/gits/dotfiles/.config/fish ~/.config/fish
|
||||||
ln -sf ~/gits/dotfiles/.config/nvim ~/.config/nvim
|
ln -sf ~/gits/dotfiles/.config/nvim ~/.config/nvim
|
||||||
ln -sf ~/gits/dotfiles/.config/ghostty ~/.config/ghostty
|
ln -sf ~/gits/dotfiles/.config/ghostty ~/.config/ghostty
|
||||||
ln -sf ~/gits/dotfiles/.config/starship.toml ~/.config/starship.toml
|
ln -sf ~/gits/dotfiles/.config/starship.toml ~/.config/starship.toml
|
||||||
|
ln -sf ~/gits/dotfiles/.config/neofetch ~/.config/neofetch
|
||||||
|
ln -sf ~/gits/dotfiles/.config/yabai ~/.config/yabai
|
||||||
|
|
||||||
|
# Btop & Htop Konfigurationsdateien verlinken
|
||||||
|
mkdir -p ~/.config/btop ~/.config/htop
|
||||||
|
ln -sf ~/gits/dotfiles/.config/btop/btop.conf ~/.config/btop/btop.conf
|
||||||
|
ln -sf ~/gits/dotfiles/.config/htop/htoprc ~/.config/htop/htoprc
|
||||||
|
|
||||||
|
# Tmux Konfiguration verlinken (modern & klassisch)
|
||||||
|
mkdir -p ~/.config/tmux
|
||||||
|
ln -sf ~/gits/dotfiles/.config/tmux/tmux.conf ~/.config/tmux/tmux.conf
|
||||||
|
ln -sf ~/gits/dotfiles/.config/tmux/tmux.conf ~/.tmux.conf
|
||||||
|
|
||||||
# Fish als default shell
|
# Fish als default shell
|
||||||
chsh -s $(which fish)
|
chsh -s $(which fish)
|
||||||
@@ -205,6 +220,25 @@ nvim
|
|||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
## 🤖 KI / AI CLI Tools (Optional)
|
||||||
|
|
||||||
|
Das Installationsskript kann optional verschiedene KI-Kommandozeilentools für Sie einrichten:
|
||||||
|
|
||||||
|
* **Google Antigravity CLI (`agy`)**: Das primäre AI-Agent-Werkzeug für dieses Setup.
|
||||||
|
* Installation: `curl -sS https://antigravity.google/install.sh | bash`
|
||||||
|
* **Claude Code (`@anthropic-ai/claude-code`)**: Anthropic's offizielles, agentisches Terminal-Tool für Claude.
|
||||||
|
* Installation (via Mise): `mise exec -- npm install -g @anthropic-ai/claude-code`
|
||||||
|
* **LLM CLI (`llm`)**: Simon Willison's CLI für den universellen API-Zugriff auf ChatGPT, Claude und DeepSeek über Plugins.
|
||||||
|
* Installation: `brew install llm` bzw. `pip install llm`
|
||||||
|
* Plugins: `llm install llm-claude llm-gpt3 llm-deepseek`
|
||||||
|
* **tgpt**: Ein Zero-Config Terminal ChatGPT Client (benötigt keinen API-Key).
|
||||||
|
* Installation: `brew install tgpt`
|
||||||
|
* **Ollama**: Zum lokalen Offline-Ausführen von Modellen wie `deepseek-coder`.
|
||||||
|
* Installation: `brew install --cask ollama` (macOS) bzw. `curl -fsSL https://ollama.com/install.sh | sh` (Linux)
|
||||||
|
* Ausführen: `ollama run deepseek-coder`
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
## 🎨 Features
|
## 🎨 Features
|
||||||
|
|
||||||
### Neovim
|
### Neovim
|
||||||
@@ -216,7 +250,7 @@ nvim
|
|||||||
✅ **Lazy Loading** - Schneller Start
|
✅ **Lazy Loading** - Schneller Start
|
||||||
|
|
||||||
### Fish Shell
|
### Fish Shell
|
||||||
✅ **NVM Integration** - Node Version Management
|
✅ **Mise Integration** - Modernes Tool- & Node-Version-Management
|
||||||
✅ **FZF Integration** - Fuzzy finding everywhere
|
✅ **FZF Integration** - Fuzzy finding everywhere
|
||||||
✅ **Git Shortcuts** - Aliases für häufige Commands
|
✅ **Git Shortcuts** - Aliases für häufige Commands
|
||||||
✅ **Kubernetes** - kubectl completion
|
✅ **Kubernetes** - kubectl completion
|
||||||
|
|||||||
+196
-6
@@ -143,11 +143,48 @@ backup_configs() {
|
|||||||
[ -d ~/.config/btop ] && cp -r ~/.config/btop "$BACKUP_DIR/"
|
[ -d ~/.config/btop ] && cp -r ~/.config/btop "$BACKUP_DIR/"
|
||||||
[ -d ~/.config/htop ] && cp -r ~/.config/htop "$BACKUP_DIR/"
|
[ -d ~/.config/htop ] && cp -r ~/.config/htop "$BACKUP_DIR/"
|
||||||
[ -d ~/.config/yabai ] && cp -r ~/.config/yabai "$BACKUP_DIR/"
|
[ -d ~/.config/yabai ] && cp -r ~/.config/yabai "$BACKUP_DIR/"
|
||||||
|
[ -d ~/.config/mise ] && cp -r ~/.config/mise "$BACKUP_DIR/"
|
||||||
[ -f ~/.config/starship.toml ] && cp ~/.config/starship.toml "$BACKUP_DIR/"
|
[ -f ~/.config/starship.toml ] && cp ~/.config/starship.toml "$BACKUP_DIR/"
|
||||||
|
[ -f ~/.tmux.conf ] && cp ~/.tmux.conf "$BACKUP_DIR/"
|
||||||
|
[ -d ~/.config/tmux ] && cp -r ~/.config/tmux "$BACKUP_DIR/"
|
||||||
|
|
||||||
log "Backup created: $BACKUP_DIR"
|
log "Backup created: $BACKUP_DIR"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
install_1password_cli() {
|
||||||
|
log "Installing 1Password CLI..."
|
||||||
|
|
||||||
|
if command -v op &> /dev/null; then
|
||||||
|
log "1Password CLI is already installed."
|
||||||
|
return
|
||||||
|
fi
|
||||||
|
|
||||||
|
case $OS in
|
||||||
|
"macos")
|
||||||
|
install_cask 1password-cli
|
||||||
|
;;
|
||||||
|
"arch")
|
||||||
|
if command -v yay &> /dev/null; then
|
||||||
|
yay -S --noconfirm 1password-cli
|
||||||
|
else
|
||||||
|
sudo pacman -S --noconfirm 1password-cli
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
"debian")
|
||||||
|
log "Configuring APT repository for 1Password..."
|
||||||
|
curl -sS https://downloads.1password.com/linux/keys/1password.asc | sudo gpg --dearmor --output /usr/share/keyrings/1password-archive-keyring.gpg
|
||||||
|
echo 'deb [arch=amd64 signed-by=/usr/share/keyrings/1password-archive-keyring.gpg] https://downloads.1password.com/linux/debian/amd64 stable main' | sudo tee /etc/apt/sources.list.d/1password.list
|
||||||
|
sudo apt update && sudo apt install -y 1password-cli
|
||||||
|
;;
|
||||||
|
"fedora")
|
||||||
|
log "Configuring DNF repository for 1Password..."
|
||||||
|
sudo rpm --import https://downloads.1password.com/linux/keys/1password.asc
|
||||||
|
sudo sh -c 'echo -e "[1password]\nname=1Password Stable Channel\nbaseurl=https://downloads.1password.com/linux/rpm/stable/\$basearch\nenabled=1\ngpgcheck=1\ngpgkey=https://downloads.1password.com/linux/keys/1password.asc" > /etc/yum.repos.d/1password.repo'
|
||||||
|
sudo dnf install -y 1password-cli
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
}
|
||||||
|
|
||||||
install_core_tools() {
|
install_core_tools() {
|
||||||
log "Installing core development tools..."
|
log "Installing core development tools..."
|
||||||
|
|
||||||
@@ -164,11 +201,12 @@ install_core_tools() {
|
|||||||
install_package bat
|
install_package bat
|
||||||
install_package btop
|
install_package btop
|
||||||
install_package neofetch
|
install_package neofetch
|
||||||
|
install_package tmux
|
||||||
|
|
||||||
# Development
|
# Development
|
||||||
install_package go
|
install_package go
|
||||||
install_package python3
|
install_package python3
|
||||||
install_package node
|
install_package mise
|
||||||
|
|
||||||
# Terminal
|
# Terminal
|
||||||
install_cask ghostty
|
install_cask ghostty
|
||||||
@@ -176,6 +214,11 @@ install_core_tools() {
|
|||||||
# Optional tools
|
# Optional tools
|
||||||
install_package direnv
|
install_package direnv
|
||||||
install_package lazygit
|
install_package lazygit
|
||||||
|
|
||||||
|
# Window manager
|
||||||
|
log "Tapping koekeishiya/formulae for yabai..."
|
||||||
|
brew tap koekeishiya/formulae
|
||||||
|
install_package yabai
|
||||||
;;
|
;;
|
||||||
"arch")
|
"arch")
|
||||||
# Check if yay is installed
|
# Check if yay is installed
|
||||||
@@ -189,8 +232,8 @@ install_core_tools() {
|
|||||||
|
|
||||||
# Install via yay
|
# Install via yay
|
||||||
yay -S --noconfirm \
|
yay -S --noconfirm \
|
||||||
git neovim fish starship fzf ripgrep fd bat btop neofetch \
|
git neovim fish starship fzf ripgrep fd bat btop neofetch tmux \
|
||||||
go python nodejs npm \
|
go python mise \
|
||||||
ghostty direnv lazygit
|
ghostty direnv lazygit
|
||||||
;;
|
;;
|
||||||
"debian"|"fedora")
|
"debian"|"fedora")
|
||||||
@@ -202,6 +245,7 @@ install_core_tools() {
|
|||||||
install_package fd-find
|
install_package fd-find
|
||||||
install_package bat
|
install_package bat
|
||||||
install_package neofetch
|
install_package neofetch
|
||||||
|
install_package tmux
|
||||||
|
|
||||||
# Neovim (from source if needed)
|
# Neovim (from source if needed)
|
||||||
if ! command -v nvim &> /dev/null; then
|
if ! command -v nvim &> /dev/null; then
|
||||||
@@ -215,12 +259,19 @@ install_core_tools() {
|
|||||||
# Development
|
# Development
|
||||||
install_package golang
|
install_package golang
|
||||||
install_package python3
|
install_package python3
|
||||||
install_package nodejs
|
|
||||||
|
# Install mise
|
||||||
|
if ! command -v mise &> /dev/null; then
|
||||||
|
log "Installing mise version manager..."
|
||||||
|
curl https://mise.run | sh
|
||||||
|
fi
|
||||||
|
|
||||||
warn "Ghostty needs manual installation on $OS"
|
warn "Ghostty needs manual installation on $OS"
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
|
install_1password_cli
|
||||||
|
|
||||||
log "Core tools installed!"
|
log "Core tools installed!"
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -338,18 +389,145 @@ setup_other_configs() {
|
|||||||
ln -sf "$DOTFILES_DIR/.config/yabai" ~/.config/yabai
|
ln -sf "$DOTFILES_DIR/.config/yabai" ~/.config/yabai
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# Mise
|
||||||
|
if [ -d "$DOTFILES_DIR/.config/mise" ]; then
|
||||||
|
rm -rf ~/.config/mise
|
||||||
|
ln -sf "$DOTFILES_DIR/.config/mise" ~/.config/mise
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Tmux
|
||||||
|
if [ -d "$DOTFILES_DIR/.config/tmux" ]; then
|
||||||
|
rm -rf ~/.config/tmux
|
||||||
|
ln -sf "$DOTFILES_DIR/.config/tmux" ~/.config/tmux
|
||||||
|
# Symlink tmux.conf to home directory for backward compatibility
|
||||||
|
rm -f ~/.tmux.conf
|
||||||
|
ln -sf "$DOTFILES_DIR/.config/tmux/tmux.conf" ~/.tmux.conf
|
||||||
|
fi
|
||||||
|
|
||||||
log "Configurations symlinked!"
|
log "Configurations symlinked!"
|
||||||
}
|
}
|
||||||
|
|
||||||
install_playwright() {
|
install_playwright() {
|
||||||
log "Installing Playwright..."
|
log "Installing Playwright..."
|
||||||
|
|
||||||
if command -v npm &> /dev/null; then
|
local MISE_CMD="mise"
|
||||||
|
if [ -f "$HOME/.local/bin/mise" ]; then
|
||||||
|
MISE_CMD="$HOME/.local/bin/mise"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if command -v "$MISE_CMD" &> /dev/null; then
|
||||||
|
log "Using mise node runtime for global packages..."
|
||||||
|
"$MISE_CMD" exec -- npm install -g @playwright/test
|
||||||
|
"$MISE_CMD" exec -- npx playwright install
|
||||||
|
log "Playwright installed!"
|
||||||
|
elif command -v npm &> /dev/null; then
|
||||||
|
log "Using system npm..."
|
||||||
npm install -g @playwright/test
|
npm install -g @playwright/test
|
||||||
npx playwright install
|
npx playwright install
|
||||||
log "Playwright installed!"
|
log "Playwright installed!"
|
||||||
else
|
else
|
||||||
warn "npm not found, skipping Playwright"
|
warn "npm / mise not found, skipping Playwright"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
install_optional_ai_tools() {
|
||||||
|
# Check if stdin is a terminal (tty) to avoid hanging in automated setups
|
||||||
|
if [ ! -t 0 ]; then
|
||||||
|
log "Non-interactive shell detected, skipping optional AI tools installation."
|
||||||
|
return 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
log "Checking Google Antigravity CLI status..."
|
||||||
|
if ! command -v agy &> /dev/null; then
|
||||||
|
warn "Google Antigravity CLI (agy) is not installed in the PATH."
|
||||||
|
log "To install it, run the official installer: curl -sS https://antigravity.google/install.sh | bash"
|
||||||
|
else
|
||||||
|
log "Google Antigravity CLI (agy) is already installed."
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo -e "\n${YELLOW}=== Optional AI CLI Tools ===${NC}"
|
||||||
|
|
||||||
|
# Prompt helper
|
||||||
|
prompt_yes_no() {
|
||||||
|
local prompt_msg=$1
|
||||||
|
local response
|
||||||
|
read -p "$prompt_msg [y/N]: " response
|
||||||
|
case "$response" in
|
||||||
|
[yY][eE][sS]|[yY])
|
||||||
|
return 0
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
return 1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
}
|
||||||
|
|
||||||
|
# 1. Claude Code
|
||||||
|
if prompt_yes_no "Do you want to install Claude Code (@anthropic-ai/claude-code)?"; then
|
||||||
|
log "Installing Claude Code..."
|
||||||
|
local MISE_CMD="mise"
|
||||||
|
[ -f "$HOME/.local/bin/mise" ] && MISE_CMD="$HOME/.local/bin/mise"
|
||||||
|
if command -v "$MISE_CMD" &> /dev/null; then
|
||||||
|
"$MISE_CMD" exec -- npm install -g @anthropic-ai/claude-code
|
||||||
|
elif command -v npm &> /dev/null; then
|
||||||
|
npm install -g @anthropic-ai/claude-code
|
||||||
|
else
|
||||||
|
warn "npm / mise not found, cannot install Claude Code."
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
# 2. Simon Willison's LLM CLI (supports OpenAI, Claude, DeepSeek via plugins)
|
||||||
|
if prompt_yes_no "Do you want to install Simon Willison's LLM CLI (supports ChatGPT, Claude, DeepSeek)?"; then
|
||||||
|
log "Installing LLM CLI..."
|
||||||
|
case $PACKAGE_MANAGER in
|
||||||
|
"brew")
|
||||||
|
brew install llm
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
if command -v pip3 &> /dev/null; then
|
||||||
|
pip3 install llm
|
||||||
|
elif command -v pip &> /dev/null; then
|
||||||
|
pip install llm
|
||||||
|
else
|
||||||
|
warn "pip not found, cannot install llm cli."
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
# Install plugins if llm is installed
|
||||||
|
if command -v llm &> /dev/null; then
|
||||||
|
log "Installing plugins for llm (llm-claude, llm-gpt3, llm-deepseek)..."
|
||||||
|
llm install llm-claude
|
||||||
|
llm install llm-gpt3
|
||||||
|
llm install llm-deepseek || true
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
# 3. tgpt (Zero-config terminal GPT chat client)
|
||||||
|
if prompt_yes_no "Do you want to install tgpt (Zero-config Terminal ChatGPT)?"; then
|
||||||
|
log "Installing tgpt..."
|
||||||
|
case $PACKAGE_MANAGER in
|
||||||
|
"brew")
|
||||||
|
brew install tgpt
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
curl -sSL https://raw.githubusercontent.com/aandrew-me/tgpt/main/install.sh | bash -s -- -y
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
fi
|
||||||
|
|
||||||
|
# 4. Ollama (for running DeepSeek locally offline)
|
||||||
|
if prompt_yes_no "Do you want to install Ollama (to run DeepSeek and other models locally)?"; then
|
||||||
|
log "Installing Ollama..."
|
||||||
|
case $OS in
|
||||||
|
"macos")
|
||||||
|
install_cask ollama
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
curl -fsSL https://ollama.com/install.sh | sh
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
log "To run DeepSeek locally after Ollama is running, execute: ollama run deepseek-coder"
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -361,7 +539,19 @@ main() {
|
|||||||
setup_fish
|
setup_fish
|
||||||
setup_neovim
|
setup_neovim
|
||||||
setup_other_configs
|
setup_other_configs
|
||||||
|
|
||||||
|
# Install runtimes via mise
|
||||||
|
local MISE_CMD="mise"
|
||||||
|
if [ -f "$HOME/.local/bin/mise" ]; then
|
||||||
|
MISE_CMD="$HOME/.local/bin/mise"
|
||||||
|
fi
|
||||||
|
if command -v "$MISE_CMD" &> /dev/null; then
|
||||||
|
log "Installing language runtimes configured in mise..."
|
||||||
|
"$MISE_CMD" install
|
||||||
|
fi
|
||||||
|
|
||||||
install_playwright
|
install_playwright
|
||||||
|
install_optional_ai_tools
|
||||||
|
|
||||||
echo -e "${GREEN}
|
echo -e "${GREEN}
|
||||||
╔══════════════════════════════════════════════════════════╗
|
╔══════════════════════════════════════════════════════════╗
|
||||||
|
|||||||
Reference in New Issue
Block a user