Skärmbilder i README + --settings-flagga
All checks were successful
check / check (push) Successful in 1m44s

Nya assets/screenshots (tagna i nästlad headless-Wayfire): hero-bild,
dock-närbild och settings-fönstret. Ny CLI-flagga --settings öppnar
inställningsfönstret direkt vid start.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
2026-08-30 01:55:04 +02:00
parent cfd1dbd4f4
commit b8674ce5f0
8 changed files with 20 additions and 3 deletions

View File

@@ -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 gruppering, per-skärm-kontext, konfigurerbara menyer, settings-GUI och
live-omladdning av JSON-configen. 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) - Config: `~/.config/waydock/config.json` (skapas automatiskt första starten)
- Djupare docs: [`doc/plan.md`](doc/plan.md), - Djupare docs: [`doc/plan.md`](doc/plan.md),
[`doc/architecture.md`](doc/architecture.md), [`doc/architecture.md`](doc/architecture.md),

Binary file not shown.

After

Width:  |  Height:  |  Size: 53 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 449 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 55 KiB

View File

@@ -7,6 +7,7 @@ waydock # normal start
waydock --log debug # pratigare logg till stderr waydock --log debug # pratigare logg till stderr
waydock --log-file ~/.cache/waydock.log waydock --log-file ~/.cache/waydock.log
waydock --config /annan/väg.json waydock --config /annan/väg.json
waydock --settings # öppna inställningsfönstret direkt
``` ```
Vid första start skapas `~/.config/waydock/config.json` med defaults. Vid första start skapas `~/.config/waydock/config.json` med defaults.

0
install.sh Normal file → Executable file
View File

0
release.sh Normal file → Executable file
View File

View File

@@ -28,14 +28,16 @@ struct Cli {
config: Option<PathBuf>, config: Option<PathBuf>,
log: Option<String>, log: Option<String>,
log_file: Option<String>, log_file: Option<String>,
open_settings: bool,
} }
fn parse_cli() -> Cli { 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); let mut args = std::env::args().skip(1);
while let Some(arg) = args.next() { while let Some(arg) = args.next() {
match arg.as_str() { match arg.as_str() {
"--config" => cli.config = args.next().map(PathBuf::from), "--config" => cli.config = args.next().map(PathBuf::from),
"--settings" => cli.open_settings = true,
"--log" => cli.log = args.next(), "--log" => cli.log = args.next(),
"--log-file" => cli.log_file = args.next(), "--log-file" => cli.log_file = args.next(),
"--version" | "-V" => { "--version" | "-V" => {
@@ -49,6 +51,7 @@ fn parse_cli() -> Cli {
--config <fil> annan configfil (default ~/.config/waydock/config.json)\n \ --config <fil> annan configfil (default ~/.config/waydock/config.json)\n \
--log <nivå> error|warn|info|debug|trace (även env WAYDOCK_LOG)\n \ --log <nivå> error|warn|info|debug|trace (även env WAYDOCK_LOG)\n \
--log-file <fil> skriv logg till fil\n \ --log-file <fil> skriv logg till fil\n \
--settings öppna inställningsfönstret vid start\n \
--version visa version" --version visa version"
); );
std::process::exit(0); std::process::exit(0);
@@ -128,20 +131,21 @@ fn main() -> glib::ExitCode {
let started = Rc::new(Cell::new(false)); let started = Rc::new(Cell::new(false));
let cfg_path2 = cfg_path.clone(); let cfg_path2 = cfg_path.clone();
let open_settings = cli.open_settings;
app.connect_activate(move |app| { app.connect_activate(move |app| {
if started.get() { if started.get() {
info!("waydock kör redan — ignorerar andra instansen"); info!("waydock kör redan — ignorerar andra instansen");
return; return;
} }
started.set(true); started.set(true);
activate(app, cfg_path2.clone()); activate(app, cfg_path2.clone(), open_settings);
}); });
// ge inte GTK våra egna flaggor // ge inte GTK våra egna flaggor
app.run_with_args::<&str>(&[]) app.run_with_args::<&str>(&[])
} }
fn activate(app: &gtk::Application, cfg_path: PathBuf) { fn activate(app: &gtk::Application, cfg_path: PathBuf, open_settings: bool) {
let cfg: config::SharedConfig = Rc::new(RefCell::new(config::load_or_create(&cfg_path))); let cfg: config::SharedConfig = Rc::new(RefCell::new(config::load_or_create(&cfg_path)));
let ctx = Rc::new(dock::Ctx { let ctx = Rc::new(dock::Ctx {
@@ -224,6 +228,10 @@ fn activate(app: &gtk::Application, cfg_path: PathBuf) {
); );
} }
if open_settings {
settings::open(&ctx);
}
// skärmar in/ut → bygg om (debouncat, skärmar kommer i klungor) // skärmar in/ut → bygg om (debouncat, skärmar kommer i klungor)
{ {
let ctx2 = ctx.clone(); let ctx2 = ctx.clone();