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
- Click Menu > File Manager
- Press Ctrl + H or click View > Show Hidden to display hidden files.
- Navigate to the
.config/jwm/
directory and open thethemes-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?
~/.config/jwm/themes-list
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:
- Copies the selected theme file from the
~/.config/jwm/themes/
directory into~/.config/jwm/theme
(the file used by JWM to render the theme). - 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:
- Copy an existing theme file from
~/.config/jwm/themes/
and rename it. - Modify the styles as needed (e.g., colors, fonts, backgrounds).
- Add a new
<Program>
entry tothemes-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