Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 0 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -64,7 +64,6 @@ zshell/**
!zshell/.zshrc
KeePass
Signal
fish
go
helm
pulseaudio-ctl
Expand Down
76 changes: 5 additions & 71 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,79 +5,13 @@ configuration repository on

- Raspberry Pi OS Lite
- pop! os
- Ubuntu

## Software used

- neovim (v0.10.3)
- zsh
- tmux

## Setup from scratch on debian system

This setup is applicable to debian and ubuntu

### Install dependencies

```bash
sudo apt install git nodejs
```

### Node Installation

Install node via nvm

See: https://github.com/nvm-sh/nvm?tab=readme-ov-file#installing-and-updating

### Zshell installation

- Install zsh

```bash
sudo apt install zsh
```

https://github.com/ohmyzsh/ohmyzsh/wiki/Installing-ZSH

- Install oh my zsh

See https://ohmyz.sh/#install


- Install zsh-autosuggestions

See https://github.com/zsh-users/zsh-autosuggestions/blob/master/INSTALL.md#oh-my-zsh

- Install atuin

https://atuin.sh/

### Clone dotfiles

Clone dotfiles from [github](https://github.com/wserr/dotfiles)

```bash
ssh-keygen # pick the default options

# install public key (id_rsa.pub) in github
# configure username and password
git config --global user.email "serruys.willem@hotmail.com"
git config --global user.name "wserr"

cd ~
mkdir system && cd system
git clone git@github.com:wserr/dotfiles.git

cd dotfiles
cp -r nvim ~/.config/nvim
cp zshell/.zshrc ~/
cp tmux/tmux.conf ~/.tmux.conf
```

### Tmux installation

```bash
sudo apt install tmux
```
- neovim (v0.11.2)
- zellij
- fish

### Neovim installation & configuration

Expand All @@ -100,6 +34,6 @@ git checkout stable
> NOTE: when updating neovim version, first remove the .deps folder before rebuilding.

```bash
sudo rm -r deps
sudo rm -r .deps
...
```
176 changes: 176 additions & 0 deletions fish/completions/copilot.fish

Large diffs are not rendered by default.

7 changes: 7 additions & 0 deletions fish/completions/fisher.fish
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
complete --command fisher --exclusive --long help --description "Print help"
complete --command fisher --exclusive --long version --description "Print version"
complete --command fisher --exclusive --condition __fish_use_subcommand --arguments install --description "Install plugins"
complete --command fisher --exclusive --condition __fish_use_subcommand --arguments update --description "Update installed plugins"
complete --command fisher --exclusive --condition __fish_use_subcommand --arguments remove --description "Remove installed plugins"
complete --command fisher --exclusive --condition __fish_use_subcommand --arguments list --description "List installed plugins matching regex"
complete --command fisher --exclusive --condition "__fish_seen_subcommand_from update remove" --arguments "(fisher list)"
9 changes: 9 additions & 0 deletions fish/completions/kcong.fish
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
#kafka-consumer-groups.sh --bootstrap-server pkc-57q33g.westeurope.azure.confluent.cloud:9092 --command-config "./admin.properties.confluent" --describe --all-groups > consumer-groups.txt
complete -c kcong -f

complete -c kcong -l bootstrap-server -a "(cat ~/.config/kafka/bootstrap-servers)" -d "Kafka bootstrap server"
complete -c kcong -l command-config -a "(find /home/willem/.config/kafka/clusters -type f)" -d "properties file"

complete -c kcong -l describe
complete -c kcong -l all-groups
complete -c kcong -l group
6 changes: 6 additions & 0 deletions fish/completions/kcons.fish
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
#kafka-consumer-groups.sh --bootstrap-server pkc-57q33g.westeurope.azure.confluent.cloud:9092 --command-config "./admin.properties.confluent" --describe --all-groups > consumer-groups.txt
complete -c kcons -f

complete -c kcons -l bootstrap-server -a "(cat ~/.config/kafka/bootstrap-servers)" -d "Kafka bootstrap server"
complete -c kcons -l consumer.config -a "(find /home/willem/.config/kafka/clusters -type f)" -d "properties file"
complete -c kcons -l topic
6 changes: 6 additions & 0 deletions fish/completions/kprod.fish
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
#kafka-consumer-groups.sh --bootstrap-server pkc-57q33g.westeurope.azure.confluent.cloud:9092 --command-config "./admin.properties.confluent" --describe --all-groups > consumer-groups.txt
complete -c kprod -f

complete -c kprod -l bootstrap-server -a "(cat ~/.config/kafka/bootstrap-servers)" -d "Kafka bootstrap server"
complete -c kprod -l producer.config -a "(find /home/willem/.config/kafka/clusters -type f)" -d "properties file"
complete -c kprod -l topic
21 changes: 21 additions & 0 deletions fish/completions/nvm.fish
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
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
)"
52 changes: 52 additions & 0 deletions fish/completions/timedatectl.fish
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
# All subcommands that timedatectl knows - this is useful for later.
set -l commands status set-time set-timezone list-timezones set-local-rtc set-ntp

# Disable file completions for the entire command
# because it does not take files anywhere
# Note that this can be undone by using "-F".
#
# File completions also need to be disabled
# if you want to have more control over what files are offered
# (e.g. just directories, or just files ending in ".mp3").
complete -c timedatectl -f

# This line offers the subcommands
# -"status",
# -"set-timezone",
# -"set-time"
# -"list-timezones"
# if no subcommand has been given so far.
#
# The `-n`/`--condition` option takes script as a string, which it executes.
# If it returns true, the completion is offered.
# Here the condition is the `__fish_seen_subcommand_from` helper function.
# It returns true if any of the given commands is used on the commandline,
# as determined by a simple heuristic.
# For more complex uses, you can write your own function.
# See e.g. the git completions for an example.
#
complete -c timedatectl -n "not __fish_seen_subcommand_from $commands" \
-a "status set-time set-timezone list-timezones"

# If the "set-timezone" subcommand is used,
# offer the output of `timedatectl list-timezones` as completions.
# Each line of output is used as a separate candidate,
# and anything after a tab is taken as the description.
# It's often useful to transform command output with `string` into that form.
complete -c timedatectl -n "__fish_seen_subcommand_from set-timezone" \
-a "(timedatectl list-timezones)"

# Completion candidates can also be described via `-d`,
# which is useful if the description is constant.
# Try to keep these short, because that means the user gets to see more at once.
complete -c timedatectl -n "not __fish_seen_subcommand_from $commands" \
-a "set-local-rtc" -d "Maintain RTC in local time"

# We can also limit options to certain subcommands by using conditions.
complete -c timedatectl -n "__fish_seen_subcommand_from set-local-rtc" \
-l adjust-system-clock -d 'Synchronize system clock from the RTC'

# These are simple options that can be used everywhere.
complete -c timedatectl -s h -l help -d 'Print a short help text and exit'
complete -c timedatectl -l version -d 'Print a short version string and exit'
complete -c timedatectl -l no-pager -d 'Do not pipe output into a pager'
2 changes: 2 additions & 0 deletions fish/conf.d/atuin.env.fish
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@

#source "$HOME/.atuin/bin/env.fish"
1 change: 1 addition & 0 deletions fish/conf.d/deno.fish
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
source "/home/willem/.deno/env.fish"
14 changes: 14 additions & 0 deletions fish/conf.d/fish_frozen_key_bindings.fish
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
# This file was created by fish when upgrading to version 4.3, to migrate
# the 'fish_key_bindings' variable from its old default scope (universal)
# to its new default scope (global). We recommend you delete this file
# and configure key bindings in ~/.config/fish/config.fish if needed.

# set --global fish_key_bindings fish_default_key_bindings

# Prior to version 4.3, fish shipped an event handler that runs
# `set --universal fish_key_bindings fish_default_key_bindings`
# whenever the fish_key_bindings variable is erased.
# This means that as long as any fish < 4.3 is still running on this system,
# we cannot complete the migration.
# As a workaround, erase the universal variable at every shell startup.
set --erase --universal fish_key_bindings
14 changes: 14 additions & 0 deletions fish/conf.d/fish_frozen_key_bindings.fish.bak
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
# This file was created by fish when upgrading to version 4.3, to migrate
# the 'fish_key_bindings' variable from its old default scope (universal)
# to its new default scope (global). We recommend you delete this file
# and configure key bindings in ~/.config/fish/config.fish if needed.

# set --global fish_key_bindings fish_default_key_bindings

# Prior to version 4.3, fish shipped an event handler that runs
# `set --universal fish_key_bindings fish_default_key_bindings`
# whenever the fish_key_bindings variable is erased.
# This means that as long as any fish < 4.3 is still running on this system,
# we cannot complete the migration.
# As a workaround, erase the universal variable at every shell startup.
set --erase --universal fish_key_bindings
45 changes: 45 additions & 0 deletions fish/conf.d/fish_frozen_theme.fish
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
# 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`).

set --global fish_color_autosuggestion 555
set --global fish_color_cancel -r
set --global fish_color_command brblue
set --global fish_color_comment brblack
set --global fish_color_cwd brgreen
set --global fish_color_cwd_root brred
set --global fish_color_end brgreen
set --global fish_color_error brred
set --global fish_color_escape bryellow
set --global fish_color_history_current --bold
set --global fish_color_host normal
set --global fish_color_host_remote bryellow
set --global fish_color_normal normal
set --global fish_color_operator brmagenta
set --global fish_color_param brcyan
set --global fish_color_quote bryellow
set --global fish_color_redirection brmagenta --bold
set --global fish_color_search_match bryellow --background=brblack --bold
set --global fish_color_selection brwhite --background=brblack --bold
set --global fish_color_status brred
set --global fish_color_user brgreen
set --global fish_color_valid_path --underline
set --global fish_pager_color_background
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 --bold
set --global fish_pager_color_secondary_background
set --global fish_pager_color_secondary_completion
set --global fish_pager_color_secondary_description
set --global fish_pager_color_secondary_prefix
set --global fish_pager_color_selected_background -r
set --global fish_pager_color_selected_completion
set --global fish_pager_color_selected_description
set --global fish_pager_color_selected_prefix
45 changes: 45 additions & 0 deletions fish/conf.d/fish_frozen_theme.fish.bak
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
# 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`).

set --global fish_color_autosuggestion 555
set --global fish_color_cancel -r
set --global fish_color_command brblue
set --global fish_color_comment brblack
set --global fish_color_cwd brgreen
set --global fish_color_cwd_root brred
set --global fish_color_end brgreen
set --global fish_color_error brred
set --global fish_color_escape bryellow
set --global fish_color_history_current --bold
set --global fish_color_host normal
set --global fish_color_host_remote bryellow
set --global fish_color_normal normal
set --global fish_color_operator brmagenta
set --global fish_color_param brcyan
set --global fish_color_quote bryellow
set --global fish_color_redirection brmagenta --bold
set --global fish_color_search_match bryellow --background=brblack --bold
set --global fish_color_selection brwhite --background=brblack --bold
set --global fish_color_status brred
set --global fish_color_user brgreen
set --global fish_color_valid_path --underline
set --global fish_pager_color_background
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 --bold
set --global fish_pager_color_secondary_background
set --global fish_pager_color_secondary_completion
set --global fish_pager_color_secondary_description
set --global fish_pager_color_secondary_prefix
set --global fish_pager_color_selected_background -r
set --global fish_pager_color_selected_completion
set --global fish_pager_color_selected_description
set --global fish_pager_color_selected_prefix
28 changes: 28 additions & 0 deletions fish/conf.d/nvm.fish
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
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
27 changes: 27 additions & 0 deletions fish/config.fish
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
set -gx EDITOR nvim

if status is-interactive
# Commands to run in interactive sessions can go here
end

# pnpm
set -gx PNPM_HOME "/home/willem/.local/share/pnpm"
if not string match -q -- $PNPM_HOME $PATH
set -gx PATH "$PNPM_HOME" $PATH
end
# pnpm end

# bun
set --export BUN_INSTALL "$HOME/.bun"
set --export PATH $HOME/.local/share/nvm/v25.6.1/bin $BUN_INSTALL/bin $PATH
set --export DOTNET_ROOT "$HOME/.dotnet"
set --export PATH $DOTNET_ROOT $DOTNET_ROOT/tools $PATH
set --export PATH $BUN_INSTALL/bin $PATH
set --export PATH /usr/local/go/bin $PATH
set --export PATH $HOME/Repos/Work/flutter/bin $PATH
set --export PATH $HOME/.pub-cache/bin $PATH

set --export CHROME_DEVEL_SANDBOX "/opt/google/chrome/chrome-sandbox"

# opencode
fish_add_path /home/willem/.opencode/bin
2 changes: 2 additions & 0 deletions fish/fish_plugins
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
jorgebucaran/fisher
jorgebucaran/nvm.fish
Loading