hyprshell_core_lib/transfer/
structs.rs1use crate::{ClientId, WorkspaceId};
2use serde::{Deserialize, Serialize};
3
4#[derive(Debug, Serialize, Deserialize)]
5pub enum TransferType {
6 OpenOverview,
8 OpenSwitch(OpenSwitch),
10 SwitchOverview(SwitchOverviewConfig),
12 SwitchSwitch(SwitchSwitchConfig),
14 CloseOverview(CloseOverviewConfig),
16 CloseSwitch,
18 Type(String),
20 Exit,
22 Restart,
24}
25#[derive(Debug, Serialize, Deserialize)]
26pub struct OpenSwitch {
27 pub reverse: bool,
28}
29
30#[derive(Debug, Serialize, Deserialize)]
31pub struct SwitchOverviewConfig {
32 pub direction: Direction,
33 pub workspace: bool,
34}
35
36#[derive(Debug, Serialize, Deserialize)]
37pub struct SwitchSwitchConfig {
38 pub reverse: bool,
39}
40
41#[derive(Debug, Serialize, Deserialize)]
42pub enum CloseOverviewConfig {
43 LauncherClick(Identifier),
44 LauncherPress(char),
45 Windows(WindowsOverride),
46 None,
47}
48
49#[derive(Debug, Copy, Clone, Serialize, Deserialize)]
50pub enum PluginNames {
51 Applications,
52 Shell,
53 Terminal,
54 WebSearch,
55 Calc,
56}
57
58#[derive(Debug, Clone, Serialize, Deserialize)]
59pub struct Identifier {
60 pub plugin: PluginNames,
61 pub identifier: Option<Box<str>>,
62}
63
64#[derive(Debug, Serialize, Deserialize)]
65pub enum WindowsOverride {
66 ClientId(ClientId),
67 WorkspaceID(WorkspaceId),
68}
69
70#[derive(Debug, Serialize, Deserialize, Eq, PartialEq)]
71pub enum Direction {
72 Right,
73 Left,
74 Up,
75 Down,
76}