Byla vydána (𝕏) nová major verze 17 softwarového nástroje s webovým rozhraním umožňujícího spolupráci na zdrojových kódech GitLab (Wikipedie). Představení nových vlastností i s náhledy a videi v oficiálním oznámení.
Sovereign Tech Fund, tj. program financování otevřeného softwaru německým ministerstvem hospodářství a ochrany klimatu, podpoří vývoj FFmpeg částkou 157 580 eur. V listopadu loňského roku podpořil GNOME částkou 1 milion eur.
24. září 2024 budou zveřejněny zdrojové kódy přehrávače Winamp.
Google Chrome 125 byl prohlášen za stabilní. Nejnovější stabilní verze 125.0.6422.60 přináší řadu oprav a vylepšení (YouTube). Podrobný přehled v poznámkách k vydání. Opraveno bylo 9 bezpečnostních chyb. Vylepšeny byly také nástroje pro vývojáře.
Textový editor Neovim byl vydán ve verzi 0.10 (𝕏). Přehled novinek v příspěvku na blogu a v poznámkách k vydání.
Byla vydána nová verze 6.3 živé linuxové distribuce Tails (The Amnesic Incognito Live System), jež klade důraz na ochranu soukromí uživatelů a anonymitu. Přehled změn v příslušném seznamu. Tor Browser byl povýšen na verzi 13.0.15.
Dnes ve 12:00 byla spuštěna první aukce domén .CZ. Zatím největší zájem je o dro.cz, kachnicka.cz, octavie.cz, uvycepu.cz a vnady.cz [𝕏].
JackTrip byl vydán ve verzi 2.3.0. Jedná se o multiplatformní open source software umožňující hudebníkům z různých částí světa společné hraní. JackTrip lze instalovat také z Flathubu.
Patnáctý ročník ne-konference jOpenSpace se koná 4. – 6. října 2024 v Hotelu Antoň v Telči. Pro účast je potřeba vyplnit registrační formulář. Ne-konference neznamená, že se organizátorům nechce připravovat program, ale naopak dává prostor všem pozvaným, aby si program sami složili z toho nejzajímavějšího, čím se v poslední době zabývají nebo co je oslovilo. Obsah, který vytváří všichni účastníci, se skládá z desetiminutových
… více »Program pro generování 3D lidských postav MakeHuman (Wikipedie, GitHub) byl vydán ve verzi 1.3.0. Hlavní novinkou je výběr tvaru těla (body shapes).
Adresa tématu či pozadí: http://interfacelift.com/wallpaper/downloads/date/widescreen/
Pozadí je ve skutečnosti generováno dynamicky (Perl + ImageMagic) každých pět minut náhodným výběrem dvou širokoúhlých obrázků z databáze vytvořené z InterfaceLift.com.
Gnome Shell rozšíření:
Tiskni Sdílej:
Je to starý kód, šlo by to napsat lépe, ale funguje to.
#!/usr/bin/env perl use strict; use warnings; use utf8; use File::Copy; use File::Temp qw/ tempfile /; binmode(STDIN, "utf8"); binmode(STDOUT, "utf8"); binmode(STDERR, "utf8"); use File::Spec; # Výpis informací o použití programu. sub print_help { my $exit_code = shift @_; $exit_code = 1 unless $exit_code; print STDERR "Použití:\n"; print STDERR " $0 <adresář_s_obrázky> <cílový_soubor_s_tapetou>\n"; exit $exit_code; } sub get_full_path { my $arg = shift @_; return File::Spec->canonpath(File::Spec->rel2abs($arg)); } # # Main # my ($wdir, $wfilelink, $wfile, $wfileold) = (undef, undef, undef, undef); unless (($#ARGV + 1) == 2 and -d $ARGV[0] and -l $ARGV[1]) { print_help; } else { $wdir = get_full_path($ARGV[0]); $wfilelink = get_full_path($ARGV[1]); } if (-f "$wfilelink.1") { $wfileold = "$wfilelink.1"; $wfile = "$wfilelink.2"; } else { $wfileold = "$wfilelink.2"; $wfile = "$wfilelink.1"; } my $pid = `pgrep gnome-session`; chomp $pid; my $dbus = `grep -z "DBUS_SESSION_BUS_ADDRESS" "/proc/$pid/environ" 2>/dev/null`; chomp $dbus; $dbus =~ s/^DBUS_SESSION_BUS_ADDRESS=//g; exit if ($dbus =~ /^\s*$/); opendir(WDIR, $wdir) || die("Nezdrařilo se čtení obsahu adresáře $wdir: $!"); my @wdircontent = grep { $_ !~ /^(\.|\.\.)$/ && -f "$wdir/$_" } readdir(WDIR); closedir(WDIR); my $randomwfile1 = get_full_path(File::Spec->join($wdir, $wdircontent[int(rand($#wdircontent + 1))])); my $randomwfile2 = get_full_path(File::Spec->join($wdir, $wdircontent[int(rand($#wdircontent + 1))])); my ($tmpfile1, $tmpfilename1) = tempfile(UNLINK => 1, SUFFIX => '.png') or die "$!"; my ($tmpfile2, $tmpfilename2) = tempfile(UNLINK => 1, SUFFIX => '.png') or die "$!"; #system('convert', "$randomwfile1", '-quality', '100', '-resize', 'x1200', '-gravity', 'center', '-crop', '1920x1200+0+0', "$tmpfilename1") == 0 system('convert', "$randomwfile1", '-quality', '100', '-resize', 'x1600', '-gravity', 'center', '-crop', '2560x1440+0+0', "$tmpfilename1") == 0 or die "Convert 1 failed: $!"; system('convert', "$randomwfile2", '-quality', '100', '-resize', 'x1200', '-gravity', 'center', '-crop', '1600x1200+0+0', "$tmpfilename2") == 0 or die "Convert 2 failed: $!"; system('montage', "$tmpfilename1", "$tmpfilename2", '-quality', '100', '-background', 'black', '-mode', 'Concatenate', '-gravity', 'SouthWest', '-tile', 'x1', "$wfile") == 0 or die "Montage failed: $!"; open(INFO, ">:encoding(UTF-8)", "/tmp/wallpaper-info.txt") or die("open() failed: $!"); print INFO "left picture: $randomwfile1\n" ."right picture: $randomwfile2\n"; close(INFO); unlink "$wfileold" if (-f "$wfileold"); unlink "$wfilelink" if (-l "$wfilelink"); symlink("$wfile", "$wfilelink"); $wfile =~ s/'/'\\''/g; # Aby to prošlo v následujícím příkazu, pokud je ve jméně souboru apostrof. #system('export DBUS_SESSION_BUS_ADDRESS='."'$dbus'".'; gsettings set org.gnome.desktop.background picture-uri '."'$wfile'"); system('export DBUS_SESSION_BUS_ADDRESS=$(grep -z "DBUS_SESSION_BUS_ADDRESS" "/proc/$(pgrep gnome-session)/environ" | cut -d= -f2-); gsettings set org.gnome.desktop.background picture-uri '."'$wfile'");
Je to nastaveno na dvoumonitorovou konfiguraci: vlevo 2560×1440 a vpravo 1600×1200 zarovnaný na spodní okraj levého monitoru.
V noci jsem si ještě vzpomněl, že vlastně ten skript nepůjde spustit na místě, kde to ještě není nachystaný ten symlink (kvůli prodlevě při generování nového obrázku, kdy by nebyl soubor s tapetou dobře vytvořený, se obrázek střídavě generuje do dvou souborů a po vygenerování se jen přesměruje symlink, aby se plynule bez prodlev zobrazila nová tapeta), takže před případným použitím doporučuji aplikovat tenhle patch:
--- a/wallpaper-random-change.pl 2016-01-14 09:37:20.597823140 +0100 +++ b/wallpaper-random-change.pl 2016-01-14 09:37:32.513515615 +0100 @@ -38,7 +38,7 @@ my ($wdir, $wfilelink, $wfile, $wfileold) = (undef, undef, undef, undef); -unless (($#ARGV + 1) == 2 and -d $ARGV[0] and -l $ARGV[1]) { +unless (($#ARGV + 1) == 2 and -d $ARGV[0] and (-l $ARGV[1] or not -e $ARGV[1])) { print_help; } else { $wdir = get_full_path($ARGV[0]);