Вышеприведенный ответ является хорошим решением. Чтобы облегчить процесс, можно было бы привести его в практический сценарий. Например:
echo autospawn = no > $HOME/.config/pulse/client.conf
pulseaudio --kill
read -p "Press enter to enable pulseaudio again."
rm $HOME/.config/pulse/client.conf
pulseaudio --start
Я не думал об этом, просто адаптировал его. Этот скрипт работает для меня в Ubuntu 16.04.
Профиль каждого пользователя управляется базой данных DConf. Вы можете узнать больше об этом, отвечая на этот вопрос: приложение на основе графического интерфейса выполняет команды оболочки в фоновом режиме? Каждый конкретный параметр имеет схему - своего рода URL-адрес и ключ - имя определенного параметра, связанного с ним.
Давайте выясним, какая настройка изменит Unity Tweak Tool при изменении темы курсора,
К счастью для нас существует утилита командной строки под названием gsettings, которую мы можем использовать для изменения необходимых нам параметров. Этот инструмент часто используется в сценариях оболочки. Для других типов языков, таких как Python или C, существуют библиотеки GSettings, которые позволяют нам делать то же самое. Здесь мы специально хотим использовать gsettings, потому что его можно использовать в командной строке.
Различие заключается в том, что в отличие от dconf, схемы разделены точками, а не разделены на части. Таким образом, gsettings понимает схему org.gnome.desktop.interface.
Таким образом, мы можем это сделать:
$ gsettings set org.gnome.desktop.interface cursor-theme 'redglass'
Обратите внимание, что в этом примере я использую Redglass в качестве одной из тех тем, которые у меня были установлены, поэтому вы можете использовать некоторые из значений, которые вы указали в UTT.
Как правило, что может быть сделано, чтобы найти все возможные варианты схемы gsettings, чтобы использовать опцию range:
$ gsettings range com.canonical.Unity.Launcher launcher-position
enum
'Left'
'Bottom'
К сожалению, для схемы, которую мы должны использовать для изменения темы курсора, нет enum:
$ gsettings range org.gnome.desktop.interface cursor-theme
type s
Таким образом, как вы можете сделать (и что, по-видимому, UTT), нужно перечислить все каталоги в папке /usr/share/icons, в которой есть папка cursors: [!d13 ]
$ ls -d /usr/share/icons/*/cursors
/usr/share/icons/crystalblue_classic/cursors/ /usr/share/icons/crystalgray_nonanim/cursors/ /usr/share/icons/crystalwhiteleft_nonanim/cursors/
... more output here
И затем просто выберите имя папки каждой темы в качестве нового значения.
Конечно, мы не хотим иметь дело с несколькими командами снова и снова. Скорее, давайте упростим с помощью сценария оболочки, в данном конкретном случае - сценарий bash (потому что мы хотим использовать расширенные функции, такие как массивы, и потому, что мы не стремимся к переносимости в другие системы, кроме Ubuntu), которые будут перечислены доступные темы и позволят нам выбрать тот, который мы хотим.
#!/usr/bin/env bash
fifo="/tmp/themes_script.fifo"
mkfifo "$fifo"
declare -a themes
find /usr/share/icons -maxdepth 2 -type d -name "cursors" -printf "%P\n" > "$fifo" &
while IFS= read -r line
do
themes+=("${line%/*}")
done < "$fifo"
rm "$fifo"
echo ">>> Please enter the number of new theme for cursor"
select opt in "${themes[@]}"
do
if [ $REPLY -le ${#themes} ]
then
gsettings set org.gnome.desktop.interface cursor-theme \'$opt\' &&
exit 0
else
echo "Improper argument" > /dev/stderr
exit 1
fi
done
Тестирование:
bash-4.3$ ./change_cursor_theme.sh
>>> Please enter the number of new theme for cursor
1) crystalblueleft_nonanim 14) crystalgray_nonanim
2) crystalgreenleft_classic 15) DMZ-Black
3) crystalwhite_nonanim 16) crystalgrayleft
4) handhelds 17) crystalblueleft_classic
5) crystalgreen 18) Deepin-sapphire
6) whiteglass 19) crystalwhiteleft
7) crystalgray 20) crystalgreenleft_nonanim
8) crystalwhiteleft_nonanim 21) crystalgrayleft_nonanim
9) redglass 22) DMZ-White
10) crystalblue 23) crystalblueleft
11) crystalwhite 24) crystalblue_nonanim
12) crystalblue_classic 25) crystalgreenleft
13) crystalgreen_nonanim 26) crystalgreen_classic
#? 9
bash-4.3$
Профиль каждого пользователя управляется базой данных DConf. Вы можете узнать больше об этом, отвечая на этот вопрос: приложение на основе графического интерфейса выполняет команды оболочки в фоновом режиме? Каждый конкретный параметр имеет схему - своего рода URL-адрес и ключ - имя определенного параметра, связанного с ним.
Давайте выясним, какая настройка изменит Unity Tweak Tool при изменении темы курсора,
К счастью для нас существует утилита командной строки под названием gsettings, которую мы можем использовать для изменения необходимых нам параметров. Этот инструмент часто используется в сценариях оболочки. Для других типов языков, таких как Python или C, существуют библиотеки GSettings, которые позволяют нам делать то же самое. Здесь мы специально хотим использовать gsettings, потому что его можно использовать в командной строке.
Различие заключается в том, что в отличие от dconf, схемы разделены точками, а не разделены на части. Таким образом, gsettings понимает схему org.gnome.desktop.interface.
Таким образом, мы можем это сделать:
$ gsettings set org.gnome.desktop.interface cursor-theme 'redglass'
Обратите внимание, что в этом примере я использую Redglass в качестве одной из тех тем, которые у меня были установлены, поэтому вы можете использовать некоторые из значений, которые вы указали в UTT.
Как правило, что может быть сделано, чтобы найти все возможные варианты схемы gsettings, чтобы использовать опцию range:
$ gsettings range com.canonical.Unity.Launcher launcher-position
enum
'Left'
'Bottom'
К сожалению, для схемы, которую мы должны использовать для изменения темы курсора, нет enum:
$ gsettings range org.gnome.desktop.interface cursor-theme
type s
Таким образом, как вы можете сделать (и что, по-видимому, UTT), нужно перечислить все каталоги в папке /usr/share/icons, в которой есть папка cursors:
$ ls -d /usr/share/icons/*/cursors
/usr/share/icons/crystalblue_classic/cursors/ /usr/share/icons/crystalgray_nonanim/cursors/ /usr/share/icons/crystalwhiteleft_nonanim/cursors/
... more output here
И затем просто выберите имя папки каждой темы в качестве нового значения.
Конечно, мы не хотим иметь дело с несколькими командами снова и снова. Скорее, давайте упростим с помощью сценария оболочки, в данном конкретном случае - сценарий bash (потому что мы хотим использовать расширенные функции, такие как массивы, и потому, что мы не стремимся к переносимости в другие системы, кроме Ubuntu), которые будут перечислены доступные темы и позволят нам выбрать тот, который мы хотим.
#!/usr/bin/env bash
fifo="/tmp/themes_script.fifo"
mkfifo "$fifo"
declare -a themes
find /usr/share/icons -maxdepth 2 -type d -name "cursors" -printf "%P\n" > "$fifo" &
while IFS= read -r line
do
themes+=("${line%/*}")
done < "$fifo"
rm "$fifo"
echo ">>> Please enter the number of new theme for cursor"
select opt in "${themes[@]}"
do
if [ $REPLY -le ${#themes} ]
then
gsettings set org.gnome.desktop.interface cursor-theme \'$opt\' &&
exit 0
else
echo "Improper argument" > /dev/stderr
exit 1
fi
done
Тестирование:
bash-4.3$ ./change_cursor_theme.sh
>>> Please enter the number of new theme for cursor
1) crystalblueleft_nonanim 14) crystalgray_nonanim
2) crystalgreenleft_classic 15) DMZ-Black
3) crystalwhite_nonanim 16) crystalgrayleft
4) handhelds 17) crystalblueleft_classic
5) crystalgreen 18) Deepin-sapphire
6) whiteglass 19) crystalwhiteleft
7) crystalgray 20) crystalgreenleft_nonanim
8) crystalwhiteleft_nonanim 21) crystalgrayleft_nonanim
9) redglass 22) DMZ-White
10) crystalblue 23) crystalblueleft
11) crystalwhite 24) crystalblue_nonanim
12) crystalblue_classic 25) crystalgreenleft
13) crystalgreen_nonanim 26) crystalgreen_classic
#? 9
bash-4.3$
Профиль каждого пользователя управляется базой данных DConf. Вы можете узнать больше об этом, отвечая на этот вопрос: приложение на основе графического интерфейса выполняет команды оболочки в фоновом режиме? Каждый конкретный параметр имеет схему - своего рода URL-адрес и ключ - имя определенного параметра, связанного с ним.
Давайте выясним, какая настройка изменит Unity Tweak Tool при изменении темы курсора,
К счастью для нас существует утилита командной строки под названием gsettings, которую мы можем использовать для изменения необходимых нам параметров. Этот инструмент часто используется в сценариях оболочки. Для других типов языков, таких как Python или C, существуют библиотеки GSettings, которые позволяют нам делать то же самое. Здесь мы специально хотим использовать gsettings, потому что его можно использовать в командной строке.
Различие заключается в том, что в отличие от dconf, схемы разделены точками, а не разделены на части. Таким образом, gsettings понимает схему org.gnome.desktop.interface.
Таким образом, мы можем это сделать:
$ gsettings set org.gnome.desktop.interface cursor-theme 'redglass'
Обратите внимание, что в этом примере я использую Redglass в качестве одной из тех тем, которые у меня были установлены, поэтому вы можете использовать некоторые из значений, которые вы указали в UTT.
Как правило, что может быть сделано, чтобы найти все возможные варианты схемы gsettings, чтобы использовать опцию range:
$ gsettings range com.canonical.Unity.Launcher launcher-position
enum
'Left'
'Bottom'
К сожалению, для схемы, которую мы должны использовать для изменения темы курсора, нет enum:
$ gsettings range org.gnome.desktop.interface cursor-theme
type s
Таким образом, как вы можете сделать (и что, по-видимому, UTT), нужно перечислить все каталоги в папке /usr/share/icons, в которой есть папка cursors:
$ ls -d /usr/share/icons/*/cursors
/usr/share/icons/crystalblue_classic/cursors/ /usr/share/icons/crystalgray_nonanim/cursors/ /usr/share/icons/crystalwhiteleft_nonanim/cursors/
... more output here
И затем просто выберите имя папки каждой темы в качестве нового значения.
Конечно, мы не хотим иметь дело с несколькими командами снова и снова. Скорее, давайте упростим с помощью сценария оболочки, в данном конкретном случае - сценарий bash (потому что мы хотим использовать расширенные функции, такие как массивы, и потому, что мы не стремимся к переносимости в другие системы, кроме Ubuntu), которые будут перечислены доступные темы и позволят нам выбрать тот, который мы хотим.
#!/usr/bin/env bash
fifo="/tmp/themes_script.fifo"
mkfifo "$fifo"
declare -a themes
find /usr/share/icons -maxdepth 2 -type d -name "cursors" -printf "%P\n" > "$fifo" &
while IFS= read -r line
do
themes+=("${line%/*}")
done < "$fifo"
rm "$fifo"
echo ">>> Please enter the number of new theme for cursor"
select opt in "${themes[@]}"
do
if [ $REPLY -le ${#themes} ]
then
gsettings set org.gnome.desktop.interface cursor-theme \'$opt\' &&
exit 0
else
echo "Improper argument" > /dev/stderr
exit 1
fi
done
Тестирование:
bash-4.3$ ./change_cursor_theme.sh
>>> Please enter the number of new theme for cursor
1) crystalblueleft_nonanim 14) crystalgray_nonanim
2) crystalgreenleft_classic 15) DMZ-Black
3) crystalwhite_nonanim 16) crystalgrayleft
4) handhelds 17) crystalblueleft_classic
5) crystalgreen 18) Deepin-sapphire
6) whiteglass 19) crystalwhiteleft
7) crystalgray 20) crystalgreenleft_nonanim
8) crystalwhiteleft_nonanim 21) crystalgrayleft_nonanim
9) redglass 22) DMZ-White
10) crystalblue 23) crystalblueleft
11) crystalwhite 24) crystalblue_nonanim
12) crystalblue_classic 25) crystalgreenleft
13) crystalgreen_nonanim 26) crystalgreen_classic
#? 9
bash-4.3$