Commit Graph

96 Commits

Author SHA1 Message Date
Emmanuel Lepage Vallee 067bcaca60 client: Rename the `manage` and `unmanage` signals.
They currently fit the general concept of a `request::` in the sense
that they are not property related and have "request handlers".

The commit also add deprecation for signals.

The reason for this fits within the larger standardization project.
Non-namespaced signals will eventually be renamed. This has started
a long time ago.

What is old is new again. Once upon a time, there was a `startup`
parameter to the `manage` signal. It is now back in the form of
a context.

Finally, this commit removes the `manage` section of `rc.lua`. It no
longer did anything worthy of being in the config. Each of its
important parts have been moved out over the years and the last
remaining bit is always required anyway. The code has been moved
to `client.lua`.
2020-01-11 14:43:56 -08:00
Emmanuel Lepage Vallee 1434ea4c8b rc.lua: Get rid of the focus related imperative logic. 2020-01-11 14:43:56 -08:00
Emmanuel Lepage Vallee 5713a19602 rc.lua: Move the taglist and tasklist button to the request:: section.
While this is a bit more memory intensive because it created the objects
per screen, it is more self contained. If the objective is to have well
defined sections that can be cut/pasted into new files, this change is
a net win.
2019-12-05 22:50:02 -05:00
Emmanuel Lepage Vallee ba1d5bf712 rc.lua: Stop hardcoding the client keys.
Just like the previous commit for the client buttons, this allows
modules to manipulate the keys independently of `rc.lua`.
2019-12-05 22:50:02 -05:00
Emmanuel Lepage Vallee 767a8e4f6d rc.lua: Do not hardcode the default client buttons.
This commit moves the previously hardcoded client button list
to the `awful.client` default button set. This will allow modules
to add their own buttons.

In later commit, those default buttons will also be added dynamically
to existing clients.
2019-12-05 22:50:02 -05:00
Emmanuel Lepage Vallee 1921d54528 rc.lua: Remove the numkey loop and use the awful.key keygroup.
The result is the same. One less imperative construct in `rc.lua`.
2019-12-05 22:48:56 -05:00
Emmanuel Lepage Vallee 3b5db8a9be rc.lua: Add root keys and buttons instead of setting the list.
As visible in various modules and even built-in components like
`awful.keygrabber`, it was previously necessary to work around the
fact that keybindings could not be added later without using some
low level API hacks.

From now on, `rc.lua` will be a good citizen and use the same APIs as
the module to manage keybindings.
2019-11-09 16:43:12 -05:00
Emmanuel Lepage Vallee f4a0e1fc39 rc.lua: Use `.widget =` instead of `:setup()`.
More work on the property vs. r/w methods standardization.
2019-10-05 22:57:05 -04:00
Emmanuel Lepage Vallee 48ac59c0b6 rc.lua: Use the new keys API for the global keys. 2019-10-05 22:57:05 -04:00
Emmanuel Lepage Vallee 965d7c1b47 rc.lua: Use the new API to set the client keys 2019-10-05 22:57:05 -04:00
Emmanuel Lepage Vallee 4617365ee2 rc.lua: Use the new client API for the titlebar buttons. 2019-10-05 22:57:05 -04:00
Emmanuel Lepage Vallee 5f829171c4 rc.lua: Use the new API for the client buttons 2019-10-05 22:57:05 -04:00
Emmanuel Lepage Vallee 951b774a70 rc.lua: Use the new API for root.buttons 2019-10-05 22:57:05 -04:00
Emmanuel Lepage Vallee 8eda69adbe rc.lua: Use the modern layoutbox constructor 2019-10-05 22:57:05 -04:00
Emmanuel Lepage Vallee 56b242906d rc.lua: Use the buttons property instead of method for the tag/tasklist
Begin to bring consistency to these ancient components.
2019-10-05 22:57:05 -04:00
Emmanuel Lepage Vallée 6dd8daa2ce
doc: Add bacj an accidently removed section. (#2885)
This was probably due to copy pasting from the preprocessed file
back to the raw file.

Fix #2882
2019-10-01 12:49:28 -04:00
Emmanuel Lepage Vallee b9d19988b9 rc.lua: Replace the error handling code with request::display_error.
It is easier to understand, shorter and more modular.
2019-08-03 01:45:22 -04:00
Emmanuel Lepage Vallee c97c17600e rc.lua: Use the new screen requests instead of connect_for_each_screen
This will allow themes to better define their capabilities instead
of having to rely on the `rc.lua` `set_wallpaper` black box function.
2019-04-15 15:26:50 -04:00
Emmanuel Lepage Vallee 1b567cc06a notification: Rename text to message
There is many "text" and the default text is the title, not the body.
2019-02-16 15:26:38 -05:00
Emmanuel Lepage Vallee 9df77e5c76 naughty: Move the notification object into its own file.
Mostly for the documentation, but also as the new base upon which
to build the modular notification GUI.
2019-02-16 15:25:10 -05:00
Sorky bf62695f76 awful.menu: Move code from rc.lua to awful.menu
Fixes: #2524
2019-01-26 12:19:05 -05:00
Daniel Hahler 81a0a8cc48 awesomerc.lua: fix sloppy focus: do not raise
Fixes https://github.com/awesomeWM/awesome/issues/2594.
2019-01-19 09:48:01 +01:00
Sorky fec7aaa569 Unify the myawesomemenu style 2019-01-13 23:52:21 -05:00
Sorky cf5b0b51ef Update awesomerc.lua
Alternative fix for hotkey_popup via awful menu showing on wrong screen
2019-01-13 23:50:58 -05:00
ArenaL5 5268a89262
Add files via upload
Sorting list of clients and adding comment to Tor Browser's entry, [as requested.](https://github.com/awesomeWM/awesome/pull/2505)
2018-12-27 15:53:46 +00:00
ArenaL5 4c45d292dd
Making Tor Browser a floating window by default.
Responding to issue #2504 at awesomeWM/awesome
2018-12-23 17:39:12 +00:00
legion151 f1541a87b8 Update awesomerc.lua (#2451)
* Update awesomerc.lua
2018-12-17 09:40:04 -05:00
Uli Schlachter 45430daf7f rc.lua: Move Motif hints example to generated docs
Signed-off-by: Uli Schlachter <psychon@znc.in>
2018-08-26 19:26:19 +02:00
Uli Schlachter 9d41488e43 awesomerc: Add comment mentioning c.requests_no_titlebar
Signed-off-by: Uli Schlachter <psychon@znc.in>
2018-08-22 14:29:44 +02:00
Emmanuel Lepage Vallee e0d1b404c5 rc.lua: Use request::activate instead of client.focus.
For a long time, it was deemed overkill and made rc.lua less readable
without the documentation.

However it is now clear that it's handling of unfocusable clients and
general bypassing of both `awful.client.focus.filter` and
`awful.ewmh.activate` filters causes bugs. Fixing them individually
in each instance of `rc.lua` `client.focus = c` would add so much code
that all the clarity provided by not using request::activate would be
burried in boilerplate code.

Fix #2328
2018-07-29 18:22:48 -04:00
Piotr Śliwka dc8229fd5a Default config: Unify mouse dragging behavior (#2278)
* Default config: Unify mouse dragging behavior

When moving or resizing a client by dragging its titlebar with mouse,
the client is automatically focused and raised. However, this behavior
is not replicated by tne other dragging method, i.e. grabbing it with
mouse while pressing the modkey. Sometimes, this causes a client to
disappear below another one while moving.

This commit unifies handling of dragging clients with mouse, by ensuring
that the client is focused and raised, whichever dragging method is
used. The fix applies both to moving and resizing clients.

Signed-off-by: Piotr Śliwka <contact@psliwka.info>

* Default config: Fix clientbuttons style

This commit unifies code style of click handling functions defined in
`clientbuttons` table, to match the style introduced in a228696.

Signed-off-by: Piotr Śliwka <contact@psliwka.info>
2018-06-10 01:35:08 +02:00
Uli Schlachter 3fe913f17a Default config: Align up a series of conditions (#2215)
Signed-off-by: Uli Schlachter <psychon@znc.in>
2018-03-12 22:53:44 -04:00
Emmanuel Lepage Vallee b59495e1e7 tag/tasklist: Update rc.lua
And the tests to avoid some deprecation warnings
2017-12-02 16:33:06 -05:00
Daniel Hahler 69d06f7e3a default config: improve floating windows (#2023)
* default config: floating windows: fix pinentry-gtk-2

We have class "pinentry" there already, but it seems to have changed to
"Pinentry"?!  This uses "instance" instead, which hopefully works in the
old case also.

pinentry 1.0.0-1, gnupg 2.1.23-1

Also adds Blueman-manager and ConfigManager.
2017-08-28 10:55:56 +02:00
Uli Schlachter 202be62157 Automatically make LuaRocks modules available in awesome (#1999)
Running eval $(luarocks path --bin) before running awesome is not all
that easy. It's a lot easier to do the equivalent for this in rc.lua.
Plus, if LuaRocks is not installed, this will silently do nothing.

Signed-off-by: Uli Schlachter <psychon@znc.in>
2017-08-16 23:32:04 +02:00
Yauhen Kirylau c5e830cd60 fix(awful: hotkeys_popup: keys): require all modules in init.lua 2017-06-12 20:39:46 -04:00
ReVMatthias 9016a9296f Fix comment typo in default config file (#1796)
[ci skip]
2017-05-26 15:35:39 +02:00
Kevin Zander 6cb2e0fa82 Fix some deprecated calls in code and docs
Add missing newline in test runner
2017-03-30 21:26:50 -05:00
Kevin Zander c3461b535c gears: Move awful.util.table to gears.table (#1641)
* Move table functions out of awful.util into new gears.table

* travis: Use v9999 prefix for full requests

Make sure no newly deprecated functions are used

* Move all `awful.util.table.*` calls to `gears.table.*` calls
Move table test functions from awful/util_spec to new gears/table_spec
Change awful.util.subsets call to gears.math.subsets in awful/key.lua
2017-03-08 15:18:33 -05:00
Daniel Hahler f3f6a69dda config: add bindings to (un)maximize horizontally/vertically 2017-02-15 23:35:04 +01:00
Yauhen Kirylau c1cd968803 import vim hotkeys from user config, not hotkeys_popup module (#1432) 2017-02-07 13:50:52 +01:00
VincentWo 6a91dce425 Fix typo in awesomerc.lua (#1325) 2016-12-29 04:01:21 +01:00
Uli Schlachter 329a302164 Remove the executable bit from ewmh.c and awesomerc.lua
These files do not need to be executable and the commits which made
these executable apparently only did so accidentally (Commits
37684abe33 and bfc6065ad9).

Signed-off-by: Uli Schlachter <psychon@znc.in>
2016-12-14 11:44:59 +01:00
Daniel Hahler 71259748d2 Minor doc and code style fixes
Closes https://github.com/awesomeWM/awesome/pull/1215.
2016-11-21 22:38:40 +01:00
Yauhen Kirylau 70f9999a06 fix(rc.lua): don't pass arguments to awesome.quit from menu
Closes #1197
2016-10-29 21:14:52 +02:00
Emmanuel Lepage Vallee 11644f4582 prompt: Deprecate 8 parameters. 2016-10-04 00:51:45 -04:00
Uli Schlachter da6012da3e Fix memory leak in the default config on screen removal
The default config had tables like mywibox and mywibox[s] was the wibox
that is visible on screen s. When a screen is removed, nothing cleans up
these tables and so the screen and the wibox could not be garbage
collected. The same applies to the layoutbox, taglist etc.

This commit removes the global mywibox table and instead saves it as a
property on the screen. This way, the screen is not explicitly
referenced and when it is removed, the screen, its wibox and all of its
widgets become unreachable and can be garbage collected.

This commit also updates the docs and the tests that referenced things
(mostly the wibox) via mywibox[s] to now use s.mywibox.

Fixes: https://github.com/awesomeWM/awesome/issues/1125
Signed-off-by: Uli Schlachter <psychon@znc.in>
2016-09-30 22:46:51 +02:00
Emmanuel Lepage Vallee 63b712e247 doc: Document rc.lua
This meta-lua script takes the "raw" awesomerc.lua and turn it
into the final file and generate a documentation page from its
parsed content. It support

 * Turn {{{ into markdown categories
 * Turn top level comments into documentation
 * Add custom documentation sections
 * Parse the code to add links for each API calls

This helps generate a good entry point for new users wanting to
understand the content of rc.lua without searching the API by
hand.

Over time, this will also become the basis of the documentation.

If `rc.lua` is separated into several files, this will be easy to fix
this script. It could even do the separation itself from a monolitic
file using the already implemented {{{ parser.
2016-09-26 00:40:20 -04:00
Uli Schlachter 750a1df1c7 Re-set wallpaper on screen's property::geometry
Imagine that you have two screens of different resolution and you change their
position (xrandr --output first --left-of second). Of course, the wallpaper has
to be updated afterwards.

This commit makes the default config do that.

Fixes: https://github.com/awesomeWM/awesome/issues/1102
Signed-off-by: Uli Schlachter <psychon@znc.in>
2016-09-24 14:37:07 +02:00
Emmanuel Lepage Vallee 1c177cabce awesomerc: Explicitly select a default screen
A client is supposed to go to a screen when:

 * It has been started using `awful.spawn` with explicit instructions [1]
 * An `awful.rules` rule **or any of its callbacks** set the screen [2]
 * When something handle `request::screen` and/or `request::tag` in some
   custom ways. [3]
 * Some clients can request a screen and mean it (like MythTV/Kodi/XBMC and
   some multi-window DAW) [4]

A client is supposed to go to the focused screen when none of the above are
true [5].

Other constraints:

 * The screen need to be set only once, anything will will emit
   `property::screen` many time and cause side effects.
 * There has to be a single entry point to the algorithm, no multiple
   "manage" handler.
 * Awesome internals must use the `request::` signal API and not force
   their decision outside of request handlers.
 * Restarting Awesome must not change the client screen

Commit 2178744 fix use case number [1] and [2]. It actually fix [4] too, but
it is an accident and I am not sure we care about [4] anyway. Use case [1]
and [2], however, are very important.

Fix #1091
2016-09-21 22:15:09 +02:00