diff options
| author | Don Williams <don.e.williams@gmail.com> | 2026-07-13 16:11:51 -0400 |
|---|---|---|
| committer | Pinapelz <yukais@pinapelz.com> | 2026-08-29 21:40:34 -0700 |
| commit | dcc2b56bd34846c5e8562bdb33ea63f3734d5ec0 (patch) | |
| tree | bb4dcab06f4a4f2f690fc87e9fc82d335cd21497 /config/quickshell/qs-hyprview-unified/README.md | |
| parent | 292b6daf5c56ff60a6263ff4945e74e5ca4372e7 (diff) | |
Fixed qs-hyprview to work with trixie+
Signed-off-by: Don Williams <don.e.williams@gmail.com>
On branch development
Your branch is up to date with 'origin/development'.
Changes to be committed:
renamed: qs-hyprview-trixie/LICENSE -> qs-hyprview-unified/LICENSE
renamed: qs-hyprview-trixie/README.md -> qs-hyprview-unified/README.md
renamed: qs-hyprview-trixie/common/Appearance.qml -> qs-hyprview-unified/common/Appearance.qml
renamed: qs-hyprview-trixie/layouts/BandsLayout.qml -> qs-hyprview-unified/layouts/BandsLayout.qml
renamed: qs-hyprview-trixie/layouts/ColumnarLayout.qml -> qs-hyprview-unified/layouts/ColumnarLayout.qml
renamed: qs-hyprview-trixie/layouts/HeroLayout.qml -> qs-hyprview-unified/layouts/HeroLayout.qml
renamed: qs-hyprview-trixie/layouts/JustifiedLayout.qml -> qs-hyprview-unified/layouts/JustifiedLayout.qml
renamed: qs-hyprview-trixie/layouts/LayoutsManager.qml -> qs-hyprview-unified/layouts/LayoutsManager.qml
renamed: qs-hyprview-trixie/layouts/MasonryLayout.qml -> qs-hyprview-unified/layouts/MasonryLayout.qml
renamed: qs-hyprview-trixie/layouts/SatelliteLayout.qml -> qs-hyprview-unified/layouts/SatelliteLayout.qml
renamed: qs-hyprview-trixie/layouts/SmartGridLayout.qml -> qs-hyprview-unified/layouts/SmartGridLayout.qml
renamed: qs-hyprview-trixie/layouts/SpiralLayout.qml -> qs-hyprview-unified/layouts/SpiralLayout.qml
renamed: qs-hyprview-trixie/layouts/StarggeredLayout.qml -> qs-hyprview-unified/layouts/StarggeredLayout.qml
renamed: qs-hyprview-trixie/layouts/VortexLayout.qml -> qs-hyprview-unified/layouts/VortexLayout.qml
renamed: qs-hyprview-trixie/layouts/qmldir -> qs-hyprview-unified/layouts/qmldir
renamed: qs-hyprview-trixie/modules/Hyprview.qml -> qs-hyprview-unified/modules/Hyprview.qml
renamed: qs-hyprview-trixie/modules/SearchBox.qml -> qs-hyprview-unified/modules/SearchBox.qml
renamed: qs-hyprview-trixie/modules/WindowThumbnail.qml -> qs-hyprview-unified/modules/WindowThumbnail.qml
renamed: qs-hyprview-trixie/modules/qmldir -> qs-hyprview-unified/modules/qmldir
renamed: qs-hyprview-trixie/qs-hyprview-template.qml -> qs-hyprview-unified/qs-hyprview-template.qml
renamed: qs-hyprview-trixie/screenshots/bands.jpeg -> qs-hyprview-unified/screenshots/bands.jpeg
renamed: qs-hyprview-trixie/screenshots/hero.jpeg -> qs-hyprview-unified/screenshots/hero.jpeg
renamed: qs-hyprview-trixie/screenshots/masonry.jpeg -> qs-hyprview-unified/screenshots/masonry.jpeg
renamed: qs-hyprview-trixie/screenshots/satellite.jpeg -> qs-hyprview-unified/screenshots/satellite.jpeg
renamed: qs-hyprview-trixie/screenshots/smartgrid.jpeg -> qs-hyprview-unified/screenshots/smartgrid.jpeg
renamed: qs-hyprview-trixie/screenshots/spiral.jpeg -> qs-hyprview-unified/screenshots/spiral.jpeg
renamed: qs-hyprview-trixie/screenshots/staggered.jpeg -> qs-hyprview-unified/screenshots/staggered.jpeg
renamed: qs-hyprview-trixie/screenshots/vortex.jpeg -> qs-hyprview-unified/screenshots/vortex.jpeg
renamed: qs-hyprview-trixie/shell.qml -> qs-hyprview-unified/shell.qml
Diffstat (limited to 'config/quickshell/qs-hyprview-unified/README.md')
| -rw-r--r-- | config/quickshell/qs-hyprview-unified/README.md | 226 |
1 files changed, 226 insertions, 0 deletions
diff --git a/config/quickshell/qs-hyprview-unified/README.md b/config/quickshell/qs-hyprview-unified/README.md new file mode 100644 index 00000000..a1f65aad --- /dev/null +++ b/config/quickshell/qs-hyprview-unified/README.md @@ -0,0 +1,226 @@ +# Quickshell Window Switcher + +### The ultimate Hyprland Overview + +A modern, fluid, and highly customizable **Window Switcher (Exposé)** for **Hyprland**, built entirely in QML using the [Quickshell](https://github.com/outfoxxed/quickshell) framework. + +It provides a native Wayland experience similar to macOS Mission Control or GNOME Activities, featuring a suite of advanced mathematical layouts designed to visualize your windows beautifully on any screen size. + +## 📸 Gallery + +See `qs-hyprview` in action with its different layout algorithms. + +| | | | +| :---: | :---: | :---: | +| <br>**Smart Grid** | <br>**Bands** | <br>**Masonry** | +| <br>**Hero** | <br>**Spiral** | <br>**Satellite** | +| <br>**Vortex** | <br>**Staggered** | **What's next?** | + +## ✨ Features + +* **⚡ Native Performance:** Built on Qt6/QML and Wayland Layershell for zero latency and smooth 60fps animations. +* **🧮 10 Layout Algorithms:** A collection of layouts ranging from productive grids to scenic orbital views. +* **🔍 Instant Search:** Filter windows by title, class, or app name immediately upon typing. +* **🎮 Full Navigation:** Supports both Keyboard (Arrows/Tab/Enter) and Mouse (Hover/Click). +* **🎨 Smart Safe Area:** All layouts calculate a 90% "Safe Area" to ensure hover animations never clip against screen edges. +* **⚙️ Live Thumbnails:** Live window contents via Hyprland screencopy. +* **💐 Matugen Integration:** allows you to change the layout color to match your desktop. + +## 🛠️ Dependencies + +* **Hyprland**: The Wayland compositor. +* **Quickshell**: The QML shell framework. +* **Qt6**: Core libraries (usually pulled in by Quickshell). + +## 🚀 Installation + +1. Clone this repository: + ```bash + git clone https://github.com/dom0/qs-hyprview.git + ``` + +2. Ensure `quickshell` is installed and in your PATH. + +## ⚙️ Configuration & Usage + +### Launching +To start the daemon (add this to your `hyprland.conf` with `exec-once`): + +```bash +quickshell -p /path/to/cloned/repo + +# Or clone into $XDG_CONFIG_HOME/quickshell (usually ~/.config/quickshell) and run with -c flag: +quickshell -c qs-hyprview +``` + +### Toggle (Open/Close) +The project exposes an IPC handler named `expose`. You can bind a key in Hyprland to toggle the view. + +**In `hyprland.conf`:** +```ini +# "smartgrid", "justified", "masonry", "bands", "hero", "spiral" +# "satellite", "staggered", "columnar", "vortex", "random" +$layout = 'masonry' + +# Toggle overview visibility +bind = $mainMod, TAB, exec, quickshell ipc -p /path/to/cloned/repo call expose toggle $layout + +# Open overview +bind = $mainMod, TAB, exec, quickshell ipc -p /path/to/cloned/repo call expose open $layout + +# Close overview +bind = $mainMod, TAB, exec, quickshell ipc -p /path/to/cloned/repo call expose close + + +# Or, using XDG_CONFIG_HOME: +#bind = $mainMod, TAB, exec, quickshell ipc -c qs-hyprview call expose toggle $layout +#bind = $mainMod, TAB, exec, quickshell ipc -c qs-hyprview call expose open $layout +#bind = $mainMod, TAB, exec, quickshell ipc -c qs-hyprview call expose close +``` +### Visual optimizations + +You can optimize your experience by adding an opaque/blurred background (dimming area) or pop-in animations using native Hyprland features. + +**In `hyprland.conf`:** +```ini +# dimming area +decoration { + dim_around = 0.8 +} + +layerrule = dimaround, quickshell:expose +``` + +```ini +# blur area +decoration { + blur { + enabled = true + size = 3 + passes = 1 + } +} + +layerrule = blur, quickshell:expose +``` + +```ini +# popin animation +animations { + enabled = yes + animation = layersIn, 1, 1.5, default, popin +} +``` + +### Customization +You can modify the core properties at the top of `shell.qml`: + +```qml +// Set to true for live window updates (monitor refresh rate, higher CPU usage), false for static snapshots (~8fps) +property bool liveCapture: false + +// Automatically move mouse cursor to the center of selected window +property bool moveCursorToActiveWindow: true +``` + +## 🎨 Matugen Dynamic Colorscheme From Wallpaper + +### Manual Configuration + +If you don't want to use Matugen, you can simply edit common/Appearance.qml and change the hexadecimal values to match your color of choice (mainly m3Primary and m3OnPrimary). + +### Dynamic Colors (Matugen) + +1. Copy the template (qs-hyprspace-template.qml) from this repo to matugen's templates folder + +2. Add the following to your ~/.config/matugen/config.toml: +``` +[templates.qs-hyprview] +input_path = "~/.config/matugen/templates/qs-hyprview-template.qml" +output_path = "~/.config/quickshell/qs-hyprview/common/Appearance.qml" +``` + +3. Generate your colorscheme: + +``` +matugen image /path/to/your/wallpaper +``` + +## 📐 Layout Algorithms + +This project includes a sophisticated `LayoutsManager` offering **10 distinct algorithms**: + +### 1. Smart Grid (`smartgrid`) +The default layout. It uses an **Iterative Best-Fit** algorithm. It simulates every possible row/column combination to find the exact grid configuration that results in the largest possible thumbnails without overflowing the screen. + +### 2. Justified (`justified`) +A **Justified Layout** (similar to Google Images). It places windows in rows, maintaining fixed height and original aspect ratios, and scales the row to fit the screen width perfectly. + +### 3. Masonry (`masonry`) +A **Waterfall** layout (Pinterest-style). It optimizes vertical space by placing windows in dynamic columns. It automatically calculates the optimal number of columns based on the window count. + +### 4. Bands (`bands`) +Organizes windows by **Workspace**. Creates a horizontal "Band" for each active workspace, grouping relevant tasks together. Windows are justified within their workspace band. + +### 5. Hero (`hero`) +A focus-centric layout. +* **Hero Area:** The active window takes up 40% of the screen (left side). +* **Stack:** All other windows share the remaining 60% (right side) in a smart grid or column. + +### 6. Spiral (`spiral`) +A scenic layout based on the **Golden Ratio (BSP)**. +* Windows split the screen in a spiral pattern (Left half, Top-Right half, etc.). +* The first window is separated by a larger gap to emphasize focus. +* If many windows are open, the spiral stops after 3 cuts and arranges the rest in a grid. + +### 7. Satellite (`satellite`) +An **Orbital** layout. +* The active window sits in the center of the screen. +* All other windows orbit around it in an ellipse. +* Visually stunning and great for focusing on one task while keeping an eye on the surroundings. + +### 8. Staggered (`staggered`) +A **Honeycomb/Brick** layout. +* Similar to a grid, but every odd row is shifted horizontally by half a cell width. +* Creates a more organic, less rigid look compared to standard grids. + +### 9. Columnar (`columnar`) +Divides the screen into vertical strips. +* Ignores rows completely and gives every window maximum vertical space. +* Excellent for **Ultrawide** monitors (21:9 / 32:9). + +### 10. Vortex (`vortex`) +A depth-based Phyllotaxis layout (Sunflower pattern), designed for a scenographic and immersive experience. +* Center Focus: The active window sits in the absolute center at maximum scale. +* Depth Effect: Subsequent windows spiral outwards, gradually decreasing in size and z-index. This creates a 3D "tunnel" effect where older windows fade into the background. + +### 🎲 Random (`random`) +Feeling adventurous? This mode selects one of the above algorithms at random every time you open the dashboard. + +## ⌨️ Controls + +| Input | Action | +| :--- | :--- | +| **Typing** | Instantly filters windows by Title, Class, or App ID | +| **Arrows (↑ ↓ ← →)** | Spatial navigation between thumbnails | +| Ctrl + (H/J/K/L) | Vim-style spatial navigation | +| **Tab / Shift+Tab** | Sequential navigation | +| **Enter** | Activate selected window | +| **Middle Click** | Close hovered window | +| **Esc / Click BG** | Close dashboard | + +## 🤝 Contributing + +Pull Requests are welcome! If you want to add a new layout algorithm or improve performance, please open an issue or submit a PR. + +## 📄 License + +Distributed under the GNU General Public License v3.0. See `LICENSE` for more information. + +--- + +<div align="center"> + +Made with ❤️ for the Hyprland community + +</div> |
