Commit graph

503 commits

Author SHA1 Message Date
Reginald Kennedy
f9c4156217 Fix warp pointer issue when Coordinate Transformation Matrix is used.
Requires libxcb >= 1.9 and xinput2.

Fix screenchange should only be called if RandR is supported.

Fixes #208
2018-09-07 12:29:37 +08:00
Reginald Kennedy
9d64ae3a7c Fix bar focus color on screenchange.
Fixes #131
2018-09-07 12:29:37 +08:00
Reginald Kennedy
49297ff971 Use maximum screen depth when creating frame/bar windows.
Add refresh rate checks to appropriately limit move/resize update rate.

Change all times in debug output to hexadecimal.
2018-09-07 12:29:27 +08:00
Reginald Kennedy
1ed5783be7 Fix some styling. 2018-09-07 11:16:49 +08:00
Matthias von Faber
1291a720e1 Fix config file parsing on musl libc
On the musl libc, autorun, layout and workspace name settings were
always rejected as invalid. As it turns out, parsing those was relying
on sscanf incorrectly matching %Nc as long as there is at least one
character. This is fixed by matching only the initial part of the string
via sscanf and skipping ahead by the amount of bytes consumed. This also
avoids unnecessary zeroing, copying and possible implicit truncation.

Relevant glibc bug:
https://sourceware.org/bugzilla/show_bug.cgi?id=12701
2018-03-28 18:31:43 +08:00
Reginald Kennedy
5804b95a71 Fix pointer offset calculation on move action. 2018-03-21 15:46:08 +08:00
Reginald Kennedy
82e40ed7a7 Fix windows in stacking area sometimes being hidden.
fixes #196
2018-03-03 16:12:48 +08:00
Reginald Kennedy
308f61d58d Cleanup and improve debug output by utilizing C99 __func__. 2018-02-20 22:52:22 +08:00
Christoph Weiss
cd44d668d6 fix segmentation fault in font creation 2017-12-27 22:41:01 +08:00
Tobias Stoeckmann
ea3e6da622 Fix OOB while reading bar input.
If the status bar script returns NUL as the first character through
stdin, spectrwm is prone to an out of boundary access. Depending on
the memory layout of the machine, it could turn into an OOB write.

The fix is simple: If the string is empty, do not further check for
newline character.

Signed-off-by: Tobias Stoeckmann <tobias@stoeckmann.org>
2017-10-14 16:39:44 +08:00
Reginald Kennedy
6b80d23815 Change bar_format +R region index to start at 1 for consistency. 2017-10-04 00:09:46 +08:00
Mike Meyer
79d583b791 Add +R for region index to bar formatting. 2017-10-03 23:52:42 +08:00
Reginald Kennedy
22167bcf2f Add new bar_color_selected and bar_font_color_selected options.
Allows for the convenient customization of dmenu selection colors.
Defaults to bar_border and bar_color, respectively.

closes #168
2017-10-03 21:36:33 +08:00
Reginald Kennedy
82efe69576 Add new 'ws_empty' action.
Switches to the first empty workspace.
Unbound by default.
2017-10-03 20:30:26 +08:00
Reginald Kennedy
ddf4d6609a Pacify Clang Static Analyzer false-positives.
Fix memory leak when parsing an invalid button bind.

Cleanup tree/queue init.
2017-10-03 16:22:46 +08:00
Reginald Kennedy
0a56e7740e Fix handling of invalid character sequences in bar_format.
fixes #35
2017-10-03 16:21:55 +08:00
K M Masum Habib
0b3636551c Enable padding in the bar_format using '_' character 2017-09-28 23:35:54 +08:00
Reginald Kennedy
bcef4a2d68 Remove java_workaround from man page since it is no longer used.
Some cleanup.
2017-09-07 22:20:37 +08:00
Reginald Kennedy
aefcce8a87 Fix initial region focus when focus_mode = follow. 2017-08-31 17:04:52 +08:00
orbea
1b7dffbed0 Silence -Wformat-truncation= warning with gcc7 2017-06-30 16:08:05 +08:00
James Bunton
94b5bca182 Trim trailing whitespace when loading config 2017-04-25 04:44:24 +08:00
Reginald Kennedy
ba474302eb Handle MappingNotify during startup.
fixes #128
2017-04-21 20:02:14 +08:00
Reginald Kennedy
79473c1e77 Fix _NET_WM_STATE_FULLSCREEN window geometry in fullscreen layout.
fixes #155
2016-11-24 00:46:59 +08:00
Martin Natano
dd1b73634f Reset SIGPIPE before execvp().
Otherwise child processes inherit SIG_IGN for SIGPIPE, which can have
unexpected consequences. e.g. when performing pkg_add -ui in an xterm
spawned by spectrwm some spurious EPIPE errors find their way to the
output due to pkg_add expecting a sane default signal environment.

$ pkg_add -nuix vim
quirks-2.261 signed on 2016-10-11T14:06:48Z
Error from http://ftp.fr.openbsd.org/pub/OpenBSD/snapshots/packages/amd64/vim-8.0.0004-gtk2-perl-python3-ruby.tgz
signify: write to stdout: Broken pipe
Error from http://ftp.fr.openbsd.org/pub/OpenBSD/snapshots/packages/amd64/vim-8.0.0004-gtk2-lua.tgz
signify: write to stdout: Broken pipe
[...]
2016-11-23 11:18:55 +01:00
Campbell Barton
bc96e0b5ee Correct size for WM_STATE
Match the type of the array to the `format` argument (32).

Could change the format to 16, but the value is documented to be a `CARD32`, so may as well use 32 bit input.
2016-11-20 09:12:47 +11:00
Andrea Bolognani
914d8f4c46 Include the top level header of each xcb module used
One xcb module, one header file: <xcb/xcb.h> should to be
included directly, instead of relying on other modules dragging
it in; on the other hand, it's okay to include just the top
level <xcb/xcb_util.h> instead of the three separate sub-headers.

[rk@rejii.com: skip xcb_util.h since it breaks xcb-util < 0.3.8]
closes #142
2016-08-26 13:06:25 +08:00
Reginald Kennedy
96a9efc6dd Ensure iconic windows stay iconic when reparenting. 2016-05-18 00:39:01 +08:00
Reginald Kennedy
68a43ba16a Fix workspace cleanup on RandR screenchange.
Fixes #127 and #120
2016-05-09 23:21:01 +08:00
Reginald Kennedy
0fb39f91df Redraw the focus window frame when changing regions with the pointer.
fixes #126
2016-05-05 01:20:24 +08:00
Reginald Kennedy
7e685eaa4c Prepend SWM_LIB to LD_PRELOAD instead of clobbering.
closes #124
2016-05-04 22:29:26 +08:00
Reginald Kennedy
6b0c4d1493 Add new fullscreen_toggle action.
Toggles _NET_WM_STATE_FULLSCREEN on the current window.
Default binding: M-S-e
2016-05-03 04:15:23 +08:00
Reginald Kennedy
f82969b59c Rename raise_focused to raise and set default binding to M-r.
Rename mvws_next and mvws_prev to mvrg_next and mvrg_prev, respectively.

Fix man page typo.

Tweak styling.
2016-05-03 03:43:53 +08:00
Campbell Barton
bc124ae0b2 Send window to next/previous regions workspace 2016-05-03 02:40:59 +08:00
Yuri D'Elia
df6ae9dcd4 Implement the "raise_focused" function 2016-05-03 01:48:51 +08:00
Yuri D'Elia
a77860696e Always swap regions when using rg_move_next/rg_move_prev
Fixes interaction with the option workspace_clamp
2016-05-03 01:20:27 +08:00
Reginald Kennedy
7a7a5aa571 Remove unused macros. 2016-04-29 23:50:12 +08:00
Reginald Kennedy
8fcba7a479 Update the license in spectrwm.c
spectrwm.c does not contain any 'copy' or 'substantial portion' of dwm.
2016-04-29 22:52:54 +08:00
David Hill
22faec8354 cleanup warnings 2016-04-27 11:28:11 -04:00
Reginald Kennedy
53fae91f1d Fix segfault when handling RRScreenChangeNotify.
Fixes #118
2016-04-23 04:48:12 +08:00
Reginald Kennedy
77e1075c10 Fix ICCCM 4.2.3 compliance and add special handling for Java.
Fix transient windows blocking focus to respective main windows.

Fix override_redirect window focus issue.

Fix window borders when applications set focus.

Add more details to debug overlay.

Fixes #42
2016-04-22 02:45:13 +08:00
Reginald Kennedy
da92f07e6b Upgrade to window reparenting.
Change X11 window borders to drawn frames.

Add support for _NET_REQUEST_FRAME_EXTENTS.

Disable java_workaround.
We no longer need to spoof the LG3D non-reparenting window manager.
A dummy option is still present to prevent a startup exception.

Remove the use of BORDER() since it is no longer needed.

Fix move_ on tiled.

Add new debug_toggle bind for SWM_DEBUG.

Fix managing of mapped 'withdrawn' windows.

Wait for all x11 events to finish processing on shutdown_cleanup.
2016-04-22 02:41:46 +08:00
Reginald Kennedy
37f7ee73cc Fix possible delay on uniconify/search_win/search_workspace. 2016-03-23 10:38:38 +08:00
Reginald Kennedy
f12e178ce2 Restore Num_Lock workaround.
If Num_Lock is mapped to a modifier, filter the modifier.

closes #103
2015-05-27 04:43:32 +08:00
Reginald Kennedy
19d9110314 Fix autorun.
free() from memory leak fix was too early.
2015-05-24 20:39:37 +08:00
Marco Peereboom
354d4e4969 add queue.h to OSX
OSX' queue.h does not provide SIMPLEQ because it is too old.  Pull in
tha latest version from Bitrig and use that instead for all queue
related stuff.
2015-05-22 08:41:35 +08:00
Reginald Kennedy
42bccafc30 Improve the bind[] option to accept pointer buttons.
Buttons are specified as Button<n> (case sensitive) where n is 1 to 255.

	Example:
	bind[move] = MOD+Button8

Existing pointer actions are now available for bind[]:
	focus - Focus window/region under pointer.
	move - Move window with pointer while binding is pressed.
	resize - Resize window with pointer while binding is pressed.
	resize_centered - Same as resize but keep window centered.

	Defaults:
	bind[focus] = ANYMOD+REPLAY+Button1
	bind[move] = MOD+Button1
	bind[resize] = MOD+Button3
	bind[resize_centered] = MOD+Shift+Button3

Button binds can be unbound the same as key binds:

	Example:
	bind[] = MOD+Button1 # unbind default move binding.

Add new special bind arguments:
	ANYMOD
	Binds all modifier combinations not handled by another binding.

	REPLAY
	Allows other programs to receive press/release events for bind.
	Unavailable for move, resize and resize_centered.
2015-05-22 08:41:30 +08:00
Reginald Kennedy
5aee442940 Pacify -Wconditional-uninitialized warnings. 2015-05-21 04:18:44 +08:00
Reginald Kennedy
4e5c9bd680 Tweak the urgency indicator default padding for urgent_collapse = 1.
e.g. * 1 3* -> *1 3*

Add clarification for urgent_collapse in the man page.

closes #96
2015-05-14 13:05:40 +08:00
Reginald Kennedy
8aa184cb8b Additional shutdown cleanup.
Initialize some global pointers to NULL.

Fix more leaks.

Fix styling.

closes #93
2015-04-19 18:31:32 +08:00
Campbell Barton
d5362eb9f7 Resolve memory leaks on exit 2015-04-19 18:31:32 +08:00