Distribution of board themes
H.G. Muller <h.g.muller <at> hccnet.nl>
2016-04-24 08:24:09 GMT
Due to the good work of Joshua we now have SVG images available
that can be directly used with XBoard, for some 50 piece themes.
We also have dozens of diferent PNG images with textures for board
squares, as well as many whole-board images. The issue is how to
I have made some preliminary attempts to divide up the available
material into packages. I posted some tentative designs for how
such packages could look at
These packages come with a MakeFile, which has install and uninstall
targets for placing the files in the proper location in XBoard's private
datadir tree (like /usr/local/share/games/xboard/themes/textures),
as well as a 'dist' target to pack the files in a tar ball for distribution.
Piece themes are placed in ~~/themes/≤theme_name>/*.svg, textures
in ~~/themes/textures/*.png or ~~/themes/textures/≤type>/*png,
and settings files in /themes/conf, much like the pieces and textures
included with the standard install go.
The source files for these theme packages have been added as a new
branch 'themes' to the XBoard git repository (currently only at
The xb_pieces package contains the more conventional piece designs
like Alpha and Meridia. The themes branch currently holds two other
packages, xb_pieces_fancy and xb_pieces_exotic, with progressively
more unconventional designs. The file chooser used when browsing
for a new theme only shows some 20 files/folders, which would
require a lot of scrolling fro someone who installs all themes. So it
might provide easier access when we introduce an extra level of
where theme_type could even sub-divide a package. (E.g. the
xb_pieces package could contain sub-folders 'fat-pawn' and
'skinny-pawn', while xb_exotic could have 'cartoons' and 'abstract'.)
This would minimize scrolling at the expense of extra double-clicking
to eter a sub-directory during piece-theme selection. One could also
argue that the preview facilities XBoard now offers are good enough
to dump all themes into one folder, as scrolling is not such an
annoyance when you do not have to leave the folder and return
(thereby losing the old scroll position).
The main issue is this, however: if we are going to host such packages
on the GNU servers, does it still make sense to package the traditional
Xiangqi and Shogi themes with the XBoard standard install? Or would
it be better to have packages xb_xiangqi and xb_shogi amongst the
theme packages, which then could be installed only by people who
actually want to play these gaes in traditional oriental (kanji) represent-
ation, rather than with the 'default' (western pictogram) theme?
The xb_xiangqi package I made essentially contains the same stuff
as we now distribute with the standard XBoard install. (We added one
new whole-board image using transparency.) If we would have more
dedicated Xiangqi piece designs they could go in that package too,
as we would do for xb_shogi (where we also have two Chu-Shogi
designs, as well as Tori-Shogi and Wa-Shogi pieces).
Another question is how we should direct people to the download for
piece and board themes. Should there be a new 'download piece themes'
menu entry in the Help menu that directs them to a download page?
Or should we make a button or link for that in the Board dialog?
Finally there is the issue of whether we should use the new -installTheme
command-line option in the install script of the theme packages to
automatically create entries for the installed stuff in the 'Themes' listbox
of the View->Board dialog. The pieces and textures packages contain
'half-themes' rather than themes, and a lot of them, which would flood
the listbox (which can hold only 15 themes without scrolling). So the
current trial packages do not crate such entries. For the xb_xiangqi
package I have it create a single entry for the 'recommended' traditional
Xiangqi theme, but this is truly a complete theme, as it sets both board
and pieces. What would be the best policy for automatic creation of
Theme entries in the listbox? Would it be desirable to implement a way
of automatically creating collapsible groups in this listbox, so that
theme packages could create such groups of entries (thus reducing
demand on precious listbox space, and removing the reluctance to
create entries), or add them to an existing group?