Brainfart: A skinners tale

Thursday, September 13, 2007

Call me via Jaxter?



Note to other Jaxtr'rs: The "Auto-insert into Blogger Blog" feature of Jaxtr simply slapped it into a blog entry, not the template coding. No title was provided, either. :(

Labels:

Monday, September 10, 2007

Singularity v4 Release Candidate for LiteStep

This one goes out for !mulestem, who has asked diligently on the progress of this theme for over a year.

A release-candidate of the theme is available at the Skinyourscreen Forums for download and testing. There are still some very large INCOMPLETES in the theme:

  • Color theme scripting isn't working yet. All the graphics and folders are there, but changing themes currently requires hacking the theme.rc file to change a variable.
  • No theme-specific wallpapers, yet.
  • Rainmeter mini-system meter isn't included yet, although the graphics are in place and ready to be coded into the theme.
  • Sysmetrix theme not included yet, although it, too, is mostly complete. All media functions have been off-loaded to Sysmetrix.

Labels: , ,

Thursday, August 02, 2007

System Metering and/or calendar? Rainy or no?

Finally got a little time to at least assess progress on the Singularity skin(s). After doting on several variations of the media-control module I've finally decided to eliminate it altogether. The existing modules serve well as fronts for WinAmp or iTunes, but both look fine and work even better on their own (IMHO). Unless someone wants to argue against this, I'll be proceeding without any included media controls in the theme.

The next big question is what to do for Calendaring and System Metering functions. Below is a mockup I sketched out last night on the Wacom-tablet:

Traditionally I've skinned Rainlendar and Rainmeter in LiteStep themes because their origins are in LiteStep, and because they're easy to integrate with LiteStep themes. However, I've debated nixing a full-fledged calendar and instead integrating many of the calendar/date/time functions directly into a dedicated program, Sysmetrix, which greatly facilitates the skinning process. My time is at a premium, and IF I'm to complete this project in any measure, it'll mean streamlining my work-flow, and Sysmetrix would enhance this dramatically.

Still finalizing sketches on the system-meter, though. Don't really know what I want it to look like, beyond NOT looking like the original Sysmetrix skin I designed for Singularity so many years ago (a tad slug-like in my estimation).

Labels: , , , , ,

Wednesday, April 04, 2007

Singularity Scripts Simplified

Singularity Under The Hood
A lot has happened behind-the-scenes with relation to the Singularity v0.004 theme for LiteStep OTS2 recently. Besides the entirely new graphical front-end of the theme, much of the back-end has changed likewise, although those parts are less likely to be noticed. Here are a few of the changes:
  1. Switched from Layercuts-1.72 to xLabel-4.0.7. This was a major undertaking, as the syntax used between the two modules for rendering the desktop shortcuts and graphics is VERY different. Although I've had a hard-time learning xLabel's syntax and exactly what ties in to the xPaintClass.dll module, it's been worth it - xLabel uses less memory and does more despite the extra lines of code it takes. Setting up the instrument cluster (taskbar, VWM, and system tray) used much fewer graphics this time, although the RC coding almost quadrupled in size (and I haven't even gotten to the meters and audio module!). It renders much nimbler, however, and the theme's startup time has bee reduced as a consequence.
  2. Taskbar went from Taskbar3.dll to xtaskbar-2.0.2. Man, what a cool module! Infinitely versatile, I don't think I'll ever use anything else again.
  3. The System-Tray went from the previous installer-bundled tray module to xTray-1.1.1, again, going with the trend for the latest xModules where I can. No extra icon effects at the moment, because I feel the natural colors and saturations of the icons provide a better visual cue as to what they actually are, although an option for recolorization may be included.
  4. Many RC configurations have been off-loaded from the THEME.RC file to auxiliary files in the CONFIG directory. I used to hate it when themers did this, because it made things harder to find sometimes. Having a tabbed text-editor with great syntax highlighting has largely resolved this for me, though.
  5. Popup variations - 3 of them. I've already shown how these guys look. The scripts to change them, however, have been updated using the new xTextEdit module, whose !xTextSaveEvar bang (LiteStep command) has greatly simplified my life.
So with that said, here is a list of of the currently installed and working modules:
  • xPaintClass-1.0
  • xLabel-4.0.7
  • mzscript-0.8
  • jdesk-0.73
  • xpopup-1.3.1
  • xtaskbar-2.0.2
  • xtray-1.1.1
  • rabidvwm-1.2.1i
  • lsxcommand-1.9.4
  • ckhotspots-2.3.3
  • xtextedit-0.6
Scripts updated
Another major task in progress is to simplify the scripts present in the theme. A little secret for anyone reading: I suck at coding. That's right, I'm a really crappy, brute-force style programmer with no panache or elegance. It really showed in the previous scripts. The updates make it marginally easier to see what's going on. XLabel's Groups functions have really made this possible. Here's an example of what the script for changing the Instrument module's Z-order used to look like:

;_____/ Toggle bar Z-Order script \_____
*script bang !ToggleTopBar
*script gotoif ("%[_topzorderstate]" = "ontop") tbmove2bottom
*script gotoif ("%[_topzorderstate]" = "desktop") tbmove2top
*script label tbmove2bottom
;==>Move bar elements to bottom z-order.
*script exec !shortcutgrouponbottom 1
*script exec !systrayontop
*script exec !vwmtoggleontop bottom
*script exec !shortcutgrouponbottom 5
*script exec !shortcutgrouponbottom 6
*script exec !shortcutgrouponbottom 7
*script exec !shortcutgrouponbottom 8
*script exec !shortcutgrouponbottom 9
*script exec !shortcutgrouponbottom 10

;==>Ensure that command is hidden & correct btn shown.
*script exec !ifEq _cutsbarstate "expanded" !shortcutgroupshow 8
*script exec !ifEq _cutsbarstate "contracted" !shortcutgrouphide 8
*script exec !shortcutgrouphide 9
*script exec !commandhide

*script exec !varSet _topzorderstate "desktop"
*script exit

*script label tbmove2top
;==>Move bar elements to top z-order.
*script exec !shortcutgroupontop 1
*script exec !shortcutgroupontop 5
*script exec !shortcutgroupontop 6
*script exec !shortcutgroupontop 7
*script exec !shortcutgroupontop 8
*script exec !shortcutgroupontop 9
*script exec !shortcutgroupontop 10

;==>Ensure that command is hidden & right btn shown.
*script exec !ifEq _cutsbarstate "expanded" !shortcutgroupshow 8
*script exec !ifEq _cutsbarstate "contracted" !shortcutgrouphide 8
*script exec !shortcutgrouphide 9
*script exec !commandhide

*script exec !systrayontop
*script exec !vwmtoggleontop yes
*script exec !varSet _topzorderstate "ontop"
*script ~bang


Here's what it looks like now:

;_____] New Toggle Instruments Zorder script [_____
*script bang !ToggleInstrumentZ
*script exec !vwmtoggleontop
*script exec !xtrayalwaysontop toggle
*script exec !xtaskbaralwaysontop toggle
*script exec !labelalwaysontop Instruments toggle
*script exec !ifEq _instz "ontop" !varSet _instz "desktop"
*script exec !ifEq _instz "desktop" !varSet _instz "ontop"
*script ~bang


It's amazing what a few years experience can do. Regardless, I'm still less-than-average when it comes to the coding aspect of this, so any expertice or suggestions are appreciated.

What's Next
Here are a few of my current to-do items on the theme:
  • Create separators for the pop-up menus.
  • Tweak the existing taskbar drop-shadows slightly.
  • Create 2 more task-bar styles that can be dynamically selected on the fly.
  • Get the System Meters working, either through xStatsGraph or RainMeter.
  • Select an appropriate audio module and get it working through the desktop shortcuts.
  • Finish polishing up the scripts.
  • Add the afore-mentioned color themes to this version of singularity.

Labels: , ,

Saturday, March 10, 2007

Singularity v0.004 for LiteStep - Menus/Popups

Well, I've reinstalled Windows2000 on a partition on the Linux box to get back to LiteStep skinning (rather than doing it all through VirtualPC on the Mac.... SLOW). The next step was to get LiteStep installed, for which several installation options exist. I opted for one I'd never tried before, the LiteStep Open Source Installer (LOSI), principally because it's using the latest LiteStep core files by default. Although the installation and configuration of LiteStep through this installer appeared to go fine, installation of 3 out of 5 themes resulted in errors that completely hung the computer and required resetting of the shell back to Explorer through the Task-Manager. Not entertaining.

After uninstalling LOSI, Omar's 3.0.2 installer was my fall-back, the tried-and-true method with a mighty fine default LiteStep theme (one of my favorites, truly). Since the core files in this installer are a bit outdated, I quickly downloaded and installed the latest LiteStep 0.24.7 Core files in my LiteStep directory and updated to the latest version of NetLoadModule. All went well, and in the end, I had no problems installing themes. I've praised Omar before, but I'll do it again... fantastic installer, fantastic utilities, and it just plain works.

Minor Setback: no backup...
After all the LiteStep installation, I was eager to fire up my work-in-progress, Singularity v0.004. A thorough sweep of my archives, however, revealed that the config files for the theme were nowhere to be found. All the graphics were there, but the previous theme.rc, script.rc, themevars.rc, and popup configs were non-existant. Dang.

Starting over quickly: Menus
Without further ado, I began crafting what to me is the most critical part of any LiteStep theme: the Popup Menu. Without this, you're not going to be navigating far. I quickly set-up a new theme.rc file and gave it some basic instructions for where to find files (the typical directory tree, config, images, misc...) and then added the line to get NetLoadModule to load an old favorite, and something cutting edge:

*NetLoadModule jdesk-0.73
*NetLoadModule xpopup-1.3.1

jDesk is an old desktop module that will let the user right-click the desktop to activate a popup menu, the traditional way, and xPopup is Andymon's incredible popup module. I specifically went for xPopup over alternatives because of its ability to quickly render alpha-transparent images as the menu, allowing me to do cool things with drop-shadows and glass effects.

In the graphical design stage, I couldn't figure out which prototype popup menu I liked most, so I decided to include all three and let the user pick what they want. This means unique settings for each popup menu, as icons and text position is slightly different between them. This necessitated splitting the popup configuration parameters into 4 parts:

  1. Theme.rc: all popup settings common
  2. Popup-1.rc: all settings specific to popup style 1.
  3. Popup-2.rc: all settings specific to popup style 2.
  4. Popup-3.rc: all settings specific to popup style 3.

After all the configuration, here's a preview of the three different styles in action:


Now I'm working on getting the graphics layout completed using either the Layer-Cuts module or one of Andymon's shortcut modules. The taskbar and system tray will be soon to follow!

Labels: , , ,

Thursday, March 01, 2007

Singularity for iPulse

In the process of re-creating a new Singularity suite, I've updated the layer-styles significantly. To see how it works on a fully functional skinned program I applied the graphics to iPulse, a novel system meter for Apple's OS X operating system. Below are the results:

There are essentially two graphical variations, and then two meter-color variations. Actually, there's a third option I've made, too, more monochromatic for the actual meters to the skin shows up (the meters can sometimes hide the graphics, although the meters are, of course, the bread-and-butter of the program).

I'll be trying it out with color variations next. BTW, although this theme is essentially ready for publication, I'm gonna use a little restraint and wait until the rest of the suite is largely completed before releasing this.

Update on Singularity for LiteStep
The audio module graphics are completed and diced. I'm in the process of selecting which LiteStep modules to use, and I've been out of the LiteStep loop for some years. Then the coding commences. Also in the works is a completely revised System Meter that will be skinned onto SysMetrix as well as RainMeter. All I will comment here is that it will be significantly different from the previous incarnation of the system meters in the Singularity suite ;) More to come later.

Labels: , , ,

Monday, February 12, 2007

"Open" in Mac OS X Terminal


I find myself doing most of my file operations from the terminal in linux or Mac OS X - it's just fast. One of the differences from the typical linux install vs. Mac OS X's terminal, however, is the opening of programs. Under linux once can simply type the name of the program to open - "xfcedesktop" for instance, and start it up. Starting up a GUI-based program under the Mac OS X terminal, however, requires navigating into that application's *.app folder, navigating through the Contents and MacOS folder before using a terminal shell command like "./TextEdit" to start the program.

Inelegant.

While goofing around with the documentation man-pages I stumbled upon the "open" command, however. Use it on a document or file at the terminal to cause the appropriate application to open the file. Great for opening Microsoft Office files, movies, programming files, etc. Now I just type "open somestupidpieceofdata.txt" and voila!

Labels: , ,