5d322b940d
appearance.surface.design picks the look (chips in the config window); each design's opacity, rim and light are settings. surface::shell now draws the island, idle pill, workspace and tray pills, tray menu, control centre and popup, so a design applies everywhere. On see-through glass faces fade with .opacity(). Shell text settings can list their allowed words (chips).
51 lines
1.5 KiB
Rust
51 lines
1.5 KiB
Rust
mod art;
|
|
mod config;
|
|
mod control;
|
|
mod edge;
|
|
mod glyph;
|
|
mod hypr;
|
|
mod island;
|
|
mod map;
|
|
mod parse;
|
|
mod prompt;
|
|
mod settings;
|
|
mod sound;
|
|
mod spectrum;
|
|
mod surface;
|
|
mod system;
|
|
mod png;
|
|
mod theme;
|
|
mod tray;
|
|
mod workspaces;
|
|
|
|
use amane::{App, Palette, Service};
|
|
|
|
fn main() {
|
|
// config.toml first: the font is chosen once, before anything draws
|
|
config::load();
|
|
|
|
// the card's glow follows the cover art, which art::Art copies to this one path
|
|
Palette::write().open(&art::palette_file(), 8);
|
|
|
|
// one island on every monitor (the card opens only on one of them), a workspace pill top left
|
|
// and the control centre top right on each; all three hidden until the pointer rests on the
|
|
// top edge (edge.rs), whose strip comes first so the bar lies over it. the config window
|
|
// (settings.rs) is a normal window, opened on demand
|
|
App::new()
|
|
.font(&config::appearance::font::family())
|
|
.ipc("island", island::command)
|
|
.ipc("control", control::command)
|
|
.ipc("tray", tray::command)
|
|
.ipc("config", settings::command)
|
|
.window_per_monitor(edge::spacer)
|
|
.window_per_monitor(edge::view)
|
|
.window_per_monitor(island::view)
|
|
.window_per_monitor(workspaces::view)
|
|
.window_per_monitor(control::view)
|
|
.window_per_monitor(control::menu_view)
|
|
.window_per_monitor(tray::menu_view)
|
|
// last, so the popup lies over the control centre
|
|
.window_per_monitor(prompt::view)
|
|
.run();
|
|
}
|