Implement client-server test infra and window opening tests

These tests make a real Niri instance and real Wayland clients (via manual
wayland-rs implementation), both on the same event loop local to the test. This
allows testing the full Wayland interaction, including arbitrary event ordering
and delays.

To start off, add a massive powerset test for the settings that influence where
a window may open.
This commit is contained in:
Ivan Molodetskikh
2024-12-20 08:49:18 +03:00
parent d38bfc4aff
commit 771ea1e815
1223 changed files with 18132 additions and 1 deletions

56
Cargo.lock generated
View File

@@ -580,6 +580,18 @@ dependencies = [
"wayland-client",
]
[[package]]
name = "calloop-wayland-source"
version = "0.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "876a7a1dbbe026a55ef47a500b123af5a9a0914520f061d467914cf21be95daf"
dependencies = [
"calloop 0.14.1",
"rustix 0.38.38",
"wayland-backend",
"wayland-client",
]
[[package]]
name = "cc"
version = "1.1.31"
@@ -821,6 +833,25 @@ dependencies = [
"cfg-if",
]
[[package]]
name = "crossbeam-deque"
version = "0.8.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9dd111b7b7f7d55b72c0a6ae361660ee5853c9af73f70c3c2ef6858b950e2e51"
dependencies = [
"crossbeam-epoch",
"crossbeam-utils",
]
[[package]]
name = "crossbeam-epoch"
version = "0.9.18"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5b82ac4a3c2ca9c3460964f020e1402edd5753411d7737aa39c3714ad1b5420e"
dependencies = [
"crossbeam-utils",
]
[[package]]
name = "crossbeam-utils"
version = "0.8.20"
@@ -2410,6 +2441,7 @@ dependencies = [
"bitflags 2.6.0",
"bytemuck",
"calloop 0.14.1",
"calloop-wayland-source 0.4.0",
"clap",
"directories",
"drm-ffi",
@@ -2435,6 +2467,7 @@ dependencies = [
"profiling",
"proptest",
"proptest-derive",
"rayon",
"sd-notify",
"serde",
"serde_json",
@@ -2445,6 +2478,7 @@ dependencies = [
"tracy-client",
"url",
"wayland-backend",
"wayland-client",
"wayland-scanner",
"xcursor",
"xshell",
@@ -3337,6 +3371,26 @@ version = "0.6.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "20675572f6f24e9e76ef639bc5552774ed45f1c30e2951e1e99c59888861c539"
[[package]]
name = "rayon"
version = "1.10.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b418a60154510ca1a002a752ca9714984e21e4241e804d32555251faf8b78ffa"
dependencies = [
"either",
"rayon-core",
]
[[package]]
name = "rayon-core"
version = "1.12.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1465873a3dfdaa8ae7cb14b4383657caab0b3e8a0aa9ae8e04b044854c8dfce2"
dependencies = [
"crossbeam-deque",
"crossbeam-utils",
]
[[package]]
name = "redox_syscall"
version = "0.4.1"
@@ -3725,7 +3779,7 @@ checksum = "3457dea1f0eb631b4034d61d4d8c32074caa6cd1ab2d59f2327bd8461e2c0016"
dependencies = [
"bitflags 2.6.0",
"calloop 0.13.0",
"calloop-wayland-source",
"calloop-wayland-source 0.3.0",
"cursor-icon",
"libc",
"log",

View File

@@ -107,9 +107,12 @@ features = [
[dev-dependencies]
approx = "0.5.1"
calloop-wayland-source = "0.4.0"
insta.workspace = true
proptest = "1.5.0"
proptest-derive = { version = "0.5.0", features = ["boxed_union"] }
rayon = "1.10.0"
wayland-client = "0.31.7"
xshell = "0.2.6"
[features]

View File

@@ -28,3 +28,6 @@ pub mod pw_utils;
#[cfg(not(feature = "xdp-gnome-screencast"))]
pub use dummy_pw_utils as pw_utils;
#[cfg(test)]
mod tests;

536
src/tests/client.rs Normal file
View File

@@ -0,0 +1,536 @@
use std::cmp::min;
use std::collections::HashMap;
use std::ffi::OsStr;
use std::fmt::Write as _;
use std::os::unix::net::UnixStream;
use std::path::PathBuf;
use std::sync::atomic::{AtomicBool, Ordering};
use std::sync::Arc;
use std::time::Duration;
use std::{env, fmt};
use calloop::EventLoop;
use calloop_wayland_source::WaylandSource;
use single_pixel_buffer::v1::client::wp_single_pixel_buffer_manager_v1::WpSinglePixelBufferManagerV1;
use smithay::reexports::wayland_protocols::wp::single_pixel_buffer;
use smithay::reexports::wayland_protocols::wp::viewporter::client::wp_viewport::WpViewport;
use smithay::reexports::wayland_protocols::wp::viewporter::client::wp_viewporter::WpViewporter;
use smithay::reexports::wayland_protocols::xdg::shell::client::xdg_surface::{self, XdgSurface};
use smithay::reexports::wayland_protocols::xdg::shell::client::xdg_toplevel::{self, XdgToplevel};
use smithay::reexports::wayland_protocols::xdg::shell::client::xdg_wm_base::{self, XdgWmBase};
use wayland_backend::client::Backend;
use wayland_client::globals::Global;
use wayland_client::protocol::wl_buffer::{self, WlBuffer};
use wayland_client::protocol::wl_callback::{self, WlCallback};
use wayland_client::protocol::wl_compositor::WlCompositor;
use wayland_client::protocol::wl_display::WlDisplay;
use wayland_client::protocol::wl_output::{self, WlOutput};
use wayland_client::protocol::wl_registry::{self, WlRegistry};
use wayland_client::protocol::wl_surface::{self, WlSurface};
use wayland_client::{Connection, Dispatch, Proxy as _, QueueHandle};
use crate::utils::id::IdCounter;
pub struct Client {
pub id: ClientId,
pub event_loop: EventLoop<'static, State>,
pub connection: Connection,
pub qh: QueueHandle<State>,
pub display: WlDisplay,
pub state: State,
}
pub struct State {
pub qh: QueueHandle<State>,
pub globals: Vec<Global>,
pub outputs: HashMap<WlOutput, String>,
pub compositor: Option<WlCompositor>,
pub xdg_wm_base: Option<XdgWmBase>,
pub spbm: Option<WpSinglePixelBufferManagerV1>,
pub viewporter: Option<WpViewporter>,
pub windows: Vec<Window>,
}
pub struct Window {
pub qh: QueueHandle<State>,
pub spbm: WpSinglePixelBufferManagerV1,
pub surface: WlSurface,
pub xdg_surface: XdgSurface,
pub xdg_toplevel: XdgToplevel,
pub viewport: WpViewport,
pub pending_configure: Configure,
pub configures_received: Vec<(u32, Configure)>,
pub close_requsted: bool,
pub configures_looked_at: usize,
}
#[derive(Debug, Clone, Default)]
pub struct Configure {
pub size: (i32, i32),
pub bounds: Option<(i32, i32)>,
pub states: Vec<xdg_toplevel::State>,
}
#[derive(Default)]
pub struct SyncData {
pub done: AtomicBool,
}
static CLIENT_ID_COUNTER: IdCounter = IdCounter::new();
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
pub struct ClientId(u64);
impl ClientId {
fn next() -> ClientId {
ClientId(CLIENT_ID_COUNTER.next())
}
}
impl fmt::Display for Configure {
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
write!(f, "size: {} × {}, ", self.size.0, self.size.1)?;
if let Some(bounds) = self.bounds {
write!(f, "bounds: {} × {}, ", bounds.0, bounds.1)?;
} else {
write!(f, "bounds: none, ")?;
}
write!(f, "states: {:?}", self.states)?;
Ok(())
}
}
fn connect(socket_name: &OsStr) -> Connection {
let mut socket_path = PathBuf::from(env::var_os("XDG_RUNTIME_DIR").unwrap());
socket_path.push(socket_name);
let stream = UnixStream::connect(socket_path).unwrap();
let backend = Backend::connect(stream).unwrap();
Connection::from_backend(backend)
}
impl Client {
pub fn new(socket_name: &OsStr) -> Self {
let id = ClientId::next();
let event_loop = EventLoop::try_new().unwrap();
let connection = connect(socket_name);
let queue = connection.new_event_queue();
let qh = queue.handle();
WaylandSource::new(connection.clone(), queue)
.insert(event_loop.handle())
.unwrap();
let display = connection.display();
let _registry = display.get_registry(&qh, ());
connection.flush().unwrap();
let state = State {
qh: qh.clone(),
globals: Vec::new(),
outputs: HashMap::new(),
compositor: None,
xdg_wm_base: None,
spbm: None,
viewporter: None,
windows: Vec::new(),
};
Self {
id,
event_loop,
connection,
qh,
display,
state,
}
}
pub fn dispatch(&mut self) {
self.event_loop
.dispatch(Duration::ZERO, &mut self.state)
.unwrap();
}
pub fn send_sync(&self) -> Arc<SyncData> {
let data = Arc::new(SyncData::default());
self.display.sync(&self.qh, data.clone());
self.connection.flush().unwrap();
data
}
pub fn create_window(&mut self) -> &mut Window {
self.state.create_window()
}
pub fn window(&mut self, surface: &WlSurface) -> &mut Window {
self.state.window(surface)
}
pub fn output(&mut self, name: &str) -> WlOutput {
self.state
.outputs
.iter()
.find(|(_, v)| *v == name)
.unwrap()
.0
.clone()
}
}
impl State {
pub fn create_window(&mut self) -> &mut Window {
let compositor = self.compositor.as_ref().unwrap();
let xdg_wm_base = self.xdg_wm_base.as_ref().unwrap();
let viewporter = self.viewporter.as_ref().unwrap();
let surface = compositor.create_surface(&self.qh, ());
let xdg_surface = xdg_wm_base.get_xdg_surface(&surface, &self.qh, ());
let xdg_toplevel = xdg_surface.get_toplevel(&self.qh, ());
let viewport = viewporter.get_viewport(&surface, &self.qh, ());
let window = Window {
qh: self.qh.clone(),
spbm: self.spbm.clone().unwrap(),
surface,
xdg_surface,
xdg_toplevel,
viewport,
pending_configure: Configure::default(),
configures_received: Vec::new(),
close_requsted: false,
configures_looked_at: 0,
};
self.windows.push(window);
self.windows.last_mut().unwrap()
}
pub fn window(&mut self, surface: &WlSurface) -> &mut Window {
self.windows
.iter_mut()
.find(|w| w.surface == *surface)
.unwrap()
}
}
impl Window {
pub fn commit(&self) {
self.surface.commit();
}
pub fn ack_last(&self) {
let serial = self.configures_received.last().unwrap().0;
self.xdg_surface.ack_configure(serial);
}
pub fn ack_last_and_commit(&self) {
self.ack_last();
self.commit();
}
pub fn attach_new_buffer(&self) {
let buffer = self.spbm.create_u32_rgba_buffer(0, 0, 0, 0, &self.qh, ());
self.surface.attach(Some(&buffer), 0, 0);
}
pub fn set_size(&self, w: u16, h: u16) {
self.viewport.set_destination(i32::from(w), i32::from(h));
}
pub fn set_fullscreen(&self, output: Option<&WlOutput>) {
self.xdg_toplevel.set_fullscreen(output);
}
pub fn unset_fullscreen(&self) {
self.xdg_toplevel.unset_fullscreen();
}
pub fn set_parent(&self, parent: Option<&XdgToplevel>) {
self.xdg_toplevel.set_parent(parent);
}
pub fn set_title(&self, title: &str) {
self.xdg_toplevel.set_title(title.to_owned());
}
pub fn recent_configures(&mut self) -> impl Iterator<Item = &Configure> {
let start = self.configures_looked_at;
self.configures_looked_at = self.configures_received.len();
self.configures_received[start..].iter().map(|(_, c)| c)
}
pub fn format_recent_configures(&mut self) -> String {
let mut buf = String::new();
for configure in self.recent_configures() {
if !buf.is_empty() {
buf.push('\n');
}
write!(buf, "{configure}").unwrap();
}
buf
}
}
impl Dispatch<WlCallback, Arc<SyncData>> for State {
fn event(
_state: &mut Self,
_proxy: &WlCallback,
event: <WlCallback as wayland_client::Proxy>::Event,
data: &Arc<SyncData>,
_conn: &Connection,
_qhandle: &QueueHandle<Self>,
) {
match event {
wl_callback::Event::Done { .. } => data.done.store(true, Ordering::Relaxed),
_ => unreachable!(),
}
}
}
impl Dispatch<WlRegistry, ()> for State {
fn event(
state: &mut Self,
registry: &WlRegistry,
event: <WlRegistry as wayland_client::Proxy>::Event,
_data: &(),
_conn: &Connection,
qh: &QueueHandle<Self>,
) {
match event {
wl_registry::Event::Global {
name,
interface,
version,
} => {
if interface == WlCompositor::interface().name {
let version = min(version, WlCompositor::interface().version);
state.compositor = Some(registry.bind(name, version, qh, ()));
} else if interface == XdgWmBase::interface().name {
let version = min(version, XdgWmBase::interface().version);
state.xdg_wm_base = Some(registry.bind(name, version, qh, ()));
} else if interface == WpSinglePixelBufferManagerV1::interface().name {
let version = min(version, WpSinglePixelBufferManagerV1::interface().version);
state.spbm = Some(registry.bind(name, version, qh, ()));
} else if interface == WpViewporter::interface().name {
let version = min(version, WpViewporter::interface().version);
state.viewporter = Some(registry.bind(name, version, qh, ()));
} else if interface == WlOutput::interface().name {
let version = min(version, WlOutput::interface().version);
let output = registry.bind(name, version, qh, ());
state.outputs.insert(output, String::new());
}
let global = Global {
name,
interface,
version,
};
state.globals.push(global);
}
wl_registry::Event::GlobalRemove { .. } => (),
_ => unreachable!(),
}
}
}
impl Dispatch<WlOutput, ()> for State {
fn event(
state: &mut Self,
output: &WlOutput,
event: <WlOutput as wayland_client::Proxy>::Event,
_data: &(),
_conn: &Connection,
_qhandle: &QueueHandle<Self>,
) {
match event {
wl_output::Event::Geometry { .. } => (),
wl_output::Event::Mode { .. } => (),
wl_output::Event::Done => (),
wl_output::Event::Scale { .. } => (),
wl_output::Event::Name { name } => {
*state.outputs.get_mut(output).unwrap() = name;
}
wl_output::Event::Description { .. } => (),
_ => unreachable!(),
}
}
}
impl Dispatch<WlCompositor, ()> for State {
fn event(
_state: &mut Self,
_proxy: &WlCompositor,
_event: <WlCompositor as wayland_client::Proxy>::Event,
_data: &(),
_conn: &Connection,
_qhandle: &QueueHandle<Self>,
) {
unreachable!()
}
}
impl Dispatch<XdgWmBase, ()> for State {
fn event(
_state: &mut Self,
xdg_wm_base: &XdgWmBase,
event: <XdgWmBase as wayland_client::Proxy>::Event,
_data: &(),
_conn: &Connection,
_qhandle: &QueueHandle<Self>,
) {
match event {
xdg_wm_base::Event::Ping { serial } => {
xdg_wm_base.pong(serial);
}
_ => unreachable!(),
}
}
}
impl Dispatch<WlSurface, ()> for State {
fn event(
_state: &mut Self,
_proxy: &WlSurface,
event: <WlSurface as wayland_client::Proxy>::Event,
_data: &(),
_conn: &Connection,
_qhandle: &QueueHandle<Self>,
) {
match event {
wl_surface::Event::Enter { .. } => (),
wl_surface::Event::Leave { .. } => (),
wl_surface::Event::PreferredBufferScale { .. } => (),
wl_surface::Event::PreferredBufferTransform { .. } => (),
_ => unreachable!(),
}
}
}
impl Dispatch<XdgSurface, ()> for State {
fn event(
state: &mut Self,
xdg_surface: &XdgSurface,
event: <XdgSurface as wayland_client::Proxy>::Event,
_data: &(),
_conn: &Connection,
_qhandle: &QueueHandle<Self>,
) {
match event {
xdg_surface::Event::Configure { serial } => {
let window = state
.windows
.iter_mut()
.find(|w| w.xdg_surface == *xdg_surface)
.unwrap();
let configure = window.pending_configure.clone();
window.configures_received.push((serial, configure));
}
_ => unreachable!(),
}
}
}
impl Dispatch<XdgToplevel, ()> for State {
fn event(
state: &mut Self,
xdg_toplevel: &XdgToplevel,
event: <XdgToplevel as wayland_client::Proxy>::Event,
_data: &(),
_conn: &Connection,
_qhandle: &QueueHandle<Self>,
) {
let window = state
.windows
.iter_mut()
.find(|w| w.xdg_toplevel == *xdg_toplevel)
.unwrap();
match event {
xdg_toplevel::Event::Configure {
width,
height,
states,
} => {
let configure = &mut window.pending_configure;
configure.size = (width, height);
configure.states = states
.chunks_exact(4)
.flat_map(TryInto::<[u8; 4]>::try_into)
.map(u32::from_ne_bytes)
.flat_map(xdg_toplevel::State::try_from)
.collect();
}
xdg_toplevel::Event::Close => {
window.close_requsted = true;
}
xdg_toplevel::Event::ConfigureBounds { width, height } => {
window.pending_configure.bounds = Some((width, height));
}
xdg_toplevel::Event::WmCapabilities { .. } => (),
_ => unreachable!(),
}
}
}
impl Dispatch<WlBuffer, ()> for State {
fn event(
_state: &mut Self,
_proxy: &WlBuffer,
event: <WlBuffer as wayland_client::Proxy>::Event,
_data: &(),
_conn: &Connection,
_qhandle: &QueueHandle<Self>,
) {
match event {
wl_buffer::Event::Release => (),
_ => unreachable!(),
}
}
}
impl Dispatch<WpSinglePixelBufferManagerV1, ()> for State {
fn event(
_state: &mut Self,
_proxy: &WpSinglePixelBufferManagerV1,
_event: <WpSinglePixelBufferManagerV1 as wayland_client::Proxy>::Event,
_data: &(),
_conn: &Connection,
_qhandle: &QueueHandle<Self>,
) {
unreachable!()
}
}
impl Dispatch<WpViewporter, ()> for State {
fn event(
_state: &mut Self,
_proxy: &WpViewporter,
_event: <WpViewporter as wayland_client::Proxy>::Event,
_data: &(),
_conn: &Connection,
_qhandle: &QueueHandle<Self>,
) {
unreachable!()
}
}
impl Dispatch<WpViewport, ()> for State {
fn event(
_state: &mut Self,
_proxy: &WpViewport,
_event: <WpViewport as wayland_client::Proxy>::Event,
_data: &(),
_conn: &Connection,
_qhandle: &QueueHandle<Self>,
) {
unreachable!()
}
}

124
src/tests/fixture.rs Normal file
View File

@@ -0,0 +1,124 @@
use std::os::fd::AsFd as _;
use std::sync::atomic::Ordering;
use std::time::Duration;
use calloop::generic::Generic;
use calloop::{EventLoop, Interest, LoopHandle, Mode, PostAction};
use niri_config::Config;
use super::client::{Client, ClientId};
use super::server::Server;
use crate::niri::Niri;
pub struct Fixture {
pub event_loop: EventLoop<'static, State>,
pub handle: LoopHandle<'static, State>,
pub state: State,
}
pub struct State {
pub server: Server,
pub clients: Vec<Client>,
}
impl Fixture {
pub fn new() -> Self {
Self::with_config(Config::default())
}
pub fn with_config(config: Config) -> Self {
let event_loop = EventLoop::try_new().unwrap();
let handle = event_loop.handle();
let server = Server::new(config);
let fd = server.event_loop.as_fd().try_clone_to_owned().unwrap();
let source = Generic::new(fd, Interest::READ, Mode::Level);
handle
.insert_source(source, |_, _, state: &mut State| {
state.server.dispatch();
Ok(PostAction::Continue)
})
.unwrap();
let state = State {
server,
clients: Vec::new(),
};
Self {
event_loop,
handle,
state,
}
}
pub fn dispatch(&mut self) {
self.event_loop
.dispatch(Duration::ZERO, &mut self.state)
.unwrap();
}
pub fn niri_state(&mut self) -> &mut crate::niri::State {
&mut self.state.server.state
}
pub fn niri(&mut self) -> &mut Niri {
&mut self.niri_state().niri
}
pub fn add_output(&mut self, n: u8, size: (u16, u16)) {
let state = self.niri_state();
let niri = &mut state.niri;
state.backend.headless().add_output(niri, n, size);
}
pub fn add_client(&mut self) -> ClientId {
let client = Client::new(&self.state.server.state.niri.socket_name);
let id = client.id;
let fd = client.event_loop.as_fd().try_clone_to_owned().unwrap();
let source = Generic::new(fd, Interest::READ, Mode::Level);
self.handle
.insert_source(source, move |_, _, state: &mut State| {
state.client(id).dispatch();
Ok(PostAction::Continue)
})
.unwrap();
self.state.clients.push(client);
self.roundtrip(id);
id
}
pub fn client(&mut self, id: ClientId) -> &mut Client {
self.state.client(id)
}
pub fn roundtrip(&mut self, id: ClientId) {
let client = self.state.client(id);
let data = client.send_sync();
while !data.done.load(Ordering::Relaxed) {
self.dispatch();
}
}
/// Rountrip twice in a row.
///
/// For some reason, when running tests on many threads at once, a single roundtrip is
/// sometimes not sufficient to get the configure events to the client.
///
/// I suspect that this is because these configure events are sent from the niri loop callback,
/// so they arrive after the sync done event and don't get processed in that client dispatch
/// cycle. I'm not sure why this would be dependent on multithreading. But if this is indeed
/// the issue, then a double roundtrip fixes it.
pub fn double_roundtrip(&mut self, id: ClientId) {
self.roundtrip(id);
self.roundtrip(id);
}
}
impl State {
pub fn client(&mut self, id: ClientId) -> &mut Client {
self.clients.iter_mut().find(|c| c.id == id).unwrap()
}
}

7
src/tests/mod.rs Normal file
View File

@@ -0,0 +1,7 @@
use fixture::Fixture;
mod client;
mod fixture;
mod server;
mod window_opening;

37
src/tests/server.rs Normal file
View File

@@ -0,0 +1,37 @@
use std::time::Duration;
use calloop::EventLoop;
use niri_config::Config;
use smithay::reexports::wayland_server::Display;
use crate::niri::State;
pub struct Server {
pub event_loop: EventLoop<'static, State>,
pub state: State,
}
impl Server {
pub fn new(config: Config) -> Self {
let event_loop = EventLoop::try_new().unwrap();
let handle = event_loop.handle();
let display = Display::new().unwrap();
let state = State::new(
config,
handle.clone(),
event_loop.get_signal(),
display,
true,
)
.unwrap();
Self { event_loop, state }
}
pub fn dispatch(&mut self) {
self.event_loop
.dispatch(Duration::ZERO, &mut self.state)
.unwrap();
self.state.refresh_and_flush_clients();
}
}

View File

@@ -0,0 +1,14 @@
---
source: src/tests/window_opening.rs
description: "config:\nworkspace \"ws-1\" {\n open-on-output \"headless-1\"\n}\n\nworkspace \"ws-2\" {\n open-on-output \"headless-2\"\n}\n\nwindow-rule {\n exclude title=\"parent\"\n\n}"
expression: snapshot
snapshot_kind: text
---
final monitor: headless-1
final workspace: 0 (ws-1)
initial configure:
size: 616 × 688, bounds: 1248 × 688, states: []
post-map configures:
size: 616 × 688, bounds: 1248 × 688, states: [Activated]

View File

@@ -0,0 +1,14 @@
---
source: src/tests/window_opening.rs
description: "set parent: A1\nconfig:\nworkspace \"ws-1\" {\n open-on-output \"headless-1\"\n}\n\nworkspace \"ws-2\" {\n open-on-output \"headless-2\"\n}\n\nwindow-rule {\n exclude title=\"parent\"\n\n open-fullscreen false\n}\n\nwindow-rule {\n match title=\"parent\"\n open-on-output \"headless-1\"\n}"
expression: snapshot
snapshot_kind: text
---
final monitor: headless-1
final workspace: 0 (ws-1)
initial configure:
size: 616 × 688, bounds: 1248 × 688, states: []
post-map configures:
size: 616 × 688, bounds: 1248 × 688, states: [Activated]

View File

@@ -0,0 +1,14 @@
---
source: src/tests/window_opening.rs
description: "set parent: A2\nconfig:\nworkspace \"ws-1\" {\n open-on-output \"headless-1\"\n}\n\nworkspace \"ws-2\" {\n open-on-output \"headless-2\"\n}\n\nwindow-rule {\n exclude title=\"parent\"\n\n open-fullscreen false\n}\n\nwindow-rule {\n match title=\"parent\"\n open-on-output \"headless-2\"\n}"
expression: snapshot
snapshot_kind: text
---
final monitor: headless-1
final workspace: 0 (ws-1)
initial configure:
size: 616 × 688, bounds: 1248 × 688, states: []
post-map configures:
size: 616 × 688, bounds: 1248 × 688, states: [Activated]

View File

@@ -0,0 +1,14 @@
---
source: src/tests/window_opening.rs
description: "set parent: B1\nconfig:\nworkspace \"ws-1\" {\n open-on-output \"headless-1\"\n}\n\nworkspace \"ws-2\" {\n open-on-output \"headless-2\"\n}\n\nwindow-rule {\n exclude title=\"parent\"\n\n open-fullscreen false\n}\n\nwindow-rule {\n match title=\"parent\"\n open-on-output \"headless-1\"\n}"
expression: snapshot
snapshot_kind: text
---
final monitor: headless-1
final workspace: 0 (ws-1)
initial configure:
size: 616 × 688, bounds: 1248 × 688, states: []
post-map configures:
size: 616 × 688, bounds: 1248 × 688, states: [Activated]

View File

@@ -0,0 +1,13 @@
---
source: src/tests/window_opening.rs
description: "set parent: B2\nconfig:\nworkspace \"ws-1\" {\n open-on-output \"headless-1\"\n}\n\nworkspace \"ws-2\" {\n open-on-output \"headless-2\"\n}\n\nwindow-rule {\n exclude title=\"parent\"\n\n open-fullscreen false\n}\n\nwindow-rule {\n match title=\"parent\"\n open-on-output \"headless-2\"\n}"
expression: snapshot
snapshot_kind: text
---
final monitor: headless-2
final workspace: 0 (ws-2)
initial configure:
size: 936 × 1048, bounds: 1888 × 1048, states: []
post-map configures:

View File

@@ -0,0 +1,15 @@
---
source: src/tests/window_opening.rs
description: "want fullscreen: A1\nset parent: A1\nconfig:\nworkspace \"ws-1\" {\n open-on-output \"headless-1\"\n}\n\nworkspace \"ws-2\" {\n open-on-output \"headless-2\"\n}\n\nwindow-rule {\n exclude title=\"parent\"\n\n open-fullscreen false\n}\n\nwindow-rule {\n match title=\"parent\"\n open-on-output \"headless-1\"\n}"
expression: snapshot
snapshot_kind: text
---
final monitor: headless-1
final workspace: 0 (ws-1)
initial configure:
size: 616 × 688, bounds: 1248 × 688, states: []
post-map configures:
size: 1280 × 720, bounds: 1248 × 688, states: [Fullscreen]
size: 1280 × 720, bounds: 1248 × 688, states: [Fullscreen, Activated]

View File

@@ -0,0 +1,15 @@
---
source: src/tests/window_opening.rs
description: "want fullscreen: A1\nset parent: A2\nconfig:\nworkspace \"ws-1\" {\n open-on-output \"headless-1\"\n}\n\nworkspace \"ws-2\" {\n open-on-output \"headless-2\"\n}\n\nwindow-rule {\n exclude title=\"parent\"\n\n open-fullscreen false\n}\n\nwindow-rule {\n match title=\"parent\"\n open-on-output \"headless-2\"\n}"
expression: snapshot
snapshot_kind: text
---
final monitor: headless-1
final workspace: 0 (ws-1)
initial configure:
size: 616 × 688, bounds: 1248 × 688, states: []
post-map configures:
size: 1280 × 720, bounds: 1248 × 688, states: [Fullscreen]
size: 1280 × 720, bounds: 1248 × 688, states: [Fullscreen, Activated]

View File

@@ -0,0 +1,15 @@
---
source: src/tests/window_opening.rs
description: "want fullscreen: A1\nset parent: B1\nconfig:\nworkspace \"ws-1\" {\n open-on-output \"headless-1\"\n}\n\nworkspace \"ws-2\" {\n open-on-output \"headless-2\"\n}\n\nwindow-rule {\n exclude title=\"parent\"\n\n open-fullscreen false\n}\n\nwindow-rule {\n match title=\"parent\"\n open-on-output \"headless-1\"\n}"
expression: snapshot
snapshot_kind: text
---
final monitor: headless-1
final workspace: 0 (ws-1)
initial configure:
size: 616 × 688, bounds: 1248 × 688, states: []
post-map configures:
size: 1280 × 720, bounds: 1248 × 688, states: [Fullscreen]
size: 1280 × 720, bounds: 1248 × 688, states: [Fullscreen, Activated]

View File

@@ -0,0 +1,15 @@
---
source: src/tests/window_opening.rs
description: "want fullscreen: A1\nset parent: B2\nconfig:\nworkspace \"ws-1\" {\n open-on-output \"headless-1\"\n}\n\nworkspace \"ws-2\" {\n open-on-output \"headless-2\"\n}\n\nwindow-rule {\n exclude title=\"parent\"\n\n open-fullscreen false\n}\n\nwindow-rule {\n match title=\"parent\"\n open-on-output \"headless-2\"\n}"
expression: snapshot
snapshot_kind: text
---
final monitor: headless-2
final workspace: 0 (ws-2)
initial configure:
size: 936 × 1048, bounds: 1888 × 1048, states: []
post-map configures:
size: 1280 × 720, bounds: 1248 × 688, states: [Fullscreen]
size: 1920 × 1080, bounds: 1888 × 1048, states: [Fullscreen]

View File

@@ -0,0 +1,15 @@
---
source: src/tests/window_opening.rs
description: "want fullscreen: A1\nconfig:\nworkspace \"ws-1\" {\n open-on-output \"headless-1\"\n}\n\nworkspace \"ws-2\" {\n open-on-output \"headless-2\"\n}\n\nwindow-rule {\n exclude title=\"parent\"\n\n open-fullscreen false\n}"
expression: snapshot
snapshot_kind: text
---
final monitor: headless-1
final workspace: 0 (ws-1)
initial configure:
size: 616 × 688, bounds: 1248 × 688, states: []
post-map configures:
size: 1280 × 720, bounds: 1248 × 688, states: [Fullscreen]
size: 1280 × 720, bounds: 1248 × 688, states: [Fullscreen, Activated]

View File

@@ -0,0 +1,15 @@
---
source: src/tests/window_opening.rs
description: "want fullscreen: A2\nset parent: A1\nconfig:\nworkspace \"ws-1\" {\n open-on-output \"headless-1\"\n}\n\nworkspace \"ws-2\" {\n open-on-output \"headless-2\"\n}\n\nwindow-rule {\n exclude title=\"parent\"\n\n open-fullscreen false\n}\n\nwindow-rule {\n match title=\"parent\"\n open-on-output \"headless-1\"\n}"
expression: snapshot
snapshot_kind: text
---
final monitor: headless-1
final workspace: 0 (ws-1)
initial configure:
size: 616 × 688, bounds: 1248 × 688, states: []
post-map configures:
size: 1920 × 1080, bounds: 1888 × 1048, states: [Fullscreen]
size: 1280 × 720, bounds: 1248 × 688, states: [Fullscreen, Activated]

View File

@@ -0,0 +1,14 @@
---
source: src/tests/window_opening.rs
description: "want fullscreen: A2\nset parent: A2\nconfig:\nworkspace \"ws-1\" {\n open-on-output \"headless-1\"\n}\n\nworkspace \"ws-2\" {\n open-on-output \"headless-2\"\n}\n\nwindow-rule {\n exclude title=\"parent\"\n\n open-fullscreen false\n}\n\nwindow-rule {\n match title=\"parent\"\n open-on-output \"headless-2\"\n}"
expression: snapshot
snapshot_kind: text
---
final monitor: headless-2
final workspace: 0 (ws-2)
initial configure:
size: 616 × 688, bounds: 1248 × 688, states: []
post-map configures:
size: 1920 × 1080, bounds: 1888 × 1048, states: [Fullscreen]

View File

@@ -0,0 +1,15 @@
---
source: src/tests/window_opening.rs
description: "want fullscreen: A2\nset parent: B1\nconfig:\nworkspace \"ws-1\" {\n open-on-output \"headless-1\"\n}\n\nworkspace \"ws-2\" {\n open-on-output \"headless-2\"\n}\n\nwindow-rule {\n exclude title=\"parent\"\n\n open-fullscreen false\n}\n\nwindow-rule {\n match title=\"parent\"\n open-on-output \"headless-1\"\n}"
expression: snapshot
snapshot_kind: text
---
final monitor: headless-1
final workspace: 0 (ws-1)
initial configure:
size: 616 × 688, bounds: 1248 × 688, states: []
post-map configures:
size: 1920 × 1080, bounds: 1888 × 1048, states: [Fullscreen]
size: 1280 × 720, bounds: 1248 × 688, states: [Fullscreen, Activated]

View File

@@ -0,0 +1,14 @@
---
source: src/tests/window_opening.rs
description: "want fullscreen: A2\nset parent: B2\nconfig:\nworkspace \"ws-1\" {\n open-on-output \"headless-1\"\n}\n\nworkspace \"ws-2\" {\n open-on-output \"headless-2\"\n}\n\nwindow-rule {\n exclude title=\"parent\"\n\n open-fullscreen false\n}\n\nwindow-rule {\n match title=\"parent\"\n open-on-output \"headless-2\"\n}"
expression: snapshot
snapshot_kind: text
---
final monitor: headless-2
final workspace: 0 (ws-2)
initial configure:
size: 936 × 1048, bounds: 1888 × 1048, states: []
post-map configures:
size: 1920 × 1080, bounds: 1888 × 1048, states: [Fullscreen]

View File

@@ -0,0 +1,15 @@
---
source: src/tests/window_opening.rs
description: "want fullscreen: A2\nconfig:\nworkspace \"ws-1\" {\n open-on-output \"headless-1\"\n}\n\nworkspace \"ws-2\" {\n open-on-output \"headless-2\"\n}\n\nwindow-rule {\n exclude title=\"parent\"\n\n open-fullscreen false\n}"
expression: snapshot
snapshot_kind: text
---
final monitor: headless-1
final workspace: 0 (ws-1)
initial configure:
size: 616 × 688, bounds: 1248 × 688, states: []
post-map configures:
size: 1920 × 1080, bounds: 1888 × 1048, states: [Fullscreen]
size: 1280 × 720, bounds: 1248 × 688, states: [Fullscreen, Activated]

View File

@@ -0,0 +1,15 @@
---
source: src/tests/window_opening.rs
description: "want fullscreen: AA\nset parent: A1\nconfig:\nworkspace \"ws-1\" {\n open-on-output \"headless-1\"\n}\n\nworkspace \"ws-2\" {\n open-on-output \"headless-2\"\n}\n\nwindow-rule {\n exclude title=\"parent\"\n\n open-fullscreen false\n}\n\nwindow-rule {\n match title=\"parent\"\n open-on-output \"headless-1\"\n}"
expression: snapshot
snapshot_kind: text
---
final monitor: headless-1
final workspace: 0 (ws-1)
initial configure:
size: 616 × 688, bounds: 1248 × 688, states: []
post-map configures:
size: 616 × 688, bounds: 1248 × 688, states: []
size: 616 × 688, bounds: 1248 × 688, states: [Activated]

View File

@@ -0,0 +1,15 @@
---
source: src/tests/window_opening.rs
description: "want fullscreen: AA\nset parent: A2\nconfig:\nworkspace \"ws-1\" {\n open-on-output \"headless-1\"\n}\n\nworkspace \"ws-2\" {\n open-on-output \"headless-2\"\n}\n\nwindow-rule {\n exclude title=\"parent\"\n\n open-fullscreen false\n}\n\nwindow-rule {\n match title=\"parent\"\n open-on-output \"headless-2\"\n}"
expression: snapshot
snapshot_kind: text
---
final monitor: headless-1
final workspace: 0 (ws-1)
initial configure:
size: 616 × 688, bounds: 1248 × 688, states: []
post-map configures:
size: 616 × 688, bounds: 1248 × 688, states: []
size: 616 × 688, bounds: 1248 × 688, states: [Activated]

View File

@@ -0,0 +1,15 @@
---
source: src/tests/window_opening.rs
description: "want fullscreen: AA\nset parent: B1\nconfig:\nworkspace \"ws-1\" {\n open-on-output \"headless-1\"\n}\n\nworkspace \"ws-2\" {\n open-on-output \"headless-2\"\n}\n\nwindow-rule {\n exclude title=\"parent\"\n\n open-fullscreen false\n}\n\nwindow-rule {\n match title=\"parent\"\n open-on-output \"headless-1\"\n}"
expression: snapshot
snapshot_kind: text
---
final monitor: headless-1
final workspace: 0 (ws-1)
initial configure:
size: 616 × 688, bounds: 1248 × 688, states: []
post-map configures:
size: 616 × 688, bounds: 1248 × 688, states: []
size: 616 × 688, bounds: 1248 × 688, states: [Activated]

View File

@@ -0,0 +1,14 @@
---
source: src/tests/window_opening.rs
description: "want fullscreen: AA\nset parent: B2\nconfig:\nworkspace \"ws-1\" {\n open-on-output \"headless-1\"\n}\n\nworkspace \"ws-2\" {\n open-on-output \"headless-2\"\n}\n\nwindow-rule {\n exclude title=\"parent\"\n\n open-fullscreen false\n}\n\nwindow-rule {\n match title=\"parent\"\n open-on-output \"headless-2\"\n}"
expression: snapshot
snapshot_kind: text
---
final monitor: headless-2
final workspace: 0 (ws-2)
initial configure:
size: 936 × 1048, bounds: 1888 × 1048, states: []
post-map configures:
size: 936 × 1048, bounds: 1888 × 1048, states: []

View File

@@ -0,0 +1,15 @@
---
source: src/tests/window_opening.rs
description: "want fullscreen: AA\nconfig:\nworkspace \"ws-1\" {\n open-on-output \"headless-1\"\n}\n\nworkspace \"ws-2\" {\n open-on-output \"headless-2\"\n}\n\nwindow-rule {\n exclude title=\"parent\"\n\n open-fullscreen false\n}"
expression: snapshot
snapshot_kind: text
---
final monitor: headless-1
final workspace: 0 (ws-1)
initial configure:
size: 616 × 688, bounds: 1248 × 688, states: []
post-map configures:
size: 616 × 688, bounds: 1248 × 688, states: []
size: 616 × 688, bounds: 1248 × 688, states: [Activated]

View File

@@ -0,0 +1,15 @@
---
source: src/tests/window_opening.rs
description: "want fullscreen: AN\nset parent: A1\nconfig:\nworkspace \"ws-1\" {\n open-on-output \"headless-1\"\n}\n\nworkspace \"ws-2\" {\n open-on-output \"headless-2\"\n}\n\nwindow-rule {\n exclude title=\"parent\"\n\n open-fullscreen false\n}\n\nwindow-rule {\n match title=\"parent\"\n open-on-output \"headless-1\"\n}"
expression: snapshot
snapshot_kind: text
---
final monitor: headless-1
final workspace: 0 (ws-1)
initial configure:
size: 616 × 688, bounds: 1248 × 688, states: []
post-map configures:
size: 1280 × 720, bounds: 1248 × 688, states: [Fullscreen]
size: 1280 × 720, bounds: 1248 × 688, states: [Fullscreen, Activated]

View File

@@ -0,0 +1,15 @@
---
source: src/tests/window_opening.rs
description: "want fullscreen: AN\nset parent: A2\nconfig:\nworkspace \"ws-1\" {\n open-on-output \"headless-1\"\n}\n\nworkspace \"ws-2\" {\n open-on-output \"headless-2\"\n}\n\nwindow-rule {\n exclude title=\"parent\"\n\n open-fullscreen false\n}\n\nwindow-rule {\n match title=\"parent\"\n open-on-output \"headless-2\"\n}"
expression: snapshot
snapshot_kind: text
---
final monitor: headless-1
final workspace: 0 (ws-1)
initial configure:
size: 616 × 688, bounds: 1248 × 688, states: []
post-map configures:
size: 1280 × 720, bounds: 1248 × 688, states: [Fullscreen]
size: 1280 × 720, bounds: 1248 × 688, states: [Fullscreen, Activated]

View File

@@ -0,0 +1,15 @@
---
source: src/tests/window_opening.rs
description: "want fullscreen: AN\nset parent: B1\nconfig:\nworkspace \"ws-1\" {\n open-on-output \"headless-1\"\n}\n\nworkspace \"ws-2\" {\n open-on-output \"headless-2\"\n}\n\nwindow-rule {\n exclude title=\"parent\"\n\n open-fullscreen false\n}\n\nwindow-rule {\n match title=\"parent\"\n open-on-output \"headless-1\"\n}"
expression: snapshot
snapshot_kind: text
---
final monitor: headless-1
final workspace: 0 (ws-1)
initial configure:
size: 616 × 688, bounds: 1248 × 688, states: []
post-map configures:
size: 1280 × 720, bounds: 1248 × 688, states: [Fullscreen]
size: 1280 × 720, bounds: 1248 × 688, states: [Fullscreen, Activated]

View File

@@ -0,0 +1,14 @@
---
source: src/tests/window_opening.rs
description: "want fullscreen: AN\nset parent: B2\nconfig:\nworkspace \"ws-1\" {\n open-on-output \"headless-1\"\n}\n\nworkspace \"ws-2\" {\n open-on-output \"headless-2\"\n}\n\nwindow-rule {\n exclude title=\"parent\"\n\n open-fullscreen false\n}\n\nwindow-rule {\n match title=\"parent\"\n open-on-output \"headless-2\"\n}"
expression: snapshot
snapshot_kind: text
---
final monitor: headless-2
final workspace: 0 (ws-2)
initial configure:
size: 936 × 1048, bounds: 1888 × 1048, states: []
post-map configures:
size: 1920 × 1080, bounds: 1888 × 1048, states: [Fullscreen]

View File

@@ -0,0 +1,15 @@
---
source: src/tests/window_opening.rs
description: "want fullscreen: AN\nconfig:\nworkspace \"ws-1\" {\n open-on-output \"headless-1\"\n}\n\nworkspace \"ws-2\" {\n open-on-output \"headless-2\"\n}\n\nwindow-rule {\n exclude title=\"parent\"\n\n open-fullscreen false\n}"
expression: snapshot
snapshot_kind: text
---
final monitor: headless-1
final workspace: 0 (ws-1)
initial configure:
size: 616 × 688, bounds: 1248 × 688, states: []
post-map configures:
size: 1280 × 720, bounds: 1248 × 688, states: [Fullscreen]
size: 1280 × 720, bounds: 1248 × 688, states: [Fullscreen, Activated]

View File

@@ -0,0 +1,14 @@
---
source: src/tests/window_opening.rs
description: "want fullscreen: B1\nset parent: A1\nconfig:\nworkspace \"ws-1\" {\n open-on-output \"headless-1\"\n}\n\nworkspace \"ws-2\" {\n open-on-output \"headless-2\"\n}\n\nwindow-rule {\n exclude title=\"parent\"\n\n open-fullscreen false\n}\n\nwindow-rule {\n match title=\"parent\"\n open-on-output \"headless-1\"\n}"
expression: snapshot
snapshot_kind: text
---
final monitor: headless-1
final workspace: 0 (ws-1)
initial configure:
size: 616 × 688, bounds: 1248 × 688, states: []
post-map configures:
size: 616 × 688, bounds: 1248 × 688, states: [Activated]

View File

@@ -0,0 +1,14 @@
---
source: src/tests/window_opening.rs
description: "want fullscreen: B1\nset parent: A2\nconfig:\nworkspace \"ws-1\" {\n open-on-output \"headless-1\"\n}\n\nworkspace \"ws-2\" {\n open-on-output \"headless-2\"\n}\n\nwindow-rule {\n exclude title=\"parent\"\n\n open-fullscreen false\n}\n\nwindow-rule {\n match title=\"parent\"\n open-on-output \"headless-2\"\n}"
expression: snapshot
snapshot_kind: text
---
final monitor: headless-1
final workspace: 0 (ws-1)
initial configure:
size: 616 × 688, bounds: 1248 × 688, states: []
post-map configures:
size: 616 × 688, bounds: 1248 × 688, states: [Activated]

View File

@@ -0,0 +1,14 @@
---
source: src/tests/window_opening.rs
description: "want fullscreen: B1\nset parent: B1\nconfig:\nworkspace \"ws-1\" {\n open-on-output \"headless-1\"\n}\n\nworkspace \"ws-2\" {\n open-on-output \"headless-2\"\n}\n\nwindow-rule {\n exclude title=\"parent\"\n\n open-fullscreen false\n}\n\nwindow-rule {\n match title=\"parent\"\n open-on-output \"headless-1\"\n}"
expression: snapshot
snapshot_kind: text
---
final monitor: headless-1
final workspace: 0 (ws-1)
initial configure:
size: 616 × 688, bounds: 1248 × 688, states: []
post-map configures:
size: 616 × 688, bounds: 1248 × 688, states: [Activated]

View File

@@ -0,0 +1,14 @@
---
source: src/tests/window_opening.rs
description: "want fullscreen: B1\nset parent: B2\nconfig:\nworkspace \"ws-1\" {\n open-on-output \"headless-1\"\n}\n\nworkspace \"ws-2\" {\n open-on-output \"headless-2\"\n}\n\nwindow-rule {\n exclude title=\"parent\"\n\n open-fullscreen false\n}\n\nwindow-rule {\n match title=\"parent\"\n open-on-output \"headless-2\"\n}"
expression: snapshot
snapshot_kind: text
---
final monitor: headless-1
final workspace: 0 (ws-1)
initial configure:
size: 616 × 688, bounds: 1248 × 688, states: []
post-map configures:
size: 616 × 688, bounds: 1248 × 688, states: [Activated]

View File

@@ -0,0 +1,14 @@
---
source: src/tests/window_opening.rs
description: "want fullscreen: B1\nconfig:\nworkspace \"ws-1\" {\n open-on-output \"headless-1\"\n}\n\nworkspace \"ws-2\" {\n open-on-output \"headless-2\"\n}\n\nwindow-rule {\n exclude title=\"parent\"\n\n open-fullscreen false\n}"
expression: snapshot
snapshot_kind: text
---
final monitor: headless-1
final workspace: 0 (ws-1)
initial configure:
size: 616 × 688, bounds: 1248 × 688, states: []
post-map configures:
size: 616 × 688, bounds: 1248 × 688, states: [Activated]

View File

@@ -0,0 +1,13 @@
---
source: src/tests/window_opening.rs
description: "want fullscreen: B2\nset parent: A1\nconfig:\nworkspace \"ws-1\" {\n open-on-output \"headless-1\"\n}\n\nworkspace \"ws-2\" {\n open-on-output \"headless-2\"\n}\n\nwindow-rule {\n exclude title=\"parent\"\n\n open-fullscreen false\n}\n\nwindow-rule {\n match title=\"parent\"\n open-on-output \"headless-1\"\n}"
expression: snapshot
snapshot_kind: text
---
final monitor: headless-2
final workspace: 0 (ws-2)
initial configure:
size: 936 × 1048, bounds: 1888 × 1048, states: []
post-map configures:

View File

@@ -0,0 +1,13 @@
---
source: src/tests/window_opening.rs
description: "want fullscreen: B2\nset parent: A2\nconfig:\nworkspace \"ws-1\" {\n open-on-output \"headless-1\"\n}\n\nworkspace \"ws-2\" {\n open-on-output \"headless-2\"\n}\n\nwindow-rule {\n exclude title=\"parent\"\n\n open-fullscreen false\n}\n\nwindow-rule {\n match title=\"parent\"\n open-on-output \"headless-2\"\n}"
expression: snapshot
snapshot_kind: text
---
final monitor: headless-2
final workspace: 0 (ws-2)
initial configure:
size: 936 × 1048, bounds: 1888 × 1048, states: []
post-map configures:

View File

@@ -0,0 +1,13 @@
---
source: src/tests/window_opening.rs
description: "want fullscreen: B2\nset parent: B1\nconfig:\nworkspace \"ws-1\" {\n open-on-output \"headless-1\"\n}\n\nworkspace \"ws-2\" {\n open-on-output \"headless-2\"\n}\n\nwindow-rule {\n exclude title=\"parent\"\n\n open-fullscreen false\n}\n\nwindow-rule {\n match title=\"parent\"\n open-on-output \"headless-1\"\n}"
expression: snapshot
snapshot_kind: text
---
final monitor: headless-2
final workspace: 0 (ws-2)
initial configure:
size: 936 × 1048, bounds: 1888 × 1048, states: []
post-map configures:

View File

@@ -0,0 +1,13 @@
---
source: src/tests/window_opening.rs
description: "want fullscreen: B2\nset parent: B2\nconfig:\nworkspace \"ws-1\" {\n open-on-output \"headless-1\"\n}\n\nworkspace \"ws-2\" {\n open-on-output \"headless-2\"\n}\n\nwindow-rule {\n exclude title=\"parent\"\n\n open-fullscreen false\n}\n\nwindow-rule {\n match title=\"parent\"\n open-on-output \"headless-2\"\n}"
expression: snapshot
snapshot_kind: text
---
final monitor: headless-2
final workspace: 0 (ws-2)
initial configure:
size: 936 × 1048, bounds: 1888 × 1048, states: []
post-map configures:

View File

@@ -0,0 +1,13 @@
---
source: src/tests/window_opening.rs
description: "want fullscreen: B2\nconfig:\nworkspace \"ws-1\" {\n open-on-output \"headless-1\"\n}\n\nworkspace \"ws-2\" {\n open-on-output \"headless-2\"\n}\n\nwindow-rule {\n exclude title=\"parent\"\n\n open-fullscreen false\n}"
expression: snapshot
snapshot_kind: text
---
final monitor: headless-2
final workspace: 0 (ws-2)
initial configure:
size: 936 × 1048, bounds: 1888 × 1048, states: []
post-map configures:

View File

@@ -0,0 +1,14 @@
---
source: src/tests/window_opening.rs
description: "want fullscreen: BN\nset parent: A1\nconfig:\nworkspace \"ws-1\" {\n open-on-output \"headless-1\"\n}\n\nworkspace \"ws-2\" {\n open-on-output \"headless-2\"\n}\n\nwindow-rule {\n exclude title=\"parent\"\n\n open-fullscreen false\n}\n\nwindow-rule {\n match title=\"parent\"\n open-on-output \"headless-1\"\n}"
expression: snapshot
snapshot_kind: text
---
final monitor: headless-1
final workspace: 0 (ws-1)
initial configure:
size: 616 × 688, bounds: 1248 × 688, states: []
post-map configures:
size: 616 × 688, bounds: 1248 × 688, states: [Activated]

View File

@@ -0,0 +1,14 @@
---
source: src/tests/window_opening.rs
description: "want fullscreen: BN\nset parent: A2\nconfig:\nworkspace \"ws-1\" {\n open-on-output \"headless-1\"\n}\n\nworkspace \"ws-2\" {\n open-on-output \"headless-2\"\n}\n\nwindow-rule {\n exclude title=\"parent\"\n\n open-fullscreen false\n}\n\nwindow-rule {\n match title=\"parent\"\n open-on-output \"headless-2\"\n}"
expression: snapshot
snapshot_kind: text
---
final monitor: headless-1
final workspace: 0 (ws-1)
initial configure:
size: 616 × 688, bounds: 1248 × 688, states: []
post-map configures:
size: 616 × 688, bounds: 1248 × 688, states: [Activated]

View File

@@ -0,0 +1,14 @@
---
source: src/tests/window_opening.rs
description: "want fullscreen: BN\nset parent: B1\nconfig:\nworkspace \"ws-1\" {\n open-on-output \"headless-1\"\n}\n\nworkspace \"ws-2\" {\n open-on-output \"headless-2\"\n}\n\nwindow-rule {\n exclude title=\"parent\"\n\n open-fullscreen false\n}\n\nwindow-rule {\n match title=\"parent\"\n open-on-output \"headless-1\"\n}"
expression: snapshot
snapshot_kind: text
---
final monitor: headless-1
final workspace: 0 (ws-1)
initial configure:
size: 616 × 688, bounds: 1248 × 688, states: []
post-map configures:
size: 616 × 688, bounds: 1248 × 688, states: [Activated]

View File

@@ -0,0 +1,13 @@
---
source: src/tests/window_opening.rs
description: "want fullscreen: BN\nset parent: B2\nconfig:\nworkspace \"ws-1\" {\n open-on-output \"headless-1\"\n}\n\nworkspace \"ws-2\" {\n open-on-output \"headless-2\"\n}\n\nwindow-rule {\n exclude title=\"parent\"\n\n open-fullscreen false\n}\n\nwindow-rule {\n match title=\"parent\"\n open-on-output \"headless-2\"\n}"
expression: snapshot
snapshot_kind: text
---
final monitor: headless-2
final workspace: 0 (ws-2)
initial configure:
size: 936 × 1048, bounds: 1888 × 1048, states: []
post-map configures:

View File

@@ -0,0 +1,14 @@
---
source: src/tests/window_opening.rs
description: "want fullscreen: BN\nconfig:\nworkspace \"ws-1\" {\n open-on-output \"headless-1\"\n}\n\nworkspace \"ws-2\" {\n open-on-output \"headless-2\"\n}\n\nwindow-rule {\n exclude title=\"parent\"\n\n open-fullscreen false\n}"
expression: snapshot
snapshot_kind: text
---
final monitor: headless-1
final workspace: 0 (ws-1)
initial configure:
size: 616 × 688, bounds: 1248 × 688, states: []
post-map configures:
size: 616 × 688, bounds: 1248 × 688, states: [Activated]

View File

@@ -0,0 +1,14 @@
---
source: src/tests/window_opening.rs
description: "want fullscreen: BU\nset parent: A1\nconfig:\nworkspace \"ws-1\" {\n open-on-output \"headless-1\"\n}\n\nworkspace \"ws-2\" {\n open-on-output \"headless-2\"\n}\n\nwindow-rule {\n exclude title=\"parent\"\n\n open-fullscreen false\n}\n\nwindow-rule {\n match title=\"parent\"\n open-on-output \"headless-1\"\n}"
expression: snapshot
snapshot_kind: text
---
final monitor: headless-1
final workspace: 0 (ws-1)
initial configure:
size: 616 × 688, bounds: 1248 × 688, states: []
post-map configures:
size: 616 × 688, bounds: 1248 × 688, states: [Activated]

View File

@@ -0,0 +1,14 @@
---
source: src/tests/window_opening.rs
description: "want fullscreen: BU\nset parent: A2\nconfig:\nworkspace \"ws-1\" {\n open-on-output \"headless-1\"\n}\n\nworkspace \"ws-2\" {\n open-on-output \"headless-2\"\n}\n\nwindow-rule {\n exclude title=\"parent\"\n\n open-fullscreen false\n}\n\nwindow-rule {\n match title=\"parent\"\n open-on-output \"headless-2\"\n}"
expression: snapshot
snapshot_kind: text
---
final monitor: headless-1
final workspace: 0 (ws-1)
initial configure:
size: 616 × 688, bounds: 1248 × 688, states: []
post-map configures:
size: 616 × 688, bounds: 1248 × 688, states: [Activated]

View File

@@ -0,0 +1,14 @@
---
source: src/tests/window_opening.rs
description: "want fullscreen: BU\nset parent: B1\nconfig:\nworkspace \"ws-1\" {\n open-on-output \"headless-1\"\n}\n\nworkspace \"ws-2\" {\n open-on-output \"headless-2\"\n}\n\nwindow-rule {\n exclude title=\"parent\"\n\n open-fullscreen false\n}\n\nwindow-rule {\n match title=\"parent\"\n open-on-output \"headless-1\"\n}"
expression: snapshot
snapshot_kind: text
---
final monitor: headless-1
final workspace: 0 (ws-1)
initial configure:
size: 616 × 688, bounds: 1248 × 688, states: []
post-map configures:
size: 616 × 688, bounds: 1248 × 688, states: [Activated]

View File

@@ -0,0 +1,13 @@
---
source: src/tests/window_opening.rs
description: "want fullscreen: BU\nset parent: B2\nconfig:\nworkspace \"ws-1\" {\n open-on-output \"headless-1\"\n}\n\nworkspace \"ws-2\" {\n open-on-output \"headless-2\"\n}\n\nwindow-rule {\n exclude title=\"parent\"\n\n open-fullscreen false\n}\n\nwindow-rule {\n match title=\"parent\"\n open-on-output \"headless-2\"\n}"
expression: snapshot
snapshot_kind: text
---
final monitor: headless-2
final workspace: 0 (ws-2)
initial configure:
size: 936 × 1048, bounds: 1888 × 1048, states: []
post-map configures:

View File

@@ -0,0 +1,14 @@
---
source: src/tests/window_opening.rs
description: "want fullscreen: BU\nconfig:\nworkspace \"ws-1\" {\n open-on-output \"headless-1\"\n}\n\nworkspace \"ws-2\" {\n open-on-output \"headless-2\"\n}\n\nwindow-rule {\n exclude title=\"parent\"\n\n open-fullscreen false\n}"
expression: snapshot
snapshot_kind: text
---
final monitor: headless-1
final workspace: 0 (ws-1)
initial configure:
size: 616 × 688, bounds: 1248 × 688, states: []
post-map configures:
size: 616 × 688, bounds: 1248 × 688, states: [Activated]

View File

@@ -0,0 +1,14 @@
---
source: src/tests/window_opening.rs
description: "config:\nworkspace \"ws-1\" {\n open-on-output \"headless-1\"\n}\n\nworkspace \"ws-2\" {\n open-on-output \"headless-2\"\n}\n\nwindow-rule {\n exclude title=\"parent\"\n\n open-fullscreen false\n}"
expression: snapshot
snapshot_kind: text
---
final monitor: headless-1
final workspace: 0 (ws-1)
initial configure:
size: 616 × 688, bounds: 1248 × 688, states: []
post-map configures:
size: 616 × 688, bounds: 1248 × 688, states: [Activated]

View File

@@ -0,0 +1,14 @@
---
source: src/tests/window_opening.rs
description: "set parent: A1\nconfig:\nworkspace \"ws-1\" {\n open-on-output \"headless-1\"\n}\n\nworkspace \"ws-2\" {\n open-on-output \"headless-2\"\n}\n\nwindow-rule {\n exclude title=\"parent\"\n\n open-fullscreen true\n}\n\nwindow-rule {\n match title=\"parent\"\n open-on-output \"headless-1\"\n}"
expression: snapshot
snapshot_kind: text
---
final monitor: headless-1
final workspace: 0 (ws-1)
initial configure:
size: 1280 × 720, bounds: 1248 × 688, states: [Fullscreen]
post-map configures:
size: 1280 × 720, bounds: 1248 × 688, states: [Fullscreen, Activated]

View File

@@ -0,0 +1,14 @@
---
source: src/tests/window_opening.rs
description: "set parent: A2\nconfig:\nworkspace \"ws-1\" {\n open-on-output \"headless-1\"\n}\n\nworkspace \"ws-2\" {\n open-on-output \"headless-2\"\n}\n\nwindow-rule {\n exclude title=\"parent\"\n\n open-fullscreen true\n}\n\nwindow-rule {\n match title=\"parent\"\n open-on-output \"headless-2\"\n}"
expression: snapshot
snapshot_kind: text
---
final monitor: headless-1
final workspace: 0 (ws-1)
initial configure:
size: 1280 × 720, bounds: 1248 × 688, states: [Fullscreen]
post-map configures:
size: 1280 × 720, bounds: 1248 × 688, states: [Fullscreen, Activated]

View File

@@ -0,0 +1,14 @@
---
source: src/tests/window_opening.rs
description: "set parent: B1\nconfig:\nworkspace \"ws-1\" {\n open-on-output \"headless-1\"\n}\n\nworkspace \"ws-2\" {\n open-on-output \"headless-2\"\n}\n\nwindow-rule {\n exclude title=\"parent\"\n\n open-fullscreen true\n}\n\nwindow-rule {\n match title=\"parent\"\n open-on-output \"headless-1\"\n}"
expression: snapshot
snapshot_kind: text
---
final monitor: headless-1
final workspace: 0 (ws-1)
initial configure:
size: 1280 × 720, bounds: 1248 × 688, states: [Fullscreen]
post-map configures:
size: 1280 × 720, bounds: 1248 × 688, states: [Fullscreen, Activated]

View File

@@ -0,0 +1,13 @@
---
source: src/tests/window_opening.rs
description: "set parent: B2\nconfig:\nworkspace \"ws-1\" {\n open-on-output \"headless-1\"\n}\n\nworkspace \"ws-2\" {\n open-on-output \"headless-2\"\n}\n\nwindow-rule {\n exclude title=\"parent\"\n\n open-fullscreen true\n}\n\nwindow-rule {\n match title=\"parent\"\n open-on-output \"headless-2\"\n}"
expression: snapshot
snapshot_kind: text
---
final monitor: headless-2
final workspace: 0 (ws-2)
initial configure:
size: 1920 × 1080, bounds: 1888 × 1048, states: [Fullscreen]
post-map configures:

View File

@@ -0,0 +1,15 @@
---
source: src/tests/window_opening.rs
description: "want fullscreen: A1\nset parent: A1\nconfig:\nworkspace \"ws-1\" {\n open-on-output \"headless-1\"\n}\n\nworkspace \"ws-2\" {\n open-on-output \"headless-2\"\n}\n\nwindow-rule {\n exclude title=\"parent\"\n\n open-fullscreen true\n}\n\nwindow-rule {\n match title=\"parent\"\n open-on-output \"headless-1\"\n}"
expression: snapshot
snapshot_kind: text
---
final monitor: headless-1
final workspace: 0 (ws-1)
initial configure:
size: 1280 × 720, bounds: 1248 × 688, states: [Fullscreen]
post-map configures:
size: 1280 × 720, bounds: 1248 × 688, states: [Fullscreen]
size: 1280 × 720, bounds: 1248 × 688, states: [Fullscreen, Activated]

View File

@@ -0,0 +1,15 @@
---
source: src/tests/window_opening.rs
description: "want fullscreen: A1\nset parent: A2\nconfig:\nworkspace \"ws-1\" {\n open-on-output \"headless-1\"\n}\n\nworkspace \"ws-2\" {\n open-on-output \"headless-2\"\n}\n\nwindow-rule {\n exclude title=\"parent\"\n\n open-fullscreen true\n}\n\nwindow-rule {\n match title=\"parent\"\n open-on-output \"headless-2\"\n}"
expression: snapshot
snapshot_kind: text
---
final monitor: headless-1
final workspace: 0 (ws-1)
initial configure:
size: 1280 × 720, bounds: 1248 × 688, states: [Fullscreen]
post-map configures:
size: 1280 × 720, bounds: 1248 × 688, states: [Fullscreen]
size: 1280 × 720, bounds: 1248 × 688, states: [Fullscreen, Activated]

View File

@@ -0,0 +1,15 @@
---
source: src/tests/window_opening.rs
description: "want fullscreen: A1\nset parent: B1\nconfig:\nworkspace \"ws-1\" {\n open-on-output \"headless-1\"\n}\n\nworkspace \"ws-2\" {\n open-on-output \"headless-2\"\n}\n\nwindow-rule {\n exclude title=\"parent\"\n\n open-fullscreen true\n}\n\nwindow-rule {\n match title=\"parent\"\n open-on-output \"headless-1\"\n}"
expression: snapshot
snapshot_kind: text
---
final monitor: headless-1
final workspace: 0 (ws-1)
initial configure:
size: 1280 × 720, bounds: 1248 × 688, states: [Fullscreen]
post-map configures:
size: 1280 × 720, bounds: 1248 × 688, states: [Fullscreen]
size: 1280 × 720, bounds: 1248 × 688, states: [Fullscreen, Activated]

View File

@@ -0,0 +1,15 @@
---
source: src/tests/window_opening.rs
description: "want fullscreen: A1\nset parent: B2\nconfig:\nworkspace \"ws-1\" {\n open-on-output \"headless-1\"\n}\n\nworkspace \"ws-2\" {\n open-on-output \"headless-2\"\n}\n\nwindow-rule {\n exclude title=\"parent\"\n\n open-fullscreen true\n}\n\nwindow-rule {\n match title=\"parent\"\n open-on-output \"headless-2\"\n}"
expression: snapshot
snapshot_kind: text
---
final monitor: headless-2
final workspace: 0 (ws-2)
initial configure:
size: 1920 × 1080, bounds: 1888 × 1048, states: [Fullscreen]
post-map configures:
size: 1280 × 720, bounds: 1248 × 688, states: [Fullscreen]
size: 1920 × 1080, bounds: 1888 × 1048, states: [Fullscreen]

View File

@@ -0,0 +1,15 @@
---
source: src/tests/window_opening.rs
description: "want fullscreen: A1\nconfig:\nworkspace \"ws-1\" {\n open-on-output \"headless-1\"\n}\n\nworkspace \"ws-2\" {\n open-on-output \"headless-2\"\n}\n\nwindow-rule {\n exclude title=\"parent\"\n\n open-fullscreen true\n}"
expression: snapshot
snapshot_kind: text
---
final monitor: headless-1
final workspace: 0 (ws-1)
initial configure:
size: 1280 × 720, bounds: 1248 × 688, states: [Fullscreen]
post-map configures:
size: 1280 × 720, bounds: 1248 × 688, states: [Fullscreen]
size: 1280 × 720, bounds: 1248 × 688, states: [Fullscreen, Activated]

View File

@@ -0,0 +1,15 @@
---
source: src/tests/window_opening.rs
description: "want fullscreen: A2\nset parent: A1\nconfig:\nworkspace \"ws-1\" {\n open-on-output \"headless-1\"\n}\n\nworkspace \"ws-2\" {\n open-on-output \"headless-2\"\n}\n\nwindow-rule {\n exclude title=\"parent\"\n\n open-fullscreen true\n}\n\nwindow-rule {\n match title=\"parent\"\n open-on-output \"headless-1\"\n}"
expression: snapshot
snapshot_kind: text
---
final monitor: headless-1
final workspace: 0 (ws-1)
initial configure:
size: 1280 × 720, bounds: 1248 × 688, states: [Fullscreen]
post-map configures:
size: 1920 × 1080, bounds: 1888 × 1048, states: [Fullscreen]
size: 1280 × 720, bounds: 1248 × 688, states: [Fullscreen, Activated]

View File

@@ -0,0 +1,14 @@
---
source: src/tests/window_opening.rs
description: "want fullscreen: A2\nset parent: A2\nconfig:\nworkspace \"ws-1\" {\n open-on-output \"headless-1\"\n}\n\nworkspace \"ws-2\" {\n open-on-output \"headless-2\"\n}\n\nwindow-rule {\n exclude title=\"parent\"\n\n open-fullscreen true\n}\n\nwindow-rule {\n match title=\"parent\"\n open-on-output \"headless-2\"\n}"
expression: snapshot
snapshot_kind: text
---
final monitor: headless-2
final workspace: 0 (ws-2)
initial configure:
size: 1280 × 720, bounds: 1248 × 688, states: [Fullscreen]
post-map configures:
size: 1920 × 1080, bounds: 1888 × 1048, states: [Fullscreen]

View File

@@ -0,0 +1,15 @@
---
source: src/tests/window_opening.rs
description: "want fullscreen: A2\nset parent: B1\nconfig:\nworkspace \"ws-1\" {\n open-on-output \"headless-1\"\n}\n\nworkspace \"ws-2\" {\n open-on-output \"headless-2\"\n}\n\nwindow-rule {\n exclude title=\"parent\"\n\n open-fullscreen true\n}\n\nwindow-rule {\n match title=\"parent\"\n open-on-output \"headless-1\"\n}"
expression: snapshot
snapshot_kind: text
---
final monitor: headless-1
final workspace: 0 (ws-1)
initial configure:
size: 1280 × 720, bounds: 1248 × 688, states: [Fullscreen]
post-map configures:
size: 1920 × 1080, bounds: 1888 × 1048, states: [Fullscreen]
size: 1280 × 720, bounds: 1248 × 688, states: [Fullscreen, Activated]

View File

@@ -0,0 +1,14 @@
---
source: src/tests/window_opening.rs
description: "want fullscreen: A2\nset parent: B2\nconfig:\nworkspace \"ws-1\" {\n open-on-output \"headless-1\"\n}\n\nworkspace \"ws-2\" {\n open-on-output \"headless-2\"\n}\n\nwindow-rule {\n exclude title=\"parent\"\n\n open-fullscreen true\n}\n\nwindow-rule {\n match title=\"parent\"\n open-on-output \"headless-2\"\n}"
expression: snapshot
snapshot_kind: text
---
final monitor: headless-2
final workspace: 0 (ws-2)
initial configure:
size: 1920 × 1080, bounds: 1888 × 1048, states: [Fullscreen]
post-map configures:
size: 1920 × 1080, bounds: 1888 × 1048, states: [Fullscreen]

View File

@@ -0,0 +1,15 @@
---
source: src/tests/window_opening.rs
description: "want fullscreen: A2\nconfig:\nworkspace \"ws-1\" {\n open-on-output \"headless-1\"\n}\n\nworkspace \"ws-2\" {\n open-on-output \"headless-2\"\n}\n\nwindow-rule {\n exclude title=\"parent\"\n\n open-fullscreen true\n}"
expression: snapshot
snapshot_kind: text
---
final monitor: headless-1
final workspace: 0 (ws-1)
initial configure:
size: 1280 × 720, bounds: 1248 × 688, states: [Fullscreen]
post-map configures:
size: 1920 × 1080, bounds: 1888 × 1048, states: [Fullscreen]
size: 1280 × 720, bounds: 1248 × 688, states: [Fullscreen, Activated]

View File

@@ -0,0 +1,15 @@
---
source: src/tests/window_opening.rs
description: "want fullscreen: AA\nset parent: A1\nconfig:\nworkspace \"ws-1\" {\n open-on-output \"headless-1\"\n}\n\nworkspace \"ws-2\" {\n open-on-output \"headless-2\"\n}\n\nwindow-rule {\n exclude title=\"parent\"\n\n open-fullscreen true\n}\n\nwindow-rule {\n match title=\"parent\"\n open-on-output \"headless-1\"\n}"
expression: snapshot
snapshot_kind: text
---
final monitor: headless-1
final workspace: 0 (ws-1)
initial configure:
size: 1280 × 720, bounds: 1248 × 688, states: [Fullscreen]
post-map configures:
size: 616 × 688, bounds: 1248 × 688, states: []
size: 616 × 688, bounds: 1248 × 688, states: [Activated]

View File

@@ -0,0 +1,15 @@
---
source: src/tests/window_opening.rs
description: "want fullscreen: AA\nset parent: A2\nconfig:\nworkspace \"ws-1\" {\n open-on-output \"headless-1\"\n}\n\nworkspace \"ws-2\" {\n open-on-output \"headless-2\"\n}\n\nwindow-rule {\n exclude title=\"parent\"\n\n open-fullscreen true\n}\n\nwindow-rule {\n match title=\"parent\"\n open-on-output \"headless-2\"\n}"
expression: snapshot
snapshot_kind: text
---
final monitor: headless-1
final workspace: 0 (ws-1)
initial configure:
size: 1280 × 720, bounds: 1248 × 688, states: [Fullscreen]
post-map configures:
size: 616 × 688, bounds: 1248 × 688, states: []
size: 616 × 688, bounds: 1248 × 688, states: [Activated]

View File

@@ -0,0 +1,15 @@
---
source: src/tests/window_opening.rs
description: "want fullscreen: AA\nset parent: B1\nconfig:\nworkspace \"ws-1\" {\n open-on-output \"headless-1\"\n}\n\nworkspace \"ws-2\" {\n open-on-output \"headless-2\"\n}\n\nwindow-rule {\n exclude title=\"parent\"\n\n open-fullscreen true\n}\n\nwindow-rule {\n match title=\"parent\"\n open-on-output \"headless-1\"\n}"
expression: snapshot
snapshot_kind: text
---
final monitor: headless-1
final workspace: 0 (ws-1)
initial configure:
size: 1280 × 720, bounds: 1248 × 688, states: [Fullscreen]
post-map configures:
size: 616 × 688, bounds: 1248 × 688, states: []
size: 616 × 688, bounds: 1248 × 688, states: [Activated]

View File

@@ -0,0 +1,14 @@
---
source: src/tests/window_opening.rs
description: "want fullscreen: AA\nset parent: B2\nconfig:\nworkspace \"ws-1\" {\n open-on-output \"headless-1\"\n}\n\nworkspace \"ws-2\" {\n open-on-output \"headless-2\"\n}\n\nwindow-rule {\n exclude title=\"parent\"\n\n open-fullscreen true\n}\n\nwindow-rule {\n match title=\"parent\"\n open-on-output \"headless-2\"\n}"
expression: snapshot
snapshot_kind: text
---
final monitor: headless-2
final workspace: 0 (ws-2)
initial configure:
size: 1920 × 1080, bounds: 1888 × 1048, states: [Fullscreen]
post-map configures:
size: 936 × 1048, bounds: 1888 × 1048, states: []

View File

@@ -0,0 +1,15 @@
---
source: src/tests/window_opening.rs
description: "want fullscreen: AA\nconfig:\nworkspace \"ws-1\" {\n open-on-output \"headless-1\"\n}\n\nworkspace \"ws-2\" {\n open-on-output \"headless-2\"\n}\n\nwindow-rule {\n exclude title=\"parent\"\n\n open-fullscreen true\n}"
expression: snapshot
snapshot_kind: text
---
final monitor: headless-1
final workspace: 0 (ws-1)
initial configure:
size: 1280 × 720, bounds: 1248 × 688, states: [Fullscreen]
post-map configures:
size: 616 × 688, bounds: 1248 × 688, states: []
size: 616 × 688, bounds: 1248 × 688, states: [Activated]

View File

@@ -0,0 +1,15 @@
---
source: src/tests/window_opening.rs
description: "want fullscreen: AN\nset parent: A1\nconfig:\nworkspace \"ws-1\" {\n open-on-output \"headless-1\"\n}\n\nworkspace \"ws-2\" {\n open-on-output \"headless-2\"\n}\n\nwindow-rule {\n exclude title=\"parent\"\n\n open-fullscreen true\n}\n\nwindow-rule {\n match title=\"parent\"\n open-on-output \"headless-1\"\n}"
expression: snapshot
snapshot_kind: text
---
final monitor: headless-1
final workspace: 0 (ws-1)
initial configure:
size: 1280 × 720, bounds: 1248 × 688, states: [Fullscreen]
post-map configures:
size: 1280 × 720, bounds: 1248 × 688, states: [Fullscreen]
size: 1280 × 720, bounds: 1248 × 688, states: [Fullscreen, Activated]

View File

@@ -0,0 +1,15 @@
---
source: src/tests/window_opening.rs
description: "want fullscreen: AN\nset parent: A2\nconfig:\nworkspace \"ws-1\" {\n open-on-output \"headless-1\"\n}\n\nworkspace \"ws-2\" {\n open-on-output \"headless-2\"\n}\n\nwindow-rule {\n exclude title=\"parent\"\n\n open-fullscreen true\n}\n\nwindow-rule {\n match title=\"parent\"\n open-on-output \"headless-2\"\n}"
expression: snapshot
snapshot_kind: text
---
final monitor: headless-1
final workspace: 0 (ws-1)
initial configure:
size: 1280 × 720, bounds: 1248 × 688, states: [Fullscreen]
post-map configures:
size: 1280 × 720, bounds: 1248 × 688, states: [Fullscreen]
size: 1280 × 720, bounds: 1248 × 688, states: [Fullscreen, Activated]

View File

@@ -0,0 +1,15 @@
---
source: src/tests/window_opening.rs
description: "want fullscreen: AN\nset parent: B1\nconfig:\nworkspace \"ws-1\" {\n open-on-output \"headless-1\"\n}\n\nworkspace \"ws-2\" {\n open-on-output \"headless-2\"\n}\n\nwindow-rule {\n exclude title=\"parent\"\n\n open-fullscreen true\n}\n\nwindow-rule {\n match title=\"parent\"\n open-on-output \"headless-1\"\n}"
expression: snapshot
snapshot_kind: text
---
final monitor: headless-1
final workspace: 0 (ws-1)
initial configure:
size: 1280 × 720, bounds: 1248 × 688, states: [Fullscreen]
post-map configures:
size: 1280 × 720, bounds: 1248 × 688, states: [Fullscreen]
size: 1280 × 720, bounds: 1248 × 688, states: [Fullscreen, Activated]

View File

@@ -0,0 +1,14 @@
---
source: src/tests/window_opening.rs
description: "want fullscreen: AN\nset parent: B2\nconfig:\nworkspace \"ws-1\" {\n open-on-output \"headless-1\"\n}\n\nworkspace \"ws-2\" {\n open-on-output \"headless-2\"\n}\n\nwindow-rule {\n exclude title=\"parent\"\n\n open-fullscreen true\n}\n\nwindow-rule {\n match title=\"parent\"\n open-on-output \"headless-2\"\n}"
expression: snapshot
snapshot_kind: text
---
final monitor: headless-2
final workspace: 0 (ws-2)
initial configure:
size: 1920 × 1080, bounds: 1888 × 1048, states: [Fullscreen]
post-map configures:
size: 1920 × 1080, bounds: 1888 × 1048, states: [Fullscreen]

View File

@@ -0,0 +1,15 @@
---
source: src/tests/window_opening.rs
description: "want fullscreen: AN\nconfig:\nworkspace \"ws-1\" {\n open-on-output \"headless-1\"\n}\n\nworkspace \"ws-2\" {\n open-on-output \"headless-2\"\n}\n\nwindow-rule {\n exclude title=\"parent\"\n\n open-fullscreen true\n}"
expression: snapshot
snapshot_kind: text
---
final monitor: headless-1
final workspace: 0 (ws-1)
initial configure:
size: 1280 × 720, bounds: 1248 × 688, states: [Fullscreen]
post-map configures:
size: 1280 × 720, bounds: 1248 × 688, states: [Fullscreen]
size: 1280 × 720, bounds: 1248 × 688, states: [Fullscreen, Activated]

View File

@@ -0,0 +1,14 @@
---
source: src/tests/window_opening.rs
description: "want fullscreen: B1\nset parent: A1\nconfig:\nworkspace \"ws-1\" {\n open-on-output \"headless-1\"\n}\n\nworkspace \"ws-2\" {\n open-on-output \"headless-2\"\n}\n\nwindow-rule {\n exclude title=\"parent\"\n\n open-fullscreen true\n}\n\nwindow-rule {\n match title=\"parent\"\n open-on-output \"headless-1\"\n}"
expression: snapshot
snapshot_kind: text
---
final monitor: headless-1
final workspace: 0 (ws-1)
initial configure:
size: 1280 × 720, bounds: 1248 × 688, states: [Fullscreen]
post-map configures:
size: 1280 × 720, bounds: 1248 × 688, states: [Fullscreen, Activated]

View File

@@ -0,0 +1,14 @@
---
source: src/tests/window_opening.rs
description: "want fullscreen: B1\nset parent: A2\nconfig:\nworkspace \"ws-1\" {\n open-on-output \"headless-1\"\n}\n\nworkspace \"ws-2\" {\n open-on-output \"headless-2\"\n}\n\nwindow-rule {\n exclude title=\"parent\"\n\n open-fullscreen true\n}\n\nwindow-rule {\n match title=\"parent\"\n open-on-output \"headless-2\"\n}"
expression: snapshot
snapshot_kind: text
---
final monitor: headless-1
final workspace: 0 (ws-1)
initial configure:
size: 1280 × 720, bounds: 1248 × 688, states: [Fullscreen]
post-map configures:
size: 1280 × 720, bounds: 1248 × 688, states: [Fullscreen, Activated]

View File

@@ -0,0 +1,14 @@
---
source: src/tests/window_opening.rs
description: "want fullscreen: B1\nset parent: B1\nconfig:\nworkspace \"ws-1\" {\n open-on-output \"headless-1\"\n}\n\nworkspace \"ws-2\" {\n open-on-output \"headless-2\"\n}\n\nwindow-rule {\n exclude title=\"parent\"\n\n open-fullscreen true\n}\n\nwindow-rule {\n match title=\"parent\"\n open-on-output \"headless-1\"\n}"
expression: snapshot
snapshot_kind: text
---
final monitor: headless-1
final workspace: 0 (ws-1)
initial configure:
size: 1280 × 720, bounds: 1248 × 688, states: [Fullscreen]
post-map configures:
size: 1280 × 720, bounds: 1248 × 688, states: [Fullscreen, Activated]

View File

@@ -0,0 +1,14 @@
---
source: src/tests/window_opening.rs
description: "want fullscreen: B1\nset parent: B2\nconfig:\nworkspace \"ws-1\" {\n open-on-output \"headless-1\"\n}\n\nworkspace \"ws-2\" {\n open-on-output \"headless-2\"\n}\n\nwindow-rule {\n exclude title=\"parent\"\n\n open-fullscreen true\n}\n\nwindow-rule {\n match title=\"parent\"\n open-on-output \"headless-2\"\n}"
expression: snapshot
snapshot_kind: text
---
final monitor: headless-1
final workspace: 0 (ws-1)
initial configure:
size: 1280 × 720, bounds: 1248 × 688, states: [Fullscreen]
post-map configures:
size: 1280 × 720, bounds: 1248 × 688, states: [Fullscreen, Activated]

View File

@@ -0,0 +1,14 @@
---
source: src/tests/window_opening.rs
description: "want fullscreen: B1\nconfig:\nworkspace \"ws-1\" {\n open-on-output \"headless-1\"\n}\n\nworkspace \"ws-2\" {\n open-on-output \"headless-2\"\n}\n\nwindow-rule {\n exclude title=\"parent\"\n\n open-fullscreen true\n}"
expression: snapshot
snapshot_kind: text
---
final monitor: headless-1
final workspace: 0 (ws-1)
initial configure:
size: 1280 × 720, bounds: 1248 × 688, states: [Fullscreen]
post-map configures:
size: 1280 × 720, bounds: 1248 × 688, states: [Fullscreen, Activated]

View File

@@ -0,0 +1,13 @@
---
source: src/tests/window_opening.rs
description: "want fullscreen: B2\nset parent: A1\nconfig:\nworkspace \"ws-1\" {\n open-on-output \"headless-1\"\n}\n\nworkspace \"ws-2\" {\n open-on-output \"headless-2\"\n}\n\nwindow-rule {\n exclude title=\"parent\"\n\n open-fullscreen true\n}\n\nwindow-rule {\n match title=\"parent\"\n open-on-output \"headless-1\"\n}"
expression: snapshot
snapshot_kind: text
---
final monitor: headless-2
final workspace: 0 (ws-2)
initial configure:
size: 1920 × 1080, bounds: 1888 × 1048, states: [Fullscreen]
post-map configures:

View File

@@ -0,0 +1,13 @@
---
source: src/tests/window_opening.rs
description: "want fullscreen: B2\nset parent: A2\nconfig:\nworkspace \"ws-1\" {\n open-on-output \"headless-1\"\n}\n\nworkspace \"ws-2\" {\n open-on-output \"headless-2\"\n}\n\nwindow-rule {\n exclude title=\"parent\"\n\n open-fullscreen true\n}\n\nwindow-rule {\n match title=\"parent\"\n open-on-output \"headless-2\"\n}"
expression: snapshot
snapshot_kind: text
---
final monitor: headless-2
final workspace: 0 (ws-2)
initial configure:
size: 1920 × 1080, bounds: 1888 × 1048, states: [Fullscreen]
post-map configures:

View File

@@ -0,0 +1,13 @@
---
source: src/tests/window_opening.rs
description: "want fullscreen: B2\nset parent: B1\nconfig:\nworkspace \"ws-1\" {\n open-on-output \"headless-1\"\n}\n\nworkspace \"ws-2\" {\n open-on-output \"headless-2\"\n}\n\nwindow-rule {\n exclude title=\"parent\"\n\n open-fullscreen true\n}\n\nwindow-rule {\n match title=\"parent\"\n open-on-output \"headless-1\"\n}"
expression: snapshot
snapshot_kind: text
---
final monitor: headless-2
final workspace: 0 (ws-2)
initial configure:
size: 1920 × 1080, bounds: 1888 × 1048, states: [Fullscreen]
post-map configures:

View File

@@ -0,0 +1,13 @@
---
source: src/tests/window_opening.rs
description: "want fullscreen: B2\nset parent: B2\nconfig:\nworkspace \"ws-1\" {\n open-on-output \"headless-1\"\n}\n\nworkspace \"ws-2\" {\n open-on-output \"headless-2\"\n}\n\nwindow-rule {\n exclude title=\"parent\"\n\n open-fullscreen true\n}\n\nwindow-rule {\n match title=\"parent\"\n open-on-output \"headless-2\"\n}"
expression: snapshot
snapshot_kind: text
---
final monitor: headless-2
final workspace: 0 (ws-2)
initial configure:
size: 1920 × 1080, bounds: 1888 × 1048, states: [Fullscreen]
post-map configures:

View File

@@ -0,0 +1,13 @@
---
source: src/tests/window_opening.rs
description: "want fullscreen: B2\nconfig:\nworkspace \"ws-1\" {\n open-on-output \"headless-1\"\n}\n\nworkspace \"ws-2\" {\n open-on-output \"headless-2\"\n}\n\nwindow-rule {\n exclude title=\"parent\"\n\n open-fullscreen true\n}"
expression: snapshot
snapshot_kind: text
---
final monitor: headless-2
final workspace: 0 (ws-2)
initial configure:
size: 1920 × 1080, bounds: 1888 × 1048, states: [Fullscreen]
post-map configures:

View File

@@ -0,0 +1,14 @@
---
source: src/tests/window_opening.rs
description: "want fullscreen: BN\nset parent: A1\nconfig:\nworkspace \"ws-1\" {\n open-on-output \"headless-1\"\n}\n\nworkspace \"ws-2\" {\n open-on-output \"headless-2\"\n}\n\nwindow-rule {\n exclude title=\"parent\"\n\n open-fullscreen true\n}\n\nwindow-rule {\n match title=\"parent\"\n open-on-output \"headless-1\"\n}"
expression: snapshot
snapshot_kind: text
---
final monitor: headless-1
final workspace: 0 (ws-1)
initial configure:
size: 1280 × 720, bounds: 1248 × 688, states: [Fullscreen]
post-map configures:
size: 1280 × 720, bounds: 1248 × 688, states: [Fullscreen, Activated]

View File

@@ -0,0 +1,14 @@
---
source: src/tests/window_opening.rs
description: "want fullscreen: BN\nset parent: A2\nconfig:\nworkspace \"ws-1\" {\n open-on-output \"headless-1\"\n}\n\nworkspace \"ws-2\" {\n open-on-output \"headless-2\"\n}\n\nwindow-rule {\n exclude title=\"parent\"\n\n open-fullscreen true\n}\n\nwindow-rule {\n match title=\"parent\"\n open-on-output \"headless-2\"\n}"
expression: snapshot
snapshot_kind: text
---
final monitor: headless-1
final workspace: 0 (ws-1)
initial configure:
size: 1280 × 720, bounds: 1248 × 688, states: [Fullscreen]
post-map configures:
size: 1280 × 720, bounds: 1248 × 688, states: [Fullscreen, Activated]

View File

@@ -0,0 +1,14 @@
---
source: src/tests/window_opening.rs
description: "want fullscreen: BN\nset parent: B1\nconfig:\nworkspace \"ws-1\" {\n open-on-output \"headless-1\"\n}\n\nworkspace \"ws-2\" {\n open-on-output \"headless-2\"\n}\n\nwindow-rule {\n exclude title=\"parent\"\n\n open-fullscreen true\n}\n\nwindow-rule {\n match title=\"parent\"\n open-on-output \"headless-1\"\n}"
expression: snapshot
snapshot_kind: text
---
final monitor: headless-1
final workspace: 0 (ws-1)
initial configure:
size: 1280 × 720, bounds: 1248 × 688, states: [Fullscreen]
post-map configures:
size: 1280 × 720, bounds: 1248 × 688, states: [Fullscreen, Activated]

View File

@@ -0,0 +1,13 @@
---
source: src/tests/window_opening.rs
description: "want fullscreen: BN\nset parent: B2\nconfig:\nworkspace \"ws-1\" {\n open-on-output \"headless-1\"\n}\n\nworkspace \"ws-2\" {\n open-on-output \"headless-2\"\n}\n\nwindow-rule {\n exclude title=\"parent\"\n\n open-fullscreen true\n}\n\nwindow-rule {\n match title=\"parent\"\n open-on-output \"headless-2\"\n}"
expression: snapshot
snapshot_kind: text
---
final monitor: headless-2
final workspace: 0 (ws-2)
initial configure:
size: 1920 × 1080, bounds: 1888 × 1048, states: [Fullscreen]
post-map configures:

View File

@@ -0,0 +1,14 @@
---
source: src/tests/window_opening.rs
description: "want fullscreen: BN\nconfig:\nworkspace \"ws-1\" {\n open-on-output \"headless-1\"\n}\n\nworkspace \"ws-2\" {\n open-on-output \"headless-2\"\n}\n\nwindow-rule {\n exclude title=\"parent\"\n\n open-fullscreen true\n}"
expression: snapshot
snapshot_kind: text
---
final monitor: headless-1
final workspace: 0 (ws-1)
initial configure:
size: 1280 × 720, bounds: 1248 × 688, states: [Fullscreen]
post-map configures:
size: 1280 × 720, bounds: 1248 × 688, states: [Fullscreen, Activated]

View File

@@ -0,0 +1,14 @@
---
source: src/tests/window_opening.rs
description: "want fullscreen: BU\nset parent: A1\nconfig:\nworkspace \"ws-1\" {\n open-on-output \"headless-1\"\n}\n\nworkspace \"ws-2\" {\n open-on-output \"headless-2\"\n}\n\nwindow-rule {\n exclude title=\"parent\"\n\n open-fullscreen true\n}\n\nwindow-rule {\n match title=\"parent\"\n open-on-output \"headless-1\"\n}"
expression: snapshot
snapshot_kind: text
---
final monitor: headless-1
final workspace: 0 (ws-1)
initial configure:
size: 1280 × 720, bounds: 1248 × 688, states: [Fullscreen]
post-map configures:
size: 1280 × 720, bounds: 1248 × 688, states: [Fullscreen, Activated]

View File

@@ -0,0 +1,14 @@
---
source: src/tests/window_opening.rs
description: "want fullscreen: BU\nset parent: A2\nconfig:\nworkspace \"ws-1\" {\n open-on-output \"headless-1\"\n}\n\nworkspace \"ws-2\" {\n open-on-output \"headless-2\"\n}\n\nwindow-rule {\n exclude title=\"parent\"\n\n open-fullscreen true\n}\n\nwindow-rule {\n match title=\"parent\"\n open-on-output \"headless-2\"\n}"
expression: snapshot
snapshot_kind: text
---
final monitor: headless-1
final workspace: 0 (ws-1)
initial configure:
size: 1280 × 720, bounds: 1248 × 688, states: [Fullscreen]
post-map configures:
size: 1280 × 720, bounds: 1248 × 688, states: [Fullscreen, Activated]

View File

@@ -0,0 +1,14 @@
---
source: src/tests/window_opening.rs
description: "want fullscreen: BU\nset parent: B1\nconfig:\nworkspace \"ws-1\" {\n open-on-output \"headless-1\"\n}\n\nworkspace \"ws-2\" {\n open-on-output \"headless-2\"\n}\n\nwindow-rule {\n exclude title=\"parent\"\n\n open-fullscreen true\n}\n\nwindow-rule {\n match title=\"parent\"\n open-on-output \"headless-1\"\n}"
expression: snapshot
snapshot_kind: text
---
final monitor: headless-1
final workspace: 0 (ws-1)
initial configure:
size: 1280 × 720, bounds: 1248 × 688, states: [Fullscreen]
post-map configures:
size: 1280 × 720, bounds: 1248 × 688, states: [Fullscreen, Activated]

View File

@@ -0,0 +1,13 @@
---
source: src/tests/window_opening.rs
description: "want fullscreen: BU\nset parent: B2\nconfig:\nworkspace \"ws-1\" {\n open-on-output \"headless-1\"\n}\n\nworkspace \"ws-2\" {\n open-on-output \"headless-2\"\n}\n\nwindow-rule {\n exclude title=\"parent\"\n\n open-fullscreen true\n}\n\nwindow-rule {\n match title=\"parent\"\n open-on-output \"headless-2\"\n}"
expression: snapshot
snapshot_kind: text
---
final monitor: headless-2
final workspace: 0 (ws-2)
initial configure:
size: 1920 × 1080, bounds: 1888 × 1048, states: [Fullscreen]
post-map configures:

View File

@@ -0,0 +1,14 @@
---
source: src/tests/window_opening.rs
description: "want fullscreen: BU\nconfig:\nworkspace \"ws-1\" {\n open-on-output \"headless-1\"\n}\n\nworkspace \"ws-2\" {\n open-on-output \"headless-2\"\n}\n\nwindow-rule {\n exclude title=\"parent\"\n\n open-fullscreen true\n}"
expression: snapshot
snapshot_kind: text
---
final monitor: headless-1
final workspace: 0 (ws-1)
initial configure:
size: 1280 × 720, bounds: 1248 × 688, states: [Fullscreen]
post-map configures:
size: 1280 × 720, bounds: 1248 × 688, states: [Fullscreen, Activated]

View File

@@ -0,0 +1,14 @@
---
source: src/tests/window_opening.rs
description: "config:\nworkspace \"ws-1\" {\n open-on-output \"headless-1\"\n}\n\nworkspace \"ws-2\" {\n open-on-output \"headless-2\"\n}\n\nwindow-rule {\n exclude title=\"parent\"\n\n open-fullscreen true\n}"
expression: snapshot
snapshot_kind: text
---
final monitor: headless-1
final workspace: 0 (ws-1)
initial configure:
size: 1280 × 720, bounds: 1248 × 688, states: [Fullscreen]
post-map configures:
size: 1280 × 720, bounds: 1248 × 688, states: [Fullscreen, Activated]

View File

@@ -0,0 +1,14 @@
---
source: src/tests/window_opening.rs
description: "set parent: A1\nconfig:\nworkspace \"ws-1\" {\n open-on-output \"headless-1\"\n}\n\nworkspace \"ws-2\" {\n open-on-output \"headless-2\"\n}\n\nwindow-rule {\n exclude title=\"parent\"\n\n open-on-output \"headless-1\"\n open-fullscreen false\n}\n\nwindow-rule {\n match title=\"parent\"\n open-on-output \"headless-1\"\n}"
expression: snapshot
snapshot_kind: text
---
final monitor: headless-1
final workspace: 0 (ws-1)
initial configure:
size: 616 × 688, bounds: 1248 × 688, states: []
post-map configures:
size: 616 × 688, bounds: 1248 × 688, states: [Activated]

View File

@@ -0,0 +1,14 @@
---
source: src/tests/window_opening.rs
description: "set parent: A2\nconfig:\nworkspace \"ws-1\" {\n open-on-output \"headless-1\"\n}\n\nworkspace \"ws-2\" {\n open-on-output \"headless-2\"\n}\n\nwindow-rule {\n exclude title=\"parent\"\n\n open-on-output \"headless-1\"\n open-fullscreen false\n}\n\nwindow-rule {\n match title=\"parent\"\n open-on-output \"headless-2\"\n}"
expression: snapshot
snapshot_kind: text
---
final monitor: headless-1
final workspace: 0 (ws-1)
initial configure:
size: 616 × 688, bounds: 1248 × 688, states: []
post-map configures:
size: 616 × 688, bounds: 1248 × 688, states: [Activated]

Some files were not shown because too many files have changed in this diff Show More