/r/awesomewm

Photograph via snooOG

Subreddit dedicated to the Awesome Window Manager (AwesomeWM)

This subreddit is dedicated to the awesome window manager framework

Post awesome news, rc.lua hacks and other awesome posts

/r/awesomewm

9,759 Subscribers

2

Trouble with multiple monitors

I have been using awesomeWM for a few months now and have been loving it, my one gripe is that it seems to have a lot of trouble when attempting to add a monitor too it. I am a university student so often times I need to get up to the front of the class and present my screen with the projected through the HDMI cable but every time I try doing that while using awesome WM it is unable to detect the input. As soon as I switch over to gnome it starts working but I would really like to get this sorted out because it is rather frustrating.

4 Comments
2024/04/22
14:42 UTC

0

Focus on opened windows changes every time i change tag.

Suppose I'm in tag 4. And i open 3 terminals in tiling layout, in the last opened terminal i type a command.

Then i change to tag 1. When i return to tag 4 I'm no longer in the terminal where i typed the command, and not in the last terminal I used.

When i change tags I want to be able to return to the last used window (in this case terminal).

How can i accomplish that?

Thanks in advanced

Edit:

rc.lua

12 Comments
2024/04/18
20:48 UTC

3

Something similar to vimium link hints

Hi, I want to have something similar to vimium link hints in awesomewm, so I can jump between clients with Super+f(configurable) and then tap the corresponding letters to the client I want to select. I'm thinking about programming it, but I also don't want to spend that time if it already exists. Do you know if that's the case?.

Thanks!

6 Comments
2024/04/18
04:26 UTC

2

Any way to make two clients "share" the same tile and cycle between them

I'm coming from windows with fancy zones, and there I could have multiple windows in the same zone and cycle between them. Is there anything similar in awesome?
They don't have to literally share the same space, the selected window would minimize and and the opened would un-minimize take it's place, but I couldn't figure out a better way to word that.

And sorry if this has already been asked before, but the closest I got by googling was this - and it doesn't work
https://stackoverflow.com/questions/59496736/cycle-between-minimized-windows-while-preserving-position

2 Comments
2024/04/17
05:52 UTC

5

Picom

Picom's configuration file has a option labelled "unredir-if-possible" which if enabled is supposed to turn picom effects off when a window is fullscreen. To make this work on DWM actual fullscreen patch is needed but how can I make this configuration work with awesomewm?

1 Comment
2024/04/15
06:10 UTC

2

Calcurse

I’ve recenty started using both calcurse and awesomewm. I’d like to add some information like today’s appointments to my wibar, has anyone done something similar?

1 Comment
2024/04/12
17:02 UTC

1

Lost a tag on a screen. How do I bring it back?

I've done this before... But I can't remember how to fix it...

I have tags 1-9 on the top of each screen. Except now one screen has 2-9. tag 1 is not showing up anymore even after a reboot. I had this happen a couple of years ago and was able to bring back tag 1 on that screen but I can't remember how to do that... Anyone have a clue how to do that?

3 Comments
2024/04/12
12:54 UTC

4

Dropdown Terminal

I had a great time putting this together yesterday. Comments, questions, suggestions are welcome!

function dropdown_toggle()
	for _, t in ipairs(awful.screen.focused().tags) do
		for _, c in ipairs(t:clients()) do
			if c.name == "urxvtdropdown" and c.minimized == true then
				c:emit_signal(
				"request::activate",
				"tasklist",
				{raise = true}
				)
				return
			elseif c.name == "urxvtdropdown" and c.minimized ~= true then
				-- My variable for the first tag is "term."
				-- The following two lines could be commented out if preferred. They prevent tags from showing (on my setup at least, with: filter = awful.widget.taglist.filter.noempty) even though there are no other clients remaining on it.
				first_tag = awful.tag.find_by_name(awful.screen.focused(), term)
				c:move_to_tag(first_tag)
				c.minimized = true
				return
			end
		end
	end
	local t = awful.screen.focused().selected_tag
        -- urxvtc also works fine
	awful.spawn("urxvt -T urxvtdropdown", {width = 800, height = 300, sticky = true, skip_taskbar=true, floating = true, tag=t, placement=awful.placement.top})
end

My keybinding:

awful.key({ modkey }, "space", function() dropdown_toggle() end,
	{description = "toggle dropdown terminal", group = "launcher"}),
14 Comments
2024/04/10
01:59 UTC

1

Hiding titlebar for a maximized client cases a blank bar occurred at the bottom of the client.

Hello,

What I want to implement is hide the titlebar when a client is maximized, and show the titlebar again when this client is not maximized(I only use floating layout). I wrote the config below:

local function maximized_fn(c)
    if c.maximized then
        c.border_width = 0
        c.shape = nil
        awful.titlebar.hide(c)
    else
        c.border_width = beautiful.border_width
        c.shape = beautiful.border_shape
        awful.titlebar.show(c)
    end
end
client.connect_signal("property::maximized", maximized_fn)

client.connect_signal("manage", function (c)
    -- Set the windows at the slave,
    -- i.e. put it at the end of others instead of setting it master.
    if not awesome.startup then awful.client.setslave(c) end

    if awesome.startup
      and not c.size_hints.user_position
      and not c.size_hints.program_position then
        -- Prevent clients from being unreachable after screen count changes.
        awful.placement.no_offscreen(c)
    end
    maximized_fn(c)
end)

It looks good when the client is not maximized:

https://preview.redd.it/2wmkdq5rtgtc1.png?width=1287&format=png&auto=webp&s=608ff6bab0b713c560111068ce71064f9885435c

but there is a blank bar when it is maximized:

https://preview.redd.it/07q4bcx1ugtc1.png?width=1281&format=png&auto=webp&s=707c4931ee2959e96623eb435622148d16ddc2dc

The height of this bar seems equal to the height of the titlebar. I wonder what is the right way to hide the titlebar?

Versions:

awesome v4.3 (Too long)

• Compiled against Lua 5.3.6 (running with Lua 5.3)

• D-Bus support: ✔

• execinfo support: ✔

• xcb-randr version: 1.6

• LGI version: 0.9.2

--- edit

The blank bar is the wallpaper, so the windows is not maximized at all?

1 Comment
2024/04/09
14:44 UTC

2

Connecting to naughty's "added" signal breaks notifications

Hi everyone,

I'm currently going through the process of creating a notification center and I'm using the added signal to update a table of notifications. After some testing, it seems like whenever I perform any operations (such as sending a notification) when connecting to this signal, notifications break entirely and the system runs slow. A video of this can be found here. Does anyone more experienced know what's going on here?

3 Comments
2024/04/08
15:21 UTC

3

is io.popen fine in callbacks?

I have some logic that I want to add which has to run some things from a shell, but I want to be able to get the exit code back from the shell.

Following the guidelines in the docs, it warns not to use synchronous calls like io.popen to execute shell commands and get the result. It says to use the easy_async to not block awesomes main thread.

Is it fine to execute the sync function io.popen in the callback passed to easy_async? Doesn't that make the io.popen function now technically async to the main awesome thread?

10 Comments
2024/04/07
02:12 UTC

0

This is not awesome, but can anyone suggest a window manager that is similar to awesome which I could run on Windows?

TIA

12 Comments
2024/04/03
08:06 UTC

3

Font error in hotkeys_popup

My hotkeys_popup can't display two keys correctly: `XF86AudioRaiseVolume` and `XF86AudioLowerVolume` . I've considered two ways to fix this:

  1. Find a font that support icons of these keys.
  2. Customize modifiers' icons manually in `append_global_keybindings`.

However, I haven't done either of them yet. Please give me some help, thanks in advance!

Flair: Awesome 4.3 (I encounter this message when attempting to add the flair: `1 post flair could not be added to item`)

https://preview.redd.it/kbpu1pvgh6sc1.png?width=233&format=png&auto=webp&s=79522d5de2332853b9a3cbc3a412ea8192f08df0

6 Comments
2024/04/03
02:57 UTC

2

Changing the icon theme

Guys how do I change the icon theme that awesome uses by default

1 Comment
2024/04/02
08:42 UTC

2

how to customize the naughty.widget.title

i'm unable to change any property of naughty.widget.title in any way i dont' know what's the correct way i saw many repositories related to it but i'm still unable to get how they guyz did i'm hoping some help for how i can modify the properties of naughty.widget.title and naughty.widget.message

5 Comments
2024/03/30
15:08 UTC

2

Error adding window rules.

I am trying to add window rules to my awesomewm config, but after pasting in:

{ rule = { instance = "firefox" }, properties = { tag = "3" } }

I get an error message saying expected } to close the initial { before the word rule. There is clearly a } at the end closing the initial one so I have no idea why i would get this error. Also before this I made a rule for by browser, and it worked fine. Here is my config:

Edit: u/x0sn0rts pointed out that I needed a comma after each rule to separate them. This solved the issue.

-- Rules to apply to new clients (through the "manage" signal).
awful.rules.rules = {
    -- All clients will match this rule.
    { rule = { },
      properties = { border_width = beautiful.border_width,
                     border_color = beautiful.border_normal,
                     callback = awful.client.setslave,
                     focus = awful.client.focus.filter,
                     raise = true,
                     keys = clientkeys,
                     buttons = clientbuttons,
                     screen = awful.screen.preferred,
                     placement = awful.placement.no_overlap+awful.placement.no_offscreen,
                     size_hints_honor = false
     }
    },
-- App tag rules
{ rule = { isntance = "kitty" },
properties = { tag = "1" } }


    -- Floating clients.
    { rule_any = {
        -- Note that the name property shown in xprop might be set slightly after creation of the client
        -- and the name shown there might not match defined rules here.
        name = {
          "Event Tester",  -- xev.
        },
      }, properties = { floating = true }},

    -- Add titlebars to normal clients and dialogs
    { rule_any = {type = { "normal", "dialog" }
      }, properties = { titlebars_enabled = false }
    },

    --  Set Firefox to always map on the tag named "2" on screen 1.
     


    { rule = { instance = "brave-browser" },
  properties = { tag = "2" } }
2 Comments
2024/03/29
18:41 UTC

3

Touchscreen scrolling

I am using awesomewm on arch but touchscreenn is a bit funky. When i tap the cursor moves, which i dont want. I want just a circle. Essentially the touchscreen is treated like a mouse. Touchscreen scrolling also doesnt work. I had this issue in kde xorg but in kde wayland everything worked fine

5 Comments
2024/03/25
04:58 UTC

4

Will awesomewm support wayland

Just switched from KDE to awesomewm, and its awesome! But I've heard that wayalnd isn't restricted by having to stick to outdated protocols like x and its smoother but doesn't support nvidia very well. As I'm not using nvidia I kinda want Wayland. Is it getting support anytime soon?

11 Comments
2024/03/24
23:13 UTC

3

awful.spawn will cause a busy mouse wheel

I observed that if i have awful.spawn("nm-applet") in rc.lua, when awesome starts, the mouse will become a wheel icon when I hove it on the wibar. Does it mean awesome is waiting for some event from awful.spawn("nm-applet")? waiting for window to come out?

However when I use the awful.spawn.with_shell("nm-applet"), there will be no spinning wheel sign, is that because the shell is opened and nm-applet is running in it, so awesome is not waiting for some event?

4 Comments
2024/03/24
03:35 UTC

12

Awesome Windows Clipboard Manager

Made a clipboard history for X11 inside awesomeWm. This has a hundred selection history that can be searched or display the most recent five. Used textbox and keygrabber to implement a input box. Written to be as light weight and fast as possible. Examples provided

https://github.com/IllicitFrog/luaclip

https://preview.redd.it/66pm8ec5p1qc1.png?width=814&format=png&auto=webp&s=c992f94b01f53c111023cb557be273d7105a2339

3 Comments
2024/03/23
08:39 UTC

1

How to wibox.container.background

I'm on awesome-git, and I need some guidance on how to put my widgets in wibox.container.background, or really on how to even put a wibox.container.background on wibox. And please do not point me to the doc, I already checked it and I quickly realized that that thing was made for a guy who is far smarter than I am.

3 Comments
2024/03/21
11:29 UTC

2

Help-- default app won't be used anymore

update again: I find a solution for nnn and rofi situation. Simply export NNN_OPENER=kde-open for nnn and for rofi use kde-open instead of xdg-open.

Update:

I find the reason why nnn wouldn't open the nvim.

In fact nnn opened nvim, but it only opened it in the background, so I couldn't see the interface so I thought nnn didn't call xdg-open to use nvim to open the file.

A lot of people just set the editor for nnn as nvim so when they need to open the file they just press e, so this won't be a problem mostly.

If you want to use right arrow or enter to open the file consistently, you can wrap it in the terminal by making Exec=alacritty -e nvim %F in the .desktop, but this will bring a redundant terminal window when open a tex file in gui file manager. This obviously is a bad stopgap. I am still curious how kde or gnome can automatically wrap nvim in the termimal when it is needed such as in the situation of nnn and the following situation of rofi. If I can copy that solution of KDE to Awesome, that will perfect solve the problem.

I have a script using rofi to find and open file, which suffers the same problem of nvim running in the background only if I don't wrap nvim in a terminal.

awful.key({ "Mod1" }, "space", function () awful.spawn.with_shell([[sh -c 'selected=$(fd --ignore-file ~/.fdignore --type f  --type d . $HOME | rofi -dmenu -i -p "Find" -matching glob -theme-str "window {width: 1440px;}"); ret=$?; if [ $ret -eq 0 ]; then xdg-open "$selected"; elif [ $ret -eq 10 ]; then dolphin --select "$selected"; fi']]) end,

{description = "Search file and folder", group = "launcher"}),

As for firefox, it called for a dbus service of dolphin,but dolphin won't respond. And I can't stop that call by changing the inode/directory to pcmanfm or another file manager in mimeapps.list, so I deleted dolphin now it falls back on pcmanfm to open download folder, so problem solved. I found more detailed explanation of firefox's this behavior here: https://unix.stackexchange.com/a/581215


5 Comments
2024/03/21
01:22 UTC

8

GUIDE: How to change wallpaper without additional software.

I'm assuming you have an rc.lua in your ~/.config/awesome/ directory.
STEP 1:

Copy theme.lua from /usr/share/awesome/themes/default/theme.lua to your awesome directory.

Optionally, you can put your image in config directory as well.

Open copied theme.lua and add following line alongside with other local variables:

local config_path = gfs.get_configuration_dir()

then go over to 100th line and find (should be near):

theme.wallpaper = themes_path .. "default/background.png"

change it to:

theme.wallpaper = config_path .. "<whatever image path you have>"

STEP 2:

Open rc.lua in your config directory.

near line 55 there is:

beautiful.init(gears.filesystem.get_themes_dir() .. "default/theme.lua")

change it to:

beautiful.init(gears.filesystem.get_configuration_dir() .. "theme.lua")

That's it, you did it!

NOTE: If you wish to use additional software like nitrogen, it's all up to you. I respect people's choices. Writing this for people who are interested, cause I didn't find this info myself and needed to mindlessly scroll directory after directory, config after config.

1 Comment
2024/03/19
21:31 UTC

0

AwesomeVM 4.4 and project status

Hi AwesomeVM community.

I'm a happy user of AwesomeVM for many years but I never involved myself with the developement.

I've been having some issues recently and looking at it it looks like the last release is 4 years old.

4.4 release is referenced here and there but it never released and the milestones is far from completed: https://github.com/awesomeWM/awesome/milestone/9

So what is the status of the project ? Is a release planned ?

6 Comments
2024/03/18
09:53 UTC

3

Stable vs got awesome archlinux

I guess this is a stupid question, but is there a difference between archlinux stable awesome wm and awesome-git? Because the arch stable awesome is 4.3-3 and yet even in the github page awesome is 4.3. So, I'm a little confused

1 Comment
2024/03/18
08:43 UTC

1

Build AwesomeWM-git on Artix Linux

My build is into test, but I've got 4 errors, each occurring multiple times.

  1. Timeout waiting for signal, in step 1 of every test , probably due to "Cannot create /dev/null/.dbus or .dbus.0". /dev/null makes no sense, but I haven't been able to track it down. I'd expect $HOME/.dbus or /tmp/something.
  2. GDK.lua: line 26: bad call to "register_lock(); saw nil, expectedf userdata". API change, but what to provide?
  3. Invalid UTF8 string passed to pango_layout_set_text()
  4. Failed to load zink driver, no DRI3.

Artix Linux (rolling, updated every morning)

gcc 13.2.1

Here's the build cfg: (it wouldn't let me link it as a file)

Running make check in build0x2026

[ 0%] Built target test-gravity

[ 0%] Built target version_stamp

[ 0%] Built target lgi-check

[ 0%] Checking for LGI...

Building for Lua 5.4.

Found lgi 0.9.2.

[ 0%] Built target lgi-check-run

[ 0%] Built target setup_directories

[ 0%] Built target generate_awesomerc

[ 0%] Built target generated_sources

[ 80%] Built target awesome

[ 80%] Running integration tests

awesome e6f5c79-dirty (github)

0x2022 Compiled against Lua 5.4.6 (running with 0.9.2)

0x2022 API level: 4

0x2022 D-Bus support: yes

0x2022 xcb-errors support: yes

0x2022 execinfo support: yes

0x2022 xcb-randr version: 1.6

0x2022 LGI version: /usr/share/lua/5.4/lgi/version.lua

0x2022 Transparency enabled: yes

0x2022 Custom search paths: no

4 Comments
2024/03/17
22:41 UTC

1

awesomewm-git on Alpine Linux

Has anyone built this recently, if ever?

5 Comments
2024/03/17
21:59 UTC

Back To Top