Next revision | Previous revision |
simple_settings [2006/12/02 14:46] – created nick | simple_settings [2012/01/02 15:23] (current) – removed nick |
---|
====== Simple Settings ====== | |
| |
===== Introduction ===== | |
| |
So I'd like to do some idle talk about simplifying the configuration system of Xfce4.5. | |
| |
All the possibilities I heard so far do not go far enough. | |
| |
What I'd like to see is it to be simplified to the max by: | |
| |
Using one (real) file per setting (yes _setting_) in ".config/xfce4/<some-sub-directories>" | |
| |
If the setting points to a file (for example background image), it should be a symlink to the file. | |
Otherwise it should be a regular file containing the value as readable string. | |
| |
===== Settings layout ===== | |
| |
.config/xfce4/settings/pyramid.ath.cx/desktop/:0.0/brightness | |
.config/xfce4/settings/pyramid.ath.cx/desktop/:0.0/color_1 | |
.config/xfce4/settings/pyramid.ath.cx/desktop/:0.0/color_2 | |
.config/xfce4/settings/pyramid.ath.cx/desktop/:0.0/color_style | |
.config/xfce4/settings/pyramid.ath.cx/desktop/:0.0/image -> /home/dannym/pic/backgrounds/image_1 | |
.config/xfce4/settings/pyramid.ath.cx/desktop/:0.0/image_style | |
| |
.config/xfce4/settings/pyramid.ath.cx/desktop/:0.1/image_style | |
| |
.config/xfce4/settings/pyramid.ath.cx/display/:0/blue_gamma | |
.config/xfce4/settings/pyramid.ath.cx/display/:0/green_gamma | |
.config/xfce4/settings/pyramid.ath.cx/display/:0/red_gamma | |
.config/xfce4/settings/pyramid.ath.cx/display/:0/size | |
.config/xfce4/settings/pyramid.ath.cx/display/:0/rate | |
| |
.config/xfce4/settings/pyramid.ath.cx/gtk/:0/can_change_accelerators | |
.config/xfce4/settings/pyramid.ath.cx/gtk/:0/cursor_theme_name | |
.config/xfce4/settings/pyramid.ath.cx/gtk/:0/cursor_theme_size | |
.config/xfce4/settings/pyramid.ath.cx/gtk/:0/font_name | |
.config/xfce4/settings/pyramid.ath.cx/gtk/:0/key_theme_name | |
| |
.config/xfce4/settings/pyramid.ath.cx/gtk/:0/toolbar_style <-- this is stupid, should be a per-app setting. | |
| |
.config/xfce4/settings/pyramid.ath.cx/keyboard/:0/repeat_delay | |
.config/xfce4/settings/pyramid.ath.cx/keyboard/:0/repeat_key | |
.config/xfce4/settings/pyramid.ath.cx/keyboard/:0/repeat_rate | |
| |
.config/xfce4/settings/pyramid.ath.cx/margins/:0/bottom_margin | |
.config/xfce4/settings/pyramid.ath.cx/margins/:0/top_margin | |
.config/xfce4/settings/pyramid.ath.cx/margins/:0/left_margin | |
.config/xfce4/settings/pyramid.ath.cx/margins/:0/right_margin | |
| |
.config/xfce4/settings/pyramid.ath.cx/mouse/:0/right_handed | |
.config/xfce4/settings/pyramid.ath.cx/mouse/:0/right_handed | |
| |
.config/xfce4/settings/pyramid.ath.cx/panel/:0/autohide | |
.config/xfce4/settings/pyramid.ath.cx/panel/:0/fullwidth | |
.config/xfce4/settings/pyramid.ath.cx/panel/:0/layer | |
.config/xfce4/settings/pyramid.ath.cx/panel/:0/orientation | |
.config/xfce4/settings/pyramid.ath.cx/panel/:0/popup_position | |
.config/xfce4/settings/pyramid.ath.cx/panel/:0/size | |
.config/xfce4/settings/pyramid.ath.cx/panel/:0/theme -> /home/dannym/.themes/foo | |
| |
.config/xfce4/settings/pyramid.ath.cx/shortcuts/:0/XF86_VolumeUp/command | |
| |
.config/xfce4/settings/pyramid.ath.cx/sound/:0/mixer/default_device | |
.config/xfce4/settings/pyramid.ath.cx/sound/:0/mixer/device_0/useful_controls | |
| |
.config/xfce4/settings/pyramid.ath.cx/taskbar/:0/auto_hide | |
.config/xfce4/settings/pyramid.ath.cx/taskbar/:0/group_tasks | |
.config/xfce4/settings/pyramid.ath.cx/taskbar/:0/height | |
.config/xfce4/settings/pyramid.ath.cx/taskbar/:0/horizontal_alignment | |
.config/xfce4/settings/pyramid.ath.cx/taskbar/:0/position | |
.config/xfce4/settings/pyramid.ath.cx/taskbar/:0/show_all_tasks | |
.config/xfce4/settings/pyramid.ath.cx/taskbar/:0/show_pager | |
.config/xfce4/settings/pyramid.ath.cx/taskbar/:0/show_tasklist | |
.config/xfce4/settings/pyramid.ath.cx/taskbar/:0/show_text | |
.config/xfce4/settings/pyramid.ath.cx/taskbar/:0/show_time | |
.config/xfce4/settings/pyramid.ath.cx/taskbar/:0/show_tray | |
.config/xfce4/settings/pyramid.ath.cx/taskbar/:0/shrink | |
.config/xfce4/settings/pyramid.ath.cx/taskbar/:0/width_percent | |
| |
.config/xfce4/settings/pyramid.ath.cx/terminal/:0/accelerators | |
.config/xfce4/settings/pyramid.ath.cx/terminal/:0/font_name | |
.config/xfce4/settings/pyramid.ath.cx/terminal/:0/scrollback | |
.config/xfce4/settings/pyramid.ath.cx/terminal/:0/scrollbar | |
.config/xfce4/settings/pyramid.ath.cx/terminal/:0/show_menu | |
| |
.config/xfce4/settings/pyramid.ath.cx/window_manager/:0/cycle_hidden | |
.config/xfce4/settings/pyramid.ath.cx/window_manager/:0/cycle_minimum | |
.config/xfce4/settings/pyramid.ath.cx/window_manager/:0/cycle_workspaces | |
.config/xfce4/settings/pyramid.ath.cx/window_manager/:0/easy_click | |
.config/xfce4/settings/pyramid.ath.cx/window_manager/:0/focus_hint | |
.config/xfce4/settings/pyramid.ath.cx/window_manager/:0/frame_opacity | |
.config/xfce4/settings/pyramid.ath.cx/window_manager/:0/move_opacity | |
.config/xfce4/settings/pyramid.ath.cx/window_manager/:0/placement_ratio | |
.config/xfce4/settings/pyramid.ath.cx/window_manager/:0/popup_opacity | |
.config/xfce4/settings/pyramid.ath.cx/window_manager/:0/prevent_focus_stealing | |
.config/xfce4/settings/pyramid.ath.cx/window_manager/:0/raise_with_any_button | |
.config/xfce4/settings/pyramid.ath.cx/window_manager/:0/resize_opacity | |
.config/xfce4/settings/pyramid.ath.cx/window_manager/:0/restore_on_move | |
.config/xfce4/settings/pyramid.ath.cx/window_manager/:0/scroll_workspaces | |
.config/xfce4/settings/pyramid.ath.cx/window_manager/:0/show_frame_shadow | |
.config/xfce4/settings/pyramid.ath.cx/window_manager/:0/show_popup_shadow | |
.config/xfce4/settings/pyramid.ath.cx/window_manager/:0/snap_resistance | |
.config/xfce4/settings/pyramid.ath.cx/window_manager/:0/toggle_workspaces | |
.config/xfce4/settings/pyramid.ath.cx/window_manager/:0/wrap_cycle | |
.config/xfce4/settings/pyramid.ath.cx/window_manager/:0/wrap_layout | |
.config/xfce4/settings/pyramid.ath.cx/window_manager/:0/box_move | |
.config/xfce4/settings/pyramid.ath.cx/window_manager/:0/box_resize | |
.config/xfce4/settings/pyramid.ath.cx/window_manager/:0/button_layout | |
.config/xfce4/settings/pyramid.ath.cx/window_manager/:0/click_to_focus | |
.config/xfce4/settings/pyramid.ath.cx/window_manager/:0/double_click_action | |
.config/xfce4/settings/pyramid.ath.cx/window_manager/:0/focus_new_window | |
.config/xfce4/settings/pyramid.ath.cx/window_manager/:0/focus_raise | |
.config/xfce4/settings/pyramid.ath.cx/window_manager/:0/raise_delay | |
.config/xfce4/settings/pyramid.ath.cx/window_manager/:0/raise_on_click | |
.config/xfce4/settings/pyramid.ath.cx/window_manager/:0/snap_to_border | |
.config/xfce4/settings/pyramid.ath.cx/window_manager/:0/snap_to_windows | |
.config/xfce4/settings/pyramid.ath.cx/window_manager/:0/snap_width | |
.config/xfce4/settings/pyramid.ath.cx/window_manager/:0/theme | |
.config/xfce4/settings/pyramid.ath.cx/window_manager/:0/title_alignment | |
.config/xfce4/settings/pyramid.ath.cx/window_manager/:0/title_font | |
.config/xfce4/settings/pyramid.ath.cx/window_manager/:0/wrap_resistance | |
.config/xfce4/settings/pyramid.ath.cx/window_manager/:0/wrap_windows | |
.config/xfce4/settings/pyramid.ath.cx/window_manager/:0/wrap_workspaces | |
| |
.config/xfce4/settings/pyramid.ath.cx/workspaces/:0/workspace_count | |
.config/xfce4/settings/pyramid.ath.cx/workspaces/:0/workspace_names | |
| |
.config/xfce4/settings/pyramid.ath.cx/printing/:0/system -> /usr/lib/xfce4/xfprint-plugins/cups_plugin.so | |
| |
That isn't all that much, is it? | |
| |
===== Advantages ===== | |
* simple to copy/merge | |
* simple to understand | |
* can use all the normal unix tools\\ (symlink the important ones to another directory etc) | |
* simple to change by script | |
* uses normal unix tree api and doesn't introduce another version of it (xml, ini file, whatever) | |
* uses file change notification to be notified of changes (not xsettings) | |
| |
===== Disadvantage ===== | |
* wastes space on old filesystems - aren't that many files though! | |
| |
===== Conclusion ===== | |
As a means to fix the only remaining disadvantage, I'd suggest writing/mounting a [[http://fuse.sourceforge.net/|FUSE]] module that stores the settings in a bdb or something. | |