Commit Graph

860 Commits

Author SHA1 Message Date
Roy Crihfield 02bfd06038 menubar: quote special chars
- Simplified & renamed nocase function
 - Add pattern-quoting functions to awful.util:
   - awful.util.query_to_pattern
   - awful.util.quote_pattern
 - awful.util: Add basic unit tests for menubar query

Fixes https://github.com/awesomeWM/awesome/issues/84.
2015-02-06 18:27:38 +01:00
Daniel Hahler 704cf21b68 completion: quote strings passed to the shell
The strings passed to the shell completion machinery need to be quoted.
2015-01-24 11:15:17 +01:00
Uli Schlachter 254e50d88c Partly revert commit 90fde1393f
That commit made awful.tag use timer.delayed_call() to call withcurrent() during
the manage signal. The idea was "if nothing else assigns any tags until the end,
apply some default ones".

However, the C core refuses to set the input focus to an unviewable client and
thus this means that setting the input focus during manage failed. So, instead
of using the delayed_call(), just call withcurrent() directly, like we did
before.

However, some part of that commit is still left: Awful.rules no longer
disconnects the withcurrent() callback from the "manage" signal. This was
originally added in commit 5e7ddd1efa, because it clients flickered otherwise if
they were moved to some unselected tag during "manage". This happened because
the C code unbanned the client when it got assigned the input focus and only
later did some other code move it to some unselected tag.

However, this flickering will no longer occur, because commit 3dbf89c990 added
lazy focus setting. Thanks to this, setting the focus no longer unbans a client
as a side-effect. Thus, if you focus a client and then remove it from all
selected tags, nothing will be visible on-screen.

To make a long story short: This commit reverts the part of commit 90fde1393f
which caused side effects. The part that wasn't necessary any more is left in.

Signed-off-by: Uli Schlachter <psychon@znc.in>
2015-01-23 20:51:35 +01:00
Daniel Hahler 532c113e1f minor: doc fixes for keygrabber.lua 2015-01-21 08:33:03 +01:00
Uli Schlachter 90fde1393f awful.tag: Use delayed_call to call withcurrent on manage
This way this function runs after everything else did its job. The client will
only get assigned a tag after everything else had a chance to do so.

Thanks to this, awful.rules no longer has to disconnect the call to withcurrent.

Signed-off-by: Uli Schlachter <psychon@znc.in>
2015-01-11 11:19:04 +01:00
Uli Schlachter 2e286a45d8 awful.mouse.finder: Remove rounded_corners call
Let's just quote a mail I received from Rastislav Barlik:

I tried to make use of awful.mouse.finder but I found out that it's not working
as supporting functions rounded_corners were removed with commit
03e0ee53d2.

Signed-off-by: Uli Schlachter <psychon@znc.in>
2015-01-10 20:28:26 +01:00
Uli Schlachter 0f02ed0e15 Merge branch 'patch-1' of git://github.com/findkiko/awesome 2015-01-10 12:56:46 +01:00
Uli Schlachter ed3f93ceb9 Merge branch 'simplify-calc_timeout' of git://github.com/blueyed/awesome 2015-01-10 01:22:47 +01:00
Daniel Hahler 8261e02a0b Simplify `calc_timeout` with textclock
Ref: 8dc6fa8666 (commitcomment-8867170)
2015-01-06 16:41:56 +01:00
Rastislav Barlik ac5f8c69a7 Displaying only selected tags in taglist
Add taglist.filter.selected() for displaying only currently selected tags
2015-01-06 12:49:19 +01:00
Uli Schlachter b9ea9255e9 timer: Add a backwards-compatibility hack to awful
Signed-off-by: Uli Schlachter <psychon@znc.in>
2014-12-07 09:44:58 +01:00
Uli Schlachter 8dc6fa8666 textclock: Round timeout so that displayed time is more accurate
Signed-off-by: Uli Schlachter <psychon@znc.in>
2014-12-06 17:15:24 +01:00
Uli Schlachter 94e61ec94b timer: Move from C to lua as gears.timer
No API-change (besides the obvious no-longer-a-global-object) intended.

Signed-off-by: Uli Schlachter <psychon@znc.in>
2014-12-06 16:44:04 +01:00
findkiko 6f5ec2abe7 Vim style menu navigation in addition to arrow keys
Is there a reason it shouldn't be on by default? I'm not familiar enough with the code-base to tell if it will clash with anything.
2014-11-30 15:27:28 -08:00
Uli Schlachter 44fb6e4de2 Merge branch 'ewmh-activate-on-startup' of git://github.com/blueyed/awesome 2014-11-07 21:48:40 +01:00
Uli Schlachter 14e7274cc7 Merge branch 'request_context_v2' of git://github.com/Elv13/awesome-1 2014-11-07 21:46:59 +01:00
Uli Schlachter 904b679bc6 Merge branch 'tag_index_v1' of git://github.com/Elv13/awesome-1 2014-11-07 21:46:09 +01:00
Daniel Hahler d2168a9889 ewmh.activate: focus and especially raise clients during startup
This fixes the focused client (possibly) not being raised after
restarting awesome.
2014-11-06 21:26:32 +01:00
Emmanuel Lepage Vallee 45ad4459f2 tag: Improve tag property::index support (FS#1229)
* Move the "index" setting burden to individual functions
  instead of gettags().

* Add some properties earlier so the signal hooks will be called
  with valid data.
2014-11-01 18:46:06 -04:00
Emmanuel Lepage Vallee 37684abe33 Add context to request::activate signal 2014-10-25 23:31:23 -04:00
Robert Siska 8d7b0feedd Layouts can define their own resizing handler (FS#1267) 2014-10-23 01:30:19 +02:00
Uli Schlachter 1c72186cbc Merge branch 'fix_tag_remove_v1' of git://github.com/Elv13/awesome-1 2014-10-18 10:02:13 +02:00
Uli Schlachter a764afb81e Merge branch 'layout_unit_testability_V2' of git://github.com/Elv13/awesome-1 2014-10-18 10:01:00 +02:00
Uli Schlachter dd2f805e09 Merge branch 'tag_swap_V2' of git://github.com/Elv13/awesome-1 2014-10-17 10:37:50 +02:00
Emmanuel Lepage Vallee 3ff24467b9 tag.delete: Do not reset client tag when unnecessary 2014-10-13 21:36:11 -04:00
Emmanuel Lepage Vallee dfaef973c3 Add awful.tag.swap 2014-10-13 15:19:14 -04:00
Emmanuel Lepage Vallee 4120e00649 layouts: Allow layouts to be invoked with fake data
This patch allows 2 things to be done:

* Write unit test to validate layouts using fake clients and tags
* Query the current layout geometry from another tag

The advantages of the former are clear and simple. Those of the later include:

* Creating a screenshot of another layout
* Display the layout wireframe in the tag list (like KDE2-3, Gnome2)
* Having and 'ALT-tab' like visual popup for tags
2014-10-13 15:07:31 -04:00
Emmanuel Lepage Vallee 6d20094c15 awful.tag.update: Fix identical tag set detection
If the "current" table is empty, then identical always true.
There is a lot of case where this can happen. Mostly when using
dynamic tagging.
2014-10-13 15:00:09 -04:00
Uli Schlachter a113fe0f3c awful.widget.button: Override :set_image() to do the right thing
Reported-at: http://article.gmane.org/gmane.comp.window-managers.awesome/10778
Signed-off-by: Uli Schlachter <psychon@znc.in>
2014-09-15 13:55:21 +02:00
Daniel Hahler 4ee144188e tasklist: add/use a single icon for "maximized"
This provides more space in the tasklist, because it will typically only
use a single icon for maximized clients, instead of three
(maximized_vertical, maximized_horizontal and floating).

Fixes https://awesome.naquadah.org/bugs/index.php?do=details&task_id=1252
2014-09-04 18:38:18 +02:00
Uli Schlachter a64f8b1385 Merge branch 'fix-ldoc-usage' of git://github.com/blueyed/awesome 2014-09-02 14:21:42 +02:00
Daniel Hahler b6d32b136e ldoc: fix usage of @usage, which is <code> automatically 2014-08-28 19:45:46 +02:00
Evžen 93905348cb fix(lib.awful.taglist): multiple tag selection
multiple tag selection wasn't highlighting properly when *_occupied is set in theme table
2014-08-24 13:03:28 +02:00
Jason Yan aedcd90d4d Fix check against clients in taglist. 2014-05-09 00:19:49 -07:00
Uli Schlachter 9fce440078 awful.util.geticonpath: Correctly localize variables
This function was accidentally setting the global variable "icontypes". Fix this
by adding the needed "local" and also localize some more variables for
consistency.

Signed-off-by: Uli Schlachter <psychon@znc.in>
2014-05-03 11:15:14 +02:00
Uli Schlachter 92dc63fe02 Remove unused argument to awful.client.property.persist
This is a left-over from an old version of the patch which introduced this new
function.

Signed-off-by: Uli Schlachter <psychon@znc.in>
2014-04-21 19:30:03 +02:00
Daniel Hahler 6d04528bd8 Add persistent client properties
`client.property.persist` can be used to make properties persistent
across restarts. This works by backing them up via X properties (using
the `awful.client.property.` prefix).

`client.property.persist(c, "floating", "boolean")` is used to make the
floating property persistent by default.

Based on a patch from Uli, source: https://gist.github.com/psychon/10320743

doc, only set current prop in 'persist'

Fix xprop/prop mixup in 'persist'

Only call set for non-nil values
2014-04-20 14:54:21 +02:00
Uli Schlachter e998e3fe20 awful.client.shape: Import client shape handling (FS#1051)
This new awful module reacts to shapes that a client sets on itself and sets the
shape of awesome's frame window to match. This way, xeyes really gets
transparent parts again.

Signed-off-by: Uli Schlachter <psychon@znc.in>
2014-04-14 10:04:56 +02:00
Uli Schlachter dcc348d75e Fix some random ldoc warnings
Signed-off-by: Uli Schlachter <psychon@znc.in>
2014-04-13 18:06:49 +02:00
Uli Schlachter d76d3e0b6a Merge git://github.com/Teknocrat/awesome 2014-04-12 16:15:11 +02:00
Uli Schlachter 1090719d67 remove awful.widget.taglist.gettag (FS#1256)
It's been broken since ages.

Signed-off-by: Uli Schlachter <psychon@znc.in>
2014-04-12 12:18:34 +02:00
Gino! b4b6e6c1fc Fix Icon Finding in awful.util
This should also fix naughty failures to display the correct icons
2014-04-11 17:43:23 -04:00
Uli Schlachter ec8db18289 awful.tag.setscreen: Check if old_screen == new_screen (FS#1249)
Setting a tag's screen to what it already is shouldn't have any bad effects.
However, this code messed up the tag order and selection status.

Fix this by returning early if the tag already has the right screen.

Signed-off-by: Uli Schlachter <psychon@znc.in>
2014-04-09 22:06:21 +02:00
Uli Schlachter 27f483a601 awful.tag.move: Fix tag index setting (FS#1249)
Since commit 9c69e857ed, awful.tag.setscreen() unsets a tag's index to make
sure things end up in a sane order on the new screen. Thus, the call to
setscreen() removed the "index" property that tag.move just set.

Fix this by setting the index after the screen.

Signed-off-by: Uli Schlachter <psychon@znc.in>
2014-04-09 22:06:10 +02:00
Daniel Hahler df23964b20 Make callbacks to rules.execute optional 2014-04-01 10:48:18 +02:00
Uli Schlachter 6dfe48690b awful.tooltip: Add (and use) :set_markup() function
Since commit 5b4666432f, we use set_text() instead of set_markup()
on the tooltip's textbox. This means it is no longer possible to use pango
markup in the tooltip which was not intended.

Fix this (properly) by introducing a :set_markup() function on tooltips (and use
it in the timer function to restore the old behavior).

Signed-off-by: Uli Schlachter <psychon@znc.in>
2014-03-30 23:35:35 +02:00
Uli Schlachter 90226d0ccf awful.tooltip: Small reorganization
This inlines the set_defaults() function into its only caller and makes us less
stupid with the font property.

Signed-off-by: Uli Schlachter <psychon@znc.in>
2014-03-30 23:31:38 +02:00
Uli Schlachter 271f084735 screen: Turn into proper lua object
This makes the screen objects use our existing infrastructure for implementing
classes and objects with lua instead of hand-rolling an own version.

This results in some small API change: Screen objects no longer have an
add_signal() function and instead this function exists on the parent screen
class.

Signed-off-by: Uli Schlachter <psychon@znc.in>
2014-03-30 16:37:19 +02:00
Uli Schlachter 2dc28b29e9 Merge remote-tracking branch 'blueyed/fix-restore-in-tag.delete' 2014-03-29 18:12:37 +01:00
Uli Schlachter 3cbdc2a79f Use awful.layout.layouts for implementing optional parameters
Signed-off-by: Uli Schlachter <psychon@znc.in>
2014-03-28 13:29:16 +01:00