Sawfish
Advertisement
Development quick access

This page contains possible Goals for the next Sawfish version.

See also long term todos 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

See also the sourceforge page: https://sourceforge.net/tracker/?atid=350032&group_id=32&func=browse

Open Bugs

Warp-Cursor

Description Bugfix: warp-cursor command

(problem with OO.o transients)

Assigned to None
Patch
Status NEW/PENDING Difficulty **


Restart Maximized

Description Bugfix: wrong vertically maximized windows after restart

See [1].

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 **


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 *


Pager color

Description

Sawfish-pager understand rgb only, but Sawfish side script pager.jl sends rgb + alpha.

Assigned to None
Patch
Status NEW/PENDING Difficulty *


Rename-window

Description

Function `rename-window' changes the name of the window and its _NEW_WM_NAME. But instead _NET_WM_VISIBLE_NAME should be changed.

Assigned to None
Patch
Status NEW/PENDING Difficulty *


Sawfish 3.0.0

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 *


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 [2] 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 201].

Assigned to None
Patch
Status NEW/PENDING Difficulty *


Better error messages

Description Some error messages are not easy to understand.

For example, put
 (define-special-variable default-window-animator 'wrong-value )
to your rc, and you'll get:
"wrong function ()" while "wrong value <value> to function <function>".

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.
Current: (bad-arg #<subr structure-imports> () 1)
Better: (bad-arg: To #<subr structure-imports>, as 1st arg `()' was passed, but structure expected.)

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 [3], [4]. (Note: internally, use register_event_handler in events.c, like edge-flip.)

Partial fix: Patch for first-fit placement mode.

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 **


Tabbed Windowing Support

Description

Tabbed windowing support is in, but refinement is necessary.

Currently, variables `tab-left/right-*' are user options. But they should be set from each theme's theme.jl.

Assigned to None
Page See Tab .
Patch
Status NEW/PENDING Difficulty **


SawfishClient error-messages

Description

SawfishClient does not display error-messages directly or may even discard them. See here.

See [5] 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 *


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 **


configurator

Description Configurator items.
  • Implement radio button, with doc label. Re-implement "or" widget with radio. (Currently checkbox).
  • Most of yes-no items in "window rules" only support yes. (No is meaningless.) Replace it with plain checkbox.
  • In window position in "window rules", negative values are interpreted as-is. (x = -10 means 10 pixels left from the left border.) But it's handy to allow x = -10 to indicate 10 pixels left from the right border. Enable it, but retain the current one, too.
Assigned to None
Patch
Status NEW/PENDING Difficulty **


Prompt code improvement

Description

Adopt prompt patch after inspection. Write doc.

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.

  • Dismiss with anywhere click.

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.

Assigned to None
Patch
Status NEW/PENDING Difficulty **


Merge stuff from sawfish-mmc

Description

There has been the sawfish-mmc fork by Michal Maruska and he said "I'll extract some reasonable patches"

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:

'tint' and 'visibility'
Pager/windowlist programs tint and visibility don't work very well. visibility can't manipulate the state of windows, namely iconify/deiconify.
'wmctrl' utility
Utility wmctrl doesn't seem it can get sawfish to change the state of any windows under its control, shade, iconify,etc. Sawfish doesn't seem to respond.

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 **


Running

Dockapps

Description Dockapps support. Dockapps are small windows which can be used

within Gnustep & Window Maker.

Reported in bugzilla, [6], but in fact it's a (lacking) feature.

Assigned to Alexey Froloff
Patch
Status NEW/PENDING Difficulty **


Major rework in key

Description Keyboard handling has several major defects.
  • If you switch keyboard layout, then some key and mouse events get dealt wrongly until you restart X. It's triggerd by "ISO_Next_Group" key. See
  • Support for mouse button > 5 is hackish. Only 9 buttons are supported.
  • Standalone Escape should not be bindable, as it's used to exit from Compose or nested-keybinding sequences (SawfishConfig allows that)
  • Shift levels from other than Capslock are ignored. For example, Capslock + a is treated as A, not as modifier + a, and this is correct.
  • Compose should be named Compose not Multikey
  • Detailed documentation is lacking.

Rejected (by Teika kazura) todos:

  • 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.
Assigned to Teika kazura (For group switching)
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

Apps-menu failure breaks startup

Description 1. If there are broken items in /usr/share/applications read by apps-menu.jl, Sawfish doesn't start.

See here. It has an example of erroneous *.desktop file.

2. It is also reported that even missing symbolic link in that directory breaks Sawfish, too.

3. It used to break for 'R' (statistics software), too.

4. Not Sawfish startup failure, but some *.desktop files are ignored.

Items 1 and 2 are fixed in Sawfish-1.6.2.

Items 3 and 4 are fixed in this, which should be applied against Mar 19 revision.

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 **


Split the theme-menu by first letter (if many to show)

Description

if [[ $MAX_THEMES_TO_SHOW_AT_ONCE < $ALL_THEMES_TO_SHOW ]]; then

_______
| A | K |
| A1 | K1 |
| A2 | L |

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. :)

Advertisement