layouts/
layouts.rs

1fn main() {
2    println!("Keyboard layouts");
3    let layouts = xkb_data::keyboard_layouts().unwrap();
4    let mut count = 0;
5    for layout in layouts.layouts() {
6        println!("  {}: {}", layout.name(), layout.description());
7        if let Some(variants) = layout.variants() {
8            for variant in variants {
9                println!("    {}: {}", variant.name(), variant.description())
10            }
11        }
12        count += 1;
13    }
14    println!("Total layouts without extra sources: {}", count);
15
16    println!("user-provided layouts");
17    let layouts = xkb_data::user_keyboard_layouts().unwrap();
18    let mut count = 0;
19    for layout in layouts.layouts() {
20        println!("  {}: {}", layout.name(), layout.description());
21        if let Some(variants) = layout.variants() {
22            for variant in variants {
23                println!("    {}: {}", variant.name(), variant.description())
24            }
25        }
26        count += 1;
27    }
28    println!("Total user-provided layouts: {}", count);
29
30    count = 0;
31    let all_layouts = xkb_data::all_keyboard_layouts().unwrap();
32    for layout in all_layouts.layouts() {
33        count += 1;
34    }
35    println!("Total layouts including extra sources and user layouts: {}", count);
36}