diff --git a/README.rst b/README.rst index 29742d7..8a761b0 100644 --- a/README.rst +++ b/README.rst @@ -24,7 +24,6 @@ Notable features: - PNG taskbar - No borders when there's only one visible client - Powerful volume bar -- Custom layouts - Freedesktop menu - By direction client focus (like in bspwm) @@ -69,8 +68,6 @@ Fonts are Terminus (Multicolor, Powerarrow Darker) and Tamsyn (other ones). Blackburn and Dremora use Icons_: **if you're running Debian/Ubuntu**, be sure to have bitmaps enabled (1_ 2_). -If you have any ``surface.lua`` problem, be sure to have ``lua`` and ``lua-lgi`` up to date. - Except Multicolor and Powerarrow Darker, every theme has a colorscheme_ and uses Yawn_. Blackburn and Holo use png topbars, supported screen widths are: @@ -85,13 +82,18 @@ Blackburn and Holo use png topbars, supported screen widths are: 1920 2560 -if your screen is unsupported, you have to create a proper topbar, and put it into ``themes/$THEME/icons/topbar``. Feel free to send me your custom sized bar, I'll add it. +if your screen is unsupported, you have to create a proper topbar and put it into ``themes/$THEME/icons/topbar``. You can send me your custom sized bar, I'll add it. Freedesktop menu in use is just an example: feel free to modify ``freedesktop/freedesktop.lua``. If you happen to get an error involving ``/home fs widget``, replace every occurrence of ``/home`` with ``/``, or some other argument defined in vicious readme_, section ``vicious.widgets.fs``. -**Have any suggestions?** Did you see some great stuff and you want me to put my paws on it? Feel free to email me, it might just be the next copycat! +Instead, if you happen to get any ``surface.lua`` problem, be sure to have ``lua`` and ``lua-lgi`` up to date. + +Also be sure to set your music dir in ``scripts/mpdinfo``, and to have ``imagemagick`` and ``notify-send`` installed. + + +**Have any suggestions?** Did you see some great stuff and you'd like me to put my paws on it? Then tell me! It might just be the next copycat. Author -------- diff --git a/layouts/fairgaps.lua b/layouts/fairgaps.lua deleted file mode 100644 index 0fa65ea..0000000 --- a/layouts/fairgaps.lua +++ /dev/null @@ -1,110 +0,0 @@ ---------------------------------------------------------------------------- --- @author Julien Danjou <julien@danjou.info> --- @copyright 2008 Julien Danjou --- @release v3.4.11 ---------------------------------------------------------------------------- - --- Grab environment we need -local ipairs = ipairs -local math = math - -module("layouts.fairgaps") - -local function fair(p, orientation) - local wa = p.workarea - local cls = p.clients - - if #cls > 0 then - local cells = math.ceil(math.sqrt(#cls)) - local strips = math.ceil(#cls / cells) - - local cell = 0 - local strip = 0 - for k, c in ipairs(cls) do - local g = {} - if ( orientation == "east" and #cls > 2 ) - or ( orientation == "south" and #cls <= 2 ) then - if #cls < (strips * cells) and strip == strips - 1 then - g.width = wa.width / (cells - ((strips * cells) - #cls)) - else - g.width = wa.width / cells - end - g.height = wa.height / strips - - g.x = wa.x + cell * g.width - g.y = wa.y + strip * g.height - - else - if #cls < (strips * cells) and strip == strips - 1 then - g.height = wa.height / (cells - ((strips * cells) - #cls)) - else - g.height = wa.height / cells - end - g.width = wa.width / strips - - g.x = wa.x + strip * g.width - g.y = wa.y + cell * g.height - end - - -- Useless gap. - useless_gap = 25 - if useless_gap > 0 - then - -- Top and left clients are shrinked by two steps and - -- get moved away from the border. Other clients just - -- get shrinked in one direction. - - top = false - left = false - - if g.x == wa.x then - top = true - end - - if g.y == wa.y then - left = true - end - - if top then - g.width = g.width - 2 * useless_gap - g.x = g.x + useless_gap - else - g.width = g.width - useless_gap - end - - if left then - g.height = g.height - 2 * useless_gap - g.y = g.y + useless_gap - else - g.height = g.height - useless_gap - end - end - -- End of useless gap. - - - - c:geometry(g) - - cell = cell + 1 - if cell == cells then - cell = 0 - strip = strip + 1 - end - end - end -end - ---- Horizontal fair layout. --- @param screen The screen to arrange. -horizontal = {} -horizontal.name = "fairhgaps" -function horizontal.arrange(p) - return fair(p, "east") -end - --- Vertical fair layout. --- @param screen The screen to arrange. -name = "fairvgaps" -function arrange(p) - return fair(p, "south") -end diff --git a/layouts/init.lua b/layouts/init.lua deleted file mode 100644 index 2695fd5..0000000 --- a/layouts/init.lua +++ /dev/null @@ -1,4 +0,0 @@ -require("layouts.fairgaps") -require("layouts.spiralgaps") -require("layouts.tilegaps") -module("layouts") diff --git a/layouts/spiralgaps.lua b/layouts/spiralgaps.lua deleted file mode 100644 index bfc4818..0000000 --- a/layouts/spiralgaps.lua +++ /dev/null @@ -1,102 +0,0 @@ ---------------------------------------------------------------------------- --- @author Uli Schlachter <psychon@znc.in> --- @copyright 2009 Uli Schlachter --- @copyright 2008 Julien Danjou --- @release v3.4.11 ---------------------------------------------------------------------------- - --- Grab environment we need -local ipairs = ipairs - -module("layouts.spiralgaps") - -local function spiral(p, spiral) - local wa = p.workarea - local cls = p.clients - local n = #cls - - local static_wa = wa - - for k, c in ipairs(cls) do - if k < n then - if k % 2 == 0 then - wa.height = wa.height / 2 - else - wa.width = wa.width / 2 - end - end - - if k % 4 == 0 and spiral then - wa.x = wa.x - wa.width - elseif k % 2 == 0 or - (k % 4 == 3 and k < n and spiral) then - wa.x = wa.x + wa.width - end - - if k % 4 == 1 and k ~= 1 and spiral then - wa.y = wa.y - wa.height - elseif k % 2 == 1 and k ~= 1 or - (k % 4 == 0 and k < n and spiral) then - wa.y = wa.y + wa.height - end - - local wa2 = {} - wa2.x = wa.x - wa2.y = wa.y - wa2.height = wa.height - wa2.width = wa.width - - - -- Useless gap. - useless_gap = 25 - if useless_gap > 0 - then - -- Top and left clients are shrinked by two steps and - -- get moved away from the border. Other clients just - -- get shrinked in one direction. - - top = false - left = false - - if wa2.y == static_wa.y then - top = true - end - - if wa2.x == static_wa.x then - left = true - end - - if top then - wa2.height = wa2.height - 2 * useless_gap - wa2.y = wa2.y + useless_gap - else - wa2.height = wa2.height - useless_gap - end - - if left then - wa2.width = wa2.width - 2 * useless_gap - wa2.x = wa2.x + useless_gap - else - wa2.width = wa2.width - useless_gap - end - end - -- End of useless gap. - - c:geometry(wa2) - end -end - ---- Dwindle layout -dwindle = {} -dwindle.name = "dwindlegaps" -function dwindle.arrange(p) - return spiral(p, false) -end - ---- Spiral layout -name = "spiralgaps" -function arrange(p) - return spiral(p, true) -end - --- vim: filetype=lua:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:encoding=utf-8:textwidth=80 diff --git a/layouts/tilegaps.lua b/layouts/tilegaps.lua deleted file mode 100644 index 8624d30..0000000 --- a/layouts/tilegaps.lua +++ /dev/null @@ -1,220 +0,0 @@ ---------------------------------------------------------------------------- --- @author Donald Ephraim Curtis --- @author Julien Danjou --- @copyright 2009 Donald Ephraim Curtis --- @copyright 2008 Julien Danjou --- @release v3.4.11 ---------------------------------------------------------------------------- - --- Grab environment we need -local ipairs = ipairs -local math = math -local tag = require("awful.tag") - -module("layouts.tilegaps") - -local function tile_group(cls, wa, orientation, fact, group) - -- get our orientation right - local height = "height" - local width = "width" - local x = "x" - local y = "y" - if orientation == "top" or orientation == "bottom" then - height = "width" - width = "height" - x = "y" - y = "x" - end - - -- make this more generic (not just width) - available = wa[width] - (group.coord - wa[x]) - - -- find our total values - local total_fact = 0 - local min_fact = 1 - local size = group.size - for c = group.first,group.last do - -- determine the width/height based on the size_hint - local i = c - group.first +1 - local size_hints = cls[c].size_hints - local size_hint = size_hints["min_"..width] or size_hints["base_"..width] or 0 - size_hint = size_hint + cls[c].border_width*2 - size = math.max(size_hint, size) - - -- calculate the height - if not fact[i] then - fact[i] = min_fact - else - min_fact = math.min(fact[i],min_fact) - end - total_fact = total_fact + fact[i] - end - size = math.min(size, available) - - local coord = wa[y] - local geom = {} - local used_size = 0 - local unused = wa[height] - local stat_coord = wa[x] - --stat_coord = size - for c = group.first,group.last do - local i = c - group.first +1 - geom[width] = size - geom[height] = math.floor(unused * fact[i] / total_fact) - geom[x] = group.coord - geom[y] = coord - - - coord = coord + geom[height] - unused = unused - geom[height] - total_fact = total_fact - fact[i] - used_size = math.max(used_size, geom[width]) - - - -- Useless gap. - useless_gap = 25 - if useless_gap > 0 - then - -- Top and left clients are shrinked by two steps and - -- get moved away from the border. Other clients just - -- get shrinked in one direction. - - top = false - left = false - - if geom[y] == wa[y] then - top = true - end - - if geom[x] == 0 or geom[x] == wa[x] then - left = true - end - - if top then - geom[height] = geom[height] - 2 * useless_gap - geom[y] = geom[y] + useless_gap - else - geom[height] = geom[height] - useless_gap - end - - if left then - geom[width] = geom[width] - 2 * useless_gap - geom[x] = geom[x] + useless_gap - else - geom[width] = geom[width] - useless_gap - end - end - -- End of useless gap. - - geom = cls[c]:geometry(geom) - end - - return used_size -end - -local function tile(param, orientation) - local t = tag.selected(param.screen) - orientation = orientation or "right" - - -- this handles are different orientations - local height = "height" - local width = "width" - local x = "x" - local y = "y" - if orientation == "top" or orientation == "bottom" then - height = "width" - width = "height" - x = "y" - y = "x" - end - - local cls = param.clients - local nmaster = math.min(tag.getnmaster(t), #cls) - local nother = math.max(#cls - nmaster,0) - - local mwfact = tag.getmwfact(t) - local wa = param.workarea - local ncol = tag.getncol(t) - - local data = tag.getdata(t).windowfact - - if not data then - data = {} - tag.getdata(t).windowfact = data - end - - local coord = wa[x] - local place_master = true - if orientation == "left" or orientation == "top" then - -- if we are on the left or top we need to render the other windows first - place_master = false - end - - -- this was easier than writing functions because there is a lot of data we need - for d = 1,2 do - if place_master and nmaster > 0 then - local size = wa[width] - if nother > 0 then - size = math.min(wa[width] * mwfact, wa[width] - (coord - wa[x])) - end - if not data[0] then - data[0] = {} - end - coord = coord + tile_group(cls, wa, orientation, data[0], {first=1, last=nmaster, coord = coord, size = size}) - end - - if not place_master and nother > 0 then - local last = nmaster - - -- we have to modify the work area size to consider left and top views - local wasize = wa[width] - if nmaster > 0 and (orientation == "left" or orientation == "top") then - wasize = wa[width] - wa[width]*mwfact - end - for i = 1,ncol do - -- Try to get equal width among remaining columns - local size = math.min( (wasize - (coord - wa[x])) / (ncol - i + 1) ) - local first = last + 1 - last = last + math.floor((#cls - last)/(ncol - i + 1)) - -- tile the column and update our current x coordinate - if not data[i] then - data[i] = {} - end - coord = coord + tile_group(cls, wa, orientation, data[i], { first = first, last = last, coord = coord, size = size }) - end - end - place_master = not place_master - end - -end - -right = {} -right.name = "tilegaps" -right.arrange = tile - ---- The main tile algo, on left. --- @param screen The screen number to tile. -left = {} -left.name = "tileleftgaps" -function left.arrange(p) - return tile(p, "left") -end - ---- The main tile algo, on bottom. --- @param screen The screen number to tile. -bottom = {} -bottom.name = "tilebottomgaps" -function bottom.arrange(p) - return tile(p, "bottom") -end - ---- The main tile algo, on top. --- @param screen The screen number to tile. -top = {} -top.name = "tiletopgaps" -function top.arrange(p) - return tile(p, "top") -end - -arrange = right.arrange -name = right.name diff --git a/rc.lua.blackburn b/rc.lua.blackburn index 029a5cb..6dcae3f 100755 --- a/rc.lua.blackburn +++ b/rc.lua.blackburn @@ -8,17 +8,16 @@ -- {{{ Required Libraries -local gears = require("gears") -local awful = require("awful") -awful.rules = require("awful.rules") -awful.autofocus = require("awful.autofocus") -local wibox = require("wibox") -local beautiful = require("beautiful") -local naughty = require("naughty") -local vicious = require("vicious") -local scratch = require("scratch") -local yawn = require("yawn") -local layouts = require("layouts") +local gears = require("gears") +local awful = require("awful") +awful.rules = require("awful.rules") +awful.autofocus = require("awful.autofocus") +local wibox = require("wibox") +local beautiful = require("beautiful") +local naughty = require("naughty") +local vicious = require("vicious") +local scratch = require("scratch") +local yawn = require("yawn") -- }}} @@ -102,7 +101,6 @@ layouts = awful.layout.suit.fair, -- 3 awful.layout.suit.tile.left, -- 4 awful.layout.suit.tile.top, -- 5 - layouts.tilegaps, -- 6 } -- }}} diff --git a/rc.lua.dremora b/rc.lua.dremora index 19a39e0..a4f7753 100755 --- a/rc.lua.dremora +++ b/rc.lua.dremora @@ -8,21 +8,20 @@ -- {{{ Required Libraries -local gears = require("gears") -local awful = require("awful") -awful.rules = require("awful.rules") -awful.autofocus = require("awful.autofocus") -local wibox = require("wibox") -local beautiful = require("beautiful") -local naughty = require("naughty") -local vicious = require("vicious") -local scratch = require("scratch") -local yawn = require("yawn") -local layouts = require("layouts") +local gears = require("gears") +local awful = require("awful") +awful.rules = require("awful.rules") +awful.autofocus = require("awful.autofocus") +local wibox = require("wibox") +local beautiful = require("beautiful") +local naughty = require("naughty") +local vicious = require("vicious") +local scratch = require("scratch") +local yawn = require("yawn") -- }}} --- {{{ Autostart programs +-- {{{ Autostart applications function run_once(cmd) findme = cmd @@ -104,7 +103,6 @@ layouts = awful.layout.suit.fair, -- 3 awful.layout.suit.tile.left, -- 4 awful.layout.suit.tile.top, -- 5 - layouts.tilegaps, -- 6 } -- }}} diff --git a/rc.lua.holo b/rc.lua.holo index 4ba17d3..39433b6 100755 --- a/rc.lua.holo +++ b/rc.lua.holo @@ -8,17 +8,16 @@ -- {{{ Required Libraries -local gears = require("gears") -local awful = require("awful") -awful.rules = require("awful.rules") -awful.autofocus = require("awful.autofocus") -local wibox = require("wibox") -local beautiful = require("beautiful") -local naughty = require("naughty") -local vicious = require("vicious") -local scratch = require("scratch") -local yawn = require("yawn") -local layouts = require("layouts") +local gears = require("gears") +local awful = require("awful") +awful.rules = require("awful.rules") +awful.autofocus = require("awful.autofocus") +local wibox = require("wibox") +local beautiful = require("beautiful") +local naughty = require("naughty") +local vicious = require("vicious") +local scratch = require("scratch") +local yawn = require("yawn") -- }}} @@ -102,7 +101,6 @@ layouts = awful.layout.suit.fair, -- 3 awful.layout.suit.tile.left, -- 4 awful.layout.suit.tile.top, -- 5 - layouts.tilegaps, -- 6 } -- }}} diff --git a/rc.lua.multicolor b/rc.lua.multicolor index a329519..efacb2b 100755 --- a/rc.lua.multicolor +++ b/rc.lua.multicolor @@ -8,20 +8,19 @@ -- {{{ Required Libraries -gears = require("gears") -awful = require("awful") +local gears = require("gears") +local awful = require("awful") awful.rules = require("awful.rules") awful.autofocus = require("awful.autofocus") -wibox = require("wibox") -beautiful = require("beautiful") -naughty = require("naughty") -vicious = require("vicious") -scratch = require("scratch") -layouts = require("layouts") +local wibox = require("wibox") +local beautiful = require("beautiful") +local naughty = require("naughty") +local vicious = require("vicious") +local scratch = require("scratch") -- }}} --- {{{ Autostart +-- {{{ Autostart applications function run_once(cmd) findme = cmd @@ -113,7 +112,6 @@ layouts = awful.layout.suit.max, -- 10 --awful.layout.suit.max.fullscreen, -- 11 --awful.layout.suit.magnifier -- 12 - layouts.tilegaps, -- 13 } -- }}} diff --git a/rc.lua.powerarrow-darker b/rc.lua.powerarrow-darker index 415dc03..3052e53 100755 --- a/rc.lua.powerarrow-darker +++ b/rc.lua.powerarrow-darker @@ -8,20 +8,19 @@ -- {{{ Required Libraries -gears = require("gears") -awful = require("awful") +local gears = require("gears") +local awful = require("awful") awful.rules = require("awful.rules") awful.autofocus = require("awful.autofocus") -wibox = require("wibox") -beautiful = require("beautiful") -naughty = require("naughty") -vicious = require("vicious") -scratch = require("scratch") -layouts = require("layouts") +local wibox = require("wibox") +local beautiful = require("beautiful") +local naughty = require("naughty") +local vicious = require("vicious") +local scratch = require("scratch") -- }}} --- {{{ Autostart +-- {{{ Autostart applications function run_once(cmd) findme = cmd @@ -117,7 +116,6 @@ layouts = awful.layout.suit.max, -- 10 --awful.layout.suit.max.fullscreen, -- 11 --awful.layout.suit.magnifier -- 12 - layouts.tilegaps, -- 13 } -- }}} diff --git a/rc.lua.rainbow b/rc.lua.rainbow index f9691fd..e6faca7 100755 --- a/rc.lua.rainbow +++ b/rc.lua.rainbow @@ -18,7 +18,6 @@ local naughty = require("naughty") local vicious = require("vicious") local scratch = require("scratch") local yawn = require("yawn") -local layouts = require("layouts") -- }}} @@ -102,9 +101,6 @@ layouts = awful.layout.suit.tile, -- 2 awful.layout.suit.fair, -- 3 awful.layout.suit.fair.horizontal, -- 4 - layouts.tilegaps, -- 5 - layouts.fairgaps, -- 6 - layouts.spiralgaps, -- 7 } -- }}} diff --git a/rc.lua.steamburn b/rc.lua.steamburn index fc9a507..238c377 100755 --- a/rc.lua.steamburn +++ b/rc.lua.steamburn @@ -8,16 +8,15 @@ -- {{{ Required Libraries -gears = require("gears") -awful = require("awful") +local gears = require("gears") +local awful = require("awful") awful.rules = require("awful.rules") awful.autofocus = require("awful.autofocus") -wibox = require("wibox") -beautiful = require("beautiful") -naughty = require("naughty") -vicious = require("vicious") -scratch = require("scratch") -layouts = require("layouts") +local wibox = require("wibox") +local beautiful = require("beautiful") +local naughty = require("naughty") +local vicious = require("vicious") +local scratch = require("scratch") -- }}} @@ -107,9 +106,6 @@ layouts = awful.layout.suit.spiral, -- 8 awful.layout.suit.spiral.dwindle, -- 9 awful.layout.suit.max, -- 10 - --awful.layout.suit.max.fullscreen, -- 11 - --awful.layout.suit.magnifier -- 12 - layouts.tilegaps, -- 13 } -- }}} diff --git a/screenshot/blackburn.png b/screenshot/blackburn.png deleted file mode 100644 index f8a7efb..0000000 Binary files a/screenshot/blackburn.png and /dev/null differ diff --git a/themes/rainbow/theme.lua b/themes/rainbow/theme.lua index 8eb7d67..51173ae 100644 --- a/themes/rainbow/theme.lua +++ b/themes/rainbow/theme.lua @@ -20,7 +20,7 @@ theme.fg_urgent = "#000000" theme.bg_urgent = "#FFFFFF" theme.border_width = "1" theme.border_normal = "#242424" -theme.border_focus = "#999999" +theme.border_focus = "#EBEBFF" theme.taglist_fg_focus = "#EBEBFF" theme.taglist_bg_focus = "#3D3D3D" theme.menu_height = "16" @@ -28,9 +28,9 @@ theme.menu_width = "140" theme.ocol = "" theme.ccol = "" -theme.tasklist_sticky = theme.ocol .. " [S]" .. theme.ccol -theme.tasklist_ontop = theme.ocol .. " [T]" .. theme.ccol -theme.tasklist_floating = theme.ocol .. " [F]" .. theme.ccol +theme.tasklist_sticky = theme.ocol .. "[S]" .. theme.ccol +theme.tasklist_ontop = theme.ocol .. "[T]" .. theme.ccol +theme.tasklist_floating = theme.ocol .. "[F]" .. theme.ccol theme.tasklist_maximized_horizontal = theme.ocol .. "[M] " .. theme.ccol theme.tasklist_maximized_vertical = "" theme.tasklist_disable_icon = true @@ -55,13 +55,16 @@ theme.layout_txt_fullscreen = "[F]" theme.layout_txt_magnifier = "[M]" theme.layout_txt_floating = "[*]" -theme.layout_txt_tilegaps = "[tg]" -theme.layout_txt_tileleftgaps = "[tlg]" -theme.layout_txt_tilebottomgaps = "[tbg]" -theme.layout_txt_tiletopgaps = "[ttg]" -theme.layout_txt_fairhgaps = "[fhg]" -theme.layout_txt_fairvgaps = "[fvg]" -theme.layout_txt_spiralgaps = "[spg]" -theme.layout_txt_dwindlegaps = "[dwg]" +-- vain related +theme.border_focus_highprio = "#FF0000" +theme.border_normal_highprio = "#A03333" +theme.border_focus_lowprio = "#3333FF" +theme.border_normal_lowprio = "#333366" +theme.useless_gap_width = "6" +theme.layout_txt_uselesstile = "[ut]" +theme.layout_txt_uselessfairv = "[ufv]" +theme.layout_txt_uselessfairh = "[ufh]" +theme.layout_txt_termfair = "[termfair]" +theme.layout_txt_uselessdwindle = "[ud]" return theme