Understanding the JWM Preferences Configuration in FunOS

The ~/.config/jwm/preferences file in FunOS plays a crucial role in defining the behavior and interaction model of the JWM (Joe’s Window Manager) environment. This configuration file controls various desktop settings, such as virtual desktops, window focus behavior, snapping options, and how windows are moved or resized.

In this article, we will explore each configuration entry found in this file and explain what it does and how it affects your experience using FunOS.

1. Backing Up Before Editing

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

cp ~/.config/jwm/preferences ~/.config/jwm/preferences.bak

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

2. Accessing the Preferences File

You can access the JWM Preferences 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 preferences file with a text editor.

b. Terminal

mousepad ~/.config/jwm/preferences

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

3. Sample Configuration

Here is the default content of the file in FunOS:

<?xml version="1.0"?>
<JWM>

    <!-- Virtual Desktops -->
    <!-- Desktop tags can be contained within Desktops for desktop names. -->
    <Desktops width="2"></Desktops>

    <!-- Double click speed (in milliseconds) -->
    <DoubleClickSpeed>400</DoubleClickSpeed>

    <!-- Double click delta (in pixels) -->
    <DoubleClickDelta>2</DoubleClickDelta>

    <!-- The focus model (sloppy or click) -->
    <FocusModel>click</FocusModel>

    <!-- The snap mode (none, screen, or border) -->
    <SnapMode distance="10">border</SnapMode>

    <!-- The move mode (outline or opaque) -->
    <MoveMode coordinates="off">opaque</MoveMode>

    <!-- The resize mode (outline or opaque) -->
    <ResizeMode coordinates="off">opaque</ResizeMode>

</JWM>

4. Explanation of Each Entry

Desktops

<Desktops width="2"></Desktops>

This line defines the number of virtual desktops (also called workspaces) arranged horizontally.

  • width="2" means you have two virtual desktops side by side.
  • You can switch between them using key bindings like Alt + Left/Right Arrow.

You can increase this number if you want more workspaces:

<Desktops width="4"></Desktops>

DoubleClickSpeed

<DoubleClickSpeed>400</DoubleClickSpeed>

This sets the maximum time (in milliseconds) allowed between two mouse clicks to register as a double-click.

  • 400 ms is a reasonable default.
  • If you find it hard to double-click fast enough, increase the number.
  • If it feels sluggish, lower the number.

DoubleClickDelta

<DoubleClickDelta>2</DoubleClickDelta>

This determines the maximum pixel movement allowed between the first and second clicks for a double-click to be registered.

  • A value of 2 pixels means if you move the mouse more than 2 pixels between clicks, it won’t be recognized as a double-click.

FocusModel

<FocusModel>click</FocusModel>

Controls how window focus is managed:

  • click: A window only receives focus when you click on it (default and beginner-friendly).
  • sloppy: Focus follows the mouse pointer. You don’t have to click; just hover over a window to focus it.

SnapMode

<SnapMode distance="10">border</SnapMode>

Controls how windows snap to screen edges or other windows when moved or resized.

  • distance="10" means snapping occurs when the window is within 10 pixels of an edge.
  • The mode can be:
    • none: No snapping.
    • screen: Snap to screen edges.
    • border: Snap to window borders (more dynamic).

MoveMode

<MoveMode coordinates="off">opaque</MoveMode>

Determines how windows appear when dragging/moving them.

  • opaque: You see the full window as you move it.
  • outline: Only an outline of the window is shown when dragging (uses less CPU).
  • coordinates="off" disables coordinate display. Set to on to show (X,Y) position while moving.

ResizeMode

<ResizeMode coordinates="off">opaque</ResizeMode>

Controls how window resizing is displayed.

  • opaque: You see the window resize in real time.
  • outline: Shows only the window border outline during resizing.
  • coordinates="off" disables showing the current size during resizing.

5. Applying Changes

After editing the preferences file, you must restart JWM for the changes to take effect:

jwm -restart

6. Summary

The ~/.config/jwm/preferences file in FunOS allows users to fine-tune how JWM behaves and responds to interactions. From virtual desktops and focus models to snap behavior and resize styles, this file provides key controls to optimize your workflow.

Carefully editing this file lets you customize FunOS exactly the way you want—lightweight, responsive, and personalized.

Leave a Reply

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