Comments 120
Спасибо. Мне уже стыдно (
Минусуйте, не стесняйтесь. Я заслужила
Минусуйте, не стесняйтесь. Я заслужила
+4
Стоп, всё не совсем так как вы говорите. я проверила:
и вот:
sudo apt-get install alacarte
и вот:
+6
Забавная статья)) Тоже когда-то сидел на элементари, и тоже раздражало большое количество ненужных приложений при открытии основного меню слева наверху.
Сейчас перешёл на KDE, а там понаделал себе кучу рабочих столов под разные нужды, и разместил на каждом свои ярлыки с приложениями, признанные решать ту или иную задачу. Получилось очень удобно, уходить и что-то менять пока не собираюсь)
Сейчас перешёл на KDE, а там понаделал себе кучу рабочих столов под разные нужды, и разместил на каждом свои ярлыки с приложениями, признанные решать ту или иную задачу. Получилось очень удобно, уходить и что-то менять пока не собираюсь)
+1
Отлично пишете!
+1
Похоже, что с вами никто не согласен, но мне приятна поддержка, спасибо! Вне зависимости от реальной действительности.
+3
Вот и я так подумал. Хотя надо бы обтесать :)
Инвайт потрачен не зря.
Инвайт потрачен не зря.
+3
Мне кажется или нас троллят?
+33
Уж если суждено мне троллем прослыть, пусть. Мне уже всё равно.
0
Что-то я не пойму этого всего. Ну написали один раз плохую статью — уберите её в черновик, позднее может более хорошую напишете.
Все ошибаются, не ошибаются только те, кто вообще ничего не делает.
Все ошибаются, не ошибаются только те, кто вообще ничего не делает.
+6
Спасибо. Я в замешательстве и очень устала.
Или сделать как вы говорите или оставить до утра на растерзание критиков…
Если оставлю до утра, то точно буду знать стоит ли мне вообще публиковаться. Возможно так будет даже лучше. Ведь иначе я буду мнить о себе, что «отлично влилась в коллектив» (комментарий evnuh), а это похоже не совсем так…
Или сделать как вы говорите или оставить до утра на растерзание критиков…
Если оставлю до утра, то точно буду знать стоит ли мне вообще публиковаться. Возможно так будет даже лучше. Ведь иначе я буду мнить о себе, что «отлично влилась в коллектив» (комментарий evnuh), а это похоже не совсем так…
+3
Да не парься сильно насчёт всяких колких постов, у нас же люди часто друг другу грубят и унижают, это из-за болезней в их сердцах.
Скрипт точно можно улучшить) но вообще да, тебе надо просто побольше опыта набраться, поработать полгода-год, и уже потом начать писать хорошие и интересные статьи.
Скрипт точно можно улучшить) но вообще да, тебе надо просто побольше опыта набраться, поработать полгода-год, и уже потом начать писать хорошие и интересные статьи.
0
на счет всего этого не стоит переживать, главное, что в нашем полку прибывают новые люди, которых можно научить и они чему то научат.
0
обыкновенный мужской шовинизм.
Главное не останавливаться на достигнутом.
Главное не останавливаться на достигнутом.
-5
Ну а чего вы ждали от человека с таким ником? :)
+2
Говорят, если ваша работа никого не раздражает, значит вы что-то делаете не так )
Слог и оформление я нахожу достаточно оригинальными.
Лично мне импонирует очередной пример того, как можно не привыкать к существующим условиям, а изменять их под себя. Причём, в нетипичной, на мой взгляд, для автора области.
Определённо здесь есть люди, которые нашли в статье что-то новое и интересное для себя. Тем более, некоторые комментарии развили тему и обогатили её.
Рекомендую автору усвоить всё полезное из данной ситуации и продолжать делиться опытом.
Слог и оформление я нахожу достаточно оригинальными.
Лично мне импонирует очередной пример того, как можно не привыкать к существующим условиям, а изменять их под себя. Причём, в нетипичной, на мой взгляд, для автора области.
Определённо здесь есть люди, которые нашли в статье что-то новое и интересное для себя. Тем более, некоторые комментарии развили тему и обогатили её.
Рекомендую автору усвоить всё полезное из данной ситуации и продолжать делиться опытом.
+1
Отличный пример того, когда девушка в мужском коллективе уверена, что отлично влилась и понимает всех вокруг, но всё совсем наоборот.
+35
UFO just landed and posted this here
Но ведь само начинание то похвально, «не девушки» тоже когда то начинали.
Все в порядке, это ведь часть того что делает вас девушками :)
Мысли мои непоследовательны, знаю.
Все в порядке, это ведь часть того что делает вас девушками :)
+3
UFO just landed and posted this here
Как минимум странно видеть поддержку такому поведению. What Can Men Do?
+4
Мудацкий сексистский комментарий в плюсах. Аудитория Хабра в своём репертуаре.
-10
Спасибо! Это правильный подход. Потому что сейчас для такой ерунды принято создавать новый дистрибутив.
0
UFO just landed and posted this here
Для этого я выложила всё как есть. Дальше не знаю.
Для того, что бы знающие люди могли усовершенствовать начатое.
Для того, что бы знающие люди могли усовершенствовать начатое.
-2
UFO just landed and posted this here
Зачем echo перед sudo?
Вообще, лучше сам скрипт запускать через sudo, а не вызывать sudo внутри.
Достаточно одного вызова sed с параметром
Но, по-хорошему, список скрываемых приложений нужно вынести в отдельный конфиг, и при каждом запуске скрипта удалять эти две строчки из .desktop-файлов тех приложений, которые убрали из этого конфиг-файла.
Я не пользовался никогда упомянутыми дистрибутивами, так что не уверен, как в них это лучше сделать, но было бы неплохо обеспечить автозапуск этого скрипта после установки любых пакетов (может просто обёртку на apt-get положить в /usr/local/sbin/?).
Кроме того, у меня есть подозрение, что эту задачу можно как-то решить настройками внутри домашнего каталога пользователя, не меняя общесистемные файлы в /usr/ — возможно стоит положить модифицированные .desktop-файлы в ~/Desktop/.
Вообще, лучше сам скрипт запускать через sudo, а не вызывать sudo внутри.
Достаточно одного вызова sed с параметром
'1i[Desktop Entry]\nNoDisplay=true'
.Но, по-хорошему, список скрываемых приложений нужно вынести в отдельный конфиг, и при каждом запуске скрипта удалять эти две строчки из .desktop-файлов тех приложений, которые убрали из этого конфиг-файла.
Я не пользовался никогда упомянутыми дистрибутивами, так что не уверен, как в них это лучше сделать, но было бы неплохо обеспечить автозапуск этого скрипта после установки любых пакетов (может просто обёртку на apt-get положить в /usr/local/sbin/?).
Кроме того, у меня есть подозрение, что эту задачу можно как-то решить настройками внутри домашнего каталога пользователя, не меняя общесистемные файлы в /usr/ — возможно стоит положить модифицированные .desktop-файлы в ~/Desktop/.
+5
Я бы ещё добавил проверку на существование файла перед запуском sed. Не люблю левые сообщения об ошибках.
И, более того, зачем вызывать sed дважды? :) Все действия легко сворачиваются в однострочник:
Тонкий момент: команды у sed надо поменять местами, если мы хотим, чтобы [Desktop entry] был в самом начале. Видимо, sed обрабатывает команды, начиная с последней. По крайней мере, у меня он работает так.
#!/bin/bash
APPS="synaptic teamviewer-teamviewer9 bleachbit bleachbit-root virtualbox wireshark"
for APP in $APPS; do
FILE=/usr/share/applications/${APP}.desktop
if [[ -f ${FILE} ]] ; then
sed -i '1iNoDisplay=true' ${FILE}
sed -i '1i[Desktop Entry]' ${FILE}
fi
done
И, более того, зачем вызывать sed дважды? :) Все действия легко сворачиваются в однострочник:
#!/bin/bash
APPS="synaptic teamviewer-teamviewer9 bleachbit bleachbit-root virtualbox wireshark"
for APP in $APPS; do
FILE=/usr/share/applications/${APP}.desktop
[[ -f ${FILE} ]] && sed -i -e '1i[Desktop Entry]' -e '1iNoDisplay=true' ${FILE}
done
Тонкий момент: команды у sed надо поменять местами, если мы хотим, чтобы [Desktop entry] был в самом начале. Видимо, sed обрабатывает команды, начиная с последней. По крайней мере, у меня он работает так.
+2
UFO just landed and posted this here
UFO just landed and posted this here
>Это стандартная фишка Gnome
Но ведь на локскрине же а не рабочем столе. Тем более элементари не гном, там нет гном шела, gala вместо mutter и рабочим столом не nautilus занимается.
Но ведь на локскрине же а не рабочем столе. Тем более элементари не гном, там нет гном шела, gala вместо mutter и рабочим столом не nautilus занимается.
0
Вы наверное не в курсе, как всё устроено. Nautilus не занимается рабочим столом. С таким же успехом вы можете впиндюрить в гном dolphin, и ничего не изменится, кроме файлового менеджера. divide et impera
ntfs1984 если вы про большие часы на фоновом рисунке, то это что-то вроде плазмоида, мешать не должно. А если всё-же про часы на панели, то это не панель задач. На ней отображается лишь активное приложение. Так что часы никогда не помешают.
Неужели ЧАСЫ — настолько важная информация, чтобы держать их по центру экрана в панели задач?
ntfs1984 если вы про большие часы на фоновом рисунке, то это что-то вроде плазмоида, мешать не должно. А если всё-же про часы на панели, то это не панель задач. На ней отображается лишь активное приложение. Так что часы никогда не помешают.
0
Я их случайно оставила на скриншоте, когда экспериментировала с верхней панелькой. Обычно у меня их нет. Только conky.
- Я работаю в полноэкранном режиме и крохотные часики в некой панели мне не нужны, ведь я их всё равно не вижу.
- Намного больше нравится смотреть на большие красивые часы с приятным фоном. Это моё очень личное мнение
- Мне совсем не сложно переключится на свободный рабочий стол узнать время. И даже приятно.
+6
без обид, но синдром %^$&# в поле from
+11
Без обид, но я не понимаю о чём речь.
+6
lurkmore.to/%D0%A1%D0%B8%D0%BD%D0%B4%D1%80%D0%BE%D0%BC_%D0%BF%D0%B8%D0%B7%D0%B4%D1%8B_%D0%B2_%D0%BF%D0%BE%D0%BB%D0%B5_%C2%ABfrom%C2%BB
Просто поменьше розового и побольше оформления. Например, можно было бы выложить ваше «изобретение» на github, создать gist.
И, пожалуйста, применяйте уменьшительно-ласкательные суффиксы только к месту, а не везде.
Просто поменьше розового и побольше оформления. Например, можно было бы выложить ваше «изобретение» на github, создать gist.
И, пожалуйста, применяйте уменьшительно-ласкательные суффиксы только к месту, а не везде.
-34
Сколько токсика. Атас
-1
UFO just landed and posted this here
Парни, вы зажираетесь!
Девушка сама установила linux (судя по статье уже не один дистрибутив), сама настроила систему, сама нашла нужные файлы… Много вы знаете таких? :)
Девушка сама установила linux (судя по статье уже не один дистрибутив), сама настроила систему, сама нашла нужные файлы… Много вы знаете таких? :)
+14
Моя жена, например. Смогла поставить Arch Linux без моей помощи.
+8
И… «например» уже закончился?)
Нет, серьёзно, девушек-linux-пользователей довольно мало. И каждую нужно ценить, я считаю, не меньше чем пользователей мужского пола.
А девушка не струсила, написало (при этом красиво пишет, да) статью и не побоялась выложить на суд и в поле зрения здешней общественности. Или я в чём-то не прав?
PS Всем прямых /dev/hands и светлой /dev/head
Нет, серьёзно, девушек-linux-пользователей довольно мало. И каждую нужно ценить, я считаю, не меньше чем пользователей мужского пола.
А девушка не струсила, написало (при этом красиво пишет, да) статью и не побоялась выложить на суд и в поле зрения здешней общественности. Или я в чём-то не прав?
PS Всем прямых /dev/hands и светлой /dev/head
+3
linux-пользователей в принципе немного. Тем не менее, я не понимаю, почему это воспринимается как нечто исключительное. Установить и использовать линукс заметно проще, чем винду, и если есть такой выбор у девушки (юноши/старика/ребёнка), то он весьма естественен.
+3
UFO just landed and posted this here
Ну, на самом деле у Windows и, например, Убунты тут паритет. Разве что Убунту не надо активировать и вводить и вводить код лицензии. Драйвера какие-то и там, и там могут сразу после установки не подгрузиться, но, обычно проблем не возникает (Берём последние версии ОС и дистрибутивов).
Другое дело — большинство не знают другого мира кроме Microsoft (Случайно полученные обрывочные сведения без личного опыта знанием, в данном случае, я не считаю).
Другое дело — большинство не знают другого мира кроме Microsoft (Случайно полученные обрывочные сведения без личного опыта знанием, в данном случае, я не считаю).
+2
UFO just landed and posted this here
Я не знаю, что у вас за обычные пользователи, но вокруг меня народ (в том числе и дамы, в том числе моя дочь-тинейджер) ставят и используют линукс без серьёзных проболем. Да, линукс это не только убунту, но ведь и виндовс тоже может оказаться Windows 3.11, например.
Назовите это деформацией, но когда мне пришлось что-то настроить в Виндовс 8, которую я никогда до того не видел (и надеюсь, что более никогда и не увижу), я проклял всё, пытаясь понять, как сделать элементарные вещи, типа нахождение контрольной панели, ну или, допустим, совершить перезагрузку системы (а не винды).
Обычного пользователю, если у него нет привычки к чему-либо, проще то, что проще, и честное слово, линукс тут выигрывает (ну если не считать провала с Юнити на убунте, да и то не б-г весть как трудно).
Назовите это деформацией, но когда мне пришлось что-то настроить в Виндовс 8, которую я никогда до того не видел (и надеюсь, что более никогда и не увижу), я проклял всё, пытаясь понять, как сделать элементарные вещи, типа нахождение контрольной панели, ну или, допустим, совершить перезагрузку системы (а не винды).
Обычного пользователю, если у него нет привычки к чему-либо, проще то, что проще, и честное слово, линукс тут выигрывает (ну если не считать провала с Юнити на убунте, да и то не б-г весть как трудно).
+1
Да я понял. Но я не считаю что установить что-то из вышеприведённого проще) Оно и не должно быть слишком просто. Тогда смысл теряется — получаем установленную систему с дефолтными параметрами и вшитыми сервисами, все равно кому-то, возможно, тогда придётся копаться в уже установленной системе в попытках «исправить» то что удобнее было бы сделать расстановкой галочек во время установки. Это всегда палка о двух концах.
0
По моему и Ubuntu так же устанавливается «Далее», «Далее»…
+4
UFO just landed and posted this here
Извините, но дальнейшие пляски с драйверами идентичны, только Ubuntu для всего основного (т.е. наиболее распространенного) железа всё ставит само из удобного окошечка.
Вопрос специфичного железа лучше не поднимать, потому что на Windows с этим железом обычно тоже есть проблемы.
Это я говорю на опыте работы с процессорами VIA и старыми AMD, на каждой операционке свои проблемы, единственное в чём Вы правы — драйверов от производителей больше для Windows, хотя это не значит что в них нет проблем.
Вопрос специфичного железа лучше не поднимать, потому что на Windows с этим железом обычно тоже есть проблемы.
Это я говорю на опыте работы с процессорами VIA и старыми AMD, на каждой операционке свои проблемы, единственное в чём Вы правы — драйверов от производителей больше для Windows, хотя это не значит что в них нет проблем.
+1
UFO just landed and posted this here
проблемы с Linux в львиной доле случаев начинаются:
1. После обновления системы из репозитория, если вы полгода не обновлялись.
2. Вы начинаете ставить без разбора пакеты, которые якобы требует модуль для компиляции. Особенно если хотите поставить игрушку.
В львиной доле случаев всегда можно восстановить систему из терминала, даже если GUI не грузится.
1. После обновления системы из репозитория, если вы полгода не обновлялись.
2. Вы начинаете ставить без разбора пакеты, которые якобы требует модуль для компиляции. Особенно если хотите поставить игрушку.
В львиной доле случаев всегда можно восстановить систему из терминала, даже если GUI не грузится.
0
Я Вам отвечу проще — тем, кто не хочет разбираться в устройстве ПК, без разницы на Windows ли, или на Ubuntu звать знакомого админа ставить что-либо.
Не забывайте, что обычный пользователь просто научен чему-то, и банально потому что он уже знает Windows ему её и легче ставить.
Проведите эксперимент — представьте, что Вы не знаете как устанавливать Ubuntu / Windows, и у Вас на руках только лишь диск с дистрибутивом. Вам что там что там читать инструкции, что там, только установка программ Windows намнооого менее тривиальна…
Сравнение с другими дистрибутивами считаю не совсем корректным, надо сравнивать только с теми, которые заточены на десктоп — у каждого дистрибутива свои цели, естественно что минимальную установку Gentoo обычный пользователь сам проводить не будет, да и не надо оно ему=)
Лично у меня пожилые родственники уже более полугода сидят на мной поставленном Debian wheezy и ни разу (!!!) не задали вопросов как что, я просто с самого начала их полчаса обучил. Весь вопрос в знаниях.
Не забывайте, что обычный пользователь просто научен чему-то, и банально потому что он уже знает Windows ему её и легче ставить.
Проведите эксперимент — представьте, что Вы не знаете как устанавливать Ubuntu / Windows, и у Вас на руках только лишь диск с дистрибутивом. Вам что там что там читать инструкции, что там, только установка программ Windows намнооого менее тривиальна…
Сравнение с другими дистрибутивами считаю не совсем корректным, надо сравнивать только с теми, которые заточены на десктоп — у каждого дистрибутива свои цели, естественно что минимальную установку Gentoo обычный пользователь сам проводить не будет, да и не надо оно ему=)
Лично у меня пожилые родственники уже более полугода сидят на мной поставленном Debian wheezy и ни разу (!!!) не задали вопросов как что, я просто с самого начала их полчаса обучил. Весь вопрос в знаниях.
+1
Жене респект, но много ли таких…
0
Эм… рекомендую попробовать MacOS X…
А вообще спасибо. То немногое время, что сидел под Linux, я все время удивлялся тому, как неудобно настраивать рабочий стол.
А вообще спасибо. То немногое время, что сидел под Linux, я все время удивлялся тому, как неудобно настраивать рабочий стол.
0
От дистрибутива зависит. И от ваших критериев удобства)
0
UFO just landed and posted this here
На самом деле, в исчерпывающем большинстве случаев из железа можно обойтись только эппловской клавиатурой, magic trackpad, и bluetooth-донглом к этому всему, если нативного bluetooth нет на материнке. Это порядка 200$ за всё, если брать официальное, или на 30% дешевле, если брать у китайцев. Ощущения от работы с системой при этом не отличаются от таковых при работе с Mac Mini.
С точки зрения софта нужна безграничная любовь к изучению спецификаций ACPI, конечно, чтобы написать свою таблицу DSDT.
С точки зрения софта нужна безграничная любовь к изучению спецификаций ACPI, конечно, чтобы написать свою таблицу DSDT.
0
эппловской клавиатурой, magic trackpad, и bluetooth-донглом
Думаю это тоже лишнее
0
Нет, не лишнее.
Без трекпада нет возможности пользоваться жестами, которые используются вообще везде — два пальца для прокрутки окон во всех направлениях и вызова центра уведомлений, зума, вращения, контекстных меню, трехпальцевое смахивание вниз для Exposé (список окон и документов активного приложения) и вверх для Mission Control (список пространств и приложений), трехпальцевое смахивание вбок для переключения между пространствами, трехпальцевые тапы для контекстных действий, четырехпальцевые комбинации для показа рабочего стола и launchpad, и так далее, и тому подобное. Эти комбинации удобно использовать именно так, как они есть — мышью выполнить их невозможно, а на клавиатуру маппить неудобно.
Покупка эппловской клавиатуры более опциональна, если есть возможность найти PC-клавиатуру с кнопкой
У PC-клавиатур иначе расположены модификаторы —
Единственный ощутимый минус Apple-клавиатур — отсутствие кнопки Insert, которая бывает нужна при удаленной работе с Windows-системами, и с этим ничего не поделать, кроме как назначать через тот же Karabiner её эмуляцию на комбинацию вида
Без трекпада нет возможности пользоваться жестами, которые используются вообще везде — два пальца для прокрутки окон во всех направлениях и вызова центра уведомлений, зума, вращения, контекстных меню, трехпальцевое смахивание вниз для Exposé (список окон и документов активного приложения) и вверх для Mission Control (список пространств и приложений), трехпальцевое смахивание вбок для переключения между пространствами, трехпальцевые тапы для контекстных действий, четырехпальцевые комбинации для показа рабочего стола и launchpad, и так далее, и тому подобное. Эти комбинации удобно использовать именно так, как они есть — мышью выполнить их невозможно, а на клавиатуру маппить неудобно.
Покупка эппловской клавиатуры более опциональна, если есть возможность найти PC-клавиатуру с кнопкой
Fn
. Я когда-то мокрыми руками после душа потрогал клавиатуру своего ноутбука, пара капель воды попали внутрь и с тех пор у меня кнопка Fn
не работает. Я не подозревал, насколько я часто ей пользуюсь, сам того не замечая, и теперь постоянно испытываю дичайшее неудобство от её нехватки. Fn-кнопка используется в том числе для регулировки яркости экрана, подсветки, громкости, навигации по плейлисту (которой я, правда, никогда не пользовался), навигации в пределах строки в терминале и т.д.У PC-клавиатур иначе расположены модификаторы —
Ctrl
, Meta
, Alt
вместо Ctrl
, Opt
и Cmd
. В принципе, с этим можно бороться при помощи Karabiner (бывший KeyRemap4Macbook), потому что иначе конформистский путь «использовать, как есть» искажает всю суть. К примеру — операция копирования в буфер обмена выполняется Cmd+C
. Эти две кнопки находятся очень близко, и нажимаются сведенными указательным и большим пальцем без какого-то напряжения. На PC-клавиатуре пришлось бы нажать или Ctrl+C
, для которого большой палец нужно заводить далеко назад к ладони, или Win+C
, что всё еще не так удобно. Разница чувствуется, когда через удаленный рабочий стол заходишь на Windows-компьютеры. Еще примеры подобных сочетаний — переключение раскладки через Cmd+Space
или вызов настроек через Cmd+,
.Единственный ощутимый минус Apple-клавиатур — отсутствие кнопки Insert, которая бывает нужна при удаленной работе с Windows-системами, и с этим ничего не поделать, кроме как назначать через тот же Karabiner её эмуляцию на комбинацию вида
Fn+Return
или Fn+I
.+2
ощутимый минус Apple-клавиатур
Русская раскладка. Не знаю, как на других, а у меня Wired Keyboard с цифровым блоком, и писать на ней по-русски — сущий ад. Например, точка/запятая ставятся через Shift… ну что это такое?
+1
Выберите PC-раскладку в настройках, а то придумали себе проблему.
Хотя, например, у меня (да, говорю только за себя) получается печатать ощутимо быстрее именно с запятой на шестерке и с точкой на семерке, потому что на PC-раскладке мизинцем приходится тянуться к ним.
Хотя, например, у меня (да, говорю только за себя) получается печатать ощутимо быстрее именно с запятой на шестерке и с точкой на семерке, потому что на PC-раскладке мизинцем приходится тянуться к ним.
+1
Не ожидал такого развернутого ответа.
Ну тогда наверное это сугубо индивидуально. Поделюсь личным опытом.
Я обычно подключаюсь к большому монитору и использую standalone клавиатуру + мышь. Маковская как -то не прижилась. Использую связки Logitech. Она корректно распознавались ОСью и все маппинги сразу же сделала по уму.
Жесты вы которые описали висят на шоркатах и на мышке (Hot Corners). Пользуюсь в зависимости от того где руки находятся в данный момент. Что до копирования, то всегда использовал мизинец+указательный так что от того что cmd был ближе пользы не почувствовал. Что до медия, то все медиакнопки работают нормально.
Ну тогда наверное это сугубо индивидуально. Поделюсь личным опытом.
Я обычно подключаюсь к большому монитору и использую standalone клавиатуру + мышь. Маковская как -то не прижилась. Использую связки Logitech. Она корректно распознавались ОСью и все маппинги сразу же сделала по уму.
Жесты вы которые описали висят на шоркатах и на мышке (Hot Corners). Пользуюсь в зависимости от того где руки находятся в данный момент. Что до копирования, то всегда использовал мизинец+указательный так что от того что cmd был ближе пользы не почувствовал. Что до медия, то все медиакнопки работают нормально.
0
У меня установка хакинтоша свелась к загрузчику и специфичному ядру под AMD.
0
UFO just landed and posted this here
Ваш скрипт можно было написать следующим образом, его легче сопровождать:
#!/bin/bash
ROOT="/usr/share/applications";
APPS=(
# Just not needed for others to know that i have this in my system.
# I always can run them from cli. Вот
'bleachbit-root.desktop'
'bleachbit.desktop'
'bum.desktop'
'gparted.desktop'
'guake.desktop'
'luakit.desktop'
'synaptic.desktop'
'teamviewer-teamviewer9.desktop'
'umit.desktop'
'virtualbox.desktop'
'wireshark.desktop'
# Rubbish. То, что не запускаем отдельно,
# а открывается автоматически при открытии соответствующего файла,
# основываясь на file associations
'AdobeAIR.desktop'
'caffeine-preferences.desktop'
'dropbox.desktop'
'empathy.desktop'
'evince.desktop'
'file-roller.desktop'
'gdebi.desktop'
'gthumb.desktop'
'gxneur.desktop'
'ibus-setup.desktop'
'libreoffice4.3-base.desktop'
'libreoffice4.3-calc.desktop'
'libreoffice4.3-draw.desktop'
'libreoffice4.3-impress.desktop'
'libreoffice4.3-math.desktop'
'libreoffice4.3-writer.desktop'
'noise.desktop'
'pantheon-terminal.desktop'
'totem.desktop'
'update-manager.desktop'
'vlc.desktop'
# Скрыла, потому что эти приложения доступны из контекстного меню.
# Посчитала излишним дублировать их в меню. Время покажет права ли я.
'atom.desktop'
'scratch-text-editor.desktop'
'scribes.desktop'
'sublime_text.desktop'
);
for app_name in "${APPS[@]}"; do {
app_path="${ROOT}/${app_name}";
echo -n "${app_path}... ";
if [[ -e "${app_path}" ]]; then {
echo -n $'[Desktop Entry]\nNoDisplay=true\n' >> "${app_path}";
echo "OK";
} else {
echo "NOT FOUND";
}; fi
}; done
+9
Ура! Спасибо! Я бы так низачто не смогла написать. Вобщем я и программировать то не умею. Жаль лишь только что я пыталась изобрести велосипед, а вы мне в этом помогли. И ведь изобрели (
0
Тут был лишний $ в начале:
echo -n '[Desktop Entry]\nNoDisplay=true\n' >> "${app_path}";
еще перед этим можно воткнутьsed -e 's/[Desktop Entry]\nNoDisplay=true\n//g' "${app_path}" > "${app_path}";
во избежание дубликатов при повторном запуске… :)0
Это не лишний
$
, а C-строковый литерал. В вашем варианте следовало бы писать echo -ne
, иначе \n
будет выведен, как есть.+2
По поводу избегания дубликатов при повторном запуске — вы натолкнули меня на мысль приделать к этим костылям велосипедный гудок.
Этот скрипт можно закинуть в cron на выполнение раз в час, скажем, и он будет обновлять ярлыки, которые у него есть в списке, если их параметры видимости не отвечают требуемым. Содержимое .desktop-файлов корректно парсится, следуя вот этому.
#!/bin/bash
: ${DESKTOP_ROOT:='/usr/share/applications'}
: ${HIDERRC:="${HOME}/.hiderrc"}
function trim() {
local s="${@}";
s="${s#"${s%%[![:space:]]*}"}"; # trim leading whitespace
s="${s%"${s##*[![:space:]]}"}"; # trim trailing whitespace
echo -n "${s}";
};
function describe() {
case "$1" in
'yes') echo -n 'hidden'; ;;
'no') echo -n 'visible'; ;;
esac;
};
function to_bool() {
case "$1" in
'yes') echo -n 'true'; ;;
'no') echo -n 'false'; ;;
esac;
};
function is_shortcut_hidden() {
local state='section';
local hidden='no';
while IFS='' read -r line; do
if [[ "${line}" == '#'* ]]; then {
continue; # skip over comment lines
} fi;
while [[ true ]]; do
case "${state}" in
'section')
if [[ "$(trim ${line})" == '[Desktop Entry]' ]]; then {
state='keyvalue';
} fi;
;;
'keyvalue')
if [[ "${line}" == '['*']' ]]; then {
state='section';
continue; # reinterpret current section
} else {
IFS='=' read -r key value < <(echo "${line}");
if [[ "$(trim ${key})" == "NoDisplay" ]]; then {
case "$(trim ${value})" in
'0' | 'false') hidden='no' ;;
'1' | 'true') hidden='yes' ;;
esac;
} fi;
} fi;
;;
esac;
break;
done;
done < "$1";
echo -n "${hidden}";
};
function read_rc() {
local section_hidden='yes';
local path;
local shortcut_hidden;
if [[ ! -r "${HIDERRC}" ]]; then {
return; # nothing to do if we have no conf
} fi;
while IFS='' read -r line; do
if [[ "${line}" == '#'* ]]; then {
continue; # skip over comment lines
} fi;
case "${line}" in
'[hide]') section_hidden='yes' ;;
'[show]') section_hidden='no' ;;
*)
if [[ "${line}" == '/'* ]]; then { # absolute path
path="${line}";
} else {
path="${DESKTOP_ROOT}/${line}";
} fi;
shortcut_hidden="$(is_shortcut_hidden "${path}")";
if [[ ! "${shortcut_hidden}" == "${section_hidden}" ]]; then { # action!
echo "Shortcut ${path} should be $(describe "${section_hidden}"), but is $(describe "${shortcut_hidden}")";
echo -n $'\n[Desktop Entry]\nNoDisplay='"$(to_bool "${section_hidden}")"$'\n' >> "${path}";
} fi;
;;
esac;
done < <(cat "${HIDERRC}"; echo);
};
read_rc;
пример ~/.hiderrc
# Just not needed for others to know that i have this in my system.
# I always can run them from cli. Вот
bleachbit-root.desktop
bleachbit.desktop
bum.desktop
gparted.desktop
guake.desktop
luakit.desktop
synaptic.desktop
teamviewer-teamviewer9.desktop
umit.desktop
virtualbox.desktop
wireshark.desktop
# Rubbish. То, что не запускаем отдельно,
# а открывается автоматически при открытии соответствующего файла,
# основываясь на file associations
AdobeAIR.desktop
caffeine-preferences.desktop
dropbox.desktop
empathy.desktop
evince.desktop
file-roller.desktop
gdebi.desktop
gthumb.desktop
gxneur.desktop
ibus-setup.desktop
libreoffice4.3-base.desktop
libreoffice4.3-calc.desktop
libreoffice4.3-draw.desktop
libreoffice4.3-impress.desktop
libreoffice4.3-math.desktop
libreoffice4.3-writer.desktop
noise.desktop
pantheon-terminal.desktop
totem.desktop
update-manager.desktop
vlc.desktop
# Скрыла, потому что эти приложения доступны из контекстного меню.
# Посчитала излишним дублировать их в меню. Время покажет права ли я.
atom.desktop
scratch-text-editor.desktop
scribes.desktop
sublime_text.desktop
пример синтаксиса ~/.hiderrc
# это комментарий!
# распознаются две секции - [show] и [hide].
# [show] делает все ярлыки в секции видимыми, [hide] их прячет.
# если секция не указана, то это считается [hide]
i_will_be_hidden.desktop
[show]
# если имя файла начинается с "/", считается, что это абсолютный путь к файлу
/absolute/path/to/file.desktop
# иначе имя файла считается относительным от пути в ${DESKTOP_ROOT}
relative/path/to/file.desktop
# секции могут повторяться и перемежаться
[hide]
foo.desktop
spaces are fine too.desktop
Этот скрипт можно закинуть в cron на выполнение раз в час, скажем, и он будет обновлять ярлыки, которые у него есть в списке, если их параметры видимости не отвечают требуемым. Содержимое .desktop-файлов корректно парсится, следуя вот этому.
+4
багфиксы!
#!/bin/bash
: ${DESKTOP_ROOT:='/usr/share/applications'}
: ${HIDERRC:="${HOME}/.hiderrc"}
function trim() {
local s="${@}";
s="${s#"${s%%[![:space:]]*}"}"; # trim leading whitespace
s="${s%"${s##*[![:space:]]}"}"; # trim trailing whitespace
echo -n "${s}";
};
function describe() {
case "$1" in
'yes') echo -n 'hidden'; ;;
'no') echo -n 'visible'; ;;
esac;
};
function to_bool() {
case "$1" in
'yes') echo -n 'true'; ;;
'no') echo -n 'false'; ;;
esac;
};
function is_shortcut_hidden() {
local state='section';
local hidden='no';
while IFS='' read -r line; do
if [[ "${line}" == '#'* ]]; then {
continue; # skip over comment lines
} fi;
if [[ "$(trim "${line}")" == '' ]]; then {
continue; # skip over empty lines
} fi;
while [[ true ]]; do
case "${state}" in
'section')
if [[ "$(trim ${line})" == '[Desktop Entry]' ]]; then {
state='keyvalue';
} fi;
;;
'keyvalue')
if [[ "${line}" == '['*']' ]]; then {
state='section';
continue; # reinterpret current section
} else {
IFS='=' read -r key value < <(echo "${line}");
if [[ "$(trim ${key})" == "NoDisplay" ]]; then {
case "$(trim ${value})" in
'0' | 'false') hidden='no' ;;
'1' | 'true') hidden='yes' ;;
esac;
} fi;
} fi;
;;
esac;
break;
done;
done < "$1";
echo -n "${hidden}";
};
function read_rc() {
local section_hidden='yes';
local path;
local shortcut_hidden;
if [[ ! -r "${HIDERRC}" ]]; then {
return; # nothing to do if we have no conf
} fi;
while IFS='' read -r line; do
if [[ "${line}" == '#'* ]]; then {
continue; # skip over comment lines
} fi;
if [[ "$(trim "${line}")" == '' ]]; then {
continue; # skip over empty lines
} fi;
case "${line}" in
'[hide]') section_hidden='yes' ;;
'[show]') section_hidden='no' ;;
*)
if [[ "${line}" == '/'* ]]; then { # absolute path
path="${line}";
} else {
path="${DESKTOP_ROOT}/${line}";
} fi;
if [[ ! -e "${path}" ]]; then {
>&2 echo "Shortcut ${path} is missing!";
continue;
} fi;
shortcut_hidden="$(is_shortcut_hidden "${path}")";
if [[ ! "${shortcut_hidden}" == "${section_hidden}" ]]; then { # action!
echo "Shortcut ${path} should be $(describe "${section_hidden}"), but is $(describe "${shortcut_hidden}")";
echo -n $'\n[Desktop Entry]\nNoDisplay='"$(to_bool "${section_hidden}")"$'\n' >> "${path}";
} fi;
;;
esac;
done < <(cat "${HIDERRC}"; echo);
};
read_rc;
+2
You made my day. Спасибо!
Ждем L10N, багфиксы к L10N и — ну вы поняли — гисты с багфиксами.
Ждем L10N, багфиксы к L10N и — ну вы поняли — гисты с багфиксами.
+3
Круто. У меня три вопроса:
- Чем присваивание вида :${VAR='value'} лучше VAR='value'?
- Зачем фигурные скобки в if? Как и точки с запятой на концах строк, они выглядят излишними.
- Почему переменные в read_rc() в нижнем регистре? Мне казалось, принято всегда заглавными.
+2
- присваивание
: ${VAR:='value'}
лучше, чем простоVAR='value'
тем, что еслиVAR
уже назначен до вызова скрипта, то присваивания не произойдет — таким образом,HIDERRC
иDESKTOP_ROOT
можно переопределить через переменные окружения, при вызове в командной строке (HIDERRC=/private/etc/hiderrc DESKTOP_ROOT=/Applications/ hider.sh
) или в каком-нибудь bash_profile на усмотрение. - затем же, зачем "${FOO}" вместо "$FOO" — это единый стиль без какого-то существенного обоснования. Насколько мне известно, фигурные скобки делают ничего.
- локальные переменные — в нижнем регистре, глобальные — в заглавном, именование pascal_case-ом. опять же, на вкус и цвет… вы всегда можете форкнуть скрипт и исправить в нем то, что по вашему не так ;)
+2
А можно мне того же отсыпать немного? :)
+5
вы натолкнули меня на мысльВот это вас торкнуло!) Простите, я не хотел)))
0
«лижит» в папочке «in dev»…
Либо лижет, либо лежит :)
Либо лижет, либо лежит :)
0
Добро пожаловать! :)
+1
Эх. Я надеялся, что написанная таким слогом статья будет чем-то достаточно крутым, что бы разорвать шаблон у читателя. А тут в фантик из милых ошибок, смайликов и розовых медвежат завернут примитивный ученический скрипт.
+9
Ну так напишите лучше! Вот серьёзно, почему бы не показать самому класс, до которого другие ещё не доросли, вместо того, чтобы ждать, когда придёт луноликий гуру и напишет великую статью о том, как «сделать зашибись»?
Я тоже надеялся на что-то более серьёзное в статье и был несколько разочарован содержимым. Но всё равно поставил ей плюс, по двум причинам: написано хорошо, и тема затронута правильная. Мне было бы приятно увидеть больше статей, мотивирующих копаться в недрах системы. И пускай это начинается с банальной настройки .desktop-файлов. Все начинают с азов.
Я тоже надеялся на что-то более серьёзное в статье и был несколько разочарован содержимым. Но всё равно поставил ей плюс, по двум причинам: написано хорошо, и тема затронута правильная. Мне было бы приятно увидеть больше статей, мотивирующих копаться в недрах системы. И пускай это начинается с банальной настройки .desktop-файлов. Все начинают с азов.
-1
Нет такого пользователя, который не пытался бы настроить свой рабочий стол по особенному, но и тебя вылечат, и меня вылечат со временем это прохоит
+8
Приятно, когда пишут про твой любимый дистрибутив! Да, мне кажется или кнопки на нижней панели выглядят большими, чем стандартные? Выглядит очень здорово, да и попадать в такие удобнее.
+2
А у меня возник вопрос а как добавить иконку приложения допустим, я скачал Pycharm, который запускается из sh файла. Как на него иконку приладить?
0
- Создайте симлинк (ссылку) к вашему файлу*.sh
Пример:
sudo ln -s ~/Documents/ИмяФайла.sh /usr/local/bin/ИмяФайлаМожетеПридуматьЛюбоеКакоеХотите
Теперь ваш скрипт будет запускаться командой ИмяФайлаМожетеПридуматьЛюбоеКакоеХотите - Возьмите пример любого *.desktop файла из /usr/share/applications/ (системная папака) и положите его в ~/.local/share/applications (папка пользователя)
- Положите иконку нужного размера (например 64х64) в ~/.icons. (Если возможно возьмите иконку *.svg так как они безразмерные и растянуться хорошо.)
- Настройте файл *.desktop
- Выйдите и заново войдите в систему.
+3
Tools → Create Desktop Entry… (прямо из PyCharm)
+2
Не самая лучшая реализация.
Гораздо лучше не трогать desktop-файлы в /usr/share/applications, а скопировать «кривые» из них в ~/.local/share/applications, где и делать с ними всё что угодно.
Поскольку, находясь в домашнем каталоге, они имеют приоритет над системными, в разного рода меню будут отображаться именно они. А обновления приложений никоим образом на меню не повлияют, поэтому не придётся запускать скрипты каждый раз.
P.S. Грамматические ошибки в статье тоже сильно в глаза бросаются, лучше бы их исправить.
Гораздо лучше не трогать desktop-файлы в /usr/share/applications, а скопировать «кривые» из них в ~/.local/share/applications, где и делать с ними всё что угодно.
Поскольку, находясь в домашнем каталоге, они имеют приоритет над системными, в разного рода меню будут отображаться именно они. А обновления приложений никоим образом на меню не повлияют, поэтому не придётся запускать скрипты каждый раз.
P.S. Грамматические ошибки в статье тоже сильно в глаза бросаются, лучше бы их исправить.
+12
Я GUI линукса только на картинках видел, а так все shell да shell.
0
Отлично! Ждём следующие статьи!
-4
Приятно сделали. Только скрипты можно было бы и в цикл завернуть, у вас там всего 2 действия. А вообще, вам на ЛОР прямая дорога, будем рады вас там видеть =)
0
Девушка, которая шарит в коде, так же как и девушка, которая катается на сноуборде — богоподобна
-8
Да вы задрали с этим, серьезно. Вот этими вот сравнениями вы даете полноценный повод феминистической мразоте потом травить астрофизиков за принт рубашки и постить сравнения, чем именно собаки лучше мужчин. Нет ни малейшей разницы, кто шарит в коде, девушка или парень, если они действительно шарят. Если не шарят — пол тоже не оправдание. Мозг или есть, или его нет, и от пола это не зависит, и программирование ничем не отличается от любого другого скилла, который можно развить.
+5
Решила всё же подвести итог на основании полученных комментариев:
Урааааа!
- Alacarte не подходит для решения поставленной задачи, так как работает криво. Я проверила на своём компьютере.
Получается что изобретённый велосипед совсем не бесполезен, как я сперва думала, а очень даже нужен. - Если вы успели поставить alacarte без гномьих зависимостей по совету Adiost, не забудьте снести в месте c alacarte ещё и python-gmenu, который устанавливается прицепом к нему.
- Очень благодарна всем за участие в теме. И отдельное спасибо непосредственно программистам scg, powerman, zloddey и mwizard которые и довели до логического завершения моё начинание.
Урааааа!
+6
Sign up to leave a comment.
Elementary OS. Наводим чистоту и порядок в Applications