xmobar не появляется

Если Вы смотрите в источниках ядра (или пакет документа ядра, или в сети), посмотрите в Документации/файловых системах, она варьируется файловой системой.

Например, с ext2 inode число может быть переведено с помощью информации, сохраненной в суперблоке к определенному смещению в разделе — одна из причин ext2 выделяет постоянное число inodes в mkfs время — который затем читается. inode содержит много метаданных, включая двенадцать указателей, говорящих, где фактические данные файла хранятся. Если существует больше чем двенадцать фрагментов, существует указатель на косвенный блок (который хранит намного больше). Косвенные блоки могут быть объединены в цепочку (у каждого есть указатель на следующий косвенный блок).

Суперблок хранится при фиксированном смещении от запуска раздела, таким образом, его легкое для нахождения. (mkfs создает резервные суперблоки также),

Можно интересоваться btrfs дисковым форматом, он даже имеет изображения, хотя та документация - меньше завершенное, чем ext2 документы.

5
20.12.2014, 14:07
2 ответа

Бар останавливается, потому что вы запускаете его как фоновое задание, но он настроен на чтение из stdin (стандартный вход). Процесс xmobar не завершается, вы все равно должны видеть панель.

Если панель вообще не видна, это может быть связано с тем, что она покрыта вашим рабочим столом. Вы уже импортируете XMonad.Hooks.ManageDocks и используете avoidStruts, так что вы также можете использовать крюк managementDocks, который он предоставляет и заставить xmobar вести себя как dock (overrideRedirect=False в конфигурации).

Вы настроили xmobar на чтение со стандартного входа, поэтому вы должны иметь что-то записывающее на его стандартный вход. Это может быть что угодно, не обязательно xmonad.

Вам не нужно иметь для запуска xmobar из xmonad, но если Вы хотите показать вывод, предоставленный, например, XMonad.Hooks.DynamicLog , то проще запустить его оттуда.

Вы можете использовать удобную функцию xmobar, как описано в документе :

main = xmonad =<< xmobar myConfig

Или вы можете использовать функцию statusBar и определить свой собственный красивый формат печати:

main = xmonad =<< statusBar "xmobar" myPP myToggleKey myConfig

или непосредственно использовать dynamicLogWithPP, как показано в примере в документации :

main = do
    h <- spawnPipe "xmobar -options -foo -bar"
    xmonad $ defaultConfig {
      ...
      logHook = dynamicLogWithPP $ defaultPP { ppOutput = hPutStrLn h }

spawnPipe выполняет данную команду и возвращает хэндл к своему стандартному входу, этот хэндл затем используется при определении функции ppOutput.

4
27.01.2020, 20:40

У меня был рабочий конфиг, и после некоторых незначительных изменений я не мог понять, почему xmobar больше не работает. Другие опубликованные решения также важны, но что в конечном итоге сработало для меня в этом случае, так это добавить lowerOnStart = Falseв.xmobarrc, поэтому он не отправляется в нижнюю часть стека окон при запуске.

0
27.01.2020, 20:40

Теги

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