日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網(wǎng)為廣大站長(zhǎng)提供免費(fèi)收錄網(wǎng)站服務(wù),提交前請(qǐng)做好本站友鏈:【 網(wǎng)站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(wù)(50元/站),

點(diǎn)擊這里在線(xiàn)咨詢(xún)客服
新站提交
  • 網(wǎng)站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會(huì)員:747

php小編香蕉將為您介紹如何使用Go語(yǔ)言將背景圖像添加到X11/Wayland的多個(gè)屏幕。在多屏幕環(huán)境下,為每個(gè)屏幕設(shè)置不同的背景圖像可以提升用戶(hù)體驗(yàn)。本文將詳細(xì)講解Go語(yǔ)言中如何使用X11和Wayland的相關(guān)庫(kù)來(lái)實(shí)現(xiàn)這一功能。無(wú)論您是使用X11還是Wayland,本文都將為您提供適用的解決方案。跟隨本文的步驟,您將輕松掌握如何在多屏幕環(huán)境下添加背景圖像的技巧。讓我們一起來(lái)探索吧!

問(wèn)題內(nèi)容

我在 Go 中為窗口管理器制作了一個(gè)自定義壁紙?jiān)O(shè)置器。目前我使用github.com/xyproto/wallutils項(xiàng)目,該項(xiàng)目又依賴(lài)于feh

對(duì)于一個(gè)屏幕,我可以使用其尺寸來(lái)創(chuàng)建精確尺寸的圖像,并且一切正常,但如果有多個(gè)不同尺寸的屏幕連接到計(jì)算機(jī),則這種方法不起作用。

對(duì)于確切的圖像,我使用 feh 的“填充”選項(xiàng),該選項(xiàng)僅適用于其中一臺(tái)顯示器。

我想要做的是為每個(gè)屏幕創(chuàng)建正確尺寸的圖像,并將它們作為背景圖像發(fā)送到 X11 或 Wayland 中的相應(yīng)屏幕。我怎樣才能在 Go 中實(shí)現(xiàn)這一目標(biāo)?

解決方法

要求:

將不同的壁紙發(fā)送到不同的顯示器
來(lái)自 go 的調(diào)用
在下面使用 feh

muro 和 wallutils

wallutils 指定 wm 接口,該接口提供 setwallpaper 方法等。對(duì)于許多不同的窗口管理器,該接口都有相應(yīng)的實(shí)現(xiàn)。

go 包 muro 依次使用 wallutils。基于 withanywindowmanager 標(biāo)志,它將使用 wallutils 的 setwallpapercustom 方法,該方法根據(jù)檢測(cè)到的窗口管理器選擇具體的 setwallpaper 實(shí)現(xiàn),或者直接調(diào)用 feh 變體的 setwallpaper

wallutils 和 feh

具體的顯示模式取決于它的調(diào)用方式,但是 wallutils feh.go 中的 setwallpaper 基本上會(huì)在您的情況下調(diào)用 feh ,如下所示:

feh --bg-fill 

登錄后復(fù)制

兩個(gè)注意事項(xiàng):

此處 feh 將所有屏幕上的壁紙?jiān)O(shè)置為完全相同的圖像
因此不直接支持擁有不同的圖像

此外,wallutils 的自述文件明確指出:

為每個(gè)顯示器設(shè)置壁紙

尚不支持為每個(gè)顯示器設(shè)置壁紙。目前,所有顯示器都設(shè)置了壁紙。

參見(jiàn)https://github.com/xyproto/wallutils#設(shè)置每個(gè)顯示器的壁紙

可能的解決方案

由于您可以確定顯示器和分辨率,因此我們重點(diǎn)關(guān)注使用 feh 以正確的順序?qū)㈩A(yù)定義圖像作為背景圖像發(fā)送到相應(yīng)的屏幕。

feh本身支持為每個(gè)顯示器設(shè)置不同的壁紙。您只需使用具有不同分辨率的不同圖像調(diào)用 feh 即可。該順序保證與調(diào)用 xrandr --listmonitors 確定的順序相同。

確定順序并將其作為給定后,最簡(jiǎn)單的 go 程序?qū)⑷缦滤荆碚?qǐng)參閱 wallutil 的實(shí)用函數(shù) 運(yùn)行):

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)
    }
}

登錄后復(fù)制

(使用 fluxbox 窗口管理器進(jìn)行測(cè)試)

如果 feh 與適當(dāng)?shù)拇翱诠芾砥髋浜鲜褂茫⑶?go 目錄中有兩個(gè)準(zhǔn)備好的圖像,這是最簡(jiǎn)單的情況。當(dāng)然,也可以通過(guò)編程方式確定屏幕并動(dòng)態(tài)調(diào)整feh的調(diào)用。

由于 feh 并不適用于所有環(huán)境,wallutils 為許多窗口管理器環(huán)境(cinnamon、deepin、gnome、mate、pekwm、plasma、sway、weston、xfce4)提供了 wm 接口的具體實(shí)現(xiàn)。這當(dāng)然非常酷。但是,如果您想為 wallutils 創(chuàng)建 mr,您可能必須在所有變體中執(zhí)行此操作,至少是那些支持它的變體。

分享到:
標(biāo)簽:Go語(yǔ)言
用戶(hù)無(wú)頭像

網(wǎng)友整理

注冊(cè)時(shí)間:

網(wǎng)站:5 個(gè)   小程序:0 個(gè)  文章:12 篇

  • 51998

    網(wǎng)站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會(huì)員

趕快注冊(cè)賬號(hào),推廣您的網(wǎng)站吧!
最新入駐小程序

數(shù)獨(dú)大挑戰(zhàn)2018-06-03

數(shù)獨(dú)一種數(shù)學(xué)游戲,玩家需要根據(jù)9

答題星2018-06-03

您可以通過(guò)答題星輕松地創(chuàng)建試卷

全階人生考試2018-06-03

各種考試題,題庫(kù),初中,高中,大學(xué)四六

運(yùn)動(dòng)步數(shù)有氧達(dá)人2018-06-03

記錄運(yùn)動(dòng)步數(shù),積累氧氣值。還可偷

每日養(yǎng)生app2018-06-03

每日養(yǎng)生,天天健康

體育訓(xùn)練成績(jī)?cè)u(píng)定2018-06-03

通用課目體育訓(xùn)練成績(jī)?cè)u(píng)定