Skip to content

Instantly share code, notes, and snippets.

@indeedwatson
Last active January 18, 2018 02:48
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save indeedwatson/80376d134d54e06c81f232c8d22de369 to your computer and use it in GitHub Desktop.
Save indeedwatson/80376d134d54e06c81f232c8d22de369 to your computer and use it in GitHub Desktop.
#!/bin/python
import os
import sys
""" Take a screenshot and save it locally
if -u is passed, use an external script to upload the screenshot
if -l is passed (default) only save locally and copy image to clipboard
Dependencies:
- maim
- dunst
- a way to upload pics, such as a script like imgur.sh or tekup
"""
# User set variables: modify this to your liking:
# Where the pic is saved and how to set the filename
# by default: YYYY-MM-DD-HH-SS.png
pic = "$HOME/Pictures/Screenshots/$(date +%F-%H:%M).png"
# icon displayed by dunst
icon = "/usr/share/icons/Numix/32/devices/camera.svg"
# script or command to upload the screenshot
# by default it uses teknik.io because imgur compresses a lot
uploader = "; tekup -c "
def local():
message = """'<b>SCREENSHOT</b>' '
Select an area to save a screenshot locally'"""
clipboard = " | xclip -selection clipboard -t image/png"
return message, clipboard
def upload():
message = """'<b>UPLOAD</b>' '
Select an area to upload screenshot to teknik.io'"""
clipboard = uploader
return message, clipboard
# set local as default option if no argument is given
if len(sys.argv) == 1 or sys.argv[1] == "-l":
message, clipboard = local()
elif sys.argv[1] == "-u":
message, clipboard = upload()
else:
print(sys.argv + " is not a valid option, aborting.")
os.system("notify-send -t 4000 -i " + icon + " " + message)
os.system("maim -s " + pic + clipboard + pic)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment