summaryrefslogtreecommitdiff
path: root/TODO
blob: f0940804599acea7c8a05582cff0a47e3fca904c (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
-*- text -*-

In order of importance:

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

* "M" and "X" should toggle.

  Store original geom in X properties for the window.

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

* Special treatment when someone resizes a maximed window... Should it
  be possible at all? Set new border width.
  
  Set and read window hint about maximized state.

* Obey no-input hints.

  Don't focus on these windows at all? How will this work with our
  window movement keys that work with the focused window?

  Does unclutter use this? No. It creates a subwindow and sends
  a synthetic enter notify back to the client.

  unclutter -grab works, though.

* Flag to disable dontmoveoff.

* Virtual screens/workspaces

  Store workspace data in an X property for the window.

  When changing workspace, look for the windows with the right
  property.

  Possibly store internally as well, so we don't generate so much
  traffic?

  A window might be on one, several or all virtual screens. Add width
  something like Mod2-f for "all virtual screens" and perhaps
  something like Mod2-a <n>, where <n> is 1--9 for virtual screens.
  Better ways?

* GTK apps has some extra windows that are initially unmapped. How do
  we handle these? For now, we never map them and silently ignore
  them. When we go to virtual desktops, this might become a problem.
  How do we know that we're not supposed to map them?

* RandR/Xinerama

  Get physical screen characteristics for every screen. Maximize and
  move to corners should consider the screen it's on.

* Key to move to another physical screen.

* Use xcb-event's event handlers?

* Configurable keys.

* Configuration file.