A dynamic script to manage multiple display configurations in i3wm with support for rotation, resolution, and custom layouts.
- Multiple Display Management: Extend, mirror, or show individual displays with a simple interface
- Rotation Support: Rotate displays in different orientations (normal, left, right, inverted)
- Resolution Control: Select from available resolutions for each connected display
- Custom Layouts: Create custom arrangements with flexible positioning (right-of, left-of, above, below)
- i3wm Integration: Automatically restarts i3 after display changes for seamless transitions
- Clone this repository or download the script:
git clone https://github.com/hdprajwal/ScreenManager.git
- Make the script executable:
chmod +x screenmanager.sh
xrandr
: For display managementrofi
: For the menu interfacei3-msg
: For i3wm integration
Install dependencies on Debian/Ubuntu:
sudo apt install rofi
Simply run the script:
./screenmanager.sh
For seamless integration with i3, add this to your i3 config file:
# Display management
bindsym $mod+Shift+p exec --no-startup-id screenmanager
All actions are logged to ~/.local/share/screenmanager/screenmanager.log
. Check this file for debugging:
cat ~/.local/share/screenmanager/screenmanager.log
Contributions are welcome! Please feel free to submit a Pull Request.
- Fork the repository
- Create your feature branch (
git checkout -b feat/<feature-name>
) - Commit your changes (
git commit -m '<commit-message>'
) - Push to the branch (
git push origin feat/<feature-name>
) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
- Prajwal HD - hdprajwal