Add Noctalia shell with Quickshell overview
- Add `noctalia` input to flake and lock it in `flake.lock`. - Include `noctalia` and `quickshell` modules in `flake.nix`. - Extend core packages to accept `inputs` and `system`; add `quickshell.nix` with required Qt6 packages and environment variables. - Enable `upower` service for battery handling. - Add home modules `noctalia.nix` and `overview.nix` (QML UI, README, assets, widgets, services) to provide a workspace overview. - Comment out unused rofi and web‑search binds; update `exec‑once` to start the overview daemon and `noctalia-shell`. - Provide `restart.noctalia` script and its Nix wrapper. - Enable `noctalia-shell` in `stylix` configuration.
This commit is contained in:
214
modules/home/overview/README.md
Normal file
214
modules/home/overview/README.md
Normal file
@@ -0,0 +1,214 @@
|
||||
# Quickshell Overview for Hyprland
|
||||
|
||||
<div align="center">
|
||||
|
||||
A standalone workspace overview module for Hyprland using Quickshell - shows all workspaces with live window previews, drag-and-drop support, and Super+Tab keybind.
|
||||
|
||||

|
||||

|
||||

|
||||

|
||||
|
||||
</div>
|
||||
|
||||
---
|
||||
|
||||
## 📸 Preview
|
||||
|
||||

|
||||
|
||||
https://github.com/user-attachments/assets/79ceb141-6b9e-4956-8e09-aaf72b66550c
|
||||
|
||||
> *Workspace overview showing live window previews with drag-and-drop support*
|
||||
|
||||
---
|
||||
|
||||
## ✨ Features
|
||||
|
||||
- 🖼️ Visual workspace overview showing all workspaces and windows
|
||||
- 🎯 Click windows to focus them
|
||||
- 🖱️ Middle-click windows to close them
|
||||
- 🔄 Drag and drop windows between workspaces
|
||||
- ⌨️ Keyboard navigation (Arrow keys to switch workspaces, Escape/Enter to close)
|
||||
- 💡 Hover tooltips showing window information
|
||||
- 🎨 Material Design 3 theming
|
||||
- ⚡ Smooth animations and transitions
|
||||
|
||||
## 📦 Installation
|
||||
|
||||
### Prerequisites
|
||||
|
||||
- **Hyprland** compositor
|
||||
- **Quickshell** ([installation guide](https://quickshell.org/docs/v0.1.0/guide/install-setup/))
|
||||
- **Qt 6** with modules: QtQuick, QtQuick.Controls, Qt5Compat.GraphicalEffects
|
||||
|
||||
### Setup
|
||||
|
||||
1. **Clone this repository** to your Quickshell config directory:
|
||||
```bash
|
||||
git clone https://github.com/Shanu-Kumawat/quickshell-overview ~/.config/quickshell/overview
|
||||
```
|
||||
|
||||
2. **Add keybind** to your Hyprland config (`~/.config/hypr/hyprland.conf`):
|
||||
```conf
|
||||
bind = Super, TAB, exec, qs ipc -c overview call overview toggle
|
||||
```
|
||||
|
||||
3. **Auto-start** the overview (add to Hyprland config):
|
||||
```conf
|
||||
exec-once = qs -c overview
|
||||
```
|
||||
|
||||
4. **Reload Hyprland**:
|
||||
```bash
|
||||
hyprctl reload
|
||||
```
|
||||
|
||||
### Manual Start (if needed)
|
||||
|
||||
```bash
|
||||
qs -c overview &
|
||||
```
|
||||
|
||||
## 🎮 Usage
|
||||
|
||||
| Action | Description |
|
||||
|--------|-------------|
|
||||
| **Super + Tab** | Toggle the overview |
|
||||
| **Left/Right Arrow Keys** | Navigate between workspaces horizontally |
|
||||
| **Up/Down Arrow Keys** | Navigate between workspace rows |
|
||||
| **Escape / Enter** | Close the overview |
|
||||
| **Click workspace** | Switch to that workspace |
|
||||
| **Click window** | Focus that window |
|
||||
| **Middle-click window** | Close that window |
|
||||
| **Drag window** | Move window to different workspace |
|
||||
|
||||
---
|
||||
|
||||
## ⚙️ Configuration
|
||||
|
||||
> **⚠️ Want to change the size, position, or number of workspaces?**
|
||||
> Edit `~/.config/quickshell/overview/common/Config.qml` - it's all there!
|
||||
|
||||
### Workspace Grid
|
||||
|
||||
Edit `~/.config/quickshell/overview/common/Config.qml`:
|
||||
|
||||
```qml
|
||||
property QtObject overview: QtObject {
|
||||
property int rows: 2 // Number of workspace rows
|
||||
property int columns: 5 // Number of workspace columns (10 total workspaces)
|
||||
property real scale: 0.16 // Overview scale factor (0.1-0.3, smaller = more compact)
|
||||
property bool enable: true
|
||||
}
|
||||
```
|
||||
|
||||
**Common adjustments:**
|
||||
- **Too small?** Increase `scale` (try 0.20 or 0.25)
|
||||
- **Too big?** Decrease `scale` (try 0.12 or 0.14)
|
||||
- **More workspaces?** Change `rows` and `columns` (e.g., 3 rows × 4 columns = 12 workspaces)
|
||||
|
||||
### Position
|
||||
|
||||
Edit `~/.config/quickshell/overview/modules/overview/Overview.qml` (line ~111):
|
||||
|
||||
```qml
|
||||
anchors {
|
||||
horizontalCenter: parent.horizontalCenter
|
||||
top: parent.top
|
||||
topMargin: 100 // Change this value to move up/down
|
||||
}
|
||||
```
|
||||
|
||||
### Theme & Colors
|
||||
|
||||
Edit `~/.config/quickshell/overview/common/Appearance.qml` to customize:
|
||||
- Colors (m3colors and colors objects)
|
||||
- Font families and sizes
|
||||
- Animation curves and durations
|
||||
- Border radius values
|
||||
|
||||
---
|
||||
|
||||
## 📋 Requirements
|
||||
|
||||
- **Hyprland** compositor (tested on latest versions)
|
||||
- **Quickshell** (Qt6-based shell framework)
|
||||
- **Qt 6** with the following modules:
|
||||
- QtQuick
|
||||
- QtQuick.Controls
|
||||
- QtQuick.Layouts
|
||||
- Qt5Compat.GraphicalEffects
|
||||
- Quickshell.Wayland
|
||||
- Quickshell.Hyprland
|
||||
|
||||
## 🚫 Removed Features (from original illogical-impulse)
|
||||
|
||||
The following features were removed to make it standalone:
|
||||
|
||||
- App search functionality
|
||||
- Emoji picker
|
||||
- Clipboard history integration
|
||||
- Search widget
|
||||
- Integration with the full illogical-impulse shell ecosystem
|
||||
|
||||
## 📁 File Structure
|
||||
|
||||
```
|
||||
~/.config/quickshell/overview/
|
||||
├── shell.qml # Main entry point
|
||||
├── README.md # This file
|
||||
├── hyprland-config.conf # Configuration reference
|
||||
├── common/
|
||||
│ ├── Appearance.qml # Theme and styling
|
||||
│ ├── Config.qml # Configuration options
|
||||
│ ├── functions/
|
||||
│ │ └── ColorUtils.qml # Color manipulation utilities
|
||||
│ └── widgets/
|
||||
│ ├── StyledText.qml # Styled text component
|
||||
│ ├── StyledRectangularShadow.qml
|
||||
│ ├── StyledToolTip.qml
|
||||
│ └── StyledToolTipContent.qml
|
||||
├── services/
|
||||
│ ├── GlobalStates.qml # Global state management
|
||||
│ └── HyprlandData.qml # Hyprland data provider
|
||||
└── modules/
|
||||
└── overview/
|
||||
├── Overview.qml # Main overview component
|
||||
├── OverviewWidget.qml # Workspace grid widget
|
||||
└── OverviewWindow.qml # Individual window preview
|
||||
```
|
||||
|
||||
## 🎯 IPC Commands
|
||||
|
||||
```bash
|
||||
# Toggle overview
|
||||
qs ipc -c overview call overview toggle
|
||||
|
||||
# Open overview
|
||||
qs ipc -c overview call overview open
|
||||
|
||||
# Close overview
|
||||
qs ipc -c overview call overview close
|
||||
```
|
||||
|
||||
## 🐛 Known Issues
|
||||
|
||||
- Window icons may fallback to generic icon if app class name doesn't match icon theme
|
||||
- Potential crashes during rapid window state changes due to Wayland screencopy buffer management
|
||||
|
||||
## Credits
|
||||
|
||||
Extracted from the overview feature in [illogical-impulse](https://github.com/end-4/dots-hyprland) by [end-4](https://github.com/end-4).
|
||||
|
||||
Adapted as a standalone component for Hyprland + Quickshell users who want just the overview functionality.
|
||||
|
||||
---
|
||||
|
||||
<div align="center">
|
||||
|
||||
**Note:** Maintenance will be limited due to time constraints, but **PRs and code improvements are welcome!** Feel free to contribute or fork for your own needs.
|
||||
|
||||
Made with ❤️ for the Hyprland community
|
||||
|
||||
</div>
|
||||
Reference in New Issue
Block a user