1#[cfg(feature = "serde")]
3use serde::{Deserialize, Serialize};
4use strum::*;
5
6#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
9#[derive(AsRefStr, EnumString, EnumIter, Debug, Clone, Copy, Hash, PartialEq, Eq)]
10pub enum Atom {
11 #[strum(serialize = "ATOM")]
13 Atom,
14 #[strum(serialize = "ATOM_WINDOW")]
16 Window,
17 #[strum(serialize = "ATOM_CARDINAL")]
19 Cardinal,
20 #[strum(serialize = "MANAGER")]
22 Manager,
23 #[strum(serialize = "UTF8_STRING")]
25 UTF8String,
26 #[strum(serialize = "WM_CLASS")]
28 WmClass,
29 #[strum(serialize = "WM_DELETE_WINDOW")]
31 WmDeleteWindow,
32 #[strum(serialize = "WM_HINTS")]
34 WmHints,
35 #[strum(serialize = "WM_NORMAL_HINTS")]
37 WmNormalHints,
38 #[strum(serialize = "WM_PROTOCOLS")]
40 WmProtocols,
41 #[strum(serialize = "WM_STATE")]
43 WmState,
44 #[strum(serialize = "WM_NAME")]
46 WmName,
47 #[strum(serialize = "WM_TRANSIENT_FOR")]
49 WmTransientFor,
50 #[strum(serialize = "WM_TAKE_FOCUS")]
52 WmTakeFocus,
53 #[strum(serialize = "_NET_ACTIVE_WINDOW")]
55 NetActiveWindow,
56 #[strum(serialize = "_NET_CLIENT_LIST")]
58 NetClientList,
59 #[strum(serialize = "_NET_CLIENT_LIST_STACKING")]
61 NetClientListStacking,
62 #[strum(serialize = "_NET_CURRENT_DESKTOP")]
64 NetCurrentDesktop,
65 #[strum(serialize = "_NET_DESKTOP_NAMES")]
67 NetDesktopNames,
68 #[strum(serialize = "_NET_DESKTOP_VIEWPORT")]
70 NetDesktopViewport,
71 #[strum(serialize = "_NET_NUMBER_OF_DESKTOPS")]
73 NetNumberOfDesktops,
74 #[strum(serialize = "_NET_SUPPORTED")]
76 NetSupported,
77 #[strum(serialize = "_NET_SUPPORTING_WM_CHECK")]
79 NetSupportingWmCheck,
80 #[strum(serialize = "_NET_SYSTEM_TRAY_OPCODE")]
82 NetSystemTrayOpcode,
83 #[strum(serialize = "_NET_SYSTEM_TRAY_ORIENTATION")]
85 NetSystemTrayOrientation,
86 #[strum(serialize = "_NET_SYSTEM_TRAY_ORIENTATION_HORZ")]
88 NetSystemTrayOrientationHorz,
89 #[strum(serialize = "_NET_SYSTEM_TRAY_S0")]
91 NetSystemTrayS0,
92 #[strum(serialize = "_NET_WM_DESKTOP")]
94 NetWmDesktop,
95 #[strum(serialize = "_NET_WM_NAME")]
97 NetWmName,
98 #[strum(serialize = "_NET_WM_STATE")]
100 NetWmState,
101 #[strum(serialize = "_NET_WM_STRUT")]
103 NetWmStrut,
104 #[strum(serialize = "_NET_WM_STATE_DEMANDS_ATTENTION")]
106 NetWmStateDemandsAttention,
107 #[strum(serialize = "_NET_WM_STATE_FULLSCREEN")]
109 NetWmStateFullscreen,
110 #[strum(serialize = "_NET_WM_STATE_HIDDEN")]
112 NetWmStateHidden,
113 #[strum(serialize = "_NET_WM_WINDOW_TYPE")]
115 NetWmWindowType,
116 #[strum(serialize = "_XEMBED")]
118 XEmbed,
119 #[strum(serialize = "_XEMBED_INFO")]
121 XEmbedInfo,
122
123 #[strum(serialize = "_NET_WM_WINDOW_TYPE_DESKTOP")]
126 NetWindowTypeDesktop,
127 #[strum(serialize = "_NET_WM_WINDOW_TYPE_DOCK")]
129 NetWindowTypeDock,
130 #[strum(serialize = "_NET_WM_WINDOW_TYPE_TOOLBAR")]
132 NetWindowTypeToolbar,
133 #[strum(serialize = "_NET_WM_WINDOW_TYPE_MENU")]
135 NetWindowTypeMenu,
136 #[strum(serialize = "_NET_WM_WINDOW_TYPE_UTILITY")]
138 NetWindowTypeUtility,
139 #[strum(serialize = "_NET_WM_WINDOW_TYPE_SPLASH")]
141 NetWindowTypeSplash,
142 #[strum(serialize = "_NET_WM_WINDOW_TYPE_DIALOG")]
144 NetWindowTypeDialog,
145 #[strum(serialize = "_NET_WM_WINDOW_TYPE_DROPDOWN_MENU")]
147 NetWindowTypeDropdownMenu,
148 #[strum(serialize = "_NET_WM_WINDOW_TYPE_POPUP_MENU")]
150 NetWindowTypePopupMenu,
151 #[strum(serialize = "_NET_WM_WINDOW_TYPE_NOTIFICATION")]
153 NetWindowTypeNotification,
154 #[strum(serialize = "_NET_WM_WINDOW_TYPE_COMBO")]
156 NetWindowTypeCombo,
157 #[strum(serialize = "_NET_WM_WINDOW_TYPE_DND")]
159 NetWindowTypeDnd,
160 #[strum(serialize = "_NET_WM_WINDOW_TYPE_NORMAL")]
162 NetWindowTypeNormal,
163}
164
165pub const AUTO_FLOAT_WINDOW_TYPES: &[Atom] = &[
167 Atom::NetWindowTypeCombo,
168 Atom::NetWindowTypeDesktop,
169 Atom::NetWindowTypeDialog,
170 Atom::NetWindowTypeDock,
171 Atom::NetWindowTypeDropdownMenu,
172 Atom::NetWindowTypeMenu,
173 Atom::NetWindowTypeNotification,
174 Atom::NetWindowTypePopupMenu,
175 Atom::NetWindowTypeSplash,
176 Atom::NetWindowTypeToolbar,
177 Atom::NetWindowTypeUtility,
178];