TitalcruiseOS: integración del panel «Escritorio de TitalcruiseOS» en GNOME Control Center
Tipo de documento: Documentación técnica de desarrollo
Proyecto: TitalcruiseOS
Componente: GNOME Control Center
Estado: Implementado y funcional
Versión del entorno registrada: GNOME Shell 50.5 / GNOME Control Center 51.1
Directorio de trabajo: ~/Descargas/gnome-control-center-debian-latest
1. Objetivo
Integrar una sección de configuración propia llamada «Escritorio de TitalcruiseOS» directamente en la barra lateral de GNOME Configuración.
El propósito es centralizar las opciones relacionadas con la apariencia y el comportamiento de Dash to Panel sin depender exclusivamente de herramientas externas o de la aplicación independiente de configuración de extensiones.
El resultado es un panel nativo dentro de GNOME Control Center, desarrollado en C y Blueprint, que utiliza GSettings para modificar las preferencias de Dash to Panel.
2. Arquitectura de la implementación
La integración está compuesta por cuatro partes principales:
Interfaz gráfica: construida con GTK y libadwaita mediante Blueprint.
Lógica del panel: implementada en C, encargada de leer y modificar los ajustes.
Registro en GNOME Control Center: permite que el panel aparezca en la navegación lateral y pueda abrirse mediante su identificador.
Configuración de Dash to Panel: utiliza GSettings y los valores predeterminados de la extensión para controlar la barra de tareas.
Tecnologías utilizadas
C
GTK
libadwaita
Blueprint
Meson y Ninja
GSettings y dconf
GNOME Control Center
Extensión Dash to Panel
3. Archivos principales
La implementación del panel se encuentra en:
panels/titalcruise-desktop/
Archivo | Función |
cc-titalcruise-desktop-panel.c | Lógica, lectura y modificación de ajustes |
cc-titalcruise-desktop-panel.h | Declaración de la clase del panel |
cc-titalcruise-desktop-panel.blp | Diseño de la interfaz gráfica |
gnome-titalcruise-desktop-panel.desktop.in | Metadatos del panel |
meson.build | Integración del componente en el sistema de compilación |
También se modificó el registro de paneles de GNOME Control Center en shell/cc-panel-loader.c.
El archivo de metadatos generado e instalado es:
/usr/local/share/applications/gnome-titalcruise-desktop-panel.desktop
El identificador utilizado para abrir el panel es:
titalcruise-desktop
4. Diseño de la interfaz
La interfaz utiliza Adw.ToolbarView, Adw.HeaderBar y Adw.PreferencesPage.
La página tiene como título «Escritorio de TitalcruiseOS» y utiliza el icono simbólico video-display-symbolic.
La integración busca mantener la apariencia de los paneles habituales de GNOME Configuración, respetando su estructura de navegación y sus componentes visuales.
5. Funcionalidades implementadas
El panel incorpora controles para gestionar distintas opciones de Dash to Panel, entre ellas:
Posición de la barra de tareas.
Tamaño de la barra.
Configuración para varios monitores.
Color de fondo personalizado.
Opacidad del fondo.
Longitud dinámica de la barra.
Centrado de los elementos de la barra de tareas.
La posición, el tamaño y el color personalizado se probaron durante el desarrollo. También se corrigió el comportamiento inicial de los interruptores de longitud dinámica y centrado.
Nota técnica: la opacidad personalizada debe considerarse pendiente de validación funcional independiente hasta completar una prueba específica.
6. Corrección de los interruptores
Durante las pruebas se detectó que algunos interruptores podían mostrar un estado distinto del comportamiento predeterminado esperado.
Se corrigió la lógica en cc-titalcruise-desktop-panel.c para que la interfaz interprete correctamente los ajustes de Dash to Panel.
Las funciones principales implicadas son:
set_all_monitor_lengths_dynamic()
set_taskbar_centered()
get_all_taskbars_centered()
La lógica contempla los valores predeterminados cuando todavía no existen preferencias guardadas y actualiza los ajustes cuando el usuario activa o desactiva las opciones.
La compilación y las pruebas posteriores confirmaron que los interruptores funcionan correctamente.
7. Valores predeterminados de Dash to Panel
Además del panel de configuración, se ajustó la extensión instalada en:
/usr/share/gnome-shell/extensions/dash-to-panel@jderose9.github.com/
Longitud dinámica
En panelSettings.js, el valor de reserva utilizado cuando no existe una longitud específica se modificó de 100 a -1.
El objetivo es que la barra utilice la longitud dinámica como comportamiento predeterminado.
Centrado de la barra de tareas
En panelPositions.js, la posición predeterminada del grupo de aplicaciones se modificó para utilizar CENTERED_MONITOR, cuyo valor es centerMonitor.
Configuración global mediante dconf
Se configuraron valores predeterminados del sistema en:
/etc/dconf/db/local.d/00-titalcruise-gnome
Entre ellos se encuentran la posición inferior de la barra, el tamaño de 48, la longitud dinámica predeterminada, la opacidad configurada y otros ajustes de apariencia.
El perfil de dconf utiliza:
user-db:user
system-db:localDespués de modificar los valores predeterminados, se ejecuta:
sudo dconf updateEstos valores son predeterminados del sistema. No equivalen a políticas obligatorias y las preferencias personales pueden prevalecer sobre ellos.
8. Compilación del proyecto
El directorio de trabajo es:
cd ~/Descargas/gnome-control-center-debian-latestPara compilar los cambios:
ninja -C buildEl proceso debe finalizar correctamente antes de instalar o probar la versión recién compilada.
Para iniciar directamente la versión de desarrollo:
pkill -x gnome-control-center 2>/dev/null || true
./build/shell/gnome-control-centerEste comando permite comprobar el panel desde el ejecutable construido en el directorio build.
9. Instalación global
La instalación de los archivos compilados se realiza mediante:
sudo meson install -C buildEl prefijo configurado para esta compilación es /usr/local.
El ejecutable instalado se encuentra en:
/usr/local/bin/gnome-control-center
Los metadatos globales del panel se encuentran en:
/usr/local/share/applications/gnome-titalcruise-desktop-panel.desktop
Durante la integración también se ajustó el servicio D-Bus de GNOME Settings para utilizar el ejecutable instalado:
/usr/local/bin/gnome-control-center --gapplication-service
Se conservó una copia de seguridad del servicio original en:
/usr/share/dbus-1/services/org.gnome.Settings.service.backup
Precaución: no eliminar ni sobrescribir esa copia sin comprobar antes que el servicio instalado funciona correctamente.
10. Verificación de la instalación
Para comprobar que el ejecutable instalado reconoce el panel:
/usr/local/bin/gnome-control-center --listLa lista debe incluir:
titalcruise-desktopPara verificar los metadatos globales:
grep -E '^(Name|Icon|Exec)=' \
/usr/local/share/applications/gnome-titalcruise-desktop-panel.desktopEl archivo debe incluir el nombre del panel, el icono video-display-symbolic y el comando de apertura correspondiente.
Para verificar las modificaciones de Dash to Panel:
grep -nE 'return -1|CENTERED_MONITOR' \
/usr/share/gnome-shell/extensions/dash-to-panel@jderose9.github.com/panelSettings.js \
/usr/share/gnome-shell/extensions/dash-to-panel@jderose9.github.com/panelPositions.jsFinalmente, se recomienda abrir GNOME Configuración y comprobar visualmente la sección, los controles y sus efectos sobre la barra de tareas.
11. Resolución del conflicto con el icono
Durante el desarrollo existía una copia de los metadatos en el directorio personal:
~/.local/share/applications/gnome-titalcruise-desktop-panel.desktop
Esa copia contenía un icono diferente y tenía prioridad sobre el archivo global.
Se corrigió el icono y, posteriormente, se deshabilitó la copia local para que GNOME utilizara los metadatos instalados globalmente.
La resolución se verificó mediante la consulta de los metadatos, que identificó como archivo activo:
/usr/local/share/applications/gnome-titalcruise-desktop-panel.desktop
Este caso demuestra la importancia de comprobar si existen archivos de usuario que estén ocultando una instalación global.
12. Respaldos y mantenimiento
Durante el desarrollo se crearon copias de seguridad de los archivos del panel y de Dash to Panel.
Después de verificar la instalación, se eliminaron los respaldos antiguos que ya no eran necesarios.
Se conservaron temporalmente los siguientes archivos:
cc-titalcruise-desktop-panel.c.bak-before-switch-fix
panelSettings.js.bak-titalcruise-defaults
panelPositions.js.bak-titalcruise-defaults
Conviene conservarlos hasta validar el comportamiento de la instalación en nuevas cuentas de usuario y comprobar que los valores predeterminados se aplican correctamente.
13. Consideraciones de compatibilidad
Las modificaciones de GNOME Control Center y Dash to Panel están vinculadas a las versiones de los componentes instalados.
Una actualización puede reemplazar los archivos de la extensión o cambiar las interfaces de programación utilizadas por el panel.
Después de una actualización importante, se recomienda:
Comprobar que el panel continúa apareciendo en GNOME Configuración.
Revisar la compatibilidad del código C y Blueprint.
Comprobar los valores predeterminados de Dash to Panel.
Compilar y ejecutar las pruebas.
Instalar la nueva versión únicamente después de verificar la compilación.
Las modificaciones de archivos del sistema pueden necesitar reaplicarse tras una actualización del paquete correspondiente.
14. Estado final
La integración de «Escritorio de TitalcruiseOS» está implementada y funciona correctamente en el entorno probado.
Se verificó la presencia del identificador titalcruise-desktop en el ejecutable instalado, la utilización de los metadatos globales y el funcionamiento de los controles corregidos.
Quedan como tareas de mantenimiento la validación específica de la opacidad personalizada y la comprobación de los valores predeterminados con una cuenta nueva.
Resultado: GNOME Control Center dispone de una sección de configuración propia de TitalcruiseOS para gestionar opciones de Dash to Panel desde la interfaz nativa del escritorio.


Comentarios