From e29ec82802440f4b55e2e1d62a324d654468662a Mon Sep 17 00:00:00 2001 From: Raatty Date: Wed, 16 Sep 2020 21:52:26 +1200 Subject: [PATCH] custom styling maybe? --- src/main.rs | 42 ++++++++++++++++++++++++++++++------------ 1 file changed, 30 insertions(+), 12 deletions(-) diff --git a/src/main.rs b/src/main.rs index 4821ee8..7900d69 100644 --- a/src/main.rs +++ b/src/main.rs @@ -5,9 +5,10 @@ use libhandy; use lightdm; use lightdm::{GreeterExt, SessionExt, UserExt, UserListExt}; use std::cell::RefCell; -use std::rc::Rc; -use std::{fs,io}; use std::io::prelude::*; +use std::path::*; +use std::rc::Rc; +use std::{fs, io}; fn main() { if gtk::init().is_err() { @@ -27,14 +28,18 @@ fn main() { { let handler_borrowed = handler.borrow(); if let Ok(os_str) = pretty_name() { - handler_borrowed.msg_label.as_ref().expect("no msg label").set_text(&os_str); + handler_borrowed + .msg_label + .as_ref() + .expect("no msg label") + .set_text(&os_str); } } { let handler_borrowed = handler.borrow(); let greeter = handler_borrowed.greeter.as_ref().expect("no greeter"); - let user = handler_borrowed.user.as_ref().expect("no user"); - greeter.authenticate(Some(&user)).ok(); + let user = handler_borrowed.user.as_ref().expect("no user"); + greeter.authenticate(Some(&user)).ok(); } let handler_builder_clone = handler.clone(); builder.connect_signals(move |_, name| { @@ -94,14 +99,27 @@ fn main() { (screen_size.height as f32 * 0.8) as i32, ); let style = gtk::CssProvider::new(); + let screen = gdk::Screen::get_default().expect("cant get screen"); style .load_from_data(include_bytes!("../style.css")) .expect("failed to load style"); gtk::StyleContext::add_provider_for_screen( - &gdk::Screen::get_default().expect("cant get screen"), + &screen, &style, gtk::STYLE_PROVIDER_PRIORITY_APPLICATION, ); + let custom_conf = Path::new("/etc/lightdm/lightdm_mobile_greeter.css"); + if custom_conf.exists() { + let style2 = gtk::CssProvider::new(); + if let Some(path) = custom_conf.to_str() { + style2.load_from_path(path).expect("failed to load style2"); + } + gtk::StyleContext::add_provider_for_screen( + &screen, + &style, + gtk::STYLE_PROVIDER_PRIORITY_USER, + ) + } } window.show(); gtk::main(); @@ -215,12 +233,12 @@ impl Handler { } let keys_iter = keys.iter(); for (rb, key) in rbs.iter().zip(keys_iter) { - let handler_clone = handler.clone(); - let key_clone = key.clone(); - rb.connect_toggled(move |_| { - handler_clone.borrow_mut().session = Some(key_clone.clone()); - }); - }; + let handler_clone = handler.clone(); + let key_clone = key.clone(); + rb.connect_toggled(move |_| { + handler_clone.borrow_mut().session = Some(key_clone.clone()); + }); + } self.de_select.as_ref().expect("no de select").add(&vbox); vbox.show_all() }