Apakah ada kombinasi baris perintah dan peramban file grafis yang bagus?

15

Apakah ada solusi yang layak daripada menggabungkan keuntungan dari command-line dan file browser grafis?

Misalnya, baris perintah baik untuk mengubah direktori dan mengeksekusi perintah tetapi tidak dapat menampilkan thumbnail dan browser file intuitif, memberikan gambaran yang baik tentang di mana Anda berada di pohon tetapi Anda tidak dapat "berbicara" dengan komputer suka di baris perintah.

EDIT: bagi saya, sebagai pengguna baris perintah, ini lebih seperti membutuhkan baris perintah dengan kemampuan browser file tambahan daripada memiliki browser file dengan beberapa fitur baris perintah.

dStulle
sumber

Jawaban:

9

Dolphin terlihat seperti apa yang Anda cari:

Tetapi terminal adalah budak dari navigasi direktori (jika Anda mengubah direktori di GUI, itu berubah di terminal, tetapi tidak sebaliknya).

Untuk mengubah direktori aplikasi ketika Anda mengubah direktori saat ini di terminal, Anda dapat membuat shell Anda mengirim pesan ke Dolphin untuk memperbarui tampilan. Tambahkan ini ke file rc shell Anda ( Peringatan: tidak diuji secara menyeluruh, tetapi berfungsi di sini untuk situasi yang paling umum, gunakan dengan risiko Anda sendiri):

Pesta:

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

Ada masalah dengan ini. Ketika jendela Dolphin mengubah direktori saat ini, terminal kehilangan fokus. Anda mungkin ingin meminta perbaikan bug (atau bahkan melengkapi dukungan asli untuk fitur ini) kepada pengembang, jika Anda menyukainya.

Juliano
sumber
Sayangnya mengubah direktori dari baris perintah adalah salah satu fitur penting bagi saya.
dStulle
@dStulle: Jika Anda hanya ingin menggunakan keyboard untuk mengubah direktori, Anda dapat mengetikkan Ctrl-LDolphin untuk membuat kursor melompat ke bilah alamat, di mana Anda dapat mengetik alamat direktori baru dan tekan Enteruntuk menavigasi ke sana. Jika Anda benar-benar ingin mengetikkan cdbaris perintah, Anda harus dapat membuat peretasan yang mengeksekusi qdbusuntuk mengirim pesan org.kde.dolphin.MainWindow.changeUrl($PWD)kembali ke Dolphin. Tapi saya pikir Anda harus mencobanya, sebagian besar membiasakan diri dengan paradigma baru integrasi GUI-Terminal.
Juliano
ini bukan tentang "mengetik" lokasi tetapi untuk "menjadi" di baris perintah. qdbus sangat bagus dan dapat bekerja untuk ini, tetapi tidak dapat menemukan cara menghubungkan Terminal ke instance dolphin-nya. jika ada lebih dari satu Dolphin windows terbuka sepertinya Anda tidak dapat menentukan yang mana untuk mengubahUrl dan saya juga tidak dapat menemukan cara baik alias, skrip atau fungsi untuk juga mengubah direktori baris perintah saat ini. EDIT: sepertinya orang lain melakukannya saat saya mencoba ...
dStulle
Layanan Dolphin dapat dilihat di terminal dari variabel env $ KONSOLE_DBUS_SERVICE. Ini adalah masalah nyata jika Anda memiliki dua jendela yang terbuka dengan instance Dolphin yang sama. Saya benar-benar tidak tahu bagaimana membedakannya. Ada $ KONSOLE_DBUS_SESSION, tetapi tautannya hanya ke sesi konsole, bukan ke jendela lumba-lumba. Bagaimanapun, Anda harus menyarankan fitur ini ke pengembang Dolphin, setengahnya diterapkan di atas.
Juliano
Untuk memperjelas: kekurangan Dolphin adalah: (1) tidak mengambil fokus dari widget terminal ketika changeUrl () dipanggil, dan (2) variabel lingkungan yang memberitahu jendela terminal mana yang dilampirkan, sehingga skrip di atas dapat mengirim pesan ke jendela yang benar.
Juliano
4

Gnome Commander adalah manajer file dengan baris perintah shell di bagian bawah. Midnight Commander (mc) serupa, tetapi dalam mode teks. (Keduanya mendapatkan inspirasi dari Norton Commander .)

Gilles 'SO- berhenti menjadi jahat'
sumber
sayangnya sepertinya tidak memiliki fungsi [tab] -otomatis-lengkap yang penting untuk baris perintah dan pratinjau file-nyata.
dStulle
Ctrl-O akan menjatuhkan Anda ke shell di Midnight Commander dan Ctrl-Enter akan menempatkan nama item apa pun yang dipilih ke dalam baris perintah. Tidak persis sama dengan [tab] pelengkapan otomatis tetapi cukup dekat.
3

Nautilus Terminal adalah plugin untuk Nautilus (pengelola file Gnome).

Direktori tidak mengikuti baris perintah, tapi itu cukup cepat untuk melakukan pwd | xclip, <Ctrl> +<l>,<Ctrl>+<v>

Shawn J. Goff
sumber
Juga bagus tetapi seperti yang disebutkan, file-browser juga tidak mengikuti command-line. Tampaknya juga tidak "cd" ke direktori baru tetapi memulai contoh bash baru yang lengkap. Dan beberapa cara pintas seperti "ctrl-a" tidak memengaruhi baris perintah tetapi pada file-browser.
dStulle
0

Di bawah ini adalah variasi jawaban oleh @Juliano menggunakan terminal lumba-lumba + qdbus + (ditambahkan di sini sebagai jawaban alih-alih komentar sehingga dapat memformat cuplikan kode.) Variasi ini juga memiliki keterbatasan, dan jelas merupakan peretasan.

Ini juga mengasumsikan "lumba-lumba" menjalankan terminal yang terpasang (lihat> panel> terminal; atau, tekan "F4"). Sama seperti proposal lainnya, ia mengirim perintah ke lumba-lumba untuk memperbarui jalur di gui agar sesuai dengan PWD di konsol. Untuk memaksa terminal mempertahankan fokus, ia mengirim tutup / buka (f4 + f4) ke jendela terminal menggunakan xte (xautomation): yaitu, secara otomatis menutup dan segera membuka kembali terminal sehingga mendapatkan kembali fokus.

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

Masalah utama (selain sedikit kedipan ketika terminal ditutup / dibuka kembali) adalah bahwa lumba-lumba (karena alasan tertentu) memasukkan "control + c" plus "cd {dir}" (di mana "dir" adalah path dari file tersebut manajer) ke terminal setiap kali terminal dibuka kembali, mengganggu perintah lain yang sedang diketik. (Sunting: untuk menambahkan retas saat retas, sebagai solusi lain untuk ini: hanya alias ccd=cd karena karakter "c" dari kontrol ini + c tampaknya selalu dimasukkan di depan a cd {path}...)

Tentu saja akan lebih baik untuk memiliki perbaikan yang tepat dalam lumba-lumba, untuk memiliki terminal mempertahankan fokus dan / atau memiliki seluruh fitur ini dibangun menjadi lumba-lumba.

michael
sumber