AfterStep Themes Discussion
From AfterWiki
The whole terminology of themes/skins is full of misunderstandings, so everthing needs to be clearly defined, feel free to correct anything...
Contents
- 1 Part of Discussion
- 2 Definitions
- 3 Mogh: the temporary theming engine
- 4 Entities involved with theming
- 5 Theme objectives
- 6 Atomic Elements that cannot be further reduced that are part of a theme
- 7 Atomic Elements that cannot be further reduced that are´nt part of a theme
- 8 Things that are ambigious
- 9 Example Start Menu and where themeing will interfere with it
Part of Discussion
so far users born2late and speedy0 have joined the discussion
Definitions
- a user may enforce his settings at any time if he falls back into the classic afterstep configuration scheme.
- a theme is:
- a subject of composition and/or a distinct, recurring, and unifying quality or idea
- a set of default settings, which may or may not be changed by a user
- hiding complexity from start menu
- theme subsettings:
- may not be interchangeable between themes
- a look (or skin) is a way to decorate elements a user has set up to be on his desktop (!!!) this cannot be expected to be cross-theme compliant
- a feel is a set of configurations that makes sure that the desktop behaves like expected (!!!) this cannot be expected to be cross-theme compliant
- a layout is any set of module settings, including look and feel, that defines the geographical placement of UI elements (!!!) this cannot be expected to be cross-theme compliant
Mogh: the temporary theming engine
- Format:
- a tar bzip2 file
- themename.mogh containing at least the file mogh.themename
- each theme MUST support different layouts
- Properties:
- backs up user data (look+feel+all config files in ~/.afterstep/)automatically before first usage to ~/.afterstep/desktop/layout/username_at_hostname
- installs itself in ~/.afterstep/desktop/themes/themename
- all files except directories and the wharf file itself in ~/.afterstep become symlinks to the theme ones
- provides a gui for themeswitching constructed with wharf
- generates a working wharf file for the user
- generates start menu entries under Desktop/Layout for Layout switching
Entities involved with theming
- user (what he wants and doesnt want to be changed)
- theme (what themer wants so theme is an experience rather then simple cosmetic changes)
- theme engine (helps integrate user whishes and themer whishes)
Theme objectives
- it defines where stuff lies on the desktop (as such any personal config is in itself a theme)
- how it reacts/interacts
- it defines how stuff is decorated
- other toolkits/apps to be themed
Atomic Elements that cannot be further reduced that are part of a theme
- Background
- IconSet
- Decor (look -> MyStyles)
- Windows
- Window Buttons
- Menu (including MiniFolders)
- Modules
- Wharf
- Pager
- Winlist
- WinTabs
- banner
- Feel (FIXME : break down more)
- Keyboard actions
- mouse actions
- Module Decor
- size and orientation of windowbox (problem here: how to make that look independant)
- Animation settings
- Mouse pointer (?)
Atomic Elements that cannot be further reduced that are´nt part of a theme
- Color Scheme
- Mouse speed and buttons
- Keyboard shortcuts
- Window focus bahaviour - like clicktoraise, autoraise, clicktofocus, sloppyfocus etc...
Things that are ambigious
This seem to be problematic sections for one of us:
- Background -> by definition a very personal setting... 3 settings at least : dont_touch, theme(keep picture just make matching frame),replace
- Menu - switching on and off: mini-folders, recent, texture, unavailable.
- Feel - Not sure if this should be included or not. Very user-specific. What's the gain for the user?
- Sounds - based-on events, could have a sci-fi theme, Halloween theme, Simpsons theme, Elmo theme, etc.
- Modules - Should these be modified? These are very user-specific, and loading them can disrupt an existing setup. Should there be a warning when installing these? ...should be user definable imo...
- Animations - seven types offered. Can these even be theme-specific? Can additional ones be added? If not, should be decided by user. since the Animate Module is the right one to put opengl/bling support into this should stay in somehow.
Example Start Menu and where themeing will interfere with it
- Distro (debian, red hat, ubuntu)+correstponding icon
- Games
- Apps (No setting stuff)
- Desktop
- Color Scheme
- Feel (optionaly overwritten/replaced by the current theme - as default feels might not be compatible)
- Layout (optionaly overwritten/replaced - as a theme might be compatible with afterstep defaults
- Look (optionaly overwritten/replaced - theme dependent as a theme might use default-theme compatible settings)
- Pictures (optionally entries added by theme)
- List of Pictures
- Picture Manager
- Update/Refresh
- All
- GTK/QT
- Startmenu
- Modules
- Find
- Run
- Terminal
- Windows
- Quit
- Help