Skip to content

200ok-ch/okshot

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

       _        _           _
  ___ | | _____| |__   ___ | |_
 / _ \| |/ / __| '_ \ / _ \| __|
| (_) |   <\__ \ | | | (_) | |_
 \___/|_|\_\___/_| |_|\___/ \__|

NAME

okshot - Take and annotate screenshots in Linux with standard tools.

SYNOPSIS

Usage: okshot [options]
    -C, --copy-to-clipboard          Copy PNG file from clipboard and upload
    -s, --simple                     Take a screenshot without annotation and upload. This is thedefault.
    -c, --copy-from-clipboard        Copy PNG file from clipboard and upload
    -i, --inkscape                   Use inkscape to edit the screenshot and upload

DESCRIPTION

okshot takes a screenshot, optionally annotates it and then saves it either to the clipboard or uploads it to a FTP server and copies a web accessible URL to your clipboard.

This gem is inspired by the lack of good screenshot tooling in Linux. However, Linux has all the tools available that can easily be strung together to get the ultimate screenshot tool.

For uploading the files via FTP, it needs these environment variables set:

  • OKSHOT_HOST
  • OKSHOT_USER
  • OKSHOT_PASSWORD
  • OKSHOT_URL_PREFIX

For example, you can do this in your shell config file (~/.bashrc, ~/.zshrc) or via sourceme. For example:

export OKSHOT_HOST=ftp.some-server.ch
export OKSHOT_USER=your_user
export OKSHOT_PASSWORD=your_password
export OKSHOT_URL_PREFIX=https://okshot.your_domain.ch

INSTALLATION

okshot is implemented in Ruby and can be installed as a gem.

gem install okshot

It uses the following standard Linux tools. For all flags, it requires:

ProgramRationale
imagemagickTakes the actual screenshot as a PNG file.
uuigenAdds a partial UUID to the screenshot name to ensure uniqueness.
xclipCopies the public screenshot URL to the clipboard.
notify-sendCreates a desktop notification that the URL is in the clipboard.

Without the flag -C (--copy-to-clipboard), the file is uploaded to an FTP server and requires:

ProgramRationale
ftpUploads the final screenshot to a FTP server.

For the flag -i, it additionally requires:

ProgramRationale
inkscapeAnnotate the image in all the ways.
wmctrlStarts Inkscape in full screen.

Install dependencies:

apt-get install imagemagick ftp inkscape wmctrl uuid-runtime xclip libnotify-bin

DEVELOPMENT

okshot is implemented in Ruby, dependencies are managed with bundler.

After checking out the repo, run bin/setup to install dependencies. You can also run bin/console for an interactive prompt that will allow you to experiment.

To install this gem onto your local machine, run bundle exec rake install. To publish a new version, update the version number in version.rb, and then run bundle exec rake publish, which will create a git tag for the version, push git commits and tags, and push the .gem file to rubygems.org.

DEMO

https://github.com/200ok-ch/okshot/wiki/videos/demo.gif

About

Take and annotate screenshots in Linux with standard tools.

Resources

License

Stars

Watchers

Forks

Packages

No packages published