понедельник, апреля 12, 2010

Полезные хоткеи Bash

Надоело каждый раз искать эти хоткеи, поэтому положу их сюда.


Ctrl+C - убить текущую строку
аlt+. - Взять последнее слово с предыдущей строки
alt+F/B - ходит по словам
alt+backspace - стирает слово до начала
alt+d - стирает слово до конца
Ctrl+k - удалить до конца строки
Ctrl+u - удалить до начала строки

ctrl+_ UNDO

пятница, января 29, 2010

Глобальные горячие клавиши для rhythmbox

Наконец донес наушники до работы. Теперь начал слушать музыку. К этому процессу за работой у меня одно требование - чтобы можно было управлять процессом(пауза/воспроизведение, громкость, следующий трек) из любой программы. В венде, помню, это решалось в каждой программе по-своему, если решалось вообще. В Gnome + rhythmbox есть стандартное решение. Горячие клавишы Gnome (System -> Preferences -> Keyboard Shortcuts) содержат целый раздел для управления звуком, настроенный по-умолчанию на медиа-клавиши. На работе такой роскоши, слава Богу, нету, поэтому перенастраиваем на то, что нравится и запускаем rhythmbox. Благо он прекрасно понимает эти "системные" события. Единственное чего не хватало - индикация по запросу текущей композиции. Решается просто. Создаем собственное событие там же, в горячих клавишах, и назначаем команду
rhythmbox-client --notify

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

Samba shares в Ubuntu

Давно маялся с вопросом, куда деваются настройки SMB-шар, сделанных через Nautilus (бишь из графического интерфейса). Сегодня нашел, что оно их складывает, оказывается в /var/lib/samba/usershares в том же формате, что и smb.conf
Оно снова стало предсказуемым и управляемым :)

четверг, января 07, 2010

GTK vs SWT

После очередного апдейта убунты разломались все приложения, написанные на SWT. Мы это мгновенно заметили по эклипсу, в котором тоже перестали нажиматься некоторые кнопки. Оказалось, это из-за обновления gtk. По ругани в багтрекерах эклипса, убунты и гнома непонятно кто в итоге виноват, но главное есть воркэраунд: перед запуском SWT-приложения надо выставить системную переменную GDK_NATIVE_WINDOWS=1.
Таким образом, перед запуском эклипса говорим
export GDK_NATIVE_WINDOWS=1
и радуемся жизни. А так уже вроде как обещали, что починят в следующих релизах.

понедельник, сентября 28, 2009

Удаленная загрузка торрентов

Наверняка у вас дома уже стоит включенный круглосуточно неттоп или иная умная качалка и раздавалка торрентов. На худой конец, как у меня просто старенькая машинка с, не побоюсь этого слова, Виндой. Хочется уметь инициировать загрузку нужного торрента как можно более удаленно, например с работы. Так как реальный айпишник сейчас у домовых провайдеров роскошь, остается только вариант как-то снаружи показать клиенту, что есть что покачать. Раньше я использовал для этого сервис box.net, который позволяет сделать публичную папку с файлами и через RSS получать обновления в ней. Благо мой клиент умеет мониторить rss-потоки на предмет появления новых торрентов, такой вариант был долгое время рабочим... но неудобным. Закачивать на хостинг файлики муторно. Зато на днях всеми любимый DropBox запустил фичу с совместным доступом к файлам! Это позволяет, запустив его на машине с клиентом, просто смотреть в папочку в ожидании новых торрентов. Строго говоря, можно было и раньше это сделать, просто включив клиента под одним и тем же аккаунтом на разных машинах. Но теперь стало еще удобней.

вторник, августа 18, 2009

Первый день календаря

Я не очень люблю локализованные программные продукты, и предпочитаю использовать все, что можно в английской локализации. Так оно часто бывает гораздо понятней и локаничней (за исключением случаев, когда программа изначально на английский переводилась). Поэтому и сама Убунта у меня используется в английской локализации. Все бы хорошо, но гномовский календарик при этом начинает отсчитывать неделю "по-английски" с воскресенья. Чтобы это победить, делаем следующее:

1. В файле /usr/share/i18n/locales/en_US меняем значение параметра first_weekday на 2.

2. Пересоздаем локали: # locale-gen

3. Перезапускаем все панели гнома: # killall gnome-panel

После пугающего по виндовым временам моргания панелей, получаем то, к чему стремились.

суббота, июля 25, 2009

Mass rename в bash

Часто приходится переименовывать кучу файлов по шаблону. Не помню как это делалось в видне, в линуксе для этого есть несколько программ и скриптов, аля mmv. Но мне в них то не хватает возможности, то еще что-нибудь не так. А самое главное их надо отдельно ставить. В общем наловчился делать все стандартными средствами.
Пример:
Имеем первый сезон Декстера:
$ ls -1
Dexter - 101 - Dexter.avi
Dexter - 102 - Crocodile.avi
Dexter - 103 - Popping Cherry.avi
Dexter - 104 - Lets Give the Boy a Hand.avi
Dexter - 105 - Love American Style.avi
Dexter - 106 - Return to Sender.avi
Dexter - 107 - Circle of Friends.avi
Dexter - 108 - Shrink Wrap.avi
Dexter - 109 - Father Knows Best.avi
Dexter - 110 - Seeing Red.avi
Dexter - 111 - Truth Be Told.avi
Dexter - 112 - Born Free.avi

Хотим убрать все, кроме номера эпизода.

Говорим:
for i in Dexter*; do mv "$i" $(echo $i | sed 's/.*\([0-9]\{3\}\).*/\1.avi/'); done

И получаем то, что хотели:
ls *.avi -1
101.avi
102.avi
103.avi
104.avi
105.avi
106.avi
107.avi
108.avi
109.avi
110.avi
111.avi
112.avi

Это стандартный цикл, в котором файлы переименовываются в провернутые через sed свои имена. Круглые и фигурные скобки приходится фильтровать для bash.