Add an option to skip the hotkey overlay at startup

This commit is contained in:
Ivan Molodetskikh
2024-01-20 08:31:05 +04:00
parent 65e864965e
commit dc47de178f
4 changed files with 28 additions and 3 deletions
+15
View File
@@ -34,6 +34,8 @@ pub struct Config {
]
pub screenshot_path: Option<String>,
#[knuffel(child, default)]
pub hotkey_overlay: HotkeyOverlay,
#[knuffel(child, default)]
pub binds: Binds,
#[knuffel(child, default)]
pub debug: DebugConfig,
@@ -336,6 +338,12 @@ pub struct Struts {
pub bottom: u16,
}
#[derive(knuffel::Decode, Debug, Default, Clone, Copy, PartialEq, Eq)]
pub struct HotkeyOverlay {
#[knuffel(child)]
pub skip_at_startup: bool,
}
#[derive(knuffel::Decode, Debug, Default, PartialEq)]
pub struct Binds(#[knuffel(children)] pub Vec<Bind>);
@@ -766,6 +774,10 @@ mod tests {
screenshot-path "~/Screenshots/screenshot.png"
hotkey-overlay {
skip-at-startup
}
binds {
Mod+T { spawn "alacritty"; }
Mod+Q { close-window; }
@@ -881,6 +893,9 @@ mod tests {
xcursor_size: 16,
},
screenshot_path: Some(String::from("~/Screenshots/screenshot.png")),
hotkey_overlay: HotkeyOverlay {
skip_at_startup: true,
},
binds: Binds(vec![
Bind {
key: Key {
+6
View File
@@ -179,6 +179,12 @@ screenshot-path "~/Pictures/Screenshots/Screenshot from %Y-%m-%d %H-%M-%S.png"
// You can also set this to null to disable saving screenshots to disk.
// screenshot-path null
// Settings for the "Important Hotkeys" overlay.
hotkey-overlay {
// Uncomment this line if you don't want to see the hotkey help at niri startup.
// skip-at-startup
}
binds {
// Keys consist of modifiers separated by + signs, followed by an XKB key name
// in the end. To find an XKB name for a particular key, you may use a program
+1 -2
View File
@@ -45,8 +45,7 @@ pub type HotkeyOverlayRenderElement<R> = RelocateRenderElement<MemoryRenderBuffe
impl HotkeyOverlay {
pub fn new(config: Rc<RefCell<Config>>, comp_mod: CompositorMod) -> Self {
Self {
// Start the compositor with the overlay open.
is_open: true,
is_open: false,
config,
comp_mod,
buffers: RefCell::new(HashMap::new()),
+6 -1
View File
@@ -868,7 +868,12 @@ impl Niri {
let screenshot_ui = ScreenshotUi::new();
let config_error_notification = ConfigErrorNotification::new();
let hotkey_overlay = HotkeyOverlay::new(config.clone(), backend.mod_key());
let mut hotkey_overlay = HotkeyOverlay::new(config.clone(), backend.mod_key());
if !config_.hotkey_overlay.skip_at_startup {
hotkey_overlay.show();
}
let exit_confirm_dialog = match ExitConfirmDialog::new() {
Ok(x) => Some(x),
Err(err) => {