From f065ddb10821bb39327a52f7d26d7e24a8e13cfa Mon Sep 17 00:00:00 2001
From: Luca Bilke <bilke@tralios.de>
Date: Tue, 21 Mar 2023 19:21:09 +0100
Subject: [PATCH 1/7] cleanup

---
 .config/X11/xkb/keymap/default       |  2 +-
 .config/X11/xkb/symbols/custom       | 65 +++++++---------------------
 .config/kitty/kitty.conf             |  2 +-
 .local/share/icons/tokyonight-icons  |  1 -
 .local/share/themes/tokyonight-theme |  1 -
 5 files changed, 18 insertions(+), 53 deletions(-)
 delete mode 160000 .local/share/icons/tokyonight-icons
 delete mode 160000 .local/share/themes/tokyonight-theme

diff --git a/.config/X11/xkb/keymap/default b/.config/X11/xkb/keymap/default
index a3faa2ee..f67fa298 100644
--- a/.config/X11/xkb/keymap/default
+++ b/.config/X11/xkb/keymap/default
@@ -2,6 +2,6 @@ default xkb_keymap {
 	xkb_keycodes  { include "evdev+aliases(qwerty)" };
 	xkb_types     { include "complete" };
 	xkb_compat    { include "complete" };
-	xkb_symbols   { include "pc+us(dvorak)+inet(evdev)+capslock(super)+custom(ralt_mod3)+custom(group2_dvorak)" };
+	xkb_symbols   { include "pc+custom(dvorak)+inet(evdev)" };
 	xkb_geometry  { include "pc(pc105)" };
 };
diff --git a/.config/X11/xkb/symbols/custom b/.config/X11/xkb/symbols/custom
index 8c459156..270a004c 100644
--- a/.config/X11/xkb/symbols/custom
+++ b/.config/X11/xkb/symbols/custom
@@ -1,52 +1,19 @@
-// capslock as mod4
-partial modifier_keys
-xkb_symbols "caps_mod4" {
-    key <CAPS> { [ Super_L ] };
-    modifier_map Mod4 { <CAPS> };
-};
-
-// ralt as mod3
-partial modifier_keys
-xkb_symbols "ralt_mod3" {
-    include "group(switch)"
-    replace key <MENU> {
-        [ VoidSymbol, VoidSymbol ]
-    };
-    modifier_map Mod3 { <MENU> };
-};
-
-// group2 map for üöäß and some other things
 partial alphanumeric_keys
-xkb_symbols "group2_dvorak" {
-    key <AC01> { // A
-        symbols[Group2] = [ adiaeresis, Adiaeresis ]
-    };
-    key <AC02> { // O
-        symbols[Group2] = [ odiaeresis, Odiaeresis ]
-    };
-    key <AC04> { // U
-        symbols[Group2] = [ udiaeresis, Udiaeresis ]
-    };
-    key <AC10> { // S
-        symbols[Group2] = [ ssharp, ssharp ]
-    };
-    key <AB07> { // M
-        symbols[Group2] = [ mu, heart ]
-    };
-    key <TLDE> { // ~
-        symbols[Group2] = [ degree, infinity ]
-    };
-//     key <BKSP> {
-//         symbols[Group2] = [ BackSpace, BackSpace ]
-//     };
-//     key <SPCE> {
-//         symbols[Group2] = [ nobreakspace, nobreakspace ]
-//     };
-//     key <TAB> {
-//         symbols[Group2] = [ Tab, Tab ]
-//     };
-//     key <BKSP> {
-//         symbols[Group2] = [ BackSpace, BackSpace ]
-//     };
+xkb_symbols "dvorak" {
+    include "us(dvorak)"
+    name[Group1] = "English (Dvorak, custom level 3)";
+
+    key <TLDE>  { [grave,      asciitilde, degree                 ] };
+    key <AE04>  { [4,          dollar,     EuroSign               ] };
+
+    key <AC01>  { [a,          A,          adiaeresis, Adiaeresis ] };
+    key <AC02>  { [o,          O,          odiaeresis, Odiaeresis ] };
+    key <AC04>  { [u,          U,          udiaeresis, Udiaeresis ] };
+    key <AC10> { [s,          S,          ssharp                 ] };
+
+    key <BKSL>  { [ backslash, bar,        notsign,    brokenbar  ] };
+
+    include "level3(ralt_switch)"
+    include "capslock(super)"
 };
 
diff --git a/.config/kitty/kitty.conf b/.config/kitty/kitty.conf
index de4450f9..4d992e46 100644
--- a/.config/kitty/kitty.conf
+++ b/.config/kitty/kitty.conf
@@ -109,7 +109,7 @@ map kitty_mod+minus change_font_size all -2.0
 map kitty_mod+backspace change_font_size all 0
 
 # Select and act on visible text
-map kitty_mod+f>+u kitten hints --type url --program @
+map kitty_mod+f>u kitten hints --type url --program @
 map kitty_mod+f>shift+u kitten hints --type url --program
 map kitty_mod+f>p kitten hints --type path --program @
 map kitty_mod+f>shift+p kitten hints --type path --program
diff --git a/.local/share/icons/tokyonight-icons b/.local/share/icons/tokyonight-icons
deleted file mode 160000
index c522c6a5..00000000
--- a/.local/share/icons/tokyonight-icons
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit c522c6a5dd1cb8d53c8bfc47745f313a734eea61
diff --git a/.local/share/themes/tokyonight-theme b/.local/share/themes/tokyonight-theme
deleted file mode 160000
index 67c4bb6d..00000000
--- a/.local/share/themes/tokyonight-theme
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit 67c4bb6d6bb415acea9d1c9a97152083d7f9c724

From 1c5f446846dc880fa6e3279c0a8abd8a84e06011 Mon Sep 17 00:00:00 2001
From: Luca Bilke <bilke@tralios.de>
Date: Tue, 21 Mar 2023 19:21:46 +0100
Subject: [PATCH 2/7] small changes

---
 .config/lf/lfrc                              |  36 +-
 .config/shell/profile                        |   4 +-
 .config/zsh/.kubernetesrc_ansible            | 589 +++++++++++++++++++
 .config/zsh/.zshrc                           |   3 +
 .local/share/librewolf/chrome/userChrome.css |  20 +-
 5 files changed, 635 insertions(+), 17 deletions(-)
 create mode 100644 .config/zsh/.kubernetesrc_ansible

diff --git a/.config/lf/lfrc b/.config/lf/lfrc
index 766f7574..d9ec3560 100644
--- a/.config/lf/lfrc
+++ b/.config/lf/lfrc
@@ -148,7 +148,7 @@ cmd paste &{{
     lf -remote "send clear"
 }}
 
-cmd dupe &{{
+cmd dupe %{{
   for file in $fx; do
     find "$PWD" "$file" | grep -oP '(?<=.\.~)\d+(?=~$)' | sort -n | tail -1 | (
       ext=$(($(cat /dev/stdin)+1))
@@ -160,11 +160,37 @@ cmd dupe &{{
 
 cmd share $curl -F"file=@$fx" https://0x0.snaile.de | xclip -r -selection c
 
+cmd fzfsearch ${{
+    file="$(fzf)"
+    [ -d $file ] && lf -remote "send $id cd $file"
+    [ -f $file ] && lf -remote "send $id select $file"
+}}
+cmd fzftags ${{
+    file="$(cat ${XDG_DATA_HOME:-$HOME/.local/share}/lf/tags | sed 's/:\*$//' | fzf)"
+    [ -d $file ] && lf -remote "send $id cd $file"
+    [ -f $file ] && lf -remote "send $id select $file"
+}}
+cmd fzfmarks ${{
+    file="$(cat ${XDG_DATA_HOME:-$HOME/.local/share}/lf/marks | sed 's/^.://' | fzf)"
+    [ -d $file ] && lf -remote "send $id cd $file"
+    [ -f $file ] && lf -remote "send $id select $file"
+}}
+cmd fzfshortcutfiles ${{
+    file="$(cat ${XDG_DATA_HOME:-$HOME/.local/share}/lf/shortcut-files | fzf)"
+    lf -remote "send $id select $file"
+}}
+cmd fzfshortcutdirs ${{
+    file="$(cat ${XDG_DATA_HOME:-$HOME/.local/share}/lf/shortcut-dirs | fzf)"
+    [ -d $file ] && lf -remote "send $id cd $file"
+    lf -remote "send $id select $file"
+}}
+
 # Bindings
-map <c-c>a $lf -remote "send $id select '$(fzf)'"
-map <c-c>t $lf -remote "send $id select '$(cat ${XDG_DATA_HOME:-$HOME/.local/share}/lf/tags | sed 's/:\*$//' | fzf)'"
-map <c-c>f $lf -remote "send $id select '$(cat ${XDG_DATA_HOME:-$HOME/.local/share}/lf/shortcut-files | fzf)'"
-map <c-c>d $lf -remote "send $id cd '$(cat ${XDG_DATA_HOME:-$HOME/.local/share}/lf/shortcut-dirs | fzf)'"
+map <c-c>a fzfsearch
+map <c-c>t fzftags
+map <c-c>m fzfmarks
+map <c-c>f fzfshortcutfiles
+map <c-c>d fzfshortcutdirs
 map J $dir=$(sed -e 's/\s*#.*//' -e '/^$/d' -e 's/^\S*\s*//' ${XDG_CONFIG_HOME:-$HOME/.config}/shell/bm-dirs | fzf) && lf -remote "send $id cd $(eval echo $dir)"
 map D trash
 map <c-d> delete
diff --git a/.config/shell/profile b/.config/shell/profile
index d8006e7f..8145192a 100644
--- a/.config/shell/profile
+++ b/.config/shell/profile
@@ -2,9 +2,9 @@
 
 # profile file. Runs on login. Environmental variables are set here.
 
-# Adds `~/.local/bin` to $PATH
 localpath="$(find -L ~/.local/bin -type d -printf %p: | sed 's/.$//')"
-export PATH="$PATH:~/.local/share/npm-global/bin:$localpath"
+export PATH="$PATH:$HOME/.local/share/npm-global/bin:$localpath"
+export FPATH="$FPATH:$HOME/.local/share/zsh/functions:$HOME/.local/share/zsh/site-functions"
 
 # Default programs:
 export EDITOR="nvim"
diff --git a/.config/zsh/.kubernetesrc_ansible b/.config/zsh/.kubernetesrc_ansible
new file mode 100644
index 00000000..21b35a8f
--- /dev/null
+++ b/.config/zsh/.kubernetesrc_ansible
@@ -0,0 +1,589 @@
+function kctl () {
+    case "$1" in
+        (netsyno) shift
+            kubectl --kubeconfig /home/luca/.local/src/git/ansible/classes/kubeconfig/netsyno.kubernetes.tralios.de.yaml $@ ;;
+        (testing) shift
+            kubectl --kubeconfig /home/luca/.local/src/git/ansible/classes/kubeconfig/testing.kubernetes.tralios.de.yaml $@ ;;
+        (production) shift
+            kubectl --kubeconfig /home/luca/.local/src/git/ansible/classes/kubeconfig/production.kubernetes.tralios.de.yaml $@ ;;
+        (server315) shift
+            kubectl --kubeconfig /home/luca/.local/src/git/ansible/classes/kubeconfig/server315.kubernetes.tralios.de.yaml $@ ;;
+        (nds) shift
+            kubectl --kubeconfig /home/luca/.local/src/git/ansible/classes/kubeconfig/nds.kubernetes.tralios.de.yaml $@ ;;
+        (hetzner) shift
+            kubectl --kubeconfig /home/luca/.local/src/git/ansible/classes/kubeconfig/hetzner.kubernetes.tralios.de.yaml $@ ;;
+        (communalfmdemo) shift
+            kubectl --kubeconfig /home/luca/.local/src/git/ansible/classes/kubeconfig/communalfmdemo.kubernetes.tralios.de.yaml $@ ;;
+        (customer) shift
+            kubectl --kubeconfig /home/luca/.local/src/git/ansible/classes/kubeconfig/customer.kubernetes.tralios.de.yaml $@ ;;
+        (k3s_testing) shift
+            kubectl --kubeconfig /home/luca/.local/src/git/ansible/classes/kubeconfig/k3s-testing.kubernetes.tralios.de.yaml $@ ;;
+        (*) kubeconfig=$1
+            shift
+            kubectl --kubeconfig ~/.kube/config_${kubeconfig} $@ ;;
+    esac
+}
+
+function velero () {
+    case "$1" in
+        (netsyno) shift
+            /usr/local/bin/velero --kubeconfig /home/luca/.local/src/git/ansible/classes/kubeconfig/netsyno.kubernetes.tralios.de.yaml $@ ;;
+        (testing) shift
+            /usr/local/bin/velero --kubeconfig /home/luca/.local/src/git/ansible/classes/kubeconfig/testing.kubernetes.tralios.de.yaml $@ ;;
+        (production) shift
+            /usr/local/bin/velero --kubeconfig /home/luca/.local/src/git/ansible/classes/kubeconfig/production.kubernetes.tralios.de.yaml $@ ;;
+        (server315) shift
+            /usr/local/bin/velero --kubeconfig /home/luca/.local/src/git/ansible/classes/kubeconfig/server315.kubernetes.tralios.de.yaml $@ ;;
+        (nds) shift
+            /usr/local/bin/velero --kubeconfig /home/luca/.local/src/git/ansible/classes/kubeconfig/nds.kubernetes.tralios.de.yaml $@ ;;
+        (hetzner) shift
+            /usr/local/bin/velero --kubeconfig /home/luca/.local/src/git/ansible/classes/kubeconfig/hetzner.kubernetes.tralios.de.yaml $@ ;;
+        (communalfmdemo) shift
+            /usr/local/bin/velero --kubeconfig /home/luca/.local/src/git/ansible/classes/kubeconfig/communalfmdemo.kubernetes.tralios.de.yaml $@ ;;
+        (customer) shift
+            /usr/local/bin/velero --kubeconfig /home/luca/.local/src/git/ansible/classes/kubeconfig/customer.kubernetes.tralios.de.yaml $@ ;;
+        (k3s_testing) shift
+            /usr/local/bin/velero --kubeconfig /home/luca/.local/src/git/ansible/classes/kubeconfig/k3s-testing.kubernetes.tralios.de.yaml $@ ;;
+        (*) kubeconfig=$1
+            shift
+            /usr/local/bin/velero --kubeconfig ~/.kube/config_${kubeconfig} $@ ;;
+    esac
+}
+
+# function kubectl () {
+#     case "$1" in
+# #         (netsyno) shift
+#             /usr/local/bin/kubectl --kubeconfig /home/luca/.local/src/git/ansible/classes/kubeconfig/netsyno.kubernetes.tralios.de.yaml $@ ;;
+# #         (testing) shift
+#             /usr/local/bin/kubectl --kubeconfig /home/luca/.local/src/git/ansible/classes/kubeconfig/testing.kubernetes.tralios.de.yaml $@ ;;
+# #         (production) shift
+#             /usr/local/bin/kubectl --kubeconfig /home/luca/.local/src/git/ansible/classes/kubeconfig/production.kubernetes.tralios.de.yaml $@ ;;
+# #         (server315) shift
+#             /usr/local/bin/kubectl --kubeconfig /home/luca/.local/src/git/ansible/classes/kubeconfig/server315.kubernetes.tralios.de.yaml $@ ;;
+# #         (nds) shift
+#             /usr/local/bin/kubectl --kubeconfig /home/luca/.local/src/git/ansible/classes/kubeconfig/nds.kubernetes.tralios.de.yaml $@ ;;
+# #         (hetzner) shift
+#             /usr/local/bin/kubectl --kubeconfig /home/luca/.local/src/git/ansible/classes/kubeconfig/hetzner.kubernetes.tralios.de.yaml $@ ;;
+# #         (communalfmdemo) shift
+#             /usr/local/bin/kubectl --kubeconfig /home/luca/.local/src/git/ansible/classes/kubeconfig/communalfmdemo.kubernetes.tralios.de.yaml $@ ;;
+# #         (customer) shift
+#             /usr/local/bin/kubectl --kubeconfig /home/luca/.local/src/git/ansible/classes/kubeconfig/customer.kubernetes.tralios.de.yaml $@ ;;
+# #         (k3s_testing) shift
+#             /usr/local/bin/kubectl --kubeconfig /home/luca/.local/src/git/ansible/classes/kubeconfig/k3s-testing.kubernetes.tralios.de.yaml $@ ;;
+# #         (*) kubeconfig=$1
+#             shift
+#             /usr/local/bin/kubectl --kubeconfig ~/.kube/config_${kubeconfig} $@ ;;
+#     esac
+# }
+
+alias kubectl_netsyno="export KUBECONFIG=/home/luca/.local/src/git/ansible/classes/kubeconfig/netsyno.kubernetes.tralios.de.yaml; kubectl"
+alias velero_netsyno="export KUBECONFIG=/home/luca/.local/src/git/ansible/classes/kubeconfig/netsyno.kubernetes.tralios.de.yaml; /usr/local/bin/velero"
+alias kubectl_testing="export KUBECONFIG=/home/luca/.local/src/git/ansible/classes/kubeconfig/testing.kubernetes.tralios.de.yaml; kubectl"
+alias velero_testing="export KUBECONFIG=/home/luca/.local/src/git/ansible/classes/kubeconfig/testing.kubernetes.tralios.de.yaml; /usr/local/bin/velero"
+alias kubectl_production="export KUBECONFIG=/home/luca/.local/src/git/ansible/classes/kubeconfig/production.kubernetes.tralios.de.yaml; kubectl"
+alias velero_production="export KUBECONFIG=/home/luca/.local/src/git/ansible/classes/kubeconfig/production.kubernetes.tralios.de.yaml; /usr/local/bin/velero"
+alias kubectl_server315="export KUBECONFIG=/home/luca/.local/src/git/ansible/classes/kubeconfig/server315.kubernetes.tralios.de.yaml; kubectl"
+alias velero_server315="export KUBECONFIG=/home/luca/.local/src/git/ansible/classes/kubeconfig/server315.kubernetes.tralios.de.yaml; /usr/local/bin/velero"
+alias kubectl_nds="export KUBECONFIG=/home/luca/.local/src/git/ansible/classes/kubeconfig/nds.kubernetes.tralios.de.yaml; kubectl"
+alias velero_nds="export KUBECONFIG=/home/luca/.local/src/git/ansible/classes/kubeconfig/nds.kubernetes.tralios.de.yaml; /usr/local/bin/velero"
+alias kubectl_hetzner="export KUBECONFIG=/home/luca/.local/src/git/ansible/classes/kubeconfig/hetzner.kubernetes.tralios.de.yaml; kubectl"
+alias velero_hetzner="export KUBECONFIG=/home/luca/.local/src/git/ansible/classes/kubeconfig/hetzner.kubernetes.tralios.de.yaml; /usr/local/bin/velero"
+alias kubectl_communalfmdemo="export KUBECONFIG=/home/luca/.local/src/git/ansible/classes/kubeconfig/communalfmdemo.kubernetes.tralios.de.yaml; kubectl"
+alias velero_communalfmdemo="export KUBECONFIG=/home/luca/.local/src/git/ansible/classes/kubeconfig/communalfmdemo.kubernetes.tralios.de.yaml; /usr/local/bin/velero"
+alias kubectl_customer="export KUBECONFIG=/home/luca/.local/src/git/ansible/classes/kubeconfig/customer.kubernetes.tralios.de.yaml; kubectl"
+alias velero_customer="export KUBECONFIG=/home/luca/.local/src/git/ansible/classes/kubeconfig/customer.kubernetes.tralios.de.yaml; /usr/local/bin/velero"
+alias kubectl_k3s_testing="export KUBECONFIG=/home/luca/.local/src/git/ansible/classes/kubeconfig/k3s-testing.kubernetes.tralios.de.yaml; kubectl"
+alias velero_k3s_testing="export KUBECONFIG=/home/luca/.local/src/git/ansible/classes/kubeconfig/k3s-testing.kubernetes.tralios.de.yaml; /usr/local/bin/velero"
+
+
+function kubedash () {
+     case "$1" in
+         (netsyno) kubeconfig=/home/luca/.local/src/git/ansible/classes/kubeconfig/netsyno.kubernetes.tralios.de.yaml; cluster=netsyno.kubernetes.tralios.de  ;;
+         (testing) kubeconfig=/home/luca/.local/src/git/ansible/classes/kubeconfig/testing.kubernetes.tralios.de.yaml; cluster=testing.kubernetes.tralios.de  ;;
+         (production) kubeconfig=/home/luca/.local/src/git/ansible/classes/kubeconfig/production.kubernetes.tralios.de.yaml; cluster=production.kubernetes.tralios.de  ;;
+         (server315) kubeconfig=/home/luca/.local/src/git/ansible/classes/kubeconfig/server315.kubernetes.tralios.de.yaml; cluster=server315.kubernetes.tralios.de  ;;
+         (nds) kubeconfig=/home/luca/.local/src/git/ansible/classes/kubeconfig/nds.kubernetes.tralios.de.yaml; cluster=nds.kubernetes.tralios.de  ;;
+         (hetzner) kubeconfig=/home/luca/.local/src/git/ansible/classes/kubeconfig/hetzner.kubernetes.tralios.de.yaml; cluster=hetzner.kubernetes.tralios.de  ;;
+         (communalfmdemo) kubeconfig=/home/luca/.local/src/git/ansible/classes/kubeconfig/communalfmdemo.kubernetes.tralios.de.yaml; cluster=communalfmdemo.kubernetes.tralios.de  ;;
+         (customer) kubeconfig=/home/luca/.local/src/git/ansible/classes/kubeconfig/customer.kubernetes.tralios.de.yaml; cluster=customer.kubernetes.tralios.de  ;;
+         (k3s_testing) kubeconfig=/home/luca/.local/src/git/ansible/classes/kubeconfig/k3s-testing.kubernetes.tralios.de.yaml; cluster=k3s-testing.kubernetes.tralios.de  ;;
+#         (*) kubeconfig=/home/luca/.local/src/git/ansible/classes/kubeconfig/$1.yaml ;;
+     esac
+     local token=$(kubectl --kubeconfig ${kubeconfig} -n kubernetes-dashboard describe secret `kubectl --kubeconfig ${kubeconfig} get secret -n kubernetes-dashboard | grep admin-user | awk '{ print $1}'` | grep token: | awk '{ print $2}')
+     echo ${token} | xsel -b -i
+     xdg-open https://dashboard.${cluster}/ > /dev/null 2>&1 &
+     #kubectl --kubeconfig ${kubeconfig} proxy
+}
+
+function kubedash_netsyno () {
+     local kubeconfig=/home/luca/.local/src/git/ansible/classes/kubeconfig/netsyno.kubernetes.tralios.de.yaml
+     local token=$(kubectl --kubeconfig ${kubeconfig} -n kubernetes-dashboard describe secret `kubectl --kubeconfig ${kubeconfig} get secret -n kubernetes-dashboard | grep admin-user | awk '{ print $1}'` | grep token: | awk '{ print $2}')
+     echo ${token} | xsel -b -i
+     xdg-open https://dashboard.netsyno.kubernetes.tralios.de/#/login > /dev/null 2>&1 &
+     #kubectl --kubeconfig ${kubeconfig} proxy
+}
+
+function kubedash_testing () {
+     local kubeconfig=/home/luca/.local/src/git/ansible/classes/kubeconfig/testing.kubernetes.tralios.de.yaml
+     local token=$(kubectl --kubeconfig ${kubeconfig} -n kubernetes-dashboard describe secret `kubectl --kubeconfig ${kubeconfig} get secret -n kubernetes-dashboard | grep admin-user | awk '{ print $1}'` | grep token: | awk '{ print $2}')
+     echo ${token} | xsel -b -i
+     xdg-open https://dashboard.testing.kubernetes.tralios.de/#/login > /dev/null 2>&1 &
+     #kubectl --kubeconfig ${kubeconfig} proxy
+}
+
+function kubedash_production () {
+     local kubeconfig=/home/luca/.local/src/git/ansible/classes/kubeconfig/production.kubernetes.tralios.de.yaml
+     local token=$(kubectl --kubeconfig ${kubeconfig} -n kubernetes-dashboard describe secret `kubectl --kubeconfig ${kubeconfig} get secret -n kubernetes-dashboard | grep admin-user | awk '{ print $1}'` | grep token: | awk '{ print $2}')
+     echo ${token} | xsel -b -i
+     xdg-open https://dashboard.production.kubernetes.tralios.de/#/login > /dev/null 2>&1 &
+     #kubectl --kubeconfig ${kubeconfig} proxy
+}
+
+function kubedash_server315 () {
+     local kubeconfig=/home/luca/.local/src/git/ansible/classes/kubeconfig/server315.kubernetes.tralios.de.yaml
+     local token=$(kubectl --kubeconfig ${kubeconfig} -n kubernetes-dashboard describe secret `kubectl --kubeconfig ${kubeconfig} get secret -n kubernetes-dashboard | grep admin-user | awk '{ print $1}'` | grep token: | awk '{ print $2}')
+     echo ${token} | xsel -b -i
+     xdg-open https://dashboard.server315.kubernetes.tralios.de/#/login > /dev/null 2>&1 &
+     #kubectl --kubeconfig ${kubeconfig} proxy
+}
+
+function kubedash_nds () {
+     local kubeconfig=/home/luca/.local/src/git/ansible/classes/kubeconfig/nds.kubernetes.tralios.de.yaml
+     local token=$(kubectl --kubeconfig ${kubeconfig} -n kubernetes-dashboard describe secret `kubectl --kubeconfig ${kubeconfig} get secret -n kubernetes-dashboard | grep admin-user | awk '{ print $1}'` | grep token: | awk '{ print $2}')
+     echo ${token} | xsel -b -i
+     xdg-open https://dashboard.nds.kubernetes.tralios.de/#/login > /dev/null 2>&1 &
+     #kubectl --kubeconfig ${kubeconfig} proxy
+}
+
+function kubedash_hetzner () {
+     local kubeconfig=/home/luca/.local/src/git/ansible/classes/kubeconfig/hetzner.kubernetes.tralios.de.yaml
+     local token=$(kubectl --kubeconfig ${kubeconfig} -n kubernetes-dashboard describe secret `kubectl --kubeconfig ${kubeconfig} get secret -n kubernetes-dashboard | grep admin-user | awk '{ print $1}'` | grep token: | awk '{ print $2}')
+     echo ${token} | xsel -b -i
+     xdg-open https://dashboard.hetzner.kubernetes.tralios.de/#/login > /dev/null 2>&1 &
+     #kubectl --kubeconfig ${kubeconfig} proxy
+}
+
+function kubedash_communalfmdemo () {
+     local kubeconfig=/home/luca/.local/src/git/ansible/classes/kubeconfig/communalfmdemo.kubernetes.tralios.de.yaml
+     local token=$(kubectl --kubeconfig ${kubeconfig} -n kubernetes-dashboard describe secret `kubectl --kubeconfig ${kubeconfig} get secret -n kubernetes-dashboard | grep admin-user | awk '{ print $1}'` | grep token: | awk '{ print $2}')
+     echo ${token} | xsel -b -i
+     xdg-open https://dashboard.communalfmdemo.kubernetes.tralios.de/#/login > /dev/null 2>&1 &
+     #kubectl --kubeconfig ${kubeconfig} proxy
+}
+
+function kubedash_customer () {
+     local kubeconfig=/home/luca/.local/src/git/ansible/classes/kubeconfig/customer.kubernetes.tralios.de.yaml
+     local token=$(kubectl --kubeconfig ${kubeconfig} -n kubernetes-dashboard describe secret `kubectl --kubeconfig ${kubeconfig} get secret -n kubernetes-dashboard | grep admin-user | awk '{ print $1}'` | grep token: | awk '{ print $2}')
+     echo ${token} | xsel -b -i
+     xdg-open https://dashboard.customer.kubernetes.tralios.de/#/login > /dev/null 2>&1 &
+     #kubectl --kubeconfig ${kubeconfig} proxy
+}
+
+function kubedash_k3s_testing () {
+     local kubeconfig=/home/luca/.local/src/git/ansible/classes/kubeconfig/k3s-testing.kubernetes.tralios.de.yaml
+     local token=$(kubectl --kubeconfig ${kubeconfig} -n kubernetes-dashboard describe secret `kubectl --kubeconfig ${kubeconfig} get secret -n kubernetes-dashboard | grep admin-user | awk '{ print $1}'` | grep token: | awk '{ print $2}')
+     echo ${token} | xsel -b -i
+     xdg-open https://dashboard.k3s-testing.kubernetes.tralios.de/#/login > /dev/null 2>&1 &
+     #kubectl --kubeconfig ${kubeconfig} proxy
+}
+
+
+function kdash () {
+     case "$1" in
+         (netsyno) kubeconfig=/home/luca/.local/src/git/ansible/classes/kubeconfig/netsyno.kubernetes.tralios.de.yaml; cluster=netsyno.kubernetes.tralios.de  ;;
+         (testing) kubeconfig=/home/luca/.local/src/git/ansible/classes/kubeconfig/testing.kubernetes.tralios.de.yaml; cluster=testing.kubernetes.tralios.de  ;;
+         (production) kubeconfig=/home/luca/.local/src/git/ansible/classes/kubeconfig/production.kubernetes.tralios.de.yaml; cluster=production.kubernetes.tralios.de  ;;
+         (server315) kubeconfig=/home/luca/.local/src/git/ansible/classes/kubeconfig/server315.kubernetes.tralios.de.yaml; cluster=server315.kubernetes.tralios.de  ;;
+         (nds) kubeconfig=/home/luca/.local/src/git/ansible/classes/kubeconfig/nds.kubernetes.tralios.de.yaml; cluster=nds.kubernetes.tralios.de  ;;
+         (hetzner) kubeconfig=/home/luca/.local/src/git/ansible/classes/kubeconfig/hetzner.kubernetes.tralios.de.yaml; cluster=hetzner.kubernetes.tralios.de  ;;
+         (communalfmdemo) kubeconfig=/home/luca/.local/src/git/ansible/classes/kubeconfig/communalfmdemo.kubernetes.tralios.de.yaml; cluster=communalfmdemo.kubernetes.tralios.de  ;;
+         (customer) kubeconfig=/home/luca/.local/src/git/ansible/classes/kubeconfig/customer.kubernetes.tralios.de.yaml; cluster=customer.kubernetes.tralios.de  ;;
+         (k3s_testing) kubeconfig=/home/luca/.local/src/git/ansible/classes/kubeconfig/k3s-testing.kubernetes.tralios.de.yaml; cluster=k3s-testing.kubernetes.tralios.de  ;;
+#         (*) kubeconfig=/home/luca/.local/src/git/ansible/classes/kubeconfig/$1.yaml ;;
+     esac
+     local token=$(kubectl --kubeconfig ${kubeconfig} -n kubernetes-dashboard describe secret `kubectl --kubeconfig ${kubeconfig} get secret -n kubernetes-dashboard | grep admin-user | awk '{ print $1}'` | grep token: | awk '{ print $2}')
+     echo ${token} | xsel -b -i
+     xdg-open https://dashboard.${cluster}/ > /dev/null 2>&1 &
+     #kubectl --kubeconfig ${kubeconfig} proxy
+}
+
+function kdash_netsyno () {
+     local kubeconfig=/home/luca/.local/src/git/ansible/classes/kubeconfig/netsyno.kubernetes.tralios.de.yaml
+     local token=$(kubectl --kubeconfig ${kubeconfig} -n kubernetes-dashboard describe secret `kubectl --kubeconfig ${kubeconfig} get secret -n kubernetes-dashboard | grep admin-user | awk '{ print $1}'` | grep token: | awk '{ print $2}')
+     echo ${token} | xsel -b -i
+     xdg-open https://dashboard.netsyno.kubernetes.tralios.de/#/login > /dev/null 2>&1 &
+     #kubectl --kubeconfig ${kubeconfig} proxy
+}
+
+function kdash_testing () {
+     local kubeconfig=/home/luca/.local/src/git/ansible/classes/kubeconfig/testing.kubernetes.tralios.de.yaml
+     local token=$(kubectl --kubeconfig ${kubeconfig} -n kubernetes-dashboard describe secret `kubectl --kubeconfig ${kubeconfig} get secret -n kubernetes-dashboard | grep admin-user | awk '{ print $1}'` | grep token: | awk '{ print $2}')
+     echo ${token} | xsel -b -i
+     xdg-open https://dashboard.testing.kubernetes.tralios.de/#/login > /dev/null 2>&1 &
+     #kubectl --kubeconfig ${kubeconfig} proxy
+}
+
+function kdash_production () {
+     local kubeconfig=/home/luca/.local/src/git/ansible/classes/kubeconfig/production.kubernetes.tralios.de.yaml
+     local token=$(kubectl --kubeconfig ${kubeconfig} -n kubernetes-dashboard describe secret `kubectl --kubeconfig ${kubeconfig} get secret -n kubernetes-dashboard | grep admin-user | awk '{ print $1}'` | grep token: | awk '{ print $2}')
+     echo ${token} | xsel -b -i
+     xdg-open https://dashboard.production.kubernetes.tralios.de/#/login > /dev/null 2>&1 &
+     #kubectl --kubeconfig ${kubeconfig} proxy
+}
+
+function kdash_server315 () {
+     local kubeconfig=/home/luca/.local/src/git/ansible/classes/kubeconfig/server315.kubernetes.tralios.de.yaml
+     local token=$(kubectl --kubeconfig ${kubeconfig} -n kubernetes-dashboard describe secret `kubectl --kubeconfig ${kubeconfig} get secret -n kubernetes-dashboard | grep admin-user | awk '{ print $1}'` | grep token: | awk '{ print $2}')
+     echo ${token} | xsel -b -i
+     xdg-open https://dashboard.server315.kubernetes.tralios.de/#/login > /dev/null 2>&1 &
+     #kubectl --kubeconfig ${kubeconfig} proxy
+}
+
+function kdash_nds () {
+     local kubeconfig=/home/luca/.local/src/git/ansible/classes/kubeconfig/nds.kubernetes.tralios.de.yaml
+     local token=$(kubectl --kubeconfig ${kubeconfig} -n kubernetes-dashboard describe secret `kubectl --kubeconfig ${kubeconfig} get secret -n kubernetes-dashboard | grep admin-user | awk '{ print $1}'` | grep token: | awk '{ print $2}')
+     echo ${token} | xsel -b -i
+     xdg-open https://dashboard.nds.kubernetes.tralios.de/#/login > /dev/null 2>&1 &
+     #kubectl --kubeconfig ${kubeconfig} proxy
+}
+
+function kdash_hetzner () {
+     local kubeconfig=/home/luca/.local/src/git/ansible/classes/kubeconfig/hetzner.kubernetes.tralios.de.yaml
+     local token=$(kubectl --kubeconfig ${kubeconfig} -n kubernetes-dashboard describe secret `kubectl --kubeconfig ${kubeconfig} get secret -n kubernetes-dashboard | grep admin-user | awk '{ print $1}'` | grep token: | awk '{ print $2}')
+     echo ${token} | xsel -b -i
+     xdg-open https://dashboard.hetzner.kubernetes.tralios.de/#/login > /dev/null 2>&1 &
+     #kubectl --kubeconfig ${kubeconfig} proxy
+}
+
+function kdash_communalfmdemo () {
+     local kubeconfig=/home/luca/.local/src/git/ansible/classes/kubeconfig/communalfmdemo.kubernetes.tralios.de.yaml
+     local token=$(kubectl --kubeconfig ${kubeconfig} -n kubernetes-dashboard describe secret `kubectl --kubeconfig ${kubeconfig} get secret -n kubernetes-dashboard | grep admin-user | awk '{ print $1}'` | grep token: | awk '{ print $2}')
+     echo ${token} | xsel -b -i
+     xdg-open https://dashboard.communalfmdemo.kubernetes.tralios.de/#/login > /dev/null 2>&1 &
+     #kubectl --kubeconfig ${kubeconfig} proxy
+}
+
+function kdash_customer () {
+     local kubeconfig=/home/luca/.local/src/git/ansible/classes/kubeconfig/customer.kubernetes.tralios.de.yaml
+     local token=$(kubectl --kubeconfig ${kubeconfig} -n kubernetes-dashboard describe secret `kubectl --kubeconfig ${kubeconfig} get secret -n kubernetes-dashboard | grep admin-user | awk '{ print $1}'` | grep token: | awk '{ print $2}')
+     echo ${token} | xsel -b -i
+     xdg-open https://dashboard.customer.kubernetes.tralios.de/#/login > /dev/null 2>&1 &
+     #kubectl --kubeconfig ${kubeconfig} proxy
+}
+
+function kdash_k3s_testing () {
+     local kubeconfig=/home/luca/.local/src/git/ansible/classes/kubeconfig/k3s-testing.kubernetes.tralios.de.yaml
+     local token=$(kubectl --kubeconfig ${kubeconfig} -n kubernetes-dashboard describe secret `kubectl --kubeconfig ${kubeconfig} get secret -n kubernetes-dashboard | grep admin-user | awk '{ print $1}'` | grep token: | awk '{ print $2}')
+     echo ${token} | xsel -b -i
+     xdg-open https://dashboard.k3s-testing.kubernetes.tralios.de/#/login > /dev/null 2>&1 &
+     #kubectl --kubeconfig ${kubeconfig} proxy
+}
+
+
+function kprom () {
+     case "$1" in
+         (netsyno) kubeconfig=/home/luca/.local/src/git/ansible/classes/kubeconfig/netsyno.kubernetes.tralios.de.yaml; cluster=netsyno.kubernetes.tralios.de  ;;
+         (testing) kubeconfig=/home/luca/.local/src/git/ansible/classes/kubeconfig/testing.kubernetes.tralios.de.yaml; cluster=testing.kubernetes.tralios.de  ;;
+         (production) kubeconfig=/home/luca/.local/src/git/ansible/classes/kubeconfig/production.kubernetes.tralios.de.yaml; cluster=production.kubernetes.tralios.de  ;;
+         (server315) kubeconfig=/home/luca/.local/src/git/ansible/classes/kubeconfig/server315.kubernetes.tralios.de.yaml; cluster=server315.kubernetes.tralios.de  ;;
+         (nds) kubeconfig=/home/luca/.local/src/git/ansible/classes/kubeconfig/nds.kubernetes.tralios.de.yaml; cluster=nds.kubernetes.tralios.de  ;;
+         (hetzner) kubeconfig=/home/luca/.local/src/git/ansible/classes/kubeconfig/hetzner.kubernetes.tralios.de.yaml; cluster=hetzner.kubernetes.tralios.de  ;;
+         (communalfmdemo) kubeconfig=/home/luca/.local/src/git/ansible/classes/kubeconfig/communalfmdemo.kubernetes.tralios.de.yaml; cluster=communalfmdemo.kubernetes.tralios.de  ;;
+         (customer) kubeconfig=/home/luca/.local/src/git/ansible/classes/kubeconfig/customer.kubernetes.tralios.de.yaml; cluster=customer.kubernetes.tralios.de  ;;
+         (k3s_testing) kubeconfig=/home/luca/.local/src/git/ansible/classes/kubeconfig/k3s-testing.kubernetes.tralios.de.yaml; cluster=k3s-testing.kubernetes.tralios.de  ;;
+#         (*) kubeconfig=/home/luca/.local/src/git/ansible/classes/kubeconfig/$1.yaml ;;
+     esac
+     xdg-open https://prometheus.${cluster}/ > /dev/null 2>&1 &
+     #kubectl --kubeconfig ${kubeconfig} proxy
+}
+
+function kprom_netsyno () {
+     local kubeconfig=/home/luca/.local/src/git/ansible/classes/kubeconfig/netsyno.kubernetes.tralios.de.yaml
+     xdg-open https://prometheus.netsyno.kubernetes.tralios.de/#/login > /dev/null 2>&1 &
+     #kubectl --kubeconfig ${kubeconfig} proxy
+}
+
+function kprom_testing () {
+     local kubeconfig=/home/luca/.local/src/git/ansible/classes/kubeconfig/testing.kubernetes.tralios.de.yaml
+     xdg-open https://prometheus.testing.kubernetes.tralios.de/#/login > /dev/null 2>&1 &
+     #kubectl --kubeconfig ${kubeconfig} proxy
+}
+
+function kprom_production () {
+     local kubeconfig=/home/luca/.local/src/git/ansible/classes/kubeconfig/production.kubernetes.tralios.de.yaml
+     xdg-open https://prometheus.production.kubernetes.tralios.de/#/login > /dev/null 2>&1 &
+     #kubectl --kubeconfig ${kubeconfig} proxy
+}
+
+function kprom_server315 () {
+     local kubeconfig=/home/luca/.local/src/git/ansible/classes/kubeconfig/server315.kubernetes.tralios.de.yaml
+     xdg-open https://prometheus.server315.kubernetes.tralios.de/#/login > /dev/null 2>&1 &
+     #kubectl --kubeconfig ${kubeconfig} proxy
+}
+
+function kprom_nds () {
+     local kubeconfig=/home/luca/.local/src/git/ansible/classes/kubeconfig/nds.kubernetes.tralios.de.yaml
+     xdg-open https://prometheus.nds.kubernetes.tralios.de/#/login > /dev/null 2>&1 &
+     #kubectl --kubeconfig ${kubeconfig} proxy
+}
+
+function kprom_hetzner () {
+     local kubeconfig=/home/luca/.local/src/git/ansible/classes/kubeconfig/hetzner.kubernetes.tralios.de.yaml
+     xdg-open https://prometheus.hetzner.kubernetes.tralios.de/#/login > /dev/null 2>&1 &
+     #kubectl --kubeconfig ${kubeconfig} proxy
+}
+
+function kprom_communalfmdemo () {
+     local kubeconfig=/home/luca/.local/src/git/ansible/classes/kubeconfig/communalfmdemo.kubernetes.tralios.de.yaml
+     xdg-open https://prometheus.communalfmdemo.kubernetes.tralios.de/#/login > /dev/null 2>&1 &
+     #kubectl --kubeconfig ${kubeconfig} proxy
+}
+
+function kprom_customer () {
+     local kubeconfig=/home/luca/.local/src/git/ansible/classes/kubeconfig/customer.kubernetes.tralios.de.yaml
+     xdg-open https://prometheus.customer.kubernetes.tralios.de/#/login > /dev/null 2>&1 &
+     #kubectl --kubeconfig ${kubeconfig} proxy
+}
+
+function kprom_k3s_testing () {
+     local kubeconfig=/home/luca/.local/src/git/ansible/classes/kubeconfig/k3s-testing.kubernetes.tralios.de.yaml
+     xdg-open https://prometheus.k3s-testing.kubernetes.tralios.de/#/login > /dev/null 2>&1 &
+     #kubectl --kubeconfig ${kubeconfig} proxy
+}
+
+
+function klonghorn () {
+     case "$1" in
+         (netsyno) kubeconfig=/home/luca/.local/src/git/ansible/classes/kubeconfig/netsyno.kubernetes.tralios.de.yaml; cluster=netsyno.kubernetes.tralios.de  ;;
+         (testing) kubeconfig=/home/luca/.local/src/git/ansible/classes/kubeconfig/testing.kubernetes.tralios.de.yaml; cluster=testing.kubernetes.tralios.de  ;;
+         (production) kubeconfig=/home/luca/.local/src/git/ansible/classes/kubeconfig/production.kubernetes.tralios.de.yaml; cluster=production.kubernetes.tralios.de  ;;
+         (server315) kubeconfig=/home/luca/.local/src/git/ansible/classes/kubeconfig/server315.kubernetes.tralios.de.yaml; cluster=server315.kubernetes.tralios.de  ;;
+         (nds) kubeconfig=/home/luca/.local/src/git/ansible/classes/kubeconfig/nds.kubernetes.tralios.de.yaml; cluster=nds.kubernetes.tralios.de  ;;
+         (hetzner) kubeconfig=/home/luca/.local/src/git/ansible/classes/kubeconfig/hetzner.kubernetes.tralios.de.yaml; cluster=hetzner.kubernetes.tralios.de  ;;
+         (communalfmdemo) kubeconfig=/home/luca/.local/src/git/ansible/classes/kubeconfig/communalfmdemo.kubernetes.tralios.de.yaml; cluster=communalfmdemo.kubernetes.tralios.de  ;;
+         (customer) kubeconfig=/home/luca/.local/src/git/ansible/classes/kubeconfig/customer.kubernetes.tralios.de.yaml; cluster=customer.kubernetes.tralios.de  ;;
+         (k3s_testing) kubeconfig=/home/luca/.local/src/git/ansible/classes/kubeconfig/k3s-testing.kubernetes.tralios.de.yaml; cluster=k3s-testing.kubernetes.tralios.de  ;;
+#         (*) kubeconfig=/home/luca/.local/src/git/ansible/classes/kubeconfig/$1.yaml ;;
+     esac
+     xdg-open https://longhorn.${cluster}/ > /dev/null 2>&1 &
+     #kubectl --kubeconfig ${kubeconfig} proxy
+}
+
+function klonghorn_netsyno () {
+     local kubeconfig=/home/luca/.local/src/git/ansible/classes/kubeconfig/netsyno.kubernetes.tralios.de.yaml
+     xdg-open https://longhorn.netsyno.kubernetes.tralios.de/#/login > /dev/null 2>&1 &
+     #kubectl --kubeconfig ${kubeconfig} proxy
+}
+
+function klonghorn_testing () {
+     local kubeconfig=/home/luca/.local/src/git/ansible/classes/kubeconfig/testing.kubernetes.tralios.de.yaml
+     xdg-open https://longhorn.testing.kubernetes.tralios.de/#/login > /dev/null 2>&1 &
+     #kubectl --kubeconfig ${kubeconfig} proxy
+}
+
+function klonghorn_production () {
+     local kubeconfig=/home/luca/.local/src/git/ansible/classes/kubeconfig/production.kubernetes.tralios.de.yaml
+     xdg-open https://longhorn.production.kubernetes.tralios.de/#/login > /dev/null 2>&1 &
+     #kubectl --kubeconfig ${kubeconfig} proxy
+}
+
+function klonghorn_server315 () {
+     local kubeconfig=/home/luca/.local/src/git/ansible/classes/kubeconfig/server315.kubernetes.tralios.de.yaml
+     xdg-open https://longhorn.server315.kubernetes.tralios.de/#/login > /dev/null 2>&1 &
+     #kubectl --kubeconfig ${kubeconfig} proxy
+}
+
+function klonghorn_nds () {
+     local kubeconfig=/home/luca/.local/src/git/ansible/classes/kubeconfig/nds.kubernetes.tralios.de.yaml
+     xdg-open https://longhorn.nds.kubernetes.tralios.de/#/login > /dev/null 2>&1 &
+     #kubectl --kubeconfig ${kubeconfig} proxy
+}
+
+function klonghorn_hetzner () {
+     local kubeconfig=/home/luca/.local/src/git/ansible/classes/kubeconfig/hetzner.kubernetes.tralios.de.yaml
+     xdg-open https://longhorn.hetzner.kubernetes.tralios.de/#/login > /dev/null 2>&1 &
+     #kubectl --kubeconfig ${kubeconfig} proxy
+}
+
+function klonghorn_communalfmdemo () {
+     local kubeconfig=/home/luca/.local/src/git/ansible/classes/kubeconfig/communalfmdemo.kubernetes.tralios.de.yaml
+     xdg-open https://longhorn.communalfmdemo.kubernetes.tralios.de/#/login > /dev/null 2>&1 &
+     #kubectl --kubeconfig ${kubeconfig} proxy
+}
+
+function klonghorn_customer () {
+     local kubeconfig=/home/luca/.local/src/git/ansible/classes/kubeconfig/customer.kubernetes.tralios.de.yaml
+     xdg-open https://longhorn.customer.kubernetes.tralios.de/#/login > /dev/null 2>&1 &
+     #kubectl --kubeconfig ${kubeconfig} proxy
+}
+
+function klonghorn_k3s_testing () {
+     local kubeconfig=/home/luca/.local/src/git/ansible/classes/kubeconfig/k3s-testing.kubernetes.tralios.de.yaml
+     xdg-open https://longhorn.k3s-testing.kubernetes.tralios.de/#/login > /dev/null 2>&1 &
+     #kubectl --kubeconfig ${kubeconfig} proxy
+}
+
+
+function ktraefik () {
+     case "$1" in
+         (netsyno) kubeconfig=/home/luca/.local/src/git/ansible/classes/kubeconfig/netsyno.kubernetes.tralios.de.yaml; cluster=netsyno.kubernetes.tralios.de  ;;
+         (testing) kubeconfig=/home/luca/.local/src/git/ansible/classes/kubeconfig/testing.kubernetes.tralios.de.yaml; cluster=testing.kubernetes.tralios.de  ;;
+         (production) kubeconfig=/home/luca/.local/src/git/ansible/classes/kubeconfig/production.kubernetes.tralios.de.yaml; cluster=production.kubernetes.tralios.de  ;;
+         (server315) kubeconfig=/home/luca/.local/src/git/ansible/classes/kubeconfig/server315.kubernetes.tralios.de.yaml; cluster=server315.kubernetes.tralios.de  ;;
+         (nds) kubeconfig=/home/luca/.local/src/git/ansible/classes/kubeconfig/nds.kubernetes.tralios.de.yaml; cluster=nds.kubernetes.tralios.de  ;;
+         (hetzner) kubeconfig=/home/luca/.local/src/git/ansible/classes/kubeconfig/hetzner.kubernetes.tralios.de.yaml; cluster=hetzner.kubernetes.tralios.de  ;;
+         (communalfmdemo) kubeconfig=/home/luca/.local/src/git/ansible/classes/kubeconfig/communalfmdemo.kubernetes.tralios.de.yaml; cluster=communalfmdemo.kubernetes.tralios.de  ;;
+         (customer) kubeconfig=/home/luca/.local/src/git/ansible/classes/kubeconfig/customer.kubernetes.tralios.de.yaml; cluster=customer.kubernetes.tralios.de  ;;
+         (k3s_testing) kubeconfig=/home/luca/.local/src/git/ansible/classes/kubeconfig/k3s-testing.kubernetes.tralios.de.yaml; cluster=k3s-testing.kubernetes.tralios.de  ;;
+#         (*) kubeconfig=/home/luca/.local/src/git/ansible/classes/kubeconfig/$1.yaml ;;
+     esac
+     xdg-open https://traefik.${cluster}/ > /dev/null 2>&1 &
+     #kubectl --kubeconfig ${kubeconfig} proxy
+}
+
+function ktraefik_netsyno () {
+     local kubeconfig=/home/luca/.local/src/git/ansible/classes/kubeconfig/netsyno.kubernetes.tralios.de.yaml
+     xdg-open https://traefik.netsyno.kubernetes.tralios.de/#/login > /dev/null 2>&1 &
+     #kubectl --kubeconfig ${kubeconfig} proxy
+}
+
+function ktraefik_testing () {
+     local kubeconfig=/home/luca/.local/src/git/ansible/classes/kubeconfig/testing.kubernetes.tralios.de.yaml
+     xdg-open https://traefik.testing.kubernetes.tralios.de/#/login > /dev/null 2>&1 &
+     #kubectl --kubeconfig ${kubeconfig} proxy
+}
+
+function ktraefik_production () {
+     local kubeconfig=/home/luca/.local/src/git/ansible/classes/kubeconfig/production.kubernetes.tralios.de.yaml
+     xdg-open https://traefik.production.kubernetes.tralios.de/#/login > /dev/null 2>&1 &
+     #kubectl --kubeconfig ${kubeconfig} proxy
+}
+
+function ktraefik_server315 () {
+     local kubeconfig=/home/luca/.local/src/git/ansible/classes/kubeconfig/server315.kubernetes.tralios.de.yaml
+     xdg-open https://traefik.server315.kubernetes.tralios.de/#/login > /dev/null 2>&1 &
+     #kubectl --kubeconfig ${kubeconfig} proxy
+}
+
+function ktraefik_nds () {
+     local kubeconfig=/home/luca/.local/src/git/ansible/classes/kubeconfig/nds.kubernetes.tralios.de.yaml
+     xdg-open https://traefik.nds.kubernetes.tralios.de/#/login > /dev/null 2>&1 &
+     #kubectl --kubeconfig ${kubeconfig} proxy
+}
+
+function ktraefik_hetzner () {
+     local kubeconfig=/home/luca/.local/src/git/ansible/classes/kubeconfig/hetzner.kubernetes.tralios.de.yaml
+     xdg-open https://traefik.hetzner.kubernetes.tralios.de/#/login > /dev/null 2>&1 &
+     #kubectl --kubeconfig ${kubeconfig} proxy
+}
+
+function ktraefik_communalfmdemo () {
+     local kubeconfig=/home/luca/.local/src/git/ansible/classes/kubeconfig/communalfmdemo.kubernetes.tralios.de.yaml
+     xdg-open https://traefik.communalfmdemo.kubernetes.tralios.de/#/login > /dev/null 2>&1 &
+     #kubectl --kubeconfig ${kubeconfig} proxy
+}
+
+function ktraefik_customer () {
+     local kubeconfig=/home/luca/.local/src/git/ansible/classes/kubeconfig/customer.kubernetes.tralios.de.yaml
+     xdg-open https://traefik.customer.kubernetes.tralios.de/#/login > /dev/null 2>&1 &
+     #kubectl --kubeconfig ${kubeconfig} proxy
+}
+
+function ktraefik_k3s_testing () {
+     local kubeconfig=/home/luca/.local/src/git/ansible/classes/kubeconfig/k3s-testing.kubernetes.tralios.de.yaml
+     xdg-open https://traefik.k3s-testing.kubernetes.tralios.de/#/login > /dev/null 2>&1 &
+     #kubectl --kubeconfig ${kubeconfig} proxy
+}
+
+
+function krook () {
+     case "$1" in
+         (netsyno) kubeconfig=/home/luca/.local/src/git/ansible/classes/kubeconfig/netsyno.kubernetes.tralios.de.yaml; cluster=netsyno.kubernetes.tralios.de  ;;
+         (testing) kubeconfig=/home/luca/.local/src/git/ansible/classes/kubeconfig/testing.kubernetes.tralios.de.yaml; cluster=testing.kubernetes.tralios.de  ;;
+         (production) kubeconfig=/home/luca/.local/src/git/ansible/classes/kubeconfig/production.kubernetes.tralios.de.yaml; cluster=production.kubernetes.tralios.de  ;;
+         (server315) kubeconfig=/home/luca/.local/src/git/ansible/classes/kubeconfig/server315.kubernetes.tralios.de.yaml; cluster=server315.kubernetes.tralios.de  ;;
+         (nds) kubeconfig=/home/luca/.local/src/git/ansible/classes/kubeconfig/nds.kubernetes.tralios.de.yaml; cluster=nds.kubernetes.tralios.de  ;;
+         (hetzner) kubeconfig=/home/luca/.local/src/git/ansible/classes/kubeconfig/hetzner.kubernetes.tralios.de.yaml; cluster=hetzner.kubernetes.tralios.de  ;;
+         (communalfmdemo) kubeconfig=/home/luca/.local/src/git/ansible/classes/kubeconfig/communalfmdemo.kubernetes.tralios.de.yaml; cluster=communalfmdemo.kubernetes.tralios.de  ;;
+         (customer) kubeconfig=/home/luca/.local/src/git/ansible/classes/kubeconfig/customer.kubernetes.tralios.de.yaml; cluster=customer.kubernetes.tralios.de  ;;
+         (k3s_testing) kubeconfig=/home/luca/.local/src/git/ansible/classes/kubeconfig/k3s-testing.kubernetes.tralios.de.yaml; cluster=k3s-testing.kubernetes.tralios.de  ;;
+#         (*) kubeconfig=/home/luca/.local/src/git/ansible/classes/kubeconfig/$1.yaml ;;
+     esac
+     local token=$(kubectl --kubeconfig ${kubeconfig} -n rook-ceph get secret rook-ceph-dashboard-password -o jsonpath='{.data.password}' | base64 -d)
+     echo ${token} | xsel -b -i
+     xdg-open https://rook.${cluster}/ > /dev/null 2>&1 &
+     #kubectl --kubeconfig ${kubeconfig} proxy
+}
+
+function krook_netsyno () {
+     local kubeconfig=/home/luca/.local/src/git/ansible/classes/kubeconfig/netsyno.kubernetes.tralios.de.yaml
+     local token=$(kubectl --kubeconfig ${kubeconfig} -n rook-ceph get secret rook-ceph-dashboard-password -o jsonpath='{.data.password}' | base64 -d)
+     echo ${token} | xsel -b -i
+     xdg-open https://rook.netsyno.kubernetes.tralios.de/#/login > /dev/null 2>&1 &
+     #kubectl --kubeconfig ${kubeconfig} proxy
+}
+
+function krook_testing () {
+     local kubeconfig=/home/luca/.local/src/git/ansible/classes/kubeconfig/testing.kubernetes.tralios.de.yaml
+     local token=$(kubectl --kubeconfig ${kubeconfig} -n rook-ceph get secret rook-ceph-dashboard-password -o jsonpath='{.data.password}' | base64 -d)
+     echo ${token} | xsel -b -i
+     xdg-open https://rook.testing.kubernetes.tralios.de/#/login > /dev/null 2>&1 &
+     #kubectl --kubeconfig ${kubeconfig} proxy
+}
+
+function krook_production () {
+     local kubeconfig=/home/luca/.local/src/git/ansible/classes/kubeconfig/production.kubernetes.tralios.de.yaml
+     local token=$(kubectl --kubeconfig ${kubeconfig} -n rook-ceph get secret rook-ceph-dashboard-password -o jsonpath='{.data.password}' | base64 -d)
+     echo ${token} | xsel -b -i
+     xdg-open https://rook.production.kubernetes.tralios.de/#/login > /dev/null 2>&1 &
+     #kubectl --kubeconfig ${kubeconfig} proxy
+}
+
+function krook_server315 () {
+     local kubeconfig=/home/luca/.local/src/git/ansible/classes/kubeconfig/server315.kubernetes.tralios.de.yaml
+     local token=$(kubectl --kubeconfig ${kubeconfig} -n rook-ceph get secret rook-ceph-dashboard-password -o jsonpath='{.data.password}' | base64 -d)
+     echo ${token} | xsel -b -i
+     xdg-open https://rook.server315.kubernetes.tralios.de/#/login > /dev/null 2>&1 &
+     #kubectl --kubeconfig ${kubeconfig} proxy
+}
+
+function krook_nds () {
+     local kubeconfig=/home/luca/.local/src/git/ansible/classes/kubeconfig/nds.kubernetes.tralios.de.yaml
+     local token=$(kubectl --kubeconfig ${kubeconfig} -n rook-ceph get secret rook-ceph-dashboard-password -o jsonpath='{.data.password}' | base64 -d)
+     echo ${token} | xsel -b -i
+     xdg-open https://rook.nds.kubernetes.tralios.de/#/login > /dev/null 2>&1 &
+     #kubectl --kubeconfig ${kubeconfig} proxy
+}
+
+function krook_hetzner () {
+     local kubeconfig=/home/luca/.local/src/git/ansible/classes/kubeconfig/hetzner.kubernetes.tralios.de.yaml
+     local token=$(kubectl --kubeconfig ${kubeconfig} -n rook-ceph get secret rook-ceph-dashboard-password -o jsonpath='{.data.password}' | base64 -d)
+     echo ${token} | xsel -b -i
+     xdg-open https://rook.hetzner.kubernetes.tralios.de/#/login > /dev/null 2>&1 &
+     #kubectl --kubeconfig ${kubeconfig} proxy
+}
+
+function krook_communalfmdemo () {
+     local kubeconfig=/home/luca/.local/src/git/ansible/classes/kubeconfig/communalfmdemo.kubernetes.tralios.de.yaml
+     local token=$(kubectl --kubeconfig ${kubeconfig} -n rook-ceph get secret rook-ceph-dashboard-password -o jsonpath='{.data.password}' | base64 -d)
+     echo ${token} | xsel -b -i
+     xdg-open https://rook.communalfmdemo.kubernetes.tralios.de/#/login > /dev/null 2>&1 &
+     #kubectl --kubeconfig ${kubeconfig} proxy
+}
+
+function krook_customer () {
+     local kubeconfig=/home/luca/.local/src/git/ansible/classes/kubeconfig/customer.kubernetes.tralios.de.yaml
+     local token=$(kubectl --kubeconfig ${kubeconfig} -n rook-ceph get secret rook-ceph-dashboard-password -o jsonpath='{.data.password}' | base64 -d)
+     echo ${token} | xsel -b -i
+     xdg-open https://rook.customer.kubernetes.tralios.de/#/login > /dev/null 2>&1 &
+     #kubectl --kubeconfig ${kubeconfig} proxy
+}
+
+function krook_k3s_testing () {
+     local kubeconfig=/home/luca/.local/src/git/ansible/classes/kubeconfig/k3s-testing.kubernetes.tralios.de.yaml
+     local token=$(kubectl --kubeconfig ${kubeconfig} -n rook-ceph get secret rook-ceph-dashboard-password -o jsonpath='{.data.password}' | base64 -d)
+     echo ${token} | xsel -b -i
+     xdg-open https://rook.k3s-testing.kubernetes.tralios.de/#/login > /dev/null 2>&1 &
+     #kubectl --kubeconfig ${kubeconfig} proxy
+}
+
diff --git a/.config/zsh/.zshrc b/.config/zsh/.zshrc
index 36f4d23e..2295ac64 100644
--- a/.config/zsh/.zshrc
+++ b/.config/zsh/.zshrc
@@ -3,6 +3,9 @@ autoload edit-command-line && zle -N edit-command-line
 autoload -U add-zsh-hook
 autoload -U compinit
 autoload -Uz edit-command-line
+
+source ${ZDOTDIR:-$HOME}/.kubernetesrc_ansible
+
 PS1="%B%F{blue}%n%F{cyan}@%F{blue}%m %F{magenta}[%f%3~%F{magenta}] %(?.%F{green}.%F{red})»%f%b "
 RPS1="%(?..%F{red}%?)"
 stty stop undef		# Disable ctrl-s to freeze terminal.
diff --git a/.local/share/librewolf/chrome/userChrome.css b/.local/share/librewolf/chrome/userChrome.css
index f3200f37..87fc27a7 100644
--- a/.local/share/librewolf/chrome/userChrome.css
+++ b/.local/share/librewolf/chrome/userChrome.css
@@ -1,18 +1,18 @@
 /* change these variables to get different colors */
 :root {
-	--userchrome-tab-active-bgcolor: #7aa2f7;
-	--userchrome-tab-inactive-bgcolor: #15161E;
-	--userchrome-tab-loading-bgcolor: #7dcfff;
-	--userchrome-tab-active-fgcolor: #15161E;
-	--userchrome-tab-inactive-fgcolor: #7aa2f7;
-	--userchrome-tab-loading-fgcolor: #15161E;
+    --userchrome-tab-active-bgcolor: #7aa2f7;
+    --userchrome-tab-inactive-bgcolor: #15161E;
+    --userchrome-tab-loading-bgcolor: #7dcfff;
+    --userchrome-tab-active-fgcolor: #15161E;
+    --userchrome-tab-inactive-fgcolor: #7aa2f7;
+    --userchrome-tab-loading-fgcolor: #15161E;
     --userchrome-font: "JetBrains Mono";
 }
 
 /* change to control tabbar height */
 /* try increasing to 20px if you see a black line under tabbar */
 #titlebar {
-	--tab-min-height: 16px !important;
+    --tab-min-height: 16px !important;
 }
 
 /* --- GENERAL DEBLOAT ---------------------------------- */
@@ -233,9 +233,9 @@ tab {
 }
 
 /* hide tab bar if only one tab open */
-tab:only-of-type:not([progress="true"]):not([bursting="true"]):not([busy="true"]) {
-	display: none;
-}
+/* tab:only-of-type:not([progress="true"]):not([bursting="true"]):not([busy="true"]) { */
+/* 	display: none; */
+/* } */
 
 /* Hide close button on tabs */
 #tabbrowser-tabs .tabbrowser-tab .tab-close-button {

From 1def82df1cbf43d3929d1cdb58f2e428b3d48d21 Mon Sep 17 00:00:00 2001
From: Luca Bilke <luca@gmail.com>
Date: Sun, 26 Mar 2023 15:17:48 +0200
Subject: [PATCH 3/7] small changes

---
 .cache/zsh/{.keep => history}                 |  0
 .config/zsh/.zshrc                            | 19 ++++++++-----------
 .../{autopyenv.plugin.zsh => autopyenv.zsh}   |  4 ++--
 TODO                                          |  2 --
 4 files changed, 10 insertions(+), 15 deletions(-)
 rename .cache/zsh/{.keep => history} (100%)
 rename .local/share/zsh/plugins/autopyenv/{autopyenv.plugin.zsh => autopyenv.zsh} (81%)

diff --git a/.cache/zsh/.keep b/.cache/zsh/history
similarity index 100%
rename from .cache/zsh/.keep
rename to .cache/zsh/history
diff --git a/.config/zsh/.zshrc b/.config/zsh/.zshrc
index 2295ac64..214360a9 100644
--- a/.config/zsh/.zshrc
+++ b/.config/zsh/.zshrc
@@ -3,9 +3,6 @@ autoload edit-command-line && zle -N edit-command-line
 autoload -U add-zsh-hook
 autoload -U compinit
 autoload -Uz edit-command-line
-
-source ${ZDOTDIR:-$HOME}/.kubernetesrc_ansible
-
 PS1="%B%F{blue}%n%F{cyan}@%F{blue}%m %F{magenta}[%f%3~%F{magenta}] %(?.%F{green}.%F{red})»%f%b "
 RPS1="%(?..%F{red}%?)"
 stty stop undef		# Disable ctrl-s to freeze terminal.
@@ -39,6 +36,7 @@ bindkey -M menuselect 'k' vi-up-line-or-history
 bindkey -M menuselect 'l' vi-forward-char
 bindkey -M menuselect 'j' vi-down-line-or-history
 
+
 # Change cursor shape for different vi modes.
 function zle-keymap-select () {
     case $KEYMAP in
@@ -56,7 +54,7 @@ echo -ne '\e[5 q' # Use beam shape cursor on startup.
 preexec() { echo -ne '\e[5 q' ;} # Use beam shape cursor for each new prompt.
 
 # Use lf to switch directories and bind it to ctrl-o
-lfcd () {
+function lfcd () {
     tmp="$(mktemp)"
     fid="$(mktemp)"
     lf -command '$printf $id > '"$fid"'' -last-dir-path="$tmp" "$@"
@@ -82,7 +80,7 @@ lfcd () {
     tput cuu1;tput el
 }
 
-_lfcd () {
+function _lfcd () {
   BUFFER="lfcd"
   zle accept-line
 }
@@ -90,7 +88,7 @@ zle -N _lfcd
 bindkey '^e' _lfcd
 
 # bind lazygit to ctrl-g
-lg () {
+function lg () {
   [ ! -d "$(pwd)/.git" ] && [[ $(read -ek "?Not in a git repository. Create a new git repository? (y/n): ") =~ ^[Yy]$ ]] && git init
   [ -d "$(pwd)/.git" ] && lazygit -p $(pwd)
   zle reset-prompt
@@ -98,11 +96,10 @@ lg () {
 zle -N lg{,}
 bindkey '^g' lg
 
-# This function simply writes the venv of the last executed command to a file to be read by external status indicators
-function write_venv(){
-  echo -n "${VIRTUAL_ENV:t}" > "/tmp/current_venv-$$"
+function write_info(){
+  echo -n "${VIRTUAL_ENV}" > "/tmp/current_venv-$$"
 }
-add-zsh-hook precmd write_venv
+add-zsh-hook precmd write_info
 
 # other keybinds
 bindkey -v '^?' backward-delete-char
@@ -118,4 +115,4 @@ zle_highlight+=(paste:none)
 PLUGINS_HOME="${XDG_DATA_HOME:-$HOME/.local/share}/zsh/plugins"
 [ -f "$PLUGINS_HOME/fzf/key-bindings.zsh" ]                                         && source "$PLUGINS_HOME/fzf/key-bindings.zsh"
 [ -f "$PLUGINS_HOME/fast-syntax-highlighting/fast-syntax-highlighting.plugin.zsh" ] && source "$PLUGINS_HOME/fast-syntax-highlighting/fast-syntax-highlighting.plugin.zsh"
-[ -f "$PLUGINS_HOME/autopyenv/autopyenv.plugin.zsh" ]                               && source "$PLUGINS_HOME/autopyenv/autopyenv.plugin.zsh"
+[ -f "$PLUGINS_HOME/autopyenv/autopyenv.zsh" ]                                      && source "$PLUGINS_HOME/autopyenv/autopyenv.zsh"
diff --git a/.local/share/zsh/plugins/autopyenv/autopyenv.plugin.zsh b/.local/share/zsh/plugins/autopyenv/autopyenv.zsh
similarity index 81%
rename from .local/share/zsh/plugins/autopyenv/autopyenv.plugin.zsh
rename to .local/share/zsh/plugins/autopyenv/autopyenv.zsh
index 39b61e3d..9049c7f2 100644
--- a/.local/share/zsh/plugins/autopyenv/autopyenv.plugin.zsh
+++ b/.local/share/zsh/plugins/autopyenv/autopyenv.zsh
@@ -2,7 +2,7 @@ PYENV_DIR="${PYENVS_HOME:-${XDG_DATA_HOME:-$HOME/.local/share}/virtualenv}"
 function chpwd_activate(){
   [[ "$(pwd)" == "/" ]] && return 0
   for pydir in $(ls $PYENV_DIR); do
-    if [[ "$(pwd|sed -e s@/@_@g|cut -c2-)" =~ "^${pydir}$" ]] || [[ "r-$(pwd|sed -e s@/@_@g|cut -c2-)" =~ "^${pydir}(_.+)?$" ]]; then
+      if [[ "$(pwd | sed -e 's|/|~|g' | cut -c2-)" =~ "^${pydir}$" ]] || [[ "r-$(pwd | sed -e 's|/|~|g' | cut -c2-)" =~ "^${pydir}(_.+)?$" ]]; then
       if [ "x$VIRTUAL_ENV" != "x$PYENV_DIR/$pydir" ]; then
         source "$PYENV_DIR/$pydir/bin/activate"
       fi
@@ -16,7 +16,7 @@ function chpwd_activate(){
 
 function venv(){
   [[ "$(pwd)" == "/" ]] && echo "Cannot create venv at root" && return 1
-  [[ "$(pwd)" != "/" ]] && envdir=$(pwd|sed -e s@/@_@g|cut -c2-)
+  [[ "$(pwd)" != "/" ]] && envdir=$(pwd | sed -e 's|/|~|g' | cut -c2-)
   [[ "$1" == "-r" ]] && envdir="r-$envdir" # create a venv that will be activated for all subdirectories as well
   if [ ! -e "$PYENV_DIR/${envdir}" ]; then
     echo "Creating python venv for ${envdir}.."
diff --git a/TODO b/TODO
index 3f0d8f72..1e8c5777 100644
--- a/TODO
+++ b/TODO
@@ -1,7 +1,5 @@
  TODO: Rework lf icons for audio and video files
- TODO: Move NVIM config to submodule
  TODO: https://sw.kovidgoyal.net/kitty/kittens/panel/
  TODO: Create a better bitwarden integration
  TODO: Create a brightness indicator for dunst
- TODO: Fix the pyenv indicator for kitty
  TODO: Look into nix and their home manager

From 74be8750bbe7832a88d5f865b5b96f881b221def Mon Sep 17 00:00:00 2001
From: Luca Bilke <luca@gmail.com>
Date: Mon, 27 Mar 2023 13:39:14 +0200
Subject: [PATCH 4/7] switch back to cascade theme for librewolf

---
 .gitmodules                                  |   6 +
 .local/share/librewolf/cascade               |   1 +
 .local/share/librewolf/chrome                |   1 +
 .local/share/librewolf/chrome/userChrome.css | 368 -------------------
 4 files changed, 8 insertions(+), 368 deletions(-)
 create mode 160000 .local/share/librewolf/cascade
 create mode 120000 .local/share/librewolf/chrome
 delete mode 100644 .local/share/librewolf/chrome/userChrome.css

diff --git a/.gitmodules b/.gitmodules
index 4606cdb9..50c59fa6 100644
--- a/.gitmodules
+++ b/.gitmodules
@@ -19,3 +19,9 @@
 [submodule ".local/share/themes/tokyonight"]
 	path = .local/share/themes/tokyonight
 	url = https://git.snaile.de/luca/tokyonight-theme
+[submodule ".local/share/librewolf/chrome/cascade"]
+	path = .local/share/librewolf/chrome/cascade
+	url = https://github.com/andreasgrafen/cascade
+[submodule ".local/share/librewolf/cascade"]
+	path = .local/share/librewolf/cascade
+	url = https://github.com/andreasgrafen/cascade
diff --git a/.local/share/librewolf/cascade b/.local/share/librewolf/cascade
new file mode 160000
index 00000000..d6c4d700
--- /dev/null
+++ b/.local/share/librewolf/cascade
@@ -0,0 +1 @@
+Subproject commit d6c4d700526efef8d7b249b7618b7730ea9ca97f
diff --git a/.local/share/librewolf/chrome b/.local/share/librewolf/chrome
new file mode 120000
index 00000000..31800755
--- /dev/null
+++ b/.local/share/librewolf/chrome
@@ -0,0 +1 @@
+cascade/chrome
\ No newline at end of file
diff --git a/.local/share/librewolf/chrome/userChrome.css b/.local/share/librewolf/chrome/userChrome.css
deleted file mode 100644
index 87fc27a7..00000000
--- a/.local/share/librewolf/chrome/userChrome.css
+++ /dev/null
@@ -1,368 +0,0 @@
-/* change these variables to get different colors */
-:root {
-    --userchrome-tab-active-bgcolor: #7aa2f7;
-    --userchrome-tab-inactive-bgcolor: #15161E;
-    --userchrome-tab-loading-bgcolor: #7dcfff;
-    --userchrome-tab-active-fgcolor: #15161E;
-    --userchrome-tab-inactive-fgcolor: #7aa2f7;
-    --userchrome-tab-loading-fgcolor: #15161E;
-    --userchrome-font: "JetBrains Mono";
-}
-
-/* change to control tabbar height */
-/* try increasing to 20px if you see a black line under tabbar */
-#titlebar {
-    --tab-min-height: 16px !important;
-}
-
-/* --- GENERAL DEBLOAT ---------------------------------- */
-
-/* Bottom left page loading status or url preview */
-#statuspanel {
-	display: none !important;
-}
-
-/* --- DEBLOAT NAVBAR ----------------------------------- */
-
-#unified-extensions-button {
-    display: none;
-}
-
-#back-button {
-	display: none;
-}
-
-#forward-button {
-	display: none;
-}
-
-#reload-button {
-	display: none;
-}
-
-#stop-button {
-	display: none;
-}
-
-#home-button {
-	display: none;
-}
-
-#downloads-button {
-	display: none;
-}
-
-#library-button {
-	display: none;
-}
-
-#fxa-toolbar-menu-button {
-	display: none;
-}
-
-/* Firefox account button */
-#fxa-toolbar-menu-button {
-	display: none;
-}
-
-#nav-bar-overflow-button {
-	display: none !important;
-}
-
-/* General Firefox menu button */
-#PanelUI-button {
-	display: none;
-}
-
-/* Empty space before and after the url bar */
-#customizableui-special-spring1,
-#customizableui-special-spring2 {
-	display: none;
-}
-
-#nav-bar,
-#navigator-toolbox {
-	border-width: 0 !important;
-}
-
-/* --- STYLE URLBAR ------------------------------------- */
-
-#urlbar-container {
-	--urlbar-container-height: var(--tab-min-height) !important;
-	margin-left: 0 !important;
-	margin-right: 0 !important;
-	padding-top: 0 !important;
-	padding-bottom: 0 !important;
-    font-family: var(--userchrome-font), monospace;
-	font-size: 11px;
-}
-
-#urlbar {
-	--urlbar-height: var(--tab-min-height) !important;
-	--urlbar-toolbar-height: var(--tab-min-height) !important;
-	min-height: var(--tab-min-height) !important;
-	border-color: var(--lwt-toolbar-field-border-color, hsla(240, 5%, 5%, .25)) !important;
-	--autocomplete-popup-highlight-background: transparent !important;
-}
-
-#urlbar-background {
-	border-width: 0 !important;
-	border-radius: 0 !important;
-}
-
-#urlbar-input-container {
-	border-width: 0 !important;
-	margin-left: 1em !important;
-}
-
-#urlbar-input {
-	margin-left: 0.4em !important;
-	margin-right: 0.4em !important;
-}
-
-.urlbarView-row {
-	padding-top: 0 !important;
-	padding-bottom: 0 !important;
-	line-height: var(--urlbar-height) !important;
-}
-
-.urlbarView-row-inner {
-	padding-top: 0.3em !important;
-	padding-bottom: 0.3em !important;
-	height: var(--urlbar-height) !important;
-}
-
-.urlbarView-favicon {
-	height: 1em !important;
-	width: 1em !important;
-	margin-bottom: 0.2em !important;
-}
-
-/* --- DEBLOAT URLBAR ----------------------------------- */
-
-#identity-box {
-	display: none;
-}
-
-#pageActionButton {
-	display: none;
-}
-
-#pocket-button {
-	display: none;
-}
-
-#urlbar-zoom-button {
-	display: none;
-}
-
-#tracking-protection-icon-container {
-	display: none !important;
-}
-
-#reader-mode-button {
-	display: none !important;
-}
-
-#star-button {
-	display: none;
-}
-
-/* this will remove the invisible box at the end of urlbar but also will
- * disable the Ctrl+D shortcut */
-#star-button-box {
-	display: none;
-}
-
-/* Go to arrow button at the end of the urlbar when searching */
-#urlbar-go-button {
-	display: none;
-}
-
-/* remove container indicator from urlbar */
-#userContext-label,
-#userContext-indicator {
-	display: none !important;
-}
-
-/* --- STYLE TAB TOOLBAR -------------------------------- */
-
-#titlebar {
-	--proton-tab-block-margin: 0px !important;
-	--tab-block-margin: 0 !important;
-}
-
-:root:not([customizing]) #TabsToolbar {
-	background-color: var(--userchrome-tab-inactive-bgcolor);
-}
-
-:root:not([customizing]) #navigator-toolbox {
-	background-color: var(--userchrome-tab-inactive-bgcolor) !important;
-}
-
-#TabsToolbar,
-.tabbrowser-tab {
-	max-height: var(--tab-min-height) !important;
-	font-size: 11px !important;
-}
-
-/* Change color of normal tabs */
-tab:not([selected="true"]) {
-	background-color: var(--userchrome-tab-inactive-bgcolor) !important;
-	color: var(--userchrome-tab-inactive-fgcolor) !important;
-}
-
-/* Change color of loading tabs */
-tab[progress="true"],
-tab[bursting="true"],
-tab[busy="true"] {
-	background-color: var(--userchrome-tab-loading-bgcolor) !important;
-	color: var(--userchrome-tab-loading-fgcolor) !important;
-}
-
-tab {
-	font-family: var(--userchrome-font), monospace;
-	font-weight: bold;
-	border: none !important;
-}
-
-/* safari style tab width */
-.tabbrowser-tab[fadein] {
-	max-width: 100vw !important;
-	border: none
-}
-
-/* hide tab bar if only one tab open */
-/* tab:only-of-type:not([progress="true"]):not([bursting="true"]):not([busy="true"]) { */
-/* 	display: none; */
-/* } */
-
-/* Hide close button on tabs */
-#tabbrowser-tabs .tabbrowser-tab .tab-close-button {
-	display: none !important;
-}
-
-/* hide container line on tab*/
-#tabbrowser-tabs .tab-context-line {
-	display: none;
-}
-
-/* disable favicons in tab */
-.tab-icon-stack:not([pinned]) {
-	display: none !important;
-}
-
-.tabbrowser-tab {
-	/* remove border between tabs */
-	padding-inline: 0px !important;
-	/* remove fading effect from tab text */
-	--tab-label-mask-size: 1em !important;
-	/* fix pinned tab behaviour on overflow */
-	overflow-clip-margin: 0px !important;
-}
-
-/* remove min-height from tabs toolbar (needed for fullscreen one tab) */
-#TabsToolbar,
-#tabbrowser-tabs,
-#tabbrowser-tabs>.tabbrowser-arrowscrollbox,
-#tabbrowser-arrowscrollbox {
-	min-height: 0 !important;
-}
-
-/* Tab: selected colors */
-#tabbrowser-tabs .tabbrowser-tab[selected] .tab-content {
-	background: var(--userchrome-tab-active-bgcolor) !important;
-	border: none !important;
-	color: var(--userchrome-tab-active-fgcolor) !important;
-}
-
-/* Tab: hovered colors */
-#tabbrowser-tabs .tabbrowser-tab:hover:not([selected]) .tab-content {
-	background: var(--userchrome-tab-active-bgcolor) !important;
-	color: var(--userchrome-tab-active-fgcolor) !important;
-    filter: brightness(0.55);
-}
-
-/* Tab: loading colors */
-#tabbrowser-tabs .tabbrowser-tab[progress="true"] .tab-content,
-#tabbrowser-tabs .tabbrowser-tab[bursting="true"] .tab-content,
-#tabbrowser-tabs .tabbrowser-tab[busy="true"] .tab-content {
-    display: -moz-box !important;
-	background-color: var(--userchrome-tab-loading-bgcolor) !important;
-	color: var(--userchrome-tab-loading-fgcolor) !important;
-}
-
-/* remove white margin around active tabs */
-#tabbrowser-tabs:not([movingtab])>#tabbrowser-arrowscrollbox>.tabbrowser-tab[beforeselected-visible]::after,
-#tabbrowser-tabs[movingtab]>#tabbrowser-arrowscrollbox>.tabbrowser-tab[visuallyselected]::before,
-.tabbrowser-tab[visuallyselected]::after {
-	border: none !important;
-}
-
-/*AGENT_SHEET*/
-#main-window #navigator-toolbox #TabsToolbar:not(:-moz-lwtheme) {
-	background: var(--userchrome-tab-active-bgcolor) !important;
-}
-
-/* hide window controls */
-.titlebar-buttonbox-container {
-	display: none;
-}
-
-/* remove titlebar spacers */
-.titlebar-spacer {
-	display: none !important;
-}
-
-/* disable tab shadow */
-#tabbrowser-tabs:not([noshadowfortests]) .tab-background:is([selected], [multiselected]) {
-	box-shadow: none !important;
-}
-
-/* remove dark space between pinned tab and first non-pinned tab */
-#tabbrowser-tabs[haspinnedtabs]:not([positionpinnedtabs])>#tabbrowser-arrowscrollbox>.tabbrowser-tab[first-visible-unpinned-tab] {
-	margin-inline-start: 0px !important;
-}
-
-/* remove dropdown menu button which displays all tabs on overflow */
-#alltabs-button {
-	display: none !important
-}
-
-/* fix displaying of pinned tabs on overflow */
-#tabbrowser-tabs:not([secondarytext-unsupported]) .tab-label-container {
-	height: var(--tab-min-height) !important;
-}
-
-/* remove overflow scroll buttons */
-#scrollbutton-up,
-#scrollbutton-down {
-	display: none !important;
-}
-
-/* --- AUTOHIDE URLBAR ---------------------------------- */
-
-/* hide urlbar unless focused */
-#nav-bar {
-	min-height: 0 !important;
-	max-height: 0 !important;
-	height: 0 !important;
-	--moz-transform: scaleY(0) !important;
-	transform: scaleY(0) !important;
-}
-
-/* #titlebar:hover~#nav-bar, */
-/* #nav-bar:hover, */
-#nav-bar:focus-within {
-	--moz-transform: scale(1) !important;
-	transform: scale(1) !important;
-	max-height: var(--urlbar-height) !important;
-	height: var(--urlbar-height) !important;
-	min-height: var(--urlbar-height) !important;
-}
-
-/* show on toolbox focus */
-#navigator-toolbox:focus-within>.browser-toolbar {
-	transform: translateY(0);
-	opacity: 1;
-}

From 532db612b1c3e271bb24f3fe7c688c22b4d3250a Mon Sep 17 00:00:00 2001
From: Luca Bilke <luca@gmail.com>
Date: Mon, 27 Mar 2023 13:39:33 +0200
Subject: [PATCH 5/7] fix suddenly malfunctioning dupe function in LF

---
 .config/lf/lfrc | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/.config/lf/lfrc b/.config/lf/lfrc
index d9ec3560..680ea97f 100644
--- a/.config/lf/lfrc
+++ b/.config/lf/lfrc
@@ -150,7 +150,7 @@ cmd paste &{{
 
 cmd dupe %{{
   for file in $fx; do
-    find "$PWD" "$file" | grep -oP '(?<=.\.~)\d+(?=~$)' | sort -n | tail -1 | (
+    find "$PWD" "$file" -maxdepth 0 | grep -oP '(?<=.\.~)\d+(?=~$)' | sort -n | tail -1 | (
       ext=$(($(cat /dev/stdin)+1))
       filedest="$(echo "$file" | sed 's/.~[[:digit:]]*~$//').~$ext~"
       cp -r "$file" "$filedest"

From e509bb683cf7c4c920c590990ac6341a793e0f91 Mon Sep 17 00:00:00 2001
From: Luca Bilke <luca@gmail.com>
Date: Mon, 27 Mar 2023 13:39:58 +0200
Subject: [PATCH 6/7] possibly fix keyboard bug on startup

---
 .config/X11/xsession.d/80auto-start | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/.config/X11/xsession.d/80auto-start b/.config/X11/xsession.d/80auto-start
index e794a2a7..02ce984a 100644
--- a/.config/X11/xsession.d/80auto-start
+++ b/.config/X11/xsession.d/80auto-start
@@ -5,6 +5,9 @@ start() {
 }
 
 xwallpaper --zoom "${XDG_DATA_HOME:-$HOME/.local/share}/bg"
+
+remaps &
+checkup &
 start playerctld daemon
 start picom
 start unclutter -noevents
@@ -13,5 +16,3 @@ start pipewire
 start dwmblocks
 start remapd
 
-remaps &
-checkup &

From 6fc6417c59f2d1533973f2e80b9eb222f0d54a76 Mon Sep 17 00:00:00 2001
From: luca <luca@snaile.de>
Date: Tue, 28 Mar 2023 09:44:05 +0200
Subject: [PATCH 7/7] Delete '.config/zsh/.kubernetesrc_ansible'

---
 .config/zsh/.kubernetesrc_ansible | 589 ------------------------------
 1 file changed, 589 deletions(-)
 delete mode 100644 .config/zsh/.kubernetesrc_ansible

diff --git a/.config/zsh/.kubernetesrc_ansible b/.config/zsh/.kubernetesrc_ansible
deleted file mode 100644
index 21b35a8f..00000000
--- a/.config/zsh/.kubernetesrc_ansible
+++ /dev/null
@@ -1,589 +0,0 @@
-function kctl () {
-    case "$1" in
-        (netsyno) shift
-            kubectl --kubeconfig /home/luca/.local/src/git/ansible/classes/kubeconfig/netsyno.kubernetes.tralios.de.yaml $@ ;;
-        (testing) shift
-            kubectl --kubeconfig /home/luca/.local/src/git/ansible/classes/kubeconfig/testing.kubernetes.tralios.de.yaml $@ ;;
-        (production) shift
-            kubectl --kubeconfig /home/luca/.local/src/git/ansible/classes/kubeconfig/production.kubernetes.tralios.de.yaml $@ ;;
-        (server315) shift
-            kubectl --kubeconfig /home/luca/.local/src/git/ansible/classes/kubeconfig/server315.kubernetes.tralios.de.yaml $@ ;;
-        (nds) shift
-            kubectl --kubeconfig /home/luca/.local/src/git/ansible/classes/kubeconfig/nds.kubernetes.tralios.de.yaml $@ ;;
-        (hetzner) shift
-            kubectl --kubeconfig /home/luca/.local/src/git/ansible/classes/kubeconfig/hetzner.kubernetes.tralios.de.yaml $@ ;;
-        (communalfmdemo) shift
-            kubectl --kubeconfig /home/luca/.local/src/git/ansible/classes/kubeconfig/communalfmdemo.kubernetes.tralios.de.yaml $@ ;;
-        (customer) shift
-            kubectl --kubeconfig /home/luca/.local/src/git/ansible/classes/kubeconfig/customer.kubernetes.tralios.de.yaml $@ ;;
-        (k3s_testing) shift
-            kubectl --kubeconfig /home/luca/.local/src/git/ansible/classes/kubeconfig/k3s-testing.kubernetes.tralios.de.yaml $@ ;;
-        (*) kubeconfig=$1
-            shift
-            kubectl --kubeconfig ~/.kube/config_${kubeconfig} $@ ;;
-    esac
-}
-
-function velero () {
-    case "$1" in
-        (netsyno) shift
-            /usr/local/bin/velero --kubeconfig /home/luca/.local/src/git/ansible/classes/kubeconfig/netsyno.kubernetes.tralios.de.yaml $@ ;;
-        (testing) shift
-            /usr/local/bin/velero --kubeconfig /home/luca/.local/src/git/ansible/classes/kubeconfig/testing.kubernetes.tralios.de.yaml $@ ;;
-        (production) shift
-            /usr/local/bin/velero --kubeconfig /home/luca/.local/src/git/ansible/classes/kubeconfig/production.kubernetes.tralios.de.yaml $@ ;;
-        (server315) shift
-            /usr/local/bin/velero --kubeconfig /home/luca/.local/src/git/ansible/classes/kubeconfig/server315.kubernetes.tralios.de.yaml $@ ;;
-        (nds) shift
-            /usr/local/bin/velero --kubeconfig /home/luca/.local/src/git/ansible/classes/kubeconfig/nds.kubernetes.tralios.de.yaml $@ ;;
-        (hetzner) shift
-            /usr/local/bin/velero --kubeconfig /home/luca/.local/src/git/ansible/classes/kubeconfig/hetzner.kubernetes.tralios.de.yaml $@ ;;
-        (communalfmdemo) shift
-            /usr/local/bin/velero --kubeconfig /home/luca/.local/src/git/ansible/classes/kubeconfig/communalfmdemo.kubernetes.tralios.de.yaml $@ ;;
-        (customer) shift
-            /usr/local/bin/velero --kubeconfig /home/luca/.local/src/git/ansible/classes/kubeconfig/customer.kubernetes.tralios.de.yaml $@ ;;
-        (k3s_testing) shift
-            /usr/local/bin/velero --kubeconfig /home/luca/.local/src/git/ansible/classes/kubeconfig/k3s-testing.kubernetes.tralios.de.yaml $@ ;;
-        (*) kubeconfig=$1
-            shift
-            /usr/local/bin/velero --kubeconfig ~/.kube/config_${kubeconfig} $@ ;;
-    esac
-}
-
-# function kubectl () {
-#     case "$1" in
-# #         (netsyno) shift
-#             /usr/local/bin/kubectl --kubeconfig /home/luca/.local/src/git/ansible/classes/kubeconfig/netsyno.kubernetes.tralios.de.yaml $@ ;;
-# #         (testing) shift
-#             /usr/local/bin/kubectl --kubeconfig /home/luca/.local/src/git/ansible/classes/kubeconfig/testing.kubernetes.tralios.de.yaml $@ ;;
-# #         (production) shift
-#             /usr/local/bin/kubectl --kubeconfig /home/luca/.local/src/git/ansible/classes/kubeconfig/production.kubernetes.tralios.de.yaml $@ ;;
-# #         (server315) shift
-#             /usr/local/bin/kubectl --kubeconfig /home/luca/.local/src/git/ansible/classes/kubeconfig/server315.kubernetes.tralios.de.yaml $@ ;;
-# #         (nds) shift
-#             /usr/local/bin/kubectl --kubeconfig /home/luca/.local/src/git/ansible/classes/kubeconfig/nds.kubernetes.tralios.de.yaml $@ ;;
-# #         (hetzner) shift
-#             /usr/local/bin/kubectl --kubeconfig /home/luca/.local/src/git/ansible/classes/kubeconfig/hetzner.kubernetes.tralios.de.yaml $@ ;;
-# #         (communalfmdemo) shift
-#             /usr/local/bin/kubectl --kubeconfig /home/luca/.local/src/git/ansible/classes/kubeconfig/communalfmdemo.kubernetes.tralios.de.yaml $@ ;;
-# #         (customer) shift
-#             /usr/local/bin/kubectl --kubeconfig /home/luca/.local/src/git/ansible/classes/kubeconfig/customer.kubernetes.tralios.de.yaml $@ ;;
-# #         (k3s_testing) shift
-#             /usr/local/bin/kubectl --kubeconfig /home/luca/.local/src/git/ansible/classes/kubeconfig/k3s-testing.kubernetes.tralios.de.yaml $@ ;;
-# #         (*) kubeconfig=$1
-#             shift
-#             /usr/local/bin/kubectl --kubeconfig ~/.kube/config_${kubeconfig} $@ ;;
-#     esac
-# }
-
-alias kubectl_netsyno="export KUBECONFIG=/home/luca/.local/src/git/ansible/classes/kubeconfig/netsyno.kubernetes.tralios.de.yaml; kubectl"
-alias velero_netsyno="export KUBECONFIG=/home/luca/.local/src/git/ansible/classes/kubeconfig/netsyno.kubernetes.tralios.de.yaml; /usr/local/bin/velero"
-alias kubectl_testing="export KUBECONFIG=/home/luca/.local/src/git/ansible/classes/kubeconfig/testing.kubernetes.tralios.de.yaml; kubectl"
-alias velero_testing="export KUBECONFIG=/home/luca/.local/src/git/ansible/classes/kubeconfig/testing.kubernetes.tralios.de.yaml; /usr/local/bin/velero"
-alias kubectl_production="export KUBECONFIG=/home/luca/.local/src/git/ansible/classes/kubeconfig/production.kubernetes.tralios.de.yaml; kubectl"
-alias velero_production="export KUBECONFIG=/home/luca/.local/src/git/ansible/classes/kubeconfig/production.kubernetes.tralios.de.yaml; /usr/local/bin/velero"
-alias kubectl_server315="export KUBECONFIG=/home/luca/.local/src/git/ansible/classes/kubeconfig/server315.kubernetes.tralios.de.yaml; kubectl"
-alias velero_server315="export KUBECONFIG=/home/luca/.local/src/git/ansible/classes/kubeconfig/server315.kubernetes.tralios.de.yaml; /usr/local/bin/velero"
-alias kubectl_nds="export KUBECONFIG=/home/luca/.local/src/git/ansible/classes/kubeconfig/nds.kubernetes.tralios.de.yaml; kubectl"
-alias velero_nds="export KUBECONFIG=/home/luca/.local/src/git/ansible/classes/kubeconfig/nds.kubernetes.tralios.de.yaml; /usr/local/bin/velero"
-alias kubectl_hetzner="export KUBECONFIG=/home/luca/.local/src/git/ansible/classes/kubeconfig/hetzner.kubernetes.tralios.de.yaml; kubectl"
-alias velero_hetzner="export KUBECONFIG=/home/luca/.local/src/git/ansible/classes/kubeconfig/hetzner.kubernetes.tralios.de.yaml; /usr/local/bin/velero"
-alias kubectl_communalfmdemo="export KUBECONFIG=/home/luca/.local/src/git/ansible/classes/kubeconfig/communalfmdemo.kubernetes.tralios.de.yaml; kubectl"
-alias velero_communalfmdemo="export KUBECONFIG=/home/luca/.local/src/git/ansible/classes/kubeconfig/communalfmdemo.kubernetes.tralios.de.yaml; /usr/local/bin/velero"
-alias kubectl_customer="export KUBECONFIG=/home/luca/.local/src/git/ansible/classes/kubeconfig/customer.kubernetes.tralios.de.yaml; kubectl"
-alias velero_customer="export KUBECONFIG=/home/luca/.local/src/git/ansible/classes/kubeconfig/customer.kubernetes.tralios.de.yaml; /usr/local/bin/velero"
-alias kubectl_k3s_testing="export KUBECONFIG=/home/luca/.local/src/git/ansible/classes/kubeconfig/k3s-testing.kubernetes.tralios.de.yaml; kubectl"
-alias velero_k3s_testing="export KUBECONFIG=/home/luca/.local/src/git/ansible/classes/kubeconfig/k3s-testing.kubernetes.tralios.de.yaml; /usr/local/bin/velero"
-
-
-function kubedash () {
-     case "$1" in
-         (netsyno) kubeconfig=/home/luca/.local/src/git/ansible/classes/kubeconfig/netsyno.kubernetes.tralios.de.yaml; cluster=netsyno.kubernetes.tralios.de  ;;
-         (testing) kubeconfig=/home/luca/.local/src/git/ansible/classes/kubeconfig/testing.kubernetes.tralios.de.yaml; cluster=testing.kubernetes.tralios.de  ;;
-         (production) kubeconfig=/home/luca/.local/src/git/ansible/classes/kubeconfig/production.kubernetes.tralios.de.yaml; cluster=production.kubernetes.tralios.de  ;;
-         (server315) kubeconfig=/home/luca/.local/src/git/ansible/classes/kubeconfig/server315.kubernetes.tralios.de.yaml; cluster=server315.kubernetes.tralios.de  ;;
-         (nds) kubeconfig=/home/luca/.local/src/git/ansible/classes/kubeconfig/nds.kubernetes.tralios.de.yaml; cluster=nds.kubernetes.tralios.de  ;;
-         (hetzner) kubeconfig=/home/luca/.local/src/git/ansible/classes/kubeconfig/hetzner.kubernetes.tralios.de.yaml; cluster=hetzner.kubernetes.tralios.de  ;;
-         (communalfmdemo) kubeconfig=/home/luca/.local/src/git/ansible/classes/kubeconfig/communalfmdemo.kubernetes.tralios.de.yaml; cluster=communalfmdemo.kubernetes.tralios.de  ;;
-         (customer) kubeconfig=/home/luca/.local/src/git/ansible/classes/kubeconfig/customer.kubernetes.tralios.de.yaml; cluster=customer.kubernetes.tralios.de  ;;
-         (k3s_testing) kubeconfig=/home/luca/.local/src/git/ansible/classes/kubeconfig/k3s-testing.kubernetes.tralios.de.yaml; cluster=k3s-testing.kubernetes.tralios.de  ;;
-#         (*) kubeconfig=/home/luca/.local/src/git/ansible/classes/kubeconfig/$1.yaml ;;
-     esac
-     local token=$(kubectl --kubeconfig ${kubeconfig} -n kubernetes-dashboard describe secret `kubectl --kubeconfig ${kubeconfig} get secret -n kubernetes-dashboard | grep admin-user | awk '{ print $1}'` | grep token: | awk '{ print $2}')
-     echo ${token} | xsel -b -i
-     xdg-open https://dashboard.${cluster}/ > /dev/null 2>&1 &
-     #kubectl --kubeconfig ${kubeconfig} proxy
-}
-
-function kubedash_netsyno () {
-     local kubeconfig=/home/luca/.local/src/git/ansible/classes/kubeconfig/netsyno.kubernetes.tralios.de.yaml
-     local token=$(kubectl --kubeconfig ${kubeconfig} -n kubernetes-dashboard describe secret `kubectl --kubeconfig ${kubeconfig} get secret -n kubernetes-dashboard | grep admin-user | awk '{ print $1}'` | grep token: | awk '{ print $2}')
-     echo ${token} | xsel -b -i
-     xdg-open https://dashboard.netsyno.kubernetes.tralios.de/#/login > /dev/null 2>&1 &
-     #kubectl --kubeconfig ${kubeconfig} proxy
-}
-
-function kubedash_testing () {
-     local kubeconfig=/home/luca/.local/src/git/ansible/classes/kubeconfig/testing.kubernetes.tralios.de.yaml
-     local token=$(kubectl --kubeconfig ${kubeconfig} -n kubernetes-dashboard describe secret `kubectl --kubeconfig ${kubeconfig} get secret -n kubernetes-dashboard | grep admin-user | awk '{ print $1}'` | grep token: | awk '{ print $2}')
-     echo ${token} | xsel -b -i
-     xdg-open https://dashboard.testing.kubernetes.tralios.de/#/login > /dev/null 2>&1 &
-     #kubectl --kubeconfig ${kubeconfig} proxy
-}
-
-function kubedash_production () {
-     local kubeconfig=/home/luca/.local/src/git/ansible/classes/kubeconfig/production.kubernetes.tralios.de.yaml
-     local token=$(kubectl --kubeconfig ${kubeconfig} -n kubernetes-dashboard describe secret `kubectl --kubeconfig ${kubeconfig} get secret -n kubernetes-dashboard | grep admin-user | awk '{ print $1}'` | grep token: | awk '{ print $2}')
-     echo ${token} | xsel -b -i
-     xdg-open https://dashboard.production.kubernetes.tralios.de/#/login > /dev/null 2>&1 &
-     #kubectl --kubeconfig ${kubeconfig} proxy
-}
-
-function kubedash_server315 () {
-     local kubeconfig=/home/luca/.local/src/git/ansible/classes/kubeconfig/server315.kubernetes.tralios.de.yaml
-     local token=$(kubectl --kubeconfig ${kubeconfig} -n kubernetes-dashboard describe secret `kubectl --kubeconfig ${kubeconfig} get secret -n kubernetes-dashboard | grep admin-user | awk '{ print $1}'` | grep token: | awk '{ print $2}')
-     echo ${token} | xsel -b -i
-     xdg-open https://dashboard.server315.kubernetes.tralios.de/#/login > /dev/null 2>&1 &
-     #kubectl --kubeconfig ${kubeconfig} proxy
-}
-
-function kubedash_nds () {
-     local kubeconfig=/home/luca/.local/src/git/ansible/classes/kubeconfig/nds.kubernetes.tralios.de.yaml
-     local token=$(kubectl --kubeconfig ${kubeconfig} -n kubernetes-dashboard describe secret `kubectl --kubeconfig ${kubeconfig} get secret -n kubernetes-dashboard | grep admin-user | awk '{ print $1}'` | grep token: | awk '{ print $2}')
-     echo ${token} | xsel -b -i
-     xdg-open https://dashboard.nds.kubernetes.tralios.de/#/login > /dev/null 2>&1 &
-     #kubectl --kubeconfig ${kubeconfig} proxy
-}
-
-function kubedash_hetzner () {
-     local kubeconfig=/home/luca/.local/src/git/ansible/classes/kubeconfig/hetzner.kubernetes.tralios.de.yaml
-     local token=$(kubectl --kubeconfig ${kubeconfig} -n kubernetes-dashboard describe secret `kubectl --kubeconfig ${kubeconfig} get secret -n kubernetes-dashboard | grep admin-user | awk '{ print $1}'` | grep token: | awk '{ print $2}')
-     echo ${token} | xsel -b -i
-     xdg-open https://dashboard.hetzner.kubernetes.tralios.de/#/login > /dev/null 2>&1 &
-     #kubectl --kubeconfig ${kubeconfig} proxy
-}
-
-function kubedash_communalfmdemo () {
-     local kubeconfig=/home/luca/.local/src/git/ansible/classes/kubeconfig/communalfmdemo.kubernetes.tralios.de.yaml
-     local token=$(kubectl --kubeconfig ${kubeconfig} -n kubernetes-dashboard describe secret `kubectl --kubeconfig ${kubeconfig} get secret -n kubernetes-dashboard | grep admin-user | awk '{ print $1}'` | grep token: | awk '{ print $2}')
-     echo ${token} | xsel -b -i
-     xdg-open https://dashboard.communalfmdemo.kubernetes.tralios.de/#/login > /dev/null 2>&1 &
-     #kubectl --kubeconfig ${kubeconfig} proxy
-}
-
-function kubedash_customer () {
-     local kubeconfig=/home/luca/.local/src/git/ansible/classes/kubeconfig/customer.kubernetes.tralios.de.yaml
-     local token=$(kubectl --kubeconfig ${kubeconfig} -n kubernetes-dashboard describe secret `kubectl --kubeconfig ${kubeconfig} get secret -n kubernetes-dashboard | grep admin-user | awk '{ print $1}'` | grep token: | awk '{ print $2}')
-     echo ${token} | xsel -b -i
-     xdg-open https://dashboard.customer.kubernetes.tralios.de/#/login > /dev/null 2>&1 &
-     #kubectl --kubeconfig ${kubeconfig} proxy
-}
-
-function kubedash_k3s_testing () {
-     local kubeconfig=/home/luca/.local/src/git/ansible/classes/kubeconfig/k3s-testing.kubernetes.tralios.de.yaml
-     local token=$(kubectl --kubeconfig ${kubeconfig} -n kubernetes-dashboard describe secret `kubectl --kubeconfig ${kubeconfig} get secret -n kubernetes-dashboard | grep admin-user | awk '{ print $1}'` | grep token: | awk '{ print $2}')
-     echo ${token} | xsel -b -i
-     xdg-open https://dashboard.k3s-testing.kubernetes.tralios.de/#/login > /dev/null 2>&1 &
-     #kubectl --kubeconfig ${kubeconfig} proxy
-}
-
-
-function kdash () {
-     case "$1" in
-         (netsyno) kubeconfig=/home/luca/.local/src/git/ansible/classes/kubeconfig/netsyno.kubernetes.tralios.de.yaml; cluster=netsyno.kubernetes.tralios.de  ;;
-         (testing) kubeconfig=/home/luca/.local/src/git/ansible/classes/kubeconfig/testing.kubernetes.tralios.de.yaml; cluster=testing.kubernetes.tralios.de  ;;
-         (production) kubeconfig=/home/luca/.local/src/git/ansible/classes/kubeconfig/production.kubernetes.tralios.de.yaml; cluster=production.kubernetes.tralios.de  ;;
-         (server315) kubeconfig=/home/luca/.local/src/git/ansible/classes/kubeconfig/server315.kubernetes.tralios.de.yaml; cluster=server315.kubernetes.tralios.de  ;;
-         (nds) kubeconfig=/home/luca/.local/src/git/ansible/classes/kubeconfig/nds.kubernetes.tralios.de.yaml; cluster=nds.kubernetes.tralios.de  ;;
-         (hetzner) kubeconfig=/home/luca/.local/src/git/ansible/classes/kubeconfig/hetzner.kubernetes.tralios.de.yaml; cluster=hetzner.kubernetes.tralios.de  ;;
-         (communalfmdemo) kubeconfig=/home/luca/.local/src/git/ansible/classes/kubeconfig/communalfmdemo.kubernetes.tralios.de.yaml; cluster=communalfmdemo.kubernetes.tralios.de  ;;
-         (customer) kubeconfig=/home/luca/.local/src/git/ansible/classes/kubeconfig/customer.kubernetes.tralios.de.yaml; cluster=customer.kubernetes.tralios.de  ;;
-         (k3s_testing) kubeconfig=/home/luca/.local/src/git/ansible/classes/kubeconfig/k3s-testing.kubernetes.tralios.de.yaml; cluster=k3s-testing.kubernetes.tralios.de  ;;
-#         (*) kubeconfig=/home/luca/.local/src/git/ansible/classes/kubeconfig/$1.yaml ;;
-     esac
-     local token=$(kubectl --kubeconfig ${kubeconfig} -n kubernetes-dashboard describe secret `kubectl --kubeconfig ${kubeconfig} get secret -n kubernetes-dashboard | grep admin-user | awk '{ print $1}'` | grep token: | awk '{ print $2}')
-     echo ${token} | xsel -b -i
-     xdg-open https://dashboard.${cluster}/ > /dev/null 2>&1 &
-     #kubectl --kubeconfig ${kubeconfig} proxy
-}
-
-function kdash_netsyno () {
-     local kubeconfig=/home/luca/.local/src/git/ansible/classes/kubeconfig/netsyno.kubernetes.tralios.de.yaml
-     local token=$(kubectl --kubeconfig ${kubeconfig} -n kubernetes-dashboard describe secret `kubectl --kubeconfig ${kubeconfig} get secret -n kubernetes-dashboard | grep admin-user | awk '{ print $1}'` | grep token: | awk '{ print $2}')
-     echo ${token} | xsel -b -i
-     xdg-open https://dashboard.netsyno.kubernetes.tralios.de/#/login > /dev/null 2>&1 &
-     #kubectl --kubeconfig ${kubeconfig} proxy
-}
-
-function kdash_testing () {
-     local kubeconfig=/home/luca/.local/src/git/ansible/classes/kubeconfig/testing.kubernetes.tralios.de.yaml
-     local token=$(kubectl --kubeconfig ${kubeconfig} -n kubernetes-dashboard describe secret `kubectl --kubeconfig ${kubeconfig} get secret -n kubernetes-dashboard | grep admin-user | awk '{ print $1}'` | grep token: | awk '{ print $2}')
-     echo ${token} | xsel -b -i
-     xdg-open https://dashboard.testing.kubernetes.tralios.de/#/login > /dev/null 2>&1 &
-     #kubectl --kubeconfig ${kubeconfig} proxy
-}
-
-function kdash_production () {
-     local kubeconfig=/home/luca/.local/src/git/ansible/classes/kubeconfig/production.kubernetes.tralios.de.yaml
-     local token=$(kubectl --kubeconfig ${kubeconfig} -n kubernetes-dashboard describe secret `kubectl --kubeconfig ${kubeconfig} get secret -n kubernetes-dashboard | grep admin-user | awk '{ print $1}'` | grep token: | awk '{ print $2}')
-     echo ${token} | xsel -b -i
-     xdg-open https://dashboard.production.kubernetes.tralios.de/#/login > /dev/null 2>&1 &
-     #kubectl --kubeconfig ${kubeconfig} proxy
-}
-
-function kdash_server315 () {
-     local kubeconfig=/home/luca/.local/src/git/ansible/classes/kubeconfig/server315.kubernetes.tralios.de.yaml
-     local token=$(kubectl --kubeconfig ${kubeconfig} -n kubernetes-dashboard describe secret `kubectl --kubeconfig ${kubeconfig} get secret -n kubernetes-dashboard | grep admin-user | awk '{ print $1}'` | grep token: | awk '{ print $2}')
-     echo ${token} | xsel -b -i
-     xdg-open https://dashboard.server315.kubernetes.tralios.de/#/login > /dev/null 2>&1 &
-     #kubectl --kubeconfig ${kubeconfig} proxy
-}
-
-function kdash_nds () {
-     local kubeconfig=/home/luca/.local/src/git/ansible/classes/kubeconfig/nds.kubernetes.tralios.de.yaml
-     local token=$(kubectl --kubeconfig ${kubeconfig} -n kubernetes-dashboard describe secret `kubectl --kubeconfig ${kubeconfig} get secret -n kubernetes-dashboard | grep admin-user | awk '{ print $1}'` | grep token: | awk '{ print $2}')
-     echo ${token} | xsel -b -i
-     xdg-open https://dashboard.nds.kubernetes.tralios.de/#/login > /dev/null 2>&1 &
-     #kubectl --kubeconfig ${kubeconfig} proxy
-}
-
-function kdash_hetzner () {
-     local kubeconfig=/home/luca/.local/src/git/ansible/classes/kubeconfig/hetzner.kubernetes.tralios.de.yaml
-     local token=$(kubectl --kubeconfig ${kubeconfig} -n kubernetes-dashboard describe secret `kubectl --kubeconfig ${kubeconfig} get secret -n kubernetes-dashboard | grep admin-user | awk '{ print $1}'` | grep token: | awk '{ print $2}')
-     echo ${token} | xsel -b -i
-     xdg-open https://dashboard.hetzner.kubernetes.tralios.de/#/login > /dev/null 2>&1 &
-     #kubectl --kubeconfig ${kubeconfig} proxy
-}
-
-function kdash_communalfmdemo () {
-     local kubeconfig=/home/luca/.local/src/git/ansible/classes/kubeconfig/communalfmdemo.kubernetes.tralios.de.yaml
-     local token=$(kubectl --kubeconfig ${kubeconfig} -n kubernetes-dashboard describe secret `kubectl --kubeconfig ${kubeconfig} get secret -n kubernetes-dashboard | grep admin-user | awk '{ print $1}'` | grep token: | awk '{ print $2}')
-     echo ${token} | xsel -b -i
-     xdg-open https://dashboard.communalfmdemo.kubernetes.tralios.de/#/login > /dev/null 2>&1 &
-     #kubectl --kubeconfig ${kubeconfig} proxy
-}
-
-function kdash_customer () {
-     local kubeconfig=/home/luca/.local/src/git/ansible/classes/kubeconfig/customer.kubernetes.tralios.de.yaml
-     local token=$(kubectl --kubeconfig ${kubeconfig} -n kubernetes-dashboard describe secret `kubectl --kubeconfig ${kubeconfig} get secret -n kubernetes-dashboard | grep admin-user | awk '{ print $1}'` | grep token: | awk '{ print $2}')
-     echo ${token} | xsel -b -i
-     xdg-open https://dashboard.customer.kubernetes.tralios.de/#/login > /dev/null 2>&1 &
-     #kubectl --kubeconfig ${kubeconfig} proxy
-}
-
-function kdash_k3s_testing () {
-     local kubeconfig=/home/luca/.local/src/git/ansible/classes/kubeconfig/k3s-testing.kubernetes.tralios.de.yaml
-     local token=$(kubectl --kubeconfig ${kubeconfig} -n kubernetes-dashboard describe secret `kubectl --kubeconfig ${kubeconfig} get secret -n kubernetes-dashboard | grep admin-user | awk '{ print $1}'` | grep token: | awk '{ print $2}')
-     echo ${token} | xsel -b -i
-     xdg-open https://dashboard.k3s-testing.kubernetes.tralios.de/#/login > /dev/null 2>&1 &
-     #kubectl --kubeconfig ${kubeconfig} proxy
-}
-
-
-function kprom () {
-     case "$1" in
-         (netsyno) kubeconfig=/home/luca/.local/src/git/ansible/classes/kubeconfig/netsyno.kubernetes.tralios.de.yaml; cluster=netsyno.kubernetes.tralios.de  ;;
-         (testing) kubeconfig=/home/luca/.local/src/git/ansible/classes/kubeconfig/testing.kubernetes.tralios.de.yaml; cluster=testing.kubernetes.tralios.de  ;;
-         (production) kubeconfig=/home/luca/.local/src/git/ansible/classes/kubeconfig/production.kubernetes.tralios.de.yaml; cluster=production.kubernetes.tralios.de  ;;
-         (server315) kubeconfig=/home/luca/.local/src/git/ansible/classes/kubeconfig/server315.kubernetes.tralios.de.yaml; cluster=server315.kubernetes.tralios.de  ;;
-         (nds) kubeconfig=/home/luca/.local/src/git/ansible/classes/kubeconfig/nds.kubernetes.tralios.de.yaml; cluster=nds.kubernetes.tralios.de  ;;
-         (hetzner) kubeconfig=/home/luca/.local/src/git/ansible/classes/kubeconfig/hetzner.kubernetes.tralios.de.yaml; cluster=hetzner.kubernetes.tralios.de  ;;
-         (communalfmdemo) kubeconfig=/home/luca/.local/src/git/ansible/classes/kubeconfig/communalfmdemo.kubernetes.tralios.de.yaml; cluster=communalfmdemo.kubernetes.tralios.de  ;;
-         (customer) kubeconfig=/home/luca/.local/src/git/ansible/classes/kubeconfig/customer.kubernetes.tralios.de.yaml; cluster=customer.kubernetes.tralios.de  ;;
-         (k3s_testing) kubeconfig=/home/luca/.local/src/git/ansible/classes/kubeconfig/k3s-testing.kubernetes.tralios.de.yaml; cluster=k3s-testing.kubernetes.tralios.de  ;;
-#         (*) kubeconfig=/home/luca/.local/src/git/ansible/classes/kubeconfig/$1.yaml ;;
-     esac
-     xdg-open https://prometheus.${cluster}/ > /dev/null 2>&1 &
-     #kubectl --kubeconfig ${kubeconfig} proxy
-}
-
-function kprom_netsyno () {
-     local kubeconfig=/home/luca/.local/src/git/ansible/classes/kubeconfig/netsyno.kubernetes.tralios.de.yaml
-     xdg-open https://prometheus.netsyno.kubernetes.tralios.de/#/login > /dev/null 2>&1 &
-     #kubectl --kubeconfig ${kubeconfig} proxy
-}
-
-function kprom_testing () {
-     local kubeconfig=/home/luca/.local/src/git/ansible/classes/kubeconfig/testing.kubernetes.tralios.de.yaml
-     xdg-open https://prometheus.testing.kubernetes.tralios.de/#/login > /dev/null 2>&1 &
-     #kubectl --kubeconfig ${kubeconfig} proxy
-}
-
-function kprom_production () {
-     local kubeconfig=/home/luca/.local/src/git/ansible/classes/kubeconfig/production.kubernetes.tralios.de.yaml
-     xdg-open https://prometheus.production.kubernetes.tralios.de/#/login > /dev/null 2>&1 &
-     #kubectl --kubeconfig ${kubeconfig} proxy
-}
-
-function kprom_server315 () {
-     local kubeconfig=/home/luca/.local/src/git/ansible/classes/kubeconfig/server315.kubernetes.tralios.de.yaml
-     xdg-open https://prometheus.server315.kubernetes.tralios.de/#/login > /dev/null 2>&1 &
-     #kubectl --kubeconfig ${kubeconfig} proxy
-}
-
-function kprom_nds () {
-     local kubeconfig=/home/luca/.local/src/git/ansible/classes/kubeconfig/nds.kubernetes.tralios.de.yaml
-     xdg-open https://prometheus.nds.kubernetes.tralios.de/#/login > /dev/null 2>&1 &
-     #kubectl --kubeconfig ${kubeconfig} proxy
-}
-
-function kprom_hetzner () {
-     local kubeconfig=/home/luca/.local/src/git/ansible/classes/kubeconfig/hetzner.kubernetes.tralios.de.yaml
-     xdg-open https://prometheus.hetzner.kubernetes.tralios.de/#/login > /dev/null 2>&1 &
-     #kubectl --kubeconfig ${kubeconfig} proxy
-}
-
-function kprom_communalfmdemo () {
-     local kubeconfig=/home/luca/.local/src/git/ansible/classes/kubeconfig/communalfmdemo.kubernetes.tralios.de.yaml
-     xdg-open https://prometheus.communalfmdemo.kubernetes.tralios.de/#/login > /dev/null 2>&1 &
-     #kubectl --kubeconfig ${kubeconfig} proxy
-}
-
-function kprom_customer () {
-     local kubeconfig=/home/luca/.local/src/git/ansible/classes/kubeconfig/customer.kubernetes.tralios.de.yaml
-     xdg-open https://prometheus.customer.kubernetes.tralios.de/#/login > /dev/null 2>&1 &
-     #kubectl --kubeconfig ${kubeconfig} proxy
-}
-
-function kprom_k3s_testing () {
-     local kubeconfig=/home/luca/.local/src/git/ansible/classes/kubeconfig/k3s-testing.kubernetes.tralios.de.yaml
-     xdg-open https://prometheus.k3s-testing.kubernetes.tralios.de/#/login > /dev/null 2>&1 &
-     #kubectl --kubeconfig ${kubeconfig} proxy
-}
-
-
-function klonghorn () {
-     case "$1" in
-         (netsyno) kubeconfig=/home/luca/.local/src/git/ansible/classes/kubeconfig/netsyno.kubernetes.tralios.de.yaml; cluster=netsyno.kubernetes.tralios.de  ;;
-         (testing) kubeconfig=/home/luca/.local/src/git/ansible/classes/kubeconfig/testing.kubernetes.tralios.de.yaml; cluster=testing.kubernetes.tralios.de  ;;
-         (production) kubeconfig=/home/luca/.local/src/git/ansible/classes/kubeconfig/production.kubernetes.tralios.de.yaml; cluster=production.kubernetes.tralios.de  ;;
-         (server315) kubeconfig=/home/luca/.local/src/git/ansible/classes/kubeconfig/server315.kubernetes.tralios.de.yaml; cluster=server315.kubernetes.tralios.de  ;;
-         (nds) kubeconfig=/home/luca/.local/src/git/ansible/classes/kubeconfig/nds.kubernetes.tralios.de.yaml; cluster=nds.kubernetes.tralios.de  ;;
-         (hetzner) kubeconfig=/home/luca/.local/src/git/ansible/classes/kubeconfig/hetzner.kubernetes.tralios.de.yaml; cluster=hetzner.kubernetes.tralios.de  ;;
-         (communalfmdemo) kubeconfig=/home/luca/.local/src/git/ansible/classes/kubeconfig/communalfmdemo.kubernetes.tralios.de.yaml; cluster=communalfmdemo.kubernetes.tralios.de  ;;
-         (customer) kubeconfig=/home/luca/.local/src/git/ansible/classes/kubeconfig/customer.kubernetes.tralios.de.yaml; cluster=customer.kubernetes.tralios.de  ;;
-         (k3s_testing) kubeconfig=/home/luca/.local/src/git/ansible/classes/kubeconfig/k3s-testing.kubernetes.tralios.de.yaml; cluster=k3s-testing.kubernetes.tralios.de  ;;
-#         (*) kubeconfig=/home/luca/.local/src/git/ansible/classes/kubeconfig/$1.yaml ;;
-     esac
-     xdg-open https://longhorn.${cluster}/ > /dev/null 2>&1 &
-     #kubectl --kubeconfig ${kubeconfig} proxy
-}
-
-function klonghorn_netsyno () {
-     local kubeconfig=/home/luca/.local/src/git/ansible/classes/kubeconfig/netsyno.kubernetes.tralios.de.yaml
-     xdg-open https://longhorn.netsyno.kubernetes.tralios.de/#/login > /dev/null 2>&1 &
-     #kubectl --kubeconfig ${kubeconfig} proxy
-}
-
-function klonghorn_testing () {
-     local kubeconfig=/home/luca/.local/src/git/ansible/classes/kubeconfig/testing.kubernetes.tralios.de.yaml
-     xdg-open https://longhorn.testing.kubernetes.tralios.de/#/login > /dev/null 2>&1 &
-     #kubectl --kubeconfig ${kubeconfig} proxy
-}
-
-function klonghorn_production () {
-     local kubeconfig=/home/luca/.local/src/git/ansible/classes/kubeconfig/production.kubernetes.tralios.de.yaml
-     xdg-open https://longhorn.production.kubernetes.tralios.de/#/login > /dev/null 2>&1 &
-     #kubectl --kubeconfig ${kubeconfig} proxy
-}
-
-function klonghorn_server315 () {
-     local kubeconfig=/home/luca/.local/src/git/ansible/classes/kubeconfig/server315.kubernetes.tralios.de.yaml
-     xdg-open https://longhorn.server315.kubernetes.tralios.de/#/login > /dev/null 2>&1 &
-     #kubectl --kubeconfig ${kubeconfig} proxy
-}
-
-function klonghorn_nds () {
-     local kubeconfig=/home/luca/.local/src/git/ansible/classes/kubeconfig/nds.kubernetes.tralios.de.yaml
-     xdg-open https://longhorn.nds.kubernetes.tralios.de/#/login > /dev/null 2>&1 &
-     #kubectl --kubeconfig ${kubeconfig} proxy
-}
-
-function klonghorn_hetzner () {
-     local kubeconfig=/home/luca/.local/src/git/ansible/classes/kubeconfig/hetzner.kubernetes.tralios.de.yaml
-     xdg-open https://longhorn.hetzner.kubernetes.tralios.de/#/login > /dev/null 2>&1 &
-     #kubectl --kubeconfig ${kubeconfig} proxy
-}
-
-function klonghorn_communalfmdemo () {
-     local kubeconfig=/home/luca/.local/src/git/ansible/classes/kubeconfig/communalfmdemo.kubernetes.tralios.de.yaml
-     xdg-open https://longhorn.communalfmdemo.kubernetes.tralios.de/#/login > /dev/null 2>&1 &
-     #kubectl --kubeconfig ${kubeconfig} proxy
-}
-
-function klonghorn_customer () {
-     local kubeconfig=/home/luca/.local/src/git/ansible/classes/kubeconfig/customer.kubernetes.tralios.de.yaml
-     xdg-open https://longhorn.customer.kubernetes.tralios.de/#/login > /dev/null 2>&1 &
-     #kubectl --kubeconfig ${kubeconfig} proxy
-}
-
-function klonghorn_k3s_testing () {
-     local kubeconfig=/home/luca/.local/src/git/ansible/classes/kubeconfig/k3s-testing.kubernetes.tralios.de.yaml
-     xdg-open https://longhorn.k3s-testing.kubernetes.tralios.de/#/login > /dev/null 2>&1 &
-     #kubectl --kubeconfig ${kubeconfig} proxy
-}
-
-
-function ktraefik () {
-     case "$1" in
-         (netsyno) kubeconfig=/home/luca/.local/src/git/ansible/classes/kubeconfig/netsyno.kubernetes.tralios.de.yaml; cluster=netsyno.kubernetes.tralios.de  ;;
-         (testing) kubeconfig=/home/luca/.local/src/git/ansible/classes/kubeconfig/testing.kubernetes.tralios.de.yaml; cluster=testing.kubernetes.tralios.de  ;;
-         (production) kubeconfig=/home/luca/.local/src/git/ansible/classes/kubeconfig/production.kubernetes.tralios.de.yaml; cluster=production.kubernetes.tralios.de  ;;
-         (server315) kubeconfig=/home/luca/.local/src/git/ansible/classes/kubeconfig/server315.kubernetes.tralios.de.yaml; cluster=server315.kubernetes.tralios.de  ;;
-         (nds) kubeconfig=/home/luca/.local/src/git/ansible/classes/kubeconfig/nds.kubernetes.tralios.de.yaml; cluster=nds.kubernetes.tralios.de  ;;
-         (hetzner) kubeconfig=/home/luca/.local/src/git/ansible/classes/kubeconfig/hetzner.kubernetes.tralios.de.yaml; cluster=hetzner.kubernetes.tralios.de  ;;
-         (communalfmdemo) kubeconfig=/home/luca/.local/src/git/ansible/classes/kubeconfig/communalfmdemo.kubernetes.tralios.de.yaml; cluster=communalfmdemo.kubernetes.tralios.de  ;;
-         (customer) kubeconfig=/home/luca/.local/src/git/ansible/classes/kubeconfig/customer.kubernetes.tralios.de.yaml; cluster=customer.kubernetes.tralios.de  ;;
-         (k3s_testing) kubeconfig=/home/luca/.local/src/git/ansible/classes/kubeconfig/k3s-testing.kubernetes.tralios.de.yaml; cluster=k3s-testing.kubernetes.tralios.de  ;;
-#         (*) kubeconfig=/home/luca/.local/src/git/ansible/classes/kubeconfig/$1.yaml ;;
-     esac
-     xdg-open https://traefik.${cluster}/ > /dev/null 2>&1 &
-     #kubectl --kubeconfig ${kubeconfig} proxy
-}
-
-function ktraefik_netsyno () {
-     local kubeconfig=/home/luca/.local/src/git/ansible/classes/kubeconfig/netsyno.kubernetes.tralios.de.yaml
-     xdg-open https://traefik.netsyno.kubernetes.tralios.de/#/login > /dev/null 2>&1 &
-     #kubectl --kubeconfig ${kubeconfig} proxy
-}
-
-function ktraefik_testing () {
-     local kubeconfig=/home/luca/.local/src/git/ansible/classes/kubeconfig/testing.kubernetes.tralios.de.yaml
-     xdg-open https://traefik.testing.kubernetes.tralios.de/#/login > /dev/null 2>&1 &
-     #kubectl --kubeconfig ${kubeconfig} proxy
-}
-
-function ktraefik_production () {
-     local kubeconfig=/home/luca/.local/src/git/ansible/classes/kubeconfig/production.kubernetes.tralios.de.yaml
-     xdg-open https://traefik.production.kubernetes.tralios.de/#/login > /dev/null 2>&1 &
-     #kubectl --kubeconfig ${kubeconfig} proxy
-}
-
-function ktraefik_server315 () {
-     local kubeconfig=/home/luca/.local/src/git/ansible/classes/kubeconfig/server315.kubernetes.tralios.de.yaml
-     xdg-open https://traefik.server315.kubernetes.tralios.de/#/login > /dev/null 2>&1 &
-     #kubectl --kubeconfig ${kubeconfig} proxy
-}
-
-function ktraefik_nds () {
-     local kubeconfig=/home/luca/.local/src/git/ansible/classes/kubeconfig/nds.kubernetes.tralios.de.yaml
-     xdg-open https://traefik.nds.kubernetes.tralios.de/#/login > /dev/null 2>&1 &
-     #kubectl --kubeconfig ${kubeconfig} proxy
-}
-
-function ktraefik_hetzner () {
-     local kubeconfig=/home/luca/.local/src/git/ansible/classes/kubeconfig/hetzner.kubernetes.tralios.de.yaml
-     xdg-open https://traefik.hetzner.kubernetes.tralios.de/#/login > /dev/null 2>&1 &
-     #kubectl --kubeconfig ${kubeconfig} proxy
-}
-
-function ktraefik_communalfmdemo () {
-     local kubeconfig=/home/luca/.local/src/git/ansible/classes/kubeconfig/communalfmdemo.kubernetes.tralios.de.yaml
-     xdg-open https://traefik.communalfmdemo.kubernetes.tralios.de/#/login > /dev/null 2>&1 &
-     #kubectl --kubeconfig ${kubeconfig} proxy
-}
-
-function ktraefik_customer () {
-     local kubeconfig=/home/luca/.local/src/git/ansible/classes/kubeconfig/customer.kubernetes.tralios.de.yaml
-     xdg-open https://traefik.customer.kubernetes.tralios.de/#/login > /dev/null 2>&1 &
-     #kubectl --kubeconfig ${kubeconfig} proxy
-}
-
-function ktraefik_k3s_testing () {
-     local kubeconfig=/home/luca/.local/src/git/ansible/classes/kubeconfig/k3s-testing.kubernetes.tralios.de.yaml
-     xdg-open https://traefik.k3s-testing.kubernetes.tralios.de/#/login > /dev/null 2>&1 &
-     #kubectl --kubeconfig ${kubeconfig} proxy
-}
-
-
-function krook () {
-     case "$1" in
-         (netsyno) kubeconfig=/home/luca/.local/src/git/ansible/classes/kubeconfig/netsyno.kubernetes.tralios.de.yaml; cluster=netsyno.kubernetes.tralios.de  ;;
-         (testing) kubeconfig=/home/luca/.local/src/git/ansible/classes/kubeconfig/testing.kubernetes.tralios.de.yaml; cluster=testing.kubernetes.tralios.de  ;;
-         (production) kubeconfig=/home/luca/.local/src/git/ansible/classes/kubeconfig/production.kubernetes.tralios.de.yaml; cluster=production.kubernetes.tralios.de  ;;
-         (server315) kubeconfig=/home/luca/.local/src/git/ansible/classes/kubeconfig/server315.kubernetes.tralios.de.yaml; cluster=server315.kubernetes.tralios.de  ;;
-         (nds) kubeconfig=/home/luca/.local/src/git/ansible/classes/kubeconfig/nds.kubernetes.tralios.de.yaml; cluster=nds.kubernetes.tralios.de  ;;
-         (hetzner) kubeconfig=/home/luca/.local/src/git/ansible/classes/kubeconfig/hetzner.kubernetes.tralios.de.yaml; cluster=hetzner.kubernetes.tralios.de  ;;
-         (communalfmdemo) kubeconfig=/home/luca/.local/src/git/ansible/classes/kubeconfig/communalfmdemo.kubernetes.tralios.de.yaml; cluster=communalfmdemo.kubernetes.tralios.de  ;;
-         (customer) kubeconfig=/home/luca/.local/src/git/ansible/classes/kubeconfig/customer.kubernetes.tralios.de.yaml; cluster=customer.kubernetes.tralios.de  ;;
-         (k3s_testing) kubeconfig=/home/luca/.local/src/git/ansible/classes/kubeconfig/k3s-testing.kubernetes.tralios.de.yaml; cluster=k3s-testing.kubernetes.tralios.de  ;;
-#         (*) kubeconfig=/home/luca/.local/src/git/ansible/classes/kubeconfig/$1.yaml ;;
-     esac
-     local token=$(kubectl --kubeconfig ${kubeconfig} -n rook-ceph get secret rook-ceph-dashboard-password -o jsonpath='{.data.password}' | base64 -d)
-     echo ${token} | xsel -b -i
-     xdg-open https://rook.${cluster}/ > /dev/null 2>&1 &
-     #kubectl --kubeconfig ${kubeconfig} proxy
-}
-
-function krook_netsyno () {
-     local kubeconfig=/home/luca/.local/src/git/ansible/classes/kubeconfig/netsyno.kubernetes.tralios.de.yaml
-     local token=$(kubectl --kubeconfig ${kubeconfig} -n rook-ceph get secret rook-ceph-dashboard-password -o jsonpath='{.data.password}' | base64 -d)
-     echo ${token} | xsel -b -i
-     xdg-open https://rook.netsyno.kubernetes.tralios.de/#/login > /dev/null 2>&1 &
-     #kubectl --kubeconfig ${kubeconfig} proxy
-}
-
-function krook_testing () {
-     local kubeconfig=/home/luca/.local/src/git/ansible/classes/kubeconfig/testing.kubernetes.tralios.de.yaml
-     local token=$(kubectl --kubeconfig ${kubeconfig} -n rook-ceph get secret rook-ceph-dashboard-password -o jsonpath='{.data.password}' | base64 -d)
-     echo ${token} | xsel -b -i
-     xdg-open https://rook.testing.kubernetes.tralios.de/#/login > /dev/null 2>&1 &
-     #kubectl --kubeconfig ${kubeconfig} proxy
-}
-
-function krook_production () {
-     local kubeconfig=/home/luca/.local/src/git/ansible/classes/kubeconfig/production.kubernetes.tralios.de.yaml
-     local token=$(kubectl --kubeconfig ${kubeconfig} -n rook-ceph get secret rook-ceph-dashboard-password -o jsonpath='{.data.password}' | base64 -d)
-     echo ${token} | xsel -b -i
-     xdg-open https://rook.production.kubernetes.tralios.de/#/login > /dev/null 2>&1 &
-     #kubectl --kubeconfig ${kubeconfig} proxy
-}
-
-function krook_server315 () {
-     local kubeconfig=/home/luca/.local/src/git/ansible/classes/kubeconfig/server315.kubernetes.tralios.de.yaml
-     local token=$(kubectl --kubeconfig ${kubeconfig} -n rook-ceph get secret rook-ceph-dashboard-password -o jsonpath='{.data.password}' | base64 -d)
-     echo ${token} | xsel -b -i
-     xdg-open https://rook.server315.kubernetes.tralios.de/#/login > /dev/null 2>&1 &
-     #kubectl --kubeconfig ${kubeconfig} proxy
-}
-
-function krook_nds () {
-     local kubeconfig=/home/luca/.local/src/git/ansible/classes/kubeconfig/nds.kubernetes.tralios.de.yaml
-     local token=$(kubectl --kubeconfig ${kubeconfig} -n rook-ceph get secret rook-ceph-dashboard-password -o jsonpath='{.data.password}' | base64 -d)
-     echo ${token} | xsel -b -i
-     xdg-open https://rook.nds.kubernetes.tralios.de/#/login > /dev/null 2>&1 &
-     #kubectl --kubeconfig ${kubeconfig} proxy
-}
-
-function krook_hetzner () {
-     local kubeconfig=/home/luca/.local/src/git/ansible/classes/kubeconfig/hetzner.kubernetes.tralios.de.yaml
-     local token=$(kubectl --kubeconfig ${kubeconfig} -n rook-ceph get secret rook-ceph-dashboard-password -o jsonpath='{.data.password}' | base64 -d)
-     echo ${token} | xsel -b -i
-     xdg-open https://rook.hetzner.kubernetes.tralios.de/#/login > /dev/null 2>&1 &
-     #kubectl --kubeconfig ${kubeconfig} proxy
-}
-
-function krook_communalfmdemo () {
-     local kubeconfig=/home/luca/.local/src/git/ansible/classes/kubeconfig/communalfmdemo.kubernetes.tralios.de.yaml
-     local token=$(kubectl --kubeconfig ${kubeconfig} -n rook-ceph get secret rook-ceph-dashboard-password -o jsonpath='{.data.password}' | base64 -d)
-     echo ${token} | xsel -b -i
-     xdg-open https://rook.communalfmdemo.kubernetes.tralios.de/#/login > /dev/null 2>&1 &
-     #kubectl --kubeconfig ${kubeconfig} proxy
-}
-
-function krook_customer () {
-     local kubeconfig=/home/luca/.local/src/git/ansible/classes/kubeconfig/customer.kubernetes.tralios.de.yaml
-     local token=$(kubectl --kubeconfig ${kubeconfig} -n rook-ceph get secret rook-ceph-dashboard-password -o jsonpath='{.data.password}' | base64 -d)
-     echo ${token} | xsel -b -i
-     xdg-open https://rook.customer.kubernetes.tralios.de/#/login > /dev/null 2>&1 &
-     #kubectl --kubeconfig ${kubeconfig} proxy
-}
-
-function krook_k3s_testing () {
-     local kubeconfig=/home/luca/.local/src/git/ansible/classes/kubeconfig/k3s-testing.kubernetes.tralios.de.yaml
-     local token=$(kubectl --kubeconfig ${kubeconfig} -n rook-ceph get secret rook-ceph-dashboard-password -o jsonpath='{.data.password}' | base64 -d)
-     echo ${token} | xsel -b -i
-     xdg-open https://rook.k3s-testing.kubernetes.tralios.de/#/login > /dev/null 2>&1 &
-     #kubectl --kubeconfig ${kubeconfig} proxy
-}
-