Awesome: more flexible systray.
Ranger: svg support. Shell: improved dircolors.master
parent
0b3de546c1
commit
4a50ebd6c4
|
@ -64,7 +64,7 @@ modkey = "Mod4"
|
|||
|
||||
-- Table of layouts to cover with awful.layout.inc, order matters.
|
||||
layouts =
|
||||
{
|
||||
{
|
||||
awful.layout.suit.tile,
|
||||
awful.layout.suit.tile.left,
|
||||
awful.layout.suit.tile.bottom,
|
||||
|
@ -77,53 +77,72 @@ layouts =
|
|||
awful.layout.suit.max.fullscreen,
|
||||
-- awful.layout.suit.magnifier,
|
||||
awful.layout.suit.floating
|
||||
}
|
||||
-- }}}
|
||||
}
|
||||
-- }}}
|
||||
|
||||
-- {{{ Tags
|
||||
-- Define a tag table which hold all screen tags.
|
||||
tags = {}
|
||||
for s = 1, screen.count() do
|
||||
-- {{{ Tags
|
||||
-- Define a tag table which hold all screen tags.
|
||||
tags = {}
|
||||
for s = 1, screen.count() do
|
||||
-- Each screen has its own tag table.
|
||||
-- tags[s] = awful.tag({ 1, 2, 3, 4, 5, 6, 7, 8, 9 }, s, layouts[1])
|
||||
-- tags[s] = awful.tag({ " 1 ", " 2 "," 3 "," 4 ", " 5. Factory ", " 6. Music ", "7. Mail " }, s, layouts[1])
|
||||
tags[s] = awful.tag({ " 1 ", " 2 "," 3 "," 4 ", " 5 ⚒ ", " 6 ♫ ", "7 ✉ " }, s, layouts[1])
|
||||
end
|
||||
-- }}}
|
||||
end
|
||||
-- }}}
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
-- {{{ Wibox
|
||||
-- {{{ Wibox
|
||||
|
||||
-- Clock
|
||||
clockwidget = awful.widget.textclock({ align = "right" })
|
||||
-- Separator
|
||||
separator = " | "
|
||||
separator_date = widget({ type = "textbox" })
|
||||
separator_date.text = " |"
|
||||
|
||||
-- Systray
|
||||
systraywidget = widget({ type = "systray" })
|
||||
-- Systray
|
||||
systraywidget = widget({ type = "systray" })
|
||||
|
||||
-- CPU
|
||||
cpuwidget = widget({ type = "textbox" })
|
||||
vicious.register(cpuwidget, vicious.widgets.cpu, '<span color="#CC8F52">CPU $1%</span>')
|
||||
-- Clock
|
||||
clockwidget = awful.widget.textclock({ align = "right" })
|
||||
|
||||
-- Net
|
||||
netwidget = widget({ type = "textbox" })
|
||||
networks = { "eth0", "wlan0" }
|
||||
vicious.register(netwidget, vicious.widgets.net,
|
||||
-- CPU
|
||||
cpuwidget = widget({ type = "textbox" })
|
||||
vicious.register(cpuwidget, vicious.widgets.cpu, separator .. '<span color="#CC8F52">CPU $1%</span>')
|
||||
|
||||
-- Net
|
||||
netwidget = widget({ type = "textbox" })
|
||||
networks = { "eth0", "wlan0" }
|
||||
vicious.register(netwidget, vicious.widgets.net,
|
||||
function (widget, args)
|
||||
for _,device in pairs(networks) do
|
||||
value = tonumber(args["{".. device .." carrier}"])
|
||||
if value ~= nil and value > 0 then
|
||||
return '<span color="#CC9393">↓' .. args["{" .. device .. " down_kb}"] .. '</span> <span color="#7F9F7F">↑' .. args["{" .. device .. " up_kb}"] .. '</span>'
|
||||
return separator .. '<span color="#CC9393">↓' .. args["{" .. device .. " down_kb}"] .. '</span> <span color="#7F9F7F">↑' .. args["{" .. device .. " up_kb}"] .. '</span>'
|
||||
end
|
||||
end
|
||||
end, 3)
|
||||
|
||||
-- Battery
|
||||
batwidget = widget({ type = "textbox" })
|
||||
local batf = io.popen("ls '/sys/class/power_supply' 2>/dev/null")
|
||||
local batl = batf:read("*a")
|
||||
local batlimit = 10
|
||||
if batl ~= "" then
|
||||
-- Volume
|
||||
volmwidget = widget({ type = "textbox" })
|
||||
vicious.register(volmwidget, vicious.widgets.volume, separator .. "Master $1% $2 ", 1, "Master")
|
||||
-- PCM may not be available all the time on every machine. If PCM is toggled
|
||||
-- after awesome has been started, you'll need to reload the configuration.
|
||||
-- If 'amixer' is not installed, status will never display.
|
||||
local volpf = io.popen("amixer | grep PCM 2>/dev/null")
|
||||
local volpl = volpf:read("*a")
|
||||
if volpl ~= "" then
|
||||
volpwidget = widget({ type = "textbox" })
|
||||
vicious.register(volpwidget, vicious.widgets.volume, "PCM $1%", 1, "PCM")
|
||||
end
|
||||
volpf:close()
|
||||
|
||||
-- Battery
|
||||
batwidget = widget({ type = "textbox" })
|
||||
local batf = io.popen("ls '/sys/class/power_supply' 2>/dev/null")
|
||||
local batl = batf:read("*a")
|
||||
local batlimit = 10
|
||||
if batl ~= "" then
|
||||
--{{ Simple version (perf friendly)
|
||||
-- vicious.register(batwidget, vicious.widgets.bat, '<span color="#73A9CD">$2%$1$3</span> | ', 60, "BAT0")
|
||||
--{{ Complex version (time warning)
|
||||
|
@ -136,44 +155,21 @@ if batl ~= "" then
|
|||
and tonumber(string.sub(args[3],1,2)) == 0
|
||||
and tonumber(string.sub(args[3],4,5)) <= batlimit
|
||||
then
|
||||
return '<span color="#FF0000">' .. args[2] .. '%' .. args[1] .. args[3] .. '</span>'
|
||||
return separator .. '<span color="#FF0000">' .. args[2] .. '%' .. args[1] .. args[3] .. '</span>'
|
||||
else
|
||||
return '<span color="#73A9CD">' .. args[2] .. '%' .. args[1] .. args[3] .. '</span>'
|
||||
return separator .. '<span color="#73A9CD">' .. args[2] .. '%' .. args[1] .. args[3] .. '</span>'
|
||||
end
|
||||
end,
|
||||
60, "BAT0")
|
||||
end
|
||||
batf:close()
|
||||
end
|
||||
batf:close()
|
||||
|
||||
-- Volume
|
||||
volmwidget = widget({ type = "textbox" })
|
||||
vicious.register(volmwidget, vicious.widgets.volume, "Master $1% $2 ", 1, "Master")
|
||||
-- PCM may not be available all the time on every machine.
|
||||
-- If PCM is toggled after awesome has been started, you'll need to reload the
|
||||
-- configuration.
|
||||
-- If 'amixer' is not installed, status will never display.
|
||||
local volpf = io.popen("amixer | grep PCM 2>/dev/null")
|
||||
local volpl = volpf:read("*a")
|
||||
if volpl ~= "" then
|
||||
volpwidget = widget({ type = "textbox" })
|
||||
vicious.register(volpwidget, vicious.widgets.volume, "PCM $1%", 1, "PCM")
|
||||
end
|
||||
volpf:close()
|
||||
|
||||
-- Separator
|
||||
separator = widget({ type = "textbox" })
|
||||
separator.text = " | "
|
||||
separatordate = widget({ type = "textbox" })
|
||||
separatordate.text = " |"
|
||||
separatorapps = widget({ type = "textbox" })
|
||||
separatorapps.text = " "
|
||||
|
||||
-- Create a wibox for each screen and add it
|
||||
mywibox = {}
|
||||
mypromptbox = {}
|
||||
mylayoutbox = {}
|
||||
mytaglist = {}
|
||||
mytaglist.buttons = awful.util.table.join(
|
||||
-- Create a wibox for each screen and add it
|
||||
mywibox = {}
|
||||
mypromptbox = {}
|
||||
mylayoutbox = {}
|
||||
mytaglist = {}
|
||||
mytaglist.buttons = awful.util.table.join(
|
||||
awful.button({ }, 1, awful.tag.viewonly),
|
||||
awful.button({ modkey }, 1, awful.client.movetotag),
|
||||
awful.button({ }, 3, awful.tag.viewtoggle),
|
||||
|
@ -181,8 +177,8 @@ mytaglist.buttons = awful.util.table.join(
|
|||
awful.button({ }, 4, awful.tag.viewnext),
|
||||
awful.button({ }, 5, awful.tag.viewprev)
|
||||
)
|
||||
mytasklist = {}
|
||||
mytasklist.buttons = awful.util.table.join(
|
||||
mytasklist = {}
|
||||
mytasklist.buttons = awful.util.table.join(
|
||||
awful.button({ }, 1, function (c)
|
||||
if c == client.focus then
|
||||
c.minimized = true
|
||||
|
@ -213,7 +209,7 @@ mytasklist.buttons = awful.util.table.join(
|
|||
if client.focus then client.focus:raise() end
|
||||
end))
|
||||
|
||||
for s = 1, screen.count() do
|
||||
for s = 1, screen.count() do
|
||||
-- Create a promptbox for each screen
|
||||
mypromptbox[s] = awful.widget.prompt({ layout = awful.widget.layout.horizontal.leftright })
|
||||
-- Create an imagebox widget which will contains an icon indicating which layout we're using.
|
||||
|
@ -238,63 +234,58 @@ for s = 1, screen.count() do
|
|||
mywibox[s].widgets = {
|
||||
{
|
||||
mylayoutbox[s],
|
||||
-- mylauncher,
|
||||
mytaglist[s],
|
||||
mypromptbox[s],
|
||||
layout = awful.widget.layout.horizontal.leftright
|
||||
},
|
||||
s == 1 and systraywidget or nil,
|
||||
clockwidget,
|
||||
separatordate,
|
||||
separator_date,
|
||||
cpuwidget,
|
||||
netwidget,
|
||||
volpwidget,
|
||||
volmwidget,
|
||||
separator,
|
||||
cpuwidget,
|
||||
separator,
|
||||
netwidget,
|
||||
separator,
|
||||
batwidget,
|
||||
separatorapps,
|
||||
mytasklist[s],
|
||||
layout = awful.widget.layout.horizontal.rightleft
|
||||
}
|
||||
end
|
||||
-- }}}
|
||||
end
|
||||
-- }}}
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
-- CUSTOM
|
||||
--------------------------------------------------------------------------------
|
||||
--------------------------------------------------------------------------------
|
||||
-- CUSTOM
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
-- Mouse control
|
||||
-- set the desired pixel coordinates:
|
||||
local safeCoords = {x=0, y=0}
|
||||
-- Flag to tell Awesome whether to do this at startup.
|
||||
local moveMouseOnStartup = true
|
||||
-- Mouse control
|
||||
-- set the desired pixel coordinates:
|
||||
local safeCoords = {x=0, y=0}
|
||||
-- Flag to tell Awesome whether to do this at startup.
|
||||
local moveMouseOnStartup = true
|
||||
|
||||
-- Simple function to move the mouse to the coordinates set above.
|
||||
local function moveMouseAway(x_co, y_co)
|
||||
-- Simple function to move the mouse to the coordinates set above.
|
||||
local function moveMouseAway(x_co, y_co)
|
||||
mouse.coords({ x=x_co, y=y_co })
|
||||
end
|
||||
end
|
||||
|
||||
local function moveMouse(x_co, y_co)
|
||||
local function moveMouse(x_co, y_co)
|
||||
t=mouse.coords()
|
||||
mouse.coords( {x = t.x + x_co, y = t.y + y_co} )
|
||||
end
|
||||
end
|
||||
|
||||
-- Optionally move the mouse when rc.lua is read (startup)
|
||||
if moveMouseOnStartup then
|
||||
-- Optionally move the mouse when rc.lua is read (startup)
|
||||
if moveMouseOnStartup then
|
||||
moveMouseAway(safeCoords.x, safeCoords.y)
|
||||
end
|
||||
end
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
-- Key bindings
|
||||
-- Note that some laptop will not work when pressing Super+Fn.
|
||||
-- Therefore we only use Fn and Mod1+Fn.
|
||||
--------------------------------------------------------------------------------
|
||||
term = "urxvt"
|
||||
termcmd = term .. " -e "
|
||||
--------------------------------------------------------------------------------
|
||||
-- Key bindings
|
||||
-- Note that some laptop will not work when pressing Super+Fn.
|
||||
-- Therefore we only use Fn and Mod1+Fn.
|
||||
--------------------------------------------------------------------------------
|
||||
term = "urxvt"
|
||||
termcmd = term .. " -e "
|
||||
|
||||
globalkeys = awful.util.table.join(
|
||||
globalkeys = awful.util.table.join(
|
||||
-- Terminal
|
||||
awful.key({ modkey, }, "Return", function () awful.util.spawn(term) end),
|
||||
awful.key({ }, "XF86Terminal", function () awful.util.spawn(term) end),
|
||||
|
@ -436,10 +427,10 @@ globalkeys = awful.util.table.join(
|
|||
awful.util.eval, nil,
|
||||
awful.util.getdir("cache") .. "/history_eval")
|
||||
end)
|
||||
)
|
||||
)
|
||||
|
||||
-- Client keys
|
||||
clientkeys = awful.util.table.join(
|
||||
-- Client keys
|
||||
clientkeys = awful.util.table.join(
|
||||
awful.key({ modkey, }, "f", function (c) c.fullscreen = not c.fullscreen end),
|
||||
awful.key({ modkey, "Shift" }, "c", function (c) c:kill() end),
|
||||
awful.key({ modkey, "Control" }, "space", awful.client.floating.toggle ),
|
||||
|
@ -468,18 +459,18 @@ clientkeys = awful.util.table.join(
|
|||
c.maximized_horizontal = not c.maximized_horizontal
|
||||
c.maximized_vertical = not c.maximized_vertical
|
||||
end)
|
||||
)
|
||||
)
|
||||
|
||||
-- Compute the maximum number of digit we need, limited to 9
|
||||
keynumber = 0
|
||||
for s = 1, screen.count() do
|
||||
-- Compute the maximum number of digit we need, limited to 9
|
||||
keynumber = 0
|
||||
for s = 1, screen.count() do
|
||||
keynumber = math.min(9, math.max(#tags[s], keynumber));
|
||||
end
|
||||
end
|
||||
|
||||
-- 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, keynumber do
|
||||
-- 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, keynumber do
|
||||
globalkeys = awful.util.table.join(globalkeys,
|
||||
awful.key({ modkey }, "#" .. i + 9,
|
||||
function ()
|
||||
|
@ -508,20 +499,20 @@ for i = 1, keynumber do
|
|||
-- awful.client.toggletag(tags[client.focus.screen][i])
|
||||
-- end
|
||||
-- end)
|
||||
end
|
||||
end
|
||||
|
||||
clientbuttons = awful.util.table.join(
|
||||
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)
|
||||
-- }}}
|
||||
-- Set keys
|
||||
root.keys(globalkeys)
|
||||
-- }}}
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
-- {{{ Rules
|
||||
awful.rules.rules = {
|
||||
--------------------------------------------------------------------------------
|
||||
-- {{{ Rules
|
||||
awful.rules.rules = {
|
||||
-- All clients will match this rule.
|
||||
{ rule = { },
|
||||
properties = { border_width = beautiful.border_width,
|
||||
|
@ -555,12 +546,12 @@ awful.rules.rules = {
|
|||
{ rule = { name = "mutt"},
|
||||
properties = { tag = tags[1][7] } },
|
||||
|
||||
}
|
||||
-- }}}
|
||||
}
|
||||
-- }}}
|
||||
|
||||
-- {{{ Signals
|
||||
-- Signal function to execute when a new client appears.
|
||||
client.add_signal("manage", function (c, startup)
|
||||
-- {{{ Signals
|
||||
-- Signal function to execute when a new client appears.
|
||||
client.add_signal("manage", function (c, startup)
|
||||
-- Add a titlebar
|
||||
-- awful.titlebar.add(c, { modkey = modkey })
|
||||
|
||||
|
@ -583,8 +574,8 @@ client.add_signal("manage", function (c, startup)
|
|||
awful.placement.no_offscreen(c)
|
||||
end
|
||||
end
|
||||
end)
|
||||
end)
|
||||
|
||||
client.add_signal("focus", function(c) c.border_color = beautiful.border_focus end)
|
||||
client.add_signal("unfocus", function(c) c.border_color = beautiful.border_normal end)
|
||||
-- }}}
|
||||
client.add_signal("focus", function(c) c.border_color = beautiful.border_focus end)
|
||||
client.add_signal("unfocus", function(c) c.border_color = beautiful.border_normal end)
|
||||
-- }}}
|
||||
|
|
|
@ -37,6 +37,11 @@ class CustomApplications(DefaultApps):
|
|||
c.flags += 'd'
|
||||
return self.either(c, 'zathura', 'evince')
|
||||
|
||||
# CUSTOM
|
||||
if f.extension == 'svg':
|
||||
c.flags += 'd'
|
||||
return self.either(c, 'inkscape')
|
||||
|
||||
# CUSTOM
|
||||
if f.extension == 'm2ts':
|
||||
c.flags += 'd'
|
||||
|
|
|
@ -0,0 +1,177 @@
|
|||
# Attribute codes:
|
||||
# 00=none 01=bold 04=underscore 05=blink 07=reverse 08=concealed
|
||||
# Text color codes:
|
||||
# 30=black 31=red 32=green 33=yellow 34=blue 35=magenta 36=cyan 37=white
|
||||
# Background color codes:
|
||||
# 40=black 41=red 42=green 43=yellow 44=blue 45=magenta 46=cyan 47=white
|
||||
|
||||
# Filesystem
|
||||
MULTIHARDLINK 01;37 # regular file with more than one link
|
||||
FIFO 01;33 # pipe
|
||||
|
||||
# archives or compressed (bright red)
|
||||
.tar 00;31
|
||||
.tgz 00;31
|
||||
.arj 00;31
|
||||
.taz 00;31
|
||||
.lzh 00;31
|
||||
.lzma 00;31
|
||||
.tlz 00;31
|
||||
.txz 00;31
|
||||
.zip 00;31
|
||||
.z 00;31
|
||||
.Z 00;31
|
||||
.dz 00;31
|
||||
.gz 00;31
|
||||
.lz 00;31
|
||||
.xz 00;31
|
||||
.bz2 00;31
|
||||
.bz 00;31
|
||||
.tbz 00;31
|
||||
.tbz2 00;31
|
||||
.tz 00;31
|
||||
.deb 00;31
|
||||
.rpm 00;31
|
||||
.jar 00;31
|
||||
.war 00;31
|
||||
.ear 00;31
|
||||
.sar 00;31
|
||||
.rar 00;31
|
||||
.ace 00;31
|
||||
.zoo 00;31
|
||||
.cpio 00;31
|
||||
.7z 00;31
|
||||
.rz 00;31
|
||||
|
||||
# Disc image
|
||||
.iso 04;31
|
||||
|
||||
# image formats
|
||||
.jpg 04;33
|
||||
.jpeg 04;33
|
||||
.gif 04;33
|
||||
.bmp 04;33
|
||||
.pbm 04;33
|
||||
.pgm 04;33
|
||||
.ppm 04;33
|
||||
.tga 04;33
|
||||
.xbm 04;33
|
||||
.xpm 04;33
|
||||
.tif 04;33
|
||||
.tiff 04;33
|
||||
.png 04;33
|
||||
.svg 04;33
|
||||
.svgz 04;33
|
||||
.mng 04;33
|
||||
.pcx 04;33
|
||||
|
||||
# image formats UPPERCASE
|
||||
.JPG 04;33
|
||||
.JPEG 04;33
|
||||
.GIF 04;33
|
||||
.BMP 04;33
|
||||
.PBM 04;33
|
||||
.PGM 04;33
|
||||
.PPM 04;33
|
||||
.TGA 04;33
|
||||
.XBM 04;33
|
||||
.XPM 04;33
|
||||
.TIF 04;33
|
||||
.TIFF 04;33
|
||||
.PNG 04;33
|
||||
.SVG 04;33
|
||||
.SVGZ 04;33
|
||||
.MNG 04;33
|
||||
.PCX 04;33
|
||||
|
||||
# Documents
|
||||
.pdf 00;33
|
||||
.ps 00;33
|
||||
.dvi 00;33
|
||||
.0 00;33
|
||||
.1 00;33
|
||||
.2 00;33
|
||||
.3 00;33
|
||||
.4 00;33
|
||||
.5 00;33
|
||||
.6 00;33
|
||||
.7 00;33
|
||||
.8 00;33
|
||||
.9 00;33
|
||||
|
||||
# videos
|
||||
.mov 00;35
|
||||
.mpg 00;35
|
||||
.mpeg 00;35
|
||||
.m2v 00;35
|
||||
.mkv 00;35
|
||||
.webm 00;35
|
||||
.ogm 00;35
|
||||
.mp4 00;35
|
||||
.m4v 00;35
|
||||
.mp4v 00;35
|
||||
.vob 00;35
|
||||
.qt 00;35
|
||||
.nuv 00;35
|
||||
.wmv 00;35
|
||||
.asf 00;35
|
||||
.rm 00;35
|
||||
.rmvb 00;35
|
||||
.flc 00;35
|
||||
.avi 00;35
|
||||
.fli 00;35
|
||||
.flv 00;35
|
||||
.gl 00;35
|
||||
.dl 00;35
|
||||
.xcf 00;35
|
||||
.xwd 00;35
|
||||
.yuv 00;35
|
||||
.cgm 00;35
|
||||
.emf 00;35
|
||||
|
||||
# audio formats
|
||||
.aac 04;35
|
||||
.au 04;35
|
||||
.flac 04;35
|
||||
.mid 04;35
|
||||
.midi 04;35
|
||||
.mka 04;35
|
||||
.mp3 04;35
|
||||
.mpc 04;35
|
||||
.ogg 04;35
|
||||
.ra 04;35
|
||||
.wav 04;35
|
||||
|
||||
# Text files
|
||||
.txt 04;37
|
||||
.log 04;37
|
||||
.tex 04;37
|
||||
.srt 04;37
|
||||
.sub 04;37
|
||||
|
||||
# Web
|
||||
.html 04;37
|
||||
.htm 04;37
|
||||
.css 04;37
|
||||
.js 04;37
|
||||
|
||||
# Makefile
|
||||
.mk 04;36
|
||||
.in 04;36
|
||||
|
||||
# Prog
|
||||
.lua 00;36
|
||||
.py 00;36
|
||||
.pl 00;36
|
||||
.el 00;36
|
||||
.c 00;36
|
||||
.h 00;36
|
||||
.cpp 00;36
|
||||
.hpp 00;36
|
||||
.cc 00;36
|
||||
.hh 00;36
|
||||
.sh 00;36
|
||||
.bash 00;36
|
||||
.zsh 00;36
|
||||
.csh 00;36
|
||||
.ksh 00;36
|
|
@ -30,7 +30,7 @@ unset TEXDIR
|
|||
|
||||
## Enable color support of ls.
|
||||
if [ "$TERM" != "dumb" ]; then
|
||||
eval "`dircolors -b`"
|
||||
eval "`dircolors $HOME/.shell.d/dircolorsdb`"
|
||||
fi
|
||||
|
||||
## Terminal
|
||||
|
|
Loading…
Reference in New Issue