Compare commits

...

4 Commits

Author SHA1 Message Date
7893e8546b Weiterentwicklung 2026-02-10 14:24:47 +01:00
769b6bc936 Weiterentwicklung 2026-02-10 14:24:38 +01:00
4c585d24bd template aufgeräumt 2026-02-10 14:03:30 +01:00
aedd6a2258 install.sh erweitert um error checks und so 2026-02-10 14:03:15 +01:00
5 changed files with 154 additions and 140 deletions

View File

@@ -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 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.

View File

@@ -1,21 +1,67 @@
#!/usr/bin/env bash
# 1. Plugins installieren (falls nicht vorhanden)
ZSH_CUSTOM=${ZSH_CUSTOM:-~/.oh-my-zsh/custom}
mkdir -p "$ZSH_CUSTOM/plugins"
# Farben für die Ausgabe
GREEN='\033[0;32m'
BLUE='\033[0;34m'
YELLOW='\033[1;33m'
NC='\033[0m' # No Color
plugins=(zsh-autosuggestions zsh-syntax-highlighting zsh-completions)
for p in "${plugins[@]}"; do
if [ ! -d "$ZSH_CUSTOM/plugins/$p" ]; then
echo "Installiere $p..."
git clone "https://github.com/zsh-users/$p" "$ZSH_CUSTOM/plugins/$p"
echo -e "${BLUE}🚀 Starte Dotfiles Installation...${NC}"
# 1. Prüfen auf Basistools
echo -e "${BLUE}Prüfe Abhängigkeiten...${NC}"
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
done
# 2. Symlinks setzen
ln -sf ~/dotfiles/zsh_func_d ~/.zsh_func_d
# 2. Oh-My-Zsh installieren, falls nicht vorhanden
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
# Funktionen Ordner
ln -sfn ~/dotfiles/zsh_func_d ~/.zsh_func_d
# Git-Helper
mkdir -p ~/.local/bin
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
View 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
View 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

View File

@@ -1,91 +1,31 @@
# If you come from bash you might have to change your $PATH.
# export PATH=$HOME/bin:$HOME/.local/bin:/usr/local/bin:$PATH
# Path to your Oh My Zsh installation.
# --- OH MY ZSH SETUP ---
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"
# Set list of themes to pick from when loading at random
# Setting this variable when ZSH_THEME=random will cause zsh to load
# 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" )
# Plugins dynamisch nach Plattform laden
plugins=(git common-aliases)
# Uncomment the following line to use case-sensitive completion.
# CASE_SENSITIVE="true"
if [[ "$OSTYPE" == "darwin"* ]]; then
plugins+=(macos brew)
fi
# Uncomment the following line to use hyphen-insensitive completion.
# 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
plugins+=(
zsh-completions
zsh-autosuggestions
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
# 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[4~" end-of-line
bindkey "\eOH" beginning-of-line
@@ -93,25 +33,26 @@ bindkey "\eOF" end-of-line
bindkey "\e[H" beginning-of-line
bindkey "\e[F" end-of-line
# Allow comments directly in shell input
setopt INTERACTIVE_COMMENTS
# --- PATH CONFIG (Universal) ---
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:$(go env GOPATH)/bin
export GOOGLE_API_KEY="AIzaSyCEb9lPmXWypNejqDTvO1l5QL3N_1-KuZA"
fi
# Go (Universal)
if command -v go &>/dev/null; then
export PATH="$PATH:$(go env GOPATH)/bin"
fi
# Android SDK
export ANDROID_HOME=$HOME/Android/sdk
export PATH=$PATH:$ANDROID_HOME/cmdline-tools/latest/bin
export PATH=$PATH:$ANDROID_HOME/platform-tools
export PATH=$PATH:$ANDROID_HOME/emulator
if [ -d "$ANDROID_HOME" ]; then
export PATH="$PATH:$ANDROID_HOME/cmdline-tools/latest/bin:$ANDROID_HOME/platform-tools:$ANDROID_HOME/emulator"
fi
export EDITOR=micro
export VISUAL=micro
# Autocompletion setup
# Schnellerer Shell-Start durch Caching der Completion-Datenbank
# --- COMPLETION CACHING ---
autoload -Uz compinit
if [[ -n ${ZDOTDIR:-$HOME}/.zcompdump(#qN.mh+24) ]]; then
compinit
@@ -120,46 +61,11 @@ else
fi
zstyle ':completion:*' menu select
# export MANPATH="/usr/local/man:$MANPATH"
# 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
# --- FUNKTIONEN & ALIASE LADEN ---
# Dies lädt alles aus deinem neuen modularen Ordner
if [ -d "$HOME/.zsh_func_d" ]; then
for func_file in "$HOME/.zsh_func_d"/*; do
source "$func_file"
# Nur reguläre Dateien sourcen
[ -f "$func_file" ] && source "$func_file"
done
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'