====== MAC Initial install ====== Ich habe mir die Tage einen M1 MAC zugelegt, da dies mein erstes mal in der Apple Welt war und ich ein paar Sachen von Anfang an vermisste, habe ich im Zuge meines Einrichtungs und Kennenlernprozesses einfach ein paar Stichpunkte aufgeschrieben.\\ ====== ====== Als erstes wollte ich ein paar linux tools haben. Relativ schnell stieß ich auf [[https://brew.sh/index_de |Homebrew]], einen Paketmanager außerhalb des App Stores, für so ziemlich alle Opensource tools.\\ Wofür man aber erstmal Xcode benötigt, welches man wie folgt installiert: sudo xcode-select --install (Lustig war, ich habe hier seit Jahren mal wieder eine Zeiteinschätzung der Installation von mehr als ein Jahr gesehen.)\\ \\ Schließlich kann man Homebrew selber installieren: /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)" Jetzt hat man Homebrew zwar, aber leider funktioniert der noch nicht, da MAC OS mit seiner zsh leider nicht von Haus aus die PATH Variable setzt.\\ \\ Da wir es jetzt eh anfassen müssen und wir glücklicherweise bereits default die zsh haben, habe ich selbstverständlich sofort [[https://ohmyz.sh/| oh my zsh]] installiert: sh -c "$(curl -fsSL https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh)" und an unsere bedürfnisse angepasst: vim .zshrc folgende Sachen sind zu ändern: export PATH=/opt/homebrew/bin:$HOME/bin:/usr/local/bin:$PATH export PATH=$PATH:/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:/usr/X11R6/bin:$HOME/.scripts export PYTHONPATH=/usr/lib/python3.9/site-packages ZSH_THEME="ys" zstyle ':omz:update' mode auto plugins=(git macos macports brew colored-man-pages colorize zsh-interactive-cd) alias vi="nvim" alias ducks="du -cksh * | sort -rn | head" # function to detect ddos attacks function detect-ddos { sudo netstat -ntu | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -n } fdir() { local dir dir=$(find ${1:-.} -path '*/\.*' -prune \ -o -type d -print 2> /dev/null | fzf +m) && cd "$dir" } #fuzzyfind zsh history and execute this command fhist() { print -z $( ([ -n "$ZSH_NAME" ] && fc -l 1 || history) | fzf +s --tac | sed -E 's/ *[0-9]*\*? *//' | sed -E 's/\\/\\\\/g') } # fuzzykill process but only show those who are killable by you fkill() { local pid if [ "$UID" != "0" ]; then pid=$(ps -f -u $UID | sed 1d | fzf -m | awk '{print $2}') else pid=$(ps -ef | sed 1d | fzf -m | awk '{print $2}') fi if [ "x$pid" != "x" ] then echo $pid | xargs kill -${1:-9} fi } # tmux functions # zsh; needs setopt re_match_pcre. tmuxkillf () { local sessions sessions="$(tmux ls|fzf --exit-0 --multi)" || return $? local i for i in "${(f@)sessions}" do [[ $i =~ '([^:]*):.*' ]] && { echo "Killing $match[1]" tmux kill-session -t "$match[1]" } done } # tm - create new tmux session, or switch to existing one. Works from within tmux too. (@bag-man) # `tm` will allow you to select your tmux session via fzf. # `tm irc` will attach to the irc session (if it exists), else it will create it. tm() { [[ -n "$TMUX" ]] && change="switch-client" || change="attach-session" if [ $1 ]; then tmux $change -t "$1" 2>/dev/null || (tmux new-session -d -s $1 && tmux $change -t "$1"); return fi session=$(tmux list-sessions -F "#{session_name}" 2>/dev/null | fzf --exit-0) && tmux $change -t "$session" || echo "No sessions found." } # docker # Select a docker container to start and attach to function da() { local cid cid=$(docker ps -a | sed 1d | fzf -1 -q "$1" | awk '{print $1}') [ -n "$cid" ] && docker start "$cid" && docker attach "$cid" } # Select a running docker container to stop function ds() { local cid cid=$(docker ps | sed 1d | fzf -q "$1" | awk '{print $1}') [ -n "$cid" ] && docker stop "$cid" } # Select a docker container to remove function drm() { local cid cid=$(docker ps -a | sed 1d | fzf -q "$1" | awk '{print $1}') [ -n "$cid" ] && docker rm "$cid" } # Same as above, but allows multi selection: function drm() { docker ps -a | sed 1d | fzf -q "$1" --no-sort -m --tac | awk '{ print $1 }' | xargs -r docker rm } # Select a docker image or images to remove function drmi() { docker images | sed 1d | fzf -q "$1" --no-sort -m --tac | awk '{ print $3 }' | xargs -r docker rmi } Das nächste was wir installieren, ist ein neues Terminal, da ich als Colorscheme gruvbox sehr mag, laden wir das Colorscheme direkt runter: wget https://raw.githubusercontent.com/mbadolato/iTerm2-Color-Schemes/master/schemes/Gruvbox%20Dark.itermcolors -o ~/Documents/Gruvbox_Dark.itermcolors nun folgt die Installation von iterm: brew install --cask iterm2 Installiere nun das gruvbox color theme:\\ (als erstes importieren wir das zuvor heruntergeladene Colorscheme und wählen es anschließend ganz normal aus)\\ {{:blog:2022:bildschirmfoto_2022-06-04_um_01.32.47.png?1000|}} was mich bis hierhin sehr störte, ich kann mit shortcuts die Fenster nicht arrangieren, also habe ich hierfür eine Möglichkeit gesucht. Jedoch kennt MAC OS tatsächlich von Haus aus keine Möglichkeit die Fenster zu arrangieren.\\ Also muss auch hierfür eine Lösung her: sudo brew install --cask rectangle vor einiger Zeit habe ich von [[http://www.wox.one/ |Wox]] gelesen, welches Alfred nachempfunden ist und einem die Spotlight Funktionalität nochmal aufgebohrt zur Verfügung stellt und die Produktivität unglaublich erhöht.\\ Mit: brew install alfred installiert ihr [[https://www.alfredapp.com/ |Alfred 4]]. als nächstes wollen wir neovim und eine gui dafür: brew install --cask vimr sowie den fuzzy finder, um die Funktionen aus der zsh auch nutzen zu können: brew install fzf Dann installieren wir uns noch ein paar tools: brew install tree brew install bat brew install delta und tmux darf natürlich auch nicht fehlen: brew install tmux hier mag ich auch immer gern den Paketmanager für tmux mit installieren: git clone https://github.com/tmux-plugins/tpm ~/.tmux/plugins/tpm vi .tmux.conf und passen die .conf dazu an:\\ (Wer mehr Anpassungen in tmux oder was auch immer haben will, kann sich gern meine [[https://git.opennerds.org/templis/dotconfs | dotconfs]] anschauen.) set -g @plugin 'tmux-plugins/tpm' set -g @plugin 'tmux-plugins/tmux-sensible' set -g @plugin 'egel/tmux-gruvbox' set -g @tmux-gruvbox 'dark' # or 'light' run '~/.tmux/plugins/tpm/tpm' Und initialisieren die Installation der tmux Pakete mit PREFIX+I #(Install) Hier merkte ich, dass es ganz schön viel ist, was man noch machen muss und wollte meine Erfahrungen in ein Notizblock schreiben.\\ Leider ist die App sehr unnütz, also brauchte ich auch hierfür eine extra App.\\ Disclaimer; ab jetzt wird es GUI lastig. :) Meine Wahl viel auf [[https://joplinapp.org/ | Joplin]]: brew install joplin Außerdem brauche ich auch meine altbewährte Passwortverwaltung: brew install keepassxc Ich mag nach wie vor nicht meine Passwörter mit einer fremden Firma teilen.\\ Außerdem für remotesupport: brew install anydesk Meine Nextcloud: brew install nextcloud Und ein VPN Client für OpenVPN: sudo softwareupdate --install-rosetta brew install openvpn-connect Das war es soweit erstmal von mir. Falls mir noch etwas einfällt, ergänze ich diesen Artikel, damit alles schön beisammen bleibt.