Ubuntu с Gnome и Openbox

Необходимо удалить пробельные символы из $IFS параметр для read прекратить пропускать ведущие и запаздывающие (с -n1, пробельный символ, если кто-либо и вел бы и запоздал бы, так пропущенный):

while IFS= read -rn1 a; do printf %s "$a"; done

Но даже затем удар read пропустит символы новой строки, с которыми можно работать вокруг:

while IFS= read -rn1 a; do printf %s "${a:-$'\n'}"; done

Хотя Вы могли использовать IFS= read -d '' -rn1 вместо этого или еще лучше IFS= read -N1 (добавленный в 4,1, скопированный с ksh93 (включенный o)), который является командой для чтения одного символа.

Обратите внимание что удар read не может справиться с символами NUL. И ksh93 имеет те же проблемы как удар.

С zsh:

while read -ku0 a; do print -rn -- "$a"; done

(zsh может справиться с символами NUL).

Обратите внимание что они read -k/n/N считайте много символов, не байтов. Таким образом для многобайтовых символов, им, вероятно, придется считать несколько байтов, пока полный символ не читается. Если вход содержит недопустимые символы, можно закончить с переменной, которая содержит последовательность байтов, которая не формирует допустимые символы и которую оболочка может закончить тем, что считала как несколько символов. Например, в локали UTF-8:

$ printf '\375\200\200\200\200ABC' | bash -c '
    IFS= read  -rN1 a; echo "${#a}"'
6

Это \375 представил бы 6-байтовый символ UTF-8. Однако 6-й (A) выше недопустимо для символа UTF-8. Вы все еще заканчиваете с \375\200\200\200\200A в $a, который bash количества как 6 символов, хотя первые 5 не являются действительно символами, всего 5 байтов не явление частью никакого символа.

1
22.10.2013, 18:30
2 ответа

Как упомянуто в комментариях, Единица не является Gnome. У меня лично не было большой удачи при попытке использовать менеджеры окон неединицы с ванильной Ubuntu; если бы я просто настраивал новую систему, то я установил бы Lubuntu и затем следовал бы за деталями Openbox здесь.

0
27.01.2020, 23:53
  • 1
    мне нравятся утилиты Единица/Gnome, имеет. Эти программы также идут с Lubuntu? –  JohnTortugo 22.10.2013, 18:31
  • 2
    Очень короткий ответ - 'да'. Почти любая программа или утилита, которую Вы нашли бы в Единице/Gnome, могут быть выполнены под Openbox, хотя установка многих из тех утилит требует многих других библиотек, которые являются конкретным Gnome, и могут быть очень большими загрузками первоначально (500 + мегабайты.) –  Stephan 22.10.2013, 21:43
  • 3
    я не обеспокоен загрузкой. Проблемой является совместимость. Почти всегда то, что я смешиваю эти вещи, они отказывают. –  JohnTortugo 23.10.2013, 00:34

Относительно плюсов и минусов: я бы сказал использовать openbox без Гнома. Таким образом, вы не будете оседланы всеми вещами, связанными с Gnome, и вам будет проще быть разборчивым в том, что вы хотите/не хотите. Gnome менее 'модульный' ....

Что делает правый клик, это устанавливается в файле rc.xml; для меня это вызывает root-menu (это то, что вы имеете в виду под 'контекстным меню'?). Легко изменить, однако.

Что касается обоев вопрос, где вы пытаетесь установить его? Настройки Gnome здесь не работают. Самый простой способ - это использовать простую легковесную программу просмотра изображений типа feh, и предоставить соответствующую строку в вашем autostart.sh, которая обычно находится в папке конфигурации openbox:

~/.config/openbox/autostart.sh  # rc.xml should also be located here

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

#!/bin/bash
feh --bg-scale /path/to/wallpaper/you/like/wallpaper.jpg
# ... other things as needed ...
1
27.01.2020, 23:53

Теги

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