wmfs.1 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682
  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 "STATUS"
  481. statusbars, tags, surfaces and titlebars support sequences to display text, images bars and graphs through the\fB\ wmfs -c status\fR command.
  482. .PP
  483. \fB\ Syntax\fR
  484. .PP
  485. .RS 4
  486. \fB\ position:\fR “left/right” (relative) or “x;y” (absolute)\&.
  487. .PP
  488. \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”\&.
  489. .PP
  490. \fB\ color:\fR ”#rrggbb”\&.
  491. .PP
  492. \fB\ imagepath:\fR absolute path for the image\&.
  493. .PP
  494. \fB\ border:\fR width of the progressbar border in pixels\&.
  495. .PP
  496. \fB\ curser:\fR width of the curser in the positionbar\&.
  497. .PP
  498. \fB\ value:\fR a variable, to draw progressbar\&.
  499. .PP
  500. \fB\ valuemax:\fR maximum value of the ‘value’ used in the progressbar\&.
  501. .RE
  502. .PP
  503. \fB\ basic usage\fR
  504. wmfs -c status "<barname> TEXT visible on 'barname'"\&.
  505. .PP
  506. \fB\ display colors\fR
  507. wmfs -c status "<barname> ^s[<position>;<color>;<text>]"\&.
  508. .PP
  509. \fB\ display rectangles\fR
  510. wmfs -c status "<barname> ^R[<position>;<dimensions>;<color>]"\&.
  511. .PP
  512. \fB\ display images\fR
  513. wmfs -c status "<barname> ^i[<position>;<dimensions>;<imagepath>]"\&.
  514. .PP
  515. \fB\ display progressbars\fR
  516. wmfs -c status "<barname> ^p[<position>;<dimensions>;<border>;<value>;<valuemax>;<bgcolor>;<fgcolor>]"\&.
  517. .PP
  518. \fB\ display positionbars\fR
  519. wmfs -c status "<barname> ^P[<position>;<dimensions>;<curser>;<value>;<valuemax>;<bgcolor>;<fgcolor>]"\&.
  520. .PP
  521. \fB\ display graph\fR
  522. wmfs -c status "<barname> ^g[<position>;<dimensions>;<value>;<valuemax>;<bgcolor>;<fgcolor>;<name>]"\&.
  523. .RE
  524. .PP
  525. \fB\ mousebinds\fR
  526. sequences supports mousebinds with format\fB\ (<key>;<uicb-function>)\fR or\fB\ (<key>;<spawn>;<command>)\fR
  527. .RE
  528. .PP
  529. \fB\ surfaces\fR
  530. you can display popups from the statusbar with the mousebind\fB\ (<key>;status_surface;<position>,<dimension>,<color> <datas>)\fR
  531. .PP
  532. .sp
  533. .SH "UICB Functions"
  534. UICB functions list. for “User Interface Call Backs”\&.
  535. .PP
  536. \fB\ usage in the wmfsrc:\fR func = "tag_next"\fB\ or\fR func = "spawn" cmd = "urxvt -e vim"\&.
  537. .RE
  538. \fB\ usage in the status.sh:\fR wmfs -c status "<barname> ^s[<position>;<color>;next](1;tag_next)"\&.
  539. .RE
  540. \fB\ usage in your terminal:\fR wmfs -c tag_next\&.
  541. .PP
  542. \fB\ spawn\fR
  543. launch a command. ex: func = "spawn" cmd = "urxvtc -e screen irssi"\&.
  544. .PP
  545. \fB\ quit\fR
  546. quit wmfs\&.
  547. .PP
  548. \fB\ reload\fR
  549. reload wmfs\&.
  550. .PP
  551. \fB\ tag_set\fR
  552. set tag by number\&.
  553. .PP
  554. \fB\ tag\fR
  555. set tag by name\&.
  556. .PP
  557. \fB\ tag_next/prev\fR
  558. set next/previous tag\&.
  559. .PP
  560. \fB\ tag_client\fR
  561. tag the client\&.
  562. .PP
  563. \fB\ tag_client_and_set\fR
  564. teg the client and set the tag\&.
  565. .PP
  566. \fB\ tag_move_client_next/prev\fR
  567. tag the client with next/previous tag\&.
  568. .PP
  569. \fB\ tag_click\fR
  570. display tag with a clic on tag button\&.
  571. .PP
  572. \fB\ tag_new/del\fR
  573. add/delete a tag\&.
  574. .PP
  575. \fB\ layout_vmirror\fR
  576. vertical mirror tiling\&.
  577. .PP
  578. \fB\ layout_hmirror\fR
  579. horizontal mirror tiling\&.
  580. .PP
  581. \fB\ layout_rotate_left\fR
  582. tiling rotate anti/clockwise\&.
  583. .PP
  584. \fB\ layout_prev_set\fR
  585. back to previous set layout\&.
  586. .PP
  587. \fB\ layout_next_set\fR
  588. go to next set layout\&.
  589. .PP
  590. \fB\ layout_integrate_left/right/top/bottom\fR
  591. client integration in the client zone by direction\&.
  592. .PP
  593. \fB\ client_close\fR
  594. close the client\&.
  595. .PP
  596. \fB\ client_resize_right/left/top/bottom\fR
  597. resize client with direction\&.
  598. .PP
  599. \fB\ client_focus_right/left/top/bottom\fR
  600. focus client with direction\&.
  601. .PP
  602. \fB\ client_tab_right/left/top/bottom\fR
  603. tab client with direction\&.
  604. .PP
  605. \fB\ client_swap_right/left/top/bottom\fR
  606. swap client with direction\&.
  607. .PP
  608. \fB\ client_focus_next/prev\fR
  609. move focus to the next/previous client\&.
  610. .PP
  611. \fB\ client_swap_next/prev\fR
  612. swap with the next/previous client\&.
  613. .PP
  614. \fB\ client_untab\fR
  615. untab the client\&.
  616. .PP
  617. \fB\ client_focus_next_tab\fR
  618. move focus to next tab-client\&.
  619. .PP
  620. \fB\ client_focus_prev_tab\fR
  621. move focus to previous tab-client\&.
  622. .PP
  623. \fB\ client_focus_click\fR
  624. give focus to client with a clic\&.
  625. .PP
  626. \fB\ client_toggle_free\fR
  627. togle free the client\&.
  628. .PP
  629. \fB\ client_tab_next_opened\fR
  630. open the client in a tab\&.
  631. .PP
  632. \fB\ status\fR
  633. display the argument text in the statusbar\&.
  634. .PP
  635. \fB\ status_surface\fR
  636. display a surface. can contain sequences\&.
  637. .PP
  638. \fB\ mouse_resize\fR
  639. resize the client\&.
  640. .PP
  641. \fB\ mouse_move\fR
  642. move the client\&.
  643. .PP
  644. \fB\ mouse_swap\fR
  645. swap the client\&.
  646. .PP
  647. \fB\ mouse_tab\fR
  648. tab the client\&.
  649. .PP
  650. \fB\ screen_next/prev\fR
  651. go to next/previous screen\&.
  652. .PP
  653. \fB\ screen_move_client_next/prev\fR
  654. move the client to next/previous screen\&.
  655. .PP
  656. \fB\ launcher\fR
  657. native prompt. ex:\fB\ func = "launcher" cmd = "exec"\fR display the “exec” launcher\&.
  658. .RE
  659. .PP
  660. .sp
  661. .SH "BUGS"
  662. WMFS isn\'t stable for now\&. So it certainly contains some bugs\&.
  663. .sp
  664. .SH "AUTHORS"
  665. Martin Duquesnoy <\fIxorg62@gmail\&.com\fR\&[1]>\&.
  666. .sp
  667. .SH "WWW"
  668. Main site: \fIhttps://github\&.com/xorg62/wmfs\fR
  669. .PP
  670. Wiki: \fIhttps://github\&.com/xorg62/wmfs/wiki\fR
  671. .PP
  672. Bug tracker: \fIhttps://github\&.com/xorg62/wmfs/issues\fR
  673. .sp
  674. .SH "COPYING"
  675. WMFS is under the BSD license\&. See COPYING for more information\&.
  676. .sp
  677. .SH "NOTES"
  678. .IP " 1." 4
  679. xorg62@gmail.com
  680. .RS 4
  681. \%mailto:xorg62@gmail.com
  682. .RE