From 6d97ef13a186ea50b2351f1cfba0f1d446b48324 Mon Sep 17 00:00:00 2001 From: "Luke D. Jones" Date: Fri, 29 Jul 2022 15:56:03 +1200 Subject: [PATCH] rog-aura: adjustment of layouts and key sizes --- rog-aura/data/layouts/g513_US.toml | 8 + rog-aura/data/layouts/g533_US.toml | 8 +- rog-aura/data/layouts/ga401_US.toml | 8 + rog-aura/data/layouts/gl504_US.toml | 10 +- rog-aura/data/layouts/gx502_US.toml | 8 + rog-aura/src/keys.rs | 15 +- rog-aura/src/layouts/g513.rs | 288 ++++++++++---------- rog-aura/src/layouts/ga401.rs | 262 +++++++++--------- rog-aura/src/layouts/gx502.rs | 306 ++++++++++++---------- rog-aura/src/layouts/mod.rs | 9 +- rog-control-center/src/main.rs | 2 +- rog-control-center/src/pages/aura_page.rs | 34 +-- 12 files changed, 531 insertions(+), 427 deletions(-) diff --git a/rog-aura/data/layouts/g513_US.toml b/rog-aura/data/layouts/g513_US.toml index ab568a37..dbefeae8 100644 --- a/rog-aura/data/layouts/g513_US.toml +++ b/rog-aura/data/layouts/g513_US.toml @@ -5,6 +5,7 @@ matches = [ locale = "US" [[rows]] +height = 0.8 row = [ 'NormalSpacer', 'FuncSpacer', @@ -16,6 +17,7 @@ row = [ ] [[rows]] +height = 0.8 row = [ 'Esc', 'FuncSpacer', @@ -38,6 +40,7 @@ row = [ ] [[rows]] +height = 1.0 row = [ 'Tilde', 'N1', @@ -58,6 +61,7 @@ row = [ ] [[rows]] +height = 1.0 row = [ 'Tab', 'Q', @@ -78,6 +82,7 @@ row = [ ] [[rows]] +height = 1.0 row = [ 'Caps', 'A', @@ -97,6 +102,7 @@ row = [ ] [[rows]] +height = 1.0 row = [ 'LShift', 'Z', @@ -115,6 +121,7 @@ row = [ ] [[rows]] +height = 1.2 row = [ 'LCtrl', 'LFn', @@ -132,6 +139,7 @@ row = [ ] [[rows]] +height = 0.8 row = [ 'ArrowSpacer', 'ArrowSpacer', diff --git a/rog-aura/data/layouts/g533_US.toml b/rog-aura/data/layouts/g533_US.toml index 140edecb..2533fa28 100644 --- a/rog-aura/data/layouts/g533_US.toml +++ b/rog-aura/data/layouts/g533_US.toml @@ -1,11 +1,11 @@ matches = [ 'G533', - 'GU502', ] locale = "US" [[rows]] +height = 0.8 row = [ 'NormalSpacer', 'FuncSpacer', @@ -17,6 +17,7 @@ row = [ ] [[rows]] +height = 0.8 row = [ 'Esc', 'FuncSpacer', @@ -38,6 +39,7 @@ row = [ ] [[rows]] +height = 1.0 row = [ 'Tilde', 'N1', @@ -57,6 +59,7 @@ row = [ ] [[rows]] +height = 1.0 row = [ 'Tab', 'Q', @@ -76,6 +79,7 @@ row = [ ] [[rows]] +height = 1.0 row = [ 'Caps', 'A', @@ -94,6 +98,7 @@ row = [ ] [[rows]] +height = 1.0 row = [ 'LShift', 'Z', @@ -112,6 +117,7 @@ row = [ ] [[rows]] +height = 1.0 row = [ 'LCtrlMed', 'LFn', diff --git a/rog-aura/data/layouts/ga401_US.toml b/rog-aura/data/layouts/ga401_US.toml index 4da44d63..2bcb2f2a 100644 --- a/rog-aura/data/layouts/ga401_US.toml +++ b/rog-aura/data/layouts/ga401_US.toml @@ -10,6 +10,7 @@ matches = [ locale = "US" [[rows]] +height = 0.8 row = [ 'NormalSpacer', 'FuncSpacer', @@ -20,6 +21,7 @@ row = [ ] [[rows]] +height = 0.8 row = [ 'Esc', 'FuncSpacer', @@ -40,6 +42,7 @@ row = [ ] [[rows]] +height = 1.0 row = [ 'Tilde', 'N1', @@ -58,6 +61,7 @@ row = [ ] [[rows]] +height = 1.0 row = [ 'Tab', 'Q', @@ -76,6 +80,7 @@ row = [ ] [[rows]] +height = 1.0 row = [ 'Caps', 'A', @@ -93,6 +98,7 @@ row = [ ] [[rows]] +height = 1.0 row = [ 'LShift', 'Z', @@ -109,6 +115,7 @@ row = [ ] [[rows]] +height = 1.2 row = [ 'LCtrl', 'LFn', @@ -124,6 +131,7 @@ row = [ ] [[rows]] +height = 0.8 row = [ 'FuncSpacer', 'FuncSpacer', diff --git a/rog-aura/data/layouts/gl504_US.toml b/rog-aura/data/layouts/gl504_US.toml index 58998526..ee72fbf8 100644 --- a/rog-aura/data/layouts/gl504_US.toml +++ b/rog-aura/data/layouts/gl504_US.toml @@ -5,6 +5,7 @@ matches = [ locale = "US" [[rows]] +height = 0.8 row = [ 'NormalSpacer', 'FuncSpacer', @@ -15,6 +16,7 @@ row = [ ] [[rows]] +height = 0.8 row = [ 'Esc', 'FuncSpacer', @@ -39,6 +41,7 @@ row = [ ] [[rows]] +height = 1.0 row = [ 'Tilde', 'N1', @@ -61,6 +64,7 @@ row = [ ] [[rows]] +height = 1.0 row = [ 'Tab', 'Q', @@ -83,6 +87,7 @@ row = [ ] [[rows]] +height = 1.0 row = [ 'Caps', 'A', @@ -104,6 +109,7 @@ row = [ ] [[rows]] +height = 1.0 row = [ 'LShift', 'Z', @@ -124,8 +130,9 @@ row = [ ] [[rows]] +height = 1.0 row = [ - 'LCtrlMed', + 'LCtrl', 'LFn', 'Meta', 'LAlt', @@ -141,6 +148,7 @@ row = [ ] [[rows]] +height = 1.0 row = [ 'FuncSpacer', 'FuncSpacer', diff --git a/rog-aura/data/layouts/gx502_US.toml b/rog-aura/data/layouts/gx502_US.toml index af53a1d2..624de569 100644 --- a/rog-aura/data/layouts/gx502_US.toml +++ b/rog-aura/data/layouts/gx502_US.toml @@ -6,6 +6,7 @@ matches = [ locale = "US" [[rows]] +height = 0.8 row = [ 'NormalSpacer', 'FuncSpacer', @@ -16,6 +17,7 @@ row = [ ] [[rows]] +height = 0.8 row = [ 'Esc', 'FuncSpacer', @@ -38,6 +40,7 @@ row = [ ] [[rows]] +height = 1.0 row = [ 'Tilde', 'N1', @@ -60,6 +63,7 @@ row = [ ] [[rows]] +height = 1.0 row = [ 'Tab', 'Q', @@ -80,6 +84,7 @@ row = [ ] [[rows]] +height = 1.0 row = [ 'Caps', 'A', @@ -101,6 +106,7 @@ row = [ ] [[rows]] +height = 1.0 row = [ 'LShift', 'Z', @@ -121,6 +127,7 @@ row = [ ] [[rows]] +height = 1.2 row = [ 'LCtrl', 'LFn', @@ -142,6 +149,7 @@ row = [ ] [[rows]] +height = 0.8 row = [ 'FuncSpacer', 'FuncSpacer', diff --git a/rog-aura/src/keys.rs b/rog-aura/src/keys.rs index 887a4636..78c6f36b 100644 --- a/rog-aura/src/keys.rs +++ b/rog-aura/src/keys.rs @@ -193,7 +193,7 @@ pub enum KeyShape { } impl KeyShape { - pub const fn ux(&self) -> f32 { + pub const fn width(&self) -> f32 { match self { Self::Tilde => 0.8, Self::Normal => 1.0, @@ -208,7 +208,7 @@ impl KeyShape { Self::LShift => 2.0, Self::LShift3 => 0.67, Self::RShift => 2.8, - Self::RshiftSmall => 1.7, + Self::RshiftSmall => 1.8, Self::RShift3 => 0.93, Self::Return => 2.2, Self::Return3 => 0.7333, @@ -223,17 +223,6 @@ impl KeyShape { Self::RowEndSpacer => 0.1, } } - pub const fn uy(&self) -> f32 { - match self { - Self::Func => 0.8, - Self::RowEndSpacer => 0.1, - Self::FuncBlank => 0.8, - Self::FuncSpacer => 0.8, - Self::Arrow | Self::ArrowBlank | Self::ArrowSpacer => 0.6, - Self::ArrowSplit | Self::ArrowSplitBlank | Self::ArrowSplitSpacer => 5.0, - _ => 1.0, - } - } /// A blank is used to space keys out in GUI's and can be used or ignored /// depednign on the per-key effect diff --git a/rog-aura/src/layouts/g513.rs b/rog-aura/src/layouts/g513.rs index 8873b5d7..e8fc0f22 100644 --- a/rog-aura/src/layouts/g513.rs +++ b/rog-aura/src/layouts/g513.rs @@ -8,138 +8,162 @@ impl KeyLayout { matches: vec!["G513".into()], locale: "US".to_string(), rows: vec![ - KeyRow::new(vec![ - Key::NormalSpacer, - Key::FuncSpacer, - Key::VolDown, - Key::VolUp, - Key::MicMute, - Key::Fan, - Key::Rog, - ]), - KeyRow::new(vec![ - Key::Esc, - Key::FuncSpacer, - Key::F1, - Key::F2, - Key::F3, - Key::F4, - Key::FuncSpacer, // not sure which key to put here - Key::F5, - Key::F6, - Key::F7, - Key::F8, - Key::FuncSpacer, - Key::F9, - Key::F10, - Key::F11, - Key::F12, - Key::RowEndSpacer, - Key::Del, - ]), - KeyRow::new(vec![ - Key::Tilde, - Key::N1, - Key::N2, - Key::N3, - Key::N4, - Key::N5, - Key::N6, - Key::N7, - Key::N8, - Key::N9, - Key::N0, - Key::Hyphen, - Key::Equals, - Key::BkSpc, - Key::RowEndSpacer, - Key::Home, - ]), - KeyRow::new(vec![ - Key::Tab, - Key::Q, - Key::W, - Key::E, - Key::R, - Key::T, - Key::Y, - Key::U, - Key::I, - Key::O, - Key::P, - Key::LBracket, - Key::RBracket, - Key::BackSlash, - Key::RowEndSpacer, - Key::PgUp, - ]), - KeyRow::new(vec![ - Key::Caps, - Key::A, - Key::S, - Key::D, - Key::F, - Key::G, - Key::H, - Key::J, - Key::K, - Key::L, - Key::SemiColon, - Key::Quote, - Key::Return, - Key::RowEndSpacer, - Key::PgDn, - ]), - KeyRow::new(vec![ - Key::LShift, - Key::Z, - Key::X, - Key::C, - Key::V, - Key::B, - Key::N, - Key::M, - Key::Comma, - Key::Period, - Key::FwdSlash, - Key::Rshift, - Key::RowEndSpacer, - Key::End, - ]), - KeyRow::new(vec![ - Key::LCtrl, - Key::LFn, - Key::Meta, - Key::LAlt, - Key::Space, - Key::RAlt, - Key::PrtSc, - Key::RCtrl, - Key::ArrowSpacer, - Key::Up, - Key::ArrowSpacer, - Key::RowEndSpacer, - Key::RFn, - ]), - KeyRow::new(vec![ - Key::ArrowSpacer, - Key::ArrowSpacer, - Key::ArrowSpacer, - Key::ArrowSpacer, - Key::ArrowSpacer, - Key::ArrowSpacer, - Key::ArrowSpacer, - Key::ArrowSpacer, - Key::ArrowSpacer, - Key::ArrowSpacer, - Key::ArrowSpacer, - Key::ArrowSpacer, - Key::ArrowSpacer, - Key::Left, - Key::Down, - Key::Right, - Key::ArrowSpacer, - ]), + KeyRow::new( + 0.8, + vec![ + Key::NormalSpacer, + Key::FuncSpacer, + Key::VolDown, + Key::VolUp, + Key::MicMute, + Key::Fan, + Key::Rog, + ], + ), + KeyRow::new( + 0.8, + vec![ + Key::Esc, + Key::FuncSpacer, + Key::F1, + Key::F2, + Key::F3, + Key::F4, + Key::FuncSpacer, // not sure which key to put here + Key::F5, + Key::F6, + Key::F7, + Key::F8, + Key::FuncSpacer, + Key::F9, + Key::F10, + Key::F11, + Key::F12, + Key::RowEndSpacer, + Key::Del, + ], + ), + KeyRow::new( + 1.0, + vec![ + Key::Tilde, + Key::N1, + Key::N2, + Key::N3, + Key::N4, + Key::N5, + Key::N6, + Key::N7, + Key::N8, + Key::N9, + Key::N0, + Key::Hyphen, + Key::Equals, + Key::BkSpc, + Key::RowEndSpacer, + Key::Home, + ], + ), + KeyRow::new( + 1.0, + vec![ + Key::Tab, + Key::Q, + Key::W, + Key::E, + Key::R, + Key::T, + Key::Y, + Key::U, + Key::I, + Key::O, + Key::P, + Key::LBracket, + Key::RBracket, + Key::BackSlash, + Key::RowEndSpacer, + Key::PgUp, + ], + ), + KeyRow::new( + 1.0, + vec![ + Key::Caps, + Key::A, + Key::S, + Key::D, + Key::F, + Key::G, + Key::H, + Key::J, + Key::K, + Key::L, + Key::SemiColon, + Key::Quote, + Key::Return, + Key::RowEndSpacer, + Key::PgDn, + ], + ), + KeyRow::new( + 1.0, + vec![ + Key::LShift, + Key::Z, + Key::X, + Key::C, + Key::V, + Key::B, + Key::N, + Key::M, + Key::Comma, + Key::Period, + Key::FwdSlash, + Key::Rshift, + Key::RowEndSpacer, + Key::End, + ], + ), + KeyRow::new( + 1.0, + vec![ + Key::LCtrl, + Key::LFn, + Key::Meta, + Key::LAlt, + Key::Space, + Key::RAlt, + Key::PrtSc, + Key::RCtrl, + Key::ArrowSpacer, + Key::Up, + Key::ArrowSpacer, + Key::RowEndSpacer, + Key::RFn, + ], + ), + KeyRow::new( + 1.0, + vec![ + Key::ArrowSpacer, + Key::ArrowSpacer, + Key::ArrowSpacer, + Key::ArrowSpacer, + Key::ArrowSpacer, + Key::ArrowSpacer, + Key::ArrowSpacer, + Key::ArrowSpacer, + Key::ArrowSpacer, + Key::ArrowSpacer, + Key::ArrowSpacer, + Key::ArrowSpacer, + Key::ArrowSpacer, + Key::Left, + Key::Down, + Key::Right, + Key::ArrowSpacer, + ], + ), ], } } diff --git a/rog-aura/src/layouts/ga401.rs b/rog-aura/src/layouts/ga401.rs index ae905318..5a8682db 100644 --- a/rog-aura/src/layouts/ga401.rs +++ b/rog-aura/src/layouts/ga401.rs @@ -7,125 +7,149 @@ impl KeyLayout { matches: vec!["GA401".into(), "GA402".into()], locale: "US".to_string(), rows: vec![ - KeyRow::new(vec![ - Key::NormalSpacer, - Key::FuncSpacer, - Key::VolDown, - Key::VolUp, - Key::MicMute, - Key::Rog, - ]), - KeyRow::new(vec![ - Key::Esc, - Key::FuncSpacer, - Key::F1, - Key::F2, - Key::F3, - Key::F4, - Key::FuncSpacer, // not sure which key to put here - Key::F5, - Key::F6, - Key::F7, - Key::F8, - Key::FuncSpacer, - Key::F9, - Key::F10, - Key::F11, - Key::F12, - ]), - KeyRow::new(vec![ - Key::Tilde, - Key::N1, - Key::N2, - Key::N3, - Key::N4, - Key::N5, - Key::N6, - Key::N7, - Key::N8, - Key::N9, - Key::N0, - Key::Hyphen, - Key::Equals, - Key::BkSpc, - ]), - KeyRow::new(vec![ - Key::Tab, - Key::Q, - Key::W, - Key::E, - Key::R, - Key::T, - Key::Y, - Key::U, - Key::I, - Key::O, - Key::P, - Key::LBracket, - Key::RBracket, - Key::BackSlash, - ]), - KeyRow::new(vec![ - Key::Caps, - Key::A, - Key::S, - Key::D, - Key::F, - Key::G, - Key::H, - Key::J, - Key::K, - Key::L, - Key::SemiColon, - Key::Quote, - Key::Return, - ]), - KeyRow::new(vec![ - Key::LShift, - Key::Z, - Key::X, - Key::C, - Key::V, - Key::B, - Key::N, - Key::M, - Key::Comma, - Key::Period, - Key::FwdSlash, - Key::Rshift, - ]), - KeyRow::new(vec![ - Key::LCtrl, - Key::LFn, - Key::Meta, - Key::LAlt, - Key::Space, - Key::RAlt, - Key::PrtSc, - Key::RCtrl, - Key::ArrowSpacer, - Key::Up, - Key::ArrowSpacer, - ]), - KeyRow::new(vec![ - Key::ArrowSpacer, - Key::ArrowSpacer, - Key::ArrowSpacer, - Key::ArrowSpacer, - Key::ArrowSpacer, - Key::ArrowSpacer, - Key::ArrowSpacer, - Key::ArrowSpacer, - Key::ArrowSpacer, - Key::ArrowSpacer, - Key::ArrowSpacer, - Key::ArrowSpacer, - Key::ArrowSpacer, - Key::Left, - Key::Down, - Key::Right, - Key::ArrowSpacer, - ]), + KeyRow::new( + 0.8, + vec![ + Key::NormalSpacer, + Key::FuncSpacer, + Key::VolDown, + Key::VolUp, + Key::MicMute, + Key::Rog, + ], + ), + KeyRow::new( + 0.8, + vec![ + Key::Esc, + Key::FuncSpacer, + Key::F1, + Key::F2, + Key::F3, + Key::F4, + Key::FuncSpacer, // not sure which key to put here + Key::F5, + Key::F6, + Key::F7, + Key::F8, + Key::FuncSpacer, + Key::F9, + Key::F10, + Key::F11, + Key::F12, + ], + ), + KeyRow::new( + 1.0, + vec![ + Key::Tilde, + Key::N1, + Key::N2, + Key::N3, + Key::N4, + Key::N5, + Key::N6, + Key::N7, + Key::N8, + Key::N9, + Key::N0, + Key::Hyphen, + Key::Equals, + Key::BkSpc, + ], + ), + KeyRow::new( + 1.0, + vec![ + Key::Tab, + Key::Q, + Key::W, + Key::E, + Key::R, + Key::T, + Key::Y, + Key::U, + Key::I, + Key::O, + Key::P, + Key::LBracket, + Key::RBracket, + Key::BackSlash, + ], + ), + KeyRow::new( + 1.0, + vec![ + Key::Caps, + Key::A, + Key::S, + Key::D, + Key::F, + Key::G, + Key::H, + Key::J, + Key::K, + Key::L, + Key::SemiColon, + Key::Quote, + Key::Return, + ], + ), + KeyRow::new( + 1.0, + vec![ + Key::LShift, + Key::Z, + Key::X, + Key::C, + Key::V, + Key::B, + Key::N, + Key::M, + Key::Comma, + Key::Period, + Key::FwdSlash, + Key::Rshift, + ], + ), + KeyRow::new( + 1.0, + vec![ + Key::LCtrl, + Key::LFn, + Key::Meta, + Key::LAlt, + Key::Space, + Key::RAlt, + Key::PrtSc, + Key::RCtrl, + Key::ArrowSpacer, + Key::Up, + Key::ArrowSpacer, + ], + ), + KeyRow::new( + 1.2, + vec![ + Key::ArrowSpacer, + Key::ArrowSpacer, + Key::ArrowSpacer, + Key::ArrowSpacer, + Key::ArrowSpacer, + Key::ArrowSpacer, + Key::ArrowSpacer, + Key::ArrowSpacer, + Key::ArrowSpacer, + Key::ArrowSpacer, + Key::ArrowSpacer, + Key::ArrowSpacer, + Key::ArrowSpacer, + Key::Left, + Key::Down, + Key::Right, + Key::ArrowSpacer, + ], + ), ], } } diff --git a/rog-aura/src/layouts/gx502.rs b/rog-aura/src/layouts/gx502.rs index 9b45e51e..f452b6b9 100644 --- a/rog-aura/src/layouts/gx502.rs +++ b/rog-aura/src/layouts/gx502.rs @@ -7,147 +7,171 @@ impl KeyLayout { matches: vec!["GX502".into(), "GU502".into()], locale: "US".to_string(), rows: vec![ - KeyRow::new(vec![ - Key::NormalSpacer, - Key::FuncSpacer, - Key::VolDown, - Key::VolUp, - Key::MicMute, - Key::Rog, - ]), - KeyRow::new(vec![ - Key::Esc, - Key::FuncSpacer, - Key::F1, - Key::F2, - Key::F3, - Key::F4, - Key::FuncSpacer, // not sure which key to put here - Key::F5, - Key::F6, - Key::F7, - Key::F8, - Key::FuncSpacer, - Key::F9, - Key::F10, - Key::F11, - Key::F12, - Key::RowEndSpacer, - Key::Del, - ]), - KeyRow::new(vec![ - Key::Tilde, - Key::N1, - Key::N2, - Key::N3, - Key::N4, - Key::N5, - Key::N6, - Key::N7, - Key::N8, - Key::N9, - Key::N0, - Key::Hyphen, - Key::Equals, - Key::BkSpc3_1, - Key::BkSpc3_2, - Key::BkSpc3_3, - Key::RowEndSpacer, - Key::Home, - ]), - KeyRow::new(vec![ - Key::Tab, - Key::Q, - Key::W, - Key::E, - Key::R, - Key::T, - Key::Y, - Key::U, - Key::I, - Key::O, - Key::P, - Key::LBracket, - Key::RBracket, - Key::BackSlash, - Key::RowEndSpacer, - Key::PgUp, - ]), - KeyRow::new(vec![ - Key::Caps, - Key::A, - Key::S, - Key::D, - Key::F, - Key::G, - Key::H, - Key::J, - Key::K, - Key::L, - Key::SemiColon, - Key::Quote, - Key::Return3_1, - Key::Return3_2, - Key::Return3_3, - Key::RowEndSpacer, - Key::PgDn, - ]), - KeyRow::new(vec![ - Key::LShift, - Key::Z, - Key::X, - Key::C, - Key::V, - Key::B, - Key::N, - Key::M, - Key::Comma, - Key::Period, - Key::FwdSlash, - Key::Rshift3_1, - Key::Rshift3_2, - Key::Rshift3_3, - Key::RowEndSpacer, - Key::End, - ]), - KeyRow::new(vec![ - Key::LCtrl, - Key::LFn, - Key::Meta, - Key::LAlt, - Key::Space5_1, - Key::Space5_2, - Key::Space5_3, - Key::Space5_4, - Key::Space5_5, - Key::RAlt, - Key::PrtSc, - Key::RCtrl, - Key::ArrowSpacer, - Key::Up, - Key::ArrowSpacer, - Key::RowEndSpacer, - Key::RFn, - ]), - KeyRow::new(vec![ - Key::ArrowSpacer, - Key::ArrowSpacer, - Key::ArrowSpacer, - Key::ArrowSpacer, - Key::ArrowSpacer, - Key::ArrowSpacer, - Key::ArrowSpacer, - Key::ArrowSpacer, - Key::ArrowSpacer, - Key::ArrowSpacer, - Key::ArrowSpacer, - Key::ArrowSpacer, - Key::ArrowSpacer, - Key::Left, - Key::Down, - Key::Right, - Key::ArrowSpacer, - ]), + KeyRow::new( + 0.8, + vec![ + Key::NormalSpacer, + Key::FuncSpacer, + Key::VolDown, + Key::VolUp, + Key::MicMute, + Key::Rog, + ], + ), + KeyRow::new( + 0.8, + vec![ + Key::Esc, + Key::FuncSpacer, + Key::F1, + Key::F2, + Key::F3, + Key::F4, + Key::FuncSpacer, // not sure which key to put here + Key::F5, + Key::F6, + Key::F7, + Key::F8, + Key::FuncSpacer, + Key::F9, + Key::F10, + Key::F11, + Key::F12, + Key::RowEndSpacer, + Key::Del, + ], + ), + KeyRow::new( + 1.0, + vec![ + Key::Tilde, + Key::N1, + Key::N2, + Key::N3, + Key::N4, + Key::N5, + Key::N6, + Key::N7, + Key::N8, + Key::N9, + Key::N0, + Key::Hyphen, + Key::Equals, + Key::BkSpc3_1, + Key::BkSpc3_2, + Key::BkSpc3_3, + Key::RowEndSpacer, + Key::Home, + ], + ), + KeyRow::new( + 1.0, + vec![ + Key::Tab, + Key::Q, + Key::W, + Key::E, + Key::R, + Key::T, + Key::Y, + Key::U, + Key::I, + Key::O, + Key::P, + Key::LBracket, + Key::RBracket, + Key::BackSlash, + Key::RowEndSpacer, + Key::PgUp, + ], + ), + KeyRow::new( + 1.0, + vec![ + Key::Caps, + Key::A, + Key::S, + Key::D, + Key::F, + Key::G, + Key::H, + Key::J, + Key::K, + Key::L, + Key::SemiColon, + Key::Quote, + Key::Return3_1, + Key::Return3_2, + Key::Return3_3, + Key::RowEndSpacer, + Key::PgDn, + ], + ), + KeyRow::new( + 1.0, + vec![ + Key::LShift, + Key::Z, + Key::X, + Key::C, + Key::V, + Key::B, + Key::N, + Key::M, + Key::Comma, + Key::Period, + Key::FwdSlash, + Key::Rshift3_1, + Key::Rshift3_2, + Key::Rshift3_3, + Key::RowEndSpacer, + Key::End, + ], + ), + KeyRow::new( + 1.0, + vec![ + Key::LCtrl, + Key::LFn, + Key::Meta, + Key::LAlt, + Key::Space5_1, + Key::Space5_2, + Key::Space5_3, + Key::Space5_4, + Key::Space5_5, + Key::RAlt, + Key::PrtSc, + Key::RCtrl, + Key::ArrowSpacer, + Key::Up, + Key::ArrowSpacer, + Key::RowEndSpacer, + Key::RFn, + ], + ), + KeyRow::new( + 1.0, + vec![ + Key::ArrowSpacer, + Key::ArrowSpacer, + Key::ArrowSpacer, + Key::ArrowSpacer, + Key::ArrowSpacer, + Key::ArrowSpacer, + Key::ArrowSpacer, + Key::ArrowSpacer, + Key::ArrowSpacer, + Key::ArrowSpacer, + Key::ArrowSpacer, + Key::ArrowSpacer, + Key::ArrowSpacer, + Key::Left, + Key::Down, + Key::Right, + Key::ArrowSpacer, + ], + ), ], } } diff --git a/rog-aura/src/layouts/mod.rs b/rog-aura/src/layouts/mod.rs index 2af7432e..781f27ab 100644 --- a/rog-aura/src/layouts/mod.rs +++ b/rog-aura/src/layouts/mod.rs @@ -50,15 +50,20 @@ impl KeyLayout { #[derive(Debug, Deserialize, Serialize)] pub struct KeyRow { + height: f32, row: Vec, } impl KeyRow { - pub fn new(row: Vec) -> Self { - Self { row } + pub fn new(height: f32, row: Vec) -> Self { + Self { height, row } } pub fn row(&self) -> Iter { self.row.iter() } + + pub fn height(&self) -> f32 { + self.height + } } diff --git a/rog-control-center/src/main.rs b/rog-control-center/src/main.rs index 0e703139..6938493e 100644 --- a/rog-control-center/src/main.rs +++ b/rog-control-center/src/main.rs @@ -47,7 +47,7 @@ fn main() -> Result<(), Box> { let mut path = PathBuf::from(DATA_DIR); #[cfg(feature = "mocking")] { - board_name = "G513".to_string(); + board_name = "gx502".to_string(); path.pop(); path.push("rog-aura"); path.push("data"); diff --git a/rog-control-center/src/pages/aura_page.rs b/rog-control-center/src/pages/aura_page.rs index 498b7c49..395a15f8 100644 --- a/rog-control-center/src/pages/aura_page.rs +++ b/rog-control-center/src/pages/aura_page.rs @@ -26,6 +26,7 @@ impl<'a> RogApp<'a> { ui.spacing_mut().item_spacing = egui::vec2(0.0, 0.0); let mut arrows_done = false; for row in states.keyboard_layout.rows() { + let height = row.height(); ui.horizontal_top(|ui| { for key in row.row() { // your boat @@ -38,11 +39,11 @@ impl<'a> RogApp<'a> { arrows_done = true; } } else if shape.is_blank() || shape.is_spacer() { - blank(ui, shape); + blank(ui, shape.width(), height); } else if shape.is_group() { - key_group(ui, colour, shape.ux(), shape.uy()).on_hover_text(label); + key_group(ui, colour, shape.width(), height).on_hover_text(label); } else { - key_shape(ui, colour, shape).on_hover_text(label); + key_shape(ui, colour, shape.width(), height).on_hover_text(label); } } }); @@ -51,9 +52,8 @@ impl<'a> RogApp<'a> { } } -fn key_shape(ui: &mut egui::Ui, colour: Color32, shape: KeyShape) -> egui::Response { - let desired_size = - ui.spacing().interact_size.y * egui::vec2(2.0 * shape.ux(), 2.0 * shape.uy()); +fn key_shape(ui: &mut egui::Ui, colour: Color32, ux: f32, uy: f32) -> egui::Response { + let desired_size = ui.spacing().interact_size.y * egui::vec2(2.0 * ux, 2.0 * uy); let (mut rect, mut response) = ui.allocate_exact_size(desired_size, egui::Sense::click()); rect = rect.shrink(3.0); if response.clicked() { @@ -94,32 +94,32 @@ fn key_group(ui: &mut egui::Ui, colour: Color32, ux: f32, uy: f32) -> egui::Resp response } -fn blank(ui: &mut egui::Ui, shape: KeyShape) { - let desired_size = - ui.spacing().interact_size.y * egui::vec2(2.0 * shape.ux(), 2.0 * shape.uy()); +fn blank(ui: &mut egui::Ui, ux: f32, uy: f32) { + let desired_size = ui.spacing().interact_size.y * egui::vec2(2.0 * ux, 2.0 * uy); ui.allocate_exact_size(desired_size, egui::Sense::click()); } /// Draws entire arrow cluster block. This is visibly different to the split-arrows. fn arrow_cluster(ui: &mut egui::Ui, colour: Color32) { + let height = 0.7; let space = KeyShape::ArrowSpacer; let shape = KeyShape::Arrow; ui.horizontal_top(|ui| { ui.with_layout(egui::Layout::top_down(Align::LEFT), |ui| { - blank(ui, space); + blank(ui, space.width(), height); ui.horizontal(|ui| { - blank(ui, KeyShape::RowEndSpacer); - blank(ui, KeyShape::RowEndSpacer); - key_shape(ui, colour, shape).on_hover_text("Left"); + blank(ui, KeyShape::RowEndSpacer.width(), height); + blank(ui, KeyShape::RowEndSpacer.width(), height); + key_shape(ui, colour, shape.width(), height).on_hover_text("Left"); }); }); ui.with_layout(egui::Layout::top_down(Align::LEFT), |ui| { - key_shape(ui, colour, shape).on_hover_text("Up"); - key_shape(ui, colour, shape).on_hover_text("Down"); + key_shape(ui, colour, shape.width(), height).on_hover_text("Up"); + key_shape(ui, colour, shape.width(), height).on_hover_text("Down"); }); ui.with_layout(egui::Layout::top_down(Align::LEFT), |ui| { - blank(ui, space); - key_shape(ui, colour, shape).on_hover_text("Right"); + blank(ui, space.width(), height); + key_shape(ui, colour, shape.width(), height).on_hover_text("Right"); }); }); }