blob: e7b3f764077930563f16fa851d9cf32ecfcc2461 (
plain)
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
94
95
96
97
98
99
100
101
102
103
104
105
|
-*- text -*-
* Feedback window
We need to tell the user the new geometry somehow. Is this what I
want?
The feedback window can also show what workspace we just changed to.
Can we cooperate with a stand-alone program? Write our status to a
root hint than can be picked up by another program?
* Changing focus from keyboard
Save the subwindows of the root window and focus each when pressing
modkey + user_key_change. First option always last focused window.
Partly done. I have added a linked list of all windows and can walk
around them in a simple window ring.
We need to re-arrange the list so the last focused window gets to be
the next in ring. Perhaps simply move the focused window to head of
list after finishing focusing? How do we know when we're finished
and have the focus we want? Both Tab and Mod2 are released. Use a
mode?
How do we re-establish stack order after moving around windows to
focus on?
* Virtual screens/workspaces
Partially done. Still needed:
- A window might be on one, several or all virtual screens. Add
width something like Mod2-f for "all virtual screens" (done) and
perhaps something like Mod2-a <n>, where <n> is 1--9 for virtual
screens. Better ways? Note that this seems to be mildly
incompatible with the EWMH _NET_WM_DESKTOP hint we're currently
using: We will only be able to save one of the desktops used.
* Move to corners: YU BN.
Quickly move a window to the corners of the screen, a la evilwm.
* Use window resizing hints.
Done, but needs looking over.
Needs to use the data in the window list instead of asking the
server every time. This means we have to update the window list
data, however.
* Special treatment when someone resizes a maximed window... Should it
be possible at all? If so, set new border width when they do it.
Possibly set and read hint about maximized state.
* Snap to border and screen edge, which favours the edge.
* Figure out why unclutter doesn't work in default mode
It creates a subwindow and sends a synthetic enter notify back to
the client.
unclutter -grab works, though, but that mucks with slock. It makes
slock unlock the screen after ~20 seconds!
* CTWM-like resize, at least with the mouse?
Perhaps not. The current solution is... elegant.
* Flag to disable dontmoveoff?
* RandR/Xinerama
Get physical screen characteristics for every screen. Maximize and
move to corners should respect the screen it's on.
xcb_randr_screen_size_t
xcb_randr_screen_size_iterator_t
xcb_randr_get_screen_info_reply_t
xcb_randr_set_screen_size_request_t
* Key to move pointer to another physical screen.
How do we handle window moves from one screen to another. Should we
snap to the physical screen's edge and then allow move to continue?
* Use xcb-event's event handlers?
* Configurable keys.
* Configuration file.
* Start configurable programs when clicking on root window.
* Handle Urgency hint
Some windows might need attention and marks this with an urgency
hint (for instance, urxvt can generate such a hint when receiving
the BEL character). Do we want to handle it? How do we tell the
user? Can this be done with some stand-alone program instead?
|