6.4 KiB
i3 Screenshot Tool
A collection of scripts for taking screenshots in i3 window manager on Linux (CachyOS), with a focus on the "freeze and select" functionality and multi-monitor support.
Features
- Multi-Monitor Support: Specialized tools for handling multiple displays
- Monitor Selection: Choose which monitor to capture (with rofi)
- Countdown Timer: Option to use a countdown to avoid capturing menus
- Freeze and Select: Freeze the screen and then select an area to capture
- Simple Selection: Direct area selection without freezing (faster but without the freeze effect)
- Multiple Methods: Several different approaches to handle compatibility with different systems
- Clipboard Integration: Automatically copies screenshots to clipboard
- Notifications: Desktop notifications when screenshots are taken
- Timestamp Naming: Automatically names files with timestamps
Requirements
These scripts depend on various Linux utilities. Install them using your package manager:
# For Arch-based distros (including CachyOS)
sudo pacman -S maim slop feh scrot imagemagick xclip xdotool rofi
# For Debian/Ubuntu-based distros
sudo apt install maim slop feh scrot imagemagick xclip xdotool rofi
Note: rofi is optional but recommended for the multi-monitor script.
Installation
- Clone this repository or download the scripts:
git clone https://github.com/yourusername/i3-screenshot.git
cd i3-screenshot
- Make the scripts executable:
chmod +x i3-screenshot*.sh
- Move the scripts to a directory in your PATH (optional):
sudo cp i3-screenshot*.sh /usr/local/bin/
Configuration
Add the following lines to your i3 config file (typically ~/.config/i3/config):
# Screenshot with area selection (main script, updated for multi-monitor)
bindsym Print exec --no-startup-id /path/to/i3-screenshot.sh
# Multi-monitor screenshot with selection menu (requires rofi)
bindsym $mod+Print exec --no-startup-id /path/to/i3-screenshot-multimonitor.sh
# Countdown screenshot with selection menu (avoids capturing menus)
bindsym $mod+Shift+s exec --no-startup-id /path/to/i3-screenshot-countdown.sh
# Alternative screenshot with freeze and area selection
bindsym Shift+Print exec --no-startup-id /path/to/i3-screenshot-alt.sh
# Simple screenshot with area selection (no freeze)
bindsym Ctrl+Print exec --no-startup-id /path/to/i3-screenshot-simple.sh
# ImageMagick import-based screenshot
bindsym Mod1+Print exec --no-startup-id /path/to/i3-screenshot-import.sh
Replace /path/to/ with the actual path to the scripts.
Usage
- Press
Print Screento use the main area selection tool (works with multiple monitors) - Press
$mod+Print Screento use the multi-monitor selection tool with rofi menu - Press
$mod+Shift+sto use the countdown screenshot tool (avoids capturing menus) - Press
Shift+Print Screento use the alternative freeze-and-select tool - Press
Ctrl+Print Screento use the simple area selection tool without freezing - Press
Alt+Print Screento use the ImageMagick import-based tool
After pressing the key combination:
- For the multi-monitor script: A menu will appear allowing you to select a specific monitor or area
- For the countdown script: After selection, a 3-second countdown will start before taking the screenshot
- For the area selection scripts: The screen will dim, and you can select an area with your mouse
- The screenshot will be saved to
~/Pictures/Screenshots/with a timestamp - The screenshot will also be copied to your clipboard
- A notification will appear confirming the screenshot was taken
How It Works
Main Script (i3-screenshot.sh)
Now uses direct area selection with slop and maim for better multi-monitor support.
Multi-Monitor Script (i3-screenshot-multimonitor.sh)
Uses rofi to provide a selection menu where you can choose to capture a specific monitor, select an area, or take a full screenshot. If rofi is not installed, it falls back to area selection mode. Includes a small delay to avoid capturing the menu.
Countdown Script (i3-screenshot-countdown.sh)
Similar to the multi-monitor script, but adds a 3-second countdown before taking the screenshot. This ensures that any menus (like the rofi selection menu) are completely gone before the screenshot is taken.
Alternative Script (i3-screenshot-alt.sh)
Uses scrot for the initial screenshot, feh to display it fullscreen, slop for selection, and imagemagick to crop the image.
Simple Script (i3-screenshot-simple.sh)
Uses just maim with the -s flag for direct area selection without freezing the screen first.
Import Script (i3-screenshot-import.sh)
Uses ImageMagick's import command, which provides its own selection interface. This may work better on some systems where the other methods fail.
Multi-Monitor Troubleshooting
- Screenshots span across multiple monitors: Use the
i3-screenshot-multimonitor.shscript to select a specific monitor - Selection tool appears on the wrong monitor: Try using the
i3-screenshot-import.shscript instead - Rofi menu doesn't appear: Make sure
rofiis installed (sudo pacman -S rofi) - Rofi menu appears in the screenshot: Use the
i3-screenshot-countdown.shscript which waits before taking the screenshot
General Troubleshooting
Common Issues
- Screen freezes but selection doesn't work: The main script has been updated to use direct selection without freezing
- Selection tool doesn't appear: Make sure
slopis installed and working correctly - Black screenshots: This can happen with compositing issues. Try using the
i3-screenshot-import.shscript instead - Menu appears in screenshots: Use the countdown script which gives time for menus to disappear
General Tips
- If the scripts don't work, make sure all dependencies are installed
- Check that the scripts have executable permissions
- Verify your i3 config has the correct paths to the scripts
- Try each of the different scripts to see which works best on your system
Customization
You can modify the scripts to change:
- The save location by editing the
SAVE_DIRvariable - The notification messages
- The file naming convention
- The rofi appearance and options in the multi-monitor script
- The countdown duration in the countdown script
License
This project is licensed under the MIT License - see the LICENSE file for details.