2010-09-05 13 views
48

He tenido un interés de larga data en desarrollar una interfaz de usuario del sistema operativo adaptada a mis necesidades e intereses. Cuando era más joven, me volví loco jugando con las herramientas de peinado de Stardock para Windows. Me encantó desarrollar mis propios estilos de ventana e ideas de diseño. Desde entonces he tenido un picor inclasificable.GUI personalizada de Linux: ¿Por dónde empezar?

  • No estoy particularmente interesado en jugar con las operaciones de kernel de nivel inferior, solo los aspectos de presentación. He estado considerando algún sabor de Linux.
  • Si bien me encantaría tener algunas herramientas/aplicaciones básicas integradas que yo mismo creo, estoy interesado principalmente en las presentaciones de ventanas básicas, barras de herramientas, escritorio y administración de archivos.
  • No quiero que se bloquee el uso de aplicaciones existentes, si es posible. Yo, por ejemplo, no tengo ningún interés en escribir mi propio navegador web, pero tener la capacidad de trabajar herramientas existentes en un diseño sería una gran ventaja.
  • Mis ideas son a veces muy visuales por naturaleza, por lo que la capacidad de producir efectos de transparencia más complejos y formas de ventana inusuales sería útil. Más o menos la capacidad de reproducir la fidelidad gráfica de los diseños actuales de UI para OS X o Windows sería ideal.
  • Se recomienda un sistema operativo y herramientas que me permitan comenzar con una pantalla en blanco y trabajar desde cero o incluir elementos básicos. La idea de un "escritorio" en el sentido tradicional no debería ser obligatoria. La flexibilidad para hacer cosas diferentes es importante para mí.

Lo que estoy buscando:

estoy interesado en lo sabores de Linux/OS podría tener sentido, qué herramientas/marcos serían útiles para llevar a cabo la tarea (Qt parece ser una sugerencia popular aquí), e información básica sobre cómo/dónde uno podría comenzar a desarrollar/probar dicha interfaz de usuario. También me gustaría leer acerca de cualquier interfaz de usuario "personal" que las personas puedan haber desarrollado.

Este es un interés que va más allá de mi trabajo normal de desarrollo, así que como una exención de responsabilidad, perdón mi ingenuidad si parece que estoy confundido. Información correctiva bienvenida.

Me doy cuenta de que esta es una gran pregunta, así que gracias a ellos por tomarse el tiempo para hacer sugerencias.

Respuesta

38

Quiere construir su propio DE (entorno de escritorio). Los ejemplos más comunes son GNOME y KDE, aunque muchos de ellos son populares. En realidad solía ser muy popular crear tu propio DE, y a menudo se creaban herramientas de scripting dedicadas.

Por lo general, necesitará combinar varias herramientas: un administrador de ventanas, un programa de barra de herramientas, un administrador de escritorio (iconos), administrador de sesión, posiblemente más. Fuera de eso, solo un administrador de ventanas es una parte requerida (por lo general no tiene ningún sentido no ejecutar WM dentro del servidor X), y otros son opcionales. Por lo general, no escribirás estas herramientas desde cero (es mucho trabajo), pero usa componentes ya disponibles.

Tenga en cuenta que tanto GNOME como KDE en realidad se componen de estos elementos (bien integrados).Por ejemplo, GNOME consta de un administrador de ventanas (metacity), barras de herramientas (gnome-panel), administrador de escritorio (nautilus), y así sucesivamente. Puede cambiar un elemento a otro si lo desea: solía ser popular usar sawfish como gestor de ventanas en lugar de metacity, manteniendo intactos todos los otros elementos. Ahora es popular usar compiz en lugar de metacity.

Solía ​​usar FVWM, que es un administrador de ventanas con capacidades adicionales (bastante buenas) para crear scripts que se pueden usar para crear barras de herramientas, menús y otras cosas. Uno de los buenos ejemplos es FVWM-Crystal, que es un DE completo basado en FVWM y algunas otras herramientas, escrito en una mezcla de scripts FVWM y Python. En realidad, puedes cambiar cualquier tipo de comportamiento en tiempo de ejecución simplemente abriendo la consola de scripts de FVWM y escribiendo comandos. FVWM-Crystal puede ser un buen punto de partida si desea partir de algo que ya se puede usar; El FVWM desnudo es bueno si quiere construir su DE desde cero.

[ACTUALIZACIÓN: parece que gnome-shell es muy similar en este sentido a FVWM. La mayor parte de su comportamiento está escrito con JavaScript (en lugar de un lenguaje personalizado en FVWM), y es muy fácil de cambiar. También se desarrolla muy activamente, ya que es una parte importante de GNOME3, con muy buen soporte para la composición. Es un paraíso para los hackers ;-)]

[UPDATE2: así que parece que tenía razón en gnome-shell. Hay una Cinnamon, que utiliza el mismo marco (director mutter ventana) como gnome-shell, pero construye un escritorio que funciona de una manera diferente que gnome-shell]

Había un sitio web que era una buena fuente de ideas para poner en práctica:. lynucs.org . Ya no funciona hace dos años, pero tiene archived.

Advertencia: muchos de estos componentes no se mantienen más, especialmente desde que GNOME/KDE comenzó a ser realmente utilizable. El desarrollo en esta área generalmente se basa más en los requisitos específicos de los dispositivos integrados: phones o netbooks.

Ahora, para responder a sus preguntas reales:

  • Linux/OS flaver: nada fácilmente personalizable: Debian, Arch, Gentoo, LFS ...
  • Herramientas/Frameworks: depende de lo que haga quiero lograr Si desea escribir una barra de herramientas personalizada, puede usar algunos lenguajes de scripting (como FVWM), herramientas personalizadas como adesklets, o escribir la suya en Qt (si la mayoría de sus otros componentes están en Qt) o GTK (si la mayoría de los otros componentes está en GTK).
  • UI personales: había muchas, y sitios como lynucs.org eran una buena compilación de ellos (componentes listados en lynucs utilizados en cada escritorio).
  • Efectos de transparencia complejos: las herramientas más antiguas generalmente no lo manejan de forma nativa, o hacen cosas simples como simplemente reutilizar parte del fondo de escritorio como fondo (lo que se conoce como transparencia falsa). Lo más probable es que necesite escribir su propio código, por ej. como un complemento al compiz.
2

Probablemente comenzaría con una instalación de Ubuntu y el administrador de ventanas OpenBox y construiría desde allí.

OpenBox es muy mínimo pero puede agregar aplicaciones (p. Ej., Docky, Awn, etc.) para proporcionar elementos de interfaz de escritorio o escribir los suyos propios.

+1

Supongo que la idea aquí es que en el caso de las "aplicaciones adicionales" estaría interesado en tener mi propia versión de este tipo de widgets. Y mi investigación es realmente acerca de poder trabajar desde cero y qué herramientas son buenas para eso, al mismo tiempo que tengo acceso a este tipo de sistemas, si así lo desea. – grey

1

Si UI rápido y atractivo sugeriría que mirara en Enlightenment. Es más antiguo que Gnome y me pareció una opción extremadamente rápida y de bajo consumo de recursos.

0

¿Has probado Tcl/Tk? Tcl es un lenguaje de scripting. Tk es la GUI parte del lenguaje.Su aplicación se ejecutará en todas partes incluso en Android usando AndroWish.

Tan fácil, y tan rápido.

En solo una hora, pude hacer una agenda con un calendario.

Cuestiones relacionadas