]> git.lizzy.rs Git - bspwm.git/log
bspwm.git
7 years agoFix link to the K&R C book
Bastien Dejean [Sat, 9 Jul 2016 17:14:45 +0000 (19:14 +0200)]
Fix link to the K&R C book

Fixes #512.

7 years agoFix focus history as soon as possible
Bastien Dejean [Sun, 26 Jun 2016 14:58:52 +0000 (16:58 +0200)]
Fix focus history as soon as possible

Fixes #509.

8 years agoFix missing new line in border_width response
Bastien Dejean [Sat, 28 May 2016 07:45:40 +0000 (09:45 +0200)]
Fix missing new line in border_width response

8 years agoAdd setting: pointer_motion_interval
Bastien Dejean [Sat, 28 May 2016 07:43:05 +0000 (09:43 +0200)]
Add setting: pointer_motion_interval

Fixes #482.

8 years agoAdd current logo
Bastien Dejean [Fri, 27 May 2016 10:12:41 +0000 (12:12 +0200)]
Add current logo

Fixes #495.

8 years agoProvide computed selectors for the external rules
Bastien Dejean [Tue, 24 May 2016 14:32:40 +0000 (16:32 +0200)]
Provide computed selectors for the external rules

It might be useful to know what the computed monitor, desktop and node
consequences of the built-in phase are when we enter the external phase
of the rule processing mechanism.

8 years agoFix null pointer dereference in restore_tree
Bastien Dejean [Sun, 22 May 2016 14:56:07 +0000 (16:56 +0200)]
Fix null pointer dereference in restore_tree

8 years agoProvide a way to disable built-in pointer bindings
Bastien Dejean [Sat, 21 May 2016 19:31:14 +0000 (21:31 +0200)]
Provide a way to disable built-in pointer bindings

Fixes #490.

8 years agoAccept an optional reference in all the selectors
Bastien Dejean [Fri, 20 May 2016 09:41:36 +0000 (11:41 +0200)]
Accept an optional reference in all the selectors

Fixes #486.

8 years agoStart with the focused node in @DESKTOP_SEL:
Bastien Dejean [Fri, 20 May 2016 09:10:19 +0000 (11:10 +0200)]
Start with the focused node in @DESKTOP_SEL:

8 years agoResolve node paths relative to the given reference
Bastien Dejean [Thu, 19 May 2016 19:26:20 +0000 (21:26 +0200)]
Resolve node paths relative to the given reference

8 years agoCatch more invalid paths in node_from_desc
Bastien Dejean [Thu, 19 May 2016 19:10:10 +0000 (21:10 +0200)]
Catch more invalid paths in node_from_desc

For example, `query -N -n @/parent` will now fail.

8 years agoSometimes a break isn't enough
Bastien Dejean [Thu, 19 May 2016 18:18:56 +0000 (20:18 +0200)]
Sometimes a break isn't enough

Fixes #488.

8 years agoMake the *focused* modifiers less restrictive
Bastien Dejean [Wed, 18 May 2016 19:29:32 +0000 (21:29 +0200)]
Make the *focused* modifiers less restrictive

Example: `bspc query -N -d '^3' -n .focused` will return the ID of the
focused node of the third desktop.

8 years agoSet the WM_NAME property of each monitor's root
Bastien Dejean [Wed, 18 May 2016 19:13:27 +0000 (21:13 +0200)]
Set the WM_NAME property of each monitor's root

For example, `xdo id -N Bspwm -n root -a LVDS1` now returns the ID of
the root window of the monitor named LVDS1.

8 years agoDon't show presel feedbacks for the monocle layout
Bastien Dejean [Mon, 16 May 2016 08:33:22 +0000 (10:33 +0200)]
Don't show presel feedbacks for the monocle layout

Fixes #367.

8 years agoClose file descriptor in read_string
Bastien Dejean [Sat, 14 May 2016 15:56:34 +0000 (17:56 +0200)]
Close file descriptor in read_string

8 years agoFix memory leak in remove_node
Bastien Dejean [Sat, 14 May 2016 15:43:42 +0000 (17:43 +0200)]
Fix memory leak in remove_node

8 years agoDon't emit invalid desktop_focus events
Bastien Dejean [Fri, 13 May 2016 19:27:11 +0000 (21:27 +0200)]
Don't emit invalid desktop_focus events

8 years agoHandle sticky nodes in activate_desktop
Bastien Dejean [Fri, 13 May 2016 16:39:06 +0000 (18:39 +0200)]
Handle sticky nodes in activate_desktop

8 years agoAdd fish shell completion.
Nathan Isom [Wed, 11 May 2016 21:59:01 +0000 (16:59 -0500)]
Add fish shell completion.
fixes #459.

8 years agoAdd links to the Debian guide and packages
Bastien Dejean [Wed, 11 May 2016 07:57:36 +0000 (09:57 +0200)]
Add links to the Debian guide and packages

8 years agoAdd missing node_geometry events in track_pointer
Bastien Dejean [Tue, 10 May 2016 08:46:14 +0000 (10:46 +0200)]
Add missing node_geometry events in track_pointer

Fixes #472.

8 years agoDon't erase the parent too soon in unlink_node
Bastien Dejean [Tue, 10 May 2016 08:21:46 +0000 (10:21 +0200)]
Don't erase the parent too soon in unlink_node

Fixes #476.

8 years agoIgnore enter notify events in draw_presel_feedback
Bastien Dejean [Tue, 10 May 2016 07:48:17 +0000 (09:48 +0200)]
Ignore enter notify events in draw_presel_feedback

Fixes #474.

8 years agoDon't filter desktops in merge_monitors
Bastien Dejean [Mon, 9 May 2016 16:51:41 +0000 (18:51 +0200)]
Don't filter desktops in merge_monitors

Fixes #455.

8 years agoDon't use a domain target as reference
Bastien Dejean [Mon, 9 May 2016 16:43:03 +0000 (18:43 +0200)]
Don't use a domain target as reference

Otherwise, the behavior of, for example, `desktop prev -s next` is
unexpected.

8 years agoAdd node modifiers: {descendant,ancestor}_of
Bastien Dejean [Mon, 9 May 2016 14:55:31 +0000 (16:55 +0200)]
Add node modifiers: {descendant,ancestor}_of

Fixes #473.

8 years agoHandle failure of activate_desktop
Bastien Dejean [Mon, 9 May 2016 11:40:31 +0000 (13:40 +0200)]
Handle failure of activate_desktop

8 years agoMention the default reference
Bastien Dejean [Mon, 9 May 2016 11:37:45 +0000 (13:37 +0200)]
Mention the default reference

8 years agoDon't try to skip nodes in query_node_ids_in
Bastien Dejean [Sun, 8 May 2016 08:21:55 +0000 (10:21 +0200)]
Don't try to skip nodes in query_node_ids_in

Trying to return non-overlapping sub-trees in query_node_ids_in isn't a
good idea after all, because some modifiers aren't compatible with the
idea: if *b* is a descendant of *a*, `a.hidden => b.hidden` is true,
but `a.!automatic => b.!automatic` is false.

8 years agoUpdate contribution instructions
Bastien Dejean [Fri, 6 May 2016 12:26:10 +0000 (14:26 +0200)]
Update contribution instructions

8 years agoFix gcc warnings
Bastien Dejean [Fri, 6 May 2016 08:10:27 +0000 (10:10 +0200)]
Fix gcc warnings

8 years agoRemove setting: history_aware_focus
Bastien Dejean [Thu, 28 Apr 2016 08:33:30 +0000 (10:33 +0200)]
Remove setting: history_aware_focus

The new implementation of the DIR descriptor is based on
[right-window](https://github.com/ntrrgc/right-window).

Fixes #467.

8 years agoReturn early when possible in set_*_local
Bastien Dejean [Wed, 27 Apr 2016 18:23:07 +0000 (20:23 +0200)]
Return early when possible in set_*_local

Fixes #466.

8 years agoDon't confine the DIR descriptor
Bastien Dejean [Fri, 22 Apr 2016 10:32:10 +0000 (12:32 +0200)]
Don't confine the DIR descriptor

8 years agoRemove unnecessary headers
Bastien Dejean [Thu, 21 Apr 2016 09:19:11 +0000 (11:19 +0200)]
Remove unnecessary headers

8 years agoRemove unused function
Bastien Dejean [Thu, 21 Apr 2016 09:16:34 +0000 (11:16 +0200)]
Remove unused function

8 years agoRemove setting: focus_by_distance
Bastien Dejean [Thu, 21 Apr 2016 08:45:05 +0000 (10:45 +0200)]
Remove setting: focus_by_distance

Unfortunately nearest_from_tree is rather useless because it can't skip
vacant or receptacle nodes.

Therefore, *focus_by_distance* is now the default.

8 years agoUse the proper reference in find_closest_desktop
Bastien Dejean [Thu, 21 Apr 2016 08:18:43 +0000 (10:18 +0200)]
Use the proper reference in find_closest_desktop

Fixes #462.

8 years agoDon't confine the CYCLE_DIR descriptor
Bastien Dejean [Wed, 20 Apr 2016 19:04:15 +0000 (21:04 +0200)]
Don't confine the CYCLE_DIR descriptor

Fixes #212.

8 years agoAvoid accessing freed nodes in cancel_presel
Bastien Dejean [Wed, 20 Apr 2016 18:25:55 +0000 (20:25 +0200)]
Avoid accessing freed nodes in cancel_presel

Since cancel_presel is called by destroy_tree, we have to be careful not
to access any node besides n.

8 years agoDisable enter notify events in cancel_presel
Bastien Dejean [Wed, 20 Apr 2016 14:59:26 +0000 (16:59 +0200)]
Disable enter notify events in cancel_presel

Fixes #461.

8 years agoHonor FFP in initialize_presel_feedback
Bastien Dejean [Tue, 19 Apr 2016 18:55:19 +0000 (20:55 +0200)]
Honor FFP in initialize_presel_feedback

8 years agoAdd node descriptor: pointed
Bastien Dejean [Tue, 19 Apr 2016 18:49:22 +0000 (20:49 +0200)]
Add node descriptor: pointed

Fixes #456.

8 years agoConsolidate focus_follows_pointer
Bastien Dejean [Mon, 18 Apr 2016 11:54:00 +0000 (13:54 +0200)]
Consolidate focus_follows_pointer

Fixes #454.

8 years agoFix using uninitialized value
Campbell Barton [Mon, 18 Apr 2016 04:36:02 +0000 (14:36 +1000)]
Fix using uninitialized value

Currently with bspwm, the urgent member is read before being set.

Valgrind output:

```
==17037== Conditional jump or move depends on uninitialised value(s)
==17037==    at 0x409C06: focus_node (tree.c:503)
==17037==    by 0x40FF89: enter_notify (events.c:355)
==17037==    by 0x40F3C2: handle_event (events.c:61)
==17037==    by 0x404406: main (bspwm.c:180)
==17037==  Uninitialised value was created by a heap allocation
==17037==    at 0x4C2ABD0: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==17037==    by 0x40A0A0: make_client (tree.c:619)
==17037==    by 0x4117E0: manage_window (window.c:131)
==17037==    by 0x41142A: schedule_window (window.c:67)
==17037==    by 0x4124D2: adopt_orphans (window.c:391)
==17037==    by 0x417FC9: cmd_wm (messages.c:1132)
==17037==    by 0x413DAA: process_message (messages.c:100)
==17037==    by 0x413C22: handle_message (messages.c:81)
==17037==    by 0x4043A2: main (bspwm.c:170)
```

8 years agoOnly alter the visibility of the shown windows
Bastien Dejean [Sat, 16 Apr 2016 19:15:45 +0000 (21:15 +0200)]
Only alter the visibility of the shown windows

8 years agoRestore/dump monitors and desktops pointers as IDs
Bastien Dejean [Sat, 16 Apr 2016 18:50:53 +0000 (20:50 +0200)]
Restore/dump monitors and desktops pointers as IDs

8 years agoCatch some of the invalid queries
Bastien Dejean [Sat, 16 Apr 2016 16:43:42 +0000 (18:43 +0200)]
Catch some of the invalid queries

8 years agoUpdate EWMH hidden state
Bastien Dejean [Sat, 16 Apr 2016 16:22:49 +0000 (18:22 +0200)]
Update EWMH hidden state

8 years agoAdd node flag: hidden
Bastien Dejean [Sat, 16 Apr 2016 16:13:31 +0000 (18:13 +0200)]
Add node flag: hidden

Fixes #229.

8 years agoleaf_monocle --> single_monocle completion.
Nathan Isom [Sat, 16 Apr 2016 00:20:23 +0000 (19:20 -0500)]
leaf_monocle --> single_monocle completion.

8 years agoImplement focus_follows_pointer via enter_notify
Bastien Dejean [Fri, 15 Apr 2016 17:11:30 +0000 (19:11 +0200)]
Implement focus_follows_pointer via enter_notify

I found a simple fix for #268.

8 years agoFix infinite loop in closest_monitor
Bastien Dejean [Fri, 15 Apr 2016 15:53:21 +0000 (17:53 +0200)]
Fix infinite loop in closest_monitor

8 years agoTry not to freeze the server
Bastien Dejean [Fri, 15 Apr 2016 15:11:07 +0000 (17:11 +0200)]
Try not to freeze the server

Otherwise, we might end up with a frozen server when trying to perform
pointer actions on an unmanaged window.

8 years agoRely on precomputed rectangles whenever possible
Bastien Dejean [Fri, 15 Apr 2016 14:34:45 +0000 (16:34 +0200)]
Rely on precomputed rectangles whenever possible

8 years agoAllow multiple constraints for the *query* domain
Bastien Dejean [Thu, 14 Apr 2016 21:15:58 +0000 (23:15 +0200)]
Allow multiple constraints for the *query* domain

Example:
    bspc query -N -d '^3' -n .window

The above command will list the IDs of the windows of the third desktop.

8 years agoDon't restrict `node --flag` to windows
Bastien Dejean [Thu, 14 Apr 2016 14:56:14 +0000 (16:56 +0200)]
Don't restrict `node --flag` to windows

This fixes a regression introduced by e8aa679.

8 years agoFix missing NULL check
Campbell Barton [Mon, 11 Apr 2016 20:09:15 +0000 (06:09 +1000)]
Fix missing NULL check

could crash when windows were unmapped within a script.

8 years agoOnly grab what needs to be grabbed
Bastien Dejean [Mon, 11 Apr 2016 18:26:48 +0000 (20:26 +0200)]
Only grab what needs to be grabbed

8 years agoUse the proper type for the return value of getopt
Bastien Dejean [Mon, 11 Apr 2016 16:37:49 +0000 (18:37 +0200)]
Use the proper type for the return value of getopt

8 years agoDon't return a freed node from insert_node
Bastien Dejean [Mon, 11 Apr 2016 16:13:05 +0000 (18:13 +0200)]
Don't return a freed node from insert_node

8 years agoRemove hard-wired node DIR fallback
Bastien Dejean [Mon, 11 Apr 2016 15:58:05 +0000 (17:58 +0200)]
Remove hard-wired node DIR fallback

8 years agoRemove obsolete descriptor
Bastien Dejean [Mon, 11 Apr 2016 15:51:24 +0000 (17:51 +0200)]
Remove obsolete descriptor

8 years agoCleanup: indentation
Campbell Barton [Sun, 10 Apr 2016 20:07:48 +0000 (06:07 +1000)]
Cleanup: indentation

Mixing tabs/spaces

8 years agoAdd getter for pointer_action<n>
Bastien Dejean [Sun, 10 Apr 2016 20:33:02 +0000 (22:33 +0200)]
Add getter for pointer_action<n>

8 years agoMention pointer_action<n> where it makes sense
Bastien Dejean [Sun, 10 Apr 2016 20:24:25 +0000 (22:24 +0200)]
Mention pointer_action<n> where it makes sense

8 years agoDon't needlessly ungrab/grab the buttons
Bastien Dejean [Sun, 10 Apr 2016 20:12:22 +0000 (22:12 +0200)]
Don't needlessly ungrab/grab the buttons

8 years agoMake mouse button actions configurable
Campbell Barton [Sun, 10 Apr 2016 16:53:05 +0000 (02:53 +1000)]
Make mouse button actions configurable

Previously this was possible via key bindings, since this operation was removed,
its useful to be able to configure which mouse keys do what.

This example swaps LMB/RMB

```
bspc config pointer_action1 resize_corner
bspc config pointer_action3 move
```

8 years agoFix default ICCCM input hint value
Bastien Dejean [Sun, 10 Apr 2016 12:34:24 +0000 (14:34 +0200)]
Fix default ICCCM input hint value

8 years agoFix typo
Bastien Dejean [Sat, 9 Apr 2016 12:08:54 +0000 (14:08 +0200)]
Fix typo

8 years agoReinstate built-in pointer bindings
Bastien Dejean [Thu, 7 Apr 2016 16:08:32 +0000 (18:08 +0200)]
Reinstate built-in pointer bindings

8 years agoFix ID format in test window
Bastien Dejean [Tue, 29 Mar 2016 10:33:28 +0000 (12:33 +0200)]
Fix ID format in test window

8 years agoOnly allow null nodes for the PATH descriptor
Bastien Dejean [Sun, 27 Mar 2016 08:48:57 +0000 (10:48 +0200)]
Only allow null nodes for the PATH descriptor

Fixes #434.

8 years agoTransfer nodes moved via configure requests
Bastien Dejean [Sat, 26 Mar 2016 13:25:40 +0000 (14:25 +0100)]
Transfer nodes moved via configure requests

Fixes #431.

8 years agoIntroduce receptacles
Bastien Dejean [Sat, 26 Mar 2016 10:47:17 +0000 (11:47 +0100)]
Introduce receptacles

A receptacle is an unfocusable empty leaf node.

Receptacles are used for building a tree without creating windows.

Example:

    bspc node -i
    bspc node @/ -p east -i
    bspc node @/2 -p north -i

    bspc rule -a Abc:abc -o node=@/1
    bspc rule -a Ijk:ijk -o node=@/2/1
    bspc rule -a Xyz:xyz -o node=@/2/2

Fixes #259.

8 years agoUpdate domain list in Bash and ZSH completions
Bastien Dejean [Wed, 23 Mar 2016 10:42:33 +0000 (11:42 +0100)]
Update domain list in Bash and ZSH completions

8 years agoZero-pad printed IDs
Bastien Dejean [Wed, 23 Mar 2016 10:24:47 +0000 (11:24 +0100)]
Zero-pad printed IDs

It seems that people expect all IDs to have the same length (#361).

And the maximum possible ID is 0x1fffffff (cf. the X11 protocol).

8 years agoFail verbosely
Bastien Dejean [Mon, 21 Mar 2016 13:28:04 +0000 (14:28 +0100)]
Fail verbosely

Along the way, we also fixed the handling of the `*_padding`,
`window_gap` and `border_width` settings. The previous behavior was the
result of a bad decision (9fed780), as a response to #141. Many issues
followed: #143, #158, #260, etc. We now handle those settings as
intuitively as possible.

We also fixed a potential segfault in `cmd_node`, triggered by `bspc
node -d`[sic].

Fixes #402 #252.

8 years agoFix handling of ID/name frictions
Bastien Dejean [Sun, 20 Mar 2016 09:38:11 +0000 (10:38 +0100)]
Fix handling of ID/name frictions

It seems that `resource_base_id` isn't the lower bound of the set of
possible IDs.

8 years agoAdd IDs to desktops and monitors
Bastien Dejean [Wed, 16 Mar 2016 14:15:27 +0000 (15:15 +0100)]
Add IDs to desktops and monitors

There's no constraints on desktop and monitor names, therefore, using a
desktop or monitor name as descriptor is ambiguous.

We put an end to this ambiguity by introducing desktop and monitor IDs.

`bspc query -{M,D}` now yields IDs instead of names.

Fixes #397.

8 years agoDon't try to print pointers as strings
Bastien Dejean [Wed, 16 Mar 2016 09:26:38 +0000 (10:26 +0100)]
Don't try to print pointers as strings

8 years agoIntroduce VERCMD in Makefile
Bastien Dejean [Wed, 16 Mar 2016 09:13:45 +0000 (10:13 +0100)]
Introduce VERCMD in Makefile

This is useful when the author has to make a release commit, in which
case `make doc` is required, but, because the tag doesn't exist yet, the
output of VERCMD won't be what we want. Therefore, we need to override
VERCMD for the *doc* target: `make VERCMD=false doc`.

8 years agoFix VERSION definition in Makefile
Bastien Dejean [Tue, 15 Mar 2016 16:06:25 +0000 (17:06 +0100)]
Fix VERSION definition in Makefile

Fixes #414

8 years agoVersion 0.9.1
Bastien Dejean [Tue, 15 Mar 2016 09:14:20 +0000 (10:14 +0100)]
Version 0.9.1

8 years agoUpdate the stacking list when removing a node
Bastien Dejean [Fri, 26 Feb 2016 21:14:26 +0000 (22:14 +0100)]
Update the stacking list when removing a node

Because `stack` isn't called in `focus_node`, when `n == NULL`.

8 years agoFix gcc warning regarding uninitialized variable
Bastien Dejean [Fri, 26 Feb 2016 21:08:59 +0000 (22:08 +0100)]
Fix gcc warning regarding uninitialized variable

8 years agoInitially center the pointer on `mon`
Bastien Dejean [Fri, 26 Feb 2016 14:28:42 +0000 (15:28 +0100)]
Initially center the pointer on `mon`

Fixes #407.

8 years agoExtract geometric functions from helpers.c
Bastien Dejean [Fri, 26 Feb 2016 13:22:03 +0000 (14:22 +0100)]
Extract geometric functions from helpers.c

8 years agoDon't change the index of the primary monitor
Bastien Dejean [Wed, 24 Feb 2016 09:55:24 +0000 (10:55 +0100)]
Don't change the index of the primary monitor

8 years agoSort monitors by natural visual hierarchy
Bastien Dejean [Tue, 23 Feb 2016 20:19:12 +0000 (21:19 +0100)]
Sort monitors by natural visual hierarchy

Fixes #405.

8 years agoDon't add a monitor without desktops
Bastien Dejean [Tue, 23 Feb 2016 20:16:46 +0000 (21:16 +0100)]
Don't add a monitor without desktops

8 years agoUse the term `DESKTOP_SEL` consistently
Bastien Dejean [Mon, 22 Feb 2016 19:47:57 +0000 (20:47 +0100)]
Use the term `DESKTOP_SEL` consistently

8 years agoDon't try to use a pointer after freeing it
Bastien Dejean [Fri, 12 Feb 2016 21:59:37 +0000 (22:59 +0100)]
Don't try to use a pointer after freeing it

8 years agoDon't try to guess the window rectangle
Bastien Dejean [Fri, 12 Feb 2016 21:49:06 +0000 (22:49 +0100)]
Don't try to guess the window rectangle

Fixes #394.

8 years agoDon't generate redundant events in apply_layout
Bastien Dejean [Thu, 11 Feb 2016 17:37:48 +0000 (18:37 +0100)]
Don't generate redundant events in apply_layout

Fixes #393.

8 years agoAdd event: monitor_swap
Bastien Dejean [Mon, 1 Feb 2016 10:46:03 +0000 (11:46 +0100)]
Add event: monitor_swap

8 years agoAdd global setting: *paddingless_monocle*
Bastien Dejean [Sun, 10 Jan 2016 17:29:51 +0000 (18:29 +0100)]
Add global setting: *paddingless_monocle*

Fixes #365.

8 years agoHandle non-leaf nodes in nearest_from_distance
Bastien Dejean [Thu, 7 Jan 2016 09:18:32 +0000 (10:18 +0100)]
Handle non-leaf nodes in nearest_from_distance

Fixes #363.