aboutsummaryrefslogtreecommitdiff
path: root/niri-config/src
diff options
context:
space:
mode:
authorIvan Molodetskikh <yalterz@gmail.com>2024-11-29 21:11:02 +0300
committerIvan Molodetskikh <yalterz@gmail.com>2024-12-30 20:12:37 +0300
commitc5fffd6e2c48aa7fb8b45b8bdcd972bbd8ce900b (patch)
treef4bf7c768d21cd72d81da6ca0d1b084631e71276 /niri-config/src
parent951f63b6fd48b47ca60e8ed6aa91b4a7b47534f9 (diff)
downloadniri-c5fffd6e2c48aa7fb8b45b8bdcd972bbd8ce900b.tar.gz
niri-c5fffd6e2c48aa7fb8b45b8bdcd972bbd8ce900b.tar.bz2
niri-c5fffd6e2c48aa7fb8b45b8bdcd972bbd8ce900b.zip
Initial WIP floating window implementation
Diffstat (limited to 'niri-config/src')
-rw-r--r--niri-config/src/lib.rs15
1 files changed, 15 insertions, 0 deletions
diff --git a/niri-config/src/lib.rs b/niri-config/src/lib.rs
index fc1fdfd4..8d755c78 100644
--- a/niri-config/src/lib.rs
+++ b/niri-config/src/lib.rs
@@ -983,6 +983,8 @@ pub struct WindowRule {
pub open_maximized: Option<bool>,
#[knuffel(child, unwrap(argument))]
pub open_fullscreen: Option<bool>,
+ #[knuffel(child, unwrap(argument))]
+ pub open_floating: Option<bool>,
// Rules applied dynamically.
#[knuffel(child, unwrap(argument))]
@@ -1254,6 +1256,10 @@ pub enum Action {
MoveWorkspaceToMonitorRight,
MoveWorkspaceToMonitorDown,
MoveWorkspaceToMonitorUp,
+ ToggleWindowFloating,
+ #[knuffel(skip)]
+ ToggleWindowFloatingById(u64),
+ SwitchFocusBetweenFloatingAndTiling,
}
impl From<niri_ipc::Action> for Action {
@@ -1386,6 +1392,13 @@ impl From<niri_ipc::Action> for Action {
niri_ipc::Action::ToggleDebugTint {} => Self::ToggleDebugTint,
niri_ipc::Action::DebugToggleOpaqueRegions {} => Self::DebugToggleOpaqueRegions,
niri_ipc::Action::DebugToggleDamage {} => Self::DebugToggleDamage,
+ niri_ipc::Action::ToggleWindowFloating { id: None } => Self::ToggleWindowFloating,
+ niri_ipc::Action::ToggleWindowFloating { id: Some(id) } => {
+ Self::ToggleWindowFloatingById(id)
+ }
+ niri_ipc::Action::SwitchFocusBetweenFloatingAndTiling {} => {
+ Self::SwitchFocusBetweenFloatingAndTiling
+ }
}
}
}
@@ -3128,6 +3141,7 @@ mod tests {
open-on-output "eDP-1"
open-maximized true
open-fullscreen false
+ open-floating false
focus-ring {
off
@@ -3406,6 +3420,7 @@ mod tests {
open_on_output: Some("eDP-1".to_owned()),
open_maximized: Some(true),
open_fullscreen: Some(false),
+ open_floating: Some(false),
focus_ring: BorderRule {
off: true,
width: Some(FloatOrInt(3.)),