Skip to content

Instantly share code, notes, and snippets.

@lahwaacz
Created July 17, 2016 18:54
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save lahwaacz/202d4ae1d2d4b57e9214aefc64648826 to your computer and use it in GitHub Desktop.
Save lahwaacz/202d4ae1d2d4b57e9214aefc64648826 to your computer and use it in GitHub Desktop.
mwparserfromhell's parse tree of this page: https://wiki.archlinux.org/index.php?title=JWM&oldid=422914
[[
Category:Stacking WMs
]]
\n
[[
it:JWM
]]
\n
[[
ja:JWM
]]
\n'''JWM''' (Joe's Window Manager) is a featherweight
[[
window manager
]]
for
[[
Xorg
]]
written in
[[
wikipedia:C_(programming_language)
| C
]]
. It is under active development and maintained by
[
http://joewing.net/about.shtml
Joe Wingbermuehle
]
. It is the default window manager base for distributions such as
[
http://www.puppylinux.org/
Puppy Linux
]
and
[
http://damnsmalllinux.org/
Damn Small Linux
]
.\n\nJWM uses approximately 5 MB of resident memory under normal operating conditions. As of January 2009, the size of the version present in the
[[
Official repositories
| official Arch Linux repositories
]]
is under 76 KB packaged (compare to
[[
dwm
]]
at under 17 KB) and under 171 KB installed (compare to dwm at 68 KB). A minimally compiled version consumes approximately 136 KB of disk space and occupies under 1500 KB of resident memory. \n\nConfiguration is done via a single
[[
Wikipedia:XML
| XML
]]
file
{{
ic
| 1
= ~/.jwmrc
}}
, there is native support for customizable panels and buttons, and it includes
[[
Wikipedia:Taskbar
| system tray
]]
dock.\n\n
==
Installation
==
\n\n
[[
Install
]]
{{
Pkg
| 1
= jwm
}}
. \n\n
{{
Warning
| 1
= Recent SVN snapshots (e.g. 500) have migrated to Mod key masks (e.g.
{{
ic
| 1
= H
}}
to
{{
ic
| 1
= 4
}}
).
| 2
= }}
\n\n
==
Starting JWM
==
\n\nRun the xinit program to start the X server and the JWM client program:\n\n $ xinit /usr/bin/jwm\n\nAlternatively, add
{{
ic
| 1
= exec /usr/bin/jwm
}}
to your
[[
Xinitrc
]]
. See also
[[
Start X at Boot
]]
.\n\n
==
Configuration
==
\n\nA sample configuration file is located at
{{
ic
| 1
= /etc/system.jwmrc
}}
. Create
{{
ic
| 1
= ~/.jwmrc
}}
:\n\n $ touch ~/.jwmrc\n\nor:\n\n $ cp -i /etc/system.jwmrc ~/.jwmrc\n\nEdit this file to establish the environment. See
[
http://joewing.net/programs/jwm/config.shtml
JWM Configuration
]
for a complete list of available tags, attributes and values.\n\n
{{
Note
| 1
= The rolling content of JWM Configuration is based on the latest SVN snapshot and may not reflect the options available in the the current release.
}}
\n\n
===
Overview of selected tags
===
\n\nSee
[
http://joewing.net/projects/jwm/config.shtml
JWM Configuration
]
.\n\n
==
Tips and tricks
==
\n\n
===
Improve <Tasklist> contrast
===
\n\nChange the default
{{
ic
| 1
= <Tasklist>
}}
settings to match the improved contrast style of the default {{ic|<MenuStyle>}} and active {{ic|<WindowStyle>}}:\n\n{{bc|1=\n<TaskListStyle>\n <strike><ActiveForeground>black</ActiveForeground></strike>\n <strike><ActiveBackground>gray90:gray70</ActiveBackground></strike>\n</TaskListStyle>\n\n<TaskListStyle>\n <ActiveForeground>white</ActiveForeground>\n <ActiveBackground>#70849d:#2e3a67</ActiveBackground>\n</TaskListStyle>\n}}\n\n
===
Logout and refresh
===
\n\n{{ic|<Exit/>}} (Logout) is the menu command to cleanly log out of the current X server.\n\n{{ic|<Restart/>}} (Refresh) is the menu command tag which reinitializes the configuration file and updates menus and keybindings accordingly.\n\n{{ic|<Restart/>}} and {{ic|<Exit/>}} can be bound to the {{ic|Ctrl+Alt}} modified keys following the example syntax below: \n\n <Key mask="CA" key="r">exec:jwm -restart</Key>\n <Key mask="CA" key="e">exec:jwm -exit</Key>\n\n
====
Reboot and shutdown
====
\n\nA system with [[systemd]] can be rebooted with the {{Ic|Restart}} and {{ic|Poweroff}} menu options.\n\n <Program label="Restart">systemctl reboot</Program>\n <Program label="Poweroff">systemctl poweroff</Program>\n\nAlternatively, use {{ic|<Key>}} to bind the commands to a chosen key.\n\nSee [[Allow users to shutdown]] for additional information.\n\n
====
Conky
====
\n\n[[Conky]] can be run within the {{ic|<StartupCommand>}} to provide the display of various data streams (e.g. battery life and AC adapter status for notebooks). {{Pkg|xfdesktop}} may conflict with Conky; workarounds include:\n\n
<
li
/>
Review the [http://conky.sourceforge.net/faq.html Conky FAQ] for workarounds in {{ic|~/.conkyrc}} \n
<
li
/>
{{ic|<Group>}} Conky and specify the following {{ic|<Option>}} tags in {{ic|~/.jwmrc}}:\n{{bc|1=\n<Group>\n <Class>Conky</Class>\n <Option>nolist</Option>\n <Option>noborder</Option>\n <Option>notitle</Option>\n <Option>sticky</Option>\n</Group>\n}}\n\n
===
Minimal build
===
\n\nGains in UI response can be gleaned by not using menu icons and by disabling the use of [http://en.wikipedia.org/wiki/Xft Xft] fonts. Further gains can be accomplished by removing support for external libraries with a custom build. The result is also a reduction in resource requirements. A minimal build compiled with Xft support and using Xft fonts is allocated approximately 3 MB of resident and 1.5 MB of shared memory. The same build compiled without Xft support is allocated under 1.5 MB and approximately 1.2 MB, respectively. See the [[Arch Build System]] page for further details.\n\n
====
Minimal PKGBUILD example
\n\n{{hc|PKGBUILD|2=\npkgname=jwm\npkgver=2.1.0\npkgrel=3\npkgdesc="A lightweight window manager for the X11 Window System"\narch=('i686' 'x86_64')\nurl="http://joewing.net/programs/jwm/"\nlicense=('GPL2')\ndepends=('libx11')\nbackup=('etc/system.jwmrc')\nsource=(http://joewing.net/programs/jwm/releases/jwm-$pkgver.tar.bz2)\nmd5sums=('e8fab21b2410eb82032b7c3472af642c')\n\nbuild() {\n cd "$srcdir/$pkgname-$pkgver"\n ./configure --prefix=/usr --sysconfdir=/etc --disable-fribidi \\\n --disable-confirm --disable-icons --disable-png \\ \n --disable-xpm --disable-jpeg --disable-xinerama \\\n --disable-xft --disable-xrender --disable-debug \n make\n}\n\npackage() {\n cd "$srcdir/$pkgname-$pkgver"\n make BINDIR="$pkgdir/usr/bin" MANDIR="$pkgdir/usr/share/man" \\\n SYSCONF="$pkgdir/etc" install\n}\n}}\n\n
===
Minimal font suggestions
===
\n\n{{bc|1=\n<WindowStyle>\n<Font>-*-fixed-*-r-*-*-10-*-*-*-*-*-*-*</Font>\n\n<TaskListStyle>\n<Font>-*-fixed-*-r-*-*-13-*-*-*-*-*-*-*</Font>\n\n<TrayStyle>\n<Font>-*-fixed-*-r-*-*-13-*-*-*-*-*-*-*</Font>\n}}\n\n
<
li
/>
Man {{ic|xfontsel}} and review the [[Wikipedia:X_logical_font_description|X Logical Font Description]] article for additional details and pattern descriptions.\n\n
===
Manual tiling support
===
\n\nTiling support can be added to JWM with the [https://github.com/TheWanderer/stiler/tree/master Poor Man's Tiling Window Manager]. Assuming {{ic|manage.py}} is part of the local {{ic|PATH}}, various tiling actions can be assigned to keys, for example:\n\n <Key mask="H" key="Up">exec:manage.py swap</Key>\n <Key mask="H" key="Down">exec:manage.py cycle</Key>\n <Key mask="H" key="Left">exec:manage.py left</Key>\n <Key mask="H" key="Right">exec:manage.py right</Key>\n\n{{Note|Run the {{ic|env}} command to list the modified environments of the current user.}}\n\n
==
Troubleshooting
==
\n\n
===
Additional troubleshooting
===
\n\nIf X is not already running on {{ic|tty1}}, {{ic|Ctrl+Alt+F1}} will allow you to review standard output errors and messages. See {{ic|man script}} command for details on how to create a typescript of what is printed to the terminal.\n\n
===
All windows are transparent using compton
===
\n\nAdjust the window transparency in {{ic|~/.jwmrc}}:\n\n <Inactive>\n <Opacity>1,0</Opacity>\n </Inactive>\n\n
===
Terminal windows do not fully maximize
===
\n\nAdd a group with the {{ic|iignore}} option to {{ic|~/.jwmrc}}, for example:\n\n <Group>\n <Class>URxvt</Class>\n <Option>iignore</Option>\n </Group>\n\n
===
Verify configuration changes
===
\n\nTo check the JWM configuration and return syntax errors (including associated line numbers), if any, run:\n\n $ jwm -p\n\n{{Note|Configuration changes are applied after restarting JWM via the {{ic|<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 {{ic|jwm -p}} between configuration changes to ensure valid markup and a stable environment.}}\n\n
==
See also
==
\n\n
<
li
/>
[http://joewing.net/projects/jwm/index.shtml Joe's Window Manager]\n
<
li
/>
[http://puppylinux.org/wikka/JoesWindowManager PuppyLinux JoesWindowManager] \n
<
li
/>
[http://www.murga-linux.com/puppy/viewtopic.php?t=23260 Puppy Linux JWM themes exchange]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment