Aldo Ridhoni's Weblog Belajar Menulis

Tmux dalam Alacritty


cover

File Manager pada umumnya memiliki fitur ketika kita melakukan klik kanan, akan ada pilihan 'Open terminal here'. Pilihan tersebut akan membuka aplikasi default terminal dan memindahkan directory dimana kita melakukan klik kanan tersebut. Ada kalanya saya menggunakan terminal lain seperti Alacritty dengan command shell tmux.

Pada tulisan ini saya akan menggunakan Nautilus Python Binding untuk menambahkan menu tambahan untuk membuka Alacritty terminal dan langsung membuat halaman baru dalam tmux.

Setup

Kita mulai dengan menginstall paket:

sudo apt-get install python-nautilus


# atau

 sudo dnf install nautilus-python

Buat directory baru di ~/.local/share/nautilus-python/extensions/

Kode

Buat file baru dengan nama buka-alacritty.py

import os

from subprocess import call
from gi.repository import Gio, Nautilus, GObject

class BukaDiAlacritty(GObject.GObject, Nautilus.MenuProvider):
    def _call_alacritty(self, menu, file_):
        directory = Gio.File.new_for_uri(file_.get_uri()).get_path()
        invoke = f"alacritty --working-directory \'{directory}\' --command tmux new-window -c \'{directory}\'&"
        call(invoke, shell=True)
        call("wmctrl -xa Alacritty.Alacritty", shell=True)

    def get_background_items(self, window, file_):
        items = []
        item = Nautilus.MenuItem(
            name="BukaDiAlacritty::buka_directory",
            label="Buka di Alacritty",
            tip="",
        )
        item.connect("activate", self._call_alacritty, file_)
        items.append(item)
        return items

Pada variabel invoke, kita memanggil alacritty dengan argumen untuk mengubah directory serta memanggil perintah tmux. Pada call yang kedua, kita membuat window Alacritty menjadi fokus.

Hasil

Tutup nautilus dan buka kembali maka akan muncul seperti ini ketika diklik kanan. right-click