Understanding the JWM Themes List Configuration in FunOS

In FunOS, the desktop environment is powered by JWM (Joe’s Window Manager), a lightweight, highly configurable window manager. One of its key strengths is the ability to easily change its appearance using themes.

This article explains the purpose and structure of the ~/.config/jwm/themes-list file and how it enables users to switch between different JWM themes in FunOS.

1. Backing Up Before Editing

Before making changes to this file, it’s a good idea to back it up:

cp ~/.config/jwm/themes-list ~/.config/jwm/themes-list.bak

If anything goes wrong, you can easily restore the original.

2. Accessing the Themes List File

You can access the JWM Themes List configuration file in two main ways:

a. File Manager

  1. Click Menu > File Manager
  2. Press Ctrl + H or click View > Show Hidden to display hidden files.
  3. Navigate to the .config/jwm/ directory and open the themes-list file with a text editor.

b. Terminal

mousepad ~/.config/jwm/themes-list

This opens the file in the Mousepad text editor, allowing you to view or modify its contents.

3. What Is the ~/.config/jwm/themes-list File?

The ~/.config/jwm/themes-list file defines a menu that allows users to switch between available JWM themes. Each menu entry is associated with a command to apply a specific theme by copying its configuration into the active ~/.config/jwm/theme file and then restarting JWM to reflect the change.

This file is included in the main JWM menu via the ~/.config/jwm/menu file, making theme selection easily accessible to users.

4. Default Themes List Configuration in FunOS

The file is an XML document wrapped in a <JWM> tag, containing a single <Menu> element with multiple <Program> entries. Each <Program> entry represents a selectable theme in the menu.

Here is the default contents of the file in FunOS:

<?xml version="1.0"?>
<JWM>
   <Menu icon="preferences-desktop-theme" label="Themes">
      <Program label="Adwaita Dark" confirm="false">cp -a .config/jwm/themes/Adwaita-Dark .config/jwm/theme && jwm -restart</Program>
      <Program label="Black" confirm="false">cp -a .config/jwm/themes/Black .config/jwm/theme && jwm -restart</Program>
      <Program label="Blue Day" confirm="false">cp -a .config/jwm/themes/Blue-Day .config/jwm/theme && jwm -restart</Program>
      <Program label="Brown" confirm="false">cp -a .config/jwm/themes/Brown .config/jwm/theme && jwm -restart</Program>
      <Program label="Cappuccino" confirm="false">cp -a .config/jwm/themes/Cappuccino .config/jwm/theme && jwm -restart</Program>
      <Program label="Clearlooks" confirm="false">cp -a .config/jwm/themes/Clearlooks .config/jwm/theme && jwm -restart</Program>
      <Program label="Coffee Cream" confirm="false">cp -a .config/jwm/themes/Coffee-Cream .config/jwm/theme && jwm -restart</Program>
      <Program label="Coper" confirm="false">cp -a .config/jwm/themes/Coper .config/jwm/theme && jwm -restart</Program>
      <Program label="Default" confirm="false">cp -a .config/jwm/themes/Default .config/jwm/theme && jwm -restart</Program>
      <Program label="Gold" confirm="false">cp -a .config/jwm/themes/Gold .config/jwm/theme && jwm -restart</Program>
      <Program label="Green" confirm="false">cp -a .config/jwm/themes/Green .config/jwm/theme && jwm -restart</Program>
      <Program label="Ice" confirm="false">cp -a .config/jwm/themes/Ice .config/jwm/theme && jwm -restart</Program>
      <Program label="Military" confirm="false">cp -a .config/jwm/themes/Military .config/jwm/theme && jwm -restart</Program>
      <Program label="Pastel" confirm="false">cp -a .config/jwm/themes/Pastel .config/jwm/theme && jwm -restart</Program>
      <Program label="Pretty Pink" confirm="false">cp -a .config/jwm/themes/Pretty-Pink .config/jwm/theme && jwm -restart</Program>
      <Program label="Red" confirm="false">cp -a .config/jwm/themes/Red .config/jwm/theme && jwm -restart</Program>
      <Program label="Shades of Grey" confirm="false">cp -a .config/jwm/themes/Shades-of-Grey .config/jwm/theme && jwm -restart</Program>
      <Program label="Sunny Day" confirm="false">cp -a .config/jwm/themes/Sunny-Day .config/jwm/theme && jwm -restart</Program>
      <Program label="White" confirm="false">cp -a .config/jwm/themes/White .config/jwm/theme && jwm -restart</Program>
   </Menu>
</JWM>

5. How It Works

Each <Program> entry performs two operations when selected:

  1. Copies the selected theme file from the ~/.config/jwm/themes/ directory into ~/.config/jwm/theme (the file used by JWM to render the theme).
  2. Restarts JWM using jwm -restart so the new theme is applied immediately.

For example:

cp -a .config/jwm/themes/Gold .config/jwm/theme && jwm -restart

This command applies the “Gold” theme and restarts JWM to make it active.

6. Available Themes in FunOS

As of the latest release, FunOS includes the following JWM themes located in:

~/.config/jwm/themes/

Available themes:

  • Adwaita-Dark
  • Black
  • Blue-Day
  • Brown
  • Cappuccino
  • Clearlooks
  • Coffee-Cream
  • Coper
  • Default
  • Gold
  • Green
  • Ice
  • Military
  • Pastel
  • Pretty-Pink
  • Red
  • Shades-of-Grey
  • Sunny-Day
  • White

Each theme is stored as a single XML file inside the themes directory. These files contain a <JWM> configuration block that defines window, menu, tray, and popup styles.

You can access the Themes menu from the JWM main menu:

7. Customizing or Adding New Themes

If you’d like to create your own theme:

  1. Copy an existing theme file from ~/.config/jwm/themes/ and rename it.
  2. Modify the styles as needed (e.g., colors, fonts, backgrounds).
  3. Add a new <Program> entry to themes-list to make it selectable from the menu.

Example:

<Program label="My Custom Theme" confirm="false">cp -a .config/jwm/themes/My-Custom-Theme .config/jwm/theme && jwm -restart</Program>

8. Applying Changes

After editing the themes-list file, you must restart JWM for the changes to take effect:

jwm -restart

9. Summary

The ~/.config/jwm/themes-list file plays a key role in making it easy to switch the look and feel of your FunOS desktop. With just a few clicks, users can apply one of the many included themes or create their own to personalize their experience.

For a lightweight window manager like JWM, this approach balances customization and simplicity—one of the core philosophies of FunOS.

Leave a Reply

Your email address will not be published. Required fields are marked *