Unix & Linux Stack Exchange
Q&A for users of Linux, FreeBSD and other Unix-like operating systems
Latest Questions
1
votes
1
answers
5470
views
How to use the Cinnamon panel when using Awesome Window Manager in Cinnamon?
I am using `cinnamon 2.2.16-1`, `awesome 3.5.5-1` and [awesome-cinnamon][1] from the Arch Linux [AUR][2]. The `awesome-cinnamon` package basically just creates the `.desktop` and `.session` files to load `cinnamon` with `awesome wm` as the window manager. This is almost perfect for me, but I would l...
I am using
cinnamon 2.2.16-1
, awesome 3.5.5-1
and awesome-cinnamon from the Arch Linux AUR . The awesome-cinnamon
package basically just creates the .desktop
and .session
files to load cinnamon
with awesome wm
as the window manager. This is almost perfect for me, but I would like to experiment with using the cinnamon
panel in addition to or instead of the awesome
wibox
, because the cinnamon
panel has attractive icons for the audio, wifi and power controls.
I can't seem to find any way to start the cinnamon
panel. I am left thinking that the cinnamon
panel must be part of cinnamon's
window manager. It seems from googling that there used to be a program gnome-panel
and cinnamon-panel
, but these don't seem to exist anymore. Does anyone know of a way to get this working?
cat /usr/share/xsessions/awesome-cinnamon.desktop:
[Desktop Entry]
Name=Awesome Cinnamon
Comment=Dynamic window manager
TryExec=/usr/bin/cinnamon
Exec=cinnamon-session-cinnamon --session=awesome
Type=XSession
cat /usr/share/cinnamon-session/sessions/awesome.session:
[Cinnamon Session]
Name=Awesome session
RequiredComponents=cinnamon-settings-daemon;awesome;
RequiredProviders=windowmanager;notifications;
DefaultProvider-windowmanager=awesome
DefaultProvider-notifications=notification-daemon
$ cinnamon-TabTab:
cinnamon-desktop-editor cinnamon-screensaver-lock-dialog
cinnamon-extension-tool cinnamon-session
cinnamon-json-makepot cinnamon-session-cinnamon
cinnamon-launcher cinnamon-session-cinnamon2d
cinnamon-looking-glass cinnamon-session-properties
cinnamon-menu-editor cinnamon-session-quit
cinnamon-screensaver cinnamon-settings
cinnamon-screensaver-command cinnamon-settings-users
JKav77
(161 rep)
Sep 13, 2014, 04:23 PM
• Last activity: Jun 20, 2025, 04:06 AM
0
votes
1
answers
4313
views
Changing the theme for default windows in Awesome WM
How can I change the theme for default windows in Awesome WM? By default windows I mean the window that pops out when you open the preference window in gnome terminal, or pop out the noscript add-on in Firefox. Windows that theme wasn't specified otherwise basically.
How can I change the theme for default windows in Awesome WM?
By default windows I mean the window that pops out when you open the preference window in gnome terminal, or pop out the noscript add-on in Firefox. Windows that theme wasn't specified otherwise basically.
ChiseledAbs
(2301 rep)
Aug 2, 2016, 12:14 PM
• Last activity: May 16, 2025, 10:07 AM
0
votes
2
answers
3039
views
How to KDE + awesomewm?
Is there a way to configure awesomewm as windows manager but running KDE as desktop environment?
Is there a way to configure awesomewm as windows manager but running KDE as desktop environment?
ProgXIVe
(1 rep)
Dec 8, 2022, 05:04 PM
• Last activity: Apr 12, 2025, 07:06 PM
0
votes
1
answers
36
views
Overlay Application Windows for Tiling WMs (Awesome)
_System Information_: ``` $ inxi -S System: Host: ... Kernel: 6.8.0-49-generic arch: x86_64 bits: 64 Desktop: awesome v: 4.3 Distro: Linux Mint 22 Wilma ``` I currently try to optimize my workflow and I am hooked with tiling wms. Currently I look into awesome, which is great out of the box, but I th...
_System Information_:
$ inxi -S
System:
Host: ... Kernel: 6.8.0-49-generic arch: x86_64 bits: 64
Desktop: awesome v: 4.3 Distro: Linux Mint 22 Wilma
I currently try to optimize my workflow and I am hooked with tiling wms. Currently I look into awesome, which is great out of the box, but I think there is still a lot of configuration ahead.
One thing I miss, is a way to temporarily show an application window, i.e. quickly show a calculator, a note taking app, a terminal or the likes, without messing up my tiling. A bit like the [tilda](https://sourceforge.net/projects/tilda/) terminal, but more flexible.
My idea is: I press a keyboard shortcut (or on a button on a bar, whatever), and a window overlays my desktop, has focus, I interact with it and when I am done it vanishes again (without closing the application, keeping it's state) and I can continue working with my original window arrangement.
Beeing done could be indicated by another shortcut or (less perfect) by the window loosing focus.
Currently, when I need some application like that, and it is a shell application, I open a new terminal, restore the screen session, then close it - but this always rearranges my "tiles" and I am limited to cli applications.
So, what I am looking for is:
* Either a way to configure awesomewm for that behavior
* Another tiling wm that would support such behavior
* An additional application, providing such feature
* Hints for the correct terminology, enabling me to help myself
derM
(101 rep)
Dec 4, 2024, 09:31 AM
• Last activity: Mar 14, 2025, 02:01 PM
1
votes
1
answers
41
views
x1 carbon 7th gen bluetooth default controller not found
I am running Arch linux on my Thinkpad x1 carbon 7th Gen and I have followed all the arch-wiki commands to install bluetooth, but when I run a list command on bluetoothctl I get a "no controllers found" error, I have noticed my bluetooth module is softlocked and I cannot seem to figure out why. `sud...
I am running Arch linux on my Thinkpad x1 carbon 7th Gen and I have followed all the arch-wiki commands to install bluetooth, but when I run a list command on bluetoothctl I get a "no controllers found" error, I have noticed my bluetooth module is softlocked and I cannot seem to figure out why.
sudo rfkill unblock all
does not seem to work. I am not blacklisting the bluetooth module either. Here are some command outpouts.
It is not a hardware issue as I have dual booted windows on this laptop and bluetooth works on my windows machine.
kernel version
Linux n 6.6.65-1-lts
sudo systemctl status bluetooth.service
● bluetooth.service - Bluetooth service
Loaded: loaded (/usr/lib/systemd/system/bluetooth.service; enabled; preset: disabled)
Active: active (running) since Sat 2023-04-15 15:26:19 MDT; 22min ago
Docs: man:bluetoothd(8)
Main PID: 1296 (bluetoothd)
Status: "Running"
Tasks: 1 (limit: 18789)
Memory: 2.1M
CPU: 24ms
CGroup: /system.slice/bluetooth.service
└─1296 /usr/lib/bluetooth/bluetoothd
Apr 15 15:26:19 darkeve bluetoothd: Bluetooth daemon 5.66
Apr 15 15:26:19 darkeve systemd: Started Bluetooth service.
Apr 15 15:26:19 darkeve bluetoothd: Starting SDP server
Apr 15 15:26:19 darkeve bluetoothd: profiles/audio/vcp.c:vcp_init() D-Bus experimental not ena>
Apr 15 15:26:19 darkeve bluetoothd: src/plugin.c:plugin_init() Failed to init vcp plugin
Apr 15 15:26:19 darkeve bluetoothd: profiles/audio/mcp.c:mcp_init() D-Bus experimental not ena>
Apr 15 15:26:19 darkeve bluetoothd: src/plugin.c:plugin_init() Failed to init mcp plugin
Apr 15 15:26:19 darkeve bluetoothd: profiles/audio/bap.c:bap_init() D-Bus experimental not ena>
Apr 15 15:26:19 darkeve bluetoothd: src/plugin.c:plugin_init() Failed to init bap plugin
Apr 15 15:26:19 darkeve bluetoothd: Bluetooth management interface 1.22 initialized
sudo rfkill list
0: tpacpi_bluetooth_sw: Bluetooth
Soft blocked: yes
Hard blocked: no
1: tpacpi_wwan_sw: Wireless WAN
Soft blocked: no
Hard blocked: no
2: phy0: Wireless LAN
Soft blocked: no
Hard blocked: no
➜ ~ bluetoothctl
Waiting to connect to bluetoothd...[bluetooth]# Agent registered
[bluetooth]# show
No default controller available
[bluetooth]#
some recent files i found, can not seem to enable either of them when I echo and pipe 1 or enable into them using the tee command
➜ ~ cat /proc/acpi//ibm/bluetooth
status: disabled
commands: enable, disable
➜ ~ cat /sys/devices/platform/thinkpad_acpi/bluetooth_enable
0
➜ ~
DarkEvE
(111 rep)
Jan 5, 2025, 04:42 PM
• Last activity: Jan 10, 2025, 02:06 PM
0
votes
0
answers
38
views
Duplicated instance of VSCodium in Awesome WM with Tyrannical
I'm using [Awesome WM](https://awesomewm.org/) (v4.3) with [Tyrannical plugin](https://github.com/Elv13/tyrannical) on Debian 12 and I observe an unexpected behavior of VSCodium. Using the following configuration (in `rc.lua` config file of Awesome WM), when I start a new instance of a software, for...
I'm using [Awesome WM](https://awesomewm.org/) (v4.3) with [Tyrannical plugin](https://github.com/Elv13/tyrannical) on Debian 12 and I observe an unexpected behavior of VSCodium.
Using the following configuration (in
rc.lua
config file of Awesome WM), when I start a new instance of a software, for e.g. qterminal
, it opens **only in the current focused tag** even if it is allowed to open in another tag.
However, the behavior is different with VSCodium, i.e. when I start a new instance of VSCodium, the same instance opens in **all tags where the vscodium
instance is allowed** (tags "dev" AND "tex" below). In other words, it is the **same instance** which is **duplicated in all tags**.
-- tyrannical config : app on specific tag and screen with tyrannical
tyrannical.tags = {
{
name = "dev", -- Call the tag "dev"
init = true, -- Load the tag on startup
inclusive = true, -- Allow other instance than listed in "instance" below
screen = {1,2}, -- Create this tag on screen 1 and screen 2
layout = awful.layout.suit.tile, -- Use the tile layout
instance = { --Accept the following instance
"vscodium", "qterminal"}
} ,
{
name = "tex", -- Call the tag "tex"
init = true, -- Load the tag on startup
inclusive = true, -- Allow other instance than listed in "instance" below
screen = {1,2}, -- Create this tag on screen 1 and screen 2
layout = awful.layout.suit.tile, -- Use the tile layout
instance = { --Accept the following instance
"vscodium" , "qterminal"}
},
}
**Am I missing something ?**
**Any idea of why the two software behave differently and how to force VSCodium to act as qterminal does?**
Here is my entire rc.lua
config file of Awesome WM :
-- If LuaRocks is installed, make sure that packages installed through it are
-- found (e.g. lgi). If LuaRocks is not installed, do nothing.
pcall(require, "luarocks.loader")
-- Standard awesome library
local gears = require("gears")
local awful = require("awful")
require("awful.autofocus")
-- Widget and layout library
local wibox = require("wibox")
-- Theme handling library
local beautiful = require("beautiful")
-- Notification library
local naughty = require("naughty")
local menubar = require("menubar")
local hotkeys_popup = require("awful.hotkeys_popup")
-- Enable hotkeys help widget for VIM and other apps
-- when client with a matching name is opened:
require("awful.hotkeys_popup.keys")
local tyrannical = require("tyrannical")
-- Load Debian menu entries
local debian = require("debian.menu")
local has_fdo, freedesktop = pcall(require, "freedesktop")
-- {{{ Error handling
-- Check if awesome encountered an error during startup and fell back to
-- another config (This code will only ever execute for the fallback config)
if awesome.startup_errors then
naughty.notify({ preset = naughty.config.presets.critical,
title = "Oops, there were errors during startup!",
text = awesome.startup_errors })
end
-- Handle runtime errors after startup
do
local in_error = false
awesome.connect_signal("debug::error", function (err)
-- Make sure we don't go into an endless error loop
if in_error then return end
in_error = true
naughty.notify({ preset = naughty.config.presets.critical,
title = "Oops, an error happened!",
text = tostring(err) })
in_error = false
end)
end
-- }}}
-- {{{ Variable definitions
-- Themes define colours, icons, font and wallpapers.
beautiful.init(gears.filesystem.get_configuration_dir() .. "theme.lua")
-- This is used later as the default terminal and editor to run.
terminal = "x-terminal-emulator"
editor = os.getenv("EDITOR") or "editor"
editor_cmd = terminal .. " -e " .. editor
-- Default modkey.
-- Usually, Mod4 is the key with a logo between Control and Alt.
-- If you do not like this or do not have such a key,
-- I suggest you to remap Mod4 to another key using xmodmap or other tools.
-- However, you can use another modifier like Mod1, but it may interact with others.
modkey = "Mod4"
-- Table of layouts to cover with awful.layout.inc, order matters.
awful.layout.layouts = {
awful.layout.suit.tile,
awful.layout.suit.floating,
awful.layout.suit.tile.left,
awful.layout.suit.tile.bottom,
awful.layout.suit.tile.top,
--awful.layout.suit.fair,
--awful.layout.suit.fair.horizontal,
--awful.layout.suit.spiral,
--awful.layout.suit.spiral.dwindle,
awful.layout.suit.max,
--awful.layout.suit.max.fullscreen,
awful.layout.suit.magnifier,
--awful.layout.suit.corner.nw,
-- awful.layout.suit.corner.ne,
-- awful.layout.suit.corner.sw,
-- awful.layout.suit.corner.se,
}
-- }}}
-- {{{ Menu
-- Create a launcher widget and a main menu
myawesomemenu = {
{ "hotkeys", function() hotkeys_popup.show_help(nil, awful.screen.focused()) end },
{ "manual", terminal .. " -e man awesome" },
{ "edit config", editor_cmd .. " " .. awesome.conffile },
{ "restart", awesome.restart },
{ "quit", function() awesome.quit() end },
}
local menu_awesome = { "awesome", myawesomemenu, beautiful.awesome_icon }
local menu_terminal = { "open terminal", terminal }
if has_fdo then
mymainmenu = freedesktop.menu.build({
before = { menu_awesome },
after = { menu_terminal }
})
else
mymainmenu = awful.menu({
items = {
menu_awesome,
{ "Debian", debian.menu.Debian_menu.Debian },
menu_terminal,
}
})
end
mylauncher = awful.widget.launcher({ image = beautiful.awesome_icon,
menu = mymainmenu })
-- Menubar configuration
menubar.utils.terminal = terminal -- Set the terminal for applications that require it
-- }}}
-- Keyboard map indicator and switcher
mykeyboardlayout = awful.widget.keyboardlayout()
-- {{{ Wibar
-- Create a textclock widget
mytextclock = wibox.widget.textclock()
-- Keyboard map indicator and changer
local keyboard_layout = require("keyboard_layout")
local kbdcfg = keyboard_layout.kbdcfg({type = "tui"})
kbdcfg.add_primary_layout("Français", "FR", "fr")
kbdcfg.add_additional_layout("English", "US", "us")
kbdcfg.bind()
-- Create a wibox for each screen and add it
local taglist_buttons = gears.table.join(
awful.button({ }, 1, function(t) t:view_only() end),
awful.button({ modkey }, 1, function(t)
if client.focus then
client.focus:move_to_tag(t)
end
end),
awful.button({ }, 3, awful.tag.viewtoggle),
awful.button({ modkey }, 3, function(t)
if client.focus then
client.focus:toggle_tag(t)
end
end),
awful.button({ }, 4, function(t) awful.tag.viewnext(t.screen) end),
awful.button({ }, 5, function(t) awful.tag.viewprev(t.screen) end)
)
local tasklist_buttons = gears.table.join(
awful.button({ }, 1, function (c)
if c == client.focus then
c.minimized = true
else
c:emit_signal(
"request::activate",
"tasklist",
{raise = true}
)
end
end),
awful.button({ }, 3, function()
awful.menu.client_list({ theme = { width = 250 } })
end),
awful.button({ }, 4, function ()
awful.client.focus.byidx(1)
end),
awful.button({ }, 5, function ()
awful.client.focus.byidx(-1)
end))
local function set_wallpaper(s)
-- Wallpaper
if beautiful.wallpaper then
local wallpaper = beautiful.wallpaper
-- If wallpaper is a function, call it with the screen
if type(wallpaper) == "function" then
wallpaper = wallpaper(s)
end
gears.wallpaper.set("#400000")
-- gears.wallpaper.maximized(wallpaper, s, true)
end
end
-- Re-set wallpaper when a screen's geometry changes (e.g. different resolution)
screen.connect_signal("property::geometry", set_wallpaper)
awful.screen.connect_for_each_screen(function(s)
-- Wallpaper
set_wallpaper(s)
-- Each screen has its own tag table.
-- Create a promptbox for each screen
s.mypromptbox = awful.widget.prompt()
-- Create an imagebox widget which will contain an icon indicating which layout we're using.
-- We need one layoutbox per screen.
s.mylayoutbox = awful.widget.layoutbox(s)
s.mylayoutbox:buttons(gears.table.join(
awful.button({ }, 1, function () awful.layout.inc( 1) end),
awful.button({ }, 3, function () awful.layout.inc(-1) end),
awful.button({ }, 4, function () awful.layout.inc( 1) end),
awful.button({ }, 5, function () awful.layout.inc(-1) end)))
-- Create a taglist widget
s.mytaglist = awful.widget.taglist {
screen = s,
filter = awful.widget.taglist.filter.all,
buttons = taglist_buttons
}
-- Create a tasklist widget
s.mytasklist = awful.widget.tasklist {
screen = s,
filter = awful.widget.tasklist.filter.currenttags,
buttons = tasklist_buttons
}
-- Create the wibox
s.mywibox = awful.wibar({ position = "top", screen = s })
-- Add widgets to the wibox
s.mywibox:setup {
layout = wibox.layout.align.horizontal,
{ -- Left widgets
layout = wibox.layout.fixed.horizontal,
mylauncher,
s.mytaglist,
s.mypromptbox,
},
s.mytasklist, -- Middle widget
{ -- Right widgets
layout = wibox.layout.fixed.horizontal,
mykeyboardlayout,
wibox.widget.systray(),
mytextclock,
s.mylayoutbox,
},
}
end)
-- }}}
-- tyrannical config : app on specific tag and screen with tyrannical
tyrannical.tags = {
{
name = "dev", -- Call the tag "dev"
init = true, -- Load the tag on startup
inclusive = true,
screen = {1,2}, -- Create this tag on screen 1 and screen 2
layout = awful.layout.suit.tile, -- Use the tile layout
instance = { --Accept the following classes, refuse everything else (because of "exclusive=true")
"vscodium", "qterminal"}
} ,
{
name = "tex", -- Call the tag "dev"
init = true, -- Load the tag on startup
inclusive = true,
screen = {1,2}, -- Create this tag on screen 1 and screen 2
layout = awful.layout.suit.tile, -- Use the tile layout
instance = { --Accept the following classes, refuse everything else (because of "exclusive=true")
"vscodium" , "qterminal"}
},
}
-- Display in all tags
--tyrannical.properties.sticky = {
-- "xterm", "Okular","qterminal",
--}
-- tyrannical.settings.block_children_focus_stealing = true --Block popups ()
-- tyrannical.settings.group_children = true --Force popups/dialogs to have the same tags as the parent client
-- {{{ Mouse bindings
root.buttons(gears.table.join(
awful.button({ }, 3, function () mymainmenu:toggle() end),
awful.button({ }, 4, awful.tag.viewnext),
awful.button({ }, 5, awful.tag.viewprev)
))
-- }}}
-- {{{ Key bindings
globalkeys = gears.table.join(
awful.key({ modkey, }, "s", hotkeys_popup.show_help,
{description="show help", group="awesome"}),
awful.key({ modkey, }, ",", awful.tag.viewprev,
{description = "view previous", group = "tag"}),
awful.key({ modkey, }, ";", awful.tag.viewnext,
{description = "view next", group = "tag"}),
awful.key({ modkey, }, "Escape", awful.tag.history.restore,
{description = "go back", group = "tag"}),
awful.key({ modkey, }, "j",
function ()
awful.client.focus.byidx( 1)
end,
{description = "focus next by index", group = "client"}
),
awful.key({ modkey, }, "k",
function ()
awful.client.focus.byidx(-1)
end,
{description = "focus previous by index", group = "client"}
),
awful.key({ modkey, }, "w", function () mymainmenu:show() end,
{description = "show main menu", group = "awesome"}),
-- Layout manipulation
awful.key({ modkey, "Shift" }, "j", function () awful.client.swap.byidx( 1) end,
{description = "swap with next client by index", group = "client"}),
awful.key({ modkey, "Shift" }, "k", function () awful.client.swap.byidx( -1) end,
{description = "swap with previous client by index", group = "client"}),
awful.key({ modkey, "Control" }, "j", function () awful.screen.focus_relative( 1) end,
{description = "focus the next screen", group = "screen"}),
awful.key({ modkey, "Control" }, "k", function () awful.screen.focus_relative(-1) end,
{description = "focus the previous screen", group = "screen"}),
awful.key({ modkey, }, "u", awful.client.urgent.jumpto,
{description = "jump to urgent client", group = "client"}),
awful.key({ modkey, }, "Tab",
function ()
awful.client.focus.history.previous()
if client.focus then
client.focus:raise()
end
end,
{description = "go back", group = "client"}),
-- Standard program
awful.key({ modkey, }, "Return", function () awful.spawn(terminal) end,
{description = "open a terminal", group = "launcher"}),
awful.key({ modkey, "Control" }, "r", awesome.restart,
{description = "reload awesome", group = "awesome"}),
awful.key({ modkey, "Shift" }, "q", awesome.quit,
{description = "quit awesome", group = "awesome"}),
awful.key({ modkey, }, "l", function () awful.tag.incmwfact( 0.05) end,
{description = "increase master width factor", group = "layout"}),
awful.key({ modkey, }, "h", function () awful.tag.incmwfact(-0.05) end,
{description = "decrease master width factor", group = "layout"}),
awful.key({ modkey, "Shift" }, "h", function () awful.tag.incnmaster( 1, nil, true) end,
{description = "increase the number of master clients", group = "layout"}),
awful.key({ modkey, "Shift" }, "l", function () awful.tag.incnmaster(-1, nil, true) end,
{description = "decrease the number of master clients", group = "layout"}),
awful.key({ modkey, "Control" }, "h", function () awful.tag.incncol( 1, nil, true) end,
{description = "increase the number of columns", group = "layout"}),
awful.key({ modkey, "Control" }, "l", function () awful.tag.incncol(-1, nil, true) end,
{description = "decrease the number of columns", group = "layout"}),
awful.key({ modkey, }, "space", function () awful.layout.inc( 1) end,
{description = "select next", group = "layout"}),
awful.key({ modkey, "Shift" }, "space", function () awful.layout.inc(-1) end,
{description = "select previous", group = "layout"}),
awful.key({ modkey, "Control" }, "n",
function ()
local c = awful.client.restore()
-- Focus restored client
if c then
c:emit_signal(
"request::activate", "key.unminimize", {raise = true}
)
end
end,
{description = "restore minimized", group = "client"}),
-- Dmenu
awful.key({ modkey }, "r", function ()
awful.util.spawn("dmenu_run") end,
{description = "run dmenu", group = "launcher"}),
-- Firefox
awful.key({ modkey }, "b", function ()
awful.util.spawn("firefox") end,
{description = "firefox", group = "applications"}),
awful.key({ modkey }, "x",
function ()
awful.prompt.run {
prompt = "Run Lua code: ",
textbox = awful.screen.focused().mypromptbox.widget,
exe_callback = awful.util.eval,
history_path = awful.util.get_cache_dir() .. "/history_eval"
}
end,
{description = "lua execute prompt", group = "awesome"}),
-- Menubar
awful.key({ modkey }, "p", function() menubar.show() end,
{description = "show the menubar", group = "launcher"})
)
clientkeys = gears.table.join(
awful.key({ modkey, }, "f",
function (c)
c.fullscreen = not c.fullscreen
c:raise()
end,
{description = "toggle fullscreen", group = "client"}),
awful.key({ modkey, }, "q", function (c) c:kill() end,
{description = "close", group = "client"}),
awful.key({ modkey, "Control" }, "space", awful.client.floating.toggle ,
{description = "toggle floating", group = "client"}),
awful.key({ modkey, "Control" }, "Return", function (c) c:swap(awful.client.getmaster()) end,
{description = "move to master", group = "client"}),
awful.key({ modkey, }, "o", function (c) c:move_to_screen() end,
{description = "move to screen", group = "client"}),
awful.key({ modkey, }, "t", function (c) c.ontop = not c.ontop end,
{description = "toggle keep on top", group = "client"}),
awful.key({ modkey, }, "n",
function (c)
-- The client currently has the input focus, so it cannot be
-- minimized, since minimized clients can't have the focus.
c.minimized = true
end ,
{description = "minimize", group = "client"}),
awful.key({ modkey, }, "m",
function (c)
c.maximized = not c.maximized
c:raise()
end ,
{description = "(un)maximize", group = "client"}),
awful.key({ modkey, "Control" }, "m",
function (c)
c.maximized_vertical = not c.maximized_vertical
c:raise()
end ,
{description = "(un)maximize vertically", group = "client"}),
awful.key({ modkey, "Shift" }, "m",
function (c)
c.maximized_horizontal = not c.maximized_horizontal
c:raise()
end ,
{description = "(un)maximize horizontally", group = "client"})
)
-- Bind all key numbers to tags.
-- Be careful: we use keycodes to make it work on any keyboard layout.
-- This should map on the top row of your keyboard, usually 1 to 9.
for i = 1, 9 do
globalkeys = gears.table.join(globalkeys,
-- View tag only.
awful.key({ modkey }, "#" .. i + 9,
function ()
local screen = awful.screen.focused()
local tag = screen.tags[i]
if tag then
tag:view_only()
end
end,
{description = "view tag #"..i, group = "tag"}),
-- Toggle tag display.
awful.key({ modkey, "Control" }, "#" .. i + 9,
function ()
local screen = awful.screen.focused()
local tag = screen.tags[i]
if tag then
awful.tag.viewtoggle(tag)
end
end,
{description = "toggle tag #" .. i, group = "tag"}),
-- Move client to tag.
awful.key({ modkey, "Shift" }, "#" .. i + 9,
function ()
if client.focus then
local tag = client.focus.screen.tags[i]
if tag then
client.focus:move_to_tag(tag)
end
end
end,
{description = "move focused client to tag #"..i, group = "tag"}),
-- Toggle tag on focused client.
awful.key({ modkey, "Control", "Shift" }, "#" .. i + 9,
function ()
if client.focus then
local tag = client.focus.screen.tags[i]
if tag then
client.focus:toggle_tag(tag)
end
end
end,
{description = "toggle focused client on tag #" .. i, group = "tag"})
)
end
clientbuttons = gears.table.join(
awful.button({ }, 1, function (c)
c:emit_signal("request::activate", "mouse_click", {raise = true})
end),
awful.button({ modkey }, 1, function (c)
c:emit_signal("request::activate", "mouse_click", {raise = true})
awful.mouse.client.move(c)
end),
awful.button({ modkey }, 3, function (c)
c:emit_signal("request::activate", "mouse_click", {raise = true})
awful.mouse.client.resize(c)
end)
)
-- Set keys
root.keys(globalkeys)
-- }}}
-- {{{ Rules
-- 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,
focus = awful.client.focus.filter,
raise = true,
keys = clientkeys,
buttons = clientbuttons,
screen = awful.screen.preferred,
placement = awful.placement.no_overlap+awful.placement.no_offscreen
}
},
-- Floating clients.
{ rule_any = {
instance = {
"DTA", -- Firefox addon DownThemAll.
"copyq", -- Includes session name in class.
"pinentry",
},
class = {
"Arandr",
"Blueman-manager",
"Gpick",
"Kruler",
"MessageWin", -- kalarm.
"Sxiv",
"Tor Browser", -- Needs a fixed window size to avoid fingerprinting by screen size.
"Wpa_gui",
"veromix",
"xtightvncviewer"},
-- 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.
},
role = {
"AlarmWindow", -- Thunderbird's calendar.
"ConfigManager", -- Thunderbird's about:config.
"pop-up", -- e.g. Google Chrome's (detached) Developer Tools.
}
}, properties = { floating = true }},
-- Add titlebars to normal clients and dialogs
{ rule_any = {type = { "normal", "dialog" }
}, properties = { titlebars_enabled = true }
},
-- Set Firefox to always map on the tag named "2" on screen 1.
-- { rule = { class = "Firefox" },
-- properties = { screen = 1, tag = "2" } },
}
-- }}}
-- {{{ Signals
-- Signal function to execute when a new client appears.
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
end)
-- Add a titlebar if titlebars_enabled is set to true in the rules.
client.connect_signal("request::titlebars", function(c)
-- buttons for the titlebar
local buttons = gears.table.join(
awful.button({ }, 1, function()
c:emit_signal("request::activate", "titlebar", {raise = true})
awful.mouse.client.move(c)
end),
awful.button({ }, 3, function()
c:emit_signal("request::activate", "titlebar", {raise = true})
awful.mouse.client.resize(c)
end)
)
awful.titlebar(c) : setup {
{ -- Left
awful.titlebar.widget.iconwidget(c),
buttons = buttons,
layout = wibox.layout.fixed.horizontal
},
{ -- Middle
{ -- Title
align = "center",
widget = awful.titlebar.widget.titlewidget(c)
},
buttons = buttons,
layout = wibox.layout.flex.horizontal
},
{ -- Right
awful.titlebar.widget.floatingbutton (c),
awful.titlebar.widget.maximizedbutton(c),
awful.titlebar.widget.stickybutton (c),
awful.titlebar.widget.ontopbutton (c),
awful.titlebar.widget.closebutton (c),
layout = wibox.layout.fixed.horizontal()
},
layout = wibox.layout.align.horizontal
}
end)
-- Enable sloppy focus, so that focus follows mouse.
client.connect_signal("mouse::enter", function(c)
c:emit_signal("request::activate", "mouse_enter", {raise = false})
end)
client.connect_signal("focus", function(c) c.border_color = beautiful.border_focus end)
client.connect_signal("unfocus", function(c) c.border_color = beautiful.border_normal end)
-- }}}
-- Windows border gaps
beautiful.useless_gap = 5
-- autostart apps
awful.util.spawn("firefox")
-- Collision plugin
require("collision")()
**Edit:** after few tests it seems that Okular pdf viewer has the same behaviour as VSCodium...
zetyty
(101 rep)
Sep 12, 2024, 01:33 PM
• Last activity: Sep 12, 2024, 02:15 PM
4
votes
3
answers
3595
views
How can I run a second window manager?
Specifically, I'd like to run [awesome-git][1] at the same time as [awesome][2]. I've tried running the former from a shell in the latter: $ awesome-git/pkg/awesome-git/usr/bin/awesome […] E: awesome: main:653: another window manager is already running (can't select SubstructureRedirect) I get the s...
Specifically, I'd like to run awesome-git at the same time as awesome . I've tried running the former from a shell in the latter:
$ awesome-git/pkg/awesome-git/usr/bin/awesome
[…] E: awesome: main:653: another window manager is already running (can't select SubstructureRedirect)
I get the same result if I add
--replace
.
After changing to a different VT:
$ awesome-git/pkg/awesome-git/usr/bin/awesome
[…] E: awesome: main:592: cannot open display (error 5)
If I try to specify a display I get the following:
$ DISPLAY=:1 awesome-git/pkg/awesome-git/usr/bin/awesome
[…] E: awesome: main:592: cannot open display (error 1)
I tried to rm ~/.Xauthority
, but that didn't help.
l0b0
(53368 rep)
Nov 3, 2016, 10:11 PM
• Last activity: Jul 17, 2024, 02:52 PM
0
votes
0
answers
236
views
How to apply rice to Awesome WM?
I am using Awesome WM on Arch and I want to apply a particular style (rice) to it. I found [this reddit post][2] and the author [has uploaded][1] the relevant files to GitHub. How can I use these files to apply the rice? I copied them to my `~/.config` directory, but what do I need to do now? [1]: h...
I am using Awesome WM on Arch and I want to apply a particular style (rice) to it. I found this reddit post and the author has uploaded the relevant files to GitHub. How can I use these files to apply the rice?
I copied them to my
~/.config
directory, but what do I need to do now?
anon
Mar 29, 2024, 02:58 PM
• Last activity: Mar 29, 2024, 03:18 PM
0
votes
1
answers
36
views
How to make scrollbars darker under Awesomewm?
I'm using archlinux with awesomewm and kterminal (the kde terminal app). Whenever I'm using the terminal (or any other app, but specifically the terminal), and whenever I wanted to scroll, I find it very difficult to see the scroll bar so I can hold it with the mouse. Its color is so light that it i...
I'm using archlinux with awesomewm and kterminal (the kde terminal app).
Whenever I'm using the terminal (or any other app, but specifically the terminal), and whenever I wanted to scroll, I find it very difficult to see the scroll bar so I can hold it with the mouse. Its color is so light that it is almost identical to the background.
Is there a way to make it black or even a little bit darker so I can see it better?

ellat
(137 rep)
Jul 18, 2023, 01:07 AM
• Last activity: Feb 22, 2024, 10:23 PM
17
votes
5
answers
40207
views
Cannot add new mode in xrandr for external monitor
Today I was trying to connect my second monitor to my notebook. I have: - nvidia graphic card - 304.43 drivers [support xrandr 1.2] - archlinux [up-to-date] - awesome wm - xrandr 1.3 My problem is with bigger resolution than 640x480 for my external monitor (VGA). xrandr -q: Screen 0: minimum 8 x 8,...
Today I was trying to connect my second monitor to my notebook. I have:
- nvidia graphic card
- 304.43 drivers [support xrandr 1.2]
- archlinux [up-to-date]
- awesome wm
- xrandr 1.3
My problem is with bigger resolution than 640x480 for my external monitor (VGA).
xrandr -q:
Screen 0: minimum 8 x 8, current 1920 x 800, maximum 8192 x 8192
VGA-0 connected 640x480+1280+0 (normal left inverted right x axis y axis) 0mm
640x480 59.9*+
320x240 120.1
LVDS-0 connected 1280x800+0+0 (normal left inverted right x axis y axis) 331m
1280x800 59.9*+
HDMI-0 disconnected (normal left inverted right x axis y axis)
As we can see the is no higher resolution fo VGA, so I add new mode:
xrandr --newmode $(gtf 1280 1024 70.4 | grep Modeline | sed s/Modeline\ // | tr -d '"')
I checked avaible resolution and refresh rate under windows: one of them was 1024x768x70 (OSD of my monitor said that it is 70.4HZ). After create new mode, I wanted to add it:
xrandr --addmode VGA-0 1280x1024_70.40
And... It failed:
X Error of failed request: BadMatch (invalid parameter attributes)
Major opcode of failed request: 153 (RANDR)
Minor opcode of failed request: 18 (RRAddOutputMode)
Serial number of failed request: 29
Current serial number in output stream: 30
From google I learned that in older xrandr / nvidia drivers was problem with list of avaible modes, but now with support of xrandr 1.2 by nvidia drivers it should be better. I also try with lower resolution and refresh rate (eg. 1024x768x50), but I've got the same error.
I'm out of ideas what to do with this problem...
Borgo
(171 rep)
Sep 10, 2012, 08:14 PM
• Last activity: Dec 15, 2023, 03:29 PM
1
votes
2
answers
368
views
Autokey - Adjusting Screen Brightness with Hotkeys (and sustaining that brightness in Awesome Window Manager)
In [awesome window manager](https://awesomewm.org/), my screen brightness gets reset to 100% each time I'm away from my computer for a few minutes. **How can I get it to sustain the brightness I set prior to these screen-saver/power-management timeouts?** **Background:** Using [autokey](https://en.w...
In [awesome window manager](https://awesomewm.org/) , my screen brightness gets reset to 100% each time I'm away from my computer for a few minutes. **How can I get it to sustain the brightness I set prior to these screen-saver/power-management timeouts?**
**Background:**
Using [autokey](https://en.wikipedia.org/wiki/AutoKey) , I've created 3 scripts that enable me to adjust my screen's brightness with hotkeys. These scripts use the debian package
brightnessctl
to accomplish this:
sudo apt install brightnessctl
`
For the sake of being helpful to others, I will include these scripts below.
**Increase Brightness:**
import os
currentBrightness = system.exec_command("brightnessctl g")
brightnessLevel = str(int(currentBrightness) + 1)
if int(brightnessLevel) > 100:
brightnessLevel = '100'
if brightnessLevel:
cmd = "brightnessctl s " + brightnessLevel
os.system(cmd)
store.set_global_value("lastBrightness",brightnessLevel)
**Decrease Brightness:**
import os
currentBrightness = system.exec_command("brightnessctl g")
brightnessLevel = str(int(currentBrightness) - 1)
if int(brightnessLevel) 0:
store.set_global_value("lastBrightness",brightnessLevel)
cmd = "brightnessctl s " + brightnessLevel
os.system(cmd)
While these scripts are working perfectly, I do have an issue:
When I'm away from my computer for a few minutes, and then come back, my monitor will be in some type of power saving state, where the monitor has been either turned off or displays a black screen. When I wake up the monitor (by hitting a key or moving my mouse) the brightness that I previously set (using brightnessctl
), has been changed back to 100% brightness.
**How can I sustain my brightness settings thorough these screen-saver/power-saving timeouts?**
Lonnie Best
(5415 rep)
Jan 22, 2022, 01:40 PM
• Last activity: Oct 30, 2023, 10:53 PM
1
votes
0
answers
257
views
Chromium session management on X11 vs Wayland
I use a chromium based web browser (brave) on awesome-wm (WM for X11). My normal workflow is to have 1 or 2 brave windows open on each virtual desktop. Then I would click the hamburger icon (settings) and click "Exit". This would close all my brave windows in all my virtual desktops. Then, if I was...
I use a chromium based web browser (brave) on awesome-wm (WM for X11). My normal workflow is to have 1 or 2 brave windows open on each virtual desktop. Then I would click the hamburger icon (settings) and click "Exit". This would close all my brave windows in all my virtual desktops. Then, if I was to launch brave, it would remember the exact mapping between the windows and to which virtual desktops those windows belong in. Hence, brave would place the windows in their respective virtual desktops.
However in Wayland, if I was to do the same thing (be it sway or hyprland), brave would open ALL the windows in the same desktop.
I am under the impression that session management in this context would be a delegation of the application (brave). I also tried google chrome, but it behaves exactly like brave. I also had a similar workflow on KDE (with X11), and things worked well there.
Is there a workaround, maybe some chromium extension to make things work here? Also, is this really an issue in brave/chromium or is it an issue in wayland not implementing the session managemnt of chromium?
Thank you
StaticESC
(11 rep)
Oct 27, 2023, 04:42 PM
1
votes
2
answers
1217
views
Gnome-terminal slow start for first instance on arch
I am using the Awesome window manager with Arch, kernel 6.5.5. When I start gnome-terminal for the first time and every other time where I don't already have an instance of gnome-terminal running, it takes several seconds (~20 seconds). I have tried using the gnome window manager as it was suggested...
I am using the Awesome window manager with Arch, kernel 6.5.5.
When I start gnome-terminal for the first time and every other time where I don't already have an instance of gnome-terminal running, it takes several seconds (~20 seconds).
I have tried using the gnome window manager as it was suggested in this similar issue
and it does fix the issue, but I don't want to use another window manager.
I am very interested in how to investigate and solve this problem, but I am unsure of what to look for.
journalctl --user -r
:
Oct 07 07:59:25 arch-pc xdg-desktop-por: Failed to create settings proxy: Error calling StartServiceByName for org.freedesktop.impl.portal.desktop.gnome: Timeout was reached
Oct 07 07:59:00 arch-pc systemd: Started VTE child process 6212 launched by gnome-terminal-server process 6091.
Oct 07 07:58:35 arch-pc systemd: xdg-desktop-portal-gnome.service: Job xdg-desktop-portal-gnome.service/start failed with result 'dependency'.
Oct 07 07:58:35 arch-pc systemd: Dependency failed for Portal service (GNOME implementation).
Oct 07 07:58:35 arch-pc systemd: Current graphical user session is inactive.
Oct 07 07:58:35 arch-pc dbus-daemon: [session uid=1000 pid=1699] Activating via systemd: service name='org.freedesktop.impl.portal.desktop.gnome' unit='xdg-desktop-portal-gnome.service>
Oct 07 07:58:35 arch-pc systemd: Starting Portal service...
Oct 07 07:58:35 arch-pc dbus-daemon: [session uid=1000 pid=1699] Activating via systemd: service name='org.freedesktop.portal.Desktop' unit='xdg-desktop-portal.service' requested by ':>
Oct 07 07:58:35 arch-pc systemd: Started GNOME Terminal Server.
Oct 07 07:58:35 arch-pc dbus-daemon: [session uid=1000 pid=1699] Successfully activated service 'org.gnome.Terminal'
Oct 07 07:58:35 arch-pc systemd: Starting GNOME Terminal Server...
Oct 07 07:58:35 arch-pc dbus-daemon: [session uid=1000 pid=1699] Activating via systemd: service name='org.gnome.Terminal' unit='gnome-terminal-server.service' requested by ':1.41' (ui>
Oct 07 07:54:43 arch-pc sudo: pam_unix(sudo:session): session closed for user root
Stating that xdg-desktop-portal-gnome.service
is having trouble starting.
A recent update fixed this issue on my pc.
the packages below where all updated.
xdg-desktop-portal-1.18.0-2
xdg-desktop-portal-gnome-44.2-2
xdg-desktop-portal-gtk-1.14.1-3
Just to be clear, I did not manage to find xdg-desktop-portal-gnome.service
with systemctl on my pc.
v42
(13 rep)
Sep 27, 2023, 07:42 AM
• Last activity: Oct 8, 2023, 10:03 AM
0
votes
2
answers
1133
views
How to run scripts from Awesome Window Manager
I would like to run scripts with a shortcut the same way I can run apps like firefox. I have a Dmenu script (called dmconf) that list all my configuration files, I've already make it executable and is in my bin directory which is included in my path variable. It works when I run the script from the...
I would like to run scripts with a shortcut the same way I can run apps like firefox.
I have a Dmenu script (called dmconf) that list all my configuration files, I've already make it executable and is in my bin directory which is included in my path variable.
It works when I run the script from the terminal (konsole - Zsh) but it doesn't when I run it from Awesome. This is the relevant code from my rc.lua
awful.key({ modkey },"n",
function () awful.util.spawn("$HOME/bin/dmconf") end,
{description = "list configuration files", group = "Dmenu"}),
In the spawn parenthesis I've tried with "$HOME/bin/dmconf", "dmconf", "bash dmconf", but none of them worked.
GhostOrder
(181 rep)
Mar 9, 2021, 05:43 PM
• Last activity: Sep 25, 2023, 02:34 PM
1
votes
0
answers
261
views
Windows are glitchy and don't render properly
I recently got a new laptop, System 76 Lemur Pro, preinstalled with Ubuntu 22.04. I've been installing and configuring Awesome Window Manager 4.3. I believe I messed something up with xrandr or picom because issues started after rebooting on the day I was setting up an external monitor. Several of m...
I recently got a new laptop, System 76 Lemur Pro, preinstalled with Ubuntu 22.04. I've been installing and configuring Awesome Window Manager 4.3. I believe I messed something up with xrandr or picom because issues started after rebooting on the day I was setting up an external monitor. Several of my programs started having rendering issues and becoming glitchy after a reboot:
- Qutebrowser started showing large flickering black blotches, see figure. This was solved for Qutebrowser by adding either
- VScodium had started showing a smaller degree of flickering on some icons. I don't have a screenshot. But this was solved by adding the following to argv.json:
> // Use software rendering instead of hardware accelerated rendering.
> // This can help in cases where you see rendering issues in VS Code.
> "disable-hardware-acceleration": true,
- The issue remains for Alacritty and BitWarden, where both are very glitchy. In Alacritty, the lines are transparent and the colors correspond to the wallpaper.
Other clients are not affected, such as: Nautilus, Thunderbird, Zotero, Firefox.
First I checked if xrandr did something weird. I read the xrandr Archwiki and followed the instructions for Screen Blinking. so I used
c.qt.force_software_rendering = 'software-opengl'
or c.qt.force_software_rendering = 'qt-quick'
to the config.py file. The issue reappears when c.qt.force_software_rendering = 'chromium'
or c.qt.force_software_rendering = 'none'
.



cvt -v 1920 1080
to get the standardized settings for both of the monitors, and then set those. Now xrandr
gives me this output:
Screen 0: minimum 8 x 8, current 3840 x 1747, maximum 32767 x 32767
eDP1 connected primary 1920x1080+1920+667 (normal left inverted right x axis y axis) 310mm x 170mm
1920x1080 60.05 + 59.96
1920x1080_60.00 59.96*
DP1 disconnected (normal left inverted right x axis y axis) DP2 disconnected (normal left inverted right x axis y axis) DP3 disconnected (normal left inverted right x axis y axis)
DP4 disconnected (normal left inverted right x axis y axis)
HDMI1 connected 1920x1080+0+0 (normal left inverted right x axis y axis) 600mm x 340mm
1920x1080 60.00 + 50.00 59.94 59.93
1920x1080i 60.00 50.00 59.94
1600x900 60.00
1280x1024 75.02 60.02
1152x864 75.00
1280x720 60.00 50.00 59.94
1024x768 75.03 60.00
800x600 75.00 60.32
720x576 50.00
720x576i 50.00
720x480 60.00 59.94
720x480i 60.00 59.94
640x480 75.00 60.00 59.94
720x400 70.08
1920x1080R 59.93*
VIRTUAL1 disconnected (normal left inverted right x axis y axis)
Changing the output mode didn't fix the issue.
Next, I tried configuring the Intel driver with "TearFree" because I thought this might be caused by tearing. So now the configuration file /etc/X11/xorg.conf.d/20-intel.conf
looks like this:
Section "Device"
Identifier "Intel Graphics"
Driver "intel"
Option "Backlight" "intel_backlight"
Option "TearFree" "true"
EndSection
This didn't help.
I'm at the end of my rope. All I know is that it has something to do with hardware rendering but I don't know where to look for solutions or how to troubleshoot this further. Any help is appreciated.
Here is my neofetch
:
OS: Ubuntu 22.04.2 LTS x86_64
Host: Lemur Pro lemp12
Kernel: 6.2.6-76060206-generic
Uptime: 1 hour, 56 mins
Packages: 1954 (dpkg), 13 (snap)
Shell: zsh 5.8.1
Resolution: 1920x1080, 1920x1080
WM: awesome
Theme: Numix [GTK3]
Icons: Numix [GTK3]
Terminal: alacritty
CPU: 13th Gen Intel i7-1355U (12) @ 5.000GHz
GPU: Intel Device a7a1
Memory: 4444MiB / 15828MiB
marbri
(21 rep)
Aug 2, 2023, 08:26 PM
• Last activity: Aug 5, 2023, 06:51 PM
1
votes
0
answers
1002
views
How can I set $PATH for awesome window manager prompt
I'm using awesome 3.5.9 in Debian Testing. `/bin/bash` is my user's shell. My `~/.profile` reads if [ -n "$BASH_VERSION" ]; then # include .bashrc if it exists if [ -f "$HOME/.bashrc" ]; then . "$HOME/.bashrc" fi fi And in my `~/.bashrc` I have edited my `$PATH` to contain some custom directories. I...
I'm using awesome 3.5.9 in Debian Testing.
/bin/bash
is my user's shell. My ~/.profile
reads
if [ -n "$BASH_VERSION" ]; then
# include .bashrc if it exists
if [ -f "$HOME/.bashrc" ]; then
. "$HOME/.bashrc"
fi
fi
And in my ~/.bashrc
I have edited my $PATH
to contain some custom directories.
In awesome's rc.lua
, I have set up the prompt like this:
awful.key({ modkey }, "r",
function ()
awful.prompt.run({ prompt = "Run: " },
mypromptbox[mouse.screen].widget,
awful.util.spawn, awful.completion.bash)
end),
However, the auto-completion in the awesome prompt doesn't consider the custom directories I have in my $PATH
.
What am I doing wrong?
andreas-h
(669 rep)
Oct 28, 2016, 09:00 PM
• Last activity: Apr 26, 2023, 05:46 PM
0
votes
0
answers
1570
views
AwesomeWM, Proper Configuration with Multiple Monitors - Cloning, Activating Additional Monitors without Logging out, vertical display, monitor order
I have four related questions regarding the use of the window manager AwesomeWM when multiple monitors are involved. These are all fairly simple configuration questions, but I have not been able to figure them out. 1: If I am already in Awesome-WM, and I plug in an additional monitor, Awesome cannot...
I have four related questions regarding the use of the window manager AwesomeWM when multiple monitors are involved. These are all fairly simple configuration questions, but I have not been able to figure them out.
1: If I am already in Awesome-WM, and I plug in an additional monitor, Awesome cannot figure out that there is an additional monitor and create a new desktop image and visuals on it. I have to log out and log back in again, and even resetting with ctrl-super-r does not suffice. This also applies in reverse - if I launch Awesome with two monitors, removing one results in Awesome still thinking there is another monitor and having windows there, the mouse going over the edge, etc. How can I resolve this without logging out and back in?
2: I may wish to clone the display to two or more screens, if I am doing a presentation. Awesome defaults to a new desktop with its own items on it. I have found no setting that changes this.
3: If one of the monitors is a vertical monitor, it is of course desired for Awesome to change its alignment to vertical, shifting things by 90 degrees and changing what the "top" is. Instead, it thinks the monitor is still in the typical, "standard" layout, and I have found no setting to change this.
4: When using three monitors, Awesome-WM currently thinks that the monitor in the center is monitor 1, the monitor to the right is monitor 2, and the monitor to the left is monitor 3. This results in moving the mouse to the right or using shortcut keys to go to the next to the right monitor, and it jumping over to the leftmost monitor, which is awkward. I would like to change the order but have found no setting to do so.
What are the configurations needed to make AwesomeWM work with multiple monitors in these ways?
Benyamin
(103 rep)
Mar 31, 2023, 06:11 PM
7
votes
2
answers
4621
views
How to reboot/shut down gracefully in Awesome WM?
My [current configuration][1] uses kdesu shutdown -[rh] now to reboot/shut down. The entire shutdown procedure takes about 1-2 seconds. But after every boot Firefox says it was shut down prematurely, very likely indicating that it was brutally murdered rather than laid to rest. How do I configure a...
My current configuration uses
kdesu shutdown -[rh] now
to reboot/shut down. The entire shutdown procedure takes about 1-2 seconds. But after every boot Firefox says it was shut down prematurely, very likely indicating that it was brutally murdered rather than laid to rest. How do I configure a "normal" WM shutdown procedure (something like
kill -SIGTERM && sleep 10 && kill -SIGKILL
, but preferably using **an existing tool**) in Awesome WM?
Related question for GDM.
l0b0
(53368 rep)
Jul 14, 2014, 09:41 AM
• Last activity: Mar 16, 2023, 02:07 PM
0
votes
1
answers
157
views
How do I configure a key binding to send a client to bling's scratch pad in awesome wm?
I want to make a shortcut that can send a client to bling's scratchpad. The part that initializes bling scratch pad: ```lua local bling = require("bling") local term_scratch = bling.module.scratchpad { command = "wezterm start --class spad", -- How to spawn the scratchpad rule = { instance = "spad"...
I want to make a shortcut that can send a client to bling's scratchpad.
The part that initializes bling scratch pad:
local bling = require("bling")
local term_scratch = bling.module.scratchpad {
command = "wezterm start --class spad", -- How to spawn the scratchpad
rule = { instance = "spad" }, -- The rule that the scratchpad will be searched by
sticky = true, -- Whether the scratchpad should be sticky
autoclose = true, -- Whether it should hide itself when losing focus
floating = true, -- Whether it should be floating (MUST BE TRUE FOR ANIMATIONS)
geometry = {x=360, y=90, height=900, width=1200}, -- The geometry in a floating state
reapply = true, -- Whether all those properties should be reapplied on every new opening of the scratchpad (MUST BE TRUE FOR ANIMATIONS)
dont_focus_before_close = false, -- When set to true, the scratchpad will be closed by the toggle function regardless of whether its focused or not. When set to false, the toggle function will first bring the scratchpad into focus and only close it on a second call
}
That key binding that failed to move the client into said scratch pad:
globalkeys = gears.table.join(
awful.key({ modkey, "Shift" }, "h",
function ()
term_scratch:toggle()
end ),
Documentation page that I didn't understand: https://blingcorp.github.io/bling/#/module/scratch
How should I utilize the term_scratch:toggle()
object/function?
System: Arch linux, X11, awesome-wm, awesome-wm bling add on.
OutwardThinking
(21 rep)
Feb 17, 2023, 07:30 PM
• Last activity: Feb 21, 2023, 02:03 AM
3
votes
1
answers
990
views
How to Bind Alt+Scroll for Zooming (Screen Magnifier) in Awesome Window Manager
In Awesome Window Manager, how can I bind alt+Scroll for zooming? For example, in KDE Plasma, it is done this way: 1) sudo apt install xbindkeys 2) Save the text below into ~/.xbindkeysrc : "qdbus org.kde.kglobalaccel /component/kwin invokeShortcut view_zoom_in" alt + b:4 "qdbus org.kde.kglobalaccel...
In Awesome Window Manager, how can I bind alt+Scroll for zooming?
For example, in KDE Plasma, it is done this way:
1) sudo apt install xbindkeys
2) Save the text below into ~/.xbindkeysrc :
"qdbus org.kde.kglobalaccel /component/kwin invokeShortcut view_zoom_in"
alt + b:4
"qdbus org.kde.kglobalaccel /component/kwin invokeShortcut view_zoom_out"
alt + b:5
3) run: xbindkeys (it will automatically run each reboot, but this will run it now)
Ideally, I'd love to discover an X level solution for this feature. This way I can bind zooming to the mouse scroll wheel in a manner that works in any window manager or desktop environment that is X based.
Lonnie Best
(5415 rep)
Jan 7, 2022, 10:03 AM
• Last activity: Dec 22, 2022, 12:41 PM
Showing page 1 of 20 total questions