Devin J. Pohly
|
c6833cf93e
|
add output manager protocol
|
2020-05-09 23:01:30 -05:00 |
Devin J. Pohly
|
59d16e491a
|
add screencopy support
While we're taking low-hanging fruit here...
|
2020-05-09 22:48:19 -05:00 |
Devin J. Pohly
|
0bd4eb8ff3
|
add primary selection support too!
|
2020-05-09 22:45:22 -05:00 |
Devin J. Pohly
|
0b0dd6b63c
|
handle request set selection
Ported from wlroots commit fa5d709
|
2020-05-09 22:30:20 -05:00 |
Devin J. Pohly
|
94bb68afe1
|
use wlr_xdg_surface.set_tiled correctly
Closes #2. I'm guessing from sway that the idea of setting maximized
state so that windows cooperate is superseded by using set_tiled.
|
2020-05-09 14:50:31 -05:00 |
Devin J. Pohly
|
cad233b605
|
initialize global listeners statically
|
2020-05-09 10:10:02 -05:00 |
Devin J. Pohly
|
5817c917b6
|
abc
|
2020-05-03 13:18:53 -05:00 |
Devin J. Pohly
|
323092d3ce
|
remove vestigial listeners
|
2020-05-03 13:18:10 -05:00 |
Devin J. Pohly
|
7212da059c
|
no need for a line split here
|
2020-05-03 12:41:15 -05:00 |
Devin J. Pohly
|
1a30d9908d
|
no conditional needed for output modes
If the output backend doesn't support modes, get_preferred_mode will
return NULL, and set_mode will accept NULL.
|
2020-05-03 11:45:47 -05:00 |
Devin J. Pohly
|
b19afa10f3
|
use strstr for monrules
|
2020-05-03 11:39:48 -05:00 |
Devin J. Pohly
|
7afe152c47
|
add reminder comment
|
2020-05-03 11:38:34 -05:00 |
Devin J. Pohly
|
1b87831e00
|
inline xytosurface
|
2020-05-03 11:37:44 -05:00 |
Devin J. Pohly
|
f7d2524435
|
split xytoclient and xytosurface
|
2020-05-03 11:31:55 -05:00 |
Devin J. Pohly
|
835a46ef30
|
style
|
2020-05-03 11:23:51 -05:00 |
Devin J. Pohly
|
1d0350fa3d
|
refocus -> lastfocused
|
2020-05-03 11:23:39 -05:00 |
Devin J. Pohly
|
cf65fd8c9a
|
raise client on refocus
Might revisit this later, but this currently seems like the right
strategy.
|
2020-05-03 00:55:00 -05:00 |
Devin J. Pohly
|
86d8cb1804
|
add client rules
|
2020-05-03 00:49:02 -05:00 |
Devin J. Pohly
|
5de1cfbebf
|
allow setmon to specify alternate tags
|
2020-05-03 00:44:16 -05:00 |
Devin J. Pohly
|
b10ef0e80a
|
loop over array pointers directly
|
2020-05-03 00:41:37 -05:00 |
Devin J. Pohly
|
2e7b5310b4
|
includes: abc
|
2020-05-02 15:24:18 -05:00 |
Devin J. Pohly
|
3096d4eec1
|
set default cursor over window borders
|
2020-05-02 15:22:07 -05:00 |
Devin J. Pohly
|
ecdd012f6b
|
sacrifice 24 lines to suckless style :)
|
2020-05-02 15:21:36 -05:00 |
Devin J. Pohly
|
20ed6cb3d5
|
allow passing NULLs to xytoclient
For sx/sy, these are handled by the underlying call to
wlr_surface_surface_at.
|
2020-05-02 14:43:28 -05:00 |
Devin J. Pohly
|
8c80f74513
|
remove outdated/fixed comment
|
2020-05-02 14:33:32 -05:00 |
Devin J. Pohly
|
187d25e838
|
style: int instead of bool
|
2020-05-02 14:32:23 -05:00 |
Devin J. Pohly
|
d0df4d0d72
|
correct standard include for signal.h
Fixes #1. Thanks @sdsddsd1!
|
2020-05-02 10:42:51 -05:00 |
Devin J. Pohly
|
87f8e6687b
|
include border in xytoclient
If there isn't an actual surface under the cursor, *surface will be set
to NULL, which is safe now that focus functions handle a NULL surface
safely.
|
2020-04-30 12:32:57 -05:00 |
Devin J. Pohly
|
2c134faa40
|
allow NULL surface with client in focus functions
|
2020-04-30 11:37:04 -05:00 |
Devin J. Pohly
|
33b0236858
|
make move-grab coords client-relative
|
2020-04-30 11:33:32 -05:00 |
Devin J. Pohly
|
3973ea5bfe
|
unify movemouse/resizemouse
|
2020-04-30 10:25:37 -05:00 |
Devin J. Pohly
|
53e71957f8
|
fix a long line
|
2020-04-26 22:19:48 -05:00 |
Devin J. Pohly
|
40d0d0f829
|
wait to get window geometry until map time
|
2020-04-26 22:18:39 -05:00 |
Devin J. Pohly
|
34d5045d84
|
use wlr_box for client geometry
|
2020-04-26 22:12:08 -05:00 |
Devin J. Pohly
|
a25ad1c327
|
call arrange only where needed
A few of these could probably even be more specific, but this is where
dwm's calls are.
|
2020-04-26 22:02:47 -05:00 |
Devin J. Pohly
|
499a43db74
|
funnel isfloating changes through setfloating()
|
2020-04-26 21:55:49 -05:00 |
Devin J. Pohly
|
ce5d116efd
|
move comment where it's more relevant
|
2020-04-26 21:42:45 -05:00 |
Devin J. Pohly
|
dd50a3ee04
|
mouse move now changes window monitor
|
2020-04-26 21:35:21 -05:00 |
Devin J. Pohly
|
19e712625f
|
options to select log level
|
2020-04-26 21:32:44 -05:00 |
Devin J. Pohly
|
b2960e53de
|
rename keyboardfocus() to focusclient()
|
2020-04-26 20:17:47 -05:00 |
Devin J. Pohly
|
7094bcc5e3
|
integrate raiseclient into keyboardfocus
|
2020-04-26 20:16:47 -05:00 |
Devin J. Pohly
|
6d5726e426
|
don't pass compositor button events to client
|
2020-04-26 20:12:54 -05:00 |
Devin J. Pohly
|
b025b7bdbd
|
render windows across monitors
|
2020-04-26 20:00:06 -05:00 |
Devin J. Pohly
|
aa7020b344
|
abc
|
2020-04-26 19:48:28 -05:00 |
Devin J. Pohly
|
8f02449cb4
|
funnel all monitor-moving through setmon()
|
2020-04-26 19:47:38 -05:00 |
Devin J. Pohly
|
847cd4c488
|
I'm good with changing the loglevel here...
|
2020-04-26 17:43:03 -05:00 |
Devin J. Pohly
|
309f6c96cf
|
hang some stuff on ->data
Sure it'll be useful at some point. Like here.
|
2020-04-26 17:42:10 -05:00 |
Devin J. Pohly
|
ab51576556
|
linesaver in pointerfocus
|
2020-04-26 14:47:23 -05:00 |
Devin J. Pohly
|
cd6683e6a1
|
fix refocus on sendmon
|
2020-04-26 14:11:44 -05:00 |
Devin J. Pohly
|
88f0ea343b
|
make sure windows always overlap with their monitor
|
2020-04-26 14:08:47 -05:00 |
Devin J. Pohly
|
48a8adb70a
|
track window width/height
|
2020-04-26 13:18:20 -05:00 |
Devin J. Pohly
|
5dd8a5f22f
|
use wlr_box for monitor regions
|
2020-04-26 12:41:33 -05:00 |
Devin J. Pohly
|
2fb9f53483
|
save lines in keyboardfocus
|
2020-04-26 12:01:08 -05:00 |
Devin J. Pohly
|
d34bf87dba
|
don't unfocus when mouse leaves a window
|
2020-04-26 12:01:00 -05:00 |
Devin J. Pohly
|
6cad698517
|
fix multi-dpi scaling
|
2020-04-25 01:18:28 -05:00 |
Devin J. Pohly
|
c00da5eeb0
|
clarify keyboardfocus vs pointerfocus
|
2020-04-24 00:12:58 -05:00 |
Devin J. Pohly
|
60f2c0b7de
|
draw window borders
Works with scaled/rotated displays too!
|
2020-04-23 23:55:29 -05:00 |
Devin J. Pohly
|
6254bcd033
|
factor out scalebox()
May switch to the version from sway if that seems like a good idea at
some point.
|
2020-04-23 23:52:27 -05:00 |
Devin J. Pohly
|
6e02b421cd
|
note about cursor init
|
2020-04-23 23:47:52 -05:00 |
Devin J. Pohly
|
ee2b3af1ca
|
configure monitor rotation/reflection
|
2020-04-23 23:44:54 -05:00 |
Devin J. Pohly
|
2cb526bbd9
|
add chvt function
It truly isn't just a window manager anymore :-|
|
2020-04-23 23:44:54 -05:00 |
Devin J. Pohly
|
1870187d62
|
make space for window borders
|
2020-04-23 23:35:54 -05:00 |
Devin J. Pohly
|
fb6b16aeee
|
change cursor during move and resize
|
2020-04-23 23:35:54 -05:00 |
Devin J. Pohly
|
2f21445761
|
style in buttonpress
|
2020-04-23 23:35:54 -05:00 |
Devin J. Pohly
|
288f6397fa
|
simplify move/resizemouse functions
|
2020-04-23 23:35:54 -05:00 |
Devin J. Pohly
|
073c35ae2f
|
funnel all resizing through resize()
|
2020-04-23 23:35:54 -05:00 |
Devin J. Pohly
|
60c887f3c0
|
use exit code macros everywhere
|
2020-04-23 23:35:54 -05:00 |
Devin J. Pohly
|
84da7b4470
|
some comments and reminders
|
2020-04-23 23:35:54 -05:00 |
Devin J. Pohly
|
275badc707
|
factor out renderclients
This will help once we get to implementing layer-shell
|
2020-04-23 23:16:56 -05:00 |
Devin J. Pohly
|
15ed82571b
|
don't autoraise
Still raise in buttonpress and focusstack of course. Focus models
honestly wouldn't be too hard to make into a config.h option.
|
2020-04-23 22:15:30 -05:00 |
Devin J. Pohly
|
e6bcf95e2e
|
use the focus stack to determine stacking order
Suddenly we have autoraise!
|
2020-04-23 22:11:52 -05:00 |
Devin J. Pohly
|
a5a7445dee
|
adopt a bit more dwm-like terseness
|
2020-04-23 22:11:52 -05:00 |
Devin J. Pohly
|
66bf55930f
|
change focus(NULL, NULL) to mean unfocus
"Focus the most recently focused window on selmon" is now refocus()
|
2020-04-23 22:11:52 -05:00 |
Devin J. Pohly
|
0d8f51e0a3
|
implement focusmon and tagmon
|
2020-04-23 22:11:52 -05:00 |
Devin J. Pohly
|
a87adfd77c
|
focus follows mouse
|
2020-04-23 22:11:52 -05:00 |
Devin J. Pohly
|
4eabe48fed
|
add incnmaster and setmfact commands
|
2020-04-23 22:11:52 -05:00 |
Devin J. Pohly
|
66054700cb
|
add toggletag and toggleview
|
2020-04-23 22:11:52 -05:00 |
Devin J. Pohly
|
35557ab042
|
don't detect non-visible clients under cursor
|
2020-04-23 22:11:52 -05:00 |
Devin J. Pohly
|
387dff81b3
|
add tag and view functions
|
2020-04-23 22:11:52 -05:00 |
Devin J. Pohly
|
fda58764ab
|
refocus if focused client is unmapped
focus(NULL, NULL) works like dwm's focus(NULL): focus the most recent
visible client on selmon, or clear the existing focus if there are none.
|
2020-04-23 22:11:48 -05:00 |
Devin J. Pohly
|
c03081d85d
|
implement floating windows
|
2020-04-23 19:48:00 -05:00 |
Devin J. Pohly
|
e447cd0215
|
load scaled cursor theme with each output
|
2020-04-23 19:12:58 -05:00 |
Devin J. Pohly
|
623867a367
|
turn focusnext into dwm's focusstack
|
2020-04-23 00:47:15 -05:00 |
Devin J. Pohly
|
59b09576b9
|
restrict focusnext to the same monitor
|
2020-04-23 00:38:09 -05:00 |
Devin J. Pohly
|
a634b3f2e4
|
style
|
2020-04-23 00:33:58 -05:00 |
Devin J. Pohly
|
9b2eec24c2
|
add selclient() helper
This may get inlined later, but it's nice for now. The focused client
if any should always be both at the top of fstack and visible on selmon.
|
2020-04-23 00:32:28 -05:00 |
Devin J. Pohly
|
3593da0e15
|
continue to focus monitor under mouse cursor
|
2020-04-22 22:56:24 -05:00 |
Devin J. Pohly
|
240be1af19
|
focus monitor under mouse cursor initially
|
2020-04-22 22:55:57 -05:00 |
Devin J. Pohly
|
f88a98327e
|
grabbed_client was too long a name
|
2020-04-22 22:38:14 -05:00 |
Devin J. Pohly
|
1595256341
|
inline moveresize
There were only two lines left in common
|
2020-04-22 22:34:11 -05:00 |
Devin J. Pohly
|
0a43197203
|
grabsx/y are only used by move now
|
2020-04-22 12:00:10 -05:00 |
Devin J. Pohly
|
749880cedd
|
calculate resize based just on cursor/window
This eliminates the need for grab_height and grab_width.
|
2020-04-22 11:59:52 -05:00 |
Devin J. Pohly
|
def3572117
|
add setlayout function
|
2020-04-22 11:20:23 -05:00 |
Devin J. Pohly
|
fdbe9ee29a
|
Don't change tiling order in focusnext()
Use the focus stack instead to determine which client is focused
|
2020-04-22 11:05:41 -05:00 |
Devin J. Pohly
|
10bf0ff566
|
add separate list of clients for focus order
Previously, clicking a client to focus it would change where it was in
the tiled layout as well.
|
2020-04-22 10:42:40 -05:00 |
Devin J. Pohly
|
3707e0115a
|
layouts: tile and floating
Behavior's still a little wonky but positioning is there.
|
2020-04-22 08:25:43 -05:00 |
Devin J. Pohly
|
6f9f1b9e05
|
"root" color was easy to make configurable
|
2020-04-21 21:58:13 -05:00 |
Devin J. Pohly
|
ffc19434ee
|
fix rendering on scaled monitors
I have no idea why this takes the raw unscaled resolution, and then we
have to multiply by the scale *again* in render(), but that's life.
|
2020-04-21 21:56:01 -05:00 |
Devin J. Pohly
|
1907ee3879
|
introduce rules for monitor configuration
(with dwm, this would already have been done by the X server)
|
2020-04-21 21:53:34 -05:00 |
Devin J. Pohly
|
97f29ec67f
|
no need to manage unmapped clients
is there?
|
2020-04-21 20:55:06 -05:00 |