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
- Click Menu > File Manager
- Press Ctrl + H or click View > Show Hidden to display hidden files.
- Navigate to the
.config/jwm/
directory and open thepreferences
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 toon
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