forked from herbstluftwm/herbstluftwm
-
Notifications
You must be signed in to change notification settings - Fork 0
/
BUGS
94 lines (88 loc) · 4.95 KB
/
BUGS
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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
BUGS
====
Some BUGS:
- On some (currently not reproducable) situations the keyboard focus is not
in the same client as the one that is marked to be focused. This happens
with some applications (e.g. sakura) on some machines. It also happens
when switching the monitor focus quickly.
- keyboard focus stays in window, if cursor is over it and
herbstluftwm-focus goes away
- don't always re-layout all if only one thing changes (e.g. border_color)
- don't reset border width on each layouting
- don't call monitor_apply_layout() if only the focus changes, e.g. on an
enternotify event.
- herbstclient: add timeout if server does not respond
- herbstclient: errorstatus2string2stderr
- add function to put window into tag (and use it in manage, merge_tag,
move)
- the default panel.sh spawns too many shells and does not clean them up
properly at quit. you should do something like killall panel.sh when
logging out (this is only a workaround!).
- raise_on_click doesn't work with gnome-settings-daemon
- window_focus is called twice when switching desktops (before mapping
windows and after mapping them). TODO: only do it once.
- also update window title if *only* the _NET_WM_NAME changes
- make focus_window(client->window, true, false); work
- do not flicker if there are three monitors and the tag of the topmost is
swapped with the tag of the most bottom monitor (flickering can be
noticed at the middle monitor)
- Fullscreen clients must not be above the panel of another monitor which
actually is above that fullscreen window in the stacking order. (But it
currently is, because we can't distinguish which monitor a panel is
associated to or if a window is a panel at all). There is no clean
solution yet, because we can't easily find out, which monitor a panel is
associated to. One could automatically detect the monitor association of
a panel by a panel's and a monitor's geometry, but those heuristics
mostly fail if two monitors overlap heavily (which is the *only* case in
which this bug is triggered).
Steps to reproduce: Create to monitors which overlap (Use add_monitor,
move_monitor and raise_monitor). Focus a fullscreen client on the lower
monitor and focus a non-fullscreen client on the higher monitor and
select the higher monitor. Effect: the non-fullscreen client on the
higher monitor should be above the fullscreen window but is displayed
below the fullscreen window on the lower monitor.
- If gnome-terminal is mapped (e.g. by switching the tag) it sends a
ConfigureRequest which is rejected. This causes flickering because the
terminal content is drawn with the requested size first and again with
the actual size. This bug only occurs at certain widths of
gnome-terminal.
- Do not flicker when removing a frame. Currently first the children frame
is destroyed (especially hidden) and then the parent frame is shown
again. The fix is to first show the parent frame (above of the children
frames) and then hide the children.
Planned features:
- dump/load floating values
- set range for some integer-setting-values
- (optional) move cursor after focus change
- optional focus selection after frame_split
- focus_follows_mouse based on frames/monitors
- mouse bindings in tiling mode
- better xcompmgr support
- keybind with keycodes
- chain keys/key chains/...
- lastfocused{window,frame,tag} - commands
- own X-Properties to indicate window state (fullscreen, pseudotile,
float,...)
- alias commands: alias shortcmd = cmd default arg, alias shortcmd --delete
- provide multiple mechanisms to split clients to child frames:
* 100:0 (and vice versa)
* 50:50
* clients before focus to the first child, others to the second
- automatic split command which splits along the longest side
- catchall for frames (this frame will catch all new clients)
- try to find a empty frame for new clients
- (currently unknown) handling of WM_TRANSIENT_FOR
- move clients in pseudotile mode
- make it configurable if clients are allowed to change their own
floating size or even position
- undo command which undos the last layout changes on a certain tag
- load frame without changing it's properties to just change the
child-frames. Something like: (split unchanged $child1 child2)
- a more verbose tag_status: list_tags with one line per tag
- cycle through all "invisible" (or non-focused) clients
- setting to make focus_follows_mouse not apply for the empty area of
pseudotiled frames
- consequence: stack={top,underfocus,bottom} and setting to set the initial
stacking position on manage or after moving a client to a tag
- maybe shift_nth: like focus_nth except that it swaps those two windows
inside the current frame