config: workspace display order
This commit is contained in:
parent
40328d7c4a
commit
e570152dde
17 changed files with 237 additions and 11 deletions
|
|
@ -36,6 +36,7 @@ use {
|
|||
ContentType, MatchedWindow, TileState, Window, WindowCriterion, WindowMatcher,
|
||||
WindowType,
|
||||
},
|
||||
workspace::WorkspaceDisplayOrder,
|
||||
xwayland::XScalingMode,
|
||||
},
|
||||
bincode::Options,
|
||||
|
|
@ -987,6 +988,10 @@ impl ConfigClient {
|
|||
self.send(&ClientMessage::SetMiddleClickPasteEnabled { enabled });
|
||||
}
|
||||
|
||||
pub fn set_workspace_display_order(&self, order: WorkspaceDisplayOrder) {
|
||||
self.send(&ClientMessage::SetWorkspaceDisplayOrder { order });
|
||||
}
|
||||
|
||||
pub fn seat_create_mark(&self, seat: Seat, kc: Option<u32>) {
|
||||
self.send(&ClientMessage::SeatCreateMark { seat, kc });
|
||||
}
|
||||
|
|
|
|||
|
|
@ -16,6 +16,7 @@ use {
|
|||
Transform, VrrMode, connector_type::ConnectorType,
|
||||
},
|
||||
window::{ContentType, TileState, Window, WindowMatcher, WindowType},
|
||||
workspace::WorkspaceDisplayOrder,
|
||||
xwayland::XScalingMode,
|
||||
},
|
||||
serde::{Deserialize, Serialize},
|
||||
|
|
@ -760,6 +761,9 @@ pub enum ClientMessage<'a> {
|
|||
src: u32,
|
||||
dst: u32,
|
||||
},
|
||||
SetWorkspaceDisplayOrder {
|
||||
order: WorkspaceDisplayOrder,
|
||||
},
|
||||
}
|
||||
|
||||
#[derive(Serialize, Deserialize, Debug)]
|
||||
|
|
|
|||
|
|
@ -45,6 +45,7 @@
|
|||
|
||||
#[expect(unused_imports)]
|
||||
use crate::input::Seat;
|
||||
|
||||
use {
|
||||
crate::{
|
||||
_private::ipc::WorkspaceSource, keyboard::ModifiedKeySym, video::Connector, window::Window,
|
||||
|
|
@ -73,6 +74,7 @@ pub mod theme;
|
|||
pub mod timer;
|
||||
pub mod video;
|
||||
pub mod window;
|
||||
pub mod workspace;
|
||||
pub mod xwayland;
|
||||
|
||||
/// A planar direction.
|
||||
|
|
|
|||
19
jay-config/src/workspace.rs
Normal file
19
jay-config/src/workspace.rs
Normal file
|
|
@ -0,0 +1,19 @@
|
|||
//! Tools for configuring workspaces.
|
||||
|
||||
use serde::{Deserialize, Serialize};
|
||||
|
||||
/// How workspaces should be ordered in the UI.
|
||||
#[derive(Serialize, Deserialize, Copy, Clone, Debug, Hash, Eq, PartialEq)]
|
||||
pub enum WorkspaceDisplayOrder {
|
||||
/// Workspaces are not sorted and can be manually dragged.
|
||||
Manual,
|
||||
/// Workspaces are sorted alphabetically and cannot be manually dragged.
|
||||
Sorted,
|
||||
}
|
||||
|
||||
/// Sets how workspaces should be ordered in the UI.
|
||||
///
|
||||
/// The default is `WorkspaceDisplayOrder::Manual`.
|
||||
pub fn set_workspace_display_order(order: WorkspaceDisplayOrder) {
|
||||
get!().set_workspace_display_order(order);
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue