Commit Graph

5131 Commits

Author SHA1 Message Date
Uli Schlachter 092813cd63 Ungrab the server before parsing the config
This moves the loading of the rc.lua and managing of pre-existing clients to
after we ungrab the server during startup. To make sure we have no races with
clients which start up parallel to awesome, we do the QueryTree for all the
clients that we have to manage before the ungrab, but start managing the clients
only after the ungrab.

This means that we have already selected our event mask on the root window in
scan() and thus received an UnmapNotify event when we reparent windows into a
frame window. This has the effect that we immediately unmanage the client again,
whoops.

To fix this, we grab the server again and remove our event mask on the root
window again while we reparent.

This should hopefully fix all cases where we deadlock during startup because
pulseaudio wants to talk to the X server, but is being ignored because we have
the server grabbed while at the same time we are waiting for pulseaudio.

Signed-off-by: Uli Schlachter <psychon@znc.in>
Signed-off-by: Julien Danjou <julien@danjou.info>
2011-10-21 17:08:39 +02:00
Ignas Anikevicius (gns_ank) 0e44a6282e Saving gama values in pngs to prevent compilation errors
Signed-off-by: Uli Schlachter <psychon@znc.in>
2011-10-17 13:19:22 +02:00
David Palacio 8fd3182869 Ignore desktop clients on taglist widget
Make the taglist widget skip unstickied and focused desktop clients
for status update by:
 * Ignoring focused client if it is of desktop type
 * Returning a list of clients from tag.clients without clients
   of desktop type.

Signed-off-by: Uli Schlachter <psychon@znc.in>
2011-10-04 20:22:31 +02:00
David Palacio cc0fc99a2c Desktop clients may not be visible on all tags.
Usually desktop clients are on a sticky state. If the client
is not sticky, only show on selected tags.

Signed-off-by: Uli Schlachter <psychon@znc.in>
2011-10-04 20:22:31 +02:00
Julien Danjou ddf8f096bf naughty: fix image data copy
Signed-off-by: Julien Danjou <julien@danjou.info>
2011-10-04 15:23:11 +02:00
Jacques-Pascal Deplaix 50bc79e516 awsetbg: Add the aspect option with feh
Signed-off-by: Uli Schlachter <psychon@znc.in>
2011-09-29 21:22:24 +02:00
Julien Danjou fccf12575f Use awesome.conffile in menu
Signed-off-by: Julien Danjou <julien@danjou.info>
2011-09-17 17:24:44 +02:00
Julien Danjou f0ca5e7505 Set the conffile value before executing the code
Signed-off-by: Julien Danjou <julien@danjou.info>
2011-09-17 17:21:34 +02:00
Uli Schlachter 8a04ce9c97 Fix restacking with zaphod mode (FS#835)
Boy was this code broken. It tried to stack windows ontop of each other which
were on different screens. However, since they didn't have the same parent, they
obviously couldn't be ontop of each other. The X server just reacted with a "wtf
are you doing?"-kind of error which means the restacking was ignored.

The fix is to restack each screen on its own, completely ignoring any windows
from other screens.

A big thanks goes to Siarhei Siamashka who bisected this issue and helped me
debugging it which took quite a while. Finally, he noticed that my first patch
was broken and also figured out the fix. Thanks!

v2: Move the check on "client_need_stack_refresh" from
client_stack_refresh_screen() into client_stack_refresh(), so that all screens
are restacked instead of just the first one.

Signed-off-by: Uli Schlachter <psychon@znc.in>
2011-09-12 22:19:59 +02:00
Anurag Priyam 49774897a4 naughty: add helper function, toggle() - suspend/resume notifications
Signed-off-by: Anurag Priyam <anurag08priyam@gmail.com>
Signed-off-by: Uli Schlachter <psychon@znc.in>
2011-07-24 19:30:59 +02:00
Perry Hargrave 99a16e6467 Update tasklist when client screen changes
This handles corner case where a client has no tags (e.g. stickied), but
is moved across screens.

Signed-off-by: Perry Hargrave <resixian@gmail.com>
Signed-off-by: Uli Schlachter <psychon@znc.in>
2011-07-08 18:18:38 +02:00
Perry Hargrave 187cf6d917 movetoscreen:Dont refocus the selected client
Signed-off-by: Perry Hargrave <resixian@gmail.com>
Signed-off-by: Uli Schlachter <psychon@znc.in>
2011-07-08 18:18:38 +02:00
Perry Hargrave d8883f89fc Retain focus on clients moved across screens (fs#620)
Signed-off-by: Perry Hargrave <resixian@gmail.com>
Signed-off-by: Uli Schlachter <psychon@znc.in>
2011-07-08 18:18:37 +02:00
Perry Hargrave a23817718e FS#917: Dont move clients with fixed positions
Signed-off-by: Uli Schlachter <psychon@znc.in>
2011-07-03 10:05:49 +02:00
Uli Schlachter 9b2a988ab7 Make sure russian manpages are installed (FS#907)
Signed-off-by: Uli Schlachter <psychon@znc.in>
2011-05-21 13:41:58 +02:00
Arnaud Fontaine c9f6b65c19 Update the code following release of xcb-util 0.3.8.
xcb-util is now split into several repositories since 0.3.8. This
release also cleaned up the API a lot, thus update the code
accordingly.

Signed-off-by: Arnaud Fontaine <arnau@debian.org>
Signed-off-by: Uli Schlachter <psychon@znc.in>
2011-05-16 20:55:19 +02:00
Julien Danjou c452795450 change codename
Signed-off-by: Julien Danjou <julien@danjou.info>
2011-05-16 16:35:17 +02:00
Perry Hargrave 7c3fb9edb7 awful.client.jumpto: View urgent clients smarter
Only do a tag.viewonly() if the urgent client is not visible.

Further, if the boolean 'merge' parameter is true [default false], then
to a tag.viewmore() with all the currently visible tags.

Signed-off-by: Uli Schlachter <psychon@znc.in>
2011-05-13 15:14:34 +02:00
Uli Schlachter 30b0f1c654 Fix a minor typos
Thanks to anrxc for noticing the graph one.

Signed-off-by: Uli Schlachter <psychon@znc.in>
2011-05-07 16:05:05 +02:00
Enric Morales d74f7c6324 Add imlibsetroot setter to awsetbg script.
Signed-off-by: Enric Morales <spam@enric.me>
Signed-off-by: Uli Schlachter <psychon@znc.in>
2011-05-02 21:48:30 +02:00
Radu Andries ff8b45b77a naughty: escape title too
Signed-off-by: Uli Schlachter <psychon@znc.in>
2011-05-01 15:22:03 +02:00
Uli Schlachter 1df8e29772 Clarify the mod+n keybinding
Minimized clients can't have the input focus, so this key binding can't be used
for unminimizing them. Hopefully this clarifies the reason why.

Signed-off-by: Uli Schlachter <psychon@znc.in>
2011-04-28 20:16:16 +02:00
Anurag Priyam 1495df51ba awesomerc: minimize/restore client on a left click in the tasklist entry
In the bundled rc.lua, mouse button 1 on a tasklist entry was configured to
bring the corresponding client to focus. Modify it to minimize the client if
already focussed.

Such (default) behavior seems more natural.

Signed-off-by: Anurag Priyam <anurag08priyam@gmail.com>
Signed-off-by: Uli Schlachter <psychon@znc.in>
2011-04-28 20:16:14 +02:00
Uli Schlachter 941658735d awful.autofocus: Also react on "tagged" signal (FS#883)
Apparently some people start a timer, switch to an empty tag and then let the
timer move a client to that empty tag. This change makes sure that this new
client will get the input focus in this case.

Signed-off-by: Uli Schlachter <psychon@znc.in>
2011-04-16 16:02:15 +02:00
Konstantin Stepanov 81922aed5d russian man pages
Signed-off-by: Uli Schlachter <psychon@znc.in>
2011-04-13 19:27:52 +02:00
Uli Schlachter 12c1b0ce52 "Handle" events during startup (FS#877)
awesome.c contains this comment:

    There can be no events yet, so if his function returns something, it must be
    an error.

Sadly, this wasn't true. It seems like something managed to generate
MappingNotify events (no idea how).

Fix this by discarding all pending events after our GrabServer, but before we
ask for SubstructureRedirect on the root window.

Signed-off-by: Uli Schlachter <psychon@znc.in>
2011-04-10 14:34:30 +02:00
Julien Danjou 6c6e3a22f8 awful.rules: fix typo in example
Signed-off-by: Julien Danjou <julien@danjou.info>
2011-03-29 09:37:17 +02:00
Anurag Priyam 55f5ba6911 rules: allow defining exceptions to a rule - except, and except_any
So you want to make all Firefox windows floating except the main window
(instance = Navigator). You can either list all possible windows in
rules and make them floating, or make all of them floating except one:

{ rule = { class = "Firefox" },
  except = { instance = "Navigator" },
  properties = {floating = true},
}

More examples in the docs.

Signed-off-by: Anurag Priyam <anurag08priyam@gmail.com>
Signed-off-by: Uli Schlachter <psychon@znc.in>
2011-03-29 09:26:18 +02:00
Gregor Best 44b8549770 awful.mouse: fix interclient border snapping
Signed-off-by: Gregor Best <gbe@ring0.de>
Signed-off-by: Uli Schlachter <psychon@znc.in>
2011-03-28 12:26:42 +02:00
Chris Newton ef3a7bb1b0 Added a flag to the exit signal
This boolean can be used to differentiate between restarts and exits.

Signed-off-by: Uli Schlachter <psychon@znc.in>
2011-03-21 07:43:29 +01:00
Gregor Best 35a5a74744 awful.mouse: fix client snapping
Signed-off-by: Gregor Best <gbe@ring0.de>
Signed-off-by: Uli Schlachter <psychon@znc.in>
2011-03-21 07:38:53 +01:00
Andres Freund 3f40feb3c4 Correct typo in awful.client.restore
This corrects a type in awful.client.restore which caused it not to restore any
client at all  if all clients are minimized.

Signed-off-by: Uli Schlachter <psychon@znc.in>
2011-03-02 18:54:39 +01:00
Uli Schlachter 6fe0c27930 Fix size restore on unfullscreening
When a window is restored back to normal resize from fullscreen mode, its
geometry got smaller by its titlebar's size. Fix this by adding the titlebar
geometry to the client's geometry at the correct place.

Thanks to anrxc for reporting this and helping me debug it.

Signed-off-by: Uli Schlachter <psychon@znc.in>
2011-03-01 22:15:56 +01:00
Uli Schlachter b2e2959be8 awful.placement.no_overlap: Honor original position
awful.placement.no_overlap caused clients on an otherwise empty desktop to stich
to the top-left corner of the screen because it always preferred the top-left
corner of the available space.

This commit doesn't change the way in which the available area is computed, but
instead this now tries to keep the client at its original position if that is
available.

This fixes cases where calling awful.placement.no_overlap as a callback from an
awful.rule rule didn't work because the manage signal in the default config
later overrode that via calling awful.placement.no_overlap.

Signed-off-by: Uli Schlachter <psychon@znc.in>
2011-03-01 17:55:56 +01:00
Thomas Moschny d2b684d4a3 Normalize icon path names (fixes #869).
The elements in ${icon_sources}, as returned by file(GLOB ...) contain
double slashes, could be a bug in cmake. This causes building with
cmake 2.8.4 to fail, due to dependency problems lateron.

This patch works around the issue by normalizing all path names in
${icon_sources} while appending them to ${ALL_ICONS}, thereby removing
the double slashes.

Signed-off-by: Uli Schlachter <psychon@znc.in>
2011-02-21 18:07:42 +01:00
Uli Schlachter b87fc48230 Bind awful.client.restore to mod+ctrl+n
Signed-off-by: Uli Schlachter <psychon@znc.in>
2011-02-19 22:28:49 +01:00
Uli Schlachter 2963a32d44 Add awful.client.restore()
This restores the first minimized client it finds on the selected tags.

Optionally, this function accepts a screen number as its first argument.

Signed-off-by: Uli Schlachter <psychon@znc.in>
2011-02-19 22:28:36 +01:00
Uli Schlachter 64bb0bea08 tasklist: Update when a c.minimized changes
This fixes a bug where the tasklist would still show its old content after a
client was minimized/unminized because it didn't connect to the appropriate
signal.

This wasn't noticed before, because in most cases minimizing a client also
unfocuses this client which causes a tasklist update.

Signed-off-by: Uli Schlachter <psychon@znc.in>
2011-02-19 22:28:14 +01:00
Uli Schlachter f6907e1296 awful.client.floating.toggle: Fix for dialogs
awful.client.floating.get() does some sensible defaults. E.g. dialogs are
floating by default. Since floating.toggle only checked the property, these
defaults made it break.

So floating.toggle() should use floating.get to decide if a given client is
floating. It should also use "false" instead of "nil" when the client is made
non-floating or else the default will apply again.

Thanks to vsp for making me figure this out. :)

Signed-off-by: Uli Schlachter <psychon@znc.in>
2011-02-10 23:05:44 +01:00
André Aparício 3dd4cc3226 Fix default naughty preset for dbus notifications
Signed-off-by: Uli Schlachter <psychon@znc.in>
2011-02-03 18:07:52 +01:00
Benoît Ryder 1513f399e1 Don't ignore forced width for textbox with background image.
Signed-off-by: Uli Schlachter <psychon@znc.in>
2011-02-01 19:50:53 +01:00
Benoît Ryder 89c3e7411d Fixed copy/paste bugs.
Signed-off-by: Uli Schlachter <psychon@znc.in>
2011-02-01 19:50:53 +01:00
jpike 3eb12cdf00 Add naughty.config.notify_callback
This optional callback can be used for filtering and/or editing
notifications.

Signed-off-by: Uli Schlachter <psychon@znc.in>
2011-01-28 21:05:01 +01:00
Uli Schlachter 23ff7a8414 Don't focus a different screen on unmanage (FS#850)
When some client on the left monitor was closed while client.focus is on the
right monitor (e.g. 'sleep 5 ; exit' in a terminal), awful.autofocus would shift
the input focus to whatever client happened to be next in the focus history on
the left monitor.

Fix this by only ever moving the input focus between screens when a tag is
selected, not when some client does its magic.

Signed-off-by: Uli Schlachter <psychon@znc.in>
2011-01-27 22:27:53 +01:00
Anurag Priyam b805492c2a add usage example for awful.menu
Added a very simple example to show the usage, and applicability of
awful.menu by dynamically constructing a menu of clients that match a
particular rule.

Signed-off-by: Anurag Priyam <anurag08priyam@gmail.com>
Signed-off-by: Uli Schlachter <psychon@znc.in>
2011-01-26 22:10:32 +01:00
Anurag Priyam 41ba50fde2 fix minor grammar, and typo in awful.menu.new's documentation
Signed-off-by: Anurag Priyam <anurag08priyam@gmail.com>
Signed-off-by: Uli Schlachter <psychon@znc.in>
2011-01-26 22:10:32 +01:00
Anurag Priyam 9c3731c782 add markup to awful.menu.new's documentation
Display the possible keys to the 'menu' params as a bullet list
(unreadable otherwise).

Signed-off-by: Anurag Priyam <anurag08priyam@gmail.com>
Signed-off-by: Uli Schlachter <psychon@znc.in>
2011-01-26 22:10:32 +01:00
Uli Schlachter 12c7e2852f Tag clients more intelligently (FS#700)
Before this commit, c:tags(tags) and t:clients(clients) first removed all
tags/clients and then added the new one.

This is now changed into only removing the tags/clients that have to be removed
and leaving the others in place. Hopefully, this avoids all kinds of weird
issues which we had.

Signed-off-by: Uli Schlachter <psychon@znc.in>
2011-01-18 14:24:43 +01:00
Julien Danjou 95ae751bad change codename
Signed-off-by: Julien Danjou <julien@danjou.info>
2011-01-17 12:38:13 +01:00
Anurag Priyam 8fc605abb8 add usage example for keygrabber API
To demonstrate keygrabber API usage, I added a small function to the
docs that can be bound to a key and used to resize clients using
keyboard.

Signed-off-by: Anurag Priyam <anurag08priyam@gmail.com>
Signed-off-by: Uli Schlachter <psychon@znc.in>
2011-01-16 20:20:34 +01:00