Esiste una buona combinazione di riga di comando e browser di file grafici?


15

Esiste una soluzione fattibile che combina i vantaggi di una riga di comando e un browser di file grafici?

Ad esempio, la riga di comando è utile per modificare la directory ed eseguire i comandi ma non può mostrare le anteprime e il browser dei file è intuitivo, offre una buona panoramica di dove ti trovi nella struttura ma non puoi "parlare" con computer come in una riga di comando.

EDIT: per me, come utente della riga di comando, è più come avere bisogno di una riga di comando con funzionalità aggiuntive di browser di file che avere un browser di file con alcune funzionalità della riga di comando.

Risposte:


9

Dolphin assomiglia a quello che stai cercando:

Ma il terminale è uno schiavo della sua navigazione nella directory (se si cambia la directory nella GUI, cambia nel terminale, ma non viceversa).

Per modificare la directory dell'applicazione quando si modifica la directory corrente nel terminale, è possibile fare in modo che la shell invii un messaggio a Dolphin per aggiornarne la vista. Aggiungi questo ai tuoi file shell rc ( Attenzione: non testato a fondo, ma funziona qui per le situazioni più comuni, usa a tuo rischio):

bash:

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

C'è un problema con questo. Quando la finestra di Dolphin cambia la directory corrente, il terminale perde lo stato attivo. Potresti voler chiedere una correzione (o persino il supporto nativo completo per questa funzione) agli sviluppatori, se ti piace.


Sfortunatamente cambiare directory dalla riga di comando è una delle caratteristiche importanti per me.
dStulle,

@dStulle: se vuoi semplicemente usare la tastiera per cambiare la directory, puoi digitare Ctrl-LDolphin per far saltare il cursore sulla barra degli indirizzi, dove puoi digitare l'indirizzo della nuova directory e premere Enterper spostarti su di essa. Se vuoi davvero digitare cdnella riga di comando, dovresti essere in grado di fare un hack che viene eseguito qdbusper inviare il messaggio org.kde.dolphin.MainWindow.changeUrl($PWD)a Dolphin. Ma penso che dovresti provarlo, si sta abituando principalmente a un nuovo paradigma di integrazione GUI-Terminal.
Juliano,

non si tratta di "digitare" la posizione ma di "essere" nella riga di comando. qdbus è molto bello e potrebbe funzionare per questo, ma non è riuscito a trovare il modo di collegare il Terminale alla sua istanza di delfino. se ci sono più finestre Dolphin aperte sembra che tu non riesca a determinare su quale cambiareUrl e anche io non riesco a trovare un modo alias, script o funzione per cambiare anche la directory corrente della riga di comando. EDIT: sembra che qualcun altro ha fatto mentre stavo provando ...
dStulle

Il servizio Dolphin è visibile nel terminale dalla variabile env $ KONSOLE_DBUS_SERVICE. È un vero problema se hai due finestre aperte della stessa istanza di Dolphin. Non so davvero come distinguerli. C'è un $ KONSOLE_DBUS_SESSION, ma si collega solo alla sessione di konsole, non alla finestra dei delfini. Ad ogni modo, dovresti suggerire questa funzione agli sviluppatori Dolphin, la metà è implementata sopra.
Juliano,

Per chiarire: cosa manca a Dolphin: (1) non attirare l'attenzione dal widget terminale quando viene chiamato changeUrl () e (2) una variabile d'ambiente che dice a quale finestra è collegato il terminale, in modo che lo script sopra possa inviare il messaggio nella finestra corretta.
Juliano,

4

Gnome Commander è un file manager con una riga di comando della shell in fondo. Midnight Commander (mc) è simile, ma in modalità testo. (Entrambi traggono ispirazione da Norton Commander .)


sfortunatamente sembra mancare l'importante funzione [tab] -auto-complete per la riga di comando e una vera anteprima-file-anteprima.
dStulle,

Ctrl-O ti farà cadere in una shell in Midnight Commander e Ctrl-Enter posizionerà il nome di qualsiasi elemento selezionato nella riga di comando. Non è lo stesso del completamento automatico [tab] ma abbastanza vicino.

3

Nautilus Terminal è un plugin per Nautilus (file manager di Gnome).

Le directory non seguono la linea di comando, ma è ragionevolmente veloce da fare pwd | xclip, <Ctrl> +<l>,<Ctrl>+<v>


Anche bello, ma come detto, anche il browser di file non segue la riga di comando. Inoltre sembra non "cd" nella nuova directory ma avvia una nuova istanza bash completa. E alcune scorciatoie come "ctrl-a" non influiscono sulla riga di comando ma sul browser dei file.
dStulle,


0

Di seguito è riportata una variante della risposta di @Juliano utilizzando dolphin + qdbus + terminal (aggiunta qui come risposta anziché come commento in modo da formattare lo snippet di codice). Questa variazione ha anche dei limiti ed è sicuramente un hack.

Ciò presuppone anche che "delfino" stia eseguendo un terminale collegato (vista> pannelli> terminale; oppure, premere "F4"). Proprio come l'altra proposta invia un comando a dolphin per aggiornare il percorso nella GUI in modo che corrisponda al PWD nella console. Per forzare il terminale a mantenere il focus, invia un close / open (f4 + f4) alla finestra del terminale usando xte (xautomation): cioè, chiudendo automaticamente e riaprendo immediatamente il terminale in modo che riacquisti il ​​focus.

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

Il problema principale (oltre al leggero sfarfallio mentre il terminale si chiude / riapre) è che delfino (per qualche motivo) inserisce un "control + c" più "cd {dir}" (dove "dir" è il percorso del file manager) nel terminale ogni volta che il terminale si riapre, interferendo con gli altri comandi che vengono digitati. (Modifica: per aggiungere hack su hack, un'altra soluzione per questo: proprio alias ccd=cd dal momento che il carattere "c" di questo controllo + c sembra sempre essere inserito davanti a a cd {path}...)

Naturalmente sarebbe meglio avere una correzione corretta in Dolphin, avere il terminale che mantenga il focus e / o che tutta questa funzionalità sia integrata in Dolphin.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.