95 lines
2.2 KiB
Markdown
95 lines
2.2 KiB
Markdown
# NEDM Waybar Integration
|
|
|
|
A Python script that displays NEDM workspace information and focused window details in Waybar.
|
|
|
|
## What it does
|
|
|
|
- Shows current workspace number with a bullet indicator (●)
|
|
- Displays the name of the currently focused application (e.g., "foot", "firefox")
|
|
- Provides tooltip with detailed workspace and window information
|
|
- Automatically reconnects if NEDM restarts
|
|
- Updates in real-time as you switch workspaces or focus different windows
|
|
|
|
## Requirements
|
|
|
|
- NEDM (cagebreak) window manager with IPC enabled
|
|
- Python 3
|
|
- Waybar
|
|
|
|
## Installation
|
|
|
|
1. Place the script in your scripts directory:
|
|
|
|
```bash
|
|
cp waybar-nedm-workspaces.py ~/scripts/
|
|
chmod +x ~/scripts/waybar-nedm-workspaces.py
|
|
```
|
|
|
|
2. Add the custom module to your Waybar configuration.
|
|
|
|
## Waybar Configuration
|
|
|
|
### Add to waybar config.json
|
|
|
|
Add `"custom/nedm-workspaces"` to your modules list:
|
|
|
|
```json
|
|
{
|
|
"modules-left": ["custom/nedm-workspaces"],
|
|
"custom/nedm-workspaces": {
|
|
"exec": "python3 ~/scripts/waybar-nedm-workspaces.py",
|
|
"return-type": "json",
|
|
"restart-interval": 1,
|
|
"tooltip": true
|
|
}
|
|
}
|
|
```
|
|
|
|
### Add styling to style.css
|
|
|
|
```css
|
|
#custom-nedm-workspaces {
|
|
background-color: #2e3440;
|
|
color: #d8dee9;
|
|
padding: 0 10px;
|
|
margin: 0 5px;
|
|
border-radius: 5px;
|
|
}
|
|
|
|
#custom-nedm-workspaces.disconnected {
|
|
background-color: #bf616a;
|
|
color: #ffffff;
|
|
}
|
|
|
|
#custom-nedm-workspaces.error {
|
|
background-color: #d08770;
|
|
color: #ffffff;
|
|
}
|
|
```
|
|
|
|
## Output Format
|
|
|
|
The script displays information in the format: `WS: ●2 | foot`
|
|
|
|
- `WS:` - Workspace indicator
|
|
- `●2` - Current workspace number with bullet
|
|
- `foot` - Name of the focused application
|
|
|
|
## Security Note
|
|
|
|
This script uses process names from PIDs instead of window titles for security. It does NOT require NEDM to be run with the `-b` flag, which would expose window titles but compromise security.
|
|
|
|
## Troubleshooting
|
|
|
|
If the script shows "NEDM: Disconnected":
|
|
|
|
1. Ensure NEDM is running with IPC enabled
|
|
2. Check that the IPC socket exists in `/run/user/$(id -u)/`
|
|
3. Verify NEDM was started without disabling IPC
|
|
|
|
If it shows generic "View X" instead of process names:
|
|
|
|
- The process may have terminated
|
|
- The script will fall back to view IDs when process information is unavailable
|
|
|