Both sides previous revisionPrevious revision | Last revisionBoth sides next revision |
simple_settings [2007/04/18 16:47] – Elektra could be an alternative 85.232.10.40 | simple_settings [2010/10/02 17:26] – external edit 127.0.0.1 |
---|
| ====== 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! |
| * unnecessary use of resources. this could be summed up in one XML file. only a crazy person would organize settings this way. |
| |
| ===== 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. |
| |
| ===== Alternatives ===== |
| May I suggest, you have a short look at [[http://www.libelektra.org/Why_Linux_Needs_to_be_Elektrified|Elektra]] - Probably thats what you want plus a bit more... |
| |
| |
| ===== Links ===== |
| [[http://blog.xfce.org/?p=171|Comments on this idea on the Xfce blog]] |