command/spawn-tagmask: apply globally
Currently the spawn-tagmask applies to the currently focused output. This however means that it is lost if the monitor is unplugged and makes it hard to set for all outputs. Change this to make the command apply to all outputs. This is a breaking change.
This commit is contained in:
@ -87,6 +87,9 @@ warp_cursor: WarpCursorMode = .disabled,
|
||||
/// Output.layout_namespace is null.
|
||||
default_layout_namespace: []const u8 = &[0]u8{},
|
||||
|
||||
/// Bitmask restricting the tags of newly created views.
|
||||
spawn_tagmask: u32 = std.math.maxInt(u32),
|
||||
|
||||
/// Determines where new views will be attached to the view stack.
|
||||
attach_mode: AttachMode = .top,
|
||||
|
||||
|
@ -96,9 +96,6 @@ layout_namespace: ?[]const u8 = null,
|
||||
/// The last set layout name.
|
||||
layout_name: ?[:0]const u8 = null,
|
||||
|
||||
/// Bitmask that whitelists tags for newly spawned views
|
||||
spawn_tagmask: u32 = math.maxInt(u32),
|
||||
|
||||
/// List of status tracking objects relaying changes to this output to clients.
|
||||
status_trackers: std.SinglyLinkedList(OutputStatus) = .{},
|
||||
|
||||
|
@ -127,7 +127,7 @@ request_activate: wl.Listener(*wlr.XdgActivationV1.event.RequestActivate) =
|
||||
|
||||
pub fn init(self: *Self, output: *Output, impl: Impl) void {
|
||||
const initial_tags = blk: {
|
||||
const tags = output.current.tags & output.spawn_tagmask;
|
||||
const tags = output.current.tags & server.config.spawn_tagmask;
|
||||
break :blk if (tags != 0) tags else output.current.tags;
|
||||
};
|
||||
|
||||
|
@ -39,14 +39,13 @@ pub fn setFocusedTags(
|
||||
}
|
||||
}
|
||||
|
||||
/// Set the spawn tagmask
|
||||
pub fn spawnTagmask(
|
||||
seat: *Seat,
|
||||
_: *Seat,
|
||||
args: []const [:0]const u8,
|
||||
out: *?[]const u8,
|
||||
) Error!void {
|
||||
const tags = try parseTags(args, out);
|
||||
seat.focused_output.spawn_tagmask = tags;
|
||||
server.config.spawn_tagmask = tags;
|
||||
}
|
||||
|
||||
/// Set the tags of the focused view.
|
||||
|
Reference in New Issue
Block a user