Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
23 changes: 13 additions & 10 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# wallbash
# waLLbash
A fast and minimal wallpaper engine for HyDE

Use `wallbash` as a core component of your Wayland desktop environment — set wallpapers, generate color palettes, and dynamically theme your desktop.
Expand All @@ -12,7 +12,7 @@ Use `wallbash` as a core component of your Wayland desktop environment — set w
- Multi-monitor support (WIP)


## Build from source
## Build

```bash
git clone https://github.com/prasanthrangan/wallbash
Expand All @@ -31,21 +31,24 @@ wallbash stop # Stop the daemon
wallbash status # Show daemon status
```


## How It Works

The Rust binary compiles to a single executable, `wallbash`. It acts as both a client and a daemon:
- `wallbash start` Launches the daemon (background process). The daemon initializes the Wayland and Vulkan subsystems and listens for commands on a Unix socket.
- `wallbash set` Sends a command via the Unix socket to the daemon to load and display the image. If the daemon is not running, it automatically starts it and waits for it to be ready before sending the command.
- `wallbash status` Query the daemon status.
- `wallbash set` Sends a command to load and display the image. If the daemon is not running, it automatically starts it and waits for it to be ready before sending the command.
- `wallbash stop` Terminate the daemon.
- `wallbash status` Query the daemon status.

The daemon uses Vulkan (`ash`) for GPU-accelerated rendering and `wlroots` Wayland protocols to display the wallpaper as a layer surface.

## Architecture

### Architecture
```
src/
├── main.rs
├── wallbashed.rs
├── wayland.rs
└── vulkan.rs
```

The project is structured in modules:
The project is structured in simple modules:
- `main.rs` Entry point of the binary. Works as a CLI tool to parse arguments and handle the daemon.
- `wallbashed.rs` The core daemon module. It manages the IPC listener, handles incoming commands, and orchestrates the wallpaper loading and rendering process.
- `wayland.rs` Handles the Wayland integration. It creates a Wayland surface, binds to the layer shell protocol, and sets up the layer surface for the wallpaper.
Expand Down
2 changes: 1 addition & 1 deletion src/main.rs
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
// --------------------------------------------------------------------- / tittu
// wallbash
// a minimal wallpaper engine for HyDE
// a fast and minimal wallpaper engine for HyDE
//


Expand Down
Loading