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:

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 đŸ€Ż):

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 in bash und zsh

Edit 29.10.2024: Unnötigen Code entfernt, durchgehendere 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