feat(settings): refine density, group detailed options and add edge maximize gestures
This commit is contained in:
1 parent
d7e122711a
commit
9908dde9f8
11 files changed
+588
-195
No files matched your search
@@ -569,5 +569,24 @@
|
||||
"Panel status icons": "面板状态图标",
|
||||
"Install the matching Ferese compositor beside Settings.": "请将匹配版本的 Ferese 主程序与设置程序安装在同一目录。",
|
||||
"Quick access": "快速访问",
|
||||
"Saving…": "正在保存…"
|
||||
"Saving…": "正在保存…",
|
||||
"Workspaces and layout": "工作区与布局",
|
||||
"Spacing and corners": "间距与圆角",
|
||||
"Focus and window effects": "焦点与窗口效果",
|
||||
"Keyboard layout": "键盘布局",
|
||||
"Keyboard repeat": "按键重复",
|
||||
"Clock and date": "时钟与日期",
|
||||
"Lock background": "锁屏背景",
|
||||
"Display power": "显示器电源",
|
||||
"Colors and accents": "配色与强调色",
|
||||
"Surface and transparency": "表面与透明度",
|
||||
"Typography": "字体与排版",
|
||||
"Interface": "界面",
|
||||
"Visual accessibility": "视觉辅助",
|
||||
"Notification behavior": "通知行为",
|
||||
"Notification timing": "通知时长",
|
||||
"Wallpaper image": "壁纸图像",
|
||||
"Shortcut guide": "快捷键指南",
|
||||
"Custom shortcuts": "自定义快捷键",
|
||||
"Animations": "动画"
|
||||
}
|
||||
@@ -127,12 +127,12 @@ fn main() -> Result<(), Box<dyn Error>> {
|
||||
}
|
||||
hovers.push((v[0], v[1]));
|
||||
}
|
||||
"--click" => {
|
||||
"--click" | "--double-click" => {
|
||||
let v = parse_numbers(&args.next().ok_or("missing click position")?)?;
|
||||
if v.len() != 2 {
|
||||
return Err("invalid click".into());
|
||||
}
|
||||
clicks.push((v[0], v[1]));
|
||||
clicks.push((v[0], v[1], if arg == "--double-click" { 2 } else { 1 }));
|
||||
}
|
||||
"--drag" => {
|
||||
let v = parse_numbers(&args.next().ok_or("missing drag positions")?)?;
|
||||
@@ -273,7 +273,7 @@ fn main() -> Result<(), Box<dyn Error>> {
|
||||
queue.roundtrip(&mut state)?;
|
||||
std::thread::sleep(Duration::from_millis(120));
|
||||
}
|
||||
for (x, y) in clicks {
|
||||
for (x, y, count) in clicks {
|
||||
pointer.motion_absolute(
|
||||
started.elapsed().as_millis() as u32,
|
||||
x,
|
||||
@@ -284,22 +284,29 @@ fn main() -> Result<(), Box<dyn Error>> {
|
||||
pointer.frame();
|
||||
queue.roundtrip(&mut state)?;
|
||||
std::thread::sleep(Duration::from_millis(80));
|
||||
pointer.button(
|
||||
started.elapsed().as_millis() as u32,
|
||||
0x110,
|
||||
wl_pointer::ButtonState::Pressed,
|
||||
);
|
||||
pointer.frame();
|
||||
queue.roundtrip(&mut state)?;
|
||||
std::thread::sleep(Duration::from_millis(80));
|
||||
pointer.button(
|
||||
started.elapsed().as_millis() as u32,
|
||||
0x110,
|
||||
wl_pointer::ButtonState::Released,
|
||||
);
|
||||
pointer.frame();
|
||||
queue.roundtrip(&mut state)?;
|
||||
std::thread::sleep(Duration::from_millis(150));
|
||||
for index in 0..count {
|
||||
pointer.button(
|
||||
started.elapsed().as_millis() as u32,
|
||||
0x110,
|
||||
wl_pointer::ButtonState::Pressed,
|
||||
);
|
||||
pointer.frame();
|
||||
queue.roundtrip(&mut state)?;
|
||||
std::thread::sleep(Duration::from_millis(80));
|
||||
pointer.button(
|
||||
started.elapsed().as_millis() as u32,
|
||||
0x110,
|
||||
wl_pointer::ButtonState::Released,
|
||||
);
|
||||
pointer.frame();
|
||||
queue.roundtrip(&mut state)?;
|
||||
// Consecutive clicks must fit Iced's 300 ms double-click window.
|
||||
std::thread::sleep(Duration::from_millis(if index + 1 < count {
|
||||
80
|
||||
} else {
|
||||
150
|
||||
}));
|
||||
}
|
||||
}
|
||||
if let Some(v) = drag {
|
||||
pointer.motion_absolute(
|
||||
|
||||
Reference in new issue
Block a user