/r/awesomewm
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
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.
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:
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!
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
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?
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?
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?
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"}),
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:
but there is a blank bar when it is maximized:
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?
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?
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?
TIA
My hotkeys_popup can't display two keys correctly: `XF86AudioRaiseVolume` and `XF86AudioLowerVolume` . I've considered two ways to fix this:
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`)
Guys how do I change the icon theme that awesome uses by default
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
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:
-- 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" } }
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
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?
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?
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
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.
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
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.
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 ?
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
My build is into test, but I've got 4 errors, each occurring multiple times.
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
Has anyone built this recently, if ever?