While StumpWM is no longer just a twinkle in sabett's eye, some users still consider it imperfect.
General
- float-splits, a-la ion3 -- see http://www.theonelab.com/files/float-split.swf for an example of what this is.
- a tab-list showing the contents of the current frame at the top of the frame.
- scrolling text in the modeline for long lines of text that don't fit in their allocated area
- breaking the mode-line into two lines would also work, and is probably simpler to code
- give windows in the window list on the modeline a % of the total length allocated instead of an absolute number.
- Screen's monitor (C-a M) command.
- I don't know how to do this but i'd love to find out. If anyone has any ideas let me know. --Shawn
- Emacs's iswitchb/ido function.
- Pager functionality (e.g. scrolling) in the echo window. For example, the ability to scroll through the (long) output of C-t ?.
- This is partially addressed by adding columns to the C-t ? output.
- Exposé- or Skippy- style window switching (thumbnail images of each window).
- Minor modes!
- Emacs completing-read-multiple function
- It would be nice to have install/uninstall make targets that would also install the info file.
Hackability
- Break out some more files? For example, user.lisp is looking kind of cluttered. Maybe the resizing and menu things could be split out like mode-line?
- commit f394515 broke up user.lisp - it was made 1637 lines shorter :)
Missing Ratpoison Functionality
The following Ratpoison commands are not implemented, or only partially implemented in StumpWM:
- alias
- clrunmanaged
- cnext
- cother #?
- cprev #?
- dedicate #?
- exchangedown
- exchangeleft
- exchangeright
- exchangeup
- execa
- execf
- fdump
- frestore
- inext
- info
- iother
- iprev
- license
- link #probably in stumpwm implicitly?
- newwm
- prompt
- rathold
- redisplay
- redo
- restart
- sdump #not a command; (mapcar 'fdump *screen-list*)?
- set #not a command
- set framefmt
- set infofmt
- set inputwidth
- set resizeunit
- set topkmap
- set waitcursor
- sfdump
- sfrestore
- shrink
- swap
- tmpwm
- unalias
- undo
- unmanage
- verbexec #not a command?
Implemented Suggestions
- Fullscreen support (e.g. for mplayer)
- Emphasize different mode-line items (windows in tho window list, desktops in desktop list) somehow. E.g. define variables *mode-line-window-fg-colors* and *mode-line-desktop-fg-colors* (and the same for background colors) which are lists of color strings. Now the first window name has the colors defined by the first entries of *mode-line-window-fg-colors* and *mode-line-window-bg-colors*, etc. If there are more windows than colors, it simply wraps around.
- Color is now available in all stumpwm text output
- Session management: save and restore groups, frames, etc...
- Xinerama support!
- A variable to control what happens when a new frame is created (pull the current window in it, the last one or maybe something else...)
- Emacs' describe-key (C-h k) function.
- Truncation of window titles in the modeline. Some apps (e.g. firefox) sometimes use very long window titles.
- A variable someone like the clipboard except separate. That one could load the name of the current window into. One could then pull the window out. IE, you are in a frame with emacs, you do C-t somekey to set this variable. Then you go over to another frame, and you do C-t somekey to pull emacs into that frame.
- I want a mode in-which I don't have to press C-t. Like in vi. So in vi I do commands, then press i to get back to editing. I want to have a mode where n and p go to the next window without me having to press C-t before each n and each p.
- This is in CVS. see 'command-mode'. --Shawn
- Similarly, better documentation. Many functions are missing docstrings, and the ones which are documented generally don't give much insight into how to use them usefully.
- stumpwm now has a fairly fleshed out manual. feel free to send improvements. -Shawn
- For example, an article explaining how to convert a .ratpoisonrc, or a script to do it automatically, would be useful
- You can get the manual by(in CVS) doing makeinfo stumpwm.texi(in the stumpwm dir(you may need to do apt-get install texinfo)) then going to emacs and typing C-u C-h i /path/of/stumpwm/stumpwm.info
- A more elaborate example .stumpwmrc; there are already a number of interesting things one can do, but the packaged example is simple and not very helpful, and in some respects is actually broken.
- Tab completion for `colon' and `exec':
- Full Emacs-style buffer movements; for example, M-d and M-b (delete the next word, and delete the previous word, respectively) are missing.
- A ratmenu-like control, to be used by C-t w.
- done in CVS. bound to C-t " like screen.
- A more intuitive resize command: the current one demands explicit parameters; the ratpoison one was more intuitive in that you could simply adjust it 'by eye' so to speak. Also, it seems kind of silly to demand both x and y percentages: that's too general a command for easy use.
- There is an interactive resize command in CVS -Shawn
- It'd be nice to have the ratwarp feature from ratpoison. I find myself missing it sometimes, although it is a fairly minor feature compared to the other ones here.
- Also nice would be a formatter for groups; currently mode-line has "%w", which lists screens, but why not groups as well? They could be bound to "%g" or some similar mnemonic.
- I think this is in CVS now?
- Perhaps a way to paste from within stumpwm? One can currently get the X selection, and change the internal Stumpwm copy, but so far as I know, there is no way to have a function paste a string to a window, or to change the actual X selection. This could be useful for implementing registers - have 5 or as many different selections as you need, each bound to a key.
- See stumpwm:set-x-selection. This is documented in the manual.
- This may just be me, but I think it'd be a good idea if run-or-raise could move between groups - that is, if I have Emacs running in another group, and run-or-raise for Emacs gets executed, I think it'd be a better idea for it to switch to that group and raise the existing Emacs than the current behaivour of running a new Emacs in the original group.
- export all the useful symbols.
Starting StumpWM
I've added a Makefile to stumpwm that generates an executable for either clisp or sbcl. just run `make' and boom, you have an executable. -Shawn
The following still work, of course:
- A lisp script that requires magic in ~/.sbclrc to work. This is currently implemented in CVS in stumpwm.sbcl and README.
- An executable SBCL core dump. Since SBCL core dumps are not portable between architectures or SBCL versions (or even the same SBCL version with different compile-time arguments), it would be better to use...
- ...a shell script that creates an SBCL core dump if necessary, then runs same. This is currently implemented on the StartUp page.
- cl-launch (see http://bugs.debian.org/356948).