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 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
|
||||
|
||||
# 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
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.
|
||||
# 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'
|
||||
|
||||
Reference in New Issue
Block a user