Commit graph

378 commits

Author SHA1 Message Date
Reginald Kennedy
a8461cfbb9 Fix crash on maprequest when WM_CLASS name and/or instance isn't set. 2013-04-30 02:57:22 +08:00
Reginald Kennedy
0cef11f17d Add ability to move/resize floating windows beyond the region boundary.
Windows will change regions based on the cursor location or, if being
moved by a key binding,  window center.

Add 'soft boundary' window containment behavior to region boundaries.
When moving a window past the region boundary, the window will 'snap' to
the region boundary until it is moved more than boundary_width distance
beyond the edge.

Add constraint to ensure windows always have at least 1 pixel in a
region.

Add new boundary_width configuration option.
Disable the window containment behavior by setting this option to 0.

Fix floating window stacking order issue on multiple-region setups.

Eliminate unneeded region parameter on load_float_geom() and
store_float_geom().
2013-04-30 01:45:46 +08:00
Reginald Kennedy
519aa00149 Change global variable to local. 2013-04-30 01:45:12 +08:00
Reginald Kennedy
cc09aae734 Fix positioning issue on flipped layouts with a multi-column/row stack. 2013-04-28 05:36:02 +08:00
Reginald Kennedy
cfe055c6fc Fix focus when switching to an inactive workspace with a new window. 2013-03-26 15:53:11 +08:00
Reginald Kennedy
d766c1e8d1 Update copyrights. 2013-03-26 06:18:29 +08:00
Reginald Kennedy
749dbb28b2 Fix manual focus mode sometimes switching region with pointer motion. 2013-03-23 07:46:09 +08:00
Reginald Kennedy
0b083dbf59 Fix input focus fallback issue when running with multiple regions.
When a region is empty, input focus is now set to the invisible input
window in the region.  This enables programs (e.g. dmenu) to correctly
determine which monitor has focus.
2013-03-23 07:45:26 +08:00
David Hill
10147c617a unsigned long -> size_t 2013-03-21 10:59:47 -04:00
Reginald Kennedy
3b8acfe399 Fix fullscreen layout stacking issue when using multiple regions. 2013-03-08 09:36:17 +08:00
Reginald Kennedy
5cbc2896c4 Add new ws_next_move and ws_prev_move bindings.
Switches to next/prev workspace with the current window.

Improve grabkeys to only grab ws binds within workspace_limit.
2013-02-19 08:57:49 +08:00
Reginald Kennedy
417c9ef016 Initialize some pointers that could be freed without being initialized. 2012-12-31 09:57:06 +08:00
Reginald Kennedy
66f742ca48 Add get_screen_count function that handles the result of xcb_get_setup. 2012-12-20 11:56:51 +08:00
Reginald Kennedy
fedd800f2a Add new quirk NOFOCUSONMAP.
Don't change focus to the window when it gets mapped on the screen.

Add new quirk FOCUSONMAP_SINGLE.
When the window is mapped, change focus if it is the only mapped window
on the workspace using the quirk entry.
2012-12-04 14:49:00 +08:00
Reginald Kennedy
083bdac7ac Fix setkeymapping to call expand_tilde for proper expansion of ~ in path.
Change validation behavior for default 'optional' applications.
Overriding the binding will no longer cause validation.
Validation will only occur when the program call is overridden.

Add details in spectrwm.conf on how to disable the default programs.

Improve man page PROGRAMS section.
Added details on default program validation and how to disable/override.
2012-12-04 14:26:28 +08:00
Reginald Kennedy
6bc606589a Fix bar clock not getting updated during periods of inactivity. 2012-11-24 15:34:05 +08:00
Reginald Kennedy
f885700bbd Fix move/resize to bail if the window gets destroyed. 2012-11-17 01:13:07 +08:00
Reginald Kennedy
cc956fe9e2 Validate bound spawn programs after conf is loaded.
Validate screenshot_* and initscr bindings only when overridden.

Simplify setspawn.

Remove spawn_replace as it is no longer needed.
2012-11-13 07:56:21 +08:00
David Hill
0f58463601 avoid a free on an uninitialized variable by setting optval to NULL. 2012-11-11 09:14:15 -05:00
Reginald Kennedy
9d5207775b Fix issue where rapid window crossing events might get ignored. 2012-11-11 13:40:40 +08:00
Reginald Kennedy
214aca697c Fix fparseln flags to remove escape characters in the result.
For example, \# should result in #.

Add note in manpage that # must be escaped when not used in an option.
2012-11-02 02:31:34 +08:00
Reginald Kennedy
a02a15fb5d Change event mask on bar windows to handle pointer activity. 2012-10-30 20:53:56 +08:00
Reginald Kennedy
45188ac11d Fix handling of region focus on screen change.
Unmap windows in workspaces that lose visibility on screen change.
2012-10-30 09:28:01 +08:00
Reginald Kennedy
608cf20ac7 Fix typo. 2012-10-30 06:04:56 +08:00
Reginald Kennedy
7398081030 Focus on first region on screenchange. 2012-10-30 05:36:00 +08:00
Marco Peereboom
6314288a16 add xlock to list that isnt verified during startup 2012-10-29 16:21:07 -05:00
Marco Peereboom
ee8f3b512c add exceptions to the .sh to keep backwards compat 2012-10-29 16:21:07 -05:00
Marco Peereboom
f7ec931e08 remove some defaults that dont make sense
also warn on empty key = value pair
2012-10-29 16:21:07 -05:00
Marco Peereboom
b58b056511 test all spawn things to see if they exist 2012-10-29 16:21:06 -05:00
Marco Peereboom
fc4fba8513 add first stab at startup exceptions 2012-10-29 16:21:06 -05:00
Reginald Kennedy
f2615753fd Fix typo. 2012-10-30 04:17:45 +08:00
Reginald Kennedy
df09d47ea4 Set region focus on screenchange. 2012-10-30 03:37:54 +08:00
Reginald Kennedy
3543a15189 Map all top-level-windows in max_stack.
Remove unused variable in max_stack.
2012-10-29 23:34:06 +08:00
Reginald Kennedy
e057fcc907 Fix window focus cycling on single-head fullscreen layout. 2012-10-29 22:54:55 +08:00
Reginald Kennedy
825bd9777e Fix bar border color when starting with a single region. 2012-10-27 16:04:31 +08:00
Reginald Kennedy
2ac03f635f Add new argument variables for programs:
$region_index
$workspace_index
2012-10-26 14:25:30 +08:00
Reginald Kennedy
94c892a9de Add tile_gap option.
Pixel width of empty space between tiled windows.

Add region_padding option.
Pixel width of empty space within region borders.
2012-10-26 13:19:32 +08:00
Reginald Kennedy
ec0be0e550 Add new bar_border_unfocus[x] option. 2012-10-25 00:42:11 +08:00
Reginald Kennedy
a0da62cd50 Fix issue where stdin is selected when no bar_action script is running.
Change bar_extra_update to return 1 if bar_ext was changed; otherwise 0.

Call draw_bar in main instead of bar_extra_update.

Remove redundant bar_extra_running variable.

Use STDIN_FILENO/STDOUT_FILENO macros instead of 0/1.
2012-10-24 22:32:19 +08:00
Reginald Kennedy
18f0dc2ad0 Add focus region bindings 'rg_<n>'
Default is M-Keypad_<1-9>

Add move window to region bindings 'mvrg_<n>'
Default is M-S-Keypad_<1-9>

Add invisible input window to each region for handling region focus.

On unfocused regions, set the bar border color to color_unfocus.

Add function to handle MotionNotify events on region input windows.

Fix default focus on (re)start.

Fix region-related function and macro naming.
Names referred to 'screen' instead of 'region'

Rename screen_* bindings to rg_*.
screen_* is now an alias for rg_*; old config files will still work.

Fix screen/region wording in manpage.

Sort setkeybinding calls in setup_keys.

Cleanup redundant calls when setting up the bar.
2012-10-24 22:10:53 +08:00
Reginald Kennedy
f9064bf49a Kill bar script on an unclean exit. 2012-10-22 11:34:29 +08:00
Reginald Kennedy
3e78a0cd60 Ignore UnmapNotify if from an unmanaged child of a managed window. 2012-10-07 02:29:41 +08:00
Reginald Kennedy
1ddfc76bfe Fix toggle_bar not working on empty workspaces. 2012-10-04 02:05:33 +08:00
Reginald Kennedy
0bb9612bb2 Fix issue where multiple key actions might be handled simultaneously.
Improve debug output for keypress.
2012-09-30 02:18:31 +08:00
Reginald Kennedy
d4e682690a Fix focus fallback behavior when iconified windows exist in the ws. 2012-09-29 02:24:23 +08:00
Reginald Kennedy
db15c5644f Add check in focus_win to ignore windows that are unmapped.
Alphabetize configopt array.
2012-09-29 02:21:55 +08:00
Reginald Kennedy
c0604ed469 Fix windows not being unmapped on single-monitor fullscreen layout.
Fix stdin drain when bar is disabled.
2012-09-26 23:56:16 +08:00
Reginald Kennedy
3855da68fe Only read external script output when available in the main loop.
Rename bar_fmt_print to bar_draw.

Change all bar_update calls to bar_draw, except in main.

Rename bar_update to bar_extra_update.
To clarify, bar_extra_update reads the external bar script output and
redraws the bar if needed; bar_draw only redraws the bar with the
current external bar script output.
2012-09-25 22:57:03 +08:00
Reginald Kennedy
b6d8befdac Fix bar to correctly handle external script partial output. 2012-09-25 18:28:31 +08:00
Reginald Kennedy
1542089bc8 Add xcb_flush after bar_update in main loop. 2012-09-23 19:18:32 +08:00