Skip to main content
openSUSE's Geeko chameleon's head overlayed on a cell-shaded planet Earth, rotated to show the continents of Europe and Africa

Welcome to Planet openSUSE

This is a feed aggregator that collects what the contributors to the openSUSE Project are writing on their respective blogs
To have your blog added to this aggregator, please read the instructions

a silhouette of a person's head and shoulders, used as a default avatar

«El Activo Eres Tú» de Carles Tamayo, nuevo evento organizado por GNU/Linux València

«El Activo Eres Tú» de Carles Tamayo, nuevo evento organizado por GNU/Linux València

Me complace presentaros un nuevo evento de la Asociación sin Ánimo de Lucro GNU/Linux València que siguen sus actividades este 2026 con una jornada que nos hará reflexionar sobre la gran verdad de que si una empresa te da algo gratis es que el producto eres tú.

En palabras de los organizadores:

17:00 – Primer, un Taller d’ajuda GNU/Linux i més 🛠

¿Vols fer el salt a GNU/Linux? ¿T’has decidit a deixar arrere Windows o Mac però no saps per on començar? ¿Ja uses Linux però alguna configuració se’t resistix?
En la nostra Install Party et donem un cop de mà. No importa el teu nivell d’experiència: des de principiants fins a usuaris avançats, tothom és benvingut. Porta el teu equip i ens posem mans a l’obra.

A partir de les 17:00 podràs vindre a:
Instal·lar GNU/Linux en el teu ordinador 🔧 (Recorda: ¡fes una còpia de seguretat de les teues dades més valuoses primer! 💾)Aprendre a bloquejar anuncis i rastrejadors en el teu mòbil 🛡
Descobrir i instal·lar aplicacions lliures i conéixer els seus avantatges enfront del programari privatiu 🔄
Explorar xarxes socials federades i mitjans de comunicació alternatius 🌐
Resoldre dubtes o problemes tècnics del teu sistema actual 🐧

18:30 – Debat/col·loqui sobre El Activo Eres Tú 🛡🔒
Hages vist o no el documental de Tamayo, en la vesprada del divendres 31 reproduirem les parts més rellevants i comentarem i debatrem la rellevància de tots els temes exposats… ¡serà molt interessant i participatiu!
És una oportunitat molt interessant per a vindre a preguntar els teus dubtes, exposar idees, alternatives… ¡l’aprenentatge en col·lectiu sempre és més enriquidor! ❤

17:00 – Primero, un Taller de ayuda GNU/Linux y más 🛠
¿Quieres dar el salto a GNU/Linux? ¿Te has decidido a dejar atrás Windows o Mac pero no sabes por dónde empezar? ¿Ya usas Linux pero alguna configuración se te resiste?
En nuestra Install Party te echamos una mano. No importa tu nivel de experiencia: desde principiantes hasta usuarios avanzados, todo el mundo es bienvenido. Trae tu equipo y nos ponemos manos a la obra.

A partir de las 17:00 podrás venir a:
Instalar GNU/Linux en tu ordenador 🔧 (Recuerda: ¡haz una copia de seguridad de tus datos más valiosos primero! 💾)
Aprender a bloquear anuncios y rastreadores en tu móvil 🛡
Descubrir e instalar aplicaciones libres y conocer sus ventajas frente al software privativo 🔄
Explorar redes sociales federadas y medios de comunicación alternativos 🌐
Resolver dudas o problemas técnicos de tu sistema actual 🐧

18:30 – Debate/coloquio sobre El Activo Eres Tú 🛡🔒
Hayas visto o no el documental de Tamayo, en la tarde del viernes 31 reproduciremos las partes más relevantes y comentaremos y debatiremos la relevancia de todos los temas expuestos… ¡será muy interesante y participativo!
Es una oportunidad muy interesante para venir a preguntar tus dudas, exponer ideas, alternativas… ¡el aprendizaje en colectivo siempre es más enriquecedor! ❤

¡Recuerda! 🧠

«El Activo Eres Tú» de Carles Tamayo, nuevo evento organizado por GNU/Linux València

Más información: GNU/Linux València

¡Únete a GNU/Linux València!

Taller de instalación GNU/Linux (¡y más!)– nuevo evento organizado por GNU/Linux València

Aprovecho para recordar que desde hace unos meses, los chicos de GNU/Linux Valencia ya tienen su menú propio en el blog, con lo que seguir sus eventos en esta humilde bitácora será más fácil que nunca, y así podréis comprobar su alto nivel de actividades que realizan que destacan por su variedad.

Y que además, GNU/Linux València creció y se ha convertió en asociación. Así que si buscas una forma de colaborar con el Software Libre, esta asociación puede ser tu sitio. ¡Te esperamos!

La entrada «El Activo Eres Tú» de Carles Tamayo, nuevo evento organizado por GNU/Linux València se publicó primero en KDE Blog.

a silhouette of a person's head and shoulders, used as a default avatar

Evaluating TOON in a Real-World Scenario

Evaluating TOON in a Real-World Scenario

Token-Oriented Notation (abbreviated as TOON) is the concept of rewriting JSON in such a way that fewer characters, and thus fewer tokens, are generated. The concept is explained in more detail at https://toonformat.dev/, and a simple example is shown below. When querying the systemd-mcp server for all inactive services on a system, the output without TOON is as follows:

{
  "users": [
    { "id": 1, "name": "Alice", "role": "admin" },
    { "id": 2, "name": "Bob", "role": "user" }
  ]
}

This representation, which uses 119 characters, is reduced to 53 characters when using TOON:

users[2]{id,name,role}:
  1,Alice,admin
  2,Bob,user

See also the systemd example at the end of this post.

Because token savings are a direct way to reduce AI inference costs, improve response times (by decreasing latency), and allow better utilization of the context window, this approach seems like an easy win. Still, changing the fundamental response format of the MCP server may also have downsides. Therefore, I decided to perform some real-world experiments to determine if there are any downsides, the most severe of which would be incorrect responses from the LLM or an increased number of tool calls that nullify the token savings.

MCP Server and Implementation

As I was working on the systemd-mcp server (https://github.com/openSUSE/systemd-mcp), I decided to use this project as a base.

Since the standard Go implementation of MCP (https://github.com/modelcontextprotocol/go-sdk) does not support TOON yet, I used toon-context-mcp (https://github.com/aj-geddes/toon-context-mcp). The integration is relatively straightforward: the primary payload of an MCP tool response is a text field containing the internal structure marshaled as JSON. Thus, this text field is now marshaled using TOON, while the outer JSON structure used for communication between the MCP server and client remains intact.

Testbed

Creating the testbed was slightly more involved and required some refinement. First, the MCP server requires a real, live-running systemd process to connect to. A reproducible and secure solution is to run it inside a virtual machine (VM). The OpenTofu (open-source Terraform) configuration, available at https://github.com/mslacken/EvalToon/blob/main/tofu/leap-cloud.tf, provisions an openSUSE Tumbleweed cloud image that is configured via cloud-init.

A notable side quest was deploying the systemd-mcp binary to the VM. Compiling it on the VM itself would consume excessive CPU cycles and time, and using the RPM package was not viable because the TOON changes had not been pushed upstream yet. The canonical way to copy a binary to a VM would simply be to copy the file using scp. However, I chose not to use this approach because the SSH server was disabled, and I wanted to assign fixing the SSH service as a task for the LLM itself. This left several possibilities (among others):

  • Using a 9p or similar shared filesystem
  • Using a read-only filesystem containing only the binary

Since the 9p solution requires absolute paths in the cloud-init configuration, I chose to create a second virtual disk containing the pre-compiled binary. Upon booting the VM, the setup script uses dd to dump the binary into the root filesystem.

The setup script also stopped the SSH service, creating the broken configuration that serves as our “FIX” task testbed.

Agent

To connect the MCP server to the LLM, which was hosted on a remote Ollama instance, I used the Google Agent Development Kit (ADK) (https://adk.dev) to manage the agent execution loops.

Although ADK supports external logging, it can also log events to a local SQLite database. This database is critical for our analysis, allowing us to extract the relevant metrics: the number of prompt (input) tokens presented to the LLM, candidate (output) tokens generated by the LLM, the number of tool calls, and the total number of Ollama API calls.

LLM

The external Ollama instance ran a gemma4 model with 31.3B parameters and Q4_K_M quantization, with a temperature of 1.0 and a context window of 131,072 tokens.

Experiments

The following three queries were presented to the LLM:

  • “Check if sshd is running” (labeled as CHECK)
  • “List me running services on the system and which services can be started” (labeled as LIST)
  • “I can’t login, fix this!” (labeled as FIX)

The first two tasks are relatively simple, primarily establishing baseline performance and token usage. In contrast, the final query (FIX) requires a multi-step troubleshooting approach with several tool calls, testing how TOON performs in a complex, real-world agentic scenario.

For each query, I conducted 30 independent runs with and without TOON enabled.

Results

The results are summarized in the table below:

Query Mean Prompt Tokens Median Prompt Tokens Mean Generated Tokens Mean Tool Calls
CHECK 10,621 11,793 258 1.70
CHECK_TOON 10,337 11,755 239 1.63
LIST 10,827 12,333 1,747 2.07
LIST_TOON 11,846 12,364 1,751 2.10
FIX 36,738 26,735 871 6.63
FIX_TOON 32,466 26,816 766 5.97

As can be seen from the table, using TOON reduces both the prompt tokens presented to the LLM and the candidate tokens generated by it. It is somewhat surprising that using TOON consistently leads to fewer generated tokens, suggesting a trend where the length of the LLM’s output correlates with the volume of the input context.

For the simple query (CHECK), where the LLM is only tasked with checking if SSH is running, using TOON does not yield a significant difference. This is because the vast majority of the tokens are consumed by the system prompt and the schemas/descriptions of the available tools.

For the service listing query (LIST), which outputs a large volume of systemd units, TOON performed slightly worse. This was due to a minor increase in the mean number of tool calls during TOON runs, which subsequently increased both prompt and generated tokens.

Number of tool and Ollama calls of the FIX task with some outliers

Figure 1a: Number of tool and Ollama calls of the FIX task (with outliers)

Number of tool and Ollama calls of the FIX_TOON task without outliers

Figure 1b: Number of tool and Ollama calls of the FIX_TOON task (without outliers)

Number of generated tokens for FIX where outliers are visible

Figure 2a: Number of generated tokens for FIX (outliers visible)

Number of generated tokens for FIX_TOON with a more compact distribution

Figure 2b: Number of generated tokens for FIX_TOON (more compact distribution)

For the most complex task (FIX), which requires the LLM to identify the stopped SSH service and start it, the compact representations provided by TOON have the most significant impact. This is reflected not only in the reduced token counts presented to the LLM, but also in more efficient tool utilization, preventing the agent from going off-course as it often did when using raw JSON.

Not using pure JSON does not hinder the LLM; instead, the more efficient utilization of the context window appears to be highly superior.

Summary

Although using TOON for simple tasks does not seem to make a significant difference—as most tokens are spent on the system prompt and MCP server descriptions—it performs superiorly when applied to complex tasks, keeping the LLM more focused. This is likely because the increased information density reduces distracting overhead, enhancing reasoning performance on complex, multi-step operations.

systemd example

state: inactive

{
state:

"inactive"

units:[
0: "systemd-battery-check.service"
1: "emergency.service"
2: "initrd.target"
3: "dm-event.service"
4: "check-battery.service"
5: "apt-daily.service"
6: "plymouth-start.service"
7: "rc-local.service"
8: "boot.automount"
9: "ip6tables.service"
10: "boot.mount"
11: "blockdev@dev-disk-by\x2duuid-41b87736\x2d08cc\x2d6bd0\x2d85de\x2dd844cd161676.target"
12: "systemd-soft-reboot.service"
13: "firewalld.service"
14: "plymouth-quit.service"
15: "blockdev@dev-vda2.target"
16: "remote-cryptsetup.target"
17: "dracut-pre-pivot.service"
18: "modprobe@fuse.service"
19: "modprobe@efi_pstore.service"
20: "dracut-cmdline.service"
21: "lvm2-lvmpolld.service"
22: "dracut-pre-mount.service"
23: "initrd-root-device.target"
24: "YaST2-Second-Stage.service"
25: "systemd-repart.service"
26: "cryptsetup-pre.target"
27: "emergency.target"
28: "umount.target"
29: "systemd-hostnamed.service"
30: "nss-lookup.target"
31: "dracut-initqueue.service"
32: "initrd-parse-etc.service"
33: "shutdown.target"
34: "soft-reboot.target"
35: "initrd-switch-root.service"
36: "issue-generator.service"
37: "iptables.service"
38: "veritysetup-pre.target"
39: "backup-sysconfig.service"
40: "dev-ttyAMA0.device"
41: "initrd-usr-fs.target"
42: "systemd-modules-load.service"
43: "initrd-root-fs.target"
44: "systemd-tpm2-setup-early.service"
45: "final.target"
46: "systemd-hibernate-resume.service"
47: "audit-rules.service"
48: "xdm.service"
49: "nss-user-lookup.target"
50: "initrd-switch-root.target"
51: "home.mount"
52: "poweroff.target"
53: "systemd-firstboot.service"
54: "blockdev@dev-disk-by\x2duuid-BE2D\x2dB7C2.target"
55: "remote-fs-pre.target"
56: "ntpd.service"
57: "systemd-rfkill.service"
58: "logrotate.service"
59: "systemd-udev-settle.service"
60: "ebtables.service"
61: "systemd-tmpfiles-clean.service"
62: "serial-getty@ttyS2.service"
63: "getty-pre.target"
64: "remote-veritysetup.target"
65: "apache2.target"
66: "apparmor.service"
67: "proc-sys-fs-binfmt_misc.mount"
68: "sysroot.mount"
69: "modprobe@configfs.service"
70: "ca-certificates.service"
71: "systemd-poweroff.service"
72: "rescue.target"
73: "systemd-journald-audit.socket"
74: "nftables.service"
75: "rescue.service"
76: "fstrim.service"
77: "systemd-ask-password-console.service"
78: "systemd-hibernate-clear.service"
79: "dracut-mount.service"
80: "systemd-timesyncd.service"
81: "modprobe@drm.service"
82: "wicked.service"
83: "systemd-pstore.service"
84: "systemd-binfmt.service"
85: "initrd-cleanup.service"
86: "sshd.service"
87: "syslog.service"
88: "display-manager.service"
89: "systemd-quotacheck-root.service"
90: "initrd-udevadm-cleanup-db.service"
91: "boot-sysctl.service"
92: "systemd-networkd-wait-online.service"
93: "hv_kvp_daemon.service"
94: "initrd-fs.target"
95: "serial-getty@ttyS1.service"
96: "ipset.service"
97: "dracut-pre-udev.service"
98: "backup-rpmdb.service"
99: "dracut-pre-trigger.service"
100: "dracut-shutdown-onfailure.service"
101: "serial-getty@ttyAMA0.service"
102: "wtmpdb-rotate.service"
103: "syslog.socket"
104: "plymouth-quit-wait.service"
105: "sshd-keygen.service"
106: "wtmpdbd.service"
]
}
units[107]: systemd-repart.service,ntpd.service,boot-sysctl.service,systemd-journald-audit.socket,initrd-fs.target,systemd-tpm2-setup-early.service,apparmor.service,systemd-pstore.service,backup-sysconfig.service,iptables.service,systemd-modules-load.service,modprobe@drm.service,dev-ttyAMA0.device,modprobe@efi_pstore.service,issue-generator.service,nss-lookup.target,syslog.service,getty-pre.target,final.target,initrd-usr-fs.target,systemd-hibernate-resume.service,systemd-ask-password-console.service,syslog.socket,sshd.service,modprobe@configfs.service,poweroff.target,ebtables.service,rescue.target,emergency.target,sysroot.mount,ip6tables.service,rc-local.service,blockdev@dev-vda2.target,systemd-rfkill.service,apt-daily.service,dracut-initqueue.service,serial-getty@ttyAMA0.service,check-battery.service,systemd-timesyncd.service,soft-reboot.target,apache2.target,home.mount,systemd-poweroff.service,nftables.service,lvm2-lvmpolld.service,dracut-shutdown-onfailure.service,plymouth-quit-wait.service,systemd-udev-settle.service,serial-getty@ttyS2.service,systemd-hibernate-clear.service,boot.automount,YaST2-Second-Stage.service,plymouth-start.service,initrd-udevadm-cleanup-db.service,dracut-pre-mount.service,nss-user-lookup.target,serial-getty@ttyS1.service,wicked.service,systemd-battery-check.service,initrd-parse-etc.service,emergency.service,hv_kvp_daemon.service,ca-certificates.service,systemd-soft-reboot.service,backup-rpmdb.service,modprobe@fuse.service,dracut-pre-trigger.service,dm-event.service,plymouth-quit.service,"blockdev@dev-disk-by\\x2duuid-BE2D\\x2dB7C2.target",audit-rules.service,rescue.service,initrd-root-device.target,systemd-firstboot.service,"blockdev@dev-disk-by\\x2duuid-41b87736\\x2d08cc\\x2d6bd0\\x2d85de\\x2dd844cd161676.target",shutdown.target,remote-veritysetup.target,initrd-root-fs.target,initrd.target,display-manager.service,wtmpdb-rotate.service,systemd-hostnamed.service,remote-cryptsetup.target,dracut-pre-udev.service,systemd-quotacheck-root.service,initrd-switch-root.target,dracut-pre-pivot.service,proc-sys-fs-binfmt_misc.mount,systemd-binfmt.service,ipset.service,remote-fs-pre.target,umount.target,boot.mount,veritysetup-pre.target,dracut-mount.service,dracut-cmdline.service,sshd-keygen.service,initrd-switch-root.service,fstrim.service,wtmpdbd.service,cryptsetup-pre.target,logrotate.service,initrd-cleanup.service,systemd-tmpfiles-clean.service,firewalld.service,systemd-networkd-wait-online.service,xdm.service"

Raw data

CHECK

# query prom_tokens cand_tokens tot_tokens tool_calls ollama_calls
"Check if sshd is running" 11936 289 12225 2 3
"Check if sshd is running" 7732 143 7875 1 2
"Check if sshd is running" 11788 257 12045 2 3
"Check if sshd is running" 11785 250 12035 2 3
"Check if sshd is running" 12056 379 12435 2 3
"Check if sshd is running" 11875 310 12185 2 3
"Check if sshd is running" 11802 238 12040 2 3
"Check if sshd is running" 11819 277 12096 2 3
"Check if sshd is running" 11825 285 12110 2 3
"Check if sshd is running" 11807 266 12073 2 3
"Check if sshd is running" 11909 325 12234 2 3
"Check if sshd is running" 11788 248 12036 2 3
"Check if sshd is running" 11786 275 12061 2 3
"Check if sshd is running" 11754 211 11965 2 3
"Check if sshd is running" 7786 195 7981 1 2
"Check if sshd is running" 7736 215 7951 1 2
"Check if sshd is running" 12026 597 12623 2 3
"Check if sshd is running" 11778 263 12041 2 3
"Check if sshd is running" 7827 225 8052 1 2
"Check if sshd is running" 7733 138 7871 1 2
"Check if sshd is running" 11843 284 12127 2 3
"Check if sshd is running" 11798 248 12046 2 3
"Check if sshd is running" 7719 132 7851 1 2
"Check if sshd is running" 7856 255 8111 1 2
"Check if sshd is running" 11901 309 12210 2 3
"Check if sshd is running" 11823 262 12085 2 3
"Check if sshd is running" 11836 284 12120 2 3
"Check if sshd is running" 7733 151 7884 1 2
"Check if sshd is running" 11861 301 12162 2 3
"Check if sshd is running" 7735 143 7878 1 2

CHECK_TOON

 query prom_tokens cand_tokens tot_tokens tool_calls ollama_calls
"Check if sshd is running" 11843 283 12126 2 3
"Check if sshd is running" 7831 241 8072 1 2
"Check if sshd is running" 11842 305 12147 2 3
"Check if sshd is running" 7801 213 8014 1 2
"Check if sshd is running" 11753 237 11990 2 3
"Check if sshd is running" 11742 216 11958 2 3
"Check if sshd is running" 11825 282 12107 2 3
"Check if sshd is running" 7809 221 8030 1 2
"Check if sshd is running" 7774 187 7961 1 2
"Check if sshd is running" 11824 264 12088 2 3
"Check if sshd is running" 7736 148 7884 1 2
"Check if sshd is running" 11789 248 12037 2 3
"Check if sshd is running" 11980 351 12331 2 3
"Check if sshd is running" 11778 247 12025 2 3
"Check if sshd is running" 11766 208 11974 2 3
"Check if sshd is running" 7842 248 8090 1 2
"Check if sshd is running" 11770 234 12004 2 3
"Check if sshd is running" 7755 163 7918 1 2
"Check if sshd is running" 11730 210 11940 2 3
"Check if sshd is running" 11809 257 12066 2 3
"Check if sshd is running" 11835 279 12114 2 3
"Check if sshd is running" 7843 240 8083 1 2
"Check if sshd is running" 11850 288 12138 2 3
"Check if sshd is running" 11820 264 12084 2 3
"Check if sshd is running" 7786 199 7985 1 2
"Check if sshd is running" 7757 165 7922 1 2
"Check if sshd is running" 7820 217 8037 1 2
"Check if sshd is running" 11758 236 11994 2 3
"Check if sshd is running" 11897 306 12203 2 3
"Check if sshd is running" 11750 226 11976 2 3

LIST

# query prom_tokens cand_tokens tot_tokens tool_calls ollama_calls
"List me running services on the system and which services can be started" 12347 725 13072 2 2
"List me running services on the system and which services can be started" 12437 864 13301 2 2
"List me running services on the system and which services can be started" 12421 2120 14541 2 2
"List me running services on the system and which services can be started" 12429 2683 15112 2 2
"List me running services on the system and which services can be started" 12398 2366 14764 2 2
"List me running services on the system and which services can be started" 8976 2675 11651 2 2
"List me running services on the system and which services can be started" 12400 2119 14519 2 2
"List me running services on the system and which services can be started" 12449 1946 14395 2 2
"List me running services on the system and which services can be started" 8947 2458 11405 2 2
"List me running services on the system and which services can be started" 8902 2481 11383 2 2
"List me running services on the system and which services can be started" 8884 1303 10187 2 2
"List me running services on the system and which services can be started" 8898 1386 10284 2 2
"List me running services on the system and which services can be started" 8953 2538 11491 2 2
"List me running services on the system and which services can be started" 12418 829 13247 2 2
"List me running services on the system and which services can be started" 9046 1268 10314 2 2
"List me running services on the system and which services can be started" 9343 984 10327 3 2
"List me running services on the system and which services can be started" 12532 2220 14752 2 2
"List me running services on the system and which services can be started" 8934 1609 10543 2 2
"List me running services on the system and which services can be started" 12364 869 13233 2 2
"List me running services on the system and which services can be started" 8990 1816 10806 2 2
"List me running services on the system and which services can be started" 12399 2011 14410 2 2
"List me running services on the system and which services can be started" 8883 924 9807 2 2
"List me running services on the system and which services can be started" 8968 2432 11400 2 2
"List me running services on the system and which services can be started" 12343 2084 14427 2 2
"List me running services on the system and which services can be started" 12405 1481 13886 2 2
"List me running services on the system and which services can be started" 12342 1761 14103 2 2
"List me running services on the system and which services can be started" 12450 727 13177 2 2
"List me running services on the system and which services can be started" 12324 582 12906 2 2
"List me running services on the system and which services can be started" 9472 2749 12221 3 2
"List me running services on the system and which services can be started" 9184 2423 11607 3 2

LIST_TOON

# query prom_tokens cand_tokens tot_tokens tool_calls ollama_calls
"List me running services on the system and which services can be started" 12341 2520 14861 2 2
"List me running services on the system and which services can be started" 12362 621 12983 2 2
"List me running services on the system and which services can be started" 12384 1374 13758 2 2
"List me running services on the system and which services can be started" 12326 1977 14303 2 2
"List me running services on the system and which services can be started" 8987 2383 11370 3 2
"List me running services on the system and which services can be started" 8914 2509 11423 2 2
"List me running services on the system and which services can be started" 12389 2127 14516 2 2
"List me running services on the system and which services can be started" 12568 789 13357 2 2
"List me running services on the system and which services can be started" 12376 1963 14339 2 2
"List me running services on the system and which services can be started" 8885 1814 10699 2 2
"List me running services on the system and which services can be started" 12481 1995 14476 2 2
"List me running services on the system and which services can be started" 12366 2294 14660 2 2
"List me running services on the system and which services can be started" 8875 1692 10567 2 2
"List me running services on the system and which services can be started" 9034 2344 11378 2 2
"List me running services on the system and which services can be started" 12531 2390 14921 2 2
"List me running services on the system and which services can be started" 12335 1998 14333 2 2
"List me running services on the system and which services can be started" 12444 684 13128 2 2
"List me running services on the system and which services can be started" 12445 1775 14220 2 2
"List me running services on the system and which services can be started" 29548 857 30405 3 4
"List me running services on the system and which services can be started" 12331 1720 14051 2 2
"List me running services on the system and which services can be started" 8982 2211 11193 2 2
"List me running services on the system and which services can be started" 12477 2182 14659 2 2
"List me running services on the system and which services can be started" 12400 1448 13848 2 2
"List me running services on the system and which services can be started" 9244 1857 11101 2 2
"List me running services on the system and which services can be started" 8882 825 9707 2 2
"List me running services on the system and which services can be started" 9078 2073 11151 2 2
"List me running services on the system and which services can be started" 12549 936 13485 2 2
"List me running services on the system and which services can be started" 12466 1201 13667 2 2
"List me running services on the system and which services can be started" 9021 1732 10753 2 2
"List me running services on the system and which services can be started" 12377 2267 14644 2 2

FIX

"I can't login, fix this!" 41367 964 42331 8 9
"I can't login, fix this!" 25606 619 26225 5 6
"I can't login, fix this!" 22251 816 23067 6 5
"I can't login, fix this!" 22130 613 22743 4 5
"I can't login, fix this!" 26780 748 27528 5 6
"I can't login, fix this!" 112901 943 113844 9 10
"I can't login, fix this!" 54626 753 55379 7 8
"I can't login, fix this!" 25405 547 25952 5 6
"I can't login, fix this!" 16866 615 17481 4 4
"I can't login, fix this!" 59437 958 60395 7 8
"I can't login, fix this!" 33176 929 34105 6 7
"I can't login, fix this!" 16453 489 16942 3 4
"I can't login, fix this!" 26306 611 26917 5 6
"I can't login, fix this!" 22935 913 23848 5 5
"I can't login, fix this!" 84688 2655 87343 13 8
"I can't login, fix this!" 25757 641 26398 5 6
"I can't login, fix this!" 31397 853 32250 6 7
"I can't login, fix this!" 26691 695 27386 5 6
"I can't login, fix this!" 27273 794 28067 5 6
"I can't login, fix this!" 94618 2614 97232 15 16
"I can't login, fix this!" 31886 777 32663 6 7
"I can't login, fix this!" 25962 551 26513 5 6
"I can't login, fix this!" 26899 745 27644 5 6
"I can't login, fix this!" 25976 662 26638 5 6
"I can't login, fix this!" 25531 537 26068 5 6
"I can't login, fix this!" 54975 793 55768 7 8
"I can't login, fix this!" 26921 748 27669 5 6
"I can't login, fix this!" 26531 778 27309 5 6
"I can't login, fix this!" 36614 712 37326 6 5
"I can't login, fix this!" 24196 1074 25270 6 5

FIX_TOON

# query prom_tokens cand_tokens tot_tokens tool_calls ollama_calls
"I can't login, fix this!" 26317 581 26898 5 6
"I can't login, fix this!" 20708 494 21202 4 5
"I can't login, fix this!" 18571 1030 19601 7 4
"I can't login, fix this!" 30497 782 31279 6 7
"I can't login, fix this!" 22412 689 23101 5 5
"I can't login, fix this!" 22012 647 22659 6 5
"I can't login, fix this!" 37325 1379 38704 10 7
"I can't login, fix this!" 26394 651 27045 5 6
"I can't login, fix this!" 55580 956 56536 7 8
"I can't login, fix this!" 31431 680 32111 6 7
"I can't login, fix this!" 28580 820 29400 5 6
"I can't login, fix this!" 36118 839 36957 7 8
"I can't login, fix this!" 22785 770 23555 5 5
"I can't login, fix this!" 20158 346 20504 4 5
"I can't login, fix this!" 26159 567 26726 5 6
"I can't login, fix this!" 63605 875 64480 8 9
"I can't login, fix this!" 47181 935 48116 7 5
"I can't login, fix this!" 41776 856 42632 8 9
"I can't login, fix this!" 21752 585 22337 6 5
"I can't login, fix this!" 53449 707 54156 7 8
"I can't login, fix this!" 26152 730 26882 5 6
"I can't login, fix this!" 22470 704 23174 4 5
"I can't login, fix this!" 74308 1094 75402 9 10
"I can't login, fix this!" 27106 769 27875 5 6
"I can't login, fix this!" 26527 688 27215 5 6
"I can't login, fix this!" 26470 682 27152 5 6
"I can't login, fix this!" 27317 818 28135 5 6
"I can't login, fix this!" 37025 960 37985 7 8
"I can't login, fix this!" 27619 765 28384 6 6
"I can't login, fix this!" 26177 598 26775 5 6
the avatar of openSUSE News

Updating the Signing Key on Leap Micro

openSUSE Leap Micro was the last to the party to receive the extended openSUSE signing key following its recent expiration. We’re deeply sorry for the inconvenience. The underlying issue has now been resolved everywhere.

If your system still encounters repository signature errors, you can refresh the repository metadata and fetch the updated signing key manually.

The zypper ref -f command forces a refresh of the repository metadata, including the new GPG signing key. Normally this should happen automatically, but the current version of libzypp may not always retrieve the updated key correctly. Forcing a refresh resolves the problem. Just to note that the zypper ref -f will force new key on any openSUSE distribution.

Run the following commands:

transactional-update shell
zypper ref -f
zypper dup
exit # from tu shell

After rebooting into the new snapshot, your system should be using the updated signing key and repository refreshes should work normally again.

Have a lot of fun!

a silhouette of a person's head and shoulders, used as a default avatar

GSoC Update 2: Visual Redesign and Responsive SVGs

In my previous post I covered the template refactor for the obs-status-service SVG generation. That work was reviewed and merged into main (PR #364). Building on top of that, I’ve opened a follow-up PR (#402) that focuses on two things: making the SVG badges visually consistent with Gitea’s UI and making them responsive for large projects.

Native Gitea Colors

The old SVGs used hardcoded colors that looked out of place next to Gitea’s UI. I extracted the real CSS variables from Gitea’s dark and light themes and embedded them directly into the SVG templates. Now the badges blend in naturally with the rest of the page, and they automatically switch between light and dark mode using the ?theme= parameter.

Responsive Compact Mode

The project matrix view works great when there are a few repositories, but some projects like openSUSE:Tools have dozens of repo/arch combinations. The full matrix becomes too wide for any screen.

To solve this I added a ?compact=true|false|auto parameter. In compact mode:

  • Column headers are rotated 90° to take up less horizontal space.
  • Badge text is hidden, leaving only colored squares.
  • Column width shrinks from 155px to 32px.

The auto mode (the default) activates compact mode automatically when the matrix would exceed 800px wide or when there are more than 4 repositories. This is calculated server-side before generating the SVG, since CSS @media queries cannot resize an SVG’s viewBox when it’s embedded as an <img>.

Dynamic Layout

Long package names like 000product:openSUSE-Addon-NonOss-ftp-ftp-x86_64 used to overflow and overlap with the status cells. Now both the label column width and the header height are calculated dynamically based on the longest text string, so nothing gets cut off regardless of the data.

Side-by-side Comparisons

To verify the improvements, I wrote a Go test that fetches live build data from the OBS public API and generates SVGs with both the old production code (downloaded via HTTP from br.opensuse.org) and the new template-based renderer. Here are some examples using the projects my mentor dgarcia suggested:

Project Summary: devel:languages:python:Factory

obs-status-service (old):

Old obs-status-service

obs-status-service (new):

New obs-status-service

Package: devel:languages:python:Factory / python313

Before:

Old package summary

After:

New package summary

Badge: openSUSE:Factory / python313:base / standard / x86_64

Before:

Old badge

After:

New badge

Matrix View: devel:languages:python:Factory

gitexplorer (interactive):

gitexplorer matrix

obs-status-service (new):

New obs-status-service matrix

What’s Next

The template refactor PR #364 has been merged into main. The Gitea color integration and compact mode are in review in PR #402.

The next step is exploring JavaScript inside SVGs so that badges can update themselves in real time without reloading the page.

the avatar of openSUSE News

The Case for Sponsoring openSUSE

Infrastructure runs on Linux, and Linux hardware is only as good as the software that builds, packages, signs and distributes its drivers and libraries, work that has to happen across dozens of distributions and several CPU architectures, every single day.

That work has a home. The openSUSE Project has spent years assembling a development structure that hardware vendors and enterprises now lean on:

  • Open Build Service compiles a single source tree into signed packages for nearly any distribution or architecture;
  • openQA boots and tests the results the way a real user would;
  • The rolling release Tumbleweed and stable Leap distributions serve as both upstream and supporting structure for Enterprise as a proving ground and downstream anchor;
  • Uyuni Project, the upstream of SUSE Multi-Linux Manager pioneers the space that keeps deployed fleets patched and accounted for long after the packages ship.

Together, these answer the question every hardware maker eventually faces; build once, validate everywhere and deliver with confidence.

Companies whose revenue depends on silicon “just working” in Linux data centers may evaluate funding this layer as an investment, not as charity. It is one of the highest-leverage, lowest-cost investments available. But communities like openSUSE depend on sponsors so that the contributing community can grow, support and thrive.

SUSE is the primary sponsor of openSUSE, and the project has other companies that sponsor the project. The project welcomes additional backers. Sponsorship takes three practical forms; money, hardware, or services. Sponsorship has historically been organized into tiers: Platinum, Gold, and Silver. The sponsors gain visibility and developer reach. Hardware sponsors sign an Equipment Donation Agreement. Services provided to contributing developers make development more efficient. And the Geeko Foundation, a not-for-profit, acts as fiscal steward, receiving and administering funds on the project’s behalf to support contributors, travel and events.

The return on a sponsorship

1. The whole ecosystem, not just one distro

OBS builds on the order of 140,000 packages for more than a dozen base distributions across many architectures. A vendor that donates silicon and sponsors build capacity gets its drivers and libraries built and validated across that entire matrix; Fedora, Debian, Ubuntu, the SUSE family and more.

This is not a static archive. In a typical week, Tumbleweed absorbs on the order of 500 accepted change requests, moving Mesa, the Linux kernel, QEMU, GCC, LLVM, Rust, GNOME and KDE forward in lockstep. Paying engineers to chase each target distribution independently is expensive; the same result comes far more cost-effectively from developers already working inside the openSUSE ecosystem. Hardware that works on Linux ships and sells faster.

2. Silicon QA at scale

Packaging is only half the problem; the other half is testing. That is where openQA comes in; openSUSE’s automated OS-testing service, which boots real images and drives real installs.

Pair it with sponsored hardware and a vendor’s drivers get exercised continuously: every snapshot, every architecture, in front of tens of thousands of real users doing unpredictable things. The value shows in the ordinary weekly record; compiler transitions caught in dedicated staging projects before they reach users, individual test failures tracked down to a specific step in a specific run, unresolvable dependencies counted and driven back down. Regressions surface on actual silicon earlier, and far more cheaply, than any internal lab could manage.

3. Growing the architecture your chips are trying to sell

openSUSE does not treat arm as an afterthought. Tumbleweed on arm rolls continuously alongside x86, with its own openQA coverage, and a dedicated ARMv9 project rebuilds the core of the distribution to take advantage of the newer baseline. s390x is maintained in parallel. A chipmaker sponsoring arm build capacity is directly cultivating the soil its own products grow in. And would be doing it where the architecture is already a first-class citizen rather than a port.

4. Faster driver delivery, fewer support tickets

The model already exists: openSUSE’s NVIDIA driver packages are maintained by SUSE engineers, with spec files living in OBS and coordinated with NVIDIA. A factory first policy, where development happens upstream, deepens that relationship. Dedicated hardware, closer coordination and sponsored maintainer time all shorten the lag between a driver release and users actually being able to install it. Every week shaved off that cycle is support load a vendor never has to absorb.

5. Strategic influence on neutral ground, without lock-in

OBS, openQA and Uyuni are deliberately vendor-neutral. None is tied to a single vendor’s product line; all three build, test and manage systems well beyond the SUSE family. For a chipmaker, neutrality is the point; sponsorship keeps the packaging pipeline healthy and open, so no single competitor ends up controlling how silicon reaches Linux.

Uyuni is upstream of SUSE Multi-Linux Manager, and that relationship cuts the way a sponsor should want: the upstream project sets direction and the commercial product follows, not the reverse. It’s the same arrangement that governs most of the Linux stack a vendor already ships on. A sponsor influences the open project and gets the benefit downstream, without buying into any vendor’s roadmap.

6. Developer mindshare, ISV reach, and recruiting

Sponsorship has always carried visibility in front of the developers and independent software vendors who decide what runs where. In a labor market where kernel, driver and systems talent is scarce, presence in the openSUSE community is a recruiting channel and a credibility signal to the wider open-source world.

The bottom line

Put these together and you get a flywheel of mutual benefit. The technology gets built by the community at a fraction of what in-house enablement would cost, and it gets built continuously, in public, with the failures visible and tracked rather than discovered by a customer. The community gets what it needs to keep going: travel to the conferences where the work gets shared, hardware to test on, and infrastructure that grows as fast as the ideas do.

For a business valued in the hundreds of billions, an equipment donation or a sponsored service is a rounding error. It is also one of the cleanest ways a company can fund the building of the technology it sells build on open-source. Donations acknowledging community efforts are also encouraged.

If you are interested in sponsoring openSUSE, we are open to options or suggestions.

Providing space for hosting an openSUSE event or sponsoring the openSUSE Conference provides a unique opportunity to connect with open source users, system administrators, developers, designers, and community leaders. Sponsoring the conference also provides an opportunity to showcase your brand to the open-source knowledge.

For more information, email ddemaio@opensuse.org.

a silhouette of a person's head and shoulders, used as a default avatar

Publicado el programa de charlas para Akademy 2026 de Graz, Austria

Como los lectores del blog sabrán este año el encuentro anual de desarrolladores de la Comunidad KDE se va a celebrar en Graz, Austria. Recordad que será una edición especial con motivo del 30º aniversario de KDE que tendrá lugar en la Universidad Tecnológica de dicha ciudad. Me complace compartir con vosotros que se ha publicado ya el programa de charlas para Akademy 2026 de Graz dividido en dos lineas principales y donde lo difícil será seleccionar a cual no asistir,.

Publicado el programa de charlas para Akademy 2026 de Graz, Austria

Publicado el programa de charlas para Akademy 2026 de Graz, Austria

Como decía en la introducción Akademy 2026 se va a realizar en Austria del 19 al 24 de septiembre en una edición que sigue con el formato híbrido ya que sus organizadores ya le han cogido el truco para hacerlo accesible a todo el mundo.

Siguiendo el esquema habitual, las charlas se realizarán el sábado 19 y el domingo 20, dejando el resto de días para el trabajo en pequeños grupos en sala más reservadas pero no privadas, es decir, que no están cerradas sino que todo el que quiera aportar algo está invitado.

Y justo el programa de charlas fue publicado esta semana, un programa donde aparecen conceptos como KDE Linux, Dolphin, objetivos de KDE, QA, Plasma, Comunidad, etc,

Os invito a ver el cronograma del evento ya que el listado es extenso y no vale la pena duplicarlo aquí. Los enlaces en los siguientes botones:

¿Qué es Akademy?

Para los que no lo sepan, Akademy es el evento de la Comunidad KDE que aúna en una gran conferencia todo tipo de simpatizantes de KDE como desarrolladores, diseñadores, usuarios, traductores, promotores, ideólogos, etc. Allí se reunirán a lo largo de una semana para compartir charlas, cenas, ponencias, talleres y, en definitiva, para trabajar juntos.
Es una gran semana que sirve para unir más fuerte los lazos que unen nuestra Comunidad, así como para crear nuevos que se mantendran gracias a las listas de correo, canales irc o Sprints.

La entrada Publicado el programa de charlas para Akademy 2026 de Graz, Austria se publicó primero en KDE Blog.

a silhouette of a person's head and shoulders, used as a default avatar

Información meteorológica en tiempo real con Meteoclimatic Feeds – Plasmoides para Plasma 6 (36)

Ya llevo mucho tiempo promocionando plasmoides para Plasma 6, y al parecer es un tema inagotable. De hecho, el número de ellos presentados en la KDE Store no para de aumentar, así que esta sección tiene cuerda para rato. De esta forma, si quieres tener información meteorológica en tiempo real de forma interactiva y visual no dejes de probar Meteoclimatic Feeds el widget con el que llegamos al número 36 de la serie.

Información meteorológica en tiempo real con Meteoclimatic Feeds – Plasmoides para Plasma 6 (36)

Como he comentado en otras ocasiones, de plasmoides tenemos de todo tipo funcionales, de configuración, de comportamiento, de decoración o, como no podía ser de otra forma, de información sobre nuestro sistema como puede ser el uso de disco duro, o de memoria RAM, la temperatura o la carga de uso de nuestras CPUs.

Así que espero que le deis la bienvenida a Meteoclimatic Feeds una creación del gran creador de contenido Victorhck (no os podéis perder su blog) , que nos da información meteorológica de la estación libre Meteoclimatic que tu elijas. A diferencia de otros plasmoides meteorológicos, este plasmoide se conecta a Meteoclimatic, una gran red de estaciones meteorológicas automáticas no profesionales en tiempo real y un importante directorio de recursos meteorológicos.

Información meteorológica en tiempo real con Meteoclimatic Feeds - Plasmoides para Plasma 6 (36)

Este plasmoide tiene una historia interesante que el propio Víctor explica:

Corría el año 2016 y ya publiqué un artículo en el que valiéndonos del plasmoide simple rss reader, podíamos suscribirnos a los feeds de la estación metereológica que estuviera en Meteoclimatic y mostrar la información en el escritorio.

https://victorhckinthefreeworld.com/2016/08/22/consulta-el-tiempo-local-en-tu-escritorio-plasma-con-los-rss-de-meteoclimatic/

10 años después, y con la ayuda de la IA para modificar el código (en el que me ha costado que haga cosas y no rompa otras que funcionaban) he creado mi primer plasmoide, que básicamente se centra en mostrar un feed de una estación metereológica de Meteoclimatic, pero en el que podremos configurar varios aspectos del plasmoide para que se integre en nuestro escritorio.

Como decía Victor, Meteoclimatic Feeds está basado en el Plasmoide RSS feeds y para instalarlo debes seguir los siguientes pasos:

  • Bájate el archivo Codeberg.org
  • Descomprime el archivo.
  • Copia la carpeta Meteoclimatic.feeds dentro de la ruta ~/.local/share/plasma/plasmoids
  • Finalmente, añádelo en tu escritorio.

Para las opciones de configuración, como es habitual, debes pulsar el botón derecho encima del Plasmoide y personalizar tanto la estación como varios aspectos gráficos del Plasmoide

Más información en su blog.

Y como siempre digo, si os gusta el plasmoide podéis «pagarlo» de muchas formas. En este caso lo mejor es decírselo personalmente a Víctor en su blog. Os puedo asegurar que este es el mejor combustible para los creadores de contenidos, amén de realizar una donación (que sin duda se merece).

¿Qué son los plasmoides?

Para los no iniciados en el blog, quizás la palabra plasmoide le suene un poco rara pero no es mas que el nombre que reciben los widgets para el escritorio Plasma de KDE.

En otras palabras, los plasmoides no son más que pequeñas aplicaciones que puestas sobre el escritorio o sobre una de las barras de tareas del mismo aumentan las funcionalidades del mismo o simplemente lo decoran.

Aquí bajo os muestro los últimos publicados en el blog.

La entrada Información meteorológica en tiempo real con Meteoclimatic Feeds – Plasmoides para Plasma 6 (36) se publicó primero en KDE Blog.

the avatar of Nathan Wolf

Linux Saloon 211 | Open Mic Night

The content discusses various technology and Linux-related updates, including a live weekend discussion about user experiences with Fedora and job openings at Epic Games focused on Linux security. It also covers IBM's new chip architecture advancements and Dell surpassing HP in U.S. PC sales amid a shrinking market.

the avatar of Nathan Wolf

Linux Saloon 210 | Early Edition July

The content discusses various topics in technology and Linux, such as hardware setups like the Warthunder Sim Rig, font management in Linux, and notable news like the retirement of the “Father of the Internet.” It also covers updates on Firefox, the Steam Machine launch, and Fedora governance changes, along with various resources and upcoming events.
a silhouette of a person's head and shoulders, used as a default avatar

Sombras para Steam y Discord – Esta semana en Plasma

El incansable trabajo de promoción que está realizando Nate (ahora con ayuda de otros desarrolladores) en su blog sigue su ritmo. Cada semana hace un resumen de las novedades más destacadas, pero no en forma de telegrama, sino de artículo completo. Su cita semanal no falla y desde hace un tiempo que le voy a siguiendo semana tras semana, traduciendo sus artículos al castellano utilizando los magníficos traductores lo cual hará que la gente que no domine el inglés esté al día y que yo me entere bien de todo. Bienvenidos pues a «Sombras para Steam y Discord» de «Esta semana en Plasma», donde después de semanas arreglando bugs parece que los desarrolladores se vuelven a centrar en cuestiones más visibles para los usuarios.

Sombras para Steam y Discord – Esta semana en Plasma

Nota: Artículo original en Blogs KDE. Traducción realizada utilizando Perplexity. Esta entrada está llena de novedades de la Comunidad KDE. Mis escasos comentarios sobre las mejoras entre corchetes.

¡Bienvenido a un nuevo número de This Week in Plasma!
Esta semana, la racha de corrección de errores de las últimas semanas fue aflojando, mientras el trabajo en nuevas funciones y el pulido de la interfaz de usuario pasaban al primer plano. Así que empecemos con algo bastante visible para el usuario:

Nuevas mejoras

Plasma 6.8

KWin ahora aplica automáticamente una sombra, un contorno y un efecto de redondeo de esquinas a las ventanas con decoración del lado del cliente que carecen de estos elementos, como las ventanas de Steam y Discord. Puedes leer más sobre esto en el blog de Vlad. (Vlad Zahorodnii, kwin MR #9147, kwin MR #9566, breeze MR #612 y kdecoration MR #93) [En estos momentos estas cosas ponen de manifiesto que la necesidad de unificar aspectos es algo inherente en un proyecto, en caso contrario ocurre lo que pasa en sistemas como Android, donde cada aplicación se comporta como le da la gana, pese a las directivas de Google].

Sombras para Steam y Discord - Esta semana en Plasma

Ahora puedes asignar procesos a CPUs específicos o a grupos de CPUs en Monitor del sistema, algo conocido como establecer la afinidad de CPU. (Taras Oleksyn, KDE Bugzilla #429151) [Me parece casi increíble que un escritorio pueda hacer eso].

El widget Gestor de tareas ahora tiene atajos de teclado globales para reorganizar tareas y cambiar entre ellas. (Salman Farooq, plasma-desktop MR #3819)

Mejoras en la interfaz de usuario

Plasma 6.7.4

A las aplicaciones que usan el portal de atajos globales ahora se les permite cambiar el nombre de sus atajos solicitando volver a registrarlos. (David Redondo, KDE Bugzilla #523063)

Plasma 6.8

La página Comportamiento de ventanas de Configuración del sistema se ha migrado a QML y se ha modernizado un poco en el proceso, poniéndola a la altura de la mayoría de las demás páginas de Configuración del sistema. (Tobias Ozór, kwin MR #9370) [Son tantos los módulos que todavía hay algunos que actualizar].

Corrección de errores importantes

[No comento las correcciones de errores ya que son bastante evidentes].

Plasma 6.6.7

La página Efectos de Configuración del sistema ahora se comporta correctamente para los efectos de KWin cuyos valores predeterminados han sido sobrescritos a nivel de distribución. (Nicolas Fella, kwin MR #8112)

Plasma 6.7.3

Se ha corregido una regresión reciente que hacía que el proceso ksystemstats a veces se bloqueara cuando el sistema se reactivaba de la suspensión. (Iyán Méndez Veiga, KDE Bugzilla #521353)

Se ha corregido una regresión reciente que provocaba lentitud y tirones en ciertos sitios web que usan renderizado acelerado por hardware en sistemas con determinadas GPU. (Xaver Hugl, KDE Bugzilla #521742)

Se ha corregido un problema extraño que hacía que el sistema dejara de entrar en suspensión según el horario habitual si interrumpías ciertos monitores justo cuando estaban en pleno proceso de apagado. (Ameen Al-Asady, KDE Bugzilla #523001)

Plasma 6.7.4

Se ha corregido una forma algo común en la que Discover podía bloquearse mientras instalaba actualizaciones. (Aleix Pol Gonzalez, KDE Bugzilla #522255)

El uso de ancho de banda informado por el servidor de escritorio remoto de Plasma ahora es correcto. (Liu Jie, krdp MR #216)

Se ha corregido un fallo de maquetación en la página Punteros de Configuración del sistema que impedía que algunas opciones de tamaño de puntero fueran completamente visibles al usar escalado de pantalla. (Akseli Lahtinen, KDE Bugzilla #521187)

Se han corregido dos fallos de maquetación en Discover al usar la aplicación con varios motores y al ver elementos grandes en la página Instalado. (Nate Graham, discover MR #1357 y discover MR #1358)

La opción “Escribir en el escritorio activa KRunner” ahora se respeta por completo también para los widgets de Vista de carpeta colocados en el escritorio, además de para la Vista de carpeta integrada que es el propio escritorio. (Christoph Wolk, KDE Bugzilla #523053)

Plasma 6.8

Se han corregido algunos problemas de posicionamiento y de compatibilidad con temas en los menús desplegables de Plasma y sus widgets. (Filip Fila, libplasma MR #1546)

Destacado en rendimiento y aspectos técnicos

Frameworks 6.29

Se ha reducido un poco el uso de memoria de Plasma. (Nicolas Fella, ksvg MR #113 y kguiaddons MR #224)

KDE Gear 26.12

Se ha eliminado la página Preferencias de conexión de Configuración del sistema. Sus ajustes eran extremadamente esotéricos y apenas se aplicaban a nada en la actualidad, por lo que la página sobre todo generaba ruido. (Tobias Fella, kio-extras MR #533)

Cómo puedes ayudar

KDE se ha vuelto importante en el mundo, y tu tiempo y contribuciones han ayudado a llegar hasta aquí. A medida que crecemos, necesitamos tu apoyo para mantener KDE sostenible.

¿Te gustaría ayudar a preparar este informe semanal? Preséntate en la sala de Matrix y únete al equipo.

Más allá de eso, puedes ayudar a KDE involucrándote directamente en cualquier otro proyecto. Donar tiempo es realmente más impactante que donar dinero. Cada colaborador marca una gran diferencia en KDE — ¡no eres un número ni un engranaje en una máquina! No tienes que ser programador, existen muchas otras oportunidades.

También puedes ayudar haciendo una donación. Esto ayuda a cubrir costes operativos, salarios, gastos de viaje para colaboradores y, en general, a mantener KDE llevando Software Libre al mundo.

La entrada Sombras para Steam y Discord – Esta semana en Plasma se publicó primero en KDE Blog.