Difference between revisions of "AfterStep Themes Discussion"

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

Latest revision as of 09:49, 17 April 2013

The whole terminology of themes/skins is full of misunderstandings, so everthing needs to be clearly defined, feel free to correct anything...

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