-
Notifications
You must be signed in to change notification settings - Fork 0
/
todo.txt
99 lines (76 loc) · 3.82 KB
/
todo.txt
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
* layout each tag with its layout, combining multiple layout a sub-clients
required change:
void (*arrange)(Monitor *);
to:
struct LayoutZone {
Monitor* m;
int wx, wy, ww, wh; /* window area */
}
void (*arrange)(LayoutZone *);
and struct Client could be with a Window or a LayoutZone*
all tags' LayoutZone created as non-Window Clients
LayoutZone* zones[DIM(tags)];
effectively:
for tagset = a|b
a->arrange(numclients(a) + numzones)
and resize(b, ...) would call
b->arrange(numclients(b))
possible a,b ordering:
- as is
- order by layout if different
- order by time (not practicle for monview(, 0))
for a call to arrange, count number of Clients: skip duplicates and empty LayoutZones
adapt nexttiled() method for count and iteration
make arrangemon() set a global to new value at each call (time?)
set arrangeid on each client to track duplicates in chain
same for zones for debug purposes (and avoid infinite loop)
nexttiled(LayoutZone *zone, Client *c)
* Requirement for merging branches: add config file with:
- tags (with names and associated keys)
- rules (as is, but optional fields can have default value)
- colors (already done, but could be a part of this)
- mappings ? or possibly mappings to put in rules
(json? -> find simple c implementation for that, stick to 'ini' style otherwise)
small json implementation: https://bitbucket.org/yarosla/nxjson
if errors found at launch, stick with built-in rules
auto reload config file, use if no errors found
* fix window placement after restart (border visible until hide/show bar)
* change rotatemon() to swapselmonclients({.i = [-1,+1])
* floating window tag 'f' (if no rule or transiant) (toggle with mod-space)
* floating window should be hidden when ruled on tag different from current
* intelligent floating window placement
* default layout per tag (remove rule "prefered layout")
* add "volume control" rule (music tag, mon 2)
* keyboard focus after xtrlock exit
* exit from fullscreen on embedded youtube looses browser window
(yandex, url: https://www.polygon.com/2018/12/20/18001832/men-in-black-international-first-trailer?utm_campaign=polygon&utm_content=chorus&utm_medium=social&utm_source=twitter)
* add for new hidden floating window 'needsPositioning' bool to Client, and reposition the window when shown
******************************
done:
* add cycle current view through monitors (mon[n].view[c] -> mon[n+1].view[c] ; mon[n+1].view(c))
-> right click on status
* fix "previous layout should never be same a toggle one", ensure both are never equal
* an empty view should not be added to "previous"
* fix: don't switch view on things like "opened new tab in browser", set view's urgent flag
* remove in/out view stack (useless)
* fix or remove: restore layout after last view's window deleted
* special video view ("v"):
view(null) ->
if (no windows in video)
toggle with previous view
else()
toggle with video
end()
on video view, window removed from video -> toggle with previous view
(video view is not saved saved in views for view(null) (?))
* add qtwebflix rule (fullscreen)
* have saved layouts in list (stack) with added combinations (1 to 9 and then n|m combinations): don't mess up other view's layout
* fix pango warning
" Invalid UTF-8 string passed to pango_layout_set_text()"
only happens when draw more text than possible (prevent string clipping)
* try having any fullscreen window on the 'v' tag
* swap view's vs properties when rotating only one view
* when setting a window fullscreen, rotate 'v' tag if a window is already present
* don't toggle view when exiting fullscreen of window initialy on vtag
* rotate current view should keep source view if a window is present afterwards
* push 'new window' tag as next for toggle view and don't toggle tag on new window