mirror of
https://github.com/DreamMaoMao/maomaowm.git
synced 2026-05-03 06:46:38 -04:00
Merge remote-tracking branch 'origin/main' into copilot/create-simple-build-workflow
This commit is contained in:
commit
e21ae7e013
4 changed files with 481 additions and 158 deletions
6
.github/ISSUE_TEMPLATE/bug_report.md
vendored
6
.github/ISSUE_TEMPLATE/bug_report.md
vendored
|
|
@ -18,11 +18,15 @@ mango version:
|
||||||
wlroots version:
|
wlroots version:
|
||||||
|
|
||||||
## Crash track
|
## Crash track
|
||||||
|
|
||||||
1.you need to build mango by enable asan flag.
|
1.you need to build mango by enable asan flag.
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
meson build -Dprefix=/usr -Dasan=true
|
meson build -Dprefix=/usr -Dasan=true
|
||||||
``
|
```
|
||||||
|
|
||||||
2.run mango in tty.
|
2.run mango in tty.
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
export ASAN_OPTIONS="detect_leaks=1:halt_on_error=0:log_path=/home/xxx/asan.log"
|
export ASAN_OPTIONS="detect_leaks=1:halt_on_error=0:log_path=/home/xxx/asan.log"
|
||||||
mango
|
mango
|
||||||
|
|
|
||||||
181
COMMANDS.md
181
COMMANDS.md
File diff suppressed because it is too large
Load diff
272
README.md
272
README.md
|
|
@ -1,23 +1,29 @@
|
||||||
# Mango Wayland Compositor
|
# Mango Wayland Compositor
|
||||||
|
|
||||||
<div>
|
<div>
|
||||||
<img src="https://github.com/DreamMaoMao/mangowc/blob/main/assets/mango-transparency-256.png" alt="MangoWC Logo" width="120"/>
|
<img src="https://github.com/DreamMaoMao/mangowc/blob/main/assets/mango-transparency-256.png" alt="MangoWC Logo" width="120"/>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
This project's development is based on [dwl](https://codeberg.org/dwl/dwl/).
|
This project's development is based on [dwl](https://codeberg.org/dwl/dwl/).
|
||||||
|
|
||||||
|
|
||||||
1. **Lightweight & Fast Build**
|
1. **Lightweight & Fast Build**
|
||||||
|
|
||||||
- _Mango_ is as lightweight as _dwl_, and can be built completely within a few seconds. Despite this, _Mango_ does not compromise on functionality.
|
- _Mango_ is as lightweight as _dwl_, and can be built completely within
|
||||||
|
a few seconds. Despite this, _Mango_ does not compromise on
|
||||||
|
functionality.
|
||||||
|
|
||||||
2. **Feature Highlights**
|
2. **Feature Highlights**
|
||||||
- In addition to basic WM functionality, Mango provides:
|
- In addition to basic WM functionality, Mango provides:
|
||||||
- Excellent xwayland support.
|
- Excellent xwayland support.
|
||||||
- Base tags not workspaces (supports separate window layouts for each tag)
|
- Base tags not workspaces (supports separate window layouts for each
|
||||||
- Smooth and customizable complete animations (window open/move/close, tag enter/leave,layer open/close/move)
|
tag)
|
||||||
|
- Smooth and customizable complete animations (window
|
||||||
|
open/move/close, tag enter/leave,layer open/close/move)
|
||||||
- Excellent input method support (text input v2/v3)
|
- Excellent input method support (text input v2/v3)
|
||||||
- Flexible window layouts with easy switching (scroller, master-stack, monocle,center-master, etc.)
|
- Flexible window layouts with easy switching (scroller,
|
||||||
- Rich window states (swallow, minimize, maximize, unglobal, global, fakefullscreen, overlay, etc.)
|
master-stack, monocle,center-master, etc.)
|
||||||
|
- Rich window states (swallow, minimize, maximize, unglobal, global,
|
||||||
|
fakefullscreen, overlay, etc.)
|
||||||
- Simple yet powerful external configuration(support shortcuts hot-reload)
|
- Simple yet powerful external configuration(support shortcuts hot-reload)
|
||||||
- Sway-like scratchpad and named scratchpad
|
- Sway-like scratchpad and named scratchpad
|
||||||
- Ipc support(get/send message from/to compositor by external program)
|
- Ipc support(get/send message from/to compositor by external program)
|
||||||
|
|
@ -25,17 +31,22 @@ This project's development is based on [dwl](https://codeberg.org/dwl/dwl/).
|
||||||
- Window effects from scenefx (blur, shadow, corner radius, opacity)
|
- Window effects from scenefx (blur, shadow, corner radius, opacity)
|
||||||
- Zero flickering - every frame is perfect.
|
- Zero flickering - every frame is perfect.
|
||||||
|
|
||||||
https://github.com/user-attachments/assets/bb83004a-0563-4b48-ad89-6461a9b78b1f
|
<https://github.com/user-attachments/assets/bb83004a-0563-4b48-ad89-6461a9b78b1f>
|
||||||
|
|
||||||
# Quick Start Guide
|
## Quick Start Guide
|
||||||
|
|
||||||
## What is MangoWC?
|
## What is MangoWC?
|
||||||
|
|
||||||
MangoWC is a **Wayland compositor** - a program that manages windows and displays on modern Linux systems using the Wayland protocol. If you're familiar with window managers like i3, dwm, or awesome, MangoWC provides similar tiling window management functionality but for Wayland instead of X11.
|
MangoWC is a **Wayland compositor** - a program that manages windows and
|
||||||
|
displays on modern Linux systems using the Wayland protocol. If you're
|
||||||
|
familiar with window managers like i3, dwm, or awesome, MangoWC provides
|
||||||
|
similar tiling window management functionality but for Wayland instead of
|
||||||
|
X11.
|
||||||
|
|
||||||
## First Steps After Installation
|
## First Steps After Installation
|
||||||
|
|
||||||
1. **Copy the default configuration:**
|
1. **Copy the default configuration:**
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
mkdir -p ~/.config/mango
|
mkdir -p ~/.config/mango
|
||||||
cp /usr/share/mango/config.conf ~/.config/mango/config.conf
|
cp /usr/share/mango/config.conf ~/.config/mango/config.conf
|
||||||
|
|
@ -53,6 +64,7 @@ MangoWC is a **Wayland compositor** - a program that manages windows and display
|
||||||
- `Super + R` - Reload configuration (after making changes)
|
- `Super + R` - Reload configuration (after making changes)
|
||||||
|
|
||||||
4. **Create an autostart script** (optional):
|
4. **Create an autostart script** (optional):
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
# Create ~/.config/mango/autostart.sh
|
# Create ~/.config/mango/autostart.sh
|
||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
@ -66,6 +78,7 @@ MangoWC is a **Wayland compositor** - a program that manages windows and display
|
||||||
# Start notification daemon
|
# Start notification daemon
|
||||||
swaync &
|
swaync &
|
||||||
```
|
```
|
||||||
|
|
||||||
Make it executable: `chmod +x ~/.config/mango/autostart.sh`
|
Make it executable: `chmod +x ~/.config/mango/autostart.sh`
|
||||||
|
|
||||||
## Key Concepts
|
## Key Concepts
|
||||||
|
|
@ -74,12 +87,16 @@ MangoWC is a **Wayland compositor** - a program that manages windows and display
|
||||||
|
|
||||||
Unlike traditional workspaces, **tags** are more flexible:
|
Unlike traditional workspaces, **tags** are more flexible:
|
||||||
|
|
||||||
- **Workspaces**: A window belongs to one workspace. Switching workspaces shows a different set of windows.
|
- **Workspaces**: A window belongs to one workspace. Switching workspaces
|
||||||
- **Tags**: A window can have multiple tags. You can view multiple tags at once or filter to specific tags.
|
shows a different set of windows.
|
||||||
|
- **Tags**: A window can have multiple tags. You can view multiple tags at
|
||||||
|
once or filter to specific tags.
|
||||||
|
|
||||||
Think of tags as labels you can attach to windows. You can view windows with tag 1, or tag 2, or both tags 1 and 2 simultaneously.
|
Think of tags as labels you can attach to windows. You can view windows with
|
||||||
|
tag 1, or tag 2, or both tags 1 and 2 simultaneously.
|
||||||
|
|
||||||
**Default behavior:**
|
**Default behavior:**
|
||||||
|
|
||||||
- `Ctrl + 1-9` - View tag 1-9
|
- `Ctrl + 1-9` - View tag 1-9
|
||||||
- `Alt + 1-9` - Move current window to tag 1-9
|
- `Alt + 1-9` - Move current window to tag 1-9
|
||||||
- Each tag can have its own layout (tile, scroller, grid, etc.)
|
- Each tag can have its own layout (tile, scroller, grid, etc.)
|
||||||
|
|
@ -88,19 +105,23 @@ Think of tags as labels you can attach to windows. You can view windows with tag
|
||||||
|
|
||||||
MangoWC supports 9 different layouts:
|
MangoWC supports 9 different layouts:
|
||||||
|
|
||||||
| Layout | Description | Best For |
|
| Layout | Description | Best For |
|
||||||
|--------|-------------|----------|
|
|-----------------------|---------------------------------|-----------------------|
|
||||||
| **tile** | Master-stack tiling (left master, right stack) | General multitasking |
|
| **tile** | Master-stack tiling | General multitasking |
|
||||||
| **scroller** | Horizontal scrolling columns | Wide content, terminals |
|
| | (left master, right stack) | |
|
||||||
| **monocle** | One window fullscreen at a time | Focus, presentations |
|
| **scroller** | Horizontal scrolling columns | Wide content, |
|
||||||
| **grid** | Windows arranged in grid | Many small windows |
|
| | | terminals |
|
||||||
| **deck** | Stack of windows, one visible | Cycling through tasks |
|
| **monocle** | One window fullscreen at a time | Focus, |
|
||||||
| **center_tile** | Master centered, stack on sides | Symmetrical layout |
|
| | | presentations |
|
||||||
| **vertical_tile** | Master top, stack bottom | Wide monitors |
|
| **grid** | Windows arranged in grid | Many small windows |
|
||||||
| **vertical_scroller** | Vertical scrolling rows | Document review |
|
| **deck** | Stack of windows, one visible | Cycling through tasks |
|
||||||
| **vertical_grid** | Vertical grid arrangement | Vertical content |
|
| **center_tile** | Master centered, stack on sides | Symmetrical layout |
|
||||||
|
| **vertical_tile** | Master top, stack bottom | Wide monitors |
|
||||||
|
| **vertical_scroller** | Vertical scrolling rows | Document review |
|
||||||
|
| **vertical_grid** | Vertical grid arrangement | Vertical content |
|
||||||
|
|
||||||
**Switch layouts:**
|
**Switch layouts:**
|
||||||
|
|
||||||
- `Super + N` - Cycle through layouts for current tag
|
- `Super + N` - Cycle through layouts for current tag
|
||||||
- Each tag can have its own default layout (set in `config.conf`)
|
- Each tag can have its own default layout (set in `config.conf`)
|
||||||
|
|
||||||
|
|
@ -114,6 +135,7 @@ The **scratchpad** is a hidden workspace for temporary windows:
|
||||||
- Scratchpad windows float centered on screen
|
- Scratchpad windows float centered on screen
|
||||||
|
|
||||||
**Usage example:**
|
**Usage example:**
|
||||||
|
|
||||||
1. Open a terminal (`Alt + Return`)
|
1. Open a terminal (`Alt + Return`)
|
||||||
2. Move it to scratchpad (`Alt + Z`)
|
2. Move it to scratchpad (`Alt + Z`)
|
||||||
3. It disappears
|
3. It disappears
|
||||||
|
|
@ -161,32 +183,37 @@ Windows can have multiple states:
|
||||||
### Typical Workflow
|
### Typical Workflow
|
||||||
|
|
||||||
1. **Open applications:**
|
1. **Open applications:**
|
||||||
```
|
|
||||||
|
```text
|
||||||
Alt + Space → Application launcher
|
Alt + Space → Application launcher
|
||||||
Alt + Return → Terminal
|
Alt + Return → Terminal
|
||||||
```
|
```
|
||||||
|
|
||||||
2. **Navigate windows:**
|
2. **Navigate windows:**
|
||||||
```
|
|
||||||
|
```text
|
||||||
Alt + Arrow Keys → Focus window in direction
|
Alt + Arrow Keys → Focus window in direction
|
||||||
Super + Tab → Focus next window in stack
|
Super + Tab → Focus next window in stack
|
||||||
```
|
```
|
||||||
|
|
||||||
3. **Organize windows:**
|
3. **Organize windows:**
|
||||||
```
|
|
||||||
|
```text
|
||||||
Super + Shift + Arrows → Swap window positions
|
Super + Shift + Arrows → Swap window positions
|
||||||
Alt + \ → Toggle floating
|
Alt + \ → Toggle floating
|
||||||
Alt + 1-9 → Move to specific tag
|
Alt + 1-9 → Move to specific tag
|
||||||
```
|
```
|
||||||
|
|
||||||
4. **Adjust layout:**
|
4. **Adjust layout:**
|
||||||
```
|
|
||||||
|
```text
|
||||||
Super + N → Change layout
|
Super + N → Change layout
|
||||||
Alt + Shift + X/Z → Increase/decrease gaps
|
Alt + Shift + X/Z → Increase/decrease gaps
|
||||||
```
|
```
|
||||||
|
|
||||||
5. **Multi-monitor:**
|
5. **Multi-monitor:**
|
||||||
```
|
|
||||||
|
```text
|
||||||
Alt + Shift + Left/Right → Focus other monitor
|
Alt + Shift + Left/Right → Focus other monitor
|
||||||
Super + Alt + Left/Right → Move window to other monitor
|
Super + Alt + Left/Right → Move window to other monitor
|
||||||
```
|
```
|
||||||
|
|
@ -194,16 +221,19 @@ Windows can have multiple states:
|
||||||
### Common Use Cases
|
### Common Use Cases
|
||||||
|
|
||||||
**Web browsing + Terminal:**
|
**Web browsing + Terminal:**
|
||||||
|
|
||||||
- Open browser on tag 1, terminal on tag 2
|
- Open browser on tag 1, terminal on tag 2
|
||||||
- Use `Ctrl + 1` and `Ctrl + 2` to switch between them
|
- Use `Ctrl + 1` and `Ctrl + 2` to switch between them
|
||||||
|
|
||||||
**Development workflow:**
|
**Development workflow:**
|
||||||
|
|
||||||
- Tag 1: Code editor (center_tile layout)
|
- Tag 1: Code editor (center_tile layout)
|
||||||
- Tag 2: Browser (monocle layout)
|
- Tag 2: Browser (monocle layout)
|
||||||
- Tag 3: Terminals (tile or scroller layout)
|
- Tag 3: Terminals (tile or scroller layout)
|
||||||
- Scratchpad: Calculator, notes
|
- Scratchpad: Calculator, notes
|
||||||
|
|
||||||
**Keeping a window visible everywhere:**
|
**Keeping a window visible everywhere:**
|
||||||
|
|
||||||
- Open music player or chat app
|
- Open music player or chat app
|
||||||
- Press `Super + G` to make it global
|
- Press `Super + G` to make it global
|
||||||
- It now appears on all tags
|
- It now appears on all tags
|
||||||
|
|
@ -250,6 +280,7 @@ mmsg -d spawn firefox
|
||||||
### Scripting Examples
|
### Scripting Examples
|
||||||
|
|
||||||
**Auto-save workspace state:**
|
**Auto-save workspace state:**
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
# Save current tags to file
|
# Save current tags to file
|
||||||
|
|
@ -257,6 +288,7 @@ mmsg -t > ~/mango-state.txt
|
||||||
```
|
```
|
||||||
|
|
||||||
**Tag-specific wallpapers:**
|
**Tag-specific wallpapers:**
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
# In a loop, change wallpaper based on active tag
|
# In a loop, change wallpaper based on active tag
|
||||||
|
|
@ -268,6 +300,7 @@ done
|
||||||
```
|
```
|
||||||
|
|
||||||
**Quick window layout toggle:**
|
**Quick window layout toggle:**
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
# Toggle between tile and monocle layouts
|
# Toggle between tile and monocle layouts
|
||||||
|
|
@ -284,18 +317,21 @@ fi
|
||||||
### MangoWC won't start
|
### MangoWC won't start
|
||||||
|
|
||||||
1. **Check dependencies:**
|
1. **Check dependencies:**
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
# Verify wlroots and scenefx are installed
|
# Verify wlroots and scenefx are installed
|
||||||
pkg-config --modversion wlroots scenefx
|
pkg-config --modversion wlroots scenefx
|
||||||
```
|
```
|
||||||
|
|
||||||
2. **Check logs:**
|
2. **Check logs:**
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
# Run from terminal to see error messages
|
# Run from terminal to see error messages
|
||||||
mango
|
mango
|
||||||
```
|
```
|
||||||
|
|
||||||
3. **XWayland issues:**
|
3. **XWayland issues:**
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
# If X11 apps won't start, rebuild with XWayland
|
# If X11 apps won't start, rebuild with XWayland
|
||||||
meson configure build -Dxwayland=enabled
|
meson configure build -Dxwayland=enabled
|
||||||
|
|
@ -311,6 +347,7 @@ fi
|
||||||
### Keybindings not working
|
### Keybindings not working
|
||||||
|
|
||||||
1. **Find correct key name:**
|
1. **Find correct key name:**
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
# Install wev to see key names
|
# Install wev to see key names
|
||||||
wev
|
wev
|
||||||
|
|
@ -324,12 +361,14 @@ fi
|
||||||
### Applications not starting
|
### Applications not starting
|
||||||
|
|
||||||
1. **Missing required tools:**
|
1. **Missing required tools:**
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
# Install suggested applications
|
# Install suggested applications
|
||||||
sudo pacman -S rofi foot waybar swaybg
|
sudo pacman -S rofi foot waybar swaybg
|
||||||
```
|
```
|
||||||
|
|
||||||
2. **Check autostart script:**
|
2. **Check autostart script:**
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
# Test autostart manually
|
# Test autostart manually
|
||||||
bash ~/.config/mango/autostart.sh
|
bash ~/.config/mango/autostart.sh
|
||||||
|
|
@ -338,6 +377,7 @@ fi
|
||||||
### Performance issues
|
### Performance issues
|
||||||
|
|
||||||
1. **Disable effects:**
|
1. **Disable effects:**
|
||||||
|
|
||||||
```conf
|
```conf
|
||||||
# In config.conf
|
# In config.conf
|
||||||
animations=0
|
animations=0
|
||||||
|
|
@ -346,6 +386,7 @@ fi
|
||||||
```
|
```
|
||||||
|
|
||||||
2. **Check GPU drivers:**
|
2. **Check GPU drivers:**
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
# Ensure proper graphics drivers are installed
|
# Ensure proper graphics drivers are installed
|
||||||
glxinfo | grep "OpenGL"
|
glxinfo | grep "OpenGL"
|
||||||
|
|
@ -354,6 +395,7 @@ fi
|
||||||
### Screen sharing not working
|
### Screen sharing not working
|
||||||
|
|
||||||
Install portal packages:
|
Install portal packages:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
sudo pacman -S xdg-desktop-portal xdg-desktop-portal-wlr
|
sudo pacman -S xdg-desktop-portal xdg-desktop-portal-wlr
|
||||||
```
|
```
|
||||||
|
|
@ -365,12 +407,13 @@ sudo pacman -S xdg-desktop-portal xdg-desktop-portal-wlr
|
||||||
- **Website**: [mangowc.vercel.app/docs](https://mangowc.vercel.app/docs)
|
- **Website**: [mangowc.vercel.app/docs](https://mangowc.vercel.app/docs)
|
||||||
- **Issues**: [GitHub Issues](https://github.com/DreamMaoMao/mangowc/issues)
|
- **Issues**: [GitHub Issues](https://github.com/DreamMaoMao/mangowc/issues)
|
||||||
|
|
||||||
# Our discord
|
## Our discord
|
||||||
|
|
||||||
[mangowc](https://discord.gg/CPjbDxesh5)
|
[mangowc](https://discord.gg/CPjbDxesh5)
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
# Installation
|
## Installation
|
||||||
|
|
||||||
## Dependencies
|
## Dependencies
|
||||||
|
|
||||||
|
|
@ -393,13 +436,19 @@ sudo pacman -S xdg-desktop-portal xdg-desktop-portal-wlr
|
||||||
- libxcb
|
- libxcb
|
||||||
|
|
||||||
## Arch Linux
|
## Arch Linux
|
||||||
The package is in the Arch User Repository and is available for manual download [here](https://aur.archlinux.org/packages/mangowc-git) or through a AUR helper like yay:
|
|
||||||
|
The package is in the Arch User Repository and is available for manual
|
||||||
|
download from the
|
||||||
|
[AUR package page](https://aur.archlinux.org/packages/mangowc-git) or
|
||||||
|
through a AUR helper like yay:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
yay -S mangowc-git
|
yay -S mangowc-git
|
||||||
|
|
||||||
```
|
```
|
||||||
|
|
||||||
## Gentoo Linux
|
## Gentoo Linux
|
||||||
|
|
||||||
The package is in the community-maintained repository called GURU.
|
The package is in the community-maintained repository called GURU.
|
||||||
First, add GURU repository:
|
First, add GURU repository:
|
||||||
|
|
||||||
|
|
@ -418,6 +467,7 @@ emerge --ask --verbose gui-wm/mangowc
|
||||||
```
|
```
|
||||||
|
|
||||||
## Fedora Linux
|
## Fedora Linux
|
||||||
|
|
||||||
The package is in the third-party Terra repository.
|
The package is in the third-party Terra repository.
|
||||||
First, add the [Terra Repository](https://terra.fyralabs.com/).
|
First, add the [Terra Repository](https://terra.fyralabs.com/).
|
||||||
|
|
||||||
|
|
@ -428,6 +478,7 @@ dnf install mangowc
|
||||||
```
|
```
|
||||||
|
|
||||||
## GuixSD
|
## GuixSD
|
||||||
|
|
||||||
The package definition is described in the source repository.
|
The package definition is described in the source repository.
|
||||||
First, add `mangowc` channel to `channels.scm` file:
|
First, add `mangowc` channel to `channels.scm` file:
|
||||||
|
|
||||||
|
|
@ -477,9 +528,11 @@ sudo ninja -C build install
|
||||||
## Suggested Tools
|
## Suggested Tools
|
||||||
|
|
||||||
### Hybrid component
|
### Hybrid component
|
||||||
|
|
||||||
- [dms-shell](https://github.com/AvengeMedia/DankMaterialShell)
|
- [dms-shell](https://github.com/AvengeMedia/DankMaterialShell)
|
||||||
|
|
||||||
### Independent component
|
### Independent component
|
||||||
|
|
||||||
- Application launcher (rofi, bemenu, wmenu, fuzzel)
|
- Application launcher (rofi, bemenu, wmenu, fuzzel)
|
||||||
- Terminal emulator (foot, wezterm, alacritty, kitty, ghostty)
|
- Terminal emulator (foot, wezterm, alacritty, kitty, ghostty)
|
||||||
- Status bar (waybar, eww, quickshell, ags), waybar is preferred
|
- Status bar (waybar, eww, quickshell, ags), waybar is preferred
|
||||||
|
|
@ -496,80 +549,84 @@ sudo ninja -C build install
|
||||||
|
|
||||||
### Essential Shortcuts
|
### Essential Shortcuts
|
||||||
|
|
||||||
| Keybinding | Action | Description |
|
| Keybinding | Action | Description |
|
||||||
|------------|--------|-------------|
|
|----------------|---------------|----------------------------------|
|
||||||
| `Alt + Return` | Open terminal | Launches foot terminal emulator |
|
| `Alt + Return` | Open terminal | Launches foot terminal emulator |
|
||||||
| `Alt + Space` | Open launcher | Launches rofi application launcher |
|
| `Alt + Space` | Open launcher | Launches rofi application |
|
||||||
| `Alt + Q` | Close window | Kill focused window |
|
| | | launcher |
|
||||||
| `Super + M` | Exit | Quit MangoWC |
|
| `Alt + Q` | Close window | Kill focused window |
|
||||||
| `Super + R` | Reload config | Apply config changes without restart |
|
| `Super + M` | Exit | Quit MangoWC |
|
||||||
|
| `Super + R` | Reload config | Apply config changes without |
|
||||||
|
| | | restart |
|
||||||
|
|
||||||
### Window Management
|
### Window Management
|
||||||
|
|
||||||
| Keybinding | Action |
|
| Keybinding | Action |
|
||||||
|------------|--------|
|
|---------------------------|-------------------------------------|
|
||||||
| `Alt + ←/→/↑/↓` | Focus window in direction |
|
| `Alt + ←/→/↑/↓` | Focus window in direction |
|
||||||
| `Super + Tab` | Focus next window |
|
| `Super + Tab` | Focus next window |
|
||||||
| `Super + Shift + ←/→/↑/↓` | Swap window with neighbor |
|
| `Super + Shift + ←/→/↑/↓` | Swap window with neighbor |
|
||||||
| `Alt + \` | Toggle floating/tiling |
|
| `Alt + \` | Toggle floating/tiling |
|
||||||
| `Alt + F` | Toggle fullscreen |
|
| `Alt + F` | Toggle fullscreen |
|
||||||
| `Alt + Shift + F` | Toggle fake fullscreen |
|
| `Alt + Shift + F` | Toggle fake fullscreen |
|
||||||
| `Alt + A` | Toggle maximize |
|
| `Alt + A` | Toggle maximize |
|
||||||
| `Super + I` | Minimize window |
|
| `Super + I` | Minimize window |
|
||||||
| `Super + Shift + I` | Restore minimized window |
|
| `Super + Shift + I` | Restore minimized window |
|
||||||
| `Super + G` | Toggle global (visible all tags) |
|
| `Super + G` | Toggle global (visible all tags) |
|
||||||
| `Super + O` | Toggle overlay (always on top) |
|
| `Super + O` | Toggle overlay (always on top) |
|
||||||
|
|
||||||
### Tag (Workspace) Management
|
### Tag (Workspace) Management
|
||||||
|
|
||||||
| Keybinding | Action |
|
| Keybinding | Action |
|
||||||
|------------|--------|
|
|---------------------|--------------------------------------|
|
||||||
| `Ctrl + 1-9` | Switch to tag 1-9 |
|
| `Ctrl + 1-9` | Switch to tag 1-9 |
|
||||||
| `Alt + 1-9` | Move window to tag 1-9 (and follow) |
|
| `Alt + 1-9` | Move window to tag 1-9 (and follow) |
|
||||||
| `Super + ←/→` | Previous/next tag |
|
| `Super + ←/→` | Previous/next tag |
|
||||||
| `Ctrl + ←/→` | Previous/next tag with windows |
|
| `Ctrl + ←/→` | Previous/next tag with windows |
|
||||||
| `Ctrl + Super + ←/→` | Move window to previous/next tag |
|
| `Ctrl + Super + ←/→`| Move window to previous/next tag |
|
||||||
|
|
||||||
### Layout Control
|
### Layout Control
|
||||||
|
|
||||||
| Keybinding | Action |
|
| Keybinding | Action |
|
||||||
|------------|--------|
|
|---------------------|--------------------------------------|
|
||||||
| `Super + N` | Cycle through layouts |
|
| `Super + N` | Cycle through layouts |
|
||||||
| `Alt + E` | Set window to full width (scroller) |
|
| `Alt + E` | Set window to full width (scroller) |
|
||||||
| `Alt + X` | Cycle width presets (scroller) |
|
| `Alt + X` | Cycle width presets (scroller) |
|
||||||
| `Alt + Shift + X/Z` | Increase/decrease gaps |
|
| `Alt + Shift + X/Z` | Increase/decrease gaps |
|
||||||
| `Alt + Shift + R` | Toggle gaps on/off |
|
| `Alt + Shift + R` | Toggle gaps on/off |
|
||||||
|
|
||||||
### Special Features
|
### Special Features
|
||||||
|
|
||||||
| Keybinding | Action |
|
| Keybinding | Action |
|
||||||
|------------|--------|
|
|-------------------------|--------------------------|
|
||||||
| `Alt + Tab` | Toggle overview mode |
|
| `Alt + Tab` | Toggle overview mode |
|
||||||
| `Alt + Z` | Toggle scratchpad |
|
| `Alt + Z` | Toggle scratchpad |
|
||||||
| `Super + Scroll Up/Down` | Switch tags with scroll wheel |
|
| `Super + Scroll Up/Down`| Switch tags with scroll |
|
||||||
|
| | wheel |
|
||||||
|
|
||||||
### Multi-Monitor
|
### Multi-Monitor
|
||||||
|
|
||||||
| Keybinding | Action |
|
| Keybinding | Action |
|
||||||
|------------|--------|
|
|---------------------|----------------------------------|
|
||||||
| `Alt + Shift + ←/→` | Focus adjacent monitor |
|
| `Alt + Shift + ←/→` | Focus adjacent monitor |
|
||||||
| `Super + Alt + ←/→` | Move window to adjacent monitor |
|
| `Super + Alt + ←/→` | Move window to adjacent monitor |
|
||||||
|
|
||||||
### Floating Window Adjustment
|
### Floating Window Adjustment
|
||||||
|
|
||||||
| Keybinding | Action |
|
| Keybinding | Action |
|
||||||
|------------|--------|
|
|---------------------------|------------------------------------|
|
||||||
| `Ctrl + Shift + ←/→/↑/↓` | Move floating window by pixels |
|
| `Ctrl + Shift + ←/→/↑/↓` | Move floating window by pixels |
|
||||||
| `Ctrl + Alt + ←/→/↑/↓` | Resize floating window by pixels |
|
| `Ctrl + Alt + ←/→/↑/↓` | Resize floating window by pixels |
|
||||||
| `Super + Left-drag` | Move floating window with mouse |
|
| `Super + Left-drag` | Move floating window with mouse |
|
||||||
| `Super + Right-drag` | Resize floating window with mouse |
|
| `Super + Right-drag` | Resize floating window with mouse |
|
||||||
| `Middle-click` | Maximize window |
|
| `Middle-click` | Maximize window |
|
||||||
|
|
||||||
> **Tip**: Press `Super + R` after editing your config to reload without restarting!
|
> **Tip**: Press `Super + R` after editing your config to reload without restarting!
|
||||||
|
|
||||||
## My Dotfiles
|
## My Dotfiles
|
||||||
|
|
||||||
### Daily
|
### Daily
|
||||||
|
|
||||||
- Dependencies
|
- Dependencies
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
|
|
@ -577,26 +634,30 @@ yay -S rofi foot xdg-desktop-portal-wlr swaybg waybar wl-clip-persist cliphist w
|
||||||
```
|
```
|
||||||
|
|
||||||
### Dms
|
### Dms
|
||||||
|
|
||||||
- Dependencies
|
- Dependencies
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
yay -S foot xdg-desktop-portal-wlr swaybg wl-clip-persist cliphist wl-clipboard sway-audio-idle-inhibit-git brightnessctl grim slurp satty matugen-bin dms-shell-git
|
yay -S foot xdg-desktop-portal-wlr swaybg wl-clip-persist cliphist wl-clipboard sway-audio-idle-inhibit-git brightnessctl grim slurp satty matugen-bin dms-shell-git
|
||||||
|
|
||||||
```
|
```
|
||||||
|
|
||||||
- use my dms config
|
- use my dms config
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
git clone -b dms https://github.com/DreamMaoMao/mango-config.git ~/.config/mango
|
git clone -b dms https://github.com/DreamMaoMao/mango-config.git ~/.config/mango
|
||||||
```
|
```
|
||||||
|
|
||||||
- use my daily config
|
- use my daily config
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
git clone https://github.com/DreamMaoMao/mango-config.git ~/.config/mango
|
git clone https://github.com/DreamMaoMao/mango-config.git ~/.config/mango
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
||||||
## Documentation
|
## Documentation
|
||||||
|
|
||||||
MangoWC comes with comprehensive documentation to help you get started and master the compositor:
|
MangoWC comes with comprehensive documentation to help you get started and
|
||||||
|
master the compositor:
|
||||||
|
|
||||||
### 📚 Documentation Files
|
### 📚 Documentation Files
|
||||||
|
|
||||||
|
|
@ -620,7 +681,8 @@ MangoWC comes with comprehensive documentation to help you get started and maste
|
||||||
|
|
||||||
### 🌐 Online Resources
|
### 🌐 Online Resources
|
||||||
|
|
||||||
- **[Wiki](https://github.com/DreamMaoMao/mango/wiki/)** - Comprehensive online documentation
|
- **[Wiki](https://github.com/DreamMaoMao/mango/wiki/)** - Comprehensive
|
||||||
|
online documentation
|
||||||
- **[Website](https://mangowc.vercel.app/docs)** - Web-based documentation
|
- **[Website](https://mangowc.vercel.app/docs)** - Web-based documentation
|
||||||
- **[Discord](https://discord.gg/CPjbDxesh5)** - Community support and discussions
|
- **[Discord](https://discord.gg/CPjbDxesh5)** - Community support and discussions
|
||||||
|
|
||||||
|
|
@ -636,11 +698,14 @@ MangoWC comes with comprehensive documentation to help you get started and maste
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
# NixOS + Home-manager
|
## NixOS + Home-manager
|
||||||
|
|
||||||
The repo contains a flake that provides a NixOS module and a home-manager module for mango.
|
The repo contains a flake that provides a NixOS module and a home-manager
|
||||||
Use the NixOS module to install mango with other necessary components of a working Wayland environment.
|
module for mango.
|
||||||
Use the home-manager module to declare configuration and autostart for mango.
|
Use the NixOS module to install mango with other necessary components of a
|
||||||
|
working Wayland environment.
|
||||||
|
Use the home-manager module to declare configuration and autostart for
|
||||||
|
mango.
|
||||||
|
|
||||||
Here's an example of using the modules in a flake:
|
Here's an example of using the modules in a flake:
|
||||||
|
|
||||||
|
|
@ -712,39 +777,42 @@ Here's an example of using the modules in a flake:
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
# Packaging mango
|
## Packaging mango
|
||||||
|
|
||||||
To package mango for other distributions, you can check the reference setup for:
|
To package mango for other distributions, you can check the reference setup
|
||||||
|
for:
|
||||||
|
|
||||||
- [nix](https://github.com/DreamMaoMao/mangowc/blob/main/nix/default.nix)
|
- [nix](https://github.com/DreamMaoMao/mangowc/blob/main/nix/default.nix)
|
||||||
- [arch](https://aur.archlinux.org/cgit/aur.git/tree/PKGBUILD?h=mangowc-git).
|
- [arch](https://aur.archlinux.org/cgit/aur.git/tree/PKGBUILD?h=mangowc-git).
|
||||||
- [gentoo](https://data.gpo.zugaina.org/guru/gui-wm/mangowc)
|
- [gentoo](https://data.gpo.zugaina.org/guru/gui-wm/mangowc)
|
||||||
|
|
||||||
You might need to package `scenefx` for your distribution, check availability [here](https://github.com/wlrfx/scenefx.git).
|
You might need to package `scenefx` for your distribution, check availability
|
||||||
|
at the [scenefx repository](https://github.com/wlrfx/scenefx.git).
|
||||||
|
|
||||||
If you encounter build errors when packaging `mango`, feel free to create an issue and ask a question, but
|
If you encounter build errors when packaging `mango`, feel free to create an
|
||||||
Read The Friendly Manual on packaging software in your distribution first.
|
issue and ask a question, but Read The Friendly Manual on packaging software
|
||||||
|
in your distribution first.
|
||||||
|
|
||||||
# Thanks to These Reference Repositories
|
## Thanks to These Reference Repositories
|
||||||
|
|
||||||
- https://gitlab.freedesktop.org/wlroots/wlroots - Implementation of Wayland protocol
|
- <https://gitlab.freedesktop.org/wlroots/wlroots> - Implementation of Wayland protocol
|
||||||
|
|
||||||
- https://github.com/dqrk0jeste/owl - Basal window animation
|
- <https://github.com/dqrk0jeste/owl> - Basal window animation
|
||||||
|
|
||||||
- https://codeberg.org/dwl/dwl - Basal dwl feature
|
- <https://codeberg.org/dwl/dwl> - Basal dwl feature
|
||||||
|
|
||||||
- https://github.com/swaywm/sway - Sample of Wayland protocol
|
- <https://github.com/swaywm/sway> - Sample of Wayland protocol
|
||||||
|
|
||||||
- https://github.com/wlrfx/scenefx - Make it simple to add window effect.
|
- <https://github.com/wlrfx/scenefx> - Make it simple to add window effect.
|
||||||
|
|
||||||
|
## Sponsor
|
||||||
|
|
||||||
# Sponsor
|
|
||||||
At present, I can only accept sponsorship through an encrypted connection.
|
At present, I can only accept sponsorship through an encrypted connection.
|
||||||
If you find this project helpful to you, you can offer sponsorship in the following ways.
|
If you find this project helpful to you, you can offer sponsorship in the
|
||||||
|
following ways.
|
||||||
|
|
||||||
<img width="650" height="870" alt="image" src="https://github.com/user-attachments/assets/8c860317-90d2-4071-971d-f1a92b674469" />
|
<img width="650" height="870" alt="image" src="https://github.com/user-attachments/assets/8c860317-90d2-4071-971d-f1a92b674469" />
|
||||||
|
|
||||||
|
|
||||||
Thanks to the following friends for their sponsorship of this project
|
Thanks to the following friends for their sponsorship of this project
|
||||||
|
|
||||||
[@tonybanters](https://github.com/tonybanters)
|
[@tonybanters](https://github.com/tonybanters)
|
||||||
|
|
|
||||||
176
USAGE.md
176
USAGE.md
|
|
@ -30,7 +30,7 @@ A practical guide to using MangoWC in your daily workflow.
|
||||||
|
|
||||||
These are the absolute minimum you need to be productive:
|
These are the absolute minimum you need to be productive:
|
||||||
|
|
||||||
```
|
```text
|
||||||
Alt + Return → Terminal
|
Alt + Return → Terminal
|
||||||
Alt + Space → App launcher
|
Alt + Space → App launcher
|
||||||
Alt + Q → Close window
|
Alt + Q → Close window
|
||||||
|
|
@ -47,9 +47,11 @@ Super + M → Exit MangoWC
|
||||||
|
|
||||||
### What Are Tags?
|
### What Are Tags?
|
||||||
|
|
||||||
Tags are like workspaces, but more flexible. Think of them as labels you can apply to windows.
|
Tags are like workspaces, but more flexible. Think of them as labels you can
|
||||||
|
apply to windows.
|
||||||
|
|
||||||
**Key differences from workspaces:**
|
**Key differences from workspaces:**
|
||||||
|
|
||||||
- A window can have multiple tags
|
- A window can have multiple tags
|
||||||
- You can view multiple tags at once
|
- You can view multiple tags at once
|
||||||
- Each tag can have its own layout
|
- Each tag can have its own layout
|
||||||
|
|
@ -57,20 +59,23 @@ Tags are like workspaces, but more flexible. Think of them as labels you can app
|
||||||
### Basic Tag Usage
|
### Basic Tag Usage
|
||||||
|
|
||||||
**Switch to a tag:**
|
**Switch to a tag:**
|
||||||
```
|
|
||||||
|
```text
|
||||||
Ctrl + 1 → View tag 1
|
Ctrl + 1 → View tag 1
|
||||||
Ctrl + 2 → View tag 2
|
Ctrl + 2 → View tag 2
|
||||||
... and so on
|
... and so on
|
||||||
```
|
```
|
||||||
|
|
||||||
**Move window to a tag:**
|
**Move window to a tag:**
|
||||||
```
|
|
||||||
|
```text
|
||||||
Alt + 1 → Move current window to tag 1 (and switch to it)
|
Alt + 1 → Move current window to tag 1 (and switch to it)
|
||||||
Alt + 2 → Move current window to tag 2 (and switch to it)
|
Alt + 2 → Move current window to tag 2 (and switch to it)
|
||||||
```
|
```
|
||||||
|
|
||||||
**Navigate through tags:**
|
**Navigate through tags:**
|
||||||
```
|
|
||||||
|
```text
|
||||||
Super + Left/Right → Previous/next tag
|
Super + Left/Right → Previous/next tag
|
||||||
Ctrl + Left/Right → Previous/next tag that has windows
|
Ctrl + Left/Right → Previous/next tag that has windows
|
||||||
```
|
```
|
||||||
|
|
@ -78,11 +83,13 @@ Ctrl + Left/Right → Previous/next tag that has windows
|
||||||
### Advanced Tag Techniques
|
### Advanced Tag Techniques
|
||||||
|
|
||||||
**View multiple tags simultaneously:**
|
**View multiple tags simultaneously:**
|
||||||
|
|
||||||
1. Switch to tag 1: `Ctrl + 1`
|
1. Switch to tag 1: `Ctrl + 1`
|
||||||
2. Toggle tag 2 visibility: `Super + 2` (if configured)
|
2. Toggle tag 2 visibility: `Super + 2` (if configured)
|
||||||
3. Now you see windows from both tags
|
3. Now you see windows from both tags
|
||||||
|
|
||||||
**Silent tag movement** (move window without following):
|
**Silent tag movement** (move window without following):
|
||||||
|
|
||||||
```conf
|
```conf
|
||||||
# In config.conf
|
# In config.conf
|
||||||
bind=Alt+Shift,1,tagsilent,1
|
bind=Alt+Shift,1,tagsilent,1
|
||||||
|
|
@ -91,7 +98,8 @@ bind=Alt+Shift,1,tagsilent,1
|
||||||
### Organizing Your Workflow with Tags
|
### Organizing Your Workflow with Tags
|
||||||
|
|
||||||
**Example organization:**
|
**Example organization:**
|
||||||
```
|
|
||||||
|
```text
|
||||||
Tag 1: Browsers (monocle layout)
|
Tag 1: Browsers (monocle layout)
|
||||||
Tag 2: Code editors (tile or center_tile layout)
|
Tag 2: Code editors (tile or center_tile layout)
|
||||||
Tag 3: Terminals (scroller layout)
|
Tag 3: Terminals (scroller layout)
|
||||||
|
|
@ -101,6 +109,7 @@ Tag 6-9: Project-specific
|
||||||
```
|
```
|
||||||
|
|
||||||
**Setting layouts per tag in config.conf:**
|
**Setting layouts per tag in config.conf:**
|
||||||
|
|
||||||
```conf
|
```conf
|
||||||
tagrule=id:1,layout_name:monocle
|
tagrule=id:1,layout_name:monocle
|
||||||
tagrule=id:2,layout_name:center_tile
|
tagrule=id:2,layout_name:center_tile
|
||||||
|
|
@ -118,95 +127,113 @@ tagrule=id:5,layout_name:monocle
|
||||||
MangoWC includes 9 built-in layouts:
|
MangoWC includes 9 built-in layouts:
|
||||||
|
|
||||||
#### 1. Tile (Master-Stack)
|
#### 1. Tile (Master-Stack)
|
||||||
```
|
|
||||||
|
```text
|
||||||
┌────────┬────┐
|
┌────────┬────┐
|
||||||
│ │ 1 │
|
│ │ 1 │
|
||||||
│ Master ├────┤
|
│ Master ├────┤
|
||||||
│ │ 2 │
|
│ │ 2 │
|
||||||
└────────┴────┘
|
└────────┴────┘
|
||||||
```
|
```
|
||||||
|
|
||||||
**Best for:** General multitasking, coding with docs
|
**Best for:** General multitasking, coding with docs
|
||||||
**Switch to:** Cycle with `Super + N` (or add `bind=Super,t,setlayout,tile` to config)
|
**Switch to:** Cycle with `Super + N` (or add `bind=Super,t,setlayout,tile` to config)
|
||||||
|
|
||||||
#### 2. Scroller (Horizontal)
|
#### 2. Scroller (Horizontal)
|
||||||
```
|
|
||||||
|
```text
|
||||||
┌───┬────┬───┬───┐
|
┌───┬────┬───┬───┐
|
||||||
│ 1 │ 2 │ 3 │ 4 │...
|
│ 1 │ 2 │ 3 │ 4 │...
|
||||||
└───┴────┴───┴───┘
|
└───┴────┴───┴───┘
|
||||||
```
|
```
|
||||||
|
|
||||||
**Best for:** Terminals, wide content, many windows
|
**Best for:** Terminals, wide content, many windows
|
||||||
**Switch to:** Cycle with `Super + N` (or add `bind=Super,s,setlayout,scroller` to config)
|
**Switch to:** Cycle with `Super + N` (or add
|
||||||
|
`bind=Super,s,setlayout,scroller` to config)
|
||||||
|
|
||||||
**Scroller-specific controls:**
|
**Scroller-specific controls:**
|
||||||
|
|
||||||
- `Alt + E` - Set current window to full width
|
- `Alt + E` - Set current window to full width
|
||||||
- `Alt + X` - Cycle through width presets (0.5, 0.8, 1.0)
|
- `Alt + X` - Cycle through width presets (0.5, 0.8, 1.0)
|
||||||
|
|
||||||
#### 3. Monocle (Fullscreen Stack)
|
#### 3. Monocle (Fullscreen Stack)
|
||||||
```
|
|
||||||
|
```text
|
||||||
┌──────────────┐
|
┌──────────────┐
|
||||||
│ │
|
│ │
|
||||||
│ Window 1 │
|
│ Window 1 │
|
||||||
│ (fullscrn) │
|
│ (fullscrn) │
|
||||||
└──────────────┘
|
└──────────────┘
|
||||||
```
|
```
|
||||||
|
|
||||||
**Best for:** Focus work, browsing, media
|
**Best for:** Focus work, browsing, media
|
||||||
**Switch to:** Cycle with `Super + N`
|
**Switch to:** Cycle with `Super + N`
|
||||||
**Navigate:** Use `Super + Tab` to cycle through windows
|
**Navigate:** Use `Super + Tab` to cycle through windows
|
||||||
|
|
||||||
#### 4. Grid
|
#### 4. Grid
|
||||||
```
|
|
||||||
|
```text
|
||||||
┌─────┬─────┐
|
┌─────┬─────┐
|
||||||
│ 1 │ 2 │
|
│ 1 │ 2 │
|
||||||
├─────┼─────┤
|
├─────┼─────┤
|
||||||
│ 3 │ 4 │
|
│ 3 │ 4 │
|
||||||
└─────┴─────┘
|
└─────┴─────┘
|
||||||
```
|
```
|
||||||
|
|
||||||
**Best for:** Viewing many windows simultaneously
|
**Best for:** Viewing many windows simultaneously
|
||||||
**Switch to:** Cycle with `Super + N`
|
**Switch to:** Cycle with `Super + N`
|
||||||
|
|
||||||
#### 5. Deck (Card Stack)
|
#### 5. Deck (Card Stack)
|
||||||
```
|
|
||||||
|
```text
|
||||||
┌──────────────┐
|
┌──────────────┐
|
||||||
│ Window 1 │ ← Visible
|
│ Window 1 │ ← Visible
|
||||||
│ (2, 3 hidden)│
|
│ (2, 3 hidden)│
|
||||||
└──────────────┘
|
└──────────────┘
|
||||||
```
|
```
|
||||||
|
|
||||||
**Best for:** Cycling through options
|
**Best for:** Cycling through options
|
||||||
**Switch to:** Cycle with `Super + N`
|
**Switch to:** Cycle with `Super + N`
|
||||||
|
|
||||||
#### 6. Center Tile
|
#### 6. Center Tile
|
||||||
```
|
|
||||||
|
```text
|
||||||
┌──┬──────┬──┐
|
┌──┬──────┬──┐
|
||||||
│1 │ │2 │
|
│1 │ │2 │
|
||||||
│ │Master│ │
|
│ │Master│ │
|
||||||
│3 │ │4 │
|
│3 │ │4 │
|
||||||
└──┴──────┴──┘
|
└──┴──────┴──┘
|
||||||
```
|
```
|
||||||
|
|
||||||
**Best for:** Symmetrical workflow, coding
|
**Best for:** Symmetrical workflow, coding
|
||||||
**Switch to:** Cycle with `Super + N`
|
**Switch to:** Cycle with `Super + N`
|
||||||
|
|
||||||
#### 7. Vertical Tile
|
#### 7. Vertical Tile
|
||||||
```
|
|
||||||
|
```text
|
||||||
┌──────────────┐
|
┌──────────────┐
|
||||||
│ Master │
|
│ Master │
|
||||||
├──┬───┬───┬───┤
|
├──┬───┬───┬───┤
|
||||||
│1 │ 2 │ 3 │ 4 │
|
│1 │ 2 │ 3 │ 4 │
|
||||||
└──┴───┴───┴───┘
|
└──┴───┴───┴───┘
|
||||||
```
|
```
|
||||||
|
|
||||||
**Best for:** Ultra-wide monitors
|
**Best for:** Ultra-wide monitors
|
||||||
**Switch to:** Cycle with `Super + N`
|
**Switch to:** Cycle with `Super + N`
|
||||||
|
|
||||||
### Layout Controls
|
### Layout Controls
|
||||||
|
|
||||||
**Cycle through all layouts:**
|
**Cycle through all layouts:**
|
||||||
```
|
|
||||||
|
```text
|
||||||
Super + N → Next layout
|
Super + N → Next layout
|
||||||
```
|
```
|
||||||
|
|
||||||
**Adjust layout parameters:**
|
**Adjust layout parameters:**
|
||||||
|
|
||||||
For **tile/center_tile** layouts:
|
For **tile/center_tile** layouts:
|
||||||
```
|
|
||||||
|
```text
|
||||||
Super + H → Decrease master size (add to config)
|
Super + H → Decrease master size (add to config)
|
||||||
Super + L → Increase master size (add to config)
|
Super + L → Increase master size (add to config)
|
||||||
Super + Equal → More windows in master (add to config)
|
Super + Equal → More windows in master (add to config)
|
||||||
|
|
@ -214,6 +241,7 @@ Super + Minus → Fewer windows in master (add to config)
|
||||||
```
|
```
|
||||||
|
|
||||||
Add to config.conf:
|
Add to config.conf:
|
||||||
|
|
||||||
```conf
|
```conf
|
||||||
bind=Super,h,setmfact,-0.05
|
bind=Super,h,setmfact,-0.05
|
||||||
bind=Super,l,setmfact,+0.05
|
bind=Super,l,setmfact,+0.05
|
||||||
|
|
@ -222,7 +250,8 @@ bind=Super,minus,incnmaster,-1
|
||||||
```
|
```
|
||||||
|
|
||||||
For **scroller** layout:
|
For **scroller** layout:
|
||||||
```
|
|
||||||
|
```text
|
||||||
Alt + E → Set window to full width
|
Alt + E → Set window to full width
|
||||||
Alt + X → Cycle width presets
|
Alt + X → Cycle width presets
|
||||||
```
|
```
|
||||||
|
|
@ -234,40 +263,47 @@ Alt + X → Cycle width presets
|
||||||
### Focus Management
|
### Focus Management
|
||||||
|
|
||||||
**Directional focus:**
|
**Directional focus:**
|
||||||
```
|
|
||||||
|
```text
|
||||||
Alt + ←→↑↓ → Focus window in direction
|
Alt + ←→↑↓ → Focus window in direction
|
||||||
```
|
```
|
||||||
|
|
||||||
**Stack focus:**
|
**Stack focus:**
|
||||||
```
|
|
||||||
|
```text
|
||||||
Super + Tab → Next window in stack
|
Super + Tab → Next window in stack
|
||||||
Super + Shift + Tab → Previous window in stack
|
Super + Shift + Tab → Previous window in stack
|
||||||
```
|
```
|
||||||
|
|
||||||
**Focus last window:**
|
**Focus last window:**
|
||||||
```
|
|
||||||
|
```text
|
||||||
Super + ` → Focus previously focused window (add to config)
|
Super + ` → Focus previously focused window (add to config)
|
||||||
```
|
```
|
||||||
|
|
||||||
### Moving Windows
|
### Moving Windows
|
||||||
|
|
||||||
**Swap with neighbors:**
|
**Swap with neighbors:**
|
||||||
```
|
|
||||||
|
```text
|
||||||
Super + Shift + ←→↑↓ → Swap positions
|
Super + Shift + ←→↑↓ → Swap positions
|
||||||
```
|
```
|
||||||
|
|
||||||
**Move to master:**
|
**Move to master:**
|
||||||
```
|
|
||||||
|
```text
|
||||||
Super + Return → Move focused window to master position (add to config)
|
Super + Return → Move focused window to master position (add to config)
|
||||||
```
|
```
|
||||||
|
|
||||||
Add to config:
|
Add to config:
|
||||||
|
|
||||||
```conf
|
```conf
|
||||||
bind=Super,Return,zoom,
|
bind=Super,Return,zoom,
|
||||||
```
|
```
|
||||||
|
|
||||||
**Move between tags:**
|
**Move between tags:**
|
||||||
```
|
|
||||||
|
```text
|
||||||
Alt + 1-9 → Move to tag (and follow)
|
Alt + 1-9 → Move to tag (and follow)
|
||||||
Ctrl + Super + ←→ → Move to prev/next tag
|
Ctrl + Super + ←→ → Move to prev/next tag
|
||||||
```
|
```
|
||||||
|
|
@ -275,28 +311,33 @@ Ctrl + Super + ←→ → Move to prev/next tag
|
||||||
### Floating Windows
|
### Floating Windows
|
||||||
|
|
||||||
**Toggle floating:**
|
**Toggle floating:**
|
||||||
```
|
|
||||||
|
```text
|
||||||
Alt + \ → Toggle floating/tiling
|
Alt + \ → Toggle floating/tiling
|
||||||
```
|
```
|
||||||
|
|
||||||
**Move floating windows:**
|
**Move floating windows:**
|
||||||
```
|
|
||||||
|
```text
|
||||||
Ctrl + Shift + ←→↑↓ → Move by pixels
|
Ctrl + Shift + ←→↑↓ → Move by pixels
|
||||||
Super + Left-drag → Move with mouse
|
Super + Left-drag → Move with mouse
|
||||||
```
|
```
|
||||||
|
|
||||||
**Resize floating windows:**
|
**Resize floating windows:**
|
||||||
```
|
|
||||||
|
```text
|
||||||
Ctrl + Alt + ←→↑↓ → Resize by pixels
|
Ctrl + Alt + ←→↑↓ → Resize by pixels
|
||||||
Super + Right-drag → Resize with mouse
|
Super + Right-drag → Resize with mouse
|
||||||
```
|
```
|
||||||
|
|
||||||
**Center floating window:**
|
**Center floating window:**
|
||||||
```
|
|
||||||
|
```text
|
||||||
Super + C → Center window (add to config)
|
Super + C → Center window (add to config)
|
||||||
```
|
```
|
||||||
|
|
||||||
Add to config:
|
Add to config:
|
||||||
|
|
||||||
```conf
|
```conf
|
||||||
bind=Super,c,centerwin,
|
bind=Super,c,centerwin,
|
||||||
```
|
```
|
||||||
|
|
@ -304,7 +345,8 @@ bind=Super,c,centerwin,
|
||||||
### Window States
|
### Window States
|
||||||
|
|
||||||
**Common states:**
|
**Common states:**
|
||||||
```
|
|
||||||
|
```text
|
||||||
Alt + \ → Floating
|
Alt + \ → Floating
|
||||||
Alt + F → Fullscreen
|
Alt + F → Fullscreen
|
||||||
Alt + Shift + F → Fake fullscreen
|
Alt + Shift + F → Fake fullscreen
|
||||||
|
|
@ -314,7 +356,8 @@ Super + O → Overlay (always on top)
|
||||||
```
|
```
|
||||||
|
|
||||||
**Minimize/Restore:**
|
**Minimize/Restore:**
|
||||||
```
|
|
||||||
|
```text
|
||||||
Super + I → Minimize window
|
Super + I → Minimize window
|
||||||
Super + Shift + I → Restore minimized
|
Super + Shift + I → Restore minimized
|
||||||
```
|
```
|
||||||
|
|
@ -326,6 +369,7 @@ Super + Shift + I → Restore minimized
|
||||||
### What is the Scratchpad?
|
### What is the Scratchpad?
|
||||||
|
|
||||||
The scratchpad is a hidden workspace for temporary windows. It's perfect for:
|
The scratchpad is a hidden workspace for temporary windows. It's perfect for:
|
||||||
|
|
||||||
- Calculator
|
- Calculator
|
||||||
- Music player
|
- Music player
|
||||||
- Notes/Todo list
|
- Notes/Todo list
|
||||||
|
|
@ -335,20 +379,23 @@ The scratchpad is a hidden workspace for temporary windows. It's perfect for:
|
||||||
### Basic Scratchpad Usage
|
### Basic Scratchpad Usage
|
||||||
|
|
||||||
1. **Open an application** (e.g., terminal with calculator)
|
1. **Open an application** (e.g., terminal with calculator)
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
Alt + Return
|
Alt + Return
|
||||||
# Then run: qalc (or any calculator)
|
# Then run: qalc (or any calculator)
|
||||||
```
|
```
|
||||||
|
|
||||||
2. **Move to scratchpad**
|
2. **Move to scratchpad**
|
||||||
```
|
|
||||||
|
```text
|
||||||
Alt + Z
|
Alt + Z
|
||||||
```
|
```
|
||||||
|
|
||||||
3. **Window disappears** - it's now in the scratchpad
|
3. **Window disappears** - it's now in the scratchpad
|
||||||
|
|
||||||
4. **Toggle scratchpad** to show/hide
|
4. **Toggle scratchpad** to show/hide
|
||||||
```
|
|
||||||
|
```text
|
||||||
Alt + Z → Shows scratchpad over current work
|
Alt + Z → Shows scratchpad over current work
|
||||||
Alt + Z → Hides it again
|
Alt + Z → Hides it again
|
||||||
```
|
```
|
||||||
|
|
@ -358,6 +405,7 @@ The scratchpad is a hidden workspace for temporary windows. It's perfect for:
|
||||||
You can have multiple named scratchpads:
|
You can have multiple named scratchpads:
|
||||||
|
|
||||||
**Setup in config.conf:**
|
**Setup in config.conf:**
|
||||||
|
|
||||||
```conf
|
```conf
|
||||||
bind=Super,p,toggle_named_scratchpad,music
|
bind=Super,p,toggle_named_scratchpad,music
|
||||||
bind=Super,n,toggle_named_scratchpad,notes
|
bind=Super,n,toggle_named_scratchpad,notes
|
||||||
|
|
@ -365,6 +413,7 @@ bind=Super,c,toggle_named_scratchpad,calc
|
||||||
```
|
```
|
||||||
|
|
||||||
**Usage:**
|
**Usage:**
|
||||||
|
|
||||||
1. Open application (e.g., spotify)
|
1. Open application (e.g., spotify)
|
||||||
2. Press `Super + P` - assigns it to "music" scratchpad
|
2. Press `Super + P` - assigns it to "music" scratchpad
|
||||||
3. Press `Super + P` again - shows/hides music scratchpad
|
3. Press `Super + P` again - shows/hides music scratchpad
|
||||||
|
|
@ -387,6 +436,7 @@ mmsg -d toggle_scratchpad
|
||||||
```
|
```
|
||||||
|
|
||||||
Bind it:
|
Bind it:
|
||||||
|
|
||||||
```conf
|
```conf
|
||||||
bind=Super,equal,spawn_shell,~/.config/mango/scripts/scratchpad-calc.sh
|
bind=Super,equal,spawn_shell,~/.config/mango/scripts/scratchpad-calc.sh
|
||||||
```
|
```
|
||||||
|
|
@ -394,6 +444,7 @@ bind=Super,equal,spawn_shell,~/.config/mango/scripts/scratchpad-calc.sh
|
||||||
**Customize scratchpad appearance:**
|
**Customize scratchpad appearance:**
|
||||||
|
|
||||||
In config.conf:
|
In config.conf:
|
||||||
|
|
||||||
```conf
|
```conf
|
||||||
scratchpad_width_ratio=0.8 # 80% of screen width
|
scratchpad_width_ratio=0.8 # 80% of screen width
|
||||||
scratchpad_height_ratio=0.9 # 90% of screen height
|
scratchpad_height_ratio=0.9 # 90% of screen height
|
||||||
|
|
@ -406,16 +457,19 @@ scratchpadcolor=0x516c93ff # Border color for scratchpad windows
|
||||||
|
|
||||||
### What is Overview?
|
### What is Overview?
|
||||||
|
|
||||||
Overview mode shows all windows at once, similar to GNOME's Activities or macOS Mission Control.
|
Overview mode shows all windows at once, similar to GNOME's Activities or
|
||||||
|
macOS Mission Control.
|
||||||
|
|
||||||
### Using Overview
|
### Using Overview
|
||||||
|
|
||||||
**Toggle overview:**
|
**Toggle overview:**
|
||||||
```
|
|
||||||
|
```text
|
||||||
Alt + Tab → Toggle overview mode
|
Alt + Tab → Toggle overview mode
|
||||||
```
|
```
|
||||||
|
|
||||||
**In overview mode:**
|
**In overview mode:**
|
||||||
|
|
||||||
- Click any window to focus it
|
- Click any window to focus it
|
||||||
- Drag windows to rearrange
|
- Drag windows to rearrange
|
||||||
- Windows are organized visually
|
- Windows are organized visually
|
||||||
|
|
@ -425,6 +479,7 @@ Alt + Tab → Toggle overview mode
|
||||||
Move your mouse cursor to the top edge of the screen to automatically trigger overview.
|
Move your mouse cursor to the top edge of the screen to automatically trigger overview.
|
||||||
|
|
||||||
**Configure hotarea:**
|
**Configure hotarea:**
|
||||||
|
|
||||||
```conf
|
```conf
|
||||||
# In config.conf
|
# In config.conf
|
||||||
hotarea_size=10 # Pixels from edge to trigger
|
hotarea_size=10 # Pixels from edge to trigger
|
||||||
|
|
@ -447,28 +502,33 @@ overviewgappo=30 # Gap from screen edges
|
||||||
### Basic Multi-Monitor Commands
|
### Basic Multi-Monitor Commands
|
||||||
|
|
||||||
**Focus different monitor:**
|
**Focus different monitor:**
|
||||||
```
|
|
||||||
|
```text
|
||||||
Alt + Shift + ←→ → Focus adjacent monitor
|
Alt + Shift + ←→ → Focus adjacent monitor
|
||||||
```
|
```
|
||||||
|
|
||||||
**Move window to other monitor:**
|
**Move window to other monitor:**
|
||||||
```
|
|
||||||
|
```text
|
||||||
Super + Alt + ←→ → Move window to adjacent monitor
|
Super + Alt + ←→ → Move window to adjacent monitor
|
||||||
```
|
```
|
||||||
|
|
||||||
### Multi-Monitor Strategies
|
### Multi-Monitor Strategies
|
||||||
|
|
||||||
**Strategy 1: Dedicated monitors per task**
|
#### Strategy 1: Dedicated monitors per task
|
||||||
|
|
||||||
- Monitor 1: Development (Tag 1-3)
|
- Monitor 1: Development (Tag 1-3)
|
||||||
- Monitor 2: Communication (Tag 4-6)
|
- Monitor 2: Communication (Tag 4-6)
|
||||||
- Monitor 3: Media/Reference (Tag 7-9)
|
- Monitor 3: Media/Reference (Tag 7-9)
|
||||||
|
|
||||||
**Strategy 2: Mirror similar tags**
|
#### Strategy 2: Mirror similar tags
|
||||||
|
|
||||||
- Both monitors show same tags
|
- Both monitors show same tags
|
||||||
- Each monitor has different layouts
|
- Each monitor has different layouts
|
||||||
- Use global windows to span both
|
- Use global windows to span both
|
||||||
|
|
||||||
**Strategy 3: Independent workspaces**
|
#### Strategy 3: Independent workspaces
|
||||||
|
|
||||||
- Each monitor is independent
|
- Each monitor is independent
|
||||||
- Use monitor focus shortcuts frequently
|
- Use monitor focus shortcuts frequently
|
||||||
- Keep related work on same monitor
|
- Keep related work on same monitor
|
||||||
|
|
@ -478,16 +538,19 @@ Super + Alt + ←→ → Move window to adjacent monitor
|
||||||
MangoWC auto-detects monitors. For custom setup:
|
MangoWC auto-detects monitors. For custom setup:
|
||||||
|
|
||||||
**Disable a monitor:**
|
**Disable a monitor:**
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
mmsg -d disable_monitor HDMI-A-1
|
mmsg -d disable_monitor HDMI-A-1
|
||||||
```
|
```
|
||||||
|
|
||||||
**Enable a monitor:**
|
**Enable a monitor:**
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
mmsg -d enable_monitor HDMI-A-1
|
mmsg -d enable_monitor HDMI-A-1
|
||||||
```
|
```
|
||||||
|
|
||||||
**Find monitor names:**
|
**Find monitor names:**
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
mmsg -o
|
mmsg -o
|
||||||
```
|
```
|
||||||
|
|
@ -565,7 +628,8 @@ unfocused_opacity=0.95 # Unfocused window opacity
|
||||||
|
|
||||||
Create `~/.config/mango/scripts/` directory:
|
Create `~/.config/mango/scripts/` directory:
|
||||||
|
|
||||||
**Example: Screenshot script**
|
#### Example: Screenshot script
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
# ~/.config/mango/scripts/screenshot.sh
|
# ~/.config/mango/scripts/screenshot.sh
|
||||||
|
|
@ -574,11 +638,13 @@ grim -g "$(slurp)" - | satty --filename - --fullscreen
|
||||||
```
|
```
|
||||||
|
|
||||||
**Bind it:**
|
**Bind it:**
|
||||||
|
|
||||||
```conf
|
```conf
|
||||||
bind=Print,none,spawn_shell,~/.config/mango/scripts/screenshot.sh
|
bind=Print,none,spawn_shell,~/.config/mango/scripts/screenshot.sh
|
||||||
```
|
```
|
||||||
|
|
||||||
**Example: Volume control**
|
#### Example: Volume control
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
# ~/.config/mango/scripts/volume.sh
|
# ~/.config/mango/scripts/volume.sh
|
||||||
|
|
@ -591,6 +657,7 @@ esac
|
||||||
```
|
```
|
||||||
|
|
||||||
**Bind it:**
|
**Bind it:**
|
||||||
|
|
||||||
```conf
|
```conf
|
||||||
bind=NONE,XF86AudioRaiseVolume,spawn_shell,~/.config/mango/scripts/volume.sh up
|
bind=NONE,XF86AudioRaiseVolume,spawn_shell,~/.config/mango/scripts/volume.sh up
|
||||||
bind=NONE,XF86AudioLowerVolume,spawn_shell,~/.config/mango/scripts/volume.sh down
|
bind=NONE,XF86AudioLowerVolume,spawn_shell,~/.config/mango/scripts/volume.sh down
|
||||||
|
|
@ -604,7 +671,8 @@ bind=NONE,XF86AudioMute,spawn_shell,~/.config/mango/scripts/volume.sh mute
|
||||||
### Workflow 1: Web Development
|
### Workflow 1: Web Development
|
||||||
|
|
||||||
**Setup:**
|
**Setup:**
|
||||||
```
|
|
||||||
|
```text
|
||||||
Tag 1: Browser (monocle) → Testing
|
Tag 1: Browser (monocle) → Testing
|
||||||
Tag 2: Code editor (center_tile) → Development
|
Tag 2: Code editor (center_tile) → Development
|
||||||
Tag 3: Terminals (scroller) → Commands
|
Tag 3: Terminals (scroller) → Commands
|
||||||
|
|
@ -612,6 +680,7 @@ Scratchpad: Documentation, notes
|
||||||
```
|
```
|
||||||
|
|
||||||
**Workflow:**
|
**Workflow:**
|
||||||
|
|
||||||
1. Start on Tag 2, write code
|
1. Start on Tag 2, write code
|
||||||
2. `Ctrl + 1` → View in browser
|
2. `Ctrl + 1` → View in browser
|
||||||
3. `Ctrl + 3` → Run build/dev server
|
3. `Ctrl + 3` → Run build/dev server
|
||||||
|
|
@ -621,7 +690,8 @@ Scratchpad: Documentation, notes
|
||||||
### Workflow 2: Writing and Research
|
### Workflow 2: Writing and Research
|
||||||
|
|
||||||
**Setup:**
|
**Setup:**
|
||||||
```
|
|
||||||
|
```text
|
||||||
Tag 1: Writing app (monocle)
|
Tag 1: Writing app (monocle)
|
||||||
Tag 2: Research browser (tile)
|
Tag 2: Research browser (tile)
|
||||||
Tag 3: Reference PDFs (grid)
|
Tag 3: Reference PDFs (grid)
|
||||||
|
|
@ -629,6 +699,7 @@ Scratchpad: Notes, citations
|
||||||
```
|
```
|
||||||
|
|
||||||
**Workflow:**
|
**Workflow:**
|
||||||
|
|
||||||
1. Research on Tags 2-3
|
1. Research on Tags 2-3
|
||||||
2. `Ctrl + 1` → Switch to writing
|
2. `Ctrl + 1` → Switch to writing
|
||||||
3. `Super + G` on notes window → Make it global
|
3. `Super + G` on notes window → Make it global
|
||||||
|
|
@ -637,7 +708,8 @@ Scratchpad: Notes, citations
|
||||||
### Workflow 3: Communication and Work
|
### Workflow 3: Communication and Work
|
||||||
|
|
||||||
**Setup:**
|
**Setup:**
|
||||||
```
|
|
||||||
|
```text
|
||||||
Tag 1: Email (monocle)
|
Tag 1: Email (monocle)
|
||||||
Tag 2: Slack/Discord (tile)
|
Tag 2: Slack/Discord (tile)
|
||||||
Tag 3: Work documents (tile)
|
Tag 3: Work documents (tile)
|
||||||
|
|
@ -646,6 +718,7 @@ Global: Music player
|
||||||
```
|
```
|
||||||
|
|
||||||
**Workflow:**
|
**Workflow:**
|
||||||
|
|
||||||
1. Open music player → `Super + G` (make global)
|
1. Open music player → `Super + G` (make global)
|
||||||
2. Start each app on its tag
|
2. Start each app on its tag
|
||||||
3. Use `Ctrl + Left/Right` to jump between active tags
|
3. Use `Ctrl + Left/Right` to jump between active tags
|
||||||
|
|
@ -654,7 +727,8 @@ Global: Music player
|
||||||
### Workflow 4: System Administration
|
### Workflow 4: System Administration
|
||||||
|
|
||||||
**Setup:**
|
**Setup:**
|
||||||
```
|
|
||||||
|
```text
|
||||||
Tag 1: Terminals (scroller) → Multiple SSH sessions
|
Tag 1: Terminals (scroller) → Multiple SSH sessions
|
||||||
Tag 2: Monitoring (grid) → htop, iotop, etc.
|
Tag 2: Monitoring (grid) → htop, iotop, etc.
|
||||||
Tag 3: Browser (monocle) → Documentation
|
Tag 3: Browser (monocle) → Documentation
|
||||||
|
|
@ -662,6 +736,7 @@ Scratchpad: Calculator, quick commands
|
||||||
```
|
```
|
||||||
|
|
||||||
**Workflow:**
|
**Workflow:**
|
||||||
|
|
||||||
1. Open terminals in scroller layout
|
1. Open terminals in scroller layout
|
||||||
2. `Alt + X` to adjust column widths
|
2. `Alt + X` to adjust column widths
|
||||||
3. `Ctrl + 2` for monitoring overview
|
3. `Ctrl + 2` for monitoring overview
|
||||||
|
|
@ -670,13 +745,15 @@ Scratchpad: Calculator, quick commands
|
||||||
### Workflow 5: Video/Audio Editing
|
### Workflow 5: Video/Audio Editing
|
||||||
|
|
||||||
**Setup:**
|
**Setup:**
|
||||||
```
|
|
||||||
|
```text
|
||||||
Tag 1: Editor (monocle) → Full-screen editing
|
Tag 1: Editor (monocle) → Full-screen editing
|
||||||
Tag 2: File browser (tile) → Asset management
|
Tag 2: File browser (tile) → Asset management
|
||||||
Tag 3: Preview (monocle) → Testing output
|
Tag 3: Preview (monocle) → Testing output
|
||||||
```
|
```
|
||||||
|
|
||||||
**Workflow:**
|
**Workflow:**
|
||||||
|
|
||||||
1. Edit on Tag 1 in monocle (maximum space)
|
1. Edit on Tag 1 in monocle (maximum space)
|
||||||
2. `Ctrl + 2` → Grab assets
|
2. `Ctrl + 2` → Grab assets
|
||||||
3. `Ctrl + 3` → Preview output
|
3. `Ctrl + 3` → Preview output
|
||||||
|
|
@ -687,7 +764,8 @@ Tag 3: Preview (monocle) → Testing output
|
||||||
## Quick Reference Card
|
## Quick Reference Card
|
||||||
|
|
||||||
### Essential Shortcuts
|
### Essential Shortcuts
|
||||||
```
|
|
||||||
|
```text
|
||||||
Alt + Return Terminal
|
Alt + Return Terminal
|
||||||
Alt + Space Launcher
|
Alt + Space Launcher
|
||||||
Alt + Q Close window
|
Alt + Q Close window
|
||||||
|
|
@ -710,7 +788,8 @@ Super + G Global window
|
||||||
```
|
```
|
||||||
|
|
||||||
### When Things Go Wrong
|
### When Things Go Wrong
|
||||||
```
|
|
||||||
|
```text
|
||||||
Super + R Reload config (fixes most issues)
|
Super + R Reload config (fixes most issues)
|
||||||
Super + M Exit MangoWC
|
Super + M Exit MangoWC
|
||||||
Ctrl + Alt + F2 Switch to TTY (if GUI breaks)
|
Ctrl + Alt + F2 Switch to TTY (if GUI breaks)
|
||||||
|
|
@ -729,6 +808,7 @@ Now that you understand the basics:
|
||||||
5. **Join the community** - [Discord](https://discord.gg/CPjbDxesh5)
|
5. **Join the community** - [Discord](https://discord.gg/CPjbDxesh5)
|
||||||
|
|
||||||
**Additional Resources:**
|
**Additional Resources:**
|
||||||
|
|
||||||
- [COMMANDS.md](COMMANDS.md) - Complete command reference
|
- [COMMANDS.md](COMMANDS.md) - Complete command reference
|
||||||
- [config.conf](config.conf) - Commented configuration file
|
- [config.conf](config.conf) - Commented configuration file
|
||||||
- [MangoWC Wiki](https://github.com/DreamMaoMao/mango/wiki/) - Comprehensive documentation
|
- [MangoWC Wiki](https://github.com/DreamMaoMao/mango/wiki/) - Comprehensive documentation
|
||||||
|
|
@ -736,4 +816,4 @@ Now that you understand the basics:
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
**Happy tiling! 🥭**
|
Happy tiling! 🥭
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue