diff --git a/README.md b/README.md index dd754e6..f85b2c9 100644 --- a/README.md +++ b/README.md @@ -6,6 +6,14 @@ Rust/GTK4 som **en enda binär**. Pinnade appar, körande fönster med gruppering, per-skärm-kontext, konfigurerbara menyer, settings-GUI och live-omladdning av JSON-configen. +## Skärmbilder + +![waydock](assets/screenshots/dock-hero.png) + +| Dockan (pins, grupper, indikatorer) | Inställningar (per skärm, live) | +|---|---| +| ![dock](assets/screenshots/dock-closeup.png) | ![settings](assets/screenshots/settings.png) | + - Config: `~/.config/waydock/config.json` (skapas automatiskt första starten) - Djupare docs: [`doc/plan.md`](doc/plan.md), [`doc/architecture.md`](doc/architecture.md), diff --git a/assets/screenshots/dock-closeup.png b/assets/screenshots/dock-closeup.png new file mode 100644 index 0000000..397b600 Binary files /dev/null and b/assets/screenshots/dock-closeup.png differ diff --git a/assets/screenshots/dock-hero.png b/assets/screenshots/dock-hero.png new file mode 100644 index 0000000..4b8d749 Binary files /dev/null and b/assets/screenshots/dock-hero.png differ diff --git a/assets/screenshots/settings.png b/assets/screenshots/settings.png new file mode 100644 index 0000000..926001f Binary files /dev/null and b/assets/screenshots/settings.png differ diff --git a/doc/usage.md b/doc/usage.md index fe73501..a19ce02 100644 --- a/doc/usage.md +++ b/doc/usage.md @@ -7,6 +7,7 @@ waydock # normal start waydock --log debug # pratigare logg till stderr waydock --log-file ~/.cache/waydock.log waydock --config /annan/väg.json +waydock --settings # öppna inställningsfönstret direkt ``` Vid första start skapas `~/.config/waydock/config.json` med defaults. diff --git a/install.sh b/install.sh old mode 100644 new mode 100755 diff --git a/release.sh b/release.sh old mode 100644 new mode 100755 diff --git a/src/main.rs b/src/main.rs index 0d38dc4..4767901 100644 --- a/src/main.rs +++ b/src/main.rs @@ -28,14 +28,16 @@ struct Cli { config: Option, log: Option, log_file: Option, + open_settings: bool, } fn parse_cli() -> Cli { - let mut cli = Cli { config: None, log: None, log_file: None }; + let mut cli = Cli { config: None, log: None, log_file: None, open_settings: false }; let mut args = std::env::args().skip(1); while let Some(arg) = args.next() { match arg.as_str() { "--config" => cli.config = args.next().map(PathBuf::from), + "--settings" => cli.open_settings = true, "--log" => cli.log = args.next(), "--log-file" => cli.log_file = args.next(), "--version" | "-V" => { @@ -49,6 +51,7 @@ fn parse_cli() -> Cli { --config annan configfil (default ~/.config/waydock/config.json)\n \ --log error|warn|info|debug|trace (även env WAYDOCK_LOG)\n \ --log-file skriv logg till fil\n \ + --settings öppna inställningsfönstret vid start\n \ --version visa version" ); std::process::exit(0); @@ -128,20 +131,21 @@ fn main() -> glib::ExitCode { let started = Rc::new(Cell::new(false)); let cfg_path2 = cfg_path.clone(); + let open_settings = cli.open_settings; app.connect_activate(move |app| { if started.get() { info!("waydock kör redan — ignorerar andra instansen"); return; } started.set(true); - activate(app, cfg_path2.clone()); + activate(app, cfg_path2.clone(), open_settings); }); // ge inte GTK våra egna flaggor app.run_with_args::<&str>(&[]) } -fn activate(app: >k::Application, cfg_path: PathBuf) { +fn activate(app: >k::Application, cfg_path: PathBuf, open_settings: bool) { let cfg: config::SharedConfig = Rc::new(RefCell::new(config::load_or_create(&cfg_path))); let ctx = Rc::new(dock::Ctx { @@ -224,6 +228,10 @@ fn activate(app: >k::Application, cfg_path: PathBuf) { ); } + if open_settings { + settings::open(&ctx); + } + // skärmar in/ut → bygg om (debouncat, skärmar kommer i klungor) { let ctx2 = ctx.clone();