Clement "Clem" Lefebvre publikoval souhrn dění v Linux Mintu za srpen 2026. Aplikace XApp mají vlastní webovou stránku xapp-project.org. Představena byl čtečka EPUB s názvem Xepub a kalendář Clockenstein.
Byla vydána nová verze 3.2.6 svobodné aplikace pro úpravu a vytváření rastrové grafiky GIMP (GNU Image Manipulation Program). Přehled novinek v oznámení o vydání a v souboru NEWS na GitLabu. Nový GIMP je již k dispozici také na Flathubu.
Bylo vydáno Ubuntu 24.04.5 LTS, tj. páté opravné vydání Ubuntu 24.04 LTS s kódovým názvem Noble Numbat. Přehled novinek a oprav na poznámkách k vydání.
Švýcarsko testuje přechod z Microsoft 365 na FOSS, konkrétně balík openDesk (Wikipedie) od německé státní společnosti ZenDiS (Wikipedie), s cílem posílit digitální suverenitu.
V italském městě Pordenone probíhá LibreOffice Conference 2026. Zúčastnit se lze i online.
Svobodný (GPLv3) šachový engine Stockfish (Wikipedie) byl vydán ve verzi 19 (𝕏). Přehled novinek v příspěvku na blogu. Stockfish 19 je o 44 Elo silnější než Stockfish 18.
Byla vydána nová verze 1.13.0 dynamického programovacího jazyka Julia (Wikipedie) určeného zejména pro vědecké výpočty. Přehled novinek v příspěvku na blogu a v poznámkách k vydání. Aktualizována byla také dokumentace.
Organizátoři konference LinuxDays zveřejnili program letošního ročníku a spustili registraci návštěvníků. LinuxDays 2026 se uskuteční 3. a 4. října v areálu ČVUT v pražských Dejvicích, na Fakultě informačních technologií. Těšit se můžete na 70 přednášek a workshopů od 66 přednášejících. Konference bude rozdělena do pěti sálů s různou kapacitou. Vstup na LinuxDays je jako obvykle zdarma, stačí včas vyplnit registrační formulář. Opět je možné si na akci zakoupit oběd, ale je třeba to udělat předem, na místě už to nebude možné.
Google Chrome 153 byl prohlášen za stabilní. Nejnovější stabilní verze 153.0.8010.36 přináší řadu novinek. Podrobný přehled v poznámkách k vydání. Opraveno bylo 230 bezpečnostních chyb. Vylepšeny byly také nástroje pro vývojáře.
Open-source hra Shattered Pixel Dungeon (Wikipedie) byla vydána ve verzi 4.0.0. Přehled novinek v příspěvku na blogu.
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]);
Tiskni
Sdílej: