Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Mint Zones Logo

Mint Zones

PowerToys FancyZones-style window snapping for Linux Mint and Cinnamon.

Mint Zones is a remarkably lightweight X11 utility that brings advanced window snapping and custom drop-zones to Linux Mint.

When you drag a window while holding the configured modifier key, transparent zone overlays appear. Drop the window over a zone and Mint Zones instantly snaps the window into place.

Screenshot Placeholder (Note: Replace with animated GIF or Screenshot)

✨ Features

  • Ultra-Lightweight & Zero Dependencies: Written purely in C and raw X11 sockets. It uses 0.0% CPU and exactly ~3MB of RAM because the event loop sleeps completely while idle.
  • Native Tray Integration: Utilizes a tiny background proxy to securely hook into Linux Mint's exact D-Bus applet standards. Right-clicking the tray icon gives you native tooltips and menus perfectly matched to your OS theme.
  • Perfect CSD Snapping: Automatically detects and adjusts for invisible GNOME/GTK3 drop-shadows so your windows always snap exactly where they belong.
  • Interactive Visual Editor: Features a comprehensive graphical setup interface with support for:
    • Real-time dragging, panning, and mouse-centered zooming of your monitor topology canvas.
    • Multi-monitor support and snapping geometries together.
    • Granular Z-indexing layer stacks (so overlapping zones work flawlessly).
  • No Background Animation Loops: It only actively polls your mouse position while you are explicitly dragging a window over a zone.

🚀 Easy Installation

Mint Zones comes with a fully automated installer script.

  1. Clone or download this repository.
  2. Open your terminal in the downloaded folder.
  3. Run the installer:
    ./install.sh

The script will safely verify your build tools, compile the application, install it to your user directory (~/.local), and automatically launch the background daemon.

You can now find Mint Zones in your standard Linux Mint Application Menu!


🛠 Manual Build (For Advanced Users)

If you prefer to compile manually, ensure you have the required X11 development headers:

sudo apt install build-essential libx11-dev libxext-dev pkg-config

Then build and install into your user profile:

make
make install-user

Run the editor and watcher together: ./mint-zones Run only the background watcher: ./mint-zones --daemon


📖 Usage Guide

Configuring Zones

  1. Click the Mint Zones icon in your system tray or app menu to open the GUI.
  2. The grid displays your exact physical monitor layout. Hold Right-Click to pan around or use the Scroll Wheel to zoom.
  3. Click Add to drop a new zone onto the active monitor.
  4. Drag a zone to move it, or drag its bottom-right corner to resize it. Hold Shift while dragging to snap it perfectly against other zones.
  5. Use the Layer Stack list on the right to manually input exact percentages or re-order overlapping zones.
  6. Click Save when done!

Custom Hotkeys & Autostart

  • Click the Hotkey button and press a key combination (e.g. Shift or Super+Z) to set the trigger for dropping windows into zones.
  • Toggle Run on startup to ensure Mint Zones is always ready when you log in.

⚙️ Configuration File

If you want to manually edit your zones or back them up, the configuration file is entirely human-readable and located at ~/.config/mint-zones/config.

hotkey=Shift
# Examples: Ctrl+Alt, Super+Shift, Alt+Z
zone=eDP-1|0.000000|0.000000|0.500000|1.000000
zone=eDP-1|0.500000|0.000000|0.500000|1.000000

(Coordinates are normalized to percentages so they perfectly survive resolution changes!)


🗑 Uninstallation

If you ever wish to completely remove Mint Zones from your system, simply run:

make uninstall-user

Linux Mint's Cinnamon session is normally X11. Wayland support is intentionally out of scope for this first version because global window movement/placement is restricted by design on Wayland compositors.

About

PowerToys FancyZones-style custom window snapping for Linux Mint & Cinnamon. Ultra-lightweight, zero-dependency native C/X11 utility with an interactive GUI editor.

Topics

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages