feat: add systemd units and show subcommand for daemon mode
This commit is contained in:
10
crates/k-launcher/src/client.rs
Normal file
10
crates/k-launcher/src/client.rs
Normal file
@@ -0,0 +1,10 @@
|
||||
use std::io::Write;
|
||||
|
||||
pub fn send_show() -> Result<(), Box<dyn std::error::Error>> {
|
||||
let runtime_dir = std::env::var("XDG_RUNTIME_DIR")
|
||||
.unwrap_or_else(|_| "/run/user/1000".to_string());
|
||||
let socket_path = format!("{runtime_dir}/k-launcher.sock");
|
||||
let mut stream = std::os::unix::net::UnixStream::connect(&socket_path)?;
|
||||
stream.write_all(b"show\n")?;
|
||||
Ok(())
|
||||
}
|
||||
@@ -1,3 +1,5 @@
|
||||
mod client;
|
||||
|
||||
use std::sync::Arc;
|
||||
|
||||
use k_launcher_kernel::Kernel;
|
||||
@@ -10,8 +12,25 @@ use plugin_calc::CalcPlugin;
|
||||
use plugin_cmd::CmdPlugin;
|
||||
use plugin_files::FilesPlugin;
|
||||
|
||||
fn main() -> iced::Result {
|
||||
fn main() {
|
||||
tracing_subscriber::fmt::init();
|
||||
|
||||
let args: Vec<String> = std::env::args().collect();
|
||||
if args.get(1).map(|s| s.as_str()) == Some("show") {
|
||||
if let Err(e) = client::send_show() {
|
||||
eprintln!("error: failed to send show command: {e}");
|
||||
std::process::exit(1);
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
if let Err(e) = run_ui() {
|
||||
eprintln!("error: UI: {e}");
|
||||
std::process::exit(1);
|
||||
}
|
||||
}
|
||||
|
||||
fn run_ui() -> iced::Result {
|
||||
let cfg = k_launcher_config::load();
|
||||
let launcher = Arc::new(UnixAppLauncher::new());
|
||||
let frecency = FrecencyStore::load();
|
||||
|
||||
11
packaging/systemd/k-launcher.service
Normal file
11
packaging/systemd/k-launcher.service
Normal file
@@ -0,0 +1,11 @@
|
||||
[Unit]
|
||||
Description=k-launcher command palette daemon
|
||||
After=graphical-session.target
|
||||
|
||||
[Service]
|
||||
Type=simple
|
||||
ExecStart=/usr/bin/k-launcher
|
||||
Restart=on-failure
|
||||
|
||||
[Install]
|
||||
WantedBy=graphical-session.target
|
||||
8
packaging/systemd/k-launcher.socket
Normal file
8
packaging/systemd/k-launcher.socket
Normal file
@@ -0,0 +1,8 @@
|
||||
[Unit]
|
||||
Description=k-launcher IPC socket
|
||||
|
||||
[Socket]
|
||||
ListenStream=%t/k-launcher.sock
|
||||
|
||||
[Install]
|
||||
WantedBy=sockets.target
|
||||
Reference in New Issue
Block a user