Ubuntu 17.10 推出 [論壇 - Ubuntu 與 GNOME]
正在瀏覽:
1 名遊客
回覆: Ubuntu 17.10 推出 |
|||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
會員五級
![]() ![]() 註冊日期:
2012/4/22 10:50 所屬群組:
已註冊使用者 等級: 37
HP : 0 / 901
![]() |
[回到索引]
================================================================================ 一直忘了要貼這篇,會寫上面這一系列探索紀錄,是因為這篇的緣由,所開端的 :p 結果因此也有應用上這一系列的探索紀錄,來探索相關的議題 ![]() ================================================================================ # 關於「gnome-shell」啟動「ibus-daemon」 ================================================================================ ## 緣起 因為發現開機後,有執行「fcitx」,也有執行「ibus」。 所以覺得「ibus」好像不是經過「im-config」的機制。 所以做了點探索,有些還沒研究透徹。 以下只是稍微紀錄,目前探索到的部份。 ================================================================================ ## 探索開始 執行
顯示
並且也發現「/usr/share/im-config/data/21_ibus.rc」
顯示
上面啟動的參數,對照剛剛找到正在執行的「ibus-daemon --xim --panel disable」不相同。 以前在「另一篇」,有討論過這部份的議題。 而且我也有執行「im-config -n fcitx」,所以在我環境的「~/.xinputrc 」是「run_im fcitx」。 並且「fcitx」也有在執行。 所以我才會聯想到「ibus-daemon」在「Ubuntu 17.10」不是經由「im-config」的機制啟動的。 於是執行「pstree」,發現到「ibus-daemon」是在「gnome-shell」底下啟動的。 然後先執行下面的指令,找到「gnome-shell」的「pid」。
顯示 user 1041 14.9 7.1 3849340 580588 tty1 Rl+ 11:43 0:00 /usr/bin/gnome-shell user 1197 0.0 0.1 621636 15904 ? Sl 11:43 0:00 /usr/lib/gnome-shell/gnome-shell-calendar-server 接著執行下面指令,只看「gnome-shell」底下的。
顯示 gnome-shell(1041)─┬─ibus-daemon(1202)─┬─ibus-dconf(1211)─┬─{ibus-dconf}(1214) │ │ ├─{ibus-dconf}(1215) │ │ └─{ibus-dconf}(1225) │ ├─ibus-engine-sim(1486)─┬─{ibus-engine-sim}(1488) │ │ └─{ibus-engine-sim}(1489) │ ├─{ibus-daemon}(1208) │ └─{ibus-daemon}(1209) ================================================================================ ## 探索「gnome-shell」 執行
會下載下面三個檔案 * gnome-shell_3.26.1-0ubuntu5.debian.tar.xz * gnome-shell_3.26.1-0ubuntu5.dsc * gnome-shell_3.26.1.orig.tar.xz 並且解開到「gnome-shell-3.26.1」這個資料夾。 執行上面這個步驟的前置作業,請參考「#24」。 執行下面指令,用「ibus-daemon」當關鍵字,在「gnome-shell-3.26.1」這個資料夾,找尋相關的檔案。
顯示 gnome-shell-3.26.1/js/misc/ibusManager.js:74: Gio.Subprocess.new(['ibus-daemon', '--xim', '--panel', 'disable'], gnome-shell-3.26.1/js/misc/ibusManager.js:77: log('Failed to launch ibus-daemon: ' + e.message); 執行
顯示 gnome-shell-3.26.1/js/misc/ibusManager.js:19:let _ibusManager = null; gnome-shell-3.26.1/js/misc/ibusManager.js:34: if (_ibusManager == null) gnome-shell-3.26.1/js/misc/ibusManager.js:35: _ibusManager = new IBusManager(); gnome-shell-3.26.1/js/misc/ibusManager.js:36: return _ibusManager; gnome-shell-3.26.1/js/js-resources.gresource.xml:20: <file>misc/ibusManager.js</file> gnome-shell-3.26.1/js/ui/status/keyboard.js:13:const IBus = imports.misc.ibusManager.IBus; gnome-shell-3.26.1/js/ui/status/keyboard.js:14:const IBusManager = imports.misc.ibusManager; gnome-shell-3.26.1/js/ui/status/keyboard.js:348: this._ibusManager = IBusManager.getIBusManager(); gnome-shell-3.26.1/js/ui/status/keyboard.js:349: this._ibusManager.connect('ready', Lang.bind(this, this._ibusReadyCallback)); gnome-shell-3.26.1/js/ui/status/keyboard.js:350: this._ibusManager.connect('properties-registered', Lang.bind(this, this._ibusPropertiesRegistered)); gnome-shell-3.26.1/js/ui/status/keyboard.js:351: this._ibusManager.connect('property-updated', Lang.bind(this, this._ibusPropertyUpdated)); gnome-shell-3.26.1/js/ui/status/keyboard.js:352: this._ibusManager.connect('set-content-type', Lang.bind(this, this._ibusSetContentType)); gnome-shell-3.26.1/js/ui/status/keyboard.js:476: this._ibusManager.setEngine(engine, KeyboardManager.releaseKeyboard); gnome-shell-3.26.1/js/ui/status/keyboard.js:549: let engineDesc = this._ibusManager.getEngineDesc(id); gnome-shell-3.26.1/js/ui/status/keyboard.js:609: this._ibusManager.preloadEngines(Object.keys(this._ibusSources)); gnome-shell-3.26.1/js/ui/status/keyboard.js:900: let ibusManager = IBusManager.getIBusManager(); gnome-shell-3.26.1/js/ui/status/keyboard.js:947: ibusManager.activateProperty(item.prop.get_key(), gnome-shell-3.26.1/js/ui/status/keyboard.js:952: ibusManager.activateProperty(group[i].prop.get_key(), gnome-shell-3.26.1/js/ui/status/keyboard.js:965: ibusManager.activateProperty(item.prop.get_key(), gnome-shell-3.26.1/js/ui/status/keyboard.js:969: ibusManager.activateProperty(item.prop.get_key(), gnome-shell-3.26.1/js/ui/status/keyboard.js:979: ibusManager.activateProperty(item.prop.get_key(), 執行
顯示 gnome-shell-3.26.1/js/misc/ibusManager.js:33:function getIBusManager() { gnome-shell-3.26.1/js/misc/ibusManager.js:35: _ibusManager = new IBusManager(); gnome-shell-3.26.1/js/misc/ibusManager.js:39:var IBusManager = new Lang.Class({ gnome-shell-3.26.1/js/misc/ibusManager.js:40: Name: 'IBusManager', gnome-shell-3.26.1/js/misc/ibusManager.js:235:Signals.addSignalMethods(IBusManager.prototype); gnome-shell-3.26.1/js/ui/status/keyboard.js:14:const IBusManager = imports.misc.ibusManager; gnome-shell-3.26.1/js/ui/status/keyboard.js:69: let engineDesc = IBusManager.getIBusManager().getEngineDesc(this.id); gnome-shell-3.26.1/js/ui/status/keyboard.js:348: this._ibusManager = IBusManager.getIBusManager(); gnome-shell-3.26.1/js/ui/status/keyboard.js:900: let ibusManager = IBusManager.getIBusManager(); gnome-shell-3.26.1/js/ui/status/keyboard.js:1008: let engineDesc = IBusManager.getIBusManager().getEngineDesc(source.id); ================================================================================ 根據上面找到「gnome-shell-3.26.1/js/misc/ibusManager.js」這個檔案 執行
顯示 _spawn: function() { try { Gio.Subprocess.new(['ibus-daemon', '--xim', '--panel', 'disable'], Gio.SubprocessFlags.NONE); } catch(e) { log('Failed to launch ibus-daemon: ' + e.message); } }, 還記得一開始,找到正在執行的「ibus-daemon --xim --panel disable」, 對照「['ibus-daemon', '--xim', '--panel', 'disable']」這一段。 ================================================================================ ## API * http://devdocs.baznga.org/gio20~2.50p/gio.subprocess * http://devdocs.baznga.org/gio20~2.50p/gio.subprocessflags * https://people.gnome.org/~gcampagna/docs/Gio-2.0/Gio.Subprocess.html * https://people.gnome.org/~gcampagna/docs/Gio-2.0/Gio.SubprocessFlags.html ================================================================================ ## 範例一 產生一個檔案「start-ibus-daemon.js」,內容填入如下 #!/usr/bin/env gjs const Gio = imports.gi.Gio; const System = imports.system; let IBus = null; try { IBus = imports.gi.IBus; } catch (e) { IBus = null; log(e); } log(IBus); if (IBus == null) { System.exit(1); } print('IBus.MAJOR_VERSION:', IBus.MAJOR_VERSION); print('IBus.MINOR_VERSION', IBus.MINOR_VERSION); try { Gio.Subprocess.new( ['ibus-daemon', '--xim', '--panel', 'disable'], Gio.SubprocessFlags.NONE ); } catch(e) { log('Failed to launch ibus-daemon: ' + e.message); } 執行下面指令,將「start-ibus-daemon.js」設為可執行
執行
顯示
遇到這樣的情形,表示「ibus-daemon」已經在執行了, 只要把 「ibus-daemon」這個「process」給「kill」。 再執行「start-ibus-daemon.js」就不會出現上面的紅色字了。 從最上面一開始執行「ps aux | grep ibus」找到「ibus-daemon」的「pid」是「1202」。 所以執行下面指令
然後再執行
最後再執行「ps aux | grep ibus」確認,應該可以看到「ibus-daemon」的「pid」有所不同。 ================================================================================ ## 範例二 產生一個檔案「start-gedit.js」,內容填入如下 #!/usr/bin/env gjs const Gio = imports.gi.Gio; try { Gio.Subprocess.new( ['gedit'], Gio.SubprocessFlags.NONE ); } catch(e) { log('Failed to launch gedit: ' + e.message); } 執行下面指令,將「start-gedit.js」設為可執行
執行
就會開啟「gedit」。 ================================================================================ ## 範例三 產生一個檔案「gedit-open-profile.js」,內容填入如下 #!/usr/bin/env gjs const Gio = imports.gi.Gio; try { Gio.Subprocess.new( ['gedit', '/etc/profile'], Gio.SubprocessFlags.NONE ); } catch(e) { log('Failed to launch gedit: ' + e.message); } 執行下面指令,將「start-gedit.js」設為可執行
執行
就會使用「gedit」開啟「/etc/profile」這個檔案。 ================================================================================ 以上提供參考 報告完畢 ![]() ================================================================================ [回到索引]
2017/11/8 0:52
|
||||||||||
![]() |
回覆: Ubuntu 17.10 推出 |
|||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
會員五級
![]() ![]() 註冊日期:
2012/4/22 10:50 所屬群組:
已註冊使用者 等級: 37
HP : 0 / 901
![]() |
[回到索引]
================================================================================ # 關於「fcitx-chewing」 ================================================================================ ## 安裝步驟和設定步驟 關於這些操作步驟,可以參考「#17 回覆: 裝了 ubuntu 16.04 lts 64位元版 一直無法輸入中文」。 ## 注意事項 在「Ubuntu 17.10」, * 我一開始還是按照上面那篇我紀錄的步驟卻安裝「fcitx」,一開始登出登入,或是重開機, 發現到「fcitx」有在執行,但是卻沒有顯示在「appindicator」那。 所以我就把「fcitx」「kill」掉,然後執行「fcitx」,就會顯示在「appindicator」。 然後重開機幾次還是不會顯示在「appindicator」。 但是後來我也不曉得做了什麼動作,結果現在就正常了。 我有嘗試看看能不能重現,把一些相關的設定檔「~/.config/fcitx/」砍掉,再測, 結果還是一樣開機,「fcitx」沒有顯示在「appindicator」那, 後來也是不曉得做了什麼動作,結果現在就正常了。 我也沒啥頭緒,無法抓個準,了解那個關鍵因素是在哪裡。 但目前是正常的,我也沒再去測試,探究是啥原因了。 * 目前還是有可能會碰到的狀況是,可能是登出,登入後個幾次,有可能「fcitx」並沒有執行,或是有執行,沒顯示在「appindicator」那 這時候只要手動去執行「fcitx」,就可以啟動了。 ================================================================================ 以上提供參考,因為還是有可能雖著後來的更新,未來這樣的狀況可能就會排除了。 ================================================================================ [回到索引]
2017/11/9 19:52
|
||||||||||
![]() |
回覆: Ubuntu 17.10 推出 |
|||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
會員五級
![]() ![]() 註冊日期:
2012/4/22 10:50 所屬群組:
已註冊使用者 等級: 37
HP : 0 / 901
![]() |
[回到索引]
================================================================================ # 關於「Gio.Settings」 ================================================================================ 延續下面這三篇提到關於「gsettings」的概念。 * 「#7 回覆: Ubuntu Linux 17.10 螢幕鎖定失效」(關於「gsettings schema」) * 「#8 回覆: Ubuntu Linux 17.10 螢幕鎖定失效」(關於「gsettings schema override」) * 「#9 回覆: Ubuntu Linux 17.10 螢幕鎖定失效」(關於「compile schemas triggger」) 以及下面這篇裡面,有紀錄使用「Gio.Settings」的範例。 * 「#10 回覆: Ubuntu Linux 17.10 螢幕鎖定失效」(探索「螢幕鎖定按鈕」顯示或隱藏的實做原始碼) 最後參考這篇 *「#34」 (如何透過安裝套件的方式,安裝額外的「gnome-extension」) 裡面我有提到一個套件「gnome-shell-extension-shortcuts」。 可以執行下面指令,下載套件下來探索
會下載一個檔案「gnome-shell-extension-shortcuts_1.1.0-1_all.deb」。 執行下面指令,解開「gnome-shell-extension-shortcuts_1.1.0-1_all.deb」這個檔案
執行
顯示 gnome-shell-extension-shortcuts └── usr └── share ├── doc │ └── gnome-shell-extension-shortcuts │ ├── changelog.Debian.gz │ └── copyright └── gnome-shell └── extensions └── Shortcuts@kyle.aims.ac.za ├── convenience.js ├── extension.js ├── locale │ ├── af │ │ └── LC_MESSAGES │ │ ├── af.mo │ │ └── af.po │ ├── LINGUAS │ └── Shortcuts.pot ├── metadata.json ├── prefs.js ├── schemas │ └── gschemas.compiled ├── shortcuts.json └── stylesheet.css 11 directories, 13 files 初步看的時候,發現這個「gnome-shell-extension-shortcuts」有自帶一個「schemas」資料夾, 並且裡面有放置「gschemas.compiled」這個檔案。 並不是在上面文章提到的「/usr/share/glib-2.0/schemas/」。 因此研究了一下「convenience.js」這個檔案裡面的「function getSettings」的實作。 改寫了一個範例,放在「GitHub」上面,請搭配「說明一」和「說明二」,還有上面提到的概念文章。 其他還有一些探索過程中,寫下來的範例,可以從「這裡」列的順序來探索。 以上提供參考,也許對這部份想要深入探索的人,能有一個探索的起點。 報告完畢。 ![]() ================================================================================ 執行
顯示
================================================================================ [回到索引]
2017/11/9 19:54
|
||||||||||
![]() |
回覆: Ubuntu 17.10 推出 |
|||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
會員一級
![]() ![]() 註冊日期:
2007/10/11 21:33 所屬群組:
已註冊使用者 等級: 1
HP : 0 / 5
![]() |
新桌面版本「UBUNTU BUDGIE」:
https://ubuntubudgie.org/ 預設的瀏覽器是chromium, firefox是另外下載使用 桌面右上角有個月亮,可設定夜間模式 youtube頁面右上角三個點,可設定夜間模式 附件: ![]() ![]() ![]() ![]() ![]() ![]()
2017/11/10 12:11
|
||||||||||
![]() |
回覆: Ubuntu 17.10 推出 |
|||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
會員五級
![]() ![]() 註冊日期:
2012/4/22 10:50 所屬群組:
已註冊使用者 等級: 37
HP : 0 / 901
![]() |
[回到索引]
================================================================================ # 關於「Ubuntu flavours」和 「MetaPackages」 ================================================================================ city 寫到: 歡迎您繼續分享您使用上的心得,感恩 有個疑問,就是「夜間模式」它的功用是什麼?您能否再多說點? 還是說我自己去測試,就會了解了,我還沒去測,只是先舉手發問。 ![]() 這個桌面環境的操作,初步試用,我也蠻喜歡的,不過我目前也還沒深度去探索, 目前有很多桌面環境可以選擇了,沒有太多時間,所以有的只能先在「VirtualBox」稍微開起來簡單測試欣賞。 Orz... 對我來說,主要care的點就是 如何快速找到「尚未開啟的程式」和「已經開啟的程式」。 * 關於「尚未開啟的程式」,若是透過「開始功能表」,在那需要有「Search」的功能,舉例「XFCE / Whisker Menu」, 有些桌面環境也有類似的選單。 而「Ubuntu Budgie」也是有。 * 關於「已經開啟的程式」,需要可以容易的切換,常見的就是在「taskbar」或「dock」如何呈現和排序。 進一步再搭配「workspace」。 當然也有其他的操作模式,歡迎其他人可以來分享。 後記: 稍微測試了一下「Ubuntu Mate 17.10」,發現它可以切換不同的「呈現配置(Panel Layouts)」。 開啟「Mate Tweak」,在「Panel」那個頁籤, 在「Panels」那個選項,有很多配置可以選擇。 「Select a panel layout to change the user interface」。 在「Xfce」則有「Xfce Panel Switch」。 ================================================================================ 雖然也可以同時安裝不同的桌面環境在同一個系統,登入的時候,選擇不同的登入Session就可以了, 不過我現在比較少這樣嘗試了, 因為通常我只有登入某一個,就很少切換到另一個了。 可以執行下面指令,初步找到有那些桌面環境相關「MetaPackages」
排序
顯示
================================================================================ 以「ubuntu-budgie-desktop」為例 然後在執行下面指令,觀看該套件的相關資訊
或是執行下面指令,過濾出「Depends:」開頭的那行
================================================================================ 以「ubuntu-desktop」為例 執行
執行
執行
執行
顯示
表示「ubuntu-meta」這個「Source Package」, 拆成四個「Binary Package」如下列表 * ubuntu-minimal * ubuntu-standard * ubuntu-desktop * ubuntu-server ================================================================================ 參考「Ubuntu 17.10 (Artful Aardvark) Release Notes / Ubuntu Desktop」 以前的「Ubuntu GNOME」,現在就沒有繼續了。 Ubuntu 17.10 (Artful Aardvark) Release Notes 寫到: 然後有兩個套件「vanilla-gnome-desktop」和「gnome-session」。 Ubuntu 17.10 (Artful Aardvark) Release Notes 寫到: 執行
執行
================================================================================ 我目前對「Ubuntu Budgie 17.10」唯一的發現,只有「Terminal」預設是採用「Tilix」 我有紀錄在「#40」,以前我在使用「Xubuntu 16.04」的時候,有去官網下載來使用。 ================================================================================ 另外題外話,好像有看到某篇網路上的文章,「Ubuntu Mate 17.10」這個版本有很多新的特色,還沒去實際嘗試。 也歡迎有試用的人,可以來分享。 後記: 除了上面「呈現配置(Panel Layouts)」的後記, 另外還有一個「HUD」的功能,概念上應該是源自「Unity 7」的功能, 不過我以前沒在用「Unity」,所以就不曉得有這樣的功能。 需要在有「Global Menu」的「呈現配置」,當開起某個程式,按下「Alt」,就可以用關鍵字,查詢選單的選項,和執行。 更多請參考「https://ubuntu-mate.org/blog/ubuntu-mate-artful-final-release/」。 ================================================================================ ## 之前「Ubuntu Budgie」相關的討論串 * Ubuntu Budgie * Budgie Desktop & Evolve OS * elementary OS 0.4.0 Loki Release ## Ubuntu flavours * https://wiki.ubuntu.com/UbuntuFlavors * https://www.ubuntu.com/download/ubuntu-flavours * https://www.ubuntu.com/about/about-ubuntu/flavours ================================================================================ ## Window Manager 執行下面指令
也可以找到很多有趣的桌面環境來安裝。 可以參考「另一篇」的題外話。 ================================================================================ [回到索引]
2017/11/10 13:00
|
||||||||||
![]() |
回覆: Ubuntu 17.10 推出 |
|||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
會員一級
![]() ![]() 註冊日期:
2007/10/11 21:33 所屬群組:
已註冊使用者 等級: 1
HP : 0 / 5
![]() |
感謝samwhelp大
不好意思,我只是一般使用者,不會寫感想文 我是live usb開機試用,覺得不錯才貼文告知大家有這個新桌面版本 右上角月亮好像是調色溫,晚上可調暗一點,有作用 不像ubuntu到現在調亮度的功能都只是擺好看的
2017/11/10 13:59
|
||||||||||
![]() |
回覆: Ubuntu 17.10 推出 |
|||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
會員五級
![]() ![]() 註冊日期:
2012/4/22 10:50 所屬群組:
已註冊使用者 等級: 37
HP : 0 / 901
![]() |
city 寫到: 感謝! 寫感想文,這個要依照您自己的時間和意願拉,我沒有勉強的意思,我也勉強不來 :p 我通常都是有人問,有碰觸過相關的議題,才有靈感寫, 沒碰觸過的議題,我是從別人問的關鍵字,能有個契機去開頭探索,如此而已。 有時候沒啥進展,沒啥可紀錄的,就沒回覆,或貼出來了。 所以關於寫感想文這個提議,造成您有壓力!歹勢啦! 再次感謝您的分享! ![]()
2017/11/10 14:03
|
||||||||||
![]() |
回覆: Ubuntu 17.10 推出 |
|||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
會員五級
![]() ![]() 註冊日期:
2012/4/22 10:50 所屬群組:
已註冊使用者 等級: 37
HP : 0 / 901
![]() |
[回到索引]
================================================================================ ## 如何透過「gsettings」設定「Night Light」的相關參數 ================================================================================ city 寫到: 執行
顯示
想要先確認一件事情 (後記:寫完這篇後,我開始測「Ubuntu Budgie 17.10」,那個「月亮按鈕 / Display Settings」也是「gnome-control-center display」,應該是同樣的機制,可以追「budgie-core」的程式碼) 您提到的功能,在「Ubuntu 17.10」, 是不是在「$ gnome-control-center display」這裡有一個欄位「Night Light」。 按下之後,會跳出另一個標題為「Night Light」新視窗。 然後在新視窗一樣有個欄位「Night Light」,將它設定為「On」。 在新視窗另一個欄位「Schedule」,可以選「Manual」。 然後下面有兩個時間的欄位就可以調整,可以調整「From」和「To」,可以調整讓現在的時間,是在這個區間內,就會有作用了。 舉例,現在時間是「17:30」,我調整「From」到「17:00」,而原本「To」就是「6:00」。 至於最下面那個顏色條,我不能移動調整,這個我還沒弄懂。 以下只是初步測試,有些我還不是很了解。 ================================================================================ 接下來依照之前一個討論案例的模式 執行下面指令,下載「gnome-control-center」的「Source Package」。
然後可以在「gnome-control-center-3.26.1/panels/display/cc-night-light-dialog.c」這個檔案, 找到一個關鍵字「org.gnome.settings-daemon.plugins.color」。 執行
顯示 gnome-control-center-3.26.1/panels/display/cc-night-light-dialog.c:#define DISPLAY_SCHEMA "org.gnome.settings-daemon.plugins.color" gnome-control-center-3.26.1/panels/display/cc-display-panel.c: priv->settings_color = g_settings_new ("org.gnome.settings-daemon.plugins.color"); gnome-control-center-3.26.1/panels/color/cc-color-common.h:#define GCM_SETTINGS_SCHEMA "org.gnome.settings-daemon.plugins.color" gnome-control-center-3.26.1/panels/color/cc-color-panel.c:#define GCM_SETTINGS_SCHEMA ================================================================================ 接下來直接透過「gsettings」來測試。
顯示
所以可以看到 * night-light-schedule-from 17.0 * night-light-schedule-to 6.0 * night-light-temperature uint32 4000 然後接下來嘗試來調整「night-light-temperature」 執行
執行
執行
您會發現螢幕是有變化的。 ================================================================================ 執行下面指令,還原成預設值
執行下面指令,觀看目前的設定值
顯示
================================================================================ 執行下面指令,觀看「/usr/share/glib-2.0/schemas/org.gnome.settings-daemon.plugins.color.gschema.xml 」這個檔案的內容。
顯示 <?xml version="1.0" encoding="UTF-8"?> <schemalist> <schema path="/org/gnome/settings-daemon/plugins/color/" id="org.gnome.settings-daemon.plugins.color" gettext-domain="gnome-settings-daemon"> <key type="i" name="priority"> <default>0</default> <summary>Priority to use for this plugin</summary> <description>Priority to use for this plugin in unity-settings-daemon startup queue</description> </key> <key type="b" name="active"> <default>true</default> <summary>Activation of this plugin</summary> <description>Whether this plugin would be activated by unity-settings-daemon or not</description> </key> <key type="u" name="recalibrate-display-threshold"> <default>0</default> <summary>The duration a display profile is valid</summary> <description>This is the number of days after which the display color profile is considered invalid.</description> </key> <key type="u" name="recalibrate-printer-threshold"> <default>0</default> <summary>The duration a printer profile is valid</summary> <description>This is the number of days after which the printer color profile is considered invalid.</description> </key> <key type="b" name="night-light-enabled"> <default>false</default> <summary>If the night light mode is enabled</summary> <description>Night light mode changes the color temperature of your display when the sun has gone down or at present times.</description> </key> <key type="u" name="night-light-temperature"> <default>4000</default> <summary>Temperature of the display when enabled</summary> <description>This temperature in Kelvin is used to modify the screen tones when night light mode is enabled. Higher values are bluer, lower redder.</description> </key> <key type="b" name="night-light-schedule-automatic"> <default>true</default> <summary>Use the sunrise and sunset</summary> <description>Calculate the sunrise and sunset times automatically, from the current location.</description> </key> <key type="d" name="night-light-schedule-from"> <default>20.00</default> <summary>The start time</summary> <description>When “night-light-schedule-automatic” is disabled, use this start time in hours from midnight.</description> </key> <key type="d" name="night-light-schedule-to"> <default>6.00</default> <summary>The end time</summary> <description>When “night-light-schedule-automatic” is disabled, use this end time in hours from midnight.</description> </key> <key type="(dd)" name="night-light-last-coordinates"> <default>(91,181)</default> <summary>The last detected position</summary> <description>When location services are available this represents the last detected location. The default value is an invalid value to ensure it is always updated at startup.</description> </key> </schema> </schemalist> ================================================================================ 先探索到此。 以上提供參考,給對這部份想要深入探究的人,一個探索的起點。 關於「gsettings」相關的概念,可以回到索引,找尋相關的文章來閱讀。 報告完畢 ![]() ================================================================================ [回到索引]
2017/11/11 18:20
|
||||||||||
![]() |
回覆: Ubuntu 17.10 推出 |
|||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
會員五級
![]() ![]() 註冊日期:
2012/4/22 10:50 所屬群組:
已註冊使用者 等級: 37
HP : 0 / 901
![]() |
[回到索引]
================================================================================ ## 關於「Night Light 設定」的「Daemon」 ================================================================================ 延續「#48」。 了解到可以透過下面指令,讓螢幕有變化。
不過「gsettings」應該只有修改值。 所以推測有另一個「daemon」在跑,監聽著「org.gnome.settings-daemon.plugins.color night-light-temperature」是否有變化, 有變化,就會根據該變化,作相對應的動作。 ================================================================================ 先來作一個小實驗,來描繪這樣的概念, 我之前在「#10 回覆: Ubuntu Linux 17.10 螢幕鎖定失效」這篇,也有做這樣的小實驗。 先在「Terminal A」,執行下面指令,
然後另外開啟一個「Terminal B」,執行下面指令,
可以看到「Terminal A」,會出現下面的訊息。
然後在「Terminal B」,執行下面指令,
可以看到「Terminal A」,會出現下面的訊息。
================================================================================ 接下來,透過上一篇提到的「/usr/share/glib-2.0/schemas/org.gnome.settings-daemon.plugins.color.gschema.xml」, 來找到相關的「Daemon」套件和原始碼。 以下探索開始。 ================================================================================ 執行
顯示
================================================================================ 執行
顯示 Package: gnome-settings-daemon Format: 3.0 (quilt) Binary: gnome-settings-daemon, gnome-settings-daemon-schemas, gnome-settings-daemon-dev ================================================================================ 執行
顯示 Desired=Unknown/Install/Remove/Purge/Hold | Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend |/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad) ||/ Name Version Architecture Description +++-======================================-========================-========================-====== ii gnome-settings-daemon 3.26.1-0ubuntu5 amd64 daemon handling the GNOME session settings ii gnome-settings-daemon-schemas 3.26.1-0ubuntu5 all Shared schemas for gnome-settings-daemon ================================================================================ 執行
顯示
================================================================================ 執行
顯示
================================================================================ 執行
顯示 user 1212 0.0 0.0 296580 8024 tty1 Sl+ 10:00 0:00 /usr/lib/gnome-settings-daemon/gsd-mouse user 1217 0.0 0.3 545660 24824 tty1 Sl+ 10:00 0:01 /usr/lib/gnome-settings-daemon/gsd-power user 1220 0.0 0.1 345756 9344 tty1 Sl+ 10:00 0:00 /usr/lib/gnome-settings-daemon/gsd-print-notifications user 1222 0.0 0.0 423492 5868 tty1 Sl+ 10:00 0:00 /usr/lib/gnome-settings-daemon/gsd-rfkill user 1225 0.0 0.0 275880 5588 tty1 Sl+ 10:00 0:00 /usr/lib/gnome-settings-daemon/gsd-screensaver-proxy user 1227 0.0 0.1 469920 11576 tty1 Sl+ 10:00 0:09 /usr/lib/gnome-settings-daemon/gsd-sharing user 1232 0.0 0.2 458888 23728 tty1 Sl+ 10:00 0:01 /usr/lib/gnome-settings-daemon/gsd-wacom user 1235 0.0 0.2 523692 23644 tty1 Sl+ 10:00 0:01 /usr/lib/gnome-settings-daemon/gsd-xsettings user 1239 0.0 0.0 392616 7352 tty1 Sl+ 10:00 0:00 /usr/lib/gnome-settings-daemon/gsd-smartcard user 1241 0.0 0.1 342948 9584 tty1 Sl+ 10:00 0:00 /usr/lib/gnome-settings-daemon/gsd-sound user 1256 0.0 0.2 450156 22824 tty1 Sl+ 10:00 0:01 /usr/lib/gnome-settings-daemon/gsd-a11y-keyboard user 1257 0.0 0.2 374076 22856 tty1 Sl+ 10:00 0:01 /usr/lib/gnome-settings-daemon/gsd-clipboard user 1258 0.0 0.0 296572 7760 tty1 Sl+ 10:00 0:00 /usr/lib/gnome-settings-daemon/gsd-a11y-settings user 1259 0.0 0.1 496156 15612 tty1 Sl+ 10:00 0:00 /usr/lib/gnome-settings-daemon/gsd-datetime user 1267 0.0 0.3 696260 24788 tty1 Sl+ 10:00 0:28 /usr/lib/gnome-settings-daemon/gsd-color user 1268 0.0 0.2 526444 22904 tty1 Sl+ 10:00 0:01 /usr/lib/gnome-settings-daemon/gsd-keyboard user 1269 0.0 0.1 374728 8268 tty1 Sl+ 10:00 0:04 /usr/lib/gnome-settings-daemon/gsd-housekeeping user 1272 0.0 0.3 1108284 25640 tty1 Sl+ 10:00 0:02 /usr/lib/gnome-settings-daemon/gsd-media-keys user 1305 0.0 0.1 532128 14512 tty1 Sl+ 10:00 0:00 /usr/lib/gnome-settings-daemon/gsd-printer user 1325 0.0 0.0 271500 6084 tty1 Sl+ 10:00 0:00 /usr/lib/gnome-disk-utility/gsd-disk-utility-notify user 28119 0.0 0.0 21744 1076 pts/0 S+ 10:00 0:00 grep --color=auto gsd ================================================================================ 執行
顯示
================================================================================ 執行
顯示
================================================================================ 執行
顯示
================================================================================ 執行下面指令,下載「gnome-settings-daemon」的「Source Package: gnome-settings-daemon」
會下載下面三個檔案 * gnome-settings-daemon_3.26.1-0ubuntu5.debian.tar.xz * gnome-settings-daemon_3.26.1-0ubuntu5.dsc * gnome-settings-daemon_3.26.1.orig.tar.xz 並且解開到「gnome-settings-daemon-3.26.1」 ================================================================================ 執行
顯示
所以最後就可以找到「gnome-settings-daemon-3.26.1/plugins/color/gsd-night-light.c」這個檔案。 ================================================================================ 先探索到此。 以上提供參考,給對這部份想要深入探究的人,一個探索的起點。 報告完畢 ![]() ================================================================================ [回到索引]
2017/11/11 21:37
|
||||||||||
![]() |
回覆: Ubuntu 17.10 推出 |
|||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
會員五級
![]() ![]() 註冊日期:
2012/4/22 10:50 所屬群組:
已註冊使用者 等級: 37
HP : 0 / 901
![]() |
[回到索引]
================================================================================ ## 關於在「Ubuntu Budgie」,「Panel」上的「Night Light 設定」 ================================================================================ 延續「#44」以及「#48」和「#49」提到的。 來探索在「Ubuntu Budgie」,「Panel」上的「Night Light 設定」。 ================================================================================ ## 探索開始 執行
顯示 user 1246 0.0 0.2 369980 2980 ? Sl 10:44 0:00 /usr/lib/gnome-settings-daemon/gsd-housekeeping user 1247 0.0 0.6 523856 6464 ? Sl 10:44 0:01 /usr/lib/gnome-settings-daemon/gsd-keyboard user 1251 0.0 0.8 892560 8880 ? Sl 10:44 0:02 /usr/lib/gnome-settings-daemon/gsd-media-keys user 1252 0.0 0.2 291936 3036 ? Sl 10:44 0:00 /usr/lib/gnome-settings-daemon/gsd-mouse user 1253 0.0 0.8 543096 8628 ? Sl 10:44 0:01 /usr/lib/gnome-settings-daemon/gsd-power user 1256 0.0 0.3 341200 3408 ? Sl 10:44 0:00 /usr/lib/gnome-settings-daemon/gsd-print-notifications user 1259 0.0 0.3 465280 3292 ? Sl 10:44 0:00 /usr/lib/gnome-settings-daemon/gsd-sharing user 1261 0.0 0.2 387972 2208 ? Sl 10:44 0:00 /usr/lib/gnome-settings-daemon/gsd-smartcard user 1265 0.0 0.2 418932 2640 ? Sl 10:44 0:00 /usr/lib/gnome-settings-daemon/gsd-rfkill user 1267 0.0 0.1 271320 1840 ? Sl 10:44 0:00 /usr/lib/gnome-settings-daemon/gsd-screensaver-proxy user 1273 0.0 0.3 338300 3108 ? Sl 10:44 0:00 /usr/lib/gnome-settings-daemon/gsd-sound user 1276 0.0 0.6 456436 6360 ? Sl 10:44 0:01 /usr/lib/gnome-settings-daemon/gsd-wacom user 1284 0.0 0.6 520456 6548 ? Sl 10:44 0:01 /usr/lib/gnome-settings-daemon/gsd-xsettings user 1290 0.0 0.6 447640 6292 ? Sl 10:44 0:01 /usr/lib/gnome-settings-daemon/gsd-a11y-keyboard user 1293 0.0 0.6 371612 6176 ? Sl 10:44 0:01 /usr/lib/gnome-settings-daemon/gsd-clipboard user 1294 0.0 0.3 291932 3260 ? Sl 10:44 0:00 /usr/lib/gnome-settings-daemon/gsd-a11y-settings user 1297 0.0 0.3 491532 3996 ? Sl 10:44 0:00 /usr/lib/gnome-settings-daemon/gsd-datetime user 1298 0.1 0.7 693704 7588 ? Rl 10:44 0:04 /usr/lib/gnome-settings-daemon/gsd-color user 1384 0.0 0.4 527568 4952 ? Sl 10:44 0:00 /usr/lib/gnome-settings-daemon/gsd-printer user 1571 0.0 0.2 271500 2560 ? Sl 10:45 0:00 /usr/lib/gnome-disk-utility/gsd-disk-utility-notify user 2744 2.0 0.0 17184 984 pts/0 S+ 11:43 0:00 grep --color=auto gsd 執行
顯示 user 802 0.3 1.6 583516 16556 ? Ssl 10:44 0:01 /usr/lib/gnome-session/gnome-session-binary --session=budgie-desktop user 1171 0.0 0.0 11240 324 ? Ss 10:44 0:00 /usr/bin/ssh-agent /usr/bin/im-launch /usr/bin/budgie-desktop user 1417 6.1 16.7 1152696 169688 ? Sl 10:45 0:26 budgie-wm user 1446 1.4 4.6 1276396 47576 ? Sl 10:45 0:06 budgie-panel user 1519 0.2 3.1 537892 31924 ? Sl 10:45 0:01 budgie-daemon user 1522 0.1 2.5 524460 26192 ? Sl 10:45 0:00 budgie-polkit-dialog user 1868 0.0 0.0 17184 976 pts/0 S+ 10:52 0:00 grep --color=auto budgie ================================================================================ ## budgie-panel 執行
顯示
執行
顯示
執行
或是執行
顯示
================================================================================ ## budgie-core 執行
顯示 Desired=Unknown/Install/Remove/Purge/Hold | Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend |/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad) ||/ Name Version Architecture Description +++-======================================-========================-========================-======= ii budgie-core 10.4-1ubuntu4 amd64 Core package for Budgie-Desktop 執行
顯示
執行
顯示
================================================================================ 執行
顯示
執行
顯示 Desired=Unknown/Install/Remove/Purge/Hold | Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend |/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad) ||/ Name Version Architecture Description +++-======================================-========================-========================-======= ii budgie-core 10.4-1ubuntu4 amd64 Core package for Budgie-Desktop ii budgie-desktop 10.4-1ubuntu4 all Desktop package for budgie-desktop ii budgie-desktop-common 0.8.5 all Common Ubuntu Budgie desktop components customisation ii budgie-desktop-environment 0.8.5 all Desktop environment customisation for Ubuntu Budgie ii budgie-indicator-applet 0.4-0ubuntu2 amd64 Application Indicator for the budgie-desktop ii budgie-lightdm-theme 0.8.3 all LightDM Greeter theme for Ubuntu Budgie ii budgie-lightdm-theme-base 0.8.3 all LightDM Session for Ubuntu Budgie ii budgie-wallpapers 17.10 all Wallpapers for Ubuntu Budgie ii budgie-wallpapers-artful 17.10 all Ubuntu Budgie 17.10 Wallpapers un budgie-wallpapers-xenial <none> <none> (no description available) un budgie-wallpapers-yakkety <none> <none> (no description available) un budgie-wallpapers-zesty <none> <none> (no description available) ii budgie-welcome 0.5.5 all Welcome screen for Ubuntu Budgie ii gir1.2-budgie-1.0 10.4-1ubuntu4 amd64 GNOME introspection library for budgie-desktop un gir1.2-budgie-desktop-1.0 <none> <none> (no description available) ii libbudgie-plugin0 10.4-1ubuntu4 amd64 Plugin library for budgie-desktop ii libbudgietheme0 10.4-1ubuntu4 amd64 Theme library for budgie-desktop ii plymouth-theme-ubuntu-budgie-logo 0.8.3 all graphical boot animation and logger - Ubuntu Budgie logo theme ii plymouth-theme-ubuntu-budgie-text 0.8.3 all graphical boot animation and logger - Ubuntu Budgie text theme ================================================================================ 執行下面指令,下載「budgie-core」的「Source Package: budgie-desktop」。
會下載下面三個檔案 * budgie-desktop_10.4-1ubuntu4.debian.tar.xz * budgie-desktop_10.4-1ubuntu4.dsc * budgie-desktop_10.4.orig.tar.xz 必且解開到「budgie-desktop-10.4」這個資料夾 ================================================================================ 從「#48」提到的關鍵字「night-light-temperature」來找尋, 執行
顯示
就可以找到「budgie-desktop-10.4/src/applets/night-light/IndicatorWindow.vala」這個檔案。 ================================================================================ 執行下面指令,觀看「budgie-desktop-10.4/src/applets/night-light」這個資料夾結構
顯示 budgie-desktop-10.4/src/applets/night-light/ ├── indicator_window.ui ├── IndicatorWindow.vala ├── meson.build ├── NightLight.plugin.in ├── NightLight.vala └── org.budgie-desktop.night-light.gresource.xml 0 directories, 6 files ================================================================================ 執行
顯示 31- 32- public IndicatorWindow(Gtk.Widget? window_parent) 33- { 34- Object(relative_to: window_parent); 35- 36- settings = new GLib.Settings("org.gnome.settings-daemon.plugins.color"); 37- 38- settings.bind("night-light-enabled", nightlight_switch, "active", GLib.SettingsBindFlags.DEFAULT); 39- settings.bind("night-light-enabled", item_grid, "sensitive", GLib.SettingsBindFlags.DEFAULT); 40: settings.bind("night-light-temperature", temperature_spinbutton, "value", GLib.SettingsBindFlags.DEFAULT); 41- 42- settings.changed["night-light-schedule-automatic"].connect(() => { 43- schedule_combobox.set_active_id(settings.get_boolean("night-light-schedule-automatic").to_string()); 44- }); 45- 46- schedule_combobox.set_active_id(settings.get_boolean("night-light-schedule-automatic").to_string()); 47- } 48- ================================================================================ 先探索到此。 以上提供參考,給對這部份想要深入探究的人,一個探索的起點。 報告完畢。 ================================================================================ [回到索引]
2017/11/12 11:57
|
||||||||||
![]() |
您可以查看帖子.
您不可發帖.
您不可回覆.
您不可編輯自己的帖子.
您不可刪除自己的帖子.
您不可發起投票調查.
您不可在投票調查中投票.
您不可上傳附件.
您不可不經審核直接發帖.