robsite

In macOS

Terminal Red Line

Um Befehle besser zu trennen und eine schöne rote Linie über die gesamte Breite des Terminals zu malen, mit Pfad darunter:

COLUMNS=$(tput cols)
RED='\[\e[1;31m\]'
RESET='\[\e[0m\]'
export PS1="\[\e]2;\w\a$RED\`for (( i=0 ; i < \"\$COLUMNS\";i++)) ; do echo -n '_'; done\`\n$RED\$PWD)$RESET "

In .bash_profile oder .bashrc packen.

Für ZSH in .zshrc (nach 4 Fragen übersetzt von GPT-4 🤯):

COLUMNS=$(tput cols)
RED=$'\e[1;31m'
RESET=$'\e[0m'

# Generate the red line
red_line() {
  for (( i=0 ; i < $COLUMNS; i++ )); do
    echo -n '_'
  done
}

# Set the prompt with the current working directory
PROMPT="${RED}%d)${RESET} "

# Use precmd to print the red line before the prompt
precmd() {
  echo -n "${RED}$(red_line)${RESET}"
  echo
}
Bild eines macOS Terminals mir roter Linie
· chatgpt, command line, linux, macOS, terminal ·

git pull sound

Um einen Sound nach fast1 jedem git pull auf macOS oder Linux zu spielen:

  1. Damit das ganze in allen git Repositories verfügbar ist,
    ~/.git-templates/hooks Ordner anlegen oder haben. Darin:
  2. Sound-Datei reinkopieren, z.B. ~/.git-templates/sounds/pigpull.mp3
    Beliebige Sounds sind möglich, sinnvoll ist aber nur pigpull.mp3 basierend auf dem damage a4-Sound der Angry Birds Schweine.
  3. ~/.git-templates/hooks/post-merge anlegen. Darin:
#!/bin/bash

afplay .git/hooks/sounds/pigpull.mp3 # oder mplayer auf Linux
echo "PULL! 🐷"
  1. chmod +x post-merge um das Script ausführbar zu machen.
  2. git init in jedem neuen oder existierenden git-Repository, das den Sound spielen soll. Dies kopiert post-merge und den Sound ins Repo.
    Obacht: Wenn sich das Template ändert, überschreibt erneutes git init die lokale Version nicht, sie muss vorher erst gelöscht werden. Auch aufpassen, falls es schon post-merge Hooks gibt.

Ergebnis:

1

git pull --rebase bleibt still, da nichts gemerged wurde. Merged man wiederum manuell, spielt der Sound, obwohl es keinen Pull gab.

· git, linux, macOS, 🐷 ·

ScreenSleep

Ein kleines macOS Menübar-Tool um den Bildschirm auszuschalten, sodass der Rechner weiterläuft.

Das geht normalerweise mit Strg + Shift + Eject oder
pmset displaysleepnow
im Terminal, aber meine Tastatur hat keine Eject-Taste mehr und ich klicke lieber.

· meins, macOS, swift, tool ·

Screenshot Upload via Drag & Drop from Skitch to Dock with Copy to Clipboard with Platypus for macOS

Damit währen die SEO™ Keywords abgedeckt.

Ich mag Skitch, um Screenshots schnell mit coolen Pfeilen zu verzieren und mit einem Klick auf meinen Server hochzuladen.

Skitch unterstützt leider keinen Upload per SSH-Key.

Ein bash-Script, das Dateien auf den eigenen Server hochlädt und die URL in die Zwischenablage kopiert wäre zwar äußerst cool, hat aber kein Dock-Icon, auf das man das Bild ziehen könnte, ähnlich wie Skitch das ermöglicht.

Die Lösung: Platypus. Nimm ein bash-Script und bau dir daraus eine simple GUI-Anwendung, Dateien per Drag&Drop, lad sie hoch.

Kopieren Sie dieses Script:

#!/bin/bash

# Upload files via SCP, copy URL to clipboard
# For use with Platypus on macOS

# insert yours:
SERVER_HOST="111.222.333.444"
SERVER_PORT="22"
SERVER_USER="user"
SERVER_PATH="/bla/etc/example.com/screenshots/"
SERVER_URL="https://example.com/screenshots/"
SERVER_PERMISSIONS="644"

# thx to Orwellophile https://stackoverflow.com/a/10660730/1191375
rawurlencode() {
  local string="${1}"
  local strlen=${#string}
  local encoded=""
  local pos c o

  for (( pos=0 ; pos<strlen ; pos++ )); do
     c=${string:$pos:1}
     case "$c" in
        [-_.~a-zA-Z0-9] ) o="${c}" ;;
        * )               printf -v o '%%%02x' "'$c"
     esac
     encoded+="${o}"
  done
  echo "${encoded}"    # You can either set a return variable (FASTER) 
  REPLY="${encoded}"   #+or echo the result (EASIER)... or both... :p
}

if [ ! -e "$1" ]
    then
    echo "Drop a file on the icon to upload it."
    exit
fi

FILE_PATH="$1"
FILE_NAME=$(basename "$FILE_PATH")

# skitch hack. expand for your language
if [ "$FILE_NAME" == "Leer.png" ] || [ "$FILE_NAME" == "Empty.png" ] ; then
  FILE_NAME="screenshot.png"
fi
if [ "$FILE_NAME" == "Leer.jpg" ] || [ "$FILE_NAME" == "Empty.jpg" ] ; then
  FILE_NAME="screenshot.jpg"
fi

TIMESTAMP=$(date +"%s")
UPLOAD_FILENAME="${TIMESTAMP}-${FILE_NAME}"
ENCODED_UPLOAD_FILENAME=$(rawurlencode "$UPLOAD_FILENAME")

echo "Uploading ${FILE_NAME} to ${SERVER_HOST}"
scp -P $SERVER_PORT "$FILE_PATH" "$SERVER_USER@$SERVER_HOST:'${SERVER_PATH}${UPLOAD_FILENAME}'"

echo "Setting permissions to ${SERVER_PERMISSIONS}"
ssh -p $SERVER_PORT $SERVER_USER@$SERVER_HOST chmod "'${SERVER_PERMISSIONS} ${SERVER_PATH}${UPLOAD_FILENAME}'"

echo "Done"
echo " "
echo "${SERVER_URL}${ENCODED_UPLOAD_FILENAME}"
echo "${SERVER_URL}${ENCODED_UPLOAD_FILENAME}" | pbcopy

Einfügen Sie es in Platypus mit Accepts dropped files:

Skitch wurde wohl von Evernote gekauft.
Wer eine Alternativen kennt, mit ähnlich coolen Pfeilen, immer her damit.

· bash, cool, macOS, Platypus ·
Mastodon