Можно ли узнать, какой распознанный аромат я использую с помощью терминала?

У меня есть набор функций в bash-скрипте, которые я хочу запускать только в определенных версиях Ubuntu. Например, я хочу запустить следующее, если я запускаю Unity:

gsettings set com.canonical.indicator.datetime show-week-numbers true

, но следующее, если я использую Ubuntu GNOME:

gsettings set org.gnome.shell.calendar show-weekdate true

и аналогично, разные команды для разных ароматы Ubuntu.

Я пытался увидеть содержание /etc/os-release, но оно не дает никакой информации о вкусе Ubuntu. Следующее - при запуске в Ubuntu GNOME:

$ cat /etc/os-release
NAME="Ubuntu"
VERSION="14.04, Trusty Tahr"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu 14.04 LTS"
VERSION_ID="14.04"
HOME_URL="http://www.ubuntu.com/"
SUPPORT_URL="http://help.ubuntu.com/"
BUG_REPORT_URL="http://bugs.launchpad.net/ubuntu/"

Можно ли узнать, какой распознанный вариант я использую с помощью терминала? Я бы предпочел решение, которое работает «из коробки», без установки каких-либо других пакетов как для реальных, так и для установленных сред. Поиск того, какие пакеты установлены, возможен, но я бы предпочел не идти по этому пути, хотя вы можете дать ответ в этом направлении.

8
задан 21 April 2014 в 19:31

5 ответов

Это - команда, которую я использую. Это работает на меня все время:

cat /var/log/installer/media-info 

Вывод (моя система) Правильно говорит, что я выполняю Kubuntu

Kubuntu 14.04 LTS "Trusty Tahr" - Beta amd64 (20140326.2)
0
ответ дан 21 April 2014 в 19:31

Возможно, не разновидность как Kubuntu, Xubuntu, Lubuntu и т.д. Поскольку как Oli и terdon комментирует, что можно установить Kubuntu, но выполняющий XFCE как Рабочий стол.

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

например:

  • echo $XDG_CURRENT_DESKTOP

Примечание:
Значениями переменной могла быть Единица, GNOME, XFCE, KDE, LXDE, Пантеон (Элементарная OS).

Надеюсь, это поможет.

7
ответ дан 21 April 2014 в 19:31

Установите оба. Установите все. Огонь и забудь.

Настройки достаточно эксклюзивны, чтобы не влиять на другие вещи, поэтому они должны быть безопасными ... И это намного, намного проще сделать, чем необходимость выяснить, что происходит , запустить ... Решить, что установка возможна, но это не указывает на то, что пользователь фактически использует.

0
ответ дан 21 April 2014 в 19:31

Следующий if покажет Вам при выполнении Единицы или нет:

if [[ "$(ps -ef | grep unity | grep $USER | grep -v grep)" =~ "unity" ]]; then 
    echo "I'm running Unity"; 
fi

Таким же образом можно проверить, выполняете ли Вы GNOME или другие разновидности. Важная вещь - то, какую (часть) название процесса Вы используете для первого grep. необходимо различать определенный процесс, которые работают все время только в разновидности, о которой Вам интересно.

0
ответ дан 21 April 2014 в 19:31

Если ваша цель - сделать некоторые настройки рабочего стола значениями по умолчанию для всех пользователей, гораздо проще позволить ОС сделать это за вас, используя переопределения схемы Gsettings. Например, создайте /usr/share/glib-2.0/schemas/99_my-settings.gschema.override , содержащий ваши настройки следующим образом:

[com.canonical.indicator.datetime]
show-week-numbers=true

[org.gnome.desktop.calendar]
show-weekdate=true

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

sudo glib-compile-schemas /usr/share/glib-2.0/schemas

Таким образом, вам даже не придется запускать какие-либо сценарии, поскольку каждая среда рабочего стола находит свои новые настройки по умолчанию при запуске. Кроме того, пользователи смогут персонализировать их без скрытого сценария запуска, снова меняющего их.

Вот дополнительная информация: https://developer.gnome.org/gio/stable/glib-compile-schemas.html

0
ответ дан 15 April 2020 в 17:41

Другие вопросы по тегам:

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