Portál AbcLinuxu, 1. května 2025 00:44
Něco jsem vyrobil. Koukněte se na to ;) Allintray v.0.9
V oznamovací oblasti (tray) zobrazí vytížení procesoru, zaplnění RAM, síťový provoz (tam a zpět), hlasitost (Master a PCM) a hodiny. To samý se trochu podrobněji zobrazí v bublině (tooltipu) po najetí krysou.
Po kliknutí na různé části se může spustit například nějaký task manager (gtaskmanager nebo xterm s htopem), alsamixer, výstup programu free v xmessage nebo nějaký kalendář (ccal v xmessage).
Scrollování nad políčky Master nebo PCM mění hlasitost příslušného kanálu. Kliknutí prostředním tlačítkem tento kanál ztlumí.
Takhle to vypadá. Je to všechno od not doprava. Ty noty jsou plugin do xmms.
Zkrojový kod je zde: tray.pl nebo ke stažení přímo tady. Uložte to třeba jako tray.pl
, nastavte tomu práva pro spuštění: chmod +x tray.pl
a spusťte: ./tray.pl
update: kvalitnejsi mirror: abclinuxu ;)
Napsáno je to v perlu a používá to Gtk2 takže jsou potřeba moduly Gtk2
a Gtk2::TrayIcon
.
Data to bere ze souborů /proc/stat a /proc/net/dev (jestli je máte jinde, přepište si to) a z programů free a amixer.
Možná by se to mohlo někomu hodit, nějakému uživateli evilwm ;) nebo jiného lehkého WM.
Hlavní důvod je ale aby mi někdo kdo umí perl (já to neumim) řekl "tohle máš blbě", "tohle se líp udělá takhle" a tak..
Tiskni
Sdílej:
package main; use Getopt::Long; # pouzitie: # $0 -d mem -D mix-path=/dev/mixer -D mem-size=64G GetOptions ( my $args = {}, 'enable-module|e=@s', 'disable-module|d=@s', 'define|D=%s', ); $args->{define}{'cpu-path'} ||= '/...'; my $modules = { cpu => 'Plugin::CPU', mem => 'Plugin::MEM', mix => 'Plugin::Mixer', }; for my $module (values %$modules) { $module = $module->new ($args->{define}); } ... package Plugin::CPU; use IO::File; sub new { my ($proto, $param) = @_; bless { fh => new IO::File ($param->{'cpu-path'}, 'r'), }; } sub process { my $self = shift; $self->{fh}->seek (0, 0); $self->{fh}->getline =~ ... # obsah terajsej sub cpu } package Plugin::MEM; ...
A nejdulezitejsi!subset, pche
Hehe, nechapuA nejdulezitejsi!subset, pcheosobne som zástanca superset-u
superset = nadmnožina ... aj gnome, aj kde (nech si user dokódi svoj vlastný plugin, ak nemá, čo práve chce)
ono, je také ťažké niečo naprogramovať? pár knižiek, pár príkladov, trocha dobrej vôle, a môžeme sa baviť aj o vašom výtvore
pri súčastnom stave knižníc to univerzálne nebude.Ale jo. Jde to i univerzalne. Ale dneska kazdej chytne python+qt a uz to tam masti. Ale pak to neni pro kazdyho. Viz napr. xbiff nebo i ten gkrellm (kdyz koukam na jeho zavislosti v gentoo s vypnutyma vsema flagama, tak tam nevidim kde, gnome, gtk+ ani qt).
ono, je také ťažké niečo naprogramovať? pár knižiek, pár príkladov, trocha dobrej vôle, a môžeme sa baviť aj o vašom výtvoreNa tuhle otazku existuji dve odpovedi. Odpoved "Ne, neni to tezke" odpovi programator. Odpoved "Ano, je to tezsi" odpovi admin. Ja jsem spis admin, takze prevazne bashuju na cmdline a ke grafice se nedostanu. Pokud uz bych neco delal v grafice, tak to bude taky v nejakym perlu nebo tak a bude to klasicky okno (ktery bude urcite taky navazany, kvuli ruznym modulum, na dalsi knihovny). Tady bych ale potreboval nejakou light verzi okna, kde se zobrazi jenom jeden nebo dva prvky (text+bar, etc). Mozna nejlip v C/C++ nebo tak za pouziti standardnich C knihoven a X knihoven. A tohle uz bohuzel nezvladnu. Jak jsem psal, vzal jsem si xbiff a ten jsem si doupravil pomoci check-commandu, ikon a zmenou velikosti. Jeste bych mozna dokazal nejak lehce upravit zdrojak xbiffu. Ale pripsat tam neco dalsiho, to asi sotva. Ale neslo mi o to tady nekoho nutit, aby to pro me napsal. Spis me zajimalo, jestli nekdo neco takovyho uz nema nebo jestli to nezna. Zkousel jsem ruzne wm* dockapps, ale velikosti ikony me zklamaly. Taky se tam nedaly napasovat vlastni hlaseni a testy. Tak jsem znasilnil xbiff.
$tray = Gtk2::TrayIcon->new("allintray");
prepsat na okno.. a jestli to chces doleva svisle tak asi HBox vymenit za VBox
jinak funguje to a otestovano to je v programu "trayer" To je myslim vykuchana "oznamovaci oblast" z panelu pro fluxbox nebo tak neco
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.