seleccionar archivos con script en ventana ROX
-
- Posts: 212
- Joined: Sun 25 Feb 2007, 14:39
seleccionar archivos con script en ventana ROX
Saludos
Tengo la necesidad de utilizar el aporte de MochiMopel para marcar una lista de archivos predeterminada
El script esta en (al final):
http://www.murga-linux.com/puppy/viewtopic.php?t=86079
Ya hice prueba en puppy thar 6 original (ingles) y funciona bien el script pero al españolizarlo ya no funciona y sale el error que se muestra en la imagen.
--Por donde hay que modificar dicho script?
mis agradecimientos
Tengo la necesidad de utilizar el aporte de MochiMopel para marcar una lista de archivos predeterminada
El script esta en (al final):
http://www.murga-linux.com/puppy/viewtopic.php?t=86079
Ya hice prueba en puppy thar 6 original (ingles) y funciona bien el script pero al españolizarlo ya no funciona y sale el error que se muestra en la imagen.
--Por donde hay que modificar dicho script?
mis agradecimientos
- Attachments
-
- error-rox-fileselect.png
- (70.98 KiB) Downloaded 582 times
Tampoco encontré solución. Pero si funciona en inglés, asi que... a revertir el cambio de idioma para ese programa xD
Luego de esos cambios (LANG=C, rox -n &, sleep) el script vuelve a funcionar. El cambio es temporal hasta cerrar el Rox en inglés.
Code: Select all
#! /bin/bash
FILES="/tmp/01TEST
/tmp/abTEST
/tmp/cdeTEST"
touch $FILES # Create some test files
LIST="/tmp/00_filelist.txt" # Assign variable LIST
echo "$FILES" > "$LIST" # Write file paths to file LIST
FIRSTFILE=$(head -n1 "$LIST") # Retrieve first file path in LIST
# Desactivar la localización/soporte de idiomas
LANG=C
# rox -n para abrir una nueva ventana sin reutilizar variables como el idioma
rox -ns "$FIRSTFILE" & # Open ROX-Filer with FIRSTFILE activated (but not yet selected)
sleep 0.2
xdotool key question # Shortcut '?' opens the 'Select If' entry field
xdotool type "system(grep \"%\" \"$LIST\")" # Define grep command
xdotool key Return # Run command. ROX selects all files matched in grep command
[url=http://www.puppylinux.com][img]http://i.imgur.com/M4OyHe1.gif[/img][/url]
-
- Posts: 212
- Joined: Sun 25 Feb 2007, 14:39
-
- Posts: 212
- Joined: Sun 25 Feb 2007, 14:39
Saludos
Estoy intentando forzaruna solución parecida a la que ofreció MochiMopel (''una locura!!')' para marcar una lista de archivos predeterminada, usando xdotool. He googleado mucho y por mi escasa experiencia en programación, llevo muchas horas en esta actividad.
El código inicial es el siguiente:
pero sucede que no siempre da el mismo resultado.
A veces solo da el nombre del archivo y a veces si captura toda la ruta.
en la figura de abajo, muestro las dos ventanitas con el resultado
En realidad, quiero capturar la ruta completa y no solo el nombre del archivo.
El proceso es así
- Abrir rox como lo sugiere MochiMopel
- marcar el archivo
- simular un proceso de copiar
- en la ventana copiar intentar capturar la ruta completa
- - - - enviar el cursor al inicio de la cadena en el cuadro dialogo sin seleccionar
- - - - seleccionar la cadena
- copiar la cadena selecionada
- cancelar el cuadro copiar
- trasladarse al archivo elegido previamente en rox
- trasladar la cadena capturada en el cuadro copiar a una variable
. (esto con el proposito de confirmar si ese archivo hay que selecionarlo o no)
- si es seleccionable, regresar la barra de seleccion al archivo anterior del que tiene el foco y marcarlo)
-- ... !?
Mi kid es lograr que siempre me marque toda la ruta
Gracias!
Estoy intentando forzaruna solución parecida a la que ofreció MochiMopel (''una locura!!')' para marcar una lista de archivos predeterminada, usando xdotool. He googleado mucho y por mi escasa experiencia en programación, llevo muchas horas en esta actividad.
El código inicial es el siguiente:
Code: Select all
#! /bin/bash
FILES="/tmp/01TEST
/tmp/abTEST
/tmp/cdeTEST"
touch $FILES # Create some test files
LIST="/tmp/00_filelist.txt" # Assign variable LIST
echo "$FILES" > "$LIST" # Write file paths to file LIST
FIRSTFILE=$(head -n1 "$LIST") # Retrieve first file path in LIST
rox -s "$FIRSTFILE" # Open ROX-Filer with FIRSTFILE activated (but not yet selected)
#for m in {1..40}; do ## numero de archivos de la lista en la ventana rox
xdotool key space
xdotool key --delay 1 --clearmodifiers ctrl+c # clear modifier quita la seleccion por omision ## eys("<ctrl>+v") keys("<ctrl>+x")
xdotool key --delay 3 --clearmodifiers p #--delay 1 pone el foco en el ppunto de insercion anterior
xdotool key --delay 4 --clearmodifiers Home #End enviar el cursor de texto al inicio de cadena en cuadro dialogo
xdotool key --delay 2 --clearmodifiers Home
#xdotool key --delay 0 --clearmodifiers Shift+Home
xdotool key --delay 3 Shift+End ##+End -- seleccionar el texto del cuadro dialogo
xdotool key ctrl+c # copiar texto cuadro dialogo
xdotool key Alt+F4 # cerrar ventana
sleep 0.1
xdotool key --clearmodifiers Tab # trasladarse al archivo elegido en rox -s "$FIRSTFILE"
sleep 0.1
xdotool key --delay 0 space # marcar el archivo mostrado en el cuadro dialogo
sleep 0.1
apega=$(xclip -selection clipboard -o) # capturar en variable la ruta del archivo
Xdialog --msgbox $apega 0 0
sleep 1
xdotool key --clearmodifiers Up # regresar la barra de seleccion al archivo anterior en la lista
sleep 0.1
#xdotool key --clearmodifiers Down
#done
exit 0
A veces solo da el nombre del archivo y a veces si captura toda la ruta.
en la figura de abajo, muestro las dos ventanitas con el resultado
En realidad, quiero capturar la ruta completa y no solo el nombre del archivo.
El proceso es así
- Abrir rox como lo sugiere MochiMopel
- marcar el archivo
- simular un proceso de copiar
- en la ventana copiar intentar capturar la ruta completa
- - - - enviar el cursor al inicio de la cadena en el cuadro dialogo sin seleccionar
- - - - seleccionar la cadena
- copiar la cadena selecionada
- cancelar el cuadro copiar
- trasladarse al archivo elegido previamente en rox
- trasladar la cadena capturada en el cuadro copiar a una variable
. (esto con el proposito de confirmar si ese archivo hay que selecionarlo o no)
- si es seleccionable, regresar la barra de seleccion al archivo anterior del que tiene el foco y marcarlo)
-- ... !?
Mi kid es lograr que siempre me marque toda la ruta
Gracias!
- Attachments
-
- b_selecFilesRox21.png
- (92.21 KiB) Downloaded 389 times
- mister_electronico
- Posts: 969
- Joined: Sun 20 Jan 2008, 20:20
- Location: Asturias_ España
- Contact:
no entiendo muy bien.
no entiendo muy bien lo que realmente quieres hacer.
Por que me baje el comando xdtool y la verdad que me parece un coñazo para manejarlo.
Pero en realidad lo que creo que quieres es que te haga es que se abra con rox el directorio donde esta ese archivo mostrandote este archivo, que lo podemos hacer mediante:
rox -s /tmp/abTEMP
El siguiente paso creo entender es hacer que se abra una ventana con el nombre de este archivo abTEMP para que se copie en archivo 01TEMP cosa que seria muy sencillo hacer mediante GTKdialog abriendo atraves del mismo script con la ruta completa como tu dices.
Quiza si fueramos paso a paso lo veriamos mejor.
Saludos.
Por que me baje el comando xdtool y la verdad que me parece un coñazo para manejarlo.
Pero en realidad lo que creo que quieres es que te haga es que se abra con rox el directorio donde esta ese archivo mostrandote este archivo, que lo podemos hacer mediante:
rox -s /tmp/abTEMP
El siguiente paso creo entender es hacer que se abra una ventana con el nombre de este archivo abTEMP para que se copie en archivo 01TEMP cosa que seria muy sencillo hacer mediante GTKdialog abriendo atraves del mismo script con la ruta completa como tu dices.
Quiza si fueramos paso a paso lo veriamos mejor.
Saludos.
-
- Posts: 212
- Joined: Sun 25 Feb 2007, 14:39
saludos mister_electronico
Intento replicar lo que logra MochiMopel para marcar una lista de archivos predeterminada.
La verdad que si puppy está en ingles el aporte de MochiMopel funciona genial. Pero sucede que los puppy a los que tengo acceso ya estan españolizados y el script da error.
Entonces, lo que intento es ir capturando nombre de archivo por nombre con el xdotool usando la ventana de copiar pues ahi se muestra toda la ruta
y luego comparar si el nombre está en la lista prederminada. En tal caso marcarlo
y dejarlo marcado. Luego pasar al siguiente archivo y repetir el proceso.. asi sucesivamente hasta revisar la lista que aparece en la ventana del rox con los archivos predeterminados ya seleccionados y aplicar una acción precisa sobre el conjunto.
El problema está en la parte donde se debe seleccionar la ruta completa en el interior del cuadro de diálogo copiar, pues como se observa en las figuras, a veces se selecciona toda la linea y a veces solo el nombre del archivo o a veces solo la ruta.
Supongo que el problema está en el uso de las lineas
Bueno, mis agradecimientos por mostrar interés en el problemilla.
También gracias a wow.
Intento replicar lo que logra MochiMopel para marcar una lista de archivos predeterminada.
La verdad que si puppy está en ingles el aporte de MochiMopel funciona genial. Pero sucede que los puppy a los que tengo acceso ya estan españolizados y el script da error.
Entonces, lo que intento es ir capturando nombre de archivo por nombre con el xdotool usando la ventana de copiar pues ahi se muestra toda la ruta
Code: Select all
xdotool key --delay 3 Shift+End ##+End -- seleccionar el texto del cuadro dialogo
xdotool key ctrl+c # copiar texto cuadro dialogo
Code: Select all
xdotool key --delay 0 space # marcar el archivo mostrado en el cuadro dialogo
y dejarlo marcado. Luego pasar al siguiente archivo y repetir el proceso.. asi sucesivamente hasta revisar la lista que aparece en la ventana del rox con los archivos predeterminados ya seleccionados y aplicar una acción precisa sobre el conjunto.
El problema está en la parte donde se debe seleccionar la ruta completa en el interior del cuadro de diálogo copiar, pues como se observa en las figuras, a veces se selecciona toda la linea y a veces solo el nombre del archivo o a veces solo la ruta.
Supongo que el problema está en el uso de las lineas
Code: Select all
xdotool key --delay 3 --clearmodifiers p #--delay 1 pone el foco en el ppunto de insercion anterior
xdotool key --delay 4 --clearmodifiers Home #End enviar el cursor de texto al inicio de cadena en cuadro dialogo
xdotool key --delay 2 --clearmodifiers Home
#xdotool key --delay 0 --clearmodifiers Shift+Home
xdotool key --delay 3 Shift+End ##+End -- seleccionar el texto del cuadro dialogo
También gracias a wow.
Viendo que ya tienes la lista de archivos y estás usando un script ¿No es más fácil realizar la acción deseada(mover, copiar, borrar, etc.) directamente desde línea de comandos?
También puedes preguntar en el IRC
También puedes preguntar en el IRC
[url=http://www.puppylinux.com][img]http://i.imgur.com/M4OyHe1.gif[/img][/url]
- mister_electronico
- Posts: 969
- Joined: Sun 20 Jan 2008, 20:20
- Location: Asturias_ España
- Contact:
Eso mismo digo yo.
Eso mismo digo yo.....jejeje. mezclando script con ventanas Gtkdialog si se quiere hacer de una forma digamos vistosa.
Que lio este comando xdotool.
Yo a lo maximo que he conseguido seleccionar archivos es mediante el siguiente script.
Suponiendo que hay un directorio imagenes dentro de home y dentro de este directorio hay varias imagenes jpg, y otros con otras extensiones de otro tipo,
Bueno pues en este script pongo que pique la imagen camera.jpg, bueno pues da igual que esta imagen exista o no al final acabara seleccionando todos los archivos que tengan extension jpg.
Con lo cual hasta ahi he llegado.. no veo la forma todavia de que marque archivos individuales.
Saludos.
Que lio este comando xdotool.
Yo a lo maximo que he conseguido seleccionar archivos es mediante el siguiente script.
Suponiendo que hay un directorio imagenes dentro de home y dentro de este directorio hay varias imagenes jpg, y otros con otras extensiones de otro tipo,
Bueno pues en este script pongo que pique la imagen camera.jpg, bueno pues da igual que esta imagen exista o no al final acabara seleccionando todos los archivos que tengan extension jpg.
Con lo cual hasta ahi he llegado.. no veo la forma todavia de que marque archivos individuales.
Code: Select all
#!/bin/bash
rox /mnt/home/imagenes
WID=`xdotool search --name "/mnt/home/imagenes" | head -1`
xdotool windowactivate $WID
xdotool key ctrl+l
xdotool type "camera.jpg"
xdotool key Return
sleep 2
-
- Posts: 212
- Joined: Sun 25 Feb 2007, 14:39
Re: seleccionar archivos con script en ventana ROX
Sólo hay que cambiar system por sistema en la sintaxisarivas_2005 wrote:Saludos
Tengo la necesidad de utilizar el aporte de MochiMopel para marcar una lista de archivos predeterminada
El script esta en (al final):
http://www.murga-linux.com/puppy/viewtopic.php?t=86079
Ya hice prueba en puppy thar 6 original (ingles) y funciona bien el script pero al españolizarlo ya no funciona y sale el error que se muestra en la imagen.
--Por donde hay que modificar dicho script?
mis agradecimientos
Code: Select all
xdotool type "system(grep "%" "$LIST")" # Define grep command
Code: Select all
xdotool type "sistema(grep "%" "$LIST")" # Define grep command