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í
×
    včera 01:11 | Nová verze

    Byl vydán Debian 13.6, tj. šestá opravná verze Debianu 13 s kódovým názvem Trixie a Debian 12.15, tj. poslední patnáctá opravná verze Debianu 12 s kódovým názvem Bookworm, k dispozici je LTS. Ř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
    10.7. 16:11 | Bezpečnostní upozornění

    V jádře Linux byla nalezena a v upstreamu již byla opravena kritická zranitelnost GhostLock aneb CVE-2026-43499. Lokálnímu uživateli umožňuje získat práva roota a také obejít kontejnerovou izolaci. Zranitelnost existovala v Linuxu 15 let, tj. od roku 2011, od Linuxu verze 2.6.39.

    Ladislav Hagara | Komentářů: 2
    10.7. 13:55 | IT novinky

    Evropská komise předběžně shledala, že návykový design aplikací Instagram a Facebook od americké společnosti Meta porušuje unijní nařízení o digitálních službách (DSA). Návykový design zahrnuje například takzvané nekonečné posouvání, automatické přehrávání videí, tzv. push notifikace, kdy aplikace uživatele vybízí k návratu do jejího prostředí, či vysoce personalizovaný algoritmus, který rychle pozná, co uživatele baví a snaží

    … více »
    Ladislav Hagara | Komentářů: 10
    10.7. 12:11 | Nová verze

    Byla vydána verze 1.97.0 programovacího jazyka Rust (Wikipedie). Podrobnosti v poznámkách k vydání. Vyzkoušet Rust lze například na stránce Rust by Example.

    Ladislav Hagara | Komentářů: 0
    10.7. 05:00 | IT novinky

    Švýcarská společnost Punkt. má nově v nabídce telefon Punkt. MC03. Telefon byl navržen ve Švýcarsku s důrazem na soukromí a digitální suverenitu a vyroben v Německu. V telefonu běží operační systém AphyOS (Apostrophy OS) založený na AOSP (Android Open Source Project) 15. Cena telefonu je 745 eur.

    Ladislav Hagara | Komentářů: 20
    10.7. 04:44 | Nová verze

    TypeScript (Wikipedie), tj. JavaScript rozšířený o statické typování a další atributy, byl vydán v nové verzi 7.0. Kompilátor byl kvůli výkonu přepsán z TypeScriptu do Go.

    Ladislav Hagara | Komentářů: 0
    9.7. 17:00 | IT novinky

    Europarlament podpořil pozměněnou verzi výjimky známé jako „chat control 1.0“ umožňující firmám skenovat soukromou komunikaci na internetu kvůli ochraně dětí před zneužitím. Pozměňovací návrhy přijaté europoslanci však počítají s tím, že z výjimky bude vyřazena šifrovaná komunikace. Výjimka přestala platit začátkem dubna poté, co se Evropský parlament a Rada EU nedokázaly shodnout na jejím prodloužení. Rada následně přijala

    … více »
    Ladislav Hagara | Komentářů: 12
    9.7. 04:44 | Bezpečnostní upozornění

    Nejnovější X.Org X server 21.1.24 a Xwayland 24.1.13 řeší 2 bezpečnostní chyby.

    Ladislav Hagara | Komentářů: 0
    9.7. 04:22 | Komunita

    Clement "Clem" Lefebvre publikoval souhrn dění v Linux Mintu za červen 2026. Vypíchnuta je vylepšená podpora Waylandu. Už není považována za experimentální. V příští verzi Linux Mintu, plánována je na Vánoce, bude běh Cinnamonu plně podporován na X11 i Waylandu. V květnu na vývoj Linux Mintu přispělo 611 dárců celkovou částkou 19 612 dolarů. Dalších 2 326 patronů přispělo na Patreonu celkovou částkou 5 334 dolarů.

    Ladislav Hagara | Komentářů: 4
    9.7. 04:00 | Bezpečnostní upozornění

    V Linuxu v KVM byla nalezena a v upstreamu již byla opravena kritická zranitelnost Januscape aneb CVE-2026-53359. Root na hostovaném počítači (virtuální stroj) může obejít izolaci a získat plnou kontrolu nad hostitelským systémem (DoS útok nebo vzdálené spuštění kódu s právy roota). Na obou hlavních architekturách – Intel i AMD. Zranitelnost v Linuxu existovala téměř 16 let (od srpna 2010 do června 2026).

    Ladislav Hagara | Komentářů: 0
    Které desktopové prostředí na Linuxu používáte?
     (10%)
     (7%)
     (2%)
     (17%)
     (31%)
     (4%)
     (6%)
     (2%)
     (16%)
     (25%)
    Celkem 2102 hlasů
     Komentářů: 30, poslední 3.4. 20:20
    Rozcestník

    Notifikace pro irssi

    22.3.2012 01:00 | Přečteno: 1216×

    Máte nějaké upozornění na nové zprávy ? Já už ano.

    Už je tomu pár let, kdy ke komunikaci používám protokol IRC. Po většinu času jsem k tomuto účelu používal program XChat, ale během posledního půl roku jsem přešel ke konzolové aplikaci irssi. Ta se mi okamžitě zalíbila, ale hrozně mi vadila jedna věc. Nemohl jsem přijít na to, jakým způsobem vyřešit upozornění na nové zprávy.

    Abych věci uvedl na pravou míru. Většině z nás statusbar v irssi zobrazuje čísla oken rozlišená barvičkami. Podle toho lze poznat, zda se v okně něco stalo, někdo napsal, nebo nám zde došla soukromá zpráva. Zdálo by se tedy, že nic dalšího nebude potřeba, jenže tohle přece není jediná aplikace, kterou používáme. Pokud tedy nemáme dostatečně velký monitor na to, abychom mohli mít irssi neustále zobrazené (jakože na notebooku máme asi smůlu), statusbar neuvidíme a co teď ? Mě osobně irssi běží ve screenu, ke kterému často ani není žádný emulátor terminálu připojen. O nových zprávách bych samozřejmě rád věděl co nejdříve a křišťálovou kouli nemám, takže jsem se musel zamyslet nad možným řešením.

    Co jsem zkoušel a vyloučil

    Nejprimitivnějším způsobem upozornění je zřejmě notify-send. Je to taková bublinka s textem, která vám vyskočí obvykle někde v rohu obrazovky. Každý ji určitě někdy viděl, ale pokud nevíte o čem mluvím, zkuste si příkaz notify-send Ahoj a hned vám bude vše jasné. Podle výsledků googlu toho využívá většina lidí, ale podle mě je to absolutně nepoužitelné. Při práci to musí děsně rušit a pokud vám dojde více zpráv za sebou, máte najednou skrytou půlku obrazovky. Další problém je, že okýnko po pár sekundách zmizí a pokud nejste u počítače v okamžik, kdy zpráva přijde, stejně máte smůlu. Podobně je na tom notifikace přehráním zvukového signálu. Podle mě nesmysl. Nevím jak vy, ale mě buďto hraje hudba, nebo mám mute. Dále jsem našel upozornění pro dzen2, ale to se mi taky nezdálo příliš vyhovující. Nejedná se totiž o upozornění jako takové, ale pouze o log, ve kterém se mohu dozvědět, kdo mi napsal naposled a co. Někomu vyhovuje, někomu ne, rozhodně to nikomu neberu. Podařilo se mi najít pár dalších návodů / skriptů, které měli podobný výsledek jako zmíněné varianty, ale ty jsem si ani neukládal.

    Mé řešení

    Divil jsem se, že nic z toho co jsem našel nesplňovalo mou představu. Přitom jsem neměl téměř žádná kritéria. Chtěl jsem vlastně jedinou věc a to kdykoliv se podívám do svého statusbaru (mám všechny důležité informace vypsané v okýnku dzen2, které je vždy vidět), budu jednoznačně vidět informaci ANO mám nepřečtenou zprávu, nebo NE nemám nepřečtenou zprávu. Připadá vám, že jsem toho chtěl zas tak moc?

    Jsem sice děsný bastlič, ale rozhodl jsem se spíchnout si skriptík, který to obstará. Jedná se o plugin pro irssi, jež ukládá do textového souboru seznam kanálů, na které vám přišla soukromá zpráva. Po přesunutí do takového kanálu, bude ze se seznamu odstraněn. Můžete si tedy nechat vypisovat seznam kanálů, celkový počet kanálů, hodnotu 1, nebo 0 do vašich statusbarů. Navíc je při nové zprávě oknu s irssi přidělena určitá „důležitost“ (v xmonadu se tomu tuším říká urgency). Tady záleží na tom, co používáte za window manager, případně taskbar. U mě v openboxu začne lehce blikat rámeček okna a vykreslí se červený rámeček kolem ikonky v tint2. Koukal jsem ve virtuálce na KDE4 a tam se to chová obdobně. Ostatní prostředí není v mých silách vyzkoušet a proto se můžete podělit, jak se to chová u vás.

    V TODO listu mám jedinou věc, ale zatím bohužel nevím jak se s ní vypořádat. Kdyby někdo tuto funkcičku dopsal, nebo mě nějak popostrčil, budu jedině rád. Problém je, pokud privátní zpráva dojde do aktuálně zobrazeného okna v irssi, ale terminál s irssi přitom není aktivní okno ve window manageru. V tomto případě se název kanálu se zprávou nezapíše do výstupního souboru. Je samozřejmě jednoduché jej zapsat, jenže absolutně nevím na jakou událost jej z výstupního souboru vymazat.

    Pokud se někdo rozhodnete vyzkoušet, pište prosím poznámky, připomínky, případně chyby na které narazíte. Po dokončení bych rád skriptík uveřejnil mezi ostatními na http://scripts.irssi.org/ .

    #!/usr/bin/perl
    #
    ## Description
    #   This script makes notifications for your irssi. It writes names of
    #   highlighted channels (somebody said your name, query, ..) to
    #   pipe file. Easily you can display name of this channels or count
    #   of them in your dzen, conky or other notification bars.
    #
    ## Usage
    #   Move this file into ~/.irssi/scripts
    #   Set variables $irssi_xwindow and $pipe_file
    #   Create file located in $pipe_file
    #   Install wmctrl tool (homepage http://tomas.styblo.name/wmctrl/)
    #   Load this script into irssi by /script load notify.pl
    #
    ## License
    #   This program is free software; you can redistribute it and/or modify
    #   it under the terms of the GNU General Public License as published by
    #   the Free Software Foundation; either version 2 of the License, or
    #   (at your option) any later version.
    #
    
    $VERSION = "0.1";
    
    %IRSSI =
    (
    	authors     => 'FrostyX [Jakub Kadlčík]',
    	contact     => 'frostyx@email.cz',
    	name        => 'notify.pl',
    	license     => 'GNU General Public License'
    );
    
    # Name of terminal emulator window with irssi
    # You can find this name using command xprop and click on window
    my $irssi_xwindow = 'irssi';
    
    # In this file will be located names of highlighted channels
    # There is separator \n (newline) between names
    my $pipe_file = '/tmp/irssi_pipe';
    
    # Use packages
    use strict;
    use Irssi;
    use POSIX;
    use vars qw($VERSION %IRSSI);
    
    # Hooks
    Irssi::signal_add('print text', 'notify');
    Irssi::signal_add('window changed', 'read');
    
    # This function captures all highlighted messages
    # @return void
    # @args WINDOW_REC, char *, char *
    sub notify()
    {
    	my ($dest, $text, $stripped) = @_;
    	my $server = $dest->{server};
    	my $window = Irssi::active_win()->{active}; # Active window
    
    	# Return if message isn't highlighted or query
    	return if (!(($dest->{level} & MSGLEVEL_HILIGHT) || ($dest->{level} & MSGLEVEL_MSGS)));
    
    	setWindowUrgency();
    
    	# Return if message is on active irssi window
    	return if (lc $window->{name} eq lc $dest->{target});
    
    	# Write highlighted channel to pipe
    	writeWindow($dest->{target}.'@'.$dest->{server}->{address});
    }
    
    # When we display channel with highlighted message, function will remove
    #    this channel from pipe
    # @return void
    sub read()
    {
    	my $window = Irssi::active_win()->{active}; # Active window
    	if($window->{data_level} == 3) # If window is highlighted
    	{
    		# Remove "dehighlighted" channel from pipe
    		removeWindow($window->{name}.'@'.$window->{server}->{address});
    	}
    }
    
    # Function will remove name of channel from pipe
    # @return void
    # @args string
    sub removeWindow()
    {
    	my ($window) = @_;
    	my @chans = getHighlightedWindows(); # All names of channels in pipe
    	my $newString = '';
    
    	# Generate new string of channels without channel from argument
    	foreach(@chans)
    	{
    		if($_ ne $window) # If it isn't channel from argument
    		{
    			$newString .= $_."\n"; # \n is separator between names
    		}
    	}
    	open FILE, ">", $pipe_file; # Write instead of current text in file
    	print FILE $newString;
    	close(FILE);
    }
    
    # Function will write name of channel to pipe
    # @return void
    # @args string
    sub writeWindow()
    {
    	my ($window) = @_;
    	my @chans = getHighlightedWindows(); # All names of channels in pipe
    
    	foreach(@chans)
    	{
    		# Return if we already have message on given channel
    		return if($_ eq $window);
    	}
    	open FILE, ">>", $pipe_file; # Write on end of file
    	print FILE $window."\n"; # \n is separator between names
    	close(FILE);
    }
    
    # Function will return array of channels found in pipe
    # @return string[]
    sub getHighlightedWindows()
    {
    	open FILE, $pipe_file;
    	my $strchans = '';
    
    	# Save all file into string
    	while (my $result = <FILE>) {
    		#chomp($result); # Remove newline character
    		$strchans .= $result;
    	}
    	close(FILE);
    
    	# Split string into array
    	my @chans = split("\n", $strchans);
    	return @chans;
    }
    
    # Returns name of active window in X11
    # @return string
    sub getActiveXWindow()
    {
    	my $win = `echo -n \$(wmctrl -l | grep -E '^0x0*'\$(xprop -root | grep "_NET_ACTIVE_WINDOW(WINDOW)"  | awk -F ' window id # 0x' '{print \$2}') | awk '{for (i=4;i<=NF;i++) {printf "%s%s",sep,\$i;sep=" "}}')`;
    	return $win;
    }
    
    # Return true if terminal emulator with irssi is active window
    # @return bool
    sub isIrssiXActive()
    {
    	return getActiveXWindow() eq $irssi_xwindow ? 1 : 0;
    }
    
    # Sets urgency (attention) to terminal emulator with irssi
    # If you do not want notification via urgency, just type return 0;
    #    above the system call
    # @return void
    sub setWindowUrgency()
    {
    	system("wmctrl -r $irssi_xwindow -b add,demands_attention");
    }
    
    # EOF
    

    Jak pracovat s výstupním souborem

    Cestu k souboru si změňte dle libosti

    Počet kanálů, kde mě shánějí

    cat /tmp/irssi_pipe | wc -l |tr -d '\n'

    Informace zda mám novou zprávu, aneb ANO/NE

    [ -s /tmp/irssi_pipe ] && echo 1 || echo 0

           

    Hodnocení: 100 %

            špatnédobré        

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

    Komentáře

    Vložit další komentář

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