Port the waybar bar layout to shell.json
Claude-Session: https://claude.ai/code/session_014ADhvRXuiTvrXSbConxUey
This commit is contained in:
@@ -23,7 +23,7 @@ My current setup is built around these core components:
|
||||
### Directory Structure
|
||||
|
||||
- **`hypr/`**: Hyprland configurations (keybindings, window rules, animations, monitor layout, lid-close display handling, and autostart). See [`hypr/keybinds.md`](hypr/keybinds.md) for custom keybindings.
|
||||
- **`omarchy/`**: Omarchy 4 configuration — `shell.json` (bar layout and idle/lock timings), `extensions/` (entries added to the Omarchy menu), `hooks/` (event hooks such as retinting AGS on theme change), and `themed/` (extra theme templates).
|
||||
- **`omarchy/`**: Omarchy 4 configuration — `shell.json` (bar layout, custom bar modules, and idle/lock timings), `extensions/` (entries added to the Omarchy menu), `hooks/` (event hooks such as retinting AGS on theme change), and `themed/` (extra theme templates). See [`omarchy/README.md`](omarchy/README.md) for the bar layout.
|
||||
- **`ags/`**: Custom desktop widgets built with TypeScript and GTK — media player, notification hub, quick settings, system monitor, wallpaper picker, and theme picker.
|
||||
- **`scripts/`**: Global utility scripts seamlessly exposed as commands by the installer. See [`commands.md`](commands.md).
|
||||
- **`wallpapers/`**: A collection of local custom wallpapers for dynamic theming. See [`wallpaper-gallery/`](wallpaper-gallery/index.md) for the full gallery (split alphabetically across multiple pages).
|
||||
|
||||
@@ -0,0 +1,62 @@
|
||||
# Omarchy config
|
||||
|
||||
Omarchy 4 replaced waybar with the Quickshell bar built into `omarchy-shell`.
|
||||
`shell.json` is the whole bar config; it hot-reloads on save, and
|
||||
`install.sh` deploys it to `~/.config/omarchy/shell.json`.
|
||||
|
||||
## Bar layout
|
||||
|
||||
Ported from the old `waybar/config.jsonc`, section for section:
|
||||
|
||||
| Old waybar module | shell.json widget |
|
||||
| --- | --- |
|
||||
| `custom/omarchy` | `omarchy.menu` |
|
||||
| `hyprland/workspaces` | `omarchy.workspaces` |
|
||||
| `clock` | `omarchy.clock` |
|
||||
| `custom/update` | `omarchy.system-update` |
|
||||
| `custom/voxtype` | `omarchy.indicators` -> `Dictation` |
|
||||
| `custom/screenrecording-indicator` | `omarchy.indicators` -> `ScreenRecording` |
|
||||
| `custom/idle-indicator` | `omarchy.indicators` -> `StayAwake` |
|
||||
| `custom/notification-silencing-indicator` | `omarchy.indicators` -> `Dnd` |
|
||||
| `group/tray-expander` | `omarchy.tray` |
|
||||
| `bluetooth` | `omarchy.bluetooth` |
|
||||
| `network` | `omarchy.network` |
|
||||
| `pulseaudio` | `omarchy.audio` |
|
||||
| `battery` | `omarchy.power` |
|
||||
| `cpu` | `blob.cpu` (custom module) |
|
||||
| `custom/notification` | `blob.notifications` (custom module) |
|
||||
|
||||
Drop the `items` list from `omarchy.indicators` to show all six indicators
|
||||
(adds `NightLight` and `Reminder`).
|
||||
|
||||
## Custom modules
|
||||
|
||||
The bar accepts arbitrary ids with `type: "command"`, which is how the two
|
||||
AGS entry points survive the move off waybar:
|
||||
|
||||
- `blob.cpu` - left opens btop, middle opens alacritty, right toggles the AGS
|
||||
system monitor
|
||||
- `blob.notifications` - left toggles the AGS notification center, right
|
||||
toggles notification silencing
|
||||
|
||||
A command module with no `exec` key is a static icon; add `exec` and
|
||||
`interval` for one that refreshes its own text.
|
||||
|
||||
## Editing
|
||||
|
||||
Dragging widgets in the bar rewrites `~/.config/omarchy/shell.json` directly.
|
||||
That makes the live file diverge from this one, so after rearranging by hand,
|
||||
copy it back:
|
||||
|
||||
```bash
|
||||
cp ~/.config/omarchy/shell.json omarchy/shell.json
|
||||
```
|
||||
|
||||
Run `./install.sh --check` to see whether the two have drifted.
|
||||
|
||||
## Not portable from waybar
|
||||
|
||||
- Bar height: fixed by the shell's style (26px horizontal, 28px vertical).
|
||||
- Per-widget click actions on first-party widgets: `omarchy.clock`,
|
||||
`omarchy.network`, and `omarchy.bluetooth` own their popups, so the old
|
||||
right-click-into-AGS bindings only exist on the custom modules above.
|
||||
+26
-15
@@ -18,32 +18,29 @@
|
||||
}
|
||||
],
|
||||
"center": [
|
||||
{
|
||||
"id": "omarchy.indicators"
|
||||
},
|
||||
{
|
||||
"id": "omarchy.clock",
|
||||
"format": "dddd HH:mm",
|
||||
"format": "dddd d MMMM HH:mm",
|
||||
"formatAlt": "d MMMM 'W'ww yyyy",
|
||||
"verticalFormat": "HH\n\u2014\nmm"
|
||||
},
|
||||
{
|
||||
"id": "omarchy.keyboard-layout"
|
||||
},
|
||||
{
|
||||
"id": "omarchy.weather"
|
||||
"verticalFormat": "HH\n—\nmm"
|
||||
},
|
||||
{
|
||||
"id": "omarchy.system-update"
|
||||
},
|
||||
{
|
||||
"id": "omarchy.indicators",
|
||||
"items": [
|
||||
"Dictation",
|
||||
"ScreenRecording",
|
||||
"StayAwake",
|
||||
"Dnd"
|
||||
]
|
||||
}
|
||||
],
|
||||
"right": [
|
||||
{
|
||||
"id": "omarchy.tray"
|
||||
},
|
||||
{
|
||||
"id": "omarchy.agents"
|
||||
},
|
||||
{
|
||||
"id": "omarchy.bluetooth"
|
||||
},
|
||||
@@ -54,10 +51,24 @@
|
||||
"id": "omarchy.audio"
|
||||
},
|
||||
{
|
||||
"id": "omarchy.monitor"
|
||||
"id": "blob.cpu",
|
||||
"type": "command",
|
||||
"text": "",
|
||||
"tooltip": "System monitor",
|
||||
"onClick": "omarchy-launch-or-focus-tui btop",
|
||||
"onMiddleClick": "alacritty",
|
||||
"onRightClick": "ags toggle sys-monitor"
|
||||
},
|
||||
{
|
||||
"id": "omarchy.power"
|
||||
},
|
||||
{
|
||||
"id": "blob.notifications",
|
||||
"type": "command",
|
||||
"text": "",
|
||||
"tooltip": "Notifications",
|
||||
"onClick": "ags toggle notification-center",
|
||||
"onRightClick": "omarchy-toggle-notification-silencing"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user