Рабочий стол забывает тему?

79

Я использую Ubuntu в VirtualBox (на хосте Windows 7). Несколько раз теперь строка меню верхнего уровня, панель задач - и, по-видимому, каждый системный диалог - забыли стандартную тему «Ambiance», которой они соответствуют, когда я впервые устанавливал систему. Заголовки окон по-прежнему сохраняют тему, но больше ничего не делает.

Я искал высоко и низко в Google для помощи с этой проблемой. Все, что я нашел, предлагает либо выполнить сброс gconf, либо удалить .gconf * .gnome * и другие подобные каталоги. Я следовал всем этим советам, и ничего не работает. Я все еще получаю скучный серый 3D-стиль в стиле Windows-95. В предыдущих случаях, после долгих раздумий, я отказался и перезагрузил экземпляр VM, и был приятно удивлен, увидев, что оригинальная тема «Ambience» восстановлена ​​во всем пользовательском интерфейсе, но неизменно она снова исчезает через некоторое время, обычно после перезагрузки, так что я никогда не могу понять, что я сделал, что сломало это.

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

альтернативный текст

И вот скриншот моей системы, как она выглядит в настоящее время.

альтернативный текст

Также обратите внимание, что мои терминалы GNOME обычно имеют красивый полупрозрачный фиолетовый оттенок, и, как видно из скриншота, они теперь просто сплошного матового белого цвета.

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

Как восстановить готовую тему для моего рабочего стола Gnome / Ubuntu, отметив, что удаление всех файлов конфигурации - как это предлагается во многих местах в Интернете - не может этого достичь?

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

Марсело Кантос
источник
звучит как эта ошибка: bugs.launchpad.net/ubuntu/+source/gnome-settings-daemon/+bug/…
Андре

Ответы:

45

Ответ @ zpletan привел к некоторой охоте вокруг, которая быстро раскопала то, что, кажется, является основной причиной моей проблемы. Это подробно описано в Ubuntu Bug # 574296 . Таким образом, моя система Core i7 с SSD запускает все с достаточно разными временами, что демон gnome-settings-settings запускает слишком рано, выдает ошибку и оставляет меня в основном со стандартной темой GTK.

Короткий сон /etc/xdg/autostart/gnome-settings-daemon.desktopисправляет это:

Exec= bash -c "sleep 2; /usr/lib/gnome-settings-daemon/gnome-settings-daemon"
Марсело Кантос
источник
Это отлично! Я просто подумал, что будет лучше повысить достоверность вашего ответа: D
Марко Чеппи
2
+1, однако я должен отметить, что это не всегда работало для меня (было спорадическим) ... см. Мой ответ ниже о том, как я получил что-то, что, кажется, работает 100% времени.
ТМ.
22

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

Тем не менее, один из ответов указал на ошибку, которая отслеживает эту проблему, и я нашел комментарий об ошибке, который решил ее для меня.

Вот ключевые биты:

Сначала создайте скрипт bash (я назвал его /etc/xdg/autostart/gnomesettingsdaemonfix.sh)

#!/bin/bash

pid=$(pgrep gnome-settings-)

while [ -n "$pid" ];
do
  pid=$(pgrep gnome-settings-)
  sleep 0
done

exit 0

Убедитесь, что он исполняемый (запущен chmod +x).

Затем отредактируйте /etc/xdg/autostart/gnome-settings-daemon.desktop

Измените Execстроку на:

Exec=bash -c '/etc/xdg/autostart/gnomesettingsdaemonfix.sh;/usr/lib/gnome-settings-daemon/gnome-settings-daemon'

Это, кажется, исправило это до сих пор для меня.

TM.
источник
4
+1 Это кажется лучшим решением, когда вместо настройки времени сна фактически учитывается состояние гонки.
mindless.panda
1
Почему эта ошибка не была исправлена? Если эта простая проверка может решить проблему, почему не было сделано исправление?
Люка нет имени
Я полагал, что это решение решит мою проблему, так как у меня есть ядро ​​i3, но это не так :( У меня gnomesettingsdaemonfix.shесть разрешения 0777. Одна вещь, которую я обнаружил в моем Ubuntu 16, заключается в том, что в Execстроке usr/lib/gnome-settings-daemon/gnome-settings-daemon-localeexecвместо () используется () usr/lib/gnome-settings-daemon/gnome-settings-daemon. что-то не так?
Ejaz
16

Нажмите Alt + F2 (Запустить приложение) и запустите следующее:

gksudo gnome-settings-daemon
zpletan
источник
+1, @zpletan за то, что подтолкнул меня в правильном направлении. Когда я запускаю это через sudo gnome-settings-daemon, он восстанавливает полную тему, но я не хочу запускать это каждый раз, когда перезагружаю свою систему. Я добавлю ошибки, которые я получаю без sudo, к моему вопросу. Может быть, это намекает на то, что идет не так.
Марсело Кантос
На самом деле, это не обязательно. Комментарий @ Хорхе к моему ответу приводит к вопросу, который точно показывает результат, который я вижу.
Марсело Кантос
7

10.10 имеет эту проблему, но обычно это происходит при установке проприетарного драйвера nvidia. Тем не менее, решение, вероятно, также будет работать на виртуальной машине.

Создать текстовый файл. Напиши в нем

включите "/usr/share/themes/Ambiance/gtk-2.0/gtkrc"
gtk-icon-theme-name = "ubuntu-mono-dark"

и сохраните его в своей домашней папке под именем .gtkrc-2.0. Запустить снова.

Если все еще есть неправильные элементы (для меня это был шрифт), вам нужно добавить это изменение в файл, google для gtk tutorial для возможных тонких настроек.

rumtscho
источник
+1, @rumtscho; этот ответ возвращает полную тему. Это похоже на обходной путь, однако. Так как без него Ubuntu 10.10 выглядит правильно, зачем вообще нужен этот файл?
Марсело Кантос
Нетронутая Ubuntu поставляется только с открытыми видео драйверами. Проблема, которую вы описываете, является распространенной ошибкой в ​​проприетарных видео драйверах. Поскольку они являются закрытым исходным кодом, только nVidia может доставить исправление. Вы можете удалить их и вернуться к драйверу с открытым исходным кодом, но вы потеряете Compiz и 3D-ускорение.
Румцхо
это, кажется, исправило это в моей установке 10.10 ... сейчас
Натан Шверманн
говорил слишком рано, при следующей перезагрузке настройки снова были потеряны
Натан Шверманн
@schwiz Для меня это работает каждый раз, но настройки должны быть сохранены в домашней папке учетной записи, с которой вы сейчас вошли. Если вы перезагрузились и вошли в систему как другой пользователь, это не сработает. Если вы запустите окно графического интерфейса с помощью sudo, оно также не будет работать, так как в нем будут настройки пользователя root, а не пользователя, вошедшего в систему.
rumtscho
4

Я искал решение этой проблемы в течение нескольких месяцев. Видимо, никто не знает, что вызывает это. Эта ошибка существует годами, и никто не исправил ее.

Иногда это происходит во время загрузки с состоянием гонки между первым и вторым экземплярами gnome-settings-daemon, а иногда это происходит в середине сеанса рабочего стола, когда gnome-settings-daemon либо перестает работать, либо вылетает.

Единственный обходной путь, который я нашел, кажется, это исправить, это набрать

killall gnome-settings-daemon
gnome-settings-daemon &

в работающем терминале, который я оставляю открытым.

Закрытие терминала уничтожает фоновый экземпляр gnome-settings-daemon, и рабочий стол возвращается к теме по умолчанию (не по умолчанию Ubuntu, а по умолчанию gnome). Поэтому я запускаю демон в фоновом режиме и оставляю терминал работающим, потому что процессу нужен его родитель.

Cheryl
источник
Вы можете избежать открытия терминала, запустив Run Application (Alt + F2) и указав его в gksudo gnome-settings-daemonкачестве аргумента.
vemv
4

У меня была такая же проблема, и я получал ошибку в начале: Could not apply the stored configuration for monitors.

Удалил файл: ~/.config/monitors.xmlперезаписал и работал как перчатка.

с обнаженной грудью
источник
2
Это сработало и для меня! Для читателей, я думаю, вам следует обратить внимание на это решение, если вы недавно модифицировали (или модифицировали и восстановили) свой xconfig ( /etc/X11/xorg.conf[.d]).
Северо Раз
2

У меня такая же проблема, sudo killall nautilusисправляет. (временно)

ямка
источник
Спасибо за комментарий, @Pit, но это ничего не сделало для меня.
Марсело Кантос
Сегодня у меня снова возникла проблема, и мне пришлось бежать, gnome-appearance-propertiesчтобы исправить меню, а потом killall nautilusисправить внешний вид наутилуса.
Яма
1

Извините, но мое предыдущее предложение использовать --sync не является исправлением. Оказывается, после некоторого перезапуска проблема та же.

Но, надеюсь, мне удалось захватить следующий вывод из аварийного процесса 'gnome-settings-daemon' во время запуска, когда тема не применяется:

** (gnome-settings-daemon:1679): WARNING **: You can only run one xsettings manager at a time; exiting

** (gnome-settings-daemon:1679): WARNING **: Unable to start xsettings manager: Could not initialize xsettings manager.

Когда тема успешно применена, нет вывода.

Исходя из этого, похоже, что gnome-settings-daemon может работать как-то два раза. Очевидно, что если первый экземпляр завершится до запуска второго, тема будет применена, иначе произойдет сбой.

ПРИМЕЧАНИЕ. Захват выходных данных был выполнен путем редактирования записи /etc/xdg/autostart/gnome-settings-daemon.desktop 'Exec =' в "bash -c" / usr / lib / gnome-settings-daemon / gnome-settings-daemon --debug --sync &> /home/sanjeev/Desktop/test.txt '"(опция --sync использовалась в соответствии с рекомендациями некоторых веб-сайтов)

PS: Дальнейшие тесты показывают, что действительно работает два экземпляра, которые должны запускаться один за другим.

Хотя метод «сна» может подойти, вот более «технически правильное», если можно, решение проблемы. Я попытался с 6 перезапусками, и, кажется, работает следующее:

Шаг 1: Создайте скрипт (я назвал его gnome-settings-daemon-fix.sh) в / etc / xdg / autostart со следующим:

#!/bin/bash
# gnome-settings-daemon-fix.sh

pid=`pgrep gnome-settings-`
wait pid

exit 0

Шаг 2: Отредактируйте файл «gnome-settings-daemon.desktop» в разделе «Exec =» и замените его следующим:

Exec=bash -c 'bash /etc/xdg/autostart/gnome-settings-daemon-fix.sh ;/usr/lib/gnome-settings-daemon/gnome-settings-daemon'

Все сделано. По сути, мы ожидаем выхода первого экземпляра перед запуском второго. Кто-нибудь может уведомить, если это решило их проблему?

Санджив
источник
Это близко, но это не совсем работает по нескольким причинам. Однако самая большая проблема заключается в том, что команда wait не будет работать с другим процессом.
ТМ.
1

У меня тоже была очень похожая проблема. Это было после (частичного) обновления моего Natty Narwhal, так как он был в состоянии альфа-3. В моем случае файл ~ / michael / .nautilus / browser.xml оказался поврежденным. После опробования некоторых предложений этого частичного сайта я просто удалил этот файл, перезапустил свой компьютер, и все мои темы вернулись и оставались стабильными. Я думаю, вы можете попытаться решить вашу проблему, как я.

Майкл Стаенгл
источник
1

Это иногда случается со мной с 11.04 Unity 3D, и каждый раз, когда я очищаю его, открываю «Внешний вид», «Настройка», вкладку «Значок» и нажимаю на выбранный набор значков, даже если он был указан как используемый. В моем случае это будет Faenza-Dark. Это случается так редко, что мне еще предстоит идентифицировать любую последовательность событий, которая вызывает это.

Фрагос
источник
1

Вот одно быстрое решение, перейдите на виртуальную консоль, остановите gdm, запустите X-сервер

  1. нажмите «Право Ctrl + F1» (Ctrl + Alt + F1 - комбинация для не виртуализированных установок)
  2. авторизоваться
  3. тип: sudo /etc/init.d/gdm stop
  4. тип: startx

так как это мой первый пост, я должен был поместить изображения, как это:

http://imgur.com/a/bi0xm#0

nidla
источник
1

Это также случилось со мной, и в моем случае мне пришлось уничтожить весь мой домашний каталог, а затем восстановить кусочки обратно, согласно ответу здесь . Если вы выполняете сценарии синхронизации для gnome-settings-daemon, посмотрите, сможете ли вы заставить его работать правильно, создав другую учетную запись и войдя в нее как эта учетная запись. В моем случае, у 2-й учетной записи не было проблемы с запуском, и поэтому я применил исправление в ссылке.

mfisch
источник
0

Пожалуйста, попробуйте это и перезагрузите компьютер! :)

gconftool-2 --shutdown        
rm -rf ~/.gconf/apps/panel       
pkill gnome-panel        
Иван Стоянович
источник
Спасибо за предложение, Иван, но без банана. Я ввел приведенные выше инструкции и перезагрузился. Система вернулась с недавно настроенной панелью, но все еще с мягкой серой цветовой схемой и белым фоном на моих окнах терминала.
Марсело Кантос
0

Я думаю, что есть немало людей с правильной идеей.

Я полагаю, что после определенных обновлений (новых ядер и т. Д.) Этот ureadahead будет перепрофилирован. Здесь я думаю, что проблема возникает. gnome-settings-daemon вызывается слишком рано.

Я удалил все файлы с именем 'pack' (pack, home.pack, boot.pack, run.pack) в имени в папке / var / lib / ureadahead /, чтобы принудительно выполнить перепрофилирование. После этого все выглядело отлично.

При перепрофилировании удалите вышеуказанные файлы, перезагрузитесь и войдите в систему быстро, как только вы увидите экран входа в систему. Подождите около 30 секунд или когда диск перестанет вращаться, прежде чем что-либо делать. Пусть он закончит свой бизнес. Ваше окно наутилуса теперь должно выглядеть хорошо.

Возможно, в ureadahead должна быть отправлена ​​ошибка, из-за которой gnome-settings-daemon вышла из строя.

user32089
источник