Как мне узнать, какой процесс управляет корневым окном?

Я думаю, здесь возникла путаница с часовыми поясами.

Ожидаемый способ сохранить время в системе Unix / Linux - это установить часы BIOS и системные часы ядра, работающие по всемирному координированному времени. Затем у вас есть один (или несколько) часовых поясов для ваших пользователей. Преобразование часового пояса гарантирует, что базовые часы UTC отображаются в местном времени пользователя.

Давайте попробуем привести пример:

# UTC date/time as known by the system clock
date -u
Tue 31 Jan 14:06:23 UTC 2017

# Local time in the UK
TZ=Europe/London date
Tue 31 Jan 14:06:25 GMT 2017

# Local time in France
TZ=Europe/Paris date
Tue 31 Jan 15:06:27 CET 2017

# Local time in west coast USA
TZ=US/Pacific date
Tue 31 Jan 06:06:30 PST 2017

Вот еще один:

# UTC absolute reference
TZ=UTC ls -l whos_pointing.txt
-rw-r--r-- 1 roaima roaima 143 Jan 31 14:08 whos_pointing.txt

# Local time in the UK
TZ=Europe/London ls -l whos_pointing.txt
-rw-r--r-- 1 roaima roaima 143 Jan 31 14:08 whos_pointing.txt

# Local time in France
TZ=Europe/Paris ls -l whos_pointing.txt
-rw-r--r-- 1 roaima roaima 143 Jan 31 15:08 whos_pointing.txt

# Local time in west coast USA
TZ=US/Pacific ls -l whos_pointing.txt
-rw-r--r-- 1 roaima roaima 143 Jan 31 06:08 whos_pointing.txt

Это тот же файл, но его дата / время отображаются по-разному в зависимости от того, где система думает, что я нахожусь в любой момент.

# Back in the USA
export TZ=US/Pacific
ls -l whos_pointing.txt
-rw-r--r-- 1 roaima roaima 143 Jan 31 06:08 whos_pointing.txt
touch whos_pointing.txt
ls -l whos_pointing.txt
-rw-r--r-- 1 roaima roaima 143 Jan 31 06:16 whos_pointing.txt

# Jump across to the UK. Notice the file's timestamp has updated here too
export TZ=Europe/London
ls -l whos_pointing.txt
-rw-r--r-- 1 roaima roaima 143 Jan 31 14:16 whos_pointing.txt

Нетрудно установить общесистемный часовой пояс по умолчанию, а для отдельных пользователей нетрудно переопределить его с помощью переменной среды TZ . У меня есть сервер в Калифорнии, где часовой пояс по умолчанию - США / Тихоокеанский регион , но моя собственная учетная запись содержит export TZ = Europe / London .

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

1
13.08.2017, 15:22
2 ответа

Корневое окно — это специальное окно X-сервера. У него нет связанного приложения.

Вики неправильно ссылается здесь на корневое окно . Они имели в виду окно, которое маскирует/скрывает корневое окно, которое обычно встречается в современных средах рабочего стола (, обычно называемое рабочим столом , и часто реализуется файловым менеджером, показывающим вам содержимое ~/Desktopпапка ).

Эти xscreensaverвиджеты на самом деле работают, обновляя содержимое корневого окна. Поэтому вам нужно удалить это окно рабочего стола , которое скроет его и любое другое окно, отображаемое поверх корневого окна.

Вы можете попытаться найти идентификатор процесса окон, которые регистрируют «Тип окна» «Рабочий стол» в оконном менеджере. Вы можете сделать что-то вроде:

xwininfo -tree -root |
  pcregrep -o '^\s+\K0x\S+' |
  xargs -n1 xwininfo -wm -id |
  pcregrep -Mo '(?s)Window type:\s+Desktop.*?Process id: \K\d+' |
  sort -u

(xwininfo -treeдля получения списка всех окон, первый pcregrepдля извлечения их идентификатора окна, второй xwininfo для получения свойств WM (, включая тип окна и pid )каждого, а затем второй pcregrepдля извлечения PID этих рабочего стола окон ).

Вы также можете запустить:

xprop _NET_WM_PID

И нажмите на рабочий стол. Или даже:

xkill

И нажмите на рабочий стол, чтобы закрыть это окно.

В любом случае обратите внимание, что может быть небезопасно убивать это окно/процесс, так как он вполне может быть обработан каким-то важным процессом, например оконным менеджером.

В случае cinnamon, по крайней мере, в среде рабочего стола по умолчанию в Linux Mint 18.1 Cinnamon Edition,это похоже на nemo, хотя (файловый менеджер с корицей ), так что от него мало вреда.

3
27.01.2020, 23:24

Ваш заголовок вводит в заблуждение, чтобы найти корневое окно, которое вы могли бы сделать:

xprop -root | grep PID

С флагом -rootвы можете пропустить щелчок по рабочему столу, а с grep PIDвы можете найти PID вашего корневого окна, даже если вы используете малоизвестный WM. Ну, это, вероятно, не будет работать с TWM.

На моем конце вывод выглядит так:

xprop -root | grep PID
I3_PID(CARDINAL) = 3134

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

Предлагаю попробовать отключить обои в корице:

Этот ответ на вопросы по Linux может помочь:System Settings > Backgrounds > Settings > Picture Aspect 'No Picture'

Если это не работает, вы должны отключить рабочий стол:

man nemoговорит:

   --no-desktop
          Do  not  manage  the desktop — ignore the preference
          set in the preferences dialog.

А в FAQ по i3 вы найдете, что эта команда отключит окно рабочего стола для nemo:

gsettings set org.nemo.desktop show-desktop-icons false
0
27.01.2020, 23:24

Теги

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