# ramonunch/altsnap

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/ramonunch-altsnap).**

4,663 stars · 138 forks · C · gpl-3.0

## Links

- GitHub: https://github.com/RamonUnch/AltSnap
- awesome-repositories: https://awesome-repositories.com/repository/ramonunch-altsnap.md

## Topics

`desktop` `window-manager` `windows`

## Description

AltSnap is a window manager utility and layout system that organizes application windows using custom snap grids and mouse-driven resizing and movement. It functions as a low-level input hook that intercepts keyboard and mouse events at the OS level to trigger custom window management actions.

The project includes a coordinate-based grid mapper for precise snapping to custom zones and an input remapper that assigns keyboard scan codes to virtual mouse buttons. It also features a window automation CLI used to trigger management tasks on foreground or targeted application windows.

The tool provides window layout management, dynamic window control to move and resize windows via modifier keys, and input filter middleware to restrict actions based on application blacklists, process names, or window titles. It further enables control over system volume and window transparency through mapped input triggers.

## Tags

### Software Engineering & Architecture

- [System Input Hooks](https://awesome-repositories.com/f/software-engineering-architecture/event-driven-hooks/system-input-hooks.md) — Intercepts raw keyboard and mouse hardware events at the OS level to trigger custom window management.

### User Interface & Experience

- [Window Managers](https://awesome-repositories.com/f/user-interface-experience/window-managers.md) — Organizes application windows using a configurable grid and snapping zones to optimize screen real estate.
- [Coordinate-Based Positioning](https://awesome-repositories.com/f/user-interface-experience/coordinate-based-positioning.md) — Calculates precise window positions and dimensions using a grid coordinate system for snapping.
- [Window Snapping Coordinates](https://awesome-repositories.com/f/user-interface-experience/coordinate-based-positioning/window-snapping-coordinates.md) — Calculates window positions and dimensions using a predefined coordinate system for precise snapping.
- [Modifier-Conditional Mappings](https://awesome-repositories.com/f/user-interface-experience/form-and-input-management/input-handling/secondary-modifier-keys/keyboard-input-mapping/modifier-conditional-mappings.md) — Maps mouse movements and clicks to window resizing or movement based on active modifier keys.
- [State Trackers](https://awesome-repositories.com/f/user-interface-experience/modifier-key-simulators/state-trackers.md) — Monitors the real-time status of modifier keys to determine when mouse movements should resize windows.
- [Native Window Layout Management](https://awesome-repositories.com/f/user-interface-experience/native-window-layout-management.md) — Aligns windows to predefined custom zones or a configurable grid for efficient screen organization. ([source](https://github.com/RamonUnch/AltSnap/wiki))
- [Process-Based Action Restrictions](https://awesome-repositories.com/f/user-interface-experience/action-toolbars/table-toolbar-actions/mdi-window-action-registrations/process-based-action-restrictions.md) — Prevents interaction with specific programs or windows using process-based or title-based filtering lists. ([source](https://github.com/RamonUnch/AltSnap/wiki))
- [Input-Mapped Window Actions](https://awesome-repositories.com/f/user-interface-experience/application-window-managers/accessibility-based-window-manipulators/console-window-controllers/window-hiding/window-closing/input-mapped-window-actions.md) — Performs tasks like minimizing, maximizing, or closing windows by mapping mouse buttons to actions. ([source](https://github.com/RamonUnch/AltSnap/wiki))
- [Interaction Blacklists](https://awesome-repositories.com/f/user-interface-experience/application-window-managers/interaction-blacklists.md) — Prevents specific applications from being affected by window movement and resizing overrides. ([source](https://cdn.jsdelivr.net/gh/ramonunch/altsnap@main/README.md))
- [Window Query Filters](https://awesome-repositories.com/f/user-interface-experience/application-window-managers/window-rules/window-query-filters.md) — Filters target windows using process names and titles to determine which windows should be managed.
- [Input Filters](https://awesome-repositories.com/f/user-interface-experience/form-and-input-management/input-handling/modifier-key-listeners/input-filters.md) — Filters keyboard and mouse events to prevent specific programs from being affected by window overrides.

### Development Tools & Productivity

- [Input Customization](https://awesome-repositories.com/f/development-tools-productivity/input-pointer-automation/input-customization.md) — Allows users to map keyboard scan codes to virtual mouse buttons for custom system actions.
- [Interactive Window Manipulation](https://awesome-repositories.com/f/development-tools-productivity/window-managers/interactive-window-manipulation.md) — Moves and resizes windows using mouse clicks combined with modifier keys, bypassing title bars. ([source](https://cdn.jsdelivr.net/gh/ramonunch/altsnap@main/README.md))
- [Modifier-Key Window Manipulation](https://awesome-repositories.com/f/development-tools-productivity/window-managers/interactive-window-manipulation/window-resizing-operations/modifier-key-window-manipulation.md) — Enables moving and resizing application windows by holding modifier keys and clicking the window body.
- [Command-Line Window Controllers](https://awesome-repositories.com/f/development-tools-productivity/command-line-window-controllers.md) — Provides a command-line interface to programmatically trigger window management tasks and layout changes.
- [Window Action Filters](https://awesome-repositories.com/f/development-tools-productivity/input-processing-middleware/window-action-filters.md) — Restricts window actions based on application blacklists, process names, or window titles.

### DevOps & Infrastructure

- [Grid Layout Managers](https://awesome-repositories.com/f/devops-infrastructure/tiling-window-managers/grid-layout-managers.md) — Implements a grid-based layout system for snapping windows into precise, organized zones.
- [Cross-Device Input Translation](https://awesome-repositories.com/f/devops-infrastructure/virtual-hardware-interfaces/virtual-input-simulation/cross-device-input-translation.md) — Maps keyboard scan codes to virtual mouse buttons to increase available input triggers.

### Operating Systems & Systems Programming

- [Input Remappers](https://awesome-repositories.com/f/operating-systems-systems-programming/input-remappers.md) — Intercepts hardware input events to map keyboard scan codes to virtual mouse buttons.
- [Input Remapping Utilities](https://awesome-repositories.com/f/operating-systems-systems-programming/input-remapping-utilities.md) — Remaps physical hardware buttons and keyboard scan codes to system functions and window commands.
- [OS-Level Input Hooks](https://awesome-repositories.com/f/operating-systems-systems-programming/os-level-input-hooks.md) — Intercepts keyboard and mouse events at the OS level to trigger custom window management actions.

### Hardware & IoT

- [Mouse Button Reconfigurations](https://awesome-repositories.com/f/hardware-iot/mouse-button-reconfigurations.md) — Assigns keyboard scan codes to virtual mouse buttons to increase available input triggers. ([source](https://github.com/RamonUnch/AltSnap/wiki))
- [Virtual Input Triggers](https://awesome-repositories.com/f/hardware-iot/virtual-input-triggers.md) — Translates hardware mouse clicks into virtual input triggers to expand available command shortcuts.

### System Administration & Monitoring

- [CLI System Management](https://awesome-repositories.com/f/system-administration-monitoring/cli-system-management.md) — Offers a CLI for triggering window management tasks and application controls via scripted setups.
