Вопрос или проблема
Я использую Ubuntu 22.04. У меня есть три профиля в терминале: один встроенный по умолчанию и два, которые я создал сам:
Мой профиль “OCaml” имеет синий цвет фона среди прочего:
Но когда я пытаюсь использовать xdotool
, как предложено в ответах на этот более старый вопрос, чтобы программно установить мой профиль, ни один из них не работает: цвет фона остается неизменным.
Есть идеи?
Обновление: Просто чтобы было ясно, я не ищу способ установить мой профиль по умолчанию на “OCaml”, я хочу оставить профиль по умолчанию таким, какой он есть, и использовать мой профиль Ocaml только тогда, когда вы угадали, я программирую на языке OCaml. Причина, по которой я хочу сделать это программно, используя командную строку, заключается в том, что в настоящее время, когда я начинаю программировать на OCaml в своем терминале, я выполняю два отдельных действия: вызываю bash-скрипт для настройки своей среды OCaml и устанавливаю профиль на OCaml с помощью графического интерфейса Gnome. Я хотел бы объединить эти два действия в одно, чтобы сэкономить время.
Ответ или решение
Чтобы установить профиль терминала с помощью xdotool
в Ubuntu 22.04, вам необходимо использовать комбинацию CLI инструментов, так как xdotool
не всегда может правильно управлять графическими элементами интерфейса, особенно при работе с профилями терминала.
Вот шаги, которые вы можете предпринять для решения вашей проблемы:
-
Убедитесь, что
xdotool
установлен:
Для начала убедитесь, что у вас установленxdotool
. Выполните следующую команду в терминале:sudo apt install xdotool
-
Используйте
gsettings
для изменения профиля:
Вместо использованияxdotool
, вы можете изменить профиль терминала с помощьюgsettings
. Это более надежный метод, посколькуgsettings
напрямую работает с настройками GNOME. Выполните следующую команду, чтобы установить профиль "OCaml":gsettings set org.gnome.Terminal.legacy profile:/org/gnome/terminal/legacy/profiles:/:<PROFILE_ID>/visible-name 'OCaml' gsettings set org.gnome.Terminal.legacy profile:/org/gnome/terminal/legacy/profiles:/:<PROFILE_ID>/background-color '#<HEX_COLOR>'
Подставьте
<PROFILE_ID>
с идентификатором вашего профиля "OCaml" (это строка, которая выглядит примерно как8e3d4a2b-4f15-4932-92f2-8c3fcb0c780c
). Для того чтобы узнать идентификатор, выполните следующую команду:gsettings get org.gnome.Terminal.Legacy.Profile:/org/gnome/terminal/legacy/profiles:/ list
В результате вы получите список доступных профилей.
-
Скрипт для объединения операций:
Создайте скрипт, который будет настраивать окружение OCaml и менять профиль терминала. Пример скрипта:#!/bin/bash # Установка OCaml окружения eval $(opam env) # Смена профиля на OCaml gsettings set org.gnome.Terminal.legacy profile:/org/gnome/terminal/legacy/profiles:/:<PROFILE_ID>/visible-name 'OCaml' # Открыть новый терминал с OCaml профилем gnome-terminal --window --profile=<PROFILE_ID>
Замените
<PROFILE_ID>
на ваш идентификатор профиля. Не забудьте сделать скрипт исполняемым:chmod +x ваш_скрипт.sh
-
Тестирование:
Запустите ваш скрипт и проверьте, что профиль терминала изменяется и OCaml окружение устанавливается корректно.
Следуя этим шагам, вы сможете без проблем программно менять профиль терминала на OCaml и настраивать окружение с помощью одной команды.