.jwmrc 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293
  1. <?xml version="1.0"?>
  2. <JWM>
  3. <!--
  4. A decent JWM config for a usable desktop with proper icons and standard shortcuts
  5. Requirements:
  6. - jwm
  7. - rofi
  8. - nm-applet
  9. - cbatticon
  10. - papirus-icon-theme
  11. - xlockmore (for locking)
  12. - ksuperkey (optional, if you want super key to open something)
  13. - xdgmenumaker (for program list generation)
  14. - gsimplecal (for showing calendar when clock is clicked)
  15. - xrandr (optional, for connecting to external screens/projectors)
  16. Common Shortcuts:
  17. - Alt+F2 or F12 : Run something
  18. - Ctrl+Alt+T : Run Terminal
  19. - Ctrl+Alt+E : Run File Manager
  20. - Alt+(number) : To go to the desktop of that number
  21. - Ctrl+Alt+(arrow key) : To go to the desktop in that specific way
  22. - Ctrl+Alt+D : Show desktop
  23. - Ctrl+Alt+Shift+R : Restart JWM
  24. - Ctrl+Alt+L : Lock screen
  25. Troubleshooting:
  26. - If you are using pcmanfm-qt and the icons are not showing, then go to Edit - Preferences - Display and choose Papirus-Adapta then restart pcmanfm.
  27. Config:
  28. - Some apps are configured with the apps I had installed (please change as necessary, e.g. file manager, text editor, terminal etc.)
  29. -->
  30. <!-- The root menu. -->
  31. <RootMenu onroot="13" height="20">
  32. <!--<Include>/etc/jwm/debian-menu</Include>-->
  33. <Program icon="terminal.svg" label="Terminal">qterminal</Program>
  34. <Program icon="system-file-manager.svg" label="File Manager">pcmanfm-qt</Program>
  35. <Program icon="icecat.svg" label="Iceweasel">iceweasel</Program>
  36. <Program icon="icecat.svg" label="Iceweasel (private window)">iceweasel --private-window</Program>
  37. <Program icon="leafpad.svg" label="Leafpad">leafpad</Program>
  38. <Separator/>
  39. <Menu icon="chromium-app-list.svg" label="Programs">
  40. <Include>exec: xdgmenumaker -n -i -f jwm</Include>
  41. </Menu>
  42. <Separator/>
  43. <Program icon="lock.png" label="Lock">
  44. xlock -mode blank
  45. </Program>
  46. <Separator/>
  47. <Restart label="Restart JWM" icon="restart.png"/>
  48. <Program icon="" label="Power...">~/.local/share/jwm-config/power.sh</Program>
  49. </RootMenu>
  50. <!-- Options for program groups. -->
  51. <!-- Config note: You can change and adopt as necessary -->
  52. <Group>
  53. <Class>Pidgin</Class>
  54. <Option>sticky</Option>
  55. </Group>
  56. <Group>
  57. <Name>xterm</Name>
  58. <Option>vmax</Option>
  59. </Group>
  60. <Group>
  61. <Name>xclock</Name>
  62. <Option>drag</Option>
  63. <Option>notitle</Option>
  64. </Group>
  65. <!-- Tray at the bottom. -->
  66. <Tray x="0" y="-1" height="30" autohide="off">
  67. <TrayButton icon="chrome-app-list.svg">root:1</TrayButton>
  68. <Spacer width="5"/>
  69. <!-- Config note: You can add your apps for quick launch area. -->
  70. <TrayButton label="" icon="terminal.svg">exec:qterminal</TrayButton>
  71. <TrayButton label="" icon="dde-file-manager.svg">exec:pcmanfm-qt</TrayButton>
  72. <TrayButton label="" icon="leafpad.svg">exec:leafpad</TrayButton>
  73. <TrayButton label="" icon="cuttlefish.svg">exec:textadept</TrayButton>
  74. <Spacer width="10"/>
  75. <!-- Config note: You can uncomment this to get a pager (multiple desktops) -->
  76. <!-- <Pager labeled="true"/> -->
  77. <TaskList maxwidth="256"/>
  78. <Spacer width="10"/>
  79. <Dock/>
  80. <Clock format="%H:%M"><Button mask="123">exec:gsimplecal</Button></Clock>
  81. <TrayButton label="" popup="Show Desktop" icon="folder-black-desktop.svg">showdesktop</TrayButton>
  82. </Tray>
  83. <!-- Visual Styles -->
  84. <WindowStyle>
  85. <Font>Sans-11:bold</Font>
  86. <Width>5</Width>
  87. <Height>26</Height>
  88. <Corner>4</Corner>
  89. <Foreground>#DDDDDD</Foreground>
  90. <Background>#555555</Background>
  91. <Outline>#000000</Outline>
  92. <Opacity>0.5</Opacity>
  93. <Active>
  94. <Foreground>#FFFFFF</Foreground>
  95. <Background>#0077CC</Background>
  96. <Outline>#000000</Outline>
  97. <Opacity>1.0</Opacity>
  98. </Active>
  99. </WindowStyle>
  100. <TrayStyle group="false" list="all">
  101. <Font>Sans-9</Font>
  102. <Background>#333333</Background>
  103. <Foreground>#FFFFFF</Foreground>
  104. <Outline>#000000</Outline>
  105. <Opacity>0.75</Opacity>
  106. </TrayStyle>
  107. <PagerStyle>
  108. <Outline>#222222</Outline>
  109. <Foreground>#555555</Foreground>
  110. <Background>#333333</Background>
  111. <Text>#FFFFFF</Text>
  112. <Active>
  113. <Foreground>#0077CC</Foreground>
  114. <Background>#004488</Background>
  115. </Active>
  116. </PagerStyle>
  117. <MenuStyle>
  118. <Font>Sans-9</Font>
  119. <Foreground>#FFFFFF</Foreground>
  120. <Background>#333333</Background>
  121. <Outline>#222222</Outline>
  122. <Active>
  123. <Foreground>#FFFFFF</Foreground>
  124. <Background>#0077CC</Background>
  125. </Active>
  126. <Opacity>0.85</Opacity>
  127. </MenuStyle>
  128. <PopupStyle>
  129. <Font>Sans-9</Font>
  130. <Foreground>#000000</Foreground>
  131. <Background>#999999</Background>
  132. </PopupStyle>
  133. <!-- Path where icons can be found.
  134. IconPath can be listed multiple times to allow searching
  135. for icons in multiple paths.
  136. -->
  137. <IconPath>/usr/share/icons/Papirus/32x32/emblems</IconPath>
  138. <IconPath>/usr/share/icons/Papirus/32x32/apps</IconPath>
  139. <IconPath>/usr/share/icons/Papirus/32x32/places</IconPath>
  140. <IconPath>/usr/share/icons/gnome/256x256/actions</IconPath>
  141. <IconPath>/usr/share/icons/gnome/256x256/apps</IconPath>
  142. <IconPath>/usr/share/icons/gnome/256x256/categories</IconPath>
  143. <IconPath>/usr/share/icons/gnome/256x256/devices</IconPath>
  144. <IconPath>/usr/share/icons/gnome/256x256/emblems</IconPath>
  145. <IconPath>/usr/share/icons/gnome/256x256/mimetypes</IconPath>
  146. <IconPath>/usr/share/icons/gnome/256x256/places</IconPath>
  147. <IconPath>/usr/share/icons/gnome/256x256/status</IconPath>
  148. <IconPath>/usr/share/icons/gnome/32x32/actions</IconPath>
  149. <IconPath>/usr/share/icons/gnome/32x32/animations</IconPath>
  150. <IconPath>/usr/share/icons/gnome/32x32/apps</IconPath>
  151. <IconPath>/usr/share/icons/gnome/32x32/categories</IconPath>
  152. <IconPath>/usr/share/icons/gnome/32x32/devices</IconPath>
  153. <IconPath>/usr/share/icons/gnome/32x32/emblems</IconPath>
  154. <IconPath>/usr/share/icons/gnome/32x32/mimetypes</IconPath>
  155. <IconPath>/usr/share/icons/gnome/32x32/places</IconPath>
  156. <IconPath>/usr/share/icons/gnome/32x32/status</IconPath>
  157. <IconPath>/usr/share/icons/gnome/scalable/actions</IconPath>
  158. <IconPath>/usr/share/icons/gnome/scalable/apps</IconPath>
  159. <IconPath>/usr/share/icons/gnome/scalable/categories</IconPath>
  160. <IconPath>/usr/share/icons/gnome/scalable/devices</IconPath>
  161. <IconPath>/usr/share/icons/gnome/scalable/emblems</IconPath>
  162. <IconPath>/usr/share/icons/gnome/scalable/mimetypes</IconPath>
  163. <IconPath>/usr/share/icons/gnome/scalable/places</IconPath>
  164. <IconPath>/usr/share/icons/gnome/scalable/status</IconPath>
  165. <IconPath>/usr/share/icons/hicolor/256x256/apps</IconPath>
  166. <IconPath>/usr/share/icons/hicolor/256x256/mimetypes</IconPath>
  167. <IconPath>/usr/share/icons/hicolor/32x32/actions</IconPath>
  168. <IconPath>/usr/share/icons/hicolor/32x32/apps</IconPath>
  169. <IconPath>/usr/share/icons/hicolor/32x32/categories</IconPath>
  170. <IconPath>/usr/share/icons/hicolor/32x32/devices</IconPath>
  171. <IconPath>/usr/share/icons/hicolor/32x32/emblems</IconPath>
  172. <IconPath>/usr/share/icons/hicolor/32x32/mimetypes</IconPath>
  173. <IconPath>/usr/share/icons/hicolor/32x32/status</IconPath>
  174. <IconPath>/usr/share/icons/hicolor/512x512/apps</IconPath>
  175. <IconPath>/usr/share/icons/hicolor/512x512/mimetypes</IconPath>
  176. <IconPath>/usr/share/icons/hicolor/scalable/actions</IconPath>
  177. <IconPath>/usr/share/icons/hicolor/scalable/apps</IconPath>
  178. <IconPath>/usr/share/icons/hicolor/scalable/categories</IconPath>
  179. <IconPath>/usr/share/icons/hicolor/scalable/devices</IconPath>
  180. <IconPath>/usr/share/icons/hicolor/scalable/emblems</IconPath>
  181. <IconPath>/usr/share/icons/hicolor/scalable/mimetypes</IconPath>
  182. <IconPath>/usr/share/icons/hicolor/scalable/places</IconPath>
  183. <IconPath>/usr/share/icons/hicolor/scalable/status</IconPath>
  184. <IconPath>/usr/share/icons</IconPath>
  185. <IconPath>/usr/share/pixmaps</IconPath>
  186. <IconPath>
  187. /usr/local/share/jwm
  188. </IconPath>
  189. <!-- Virtual Desktops -->
  190. <!-- Desktop tags can be contained within Desktops for desktop names. -->
  191. <Desktops width="4" height="1">
  192. <!-- Default background. Note that a Background tag can be
  193. contained within a Desktop tag to give a specific background
  194. for that desktop.
  195. -->
  196. <Background type="solid">#111111</Background>
  197. </Desktops>
  198. <!-- Double click speed (in milliseconds) -->
  199. <DoubleClickSpeed>400</DoubleClickSpeed>
  200. <!-- Double click delta (in pixels) -->
  201. <DoubleClickDelta>2</DoubleClickDelta>
  202. <!-- The focus model (sloppy or click) -->
  203. <FocusModel>click</FocusModel>
  204. <!-- The snap mode (none, screen, or border) -->
  205. <SnapMode distance="10">border</SnapMode>
  206. <!-- The move mode (outline or opaque) -->
  207. <MoveMode>opaque</MoveMode>
  208. <!-- The resize mode (outline or opaque) -->
  209. <ResizeMode>opaque</ResizeMode>
  210. <!-- Key bindings -->
  211. <Key key="Up">up</Key>
  212. <Key key="Down">down</Key>
  213. <Key key="Right">right</Key>
  214. <Key key="Left">left</Key>
  215. <Key key="h">left</Key>
  216. <Key key="j">down</Key>
  217. <Key key="k">up</Key>
  218. <Key key="l">right</Key>
  219. <Key key="Return">select</Key>
  220. <Key key="Escape">escape</Key>
  221. <Key mask="A" key="Tab">nextstacked</Key>
  222. <Key mask="A" key="F4">close</Key>
  223. <Key mask="A" key="#">desktop#</Key>
  224. <Key mask="A" key="F1">root:1</Key>
  225. <Key mask="A" key="F2">exec:rofi -show run</Key>
  226. <Key mask="4" key="R">exec:rofi -show run</Key>
  227. <Key mask="A" key="F3">root:1</Key>
  228. <Key mask="A" key="space">window</Key>
  229. <Key mask="A" key="F10">maximize</Key>
  230. <Key mask="CA" key="Right">rdesktop</Key>
  231. <Key mask="4" key="Tab">rdesktop</Key>
  232. <Key mask="CA" key="Left">ldesktop</Key>
  233. <Key mask="CA" key="Up">udesktop</Key>
  234. <Key mask="CA" key="Down">ddesktop</Key>
  235. <Key mask="CA" key="D">showdesktop</Key>
  236. <Key mask="4" key="D">showdesktop</Key>
  237. <Key mask="CA" key="T">exec:qterminal</Key>
  238. <Key mask="CA" key="E">exec:pcmanfm-qt</Key>
  239. <Key mask="4" key="E">exec:pcmanfm-qt</Key>
  240. <Key mask="" key="F12">exec:rofi -show run</Key>
  241. <!-- Connect to external monitor / choose screens -->
  242. <Key mask="4" key="P">exec:~/.local/share/jwm-config/screens.sh</Key>
  243. <Key mask="" key="XF86Display">exec:~/.local/share/jwm-config/screens.sh</Key>
  244. <Key mask="4" key="F4">exec:~/.local/share/jwm-config/power.sh</Key>
  245. <Key mask="CAS" key="R">exec:jwm -restart</Key>
  246. <Key mask="CA" key="L">exec:xlock -mode blank</Key>
  247. <Key mask="4" key="L">exec:xlock -mode blank</Key>
  248. <!-- startup -->
  249. <StartupCommand>
  250. <!-- rofi -key-run F12 & -->
  251. ~/.local/share/jwm-config/batteryicon.sh &amp;
  252. nm-applet &amp;
  253. <!--
  254. Config note: You can change "Alt_L|F2" to anything else.
  255. For example, 'Super_L=Alt_L|F1' would open the main menu.
  256. -->
  257. ksuperkey -e 'Super_L=Alt_L|F2' &amp;
  258. <!-- Start notification manager -->
  259. <!-- Any can be chosen from: https://wiki.archlinux.org/index.php/Desktop_notifications#Standalone -->
  260. lxqt-notificationd &amp;
  261. </StartupCommand>
  262. </JWM>