Search code examples
linuxwindowsscreenshot

practical app to do screenshots with voiceover on windows and/or linux


Does anyone knows what package(s) is suitable to do:

  • pressing PrintScr (or any other button) making screenshot and starts recording from mic

  • pressing PringScr again stops recording from mic

  • files are saved into some directory with timestamps to be latter renamed. Picture and audio file to have the same file name to simplify playback


Solution

  • Have you tried google?

    http://en.wikipedia.org/wiki/Screenshot

    Under Linux, you'd look at X11 capture.

    Sound can be done through a number of applications. Something as simple as cat /dev/... > file might suffice, although using sox is a far better choice. (Sox includes play and rec command line utilities, as well as audio conversion and numerous other tools. It's commonly found already installed on Linux systems.)

    Date stamping files is as easy as date in a simple tcsh or bash script.

    The Printscreen button is close to impossible. Keyboard events are redirected to the currently active process (window). You might be able to trigger (intercept) something through your X11 window manager. Maybe. Otherwise you are looking at the kernel.

    You could always hook up some other hardware, like a second mouse, and write software to listen for it. Or run a simple GUI application, or even command-line, at the border of your screen, and use ImageMagick utilities to trim that portion of your screen off.

    Though a far easier solution is to run it on a second computer, networked to (ssh'ing into) the first. For example:

    (Everything is done on computerB.)
    (convert is part of ImageMagick.)
    
    machineB %  ssh machineA
    machineA %  echo $DISPLAY
    localhost:10.0
    machineA %  setenv DISPLAY machineA:0
    machineA %  rm tmp.root.xwd
    machineA %  xwd -root > tmp.root.xwd
    machineA %  convert tmp.root.xwd  image.`date +%Y.%m.%d_%H:%M:%S`.gif
    

    Caveat: On machineA, on the actual machineA, you might need to type xhost +machineA first.