Skip to content

Commit 861e752

Browse files
committed
start_minimized option
1 parent 34abe49 commit 861e752

File tree

5 files changed

+27
-5
lines changed

5 files changed

+27
-5
lines changed

RustApp/i18n/en/android_mic.ftl

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,7 @@ reset_denoise_settings = Reset Denoise Settings
4747
title_app = App
4848
4949
start_at_login = Start at login
50+
start_minimized = Start minimized
5051
auto_connect = Auto connect
5152
theme = Theme
5253
amplify = Amplify

RustApp/src/config.rs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ pub struct Config {
2020
// device that could be disconnected sometime.
2121
pub device_name: Option<String>,
2222
pub start_at_login: bool,
23+
pub start_minimized: bool,
2324
pub auto_connect: bool,
2425
pub denoise: bool,
2526
pub denoise_kind: DenoiseKind,
@@ -75,7 +76,8 @@ impl Default for Config {
7576
speex_agc_enabled: false,
7677
speex_agc_target: 8000, // range: [8000, 65535]
7778
speex_dereverb_enabled: false,
78-
speex_dereverb_level: 0.5, // range: [0.0, 1.0]
79+
speex_dereverb_level: 0.5,
80+
start_minimized: false,
7981
}
8082
}
8183
}

RustApp/src/ui/app.rs

Lines changed: 15 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -352,9 +352,15 @@ impl Application for AppState {
352352

353353
let mut commands = Vec::new();
354354

355-
let (new_id, command) = cosmic::iced::window::open(settings);
355+
let main_window = if flags.config.data().start_minimized {
356+
None
357+
} else {
358+
let (new_id, command) = cosmic::iced::window::open(settings);
356359

357-
commands.push(command.map(|_| cosmic::action::Action::None));
360+
commands.push(command.map(|_| cosmic::action::Action::None));
361+
362+
Some(CustomWindow { window_id: new_id })
363+
};
358364

359365
let mut app = Self {
360366
core,
@@ -368,7 +374,7 @@ impl Application for AppState {
368374
connection_state: ConnectionState::Default,
369375
network_adapters,
370376
network_adapter,
371-
main_window: Some(CustomWindow { window_id: new_id }),
377+
main_window,
372378
settings_window: None,
373379
about_window: None,
374380
logs: Vec::new(),
@@ -393,7 +399,9 @@ impl Application for AppState {
393399
info!("config path: {}", flags.config_path);
394400
info!("log path: {}", flags.log_path);
395401

396-
commands.push(app.set_window_title(fl!("main_window_title"), new_id));
402+
if let Some(main_window) = &app.main_window {
403+
commands.push(app.set_window_title(fl!("main_window_title"), main_window.window_id));
404+
}
397405

398406
(app, Task::batch(commands))
399407
}
@@ -661,6 +669,9 @@ impl Application for AppState {
661669
.update(|c| c.speex_dereverb_level = speex_dereverb_level);
662670
return self.update_audio_stream();
663671
}
672+
ConfigMsg::StartMinimized(start_minimized) => {
673+
self.config.update(|s| s.start_minimized = start_minimized);
674+
}
664675
},
665676
AppMsg::HideWindow => {
666677
let mut effects = Vec::new();

RustApp/src/ui/message.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@ pub enum ConfigMsg {
3434
UseRecommendedFormat,
3535
ResetDenoiseSettings,
3636
StartAtLogin(bool),
37+
StartMinimized(bool),
3738
AutoConnect(bool),
3839
DeNoise(bool),
3940
DeNoiseKind(DenoiseKind),

RustApp/src/ui/view.rs

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -445,6 +445,13 @@ pub fn settings_window(app: &AppState) -> Element<'_, ConfigMsg> {
445445
} else {
446446
None
447447
})
448+
.add(
449+
row()
450+
.align_y(Vertical::Center)
451+
.push(text(fl!("start_minimized")))
452+
.push(horizontal_space())
453+
.push(toggler(config.start_minimized).on_toggle(ConfigMsg::StartMinimized)),
454+
)
448455
.add(
449456
row()
450457
.align_y(Vertical::Center)

0 commit comments

Comments
 (0)