float-clock-wayland 0.2.0

Always-on-top floating desktop clock widget for Wayland compositors.
mod clock;
mod config;
mod drag;
mod platform;
mod render;
mod state;
mod ui;
mod window;

use clap::Parser;
use config::{merge_config_and_args, Args};
use gtk::prelude::*;
use gtk::Application;
use log::LevelFilter;

fn main() {
    // Initialize logger with default LevelFilter::Warn if RUST_LOG is not explicitly set.
    let mut logger_builder = env_logger::Builder::from_default_env();
    if std::env::var("RUST_LOG").is_err() {
        logger_builder.filter_level(LevelFilter::Warn);
    }
    logger_builder.init();

    let args = Args::parse();
    let file_config = config::load_or_create_config();
    let config = merge_config_and_args(file_config, args);

    let app = Application::builder()
        .application_id("com.github.reloj-wayland")
        .build();

    app.connect_activate(move |app| ui::run(app, config.clone()));
    app.run_with_args::<&str>(&[]);
}