Skip to content

Instantly share code, notes, and snippets.

Stefan Heinemann schtibe

Block or report user

Report or block schtibe

Hide content and notifications from this user.

Learn more about blocking users

Contact Support about this user’s behavior.

Learn more about reporting abuse

Report abuse
View GitHub Profile
@schtibe
schtibe / i3_screenshot_config
Last active Sep 29, 2019
Screenshot keybindings with i3 and scrot that are copied to the clipboard
View i3_screenshot_config
bindsym Print exec "scrot -e 'mv $f ~/tmp && xclip -selection clipboard -t image/png -i ~/tmp/$n'; sleep 1; exec notify-send 'screenshot has been saved to ~/tmp'"
bindsym $mod+Print --release exec "scrot -ue 'mv $f ~/tmp && xclip -selection clipboard -t image/png -i ~/tmp/$n'; sleep 1; exec notify-send 'screenshot has been saved to ~/tmp'"
bindsym $mod+Shift+Print --release exec "notify-send 'selection will be saved to ~/tmp'; scrot -se 'mv $f ~/tmp && xclip -selection clipboard -t image/png -i ~/tmp/$n'"
@schtibe
schtibe / i3shell
Last active Nov 2, 2017
Spawn a new terminal in the same directory as the current one is in
View i3shell
#!/bin/bash
# Launch a sakura terminal with the same directory as the terminal
# that has the focus
# based on https://faq.i3wm.org/question/150/how-to-launch-a-terminal-from-here/
ID=$(xdpyinfo | grep focus | cut -f4 -d " ")
PID=$(xprop -id $ID | grep PID | awk ' { print $3 }')
SHELL_PID=$(ps -opid= --ppid $PID | tr -d '[:space:]')
CWD="/proc/$SHELL_PID/cwd"
@schtibe
schtibe / bashrc.sh
Last active Jul 31, 2017
Bash function to view a file in $EDITOR at a certain commit
View bashrc.sh
function gshow() {
tmp_dir=$(mktemp -d)
filename=$(basename $2)
tmp_path="$tmp_dir/$filename"
git show $1:$2 > $tmp_path
$EDITOR $tmp_path
rm $tmp_path
rmdir $tmp_dir
}
@schtibe
schtibe / _scrn.sh
Last active Apr 4, 2017
Screen changer
View _scrn.sh
#!/usr/bin/bash
# LAYOUT SWITCHER
# This script provides following functionality:
# - When detect is given, the
# - When no argument is given, make a dmenu list of the available screen layouts
# Last two options are mostly used by the udev system
BASE_PATH="/home/sh/.screenlayout"
AVAILABLE_LAYOUTS=$(ls -1 $BASE_PATH | awk -F '.' '{ print $1 }')
@schtibe
schtibe / git-fuzzy-co.py
Last active Jan 3, 2017 — forked from shashwatblack/git-fuzzy-co.py
Git fuzzy checkout with substring matching and case-insensitivity (and colors!)
View git-fuzzy-co.py
#!/usr/bin/env python
"""
git fuzzy-checkout
Same as `git checkout branch`, but with fuzzy matching if checkout fails.
Turns `git checkout barnch` into `git checkout branch`,
assuming `branch` is a branch.
"""
import difflib
import sys
View git-newbranch.py
#!/usr/bin/env python
import sys
from plumbum.cmd import git
from termcolor import cprint
try:
new_branch = sys.argv[1]
except IndexError:
print("Provide a branch name!", file=sys.stderr)
@schtibe
schtibe / tny
Last active Jul 29, 2019 — forked from gbl08ma/tny
Unix shell script to shorten URLs with tny.im URL shortener. wget must be installed for this to work.
View tny
#!/bin/sh
if [ -t 0 ]; then
if [ -z "$1" ]; then
echo "usage: tny long_url [custom_keyword]"
echo ""
echo "Shorten URLs with tny.im URL shortener"
echo "This script expects a long URL to shorten either as an argument or passed through STDIN."
echo "When using arguments, an optional second argument can be provided to customize the later part of the short URL (keyword)."
exit 1
fi
View response.json
{
"data": {
"type": "vehiclechecks",
"id": "1",
"attributes": {
...
},
"relationships": {
"customer": {
"data": {
@schtibe
schtibe / Webdev Grep
Created Jun 25, 2015
Grep for Webdevs (filter all the minified stuff)
View Webdev Grep
#!/bin/bash
grep --exclude=\"*min.js\" --exclude=\"*min.css\" --exclude=\"*map\" --color=always "$@"| awk '{ if (length($0) < 200) print }'
@schtibe
schtibe / gist:8298779
Created Jan 7, 2014
nib picdump fix for extracting imgur images
View gist:8298779
var fs = require('fs')
, path = require('path')
, mkdirp = require('mkdirp')
, request = require('request')
, htmlparser = require("htmlparser")
, select = require('soupselect').select
function downloadImage(uri, file) {
request.head(uri, function(err, res, body){
if (err) return console.err(err)
You can’t perform that action at this time.