¿Hay una buena combinación de línea de comandos y navegador de archivos gráfico?

15

¿Existe una solución factible que combine las ventajas de una línea de comandos y un navegador gráfico de archivos?

Por ejemplo, la línea de comandos es buena para cambiar el directorio y ejecutar comandos, pero no puede mostrar miniaturas y el explorador de archivos es intuitivo, brinda una buena descripción de dónde se encuentra en el árbol pero no puede "hablar" con el computadora como en una línea de comandos.

EDITAR: para mí, como usuario de línea de comandos, es más como necesitar una línea de comandos con capacidades adicionales de explorador de archivos que tener un explorador de archivos con algunas características de línea de comandos.

dStulle
fuente

Respuestas:

9

Dolphin se parece a lo que estás buscando:

Pero el terminal es esclavo de su navegación de directorio (si cambia el directorio en la GUI, cambia en el terminal, pero no al revés).

Para cambiar el directorio de la aplicación cuando cambia el directorio actual en la terminal, puede hacer que su shell envíe un mensaje a Dolphin para actualizar su vista. Agregue esto a sus archivos rc de shell ( Advertencia: no se ha probado exhaustivamente, pero funciona aquí para las situaciones más comunes, use bajo su propio riesgo):

Golpetazo:

if [ -n "$KONSOLE_DBUS_SERVICE" ]; then
  if qdbus "$KONSOLE_DBUS_SERVICE" /dolphin >/dev/null 2>&1; then
    cd() {
      builtin cd "$@"
      qdbus "$KONSOLE_DBUS_SERVICE" /dolphin/MainWindow0 org.kde.dolphin.MainWindow.changeUrl "$PWD" >/dev/null
    }
  fi
fi

Zsh:

if [ -n "$KONSOLE_DBUS_SERVICE" ]; then
  if qdbus "$KONSOLE_DBUS_SERVICE" /dolphin >/dev/null 2>&1; then
    chpwd() {
      qdbus "$KONSOLE_DBUS_SERVICE" /dolphin/MainWindow0 org.kde.dolphin.MainWindow.changeUrl "$PWD" >/dev/null
    }
  fi
fi

Hay un problema con esto. Cuando la ventana Dolphin cambia el directorio actual, el terminal pierde el foco. Si lo desea, puede solicitar una corrección de errores (o incluso completar el soporte nativo para esta función) a los desarrolladores.

Juliano
fuente
Desafortunadamente, cambiar los directorios desde la línea de comandos es una de las características importantes para mí.
dStulle
@dStulle: si solo desea usar el teclado para cambiar el directorio, puede escribir Ctrl-LDolphin para que el cursor salte a la barra de direcciones, donde puede escribir la dirección del nuevo directorio y presionar Enterpara navegar hasta él. Si realmente desea escribir cden la línea de comandos, debería poder realizar un hack que se ejecute qdbuspara enviar el mensaje de org.kde.dolphin.MainWindow.changeUrl($PWD)vuelta a Dolphin. Pero creo que deberías intentarlo, se está acostumbrando principalmente a un nuevo paradigma de integración GUI-Terminal.
Juliano
no se trata de "escribir" la ubicación sino de "estar" en la línea de comandos. qdbus es muy agradable y podría funcionar para esto, pero no pudo encontrar cómo vincular la Terminal a su instancia de delfín. si hay más de una ventana de Dolphin abierta, parece que no pudo determinar en cuál cambiar Url y tampoco pude encontrar una forma de alias, script o función para cambiar también el directorio actual de la línea de comandos. EDITAR: parece que alguien más lo hizo mientras intentaba ...
dStulle
El servicio Dolphin se puede ver en el terminal desde la variable env $ KONSOLE_DBUS_SERVICE. Es un problema real si tiene dos ventanas abiertas de la misma instancia de Dolphin. Realmente no sé cómo distinguirlos. Hay un $ KONSOLE_DBUS_SESSION, pero solo se vincula a la sesión de konsole, no a la ventana de delfines. De todos modos, debe sugerir esta característica a los desarrolladores de Dolphin, la mitad de la misma se implementa anteriormente.
Juliano
Para aclarar: lo que le falta a Dolphin es: (1) no tomar el foco del widget del terminal cuando se llama a changeUrl (), y (2) una variable de entorno que indica a qué ventana está conectada el terminal, para que el script anterior pueda enviar el mensaje a la ventana correcta.
Juliano
4

Gnome Commander es un administrador de archivos con una línea de línea de comando de shell en la parte inferior. Midnight Commander (mc) es similar, pero en modo texto. (Ambos se inspiran en Norton Commander ).

Gilles 'SO- deja de ser malvado'
fuente
desafortunadamente parece carecer de la importante función [tab] -auto-complete para la línea de comandos y una vista previa real de la miniatura del archivo.
dStulle
Ctrl-O lo colocará en un shell en Midnight Commander y Ctrl-Enter colocará el nombre de cualquier elemento seleccionado en la línea de comando. No es lo mismo que [tabular] autocompletar pero bastante cerca.
3

Nautilus Terminal es un complemento para Nautilus (administrador de archivos de Gnome).

Los directorios no siguen la línea de comandos, pero es razonablemente rápido de hacer pwd | xclip, <Ctrl> +<l>,<Ctrl>+<v>

Shawn J. Goff
fuente
También es bueno, pero como se mencionó, el explorador de archivos tampoco sigue la línea de comandos. También parece no "cd" en el nuevo directorio, pero inicia una nueva instancia de bash completa. Y algunos atajos como "ctrl-a" no afectan en la línea de comandos sino en el explorador de archivos.
dStulle
0

A continuación se muestra una variación de la respuesta de @Juliano usando el terminal dolphin + qdbus + (agregado aquí como respuesta en lugar de un comentario para formatear el fragmento de código). Esta variación también tiene limitaciones y definitivamente es un truco.

Esto también supone que "dolphin" está ejecutando un terminal conectado (ver> paneles> terminal; o presione "F4"). Al igual que la otra propuesta, envía un comando a dolphin para actualizar la ruta en la interfaz gráfica de usuario para que coincida con el PWD en la consola. Para forzar al terminal a retener el foco, envía un cierre / apertura (f4 + f4) a la ventana del terminal usando xte (xautomation): es decir, cerrando automáticamente y volviendo a abrir el terminal de inmediato para que recupere el foco.

if [ -n "$KONSOLE_DBUS_SERVICE" ]; then
  if qdbus "$KONSOLE_DBUS_SERVICE" /dolphin >/dev/null 2>&1; then
    cd() {
      [ "$1" != "$PWD" ] && do_send=true || do_send=false;
      builtin cd "$@"
      if $do_send ; then
        qdbus "$KONSOLE_DBUS_SERVICE" /dolphin/MainWindow0 org.kde.dolphin.MainWindow.changeUrl "$PWD" >/dev/null 2>&1
        xte 'key F4' >/dev/null > /dev/null 2>&1 
        xte 'key F4' >/dev/null > /dev/null 2>&1 
      fi
    }
  fi
fi

El problema principal (además del ligero parpadeo cuando el terminal se cierra / vuelve a abrir) es que el delfín (por alguna razón) inserta un "control + c" más "cd {dir}" (donde "dir" es la ruta del archivo administrador) en el terminal cada vez que el terminal se vuelve a abrir, lo que interfiere con los otros comandos que se están escribiendo. (Editar: para agregar hack tras hack, como otra solución para esto: solo alias ccd=cd porque el carácter "c" de este control + c siempre parece estar insertado delante de a cd {path}...)

Por supuesto, sería mejor tener una solución adecuada en Dolphin, que la terminal retenga el foco y / o que esta característica esté integrada en Dolphin.

Miguel
fuente