Как исправить и перестроить gnome-settings-daemon?

Вы можете сделать что-то простое, подобное этому, которое использует execpi для запуска сценария оболочки каждые 30 секунд, который анализирует вывод df / и преобразует его в длинную строку conky color команды и символы \ # (поскольку # используется для комментариев):

${execpi 30  df --output=pcent / | awk 'NR==2 {
  n = ($1+0)/2; yellow = 20; red = 40;
  if(n>=red)   { r = "${color #ff0000}"; for(;n>=red;n--)   r = r "\\#" }
  if(n>=yellow){ y = "${color #ffff00}"; for(;n>=yellow;n--)y = y "\\#" }
                 g = "${color #00ff00}"; for(;n>0;n--)      g = g "\\#";
  print g y r
  printf "%50s"," "
 }' }
${color}

My df --output = pcent выводит 2 линии; второй - используемый процент, например 69% . Я пробовал это на conky 1.9.


Если ваш файл ~ / .conkyrc был преобразован в формат версии 1.10, он будет содержать строку

conky.text = [[

. Убедитесь, что вы добавили указанный выше сценарий перед окончательным закрытием ]] . Кроме того, цвета 1,10, указанные как числа (например, # ff0000 выше), больше не начинаются с # , поэтому следует использовать ff0000 и т. Д. в скрипте. Для упрощения поместите следующий скрипт в отдельный файл где-нибудь в вашем PATH, скажем ~ / mydf , сделайте его исполняемым ( chmod + x ~ / mydf ), а затем поместите это имя файла в ~ / .conkyrc , например $ {execpi 30 ~ / mydf /}

#!/bin/bash
df --output=pcent "${1?}" | awk 'NR==2{
   n = ($1+0)/2; yellow = 20; red = 40;
   if(n>=red)   { r = "${color ff0000}"; for(;n>=red;n--)   r = r "\\#" }
   if(n>=yellow){ y = "${color ffff00}"; for(;n>=yellow;n--)y = y "\\#" }
                  g = "${color 00ff00}"; for(;n>0;n--)      g = g "\\#";
   print g y r
   printf "%50s"," "
  }'

Если вы хотите поместить весь сценарий в ~ / .conkyrc , вам нужно будет увеличить размер буфера по умолчанию, иначе команда будет усечена до 256 символов. Это приводит к ошибкам типа

sh: -c: line 0: unexpected EOF while looking for matching `''

. Для этого в 1.10 добавьте строку внутри части conky.config = {...} , убедившись, что вы разделяете настройки запятой (, ):

text_buffer_size = 400,

В conky 1.9 добавьте строку перед разделом TEXT :

text_buffer_size 400

Чтобы остановить изменение размера окна по мере увеличения количества напечатанных символов, последний printf "% 50s", "" добавляет секунду строка пробелов максимальной длины. В качестве альтернативы добавьте параметр конфигурации для минимального размера окна в пикселях, например minimum_size 500 (или minimum_size = 500, для 1.10), где используемое значение зависит от шрифта. ширина символа # .

2
22.06.2017, 21:52
1 ответ

Создайте каталог buildи загрузите туда патч, сохранив его как d.patch.

Следуйте этому сценарию. (Я сохранил всю сессию, чтобы вы знали, из каких каталогов вы должны использовать эти заклинания ).

[user@MACHINE build]$ git clone git://git.gnome.org/gnome-settings-daemon #download GSD source
[user@MACHINE build]$ git clone git://git.gnome.org/libgnome-volume-control #download dependency
[user@MACHINE build]$ cd gnome-settings-daemon/
[user@MACHINE gnome-settings-daemon]$ git checkout GNOME_SETTINGS_DAEMON_3_18_2 #get the version for which the script was prepared
[user@MACHINE gnome-settings-daemon]$ git submodule init #download more dependencies
[user@MACHINE gnome-settings-daemon]$ git config --local submodule.panels/media-keys/gvc.url../libgnome-volume-control
[user@MACHINE gnome-settings-daemon]$ git submodule update
[user@MACHINE gnome-settings-daemon]$ cd..
[user@MACHINE build]$ wget https://launchpad.net/ubuntu/+archive/primary/+files/gnome-settings-daemon_3.18.2-0ubuntu2.debian.tar.xz #download Ubuntu patches - that's why I asked you about your OS
[user@MACHINE build]$ tar -xf gnome-settings-daemon_3.18.2-0ubuntu2.debian.tar.xz 
[user@MACHINE build]$ cd gnome-settings-daemon/
[user@MACHINE gnome-settings-daemon]$ patch -p1 -i../debian/patches/64_restore_terminal_keyboard_shortcut_schema.patch #apply Ubuntu patches if you want Ubuntu version of GSD
[user@MACHINE gnome-settings-daemon]$ patch -p1 -i../debian/patches/ubuntu-lid-close-suspend.patch
[user@MACHINE gnome-settings-daemon]$ patch -p1 -i../debian/patches/revert_background_dropping.patch
[user@MACHINE gnome-settings-daemon]$ patch -p1 -i../debian/patches/revert-gsettings-removals.patch
[user@MACHINE gnome-settings-daemon]$ cd..
[user@MACHINE build]$ mv gnome-settings-daemon gnome-settings-daemon-3.18.2
[user@MACHINE build]$ patch -p0 <d.patch #patch with downloaded patch
[user@MACHINE build]$ cd gnome-settings-daemon-3.18.2/
[user@MACHINE gnome-settings-daemon-3.18.2]$ NOCONFIGURE=1./autogen.sh #generate config script - would fail if we wouldn't download those dependencies before
[user@MACHINE gnome-settings-daemon-3.18.2]$./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var --libexecdir=/usr/lib/gnome-settings-daemon --disable-static #configure - will check for dependencies  - you might need to download some packages
[user@MACHINE gnome-settings-daemon-3.18.2]$ sed -i -e 's/ -shared / -Wl,-O1,--as-needed\0/g' libtool #see https://bugzilla.gnome.org/show_bug.cgi?id=656231
[user@MACHINE gnome-settings-daemon-3.18.2]$ make
[user@MACHINE gnome-settings-daemon-3.18.2]$ make install

Скрипт адаптирован из здесь . Вы можете увидеть там примерно зависимости, необходимые для его настройки.

TL;DR Единственное волшебство — собрать вместе все исходники :git submodules, патчи Ubuntu с панели запуска и libgnome-volume-control. Это будет работать без применения sed. Все остальное - стандартная процедура.

1
27.01.2020, 22:18

Теги

Похожие вопросы