diff options
Diffstat (limited to 'doc')
-rw-r--r-- | doc/.gitignore | 3 | ||||
-rw-r--r-- | doc/Makefile.am | 23 | ||||
-rw-r--r-- | doc/fdl.texi | 450 | ||||
-rw-r--r-- | doc/ipaq.ratpoisonrc | 25 | ||||
-rw-r--r-- | doc/ratpoison.1 | 839 | ||||
-rw-r--r-- | doc/ratpoison.texi | 1895 | ||||
-rw-r--r-- | doc/sample.ratpoisonrc | 58 |
7 files changed, 0 insertions, 3293 deletions
diff --git a/doc/.gitignore b/doc/.gitignore deleted file mode 100644 index 96a20f1..0000000 --- a/doc/.gitignore +++ /dev/null @@ -1,3 +0,0 @@ -texinfo.tex -ratpoison.info -ratpoison.html/ diff --git a/doc/Makefile.am b/doc/Makefile.am deleted file mode 100644 index e653893..0000000 --- a/doc/Makefile.am +++ /dev/null @@ -1,23 +0,0 @@ -# Copyright (C) 2000, 2001, 2002, 2003, 2004 Shawn Betts <sabetts@vcn.bc.ca> -# -# This file is part of ratpoison. -# -# ratpoison is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or -# (at your option) any later version. -# -# ratpoison is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -# - -info_TEXINFOS = ratpoison.texi -man_MANS = ratpoison.1 -EXTRA_DIST = $(man_MANS) sample.ratpoisonrc ipaq.ratpoisonrc fdl.texi -MAINTAINERCLEANFILES = Makefile.in texinfo.tex diff --git a/doc/fdl.texi b/doc/fdl.texi deleted file mode 100644 index 6c91624..0000000 --- a/doc/fdl.texi +++ /dev/null @@ -1,450 +0,0 @@ -@c The GNU Free Documentation License. -@center Version 1.2, November 2002 - -@c This file is intended to be included within another document, -@c hence no sectioning command or @node. - -@display -Copyright @copyright{} 2000,2001,2002 Free Software Foundation, Inc. -51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA - -Everyone is permitted to copy and distribute verbatim copies -of this license document, but changing it is not allowed. -@end display - -@enumerate 0 -@item -PREAMBLE - -The purpose of this License is to make a manual, textbook, or other -functional and useful document @dfn{free} in the sense of freedom: to -assure everyone the effective freedom to copy and redistribute it, -with or without modifying it, either commercially or noncommercially. -Secondarily, this License preserves for the author and publisher a way -to get credit for their work, while not being considered responsible -for modifications made by others. - -This License is a kind of ``copyleft'', which means that derivative -works of the document must themselves be free in the same sense. It -complements the GNU General Public License, which is a copyleft -license designed for free software. - -We have designed this License in order to use it for manuals for free -software, because free software needs free documentation: a free -program should come with manuals providing the same freedoms that the -software does. But this License is not limited to software manuals; -it can be used for any textual work, regardless of subject matter or -whether it is published as a printed book. We recommend this License -principally for works whose purpose is instruction or reference. - -@item -APPLICABILITY AND DEFINITIONS - -This License applies to any manual or other work, in any medium, that -contains a notice placed by the copyright holder saying it can be -distributed under the terms of this License. Such a notice grants a -world-wide, royalty-free license, unlimited in duration, to use that -work under the conditions stated herein. The ``Document'', below, -refers to any such manual or work. Any member of the public is a -licensee, and is addressed as ``you''. You accept the license if you -copy, modify or distribute the work in a way requiring permission -under copyright law. - -A ``Modified Version'' of the Document means any work containing the -Document or a portion of it, either copied verbatim, or with -modifications and/or translated into another language. - -A ``Secondary Section'' is a named appendix or a front-matter section -of the Document that deals exclusively with the relationship of the -publishers or authors of the Document to the Document's overall -subject (or to related matters) and contains nothing that could fall -directly within that overall subject. (Thus, if the Document is in -part a textbook of mathematics, a Secondary Section may not explain -any mathematics.) The relationship could be a matter of historical -connection with the subject or with related matters, or of legal, -commercial, philosophical, ethical or political position regarding -them. - -The ``Invariant Sections'' are certain Secondary Sections whose titles -are designated, as being those of Invariant Sections, in the notice -that says that the Document is released under this License. If a -section does not fit the above definition of Secondary then it is not -allowed to be designated as Invariant. The Document may contain zero -Invariant Sections. If the Document does not identify any Invariant -Sections then there are none. - -The ``Cover Texts'' are certain short passages of text that are listed, -as Front-Cover Texts or Back-Cover Texts, in the notice that says that -the Document is released under this License. A Front-Cover Text may -be at most 5 words, and a Back-Cover Text may be at most 25 words. - -A ``Transparent'' copy of the Document means a machine-readable copy, -represented in a format whose specification is available to the -general public, that is suitable for revising the document -straightforwardly with generic text editors or (for images composed of -pixels) generic paint programs or (for drawings) some widely available -drawing editor, and that is suitable for input to text formatters or -for automatic translation to a variety of formats suitable for input -to text formatters. A copy made in an otherwise Transparent file -format whose markup, or absence of markup, has been arranged to thwart -or discourage subsequent modification by readers is not Transparent. -An image format is not Transparent if used for any substantial amount -of text. A copy that is not ``Transparent'' is called ``Opaque''. - -Examples of suitable formats for Transparent copies include plain -@sc{ascii} without markup, Texinfo input format, La@TeX{} input -format, @acronym{SGML} or @acronym{XML} using a publicly available -@acronym{DTD}, and standard-conforming simple @acronym{HTML}, -PostScript or @acronym{PDF} designed for human modification. Examples -of transparent image formats include @acronym{PNG}, @acronym{XCF} and -@acronym{JPG}. Opaque formats include proprietary formats that can be -read and edited only by proprietary word processors, @acronym{SGML} or -@acronym{XML} for which the @acronym{DTD} and/or processing tools are -not generally available, and the machine-generated @acronym{HTML}, -PostScript or @acronym{PDF} produced by some word processors for -output purposes only. - -The ``Title Page'' means, for a printed book, the title page itself, -plus such following pages as are needed to hold, legibly, the material -this License requires to appear in the title page. For works in -formats which do not have any title page as such, ``Title Page'' means -the text near the most prominent appearance of the work's title, -preceding the beginning of the body of the text. - -A section ``Entitled XYZ'' means a named subunit of the Document whose -title either is precisely XYZ or contains XYZ in parentheses following -text that translates XYZ in another language. (Here XYZ stands for a -specific section name mentioned below, such as ``Acknowledgements'', -``Dedications'', ``Endorsements'', or ``History''.) To ``Preserve the Title'' -of such a section when you modify the Document means that it remains a -section ``Entitled XYZ'' according to this definition. - -The Document may include Warranty Disclaimers next to the notice which -states that this License applies to the Document. These Warranty -Disclaimers are considered to be included by reference in this -License, but only as regards disclaiming warranties: any other -implication that these Warranty Disclaimers may have is void and has -no effect on the meaning of this License. - -@item -VERBATIM COPYING - -You may copy and distribute the Document in any medium, either -commercially or noncommercially, provided that this License, the -copyright notices, and the license notice saying this License applies -to the Document are reproduced in all copies, and that you add no other -conditions whatsoever to those of this License. You may not use -technical measures to obstruct or control the reading or further -copying of the copies you make or distribute. However, you may accept -compensation in exchange for copies. If you distribute a large enough -number of copies you must also follow the conditions in section 3. - -You may also lend copies, under the same conditions stated above, and -you may publicly display copies. - -@item -COPYING IN QUANTITY - -If you publish printed copies (or copies in media that commonly have -printed covers) of the Document, numbering more than 100, and the -Document's license notice requires Cover Texts, you must enclose the -copies in covers that carry, clearly and legibly, all these Cover -Texts: Front-Cover Texts on the front cover, and Back-Cover Texts on -the back cover. Both covers must also clearly and legibly identify -you as the publisher of these copies. The front cover must present -the full title with all words of the title equally prominent and -visible. You may add other material on the covers in addition. -Copying with changes limited to the covers, as long as they preserve -the title of the Document and satisfy these conditions, can be treated -as verbatim copying in other respects. - -If the required texts for either cover are too voluminous to fit -legibly, you should put the first ones listed (as many as fit -reasonably) on the actual cover, and continue the rest onto adjacent -pages. - -If you publish or distribute Opaque copies of the Document numbering -more than 100, you must either include a machine-readable Transparent -copy along with each Opaque copy, or state in or with each Opaque copy -a computer-network location from which the general network-using -public has access to download using public-standard network protocols -a complete Transparent copy of the Document, free of added material. -If you use the latter option, you must take reasonably prudent steps, -when you begin distribution of Opaque copies in quantity, to ensure -that this Transparent copy will remain thus accessible at the stated -location until at least one year after the last time you distribute an -Opaque copy (directly or through your agents or retailers) of that -edition to the public. - -It is requested, but not required, that you contact the authors of the -Document well before redistributing any large number of copies, to give -them a chance to provide you with an updated version of the Document. - -@item -MODIFICATIONS - -You may copy and distribute a Modified Version of the Document under -the conditions of sections 2 and 3 above, provided that you release -the Modified Version under precisely this License, with the Modified -Version filling the role of the Document, thus licensing distribution -and modification of the Modified Version to whoever possesses a copy -of it. In addition, you must do these things in the Modified Version: - -@enumerate A -@item -Use in the Title Page (and on the covers, if any) a title distinct -from that of the Document, and from those of previous versions -(which should, if there were any, be listed in the History section -of the Document). You may use the same title as a previous version -if the original publisher of that version gives permission. - -@item -List on the Title Page, as authors, one or more persons or entities -responsible for authorship of the modifications in the Modified -Version, together with at least five of the principal authors of the -Document (all of its principal authors, if it has fewer than five), -unless they release you from this requirement. - -@item -State on the Title page the name of the publisher of the -Modified Version, as the publisher. - -@item -Preserve all the copyright notices of the Document. - -@item -Add an appropriate copyright notice for your modifications -adjacent to the other copyright notices. - -@item -Include, immediately after the copyright notices, a license notice -giving the public permission to use the Modified Version under the -terms of this License, in the form shown in the Addendum below. - -@item -Preserve in that license notice the full lists of Invariant Sections -and required Cover Texts given in the Document's license notice. - -@item -Include an unaltered copy of this License. - -@item -Preserve the section Entitled ``History'', Preserve its Title, and add -to it an item stating at least the title, year, new authors, and -publisher of the Modified Version as given on the Title Page. If -there is no section Entitled ``History'' in the Document, create one -stating the title, year, authors, and publisher of the Document as -given on its Title Page, then add an item describing the Modified -Version as stated in the previous sentence. - -@item -Preserve the network location, if any, given in the Document for -public access to a Transparent copy of the Document, and likewise -the network locations given in the Document for previous versions -it was based on. These may be placed in the ``History'' section. -You may omit a network location for a work that was published at -least four years before the Document itself, or if the original -publisher of the version it refers to gives permission. - -@item -For any section Entitled ``Acknowledgements'' or ``Dedications'', Preserve -the Title of the section, and preserve in the section all the -substance and tone of each of the contributor acknowledgements and/or -dedications given therein. - -@item -Preserve all the Invariant Sections of the Document, -unaltered in their text and in their titles. Section numbers -or the equivalent are not considered part of the section titles. - -@item -Delete any section Entitled ``Endorsements''. Such a section -may not be included in the Modified Version. - -@item -Do not retitle any existing section to be Entitled ``Endorsements'' or -to conflict in title with any Invariant Section. - -@item -Preserve any Warranty Disclaimers. -@end enumerate - -If the Modified Version includes new front-matter sections or -appendices that qualify as Secondary Sections and contain no material -copied from the Document, you may at your option designate some or all -of these sections as invariant. To do this, add their titles to the -list of Invariant Sections in the Modified Version's license notice. -These titles must be distinct from any other section titles. - -You may add a section Entitled ``Endorsements'', provided it contains -nothing but endorsements of your Modified Version by various -parties---for example, statements of peer review or that the text has -been approved by an organization as the authoritative definition of a -standard. - -You may add a passage of up to five words as a Front-Cover Text, and a -passage of up to 25 words as a Back-Cover Text, to the end of the list -of Cover Texts in the Modified Version. Only one passage of -Front-Cover Text and one of Back-Cover Text may be added by (or -through arrangements made by) any one entity. If the Document already -includes a cover text for the same cover, previously added by you or -by arrangement made by the same entity you are acting on behalf of, -you may not add another; but you may replace the old one, on explicit -permission from the previous publisher that added the old one. - -The author(s) and publisher(s) of the Document do not by this License -give permission to use their names for publicity for or to assert or -imply endorsement of any Modified Version. - -@item -COMBINING DOCUMENTS - -You may combine the Document with other documents released under this -License, under the terms defined in section 4 above for modified -versions, provided that you include in the combination all of the -Invariant Sections of all of the original documents, unmodified, and -list them all as Invariant Sections of your combined work in its -license notice, and that you preserve all their Warranty Disclaimers. - -The combined work need only contain one copy of this License, and -multiple identical Invariant Sections may be replaced with a single -copy. If there are multiple Invariant Sections with the same name but -different contents, make the title of each such section unique by -adding at the end of it, in parentheses, the name of the original -author or publisher of that section if known, or else a unique number. -Make the same adjustment to the section titles in the list of -Invariant Sections in the license notice of the combined work. - -In the combination, you must combine any sections Entitled ``History'' -in the various original documents, forming one section Entitled -``History''; likewise combine any sections Entitled ``Acknowledgements'', -and any sections Entitled ``Dedications''. You must delete all -sections Entitled ``Endorsements.'' - -@item -COLLECTIONS OF DOCUMENTS - -You may make a collection consisting of the Document and other documents -released under this License, and replace the individual copies of this -License in the various documents with a single copy that is included in -the collection, provided that you follow the rules of this License for -verbatim copying of each of the documents in all other respects. - -You may extract a single document from such a collection, and distribute -it individually under this License, provided you insert a copy of this -License into the extracted document, and follow this License in all -other respects regarding verbatim copying of that document. - -@item -AGGREGATION WITH INDEPENDENT WORKS - -A compilation of the Document or its derivatives with other separate -and independent documents or works, in or on a volume of a storage or -distribution medium, is called an ``aggregate'' if the copyright -resulting from the compilation is not used to limit the legal rights -of the compilation's users beyond what the individual works permit. -When the Document is included in an aggregate, this License does not -apply to the other works in the aggregate which are not themselves -derivative works of the Document. - -If the Cover Text requirement of section 3 is applicable to these -copies of the Document, then if the Document is less than one half of -the entire aggregate, the Document's Cover Texts may be placed on -covers that bracket the Document within the aggregate, or the -electronic equivalent of covers if the Document is in electronic form. -Otherwise they must appear on printed covers that bracket the whole -aggregate. - -@item -TRANSLATION - -Translation is considered a kind of modification, so you may -distribute translations of the Document under the terms of section 4. -Replacing Invariant Sections with translations requires special -permission from their copyright holders, but you may include -translations of some or all Invariant Sections in addition to the -original versions of these Invariant Sections. You may include a -translation of this License, and all the license notices in the -Document, and any Warranty Disclaimers, provided that you also include -the original English version of this License and the original versions -of those notices and disclaimers. In case of a disagreement between -the translation and the original version of this License or a notice -or disclaimer, the original version will prevail. - -If a section in the Document is Entitled ``Acknowledgements'', -``Dedications'', or ``History'', the requirement (section 4) to Preserve -its Title (section 1) will typically require changing the actual -title. - -@item -TERMINATION - -You may not copy, modify, sublicense, or distribute the Document except -as expressly provided for under this License. Any other attempt to -copy, modify, sublicense or distribute the Document is void, and will -automatically terminate your rights under this License. However, -parties who have received copies, or rights, from you under this -License will not have their licenses terminated so long as such -parties remain in full compliance. - -@item -FUTURE REVISIONS OF THIS LICENSE - -The Free Software Foundation may publish new, revised versions -of the GNU Free Documentation License from time to time. Such new -versions will be similar in spirit to the present version, but may -differ in detail to address new problems or concerns. See -@uref{http://www.gnu.org/copyleft/}. - -Each version of the License is given a distinguishing version number. -If the Document specifies that a particular numbered version of this -License ``or any later version'' applies to it, you have the option of -following the terms and conditions either of that specified version or -of any later version that has been published (not as a draft) by the -Free Software Foundation. If the Document does not specify a version -number of this License, you may choose any version ever published (not -as a draft) by the Free Software Foundation. -@end enumerate - -@page -@heading ADDENDUM: How to use this License for your documents - -To use this License in a document you have written, include a copy of -the License in the document and put the following copyright and -license notices just after the title page: - -@smallexample -@group - Copyright (C) @var{year} @var{your name}. - Permission is granted to copy, distribute and/or modify this document - under the terms of the GNU Free Documentation License, Version 1.2 - or any later version published by the Free Software Foundation; - with no Invariant Sections, no Front-Cover Texts, and no Back-Cover - Texts. A copy of the license is included in the section entitled ``GNU - Free Documentation License''. -@end group -@end smallexample - -If you have Invariant Sections, Front-Cover Texts and Back-Cover Texts, -replace the ``with@dots{}Texts.'' line with this: - -@smallexample -@group - with the Invariant Sections being @var{list their titles}, with - the Front-Cover Texts being @var{list}, and with the Back-Cover Texts - being @var{list}. -@end group -@end smallexample - -If you have Invariant Sections without Cover Texts, or some other -combination of the three, merge those two alternatives to suit the -situation. - -If your document contains nontrivial examples of program code, we -recommend releasing these examples in parallel under your choice of -free software license, such as the GNU General Public License, -to permit their use in free software. - -@c Local Variables: -@c ispell-local-pdict: "ispell-dict" -@c End: diff --git a/doc/ipaq.ratpoisonrc b/doc/ipaq.ratpoisonrc deleted file mode 100644 index 5f6fd77..0000000 --- a/doc/ipaq.ratpoisonrc +++ /dev/null @@ -1,25 +0,0 @@ -# .ratpoisonrc for an iPaq36xx handheld pc running Linux -# Copyright (C) 2003, 2004 Ryan Yeske -# -# Copying and distribution of this file, with or without modification, -# are permitted in any medium without royalty provided the copyright - - -# make the "audio record" button the escape key: -escape XF86AudioRecord - -# the "speaker" buttons -bind Up exec rxvt -bind Down windows -bind Left prev -bind Right next -bind KP_Enter echo - -# the power button should be reserved? -bind XF86PowerDown exec (sleep 1; echo > /proc/sys/pm/suspend ) - -## the four buttons under the screen: -bind XF86Calendar exec xcalc -bind telephone exec contacts -bind Menu echo -bind XF86Start clock diff --git a/doc/ratpoison.1 b/doc/ratpoison.1 deleted file mode 100644 index 3ab0a92..0000000 --- a/doc/ratpoison.1 +++ /dev/null @@ -1,839 +0,0 @@ -.TH RATPOISON 1 2008-06-15 -\# This man page is free software; you can redistribute it and/or modify -\# it under the terms of the GNU General Public License as published by -\# the Free Software Foundation; either version 2, or (at your option) -\# any later version. -\# -\# This man page is distributed in the hope that it will be useful, -\# but WITHOUT ANY WARRANTY; without even the implied warranty of -\# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -\# GNU General Public License for more details. -\# -\# You should have received a copy of the GNU General Public License -\# along with this software; see the file COPYING. If not, write to -\# the Free Software Foundation, Inc., 59 Temple Place, Suite 330, -\# Boston, MA 02111-1307 USA -.de command -. ds command@tmp \fB\\$1\fP -. nr command@space 1 -. shift -. while \\n[.$] \{\ -. ie '\\$1'[' \{\ -. if ( \\n[command@space] == 1 ) .as command@tmp \& \& -. as command@tmp [ -. nr command@space 0 -. \} -. el .ie '\\$1']' \{\ -. as command@tmp ] -. nr command@space 1 -. \} -. el .ie '\\$1'|' \{\ -. as command@tmp | -. nr command@space 0 -. \} -. el .ie '\\$1'(' \{\ -. as command@tmp \& (\fB -. nr command@space 0 -. shift -. while !'\\$1')' \{\ -. ie '\\$1'|' .as command@tmp \fP|\fB\h'-1' -. el \{\ -. if ( \\n[command@space] == 1 ) .as command@tmp \& \& -. as command@tmp \\$1 -. nr command@space 1 -. \} -. shift -. \} -. shift -. as command@tmp \fP) -. nr command@space 0 -. \} -. el \{\ -. if ( \\n[command@space] == 1 ) .as command@tmp \& \& -. as command@tmp \fI\\$1\fR -. nr command@space 1 -. \} -. shift -. \} -\&\\*[command@tmp] -.. -.de cmd -.TP -.command \\$@ -.br -.. -.de var -.TP -.command \\$@ -.br -.. -.SH NAME -ratpoison \- window manager without mouse dependency -.P -.SH SYNOPSIS -.B ratpoison \-\-help -| -.B \-\-version -.br -.B ratpoison -.RB [ \-d -.IR dpy ] -.RB [ \-s -.IR num ] -.RB [ \-f -.IR file ] -.br -.B ratpoison -.RB [ \-d -.IR dpy ] -.RB [ \-s -.IR num ] -.RB [ \-i ] -.B \-c -.IR command -.RB [ \-c -.I command -\&... ] -.SH DESCRIPTION -Ratpoison is a Window Manager without fat library -dependencies, fancy graphics or rat dependence. - -The screen can be split into non-overlapping frames. All -windows are kept maximized inside their frames. - -All interaction with the window manager is done through -keystrokes. ratpoison has a prefix map to minimize -key clobbering. -.SH OPTIONS -.TP -.B \-h, \-\-help -Show summary of options. -.TP -.B \-v, \-\-version -Show version of program. -.TP -.B \-d, \-\-display \fIdisplay\fP -Set the X display to use or send commands to. -.TP -.B \-s, \-\-screen \fInumber\fP -Only use the specified screen. -.TP -.B \-f, \-\-file \fIfilename\fP -Specify an alternate configuration file. -If this is not given, ratpoison will try -.B $HOME/.ratpoisonrc -and if that does not exist -.B /etc/ratpoisonrc -and execute each command when starting up. -.TP -.B \-i, \-\-interactive -Execute commands given with -.B \-c -or -.B \-\-command -in interactive mode. -That means it will behave exactly as if called with -.B C\-t : -like prompting for missing arguments and things like that. -.TP -.B \-c, \-\-command -Send ratpoison a command. -There must be a ratpoison instance -running as window manager for the given display/screen for -this to work. -Do not forget to quote the command if it contains -spaces. -For example: -.br -\fBratpoison \-c "echo hello world"\fP -.SH KEY BINDINGS -To avoid conflicts with other programs, all default ratpoison -key bindings start with an escape key, per default -.B C\-t -(read Control\-t). -Some important default key bindings: -.PP -.B C\-t ?\& -Show key bindings -.br -.B C\-t c -Start an X terminal -.br -.B C\-t n -Switch to next window -.br -.B C\-t p -Switch to previous window -.br -.B C\-t 1\fP|\fB2\fP|\fB3\fP|\fB4\fP|\fB5\fP|\fB6\fP|\fB7\fP|\fB8\fP|\fB9 -Switch to window number 1|2|... -.br -.B C\-t k -Close the current window -.br -.B C\-t K -XKill the current application -.br -.B C\-t s\fP|\fBS -Split the current frame into two vertical|horizontal ones -.br -.B C\-t Tab\fP|\fBLeft\fP|\fBUp\fP|\fBRight\fP|\fBDown -Switch to the next|left|top|right|bottom frame. -.br -.B C\-t Q -Make the current frame the only one -.br -.B C\-t : -Execute a ratpoison command -.PP -Further default key bindings can be found in parentheses -after the commands in the next section: -.SH COMMANDS AND DEFAULT ALIASES -.cmd abort ( C\-t C\-g ) -Do nothing and that successfully. -(Useful if you pressed -\fBC\-t\fP in error). -.cmd addhook event command -Add a hook: Run command \fIcommand\fP whenever \fIevent\fP -is called. -Possible events are: -.ta 10 -.br -\fBdeletewindow\fP Run after a window is withdrawn. -.br -\fBnewwindow\fP Run after a new window is mapped. -.br -\fBkey\fP Run whenever a top level key is pressed. -(by default \fBC\-t\fP) -.br -\fBquit\fP Run before exiting ratpoison. -.br -\fBrestart\fP Run before restarting ratpoison. -.br -\fBswitchframe\fP Run after a frame actually switched, -but before the window in it is focused. -.br -\fBswitchgroup\fP Run after selecting a new group. -.br -\fBswitchwin\fP Run after a new window is selected. -(With dedication, -it may already be inactive again, if it was put into another frame) -.cmd alias alias command -Add \fIalias\fP as new way to call \fIcommand\fP. -.cmd bind key command -alias for "\fBdefinekey root\fP \fIkey\fP \fIcommand\fP" -.cmd banish ( C\-t b ) -Banish the rat cursor to the lower right corner of the screen. -.cmd banishrel -Banish the rat cursor to the lower right corner of the current window. -If there isn't a window in the current frame, it banishes the rat cursor -to the lower right corner of the frame. -.cmd chdir [ directory ] -If the optional argument is given, change the current directory -of ratpoison to \fIdirectory\fP. -If nothing is given, change -it to the value of the environment variable "HOME". -.cmd clrunmanaged -Clears the unmanaged window list. -.cmd cnext -Like \fBnext\fP but switch to the next window with another -resource class than the current one. -(That means the next window belonging to another type of application - than the current one.) -.cmd cprev -Like \fBprev\fP but switch to the previous window with another -resource class than the current one. -(That means the previous window belonging to another type of application - than the current one.) -.cmd colon ratpoison\-command ( C\-t : ) -Execute \fIratpoison\-command\fP interactively. (i.e. ask for possible -missing arguments.) -.cmd compat -Add aliases for the new \fBset\fP commands starting with \fBdef\fP to support older -scripts. -.cmd cother -Like \fBother\fP but switch to the window of the current group that was last -accessed and has another resource class but is not currently visible. -.cmd curframe ( C\-t F ) -Show a bar marking the current frame. -.cmd definekey keymap key command -Add a new key binding in \fIkeymap\fP for \fIkey\fP to execute \fIcommand\fP. -Default keymaps are \fBtop\fP normally only containing \fBC\-t\fP, which -reads a key from \fBroot\fP, containing all the normal commands. - -Note that you have to describe ":" by "colon", "!" by "exclam" and so on. -If you cannot guess a name of a key, try either \fBC\-t\fP \fIkey\fP -and look at the error message, or try \fB:describekey root\fP and pressing -the key. -.cmd def... -When \fBcompat\fP was called there are some aliases starting with \fIdef\fP, which -alias the new form with \fBset\fP. I.e. instead of \fB defresizeunit\fP -better use the new \fBset resizeunit\fP and so on... -.cmd dedicate [ \fB0 | \fB1\fP ] -Consider the current frame dedicated/chaste (\fB1\fP) or promiscuous (\fB0\fP). -.br -A dedicated frame will not accept new windows. -When new windows are to be focused, they will be opened in a non-dedicated -frame instead. -.br -If no argument is given, toggle the current dedicateness. By default no -windows are dedicated. -.cmd delete ( C\-t k ) -Close the current window. -.cmd delkmap keymap -Deletes the keymap named \fIkeymap\fP, that was generated -with \fBnewkmap\fP. The keymaps \fBtop\fP -(or whatever was specified by \fBset topkmap\fP) and \fBroot\fP -cannot be deleted. -.cmd describekey keymap -Grab the next key. Similar to \fBreadkey\fP, describekey -shows only the command in \fIkeymap\fP, -that would be executed by \fBreadkey\fP. -.cmd echo text -Show \fItext\fP as ratpoison message. -.cmd escape key -Update the default escape key to \fIkey\fP. -.br -Strictly speaking it updates the the \fBreadkey root\fP command -in the keymap \fBtop\fP to \fIkey\fP, the \fBother\fP binding -in \fBroot\fP to \fIkey\fP, and \fBmeta\fP binding in \fBroot\fP -to \fIkey\fP without modifiers or \fBC\-\fP\fIkey\fP if \fIkey\fP -has no modifiers. -(If \fBset topkmap\fP was called with an argument other than \fBtop\fP -that will be used instead of \fBtop\fP.) -.cmd exchangedown ( C\-t C\-Down ) -Exchange the window in the current frame with the window in the frame below the current frame. -.cmd exchangeleft ( C\-t C\-Left ) -Exchange the window in the current frame with the window in the frame left of the current frame. -.cmd exchangeright ( C\-t C\-Right ) -Exchange the window in the current frame with the window in the frame right of the current frame. -.cmd exchangeup ( C\-t C\-Up ) -Exchange the window in the current frame with the window in the frame above the current frame. -.cmd exec shell\-command ( C\-t ! ) -Spawn a shell executing \fIshell\-command\fP. -.cmd execa shell\-command -Spawn a shell executing \fIshell\-command\fP, without remembering -the current frame, so that _NET_WM_PID declaring programs will be -placed into the frame active when they open a window instead of -the frame active when ratpoison gets this command. -.cmd execf frame shell\-command -Spawn a shell executing \fIshell\-command\fP, showing _NET_WM_PID -supporting programs in the given frame instead of the frame selected -when this program is run. -.cmd fdump [ screenno ] -Output the defining data for all frames of the current screen, or -for screen number \fIscreenno\fP if this is specified. -.cmd focus ( C\-t Tab ) -Focus the next frame. -.cmd focuslast -Switch to the last selected focus. -.cmd focusleft ( C\-t Left ) -Switch to the frame to the left of the current one. -.cmd focusdown ( C\-t Down ) -Switch to the frame beneath the current one. -.cmd focusright ( C\-t Right ) -Switch to the frame to the right of the current one. -.cmd focusprev -Focus the previous frame. -.cmd focusup ( C\-t Up ) -Switch to the frame above the current one. -.cmd frestore frames -Replace the current frames with the ones specified in \fIframes\fP in the -format as generated by \fBfdump\fP. -.cmd fselect [ frameno ] ( C\-t f ) -If an argument is supplied, switch to a frame given by number \fIframeno\fP. - -If no argument is given, show a frame selector in each frame and wait for -a key to be pressed. -If the key matches an existing frame selector, this frame gets focused. - -Frame selectors are by default the numbers starting with zero, but they -can be changed by \fBset\fPing \fBframesels\fP. -.cmd gdelete [ group ] -If the optional argument \fIgroup\fP is supplied, delete group -\fIgroup\fP. Otherwise delete the current group. -If the last -group is deleted, a new group with name \fBdefault\fP is created. -The group has to be empty, otherwise it cannot be deleted. -.cmd getenv variable -Output the value of the environment variable \fIvariable\fP. -.cmd getsel -Paste the current X Selection into the current window. -.cmd gmerge group -Move all windows from group \fIgroup\fP into the current group. -.cmd gmove group -Move the current window into group \fIgroup\fP. -.cmd gnew group -Create a new group with name \fIgroup\fP and select it. -Most window commands only see (and thus select, consider next, -previous or last) windows within the group active when they are -issued. -.cmd gnewbg group -Create a new group named \fIgroupf\fP, but do not select it. -.cmd gnext -Select the next group. Most window commands only see windows in the -effective group. -.cmd gnumber -Give the number \fInew\fP to the group with the number \fIold\fP or -the current group. -.cmd gother -Select the last accessed group. Most window commands only see windows in the -effective group. -.cmd gprev -Select the prior group. Most window commands only see windows in the -effective group. -.cmd gravity [ \fBnw | \fBw | \fBsw | \fBn | \fBc | \fBs | \fBne | \fBe | \fBse ] -Change how in its frame the current window is aligned. -.cmd grename -Rename current group. -.cmd groups -Output a list of all groups with their number. -.cmd gselect group -Select the group names \fIgroup\fP. -.cmd help [ keymap ] -If the optional parameter \fIkeymap\fP is given, -list all keybindings in this keymap, -otherwise list all key bindings in keymap \fIroot\fP. -.cmd hsplit [ l\fB/\fR\fIp | "pixels from left" | "\fB\-\fR\fIpixels from right" ] ( C\-t S ) -Split the current frame into left frame and a right frame. -If no parameter is given, split in halves. -If two numbers separated -by a slash\ ("\fB/\fP") are given, the left one is \fIl\fP times the \fIp\fPth part -and the right one (\fIp\fP\-\fIl\fP) times the \fIp\fPth part of the prior width. -Otherwise the right one is \fIpixels from right\fP wide or the left one -\fIpixels from left\fP wide, depending whether there is \fB\-\fP in front of -the number or not. -.cmd inext -Like \fBnext\fP but switch to the next window with the same -resource class as the current one. -(That means the next window belonging to the same application - as the current one.) -.cmd info ( C\-t i ) -Output the current the width, height, window number and window name of the current -window. -(What name means is chosen by "\fBset\ winname\fP".) -.cmd iprev -Like \fBprev\fP but switch to the previous window with the same -resource class as the current one. -(That means the previous window belonging to the same application - as the current one.) -.cmd iother -Like \fBother\fP but switch to the window of the current group that was last -accessed and has the same resource class but is not currently visible. -.cmd kill ( C\-t K ) -Close the X\-connection of the X\-client responsible for the current window. -.cmd lastmsg ( C\-t m ) -Reshow the last message. -.cmd license ( C\-t V ) -Show ratpoison's license. -.cmd link key [ keymap ] -Do what \fIkey\fP is bound to in the keymap \fIkeymap\fP if supplied. -Otherwise what \fIkey\fP is bound to in keymap \fBroot\fP. -.cmd listhook event -List all commands specified with \fBaddhook\fP to be executed when -even \fIevent\fP occurs. -.cmd meta [ key ] ( C\-t t ) -Send the escape key (that which normally is \fBC\-t\fP) to the current window. -If a \fIkey\fP is specified, this is sent instead. Note that some applications by -default ignore the synthetic key that is sent using this command as it -is considered a security hole. xterm is one such application. -.cmd msgwait [ seconds ] -Set the duration the message window is shown. -If \fIseconds\fP is zero, wait infinitely. -.cmd newkmap keymap -Generate a new keymap names \fIkeymap\fP. This keymap can -be used to add new key\-command mapping to it with \fBdefinekey\fP -and can be called with \fBreadkey\fP. -.cmd newwm new window manager -Quit ratpoison and execute \fInew window manager\fP instead. -.cmd next ( C\-t Return | C\-t n | C\-t space ) -Switch to the next window in the current group. -.cmd nextscreen ( C\-t N ) -Switch to the next screen. (If you have multiple physical ones.) -.cmd number new [ old ] -Give the number \fInew\fP to the window with the number \fIold\fP or -the current window. -.cmd only ( C\-t Q ) -Remove all frames on the current screen except the current frame and -maximize this one to the size of the whole screen. -.cmd other ( C\-t C\-t ) -Switch to the window of the current group that was last -accessed but is not currently visible. -.cmd prev ( C\-t p ) -Switch to the previous window in the current group. -.cmd prevscreen ( C\-t P ) -Switch to the previous screen. (If you have multiple physical ones.) -.cmd prompt [ prompt ] -Ratpoison will ask the user for input, showing \fIprompt\fP (or -a single colon, if no argument is given) and output the input the -user has made. -.br -Note that this command probably does not make much sense in interactive -mode. -.cmd putsel x\-selection -Replace the X selection with the text \fIx\-selection\fP. It can be -inserted into the current window with \fBgetsel\fP. -.cmd quit -Quit ratpoison. -.cmd ratinfo -Display the x y coordinates of the rat cursor relative to the screen. -.cmd ratrelinfo -Display the x y coordinates of the rat cursor relative to the current window or current frame if no window is focused -.cmd ratwarp x y -Move the rat cursor to the position (\fIx\fP,\fIy\fP). -.cmd ratrelwarp deltax deltay -Move the rat cursor to (\fIdeltax\fP,\fIdeltay\fP), relative -to the current position. -.cmd ratclick [ button ] -Simulate a rat click with \fIbutton\fP (button 1=left button if none given). -.cmd rathold \fBup\fR\fI | \fBdown\fR\fI [ button ] -Simulate pressing|releasing rat button \fIbutton\fP (1=left button if none given). -.cmd readkey keymap -Grab the next key pressed, and execute the command associated to this key -in \fIkeymap\fP. -To show it is waiting for a key, ratpoison will change the -rat cursor to a square if \fBwaitcursor\fP is set. - -This command is perhaps best described with its usage in the default -configuration: By pressing \fBC\-t\fP, which is the only key in the keymap -\fBtop\fP, the command "\fBreadkey root\fP" is executed. The next key -then executes the command in keymap \fBroot\fP belonging to this command. -.cmd redisplay ( C\-t l ) -Extend the current window to the whole size of its current frame and -redisplay it. -(Useful to redisplay normal windows or bring transient windows to the -full size of the frame as only normal windows are maximized by ratpoison) -.cmd redo ( C\-t U ) -Revert the last \fIundo\fP of frame changes. -.cmd remhook event command -Remove command \fIcommand\fP from the list of commands to be called when -event \fIevent\fP is hit. (The command has to specified, as an event can -have multiple commands attached to it.) -Use "\fBlisthook\fP \fIhook\fP" to get a list of all attached commands. -.cmd remove ( C\-t R ) -Remove the current frame and extend some frames around to fill the remaining -gap. -.cmd resize [ deltax deltay ] ( C\-t r ) -If \fIdeltax\fP and \fIdeltay\fP are supplied, resize the current frame -by that (i.e. move the bottom right corner by the given offsets and then -move this frame and resize adjacent frames to make the frames fill the -whole screen again.) - -If in interactive mode no arguments are supplied, resize the current -frame interactively: -.br -.ta 20 -\fBReturn\fP: finish resizing -.br -\fBC\-g\fP or \fBEscape\fP: abort resizing -.br -\fBC\-n\fP or \fBDown\fP or \fBj\fP: grow vertically -.br -\fBC\-p\fP or \fBUp\fP or \fBk\fP: shrink vertically -.br -\fBC\-f\fP or \fBRight\fP or \fBl\fP: grow horizontally -.br -\fBC\-b\fP or \fBUp\fP or \fBh\fP: shrink horizontally -.br -\fBs\fP: shrink to size of current window - -While resizing interactively, changes are in multiples of the amount -of pixels given by \fBset resizeunit\fP (by default 10). -.cmd restart -Restart ratpoison. -.cmd rudeness [ rudeness ] -Show or set what kind of windows are allowed to jostle into the foreground. - -\fIrudeness\fP is a bitwise or of the following values: -.ta 5 -.br -1 Transient windows may raise. -.br -2 Normal windows may raise. -.br -4 New transient windows end up in the foreground. -.br -8 New normal windows end up in the foreground. - -Default is all allowed i.e.\& 15. - -.cmd sdump -Output the list of all screens. -The screens are separated by commas. Each screen is shown as 6 values: -its number, its x\-coordinate, its y\-coordinate, its width, its height -and if it is currently selected (1=true,0=false). -.cmd select \fB\-\fP | name | nr ( C\-t ' ) -If a number is given, switch to the window with number \fInr\fP. -If a name is given, switch to the window in the current group with -name \fIname\fP. -Blank the current frame, if \fB\-\fP is given. -.cmd set [ variable [ value ] ] -If no argument is given, output all ratpoison variables and their values. -.br -If one argument is given, output the value of ratpoison variable \fIvariable\fP. -.br -Otherwise set ratpoison variable \fIvariable\fP to \fIvalue\fP. What values -are valid depends on the variable. -See the section \fBVARIABLES\fP later in this document for details. -.cmd setenv variable value -Set the environment variable \fIvariable\fP to \fIvalue\fP. -(Environment variables will be passed to all programs started from ratpoison.) -.cmd sfdump -Output all frames similar to \fBfdump\fP, but not limited to one screen, but -all screens at once and with the screen number after each frame. -.cmd sfrestore -Replace the current frames with the ones specified in \fIframes\fP in the -format as generated by \fBsfdump\fP. -.cmd shrink -Shrink the current frame to the size of the current window with in. -.cmd split [ split ] ( C\-t s ) -alias for \fBvsplit\fP -.cmd source file -Read \fIfile\fP and execute each line as ratpoison command. -.cmd sselect screennumber -Switch to the screen \fIscreennumber\fP. (If you have multiple physical ones.) -.cmd startup_message \fBon | \fBoff -Select whether ratpoison will show a startup message or not. -.cmd swap [ dest-frame [ src-frame ] ] ( C\-t x ) -Exchange the window in \fIsrc-frame\fP (or the current frame if there is no second -argument) with the window \fIdest-frame\fP (or ask interactively which frame to -swap with if there is no argument). -.cmd time ( C\-t a ) -Output current data and time. -.cmd title newname ( C\-t A ) -Overwrite the title of the current window with \fInewname\fP. -All following ratpoison commands will only know the -window under the new name. -.cmd tmpwm tmpwm -Temporarily give control over to the other window manager \fItmpwm\fP, -reclaiming control when that WM terminates. -.cmd unalias alias -Remove the alias \fIalias\fP. -.cmd unbind key -alias for "\fBundefinekey root\fP \fIkey\fP" -.cmd undefinekey keymap key -Remove the binding for \fIkey\fP from \fIkeymap\fP. -.cmd undo ( C\-t _ or C\-t u ) -Un\-do the last change to the frameset. -(Like splitting, resizing, deleting, ...) -.br -The amount of steps that can be undone is specified by the variable -\fBmaxundos\fP. -.cmd unmanage [ name ] -Add \fIname\fP to the list of unmanaged windows. -Thus, windows of this -name will not be managed but allowed to choose their position themselves. - -In non\-interactive mode calling it without arguments will print the list. - -The list can be cleared again by calling \fBclrunmanaged\fP. -.cmd unsetenv variable -Remove variable \fIvariable\fP from the list of environment variables. -.cmd verbexec cmdline -Spawn a shell executing \fIcmdline\fP after showing a message with the command. -.cmd version ( C\-t v ) -Output version and compile time information. -.cmd vsplit [ l\fB/\fR\fIp | "pixels from top" | "\fB\-\fR\fIpixels from bottom" ] ( C\-t s ) -Split the current frame into upper frame and a lower frame. -If no parameter is given, split in halves. -If two numbers separated -by a slash\ ("\fB/\fP") are given, the upper one is \fIl\fP times the \fIp\fPth part -and the lower one (\fIp\fP\-\fIl\fP) times the \fIp\fPth part of the prior height. -Otherwise the lower one is \fIpixels from bottom\fP wide or the upper one -\fIpixels from top\fP high, depending whether there is a \fB\-\fP in front of -the number or not. -.cmd warp [ \fBon | \fBoff ] -Select if focusing a window moves the rat cursor to the place it had been last -time this window was focused, or not. -.cmd windows [ format ] ( C\-t w ) -In interactive mode, -show the list of all windows in the current group for -the duration specified by \fBmsgwait\fP -If \fBmsgwait\fP is zero, toggle between indefinitely showing -and not showing. - -The messages are shown in columns or rows depending on the \fBset\fPting -of \fBwinliststyle\fP in the format set by \fBset winfmt\fP. -The following substitutions happen in format: -.br -%a by the application name (resource name), -.br -%c by the resource class, -.br -%f by the frame number, -.br -%g by the gravity of the window, -.br -%h by the height of the window, -.br -%H by the unit to resize the window vertically (height_inc) -.br -%i by the X Window ID, -.br -%p by the process ID, -.br -%l by the last access number, -.br -%M by the string \fBMaxsize\fP, if it specifies a maximum size, -.br -%n by the window number, -.br -%s by window status (\fB*\fP is active window, -\fB+\fP would be chosen by \fBother\fP, \fB\-\fP otherwise) -.br -%S by the screen number -.br -%t by the window name (see \fBset winname\fP), -.br -%T by the string \fBTransient\fP, if it is a transient window -.br -%w by the width of the window -.br -%W by the unit to resize the window horizontally (width_inc) -.br -%x by the xine screen number -and -.br -%% by a single % - -Additionally there can be a positive decimal integer number between the -percent sign and the format string to specify the length this value -should be truncated to if longer. -(For example: \fB%20t\fP) - -In non\-interactive mode, output the list of windows in the current group -line by line. The format string can be overwritten by the optional parameter -\fIformat\fP. -.SH VARIABLES -Ratpoison variables can be shown and set with \fBset\fP. -There are: -.var resizeunit pixels -Set the amount of pixels interactive \fBresize\fPing will add/subtract -in each step. -.br -Default is 5. -.var maxundos number -The maximal amount of step ratpoison can undo with the \fBundo\fP command. -.br -Default is 20. -.var wingravity \fBnw | \fBw | \fBsw | \fBn | \fBc | \fBs | \fBne | \fBe | \fBse -Set the default gravity new normal windows will get. -Possible values are the same as in the \fBgravity\fP command, which changes -the gravity of an existing window: cardinal points or numbers 1 to 9. -.br -Default is \fBnorthwest\fP. -.var maxsizegravity \fBnw | \fBw | \fBsw | \fBn | \fBc | \fBs | \fBne | \fBe | \fBse -Set the default gravity new self\-maximized windows will get. -Possible values are the same as in the \fBgravity\fP command, which changes -the gravity of an existing window: cardinal points or numbers 1 to 9. -.br -Default is \fBcenter\fP. -.var transgravity \fBnw | \fBw | \fBsw | \fBn | \fBc | \fBs | \fBne | \fBe | \fBse -Set the default gravity new transient windows will get. -Possible values are the same as in the \fBgravity\fP command, which changes -the gravity of an existing window: cardinal points or numbers 1 to 9. -.br -Default is \fBcenter\fP. -.var bargravity \fBnw | \fBw | \fBsw | \fBn | \fBc | \fBs | \fBne | \fBe | \fBse -Select the location where message and prompt bars appear. -.br -Default is \fBnortheast\fP. -.var font font -Make ratpoison use font \fIfont\fP. -.var padding left top right bottom -Set how much space at the borders of the screen will not be used. -.br -Default is 0 0 0 0. -.var border pixels -Selects how thick the frame around windows is. -.br -Default is 1. -.var barborder pixels -Selects how thick the frame around ratpoison's prompt or message windows is. -.br -Default is 1. -.var inputwidth pixels -Determine the width of the input window. -.br -Default is 200. -.var barinpadding \fB0 | \fB1 -If there is padding, determines whether the bar appears at the edge of the -screen (\fB1\fP) or at the edge of the window area (\fB0\fP). -.br -Default is 0. -.var topkmap kmap -Make \fIkmap\fP the top keymap ratpoison grabs directly. -The default value is \fBtop\fP. -.var waitcursor \fB0 | \fB1 -Determine whether to change the rat cursor when waiting for a key -(\fB1\fP) or not (\fB0\fP). -(see \fBreadkey\fP and \fBdescribekey\fP). -.br -Default is 1. -.var winfmt format -Choose the default format for the the \fBwindows\fP command. -.br -Default is %n%s%t. -.var winname \fBtitle | \fBname | \fBclass -Choose what is considered the "name" of the window by ratpoison: -.ta 7 -\fBtitle\fP The title of the window. -.br -\fBname\fP The resource name of the window. -.br -\fBclass\fP The resource class i.e. the name of the application. -.br -Default is \fBtitle\fP. -.var fgcolor color -The foreground color of the windows ratpoison creates. -.br -Default is black. -.var bgcolor color -The background color of the windows ratpoison creates. -.br -Default is white. -.var fwcolor color -The border color of the focused window. -.br -Default is black. -.var bwcolor color -The border color of unfocused windows. -.br -Default is black. -.var barpadding x y -Set horizontal padding of ratpoison windows to \fIx\fP and vertical -padding to \fIy\fP. -.br -Default is 4 0 -.var winliststyle \fBrow | \fBcolumn -Determines whether windows are shown in \fBrow\fPs or in \fBcolumn\fPs. -.br -Default is column. -.var framesels selectors -Override the frame selectors \fBfselect\fP uses. -The first character is the selector for the first frame, -the second character is the selector for the second frame and so on. - -Using this variable, one can directly access more than 10 frames. - -Default is an empty string, which is equivalent to "0123456789". -.var historysize number -Specify maximum number of values kept in input history. - -Default is 20. -.var historycompaction \fB0 | \fB1 -Decide if new input lines added to history delete -older equal lines from history. - -Default is 1 (on). -.var historyexpansion \fB0 | \fB1 -Decide if history expansion using ! is available. -(Can only be activated when compiled with readline's libhistory.) - -Default is 0 (off). -.SH AUTHOR -Upstream Author is Shawn Betts <sabetts@gmail.com>. -.br -See /usr/share/doc/ratpoison/AUTHORS for other contributors. -.P -This manual page was written by Bernhard R. Link <brlink@debian.org>. diff --git a/doc/ratpoison.texi b/doc/ratpoison.texi deleted file mode 100644 index 7b9ce78..0000000 --- a/doc/ratpoison.texi +++ /dev/null @@ -1,1895 +0,0 @@ -\input texinfo @c -*-texinfo-*- -@c %**start of header -@setfilename ratpoison.info -@include version.texi -@settitle Ratpoison @value{VERSION} manual -@c %**end of header - -@dircategory X11 -@direntry -* ratpoison: (ratpoison). Say good-bye to the rodent -@end direntry - -@copying -Copyright @copyright{} 2000, 2001, 2002, 2003, 2004, 2005, 2006 Shawn Betts - -@quotation -The ratpoison user manual is free documentation; permission is granted to -copy, distribute and/or modify this document under the terms of either: - -a) the GNU General Public License as published by the Free Software -Foundation; either version 2 of the License, or (at your option) -any later version, or - -b) the GNU Free Documentation License, version 1.2 or any later -version published by the Free Software Foundation; with no -Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. - -The ratpoison manual is distributed in the hope that it will be -useful, but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -General Public License or GNU Free Documentation License for more -details. - -A copy of the FDL is included in the section entitled -@ref{GNU Free Documentation License}. -You should have received a copy of the GNU General Public License -along with this software; see the file COPYING. If not, write to -the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, -MA 02110-1301, USA. - -If you choose to allow use of your version of this content only under the -terms of one of the licenses, indicate your decision by deleting the notice -of the other license. If you do not delete any of those, a recipient may use -your version of this file unter the terms of either the GNU FDL or the GNU GPL. -@end quotation -@end copying - -@titlepage -@title The ratpoison user manual -@author Shawn Betts - -@page -@vskip 0pt plus 1filll -@insertcopying -@end titlepage - -@ifnottex -@node Top -@top Ratpoison - -This document explains how to use ratpoison @value{VERSION}. - -@insertcopying -@end ifnottex - -@contents - -@menu -* About:: What Is Ratpoison? -* Contacting:: How Do I Contact The Ratpoison Developers? -* Concepts:: Window Manipulation Concepts -* General Use:: How Does This Thing Work?? -* Windows:: Navigating The Windows -* Groups:: Grouping Windows Together -* Frames:: Dividing The Screen -* Multiple Monitors:: What To Do With All Your Computer Junk -* Keystrokes:: Key Commands And Functionality -* Hooks:: Attaching Scripts To Ratpoison Events -* The Status Bar:: Ratpoison's Input/Output Area -* Using Other Window Managers:: Return To Evil -* Other Commands:: Miscellaneous Commands -* Input:: Typing Text Into Ratpoison -* Command Line Arguments:: ratpoison Command-Line Actions -* Startup file:: They Threatened Me...With Violence! -* GNU Free Documentation License:: -* Command Index:: Index - -@detailmenu - --- The Detailed Node Listing --- - -Windows - -* Manipulating Windows:: -* Window Classes:: -* Unmanaged Windows:: -* Rudeness:: - -Frames - -* Splitting Frames:: -* Resizing Frames:: -* Frame Navigation Commands:: -* Saving and Restoring Frame Sets:: -* Frame Numbering:: -* Dedicated Frames:: - -Keystrokes - -* Key Maps:: -* Default Key Bindings:: - -@end detailmenu -@end menu - -@node About, Contacting, Top, Top -@chapter About - -ratpoison is a simple Window Manager with no fat library dependencies, -no fancy graphics, no window decorations, and no rodent dependence. It -is largely modeled after GNU Screen which has done wonders in the -virtual terminal market. - -All interaction with the window manager is done through -keystrokes. ratpoison has a prefix map to minimize the key clobbering -that cripples Emacs and other quality pieces of software. - -ratpoison was written by Shawn Betts (@email{sabetts@@gmail.com}). - -@node Contacting -@chapter Contacting -ratpoison is hosted on @url{http://savannah.nongnu.org}. To see the latest -developments in ratpoison go to -@url{http://savannah.nongnu.org/projects/ratpoison} or visit the -ratpoison webpage at @url{http://www.nongnu.org/ratpoison}. - -There is also a ratpoison mailing list: -@email{ratpoison-devel@@nongnu.org}. For details on subscribing -and for the list archives go to the ratpoison Savannah project. - -There is a @url{irc://irc.freenode.net/#ratpoison, #ratpoison} IRC -channel on the @url{http://freenode/, Freenode} network. - -@node Concepts -@chapter Concepts - -ratpoison uses the concept of @dfn{panes} to place and size -windows. Instead of allowing windows to have arbitary shapes at -arbitary locations on the screen, the display is divided into panes, -the same way a physical window might contain several pieces of glass -seperated by wood. In ratpoison, the panes are called @dfn{frames}, -and windows are placed in them, maximised. ratpoison starts with one -frame, which can be split into an arbitary number of smaller -ones. Each frame can be split in half either horizontally or -vertically. You can move among them, making different ones the -current. For more information, see @ref{Splitting Frames}. - -Each frame has at most one window associated with it, which is visible -in that frame. If you select a window that is associated with a frame, -the focus will move to its associated frame, rather than moving the -window to the current frame. If you select a window that is not -associated with a frame, that window will be opened in the current -frame and resized to fit that frame. - -If the window associated with a frame does not fill the frame -completely, the various gravity commands control how it is placed. - -If no window was open in that frame before the current window was -opened, the X root will be visible behind it. - -Transient windows (dialog boxes, splash screens, and the like) are -handled specially. In order to understand the contents of a transient -window, the previously focused window is often required. Take a search -window, it is useful to be able to see the document you are searching -as well as the search window. For this reason transient windows appear -overtop (according to their gravity) of the previously focused window. - -Every window belongs in a group. A group is simply that: a group of -windows. By default there is only one group (the @dfn{default group}) -that all windows exist in. You can create new groups. When a program -creates a window it will be added to the current group. Groups are -generally used to organize windows into different classes such as work -and wasting-time-at-work. - -@node General Use -@chapter General Use - -When ratpoison starts you should see an empty X server. To open an x -terminal hit @kbd{C-t c}. You can now run shell commands as you would on -any terminal. Notice the terminal maximized full screen. @kbd{C-t !} -will run a single shell command and saves you the effort of opening a -terminal. - -Once you have a couple X programs running, you'll want to navigate -between windows. To see what windows are being managed hit @kbd{C-t -w}. Each window has a number. You can jump to a window by hitting -@kbd{C-t} followed by the window's number. This assumes the the window's -number is one digit. You can also switch to a window by typing in part -of its name. To do this hit @kbd{C-t '}. - -ratpoison allows you to cycle through the windows with @kbd{C-t n} -and @kbd{C-t p}. - -And That concludes a brief introduction on how to use ratpoison. Notice -how we didn't have to drag a single window, or click a single maximize -button? Beautiful wasn't it? Felt fast? Cool? It's modern computing at -its best. - -@node Windows -@chapter Windows - -Windows are what ratpoison manages. - -@menu -* Manipulating Windows:: -* Window Classes:: -* Unmanaged Windows:: -* Rudeness:: -@end menu - -@node Manipulating Windows -@section Manipulating Windows - -The following are commands used to manipulate windows. - -@deffn Command select @var{n} -This jumps you to window @var{n} where @var{n} is the window number as -shown in the Program Bar. You can do the same trick with -@kbd{C-@var{n}} too. To select no window, blanking the current -frame, type @samp{select -}. -@end deffn - -@deffn Command select @var{window-name} -Go to a window by name. A shortcut is @kbd{C-t '}. -@end deffn - -@deffn Command windows @var{fmt} -This displays the Program Bar which displays the windows you currently -have running. The number before each window name is used to jump to -that window. You can do this by typing @kbd{C-t @var{n}} where @var{n} -is the number of the window. Note that only windows with numbers from -0 to 9 can be referenced using this keystroke. To reach windows with -numbers greater than 9, use @kbd{C-t '} and type the number at the -prompt. - -After 5 seconds the Program Bar disappears. - -This command is bound to @kbd{C-t w} by default. - -When invoked from the command-line like this, - -@example -$ ratpoison -c windows -@end example - -Instead of a message bar, you will get a list of the windows printed -to stdout. This allows you to write more advanced scripts than simple -keyboard macros. This is where @var{fmt} comes into play. If -@command{windows} is given an argument it treats it as the format string as -described in @command{set winfmt}. -@end deffn - -@deffn Command title @var{title} -Rename the currently active window. This name will remain for the -duration of the window's life, unless you change it again. By default, -the @kbd{C-t A} keystroke is bound to this command. -@end deffn - -@deffn Command other -This toggles between the current window and the last window. By -default, this is bound to @kbd{C-t C-t}. -@end deffn - -@deffn Command prev -This jumps you to the previous window in the window list. By default, -this is bound to @kbd{C-t p}. -@end deffn - -@deffn Command next -This jumps you to the next window in the window list. This one is -bound to three keystrokes, namely @kbd{C-t n}, @kbd{C-t space}, -and @kbd{C-t enter}. -@end deffn - -@deffn Command kill -This destroys the current window. Normally you should only need to -use @command{delete}, but just in case you need to rip the heart out of a -misbehaving window this command should do the trick. Also available as -@kbd{C-t K}. -@end deffn - - -@deffn Command info @var{fmt} -Display information about the current window. At optional @var{fmt} -argument can be passed to override the default format. @command{info} -accepts the same format options as @command{windows}. - -@end deffn - -@deffn Command gravity @var{g} -Change the gravity of the current window. A normal window will default -to the top-left corner of the screen, but it can also be placed at the -bottom-right corner of the screen. Valid values for @var{g} are the 8 -directions @samp{northwest}, @samp{north}, @samp{northeast}, -@samp{east}, @samp{southeast}, @samp{south}, @samp{southwest} and -@samp{west}, clockwise from the top left corner. @samp{center} will -center the window in the frame. @var{g} and can be abbreviated to the -standard compass 1 and 2 letter abbreviations (i.e. @samp{nw}, -@samp{s}, etc). - -When called with no arguments, the current setting is -returned. -@end deffn - -@deffn Command delete -This deletes the current window. You can access it with the @kbd{C-t k} -keystroke. -@end deffn - -@deffn Command {set infofmt} @var{fmt} -Set the default window format for the @command{info} command. See -@command{set winfmt} for accepted format characters. -@end deffn - -@deffn Command {set winname} @var{name} -@c @deffnx Command defwinname @var{name} -There are three resources ratpoison can get a window's name from: the -WMNAME hint, the res_name from the WMCLASS hint, or the res_class from -the WMCLASS hint. @var{name} can be @samp{title} which is what most -window managers put in the title bar, @samp{name} which is the -res_name, or @samp{class} which is the res_class. - -When called with no arguments, the current setting is returned. -@end deffn - -@deffn Command {set wingravity} @var{g} -@c @deffnx Command defwingravity @var{g} -Set the default gravity for normal windows. See the -@command{gravity} command. - -When called with no arguments, the current setting is returned. -@end deffn - -@deffn Command {set winliststyle} @var{setting} -@c @deffnx Command defwinliststyle @var{setting} -The window list can be displayed in a row or a column. @var{setting} -can be @samp{row} or @samp{column}. -@end deffn - -@deffn Command {set winfmt} @var{fmt} -@c @deffnx Command defwinfmt @var{fmt} -Set the default window format for the @command{windows} command. By -default it is @samp{%n%s%t}. The following is a list of valid format -characters: - -@table @samp -@item %a -Application Name -@item %c -Resource Class -@item %f -The frame number the window is displayed in or a space if it is not in -a frame. -@item %g -The window's gravity setting -@item %h -The window's height -@item %H -The window's height increment hint. -@item %i -X11 Window ID -@item %l -A unique number based on when the window was last accessed. The higher -the number, the more recently it was accessed. -@item %n -The window number -@item %p -Process ID ('?' if _NET_WM_PID isn't set) -@item %s -Window status (current window, last window, etc) -@item %S -The window's screen -@item %t -Window Name -@item %T -Whether the window is a transient or not. -@item %M -Whether the window is a maxsize window or not. -@item %w -The window's width -@item %W -The window's width increment hint -@item %x -the window's xinerama screen -@end table - -Additionally there can be a number between the percent sign and the format -character, denoting a maximum length this value is to truncate to, e.g. @samp{%n%s%20t}. - -When called with no arguments, the current setting is -returned. -@end deffn - -@deffn Command number @var{n} @var{target} -Set a window's number to @var{n}. If another window occupies the -requested number already, then the windows' numbers are swapped. - -The second argument, @var{target}, is optional. It should be the -number of the window whose number will be changed. If @var{target} is -omitted ratpoison defaults to the current window. -@end deffn - -@deffn Command {set transgravity} @var{g} -@c @deffnx Command deftransgravity @var{g} -Set the default alignment for transient windows. See the -@command{gravity} command. - -When called with no arguments, the current setting is -returned. -@end deffn - -@deffn Command {set maxsizegravity} @var{g} -@c @deffnx Command defmaxsizegravity @var{g} -Set the default alignment for windows with maxsize hints. See the -@command{gravity} command. - -When called with no arguments, the current setting is -returned. -@end deffn - -@deffn Command {set border} @var{n} -@c @deffnx Command defborder @var{n} -Set the border width for all windows. - -When called with no arguments, the current setting is -returned. -@end deffn - -@node Window Classes -@section Window Classes - -Window classes are a way of grouping windows together. Windows that -are part of the same program generally have the same class. Ratpoison -takes advantage of this to help you navigate between windows of the -same class. This is useful if you only want to cycle through Emacs -frames or XTerms. - -@deffn Command inext -Go to the next window in the window list that is in the same class as -the current window. -@end deffn - -@deffn Command iprev -Go to the previous window in the window list that is in the same class -as the current window. -@end deffn - -@deffn Command iother -Go to the last accessed window that is in the same class as the -current window. -@end deffn - -@deffn Command cnext -Go to the next window in the window list that is in a different class -from the current window. -@end deffn - -@deffn Command cprev -Go to the previous window in the window list that is in a different -class from the current window. -@end deffn - -@deffn Command cother -Go to the last accessed window that is in a different class from the -current window. -@end deffn - -@node Unmanaged Windows -@section Unmanaged Windows - -ratpoison can intentionally not manage windows. ratpoison keeps a list -of strings and if any new window's name matches a string in the list, -then it will not be picked up and managed by ratpoison. - -The following are commands to manipulate this list - - -@deffn Command clrunmanaged -Clear the unmanaged window list. -@end deffn - -@deffn Command unmanage @var{text} -Add @var{text} to the unmanaged window list. Any window whose name -matches any of the strings in the unmanaged window list will not be -handled in any way by ratpoison. This only applies to new windows (not -windows already managed by ratpoison). - -When called with no arguments, the list is returned. -@end deffn - -@node Rudeness -@section Rudeness - -Some programs will attempt to steal the focus without the users -permission. Not only is this a sign of a lame programmers attempt to fix -a window manager problem in the wrong place, it's just plain rude. By -default ratpoison will honour these rudeness requests, but it doesn't -have to. Use the @command{rudeness} command to deal with such programs. - -@deffn Command rudeness @var{n} -The rudeness command lets you decide what windows pop-up automatically -and when. This is often useful for those deep hack sessions when you -absolutely can't be disturbed. - -There are two kinds of windows: normal windows (like an xterm) and -transient windows (generally pop-up dialog boxes). When a client -program wants to display a new window it makes a requests to -ratpoison. ratpoison then decides whether to grant the request and -display the window or ignore it. A client program can also request -that one of its windows be raised. You can customize ratpoison to -either honour these requests (the default operation) or ignore them. - -@var{n} is a number from 0 to 15. Each of the four bits determine -which requests ratpoison grants. - -@table @asis -@item Bit 0 -Tells ratpoison to grant raise requests on transient windows - -@item Bit 1 -Tells ratpoison to grant raise requests on normal windows - -@item Bit 2 -Tells ratpoison to grant display requests on new transient windows - -@item Bit 3 -Tells ratpoison to grant display requests on new normal windows -@end table - -For example, if you wanted only wanted to grant transient windows -raise requests and display requests you would type @samp{rudeness -5}. If a request is not granted ratpoison will tell you about the -request with a message like @samp{Raise request from window 1 -(emacs)}. - -When called with no arguments, the current setting is -returned. -@end deffn - -@node Groups -@chapter Groups -ratpoison provides functionality to group windows together. This -coupled with saving and restoring frames configurations is what most -people would call @dfn{virtual desktops} or @dfn{workspaces}. - -While ratpoison doesn't explicitly provide support for such things, it -does allow you to write scripts to this end. Such a script exists in -@file{contrib/} called @file{rpws}. Consult that file for details on -setting up workspaces inside ratpoison. - -Groups are more general purpose than workspaces. windows from one -group can be visible along with windows from another group. If you -switch to a different group nothing changes except the list of windows -you can cycle through. ratpoison allows the user to move a window from -one group to another, merge two groups, create new groups, and delete -existing ones. - -The following is a list of of commands used for manipulating groups. - -@deffn Command gnew @var{name} -Create a new group with the name @var{name}. @var{name} is -optional. The new group becomes the current group. -@end deffn - -@deffn Command gnewbg @var{name} -This is the same as @command{gnew} except that the current group does -not change. -@end deffn - -@deffn Command groups -Display a list of groups with a similar format to @command{windows}. -@end deffn - -@deffn Command gmove @var{group} -Move the current window to @var{group}. -@end deffn - -@deffn Command gnext -Go to the next group in the list. -@end deffn - -@deffn Command gother -Go to the last accessed group. -@end deffn - -@deffn Command gprev -Go to the previous group in the list. -@end deffn - -@deffn Command grename -Rename current group. -@end deffn - -@deffn Command gnumber @var{GROUP} @var{target} -Set a group's number to @var{GROUP}. If another group occupies the -requested number already, then the groups' numbers are swapped. - -The second argument, @var{target}, is optional. It should be the -number of the group whose number will be changed. If @var{target} is -omitted ratpoison defaults to the current group. -@end deffn - -@deffn Command gselect @var{group} -Select a particular group by name or number. If @var{group} is not -provided, ratpoison will interactively prompt for the group. -@end deffn - -@deffn Command gmerge @var{group} -Merge @var{group} with the current group. All windows in @var{group} -will be moved to the current group. @var{group} is not deleted. -@end deffn - -@deffn Command gdelete @var{group} -Delete a group. @var{group} is optional. If it is not specified -ratpoison will attempt to delete the current group. Only empty groups -can be deleted. To empty a group see @command{gmerge}. -@end deffn - -@node Frames -@chapter Frames -Sometimes you may want to see two or more windows at the same -time. ratpoison allows you to split the display into frames (see -@ref{Concepts}). Each frame can then contain 1 window. - -@menu -* Splitting Frames:: -* Resizing Frames:: -* Frame Navigation Commands:: -* Saving and Restoring Frame Sets:: -* Frame Numbering:: -* Dedicated Frames:: -@end menu - -@node Splitting Frames -@section Splitting Frames - -To split the -current frame horizontally use @kbd{C-t s}. To split the current frame -vertically use @kbd{C-t S}. If you have enough windows, you'll notice -that the new frame will find a window for itself. You can now use the -normal navigation commands to switch windows in the frame. Note, -however, that if you switch by name or number to a window that is -already in another frame, you'll switch to that frame. - -Before too long, you'll probably want to switch to another frame. Use -@kbd{C-t tab} to cycle through the frames. If you want to remove a -frame use @kbd{C-t R}. ratpoison automatically adjusts the size of the -other frames to take up the free space. Unfortunately ratpoison may -not always fill it in the way you might like it to. - -Finally, when you've had enough of the splitting and you just want -good ol' full screen ratpoison press @kbd{C-t Q} to remove all splits -and leave you with the current window full screen. - -@deffn Command remove -Kill the current frame. This is a no-op if there is only one frame. -@end deffn - -@deffn Command only -Kill all frames but the current one. -@end deffn - -@deffn Command split @var{n} -@deffnx Command vsplit @var{n} -Split the current frame vertically in two. The last accessed window -not occupying a frame will be the second window. - -@var{n} is either a fraction of the form @code{x/y} or a number. If it -is a fraction then the current frame is resized to that fraction of -its original size and the new frame takes up the remaining space. For -instance, @code{split 1/4} will split the current frame to a quarter -of its original size and the new frame will then be 3/4 of the size of -the original frame. - -If it is a pixel, the original frame is resized to that many -pixels. If @var{n} has a minus sign before it, then the new frame will -shrink by that many pixels. -@end deffn - -@deffn Command hsplit @var{n} -Split the current frame horizontally in two. The last accessed window -not occupying a frame will be the second window. - -@var{n} is either a fraction of the form @code{x/y} or a number. If it -is a fraction then the current frame is resized to that fraction of -its original size and the new frame takes up the remaining space. For -instance, @code{split 1/4} will split the current frame to a quarter -of its original size and the new frame will then be 3/4 of the size of -the original frame. - -If it is a pixel, the original frame is resized to that many -pixels. If @var{n} has a minus sign before it, then the new frame will -shrink by that many pixels. -@end deffn - -@node Resizing Frames -@section Resizing Frames -ratpoison provides a command, @command{resize}, that resizes the -current frame. It is bound to the key @kbd{C-t r} by -default. @command{resize} can be used non-interactively by providing -two arguments: the number of pixels to grow horizontally and the -number to grow vertically. For example, if you wanted to grow the -current window by 10 pixels horizontally and shrink it vertically by -50 you could enter the command: - -@example -resize 10 -50 -@end example - -When resizing interactively, the following keys are used: - -@table @kbd -@item C-p -Grow the frame vertically. -@item C-n -Shrink the frame vertically. -@item C-f -Grow the frame horizontally. -@item C-b -Shrink the frame horizontally. -@item return -Accept the new frame size. -@item C-g -Abort and restore the frame to its original size. -@end table - -The increment size used to resize the frame interactively is -customized with the command @command{set resizeunit}. - -@deffn Command {set resizeunit} @var{pixels} -@c @deffnx Command defresizeunit @var{pixels} -Set the number of pixels a frame will grow or shrink by when being -dynamically resized. - -When called with no arguments, the current setting is returned. -@end deffn - -@deffn Command resize @var{horizontal} @var{vertical} -Resize the current frame by @var{horizontal} pixels horizontally, and -@var{vertical} pixels vertically. If no arguments are given and the -command is called interactively, ratpoison will let the user -dynamically resize the frame using @kbd{C-p} to shrink vertically, -@kbd{C-n} to grow vertically, @kbd{C-b} to shrink horizontally, -@kbd{C-f} to grow horizontally, and @kbd{s} to shrink the frame to the -size of the window (See the @command{shrink} command). When you have -resized the frame to your liking, press @kbd{Return} to finish. -@end deffn - -@deffn Command shrink -If a window has resize increment hints, such as xterms, the window may -not be able to take up the whole frame. In this case, use this command -to suck the frame up to the to window, reclaiming any wasted space. -@end deffn - -@node Frame Navigation Commands -@section Frame Navigation Commands - -Here are the commands for Navigating frames. - -@deffn Command fselect @var{n} -Select a frame by number. If an argument is passed to it then attempt -to select the frame whose number is @var{n}. If not, ratpoison will -print a number at the top left corner of each frame and wait for the -user to type the number they wish to select. Currently there is no way -to select a frame whose number is greater than 9 unless the number is -passed as an argument. -@end deffn - -@deffn Command curframe -Indicate which frame is the current frame. -@end deffn - -@deffn Command focus -cycle through ratpoison's frames. -@end deffn - -@deffn Command focusprev -cycle through ratpoison's frames backwards. -@end deffn - -@deffn Command focusdown -Move to the frame below the current frame. -@end deffn - -@deffn Command focuslast -Switch to the last focused frame. -@end deffn - -@deffn Command focusleft -Move to the frame left of the current frame. -@end deffn - -@deffn Command focusright -Move to the frame right of the current frame. -@end deffn - -@deffn Command focusup -Move to the frame above the current frame. -@end deffn - -@node Saving and Restoring Frame Sets -@section Saving and Restoring Frame Sets -ratpoison provides two commands, @command{fdump} and -@command{frestore}, that allow the user to save and restore frame -configurations. Let's say, for example, you have split your desktop -into several frames with some windows in these frames and now you want -to quickly bring Emacs forward and browse some code (full-screen of -course) then return to your funky frame configuration. You could use -@command{fdump} to dump the frames, hit @kbd{C-t Q} to remove all -frames, and then select your emacs window. When you've finished with -emacs you could use @command{frestore} to restore the windows and -frames. - -If a frame contained a window when you dumped the frame layout but -that window is not present when you restore the layout, the frame -holding that window will be blank. - -Calling @command{fdump} and @command{frestore} and copying and pasting -the layout by hand each time is a bit cumbersome. There are some -simple bindings in @file{doc/sample.ratpoisonrc} that allow you to -save and restore frame layouts with the press of a key. - -@deffn Command fdump @var{screen-num} -Dump the current frame layout as text. - -Without an argument the current screen's frames are dumped. With an -argument the @var{screen-num}th screen is dumped. @xref{Multiple Monitors}. -@end deffn - -@deffn Command frestore @var{frames} -Restore the frame layout based on the list of frames -@var{frames}. @var{frames} should be the text that was printed after -calling @code{fdump}. -@end deffn - -@deffn Command undo -Undo the last change of frame layout. This is especially helpful -after a @command{only} command. One can step at most @dfn{maxundos} -steps back in frame layout history. -@end deffn - -@deffn Command redo -redo the last change that was undone. -@end deffn - -@node Frame Numbering -@section Frame Numbering - -Frames are normally numbered starting from 0. But this can be changed -with @command{set framesels} to, for instance, include letters as well. - -@example -set framesels abcdefghijklmnopqrstuvwxyz -@end example - -The above code will bind letters to frames instead of numbers. - -@deffn Command set framesels @var{order} -Tell ratpoison what alphanumeric character to give each frame and in -what order. - -When called with no arguments, the current setting is returned. -@end deffn - -@node Dedicated Frames -@section Dedicated Frames - -A dedicated frame is a frame that will not allow new windows to appear -in it. Only the user may switch windows in this frame. - -@deffn Command dedicate -Toggle whether the current frame is dedicated or not. -@end deffn - -@node Multiple Monitors -@chapter Multiple Monitors -When you've finally accumulated enough computer junk, you'll find -yourself attaching a second monitor to your computer. ratpoison has -functionality to help you get around your new and improved desktop -space. - -The X Windowing System assigns each monitor a screen number. To switch -to another screen use the commands @command{nextscreen} and -@command{prevscreen}. Or, @command{sselect} to jump to a specified -screen. ratpoison will tell you which frame has focus by drawing the -current frame indicator in it. - -Many commands operate only on the current screen. This becomes -apparent when you have 2 screens each with 1 frame. In each frame you -have an xterm. If you try to switch to the other xterm with the -command @command{other}, for instance, you'll get a message ``No other -window.'' ratpoison means there's no other window to switch to in the -current screen. If you want to switch to the other xterm you can -switch to it by name (use @command{select} or @kbd{C-t '}), by number, -or you can use @command{nextscreen}, @command{prevscreen}, and -@command{sselect}. - -@deffn Command nextscreen -This jumps you to the next X11 screen. @command{nextscreen} is -used for dual-head displays and multiple monitor setups. -@end deffn - -@deffn Command prevscreen -This jumps you to the previous X11 screen. @command{prevscreen} is -used for dual-head displays and multiple monitor setups. -@end deffn - -@deffn Command sselect @var{n} -This jumps you to the @var{n}th X11 screen. Screen numbers start at 0. -@end deffn - -@deffn Command sdump -Like fdump, but dump information about each screen instead of each frame. -@end deffn - -@deffn Command sfdump -Dump all the screen number and the frames on all screens. -@end deffn - -@deffn Command sfrestore -restore a frame configuration created using @command{sfdump}. -@end deffn - -@node Keystrokes -@chapter Keystrokes - -Interactive control of ratpoison is done entirely through -keystrokes. This chapter explains how keystrokes are stored and -manipulated. - -ratpoison uses the Emacs style key notation. A combination of -modifiers and one non-modifier key combine to invoke an action. The -syntax is one or more modifiers seperated with dashes followed by a -dash and the non-modifier key name. For instance, holding down -control, shift, and super then pressing the spacebar would be -described as: - -@example -S-C-s-space -@end example - -The following is a list of modifiers ratpoison accepts: - -@table @asis -@item S -Shift modifier -@item C -Control modifier -@item M -Meta modifier -@item A -Alt modifier -@item H -Hyper modifier -@item s -Super modifier -@end table - -ratpoison uses the X11 keysym names for keys. Alphanumeric key names -are exactly what you see on your keyboard. Punctuation and other keys -have longer names which vary from X server to X server. To find the -name of a key, see the @command{describekey} command. Or to find the -name of a key not yet bound to an action, type @kbd{C-t} and then the -key. ratpoison will tell you it isn't bound and give you the name of -the key. - -@menu -* Key Maps:: -* Default Key Bindings:: -@end menu - -@node Key Maps -@section Key Maps - -All keystrokes exist inside a keymap. When you press the prefix key you -are accessing the @samp{root} keymap. By default all commands reside in -the @samp{root} key map and are accessed by pressing @kbd{C-t}. - -There is also a top level key map, @samp{top}. Any keystroke in this key -map can be accessed simply by pressing the key. This is where the prefix -key resides. - -The following example adds a @kbd{C-x b} key binding to switch windows, -much like @kbd{C-x b} in Emacs. See the functions below for full -descriptions. - -@example -# Create the key map -newkmap ctrl-x -# Bind b to 'select' on our new key map -definekey ctrl-x b select -# Attach our keymap to the top level key map via C-x. -definekey top C-x readkey ctrl-x -@end example - -The following functions control creating, editing, and deleting key maps. - -@deffn Command newkmap @var{kmap} -Create a new keymap named @var{kmap}. - -@end deffn - -@deffn Command delkmap @var{kmap} -Delete the keymap, @var{kmap}. -@end deffn - -@deffn Command bind @var{Key} @var{command} -Bind a key to a ratpoison command on the @samp{root} keymap. This -command takes two arguments: the key to bind and the command to -run. For example, to bind @kbd{C-t R} to restart ratpoison: - -@example -bind R restart -@end example -@end deffn - -@deffn Command unbind @var{key} -Unbind a keystroke on the @samp{root} keymap. -@end deffn - -@deffn Command definekey @var{kmap} @var{key} @var{command} -@command{definekey} works exactly like @command{bind} except that it -can bind keys on any key map (not just @samp{root}). -@end deffn - -@deffn Command undefinekey @var{kmap} @var{key} -Like @command{unbind} except that you pass it a key map in @var{kmap}. -@end deffn - -@deffn Command readkey @var{kmap} -Read a key from the keyboard and execute the command associated with -it in the keymap, @var{kmap}. -@end deffn - -@deffn Command link @var{key} -Call the command that @var{key} is bound to. For instance -@command{link C-t} would call the command @command{other} and switch -to the last window. -@end deffn - -@deffn Command describekey @var{keymap} -An interactive way to find the command bound to a given key on the -specified keymap. This command will wait for the user to type a -key. When the user does, the command will display the command bound to -this key. -@end deffn - -@deffn Command {set topkmap} @var{kmap} -Set the top level keymap to @var{kmap}. You might use this to swap -between several common keymappings or to implement modes. -@end deffn - -@node Default Key Bindings -@section Default Key Bindings - -The default keystrokes are listed in this chapter. Not all commands -are accessible by default by keys. - -@table @kbd - -@item C-t C-t -Switch to the last window. - -@item C-t t -Sometimes you need to send a C-t to the current window. This keystroke -does just that. - -@item C-t 0-9 -Switch to the numbered window. - -@item C-t - -Select no window, essentially hiding all windows in the current frame. - -@item C-t A -@item C-t C-A -Rename the current window. The window's new name will prevail for the -rest of its lifetime. - -@item C-t K -@item C-t C-K -Send a DestroyClient event to the current window. This will terminate -the application without question. - -@item C-t n -@item C-t C-n -@item C-t Return -@item C-t C-Return -@item C-t Space -@item C-t C-Space -Go to next window. - -@item C-t p -@item C-t C-p -Go to previous window. - -@item C-t ' -@item C-t C-' -Go to a window by name. You will usually only need to type the first -few characters of the window name. - -@item C-t a -@item C-t C-a -Display the current time of day. - -@item C-t c -@item C-t C-c -Open a new X terminal. - -@item C-t : -This allows you to execute a single ratpoison command. - -@item C-t ! -Run a shell command. - -@item C-t C-! -Run a shell command through an X terminal. - -@item C-t i -@item C-t C-i -Display information about the current window. - -@item C-t k -@item C-t C-k -Close the current window. - -@item C-t l -@item C-t C-l -Redisplay the current window. Sometimes windows don't respond correctly -to the initial maximize event and need some coaxing. This is a fancy way -of saying there are still bugs in ratpoison. @kbd{C-t l} will force the -current window to maximize. - -@item C-t m -@item C-t C-m -Display the last message. - -@item C-t v -@item C-t C-v -Display the version of ratpoison. - -@item C-t V -@item C-t C-V -Display ratpoison's license. - -@item C-t w -@item C-t C-w -Display the list of managed windows. The current window is highlighted. - -@item C-t s -@item C-t C-s -Split the current window horizontally in two. The last accessed window -not occupying a frame will be the second window. - -@item C-t S -@item C-t C-S -Split the current window vertically in two. The last accessed window not -occupying a frame will be the second window. - -@item C-t tab -Cycle through ratpoison's frames. - -@item C-t M-tab -Switch to the last focused frame. - -@item C-t Q -Kill all frames but the current one. - -@item C-t R -Kill the current frame. This is a no-op if there is only one frame. - -@item C-t r -@item C-t C-r -Resize the current frame. - -@item C-t b -@item C-t C-b -Banish the mouse to the lower right corner of the screen. - -@item C-t ? -Display a help screen. - -@item C-t f -@item C-t C-f -select a frame by number. - -@item C-t F -Indicate which frame is the current frame. - -@item C-t Down -Move to the frame below the current frame. - -@item C-t Left -Move to the frame left of the current frame. - -@item C-t Right -Move to the frame right of the current frame. - -@item C-t Up -Move to the frame above the current frame. - -@item C-t C-Down -Exchange the window in the current frame with the window in the frame below it. - -@item C-t C-Left -Exchange the window in the current frame with the window in the frame to the left of it. - -@item C-t C-Right -Exchange the window in the current frame with the window in the frame to the rigth of it. - -@item C-t C-Up -Exchange the window in the current frame with the window in the frame above it. - -@item C-t x -@item C-t C-x -Choose a frame and exchange the window in the current frame with the -window in the chosen frame. - -@end table - -@node Hooks -@chapter Hooks - -One of the goals of ratpoison is to allow users to create exciting -customization to fit their specific needs. Hooks allow a user to latch -scripts onto certain events. - -Each hook contains a list of commands to be executed when the -appropriate event occurs in ratpoison. For example, if you want to warp -the rat to corner of the screen every time you press a top level bound -key, you could add this to you .ratpoisonrc file: - -@example -addhook key banish -@end example - -That should keep the rat out of your way. - -@deffn Command addhook @var{hook} @var{command} -Add a @var{command} to @var{hook}. When the hook is run, @var{command} -will be executed. - -The following hooks are available: - -@table @asis -@item key -Run when a top level key is pressed (by default the only top level key -is the prefix key). -@item switchwin -Run when the user switches to a different window in the current frame. -@item switchframe -Run when the user switches to another frame. This is also run when the -user switches to a different screen, since a frame switch also occurs. -@item switchgroup -Run when the user switches to a different group. -@item deletewindow -Run when a window is deleted. -@item newwindow -Run after a new window is mapped. -@item titlechanged -Run when the current window's title changes. -@item quit -Run when ratpoison exits. -@item restart -Run when ratpoison restarts. -@end table - -@end deffn - -@deffn Command remhook @var{hook} @var{command} -Remove @var{command} from the hook. See @command{addhook} for a list -of available hooks. -@end deffn - -@deffn Command listhook @var{hook} -List the commands that will be run when @var{hook} is fired. -@end deffn - -@node The Status Bar -@chapter The Status Bar - -ratpoison presents status and output through the status bar. By default -it is located in the top right corner of the screen. - -This chapter presents commands for manipulating the status bar. - -Since it is the only visible evidence that ratpoison is running (as -opposed to the invisible evidence including the lack of title bars and -your favorite desktop background) there are also copious visual -customizations available for those rainy days. - -@deffn Command msgwait @var{n} -Set the bar's timeout in seconds. - -When called with no arguments, the current setting is -returned. -@end deffn - -@deffn Command lastmsg -Display the last message. -@end deffn - -@deffn Command echo @var{text} -Display @var{text} as a message. -@end deffn - -@deffn Command {set inputwidth} @var{n} -@c @deffnx Command definputwidth @var{n} -Set the width of the input window. - -When called with no arguments, the current setting is -returned. -@end deffn - -@deffn Command {set font} @var{font} -@c @deffnx Command deffont @var{font} -Set the font. @var{font} is a font string like @samp{9x15bold}. - -When called with no arguments, the current setting is returned. -@end deffn - -@deffn Command {set framefmt} @var{fmt} -Set the text that appears when the @command{curframe} command is -called. @var{fmt} is a format string that accepts the same format -characters as @command{set winfmt}. -@end deffn - -@deffn Command {set fgcolor} @var{color} -@c @deffnx Command deffgcolor @var{color} -Set the foreground color for all text ratpoison displays. @var{color} -is any valid X11 color. - -When called with no arguments, the current setting is returned. -@end deffn - -@deffn Command {set bgcolor} @var{color} -@c @deffnx Command defbgcolor @var{color} -Set the background color for all text ratpoison displays. @var{color} -is any valid X11 color. - -When called with no arguments, the current setting is returned. -@end deffn - -@deffn Command {set fwcolor} @var{color} -Set the border color for the focused window. -is any valid X11 color. - -When called with no arguments, the current setting is returned. -@end deffn - -@deffn Command {set bwcolor} @var{color} -Set the border color for unfocused windows. -is any valid X11 color. - -When called with no arguments, the current setting is returned. -@end deffn - -@deffn Command {set barpadding} @var{x} @var{y} -@c @deffnx Command defbarpadding @var{x} @var{y} -Set the horizontal and vertical padding inside the bar. - -When called with no arguments, the current setting is -returned. -@end deffn - -@deffn Command {set bargravity} @var{g} -@c @deffnx Command defbargravity @var{g} -Set the default alignment for the message bar. See the @command{gravity} command. - -When called with no arguments, the current setting is -returned. -@end deffn - - -@deffn Command {set barborder} @var{n} -@c @deffnx Command defbarborder @var{n} -Set the border width for the bar window. - -When called with no arguments, the current setting is returned. -@end deffn - - -@deffn Command {set barinpadding} @var{n} -@c @deffnx Command defbarinpadding @var{n} -Set whether the bar window appears at the edge of the screen when there is -padding -- that is, within the "padding" area -- or whether it appears at the -edge of the window area. "1" represents the former, "0" the latter. See the -@command{set padding} and @command{set bargravity} commands. - -When called with no arguments, the current setting is returned. -@end deffn - - -@node Using Other Window Managers -@chapter Using Other Window Managers - -There are times when a program has been so badly written that it is -virtually impossible to use under ratpoison. Some authors have tailored -their programs to certain window management paradigms so aggressively -that very little can be done. Ratpoison has two commands to help you -through these difficult times: @command{tmpwm} and @command{newwm}. - -These commands should be used sparingly. They were created to allow -users to understand how a poorly designed program is intended to -function so they can build a replacement or patch an existing -alternative's missing functionality. - -According to independant studies, @command{tmpwm} has been used almost -exclusively to verify its correct operation -- like a vintage sports -car: always kept in prime condition and never used. - -@command{tmpwm} and @command{newwm} are provided for boasting and -completeness. - -@deffn Command tmpwm @var{WM} -Gives control over to another window manager and regains control once -it has terminated. @var{WM} is the path to the new window -manager. This command is useful when you want to temporarily take a -look at another window manager, or program under a different window -manager, but you want to come back to ratpoison when you've finished -your investigation. -@end deffn - -@deffn Command newwm @var{window-manager} -This is a bad-bad command. It kills ratpoison and revives that -ugly rodent! Yuck! Avoid! -@end deffn - -@node Other Commands -@chapter Other Commands - -The following is a list of commands that don't fit in any existing -chapters. - -@deffn Command abort -This is a pretty useless command. By default, it is bound to @kbd{C-t -g} and its purpose is to abort the current chain of keystrokes (just -like @kbd{C-g} in @samp{Emacs}). -@end deffn - -@deffn Command alias @var{name} @var{command} -Allows you to name a ratpoison command something else. For -instance, if you frequently open emacs you may want to make an alias -called @samp{emacs} that loads emacs. You would do it like this: - -@example -alias emacs exec emacs -@end example - -An alias is treated exactly like a colon command in that you can call -it from the colon prompt, bind it to a key, and call it -non-interactively with @command{ratpoison -c}. -@end deffn - -@deffn Command banish -Banish the mouse to the lower right corner of the screen. -@end deffn - -@deffn Command banishrel -Banish the rat cursor to the lower right corner of the curren window. -If there isn't a window in the current frame, it banishes the rat cursor -to the lower right corner of the frame. -@end deffn - -@deffn Command chdir -Change the current directory for ratpoison. -@end deffn - -@deffn Command colon @var{command} -Run a ratpoison command. -@end deffn - -@deffn Command compat -Install the now obsolete @samp{def*} commands as aliases to the -corresponding @samp{set *} command. -@end deffn - -@deffn Command {set padding} @var{left} @var{top} @var{right} @var{bottom} -@c @deffnx Command defpadding @var{left} @var{top} @var{right} @var{bottom} -Set the padding around the edge of the screen. - -When called with no arguments, the current setting is returned. -@end deffn - -@deffn Command {set waitcursor} @var{n} -@c @deffnx Command defwaitcursor @var{n} -Set whether the rat cursor should change into a square when waiting -for a key. A non-zero number means change the cursor. Zero means don't -change the cursor. - -When called with no arguments, the current setting is returned. -@end deffn - -@deffn Command {set historysize} @var{n} -Set how many lines of history should be recorded. - -When called with no arguments, the current setting is returned. -@end deffn - -@deffn Command {set historcompaction} @var{bool} -Set whether to remove multiple equal lines from history, -even if not adjacent. - -When called with no arguments, the current setting is returned. -@end deffn - -@deffn Command {set historexpansion} @var{bool} -Set whether to expand ! using readline's libhistory in input. - -When called with no arguments, the current setting is returned. -@end deffn - -@deffn Command escape @var{key} -Set the prefix to @var{key}. For example @samp{escape C-b} sets the -prefix key to @key{C-b}. -@end deffn - -@deffn Command exchangedown -Exchange the current frame with the one below it. -@end deffn - -@deffn Command exchangeleft -Exchange the current frame with the one to the left of it. -@end deffn - -@deffn Command exchangeright -Exchange the current frame with the one to the right of it. -@end deffn - -@deffn Command exchangeup -Exchange the current frame with the one above it. -@end deffn - -@deffn Command exec @var{command} -Execute a shell command. By default, @kbd{C-t !} does this. -@end deffn - -@deffn Command execa @var{command} -Execute a shell command but don't record which frame it was executed -from. The client's windows will pop up in whatever frame is current. -@end deffn - -@deffn Command execf @var{frame} @var{command} -Execute a shell command and choose which frame the client's first -window will open in. The client must be netwm compliant for this to -work. -@end deffn - -@deffn Command getenv @var{env} -Display the value of the environment variable, @var{env}. -@end deffn - -@deffn Command getsel -Return the contents of the X11 selection. -@end deffn - -@deffn Command help -Display a help screen that lists all bound keystrokes. -@end deffn - -@deffn Command license -Display ratpoison's license. By default, this is bound to @kbd{C-t V}. -@end deffn - -@deffn Command meta @var{key} -@var{key} is an optional argument. When @var{key} is omitted, send a -@kbd{C-t} to the current window. Otherwise, send the key described by -@var{key} to the current window. Note that some applications by -default ignore the synthetic key that is sent using this command as it -is considered a security hole. xterm is one such application. - -For example, if your @samp{Emacs} window is focused, - -@example -meta M-x -@end example - -Would cause emacs to prompt for an extended command. -@end deffn - -@deffn Command prompt @var{prompt} -This command is only useful when called -non-interactively. @command{prompt} prompts the user for input using -@var{prompt} and returns the input. -@end deffn - -@deffn Command putsel @var{text} -Make text the X11 selection. -@end deffn - -@deffn Command quit -Quit ratpoison. -@end deffn - -@deffn Command ratinfo -Display the x y coordinates of the rat cursor relative to the screen. -@end deffn - -@deffn Command ratrelinfo -Display the x y coordinates of the rat cursor relative to the current window or current frame if no window is focused. -@end deffn - -@deffn Command ratrelwarp @var{x} @var{y} -Warp the rat to the specified location relative to the current rat -position. -@end deffn - -@deffn Command ratwarp @var{x} @var{y} -Warp the rat to the specified absolute location. -@end deffn - -@deffn Command ratclick @var{button} -click the rat. @var{button} is either 1, 2, or 3. @var{button} -defaults to button 1. -@end deffn - -@deffn Command rathold @var{state} @var{button} -click the rat button down if @var{state} is @samp{down} or release the button if @var{state} is @samp{up}. -@end deffn - -@deffn Command redisplay -Extend the current window to the whole size of its current frame and -redisplay it. This can be used to: - -@itemize @bullet -@item redisplay normal windows or bring transient windows to the full size of the frame as only normal windows are maximized by ratpoison. -@item fix xterms that didn't catch ratpoison's initial maximize event. -@end itemize - -@end deffn - -@deffn Command restart -Restart ratpoison. -@end deffn - -@deffn Command set @var{var} @var{value} -Set the value of a ratpoison variable. This command replaces the older -@samp{def*} variable get/set style. - -Here is a list of variables that can be set: - -@itemize @bullet -@item framesels -@item winliststyle -@item barpadding -@item bgcolor -@item fgcolor -@item winname -@item winfmt -@item waitcursor -@item inputwidth -@item barborder -@item border -@item padding -@item font -@item bargravity -@item maxsizegravity -@item transgravity -@item wingravity -@item maxundos -@item resizeunit -@item historysize -@item historycompaction -@item historyexpansion -@end itemize - -@end deffn - -@deffn Command setenv @var{env} @var{value} -Set the environment variable @var{env} to @var{value} -@end deffn - -@deffn Command source @var{file} -Read a text file containing ratpoison commands. -@end deffn - -@deffn Command startup_message @var{state} -Turn on or off the startup_message. This is most useful in your -.ratpoisonrc file. @var{state} can be @code{on} or @code{off}. - -When called with no arguments, the current setting is -returned. -@end deffn - -@deffn Command swap @var{destination-frame} @var{source-frame} -When called interactively prompt for a frame and swap its window with -the window in the current frame. An optional second argument allows -swapping of windows between arbitrary frames. -@end deffn - -@deffn Command time -Show current time in the status bar. -@end deffn - -@deffn Command unalias @var{name} -Remove @var{name} from the list of defined aliases. -@end deffn - -@deffn Command unsetenv @var{env} -Clear the value of the environment variable, @var{env}. -@end deffn - -@deffn Command verbexec @var{command} -Verbosely exec the shell command @var{command}. Raptoison displays a -message saying command was executed. -@end deffn - -@deffn Command version -Print ratpoison version. By default, this is bound to @kbd{C-t v}. -@end deffn - -@deffn Command warp @var{state} -Toggle rat warping. By default ratpoison saves the position of the -rat when leaving a window and when the user returns to the window the -rat's position is restored. This can be counter-intuitive, so you can -toggle it with this command. @var{state} can be @code{on} or @code{off}. -@end deffn - -@node Input -@chapter Input -At various times ratpoison will prompt you for input. Ratpoison sports -a fully featured line editor. The following table lists the keystrokes -and actions: - -@table @key -@item C-g -@itemx escape -abort the command requesting input. - -@item C-f -@itemx right arrow -move forward a character. - -@item C-b -@itemx left arrow -move backward a character. - -@item M-f -move forward a word. - -@item M-b -move backward a word. - -@item C-a -@itemx home -move to the beginning of the line. - -@item C-e -@itemx end -move to the end of the line. - -@item C-d -@itemx delete -delete the character at point. - -@item M-d -delete the word at point. -@item backspace -delete the character before the point. - -@item M-backspace -delete the word before the point. - -@item C-k -delete from the point to the end of the line. - -@item C-u -delete from the point to the beginning of the line. - -@item C-y -Yank the text from the X11 cut buffer. - -@item C-p -@itemx up arrow -Cycle backwards through the history (This command does nothing if -ratpoison was configured with the @code{--disable-history} configure -option). - -@item C-n -@itemx down arrow -Cycle forwards through the history (This command does nothing if -ratpoison was configured with the @code{--disable-history} configure -option). - -@item return -submit the line of text. - -@item tab -complete the text up to the point or if there are several possible -completions, cycle through them. This only works in certain -contexts. Tab completion will complete a shell command, a window name, -a group name, and colon commands in their appropriate context -(i.e. when being asked for a window name). - -@item S-iso-lefttab -This is shift + tab by the way. This does the same as tab, but cycles -backwards through the completions. - -@end table - -All input is stored in the same history list. By default ratpoison has -a history length of 100 entries. This history is saved to the file -@file{~/.ratpoison_history} and is loaded when you start -ratpoison. This means your history sticks between sessions. This -assumes history has not been disabled on compilation. - -@node Command Line Arguments -@chapter Command Line Arguments -ratpoison supports command line arguments to request various actions -when invoking ratpoison. - -@table @code -@item -h, --help -Display this help screen - -@item -v, --version -Display the version - -@item -d, --display -Specify the X display to connect to. - -@item -s, --screen -Specify the screen to use. By default ratpoison runs on all -screens. You can tell it to use just one with this option. - -@item -c, --command -Send ratpoison a colon-command. This allows you to control ratpoison -from the command-line. with the @option{-c} option you can script -ratpoison using any programming language that can spawn a -process. Some commands behave differently when invoked this -way. Currently the only commands that behaves differently are the -@code{windows} command and some def* commands. Instead of displaying -the window list in a message window, it is printed to stdout. The -output can then be captured and used in the ratpoison script. For -instance, this could be used to check whether a program is running and -if it is switch to its window otherwise launch it. - -It should also be noted that multiple @option{-c} options can be used. - -to facilitate writing scripts, the @env{RATPOISON} environment -variable is set to the full path of the ratpoison binary. - -@example -$ ratpoison -c split -c split -@end example - -Here ratpoison would split the current frame twice. - -@item -i, --interactive -Force ratpoison to execute commands in interactive mode. This is used -in conjunction with the @option{-c} option. - -@item -f, --file -Specify an alternate configuration file. @xref{Startup file}. - -@end table - -@node Startup file -@chapter Startup file - -Now you've probably read the web page, and you've no doubt dug up some -old file I forgot about. You're probably wondering, ``say, didn't he say -there was no configuration file to customize?''. Okay, ya got me. But let's -be honest here: ratpoison is so pure and fast-acting, customization is -barely worth the extra effort. In the off chance that you need to make -ratpoison your own, we now support it. - -On startup ratpoison looks for @file{~/.ratpoisonrc} and runs it through -the command parser. If @file{~/.ratpoisonrc} does not exist, ratpoison -tries @file{/etc/ratpoisonrc}. This means any command you can bind a key -to or run at the command prompt (@kbd{C-t :}) you can execute in this rc -file. - -You can also use the @option{-f} option to specify another startup -file, allowing you to switch between different configurations -(@pxref{Command Line Arguments}). - -@node GNU Free Documentation License -@chapter GNU Free Documentation License -@include fdl.texi - -@node Command Index -@unnumbered Command Index - -@printindex fn - -@bye diff --git a/doc/sample.ratpoisonrc b/doc/sample.ratpoisonrc deleted file mode 100644 index 786b576..0000000 --- a/doc/sample.ratpoisonrc +++ /dev/null @@ -1,58 +0,0 @@ -# This is a sample .ratpoisonrc file -# Copyright (C) 2003, 2004 Shawn Betts -# -# Copying and distribution of this file, with or without modification, -# are permitted in any medium without royalty provided the copyright - -# Set the prefix key to that of screen's default -escape C-a - -# Gets rid of that ugly crosshairs default cursor -# and set the background to black -exec xsetroot -solid black -cursor_name left_ptr - -# Emulate screen by starting with a new xterm -exec xterm - -# Bind e to our favorite editor -bind e exec emacs - -# bind s to interactively run a surfraw query on freshmeat -bind s colon exec xterm -e freshmeat - -# bind b (`b' for browse) to interactively ask for an URL to open -bind b colon exec mozilla http://www. - -# Use the name of the program rather than the title in the window list -defwinname name - -# bind M-! to store the current frame layout in slot #1 -bind M-exclam exec ratpoison -c "setenv fs1 `ratpoison -c 'fdump'`" - -#bind M-1 to restore the frame layout in slot #1 -bind M-1 exec ratpoison -c "frestore `ratpoison -c 'getenv fs1'`" - -# Do the same for slot #2 and bind it to M-@ and M-2, respectively. -bind M-at exec ratpoison -c "setenv fs2 `ratpoison -c 'fdump'`" -bind M-2 exec ratpoison -c "frestore `ratpoison -c 'getenv fs2'`" - -# Give ourselves another slot on M-# and M-3, respectively. -bind M-numbersign exec ratpoison -c "setenv fs3 `ratpoison -c 'fdump'`" -bind M-3 exec ratpoison -c "frestore `ratpoison -c 'getenv fs3'`" - -# Here's a hack from John Meacham: - -bind a exec ratpoison -d :0.0 -c "echo `date +'%r - %A %n %D - %B'` `cal | tail -n +2 | sed -e 's/^Su/\n\n Su/' -e 's/.*/ & /' -e \"s/\ $(date +%e)\ /\<$(date +%e)\>/\"`" - -# it produces output like the following in the message window, very handy: -# +-----------------------+ -# |05:05:24 PM - Tuesday | -# | 09/09/03 - September| -# | | -# |Su Mo Tu We Th Fr Sa | -# | 1 2 3 4 5 6 | -# | 7 8< 9>10 11 12 13 | -# |14 15 16 17 18 19 20 | -# |21 22 23 24 25 26 27 | -# |28 29 30 | -# +-----------------------+ |