]> git.madduck.net Git - etc/awesome.git/commitdiff

madduck's git repository

Every one of the projects in this repository is available at the canonical URL git://git.madduck.net/madduck/pub/<projectpath> — see each project's metadata for the exact URL.

All patches and comments are welcome. Please squash your changes to logical commits before using git-format-patch and git-send-email to patches@git.madduck.net. If you'd read over the Git project's submission guidelines and adhered to them, I'd be especially grateful.

SSH access, as well as push access can be individually arranged.

If you use my repositories frequently, consider adding the following snippet to ~/.gitconfig and using the third clone URL listed for each project:

[url "git://git.madduck.net/madduck/"]
  insteadOf = madduck:

Merge branch 'master' of https://github.com/copycat-killer/lain
authoraajjbb <jefersonlsiq@gmail.com>
Sun, 11 Oct 2015 21:05:21 +0000 (18:05 -0300)
committeraajjbb <jefersonlsiq@gmail.com>
Sun, 11 Oct 2015 21:05:21 +0000 (18:05 -0300)
asyncshell.lua
icons/layout/default/centerhwork.png [new file with mode: 0644]
icons/layout/default/centerhworkw.png [new file with mode: 0644]
layout/centerhwork.lua [new file with mode: 0644]
layout/centerwork.lua
layout/uselesstile.lua
scripts/dfs
widgets/bat.lua
widgets/contrib/kbdlayout.lua
widgets/mpd.lua
widgets/weather.lua

index 827cf4be4b0f500174ba2279429039d5f39516aa..2d6b7e3b116f26106426251385895a556735ae7d 100644 (file)
@@ -14,6 +14,9 @@
 -- Grab environment
 local awful = require('awful')
 
+-- Avoid discrepancies across multiple shells
+awful.util.shell = '/bin/sh'
+
 -- Initialize tables for module
 asyncshell = { request_table = {}, id_counter = 0 }
 
diff --git a/icons/layout/default/centerhwork.png b/icons/layout/default/centerhwork.png
new file mode 100644 (file)
index 0000000..59c90f8
Binary files /dev/null and b/icons/layout/default/centerhwork.png differ
diff --git a/icons/layout/default/centerhworkw.png b/icons/layout/default/centerhworkw.png
new file mode 100644 (file)
index 0000000..6866f44
Binary files /dev/null and b/icons/layout/default/centerhworkw.png differ
diff --git a/layout/centerhwork.lua b/layout/centerhwork.lua
new file mode 100644 (file)
index 0000000..14b1b01
--- /dev/null
@@ -0,0 +1,136 @@
+
+--[[
+                                                  
+     Licensed under GNU General Public License v2 
+      * (c) 2015,      Joerg Jaspert              
+      * (c) 2014,      projektile                 
+      * (c) 2013,      Luke Bonham                
+      * (c) 2010-2012, Peter Hofmann              
+                                                  
+--]]
+
+local awful     = require("awful")
+local beautiful = require("beautiful")
+local tonumber  = tonumber
+
+local centerhwork =
+{
+    name         = "centerhwork",
+    top_left     = 0,
+    top_right    = 1,
+    bottom_left  = 2,
+    bottom_right = 3
+}
+
+function centerhwork.arrange(p)
+    -- A useless gap (like the dwm patch) can be defined with
+    -- beautiful.useless_gap_width .
+    local useless_gap = tonumber(beautiful.useless_gap_width) or 0
+
+    -- A global border can be defined with
+    -- beautiful.global_border_width
+    local global_border = tonumber(beautiful.global_border_width) or 0
+    if global_border < 0 then global_border = 0 end
+
+    -- Screen.
+    local wa = p.workarea
+    local cls = p.clients
+
+    -- Borders are factored in.
+    wa.height = wa.height - (global_border * 2)
+    wa.width = wa.width - (global_border * 2)
+    wa.x = wa.x + global_border
+    wa.y = wa.y + global_border
+
+    -- Width of main column?
+    local t = awful.tag.selected(p.screen)
+    local mwfact = awful.tag.getmwfact(t)
+
+    if #cls > 0
+    then
+        -- Main column, fixed width and height.
+        local c = cls[1]
+        local g = {}
+        local mainhei  = math.floor(wa.height * mwfact)
+        local slaveLwid = math.floor(wa.width / 2 )
+        local slaveRwid = wa.width - slaveLwid
+        local slavehei = wa.height - mainhei
+        local slaveThei = math.floor(slavehei / 2)
+        local slaveBhei = slavehei - slaveThei
+        local Lhalfgap = math.floor(useless_gap / 2)
+        local Rhalfgap = useless_gap - Lhalfgap
+
+        g.height = mainhei - 2*c.border_width
+        g.width  = wa.width - 2*useless_gap - 2*c.border_width
+        g.x = wa.x + useless_gap
+        g.y = wa.y + slaveThei
+
+        if g.width < 1 then g.width = 1 end
+        if g.height < 1 then g.height = 1 end
+        c:geometry(g)
+
+        -- Auxiliary windows.
+        if #cls > 1
+        then
+            local at = 0
+            for i = 2,#cls
+            do
+                -- It's all fixed. If there are more than 5 clients,
+                -- those additional clients will float. This is
+                -- intentional.
+                if at == 4
+                then
+                    break
+                end
+
+                c = cls[i]
+                g = {}
+
+                if i - 2 == centerhwork.top_left
+                then
+                    -- top left
+                    g.x = wa.x + useless_gap
+                    g.y = wa.y + useless_gap
+                    g.width = slaveLwid - useless_gap - Lhalfgap - 2*c.border_width
+                    g.height = slaveThei - 2*useless_gap - 2*c.border_width
+                elseif i - 2 == centerhwork.top_right
+                then
+                    -- top right
+                    g.x = wa.x + slaveLwid + Rhalfgap
+                    g.y = wa.y + useless_gap
+                    g.width = slaveRwid - useless_gap - Rhalfgap - 2*c.border_width
+                    g.height = slaveThei - 2*useless_gap - 2*c.border_width
+                elseif i - 2 == centerhwork.bottom_left
+                then
+                    -- bottom left
+                    g.x = wa.x + useless_gap
+                    g.y = wa.y + mainhei + slaveThei + useless_gap
+                    g.width = slaveLwid - useless_gap - Lhalfgap - 2*c.border_width
+                    g.height = slaveBhei - 2*useless_gap - 2*c.border_width
+                elseif i - 2 == centerhwork.bottom_right
+                then
+                    -- bottom right
+                    g.x = wa.x + slaveLwid + Rhalfgap
+                    g.y = wa.y + mainhei + slaveThei + useless_gap
+                    g.width = slaveRwid - useless_gap - Rhalfgap - 2*c.border_width
+                    g.height = slaveBhei - 2*useless_gap - 2*c.border_width
+                end
+
+                if g.width < 1 then g.width = 1 end
+                if g.height < 1 then g.height = 1 end
+                c:geometry(g)
+
+                at = at + 1
+            end
+
+            -- Set remaining clients to floating.
+            for i = (#cls - 1 - 4),1,-1
+            do
+                c = cls[i]
+                awful.client.floating.set(c, true)
+            end
+        end
+    end
+end
+
+return centerhwork
index 98a3ac253a02294a748e45cc654f4af2187b00d4..954826e0793d72c60d1962f14d48c0e870d9716c 100644 (file)
@@ -57,14 +57,16 @@ function centerwork.arrange(p)
         local slaveRwid = slavewid - slaveLwid
         local slaveThei = math.floor(wa.height / 2)
         local slaveBhei = wa.height - slaveThei
+        local Thalfgap = math.floor(useless_gap / 2)
+        local Bhalfgap = useless_gap - Thalfgap
 
         g.height = wa.height - 2*useless_gap - 2*c.border_width
         g.width = mainwid - 2*c.border_width
-        if g.width < 1 then g.width = 1 end
-        if g.height < 1 then g.height = 1 end
         g.x = wa.x + slaveLwid
         g.y = wa.y + useless_gap
 
+        if g.width < 1 then g.width = 1 end
+        if g.height < 1 then g.height = 1 end
         c:geometry(g)
 
         -- Auxiliary windows.
@@ -90,28 +92,28 @@ function centerwork.arrange(p)
                     g.x = wa.x + useless_gap
                     g.y = wa.y + useless_gap
                     g.width = slaveLwid - 2*useless_gap - 2*c.border_width
-                    g.height = slaveThei - useless_gap - 2*c.border_width
+                    g.height = slaveThei - useless_gap - Thalfgap - 2*c.border_width
                 elseif i - 2 == centerwork.top_right
                 then
                     -- top right
                     g.x = wa.x + slaveLwid + mainwid + useless_gap
                     g.y = wa.y + useless_gap
                     g.width = slaveRwid - 2*useless_gap - 2*c.border_width
-                    g.height = slaveThei - useless_gap - 2*c.border_width
+                    g.height = slaveThei - useless_gap - Thalfgap - 2*c.border_width
                 elseif i - 2 == centerwork.bottom_left
                 then
                     -- bottom left
                     g.x = wa.x + useless_gap
-                    g.y = wa.y + slaveThei + useless_gap
+                    g.y = wa.y + slaveThei + Bhalfgap
                     g.width = slaveLwid - 2*useless_gap - 2*c.border_width
-                    g.height = slaveBhei - 2*useless_gap - 2*c.border_width
+                    g.height = slaveBhei - useless_gap - Bhalfgap - 2*c.border_width
                 elseif i - 2 == centerwork.bottom_right
                 then
                     -- bottom right
                     g.x = wa.x + slaveLwid + mainwid + useless_gap
-                    g.y = wa.y + slaveThei + useless_gap
+                    g.y = wa.y + slaveThei + Bhalfgap
                     g.width = slaveRwid - 2*useless_gap - 2*c.border_width
-                    g.height = slaveBhei - 2*useless_gap - 2*c.border_width
+                    g.height = slaveBhei - useless_gap - Bhalfgap - 2*c.border_width
                 end
 
                 if g.width < 1 then g.width = 1 end
index c769d586658a7066f238824b0def4e0bfa7c9502..ee3306067121bc5291f041dfdf4f6189bc972961 100644 (file)
@@ -55,8 +55,8 @@ end
 local function size_correction(c, geometry, useless_gap)
     geometry.width  = math.max(geometry.width  - 2 * c.border_width - useless_gap, 1)
     geometry.height = math.max(geometry.height - 2 * c.border_width - useless_gap, 1)
-    geometry.x = math.floor(geometry.x + useless_gap / 2)
-    geometry.y = math.floor(geometry.y + useless_gap / 2)
+    geometry.x = geometry.x + useless_gap / 2
+    geometry.y = geometry.y + useless_gap / 2
 end
 
 -- Check size factor for group of clients and calculate total
index f04b05127597e0d8322b4d35ebafa01795c3c9a1..bc27b816a552fffcc17ff4b716dd2bdf2f129037 100755 (executable)
@@ -212,7 +212,7 @@ echo "$SORTED_FILE_SYSTEMS_INFO" | $AWK_COMMAND -v DEBUG=$DEBUG -v PATTERN=$PATT
                                                         printf ("\n%s", narrow_margin);
                                                 else
                                                         printf ("%-*s", LEFT_COLUMN + 2, "");
-                                        print "                                                     Used    Free     Total ";
+                                        print "                                                    Used     Free       Total ";
                                         if (! NARROW_MODE)
                                                 print "";
                                 }
@@ -352,7 +352,7 @@ $0 ~ PATTERN    {
 #           printf ("stars_number = %d\n", stars_number);
 
                        printf ("|");
-                       for (i = 1; i <= stars_number; i++)
+                       for (i = 1; i <= stars_number && i <= 49; i++)
                        {
                                printf ("%s", "*");
                        }
index 626239b14c28d2b32b6f1a9fc29d739e9cff5543..61828ecfe9cb98c164c6526becdd75b4db363cc7 100644 (file)
@@ -21,9 +21,9 @@ local setmetatable = setmetatable
 
 -- Battery infos
 -- lain.widgets.bat
-local bat = {}
 
 local function worker(args)
+    local bat = {}
     local args = args or {}
     local timeout = args.timeout or 30
     local battery = args.battery or "BAT0"
@@ -143,7 +143,7 @@ local function worker(args)
 
     newtimer(battery, timeout, update)
 
-    return bat.widget
+    return setmetatable(bat, { __index = bat.widget })
 end
 
-return setmetatable(bat, { __call = function(_, ...) return worker(...) end })
+return setmetatable({}, { __call = function(_, ...) return worker(...) end })
index f8164ce1d648cd6a57cf18f85bcacba15db263ad..39857afd62acb450d6c2f226d7827291819d5926 100644 (file)
@@ -22,10 +22,12 @@ local function worker (args)
 
    local layouts          = args.layouts
    local settings         = args.settings or function () end
-   local add_us_secondary = args.add_us_secondary or true
+   local add_us_secondary = true
    local timeout          = args.timeout or 5
 
    local idx              = 1
+   
+   if args.add_us_secondary == false then add_us_secondary = false end
 
    -- Mouse bindings
    kbdlayout.widget:buttons(awful.util.table.join(
index 5af898b482ff5dd1f97635fb5ab6e50bf004eced..c437347dbc7ffa514fb8600203cfd61b6b0364ea 100644 (file)
@@ -71,6 +71,7 @@ local function worker(args)
                 for k, v in string.gmatch(line, "([%w]+):[%s](.*)$") do
                     if     k == "state"   then mpd_now.state   = v
                     elseif k == "file"    then mpd_now.file    = v
+                    elseif k == "Name"    then mpd_now.name    = escape_f(v)
                     elseif k == "Artist"  then mpd_now.artist  = escape_f(v)
                     elseif k == "Title"   then mpd_now.title   = escape_f(v)
                     elseif k == "Album"   then mpd_now.album   = escape_f(v)
index de3163c9602ffb8e27d78329ba14817e2eddad9e..68abae99ff195eebc94d8f6f52d76a5f695dd436 100644 (file)
@@ -30,10 +30,11 @@ local setmetatable = setmetatable
 local function worker(args)
     local weather               = {}
     local args                  = args or {}
+    local APPID                = args.APPID or 1 -- mandatory
     local timeout               = args.timeout or 900   -- 15 min
     local timeout_forecast      = args.timeout or 86400 -- 24 hrs
-    local current_call          = "curl -s 'http://api.openweathermap.org/data/2.5/weather?id=%s&units=%s&lang=%s'"
-    local forecast_call         = "curl -s 'http://api.openweathermap.org/data/2.5/forecast/daily?id=%s&units=%s&lang=%s&cnt=%s'"
+    local current_call          = "curl -s 'http://api.openweathermap.org/data/2.5/weather?id=%s&units=%s&lang=%s&APPID=%s'"
+    local forecast_call         = "curl -s 'http://api.openweathermap.org/data/2.5/forecast/daily?id=%s&units=%s&lang=%s&cnt=%s&APPID=%s'"
     local city_id               = args.city_id or 0 -- placeholder
     local units                 = args.units or "metric"
     local lang                  = args.lang or "en"
@@ -83,7 +84,7 @@ local function worker(args)
     end
 
     function weather.forecast_update()
-        local cmd = string.format(forecast_call, city_id, units, lang, cnt)
+        local cmd = string.format(forecast_call, city_id, units, lang, cnt, APPID)
         async.request(cmd, function(f)
             local pos, err
             weather_now, pos, err = json.decode(f, 1, nil)
@@ -112,7 +113,7 @@ local function worker(args)
     end
 
     function weather.update()
-        local cmd = string.format(current_call, city_id, units, lang)
+        local cmd = string.format(current_call, city_id, units, lang, APPID)
         async.request(cmd, function(f)
             local pos, err
             weather_now, pos, err = json.decode(f, 1, nil)