Setting Konfigurasi St Terminal Nixos

mrfdn author

Rafi

Catatan konfigurasi ST Terminal pada Nixos menggunakan Home Manager

Setting Konfigurasi St Terminal Nixos

mrfdn.com - Saat menggunakan ST Terminal, kita selalu dipaksa untuk menemukan berbagai macam pengaturan supaya bisa nyaman digunakan.

Secara default, ST terminal tampil sangat minimalis. Untuk membuatnya lebih baik, kita harus melakukan patch terhadap fitur tertentu.

Jadi kali ini saya ingin share setting saya selama menggunakan terminal ST di Nixos.

st terminal nixos

Install ST Terminal di Home Manager

Pengaturan ST Terminal saya simpan pada home-manager .

  nixpkgs.overlays = [
    (self: super: {
      st = super.st.overrideAttrs (oldAttrs: rec {
        patches = [
        ./st/st-scrollback-0.8.5.diff
        ./st/st-font2-0.8.5.diff
        ./st/st-glyph-wide-support-20220411-ef05519.diff
        ./st/st-charoffsets-20220311-0.8.5.diff
        #./st/st-anysize-20220718-baa9357.diff
        ];
        configFile = super.writeText "config.h" (builtins.readFile ./st/config.h);
        postPatch = oldAttrs.postPatch or "" + "\necho 'Using own config file...'\n cp ${configFile} config.def.h";
      });
    })
  ];


  home.packages = with pkgs; [
  gcc
  st
  ...
  ];

Install ST Terminal Menggunakan flakes

Jika menggunakan flakex, simpan file ini default.nix di sejajar dengan configuration.nix.

{pkgs, ...}:

let
  myOverlay = self: super: {
    st = super.st.overrideAttrs (oldAttrs: rec {
        src = ./st-0.9.2;
      # Specify the patches you want to apply
      patches = [
        ./patches/st-scrollback-0.9.2.diff
        ./patches/st-font2-0.8.5.diff
        ./patches/st-vertcenter.diff
        ./patches/st-nobadweight-20220308-4b53196.diff
        ./patches/st-boxdraw_v2-0.8.5.diff
      ];
         configFile = super.writeText "config.h" (builtins.readFile ./config/config.h);
        postPatch = oldAttrs.postPatch or "" + "\necho 'Using own config file...'\n cp ${configFile} config.def.h";
    });
  };

in
{
 nixpkgs.overlays = [ myOverlay ];
 environment.systemPackages = with pkgs; [
    st
  ];
}

Pertama, saya download/copy file config.h bawaan ST ke sebuah folder yang berada di dalam file konfigurasi home manager saya, lokasinya di .config/nixpkgs/st/config.h.

Kemudian saya mendownload masing-masing file patch.diff yang telah saya sebutkan pada script di atas, anda bisa temukan patch tersebut di ST Patches .

Kemudian beberapa patch seperti st-scollback patch untuk file config.h harus saya copy secara manual ke file config.h original bawaan st.

Kemudian jalankan perintah home-manager switch dan biarkan nixos melakukan tugasnya sampai selesai. Dia akan melakukan patch secara otomatis.

Jika selama proses build, ternyata patch gagal, maka tidak akan berpengaruh ke system. Silahkan lakukan patch secara manual.

Penjelasan patch yang saya gunakan

  1. Scrollback (wajib)

Patch ini berfungsi untuk melakukan scroll layar menggunakan Shift+PageUp dan Down

  1. Font2 (wajib)

Patch ini digunakan untuk mengaktifkan lebih dari 1 font. Sangat cocok untuk digunakan untuk mengaktifkan Font Symbol Nerd Font.

  1. Boxdraw (wajib)

Patch ini berfungsi untuk menghilangkan spasi 1px di bawah font nerdfont supaya lebih rapat.

Pastikan set value 1 pada file config supaya boxdraw nya berfungsi.

const int boxdraw = 1;
  1. Vertcenter (opsional)

Patch ini berfungsi untuk membuat font berada di tengah secara vertical berdasarkan line height yang sudah diset.

  1. No Bad Weight (opsional)

Patch ini akan merender Font lebih baik.

Patch-patch lainnya yang ternyata hanya merupakan patch untuk file config.h bisa saya patch secara manual saja, contohnya Gruvbox untuk mengaktifkan Gruvbox color scheme pada ST Terminal.

Efek transparansi pada ST Terminal berjalan menggunakan compositor, saya menggunakan picom dengan pengaturan seperti ini.

opacity-rule = [
 "92:class_g = 'st-256color'",
 "92:class_g = 'kitty'",
 ];

Fitur yang belum berhasil diaktifkan

Meskipun ST terminal ini cepat, tetapi jika digunakan sebagai terminal utama saat ini saya rasa ST belum begitu sempurna dengan workflow saya.

Masih terdapat beberapa fitur yang belum bekerja dengan baik, seperti:

  • Tombol delete yang saya gunakan ketika mengetik menggunakan NVIM ternyata tidak berfungsi, saat menekan Delete ternyata tidak menghapus malahan membuka help nvim.
  • Jendela ST tidak memenuhi layar, bisa diperbaiki dengan patch Anysize, tetapi patch ini bentok dengan patch yang lain yang saya pasang.
  • Tidak bisa klik link url pada terminal ST.

Demikianlah ST dengan sedemikian rupa kelebihan dan kekurangannya. Saya suka ST Terminal karena minimalis, bagaimana dengan anda?

mrfdn author

Rafi

  • 15 year+ of Linux user.
  • 5 years+ blogger and web developer.

Jika artikel yang dibuatnya ternyata bermanfaat, support dengan cara

Baca juga