~tsdh/swayr

32f22c34a7540affb59c84eaf325d5df3836de4d — Tassilo Horn a month ago c20e887
New commands: next/prev-floating-window
1 files changed, 37 insertions(+), 7 deletions(-)

M src/cmds.rs
M src/cmds.rs => src/cmds.rs +37 -7
@@ 82,6 82,14 @@ pub enum SwayrCommand {
        #[clap(subcommand)]
        windows: ConsiderWindows,
    },
    NextFloatingWindow {
        #[clap(subcommand)]
        windows: ConsiderWindows,
    },
    PrevFloatingWindow {
        #[clap(subcommand)]
        windows: ConsiderWindows,
    },
    /// Quit the selected window.
    QuitWindow,
    /// Switch to the selected workspace.


@@ 193,6 201,22 @@ pub fn exec_swayr_cmd(args: ExecSwayrCmdArgs) {
                }),
            )
        }
        SwayrCommand::NextFloatingWindow { windows } => {
            focus_next_window_in_direction(
                Direction::Forward,
                windows,
                Some(&*props.read().unwrap()),
                Box::new(|w: &con::Window| w.is_floating()),
            )
        }
        SwayrCommand::PrevFloatingWindow { windows } => {
            focus_next_window_in_direction(
                Direction::Backward,
                windows,
                Some(&*props.read().unwrap()),
                Box::new(|w: &con::Window| w.is_floating()),
            )
        }
        SwayrCommand::QuitWindow => quit_window(Some(&*props.read().unwrap())),
        SwayrCommand::SwitchWorkspace => {
            switch_workspace(Some(&*props.read().unwrap()))


@@ 243,20 267,26 @@ pub fn exec_swayr_cmd(args: ExecSwayrCmdArgs) {
                    floating: f.clone(),
                });
            }
            for f in [
            for w in [
                ConsiderWindows::AllWorkspaces,
                ConsiderWindows::CurrentWorkspace,
            ] {
                cmds.push(SwayrCommand::NextWindow { windows: f.clone() });
                cmds.push(SwayrCommand::PrevWindow { windows: f.clone() });
                cmds.push(SwayrCommand::NextTiledWindow { windows: f.clone() });
                cmds.push(SwayrCommand::PrevTiledWindow { windows: f.clone() });
                cmds.push(SwayrCommand::NextWindow { windows: w.clone() });
                cmds.push(SwayrCommand::PrevWindow { windows: w.clone() });
                cmds.push(SwayrCommand::NextTiledWindow { windows: w.clone() });
                cmds.push(SwayrCommand::PrevTiledWindow { windows: w.clone() });
                cmds.push(SwayrCommand::NextTabbedOrStackedWindow {
                    windows: f.clone(),
                    windows: w.clone(),
                });
                cmds.push(SwayrCommand::PrevTabbedOrStackedWindow {
                    windows: f.clone(),
                    windows: w.clone(),
                });
                cmds.push(SwayrCommand::NextFloatingWindow {
                    windows: w.clone(),
                });
                cmds.push(SwayrCommand::PrevFloatingWindow {
                    windows: w.clone(),
                })
            }

            if let Some(c) =