Overview
Stash allows you to temporarily hide windows at the edges of your screen, keeping your workspace clean while maintaining quick access to important applications. Windows remain partially visible at the edge and automatically reveal when you hover near them or use a keybind. This feature is perfect for:- Monitoring apps (Activity Monitor, system stats)
- Communication tools (Messages, Slack) that you check frequently
- Reference materials you want nearby but not always visible
- Music players or other utility apps
How Stashing Works
When you stash a window, Loop moves it to a screen edge with only a small portion remaining visible. The window automatically reveals when your mouse approaches the edge and hides again when you move away.Basic Usage
1
Create a stash action
In Settings > Keybinds, create a new custom action with direction “Stash” and choose an edge (left, right, or bottom)
2
Assign a keybind
Record your keyboard shortcut (e.g., Trigger + S)
3
Stash a window
Focus the window you want to stash and press your keybind
4
Reveal on demand
Hover your mouse near the stashed edge to reveal the window, or press the same keybind again
Only one stashed window can be revealed at a time. Revealing a new window automatically hides the previously revealed one.
Stash Edges
Loop supports stashing windows at three screen edges:Left Edge
Windows slide out from the left side of the screen
Right Edge
Windows slide out from the right side of the screen
Bottom Edge
Windows slide up from the bottom of the screen
Implementation Details
Stash functionality is managed by theStashManager singleton class:
Loop/Stashing/StashManager.swift
Mouse-Based Revealing
StashManager listens for mouse movement events to reveal windows:Stashed vs Revealed Frames
Each stashed window has two frame states:Animation System
Reveal and hide transitions can be animated:Configuration Options
number
default:"5"
How many pixels of the stashed window remain visible at the screen edge. Increase for easier mouse targeting.
toggle
default:"true"
Enable smooth reveal/hide animations. Disable for instant transitions.
toggle
default:"false"
Automatically focus revealed windows and shift focus away when hiding. When disabled, windows reveal without stealing focus.
Multi-Screen Support
StashManager intelligently handles multiple displays:- Left stash uses the leftmost screen in the same row
- Right stash uses the rightmost screen in the same row
- Bottom stash uses the bottommost screen in the same column
Overlap Handling
StashManager prevents overlapping stashed windows:When you stash a window where another is already stashed, the original window is automatically unstashed and restored to its previous position.
Reveal Triggers
Windows can be revealed in multiple ways:1. Mouse Proximity
2. Keybind Toggle
3. Application Activation
Auto-Hide Behavior
Revealed windows automatically hide when:- Mouse moves away from the window (with tolerance)
- Another window is focused (if
shiftFocusWhenStashedis enabled) - You stash a different window
Persistence
Stashed window states persist across app restarts:Unstashing Windows
To permanently unstash a window:1
Create an unstash action
Add a new keybind with direction “Unstash”
2
Focus the stashed window
Reveal it using mouse hover or the stash keybind
3
Trigger unstash
Press your unstash keybind to restore the window to its original position
Advanced Features
Focus Management
WhenshiftFocusWhenStashed is enabled:
Z-Index Sorting
Multiple stashed windows are managed by z-order:Drag and Drop Support
Stashed windows support drag and drop:Use Cases
System Monitoring
System Monitoring
Stash Activity Monitor or system stats at the edge. Quickly glance when needed without cluttering your main workspace.
Communication Apps
Communication Apps
Keep Messages or Slack stashed for quick replies while maintaining focus on your primary work.
Music Control
Music Control
Stash your music player (Spotify, Apple Music) for easy access to playback controls.
Reference Materials
Reference Materials
Stash documentation, calculators, or notes that you reference occasionally but don’t need constantly visible.
Terminal Sessions
Terminal Sessions
Stash a terminal window for quick command execution without switching spaces or minimizing.