Compare commits
4 Commits
f4b8934b61
...
7893e8546b
| Author | SHA1 | Date | |
|---|---|---|---|
| 7893e8546b | |||
| 769b6bc936 | |||
| 4c585d24bd | |||
| aedd6a2258 |
22
README.de.md
22
README.de.md
@@ -66,3 +66,25 @@ Damit das Skript auf dem Rock 5B nicht abbricht, kannst du am Anfang prüfen, ob
|
|||||||
command -v bw >/dev/null 2>&1 || echo "⚠️ Bitwarden CLI fehlt!"
|
command -v bw >/dev/null 2>&1 || echo "⚠️ Bitwarden CLI fehlt!"
|
||||||
command -v jq >/dev/null 2>&1 || echo "⚠️ jq fehlt!"
|
command -v jq >/dev/null 2>&1 || echo "⚠️ jq fehlt!"
|
||||||
```
|
```
|
||||||
|
|
||||||
|
## 5. Zusatz-Tools (Optional, aber empfohlen)
|
||||||
|
|
||||||
|
### eza (Moderner ls-Ersatz)
|
||||||
|
Um die erweiterten Aliase mit Icons und Git-Status nutzen zu können, muss `eza` installiert sein.
|
||||||
|
|
||||||
|
#### macOS (via Homebrew)
|
||||||
|
```bash
|
||||||
|
brew install eza
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Armbian/Debian/Ubuntu (via offiziellen Repos)
|
||||||
|
```bash
|
||||||
|
sudo mkdir -p /etc/apt/keyrings
|
||||||
|
wget -qO- [https://raw.githubusercontent.com/eza-community/eza/main/deb.asc](https://raw.githubusercontent.com/eza-community/eza/main/deb.asc) | sudo gpg --dearmor -o /etc/apt/keyrings/gza.gpg
|
||||||
|
echo "deb [signed-by=/etc/apt/keyrings/gza.gpg] [http://deb.gza.com/dev/](http://deb.gza.com/dev/) /" | sudo tee /etc/apt/sources.list.d/gza.list
|
||||||
|
sudo apt update
|
||||||
|
sudo apt install -y eza
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Nerd Fonts (Für Icons im Terminal)
|
||||||
|
**Empfehlung:** ```FiraCode Nerd Font Mono``` von [nerdfonts.com] herunterladen und installieren.
|
||||||
|
|||||||
68
install.sh
68
install.sh
@@ -1,21 +1,67 @@
|
|||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
# 1. Plugins installieren (falls nicht vorhanden)
|
# Farben für die Ausgabe
|
||||||
ZSH_CUSTOM=${ZSH_CUSTOM:-~/.oh-my-zsh/custom}
|
GREEN='\033[0;32m'
|
||||||
mkdir -p "$ZSH_CUSTOM/plugins"
|
BLUE='\033[0;34m'
|
||||||
|
YELLOW='\033[1;33m'
|
||||||
|
NC='\033[0m' # No Color
|
||||||
|
|
||||||
plugins=(zsh-autosuggestions zsh-syntax-highlighting zsh-completions)
|
echo -e "${BLUE}🚀 Starte Dotfiles Installation...${NC}"
|
||||||
for p in "${plugins[@]}"; do
|
|
||||||
if [ ! -d "$ZSH_CUSTOM/plugins/$p" ]; then
|
# 1. Prüfen auf Basistools
|
||||||
echo "Installiere $p..."
|
echo -e "${BLUE}Prüfe Abhängigkeiten...${NC}"
|
||||||
git clone "https://github.com/zsh-users/$p" "$ZSH_CUSTOM/plugins/$p"
|
for tool in bw jq git zsh; do
|
||||||
|
if ! command -v $tool &> /dev/null; then
|
||||||
|
echo -e "${YELLOW}⚠️ $tool ist nicht installiert. Bitte installiere es zuerst.${NC}"
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
|
|
||||||
# 2. Symlinks setzen
|
# 2. Oh-My-Zsh installieren, falls nicht vorhanden
|
||||||
ln -sf ~/dotfiles/zsh_func_d ~/.zsh_func_d
|
if [ ! -d "$HOME/.oh-my-zsh" ]; then
|
||||||
|
echo -e "${BLUE}Installiere Oh-My-Zsh...${NC}"
|
||||||
|
sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)" "" --unattended
|
||||||
|
else
|
||||||
|
echo -e "${GREEN}✅ Oh-My-Zsh ist bereits installiert.${NC}"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# 3. ZSH Plugins installieren
|
||||||
|
ZSH_CUSTOM=${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}
|
||||||
|
mkdir -p "$ZSH_CUSTOM/plugins"
|
||||||
|
|
||||||
|
plugins=(
|
||||||
|
"zsh-autosuggestions|https://github.com/zsh-users/zsh-autosuggestions"
|
||||||
|
"zsh-syntax-highlighting|https://github.com/zsh-users/zsh-syntax-highlighting"
|
||||||
|
"zsh-completions|https://github.com/zsh-users/zsh-completions"
|
||||||
|
)
|
||||||
|
|
||||||
|
for p in "${plugins[@]}"; do
|
||||||
|
name="${p%%|*}"
|
||||||
|
url="${p#*|}"
|
||||||
|
if [ ! -d "$ZSH_CUSTOM/plugins/$name" ]; then
|
||||||
|
echo -e "${BLUE}Installiere Plugin: $name...${NC}"
|
||||||
|
git clone "$url" "$ZSH_CUSTOM/plugins/$name"
|
||||||
|
else
|
||||||
|
echo -e "${GREEN}✅ Plugin $name ist bereits da.${NC}"
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
# 4. Symlinks setzen
|
||||||
|
echo -e "${BLUE}Setze Symlinks...${NC}"
|
||||||
|
# .zshrc Vorlage (wir überschreiben die Standard-.zshrc)
|
||||||
ln -sf ~/dotfiles/zshrc_template ~/.zshrc
|
ln -sf ~/dotfiles/zshrc_template ~/.zshrc
|
||||||
|
|
||||||
|
# Funktionen Ordner
|
||||||
|
ln -sfn ~/dotfiles/zsh_func_d ~/.zsh_func_d
|
||||||
|
|
||||||
|
# Git-Helper
|
||||||
mkdir -p ~/.local/bin
|
mkdir -p ~/.local/bin
|
||||||
ln -sf ~/dotfiles/bin/git-bw-helper ~/.local/bin/git-bw-helper
|
ln -sf ~/dotfiles/bin/git-bw-helper ~/.local/bin/git-bw-helper
|
||||||
|
chmod +x ~/dotfiles/bin/git-bw-helper
|
||||||
|
|
||||||
echo "✅ Installation abgeschlossen! Bitte 'source ~/.zshrc' ausführen."
|
# 5. Git Konfiguration für Gitea
|
||||||
|
echo -e "${BLUE}Konfiguriere Git-Helper für Gitea...${NC}"
|
||||||
|
git config --global --unset-all credential.https://gitea.iten.pro.helper
|
||||||
|
git config --global --add credential.https://gitea.iten.pro.helper '!git-bw-helper'
|
||||||
|
|
||||||
|
echo -e "${GREEN}✨ Installation abgeschlossen! ✨${NC}"
|
||||||
|
echo -e "${YELLOW}Bitte führe 'source ~/.zshrc' aus oder starte das Terminal neu.${NC}"
|
||||||
|
|||||||
7
zsh_func_d/darwin.zsh
Normal file
7
zsh_func_d/darwin.zsh
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
# Aliasses, die nur auf MacOS gebraucht werden.
|
||||||
|
if [[ "$OSTYPE" == "darwin"* ]]; then
|
||||||
|
# macOS spezifisch
|
||||||
|
alias nrf-env="export PATH='/opt/nordic/ncs/toolchains/322ac893fe/bin:\$PATH'"
|
||||||
|
# git alias ist nötig, da unter Sequoia sonst git auf lokale server nicht mehr funktioniert
|
||||||
|
alias git="/usr/bin/git"
|
||||||
|
fi
|
||||||
33
zsh_func_d/ls.zsh
Normal file
33
zsh_func_d/ls.zsh
Normal file
@@ -0,0 +1,33 @@
|
|||||||
|
# --- eza (Modern ls) Konfiguration ---
|
||||||
|
if command -v eza >/dev/null 2>&1; then
|
||||||
|
# Basis-Befehl mit Icons und sinnvoller Sortierung
|
||||||
|
alias ls='eza --icons --group-directories-first'
|
||||||
|
|
||||||
|
# Deine spezifischen Wünsche:
|
||||||
|
alias ll='eza -lh --icons --git --group-directories-first'
|
||||||
|
alias la='eza -a --icons --group-directories-first'
|
||||||
|
alias lla='eza -lah --icons --git --group-directories-first'
|
||||||
|
|
||||||
|
# Spezial-Filter:
|
||||||
|
alias ldot='eza -ld --icons .*' # Nur Dotfiles
|
||||||
|
alias lsize='eza -lh --icons --sort=size' # Sortiert nach Größe
|
||||||
|
alias ltime='eza -lh --icons --sort=modified' # Sortiert nach Zeit
|
||||||
|
alias ldir='eza -d --icons */' # Nur Verzeichnisse
|
||||||
|
alias lignore='eza -lh --icons --git-ignore --git' # Nur gitignore
|
||||||
|
|
||||||
|
# Bonus: Baumansicht (ersetzt 'tree')
|
||||||
|
alias lt='eza --tree --level=2 --icons'
|
||||||
|
else
|
||||||
|
# Fallback auf Standard ls, falls eza nicht installiert ist
|
||||||
|
alias lla="ls -lah"
|
||||||
|
alias ldot='ls -ld .*'
|
||||||
|
alias lsize='ls -lhS'
|
||||||
|
alias ltime='ls -lht'
|
||||||
|
alias ldir='ls -d */'
|
||||||
|
|
||||||
|
if [[ "$OSTYPE" == "darwin"* ]]; then
|
||||||
|
alias ls='ls -G'
|
||||||
|
else
|
||||||
|
alias ls='ls --color=auto'
|
||||||
|
fi
|
||||||
|
fi
|
||||||
162
zshrc_template
162
zshrc_template
@@ -1,91 +1,31 @@
|
|||||||
# If you come from bash you might have to change your $PATH.
|
# --- OH MY ZSH SETUP ---
|
||||||
# export PATH=$HOME/bin:$HOME/.local/bin:/usr/local/bin:$PATH
|
|
||||||
|
|
||||||
# Path to your Oh My Zsh installation.
|
|
||||||
export ZSH="$HOME/.oh-my-zsh"
|
export ZSH="$HOME/.oh-my-zsh"
|
||||||
|
|
||||||
# Set name of the theme to load --- if set to "random", it will
|
|
||||||
# load a random theme each time Oh My Zsh is loaded, in which case,
|
|
||||||
# to know which specific one was loaded, run: echo $RANDOM_THEME
|
|
||||||
# See https://github.com/ohmyzsh/ohmyzsh/wiki/Themes
|
|
||||||
# ZSH_THEME="robbyrussell"
|
|
||||||
ZSH_THEME="agnoster"
|
ZSH_THEME="agnoster"
|
||||||
|
|
||||||
# Set list of themes to pick from when loading at random
|
# Plugins dynamisch nach Plattform laden
|
||||||
# Setting this variable when ZSH_THEME=random will cause zsh to load
|
plugins=(git common-aliases)
|
||||||
# a theme from this variable instead of looking in $ZSH/themes/
|
|
||||||
# If set to an empty array, this variable will have no effect.
|
|
||||||
# ZSH_THEME_RANDOM_CANDIDATES=( "robbyrussell" "agnoster" )
|
|
||||||
|
|
||||||
# Uncomment the following line to use case-sensitive completion.
|
if [[ "$OSTYPE" == "darwin"* ]]; then
|
||||||
# CASE_SENSITIVE="true"
|
plugins+=(macos brew)
|
||||||
|
fi
|
||||||
|
|
||||||
# Uncomment the following line to use hyphen-insensitive completion.
|
plugins+=(
|
||||||
# Case-sensitive completion must be off. _ and - will be interchangeable.
|
|
||||||
# HYPHEN_INSENSITIVE="true"
|
|
||||||
|
|
||||||
# Uncomment one of the following lines to change the auto-update behavior
|
|
||||||
# zstyle ':omz:update' mode disabled # disable automatic updates
|
|
||||||
# zstyle ':omz:update' mode auto # update automatically without asking
|
|
||||||
# zstyle ':omz:update' mode reminder # just remind me to update when it's time
|
|
||||||
|
|
||||||
# Uncomment the following line to change how often to auto-update (in days).
|
|
||||||
# zstyle ':omz:update' frequency 13
|
|
||||||
|
|
||||||
# Uncomment the following line if pasting URLs and other text is messed up.
|
|
||||||
# DISABLE_MAGIC_FUNCTIONS="true"
|
|
||||||
|
|
||||||
# Uncomment the following line to disable colors in ls.
|
|
||||||
# DISABLE_LS_COLORS="true"
|
|
||||||
|
|
||||||
# Uncomment the following line to disable auto-setting terminal title.
|
|
||||||
# DISABLE_AUTO_TITLE="true"
|
|
||||||
|
|
||||||
# Uncomment the following line to enable command auto-correction.
|
|
||||||
# ENABLE_CORRECTION="true"
|
|
||||||
|
|
||||||
# Uncomment the following line to display red dots whilst waiting for completion.
|
|
||||||
# You can also set it to another string to have that shown instead of the default red dots.
|
|
||||||
# e.g. COMPLETION_WAITING_DOTS="%F{yellow}waiting...%f"
|
|
||||||
# Caution: this setting can cause issues with multiline prompts in zsh < 5.7.1 (see #5765)
|
|
||||||
# COMPLETION_WAITING_DOTS="true"
|
|
||||||
|
|
||||||
# Uncomment the following line if you want to disable marking untracked files
|
|
||||||
# under VCS as dirty. This makes repository status check for large repositories
|
|
||||||
# much, much faster.
|
|
||||||
# DISABLE_UNTRACKED_FILES_DIRTY="true"
|
|
||||||
|
|
||||||
# Uncomment the following line if you want to change the command execution time
|
|
||||||
# stamp shown in the history command output.
|
|
||||||
# You can set one of the optional three formats:
|
|
||||||
# "mm/dd/yyyy"|"dd.mm.yyyy"|"yyyy-mm-dd"
|
|
||||||
# or set a custom format using the strftime function format specifications,
|
|
||||||
# see 'man strftime' for details.
|
|
||||||
# HIST_STAMPS="mm/dd/yyyy"
|
|
||||||
|
|
||||||
# Would you like to use another custom folder than $ZSH/custom?
|
|
||||||
# ZSH_CUSTOM=/path/to/new-custom-folder
|
|
||||||
|
|
||||||
# Which plugins would you like to load?
|
|
||||||
# Standard plugins can be found in $ZSH/plugins/
|
|
||||||
# Custom plugins may be added to $ZSH_CUSTOM/plugins/
|
|
||||||
# Example format: plugins=(rails git textmate ruby lighthouse)
|
|
||||||
# Add wisely, as too many plugins slow down shell startup.
|
|
||||||
plugins=(
|
|
||||||
git
|
|
||||||
brew
|
|
||||||
macos
|
|
||||||
common-aliases
|
|
||||||
zsh-autosuggestions
|
|
||||||
zsh-completions
|
zsh-completions
|
||||||
|
zsh-autosuggestions
|
||||||
zsh-syntax-highlighting
|
zsh-syntax-highlighting
|
||||||
)
|
)
|
||||||
|
|
||||||
|
# Wichtig: zsh-completions FPATH setzen vor OMZ source
|
||||||
|
fpath+=${ZSH_CUSTOM:-${ZSH:-~/.oh-my-zsh}/custom}/plugins/zsh-completions/src
|
||||||
|
|
||||||
source $ZSH/oh-my-zsh.sh
|
source $ZSH/oh-my-zsh.sh
|
||||||
|
|
||||||
# User configuration
|
# --- SYSTEM CONFIG ---
|
||||||
|
setopt INTERACTIVE_COMMENTS
|
||||||
|
export EDITOR=micro
|
||||||
|
export VISUAL=micro
|
||||||
|
|
||||||
# Home & End keys for SSH connections
|
# Keybindings für Home/End (wichtig für SSH & Rock 5B)
|
||||||
bindkey "\e[1~" beginning-of-line
|
bindkey "\e[1~" beginning-of-line
|
||||||
bindkey "\e[4~" end-of-line
|
bindkey "\e[4~" end-of-line
|
||||||
bindkey "\eOH" beginning-of-line
|
bindkey "\eOH" beginning-of-line
|
||||||
@@ -93,25 +33,26 @@ bindkey "\eOF" end-of-line
|
|||||||
bindkey "\e[H" beginning-of-line
|
bindkey "\e[H" beginning-of-line
|
||||||
bindkey "\e[F" end-of-line
|
bindkey "\e[F" end-of-line
|
||||||
|
|
||||||
# Allow comments directly in shell input
|
# --- PATH CONFIG (Universal) ---
|
||||||
setopt INTERACTIVE_COMMENTS
|
export PATH="$HOME/.local/bin:/usr/local/bin:$PATH"
|
||||||
|
|
||||||
export PATH="$PATH:/Users/edi/.local/bin"
|
# Flutter (nur wenn Verzeichnis existiert)
|
||||||
|
if [ -d "$HOME/flutter/bin" ]; then
|
||||||
export PATH="$PATH:$HOME/flutter/bin"
|
export PATH="$PATH:$HOME/flutter/bin"
|
||||||
export PATH=$PATH:$(go env GOPATH)/bin
|
fi
|
||||||
export GOOGLE_API_KEY="AIzaSyCEb9lPmXWypNejqDTvO1l5QL3N_1-KuZA"
|
|
||||||
|
# Go (Universal)
|
||||||
|
if command -v go &>/dev/null; then
|
||||||
|
export PATH="$PATH:$(go env GOPATH)/bin"
|
||||||
|
fi
|
||||||
|
|
||||||
# Android SDK
|
# Android SDK
|
||||||
export ANDROID_HOME=$HOME/Android/sdk
|
export ANDROID_HOME=$HOME/Android/sdk
|
||||||
export PATH=$PATH:$ANDROID_HOME/cmdline-tools/latest/bin
|
if [ -d "$ANDROID_HOME" ]; then
|
||||||
export PATH=$PATH:$ANDROID_HOME/platform-tools
|
export PATH="$PATH:$ANDROID_HOME/cmdline-tools/latest/bin:$ANDROID_HOME/platform-tools:$ANDROID_HOME/emulator"
|
||||||
export PATH=$PATH:$ANDROID_HOME/emulator
|
fi
|
||||||
|
|
||||||
export EDITOR=micro
|
# --- COMPLETION CACHING ---
|
||||||
export VISUAL=micro
|
|
||||||
|
|
||||||
# Autocompletion setup
|
|
||||||
# Schnellerer Shell-Start durch Caching der Completion-Datenbank
|
|
||||||
autoload -Uz compinit
|
autoload -Uz compinit
|
||||||
if [[ -n ${ZDOTDIR:-$HOME}/.zcompdump(#qN.mh+24) ]]; then
|
if [[ -n ${ZDOTDIR:-$HOME}/.zcompdump(#qN.mh+24) ]]; then
|
||||||
compinit
|
compinit
|
||||||
@@ -120,46 +61,11 @@ else
|
|||||||
fi
|
fi
|
||||||
zstyle ':completion:*' menu select
|
zstyle ':completion:*' menu select
|
||||||
|
|
||||||
# export MANPATH="/usr/local/man:$MANPATH"
|
# --- FUNKTIONEN & ALIASE LADEN ---
|
||||||
|
# Dies lädt alles aus deinem neuen modularen Ordner
|
||||||
# You may need to manually set your language environment
|
|
||||||
# export LANG=en_US.UTF-8
|
|
||||||
|
|
||||||
# Preferred editor for local and remote sessions
|
|
||||||
# if [[ -n $SSH_CONNECTION ]]; then
|
|
||||||
# export EDITOR='vim'
|
|
||||||
# else
|
|
||||||
# export EDITOR='nvim'
|
|
||||||
# fi
|
|
||||||
|
|
||||||
# Compilation flags
|
|
||||||
# export ARCHFLAGS="-arch $(uname -m)"
|
|
||||||
|
|
||||||
# Set personal aliases, overriding those provided by Oh My Zsh libs,
|
|
||||||
# plugins, and themes. Aliases can be placed here, though Oh My Zsh
|
|
||||||
# users are encouraged to define aliases within a top-level file in
|
|
||||||
# the $ZSH_CUSTOM folder, with .zsh extension. Examples:
|
|
||||||
# - $ZSH_CUSTOM/aliases.zsh
|
|
||||||
# - $ZSH_CUSTOM/macos.zsh
|
|
||||||
# For a full list of active aliases, run `alias`.
|
|
||||||
#
|
|
||||||
# Example aliases
|
|
||||||
|
|
||||||
# Load functions
|
|
||||||
if [ -d "$HOME/.zsh_func_d" ]; then
|
if [ -d "$HOME/.zsh_func_d" ]; then
|
||||||
for func_file in "$HOME/.zsh_func_d"/*; do
|
for func_file in "$HOME/.zsh_func_d"/*; do
|
||||||
source "$func_file"
|
# Nur reguläre Dateien sourcen
|
||||||
|
[ -f "$func_file" ] && source "$func_file"
|
||||||
done
|
done
|
||||||
fi
|
fi
|
||||||
|
|
||||||
alias ll="ls -lh"
|
|
||||||
alias la="ls -a"
|
|
||||||
alias lla="ls -lah"
|
|
||||||
alias zshconfig="nano ~/.zshrc"
|
|
||||||
alias ohmyzsh="nano ~/.oh-my-zsh"
|
|
||||||
alias git="/usr/bin/git"
|
|
||||||
alias mcu-leader="mcumgr --conntype serial --connstring 'dev=/dev/tty.usbmodem83301'"
|
|
||||||
alias nrf-env="export PATH='/opt/nordic/ncs/toolchains/322ac893fe/bin:$PATH'"
|
|
||||||
alias nano='micro'
|
|
||||||
alias vi='micro'
|
|
||||||
alias vim='micro'
|
|
||||||
|
|||||||
Reference in New Issue
Block a user