actionless / awesome_config Goto Github PK
View Code? Open in Web Editor NEWconfig for AwesomeWM
License: GNU General Public License v3.0
config for AwesomeWM
License: GNU General Public License v3.0
Only with 2x monitors :
Was : you can create tag on focused monitor with hotkeys (e.g. mod + 5) and switch to it from main monitor.
Right now you can use hotkeys only on main monitor.
I was trying to use this config but then awesome complained about not finding a module called ruled
Very awesome config , I was deep impressive.
I fellow the guild in README , when I finished and restart awesome occur error
Oops, there were errors during startup!
error while running function
stac traceback:
...noon/.config/awesoome/third_party/revelation/init.lua:340 in function 'init'
/home/sinoon/.config/awesome/config/keys.lua:21 in main chunk
[C]: in function 'require'
/home/sinoon/.config/awesome/config/init.lua:8: in main chunk
[C]: in function 'require'
/home/sinoon/.config/awesome/rc.lua:70: in main chunk
error: ...noon/.config/awesome/third_party/revelation/init.lua:340 attempt to concatenate field 'fg_normal' (a nil value)
Should I found a theme that theme.lua have the 'fg_normal'?
error while running function
stack traceback:
/home/tr4ka/.config/awesome/config/keys.lua:21: in main chunk
[C]: in function 'require'
/home/tr4ka/.config/awesome/config/init.lua:7: in main chunk
[C]: in function 'require'
/home/tr4ka/.config/awesome/rc.lua:63: in main chunk
error: /home/tr4ka/.config/awesome/config/keys.lua:21: attempt to index a boolean value (local 'revelation')
error while running function
stack traceback:
/home/tr4ka/.config/awesome/config/keys.lua:21: in main chunk
[C]: in function 'require'
/home/tr4ka/.config/awesome/config/init.lua:7: in main chunk
[C]: in function 'require'
/home/tr4ka/.config/awesome/rc.lua:63: in main chunk
error: /home/tr4ka/.config/awesome/config/keys.lua:21: attempt to index a boolean value (local 'revelation')
can you help to check this :) 💯 ?
Mpd plug didn't working again. Shows nil output. Mpd has a default config, so nothing unusual.
local naughty=require("naughty")
status.menu.instance = menu_addon.clients_on_tag({
theme = {width=capi.screen[helpers.get_current_screen()].workarea.width},
coords = {x=0, y=18}})
end),
awful.key({ modkey, }, "p",
function ()
status.menu.instance = awful.menu.clients({
theme = {width=capi.screen[helpers.get_current_screen()].workarea.width},
coords = {x=0, y=18}})
end),
It is possible to anchor position to monitor ?
Keys.lua
Try to reproduce:
I followed your installation instructions, but when I load awesomewm I get the follow error.
error while running function
stack traceback:
[C]: in function 'require'
/home/gregf/.config/awesome/rc.lua:9: in main chunk
error: /home/gregf/.config/awesome/rc.lua:9: module 'beautiful.xresources' not found:
no field package.preload['beautiful.xresources']
no file './beautiful/xresources.lua'
no file '/usr/local/share/lua/5.1/beautiful/xresources.lua'
no file '/usr/local/share/lua/5.1/beautiful/xresources/init.lua'
no file '/usr/local/lib/lua/5.1/beautiful/xresources.lua'
no file '/usr/local/lib/lua/5.1/beautiful/xresources/init.lua'
no file '/usr/share/lua/5.1/beautiful/xresources.lua'
no file '/usr/share/lua/5.1/beautiful/xresources/init.lua'
no file '/home/gregf/.config/awesome/beautiful/xresources.lua'
no file '/home/gregf/.config/awesome/beautiful/xresources/init.lua'
no file '/etc/xdg/awesome/beautiful/xresources.lua'
no file '/etc/xdg/awesome/beautiful/xresources/init.lua'
no file '/usr/share/awesome/lib/beautiful/xresources.lua'
no file '/usr/share/awesome/lib/beautiful/xresources/init.lua'
no file './beautiful/xresources.so'
no file '/usr/local/lib/lua/5.1/beautiful/xresources.so'
no file '/usr/lib/x86_64-linux-gnu/lua/5.1/beautiful/xresources.so'
no file '/usr/lib/lua/5.1/beautiful/xresources.so'
no file '/usr/local/lib/lua/5.1/loadall.so'
no file './beautiful.so'
no file '/usr/local/lib/lua/5.1/beautiful.so'
no file '/usr/lib/x86_64-linux-gnu/lua/5.1/beautiful.so'
no file '/usr/lib/lua/5.1/beautiful.so'
no file '/usr/local/lib/lua/5.1/loadall.so'
W: awesome: a_glib_poll:290: Something was left on the Lua stack, this is a bug!
-------- Lua stack dump ---------
1: string: `cannot open /home/gregf/.config/awesome/rc.lua.new: No such file or directory'
------- Lua stack dump end ------
I'm currently running awesome wm 4.2 and would love to add your music spotify and stuff. And i had look at your rc.lua wanted to know how i add them to mine if you can be helpful. thanks in advance
themes/lcars-xresourecs-hidpi/theme.lua
unable to do so can you help
mine looks like this
Is it possible to get systray icons be displayed at the top-bar vs side-bar, just like in a screenshot:
Hi! I love the keyboard oriented hotkey popup you have screenshots of, but I can't figure out where the code is for it. Do you mind linking to it? Thanks!
I'm Trying to add vkpd functional to this config. I have a problem right now. Mpd didn't get right tags from vk.com and output at mpd_now.artist and mpd_now.title showing full http:// patch to song.
Can you advise how to do plugin with fixed width in tray? Or how to implement rotating to Artist - title ?
Привет. Есть опция выбора layout для бара ? было бы не плохо иметь возможность включать стандартный бар как в старых версиях конфига. 👍
I would like the Spotify in my awesome if you can be grateful to help
here's my rc.lua file
local awesome, client, mouse, screen, tag = awesome, client, mouse, screen, tag
local ipairs, string, os, table, tostring, tonumber, type = ipairs, string, os, table, tostring, tonumber, type
local gears = require("gears")
local awful = require("awful")
require("awful.autofocus")
local wibox = require("wibox")
local beautiful = require("beautiful")
local naughty = require("naughty")
local lain = require("lain")
local scratch = require("scratch")
--local menubar = require("menubar")
local freedesktop = require("freedesktop")
local hotkeys_popup = require("awful.hotkeys_popup").widget
-- }}}
-- {{{ Error handling
if awesome.startup_errors then
naughty.notify({ preset = naughty.config.presets.critical,
title = "Oops, there were errors during startup!",
text = awesome.startup_errors })
end
do
local in_error = false
awesome.connect_signal("debug::error", function (err)
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
-- }}}
-- {{{ Autostart windowless processes
local function run_once(cmd_arr)
for _, cmd in ipairs(cmd_arr) do
findme = cmd
firstspace = cmd:find(" ")
if firstspace then
findme = cmd:sub(0, firstspace-1)
end
awful.spawn.with_shell(string.format("pgrep -u $USER -x %s > /dev/null || (%s)", findme, cmd))
end
end
--run_once({ "unclutter -root" }) -- entries must be comma-separated
run_once({ "kbdd" })
run_once({ "nm-applet -sm-disable" })
run_once({ "yeahconsole" })
run_once({ "xautolock -time 10 -locker /home/ban/.config/scripts/lock.sh" })
run_once({ "wmname LG3D" })
--run_once({ "telegram-desktop" })
run_once({ "megasync" })
run_once({ "yandex-disk-indicator" })
run_once({ "dropbox" })
-- }}}
-- {{{ Variable definitions
local themes = {
"blackburn", -- 1
"copland", -- 2
"dremora", -- 3
"holo", -- 4
"multicolor", -- 5
"powerarrow", -- 6
"powerarrow-dark", -- 7
"rainbow", -- 8
"steamburn", -- 9
"vertex", -- 10
}
local chosen_theme = themes[6]
local modkey = "Mod4"
local altkey = "Mod1"
local terminal = "xterm"
local editor = os.getenv("EDITOR") or "nano"
local gui_editor = "gvim"
local browser = "vivaldi-snapshot"
local guieditor = "subl3"
local scrlocker = "xlock"
local translate_service = "google"
-- Naughty presets
naughty.config.defaults.timeout = 5
naughty.config.defaults.screen = 1
naughty.config.defaults.position = "top_right"
naughty.config.defaults.margin = 8
naughty.config.defaults.gap = 1
naughty.config.defaults.ontop = true
naughty.config.defaults.font = "Meslo LGS Regular 10"
naughty.config.defaults.icon = nil
naughty.config.defaults.icon_size = 32
naughty.config.defaults.fg = beautiful.fg_tooltip
naughty.config.defaults.bg = beautiful.bg_tooltip
naughty.config.defaults.border_color = beautiful.border_tooltip
naughty.config.defaults.border_width = 2
naughty.config.defaults.hover_timeout = nil
awful.util.terminal = terminal
awful.util.tagnames = { " </> ", " >_ ", " web ", " & ", " etc ", " # " }
awful.layout.layouts = {
awful.layout.suit.tile,
awful.layout.suit.floating,
awful.layout.suit.max,
lain.layout.centerwork,
awful.layout.suit.spiral,
awful.layout.suit.magnifier,
--awful.layout.suit.tile.bottom,
--awful.layout.suit.tile.left,
--awful.layout.suit.tile.top,
--awful.layout.suit.fair,
--awful.layout.suit.fair.horizontal,
--awful.layout.suit.spiral.dwindle,
--awful.layout.suit.max.fullscreen,
--awful.layout.suit.corner.nw,
--awful.layout.suit.corner.ne,
--awful.layout.suit.corner.sw,
--awful.layout.suit.corner.se,
--lain.layout.cascade,
--lain.layout.cascade.tile,
--lain.layout.centerwork.horizontal,
--lain.layout.termfair.center,
}
awful.util.taglist_buttons = awful.util.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)
)
awful.util.tasklist_buttons = awful.util.table.join(
awful.button({ }, 1, function (c)
if c == client.focus then
c.minimized = true
else
-- Without this, the following
-- :isvisible() makes no sense
c.minimized = false
if not c:isvisible() and c.first_tag then
c.first_tag:view_only()
end
-- This will also un-minimize
-- the client, if needed
client.focus = c
c:raise()
end
end),
awful.button({ }, 3, function()
local instance = nil
return function ()
if instance and instance.wibox.visible then
instance:hide()
instance = nil
else
instance = awful.menu.clients({ theme = { width = 250 } })
end
end
end),
awful.button({ }, 4, function ()
awful.client.focus.byidx(1)
end),
awful.button({ }, 5, function ()
awful.client.focus.byidx(-1)
end))
lain.layout.termfair.nmaster = 3
lain.layout.termfair.ncol = 1
lain.layout.termfair.center.nmaster = 3
lain.layout.termfair.center.ncol = 1
lain.layout.cascade.tile.offset_x = 2
lain.layout.cascade.tile.offset_y = 32
lain.layout.cascade.tile.extra_padding = 5
lain.layout.cascade.tile.nmaster = 5
lain.layout.cascade.tile.ncol = 2
local theme_path = string.format("%s/.config/awesome/themes/%s/theme.lua", os.getenv("HOME"), chosen_theme)
beautiful.init(theme_path)
-- }}}
-- {{{ Menu
local myawesomemenu = {
{ "hotkeys", function() return false, hotkeys_popup.show_help end },
{ "manual", terminal .. " -e man awesome" },
{ "edit config", string.format("%s -e %s %s", terminal, editor, awesome.conffile) },
{ "restart", awesome.restart },
{ "quit", function() awesome.quit() end }
}
awful.util.mymainmenu = freedesktop.menu.build({
icon_size = beautiful.menu_height or 16,
before = {
{ "Awesome", myawesomemenu, beautiful.awesome_icon },
-- other triads can be put here
},
after = {
{ "Open terminal", terminal },
-- other triads can be put here
}
})
--menubar.utils.terminal = terminal -- Set the Menubar terminal for applications that require it
-- }}}
-- {{{ Screen
-- Re-set wallpaper when a screen's geometry changes (e.g. different resolution)
screen.connect_signal("property::geometry", function(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.maximized(wallpaper, s, true)
end
end)
-- Create a wibox for each screen and add it
awful.screen.connect_for_each_screen(function(s) beautiful.at_screen_connect(s) end)
-- }}}
-- {{{ Mouse bindings
root.buttons(awful.util.table.join(
awful.button({ }, 3, function () awful.util.mymainmenu:toggle() end),
awful.button({ }, 4, awful.tag.viewnext),
awful.button({ }, 5, awful.tag.viewprev)
))
-- }}}
-- {{{ Key bindings
globalkeys = awful.util.table.join(
-- Take a screenshot
-- https://github.com/lcpz/dots/blob/master/bin/screenshot
--awful.key({ altkey }, "p", function() os.execute("screenshot") end,
-- {description = "take a screenshot", group = "hotkeys"}),
-- X screen locker
awful.key({ altkey, "Control" }, "l", function () os.execute(scrlocker) end,
{description = "lock screen", group = "hotkeys"}),
-- Hotkeys
awful.key({ modkey, }, "s", hotkeys_popup.show_help,
{description = "show help", group="awesome"}),
-- Tag browsing
awful.key({ modkey, }, "Left", awful.tag.viewprev,
{description = "view previous", group = "tag"}),
awful.key({ modkey, }, "Right", awful.tag.viewnext,
{description = "view next", group = "tag"}),
awful.key({ modkey, }, "Escape", awful.tag.history.restore,
{description = "go back", group = "tag"}),
-- Non-empty tag browsing
-- awful.key({ modkey, "Shift" }, "Left", function () lain.util.tag_view_nonempty(-1) end,
-- {description = "view previous nonempty", group = "tag"}),
-- awful.key({ modkey, "Shift" }, "Right", function () lain.util.tag_view_nonempty(1) end,
-- {description = "view previous nonempty", group = "tag"}),
-- Default client focus
awful.key({ altkey, }, "j",
function ()
awful.client.focus.byidx( 1)
end,
{description = "focus next by index", group = "client"}
),
awful.key({ altkey, }, "k",
function ()
awful.client.focus.byidx(-1)
end,
{description = "focus previous by index", group = "client"}
),
-- By direction client focus
awful.key({ modkey }, "j",
function()
awful.client.focus.bydirection("down")
if client.focus then client.focus:raise() end
end,
{description = "focus down", group = "client"}),
awful.key({ modkey }, "k",
function()
awful.client.focus.bydirection("up")
if client.focus then client.focus:raise() end
end,
{description = "focus up", group = "client"}),
awful.key({ modkey }, "h",
function()
awful.client.focus.bydirection("left")
if client.focus then client.focus:raise() end
end,
{description = "focus left", group = "client"}),
awful.key({ modkey }, "l",
function()
awful.client.focus.bydirection("right")
if client.focus then client.focus:raise() end
end,
{description = "focus right", group = "client"}),
awful.key({ modkey, }, "w", function () awful.util.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"}),
-- Show/Hide Wibox
awful.key({ modkey }, "b", function ()
for s in screen do
s.mywibox.visible = not s.mywibox.visible
if s.mybottomwibox then
s.mybottomwibox.visible = not s.mybottomwibox.visible
end
end
end,
{description = "toggle wibox", group = "awesome"}),
-- On the fly useless gaps change
awful.key({ altkey }, "Right", function () lain.util.useless_gaps_resize(7) end,
{description = "increment useless gaps", group = "tag"}),
awful.key({ altkey }, "Left", function () lain.util.useless_gaps_resize(-7) end,
{description = "decrement useless gaps", group = "tag"}),
-- Dynamic tagging
-- awful.key({ modkey, "Shift" }, "n", function () lain.util.add_tag() end,
-- {description = "add new tag", group = "tag"}),
-- awful.key({ modkey, "Shift" }, "r", function () lain.util.rename_tag() end,
-- {description = "rename tag", group = "tag"}),
-- awful.key({ modkey, "Shift" }, "Left", function () lain.util.move_tag(-1) end,
-- {description = "move tag to the left", group = "tag"}),
-- awful.key({ modkey, "Shift" }, "Right", function () lain.util.move_tag(1) end,
-- {description = "move tag to the right", group = "tag"}),
-- awful.key({ modkey, "Shift" }, "d", function () lain.util.delete_tag() end,
-- {description = "delete tag", group = "tag"}),
-- Programms
awful.key({ }, "XF86Launch1", function() awful.util.spawn("subl3") end),
awful.key({ modkey }, "v", function() awful.util.spawn_with_shell("vivaldi-snapshot") end ),
awful.key({ modkey }, "t", function() awful.util.spawn_with_shell("caja") end ),
awful.key({ modkey }, "r", function() awful.util.spawn('xterm -e ranger') end ),
awful.key({ }, "F11", function() awful.util.spawn('qpaeq') end ),
awful.key({ modkey }, "l", function() awful.util.spawn_with_shell("~/.config/scripts/lock.sh") end),
awful.key({ }, "Print", function() awful.util.spawn("scrot -e 'mv %f ~/screenshots/'") end),
--awful.key({ }, "F4", function () scratch.drop("weechat", "bottom", "left", 0.60, 0.60, true, mouse.screen) end),
--awful.key({ }, "F6", function () scratch.drop("smuxi-frontend-gnome", "bottom", "left", 0.60, 0.60, true, mouse.screen) end),
awful.key({ }, "F2", function () scratch.drop("telegram-desktop", "bottom", "right", 0.50, 0.60, true, mouse.screen) end),
awful.key({ }, "F3", function () scratch.drop("xterm -e ranger", "center", "center", 0.75, 0.7, true, mouse.screen) end),
awful.key({ }, "F12", function () awful.util.spawn("/home/ban/.config/scripts/translate_new.sh \"".. translate_service.. "\"",false) end),
-- Standard program
awful.key({ modkey, }, "x", function () awful.spawn(terminal) end,
{description = "open a terminal", group = "launcher"}),
awful.key({ altkey, "Control" }, "r", awesome.restart,
{description = "reload awesome", group = "awesome"}),
awful.key({ altkey, "Control" }, "q", awesome.quit,
{description = "quit awesome", group = "awesome"}),
awful.key({ altkey, "Shift" }, "l", function () awful.tag.incmwfact( 0.05) end,
{description = "increase master width factor", group = "layout"}),
awful.key({ altkey, "Shift" }, "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
client.focus = c
c:raise()
end
end,
{description = "restore minimized", group = "client"}),
-- Dropdown application
awful.key({ modkey, }, "z", function () awful.screen.focused().quake:toggle() end,
{description = "dropdown application", group = "launcher"}),
-- Widgets popups
awful.key({ altkey, }, "c", function () lain.widget.calendar.show(7) end,
{description = "show calendar", group = "widgets"}),
awful.key({ altkey, }, "h", function () if beautiful.fs then beautiful.fs.show(7) end end,
{description = "show filesystem", group = "widgets"}),
awful.key({ altkey, }, "w", function () if beautiful.weather then beautiful.weather.show(7) end end,
{description = "show weather", group = "widgets"}),
-- Brightness
awful.key({ }, "XF86MonBrightnessUp", function () awful.util.spawn("xbacklight -inc 10") end,
{description = "+10%", group = "hotkeys"}),
awful.key({ }, "XF86MonBrightnessDown", function () awful.util.spawn("xbacklight -dec 10") end,
{description = "-10%", group = "hotkeys"}),
-- ALSA volume control
awful.key({ }, "XF86AudioRaiseVolume",
function ()
os.execute(string.format("amixer -q set %s 5%%+", beautiful.volume.channel))
beautiful.volume.update()
end,
{description = "volume up", group = "hotkeys"}),
awful.key({ }, "XF86AudioLowerVolume",
function ()
os.execute(string.format("amixer -q set %s 5%%-", beautiful.volume.channel))
beautiful.volume.update()
end,
{description = "volume down", group = "hotkeys"}),
awful.key({ }, "XF86AudioMute",
function ()
os.execute(string.format("amixer -q set %s toggle", beautiful.volume.togglechannel or beautiful.volume.channel))
beautiful.volume.update()
end,
{description = "toggle mute", group = "hotkeys"}),
-- awful.key({ altkey, "Control" }, "m",
-- function ()
-- os.execute(string.format("amixer -q set %s 100%%", beautiful.volume.channel))
-- beautiful.volume.update()
-- end,
-- {description = "volume 100%", group = "hotkeys"}),
-- awful.key({ altkey, "Control" }, "0",
-- function ()
-- os.execute(string.format("amixer -q set %s 0%%", beautiful.volume.channel))
-- beautiful.volume.update()
-- end,
-- {description = "volume 0%", group = "hotkeys"}),
-- MPD control
awful.key({ altkey, "Control" }, "Up",
function ()
awful.spawn.with_shell("mpc toggle")
beautiful.mpd.update()
end,
{description = "mpc toggle", group = "widgets"}),
awful.key({ altkey, "Control" }, "Down",
function ()
awful.spawn.with_shell("mpc stop")
beautiful.mpd.update()
end,
{description = "mpc stop", group = "widgets"}),
awful.key({ altkey, "Control" }, "Left",
function ()
awful.spawn.with_shell("mpc prev")
beautiful.mpd.update()
end,
{description = "mpc prev", group = "widgets"}),
awful.key({ altkey, "Control" }, "Right",
function ()
awful.spawn.with_shell("mpc next")
beautiful.mpd.update()
end,
{description = "mpc next", group = "widgets"}),
awful.key({ altkey }, "0",
function ()
local common = { text = "MPD widget ", position = "top_middle", timeout = 2 }
if beautiful.mpd.timer.started then
beautiful.mpd.timer:stop()
common.text = common.text .. lain.util.markup.bold("OFF")
else
beautiful.mpd.timer:start()
common.text = common.text .. lain.util.markup.bold("ON")
end
naughty.notify(common)
end,
{description = "mpc on/off", group = "widgets"}),
-- Copy primary to clipboard (terminals to gtk)
awful.key({ modkey }, "c", function () awful.spawn("xsel | xsel -i -b") end,
{description = "copy terminal to gtk", group = "hotkeys"}),
-- Copy clipboard to primary (gtk to terminals)
awful.key({ altkey }, "v", function () awful.spawn("xsel -b | xsel") end,
{description = "copy gtk to terminal", group = "hotkeys"}),
-- User programs
-- awful.key({ modkey }, "q", function () awful.spawn(browser) end,
-- {description = "run browser", group = "launcher"}),
-- awful.key({ modkey }, "a", function () awful.spawn(guieditor) end,
-- {description = "run gui editor", group = "launcher"}),
-- Default
--[[ Menubar
awful.key({ modkey }, "p", function() menubar.show() end,
{description = "show the menubar", group = "launcher"})
--]]
--[[ dmenu
awful.key({ modkey }, "x", function ()
awful.spawn(string.format("dmenu_run -i -fn 'Monospace' -nb '%s' -nf '%s' -sb '%s' -sf '%s'",
beautiful.bg_normal, beautiful.fg_normal, beautiful.bg_focus, beautiful.fg_focus))
end,
{description = "show dmenu", group = "launcher"}),
--]]
-- Prompt
awful.key({ altkey }, "F2", function () awful.util.spawn("dmenu_run -fn 'Source Code Pro Regular-8' -i -l 10 -p 'Run:' -nb '#2d2d2d' -nf '#cccccc' -sb '#ff033e' -sf '#38000d'") end),
awful.key({ altkey }, "o", function () awful.screen.focused().mypromptbox:run() end,
{description = "run prompt", group = "launcher"}),
awful.key({ altkey }, "l",
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"})
--]]
)
clientkeys = awful.util.table.join(
awful.key({ altkey, "Shift" }, "m", lain.util.magnify_client,
{description = "magnify client", group = "client"}),
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({ altkey, }, "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, }, "y", 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 = "maximize", group = "client"})
)
-- Bind all key numbers to tags.
-- Be careful: we use keycodes to make it works on any keyboard layout.
-- This should map on the top row of your keyboard, usually 1 to 9.
for i = 1, 9 do
-- Hack to only show tags 1 and 9 in the shortcut window (mod+s)
local descr_view, descr_toggle, descr_move, descr_toggle_focus
if i == 1 or i == 9 then
descr_view = {description = "view tag #", group = "tag"}
descr_toggle = {description = "toggle tag #", group = "tag"}
descr_move = {description = "move focused client to tag #", group = "tag"}
descr_toggle_focus = {description = "toggle focused client on tag #", group = "tag"}
end
globalkeys = awful.util.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,
descr_view),
-- 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,
descr_toggle),
-- 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,
descr_move),
-- 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,
descr_toggle_focus)
)
end
clientbuttons = awful.util.table.join(
awful.button({ }, 1, function (c) client.focus = c; c:raise() end),
awful.button({ modkey }, 1, awful.mouse.client.move),
awful.button({ modkey }, 3, awful.mouse.client.resize))
-- 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,
size_hints_honor = false
}
},
-- Titlebars
{ rule_any = { type = { "dialog", "normal" } },
properties = { titlebars_enabled = true } },
-- Set Firefox to always map on the first tag on screen 1.
{ rule = { class = "Firefox" },
properties = { screen = 1, switchtotag = true, tag = awful.util.tagnames[4] } },
{ rule = { class = "Subl3" },
properties = { screen = 1, switchtotag = true, tag = awful.util.tagnames[1] } },
{ rule = { class = "Caja" },
properties = { floating = true, geometry = { x=200, y=150, height=600, width=1100 } } },
{ rule = { class = "Nm-connection-editor" },
properties = { floating = true } },
{ rule = { class = "jetbrains-webstorm" },
properties = { screen = 1, tag = awful.util.tagnames[2] } },
{ rule = { class = "jetbrains-idea" },
properties = { screen = 1, tag = awful.util.tagnames[2] } },
{ rule = { class = "jetbrains-pycharm" },
properties = { screen = 1, tag = awful.util.tagnames[2] } },
{ rule = { class = "Vivaldi-stable" },
properties = { screen = 1, switchtotag = true, tag = awful.util.tagnames[3] } },
{ rule = { class = "Vivaldi-snapshot" },
properties = { screen = 1, switchtotag = true, tag = awful.util.tagnames[3] } },
{ rule = { class = "Google-chrome" },
properties = { screen = 1, switchtotag = true, tag = awful.util.tagnames[4] } },
{ rule = { class = "Google-chrome-unstable" },
properties = { screen = 1, tag = awful.util.tagnames[5] } },
{ rule = { class = "Transmission-gtk" },
properties = { screen = 1, switchtotag = true, tag = awful.util.tagnames[6] } },
{ rule = { instance = "plugin-container" },
properties = { floating = true } },
{ rule = { instance = "exe" },
properties = { floating = true } },
{ rule = { role = "_NET_WM_STATE_FULLSCREEN" },
properties = { floating = true } },
{ rule = { class = "Gimp", role = "gimp-image-window" },
properties = { maximized = true } },
}
-- }}}
-- {{{ 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)
-- Custom
if beautiful.titlebar_fun then
beautiful.titlebar_fun(c)
return
end
-- Default
-- buttons for the titlebar
local buttons = awful.util.table.join(
awful.button({ }, 1, function()
client.focus = c
c:raise()
awful.mouse.client.move(c)
end),
awful.button({ }, 3, function()
client.focus = c
c:raise()
awful.mouse.client.resize(c)
end)
)
awful.titlebar(c, {size = 16}) : 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)
if awful.layout.get(c.screen) ~= awful.layout.suit.magnifier
and awful.client.focus.filter(c) then
client.focus = c
end
end)
-- No border for maximized clients
client.connect_signal("focus",
function(c)
if c.maximized then -- no borders if only 1 client visible
c.border_width = 0
elseif #awful.screen.focused().clients > 1 then
c.border_width = beautiful.border_width
c.border_color = beautiful.border_focus
end
end)
client.connect_signal("unfocus", function(c) c.border_color = beautiful.border_normal end)
-- }}}
Hi,
I've traced your pull request on main awesome repo about making awesome look like a current GTK+ 3 theme.
I've got an issue, awesome colors ends up being the default ones. It passes gears_debug.print_warning("Can't load GTK+3 theme. Using 'xresources' theme as a fallback.") without throwing an warning though.
Is there something I am missing? Thanks and sorry for bothering.
P.S. actually, I've made it work once which baffles my mind why (for adapta gtk theme), guess I am setting gtk theme wrong?
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.