https://foro.gambas-es.org/viewtopic.php?f=1&t=5240
-----------------------------------
Grandamakulo
Viernes, 11 Marzo 2016, 13:29

Archivos En El Escritorio
-----------------------------------
Hola, tengo tres preguntas sobre acceso a archivos y sus propiedades en el escritorio:

En primer lugar, ¿cómo acceder al escritorio?
En segundo lugar, ¿Cómo cambiar un icono de un archivo del escritorio?
En tercer lugar, ¿cómo cambiar el tamaño del icono?

Creo que la primera pregunta es algo parecido a:

[code linenumbers=false syntax=gambas]Dim strRuta As String = User.Home & "/Escritorio/Previo.svg"[/code]

Pero me parece una solución «local» por el nombre de «Escritorio»


-----------------------------------
vuott
Viernes, 11 Marzo 2016, 18:22

Re: Archivos En El Escritorio
-----------------------------------
En términos generales, para acceder a lo que se refiere al escritorio, se utilizan las Clases de los Componentes [i][color=#A50000]gb.desktop[/color][/i] y [i][color=#A50000]gb.desktop.x11[/color][/i] .


-----------------------------------
shordi
Viernes, 11 Marzo 2016, 18:53

Re: Archivos En El Escritorio
-----------------------------------
[quote user="Grandamakulo" post="30873"]Hola, tengo tres preguntas sobre acceso a archivos y sus propiedades en el escritorio:

En primer lugar, ¿cómo acceder al escritorio?
En segundo lugar, ¿Cómo cambiar un icono de un archivo del escritorio?
En tercer lugar, ¿cómo cambiar el tamaño del icono?

Creo que la primera pregunta es algo parecido a:

[code linenumbers=false syntax=gambas]Dim strRuta As String = User.Home & "/Escritorio/Previo.svg"[/code]

Pero me parece una solución «local» por el nombre de «Escritorio»[/quote]
Se accede tal como has dicho, con user.home. Lo que es una solución local, cierto, durante un tiempo al instalar mis aplicaciones lo que hacía es comprobar si existía la carpeta "Escritorio" y si no existía creaba un enlace llamado Escritorio a user.home &/ "Desktop".
Hoy día no lo hago... ¿para qué? Mis programas no se usan más allá de la Mancha Manchega...

El cambio del icono de un archivo del escritorio es algo más complejo (si lo que preguntas es cambiarlo desde gambas, claro), Tienes que localizar el archivo en cuestión, no es más que un archivo de texto) y cambiar el contenido de la línea que empieza con "Icon=" para que apunte a la imagen que quieras (algo así: Icon=/home/yo/Imágenes/miIcono.png)

Respecto a lo del tamaño del Icono, no sé si en el "lenguaje de crear accesos directos", hay posibilidad de limitar el tamaño o no, si no fuese así tendrás que modificar la imagen en cuestión con un programa de edición de imágenes. Con la librería Imagemagick o algo así sería muy sencillo.

Saludos.


-----------------------------------
Grandamakulo
Lunes, 14 Marzo 2016, 13:06

Re: Archivos En El Escritorio
-----------------------------------
Gracias a ambos por vuestras respuestas.
Sí, he accedido, pero tengo un problemas. Mientras que puedo hacer todas las pruebas que quiera en «/tmp/», en escritorio me da problemas cuando hago varias escrituras o lecturas.
Por otro lado, Shordi, no encuentro —o no sé buscar— el archivo de texto donde está el icono. ¿Serías tan amable de darme alguna indicación más concreta?.
Insisto en el agradecimiento preliminar.


-----------------------------------
shordi
Lunes, 14 Marzo 2016, 17:25

Re: Archivos En El Escritorio
-----------------------------------
[quote user="Grandamakulo" post="30981"]Gracias a ambos por vuestras respuestas.
Sí, he accedido, pero tengo un problemas. Mientras que puedo hacer todas las pruebas que quiera en «/tmp/», en escritorio me da problemas cuando hago varias escrituras o lecturas.[/quote]
Como subas el código que usas, no hay nada que decir: un path es un path y lo mismo da uno que otro (derechos aparte).

[quote]Por otro lado, Shordi, no encuentro —o no sé buscar— el archivo de texto donde está el icono. ¿Serías tan amable de darme alguna indicación más concreta?.
Insisto en el agradecimiento preliminar.[/quote]
Es que eso dependerá de la distribución de linux que quieras usar y del icono que quieras modificar, etc. etc.
Sin saber exactamente qué quieres hacer y qué distribución usas, etc. poco te podemos adelantar.
Lo mejor que puedes hacer:
Sube tu proyecto, o la parte que da problemas de manera que podamos reproducir el error.
¿Cómo subir tu proyecto: dentro de gambas: Proyecto->crear->archivo fuente Eso te crea un archivo tar.gz con el proyecto. Luego en un nuevo hilo, o en éste mismo pulsando "post reply" lo adjuntas con el botón "agregar adjunto".
Es lo más rápido, que si no resolver algo se vuelve eterno con eso de "he probado esto y da este error"... "Prueba lo otro"... "He probado lo otro y lo mismo" , etc. etc.

Saludos.


-----------------------------------
jguardon
Martes, 15 Marzo 2016, 00:00

Re: Archivos En El Escritorio
-----------------------------------
Un icono en el escritorio que es un lanzador (o acceso directo para los más windowseros) no es más que un fichero de texto con la extensión .desktop y con cierta información como la ruta, el icono, etc. La extensión la oculta el propio sistema operativo, pero está ahí...

Por lo tanto, la ruta podría ser similar a esto:

/home/usuario/Desktop/milanzador.desktop

Si lo abres con un editor de texto, verás su contenido y entenderás fácilmente cómo crear otros programáticamente.

Saludos


-----------------------------------
Grandamakulo
Jueves, 17 Marzo 2016, 10:41

Re: Archivos En El Escritorio
-----------------------------------
Gracias a ambos por contestarme.
Efectivamente, Juan, hice como me indicaste:

[code linenumbers=false syntax=config][Desktop Entry]
Name=SuperTuxKart
Icon=/usr/share/pixmaps/supertuxkart_128.png
GenericName=A kart racing game
GenericName[de]=Ein Kart-Rennspiel
GenericName[fr]=Un jeu de karting
GenericName[gl]=Xogo de carreiras con karts
GenericName[ro]=Un joc de curse cu carturi
Exec=/usr/games/supertuxkart --no-console
Terminal=false
StartupNotify=false
Type=Application
TryExec=/usr/games/supertuxkart
Categories=Game;ArcadeGame;[/code]

Aclarado ese punto, os comento —y adjunto el código al final— cuál era mi idea.
Trataba de generar notas en el escritorio colocando a un acceso directo un icono svg conteniendo dicha nota. Pero mi gozo en un pozo cuando me he dado cuenta de que Linux Mint 17.3 no interpreta correctamente la etiqueta <TextPath>. Adjunto como quedaría en W3 school, y, os lo creéis, en Inkscape, y después como queda en Gambas3, que es similar a como queda el icono.
W3School —e Inkscape—:
 [img]http://foro.gambas-es.org/files/images/2876/captura_de_pantalla_de_2016_03_17_10_28_07.png[/img] 
Gambas3 —y escritorio y previsualizador de imágenes—:
 [img]http://foro.gambas-es.org/files/images/2876/captura_de_pantalla_de_2016_03_17_10_28_26.png[/img] 
En fin, proyecto, de momento, suspendido.
En cualquier caso, insisto en el agradecimiento a la resolución de dudas.


-----------------------------------
shordi
Jueves, 17 Marzo 2016, 11:04

Re: Archivos En El Escritorio
-----------------------------------
Creo que hay un error de concepto en lo que es un acceso directo. Un acceso directo es una imagen con un pequeño texto debajo. No es una mini página web. Podrías utilizar alguna librería externa de imágenes, como imagemagick o algo así para generar las imágenes que contuviesen el texto... quizá Vuott te pueda ayudar.

Se podría hacer con otro enfoque, haces una aplicación que sólo muestre un icono en el panel y que abra formularios visibles según una base de datos o un archivo settings o algo así.
El formulario que tienes archivaría esa lista de notas y la otra aplicación se encargaría de generar los avisos en el escritorio.
No es demasiado complejo de hacer.

También puedes integrar tus notas en los mensajes del sistema. Es lo más simple y coherente con el tema de escritorio que maneje el usuario. Eso sí, no es tan bonito...

Saludos.


-----------------------------------
Grandamakulo
Jueves, 17 Marzo 2016, 12:16

Re: Archivos En El Escritorio
-----------------------------------
Gracias, Shordi.
No tengo dudas sobre los enlaces. De hecho, el archivo se guarda en el directorio del propio programa —o esa es la idea, lo mismo que la base de datos de las notas—. De momento, loque  me interesaba era emplear svg en una imagen, porque lo probé en W3school e Inkscape y me gustó el resultado. Una parte MUY importante es la estética.
Dicho de otra manera:

Base de datos de etiquetas: Directorio de programa. —Similar a Tomboy.—
Datos de etiqueta: Directorio de programa.
Lectura/Escritura en tiempo real: tmp .—Esto sí está parcialmente terminado.—
Icono de acceso directo —etiqueta en sí—: Escritorio.

Como ves en el programa, ni siquiera está implementada la función guardar o editar.
En cualquier caso, lo que me da pereza es programar una función [i]Wrap[/i] con las etiquetas <tspan> de svg, con lo que se podría suplir la compatibilidad de <TextPath> en casi cualquier escritorio. Creo que intentaré tirar por ahí.


-----------------------------------
Grandamakulo
Jueves, 17 Marzo 2016, 12:51

Re: Archivos En El Escritorio
-----------------------------------
PS.- Ya había intentado «dibujar» texto en un [i]Drawbox[/i] y guardarlo como imagen png, pero el resultado me pareció pobre, por eso he continuado con svg.


