En un afán de aprender Rust, decidí realizar como primer proyecto un programa simple, un lanzador de aplicaciones desde terminal, dejando las GUI para más adelante.
Llevo un par de días haciendo y deshaciendo, y tras un monton de Ctrl-C, Ctrl-V, correcciones, bugs agregados y practicando todas las malas prácticas que se pueden practicar en la programación, esto es lo que salió.
Ciertamente el uso de los Result me cambia mucho a mis clásicos bloques de try-catch.
Y ciertamente aun le falta mucho por hacer
A pesar de que hay un input para la búsqueda, de momento esta de adorno porque no busca.
Lo mismo con las acciones, se ven, pero no se puede seleccionar otra que no sea la ejecución normal del programa.
Presupone que usas kitty como terminal para las aplicaciones que la requieran. Se puede cambiar con una configuración opcional, pero sino esta instalada y la configuración no esta, explota.
El esquema de colores es simple, no esta bien contrastado, pero también esta previsto que se pueda configurar.
El código no es algo que este precisamente bien estructurado.
A saber que bugs se encuentren por ahí.
Y alguna cosa más que se me este escapando, sobre todo en el manejo de los Result
El código fuente todavía no esta publicado. Estoy pensando en que plataforma subirlo.
Pero de momento lo que ven es lo que hay. Se escuchan opiniones, sugerencias, quejas.
He probado a instalarlo con cargo y funciona, si alguno lo prueba y no compila me avisan, para ir agregando documentando las dependencias, porque la verdad, ni en cuenta cuando comencé.
Se distribuye bajo la licencia MIT, para quien le interese.
PD: se aceptan sugerencias para el nombre, la creatividad se fue de sabático.
Ahora sí, necesito de toda la imaginación que puedan tener. Estuve leyendo como subir mi proyecto a https://crates.io/, para que con el puro nombre se pueda instalar el programa sin necesidad de apuntar al repositorio.
El asunto es que ahí ya existe un crate llamado termrun, por lo que requiero un nombre nuevo para el proyecto.
Haciendo referencia a que está escrito en Rust: RustLauncher, RustRun, RustMenu…, sus opuestos (LauncherRust, RunRust…), agregando una Y (RustyLauncher…) y otras variaciones.
A veces, es mejor poner nombres que no signifiquen nada, como Paco, Desquiquefacertador, Hyperminwinner… Siempre puedes echar mano de la historia: dioses romanos, egipcios y griegos dan mucho juego, así como ciertos personajes históricos, topónimos y cosas así. ¿RocinanteLauncher?
Ahora mismo, eso es lo que se me ocurre. Espero que te den alguna idea.
Mi principal consejo es que lo consultes con la almohada. Los atascos creativos desaparecen cuando dejas de prestarles atención.
No participé antes en este hilo porque no tengo ni idea de Rust, pero lo leo. Tengo ganas de probar ese launcher.
Lockfile para evitar la existencia de múltiples instancias al mismo tiempo.
La cantidad de bugs supera los 8000
Ahora solo queda implementar la capacidad de manejar temas. Se aceptan propuestas respecto a la división de colores.
También se aceptan sugerencias para ajustes menores en la UI.
El tema del nombre sigue pendiente… No he decidido su nombre final . Esto es necesario para por fin poder subirlo a crates.io
Parece que es lo suficientemente estable como para que lo puedan empezar a probar. Yo lo uso desde que lo empecé a programar, pero sería bueno tener retroalimentación de otros usuarios…
Hmn… Sobre el nombre no lo sé, launcher no creo que sea muy descriptivo, capaz appmenu es mas descriptivo para ello…
Rust no creo que sea muy original… hay cientos de projectos que usan Rust…
La interfáz se separa prácticamente en 2/3, con 1/3 parte dividida en 3, se graficaría así:
_______
| | |-|
| | |-|
-------
Capáz un nombre para este podría ser I3menu, haciendo un juego de palabras con “I3” para aclarar que “I” se repite tres veces (III = 3) y para hacer referencia a i3wm, ya que el estilo me parece similar.
Se vé mas interesante, generalmente se pondría como LLLmenu, y L3menu suena mas interesante… capáz se podría estilizar aún mas poniéndolo como 3L menu (en matemáticas sería L*3 algebráico), o incluso nos quedaría como 3L.
Bueno, lo estoy probando.
Primero he intentado instalar usando cargo, pero no viene preinstalado. Busco en repositorios, hay un paquete que se llama así, lo instalo (raro: sólo tiene 2 dependencias…), se instala sin errores, voy a instalar tu herramienta y me suelta un error. Busco, y es que hay que instalar Cargo desde su página web, no el del repositorio. Purga, instala (ahora sí, chorrocientas mil dependencias, esto ya parece más normal), instalo el lanzador…
¡Funciona! Lanzo una aplicación, la abre, la cierro, pulso [TAB] para cambiar al buscador y pasa esto:
He repetido lo mismo 3 veces. El tabulador no hace nada, de todas formas. No sé cómo cambiar de sección.
No sé si instalar Kitty y probar con esa consola. Mañana, en cualquier caso.
Recién actualicé a la versión a la 0.1.2, que arregla algunos errores. Prueba a ver que tal te va.
Acabo de instalar en otra computadora la ultima versión de Mint para tener algo donde probar las cosas. Usando la terminal preinstalada, funciona más o menos bien. Eso sí, ejecutar una entrada que requiere una terminal no va a funcionar si no tienes kitty o cambias la terminal en el archivo de configuración.
Estaría bien que añadieras al primer post una guía básica: Instalar Cargo, configurar el programa… Esas cosas.
Acabas de mencionar que hay que editar un archivo de configuración. ¿Cuál es? ¿Dónde está? ¿Qué hay que cambiar?
De momento estoy instalando la nueva versión…
EDITO: Vale, el tabulador ya funciona. Ahora se cierra el launcher en cuanto abro cualquier programa; sin embargo, el programa elegido sí se abre sin problemas.