diff options
author | tdro <tdro@users.noreply.github.com> | 2021-05-04 16:26:37 -0400 |
---|---|---|
committer | tdro <tdro@users.noreply.github.com> | 2021-05-04 17:54:49 -0400 |
commit | 2cc6348dfdea3b0d2bb0bfbdf1fbc325274b666c (patch) | |
tree | 927935c259f16363eaa24d2854356ed04aceb143 /.config | |
parent | 9b0203935e18a10fe12ad6ba2ab00cc11b2b3be3 (diff) | |
download | dotfiles-2cc6348dfdea3b0d2bb0bfbdf1fbc325274b666c.tar.gz dotfiles-2cc6348dfdea3b0d2bb0bfbdf1fbc325274b666c.tar.bz2 dotfiles-2cc6348dfdea3b0d2bb0bfbdf1fbc325274b666c.zip |
.config/awesome/rc.lua: Streamline configuration
Replace vicious widgets with shell calls.
Diffstat (limited to '.config')
-rw-r--r-- | .config/awesome/rc.lua | 547 | ||||
-rw-r--r-- | .config/awesome/themes/default/theme.lua | 127 | ||||
-rw-r--r-- | .config/nixpkgs/config.nix | 1 |
3 files changed, 291 insertions, 384 deletions
diff --git a/.config/awesome/rc.lua b/.config/awesome/rc.lua index 6f34d69..253e10f 100644 --- a/.config/awesome/rc.lua +++ b/.config/awesome/rc.lua @@ -1,236 +1,183 @@ --- 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") --- Disable window edge snapping -awful.mouse.snap.edge_enabled = false +local gears = require("gears") -- Gears module. +local awful = require("awful") -- Awful module. +local wibox = require("wibox") -- Wibox module. +local beautiful = require("beautiful") -- Theme module. +local naughty = require("naughty") -- Notification module. +local menubar = require("menubar") -- Menu bar module. +local lain = require("lain") -- Lain module. + +require("awful.autofocus") -- Enable autofocus. +awful.mouse.snap.edge_enabled = false -- Disable window edge snapping. +awesome.font = ("FontAwesome 9") -- Set font. + -- Naughty notification presets -naughty.config.defaults.icon_size = 32 -naughty.config.defaults.border_width = 2 +naughty.config.defaults.font = 'Monospace Bold 9' +naughty.config.defaults.icon_size = 32 +naughty.config.defaults.fg = '#ffffff' +naughty.config.defaults.bg = '#222222' +naughty.config.presets.critical.fg = '#000000' +naughty.config.presets.critical.bg = '#FF0000' naughty.config.defaults.border_color = '#000000' -naughty.config.defaults.fg = '#ffffff' -naughty.config.defaults.bg = '#222222' -naughty.config.presets.critical.fg = '#000000' -naughty.config.presets.critical.bg = '#FF0000' -naughty.config.defaults.font = 'Monospace Bold 9' --- Vicious library -local vicious = require("vicious") --- Lain library -local lain = require("lain") --- Set font -awesome.font = ("FontAwesome 9") +naughty.config.defaults.border_width = 2 + -- Startup --- os.execute("sleep 1 && i3lock-fancy -t '' -- scrot &") +-- awful.spawn.with_shell("sleep 1 && i3lock-fancy -t ''") --- {{{ 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) +-- 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 }) + 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) + 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 --- }}} --- {{{ Variable definitions +-- Variable definitions modkey = "Mod4" -terminal = "urxvt" +terminal = os.getenv("TERMINAL") or "urxvt" editor = os.getenv("EDITOR") or "nano" editor_cmd = terminal .. " -e " .. editor beautiful.init(awful.util.getdir("config") .. "/themes/default/theme.lua") +-- Layouts awful.layout.layouts = { - awful.layout.suit.floating, - awful.layout.suit.tile, - 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, + awful.layout.suit.floating, + awful.layout.suit.tile, + 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.magnifier, + awful.layout.suit.corner.nw, + awful.layout.suit.corner.ne, + awful.layout.suit.corner.sw, + awful.layout.suit.corner.se, } --- }}} --- {{{ Helper functions +-- Helper functions local function client_menu_toggle_fn() - 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 + 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 --- }}} - --- {{{ Menu - --- 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 bat widget -batwidget = wibox.widget.textbox() -vicious.register(batwidget, vicious.widgets.bat, " $1$2%", 1, "C23B") - --- Create cpu widget -cpuwidget = wibox.widget.textbox() -vicious.register(cpuwidget, vicious.widgets.cpu, ' $1% ⇆ $2%' , 2) - --- Create memory widget -memwidget = wibox.widget.textbox() -vicious.register(memwidget, vicious.widgets.mem, ' $4 mB', 5) - --- Create swap widget -swapwidget = wibox.widget.textbox() -vicious.register(swapwidget, vicious.widgets.mem, ' $8 mB', 5) - --- Create network wifi widget -netwidgetwifi = wibox.widget.textbox() -vicious.register(netwidgetwifi, vicious.widgets.net, ' ${wifi down_kb} kB ${wifi up_kb} kB', 3) - --- Create network net widget -netwidgetnet = wibox.widget.textbox() -vicious.register(netwidgetnet, vicious.widgets.net, ' ${net down_kb} kB ${net up_kb} kB', 2) - --- Create separator widget -separator = wibox.widget.textbox() -separator:set_text(" ") - --- Create a textdate widget -mytextdate = awful.widget.textclock(" %a %b %d ", 1) - --- Create a textclock widget -mytextclock = wibox.widget.textclock(" %I:%M %p", 1) +-- Widgets configuration +menubar.utils.terminal = terminal -- Set the terminal for applications that require it. + +widget_memory = awful.widget.watch('sh -c "printf \' \' && free --giga -h | awk \'FNR == 2 { print $7 }\'"', 3) -- Create memory widget. +widget_swap = awful.widget.watch('sh -c "printf \' \' && free --giga -h | awk \'FNR == 3 { print $4 }\'"', 4) -- Create swap widget. +widget_battery = awful.widget.watch('sh -c "printf \' \' && acpi -b 2>&1 | awk \'{ print $4 }\'"', 5) -- Create battery widget. +widget_date = awful.widget.watch('sh -c "printf \' \' && date \'+%-l:%M %p %A %B %-d\'"', 1) -- Create date widget. +widget_loadaverage = awful.widget.watch('sh -c "printf \' \' && cat /proc/loadavg | awk -v OFS=\' \' \'{ print $1, $2, $3 }\'"', 5) -- Create load average widget. +widget_temperature = awful.widget.watch('sh -c "printf \' \' && sensors | awk \'/temp1:/ { print $2 }\' | head -n1"', 5) -- Create temperature widget. +widget_traffic_down = awful.widget.watch( + 'sh -c "printf \' \'' .. + ' && vnstat -tr 2 -i $(ip addr | awk \'/state UP/ { print $2; exit }\' | sed \'s/.$//\') | awk \'/rx/ { print $2, $3 }\'"', 5) -- Create download traffic widget. +widget_traffic_up = awful.widget.watch( + 'sh -c "printf \' \'' .. + ' && vnstat -tr 2 -i $(ip addr | awk \'/state UP/ { print $2; exit }\' | sed \'s/.$//\') | awk \'/tx/ { print $2, $3 }\'"', 5) -- Create upload traffic widget. +widget_separator = wibox.widget.textbox() widget_separator:set_text(" ") -- Create separator widget. + +-- Tooltips +local function tooltip(widget, execute) + local tooltip = awful.tooltip({ margins_leftright = 15 }) tooltip:add_to_object(widget) + widget:connect_signal("mouse::enter", function() + awful.spawn.easy_async_with_shell(execute, function(stdout, stderr, reason, exit_code) tooltip.text = stdout end) + end) +end --- Attach Lain Calendar Widget -lain.widget.cal({ - attach_to = { mytextdate, mytextclock }, - notification_preset = { font = "Monospace Bold 10", fg = "#FFFFFF", bg = "#222222" }, - cal = "/usr/bin/cal --color=always" -}) +tooltip(widget_loadaverage, 'uptime') +tooltip(widget_temperature, 'sensors | grep -v \'+0.0°C\'') +tooltip(widget_battery, 'acpi -abi 2>&1') +tooltip(widget_date, 'cal --color=never') +tooltip(widget_memory, 'free --giga -h -t') --- Create a wibox for each screen and add it -mywibox = {} +-- Create wibox +mywibox = {} mypromptbox = {} mylayoutbox = {} -mytaglist = {} +mytaglist = {} + mytaglist.buttons = awful.util.table.join( - awful.button({ }, 3, awful.tag.viewtoggle), - awful.button({ }, 1, function(t) t:view_only() end), - awful.button({ modkey }, 3, function(t) if client.focus then client.focus:toggle_tag(t) end 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({ }, 1, function(t) t:view_only() end), + awful.button({ modkey }, 3, function(t) if client.focus then client.focus:toggle_tag(t) end end), + awful.button({ modkey }, 1, function(t) if client.focus then client.focus:move_to_tag(t) end end) +) +-- Set wallpaper function. 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.maximized(wallpaper, s, true) + if beautiful.wallpaper then + local wallpaper = beautiful.wallpaper + if type(wallpaper) == "function" then + wallpaper = wallpaper(s) end + 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) +screen.connect_signal("property::geometry", set_wallpaper) -- Reset wallpaper on screen geometry changes. awful.screen.connect_for_each_screen(function(s) - -- Wallpaper - set_wallpaper(s) - - -- Each screen has its own tag table. - awful.tag({ "1", "2", "3", "4", "5", "6", "7", "8", "9", "10" }, s, awful.layout.layouts[1]) - - -- Create a promptbox for each screen - mypromptbox[s] = awful.widget.prompt() - -- Create an imagebox widget which will contains an icon indicating which layout we're using. - -- We need one layoutbox per screen. - mylayoutbox[s] = awful.widget.layoutbox(s) - -- mylayoutbox[s]: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 - mytaglist[s] = awful.widget.taglist(s, awful.widget.taglist.filter.all, mytaglist.buttons) - - -- Create a tasklist widget - -- mytasklist[s] = awful.widget.tasklist(s, awful.widget.tasklist.filter.currenttags, mytasklist.buttons) - - -- Create the wibox - mywibox[s] = awful.wibar({ position = "top", ontop = true, height = "18", screen = s }) - - -- Quake style drop down terminal - s.quake = lain.util.quake({ app = "urxvt -pe tabbed", width = 0.75, height = 0.33, horiz = "center", vert = "bottom", border=2 }) - - -- Widgets that are aligned to the left + + set_wallpaper(s) -- Set wallpaper. + awful.tag({ "1", "2", "3", "4", "5", "6", "7", "8", "9", "10" }, s, awful.layout.layouts[1]) -- Create tag table for each screen. + mylayoutbox[s] = awful.widget.layoutbox(s) -- Create layout box. + mytaglist[s] = awful.widget.taglist(s, awful.widget.taglist.filter.all, mytaglist.buttons) -- Create a taglist widget. + mywibox[s] = awful.wibar({ position = "top", ontop = true, height = "18", screen = s }) -- Create the wibox. + s.quake = lain.util.quake({ app = "urxvt -pe tabbed", width = 0.75, height = 0.33, horiz = "center", vert = "bottom", border=2 }) -- Quake style drop down terminal. + + -- Left local left_layout = wibox.layout.fixed.horizontal() left_layout:add(mytaglist[s]) - left_layout:add(separator) + left_layout:add(widget_separator) left_layout:add(mylayoutbox[s]) - left_layout:add(separator) - -- left_layout:add(mypromptbox[s]) - -- left_layout:add(separator) - left_layout:add(netwidgetwifi) - left_layout:add(separator) - left_layout:add(netwidgetnet) - left_layout:add(separator) - left_layout:add(cpuwidget) - - -- Widgets that are aligned to the right + left_layout:add(widget_separator) + left_layout:add(widget_traffic_down) + left_layout:add(widget_separator) + left_layout:add(widget_traffic_up) + left_layout:add(widget_separator) + left_layout:add(widget_loadaverage) + left_layout:add(widget_separator) + left_layout:add(widget_temperature) + + -- Right local right_layout = wibox.layout.fixed.horizontal() - -- if s == 1 then right_layout:add(wibox.widget.systray()) end - right_layout:add(separator) - right_layout:add(memwidget) - right_layout:add(separator) - right_layout:add(swapwidget) - right_layout:add(separator) - right_layout:add(batwidget) - right_layout:add(separator) - right_layout:add(mytextclock) - right_layout:add(separator) - right_layout:add(mytextdate) + right_layout:add(widget_separator) + right_layout:add(widget_memory) + right_layout:add(widget_separator) + right_layout:add(widget_swap) + right_layout:add(widget_separator) + right_layout:add(widget_battery) + right_layout:add(widget_separator) + right_layout:add(widget_date) + right_layout:add(widget_separator) -- Now bring it all together (with the tasklist in the middle) local layout = wibox.layout.align.horizontal() @@ -238,44 +185,35 @@ awful.screen.connect_for_each_screen(function(s) layout:set_right(right_layout) mywibox[s]:set_widget(layout) end) --- }}} --- {{{ Key bindings +-- Global Key bindings globalkeys = gears.table.join( - -- awful.key({ modkey, "Shift" }, "q", awesome.restart), -- Restart - awful.key({ modkey, }, "Escape", awful.tag.history.restore), -- Show last visited tag - awful.key({ modkey, }, "u", awful.client.urgent.jumpto), -- Jump to urgent client - awful.key({ modkey, }, "q", function () awful.screen.focused().quake:toggle() end), -- Toggle quake terminal - - awful.key({ modkey, }, "j", function () awful.client.focus.byidx( 1) end), -- Show next window - awful.key({ modkey, }, "k", function () awful.client.focus.byidx(-1) end), -- Show previous window - awful.key({ modkey, }, "h", awful.tag.viewprev), -- Show previous tag - awful.key({ modkey, }, "l", awful.tag.viewnext), -- Show next tag - - awful.key({ modkey, "Shift" }, "j", function () awful.screen.focus_relative( 1) end), -- Focus next screen - awful.key({ modkey, "Shift" }, "k", function () awful.screen.focus_relative(-1) end), -- Focus previous screen - awful.key({ modkey, "Shift" }, "h", function () awful.layout.inc(-1) end), -- Switch layout previous - awful.key({ modkey, "Shift" }, "l", function () awful.layout.inc( 1) end), -- Switch layout next - - awful.key({ modkey, "Mod1" }, "h", function () awful.tag.incmwfact(-0.05) end), -- Increase tiling window size left - awful.key({ modkey, "Mod1" }, "l", function () awful.tag.incmwfact( 0.05) end), -- Increase tiling window size right - awful.key({ modkey, }, "b", function () mywibox[mouse.screen].visible = not mywibox[mouse.screen].visible end), -- Show hide wibar - awful.key({ modkey, "Control" }, "n", function () local c = awful.client.restore() if c then client.focus = c c:raise() end end) -- Restore minimized group - --- awful.key({ modkey }, "x", function () --- awful.prompt.run({ prompt = "Run Lua code: " }, --- mypromptbox[mouse.screen].widget, --- awful.util.eval, nil, --- awful.util.getdir("cache") .. "/history_eval") --- end) + awful.key({ modkey, }, "Escape", awful.tag.history.restore), -- Show last visited tag + awful.key({ modkey, }, "u", awful.client.urgent.jumpto), -- Jump to urgent client + awful.key({ modkey, }, "q", function () awful.screen.focused().quake:toggle() end), -- Toggle quake terminal + + awful.key({ modkey, }, "j", function () awful.client.focus.byidx( 1) end), -- Show next window + awful.key({ modkey, }, "k", function () awful.client.focus.byidx(-1) end), -- Show previous window + awful.key({ modkey, }, "h", awful.tag.viewprev), -- Show previous tag + awful.key({ modkey, }, "l", awful.tag.viewnext), -- Show next tag + + awful.key({ modkey, "Shift" }, "j", function () awful.screen.focus_relative( 1) end), -- Focus next screen + awful.key({ modkey, "Shift" }, "k", function () awful.screen.focus_relative(-1) end), -- Focus previous screen + awful.key({ modkey, "Shift" }, "h", function () awful.layout.inc(-1) end), -- Switch layout previous + awful.key({ modkey, "Shift" }, "l", function () awful.layout.inc( 1) end), -- Switch layout next + + awful.key({ modkey, "Mod1" }, "h", function () awful.tag.incmwfact(-0.05) end), -- Increase tiling window size left + awful.key({ modkey, "Mod1" }, "l", function () awful.tag.incmwfact( 0.05) end), -- Increase tiling window size right + awful.key({ modkey, }, "b", function () mywibox[mouse.screen].visible = not mywibox[mouse.screen].visible end), -- Show hide wibar + awful.key({ modkey, "Control" }, "n", function () local c = awful.client.restore() if c then client.focus = c c:raise() end end) -- Restore minimized group ) +-- Client Key bindings clientkeys = gears.table.join( + awful.key({ modkey, }, "s", awful.client.floating.toggle), -- Toggle floating mode awful.key({ modkey, "Control" }, "Return", function (c) c:swap(awful.client.getmaster()) end), -- Move to master - awful.key({ modkey, "Control" }, "m", lain.util.magnify_client), -- Lain magnify awful.key({ modkey, }, "o", function (c) c:move_to_screen() end), -- Move to screen awful.key({ modkey, }, "m", function (c) c.maximized = not c.maximized c:raise() end), -- Maximize window - awful.key({ modkey, }, "s", awful.client.floating.toggle), -- Toggle floating mode awful.key({ modkey, "Control" }, "k", function(c) c.y = c.y - 1 end), -- Move focused window up one pixel. awful.key({ modkey, "Control" }, "j", function(c) c.y = c.y + 1 end), -- Move focused window down one pixel. @@ -283,124 +221,101 @@ clientkeys = gears.table.join( awful.key({ modkey, "Control" }, "l", function(c) c.x = c.x + 1 end) -- Move focused window right one pixel. ) --- 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. +-- Bind all key numbers to tags 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"}) + awful.key({ modkey }, "#" .. i + 9, -- View tag only. + function () + local screen = awful.screen.focused() + local tag = screen.tags[i] + if tag then tag:view_only() end + end + ), + awful.key({ modkey, "Control" }, "#" .. i + 9, -- Toggle tag display. + function () + local screen = awful.screen.focused() + local tag = screen.tags[i] + if tag then awful.tag.viewtoggle(tag) end + end + ), + awful.key({ modkey, "Shift" }, "#" .. i + 9, -- Move client to tag. + function () + if client.focus then + local tag = client.focus.screen.tags[i] + if tag then client.focus:move_to_tag(tag) end + end + end + ), + awful.key({ modkey, "Control", "Shift" }, "#" .. i + 9, -- Toggle tag on focused client. + function () + if client.focus then + local tag = client.focus.screen.tags[i] + if tag then client.focus:toggle_tag(tag) end + end + end + ) ) end +-- Mouse movement clientbuttons = gears.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)) + 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). +-- Rules 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, - size_hints_honor = false, - buttons = clientbuttons, - screen = awful.screen.preferred, - placement = awful.placement.no_overlap+awful.placement.no_offscreen - } + { + rule = { }, + properties = { + border_width = beautiful.border_width, + border_color = beautiful.border_normal, + focus = awful.client.focus.filter, + raise = true, + keys = clientkeys, + size_hints_honor = false, + buttons = clientbuttons, + screen = awful.screen.preferred, + placement = awful.placement.no_overlap+awful.placement.no_offscreen + } + }, + { + rule_any = + { + instance = { "copyq", }, }, - - -- Floating clients. - { rule_any = { - instance = { "copyq", }, - }, properties = { floating = true }} + properties = { floating = true } -- Floating clients. + } } --- }}} --- {{{ Signals --- Signal function to execute when a new client appears. +-- 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 + if awesome.startup and + not c.size_hints.user_position + and not c.size_hints.program_position then + awful.placement.no_offscreen(c) -- Prevent clients from being unreachable after screen count changes. + end 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 + if awful.layout.get(c.screen) ~= awful.layout.suit.magnifier + and awful.client.focus.filter(c) then + client.focus = c + end end) -- Disable startup notification globally local oldspawn = awful.util.spawn -awful.util.spawn = function (s) - oldspawn(s, false) -end +awful.util.spawn = function (s) oldspawn(s, false) end -- Hide window border for maximized clients -client.connect_signal("property::maximized", function(c) - c.border_width = c.maximized and 0 or beautiful.border_width -end) +client.connect_signal("property::maximized", function(c) c.border_width = c.maximized and 0 or beautiful.border_width end) -- Focus and unfocus borders 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) --- }}} diff --git a/.config/awesome/themes/default/theme.lua b/.config/awesome/themes/default/theme.lua index a2d85ea..e0ba37b 100644 --- a/.config/awesome/themes/default/theme.lua +++ b/.config/awesome/themes/default/theme.lua @@ -1,89 +1,80 @@ --- {{{ Main +-- Main local theme = {} -theme.wallpaper = "~/.config/awesome/themes/default/wallpaper" --- }}} --- {{{ Styles -theme.font = "FontAwesome Bold 9" --- }}} +-- Theme +theme.wallpaper = "~/.config/awesome/themes/default/wallpaper" +theme.font = "FontAwesome Bold 9" +theme.fg_normal = "#FFFFFF" +theme.fg_focus = "#000000" +theme.fg_urgent = "#FF0000" +theme.fg_minimize = "#ffffff" +theme.bg_normal = "#2C303C" +theme.bg_focus = "#00AFF0" +theme.bg_urgent = "#000000" +theme.bg_minimize = "#444444" +theme.bg_systray = theme.bg_normal --- {{{ Colors -theme.fg_normal = "#FFFFFF" -theme.fg_focus = "#000000" -theme.fg_urgent = "#FF0000" -theme.fg_minimize = "#ffffff" - -theme.bg_normal = "#2C303C" -theme.bg_focus = "#00AFF0" -theme.bg_urgent = "#000000" -theme.bg_minimize = "#444444" -theme.bg_systray = theme.bg_normal --- }}} - --- {{{ Borders +-- Borders theme.useless_gap = 5 theme.border_width = 2 theme.border_normal = "#5B92FA" theme.border_focus = "#FF0000" theme.border_marked = "#CC9393" --- }}} --- {{{ Menu -theme.menu_height = 15 -theme.menu_width = 100 +-- Tooltip +theme.tooltip_border_color = "#000000" +theme.tooltip_bg = "#111111" +theme.tooltip_fg = "#ffffff" +theme.tooltip_font = 'Monospace Bold 9' +theme.tooltip_border_width = 2 + +-- Menu +theme.menu_height = 15 +theme.menu_width = 100 theme.menu_border_width = 0 --- }}} --- {{{ Taglist -theme.taglist_squares_sel = "~/.config/awesome/themes/default/taglist/squarefz.png" +-- Taglist +theme.taglist_squares_sel = "~/.config/awesome/themes/default/taglist/squarefz.png" theme.taglist_squares_unsel = "~/.config/awesome/themes/default/taglist/squarefz.png" --- }}} --- {{{ Layout -theme.layout_fairh = "~/.config/awesome/themes/default/layouts/fairhw.png" -theme.layout_fairv = "~/.config/awesome/themes/default/layouts/fairvw.png" -theme.layout_floating = "~/.config/awesome/themes/default/layouts/floatingw.png" -theme.layout_magnifier = "~/.config/awesome/themes/default/layouts/magnifierw.png" -theme.layout_max = "~/.config/awesome/themes/default/layouts/maxw.png" +-- Layout +theme.layout_max = "~/.config/awesome/themes/default/layouts/maxw.png" +theme.layout_tile = "~/.config/awesome/themes/default/layouts/tilew.png" +theme.layout_fairh = "~/.config/awesome/themes/default/layouts/fairhw.png" +theme.layout_fairv = "~/.config/awesome/themes/default/layouts/fairvw.png" +theme.layout_spiral = "~/.config/awesome/themes/default/layouts/spiralw.png" +theme.layout_tiletop = "~/.config/awesome/themes/default/layouts/tiletopw.png" +theme.layout_dwindle = "~/.config/awesome/themes/default/layouts/dwindlew.png" +theme.layout_floating = "~/.config/awesome/themes/default/layouts/floatingw.png" +theme.layout_tileleft = "~/.config/awesome/themes/default/layouts/tileleftw.png" +theme.layout_cornernw = "~/.config/awesome/themes/default/layouts/cornernww.png" +theme.layout_cornerne = "~/.config/awesome/themes/default/layouts/cornernew.png" +theme.layout_cornersw = "~/.config/awesome/themes/default/layouts/cornersww.png" +theme.layout_cornerse = "~/.config/awesome/themes/default/layouts/cornersew.png" +theme.layout_magnifier = "~/.config/awesome/themes/default/layouts/magnifierw.png" theme.layout_fullscreen = "~/.config/awesome/themes/default/layouts/fullscreenw.png" theme.layout_tilebottom = "~/.config/awesome/themes/default/layouts/tilebottomw.png" -theme.layout_tileleft = "~/.config/awesome/themes/default/layouts/tileleftw.png" -theme.layout_tile = "~/.config/awesome/themes/default/layouts/tilew.png" -theme.layout_tiletop = "~/.config/awesome/themes/default/layouts/tiletopw.png" -theme.layout_spiral = "~/.config/awesome/themes/default/layouts/spiralw.png" -theme.layout_dwindle = "~/.config/awesome/themes/default/layouts/dwindlew.png" -theme.layout_cornernw = "~/.config/awesome/themes/default/layouts/cornernww.png" -theme.layout_cornerne = "~/.config/awesome/themes/default/layouts/cornernew.png" -theme.layout_cornersw = "~/.config/awesome/themes/default/layouts/cornersww.png" -theme.layout_cornerse = "~/.config/awesome/themes/default/layouts/cornersew.png" --- }}} --- {{{ Titlebar -theme.titlebar_close_button_focus = "/usr/share/awesome/themes/zenburn/titlebar/close_focus.png" -theme.titlebar_close_button_normal = "/usr/share/awesome/themes/zenburn/titlebar/close_normal.png" - -theme.titlebar_ontop_button_focus_active = "/usr/share/awesome/themes/zenburn/titlebar/ontop_focus_active.png" -theme.titlebar_ontop_button_normal_active = "/usr/share/awesome/themes/zenburn/titlebar/ontop_normal_active.png" -theme.titlebar_ontop_button_focus_inactive = "/usr/share/awesome/themes/zenburn/titlebar/ontop_focus_inactive.png" -theme.titlebar_ontop_button_normal_inactive = "/usr/share/awesome/themes/zenburn/titlebar/ontop_normal_inactive.png" - -theme.titlebar_sticky_button_focus_active = "/usr/share/awesome/themes/zenburn/titlebar/sticky_focus_active.png" -theme.titlebar_sticky_button_normal_active = "/usr/share/awesome/themes/zenburn/titlebar/sticky_normal_active.png" -theme.titlebar_sticky_button_focus_inactive = "/usr/share/awesome/themes/zenburn/titlebar/sticky_focus_inactive.png" -theme.titlebar_sticky_button_normal_inactive = "/usr/share/awesome/themes/zenburn/titlebar/sticky_normal_inactive.png" - -theme.titlebar_floating_button_focus_active = "/usr/share/awesome/themes/zenburn/titlebar/floating_focus_active.png" -theme.titlebar_floating_button_normal_active = "/usr/share/awesome/themes/zenburn/titlebar/floating_normal_active.png" -theme.titlebar_floating_button_focus_inactive = "/usr/share/awesome/themes/zenburn/titlebar/floating_focus_inactive.png" -theme.titlebar_floating_button_normal_inactive = "/usr/share/awesome/themes/zenburn/titlebar/floating_normal_inactive.png" - -theme.titlebar_maximized_button_focus_active = "/usr/share/awesome/themes/zenburn/titlebar/maximized_focus_active.png" -theme.titlebar_maximized_button_normal_active = "/usr/share/awesome/themes/zenburn/titlebar/maximized_normal_active.png" +-- Titlebar +theme.titlebar_close_button_focus = "/usr/share/awesome/themes/zenburn/titlebar/close_focus.png" +theme.titlebar_close_button_normal = "/usr/share/awesome/themes/zenburn/titlebar/close_normal.png" +theme.titlebar_ontop_button_focus_active = "/usr/share/awesome/themes/zenburn/titlebar/ontop_focus_active.png" +theme.titlebar_ontop_button_normal_active = "/usr/share/awesome/themes/zenburn/titlebar/ontop_normal_active.png" +theme.titlebar_ontop_button_focus_inactive = "/usr/share/awesome/themes/zenburn/titlebar/ontop_focus_inactive.png" +theme.titlebar_ontop_button_normal_inactive = "/usr/share/awesome/themes/zenburn/titlebar/ontop_normal_inactive.png" +theme.titlebar_sticky_button_focus_active = "/usr/share/awesome/themes/zenburn/titlebar/sticky_focus_active.png" +theme.titlebar_sticky_button_normal_active = "/usr/share/awesome/themes/zenburn/titlebar/sticky_normal_active.png" +theme.titlebar_sticky_button_focus_inactive = "/usr/share/awesome/themes/zenburn/titlebar/sticky_focus_inactive.png" +theme.titlebar_sticky_button_normal_inactive = "/usr/share/awesome/themes/zenburn/titlebar/sticky_normal_inactive.png" +theme.titlebar_floating_button_focus_active = "/usr/share/awesome/themes/zenburn/titlebar/floating_focus_active.png" +theme.titlebar_floating_button_normal_active = "/usr/share/awesome/themes/zenburn/titlebar/floating_normal_active.png" +theme.titlebar_floating_button_focus_inactive = "/usr/share/awesome/themes/zenburn/titlebar/floating_focus_inactive.png" +theme.titlebar_floating_button_normal_inactive = "/usr/share/awesome/themes/zenburn/titlebar/floating_normal_inactive.png" +theme.titlebar_maximized_button_focus_active = "/usr/share/awesome/themes/zenburn/titlebar/maximized_focus_active.png" +theme.titlebar_maximized_button_normal_active = "/usr/share/awesome/themes/zenburn/titlebar/maximized_normal_active.png" theme.titlebar_maximized_button_focus_inactive = "/usr/share/awesome/themes/zenburn/titlebar/maximized_focus_inactive.png" theme.titlebar_maximized_button_normal_inactive = "/usr/share/awesome/themes/zenburn/titlebar/maximized_normal_inactive.png" --- }}} +-- End theme.icon_theme = nil return theme - --- vim: filetype=lua:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:textwidth=80 diff --git a/.config/nixpkgs/config.nix b/.config/nixpkgs/config.nix index 9ffa5b7..e414af0 100644 --- a/.config/nixpkgs/config.nix +++ b/.config/nixpkgs/config.nix @@ -122,6 +122,7 @@ in vale vault vimHugeX + vnstat w3m wavemon weechat |