Nota Peribadi
Sebagai rujukan
- Additional Config for Ranger Files
- Completely Kill A Process/Program
- Convert A .txt File to PDF with Enscript & GhostScript
- Keluar Dari Server X
- Log masuk ke dalam server jauh (remote server) melalui SSH tanpa kata laluan
- Memadam Muka Surat Daripada Fail PDF dengan PDFtk
- Menggabung Fail PDF dengan GhostScript
- Nota Pendek / Tambahan
- Packages To Be Installed for Complete Function of Fcitx5
- Paparan Tulisan bagi Bahasa ‘Kanan-ke-Kiri ’ dalam Conky
- Rekod Skrin Desktop dengan FFmpeg
- Simpan pengeluaran manual dari Terminal dalam bentuk PDF
- Solusi: Ralat kunci tidak dikenali / dipercayai
- Solusi: “server ‘gpg-agent’ / ‘dirmngr’ is older than us (x < y)”
- Tesseract dalam Arch Linux
- Tip Hosting dengan Netlify Melalui GitLab
- Tukar Fail PDF kepada Imej SVG
- Video Cutting with FFmpeg
Additional Config for Ranger Files
~/.config/ranger/commands.py
class empty(Command): """:empty Empties the trash directory ~/.Trash """ def execute(self): self.fm.run("sudo rm -rf $HOME/.Trash/.*") self.fm.run("sudo rm -rf $HOME/.Trash/*")
~/.config/ranger/rc.conf
map DD shell mv -t $HOME/.Trash %s
Rujukan: Ranger Configuration
Completely Kill A Process/Program
To kill a process e.g. cmus, find out the
pid
number with the following command first:bash
pidof cmus
And then kill it by running the below command:-
bash
kill <the-pid-number-obtained-by-the-above-command>
Convert A .txt File to PDF with Enscript & GhostScript
First of all, convert a .txt file to .ps with enscript by running the following command:
bash
enscript -p output.ps input.txt
And then convert the .ps file to .pdf with GhostScript:
bash
ps2pdf output.ps output.pdf
Rujukan: How to convert a text file to PDF format on Linux
Keluar Dari Server X
bash
pkill X
Rujukan: Xorg - ArchWiki
Log masuk ke dalam server jauh (remote server) melalui SSH tanpa kata laluan
Cipta pasangan kunci dengan perintah
ssh-keygen
di dalam sistem klien yang ingin digunakan untuk log masuk ke dalam sistem server jauh itu.
Contohnya: dari VM Win 10 (klien), log masuk ke dalam serverSSH
Arch.Ia menghasilkan dua fail;
id_ed25519
danid_ed25519.pub
di dalam direktori.ssh
sistem VM tersebut.Salin kunci awam yang terhasil dari sistem klien itu ke dalam server jauh.
Dari sistem klien
Linux
, gunakan perintahssh-copy-id
.bash
ssh-copy-id -i .ssh/id_ed25519.pub remote_user@server_ip_address
Dari sistem klien selainnya seperti
Windows
danFreeBSD
, gunakan perintahcat
.bash
cat .ssh/id_ed25519.pub | ssh remote_user@server_ip_address 'cat >> .ssh/authorized_keys'
Kriptogram kunci awam yang dimiliki oleh sistem klien telah disimpan di dalam fail
authorized_keys
(dalam Remote System) yang bertindak memberikan autoriti dan pengesahan untuk sistem klien log masuk ke dalam server jauhSSH
tanpa perlu memasukkan kata laluan pengguna remote itu lagi.
Rujukan: How Passwordless SSH Login Works
Memadam Muka Surat Daripada Fail PDF dengan PDFtk
Kes 1:Failinput1.pdf
mempunyai 4 muka surat dengan muka surat terakhir adalah kosong. Untuk memadam muka surat terakhir yang kosong ini, jalankan salah satu baris perintah daripada yang disenaraikan di bawah:-bash
pdftk input1.pdf cat 1-3 output out.pdf
atau
bash
pdftk A=input1.pdf cat A1-3 output out.pdf
Kes 2:Failinput2.pdf
mempunyai 15 muka surat dan halaman kelima ingin dipadam. Untuk memadam muka surat nombor 5 ini, jalankan salah satu baris perintah daripada yang disenaraikan di bawah:-bash
pdftk input2.pdf cat 1-4 6-end output out.pdf
atau
bash
pdftk A=input2.pdf cat A1-4 A6-end output out.pdf
Rujukan: PDFtk Manual / alternatif
Menggabung Fail PDF dengan GhostScript
Jalankan baris perintah seperti di bawah:-
bash
gs -dSAFER -dBATCH -dNOPAUSE -sDEVICE=pdfwrite -sOutputFile=output.pdf *.pdf
Rujukan: How to Use Ghostscript
Tetapi lebih mudah menggunakan
PDFtk
.bash
pdftk *.pdf cat output combined.pdf
Nota Pendek / Tambahan
nftables sebagai alternatif kepada https://wiki.archlinux.org/index.php/Iptables
Laluan ke koleksi Vivaldi Thumbnails:
/opt/vivaldi/resources/vivaldi/resources/
urlscan
di dalamVim
:
↳:!urlscan %
(% merujuk kepada fail/ penampan semasa.)
Packages To Be Installed for Complete Function of Fcitx5
Fcitx5 packages for different language inputs like Japanese on GUI applications such as Vim / NeoVim, LibreOffice and a web browser:
fcitx5-im, a group of packages that includes
fcitx5
,fcitx5-configtool
,fcitx5-gtk
andfcitx5-qt
.fcitx5-mozc (for Japanese input method).
Layout untuk aturan papan kekunci:-
Malay (msa)
Keyboard - Malay (Jawi, Arabic Keyboard) - Malay (Jawi, phonetic)Arabic (ara)
Keyboard - Arabic - Arabic (Eastern Arabic numerals, extensions in the 4th level)Paparan Tulisan bagi Bahasa ‘Kanan-ke-Kiri’ dalam Conky
Tambahkan
| fribidi --ltr
selepas teks untuk memaksa paparan tulisan yang betul. Contoh:lua
${color grey}${font arial:size=15}${alignc}${exec python .scripts/idate.py | fribidi --ltr}${font}
Rujukan: A Workaround for RTL languages not supported>
Rekod Skrin Desktop dengan FFmpeg
Cara merekod skrin Desktop dengan
FFmpeg
:bash
ffmpeg -framerate 60 -f x11grab -probesize 10MB -thread_queue_size 4096 -i $DISPLAY \ -f pulse -ac 2 -probesize 10MB -thread_queue_size 4096 -i default \ -c:v libx264rgb -crf 0 -preset ultrafast -color_range 2 output.mp4
Saya pilih Lossless Recording untuk mengurangkan beban CPU. Almaklumlah, kita tidak memiliki komputer dengan processor berkuasa tinggi.
Pakej yang diperlukan untuk Audio:
pipewire
denganwireplumber
sebagai pengurus sesi,pipewire-jack
danpipewire-pulse
.Tinggalkan baris kedua sekiranya tidak mahu merakam bersama audio.
Setakat ini, encoding video melalui
FFmpeg
menghasilkan output yang tidak disokong olehWhatsApp
. Sebagai penyelesaian, saya akan menggunakan aplikasiShotcut
untuk mengeksport video yang dirakam ke format yang sama iaitump4
(codeclibx264
), Interpolation: Lanczos (best), dan selebihnya dibiarkan dengan tetapan lalai.
Rujukan: Capturing your Desktop / Screen Recording (Lossless Recording)
Simpan pengeluaran manual dari Terminal dalam bentuk PDF
Contoh, simpan pengeluaran manual
read
di Terminal dalam bentuk PDF:bash
man -Tpdf read > read.pdf
atau
bash
man -Tps read | ps2pdf - read.pdf
Rujukan: Is there a way to print info/man pages to PDF?
Solusi: Ralat kunci tidak dikenali / dipercayai
Entah kenapalah dalam tempoh beberapa minggu ni kerap terjumpa dengan ralat ini apabila nak kemas kini sistem:-
error: package-name: signature from "packager" is unknown trust error: PackageName: signature from "User
" is invalid error: failed to commit transaction (invalid or corrupted package (PGP signature)) Errors occured, no packages were upgraded. Pautan: [1] Signature is unknown trust, [2] signature from xxx is invalid
Jadi jalan penyelesaian pertama ialah tetapan semula untuk semua kunci (jalankan sebagai
superuser
):bash
rm -rf /etc/pacman.d/gnupg pacman-key --init echo 'keyserver https://keyserver.ubuntu.com' >> /etc/pacman.d/gnupg/gpg.conf #untuk Arch pacman-key --populate archlinux pacman -S archlinux-keyring pacman -Syyu
Info Tambahan:Sekiranya kunci perlu dikemaskini, boleh refresh kunci sebelum mengemaskini sistem secara penuh, tetapi akan memakan masa untuk selesai:-Rujukan: Resetting all the keysbash
sudo pacman-key --refresh-keys
Jika terlalu terdesak, aras tandatangan (SigLevel
) perlu ditambah ke dalam fail/etc/pacman.conf
dan ditetapkan kepada berikut:bash
[blackarch] SigLevel = Optional TrustAll Include = /etc/pacman.d/blackarch-mirrorlist
Tip (khusus untukJalankan perintah berikut sebelum memanggil skripBlackArch
sahaja):strap.sh
untuk menambah repositoriBlackArch
sekiranya berhadapan dengan masalah kuncinya tidak sah.Dan tambahkan arahan di bawah pada perintah baris di atas.bash
sed -i "s|pgp.mit.edu|18.9.60.141|g" strap.sh
Rujukan: [1] Still a problem with the strap.sh for existing arch installations#1122, [2] Configuring pacmanbash
echo 'keyserver https://pgp.mit.edu' >> /etc/pacman.d/gnupg/gpg.conf #untuk BlackArch pacman-key --populate blackarch pacman -S blackarch-keyring
Jika cara di atas tidak berjaya, cuba tandatangan kunci pengurus pakej secara manual:-
Pergi ke pautan Master Signing Keys.
Cari pautan kepada kunci PGP mereka di bawah
Master Key Signatures
.Ketik belah kanan pada pautan
pub_rsa/key-id
ataupub_eddsa/key-id
kepunyaan mereka dan simpan pautan sebagai fail berformat.asc
dan teruskan dengan langkah-langkah berikut:bash
sudo pacman-key --add /laluan-ke-fail_key-id.asc
Lakukan verifikasi atas cap jari berkenaan:-
bash
sudo pacman-key --finger key-id
dan tandatangan secara lokal kunci tersebut:-
bash
sudo pacman-key --lsign-key key-id
Setelah itu, bolehlah kemas kini pakej kembali. Insya-Allah, tiada lagi ralat yang keluar dan pengemaskinian berjaya.
Rujukan: Adding unofficial keys
Solusi: “server ‘gpg-agent’ / ‘dirmngr’ is older than us (x < y)”
Terdapat amaran dikeluarkan dengan output ini:
server ‘gpg-agent’ is older than us (x < y)
danserver ‘dirmngr’ is older than us (x < y)
.Berikut adalah langkah-langkah berkesan yang saya lakukan setelah bermacam-macam cara dibuat namun tidak juga menghilangkan amaran di atas:
Hentikan
socket
danserver
:bash
systemctl --user stop gpg-agent.socket && systemctl --user stop dirmngr.socket && killall gpg-agent dirmngr
Padam dan cipta semula direktori
.gnupg
:bash
rm -rf $HOME/.gnupg && mkdir $HOME/.gnupg
Cipta redirects ke lokasi yang mengendalikan soket:
bash
export GNUPGHOME=$HOME/.gnupg && printf '%%Assuan%%\nsocket=/run/user/1000/gnupg/S.gpg-agent\n' > $GNUPGHOME/S.gpg-agent && printf '%%Assuan%%\nsocket=/run/user/1000/gnupg/S.gpg-agent.browser\n' > $GNUPGHOME/S.gpg-agent.browser && printf '%%Assuan%%\nsocket=/run/user/1000/gnupg/S.gpg-agent.extra\n' > $GNUPGHOME/S.gpg-agent.extra && printf '%%Assuan%%\nsocket=/run/user/1000/gnupg/S.gpg-agent.ssh\n' > $GNUPGHOME/S.gpg-agent.ssh && printf '%%Assuan%%\nsocket=/run/user/1000/gnupg/S.dirmngr\n' > $GNUPGHOME/S.dirmngr && printf '%%Assuan%%\nsocket=/run/user/1000/gnupg/S.keyboxd\n' > $GNUPGHOME/S.keyboxd && printf '%%Assuan%%\nsocket=/run/user/1000/gnupg/S.scdaemon\n' > $GNUPGHOME/S.scdaemon
Cipta baris berikut ke dalam fail
$HOME/.gnupg/gpg-agent.conf
:bash
pinentry-program /usr/bin/pinentry
Pastikan kebenaran untuk direktori dan fail ditetapkan seperti berikut:
bash
find ~/.gnupg -type d -print0 | xargs -0 chmod 700 && find ~/.gnupg -type f -print0 | xargs -0 chmod 600
Muatkan semula ejen:
bash
gpg-agent --daemon && gpg-connect-agent reloadagent /bye
Rujukan: [1] server ‘gpg-agent’ is older than us (x < y), [2] pinentry, [3] Reload the agent
Tesseract di dalam Arch Linux
Tesseract
ialah enjin sumber terbukapengesanan teks
/OCR
(Optical Character Recognition) daripada sebuah imej / foto.Ia boleh dipasang dari repositori rasmi
Arch
:-bash
sudo pacman -S tesseract tesseract-data-eng tesseract-data-msa
Sekurang-kurangnya satu data bahasa perlu dipasang untuk menjalankan program ini.
tesseract-data-eng
untuk mengesan & mengeksport teks Bahasa Inggeris daripada imej diberi;tesseract-data-msa
untuk mengesan & mengeksport teks Bahasa Melayu daripada imej diberi.
Baris perintah (mesti eksport laluan untuk
TESSDATA_PREFIX
terlebih dahulu):-bash
export TESSDATA_PREFIX=/usr/share/tessdata
Contoh penggunaan ringkas:-
bash
tesseract image.jpg/.png/.tiff output tesseract image.jpg/.png/.tiff output -l msa
- Jenis pengeluaran sekiranya tidak ditentukan di dalam baris perintah, akan ditetaplalai kepada fail berformat
.txt
(teks yang dikesan daripada imej dieksport ke failoutput.txt
dalam contoh di atas). -l msa
; contoh penetapan bahasa kepada Bahasa Melayu.
Rujukan: [1] Tesseract User Manual, [2] Manual Tesseract dari Terminal / alternatif
Tip Hosting dengan Netlify Melalui GitLab
Netlify
tidak mampu memprosesgit clone
untuk memasang tema. Jalan terbaik untuk mengatasinya adalah dengan memadam subdirektori.git
yang ada di dalam direktori tema ataupun dengan menambahgit submodule
.Jika mengalami kegagalan untuk menambah
submodule
dengan ralat seperti ini;'themes/your-theme' already exists in the index
Lakukan langkah-langkah di bawah ini:-
bash
cd themes rm -rf your-theme git rm -r your-theme git submodule add <git_submodule_repository> your-theme
Rujukan: Issue with adding common code as git submodule: “already exists in the index”
Tukar Fail PDF kepada Imej SVG
Saya gunakan pakej
pdf2svg
untuk menukar fail PDF kepada SVG demi kestabilan kualiti vektornya:-ARAHAN:
pdf2svg <PDF input> <SVG output> <page number / all>
Untuk menukar halaman 2 sebagai contoh,
bash
pdf2svg input.pdf output.svg 2
atau sekiranya ingin menukar kesemua muka surat PDF.
bash
pdf2svg input.pdf output%d.svg all
Boleh juga gunakan pakej
inkscape
namun bukan pilihan saya kerana dua isu ini:-- tidak mampu menyalin jenis tulisan/fon asal; &
- akan menukarkan bentuk formula Matematik kepada tulisan berkarakter Cina.
Selain daripada itu, fail PDF boleh diceraikan halaman-halamannya dengan pakej
PDFtk
:-bash
pdftk file.pdf burst
Opsyen
burst
memerlukan pemasangan pakejbcprov
danjava-common-langs
.Contoh skrip
bash
atauzsh
:-bash
#!/usr/bin/env zsh CONVERSION_DIR="conversion" mkdir -p $CONVERSION_DIR cd $CONVERSION_DIR # For direct conversion: for PDF in ../*.pdf; do pdf2svg "$PDF" "$(basename "$PDF" .pdf)%d.svg" all; done # For conversion of separated pages by the PDFtk package: #pdftk ../output.pdf burst #for PDF in ./*.pdf; do # pdf2svg "$PDF" "$(basename "$PDF" .pdf).svg"; #done cd ..
Rujukan: pdf2svg manual
Video Cutting with FFmpeg
Run command as follows:-
bash
ffmpeg -i input.mp4 -ss 00:00:01 -t 00:01:00 output.mp4
-ss
: The start time of the video.-t
: The duration (length of time) of the video.