


Bagaimana untuk menambah imej latar belakang pada berbilang skrin dalam X11/Wayland menggunakan Go?
editor php Banana akan memperkenalkan anda cara menggunakan bahasa Go untuk menambah imej latar belakang pada berbilang skrin X11/Wayland. Dalam persekitaran berbilang skrin, menetapkan imej latar belakang yang berbeza untuk setiap skrin boleh meningkatkan pengalaman pengguna. Artikel ini akan menerangkan secara terperinci cara menggunakan perpustakaan berkaitan X11 dan Wayland untuk melaksanakan fungsi ini dalam bahasa Go. Sama ada anda menggunakan X11 atau Wayland, artikel ini akan memberikan anda penyelesaian yang berkenaan. Dengan mengikuti langkah-langkah dalam artikel ini, anda akan belajar dengan mudah cara menambah imej latar belakang dalam persekitaran berbilang skrin. Mari kita meneroka bersama-sama!
Kandungan soalan
Saya membuat penetap kertas dinding tersuai dalam Go for a window manager. Pada masa ini saya menggunakan github.com/xyproto/wallutils
项目,该项目又依赖于feh
.
Untuk satu skrin saya boleh menggunakan dimensinya untuk mencipta imej bersaiz tepat dan semuanya berfungsi dengan baik, tetapi jika terdapat berbilang skrin dengan saiz berbeza yang disambungkan ke komputer kaedah ini tidak berfungsi.
Untuk imej yang tepat, saya menggunakan pilihan "isi" feh, yang hanya berfungsi pada salah satu monitor.
Apa yang saya mahu lakukan ialah mencipta imej bersaiz betul untuk setiap skrin dan menghantarnya sebagai imej latar belakang ke skrin yang sepadan dalam X11 atau Wayland. Bagaimanakah saya boleh mencapai ini dalam Go?
Penyelesaian
Keperluan:
- Hantar kertas dinding berbeza ke monitor berbeza
- Panggil dari pergi
- Gunakan
feh
di bawah
muro dan wallutils
wallutils
指定 wm
接口,该接口提供 setwallpaper
Kaedah, dsb. Terdapat pelaksanaan antara muka ini untuk banyak pengurus tetingkap yang berbeza.
go pakej muro
menggunakan wallutils
secara bergilir. Berdasarkan bendera withanywindowmanager
, ia akan menggunakan kaedah setwallpapercustom
wallutils, yang memilih pelaksanaan setwallpaper
tertentu berdasarkan pengurus tetingkap yang dikesan, atau terus Panggil muro
依次使用 wallutils
。基于 withanywindowmanager
标志,它将使用 wallutils 的 setwallpapercustom
方法,该方法根据检测到的窗口管理器选择具体的 setwallpaper
实现,或者直接调用 feh
变体的 setwallpaper
varian setwallpaper
.
wallutils dan feh
Mod paparan yang tepat bergantung pada cara ia dipanggil, tetapi setwallpaper
dalam wallutils feh.go pada asasnya akan memanggil setwallpaper
基本上会在您的情况下调用 feh
dalam kes anda, seperti ini:
feh --bg-fill <image file name>
Dua perkara yang perlu diberi perhatian:
- Di sini
feh
Tetapkan kertas dinding pada semua skrin kepada imej yang sama - Oleh itu tiada sokongan langsung untuk mempunyai imej yang berbeza
Selain itu, readme wallutils dengan jelas menyatakan:
Tetapkan kertas dinding untuk setiap monitor
Menetapkan kertas dinding untuk setiap monitor belum disokong lagi. Pada masa ini, semua monitor mempunyai kertas dinding yang ditetapkan.
Lihat https://github.com/xyproto/wallutils#Tetapkan kertas dinding untuk setiap monitor
Penyelesaian yang mungkin
Memandangkan anda boleh menentukan paparan dan peleraian, kami menumpukan pada menggunakan feh
untuk menghantar imej yang dipratentukan sebagai imej latar belakang ke skrin yang sepadan dalam susunan yang betul.
feh
本身支持为每个显示器设置不同的壁纸。您只需使用具有不同分辨率的不同图像调用 feh
即可。该顺序保证与调用 xrandr --listmonitors
Secara asli menyokong tetapan kertas dinding berbeza untuk setiap paparan. Anda hanya memanggil
xrandr --listmonitors
. ):
package main import ( "os/exec" ) func main() { args := []string{"--bg-fill", "1.png", "2.png"} cmd := exec.Command("feh", args...) if _, err := cmd.CombinedOutput(); err != nil { panic(err) } }
fluxbox
(diuji menggunakan pengurus tingkap)
feh
与适当的窗口管理器配合使用,并且 go 目录中有两个准备好的图像,这是最简单的情况。当然,也可以通过编程方式确定屏幕并动态调整feh
Ini adalah kes paling mudah jika
. feh
并不适用于所有环境,wallutils 为许多窗口管理器环境(cinnamon、deepin、gnome、mate、pekwm、plasma、sway、weston、xfce4)提供了 wm
wm
untuk banyak persekitaran pengurus tetingkap (kayu manis, deepin, gnome, mate, pekwm, plasma, sway, weston, xfce4) . Ini sudah tentu sangat keren. Walau bagaimanapun, jika anda ingin mencipta mr untuk wallutils, anda mungkin perlu melakukannya dalam semua varian, sekurang-kurangnya yang menyokongnya. 🎜Atas ialah kandungan terperinci Bagaimana untuk menambah imej latar belakang pada berbilang skrin dalam X11/Wayland menggunakan Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas



Perpustakaan yang digunakan untuk operasi nombor terapung dalam bahasa Go memperkenalkan cara memastikan ketepatannya ...

Masalah Threading Giliran di GO Crawler Colly meneroka masalah menggunakan Perpustakaan Colly Crawler dalam bahasa Go, pemaju sering menghadapi masalah dengan benang dan permintaan beratur. � ...

Perpustakaan mana yang dibangunkan oleh syarikat besar atau projek sumber terbuka yang terkenal? Semasa pengaturcaraan di GO, pemaju sering menghadapi beberapa keperluan biasa, ...

Dua cara untuk menentukan struktur dalam bahasa Go: perbezaan antara VAR dan jenis kata kunci. Apabila menentukan struktur, pergi bahasa sering melihat dua cara menulis yang berbeza: pertama ...

Masalah menggunakan redisstream untuk melaksanakan beratur mesej dalam bahasa Go menggunakan bahasa Go dan redis ...

Perbezaan antara percetakan rentetan dalam bahasa Go: perbezaan kesan menggunakan fungsi println dan rentetan () sedang ...

GO Pointer Syntax dan menangani masalah dalam penggunaan perpustakaan Viper semasa pengaturcaraan dalam bahasa Go, adalah penting untuk memahami sintaks dan penggunaan petunjuk, terutama dalam ...

Mengapa lelaran peta di GO menyebabkan semua nilai menjadi elemen terakhir? Dalam bahasa Go, ketika berhadapan dengan beberapa soalan wawancara, anda sering menemui peta ...
