Fandom

Xfce Wiki

Simple Settings

37pages on
this wiki
Add New Page
Talk0 Share

Hi,

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.

So for our (more or less) current settings,

.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 are:

  • 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!

As a means to fix the only remaining disadvantage, I'd suggest writing/mounting a FUSE module that stores the settings in a bdb or something.

Ad blocker interference detected!


Wikia is a free-to-use site that makes money from advertising. We have a modified experience for viewers using ad blockers

Wikia is not accessible if you’ve made further modifications. Remove the custom ad blocker rule(s) and the page will load as expected.