JWM - ArchWiki

Jump to content

# JWM

3 languages

- Español
- 日本語
- Русский

From ArchWiki

Related articles

- Window manager

JWM (Joe's Window Manager) is a lightweight window manager for Xorg written in C. It is under active development and maintained by Joe Wingbermuehle.

## Installation

Install the jwmAUR package.

## Starting

You can start a JWM session with a display manager. Alternatively, you can run `jwm` with xinit.

## Configuration

Configuration is done via a single XML file. There is native support for customizable panels and buttons, and a system tray dock. A sample configuration file is located at `/etc/system.jwmrc` which can be copied to the user configuration `~/.jwmrc`:

    $ cp -i /etc/system.jwmrc ~/.jwmrc

Edit this file to establish the environment. See JWM Configuration for a complete list of available tags, attributes and values.

### Autostart

Add an `StartupCommand` section in your configuration file to execute one or more commands at startup. For example:

    ~/.jwmrc

    <StartupCommand>
    feh --randomize --bg-fill ~/backgrounds/*
    xterm -geometry 100x30 &
    numlockx
    </StartupCommand>

## Tips and tricks

### Improve <Tasklist> contrast

Change the default `<Tasklist>` settings to match the improved contrast style of the default `<MenuStyle>` and active `<WindowStyle>`:

    <TaskListStyle>
        <ActiveForeground>black</ActiveForeground>
        <ActiveBackground>gray90:gray70</ActiveBackground>
    </TaskListStyle>

    <TaskListStyle>
        <ActiveForeground>white</ActiveForeground>
        <ActiveBackground>#70849d:#2e3a67</ActiveBackground>
    </TaskListStyle>

### Logout and refresh

`<Exit/>` (Logout) is the menu command to cleanly log out of the current X server.

`<Restart/>` (Refresh) is the menu command tag which reinitializes the configuration file and updates menus and keybindings accordingly.

`<Restart/>` and `<Exit/>` can be bound to the `Ctrl+Alt` modified keys following the example syntax below:

    <Key mask="CA" key="r">exec:jwm -restart</Key>
    <Key mask="CA" key="e">exec:jwm -exit</Key>

#### Reboot and shutdown

The `Restart` and `Poweroff` menu options can use systemctl commands:

    <Program label="Restart">systemctl reboot</Program>
    <Program label="Poweroff">systemctl poweroff</Program>

Alternatively, use `<Key>` to bind the commands to a chosen key.

See Allow users to shutdown#Using systemd-logind for additional information.

#### Conky

Conky can be run within the `<StartupCommand>` to provide the display of various data streams (e.g. battery life and AC adapter status for notebooks). xfdesktop may conflict with Conky; workarounds include:

1. Review the Conky FAQ for workarounds in `~/.conkyrc`
2. `<Group>` Conky and specify the following `<Option>` tags in `~/.jwmrc`:

    <Group>
        <Class>Conky</Class>
        <Option>nolist</Option>
        <Option>noborder</Option>
        <Option>notitle</Option>
        <Option>sticky</Option>
    </Group>

### Minimal font suggestions

    <WindowStyle>
    <Font>-*-fixed-*-r-*-*-10-*-*-*-*-*-*-*</Font>

    <TaskListStyle>
    <Font>-*-fixed-*-r-*-*-13-*-*-*-*-*-*-*</Font>

    <TrayStyle>
    <Font>-*-fixed-*-r-*-*-13-*-*-*-*-*-*-*</Font>

- See xfontsel(1) and the X Logical Font Description article for additional details and pattern descriptions.

### Manual tiling support

Tiling support can be added to JWM with the Poor Man's Tiling Window Manager. Assuming `manage.py` is part of the local `PATH`, various tiling actions can be assigned to keys, for example:

    <Key mask="H" key="Up">exec:manage.py swap</Key>
    <Key mask="H" key="Down">exec:manage.py cycle</Key>
    <Key mask="H" key="Left">exec:manage.py left</Key>
    <Key mask="H" key="Right">exec:manage.py right</Key>

Note: Run the `env` command to list the modified environments of the current user.

## Troubleshooting

### Additional troubleshooting

If X is not already running on `tty1`, `Ctrl+Alt+F1` will allow you to review standard output errors and messages. See script(1) command for details on how to create a typescript of what is printed to the terminal.

### All windows are transparent using picom

Adjust the window transparency in `~/.jwmrc`:

    <WindowStyle>
      <Opacity>1.0</Opacity>
    </WindowStyle>

### Terminal windows do not fully maximize

Add a group with the `iignore` option to `~/.jwmrc`, for example:

    <Group>
     <Class>URxvt</Class>
     <Option>iignore</Option>
    </Group>

### Verify configuration changes

To check the JWM configuration and return syntax errors (including associated line numbers), if any, run:

    $ jwm -p

Note: Configuration changes are applied after restarting JWM via the `<Restart/>` command, available on the initial root menu. There is no need to restart the X server for changes to apply. Users are recommended to use `jwm -p` between configuration changes to ensure valid markup and a stable environment.

## See also

- Joe's Window Manager
- PuppyLinux JoesWindowManager
- Puppy Linux JWM themes exchange

Category:

- Stacking window managers