abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    dnes 07:44 | Zajímavý software

    Pokud je zranitelnost Linuxu v nepoužívaném jaderném modulu, lze ji jednoduše vyřešit zakázáním automatického načítání tohoto konkrétního zranitelného modulu. Projekt ModuleJail si klade za cíl zvýšit bezpečnost Linuxu zakázáním automatického načítání všech nepoužívaných jaderných modulů. Jedná se o skript, který dá všechny nepoužívané jaderné moduly na blacklist (/etc/modprobe.d/modulejail-blacklist.conf).

    Ladislav Hagara | Komentářů: 0
    včera 16:11 | Zajímavý článek

    Odborníci z Penn State University zkoumají způsob ukládání informací na lepicí pásku. Principiálně by podle nich bylo možné kombinací odlepení a zpětného přilepení dosáhnout uložení informace, kterou opětovným odlepením dokážou přečíst. Výhodou je, že způsob uložení i přečtení je čistě mechanický. Zde o tom referují ve volně dostupném článku. Zajímavé bude sledovat zda se jim v rámci výzkumu podaří prokázat použitelnost i v jiné než

    … více »
    karkar | Komentářů: 8
    včera 13:00 | Zajímavý projekt

    Na GitHubu byl publikován reprodukovatelný návod, jak rozchodit Adobe Lightroom CC na Linuxu a Wine. Návod byl vytvořený pomocí AI Claude Code.

    Ladislav Hagara | Komentářů: 0
    včera 12:33 | Humor

    Pokud by někdo potřeboval Wayland kompozitor uvnitř počítačové hry Minecraft, aby mohl zobrazovat okna desktopových aplikací přímo v herním prostředí, může sáhnout po Waylandcraftu. Ukázka na YouTube.

    Ladislav Hagara | Komentářů: 2
    17.5. 23:55 | Zajímavý článek

    Uroš Popović v krátkém článku vysvětluje, co jsou emulátor terminálu, TTY a shell a jaké jsou mezi nimi rozdíly. Jde o první díl seriálu na jeho novém webu Linux Field Guide věnovaném nízkoúrovňové práci s linuxovými systémy.

    |🇵🇸 | Komentářů: 0
    16.5. 22:33 | Nová verze

    Byl vydán Debian 13.5, tj. pátá opravná verze Debianu 13 s kódovým názvem Trixie a Debian 12.14, tj. čtrnáctá opravná verze Debianu 12 s kódovým názvem Bookworm. Řešeny jsou především bezpečnostní problémy, ale také několik vážných chyb. Instalační média Debianu 13 a Debianu 12 lze samozřejmě nadále k instalaci používat. Po instalaci stačí systém aktualizovat.

    Ladislav Hagara | Komentářů: 0
    15.5. 12:55 | Nová verze

    CiviCRM (Wikipedie) bylo vydáno v nové verzi 6.14.0. Podrobnosti o nových funkcích a opravách najdete na release stránce. CiviCRM je robustní open-source CRM systém navržený speciálně pro neziskové organizace, spolky a občanské iniciativy. Projekt je napsán v jazyce PHP a licencován pod GNU Affero General Public License (AGPLv3). Český překlad má nyní 45 % přeložených řetězců a přibližuje se milníku 50 %. Potřebujeme vaši pomoc, abychom se dostali dál. Pokud máte chuť přispět překladem nebo korekturou, přidejte se na platformu Transifex.

    jardaIT | Komentářů: 3
    15.5. 12:22 | Bezpečnostní upozornění

    Další lokální zranitelností Linuxu je ssh-keysign-pwn. Uživatel si může přečíst obsah souborů, ke kterým má právo ke čtení pouze root, například soubory s SSH klíči nebo /etc/shadow. V upstreamu již opraveno [oss-security mailing list].

    Ladislav Hagara | Komentářů: 2
    14.5. 17:22 | Komunita

    Singularity (YouTube) je nejnovější otevřený film od Blender Studia. Jedná se o jejich první 4K HDR film.

    Ladislav Hagara | Komentářů: 22
    14.5. 16:55 | Zajímavý software

    Vyšla hra Život Není Krásný: Poslední Exekuce (Steam, ProtonDB). Kreslená point & click adventura ze staré školy plná černého humoru a nekorektního násilí. Vžijte se do role zpustlého exekutora Vladimíra Brehowského a projděte s ním jeho poslední pracovní den. Hra volně navazuje na sérii Život Není Krásný.

    Ladislav Hagara | Komentářů: 32
    Které desktopové prostředí na Linuxu používáte?
     (13%)
     (8%)
     (2%)
     (14%)
     (31%)
     (4%)
     (6%)
     (3%)
     (16%)
     (26%)
    Celkem 1651 hlasů
     Komentářů: 30, poslední 3.4. 20:20
    Rozcestník

    Awesome wm a umistovani oken

    14.10.2011 22:25 | Přečteno: 1341× | poslední úprava: 14.10.2011 22:48

    V mém posledním zveřejněném desktopu jsem si povzdechl nad tím, že mi Awesome v3.4.10 umísťuje firefox při plovoucím režimu o pár pixel přes horní wibox.

    Nebudu tu příliš rozvádět jak to funguje, protože jsem se moc o problematiku signálů nezajímal - nebyl čas, tak tedy:

    client.add_signal("manage", function (c, startup)

    if not startup then
    -- Set the windows at the slave,
    -- i.e. put it at the end of others instead of setting it master.
    awful.client.setslave(c)

    -- Put windows in a smart way, only if they does not set an initial position.
    if not c.size_hints.user_position and not c.size_hints.program_position then

    awful.placement.no_offscreen(c)
    awful.placement.no_overlap(c)
    end
    end
    end)

    Tato funkce/signál se mi stará o nové okna. V podstatě jde o to správně umístit okno na viditelnou plochu obrazovky a také aby nedošlo k překrytí. Hlavně maximalizovaný floating firefox či codeblocks o pár px překryly horní wibox o výšce 14px. Zjistil jsem, že za to může funkce no_offscreen() ve které byla chyba (feature?) v nastavování pozice okna v případě, že přesahuje maximální viditelnou šířku / výšku :

    function no_offscreen(c)
    local c = c or capi.client.focus
    local geometry = c:geometry()
    local border = c.border_width
    local screen_geometry = capi.screen[c.screen].workarea

    if geometry.x + geometry.width + 2*border > screen_geometry.x + screen_geometry.width then
    -- geometry.x = screen_geometry.x + screen_geometry.width - geometry.width -- original , chybi odecet borderu
    geometry.x = screen_geometry.x + screen_geometry.width - (geometry.width - 2*border)
    elseif geometry.x < screen_geometry.x then
    geometry.x = screen_geometry.x
    end

    if geometry.y + geometry.height + border > screen_geometry.y + screen_geometry.height then -- proc jen 1x border? radej nebudu patrat
    -- geometry.y = screen_geometry.y + screen_geometry.height - geometry.height -- to same chybi border odecet
    geometry.y = screen_geometry.y + screen_geometry.height - (geometry.height- 2*border)
    elseif geometry.y < screen_geometry.y then
    geometry.y = screen_geometry.y
    end
    -- c:geometry(geometry) -- v originale chybi return wtf?
    return c:geometry(geometry) -- uprava luta
    end

    Jak je vidět, úprava byla elementární i pro člověka co programuje v C embedded a Lua umí jen editovat z rychlíku :-)

    Doufám, že to třeba někdy někomu pomůže a doufám, že se kvůli této úpravě neobjeví další chyba / feature :-D

    A ještě dotaz pro odborníky v Awesome: Je tohle na bugreport ? Nějak nemám čas zjišťovat, jestli to není jen můj osobní workaround a ve výsledku bych se třeba jen ztrapnil :-D


    Jak jsem teď dodatečně zjistil, chyba bude ještě někde jinde, protože je nutno donutit okno větší, než je plocha, aby nepřesahovalo. To by ovšem měla řešit funkce no_overlap..patrně to ale neřeší dokonale, neboť firefox o pár pixel přesahuje spodek obrazovky a pomůže až toggle maximize..

           

    Hodnocení: 100 %

            špatnédobré        

    Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

    Komentáře

    Vložit další komentář

    luta avatar 14.10.2011 22:56 luta | skóre: 20 | blog: muj_blok | Prostějov/Brno
    Rozbalit Rozbalit vše Re: Awesome wm a umistovani oken

    ps mám to celé blbě, žádný bugreport nebude :-D ale štvě mě to :-(

    juraj-bit avatar 14.10.2011 23:25 juraj-bit | skóre: 14 | blog: X BLOG X | Bratislava
    Rozbalit Rozbalit vše Re: Awesome wm a umistovani oken
    Ja to mám vpodstate tak isto (Debian Wheezy) placement.lua :
    function no_offscreen(c)
        local c = c or capi.client.focus
        local geometry = c:geometry()
        local border = c.border_width
        local screen_geometry = capi.screen[c.screen].workarea
    
        if geometry.x + geometry.width + 2*border > screen_geometry.x + screen_geometry.width then
            geometry.x = screen_geometry.x + screen_geometry.width - geometry.width
        elseif geometry.x < screen_geometry.x then
            geometry.x = screen_geometry.x
        end
    
        if geometry.y + geometry.height + border > screen_geometry.y + screen_geometry.height then
            geometry.y = screen_geometry.y + screen_geometry.height - geometry.height
        elseif geometry.y < screen_geometry.y then
            geometry.y = screen_geometry.y
        end
    
        c:geometry(geometry)
    end
    

    Nepozorujem prekrytie horného panela ami presah okna cez dolný okraj pri maximalizovaní Firefoxu. Fullscreen mám zakomentovaný.

    luta avatar 14.10.2011 23:38 luta | skóre: 20 | blog: muj_blok | Prostějov/Brno
    Rozbalit Rozbalit vše Re: Awesome wm a umistovani oken

    já nevím přesně jak to popsat. Nakonec to vypadá, že tam chyběl jen ten return v té funkci. Dále jsem si dopsal funkci, která mi testuje velikost okna a pokud je okno zaručeně větší jak obrazovka, tak ho zmenší. Tohle asi ani jedna z těch funkcí nedělala. Takže výsledek vypadá nějako takto :

    function w_resize(c)
    local geometry = c:geometry()
    local border = c.border_width
    local screen_geometry = screen[c.screen].workarea

    if geometry.width + 2*border > screen_geometry.width then
    geometry.width = screen_geometry.width
    end
    if geometry.height + 2*border > screen_geometry.height then
    geometry.height = screen_geometry.height
    end

    return c:geometry(geometry)
    end


    -- {{{ Signals
    -- Signal function to execute when a new client appears.
    client.add_signal("manage", function (c, startup)

    w_resize(c)

    if not startup then
    -- Set the windows at the slave,
    -- i.e. put it at the end of others instead of setting it master.
    awful.client.setslave(c)

    -- Put windows in a smart way, only if they does not set an initial position.
    if not c.size_hints.user_position and not c.size_hints.program_position then

    awful.placement.no_offscreen(c)
    awful.placement.no_overlap(c)
    end
    end
    end)

    tak nějak to zatím funguje, než zase najdou nějakou chybu

    juraj-bit avatar 14.10.2011 23:58 juraj-bit | skóre: 14 | blog: X BLOG X | Bratislava
    Rozbalit Rozbalit vše Re: Awesome wm a umistovani oken
    Tá fukcia w_resize(c) sa bude niekedy možno hodiť, zatial som ju nepotreboval.
    luta avatar 15.10.2011 00:02 luta | skóre: 20 | blog: muj_blok | Prostějov/Brno
    Rozbalit Rozbalit vše Re: Awesome wm a umistovani oken

    trochu je v ní pořád bordel s těma borderama, protože netuším, jak s tím awesome počítá (jestli je už v geometry započítano), ale funguje to. Tenhle detail mě opravdu dlouho štval

    juraj-bit avatar 15.10.2011 00:25 juraj-bit | skóre: 14 | blog: X BLOG X | Bratislava
    Rozbalit Rozbalit vše Re: Awesome wm a umistovani oken

    Toto

    awful.client.setslave(c)

    mám zakomentované

    -- awful.client.setslave(c)
    luta avatar 15.10.2011 00:32 luta | skóre: 20 | blog: muj_blok | Prostějov/Brno
    Rozbalit Rozbalit vše Re: Awesome wm a umistovani oken

    setslave startuje nove okno jako slave a ne master. to mam tak schvalne

    juraj-bit avatar 15.10.2011 00:38 juraj-bit | skóre: 14 | blog: X BLOG X | Bratislava
    Rozbalit Rozbalit vše Re: Awesome wm a umistovani oken
    Pozeral som najnovšte témy a čistá práca so signálmi bez commentov vyzerá takto:
    -- SIGNALS
    client.add_signal("manage", function (c, startup)
    	if not startup then
    		if not c.size_hints.user_position and not c.size_hints.program_position then
    			awful.placement.no_overlap(c)
    			awful.placement.no_offscreen(c)
    		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)
    
    
    Ešte sa mi nestalo, aby sa mi niektoré okno zobrazilo nekorektne, skúšal som všetky graf. programy, ktoré mám nainštalované, až teda na Gimp, ktorý sa mi otvára maximalizovaný a ovládacie panely mi prekrýva hlavné okno, vpodstate mi to ale tak aj vyhovuje, lebo pár pixelov z nich je vidieť..
    luta avatar 15.10.2011 00:50 luta | skóre: 20 | blog: muj_blok | Prostějov/Brno
    Rozbalit Rozbalit vše Re: Awesome wm a umistovani oken

    ja mel problem hlavne s floating layoutem. kazdopadne diky. btw gimp mi taky konecne startuje korektne. protoze mam wibox jen 14px vysoky tak nemam rad kdyz mi ho neco prekryva

    Založit nové vláknoNahoru

    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.