Jadual Kandungan
Kandungan soalan
Penyelesaian
Rumah pembangunan bahagian belakang Golang Bagaimana untuk menambah imej latar belakang pada berbilang skrin dalam X11/Wayland menggunakan Go?

Bagaimana untuk menambah imej latar belakang pada berbilang skrin dalam X11/Wayland menggunakan Go?

Feb 13, 2024 am 08:54 AM
pergi bahasa

如何使用 Go 将背景图像添加到 X11/Wayland 的多个屏幕?

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>
Salin selepas log masuk

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 --listmonitorsSecara asli menyokong tetapan kertas dinding berbeza untuk setiap paparan. Anda hanya memanggil

dengan imej berbeza dengan resolusi berbeza. Pesanan dijamin sama seperti yang ditentukan dengan memanggil xrandr --listmonitors.

Dengan susunan yang ditentukan dan diambil sebagai yang diberikan, program go paling mudah akan kelihatan seperti ini (lihat juga fungsi utiliti wallutil Run

):

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)
    }
}
Salin selepas log masuk
fluxbox (diuji menggunakan pengurus tingkap)

feh 与适当的窗口管理器配合使用,并且 go 目录中有两个准备好的图像,这是最简单的情况。当然,也可以通过编程方式确定屏幕并动态调整fehIni adalah kes paling mudah jika

digunakan dengan pengurus tetingkap yang sesuai dan terdapat dua imej yang disediakan dalam direktori go. Sudah tentu, anda juga boleh menentukan skrin secara pemrograman dan melaraskan panggilan secara dinamik ke

. feh 并不适用于所有环境,wallutils 为许多窗口管理器环境(cinnamon、deepin、gnome、mate、pekwm、plasma、sway、weston、xfce4)提供了 wm

Memandangkan 🎜 tidak boleh digunakan untuk semua persekitaran, wallutils menyediakan pelaksanaan konkrit antara muka 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!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Cara Membuka Segala -galanya Di Myrise
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Perpustakaan apa yang digunakan untuk operasi nombor terapung di GO? Perpustakaan apa yang digunakan untuk operasi nombor terapung di GO? Apr 02, 2025 pm 02:06 PM

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

Apakah masalah dengan thread giliran di crawler colly go? Apakah masalah dengan thread giliran di crawler colly go? Apr 02, 2025 pm 02:09 PM

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 disediakan oleh projek sumber terbuka yang terkenal? Perpustakaan mana yang dibangunkan oleh syarikat besar atau disediakan oleh projek sumber terbuka yang terkenal? Apr 02, 2025 pm 04:12 PM

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

Apakah perbezaan antara struktur definisi kata kunci `var` dan` type` dalam bahasa Go? Apakah perbezaan antara struktur definisi kata kunci `var` dan` type` dalam bahasa Go? Apr 02, 2025 pm 12:57 PM

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 ...

Bagaimana menyelesaikan masalah penukaran jenis user_id semasa menggunakan aliran redis untuk melaksanakan beratur mesej dalam bahasa Go? Bagaimana menyelesaikan masalah penukaran jenis user_id semasa menggunakan aliran redis untuk melaksanakan beratur mesej dalam bahasa Go? Apr 02, 2025 pm 04:54 PM

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

Di Go, mengapa rentetan percetakan dengan fungsi println dan rentetan () mempunyai kesan yang berbeza? Di Go, mengapa rentetan percetakan dengan fungsi println dan rentetan () mempunyai kesan yang berbeza? Apr 02, 2025 pm 02:03 PM

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

Kenapa perlu lulus petunjuk apabila menggunakan perpustakaan Go dan Viper? Kenapa perlu lulus petunjuk apabila menggunakan perpustakaan Go dan Viper? Apr 02, 2025 pm 04:00 PM

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 ...

Kenapa semua nilai menjadi elemen terakhir apabila menggunakan bahasa dalam bahasa Go untuk melintasi kepingan dan menyimpan peta? Kenapa semua nilai menjadi elemen terakhir apabila menggunakan bahasa dalam bahasa Go untuk melintasi kepingan dan menyimpan peta? Apr 02, 2025 pm 04:09 PM

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

See all articles