In FunOS, which uses the lightweight and highly configurable JWM (Joe’s Window Manager), startup behavior is handled through a file called ~/.config/jwm/start
. This file specifies which programs or scripts should automatically run every time the desktop environment starts.
Understanding and customizing this file allows users to control what applications and services launch with their JWM session—enhancing usability, automation, and user experience.
1. Backing Up Before Editing
Before making changes to this file, it’s a good idea to back it up:
cp ~/.config/jwm/start ~/.config/jwm/start.bak
If anything goes wrong, you can easily restore the original.
2. Accessing the Startup File
You can access the JWM Startup 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 thestart
file with a text editor.
b. Terminal
mousepad ~/.config/jwm/start
This opens the file in the Mousepad text editor, allowing you to view or modify its contents.
3. What is the ~/.config/jwm/start
File?
The ~/.config/jwm/start
file is an XML-formatted configuration file used by JWM to define startup applications. When the JWM session begins, each <StartupCommand>
entry in this file is executed in sequence.
This is a user-level configuration file, meaning changes to it only affect the current user.
4. Default Startup Configuration in FunOS
Here is the default content of the ~/.config/jwm/start
file in FunOS:
<?xml version="1.0"?>
<JWM>
<!-- Startup for program. -->
<StartupCommand>nitrogen --restore</StartupCommand>
<StartupCommand>cbatticon</StartupCommand>
<StartupCommand>volumeicon</StartupCommand>
<StartupCommand>nm-tray</StartupCommand>
<StartupCommand>lxpolkit</StartupCommand>
<StartupCommand>xscreensaver --no-splash</StartupCommand>
<StartupCommand>xdg-user-dirs-update</StartupCommand>
</JWM>
Each line inside <StartupCommand>
tags represents a program that will automatically start when JWM is launched.
5. Explanation of Each StartupCommand
Here’s what each entry in the startup file does:
nitrogen --restore
Restores the previously set desktop wallpaper using the Nitrogen wallpaper manager.cbatticon
Displays a system tray icon that monitors battery status (especially useful for laptops).volumeicon
Launches a system tray volume control icon, allowing you to adjust audio levels easily.nm-tray
A simple system tray applet that shows available Wi-Fi networks via NetworkManager.lxpolkit
Launches the PolicyKit authentication agent. This is important for applications that require root privileges (e.g., mounting drives, managing printers).xscreensaver --no-splash
Starts the XScreenSaver daemon in the background without showing the splash screen. Used to lock, blank the screen, or show a screensaver after a period of inactivity.xdg-user-dirs-update
Ensures that standard user directories (likeDocuments
,Downloads
, etc.) are created and updated based on the user’s locale.
6. Adding Your Own Startup Applications
To run additional programs at login, simply add more <StartupCommand>
lines to the file. For example:
<StartupCommand>xfce4-power-manager</StartupCommand>
<StartupCommand>blueman-applet</StartupCommand>
<StartupCommand>/usr/lib/notification-daemon/notification-daemon</StartupCommand>
Important: Make sure to keep the file structure valid XML and include all commands inside the <JWM>
root element.
7. Applying Changes
After editing the ~/.config/jwm/start
file, changes will take effect after restarting JWM or logging out and back in.
To restart JWM without logging out, open a Terminal and run:
jwm -restart
This will reload the session and apply the updated startup configuration.
8. Tips and Best Practices
- Always test manually first: Before adding a command to your startup file, try running it in a Terminal to ensure it works as expected.
- Use full paths (optional but safer): Some programs may fail to run at startup if their binary isn’t in the expected path. You can specify full paths, e.g.,
/usr/bin/nm-tray
. - Keep it minimal: Launch only what you really need. Overloading the startup list can slow down session initialization.
9. Summary
The ~/.config/jwm/start
file is the key to managing what runs when your FunOS session begins. It gives users the flexibility to customize their environment and automate essential background services with ease.
By understanding and safely modifying this file, you can tailor your JWM session to your personal needs and make your desktop even more efficient.
Leave a Reply