Posts tagged ‘awesome wm’

Dwm

I pluggtider likt denna passar det utmärkt att skriva ett inlägg på bloggen igen. Posten tänkte tillägnas dwm och den utveckling jag har genomgott för att hamna där jag är idag. Jag har ingen aning riktigt hur länge jag har varit en GNU/Linux användare, det jag vet är att jag installerade Arch Linux för första gången år 2009 och att jag innan det använde Ubuntu (som alla andra ungefär). Ungefär så här har utvecklingen sett ut: Gnome -> Fluxbox -> Awesome WM -> dwm -> ??. När jag använder Windows (bah!) är det bblean som gäller. Nåväl. Lite om dwm. Jag gillar dwm. Jag gillar tanken med att ha så få SLOC som möjligt och samtidigt ha grundläggande funktionalitet med stora möjligheter att patcha de funktioner man saknar, för patchar finns det. Dessa har jag för tillfället:

pertag2.dff – Låter varje tag agera självständigt, bestäm vilken layout varje tag ska ha etc. Jag vill exempelvis bara att tagen term ska en sorts layout (ntile) med gaps, i andra fall är gaps irriterande.
op.menu.patch – Kommer du från Awesome har du säkert använt dig utav menyn som kommer upp när du högerklickar på skrivbordet (eller på ikonen i vänstra hörnet) Denna patch ger dwm den funktionen.
activetags.dff – gör att du bara ser de tags som har något innehåll. Varför se oanvända?
bstack.c – Intressant layout
bstackhoriz.c – ^^ .Tänk på att m->mfact måste ändras till m->mfacts[0] när du lägger till nya layouts om du använder pertag2.
urgentcolors.dff – Antar att det säger sig självt? Smidigt om du använder IRC/IM och vill se när någon vill dig något.
remember-tags.dff – Glömmer dina tags, eller va?
push.dff – Flytta fönster med tangentbordet.
cycle.dff – Ha muspekaren vid tagsen och scrolla så byter du tag. Funkar även med tangentbordet.
galpessgrid.dff – En layout till. Tack så mycket.
gaps.dff – Ja tack.
focusonclick.dff – Tryck på fönstret för att använda det.
autoresize.dff – Fönster som inte syns får gärna ändra storlek de också.
fancycoloredbarclickable.diff – Kombinerar statuscolors och fancybar. Conky ser lite finare ut och jag ser titeln på de fönster som förekommer på den tag jag är aktiv i.
centred-floating.diff – Varför vill de hamna vid sidan för? I mitten med er!

Jag orkar inte länka till patcharna, sök på google så ordnar det sig nog. Jag är långt ifrån expert på dwm, jag kommer säkerligen ändra min konfiguration någon gång. Nu är jag ganska nöjd dock. På min deviantart finns det för tillfället en screenshot. Den speglar däremot inte hur dwm ser ut i nuläget. Ett tips är att börja med pertag2, sedan kan du få patcha de flesta för hand. Roligt roligt.

Lm sensors och Asrock, Intel Atom

Jag använder mig utav Awesome wm, en fönsterhanterare som är vad namnet antyder, awesome. Jag använder mig av för mig nyttiga widgets som jag när tiden finner försöker att optimera. När jag har mycket dödtid händer det att jag försöker hitta inspiration till nya kreationer, något jag alltså har gjort idag och som jag anser förtjänar ett inlägg på min blogg. Tidigare har jag inte känt något större behov utav att kolla temperaturen på CPU:n men idag tänkte jag, varför inte?

Jag visste att det var ganska vanligt att folk gjorde en widget som visade temperaturen, jag tänkte därför att jag inte skulle behöva skriva alltför mycket som skulle visa den information jag var ute efter, detta var därför det första jag gjorde. Vicious använde jag sedan tidigare och jag visste att det fanns en färdig modul för detta ändamål. Det andra jag gjorde var att installera Lm sensors och körde sensors-detect som sig bör, efter att ha svarat yes på följdfrågorna, laddade upp de moduler jag blev uppmanad att göra (coretemp max6650) och skrev in sensors kom följande upp:


coretemp-isa-0000
Adapter: ISA adapter
Core 0: +7.0°C (crit = +90.0°C)

coretemp-isa-0001
Adapter: ISA adapter
Core 1: +22.0°C (crit = +90.0°C)

Jag fick en känsla utav att något fattades, detta var ju inte den information jag var ute efter. Jag blev lite lost och försökte hitta lösningar på Google/bbs.archlinux.org. Efter en stunds sökande försökte jag tänka lite logiskt och göra om processen. Jag körde sensors-detect och läste den information jag fick, tydligen fattades det en modul för moderkortet vid namn NUVOTON W83677HG I. Äntligen något att gå på tänkte jag. Jag märkte att problemet var ganska vanligt. Jag hittade också en lösning som verkade vara väldigt mycket overkill för att se temperaturen i en widget, något jag egentligen skulle klara mig utan. Lösningen skulle resultera i att kompilera en modul till kärnan. Jag valde att inte göra det, istället tänkte jag att lösningen kanske var outdated och därför inte längre aktuell. Jag valde att testa att köra sudo modprobe w83627ehf för att se om min tanke stämde. Det visade det sig att jag hade rätt, skönt tänkte jag. kommandot sensors visade nu informationen jag var ute efter. Nu var det dags att fixa till min widget, jag skrev inte hela själv, men jag kortade ner den väldigt mycket och ändrade nästan allting. Slutresultatet:


-- CPU temp widget
tempwidget = widget({ type = "textbox" })
vicious.register(tempwidget, vicious.widgets.thermal,
function (widget, args)
if args[1] >= 75 and args[1] < 80 then
return "" .. theme.fg_temp2_widget .. "temp " .. col .. theme.fg_temp3_widget .. args[1] .. "C " .. col .. ""
else
return "" .. theme.fg_temp_widget .. "temp " .. col .. theme.fg_temp1_widget .. args[1] .. "C " .. col .. ""
end
end, 19, { "w83627ehf.656", "core"} )

Det största problemet jag hade i det här fallet var den sista raden. Originalet såg ut så här:
end, 19, “thermal_zone0″ )

thermal_zone används inte längre. /sys används istället för /proc och hwmon används istället för thermal_zone (det sistnämnda är åtminstone någonting jag har fått för mig). Till en början var jag inne och kollade runt i olika mappar efter det som ska motsvara tidigare /proc, något som tog tid men inte gav något alls. Jag hade tidigare kollat i mappen där vicious förvarar sina widgets och lite slött studerat thermal.lua. Något jag nu gjorde lite mer ingående. Jag blev intresserad av att veta vad som gömde sig under /sys/devices/platform som tillhörde “core”:

alex:~> ls /sys/devices/platform/
▕ drwxr-xr-x▏< hour│ 0B│coretemp.0
▕ drwxr-xr-x▏< hour│ 0B│coretemp.1
▕ drwxr-xr-x▏< hour│ 0B│i8042
▕ drwxr-xr-x▏< hour│ 0B│pcspkr
▕ drwxr-xr-x▏3 min │ 0B│power
▕ drwxr-xr-x▏< hour│ 0B│regulatory.0
▕ drwxr-xr-x▏< hour│ 0B│reg-dummy
▕ drwxr-xr-x▏< hour│ 0B│serial8250
▕ drwxr-xr-x▏< hour│ 0B│vesafb.0
▕ drwxr-xr-x▏< hour│ 0B│w83627ehf.656
▕ -rw-r--r--▏< hour│ 4K│uevent

w83627ehf.656 blev genast intressant, den påminde mycket om den modul jag tidigare aktiverade för att slutligen kunna se temperaturen i terminalen. Med denna information kunde jag fixa den sista raden i min widget och kan nu se temperaturen. Var det värt besväret? Jag vet inte, jag lärde mig en del och har hade ändå inget bättre för mig.