Nota Peribadi
Sebagai rujukan
Additional Config for Ranger Files
~/.config/ranger/commands.pyclass 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.confmap DD shell mv -t $HOME/.Trash %sRujukan: Ranger Configuration
Activate Vim TableMode
Note about Vim TableMode
(Visual mode)
- Press
\tmto enable/disable TableMode.
(Insert mode)
Start with an empty first row.
Then, type using the following format to create the table (borders and alignment will be automatically generated from the basic input):
markdown|head1|head2|
|=| → header underline
|body1|body2|
|| → row dividerRujukan: dhruvasagar/vim-table-mode
Completely Kill A Process/Program
To kill a process e.g. cmus, find out the
pidnumber with the following command first:bashpidof cmusAnd then kill it by running the below command:-
bashkill <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:
bashenscript -p output.ps input.txtAnd then convert the .ps file to .pdf with GhostScript:
bashps2pdf output.ps output.pdf
Rujukan: How to convert a text file to PDF format on Linux
Keluar Dari Server X
bashpkill XRujukan: Xorg - ArchWiki
Log masuk ke dalam server jauh (‘remote server’) melalui SSH tanpa kata laluan
Cipta pasangan kunci dengan perintah
ssh-keygendi 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 serverSSHArch.Ia menghasilkan dua fail;
id_ed25519danid_ed25519.pubdi dalam direktori.sshsistem VM tersebut.Salin kunci awam yang terhasil dari sistem klien itu ke dalam server jauh.
Dari sistem klien
Linux, gunakan perintahssh-copy-id.bashssh-copy-id -i .ssh/id_ed25519.pub remote_user@server_ip_addressDari sistem klien selainnya seperti
WindowsdanFreeBSD, gunakan perintahcat.bashcat .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 jauhSSHtanpa perlu memasukkan kata laluan pengguna remote itu lagi.
Rujukan: How Passwordless SSH Login Works
Memadam Muka Surat Daripada Fail PDF dengan PDFtk
input1.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:-bashpdftk input1.pdf cat 1-3 output out.pdfatau
bashpdftk A=input1.pdf cat A1-3 output out.pdfinput2.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:-bashpdftk input2.pdf cat 1-4 6-end output out.pdfatau
bashpdftk A=input2.pdf cat A1-4 A6-end output out.pdfRujukan: PDFtk Manual / alternatif
Menggabung Fail PDF dengan GhostScript
Jalankan baris perintah seperti di bawah:-
bashgs -dSAFER -dBATCH -dNOPAUSE -sDEVICE=pdfwrite -sOutputFile=output.pdf *.pdfRujukan: How to Use Ghostscript
Tetapi lebih mudah menggunakan PDFtk.
bashpdftk *.pdf cat output combined.pdfNota Pendek
nftables sebagai alternatif kepada https://wiki.archlinux.org/index.php/Iptables
Laluan ke koleksi Vivaldi Thumbnails:
/opt/vivaldi/resources/vivaldi/resources/urlscandi 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-gtkandfcitx5-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:
bashffmpeg -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.mp4Saya pilih Lossless Recording untuk mengurangkan beban CPU. Almaklumlah, kita tidak memiliki komputer dengan processor berkuasa tinggi.
Pakej yang diperlukan untuk Audio:
pipewiredenganwireplumbersebagai pengurus sesi,pipewire-jackdanpipewire-pulse.Tinggalkan baris kedua sekiranya tidak mahu merakam bersama audio.
Setakat ini, encoding video melalui
FFmpegmenghasilkan output yang tidak disokong olehWhatsApp. Sebagai penyelesaian, saya akan menggunakan aplikasiShotcutuntuk 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:
bashman -Tpdf read > read.pdfatau
bashman -Tps read | ps2pdf - read.pdfRujukan: 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):
bashrm -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 -Syyubashsudo pacman-key --refresh-keysJika 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-mirrorlistBlackArch sahaja):strap.sh untuk menambah repositori BlackArch sekiranya berhadapan dengan masalah kuncinya tidak sah.bashsed -i "s|pgp.mit.edu|18.9.60.141|g" strap.shbashecho 'keyserver https://pgp.mit.edu' >> /etc/pacman.d/gnupg/gpg.conf #untuk BlackArch
pacman-key --populate blackarch
pacman -S blackarch-keyringJika 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-idataupub_eddsa/key-idkepunyaan mereka dan simpan pautan sebagai fail berformat.ascdan teruskan dengan langkah-langkah berikut:bashsudo pacman-key --add /laluan-ke-fail_key-id.ascLakukan verifikasi atas cap jari berkenaan:-
bashsudo pacman-key --finger key-iddan tandatangan secara lokal kunci tersebut:-
bashsudo pacman-key --lsign-key key-idSetelah 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) dan server ‘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
socketdanserver:bashsystemctl --user stop gpg-agent.socket && systemctl --user stop dirmngr.socket && killall gpg-agent dirmngrPadam dan cipta semula direktori
.gnupg:bashrm -rf $HOME/.gnupg && mkdir $HOME/.gnupgCipta redirects ke lokasi yang mengendalikan soket:
bashexport 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.scdaemonCipta baris berikut ke dalam fail
$HOME/.gnupg/gpg-agent.conf:bashpinentry-program /usr/bin/pinentryPastikan kebenaran untuk direktori dan fail ditetapkan seperti berikut:
bashfind ~/.gnupg -type d -print0 | xargs -0 chmod 700 && find ~/.gnupg -type f -print0 | xargs -0 chmod 600Muatkan semula ejen:
bashgpg-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 terbuka pengesanan teks / OCR (Optical Character Recognition) daripada sebuah imej / foto.
Ia boleh dipasang dari repositori rasmi Arch:-
bashsudo pacman -S tesseract tesseract-data-eng tesseract-data-msaSekurang-kurangnya satu data bahasa perlu dipasang untuk menjalankan program ini.
tesseract-data-enguntuk mengesan & mengeksport teks Bahasa Inggeris daripada imej diberi;tesseract-data-msauntuk mengesan & mengeksport teks Bahasa Melayu daripada imej diberi.
Baris perintah (mesti eksport laluan untuk TESSDATA_PREFIX terlebih dahulu):-
bashexport TESSDATA_PREFIX=/usr/share/tessdataContoh penggunaan ringkas:-
bashtesseract 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.txtdalam 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 memproses git clone untuk memasang tema. Jalan terbaik untuk mengatasinya adalah dengan memadam subdirektori .git yang ada di dalam direktori tema ataupun dengan menambah git submodule.
Jika mengalami kegagalan untuk menambah submodule dengan ralat seperti ini;
'themes/your-theme' already exists in the indexLakukan langkah-langkah di bawah ini:-
bashcd themes
rm -rf your-theme
git rm -r your-theme
git submodule add <git_submodule_repository> your-themeRujukan: 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,
bashpdf2svg input.pdf output.svg 2atau sekiranya ingin menukar kesemua muka surat PDF.
bashpdf2svg input.pdf output%d.svg allBoleh juga gunakan pakej
inkscapenamun 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:-bashpdftk file.pdf burstOpsyen
burstmemerlukan pemasangan pakejbcprovdanjava-common-langs.Contoh skrip
bashatauzsh:-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 ..- tidak mampu menyalin jenis tulisan/fon asal; &
Rujukan: pdf2svg manual
Video Cutting with FFmpeg
Run command as follows:-
bashffmpeg -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.
