-- Other libraries
local lain = require("lain")
local ccwidgets = require("cryptocoin_widgets")
+local fxwidgets = require("forex_widgets")
local clocksarray = require("clocksarray")
local dbg = require("debugfunc")
local th = require("taghelpers")
-- Table of layouts to cover with awful.layout.inc, order matters.
local layouts = {
default = awful.layout.suit.fair,
+ default_horiz = awful.layout.suit.fair.horizontal,
tiled = awful.layout.suit.tile,
+ tiled_horiz = awful.layout.suit.tile.top,
floating = awful.layout.suit.floating,
maximised = awful.layout.suit.max
}
layouts.tiled,
layouts.maximised,
layouts.floating,
+ layouts.default_horiz,
+ layouts.tiled_horiz,
}
-- }}}
layout = wibox.layout.fixed.horizontal,
})
- if s == screen.primary then
+-- if s == screen.primary then
right_widgets = gears.table.join({
make_spacer(" "),
ccwidgets.btc_widget,
make_spacer(),
ccwidgets.eth_widget,
make_spacer(),
+ fxwidgets.ecb_widget,
+ make_spacer(),
lain_bat.widget,
make_spacer(),
}, right_widgets)
- end
+-- end
s.mywibox:setup {
layout = wibox.layout.align.horizontal,
end) -- }}}
-- {{{ autorandr integration
-local function find_screen_by_name(name)
+local function find_screen_by_pattern(pattern)
for s in screen do
- if s.name == name then
+ print(s.name .. " :: " .. pattern)
+ if s.name:match(pattern) then
return s
end
end
if tag.targets then
if type(tag.targets) == "table" then
for _,target in ipairs(tag.targets) do
- local s = find_screen_by_name(target)
+ local s = find_screen_by_pattern(target:gsub('%-', '%%-'))
if s then
print(" → screen " .. s.name)
return s
end
naughty.notify({
title = "Screen removed",
- text = "Salvaged tab " .. t.name .. " onto screen " .. t.screen.name,
+ text = "Salvaged tab " .. t.name,
})
end)
local function initialise_to_autorandr_profile()
local profile
+ profile = nil
local function process_line(line)
if profile then return end
- local match = string.match(line, "^([^%s]+) %(detected%)$")
+ local match = string.match(line, "^([^%s]+) %(detected%)")
if match then
profile = match
end
end
awful.spawn.with_line_callback('autorandr', {
- stderr = process_line,
+ stdout = process_line,
output_done = output_done,
exit = handle_exit
})
selected = true,
exec_once = { terminal .. " -name irc -e env MOSH_TITLE_NOPREFIX=true mosh -4 -- irc-host tmux new -As irc irssi" },
instance = { "irc" },
- targets = { "catalyst/eDP1", "mtvic/eDP1" },
+ targets = { "catalyst/eDP1", "mtvic/eDP1", "gauting/eDP1", "lehel/DisplayPort-2" },
},
{
name = "[m]",
selected = true,
exec_once = { "revolt" },
instance = { "Revolt" },
- targets = { "catalyst/eDP1", "mtvic/eDP1" },
+ targets = { "catalyst/eDP1", "mtvic/eDP1", "gauting/eDP1", "lehel/DisplayPort-2" },
},
{
name = "dflt",
layout = layouts.default,
exec_once = { "thunderbird" },
class = { "Thunderbird" },
- targets = { "catalyst/HDMI1", "mtvic/eDP1" },
+ targets = { "catalyst/DP2-2", "mtvic/eDP1", "gauting/eDP1", "lehel/DisplayPort-1" },
},
{
name = "chr",
layout = layouts.default,
exec_once = { "chromium" },
class = { "Chromium" },
- targets = { "catalyst/HDMI1", "mtvic/eDP1" },
+ targets = { "catalyst/DP2-2", "mtvic/eDP1", "gauting/eDP1", "lehel/DisplayPort-1", "present/HDMI1" },
},
{
name = "ffx",
layout = layouts.default,
exec_once = { "firefox" },
class = { "Firefox" },
- targets = { "catalyst/HDMI1", "mtvic/eDP1" },
+ targets = { "catalyst/DP2-2", "mtvic/eDP1", "gauting/eDP1", "lehel/DisplayPort-1", "present/HDMI1" },
},
})
{description = "view previous", group = "tag"}),
awful.key({ modkey, }, "Right", awful.tag.viewnext,
{description = "view next", group = "tag"}),
+ awful.key({ modkey, "Shift" }, "Left", function () awful.screen.focus_relative( 1) end,
+ {description = "focus the next screen", group = "screen"}),
+ awful.key({ modkey, "Shift" }, "Right", function () awful.screen.focus_relative(-1) end,
+ {description = "focus the previous screen", group = "screen"}),
awful.key({ modkey, }, "Escape", awful.tag.history.restore,
{description = "go back", group = "tag"}),
bg_cursor = '#ff0000',
textbox = widget,
history_path = awful.util.get_cache_dir() .. "/history",
+ completion_callback = awful.completion.shell,
hooks = {
-- Replace the 'normal' Return with a custom one
{{ }, 'Return', function(command)
awful.key({ modkey, }, "d", th.delete_tag,
{description = "delete the current tag", group = "tag"}),
awful.key({ modkey, "Shift", }, "a", function()
- th.move_to_new_tag(nil,nil,true,true,true)
+ th.move_to_new_tag(nil, { layout = layouts.maximised },true,true,true)
end,
{description = "add a volatile tag with the focused client", group = "tag"}),
awful.key({ modkey, "Shift", "Control" }, "a", function()
- th.move_to_new_tag(nil,nil,false,true,true)
+ th.move_to_new_tag(nil, { layout = layouts.maximised },false,true,true)
end,
{description = "add a permanent tag with the focused client", group = "tag"}),
awful.key({ modkey, "Mod1" }, "a", th.copy_tag,
-- misc apps
globalkeys = awful.util.table.join(globalkeys,
awful.key({ cmdkey }, "n", function () awful.spawn("firefox") end),
-awful.key({ cmdkey }, "m", function () awful.spawn("chromium --enable-remote-extensions") end),
+awful.key({ cmdkey }, "c", function () awful.spawn("chromium --enable-remote-extensions") end),
awful.key({ cmdkey }, "y", function () awful.spawn(terminal .. " -e python") end),
-awful.key({ cmdkey }, "c", function () awful.spawn("thunderbird") end),
+awful.key({ cmdkey }, "m", function () awful.spawn(terminal .. " -name mutt -e mutt") end),
+awful.key({ cmdkey }, "t", function () awful.spawn("thunderbird") end),
awful.key({ cmdkey }, "g", function () awful.spawn("gscan2pdf") end),
awful.key({ cmdkey }, "v", function () awful.spawn("virt-manager") end),
awful.key({ cmdkey }, "l", function () awful.spawn("libreoffice") end),
end),
awful.key({ cmdkey, "Shift" }, "x", function () awful.spawn("xscreensaver-command -exit") end),
+awful.key({ cmdkey }, "BackSpace", function () awful.spawn("pkill -USR1 offlineimap") end),
+
-- function keys
awful.key(nil, "XF86ScreenSaver", function () awful.spawn("xset dpms force off") end),
-awful.key(nil, "XF86AudioMute", function () awful.spawn("pactl set-sink-mute 0 toggle") end),
-awful.key({ cmdkey }, "End", function () awful.spawn("pactl set-sink-mute 0 toggle") end),
-awful.key(nil, "XF86AudioLowerVolume", function () awful.spawn("pactl set-sink-volume 0 -2%") end),
-awful.key({ cmdkey }, "Next", function () awful.spawn("pactl set-sink-volume 0 -2%") end),
-awful.key(nil, "XF86AudioRaiseVolume", function () awful.spawn("pactl set-sink-volume 0 +2%") end),
-awful.key({ cmdkey }, "Prior", function () awful.spawn("pactl set-sink-volume 0 +2%") end),
-awful.key(nil, "XF86AudioMicMute", function () awful.spawn("pactl set-source-mute 1 toggle") end),
-awful.key({ cmdkey }, "Home", function () awful.spawn("pactl set-source-mute 1 toggle") end),
+awful.key(nil, "XF86AudioMute", function () awful.spawn("pactl set-sink-mute @DEFAULT_SINK@ toggle") end),
+awful.key({ cmdkey }, "End", function () awful.spawn("pactl set-sink-mute @DEFAULT_SINK@ toggle") end),
+awful.key(nil, "XF86AudioLowerVolume", function () awful.spawn("pactl set-sink-volume @DEFAULT_SINK@ -2%") end),
+awful.key({ cmdkey }, "Next", function () awful.spawn("pactl set-sink-volume @DEFAULT_SINK@ -2%") end),
+awful.key(nil, "XF86AudioRaiseVolume", function () awful.spawn("pactl set-sink-volume @DEFAULT_SINK@ +2%") end),
+awful.key({ cmdkey }, "Prior", function () awful.spawn("pactl set-sink-volume @DEFAULT_SINK@ +2%") end),
+awful.key(nil, "XF86AudioMicMute", function () awful.spawn("pactl set-source-mute @DEFAULT_SOURCE@ toggle") end),
+awful.key({ cmdkey }, "Home", function () awful.spawn("pactl set-source-mute @DEFAULT_SOURCE@ toggle") end),
awful.key(nil, "XF86MonBrightnessDown", function () awful.spawn("xbacklight -dec 5%") end),
awful.key(nil, "XF86MonBrightnessUp", function () awful.spawn("xbacklight -inc 5%") end),
-awful.key(nil, "XF86Display", function () awful.spawn("") end),
+awful.key(nil, "XF86Display", function () awful.spawn("autorandr --change --force"); initialise_to_autorandr_profile() end),
awful.key(nil, "XF86WLAN", function () awful.spawn("") end),
awful.key(nil, "XF86Tools", function () awful.spawn("") end),
awful.key(nil, "XF86Search", function () awful.spawn("") end),
awful.key(nil, "XF86LaunchA", function () awful.spawn("") end),
-awful.key(nil, "XF86Explorer", function () awful.spawn("") end)
+awful.key(nil, "XF86Explorer", function () awful.spawn("") end),
+
+awful.key({ cmdkey }, "Left", function () awful.spawn("xmms2 prev") end),
+awful.key({ cmdkey }, "Right", function () awful.spawn("xmms2 next") end),
+awful.key({ cmdkey }, "space", function () awful.spawn("xmms2 toggle") end),
+awful.key({ cmdkey }, "\\", function () run_output_notify("xmms2 list") end)
)
+function run_output_notify(cmd)
+ awful.spawn.easy_async(cmd, function(stdout, stderr, reason, exit_code)
+ naughty.notify({
+ preset = naughty.config.presets.low,
+ title = "XMMS2 playlist",
+ text = stdout})
+ end)
+end
+
-- Set keys
root.keys(globalkeys)
-- }}}
{ rule = { class = "URxvt" },
properties = { size_hints_honor = false, }
},
- { rule = { instance = "irc" },
+ { rule = { instance = "irc" },
callback = move_to_tag_by_name(nil, "irc"),
},
{ rule = { class = "Revolt" },
{ rule = { class = "Thunderbird" },
callback = move_to_tag_by_name(nil, "cal"),
},
+ { rule = { instance = "mutt" },
+ properties = {
+ new_tag = {
+ name = "mutt",
+ layout = awful.layout.suit.fair.horizontal,
+ volatile = true
+ },
+ switchtotag = true,
+ },
+ },
{ rule_any = { class = {
- "MuPDF",
"Wicd-client.py",
+ "Gxmessage",
+ "Pinentry"
}},
properties = { floating = true,
+ maximized = false,
focus = true,
- placement = function(c)
- float_client_in_the_middle_with_margins(c, 50, 25)
- end,
+ placement = awful.placement.centered,
},
},
- { rule_any = { class = {
- "Gscan2pdf",
- "Gimp",
- },
- instance = {
- "libreoffice",
- }
- },
- properties = { new_tag = {
- layout = layouts.maximised,
- volatile = true,
- },
- switchtotag = true,
+ { rule_any = { instance = {
+ "tridactyl-edit",
+ "libreoffice",
+ "pdfshuffler"
+ }},
+ properties = { floating = true,
+ maximized = false,
focus = true,
+ placement = awful.placement.centered,
},
},
+-- { rule_any = { class = {
+-- "Gscan2pdf",
+-- "Gimp",
+-- },
+-- instance = {
+-- "libreoffice",
+-- }
+-- },
+-- properties = { new_tag = {
+-- layout = layouts.maximised,
+-- volatile = true,
+-- },
+-- switchtotag = true,
+-- focus = true,
+-- },
+-- },
--XX-- { rule = { class = "Gscan2pdf" },
--XX-- properties = {
--XX-- switchtotag = true
-- 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 not awesome.startup then
+ local t = awful.screen.focused().selected_tag
+ if t.name == "xmutt" then
+ awful.client.setslave(c)
+ end
+ end
if awesome.startup and
not c.size_hints.user_position