Bagaimana cara mengatur gambar pertama dari setiap folder sebagai ikon foldernya?
Pertanyaan yang ditautkan di atas memiliki jawaban yang terdiri atas skrip yang telah berfungsi untuk saya. Itu hanya perlu sedikit perbaikan.
Apa fungsinya?
Ia menemukan file dengan ekstensi .jpg, .jpeg, .png, .gif, .icns, .ico dan menetapkannya sebagai ikon folder folder di mana file itu ditemukan. Ini berfungsi pada banyak folder, secara rekursif. Pada dasarnya ia mencoba untuk menemukan file gambar di dalam folder, dan gambar pertama yang ditemukannya ditetapkan sebagai ikon folder. Ini berfungsi dengan baik untuk banyak skenario, dan mengatur skrip ini biasanya adalah hal pertama yang saya lakukan setelah instalasi baru (karena ini luar biasa).
Apa masalahnya?
Mungkin ada beberapa direktori yang berisi banyak file gambar dan file gambar pertama dalam direktori itu mungkin tidak cocok untuk menjadi ikon folder.
Apa yang harus dilakukan?
Alih-alih berbasis ekstensi, jika itu menjadi nama file dan ditargetkan satu (misalnya, folder.png
) atau beberapa (misalnya albumart.png
cover.png
) nama file maka masalah ini dapat diselesaikan.
atau lebih baik lagi membuat kedua pendekatan bekerja dalam satu skrip
- Temukan yang telah ditentukan
filenames
- Jika ditemukan atur sebagai ikon folder dan pindah ke folder berikutnya
- Jika TIDAK ditemukan, cari ekstensi yang telah ditentukan dan atur sebagai ikon folder dan pindah ke folder berikutnya
sumber
Jawaban:
Saya mungkin masih "sedikit elegan" tetapi di bawah ini adalah versi yang diedit dari yang tertaut.
Apa bedanya?
Saya menambahkan daftar yang sudah ditentukan ke bagian kepala:
dan saya diganti:
oleh:
sehingga skrip pertama-tama mencoba menemukan (file) yang cocok dalam daftar
specs
, (hanya) jika tidak ada, ia melompat ke mencari ekstensi yang cocok, dan melakukan trik jika menemukan gambar yang cocok.1. Versi dasar
Untuk digunakan dengan direktori yang ditargetkan sebagai argumen:
Cara Penggunaan
change_icon.py
Jalankan dengan direktori yang ditargetkan sebagai argumen:
Itu dia!
2. Opsi klik kanan yang diedit, untuk digunakan sebagai skrip nautilus (klik kanan)
Menggunakan
Buat, jika belum ada, direktori
Salin skrip ke file kosong, simpan
~/.local/share/nautilus/scripts
sebagaiset_foldericons
(tidak ada ekstensi!), Dan membuatnya dapat dieksekusi .Jika, karena alasan tertentu Anda ingin mengatur ulang ikon di dalam folder ke ikon default, gunakan skrip di sini
sumber
file://
. Alih-alih,replace("%20", " ")
Anda harus menggunakan pengodean URI yang tepat (mis.urllib.parse.unquote
) Dan pengodean yang lebih baru (urllib.parse.quote
).subprocess.Popen
kesubprocess.call
tapi pada direktori besar dengan hampir 700 + sub ini tidak semua ikon folder chnage.urllib.parse.quote
bekerja dengan baik pada tes "kering", tidak dalam skrip. Perlu mencari tahu mengapa, tetapi meninggalkan versi skrip yang berfungsi untuk saat ini.unquote
bekerja seperti yang diharapkan?