DEV Community

Diego Juliao
Diego Juliao

Posted on

 

i3wm Screenshot Shortcuts

Have excellent screenshot shortcuts in your i3wm.

Feature Shortcut
Full Screen PrtScrn
Selection Shift + PrtScrn
Active Window Super + PrtScrn
Clipboard Full Screen Ctrl + PrtScrn
Clipboard Selection Ctrl + Shift + PrtScrn
Clipboard Active Window Ctrl + Super + PrtScrn

All the screenshots are saved on ~/Pictures/CURRENT_DATE.
The key super refers to the modifier key (window/command or alt by default depending on config).

Requirements

  • maim
  • xclip

Set-up

Set this on your i3 config file ~/.i3/config.

## Screenshots
bindsym Print exec --no-startup-id maim "/home/$USER/Pictures/$(date)"
bindsym $mod+Print exec --no-startup-id maim --window $(xdotool getactivewindow) "/home/$USER/Pictures/$(date)"
bindsym Shift+Print exec --no-startup-id maim --select "/home/$USER/Pictures/$(date)"

## Clipboard Screenshots
bindsym Ctrl+Print exec --no-startup-id maim | xclip -selection clipboard -t image/png
bindsym Ctrl+$mod+Print exec --no-startup-id maim --window $(xdotool getactivewindow) | xclip -selection clipboard -t image/png
bindsym Ctrl+Shift+Print exec --no-startup-id maim --select | xclip -selection clipboard -t image/png
Enter fullscreen mode Exit fullscreen mode

You may want to remove the default or any other screenshot shortcuts to prevent errors.
Don't forget to reload your window manager super+ shift+ c.


The source of this information is from my gist My i3 shortcuts to take screenshots.

Top comments (3)

Collapse
 
dacr profile image
Crosson David

I made some changes, and I had to provide explicitly the format to use in order for the clipboard cases to work.

# For screenshots install :
# apt-get install maim xclip copyq

##  Screenshots in files
bindsym Print exec --no-startup-id maim --format=png "/home/$USER/Pictures/screenshot-$(date -u +'%Y%m%d-%H%M%SZ')-all.png"
bindsym $mod+Print exec --no-startup-id maim --format=png --window $(xdotool getactivewindow) "/home/$USER/Pictures/screenshot-$(date -u +'%Y%m%d-%H%M%SZ')-current.png"
bindsym Shift+Print exec --no-startup-id maim --format=png --select "/home/$USER/Pictures/screenshot-$(date -u +'%Y%m%d-%H%M%SZ')-selected.png"

## Screenshots in clipboards
bindsym Ctrl+Print exec --no-startup-id maim --format=png | xclip -selection clipboard -t image/png
bindsym Ctrl+$mod+Print exec --no-startup-id maim --format=png --window $(xdotool getactivewindow) | xclip -selection clipboard -t image/png
bindsym Ctrl+Shift+Print exec --no-startup-id maim --format=png --select | xclip -selection clipboard -t image/png


Enter fullscreen mode Exit fullscreen mode
Collapse
 
dacr profile image
Crosson David

thanks for sharing :)

Collapse
 
ericway1024 profile image
Yuhang "Eric" Wei

Thanks for sharing! I would like to add

apt install xdotool 
Enter fullscreen mode Exit fullscreen mode

for your script to work.