Compare commits
No commits in common. "master" and "3" have entirely different histories.
|
@ -362,7 +362,7 @@ dependencies = [
|
|||
[[package]]
|
||||
name = "light-dm-sys"
|
||||
version = "0.0.1"
|
||||
source = "git+https://git.raatty.club/raatty/lightdm-rs.git#a3c669583bb932e2b25372048b1e9dbda1f10e11"
|
||||
source = "git+https://raatty.club:3000/raatty/lightdm-rs.git#a3c669583bb932e2b25372048b1e9dbda1f10e11"
|
||||
dependencies = [
|
||||
"gio-sys",
|
||||
"glib-sys",
|
||||
|
@ -374,7 +374,7 @@ dependencies = [
|
|||
[[package]]
|
||||
name = "lightdm"
|
||||
version = "0.1.0"
|
||||
source = "git+https://git.raatty.club/raatty/lightdm-rs.git#a3c669583bb932e2b25372048b1e9dbda1f10e11"
|
||||
source = "git+https://raatty.club:3000/raatty/lightdm-rs.git#a3c669583bb932e2b25372048b1e9dbda1f10e11"
|
||||
dependencies = [
|
||||
"gio",
|
||||
"gio-sys",
|
||||
|
|
|
@ -9,7 +9,7 @@ edition = "2018"
|
|||
libhandy = "0.5.0"
|
||||
gdk = "0.12.1"
|
||||
gtk = "0.8.1"
|
||||
lightdm = { git = "https://git.raatty.club/raatty/lightdm-rs.git"}
|
||||
lightdm = { git = "https://raatty.club:3000/raatty/lightdm-rs.git"}
|
||||
|
||||
[profile.release]
|
||||
panic = "abort"
|
||||
|
|
|
@ -14,6 +14,3 @@ lightdm.conf
|
|||
greeter-session=lightdm-mobile-greeter
|
||||
user-session=<THE CHOSEN DE TO LAUNCH AFTER SUCCESSFUL LOGIN>
|
||||
```
|
||||
|
||||
## Theming
|
||||
If you have a file at `/etc/lightdm/lightdm_mobile_greeter.css` styling will be read from it falling back to the backed in styling, checkout style.css to get ideas on what to change
|
|
@ -77,10 +77,7 @@
|
|||
<child>
|
||||
<object class="GtkLabel" id="message_label">
|
||||
<property name="visible">True</property>
|
||||
<property name="label"></property>
|
||||
<style>
|
||||
<class name="msg"/>
|
||||
</style>
|
||||
<property name="label"></property>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
|
|
57
src/main.rs
57
src/main.rs
|
@ -5,10 +5,7 @@ use libhandy;
|
|||
use lightdm;
|
||||
use lightdm::{GreeterExt, SessionExt, UserExt, UserListExt};
|
||||
use std::cell::RefCell;
|
||||
use std::io::prelude::*;
|
||||
use std::path::*;
|
||||
use std::rc::Rc;
|
||||
use std::{fs, io};
|
||||
|
||||
fn main() {
|
||||
if gtk::init().is_err() {
|
||||
|
@ -25,16 +22,6 @@ fn main() {
|
|||
handler_borrowed.setup_greeter(handler.clone());
|
||||
handler_borrowed.setup_de_select(handler.clone());
|
||||
}
|
||||
{
|
||||
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);
|
||||
}
|
||||
}
|
||||
{
|
||||
let handler_borrowed = handler.borrow();
|
||||
let greeter = handler_borrowed.greeter.as_ref().expect("no greeter");
|
||||
|
@ -99,27 +86,14 @@ 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(
|
||||
&screen,
|
||||
&gdk::Screen::get_default().expect("cant get 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,
|
||||
&style2,
|
||||
gtk::STYLE_PROVIDER_PRIORITY_USER,
|
||||
)
|
||||
}
|
||||
}
|
||||
window.show();
|
||||
gtk::main();
|
||||
|
@ -233,30 +207,13 @@ 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()
|
||||
}
|
||||
}
|
||||
|
||||
fn pretty_name() -> Result<String, io::Error> {
|
||||
let file = fs::File::open("/etc/os-release")?;
|
||||
let contents = io::BufReader::new(file);
|
||||
for line_opt in contents.lines() {
|
||||
let line = line_opt?;
|
||||
if line.starts_with("PRETTY_NAME=") {
|
||||
if let Some(name) = line.split("=").skip(1).next() {
|
||||
return Ok(name.trim_matches('"').to_string());
|
||||
};
|
||||
}
|
||||
}
|
||||
Err(io::Error::new(
|
||||
io::ErrorKind::NotFound,
|
||||
"I tried my best :)",
|
||||
))
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue