Overview of JWM Configuration Files in FunOS

FunOS uses JWM (Joe’s Window Manager) as its default window manager. JWM is lightweight, fast, and highly configurable, making it ideal for users who want a simple yet powerful desktop experience. This article provides a detailed overview of the JWM configuration files used in FunOS, helping you understand how the system is structured and how to customize it to your needs.

JWM Configuration Directory Structure in FunOS

In FunOS, JWM is configured using a combination of files located in two main locations:

  • ~/.jwmrc – the main configuration loader.
  • ~/.config/jwm/ – the directory that contains modular configuration files.

This modular setup makes it easier to organize, maintain, and update different aspects of the JWM desktop.

How to Access JWM Configuration Files in FunOS

You can easily view or edit JWM configuration files using either the File Manager or the Terminal:

Via File Manager

  1. Click Menu > File Manager
  2. To show hidden files and folders, click Menu > Show Hidden, or press Ctrl + H

This will display hidden files and folders, including:

  • ~/.jwmrc
  • ~/.jwmrc-mjwm
  • The ~/.config/ folder containing JWM configuration files

Via Terminal

Open a Terminal and use commands like the following to navigate or open files:

cd ~/.config/jwm
mousepad tray        # or use your preferred text editor

File Descriptions and Their Functions

Below is a breakdown of each key file and what it does:

1. ~/.jwmrc

This is the main JWM configuration file that serves as an entry point. It typically contains <Include> statements that load the actual configuration files from ~/.config/jwm/, such as menu, keys, tray, theme, preferences, and start.
Function: Acts as the master loader for modular JWM configs.

2. ~/.jwmrc-mjwm

This file is generated by the mjwm tool, which dynamically creates a Freedesktop-compliant menu from installed .desktop files. It is updated each time the user clicks “Reload menu” or runs:

mjwm --no-backup && jwm -reload

3. ~/.config/jwm/icons

This file defines the icon search paths used by JWM.

Function: Lists directories (e.g., Papirus icon folders) where JWM will look for icons used in the menu, tray, and other UI elements.

4. ~/.config/jwm/keys

Defines keyboard shortcuts (key bindings) for launching apps, window management, switching desktops, etc.
Function: Maps key combinations to specific actions.

Example:

<Key mask="CA" key="t">exec:lxterminal</Key> <!-- Ctrl+Alt+T opens Terminal -->

5. ~/.config/jwm/menu

Defines the root (right-click or tray button) application menu. This file includes apps, separators, links to external files, and other menus.
Function: Main menu structure shown when accessing the desktop menu.

Features:

  • Direct launchers for apps like LXTerminal, PCManFM, Firefox.
  • Links to online documentation.
  • Dynamically includes ~/.jwmrc-mjwm and themes-list.

6. ~/.config/jwm/preferences

Contains system behavior preferences such as:

  • Number of virtual desktops
  • Focus model (click or sloppy)
  • Window movement/resizing style
  • Snap behavior for aligning windows

Function: Defines how the user interacts with windows and desktops.

7. ~/.config/jwm/start

Specifies startup applications that should be run when JWM starts.
Function: Autostarts system tray apps and background services.

Example:

<StartupCommand>nitrogen --restore</StartupCommand>
<StartupCommand>nm-tray</StartupCommand>
<StartupCommand>xscreensaver --no-splash</StartupCommand>

8. ~/.config/jwm/theme

Contains the active visual theme for JWM, including:

  • Window appearance (title bars, fonts, borders)
  • Menu colors
  • Tray styling
  • Clock and popup styles

Function: Controls the look and feel of the JWM desktop.

9. ~/.config/jwm/themes-list

Defines a sub-menu labeled “Themes” inside the JWM menu. Each entry in this list applies a theme from the themes/ directory by copying it over the current theme file and restarting JWM.

Function: Lets users quickly switch JWM themes from the menu.

Example entry:

<Program label="Adwaita Dark" confirm="false">
  cp -a .config/jwm/themes/Adwaita-Dark .config/jwm/theme && jwm -restart
</Program>

10. ~/.config/jwm/tray

Defines the panel (tray) usually located at the bottom of the screen. It includes:

  • Menu button
  • App shortcuts
  • Task list (open windows)
  • Virtual desktop pager
  • Clock
  • System tray dock area

Function: Configures layout and behavior of the JWM panel.

Example:

<TrayButton popup="Terminal" icon="lxterminal">exec:lxterminal</TrayButton>
<Clock format="%H:%M">showdesktop</Clock>

11. ~/.config/jwm/themes/* (Theme Directories)

Each theme is stored as an individual XML file directly inside the ~/.config/jwm/themes/ directory. These files contain complete <JWM> theme blocks that define the appearance of JWM and can be copied to the active ~/.config/jwm/theme file and then applied.

Available themes in FunOS:

  • 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 controls the color scheme, fonts, and visual elements of windows, menus, and the tray.

How to Change JWM Themes

To switch themes, simply open the FunOS menu → Themes → select a theme. The system will run a command to copy the selected theme over the current one and reload JWM.

No need to manually edit files – it’s integrated and user-friendly.

Reloading JWM Configuration

After making changes to certain configuration files, such as menu, keys, or theme, you may need to reload JWM:

Reload menu:

mjwm --no-backup && jwm -reload

Or from the menu: Reload menu option.

Restart JWM completely:

jwm -restart

This is required after changing themes or tray layout.

Summary

FunOS uses a modular and well-organized JWM configuration system that separates different aspects of the desktop environment into individual files:

  • ~/.jwmrc – main loader
  • ~/.config/jwm/ – structured directory for menu, keys, tray, themes, preferences, and startup

This modular approach makes it easy to customize, maintain, and understand. Whether you’re a power user or a beginner, knowing these files gives you full control over the FunOS desktop experience.

Related Links

2 responses to “Overview of JWM Configuration Files in FunOS”

  1. simone Avatar

    Thanks, good guide, jwm is a discovery, lightweight and very configurable…

    1. admin Avatar

      Hi Simone,
      Thank you for your kind words! I’m glad you found the guide helpful. Yes, JWM is indeed a hidden gem — it’s incredibly lightweight yet surprisingly flexible. Feel free to explore more of what FunOS and JWM can do, and don’t hesitate to share your experiences or ask questions. Happy tinkering!

Leave a Reply

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