Почему моя команда xprop не работает при входе в систему, если я запускаю ее из ~/.profile?
Я бегу Lubuntu 16.04. Он использует openbox в качестве оконного менеджера. Я хотел настроить виртуальные рабочие столы, чтобы они располагались в виде сетки, а не линии, что я могу сделать, выполнив эту команду:
xprop -root -f _NET_DESKTOP_LAYOUT 32cccc -set _NET_DESKTOP_LAYOUT 0,3,2,0
Это прекрасно работает при запуске вручную. Так что я положил эту команду в моем ~/.profile, надеясь, что это будет выполняться при каждом входе в систему.
Но это не так.:( Lubuntu загружается, я вхожу в систему, и пейджер все еще находится в одной строке. Мне нужно вручную запустить эту команду, чтобы вернуть макет рабочего стола.
.profile выполняется, когда я вхожу в систему. Я могу сказать это, потому что сделанные в нем корректировки PATHS оказывают влияние.
- Почему это работает, когда работает в терминале, но не из.profile? (Я даже сделал
source ~/.profileвместо того, чтобы вводить / копировать команду, чтобы убедиться, что она верна в файле) - Где находится соответствующий файл для размещения такой команды, чтобы он выполнялся правильно?
В поисках любых последующих команд 'xprop', которые могли бы переопределить его, я запустил
grep -r xprop .
и нашел ссылку на ошибку xprop в файле run.log, Журнал создается в каждом журнале:
pod@lubuntu-vm:~$ grep -C3 xprop ~/.cache/lxsession/Lubuntu/run.log
** Message: utils.vala:79: Config system location : /etc/xdg/lxsession/Lubuntu
** Message: utils.vala:85: System system path location : /etc/xdg/lxsession/Lubuntu/conffiles.conf
** Message: utils.vala:89: Final file used : /etc/xdg/lxsession/Lubuntu/conffiles.conf
xprop: no such property "_NET_NUMBER_OF_DESKTOPS"
xprop: no such property "_NET_DESKTOP_NAMES"
** Message: options.vala:164: Activate xsettings_manager build-in
** Message: utils.vala:68: User config used : /home/pod/.config/lxsession/Lubuntu/desktop.conf
** Message: utils.vala:89: Final file used : /home/pod/.config/lxsession/Lubuntu/desktop.conf
Но это единственная ссылка, и это не то же свойство, которое я пытаюсь настроить.
1 ответ
Проблема
Как я уже упоминал в комментариях, проблема заключается в сроках. (команды to-) Конфигурирование рабочих столов обычно является чем-то, что сломается, если рабочий стол не готов к этому, и ваша команда просто не достигает цели. Это часто происходит, например, при выполнении команд по настройке мониторов, клавиатуры и мыши.
Решать
Чтобы решить эту проблему, вам нужно добавить небольшой перерыв перед запуском команды. Я не запускаю Lubuntu, но согласно этому посту, вы должны иметь возможность добавить команду для запуска (войти в систему) здесь: меню "Пуск" → "Настройки" → "Приложения по умолчанию для LXSession" → "Автозапуск". Команда добавить небольшой перерыв:
/bin/bash -c "sleep 5 && xprop -root -f _NET_DESKTOP_LAYOUT 32cccc -set _NET_DESKTOP_LAYOUT 0,3,2,0"
Кроме того, (проверено вами:)), вы можете добавить его в ~/.profileи добавить & чтобы он работал в фоновом режиме и не задерживал процесс входа в систему.