Awesome. Kaflowy menadżera okien

Awesome. Sama nazwa tego kaflowo/stertowego (tiling/stacking) menadżera okien wzbudza sympatię, choć jego uruchomienie (bez czytania dokumentacji :)) już niekoniecznie. Postanowiłem go przetestować, a właściwie spróbować przesiąść się na niego z nudnego, stabilnego Window Makera, którego używam od lat.

Od dawna kusiło mnie, by spróbować poużywać jakiegoś kaflowego menadżera okien i spośród tej grupy wybrałem Awesome z kilku powodów:

Ostatnia zaleta może też być jedną z poważnych wad, ponieważ najdrobniejszy błąd w konfiguracji powoduje, że Awesome się nie uruchamia w ogóle, bądź nie jest do końca skonfigurowany. Pomijając to, konfiguruje się to całkiem sprawnie i co istotne, zastosowanie języka programowania do konfiguracji (Lua) pozwala elastycznie dostosować zachowanie Awesome do swoich potrzeb.

description

Jednakże, po kilku godzinach konfiguracji, napotkałem na problem, którego obecnie przeskoczyć nie potrafię. Otóż, chciałem na pasku mieć informacje, które do tej pory miałem w dockappach w Window Makerze, czyli:

Część z tych rzeczy (zegar, tacka systemowa) jest dostępna wprost z „pudełka”, natomiast pozostałe można było uzyskać poprzez bibliotekę Vicious. Niestety, poza jednym. Temperatura procesora graficznego. Z początku wydawało się, że sprawa jest trywialna. Wystarczyło dopisać jedną funkcję, która wywoła nvidia-settings i dodać nowy widżet do biblioteki vicious. Kod jest baardzo prosty:

------------------------------------------------------
-- Dead simple temperature widget for Nvidia gfx cards
------------------------------------------------------

-- {{{ Grab environment
local type = type
local tonumber = tonumber
local setmetatable = setmetatable
local io = {popen = io.popen}
local os = {getenv = os.getenv}
-- }}}


-- Thermalnvidia: provides temperature for nvidia gfx cards
module("vicious.widgets.thermalnvidia")


-- {{{ Read temperature from nvclock utility
local function get_gpu_temp()
    local gpu_temp = nil
    if os.getenv('DISPLAY') then
        local f = io.popen("nvidia-settings -t -q GPUCoreTemp")
        gpu_temp = f:read("*all")
        f:close()
    end
    return gpu_temp
end
-- }}}

-- {{{ Thermal widget type
local function worker(format, warg)

    -- Get temperature from thermal zone
    local res = get_gpu_temp()
    if res then
        return {tonumber(res)}
    end

    return {0}
end
-- }}}

setmetatable(_M, { __call = function(_, ...) return worker(...) end })

Jednak, ku mojemu zdziwieniu, nie działa zgodnie z oczekiwaniami, ponieważ startujący Awesome się po prostu.. wiesza. Z początku myślałem, że winnym jest tu nvidia-settings, który być może nie 'widzi' karty graficznej podczas startu sesji X, lub nie ma do niej dostępu, więc próbowałem zastąpić go przy pomocy nvclock, jednakże rezultat był identyczny. Identyczny problem zgłosił jeden z forumowiczów Archa, jednak do dnia dzisiejszego (05-08-2010) nie otrzymał rozwiązania.

No cóż. Wróciłem do nudnego ale przewidywalnego WMakera, a Awesome zapewne spróbuję w którejś z kolejnych wersji.


, Etykiety: linux