https://github.com/nil0x42/qubes-screenshooter
Safe Qubes OS screenshot tool with active VM detection & window border removal features :framed_picture:
https://github.com/nil0x42/qubes-screenshooter
opsec qubes qubes-os qubesos screenshot screenshot-utility
Last synced: 4 days ago
JSON representation
Safe Qubes OS screenshot tool with active VM detection & window border removal features :framed_picture:
- Host: GitHub
- URL: https://github.com/nil0x42/qubes-screenshooter
- Owner: nil0x42
- License: mit
- Created: 2020-08-18T10:56:27.000Z (over 4 years ago)
- Default Branch: master
- Last Pushed: 2024-11-28T14:54:51.000Z (5 months ago)
- Last Synced: 2025-04-17T22:09:38.645Z (10 days ago)
- Topics: opsec, qubes, qubes-os, qubesos, screenshot, screenshot-utility
- Language: Perl
- Homepage:
- Size: 42 KB
- Stars: 13
- Watchers: 2
- Forks: 3
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# qubes-screenshooter
LeakProof screenshot tool for [Qubes OS]
## Features
* Remove [EXIF] info from image (**OPSEC**)
* Automatically strip window borders, to prevent leaking VM name and border color (**OPSEC**)
* Detect active window VM, and save screenshot on this VM
* Save image into `~/QubesIncomming/dom0/` on target VM
* Copy image into target VM clipboard, so a simple `Ctrl+V` in rich text editors is enough## Usage
#### **`Print`** shortcut:
_Take screenshot of active window_
1. Take screenshot of current active window (foreground)
2. Remove [EXIF] info from image (**OPSEC**)
3. Strip window border, to prevent leaking VM name and border color (**OPSEC**)
4. Save it into active window's VM (e.g: if window is from `vault` VM, screenshot is automatically saved in this VM#### **`Ctrl`+`Print`** shortcut:
_Take screenshot of selected region_
1. Select a region to be captured by clicking a point of the screen
2. Remove [EXIF] info from image (**OPSEC**)
3. Prompt user a list of running VMs
4. Save image into chosen VM## Installation:
In a terminal on `` (any Qube with internet access):
```sh
# download qubes-screenshooter as zip
wget github.com/nil0x42/qubes-screenshooter/archive/master.zip -O /tmp/qubes-screenshooter.zip
```In a terminal on `dom0`:
```sh
# open root shell, to be able to write to /opt (otherwise, you can copy to another location)
sudo -s
# copy zip file from to dom0's /opt directory
qvm-run --pass-io 'cat /tmp/qubes-screenshooter.zip' > qubes-screenshooter.zip
unzip qubes-screenshooter.zip
mv "qubes-screenshooter-master/" /opt
```Open **Keyboard Settings** *(on Qubes OS GUI)*:
> * Click on **Main Menu** *(top-left Qubes OS icon)*
> * Select **System Tools**
> * Select **Keyboard**
> * Open **Application Shortcuts** tab
* Add the following shortcuts:
* **`Print`**
* `xfce4-screenshooter -m -w -o /opt/qubes-screenshooter/send-screenshot-to-active-vm`
* **`Ctrl`+`Print`**
* `xfce4-screenshooter -r -o /opt/qubes-screenshooter/send-screenshot-to-chosen-vm`If you are running Qubes 4.2, additional packages are needed in `dom0`:
```sh
sudo qubes-dom0-upgrade xwininfo ImageMagick
```## Dependencies & Third-party tools
[qubes-screenshooter] must run on `dom0` to be able to take screenshots, because GUI runs on `dom0`.
qubes-screenshooter is basically a set of 2 **perl** scripts, making use of many pre-installed tools:
* `xfce4-screenshooter` is the default xfce screenshot tool.
It is the actual tool used to take screenshots, before giving ownership to [qubes-screenshooter].
* `ImageMagick` (provides `mogrify`), allows stripping [EXIF] info & window borders from image before sending screenshot.
* `zenity` is used to display VM choice GTK+ dialog
* `notify-send` is used to display notification of sent screenshot**IMPORTANT:
> The `copy image to cpipboard` feature depends on `xclip` being installed on target VMs.
> So you should install it on all VMs if you want it working**[Qubes OS]: https://www.qubes-os.org/
[EXIF]: https://en.wikipedia.org/wiki/Exif
[qubes-screenshooter]: https://github/com/nil0x42/qubes-screenshooter