wmfs.1 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626
  1. .\" title: wmfs
  2. .\" dev: xorg62
  3. .\" man: arpinux
  4. .\"
  5. .TH "WMFS" "1" "2012/02/08" "wmfs" "manual of wmfs"
  6. .\" disable hyphenation
  7. .nh
  8. .\" disable justification (adjust text to left margin only)
  9. .ad l
  10. .SH "NAME"
  11. wmfs \- Window Manager From Scratch
  12. .SH "SYNOPSIS"
  13. \fBwmfs\fR [\fB\-hv\fR] [\fB\-C <file>\fR] [\fB\-c <uicb_function> <cmd>\fR]
  14. .sp
  15. .SH "DESCRIPTION"
  16. \fBWMFS\fR is a lightweight and highly configurable tiling window manager for X written in C\&.
  17. .sp
  18. .SH "OPTIONS"
  19. .PP
  20. \fB\-C <file>\fR
  21. .RS 4
  22. Load a configuration file\&.
  23. .RE
  24. .PP
  25. \fB\-c <uicb_function> <cmd>\fR
  26. .RS 4
  27. Execute an uicb function to control WMFS\&.
  28. .RE
  29. .PP
  30. \fB\-v\fR
  31. .RS 4
  32. Print version information to standard output, then exit\&.
  33. .RE
  34. .PP
  35. \fB\-h\fR
  36. .RS 4
  37. Print help information, then exit\&.
  38. .RE
  39. .SH "DEFAULT KEY BINDINGS"
  40. .PP
  41. \fBControl\-Alt + r\fR
  42. .RS 4
  43. Reload WMFS binary
  44. .RE
  45. .PP
  46. \fBSuper + Return\fR
  47. .RS 4
  48. Run a terminal (urxvt by default)
  49. .RE
  50. .PP
  51. \fBSuper + q\fR
  52. .RS 4
  53. Quit the selected client
  54. .RE
  55. .PP
  56. \fBControl\-Alt + q\fR
  57. .RS 4
  58. Exit WMFS
  59. .RE
  60. .PP
  61. \fBSuper + f \fR
  62. .RS 4
  63. Toggle free the selected client
  64. .RE
  65. .PP
  66. \fBAlt + Tab\fR
  67. .RS 4
  68. Give the focus to the next client
  69. .RE
  70. .PP
  71. \fBAlt\-Shift + Tab\fR
  72. .RS 4
  73. Give the focus to the previous client
  74. .RE
  75. .PP
  76. \fBAlt + h\fR
  77. .RS 4
  78. Give the focus to the client on the left
  79. .RE
  80. .PP
  81. \fBAlt + l\fR
  82. .RS 4
  83. Give the focus to the client on the right
  84. .RE
  85. .PP
  86. \fBAlt + k\fR
  87. .RS 4
  88. Give the focus to the client on the top
  89. .RE
  90. .PP
  91. \fBAlt + j\fR
  92. .RS 4
  93. Give the focus to the client on the bottom
  94. .RE
  95. .PP
  96. \fBSuper + Tab\fR
  97. .RS 4
  98. Give the focus to the next tabbed client
  99. .RE
  100. .PP
  101. \fBSuper\-Shift + Tab\fR
  102. .RS 4
  103. Give the focus to the previous tabbed client
  104. .RE
  105. .PP
  106. \fBControl\-Shift + h\fR
  107. .RS 4
  108. Swap with the client on the left
  109. .RE
  110. .PP
  111. \fBControl\-Shift + l\fR
  112. .RS 4
  113. Swap with the client on the right
  114. .RE
  115. .PP
  116. \fBControl\-Shift + k\fR
  117. .RS 4
  118. Swap with the client on the top
  119. .RE
  120. .PP
  121. \fBControl\-Shift + j\fR
  122. .RS 4
  123. Swap with the client on the bottom
  124. .RE
  125. .PP
  126. \fBAlt\-Shift + h\fR
  127. .RS 4
  128. Tab in the client on the left
  129. .RE
  130. .PP
  131. \fBAlt\-Shift + l\fR
  132. .RS 4
  133. Tab in the client on the right
  134. .RE
  135. .PP
  136. \fBAlt\-Shift + k\fR
  137. .RS 4
  138. Tab in the client on the top
  139. .RE
  140. .PP
  141. \fBAlt\-Shift + j\fR
  142. .RS 4
  143. Tab in the client on the bottom
  144. .RE
  145. .PP
  146. \fBAlt\-Shift + u\fR
  147. .RS 4
  148. Untab the client
  149. .RE
  150. .PP
  151. \fBSuper + h\fR
  152. .RS 4
  153. Increase the client to the left
  154. .RE
  155. .PP
  156. \fBSuper + l\fR
  157. .RS 4
  158. Decrease the client from the left
  159. .RE
  160. .PP
  161. \fBSuper + k\fR
  162. .RS 4
  163. Increase the client to the top
  164. .RE
  165. .PP
  166. \fBSuper + j\fR
  167. .RS 4
  168. Decrease the client from the top
  169. .RE
  170. .PP
  171. \fBSuper\-Control + h\fR
  172. .RS 4
  173. Decrease the client from the right
  174. .RE
  175. .PP
  176. \fBSuper\-Control + l\fR
  177. .RS 4
  178. Increase the client to the right
  179. .RE
  180. .PP
  181. \fBSuper\-Control + k\fR
  182. .RS 4
  183. Decrease the client from the bottom
  184. .RE
  185. .PP
  186. \fBSuper\-Control + j\fR
  187. .RS 4
  188. Increase the client to the bottom
  189. .RE
  190. .PP
  191. \fBControl + Right\fR
  192. .RS 4
  193. Next tag
  194. .RE
  195. .PP
  196. \fBControl + Left\fR
  197. .RS 4
  198. Previous tag
  199. .RE
  200. .PP
  201. \fBControl + Up\fR
  202. .RS 4
  203. Next screen
  204. .RE
  205. .PP
  206. \fBControl + Down\fR
  207. .RS 4
  208. Previous screen
  209. .RE
  210. .PP
  211. \fBSuper + m\fR
  212. .RS 4
  213. Vertical mirror layout
  214. .RE
  215. .PP
  216. \fBSuper\-Shift + m\fR
  217. .RS 4
  218. Horizontal mirror layout
  219. .RE
  220. .PP
  221. \fBSuper + r\fR
  222. .RS 4
  223. Rotate layout right
  224. .RE
  225. .PP
  226. \fBSuper\-Shift + r\fR
  227. .RS 4
  228. Rotate layout left
  229. .RE
  230. .PP
  231. \fBSuper\-Control\-Alt + h\fR
  232. .RS 4
  233. Integrate client in left layout
  234. .RE
  235. .PP
  236. \fBSuper\-Control\-Alt + j\fR
  237. .RS 4
  238. Integrate client in bottom layout
  239. .RE
  240. .PP
  241. \fBSuper\-Control\-Alt + k\fR
  242. .RS 4
  243. Integrate client in top layout
  244. .RE
  245. .PP
  246. \fBSuper\-Control\-Alt + l\fR
  247. .RS 4
  248. Integrate client in right layout
  249. .RE
  250. .PP
  251. \fBSuper + o\fR
  252. .RS 4
  253. Restore previous layout
  254. .RE
  255. .PP
  256. \fBSuper\-Shift + o\fR
  257. .RS 4
  258. Restore next layout
  259. .RE
  260. .PP
  261. \fBSuper + p\fR
  262. .RS 4
  263. Make a launcher in the statusbar to run an unix command\fR
  264. .RE
  265. .PP
  266. \fBSuper + F[1\&.\&.9]\fR
  267. .RS 4
  268. Change tag view
  269. .RE
  270. .PP
  271. \fBSuper\-Shift + F[1\&.\&.9]\fR
  272. .RS 4
  273. Transfert the selected client to the wanted tag
  274. .RE
  275. .PP
  276. \fBSuper + -\fR
  277. .RS 4
  278. Delete current tag\fR
  279. .RE
  280. .PP
  281. \fBSuper\-Shift + -\fR
  282. .RS 4
  283. Add current tag\fR
  284. .RE
  285. .SH "CONFIGURATION"
  286. WMFS is configured by \fI$HOME/\&.config/wmfs/wmfsrc\fR\&.
  287. .RE
  288. .PP
  289. \fB\ include\fR
  290. wmfsrc supports ”@include” to split configuration file by section\&.
  291. .RS 2
  292. \fB\ Usage:\fR "@include ~/.config/wmfs/wmfs_themes"\&.
  293. .RE
  294. .PP
  295. \fB\ [themes]\fR
  296. wmfsrc supports themes for client and statusbar\&.
  297. .RS 2
  298. \fB Misc\fR
  299. .RS 2
  300. \fB\ name\fR
  301. theme name: will be used in next sections\&.
  302. .PP
  303. \fB\ font\fR
  304. theme font: in XLFD format\&.
  305. .PP
  306. .RE
  307. \fB\ Bars\fR
  308. .RS 2
  309. \fB\ bars_width\fR
  310. bar height in pixels\&.
  311. .PP
  312. \fB\ bars_fg/bg\fR
  313. statusbar text/background color\&.
  314. .PP
  315. .RE
  316. \fB\ Tags\fR
  317. .RS 2
  318. \fB\ tags_normal_fg/bg\fR
  319. normal tag text/button color\&.
  320. .PP
  321. \fB\ tags_normal_statusline\fR
  322. normal tag statusline\&.
  323. .PP
  324. \fB\ tags_sel_fg/bg\fR
  325. selected tag text/button color\&.
  326. .PP
  327. \fB\ tags_sel_statusline\fR
  328. selected tag statusline\&.
  329. .PP
  330. \fB\ tags_occupied_fg/bg\fR
  331. occupied tag text/button color\&.
  332. .PP
  333. \fB\ tags_occupied_statusline\fR
  334. occupied tag statusline\&.
  335. .PP
  336. \fB\ tags_urgent_fg/bg\fR
  337. urgent tag text/button color\&.
  338. .PP
  339. \fB\ tags_urgent_statusline\fR
  340. urgent tag statusline\&.
  341. .PP
  342. \fB\ tags_border_color\fR
  343. tag button border color\&.
  344. .PP
  345. \fB\ tags_border_width\fR
  346. tag button border width\&.
  347. .PP
  348. .RE
  349. \fB\ Clients\fR
  350. .RS 2
  351. \fB\ client_normal_fg/bg\fR
  352. normal client titlebar text/background color\&.
  353. .PP
  354. \fB\ client_normal_statusline\fR
  355. normal client statusline\&.
  356. .PP
  357. \fB\ client_sel_fg/bg\fR
  358. selected client titlebar text/background color\&.
  359. .PP
  360. \fB\ client_sel_statusline\fR
  361. selected client statusline\&.
  362. .PP
  363. \fB\ frame_bg\fR
  364. client border color\&.
  365. .PP
  366. \fB\ client_titlebar_width\fR
  367. client titlebar height in pixels\&.
  368. .PP
  369. \fB\ client_border_width\fR
  370. client border height in pixels\&.
  371. .RE
  372. .PP
  373. .RE
  374. \fB\ [bars]\fR
  375. .RS 2
  376. \fB\ position\fR
  377. statusbar position on screen: 0=Top; 1=Bottom, 2=Hide\&.
  378. .PP
  379. \fB\ screen\fR
  380. screen to display statusbar(start ar 0), set to\fB -1\fR to display on every screen\&.
  381. .PP
  382. \fB\ elements\fR
  383. t=Tags, s=Statustext, y=Systray, l=Launcher\&.
  384. .PP
  385. \fB\ theme\fR
  386. names of the statusbar theme\&.
  387. .RE
  388. .PP
  389. .RE
  390. \fB\ [tags]\fR
  391. .RS 2
  392. \fB\ screen\fR
  393. screen to display tag. use no screen option or screen =\fB -1\fR to set tag on each screen\&.
  394. .PP
  395. \fB\ name\fR
  396. display tagname\&.
  397. .PP
  398. \fB\ statusline\fR
  399. draw a custom statusline in the specific tag (can display any sequences)\&.
  400. .PP
  401. \fB\ mousebinds\fR
  402. mouse actions on the tag buttons\&.
  403. .RE
  404. .PP
  405. .RE
  406. \fB\ [client]\fR
  407. .RS 2
  408. \fB\ theme\fR
  409. apply theme to client by default\&.
  410. .PP
  411. \fB\ key_modifier\fR
  412. key modifier to perform actions on clients\&.
  413. .PP
  414. \fB\ mousebinds\fR
  415. mouse actions on client\&.
  416. .RE
  417. .PP
  418. .RE
  419. \fB\ [rules]\fR
  420. specific rules for clients: to identify an application, use xprop\&.
  421. .RS 2
  422. \fB\ instance\fR
  423. first part of WM_CLASS\&.
  424. .PP
  425. \fB\ class\fR
  426. second part of WM_CLASS\&.
  427. .PP
  428. \fB\ role\fR
  429. WM_WINDOW_ROLE\&.
  430. .PP
  431. \fB\ name\fR
  432. _NET_WM_NAME\&.
  433. .PP
  434. \fB\ theme\fR
  435. apply theme to client\&.
  436. .PP
  437. \fB\ tag\fR
  438. set tag to client(start at 0)\&.
  439. .PP
  440. \fB\ screen\fR
  441. display client on a specific screen\&.
  442. .PP
  443. \fB\ free\fR
  444. client in auto-free mode (true/false)\&.
  445. .PP
  446. \fB\ tab\fR
  447. open client in a tab (true/false)\&.
  448. .RE
  449. .PP
  450. .RE
  451. \fB\ [launchers]\fR
  452. .RS 2
  453. \fB\ name\fR
  454. launcher-name, will be used in the [keys] section\&.
  455. .PP
  456. \fB\ prompt\fR
  457. display text at the beginning of the prompt\&.
  458. .PP
  459. \fB\ command\fR
  460. command used by the launcher. can be an uicb function or an uicb function + extension\&.
  461. .RE
  462. .PP
  463. .RE
  464. \fB\ [keys]\fR
  465. .RS 2
  466. each line is contained within\fB\ [key]...[/key]\fR
  467. .PP
  468. \fB\ mod\fR
  469. key modifier (Alt, Control, Shift, Super)\&.
  470. .PP
  471. \fB\ key\fR
  472. key to press\&.
  473. .PP
  474. \fB\ func\fR
  475. uicb function to launch\&.
  476. .PP
  477. \fB\ cmd\fR
  478. if\fB\ func = "spawn"\fR set the external command to launch\&.
  479. .sp
  480. .SH "UICB Functions"
  481. UICB functions list. for “User Interface Call Backs”\&.
  482. .PP
  483. \fB\ usage in the wmfsrc:\fR func = "tag_next"\fB\ or\fR func = "spawn" cmd = "urxvt -e vim"\&.
  484. .RE
  485. \fB\ usage in the status.sh:\fR wmfs -c status "<barname> ^s[<position>;<color>;next](1;tag_next)"\&.
  486. .RE
  487. \fB\ usage in your terminal:\fR wmfs -c tag_next\&.
  488. .PP
  489. \fB\ spawn\fR
  490. launch a command. ex: func = "spawn" cmd = "urxvtc -e screen irssi"\&.
  491. .PP
  492. \fB\ quit\fR
  493. quit wmfs\&.
  494. .PP
  495. \fB\ reload\fR
  496. reload wmfs\&.
  497. .PP
  498. \fB\ tag_set\fR
  499. set tag by number\&.
  500. .PP
  501. \fB\ tag\fR
  502. set tag by name\&.
  503. .PP
  504. \fB\ tag_next/prev\fR
  505. set next/previous tag\&.
  506. .PP
  507. \fB\ tag_client\fR
  508. tag the client\&.
  509. .PP
  510. \fB\ tag_move_client_next/prev\fR
  511. tag the client with next/previous tag\&.
  512. .PP
  513. \fB\ tag_click\fR
  514. display tag with a clic on tag button\&.
  515. .PP
  516. \fB\ tag_new/del\fR
  517. add/delete a tag\&.
  518. .PP
  519. \fB\ layout_vmirror\fR
  520. vertical mirror tiling\&.
  521. .PP
  522. \fB\ layout_hmirror\fR
  523. horizontal mirror tiling\&.
  524. .PP
  525. \fB\ layout_rotate_left\fR
  526. tiling rotate anti/clockwise\&.
  527. .PP
  528. \fB\ layout_prev_set\fR
  529. back to previous set layout\&.
  530. .PP
  531. \fB\ layout_next_set\fR
  532. go to next set layout\&.
  533. .PP
  534. \fB\ layout_integrate_left/right/top/bottom\fR
  535. client integration in the client zone by direction\&.
  536. .PP
  537. \fB\ client_close\fR
  538. close the client\&.
  539. .PP
  540. \fB\ client_resize_right/left/top/bottom\fR
  541. resize client with direction\&.
  542. .PP
  543. \fB\ client_focus_right/left/top/bottom\fR
  544. focus client with direction\&.
  545. .PP
  546. \fB\ client_tab_right/left/top/bottom\fR
  547. tab client with direction\&.
  548. .PP
  549. \fB\ client_swap_right/left/top/bottom\fR
  550. swap client with direction\&.
  551. .PP
  552. \fB\ client_focus_next/prev\fR
  553. move focus to the next/previous client\&.
  554. .PP
  555. \fB\ client_swap_next/prev\fR
  556. swap with the next/previous client\&.
  557. .PP
  558. \fB\ client_untab\fR
  559. untab the client\&.
  560. .PP
  561. \fB\ client_focus_next_tab\fR
  562. move focus to next tab-client\&.
  563. .PP
  564. \fB\ client_focus_prev_tab\fR
  565. move focus to previous tab-client\&.
  566. .PP
  567. \fB\ client_focus_click\fR
  568. give focus to client with a clic\&.
  569. .PP
  570. \fB\ client_toggle_free\fR
  571. togle free the client\&.
  572. .PP
  573. \fB\ client_tab_next_opened\fR
  574. open the client in a tab\&.
  575. .PP
  576. \fB\ status\fR
  577. display the argument text in the statusbar\&.
  578. .PP
  579. \fB\ status_surface\fR
  580. display a surface. can contain sequences\&.
  581. .PP
  582. \fB\ mouse_resize\fR
  583. resize the client\&.
  584. .PP
  585. \fB\ mouse_move\fR
  586. move the client\&.
  587. .PP
  588. \fB\ mouse_swap\fR
  589. swap the client\&.
  590. .PP
  591. \fB\ mouse_tab\fR
  592. tab the client\&.
  593. .PP
  594. \fB\ screen_next/prev\fR
  595. go to next/previous screen\&.
  596. .PP
  597. \fB\ screen_move_client_next/prev\fR
  598. move the client to next/previous screen\&.
  599. .PP
  600. \fB\ launcher\fR
  601. native prompt. ex:\fB\ func = "launcher" cmd = "exec"\fR display the “exec” launcher\&.
  602. .RE
  603. .PP
  604. .sp
  605. .SH "BUGS"
  606. WMFS isn\'t stable for now\&. So it certainly contains some bugs\&.
  607. .sp
  608. .SH "AUTHORS"
  609. Martin Duquesnoy <\fIxorg62@gmail\&.com\fR\&[1]>\&.
  610. .sp
  611. .SH "WWW"
  612. Main site: \fIhttps://github\&.com/xorg62/wmfs\fR
  613. .PP
  614. Wiki: \fIhttps://github\&.com/xorg62/wmfs/wiki\fR
  615. .PP
  616. Bug tracker: \fIhttps://github\&.com/xorg62/wmfs/issues\fR
  617. .sp
  618. .SH "COPYING"
  619. WMFS is under the BSD license\&. See COPYING for more information\&.
  620. .sp
  621. .SH "NOTES"
  622. .IP " 1." 4
  623. xorg62@gmail.com
  624. .RS 4
  625. \%mailto:xorg62@gmail.com
  626. .RE