3 #define E_CONFIG_LIMIT(v, min, max) {if (v >= max) v = max; else if (v <= min) v = min; }
5 typedef struct _E_Config E_Config;
6 typedef struct _E_Config_Module E_Config_Module;
7 typedef struct _E_Config_Binding_Mouse E_Config_Binding_Mouse;
8 typedef struct _E_Config_Binding_Key E_Config_Binding_Key;
9 typedef struct _E_Config_Binding_Edge E_Config_Binding_Edge;
10 typedef struct _E_Config_Binding_Signal E_Config_Binding_Signal;
11 typedef struct _E_Config_Binding_Wheel E_Config_Binding_Wheel;
12 typedef struct _E_Config_Binding_Acpi E_Config_Binding_Acpi;
13 typedef struct _E_Config_Desktop_Background E_Config_Desktop_Background;
14 typedef struct _E_Config_Desklock_Background E_Config_Desklock_Background;
15 typedef struct _E_Config_Desktop_Name E_Config_Desktop_Name;
16 typedef struct _E_Config_Desktop_Window_Profile E_Config_Desktop_Window_Profile;
17 typedef struct _E_Config_Gadcon E_Config_Gadcon;
18 typedef struct _E_Config_Gadcon_Client E_Config_Gadcon_Client;
19 typedef struct _E_Config_Shelf E_Config_Shelf;
20 typedef struct _E_Config_Shelf_Desk E_Config_Shelf_Desk;
21 typedef struct _E_Config_Mime_Icon E_Config_Mime_Icon;
22 typedef struct _E_Config_Syscon_Action E_Config_Syscon_Action;
23 typedef struct _E_Config_Env_Var E_Config_Env_Var;
24 typedef struct _E_Config_XKB_Layout E_Config_XKB_Layout;
25 typedef struct _E_Config_XKB_Option E_Config_XKB_Option;
27 typedef struct _E_Event_Config_Icon_Theme E_Event_Config_Icon_Theme;
29 typedef struct E_Config_Bindings E_Config_Bindings;
33 E_CONFIG_PROFILE_TYPE_NONE,
34 E_CONFIG_PROFILE_TYPE_MOBILE,
35 E_CONFIG_PROFILE_TYPE_TABLET,
36 E_CONFIG_PROFILE_TYPE_DESKTOP
37 } E_Config_Profile_Type;
43 /* increment this whenever we change config enough that you need new
44 * defaults for e to work.
46 #define E_CONFIG_FILE_EPOCH 1
47 /* increment this whenever a new set of config values are added but the users
48 * config doesn't need to be wiped - simply new values need to be put in
50 #define E_CONFIG_FILE_GENERATION 17
51 #define E_CONFIG_FILE_VERSION ((E_CONFIG_FILE_EPOCH * 1000000) + E_CONFIG_FILE_GENERATION)
53 #define E_CONFIG_BINDINGS_VERSION 0 // DO NOT INCREMENT UNLESS YOU WANT TO WIPE ALL BINDINGS!!!!!
57 int config_version; // INTERNAL
58 E_Config_Profile_Type config_type; // INTERNAL
59 int show_splash; // GUI
60 const char *desktop_default_background; // GUI
61 Eina_List *desktop_backgrounds; // GUI
62 const char *desktop_default_name;
63 const char *desktop_default_window_profile;
64 Eina_List *desktop_names; // GUI
65 Eina_List *desktop_window_profiles; // GUI
66 double menus_scroll_speed; // GUI
67 double menus_fast_mouse_move_threshhold; // GUI
68 double menus_click_drag_timeout; // GUI
69 int border_shade_animate; // GUI
70 int border_shade_transition; // GUI
71 double border_shade_speed; // GUI
72 double framerate; // GUI
74 int image_cache; // GUI
75 int font_cache; // GUI
76 int edje_cache; // GUI
77 int edje_collection_cache; // GUI
78 int zone_desks_x_count; // GUI
79 int zone_desks_y_count; // GUI
80 int show_desktop_icons; // GUI
81 int edge_flip_dragging; // GUI
82 int no_module_delay; // GUI
83 const char *language; // GUI
84 const char *desklock_language; // GUI
85 Eina_List *modules; // GUI
86 Eina_List *bad_modules; // GUI
87 Eina_List *font_fallbacks; // GUI
88 Eina_List *font_defaults; // GUI
90 /* NO LONGER SAVED WITH THIS STRUCT */
91 Eina_List *mouse_bindings; // GUI
92 Eina_List *key_bindings; // GUI
93 Eina_List *edge_bindings; // GUI
94 Eina_List *signal_bindings; // GUI
95 Eina_List *wheel_bindings; // GUI
96 Eina_List *acpi_bindings; // GUI
98 Eina_List *path_append_data; // GUI
99 Eina_List *path_append_images; // GUI
100 Eina_List *path_append_fonts; // GUI
101 Eina_List *path_append_init; // GUI
102 Eina_List *path_append_icons; // GUI
103 Eina_List *path_append_modules; // GUI
104 Eina_List *path_append_backgrounds; // GUI
105 Eina_List *path_append_messages; // GUI
106 int window_placement_policy; // GUI
107 int window_grouping; // GUI
108 int focus_policy; // GUI
109 int focus_setting; // GUI
110 int pass_click_on; // GUI
111 int window_activehint_policy; // GUI
112 int always_click_to_raise; // GUI
113 int always_click_to_focus; // GUI
114 int use_auto_raise; // GUI
115 double auto_raise_delay; // GUI
116 int use_resist; // GUI
118 int desk_resist; // GUI
119 int window_resist; // GUI
120 int gadget_resist; // GUI
121 int geometry_auto_move; // GUI
122 int geometry_auto_resize_limit; // GUI
123 int winlist_warp_while_selecting; // GUI
124 int winlist_warp_at_end; // GUI
125 int winlist_no_warp_on_direction; // GUI
126 double winlist_warp_speed; // GUI **** NO LONGER USED!!!
127 int winlist_scroll_animate; // GUI
128 double winlist_scroll_speed; // GUI
129 int winlist_list_show_iconified; // GUI
130 int winlist_list_show_other_desk_iconified; // GUI
131 int winlist_list_show_other_screen_iconified; // GUI
132 int winlist_list_show_other_desk_windows; // GUI
133 int winlist_list_show_other_screen_windows; // GUI
134 int winlist_list_uncover_while_selecting; // GUI
135 int winlist_list_jump_desk_while_selecting; // GUI
136 int winlist_list_focus_while_selecting; // GUI
137 int winlist_list_raise_while_selecting; // GUI
138 int winlist_list_move_after_select; // GUI
139 double winlist_pos_align_x; // GUI
140 double winlist_pos_align_y; // GUI
141 double winlist_pos_size_w; // GUI
142 double winlist_pos_size_h; // GUI
143 int winlist_pos_min_w; // GUI
144 int winlist_pos_min_h; // GUI
145 int winlist_pos_max_w; // GUI
146 int winlist_pos_max_h; // GUI
147 int maximize_policy; // GUI
148 int allow_manip; // GUI
149 int border_fix_on_shelf_toggle; // GUI
150 int allow_above_fullscreen; // GUI
151 int kill_if_close_not_possible; // GUI
152 int kill_process; // GUI
153 double kill_timer_wait; // GUI
154 int ping_clients; // GUI
155 const char *transition_start; // GUI
156 const char *transition_desk; // GUI
157 const char *transition_change; // GUI
158 Eina_List *remembers; // GUI
159 int remember_internal_windows; // GUI
160 Eina_Bool remember_internal_fm_windows; // GUI
161 Eina_Bool remember_internal_fm_windows_globally; // GUI
162 int move_info_follows; // GUI
163 int resize_info_follows; // GUI
164 int move_info_visible; // GUI
165 int resize_info_visible; // GUI
166 int focus_last_focused_per_desktop; // GUI
167 int focus_revert_on_hide_or_close; // GUI
168 int disable_all_pointer_warps; // GUI
169 int pointer_slide; // GUI
170 double pointer_warp_speed; // GUI
171 int use_e_cursor; // GUI
172 int cursor_size; // GUI
173 int menu_autoscroll_margin; // GUI
174 int menu_autoscroll_cursor_margin; // GUI
175 const char *input_method; // GUI
186 int menu_eap_name_show; // GUI
187 int menu_eap_generic_show; // GUI
188 int menu_eap_comment_show; // GUI
189 int menu_favorites_show; // GUI
190 int menu_apps_show; // GUI
191 Eina_Bool menu_icons_hide; // GUI
192 int menu_gadcon_client_toplevel; // GUI
193 int fullscreen_policy; // GUI
194 const char *exebuf_term_cmd; // GUI
195 Eina_List *color_classes; // GUI
196 int use_app_icon; // GUI
197 int cnfmdlg_disabled; // GUI
198 int cfgdlg_auto_apply; // GUI
199 int cfgdlg_default_mode; // GUI
200 Eina_List *gadcons; // GUI
201 Eina_List *shelves; // GUI
202 int font_hinting; // GUI
204 int desklock_passwd; // GUI // hashed
205 int desklock_pin; // GUI // hashed
206 Eina_List *desklock_backgrounds; // GUI
207 int desklock_auth_method; // GUI
208 int desklock_login_box_zone; // GUI
209 int desklock_start_locked; // GUI
210 int desklock_on_suspend; // GUI
211 int desklock_autolock_screensaver; // GUI
212 double desklock_post_screensaver_time; // GUI
213 int desklock_autolock_idle; // GUI
214 double desklock_autolock_idle_timeout; // GUI
215 int desklock_use_custom_desklock; // GUI
216 const char *desklock_custom_desklock_cmd; // GUI
217 unsigned char desklock_ask_presentation; // GUI
218 double desklock_ask_presentation_timeout; // GUI
220 int screensaver_enable; // GUI
221 int screensaver_timeout; // GUI
222 int screensaver_interval; // GUI
223 int screensaver_blanking; // GUI
224 int screensaver_expose; // GUI
225 unsigned char screensaver_ask_presentation; // GUI
226 double screensaver_ask_presentation_timeout; // GUI
228 int screensaver_wake_on_notify; // GUI
229 int screensaver_wake_on_urgent; // GUI
231 unsigned char screensaver_suspend; // GUI
232 unsigned char screensaver_suspend_on_ac; // GUI
233 double screensaver_suspend_delay; // GUI
235 int dpms_enable; // GUI
236 int dpms_standby_enable; // GUI
237 int dpms_standby_timeout; // GUI
238 int dpms_suspend_enable; // GUI
239 int dpms_suspend_timeout; // GUI
240 int dpms_off_enable; // GUI
241 int dpms_off_timeout; // GUI
242 unsigned char no_dpms_on_fullscreen; // GUI
244 int clientlist_group_by; // GUI
245 int clientlist_include_all_zones; // GUI
246 int clientlist_separate_with; // GUI
247 int clientlist_sort_by; // GUI
248 int clientlist_separate_iconified_apps; // GUI
249 int clientlist_warp_to_iconified_desktop; // GUI
250 int clientlist_limit_caption_len; // GUI
251 int clientlist_max_caption_len; // GUI
253 int mouse_hand; //GUI
254 int mouse_accel_numerator; // GUI
255 int mouse_accel_denominator; // GUI
256 int mouse_accel_threshold; // GUI
258 int border_raise_on_mouse_action; // GUI
259 int border_raise_on_focus; // GUI
260 int raise_on_revert_focus; // GUI
261 int desk_flip_wrap; // GUI
262 int fullscreen_flip; // GUI
263 int multiscreen_flip; // GUI
265 const char *icon_theme; // GUI
266 unsigned char icon_theme_overrides; // GUI
267 const char *desktop_environment; // GUI
270 * 1-"pane") horizontal or vertical movement to/from next/previous "screen"
271 * 2-"zoom") 45degree diagonal movement based on border position
273 int desk_flip_animate_mode; // GUI
274 /* types based on theme */
275 Eina_Stringshare *desk_flip_animate_type; // GUI
276 int desk_flip_animate_interpolation; // GUI
278 const char *wallpaper_import_last_dev; // INTERNAL
279 const char *wallpaper_import_last_path; // INTERNAL
281 const char *theme_default_border_style; // GUI
283 Eina_List *mime_icons; // GUI
284 int desk_auto_switch; // GUI;
290 int ping_clients_interval; // GUI
291 int cache_flush_poll_interval; // GUI
293 int thumbscroll_enable; // GUI
294 int thumbscroll_threshhold; // GUI
295 double thumbscroll_momentum_threshhold; // GUI
296 double thumbscroll_friction; // GUI
298 unsigned char filemanager_single_click; // GUI
299 int device_desktop; // GUI
300 int device_auto_mount; // GUI
301 int device_auto_open; // GUI
302 Efm_Mode device_detect_mode; /* not saved, display-only */
303 unsigned char filemanager_copy; // GUI
304 unsigned char filemanager_secure_rm; // GUI
308 double timeout; // GUI
311 unsigned char dx; // GUI
312 unsigned char dy; // GUI
316 unsigned char dx; // GUI
317 unsigned char dy; // GUI
325 double factor; // GUI
327 unsigned char use_dpi; // GUI
328 unsigned char use_custom; // GUI
331 unsigned char show_cursor; // GUI
332 unsigned char idle_cursor; // GUI
334 const char *default_system_menu; // GUI
336 unsigned char cfgdlg_normal_wins; // GUI
342 int icon_size; // GUI
343 } main, secondary, extra;
344 double timeout; // GUI
345 unsigned char do_input; // GUI
351 unsigned char presentation; // INTERNAL
352 unsigned char offline; // INTERNAL
357 double expire_timeout;
358 unsigned char show_run_dialog;
359 unsigned char show_exit_dialog;
362 unsigned char null_container_win; // HYPER-ADVANCED-ONLY - TURNING ON KILLS DESKTOP BG
364 Eina_List *env_vars; // GUI
368 double normal; // GUI
370 double transition; // GUI
372 const char *sysdev; // GUI
373 unsigned char idle_dim; // GUI
374 E_Backlight_Mode mode; /* not saved, display-only */
384 E_Powersave_Mode min;
385 E_Powersave_Mode max;
390 unsigned char load_xrdb; // GUI
391 unsigned char load_xmodmap; // GUI
392 unsigned char load_gnome; // GUI
393 unsigned char load_kde; // GUI
398 unsigned char enabled; // GUI
399 unsigned char match_e17_theme; // GUI
400 unsigned char match_e17_icon_theme; // GUI
403 const char *xft_hint_style;
404 const char *xft_rgba;
405 const char *net_theme_name; // GUI
406 const char *net_theme_name_detected; // not saved
407 const char *net_icon_theme_name;
408 const char *gtk_font_name;
413 unsigned char check; // INTERNAL
414 unsigned char later; // INTERNAL
419 Eina_List *used_layouts;
420 Eina_List *used_options;
422 const char *default_model;
424 E_Config_XKB_Layout *current_layout;
425 E_Config_XKB_Layout *sel_layout;
426 E_Config_XKB_Layout *lock_layout;
427 Eina_Bool dont_touch_my_damn_keyboard;
429 /* NO LONGER USED BECAUSE I SUCK
430 * -zmike, 31 January 2013
432 const char *cur_layout; // whatever the current layout is
433 const char *selected_layout; // whatever teh current layout that the user has selected is
434 const char *desklock_layout;
437 Eina_List *menu_applications;
438 unsigned char exe_always_single_instance; // GUI
439 int use_desktop_window_profile; // GUI
442 struct E_Config_Bindings
444 unsigned int config_version;
445 Eina_List *mouse_bindings; // GUI
446 Eina_List *key_bindings; // GUI
447 Eina_List *edge_bindings; // GUI
448 Eina_List *signal_bindings; // GUI
449 Eina_List *wheel_bindings; // GUI
450 Eina_List *acpi_bindings; // GUI
453 struct _E_Config_Desklock_Background
459 struct _E_Config_Env_Var
466 struct _E_Config_Syscon_Action
475 struct _E_Config_Module
478 unsigned char enabled;
479 unsigned char delayed;
483 struct _E_Config_Binding_Mouse
489 unsigned char button;
490 unsigned char any_mod;
493 struct _E_Config_Binding_Key
496 unsigned int modifiers;
500 unsigned char any_mod;
503 struct _E_Config_Binding_Edge
511 unsigned char any_mod;
515 struct _E_Config_Binding_Signal
521 unsigned char any_mod;
526 struct _E_Config_Binding_Wheel
532 unsigned char any_mod;
537 struct _E_Config_Binding_Acpi
539 int context, type, status;
540 const char *action, *params;
543 struct _E_Config_Desktop_Background
551 struct _E_Config_Desktop_Name
559 struct _E_Config_Desktop_Window_Profile
567 struct _E_Config_Gadcon
575 struct _E_Config_Gadcon_Client
581 int pos, size, res; //gadcon
582 double pos_x, pos_y, size_w, size_h; //gadman
590 unsigned char autoscroll;
591 unsigned char resizable;
595 struct _E_Config_Shelf
601 unsigned char popup; //DEAD
603 unsigned char fit_along;
604 unsigned char fit_size;
609 int autohide_show_action;
613 Eina_List *desk_list;
616 struct _E_Config_Shelf_Desk
621 struct _E_Config_Mime_Icon
627 struct _E_Event_Config_Icon_Theme
629 const char *icon_theme;
632 struct _E_Config_XKB_Layout
639 struct _E_Config_XKB_Option
644 EINTERN int e_config_init(void);
645 EINTERN int e_config_shutdown(void);
647 EAPI void e_config_load(void);
649 EAPI int e_config_save(void);
650 EAPI void e_config_save_flush(void);
651 EAPI void e_config_save_queue(void);
653 EAPI const char *e_config_profile_get(void);
654 EAPI char *e_config_profile_dir_get(const char *prof);
655 EAPI void e_config_profile_set(const char *prof);
656 EAPI Eina_List *e_config_profile_list(void);
657 EAPI void e_config_profile_add(const char *prof);
658 EAPI void e_config_profile_del(const char *prof);
660 EAPI void e_config_save_block_set(int block);
661 EAPI int e_config_save_block_get(void);
663 EAPI void *e_config_domain_load(const char *domain, E_Config_DD *edd);
664 EAPI void *e_config_domain_system_load(const char *domain, E_Config_DD *edd);
665 EAPI int e_config_profile_save(void);
666 EAPI int e_config_domain_save(const char *domain, E_Config_DD *edd, const void *data);
668 EAPI E_Config_Binding_Mouse *e_config_binding_mouse_match(E_Config_Binding_Mouse *eb_in);
669 EAPI E_Config_Binding_Key *e_config_binding_key_match(E_Config_Binding_Key *eb_in);
670 EAPI E_Config_Binding_Edge *e_config_binding_edge_match(E_Config_Binding_Edge *eb_in);
671 EAPI E_Config_Binding_Signal *e_config_binding_signal_match(E_Config_Binding_Signal *eb_in);
672 EAPI E_Config_Binding_Wheel *e_config_binding_wheel_match(E_Config_Binding_Wheel *eb_in);
673 EAPI E_Config_Binding_Acpi *e_config_binding_acpi_match(E_Config_Binding_Acpi *eb_in);
674 EAPI void e_config_mode_changed(void);
677 EAPI void e_config_bindings_free(E_Config_Bindings *ecb);
678 EAPI void e_config_binding_signal_free(E_Config_Binding_Signal *ebs);
679 EAPI void e_config_binding_wheel_free(E_Config_Binding_Wheel *ebw);
680 EAPI void e_config_binding_mouse_free(E_Config_Binding_Mouse *ebm);
681 EAPI void e_config_binding_edge_free(E_Config_Binding_Edge *ebe);
682 EAPI void e_config_binding_key_free(E_Config_Binding_Key *ebk);
683 EAPI void e_config_binding_acpi_free(E_Config_Binding_Acpi *eba);
685 extern EAPI E_Config *e_config;
686 extern EAPI E_Config_Bindings *e_bindings;
688 extern EAPI int E_EVENT_CONFIG_ICON_THEME;
689 extern EAPI int E_EVENT_CONFIG_MODE_CHANGED;
690 extern EAPI int E_EVENT_CONFIG_LOADED;