---
name: "choosewm"
section: "1"
platform: "linux"
package: "choosewm"
version: "0.1.6-3.1+b1"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/choosewm"
---

# choosewm(1)

Select a window manager to be used.

## NAME

choosewm - Select a window manager to be used.

## SYNOPSIS

**choosewm** \[**-f**\] \[**-p**\] \[**-t**\]\
 **choosewm** \[**-t**\] **-c**

## DESCRIPTION

**choosewm** presents a window to let the user choose a window manager to start. By default it shows everything registered as window manager at the Debian menu system, but it allows global and local configuration to change that data.

## OPTIONS

- **-c, --config**

  Allow the user to change the default. Beside telling choosewm to not start the chosen window manger, this mostly changes the text of some buttons and labels

- **-f, --force**

  Show the selection window unconditionally.

- **-p, --print**

  Do not start the window-manager, but print it to stdout.

- **-t, --text**

  Do not ask by opening an X11 window, but ask on the terminal. Needs a terminal as stdin. This is activated by default with **-c** and **DISPLAY** not set.

## CONFIG FILES

After reading **/var/lib/choosewm/windowmanagers**, treating anything before a equal (**=**) sign in a line a name and everything after that as window manager path, **choosewm** checks **/etc/X11/choosewm/config** and after that by default **.choosewm/config** in the user's $HOME-directory. Lines containing only spaces or starting with a # are ignored. Every other line may contain one of the following commands:

- **add: *name*=*path***

  Add an additional window manager to the list. *name* will be shown in the list, *path* will be started.

  This option is only useful to add something that should be only added to this list. If you installed a window manager by hand, please consider to register it in the Debian menu instead. That way all potent enough window managers will be able to offer switching to that window manager by menu.

- **remove: *path***

  Do not list the window manager with *path* in the list to choose from.

- **default: *defaultwindowmanagerpath***

  Use the window manager *defaultwindowmanagerpath* as default, when no last selection of the window manager is available.

- **userconf: *filename***

  Read the user's config from **$(HOME)/***filename*. If *filename* is **-**, no user config is read.

  Default is **.choosewm/config**

- **dontaskfile: *filename***

  Create the file **$(HOME)/***filename*, if the user selected to not be asked about the window manger, and do not ask if this file is present. (Unless **-f** is command line argument.)

  Default is **.choosewm/dontask**

- **lastdecisionfile: *filename***

  Read the last decision from the file **$(HOME)/***filename*, and save the decision of the user there.

  Default is **.choosewm/lastwm**

- **inalias: *oldold*=*newpath***

  If the last decision is *oldpath*, change it to *newpath*.

- **askalias: *oldold*=*newpath***

  If the last decision is *oldpath*, change it to *newpath* and force showing of the selection window.

- **outalias: *path*=*output***

  If the user has chosen *path* as window manager, write instead *output* to the file as new last decision.

- **s*TAG*: *text***

  Are used to set strings to be shown to the user in labels, buttons or headers. The **CONFIG***TAG* variants are used with **-c**.

  The following are the currently definied Tags and their default values:\
   **sCONFIGHEADER: Choose default Window Manager**\
   **sHEADER: Choose Window Manager**\
   **sCONFIGWELCOME: Please choose the default window manager and whether to reask at start time.**\
   **sWELCOME: Welcome, please select a Window manager to use.**\
   **sCONFIGASK: \_Ask when starting**\
   **sASK: \_Ask again at every login**\
   **sCONFIGSELECT: \_Select**\
   **sSELECT: \_Start**\
   **sCONFIGCANCEL: \_Cancel**\
   **sCANCEL: \_Log out**

## ENVIRONMENT VARIABLES

- **HOME**

  The current home directory of the current user.

- **DEFAULTWINDOWMANAGER**

  If no default is specified in the config files nor by the user's last choice, the content of this environment variable is tried before the path **/etc/alternatives/x-window-manager** is pointing to is tried.

## FILES

- **/etc/X11/choosewm/config**

  Global config file read.

- **/var/lib/choosewm/windowmanagers**

  Default system window manager file.

- **/etc/alternatives/x-window-manager**

  Default link to compute a default.

- **$(HOME)/.choosewm/config**

  Default user config file.

- **$(HOME)/.choosewm/lastwm**

  Default file to store the users default.

- **$(HOME)/.choosewm/dontask**

  Default file to signal not asking when existant.

## SEE ALSO

[**update-menus**(1)](/update-menus/1.md), **xsession**(1).

## AUTHOR

choosewm was written by Bernhard R. Link \<brlink@debian.org\>.

This manual page was written by Bernhard R. Link.
