Commit f666b4a9 authored by Roman Alifanov's avatar Roman Alifanov

add --autostarted flag

parent 93f6a97f
use std::env;
use std::path::Path;
use adw::{prelude::*, subclass::prelude::*}; use adw::{prelude::*, subclass::prelude::*};
use gtk::{gio, glib}; use gtk::{gio, glib};
...@@ -67,7 +70,45 @@ impl Application { ...@@ -67,7 +70,45 @@ impl Application {
log::info!("Ximper Welcome ({})", config::APP_ID); log::info!("Ximper Welcome ({})", config::APP_ID);
log::info!("Version: {} ({})", config::VERSION, config::PROFILE); log::info!("Version: {} ({})", config::VERSION, config::PROFILE);
log::info!("Datadir: {}", config::PKGDATADIR); log::info!("Datadir: {}", config::PKGDATADIR);
Self::default().run()
let app = Self::default();
app.add_main_option(
"autostarted",
glib::Char::from(b'a'),
glib::OptionFlags::NONE,
glib::OptionArg::None,
"Indicates that the application was autostarted",
None,
);
let args: Vec<String> = env::args().collect();
let autostarted = args.iter().any(|arg| arg == "--autostarted");
if autostarted {
let home_dir = match env::var("HOME") {
Ok(home) => home,
Err(e) => {
log::error!("Не удалось получить домашний каталог: {}", e);
return glib::ExitCode::FAILURE;
}
};
let config_path = Path::new(&home_dir).join(".config/ximper-welcome-dont-start");
if config_path.exists() {
log::info!("Файл автозапуска существует, выход.");
return glib::ExitCode::SUCCESS;
}
match std::fs::File::create(&config_path) {
Ok(_) => log::info!("Файл автозапуска создан."),
Err(e) => {
log::error!("Ошибка создания файла: {}", e);
return glib::ExitCode::FAILURE;
}
}
}
app.run()
} }
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment