wmfs.1 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689
  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. \fBSuper + Shift + f \fR
  67. .RS 4
  68. Toggle ignore_tag the selected client
  69. .RE
  70. .PP
  71. \fBAlt + Tab\fR
  72. .RS 4
  73. Give the focus to the next client
  74. .RE
  75. .PP
  76. \fBAlt\-Shift + Tab\fR
  77. .RS 4
  78. Give the focus to the previous client
  79. .RE
  80. .PP
  81. \fBAlt + h\fR
  82. .RS 4
  83. Give the focus to the client on the left
  84. .RE
  85. .PP
  86. \fBAlt + l\fR
  87. .RS 4
  88. Give the focus to the client on the right
  89. .RE
  90. .PP
  91. \fBAlt + k\fR
  92. .RS 4
  93. Give the focus to the client on the top
  94. .RE
  95. .PP
  96. \fBAlt + j\fR
  97. .RS 4
  98. Give the focus to the client on the bottom
  99. .RE
  100. .PP
  101. \fBSuper + Tab\fR
  102. .RS 4
  103. Give the focus to the next tabbed client
  104. .RE
  105. .PP
  106. \fBSuper\-Shift + Tab\fR
  107. .RS 4
  108. Give the focus to the previous tabbed client
  109. .RE
  110. .PP
  111. \fBControl\-Shift + h\fR
  112. .RS 4
  113. Swap with the client on the left
  114. .RE
  115. .PP
  116. \fBControl\-Shift + l\fR
  117. .RS 4
  118. Swap with the client on the right
  119. .RE
  120. .PP
  121. \fBControl\-Shift + k\fR
  122. .RS 4
  123. Swap with the client on the top
  124. .RE
  125. .PP
  126. \fBControl\-Shift + j\fR
  127. .RS 4
  128. Swap with the client on the bottom
  129. .RE
  130. .PP
  131. \fBAlt\-Shift + h\fR
  132. .RS 4
  133. Tab in the client on the left
  134. .RE
  135. .PP
  136. \fBAlt\-Shift + l\fR
  137. .RS 4
  138. Tab in the client on the right
  139. .RE
  140. .PP
  141. \fBAlt\-Shift + k\fR
  142. .RS 4
  143. Tab in the client on the top
  144. .RE
  145. .PP
  146. \fBAlt\-Shift + j\fR
  147. .RS 4
  148. Tab in the client on the bottom
  149. .RE
  150. .PP
  151. \fBAlt\-Shift + u\fR
  152. .RS 4
  153. Untab the client
  154. .RE
  155. .PP
  156. \fBSuper + h\fR
  157. .RS 4
  158. Increase the client to the left
  159. .RE
  160. .PP
  161. \fBSuper + l\fR
  162. .RS 4
  163. Decrease the client from the left
  164. .RE
  165. .PP
  166. \fBSuper + k\fR
  167. .RS 4
  168. Increase the client to the top
  169. .RE
  170. .PP
  171. \fBSuper + j\fR
  172. .RS 4
  173. Decrease the client from the top
  174. .RE
  175. .PP
  176. \fBSuper\-Control + h\fR
  177. .RS 4
  178. Decrease the client from the right
  179. .RE
  180. .PP
  181. \fBSuper\-Control + l\fR
  182. .RS 4
  183. Increase the client to the right
  184. .RE
  185. .PP
  186. \fBSuper\-Control + k\fR
  187. .RS 4
  188. Decrease the client from the bottom
  189. .RE
  190. .PP
  191. \fBSuper\-Control + j\fR
  192. .RS 4
  193. Increase the client to the bottom
  194. .RE
  195. .PP
  196. \fBControl + Right\fR
  197. .RS 4
  198. Next tag
  199. .RE
  200. .PP
  201. \fBControl + Left\fR
  202. .RS 4
  203. Previous tag
  204. .RE
  205. .PP
  206. \fBControl + Up\fR
  207. .RS 4
  208. Next screen
  209. .RE
  210. .PP
  211. \fBControl + Down\fR
  212. .RS 4
  213. Previous screen
  214. .RE
  215. .PP
  216. \fBSuper + m\fR
  217. .RS 4
  218. Vertical mirror layout
  219. .RE
  220. .PP
  221. \fBSuper\-Shift + m\fR
  222. .RS 4
  223. Horizontal mirror layout
  224. .RE
  225. .PP
  226. \fBSuper + r\fR
  227. .RS 4
  228. Rotate layout right
  229. .RE
  230. .PP
  231. \fBSuper\-Shift + r\fR
  232. .RS 4
  233. Rotate layout left
  234. .RE
  235. .PP
  236. \fBSuper\-Control\-Alt + h\fR
  237. .RS 4
  238. Integrate client in left layout
  239. .RE
  240. .PP
  241. \fBSuper\-Control\-Alt + j\fR
  242. .RS 4
  243. Integrate client in bottom layout
  244. .RE
  245. .PP
  246. \fBSuper\-Control\-Alt + k\fR
  247. .RS 4
  248. Integrate client in top layout
  249. .RE
  250. .PP
  251. \fBSuper\-Control\-Alt + l\fR
  252. .RS 4
  253. Integrate client in right layout
  254. .RE
  255. .PP
  256. \fBSuper + o\fR
  257. .RS 4
  258. Restore previous layout
  259. .RE
  260. .PP
  261. \fBSuper\-Shift + o\fR
  262. .RS 4
  263. Restore next layout
  264. .RE
  265. .PP
  266. \fBSuper + p\fR
  267. .RS 4
  268. Make a launcher in the statusbar to run an unix command\fR
  269. .RE
  270. .PP
  271. \fBSuper + F[1\&.\&.9]\fR
  272. .RS 4
  273. Change tag view
  274. .RE
  275. .PP
  276. \fBSuper\-Shift + F[1\&.\&.9]\fR
  277. .RS 4
  278. Transfert the selected client to the wanted tag
  279. .RE
  280. .PP
  281. \fBSuper + -\fR
  282. .RS 4
  283. Delete current tag\fR
  284. .RE
  285. .PP
  286. \fBSuper\-Shift + -\fR
  287. .RS 4
  288. Add current tag\fR
  289. .RE
  290. .SH "CONFIGURATION"
  291. WMFS is configured by \fI$HOME/\&.config/wmfs/wmfsrc\fR\&.
  292. .RE
  293. .PP
  294. \fB\ include\fR
  295. wmfsrc supports ”@include” to split configuration file by section\&.
  296. .RS 2
  297. \fB\ Usage:\fR "@include ~/.config/wmfs/wmfs_themes"\&.
  298. .RE
  299. .PP
  300. \fB\ [themes]\fR
  301. wmfsrc supports themes for client and statusbar\&.
  302. .RS 2
  303. \fB Misc\fR
  304. .RS 2
  305. \fB\ name\fR
  306. theme name: will be used in next sections\&.
  307. .PP
  308. \fB\ font\fR
  309. theme font: in XLFD format\&.
  310. .PP
  311. .RE
  312. \fB\ Bars\fR
  313. .RS 2
  314. \fB\ bars_width\fR
  315. bar height in pixels\&.
  316. .PP
  317. \fB\ bars_fg/bg\fR
  318. statusbar text/background color\&.
  319. .PP
  320. .RE
  321. \fB\ Tags\fR
  322. .RS 2
  323. \fB\ tags_normal_fg/bg\fR
  324. normal tag text/button color\&.
  325. .PP
  326. \fB\ tags_normal_statusline\fR
  327. normal tag statusline\&.
  328. .PP
  329. \fB\ tags_sel_fg/bg\fR
  330. selected tag text/button color\&.
  331. .PP
  332. \fB\ tags_sel_statusline\fR
  333. selected tag statusline\&.
  334. .PP
  335. \fB\ tags_occupied_fg/bg\fR
  336. occupied tag text/button color\&.
  337. .PP
  338. \fB\ tags_occupied_statusline\fR
  339. occupied tag statusline\&.
  340. .PP
  341. \fB\ tags_urgent_fg/bg\fR
  342. urgent tag text/button color\&.
  343. .PP
  344. \fB\ tags_urgent_statusline\fR
  345. urgent tag statusline\&.
  346. .PP
  347. \fB\ tags_border_color\fR
  348. tag button border color\&.
  349. .PP
  350. \fB\ tags_border_width\fR
  351. tag button border width\&.
  352. .PP
  353. .RE
  354. \fB\ Clients\fR
  355. .RS 2
  356. \fB\ client_normal_fg/bg\fR
  357. normal client titlebar text/background color\&.
  358. .PP
  359. \fB\ client_normal_statusline\fR
  360. normal client statusline\&.
  361. .PP
  362. \fB\ client_sel_fg/bg\fR
  363. selected client titlebar text/background color\&.
  364. .PP
  365. \fB\ client_sel_statusline\fR
  366. selected client statusline\&.
  367. .PP
  368. \fB\ frame_bg\fR
  369. client border color\&.
  370. .PP
  371. \fB\ client_titlebar_width\fR
  372. client titlebar height in pixels\&.
  373. .PP
  374. \fB\ client_border_width\fR
  375. client border height in pixels\&.
  376. .RE
  377. .PP
  378. .RE
  379. \fB\ [bars]\fR
  380. .RS 2
  381. \fB\ position\fR
  382. statusbar position on screen: 0=Top; 1=Bottom, 2=Hide\&.
  383. .PP
  384. \fB\ screen\fR
  385. screen to display statusbar(start ar 0), set to\fB -1\fR to display on every screen\&.
  386. .PP
  387. \fB\ elements\fR
  388. t=Tags, s=Statustext, y=Systray, l=Launcher\&.
  389. .PP
  390. \fB\ theme\fR
  391. names of the statusbar theme\&.
  392. .RE
  393. .PP
  394. .RE
  395. \fB\ [tags]\fR
  396. .RS 2
  397. \fB\ screen\fR
  398. screen to display tag. use no screen option or screen =\fB -1\fR to set tag on each screen\&.
  399. .PP
  400. \fB\ name\fR
  401. display tagname\&.
  402. .PP
  403. \fB\ statusline\fR
  404. draw a custom statusline in the specific tag (can display any sequences)\&.
  405. .PP
  406. \fB\ mousebinds\fR
  407. mouse actions on the tag buttons\&.
  408. .RE
  409. .PP
  410. .RE
  411. \fB\ [client]\fR
  412. .RS 2
  413. \fB\ theme\fR
  414. apply theme to client by default\&.
  415. .PP
  416. \fB\ key_modifier\fR
  417. key modifier to perform actions on clients\&.
  418. .PP
  419. \fB\ mousebinds\fR
  420. mouse actions on client\&.
  421. .RE
  422. .PP
  423. .RE
  424. \fB\ [rules]\fR
  425. specific rules for clients: to identify an application, use xprop\&.
  426. .RS 2
  427. \fB\ instance\fR
  428. first part of WM_CLASS\&.
  429. .PP
  430. \fB\ class\fR
  431. second part of WM_CLASS\&.
  432. .PP
  433. \fB\ role\fR
  434. WM_WINDOW_ROLE\&.
  435. .PP
  436. \fB\ name\fR
  437. _NET_WM_NAME\&.
  438. .PP
  439. \fB\ theme\fR
  440. apply theme to client\&.
  441. .PP
  442. \fB\ tag\fR
  443. set tag to client(start at 0)\&.
  444. .PP
  445. \fB\ screen\fR
  446. display client on a specific screen\&.
  447. .PP
  448. \fB\ free\fR
  449. client in auto-free mode (true/false)\&.
  450. .PP
  451. \fB\ tab\fR
  452. open client in a tab (true/false)\&.
  453. .RE
  454. .PP
  455. .RE
  456. \fB\ [launchers]\fR
  457. .RS 2
  458. \fB\ name\fR
  459. launcher-name, will be used in the [keys] section\&.
  460. .PP
  461. \fB\ prompt\fR
  462. display text at the beginning of the prompt\&.
  463. .PP
  464. \fB\ command\fR
  465. command used by the launcher. can be an uicb function or an uicb function + extension\&.
  466. .RE
  467. .PP
  468. .RE
  469. \fB\ [keys]\fR
  470. .RS 2
  471. each line is contained within\fB\ [key]...[/key]\fR
  472. .PP
  473. \fB\ mod\fR
  474. key modifier (Alt, Control, Shift, Super)\&.
  475. .PP
  476. \fB\ key\fR
  477. key to press\&.
  478. .PP
  479. \fB\ func\fR
  480. uicb function to launch\&.
  481. .PP
  482. \fB\ cmd\fR
  483. if\fB\ func = "spawn"\fR set the external command to launch\&.
  484. .sp
  485. .SH "STATUS"
  486. statusbars, tags, surfaces and titlebars support sequences to display text, images bars and graphs through the\fB\ wmfs -c status\fR command.
  487. .PP
  488. \fB\ Syntax\fR
  489. .PP
  490. .RS 4
  491. \fB\ position:\fR “left/right” (relative) or “x;y” (absolute)\&.
  492. .PP
  493. \fB\ dimension:\fR “ww;hh” for width;height of the rectangle or the image, to display an image at its original size, set it to “0;0”\&.
  494. .PP
  495. \fB\ color:\fR ”#rrggbb”\&.
  496. .PP
  497. \fB\ imagepath:\fR absolute path for the image\&.
  498. .PP
  499. \fB\ border:\fR width of the progressbar border in pixels\&.
  500. .PP
  501. \fB\ curser:\fR width of the curser in the positionbar\&.
  502. .PP
  503. \fB\ value:\fR a variable, to draw progressbar\&.
  504. .PP
  505. \fB\ valuemax:\fR maximum value of the ‘value’ used in the progressbar\&.
  506. .RE
  507. .PP
  508. \fB\ basic usage\fR
  509. wmfs -c status "<barname> TEXT visible on 'barname'"\&.
  510. .PP
  511. \fB\ display colors\fR
  512. wmfs -c status "<barname> ^s[<position>;<color>;<text>]"\&.
  513. .PP
  514. \fB\ display rectangles\fR
  515. wmfs -c status "<barname> ^R[<position>;<dimensions>;<color>]"\&.
  516. .PP
  517. \fB\ display images\fR
  518. wmfs -c status "<barname> ^i[<position>;<dimensions>;<imagepath>]"\&.
  519. .PP
  520. \fB\ display progressbars\fR
  521. wmfs -c status "<barname> ^p[<position>;<dimensions>;<border>;<value>;<valuemax>;<bgcolor>;<fgcolor>]"\&.
  522. .PP
  523. \fB\ display positionbars\fR
  524. wmfs -c status "<barname> ^P[<position>;<dimensions>;<curser>;<value>;<valuemax>;<bgcolor>;<fgcolor>]"\&.
  525. .PP
  526. \fB\ display graph\fR
  527. wmfs -c status "<barname> ^g[<position>;<dimensions>;<value>;<valuemax>;<bgcolor>;<fgcolor>;<name>]"\&.
  528. .RE
  529. .PP
  530. \fB\ mousebinds\fR
  531. sequences supports mousebinds with format\fB\ (<key>;<uicb-function>)\fR or\fB\ (<key>;<spawn>;<command>)\fR
  532. .RE
  533. .PP
  534. \fB\ surfaces\fR
  535. you can display popups from the statusbar with the mousebind\fB\ (<key>;status_surface;<position>,<dimension>,<color> <datas>)\fR
  536. .PP
  537. .sp
  538. .SH "UICB Functions"
  539. UICB functions list. for “User Interface Call Backs”\&.
  540. .PP
  541. \fB\ usage in the wmfsrc:\fR func = "tag_next"\fB\ or\fR func = "spawn" cmd = "urxvt -e vim"\&.
  542. .RE
  543. \fB\ usage in the status.sh:\fR wmfs -c status "<barname> ^s[<position>;<color>;next](1;tag_next)"\&.
  544. .RE
  545. \fB\ usage in your terminal:\fR wmfs -c tag_next\&.
  546. .PP
  547. \fB\ spawn\fR
  548. launch a command. ex: func = "spawn" cmd = "urxvtc -e screen irssi"\&.
  549. .PP
  550. \fB\ quit\fR
  551. quit wmfs\&.
  552. .PP
  553. \fB\ reload\fR
  554. reload wmfs\&.
  555. .PP
  556. \fB\ tag_set\fR
  557. set tag by number\&.
  558. .PP
  559. \fB\ tag\fR
  560. set tag by name\&.
  561. .PP
  562. \fB\ tag_next/prev\fR
  563. set next/previous tag\&.
  564. .PP
  565. \fB\ tag_client\fR
  566. tag the client\&.
  567. .PP
  568. \fB\ tag_client_and_set\fR
  569. teg the client and set the tag\&.
  570. .PP
  571. \fB\ tag_move_client_next/prev\fR
  572. tag the client with next/previous tag\&.
  573. .PP
  574. \fB\ tag_click\fR
  575. display tag with a clic on tag button\&.
  576. .PP
  577. \fB\ tag_new/del\fR
  578. add/delete a tag\&.
  579. .PP
  580. \fB\ layout_vmirror\fR
  581. vertical mirror tiling\&.
  582. .PP
  583. \fB\ layout_hmirror\fR
  584. horizontal mirror tiling\&.
  585. .PP
  586. \fB\ layout_rotate_left\fR
  587. tiling rotate anti/clockwise\&.
  588. .PP
  589. \fB\ layout_prev_set\fR
  590. back to previous set layout\&.
  591. .PP
  592. \fB\ layout_next_set\fR
  593. go to next set layout\&.
  594. .PP
  595. \fB\ layout_integrate_left/right/top/bottom\fR
  596. client integration in the client zone by direction\&.
  597. .PP
  598. \fB\ client_close\fR
  599. close the client\&.
  600. .PP
  601. \fB\ client_resize_right/left/top/bottom\fR
  602. resize client with direction\&.
  603. .PP
  604. \fB\ client_focus_right/left/top/bottom\fR
  605. focus client with direction\&.
  606. .PP
  607. \fB\ client_tab_right/left/top/bottom\fR
  608. tab client with direction\&.
  609. .PP
  610. \fB\ client_swap_right/left/top/bottom\fR
  611. swap client with direction\&.
  612. .PP
  613. \fB\ client_focus_next/prev\fR
  614. move focus to the next/previous client\&.
  615. .PP
  616. \fB\ client_swap_next/prev\fR
  617. swap with the next/previous client\&.
  618. .PP
  619. \fB\ client_untab\fR
  620. untab the client\&.
  621. .PP
  622. \fB\ client_focus_next_tab\fR
  623. move focus to next tab-client\&.
  624. .PP
  625. \fB\ client_focus_prev_tab\fR
  626. move focus to previous tab-client\&.
  627. .PP
  628. \fB\ client_focus_click\fR
  629. give focus to client with a clic\&.
  630. .PP
  631. \fB\ client_toggle_free\fR
  632. toggle free the selected client\&.
  633. .PP
  634. \fB\ client_toggle_ignore_tag\fR
  635. toggle ignore_tag the selected client\&.
  636. \fB\ client_tab_next_opened\fR
  637. open the client in a tab\&.
  638. .PP
  639. \fB\ status\fR
  640. display the argument text in the statusbar\&.
  641. .PP
  642. \fB\ status_surface\fR
  643. display a surface. can contain sequences\&.
  644. .PP
  645. \fB\ mouse_resize\fR
  646. resize the client\&.
  647. .PP
  648. \fB\ mouse_move\fR
  649. move the client\&.
  650. .PP
  651. \fB\ mouse_swap\fR
  652. swap the client\&.
  653. .PP
  654. \fB\ mouse_tab\fR
  655. tab the client\&.
  656. .PP
  657. \fB\ screen_next/prev\fR
  658. go to next/previous screen\&.
  659. .PP
  660. \fB\ screen_move_client_next/prev\fR
  661. move the client to next/previous screen\&.
  662. .PP
  663. \fB\ launcher\fR
  664. native prompt. ex:\fB\ func = "launcher" cmd = "exec"\fR display the “exec” launcher\&.
  665. .RE
  666. .PP
  667. .sp
  668. .SH "BUGS"
  669. WMFS isn\'t stable for now\&. So it certainly contains some bugs\&.
  670. .sp
  671. .SH "AUTHORS"
  672. Martin Duquesnoy <\fIxorg62@gmail\&.com\fR\&[1]>\&.
  673. .sp
  674. .SH "WWW"
  675. Main site: \fIhttps://github\&.com/xorg62/wmfs\fR
  676. .PP
  677. Wiki: \fIhttps://github\&.com/xorg62/wmfs/wiki\fR
  678. .PP
  679. Bug tracker: \fIhttps://github\&.com/xorg62/wmfs/issues\fR
  680. .sp
  681. .SH "COPYING"
  682. WMFS is under the BSD license\&. See COPYING for more information\&.
  683. .sp
  684. .SH "NOTES"
  685. .IP " 1." 4
  686. xorg62@gmail.com
  687. .RS 4
  688. \%mailto:xorg62@gmail.com
  689. .RE