Teika kazura (talk | contribs) (Cleanups. New item "command-name completion") |
|||
(6 intermediate revisions by 4 users not shown) | |||
Line 11: | Line 11: | ||
=== Rename-window === |
=== Rename-window === |
||
− | {{Todo-item | * | |
+ | {{Todo-item | ** | |
+ | Current rename-window is wrong in EWMH compliance. Basically, |
||
⚫ | |||
+ | both _NEW_WM_NAME and _NET_WM_VISIBLE_NAME have to be changed, |
||
+ | but the whole story is complicated. |
||
+ | |||
⚫ | |||
}} |
}} |
||
Line 38: | Line 42: | ||
}} |
}} |
||
− | == Sawfish |
+ | == Sawfish 1.9 / 3.0 == |
+ | |||
+ | === Emacs-like prefix argument === |
||
⚫ | |||
+ | Emacs like prefix-argument is available: |
||
+ | Patches are available at [http://mail.gnome.org/archives/sawfish-list/2011-January/msg00050.html this] and [http://mail.gnome.org/archives/sawfish-list/2011-February/msg00032.html this]. |
||
⚫ | |||
=== Command-name completion === |
=== Command-name completion === |
||
Line 70: | Line 80: | ||
=== Window cycling enhancements === |
=== Window cycling enhancements === |
||
⚫ | |||
⚫ | |||
⚫ | |||
See also [[#Tunable pointer warp]], [[#Merge stuff from merlin-ugliness]].}} |
See also [[#Tunable pointer warp]], [[#Merge stuff from merlin-ugliness]].}} |
||
Line 81: | Line 90: | ||
implement modes for grow, pack, shrink and yank ("gpsy"). Adopt [[Focus-by-direction]], too, and make use of it from gpsy. |
implement modes for grow, pack, shrink and yank ("gpsy"). Adopt [[Focus-by-direction]], too, and make use of it from gpsy. |
||
− | The patch is by Christoph Ruegge, posted on 9 Feb |
+ | The patch is by Christoph Ruegge, posted on 9 Feb 2010].}} |
=== Better error messages === |
=== Better error messages === |
||
Line 125: | Line 134: | ||
RandR support to respond to resolution change or montior hot plugging |
RandR support to respond to resolution change or montior hot plugging |
||
is done in 1.6.3.}} |
is done in 1.6.3.}} |
||
− | |||
⚫ | |||
− | |||
⚫ | |||
⚫ | |||
− | |||
− | Currently, variables `tab-left/right-*' are user options. But |
||
− | they should be set from each theme's theme.jl. |
||
⚫ | |||
=== SawfishClient error-messages === |
=== SawfishClient error-messages === |
||
Line 144: | Line 144: | ||
{{Todo-item | * | |
{{Todo-item | * | |
||
2=Vertical and horizontal maximization is reported to have a bug. See [https://bugzilla.gnome.org/show_bug.cgi?id=104591 here].}} |
2=Vertical and horizontal maximization is reported to have a bug. See [https://bugzilla.gnome.org/show_bug.cgi?id=104591 here].}} |
||
− | |||
⚫ | |||
− | {{Todo-item | ** | |
||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
=== Display message enhancements === |
=== Display message enhancements === |
||
Line 173: | Line 166: | ||
=== Merge stuff from sawfish-mmc === |
=== Merge stuff from sawfish-mmc === |
||
{{Todo-item | ** | |
{{Todo-item | ** | |
||
+ | "mmc" fork has nice patches. See [http://gitorious.org/sawfish-mirror] |
||
− | There has been the sawfish-mmc fork by Michal Maruska and he said "I'll extract some reasonable patches" |
||
| Michal Maruska}} |
| Michal Maruska}} |
||
Line 236: | Line 229: | ||
*Compose should be named Compose not Multikey (The validity of this claim is unconfirmed.) |
*Compose should be named Compose not Multikey (The validity of this claim is unconfirmed.) |
||
− | *Detailed documentation is lacking: If you don't have 'meta' key, then 'alt' will be called 'meta'. AltGr is not printed as "AltGr". (Often |
+ | *Detailed documentation is lacking: If you don't have 'meta' key, then 'alt' will be called 'meta'. AltGr is not printed as "AltGr". (Often as "Mod5", but this is machine dependent.) |
+ | |||
− | as "Mod5", but this is machine dependent.) |
||
+ | * Some keys can't be bound, due to lacking support of XKB. Do 'xmodmap -pk', and if the key you need is reported to be "NoSymbol", it can't be used. |
||
Rejected (by [[User:Teika kazura|Teika kazura]]) todos: |
Rejected (by [[User:Teika kazura|Teika kazura]]) todos: |
||
* Modifier name translation. For example, alt is treated as meta, and AltGr as mod5. Some people want to rename. |
* Modifier name translation. For example, alt is treated as meta, and AltGr as mod5. Some people want to rename. |
||
− | * It's reported that some keys can't be bound to commands. For example, '''°''' key. But this is not reproducible. Probably the shift level ignorance problem described above is the case. |
||
| 3=[[User:Teika kazura|Teika kazura]] (For group switching) |
| 3=[[User:Teika kazura|Teika kazura]] (For group switching) |
||
}} |
}} |
||
− | |||
⚫ | |||
=== Icon & Dockapp === |
=== Icon & Dockapp === |
||
Line 257: | Line 248: | ||
Icon enhancement is also proposed [http://mail.gnome.org/archives/sawfish-list/2010-February/msg00001.html here] |
Icon enhancement is also proposed [http://mail.gnome.org/archives/sawfish-list/2010-February/msg00001.html here] |
||
|3=Alexey Froloff }} |
|3=Alexey Froloff }} |
||
+ | |||
⚫ | |||
+ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
=== replace deprecated GTK+ Widgets === |
=== replace deprecated GTK+ Widgets === |
||
Line 267: | Line 267: | ||
== Done == |
== Done == |
||
⚫ | |||
+ | |||
⚫ | |||
⚫ | |||
⚫ | |||
+ | |||
=== Focus or exec script === |
=== Focus or exec script === |
||
{{Todo-item | ** | |
{{Todo-item | ** | |
||
Line 293: | Line 299: | ||
Show the Sawfish pager only when the viewport or the workspace is |
Show the Sawfish pager only when the viewport or the workspace is |
||
changed.}} |
changed.}} |
||
− | |||
− | === Rename-window === |
||
⚫ | |||
− | Function `rename-window' changes the name of the window |
||
− | and its _NEW_WM_NAME. But instead _NET_WM_VISIBLE_NAME should be changed. |
||
⚫ | |||
=== Restart Maximized === |
=== Restart Maximized === |
Latest revision as of 07:56, 22 December 2011
Development quick access |
|
This page contains possible Goals for the next Sawfish version.
See also long term todos, latest git news, and Achieved goals
You can record an issue on your own, by putting your name. By default, items are proposed by User:Flashrider.
Key: * easy -- ** medium -- *** difficult
Open Bugs[]
Rename-window[]
Description |
Current rename-window is wrong in EWMH compliance. Basically, both _NEW_WM_NAME and _NET_WM_VISIBLE_NAME have to be changed, but the whole story is complicated. For the details, read this. | ||
---|---|---|---|
Assigned to | None | ||
Patch | |||
Status | NEW/PENDING | Difficulty | ** |
Warp-Cursor[]
Description | Bugfix: warp-cursor command
(problem with OO.o transients) | ||
---|---|---|---|
Assigned to | None | ||
Patch | |||
Status | NEW/PENDING | Difficulty | ** |
Illegal override of the geometry[]
Description |
If you specify the geometry of a window from the command line, and at the same time from the "Matched window", then the latter is taken. This is wrong. | ||
---|---|---|---|
Assigned to | None | ||
Patch | |||
Status | NEW/PENDING | Difficulty | * |
Prompt utf-8[]
Description |
The prompt feature can't handle non-ascii characters correctly, in printing and editing. All you have to do is to consider multibyte-ness in lisp/sawfish/wm/util/prompt.jl, | ||
---|---|---|---|
Assigned to | None | ||
Patch | |||
Status | NEW/PENDING | Difficulty | * |
Focus bug[]
Description |
There're (at least) two focus related bugs. Read this. | ||
---|---|---|---|
Assigned to | None | ||
Patch | |||
Status | NEW/PENDING | Difficulty | *** |
Sawfish 1.9 / 3.0[]
Emacs-like prefix argument[]
Description |
Emacs like prefix-argument is available: Patches are available at this and this. | ||
---|---|---|---|
Assigned to | None | ||
Patch | |||
Status | NEW/PENDING | Difficulty | * |
Command-name completion[]
Description |
Using "report-commands" function (new in Nov 2010), offer interactive completion for "call-command". | ||
---|---|---|---|
Assigned to | None | ||
Patch | |||
Status | NEW/PENDING | Difficulty | * |
Don't focus windows whose parent is invisible[]
Description |
When 'focus-window-when-mapped' is t, then the window whose parent is invisible (e.g. in another viewport) gets focused, too, but this is sometimes bad. Provide a new option to change it. | ||
---|---|---|---|
Assigned to | None | ||
Patch | |||
Status | NEW/PENDING | Difficulty | * |
Wrong key definition tolerance[]
Description |
When a wrong key definition is there in ~/.sawfish/custom, trailing definitions are not loaded. This must be fixed. It must be not so hard; If you try to define bad key from the configurator, you can't. A window pops up, for example, saying: While changing title-keymap: bad-event-desc: RET-Move | ||
---|---|---|---|
Assigned to | None | ||
Patch | |||
Status | NEW/PENDING | Difficulty | ** |
Tunable pointer warp[]
Description |
Currently, pointer warping is controled by only one boolean variable 'warp-to-window-enabled'. Make it tunable. (Seems better to make it a list then to create new variables.) For example, in window cycling, the current behavior is to warp at each step of cycling. But some prefer that warp happens only once, after the window is chosen. | ||
---|---|---|---|
Assigned to | None | ||
Patch | |||
Status | NEW/PENDING | Difficulty | ** |
Window cycling enhancements[]
Description | Make the window cycling more flexible. See this message for ideas.
See also #Tunable pointer warp, #Merge stuff from merlin-ugliness. | ||
---|---|---|---|
Assigned to | None | ||
Patch | |||
Status | NEW/PENDING | Difficulty | ** |
"Mode" of interacitve use & hand tiling[]
Description |
There's a patch [1] which easily provides an "interactive mode", which is in fact a keymap wrapper. Adopt it, and using it, implement modes for grow, pack, shrink and yank ("gpsy"). Adopt Focus-by-direction, too, and make use of it from gpsy. The patch is by Christoph Ruegge, posted on 9 Feb 2010]. | ||
---|---|---|---|
Assigned to | None | ||
Patch | |||
Status | NEW/PENDING | Difficulty | * |
Better error messages[]
Description | Some error messages are not easy to understand.
For example, put In this case: "wrong value 'wrong-value' to function 'default-window-animator'" would be much better. Bad arg is another error which deserves a better error message, too. It can be done by intervening to the error handlers, defined in rep.lang.interpreter and sawfish.wm.ext.error-handler. Check the error type (= car of the data), fix the message. Printing the expected type for bad-arg is more difficult. First we have to fix the macro rep_DECLARE* defined in librep/src/rep_lisp.h. Another challenge is that some types are defined in Sawfish, not in librep, so a callback or other means is necessary. | ||
---|---|---|---|
Assigned to | None | ||
Patch | |||
Status | NEW/PENDING | Difficulty | ** |
Enhancements in multi-head support[]
Description | Current multi-head support is done only with Xinerama. Support RandR too, and only one of them at the same time.
Current multihead support (e.g. in maximization) seems to suppose that heads don't 'overlap' each other. But with RandR, they can indeed overlap. Some users make heads mutually exclusive, but others not, so an user option to choose which 'model' will be good. Resolution change should update edge-flip. Window position & size update is difficult, because the viewport slot it belongs to is ambiguous. Some people also like update of the position of windows with gravity, and maximized windows. Solve 'dead zone problem'. See [2], [3]. (Note: internally, use register_event_handler in events.c, like edge-flip.)
See also Long term todos#Partial workspace layer. RandR support to respond to resolution change or montior hot plugging is done in 1.6.3. | ||
---|---|---|---|
Assigned to | None | ||
Patch | |||
Status | NEW/PENDING | Difficulty | ** |
SawfishClient error-messages[]
Description |
SawfishClient does not display error-messages directly or may even discard them. See here. See [4] for some hints (but not a fix.) | ||
---|---|---|---|
Assigned to | None | ||
Patch | |||
Status | NEW/PENDING | Difficulty | ** |
Maximization bug in ewmh compliance[]
Description | Vertical and horizontal maximization is reported to have a bug. See here. | ||
---|---|---|---|
Assigned to | None | ||
Patch | |||
Status | NEW/PENDING | Difficulty | * |
Display message enhancements[]
Description |
Current display-message is shabby, and enhancement will be nice. See this message for more. See also Customize-messages.
Please report your ideas! | ||
---|---|---|---|
Assigned to | None | ||
Patch | |||
Status | NEW/PENDING | Difficulty | ** |
Display Viewport/Workspace name/number on switch[]
Description |
When switch to a different Viewport/Workspace it should be possible to let sawfish display the name/number of the Viewport/Workspace for workspaces. It's already done by me (locally) but it first needs display-message to take position and timeout params, for viewports it needs more work, or, easier, just display the viewport number (say "Workspace blah, VP 3 of 9" See commit f892ee. ws-num.jl implements WS number using merlin's message, so a good reference... if not just adapt and make official. | ||
---|---|---|---|
Assigned to | None | ||
Patch | |||
Status | NEW/PENDING | Difficulty | ** |
Merge stuff from sawfish-mmc[]
Description |
"mmc" fork has nice patches. See [5] | ||
---|---|---|---|
Assigned to | Michal Maruska | ||
Patch | |||
Status | NEW/PENDING | Difficulty | ** |
Merge stuff from merlin-ugliness[]
Description |
The Merlin.Ugliness contains a set of extra functions, some of them are good candidates for merge, such as having cycling windows displaying a list of all windows and the currently cycled one is highlighted, another thing would be the sawlets architecture. Excpect some discussion in January | ||
---|---|---|---|
Assigned to | None | ||
Patch | |||
Status | NEW/PENDING | Difficulty | *** |
In some themes, title-only frame is wider than the window[]
Description |
For some themes, when a window's frame style is set to 'title-only', then it is really title only: Width of the window is a bit narrower then the title frame. Though it's only applicable to improve the shipped themes. | ||
---|---|---|---|
Assigned to | None | ||
Patch | |||
Status | NEW/PENDING | Difficulty | * |
Proposed by | Teika kazura |
Fill gap for EWMH (partially)[]
Description |
Some EWMH items are not supported. 1. It is known that:
I noticed sawfish only seems to work well with my gtk2 panels or other certain ones. 2. Some clients ask _NET_ACTIVE_WINDOW, and Sawfish raises them in response. But there should be an option to deny the raise. It seems to happen only if the focus mode is 'click'.
| ||
---|---|---|---|
Assigned to | None | ||
Patch | |||
Status | NEW/PENDING | Difficulty | ** |
Proposed by | 1 by User:Ryuo1, 2 by User:Cyber rigger |
Update Docs regarding compat.jl[]
Description |
We need to check for functions/options from compat.jl, which are obsolete, but perhaps not marked obsolete in the docs. Some sybmols marked as 'obsolete' in compat.jl are in fact alive, so each should be investigated. In that case, 'compat.jl' should be fixed. Use the following convention for marking things as obsolete in the docs: @defvr {Obsolete Variable} var-abc When true ... This variable is obsolete. Use @code{var-new-abc} instead (@pxref{Window Foo Var}). @end defvr | ||
---|---|---|---|
Assigned to | None | ||
Patch | |||
Status | NEW/PENDING | Difficulty | ** |
Major rework in key[]
Description | Keyboard handling has several major defects.
Rejected (by Teika kazura) todos:
| ||
---|---|---|---|
Assigned to | Teika kazura (For group switching) | ||
Patch | |||
Status | NEW/PENDING | Difficulty | ** |
Icon & Dockapp[]
Description | Icon & Dockapps support. Dockapps are small windows which can be used within Gnustep & Window Maker.
It's reported in bugzilla, [6], but in fact it's a (lacking) feature. Icon enhancement is also proposed here | ||
---|---|---|---|
Assigned to | Alexey Froloff | ||
Patch | |||
Status | NEW/PENDING | Difficulty | ** |
Running[]
configurator[]
Description | Configurator items.
| ||
---|---|---|---|
Assigned to | None | ||
Patch | |||
Status | NEW/PENDING | Difficulty | ** |
replace deprecated GTK+ Widgets[]
Description | Only the ancient GtkTree is implemented in rep-gtk.
GtkTree only supports double-clicks, for user experience it's better to implement GtkTreeView, which is much more modern and supports single clicks. This also involves a rewrite of lisp.sawfish.ui.group - I'll try to get that into rep-gtk 0.90.1, a set of other deprecated Widgets has already been modernized. | ||
---|---|---|---|
Assigned to | User:Flashrider | ||
Patch | |||
Status | NEW/PENDING | Difficulty | ** |
Done[]
Tabbed Windowing Support[]
Description |
Tabbed windowing support is in, but refinement is necessary. | ||
---|---|---|---|
Assigned to | None | ||
Page | See Tab . | ||
Patch | |||
Status | NEW/PENDING | Difficulty | ** |
Focus or exec script[]
Description | User-contrib scripts like App, Gimme, waffle, jump-or-exec, Iswitch-window fall in category of "focus or exec" scripts. (See Category:Focus management scripts). Review and compare them, and incorporate as an official code.
Jump-or-exec is now in trunk, but the update is available at here. See also this message for enhancements ideas. Waffle uses a customized iswitch-window. The latter is "prompt" for window name with completion, so it need not to be limited to usage for waffle. First putting it together with prompt is good. | ||
---|---|---|---|
Assigned to | None | ||
Patch | |||
Status | NEW/PENDING | Difficulty | ** |
Prompt code improvement[]
Description |
Write doc. Done: Adopt prompt patch after inspection. | ||
---|---|---|---|
Assigned to | None | ||
Patch | |||
Status | NEW/PENDING | Difficulty | * |
Infinite desktop + dragging[]
Description |
Using infinite-desktop, you can't scroll the viewport while dragging a window. The reason and the fix can be learned from edge-flip.jl. | ||
---|---|---|---|
Assigned to | None | ||
Patch | |||
Status | NEW/PENDING | Difficulty | * |
Pager auto show/hide[]
Description |
Show the Sawfish pager only when the viewport or the workspace is changed. | ||
---|---|---|---|
Assigned to | None | ||
Patch | |||
Status | NEW/PENDING | Difficulty | * |
Restart Maximized[]
Description | Bugfix: wrong vertically maximized windows after restart
See [7]. The cause is that on restart Sawfish treats windows one by one. But 'avoid' property should be set for all windows before any maximization is done. (Does postponing maximization suffice? Not sure.) | ||
---|---|---|---|
Assigned to | None | ||
Patch | |||
Status | NEW/PENDING | Difficulty | ** |
Draft Animator[]
Description | Bugfix: 'draft' animator has a bug; displayed numbers remain, not erased | ||
---|---|---|---|
Assigned to | None | ||
Patch | |||
Status | NEW/PENDING | Difficulty | ** |
Proposed by | Teika kazura |
Restart and Viewport[]
Description |
At restart, the current viewport becomes the new top-left of the virtual desktop. Upper or left windows are hidden. This was fixed in 1.6.0, but it is again there. | ||
---|---|---|---|
Assigned to | None | ||
Patch | |||
Status | NEW/PENDING | Difficulty | ** |
Rejected[]
Support for merging windows into one frame[]
Description |
Let's say you use the GIMP and merge all three windows into one frame. This would be an improvement for users of apps with several windows and another unique characteristic for sawfish. Negative opinions: | ||
---|---|---|---|
Assigned to | None | ||
Patch | |||
Status | NEW/PENDING | Difficulty | *** |
Add Stop-Focus/Stop-Raise Focus Modes[]
Description |
Stop-focus and Stop-raise are available as scripts. Merge them into Sawfish | ||
---|---|---|---|
Assigned to | None | ||
Patch | |||
Status | NEW/PENDING | Difficulty | ** |
Animated Window Moving[]
Description |
This is already available as script. This animation might be used for any move operation. Setting steps to 1 should disable animation, else get a fancy effect. | ||
---|---|---|---|
Assigned to | None | ||
Patch | |||
Status | NEW/PENDING | Difficulty | ** |
[]
Description |
if [[ $MAX_THEMES_TO_SHOW_AT_ONCE < $ALL_THEMES_TO_SHOW ]]; then
fi Timo Korvola says: This would not be necessary if the combo box had proper keyboard support, i.e., moved to an item when the user types the beginning of its label. Unfortunately it doesn't. I would have expected the toolkit to take care of this. | ||
---|---|---|---|
Assigned to | None | ||
Patch | |||
Status | NEW/PENDING | Difficulty | ** |
Template usage[]
See Template:Todo-item. It must be easy, but you are not forced to use it. :)