ratpoison NEWS --- history of user-visible changes. -*- outline -*- Copyright (C) 2000, 2001, 2002, 2003, 2004 Shawn Betts Copyright (C) 2013, 2014, 2017 Jérémie Courrèges-Anglas Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. * Changes since 1.4.9 ** Feature/misc changes *** manpage fixes *** fix how find_frame_left, find_frame_right check for overlap *** always show the frame indicator when switching to a different screen *** fix bogus libhistory usage *** fix for tmpwm and multiple screens *** new 'onlyborder' variable To print borders only when >=2 frames are on screen. *** %42s-style format strings now account for UTF-8 characters ** Packaging changes *** the debian/ subdirectory was removed (outdated) *** a basic regress test has been added * Changes since 1.4.8 ** Incompatible changes *** command `compat' and the various def* compat commands were removed *** `msgwait', `rudeness', `startupmessage', `warp' are now variables The msgwait, rudeness, startup_message and warp commands will stay around for a few releases. Upgrade your config file now! ** Feature/misc changes *** XRandR support ratpoison now uses XRandR to detect screens additions/removals at runtime. The Xinerama support has been removed. *** the focus* commands can be used to navigate across screens *** window completion match by substring, case-insensitive *** new variable `framemsgwait' Timeout (in seconds) for the `Current frame' message window. If set to -1, no message is shown. *** better `select' error handling *** the command `set' with no argument dumps a list of all variables/values *** unknown commands are now logged as warnings to stdout too Should help debugging a config file. *** various cleanups and minor bugfixes ** Packaging changes *** ratpoison now depends on libXrandr instead of libXinerama *** ratpoison doesn't link against libhistory by default any more Use ./configure --enable-history to force the use of said library. *** no ChangeLog file Please use the git repository instead. Savannah offers a web interface. *** no more timestamps in compiled code Should help reproducible builds. * Changes since 1.4.7 This is mostly a bugfix release. ** fix cmd_sfdump with multiple screens Broken since last release, from Joshua Leners. ** respect --enable-history=no From Jeroen Roovers (jer@gentoo). ** fix for sloppy.c The ugly sloppy.c had "a bug". It may be fixed now. ** README improvements From Jeff Abrahamson. * Changes since 1.4.6 ** More fixes and code cleanup. ** UTF-8 editing support in the input bar ** get rid of "XGetWMName failed" spam on stderr Introduced in the previous release, sorry! ** groups can now be renumbered (`gnumber') ** contrib/rpdate.sh, fancy calendar shell script to use instead of `time' ** fix `meta', which was sending garbage and made firefox unusable ** handle errors about missing config files - ratpoison -f missing-config-file -> error - unreadable ~/.ratpoisonrc file -> warning ** respect --sysconfdir for the global ratpoisonrc file Rather than a hardcoded /etc/ratpoisonrc location. ** rpws gains a new `current' command (prints the current workspace) ** new manpage, mdoc(7) formatted ** X socket closed before spawning processes Let's save those precious file descriptors. ** DWIM windows/groups names matching Window and group names are first looked up for exact match; in last resort a fuzzy match is attempted. ** try to cope with unset/empty HOME env. variable ** ratpoison.el is now installed at the proper location ie. in $prefix/share/emacs/site-lisp/ ** ratpoison now restricts permissions on your history file * Changes since 1.4.5 ** *Lots* of reliability fixes in ratpoison itself Please check out the ChangeLog for more details. ** Build process cleanup e.g. detection of getline() was fixed, build is ok with old gcc's (2.95) ** ratpoison -c now reports errors ($? != 0) ** UTF-8 text is now printed correctly Both with and without Xft support. ** contrib/ cleanup Scripts should be more portable, ruby bindings work with newer ruby versions. ** New newwindow and titlechanged hooks ** Functionality was added to rpws It can now move windows to other workspaces; workspaces can be dumped and restored. * Changes since 1.4.4 ** bug fixes to history and xft * Changes since 1.4.3 ** add commands ratinfo, ratrelinfo, banishrel ** add history to input bar when libhistory is not used ** add settings historysize and historycompaction ** new window formatters %p, %M prints the pid of the window and whether its a maxsize window. ** new commands grename, gother ** new bindings C-t N and C-t P bound to nextscreen/prevscreen ** new settings, bwcolor and fwcolor For setting the border color of focused and unfocused windows. ** netwm dialog type windows supported These windows are treated as transients. Some Firefox popup windows are tagged as dialog windows and should now work with ratpoison as expected. ** new format character %M This expands to Maxsize if the window is a maxsize window, nothing if not. ** ratpoison can use xft If xft is found on your system ratpoison will use it unless explicitely told not to using --without-xft. * Changes since 1.4.2 ** key event handling top level key bindings are grabbed "asynchronously" instead of "synchronously." This should eliminate the freezes some people have experienced in previous versions. * Changes since 1.4.1 Just bug fixes. * Changes since 1.4.0 ** set padding affects bar location On OSX the bar and top of each window is hidden by the menu bar. set padding corrects the window problem but not the bar problem. So this change fixes that. ** new set variable framefmt See docs for info. ** new commands swap, exchangeleft, exchangeright, exchangeup, exchangedown See docs for info ** new commands execa and execf See docs for info. ** default font change It is now "-*-fixed-bold-r-normal-*-15-*-*-*-c-*-*-*" which hopefully fixes some i18n issues. ** new command set topkmap See info manual. ** build date in ratpoison -v ** new command sfrestore restores frame configurations for multiple screens. ** support for i18n fonts * Changes since 1.4.0-beta4 ** new parameters in frame dumps :screenh and :screenw specify the size of the screen the frame was on. using these values (when present) ratpoison will scale the frames to fit the new screen size (if different). ** New window format characters See the info file for details. ** info takes optional argument and new infofmt setting the info command takes an optional formatting argument. if no argument is supplied a default fmt is used. To change the default use 'set infofmt'. See the manual for details. ** shell commands do not insert trailing space Until now all completions had a trailing space. Now shell command completion doesn't to make it easier to tab complete directories. The previous behavior one had to delete the space then type / and continue. ** aspect ratio hint honoured windows with aspect ratio hints are treated as transients and are given the same default gravity as maxsize windows. ** new hook deletewindow When a window is deleted this hook is called. ** _net_wm_pid property supported ratpoison will put windows that have the _net_wm_pid property into the frame & group that was current when the windows' client was launched. for example: ratpoison -c split -c gnew -c "exec firefox" -c focus -c gnext will Do The Right Thing. ** set warp change the mouse position relative to the window is now used, instead of relative to the root window. ** new compat command the old def* aliases are depricated and have been moved to this command. Execute it to restore these bindings. ** new command redo ** new editor bindings C-m and C-h * Changes since 1.4.0-beta2 ** meta takes a key argument This can be used to stuff keys. * Changes since 1.4.0-beta1 ** RATPOISON environment variable RATPOISON is set to the location of the ratpoison binary. This is useful for scripts. * Changes since 1.3.0 ** command arguments can be wrapped in double quotes. To include a space in a command argument, wrap the argument with ". ** New command undefinekey not passing a 3rd argument to definekey and bind no longer unbind the key. You must use undefinekey and unbind now. ** ratpoison -c prints errors to stderr You can now capture errors and output seperately depending on whether its printed to stderr or stdout. ** the mouse warp feature is now turned off by default to turn it back on, run 'warp on'. ** version now displays the date and time ** new command, sselect sselect lets you jump to an X11 screen by number. ** configure script warns about missing history lib Rather than error out, now, ratpoison will just be built without history. ** new commands ratwarp, ratrelwarp, and ratclick ** more new commands inext, iprev, iother, cnext, cprev, cother, prompt, dedicate, describekey, focusprev, sdump, sfdump. ** yet two more new commands: putsel, getsel putsel puts the specified text into the X11 selection so other clients can yank it. getsel returns the current selection. * Changes since 1.3.0-rc2-beta2 ** new format option %f This options displays the frame number the window is in or a space if it is not in a window. ** Super modifier changed from S to s. S is now the shift modifier ** window list style is columnar by default * Changes since 1.3.0-rc2-beta1 ** New command 'set' set replaces the def* commands. For example 'defwinliststyle column' is now 'set winliststyle column'. The old def* commands now alias to their 'set' version. * Changes since 1.3.0-rc1 ** Top level keymap The keymap named 'top' is now a top level keymap. No prefix key need be pressed to access its bindings. In fact, the prefix key is now a binding in the 'top' keymap. ** hsplit and vsplit switched To be compatible with emacs these command names have been switched. The bindings are the same but custom scripts and aliases will have to make the switch. ** new command defframesels Allow you to customize the keys used to select frames with fselect. ** Xinerama support Each xinerama screen is handled as X11 screens normally are. The only different is that each xinerama screen can select from all the managed windows. ** focuslast finds the last focused frame among all screens ** fselect selects from frames in all screens ** new command-line option --file Used to specify an alternate configuration file. * Changes since 1.3.0-beta3 ** new configure option --disable-history ** new commands readkey, newkmap, delkmap, definekey These commands operate on the new feature: keymaps. They allow you to have nested keymaps. * Changes since 1.3.0-beta2 ** new command gdelete Delete a group. ** contrib/allwindows.sh script A script that lists all groups and the windows in each group. * Changes since 1.2.2 ** Workspace script rpws is an installed script that adds workspaces to ratpoison. Look at contrib/rpws for instructions on how to use it. ** new commands addhook and remhook There are now hooks for various operations. ** Completions You can now type Tab and get completions on window names, group names, and colon commands. ** Line editing capabilities You can now go forward a word, backward a char, delete a word, etc. ** New commands gnewbg, gselect, groups, gmove, and gmerge These commands allow further manipulation of window groups. ** shell commands return status If a command the user executed (with the exec command) returns with a non-zero exit status, the command and exit status are reported in a message. ** new commands gnew, gnext, gprev Window are now part of groups. There can be more than one group. * Changes since 1.2.0-beta4 ** new commands unmanage and clrunmanaged Instead of editing conf.h you can use these commands to dynamically add (and clear) the unmanaged window list. * Changes since 1.2.0-beta3 ** new command line argumen --screen Now you can specify the screen you want to manage. By default ratpoison manages all screens on the display. ** new command line argument --display Now you can specify the display to connect to. * Changes since 1.2.0-beta2 * Changes since 1.1.1 ** new comand 'defwinliststyle' when turned on, the window list is displayed in a column, not a row. ** new command 'verbexec' prints a message when executing a shell command ** new commands 'fdump' and 'frestore' These commands are for saving and restoring frame sets. ** key presses All actions now occur after the user has released the key. ** keybinding changes fselect is bound to C-t C-f and C-t f, curframe is now bound to C-t F, and resize is bound to C-t C-r and C-t r. ** new command fselect select a frame by its number. ** new command 'tmpwm' temporarily run a different window manager, then come back to ratpoison once it has terminated. ** error and debug reporting The format has been changed to the more standard format used by C compilers. ** New commands 'resize', 'shrink' resize resizes a frame and shrink shrinks a frame to the size of the window in it. ** Shell command exit status When a shell command fails to execute then a message is reported in ratpoison: "Command not found." ** New command 'warp' Toggles 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 now you can toggle it. ** split, vsplit, hsplit These commands now take a single argument. The argument can be a ratio which divides the frame into two frames sized based on this ratio, or it can be a number representing the number of pixels the existing frame will occupy. * Changes since 1.1.0 ** new commands "nextscreen" and "prevscreen" * Changes since 1.0.0 ** defbarloc changed to defbargravity ** defbarloc This command take a gravity argument just like the wingravity commands. ** new command defbarborder This command allows you to customize the border width of ratpoison's windows. These windows are the input window, the bar window, and the current frame indication window. ** "number" command takes additional optional argument The second argument is used to specify a window other than the current. ** new command "alias" An alias gives a name to a command sequence. For instance, you could alias 'emacs' to 'exec emacs'. Then you could simply type 'C-t :emacs' and ratpoison would boot emacs. ** new command "license" Display ratpoison's license. This is also bound to C-t V and C-t C-V. ** input history All input you type into ratpoison is stored as a history entry. Use C-p and C-n to cycle through it. ** new command "defbarpadding" This command specifies how much ratpoison pads the bar window. See the documentation for usage. ** new command "link" Call the command that a keybinding is bound to. for instance, 'link C-t' would call the command 'other'. ** new command "focuslast" Switch between the current frame and the last focused frame. It is bound to C-t M-Tab. ** Raise requests don't change frame focus if rudeness doesn't allow it If a window in another frame requests to be raised, a message pops up just like everywhere else. The old behavior was to jump focus to the windows frame regardless of the rudeness. ** New windows formatting option %l Prints a last access number. The higher the number, the more recently the window was accessed. ** Remove command line options --kill and --restart Use -c quit and -c restart instead. ** New command restart Restart ratpoison. ** New command lastmsg Display the last message. ** New command info display information about the current window. ** New command unsetenv Remove an environment variable from...well...the environment. ** New command chdir Change the current directory. ** Multiple commands passed to ratpoison via the command-line are now processed A stream of commands like, `ratpoison -c next -c prev -c next' are processed in order. ** clock command renamed to time This was to improve screen compatibility. ** New command setenv Use this to set environment variables for all programs run from ratpoison thereafter. ** Command defbartimeout renamed to msgwait This was done to better mirror screen commands. ** Command generate renamed to meta This was done to better mirror screen commands. ** Comand maximize renamed to redisplay This was done to better mirror screen commands. It is no longer bound to C-t m it is now bound to C-t l. ** Cursor in the input window There is now a cheap cursor to help you remember where you are. ** conf.h compile-time customizations moved They are now accessible through the def* suite of commands. ** Window alignment Windows can now be aligned so they stick to the top-left corner of the screen, the center of the screen, the bottom-right, etc. Use the `pos' command. There is a customizable default setting for each of the three 'kinds' of windows: `defwinpos' for normal windows, `deftranspos' for transient windows, and `defmaxsizepos' for normal windows with maximimum size hints. ** Window format string The format of the list of windows dumped by the `windows' command is now customizable with `defwinfmt'. ** Different Window naming schemes Windows now have 3 resources that can be used as their default name: the WMNAME hint which generally contains transient information such as what file is currently open, the res_name from the WMCLASS hint, or the res_class the WMCLASS hint. This affects commands like `select' which search for a window by name. * Changes since 0.1.1 ** new conf.h customization MAXSIZE_WINDOWS_ARE_TRANSIENTS determines whether windows with maxsize hints are treated like transient windows. ** The frame indicator The frame indicator never sticks and only appears when there is more than one frame (i.e. when there are splits). ** Transient window handling has changed Transient windows now map ontop of the current window. ** new command 'rudeness' This command allows you to fine tune what windows rp will map when. For instance you can ask rp not to map new windows. Instead it will notify you with a message: "New window #1 (emacs)". ** user abort key sequence When typing input, hit C-g (customizable in conf.h) to abort the input. ** new key syntax keys are now specified with C-, M-, A-, H-, S- which stand for the control, meta, alt, hyper, and super modifiers. ^ does not denote control. Before, control t looked like ^t now it looks like C-t. ** new command 'help' help brings up a key binding listing. it is bound to C-t ?. ** new command 'quit' This command quits ratpoison ** windows not residing in a frame are hidden This gets rid of annoying flickers around the edges of active windows as windows in the back update. ** rat cursor changes When you hit the prefix key the rat cursor changes to a square to tell you what it is waiting for another key. This feature can be removed in conf.h. ** Split windows Well, the day is finally here. You can now split windows in ratpoison. Hit C-t s to split horizontally and C-t S to split vertically. Have fun! ** new command-line option --command You can now send ratpoison commands (colon-commands) to ratpoison via the command line. for example to tell ratpoison to go to the next window type this: $ ratpoison --command next ** window borders are configurable WINDOW_BORDER_WIDTH has been added to conf.h. This constant determines the border width for all windows. ** Rodent handling A new command, :banish, which will move the rat pointer out of harms way, has been added. It is bound to 'C-t b' by default. No more slapping your rat out of the way, as fun as that was. * Changes since 0.1.0 ** Window list changes A '+' is now drawn between the window number and the window name for the last accessed window. ** AltGr (XK_Mode_switch) support ratpoison now handles AltGr on all its input. * Changes Since 0.0.5 ** C-t e removed Since you can custo your own keystrokes, there's not much sense cluttering things with a binding to launch emacs. ** XErrorEvents don't bring down ratpoison A friendly message pops up displaying the error message. This does mean that there is a problem with ratpoison and it should be investigated and reported. But at least your entire session doesn't go down. ** Sorted window list The window list is now sorted by number. ** Resizing input window The size of the input window can be customized in conf.h by setting INPUT_WINDOW_SIZE. It also dynamically resizes to accommodate the user input. ** Pointer location The pointer location is saved on a per window basis. When ratpoison switches to a window it restores the pointer location to its location the last time that window had focus. ** Auto quit ratpoison When the auto close feature is enabled, ratpoison will exit when the last managed window is closed. This feature can be turned on by uncommenting the line: /* #define AUTO_CLOSE */ in conf.h ** Improved shell command The 'exec' command now calls execl ("/bin/sh", "sh", "-c", cmd, 0) where cmd is your shell command. In short, you can now make shell command calls with parameters. The default keybinding has been changed from C-: to C-! for the 'exec' command. ** Command line An emulation of screen's colon command has been implemented. This allows you to make wm commands by name. The current command set includes: abort, next, prev, exec, select, colon, kill, delete, other, windows, title, clock, maximize, newwm, and version. To bring up a command line prompt, type C-:. See the info or man page for details on the command set and its usage. ** Keysym reading updates keystrokes are now handled far better. Shifted keystrokes work. More uniform key event processing. You can no longer "over modify" keys. Previously, if C-tn was bound to 'next', you could type C-tC-n and get the same result. No longer. You need to explicity map both C-tn and C-tC-n if you want both to work. ** XSizeHints honoured Windows may not maximize fully now since they use XSizeHints to figure out how big the window can be. ** Bold color removed ratpoison now uses only foreground and background colors. They default to black and white, respectively. To represent the current window in the bar, the current window's text is reversed. ** Colormap support ratpoison now maintains colormaps ** New keystrokes *** C-t space and C-t enter Do the same as C-tn (next window) *** C-tA Shows a the time in the display bar *** C-tv Shows the version of ratpoison ** Messages in the window bar ratpoison now outputs user error messages. ** Stability All fixed length buffer sizes in window names that resulted in curious segfaults have been fixed. ** Themes support There is still no theme support, despite what you might have heard. * Changes Singe 0.0.4 ** added --kill and --restart These command line options allow the restarting and killing of a running ratpoison process. ** Mouse jumps to the bottom of the screen on keypresses This is pretty annoying if you're using anything other than keyboard apps. It is disabled by default. * Changes Since 0.0.3 ** Added --enable-debug This turns on debugging messages ** Added --version and --help command line options * Changes Since 0.0.2 ** Installation *** Added automake and autoconf To build and install ratpoison, you must now do this: aclocal automake -a -c autoconf ./configure make make install ** Features *** Added jump to window by name Hit C-t C-' and a box will pop up asking you for the name of the window to jump to. *** Added rename-window hit C-t C-a and a box will pop up asking you to rename the current window. Once it has been renamed, it will stay renamed. ** Bugs and Bug fixes