mirror of
https://gitlab.com/asus-linux/asusctl.git
synced 2026-02-06 00:15:04 +01:00
rog-aura: fix up G533 layout
This commit is contained in:
@@ -52,9 +52,7 @@ row = [
|
|||||||
'N0',
|
'N0',
|
||||||
'Hyphen',
|
'Hyphen',
|
||||||
'Equals',
|
'Equals',
|
||||||
'BkSpc3_1',
|
'BkSpc',
|
||||||
'BkSpc3_2',
|
|
||||||
'BkSpc3_3',
|
|
||||||
'Home',
|
'Home',
|
||||||
]
|
]
|
||||||
|
|
||||||
@@ -91,9 +89,7 @@ row = [
|
|||||||
'L',
|
'L',
|
||||||
'SemiColon',
|
'SemiColon',
|
||||||
'Quote',
|
'Quote',
|
||||||
'Return3_1',
|
'Return',
|
||||||
'Return3_2',
|
|
||||||
'Return3_3',
|
|
||||||
'PgDn',
|
'PgDn',
|
||||||
]
|
]
|
||||||
|
|
||||||
@@ -110,28 +106,24 @@ row = [
|
|||||||
'Comma',
|
'Comma',
|
||||||
'Period',
|
'Period',
|
||||||
'FwdSlash',
|
'FwdSlash',
|
||||||
'Caps',
|
'RshiftSmall',
|
||||||
'Up',
|
'UpRegular',
|
||||||
'End',
|
'End',
|
||||||
]
|
]
|
||||||
|
|
||||||
[[rows]]
|
[[rows]]
|
||||||
row = [
|
row = [
|
||||||
'LCtrl',
|
'LCtrlMed',
|
||||||
'LFn',
|
'LFn',
|
||||||
'Meta',
|
'Meta',
|
||||||
'LAlt',
|
'LAlt',
|
||||||
'Space5_1',
|
'Space',
|
||||||
'Space5_2',
|
|
||||||
'Space5_3',
|
|
||||||
'Space5_4',
|
|
||||||
'Space5_5',
|
|
||||||
'RAlt',
|
'RAlt',
|
||||||
'PrtSc',
|
'PrtSc',
|
||||||
'RCtrl',
|
'RCtrl',
|
||||||
'ArrowSpacer',
|
'ArrowRegularSpacer',
|
||||||
'Left',
|
'LeftRegular',
|
||||||
'Down',
|
'DownRegular',
|
||||||
'Right',
|
'RightRegular',
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|||||||
@@ -86,11 +86,13 @@ pub enum Key {
|
|||||||
Period,
|
Period,
|
||||||
FwdSlash,
|
FwdSlash,
|
||||||
Rshift,
|
Rshift,
|
||||||
|
RshiftSmall,
|
||||||
Rshift3_1,
|
Rshift3_1,
|
||||||
Rshift3_2,
|
Rshift3_2,
|
||||||
Rshift3_3,
|
Rshift3_3,
|
||||||
End,
|
End,
|
||||||
LCtrl,
|
LCtrl,
|
||||||
|
LCtrlMed,
|
||||||
LFn,
|
LFn,
|
||||||
Meta,
|
Meta,
|
||||||
LAlt,
|
LAlt,
|
||||||
@@ -107,6 +109,14 @@ pub enum Key {
|
|||||||
Down,
|
Down,
|
||||||
Left,
|
Left,
|
||||||
Right,
|
Right,
|
||||||
|
UpRegular,
|
||||||
|
DownRegular,
|
||||||
|
LeftRegular,
|
||||||
|
RightRegular,
|
||||||
|
UpSplit,
|
||||||
|
DownSplit,
|
||||||
|
LeftSplit,
|
||||||
|
RightSplit,
|
||||||
RFn,
|
RFn,
|
||||||
NormalBlank,
|
NormalBlank,
|
||||||
/// To be ignored by per-key effects
|
/// To be ignored by per-key effects
|
||||||
@@ -117,6 +127,12 @@ pub enum Key {
|
|||||||
ArrowBlank,
|
ArrowBlank,
|
||||||
/// To be ignored by per-key effects
|
/// To be ignored by per-key effects
|
||||||
ArrowSpacer,
|
ArrowSpacer,
|
||||||
|
ArrowRegularBlank,
|
||||||
|
/// To be ignored by per-key effects
|
||||||
|
ArrowRegularSpacer,
|
||||||
|
ArrowSplitBlank,
|
||||||
|
/// To be ignored by per-key effects
|
||||||
|
ArrowSplitSpacer,
|
||||||
/// A gap between regular rows and the rightside buttons
|
/// A gap between regular rows and the rightside buttons
|
||||||
RowEndSpacer,
|
RowEndSpacer,
|
||||||
}
|
}
|
||||||
@@ -136,10 +152,12 @@ pub enum KeyShape {
|
|||||||
FuncSpacer,
|
FuncSpacer,
|
||||||
Space,
|
Space,
|
||||||
Space5,
|
Space5,
|
||||||
|
LCtrlMed,
|
||||||
LShift,
|
LShift,
|
||||||
/// Used in a group of 3 (LED's)
|
/// Used in a group of 3 (LED's)
|
||||||
LShift3,
|
LShift3,
|
||||||
RShift,
|
RShift,
|
||||||
|
RshiftSmall,
|
||||||
/// Used in a group of 3 (LED's)
|
/// Used in a group of 3 (LED's)
|
||||||
RShift3,
|
RShift3,
|
||||||
Return,
|
Return,
|
||||||
@@ -152,6 +170,11 @@ pub enum KeyShape {
|
|||||||
Arrow,
|
Arrow,
|
||||||
ArrowBlank,
|
ArrowBlank,
|
||||||
ArrowSpacer,
|
ArrowSpacer,
|
||||||
|
ArrowSplit,
|
||||||
|
ArrowSplitBlank,
|
||||||
|
ArrowSplitSpacer,
|
||||||
|
ArrowRegularBlank,
|
||||||
|
ArrowRegularSpacer,
|
||||||
RowEndSpacer,
|
RowEndSpacer,
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -167,9 +190,11 @@ impl KeyShape {
|
|||||||
Self::FuncSpacer => 0.6,
|
Self::FuncSpacer => 0.6,
|
||||||
Self::Space => 5.0,
|
Self::Space => 5.0,
|
||||||
Self::Space5 => 1.0,
|
Self::Space5 => 1.0,
|
||||||
|
Self::LCtrlMed => 1.1,
|
||||||
Self::LShift => 2.1,
|
Self::LShift => 2.1,
|
||||||
Self::LShift3 => 0.67,
|
Self::LShift3 => 0.67,
|
||||||
Self::RShift => 2.7,
|
Self::RShift => 2.7,
|
||||||
|
Self::RshiftSmall => 1.7,
|
||||||
Self::RShift3 => 0.9,
|
Self::RShift3 => 0.9,
|
||||||
Self::Return => 2.2,
|
Self::Return => 2.2,
|
||||||
Self::Return3 => 0.7333,
|
Self::Return3 => 0.7333,
|
||||||
@@ -177,9 +202,9 @@ impl KeyShape {
|
|||||||
Self::Caps => 1.6,
|
Self::Caps => 1.6,
|
||||||
Self::Backspace => 2.0,
|
Self::Backspace => 2.0,
|
||||||
Self::Backspace3 => 0.666,
|
Self::Backspace3 => 0.666,
|
||||||
Self::Arrow => 0.93,
|
Self::ArrowRegularBlank | Self::ArrowRegularSpacer => 0.7,
|
||||||
Self::ArrowBlank => 0.93,
|
Self::Arrow | Self::ArrowBlank | Self::ArrowSpacer => 0.93,
|
||||||
Self::ArrowSpacer => 0.93,
|
Self::ArrowSplit | Self::ArrowSplitBlank | Self::ArrowSplitSpacer => 1.0,
|
||||||
Self::RowEndSpacer => 0.1,
|
Self::RowEndSpacer => 0.1,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -188,9 +213,8 @@ impl KeyShape {
|
|||||||
Self::Func => 0.8,
|
Self::Func => 0.8,
|
||||||
Self::FuncBlank => 0.8,
|
Self::FuncBlank => 0.8,
|
||||||
Self::FuncSpacer => 0.8,
|
Self::FuncSpacer => 0.8,
|
||||||
Self::Arrow => 0.6,
|
Self::Arrow | Self::ArrowBlank | Self::ArrowSpacer => 0.6,
|
||||||
Self::ArrowBlank => 0.6,
|
Self::ArrowSplit | Self::ArrowSplitBlank | Self::ArrowSplitSpacer => 5.0,
|
||||||
Self::ArrowSpacer => 0.6,
|
|
||||||
_ => 1.0,
|
_ => 1.0,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -199,7 +223,11 @@ impl KeyShape {
|
|||||||
/// depednign on the per-key effect
|
/// depednign on the per-key effect
|
||||||
pub const fn is_blank(&self) -> bool {
|
pub const fn is_blank(&self) -> bool {
|
||||||
match self {
|
match self {
|
||||||
Self::NormalBlank | Self::FuncBlank | Self::ArrowBlank => true,
|
Self::NormalBlank
|
||||||
|
| Self::FuncBlank
|
||||||
|
| Self::ArrowBlank
|
||||||
|
| Self::ArrowSplitBlank
|
||||||
|
| Self::ArrowRegularBlank => true,
|
||||||
_ => false,
|
_ => false,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -207,7 +235,11 @@ impl KeyShape {
|
|||||||
/// A spacer is used to space keys out in GUI's, but ignored in per-key effects
|
/// A spacer is used to space keys out in GUI's, but ignored in per-key effects
|
||||||
pub const fn is_spacer(&self) -> bool {
|
pub const fn is_spacer(&self) -> bool {
|
||||||
match self {
|
match self {
|
||||||
Self::FuncSpacer | Self::NormalSpacer | Self::ArrowSpacer => true,
|
Self::FuncSpacer
|
||||||
|
| Self::NormalSpacer
|
||||||
|
| Self::ArrowSpacer
|
||||||
|
| Self::ArrowSplitSpacer
|
||||||
|
| Self::ArrowRegularSpacer => true,
|
||||||
_ => false,
|
_ => false,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -253,25 +285,40 @@ impl From<Key> for KeyShape {
|
|||||||
|
|
||||||
Key::Return => KeyShape::Return,
|
Key::Return => KeyShape::Return,
|
||||||
Key::Return3_1 | Key::Return3_2 | Key::Return3_3 => KeyShape::Return3,
|
Key::Return3_1 | Key::Return3_2 | Key::Return3_3 => KeyShape::Return3,
|
||||||
|
Key::LCtrlMed => KeyShape::LCtrlMed,
|
||||||
Key::LShift => KeyShape::LShift,
|
Key::LShift => KeyShape::LShift,
|
||||||
|
|
||||||
Key::Rshift => KeyShape::RShift,
|
Key::Rshift => KeyShape::RShift,
|
||||||
|
Key::RshiftSmall => KeyShape::RshiftSmall,
|
||||||
Key::Rshift3_1 | Key::Rshift3_2 | Key::Rshift3_3 => KeyShape::RShift3,
|
Key::Rshift3_1 | Key::Rshift3_2 | Key::Rshift3_3 => KeyShape::RShift3,
|
||||||
|
|
||||||
Key::Space => KeyShape::Space,
|
Key::Space => KeyShape::Space,
|
||||||
Key::Space5_1 | Key::Space5_2 | Key::Space5_3 | Key::Space5_4 | Key::Space5_5 => {
|
Key::Space5_1 | Key::Space5_2 | Key::Space5_3 | Key::Space5_4 | Key::Space5_5 => {
|
||||||
KeyShape::Space5
|
KeyShape::Space5
|
||||||
}
|
}
|
||||||
Key::Up | Key::Down | Key::Left | Key::Right => KeyShape::Arrow,
|
|
||||||
Key::NormalBlank => KeyShape::NormalBlank,
|
Key::NormalBlank => KeyShape::NormalBlank,
|
||||||
Key::NormalSpacer => KeyShape::NormalSpacer,
|
Key::NormalSpacer => KeyShape::NormalSpacer,
|
||||||
|
|
||||||
Key::FuncBlank => KeyShape::FuncBlank,
|
Key::FuncBlank => KeyShape::FuncBlank,
|
||||||
Key::FuncSpacer => KeyShape::FuncSpacer,
|
Key::FuncSpacer => KeyShape::FuncSpacer,
|
||||||
|
|
||||||
|
Key::Up | Key::Down | Key::Left | Key::Right => KeyShape::Arrow,
|
||||||
Key::ArrowBlank => KeyShape::ArrowBlank,
|
Key::ArrowBlank => KeyShape::ArrowBlank,
|
||||||
Key::ArrowSpacer => KeyShape::ArrowSpacer,
|
Key::ArrowSpacer => KeyShape::ArrowSpacer,
|
||||||
|
|
||||||
|
Key::UpRegular | Key::LeftRegular | Key::DownRegular | Key::RightRegular => {
|
||||||
|
KeyShape::Normal
|
||||||
|
}
|
||||||
|
Key::ArrowRegularBlank => KeyShape::ArrowRegularBlank,
|
||||||
|
Key::ArrowRegularSpacer => KeyShape::ArrowRegularSpacer,
|
||||||
|
|
||||||
|
Key::UpSplit | Key::LeftSplit | Key::DownSplit | Key::RightSplit => {
|
||||||
|
KeyShape::ArrowSplit
|
||||||
|
}
|
||||||
|
Key::ArrowSplitBlank => KeyShape::ArrowSplitBlank,
|
||||||
|
Key::ArrowSplitSpacer => KeyShape::ArrowSplitSpacer,
|
||||||
|
|
||||||
Key::RowEndSpacer => KeyShape::RowEndSpacer,
|
Key::RowEndSpacer => KeyShape::RowEndSpacer,
|
||||||
|
|
||||||
_ => KeyShape::Normal,
|
_ => KeyShape::Normal,
|
||||||
|
|||||||
@@ -179,6 +179,20 @@ impl KeyColourArray {
|
|||||||
| Key::FuncSpacer
|
| Key::FuncSpacer
|
||||||
| Key::ArrowBlank
|
| Key::ArrowBlank
|
||||||
| Key::ArrowSpacer
|
| Key::ArrowSpacer
|
||||||
|
| Key::UpRegular
|
||||||
|
| Key::DownRegular
|
||||||
|
| Key::LeftRegular
|
||||||
|
| Key::RightRegular
|
||||||
|
| Key::UpSplit
|
||||||
|
| Key::DownSplit
|
||||||
|
| Key::LeftSplit
|
||||||
|
| Key::RightSplit
|
||||||
|
| Key::ArrowRegularBlank
|
||||||
|
| Key::ArrowRegularSpacer
|
||||||
|
| Key::ArrowSplitBlank
|
||||||
|
| Key::ArrowSplitSpacer
|
||||||
|
| Key::RshiftSmall
|
||||||
|
| Key::LCtrlMed
|
||||||
| Key::RowEndSpacer => return None,
|
| Key::RowEndSpacer => return None,
|
||||||
Key::Fan | Key::Space | Key::BkSpc => return None,
|
Key::Fan | Key::Space | Key::BkSpc => return None,
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -16,7 +16,10 @@ use std::{
|
|||||||
time::Duration,
|
time::Duration,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
#[cfg(not(feature = "mocking"))]
|
||||||
const DATA_DIR: &str = "/usr/share/rog-gui/";
|
const DATA_DIR: &str = "/usr/share/rog-gui/";
|
||||||
|
#[cfg(feature = "mocking")]
|
||||||
|
const DATA_DIR: &str = env!("CARGO_MANIFEST_DIR");
|
||||||
const BOARD_NAME: &str = "/sys/class/dmi/id/board_name";
|
const BOARD_NAME: &str = "/sys/class/dmi/id/board_name";
|
||||||
|
|
||||||
fn main() -> Result<(), Box<dyn std::error::Error>> {
|
fn main() -> Result<(), Box<dyn std::error::Error>> {
|
||||||
@@ -42,12 +45,19 @@ fn main() -> Result<(), Box<dyn std::error::Error>> {
|
|||||||
|
|
||||||
let mut layout = KeyLayout::ga401_layout(); // default
|
let mut layout = KeyLayout::ga401_layout(); // default
|
||||||
let mut path = PathBuf::from(DATA_DIR);
|
let mut path = PathBuf::from(DATA_DIR);
|
||||||
|
#[cfg(feature = "mocking")]
|
||||||
|
{
|
||||||
|
path.pop();
|
||||||
|
path.push("rog-aura");
|
||||||
|
path.push("data");
|
||||||
|
}
|
||||||
path.push("layouts");
|
path.push("layouts");
|
||||||
for path in fs::read_dir(path).map_err(|e| {
|
let path = path.as_path();
|
||||||
println!("{DATA_DIR}, {e}");
|
for p in fs::read_dir(path).map_err(|e| {
|
||||||
|
println!("{:?}, {e}", path);
|
||||||
e
|
e
|
||||||
})? {
|
})? {
|
||||||
let tmp = KeyLayout::from_file(&path?.path()).unwrap();
|
let tmp = KeyLayout::from_file(&p?.path()).unwrap();
|
||||||
if tmp.matches(board_name.as_str()) {
|
if tmp.matches(board_name.as_str()) {
|
||||||
layout = tmp;
|
layout = tmp;
|
||||||
break;
|
break;
|
||||||
|
|||||||
Reference in New Issue
Block a user