Скрипт создает новую папку, инициализирует пустой репозиторий и предлагает команды для настройки push из локального репозитория.
#!/bin/bash
set -e
if [[ $# -eq 0 ]] ; then
echo "Usage:"
echo "$0 path-to-new-dir"
exit 1
fi
mkdir "$1"
git init --bare "$1"
echo "Run these commands in the local repository:"
echo
echo "git remote add origin ssh://$USER@`hostname``readlink -f "$1"`"
echo "git push --set-upstream origin master"
В данной заметке описывается последовательность действий, приводящая к успешной установке Word, Excel и Power Point из пакета Office Professional Plus SP1 x86 RU на Ubuntu 12.10 с wine 1.4.1. Скорее всего, эта инструкция действует для версий wine с 1.3.35 по 1.5.6. Для более полной и актуальной информации обратитесь к соответствующей странице на WineHQ.
Внимательно придерживайтесь инструкции. Если вы пропустили какой-то этап, установочник завершится с ошибкой. В этом случае необходимо удалить папку, указанную в $WINEPREFIX, и повторить все действия сначала.
1. Конфигурируем консоль для нового префикса. Укажите здесь папку, в которую хотите поставить MS Office.
export WINEPREFIX=/home/ri/.msoffice
export WINEARCH=win32
Все дальнейшие действия нужно выполнять в этой же консоли. При открытии новой консоли эти команды надо выполнить повторно.
2. Монтируем установочный диск или его образ, например, в папку /tmp/cdrom
. Теперь запускаем в консоли winecfg
и на вкладке "Диски" добавляем диск d:\ типа CRDOM, указываем папку, в которой примонтирован диск.
3. Удаляем msxml6.dll:
rm .msoffice/drive_c/windows/system32/msxml6.dll
4. Загружаем MS XML 6 с сайта Microsoft. На данный момент он доступен по этой ссылке.
5. Запускаем установку MS XML 6 из консоли:
wine msiexec /i /path/to/msxml6_x86.msi
6. Устанавливаем Mono:
winetricks mono210
7. Копируем из рабочей установки Windows файл machine.config:
mkdir $WINEPREFIX/drive_c/windows/Microsoft.NET/Framework/v2.0.50727/CONFIG
cp /media/windows_system_disc/Windows/Microsoft.NET/Framework/v2.0.50727/CONFIG/machine.config \
$WINEPREFIX/drive_c/windows/Microsoft.NET/Framework/v2.0.50727/CONFIG/
8. Запускаем установку:
wine d:\\setup
9. После успешного завершения установки снова запускаем winecfg. Удаляем установочный диск из списка дисков. Переходим на вкладку "Библиотеки", вводим в текстовое поле riched20
, нажимаем "Установить", выделяем в списке появившийся пункт, нажимаем "Изменить" и выбираем опцию "Сторонняя, затем встроенная". Нажимаем "OK".
10. Проверяем работу приложений:
wine $WINEPREFIX/drive_c/Program\ Files/Microsoft\ Office/Office14/EXCEL.EXE
wine $WINEPREFIX/drive_c/Program\ Files/Microsoft\ Office/Office14/WINWORD.EXE
wine $WINEPREFIX/drive_c/Program\ Files/Microsoft\ Office/Office14/POWERPNT.EXE
У меня Excel и Power Point работают нормально, а Word при запуске пытается настроить какие-то компоненты. Операцию настройки можно прервать, а можно дождаться ее завершения, затем через некоторое время Word запускается и работает нормально. Других сложностей пока замечено не было.
11. Делаем резервную копию папки $WINEPREFIX.
12. Настраиваем удобный запуск программ.
В моей Xubuntu (а скорее всего, и в других оболочках) после установки в главном меню появляются пункты для запуска установленных приложений. Прописанная там команда для Word выглядит следующим образом:
env WINEPREFIX="/home/ri/.msoffice" wine C:\\windows\\command\\start.exe /Unix /home/ri/.msoffice/dosdevices/c:/users/ri/Start\ Menu/Programs/Microsoft\ Office/Microsoft\ Word\ 2010.lnk
Если же по каким-то причинам у вас этих пунктов нет, создайте файл примерно такого содержания (для Word):
/!bin/bash
export WINEPREFIX=/home/ri/.msoffice
export WINEARCH=win32
wine $WINEPREFIX/drive_c/Program\ Files/Microsoft\ Office/Office14/WINWORD.EXE
Сделайте его исполняемым и поместите в /usr/bin/msword
.
Откройте рутовскую консоль и отредактируйте файл /usr/share/applications/gvim.desktop
. Найдите строчку Exec=gvim %F
и замените ее на следующее:
Exec=gvim --servername GVIM --remote-tab %F
Теперь при открытии файлов через Nautilus будет выполняться соответствующая команда. Если эта команда уже выполнялась ранее и экземпляр gvim еще запущен, в нем откроется новая вкладка с указанным файлом.
Чтобы это работало и в консоли, добавьте в .bashrc
:
alias gvim='gvim --servername GVIM --remote-tab'
Так сложилось, что имеющийся у меня монитор при подключении к VGA неправильно выдает список поддерживаемых разрешений. Поэтому в стандартной утилите настройки дисплея я могу поставить разрешение не больше 1024x768. Я же хотел поставить разрешение 1600x900. Найденный мной способ проверен на видеокартах Intel, а также на видеокартах NVidia со свободными драйверами. Решения проблемы для проприетарных драйверов NVidia я не нашел. Также следует отметить, что этот способ не работает, если монитор действительно не поддерживает такое разрешение.
1. Открываем консоль. Узнаем список видеовыходов и поддерживаемых разрешений для каждого выхода командой
xrandr
У меня выходы назывались LVDS1 (монитор ноутбука) и VGA1 (внешний монитор).
2. Создаем Modeline для нужного режима:
cvt 1600 900 60
Первые два числа — разрешение, третье — частота обновления экрана (можно не задавать, по умолчанию будет 60). Команда выдаст примерно следующее:
Modeline "1600x900_60.00" 118.25 1600 1696 1856 2112 900 903 908 934 -hsync +vsync
xrandr --newmode "1600x900_60.00" 118.25 1600 1696 1856 2112 900 903 908 934 -hsync +vsync
(после --newmode
вставляем вывод команды cvt без слова Modeline).
4. Добавляем новый режим к нужному выходу:
xrandr --addmode VGA1 1600x900_60.00
5. Вводим xrandr
и видим, что режим добавился. Теперь можно запустить стандартную утилиту (Система → Параметры → Экран) и выбрать новое разрешение, либо поменять разрешение из консоли:
xrandr --output VGA1 --mode 1600x900_60.00
Чтобы окно не закрывалось при закрытии последней вкладки, нужно указать на странице about:config
:
browser.tabs.closeWindowWithLastTab = false
Чтобы работал BackSpace:
browser.backspace_action = 0
Чтобы на последней оставшейся вкладке была кнопка закрытия, в профиле в файле chrome/userChrome.css
нужно дописать:
.tab-close-button { display: -moz-box !important; }
В Хроме последние закрытые вкладки можно открыть, нажав комбинацию Ctrl+Shift+T. Я написал расширение, которое позволит делать это по Ctrl+Z — такая комбинация используется в Опере. Установить расширение можно здесь.
Если в момент нажатия комбинации курсор находится в текстовом поле, срабатывает обычная отмена. Только если отмену больше сделать нельзя, комбинация передается на обработку в расширение.
После установки расширения следует перезапустить браузер, иначе оно не будет работать на страницах, открытых ранее.
- Установите пакет
dconf-tools
.
- Запустите
dconf-editor
.
- Перейдите в раздел
com/canonical/indicator/datetime
.
- Установите значение
time-format = custom
.
- Установите значение
custom-time-format
, пользуясь [этой таблицей][1].
Чтобы после загрузки системы в консоли вам не пришлось вводить логин и пароль, нужно сделать следующее:
Откройте консоль рута и создайте файл /usr/sbin/call_bash
, содержащий:
#!/bin/bash
su - your_username
Дайте этому файлу права на исполнение:
chmod +x /usr/sbin/call_bash
Проверьте, что команда call_bash
открывает консоль.
Пропишите в /etc/inittab
эту команду. Например, у меня автологин прописан для 3 первых консолей, выглядит это так:
c1:2345:respawn:/sbin/agetty -nl /usr/sbin/call_bash -8 38400 tty1 linux
c2:2345:respawn:/sbin/agetty -nl /usr/sbin/call_bash -8 38400 tty2 linux
c3:2345:respawn:/sbin/agetty -nl /usr/sbin/call_bash -8 38400 tty3 linux
c4:2345:respawn:/sbin/agetty -8 38400 tty4 linux
c5:2345:respawn:/sbin/agetty -8 38400 tty5 linux
c6:2345:respawn:/sbin/agetty -8 38400 tty6 linux
Ключ -n
указывает, что не нужно спрашивать логин, ключ -l
заставляет agetty запустить наш скрипт вместо стандартного /bin/login
.
После перезагрузки эффект должен быть заметен.
Допустим, нам надо, чтобы по нажатию Alt+1 активировалось окно Firefox, при нажатии Alt+2 - Gedit и т. д. Как программы, так и хоткеи могут быть любыми.
Ставим пакет wmctrl
, если он не установлен:
sudo apt-get install wmctrl
В Unity: нажимаем на иконку в правом верхнем углу, выбираем Свойства системы → Клавиатура → Комбинации клавиш.
В Gnome2: выбираем пункт меню Система → Параметры → Комбинации клавиш клавиш клавиатуры.
Нажимаем кнопку "Добавить". Вводим название: "Switch to Firefox", команду:
wmctrl -a firefox
Сохраняем, щелкаем по правой колонке и указываем хоткей. Повторяем столько раз, сколько нужно. Если нужная программа закрыта, при нажатии хоткея ничего не произойдет. Если она открыта, то ее окно выйдет на первый план.
Строка, указываемая в команде, должна полностью содержаться в заголовке окна. Например, чтобы активировать Google Chrome или Chromium (в зависимости от того, что запущено), достаточно указать команду wmctrl -a chrom
.
В этой заметке я расскажу, как сделать так, чтобы при вводе, например, man perl
в адресной строке браузера появлялась соответствующая страница мануала.
Chrome
Чтобы читать страницы манов из браузера Chrome, зайдите в параметры → основные → поиск по умолчанию → управление → добавить, затем введите:
- имя:
man
;
- ключевое слово:
man
;
- url:
http://www.opennet.ru/man.shtml?topic=%s
После этого можно прямо в адресной строке вводить man perl
, будет открываться соответствующий ман. На опеннете маны хорошо форматированы, к тому же расставлены ссылки на другие страницы манов.
Opera
Зайдите на http://opennet.ru/man.shtml, нажмите правой кнопкой на поле ввода «Тема», затем «создать поиск», в поле «клавиша» введите man
, нажмите OK. Введите в адресной строке man perl
для проверки.
Это делается довольно просто одной командой:
sox sound.wav -V -t au -b 16 -c 1 sound.au
Gimp не поддерживает сохранение изображений в формат TIF CMYK. Чтобы пересохранить TIF в формат CMYK, можно воспользоваться утилитой convert
из пакета imagemagick
:
convert 1.tif -colorspace CMYK 1-cmyk.tif
Общая информация
Селектор определяет, для каких объектов будут применяться указанные свойства.
В коде CSS это записывается так:
селектор { свойства }
Полужирным шрифтом выделены основные селекторы, за ними следуют описания соответствующих им объектов.
После описания в скобках могут быть указаны селекторы для внутренних элементов объекта. В случае, если основной селектор не производит нужный эффект, стоит попробовать задать стиль для селектора внутреннего элемента.
Надпись (input, label) после селектора #id для управляющего элемента означает, что можно использовать селекторы #id input и #id label для доступа к переключателю и надписи соответственно.
Настоятельно рекомендую научиться использовать FireBug и не париться с поиском нужных селекторов.
Запись и комментарий
Внешняя оболочка поста
.singlePost — любой пост
.first — первый пост на странице
.countFirst — нечетные посты
.countSecond — четные посты
#post0 — эпиграф
.singleComment — комментарий
Cледующие классы относятся и к постам, и к комментариям.
.postTitle — заголовок поста
.postTitle span — время
.opac6 — значок закрытой записи
Информация об авторе
.communityName — название сообщества (.communityName a)
.authorName — автор записи (.authorName a)
.postContent — блок с аватаркой, подписью и текстом
.commentAuthor — блок с аватаркой и подписью
.avatar — аватарка (.avatar img)
.sign — подпись под аватаркой
.postInner — оболочка текста и тегов
.paragraph — текст и теги
Текстовое содержимое
.paragraph div — текст
.smile — смайлы в тексте
.LinkMore — ссылки MORE
.voting — блок голосования
.atTag — темы
.atTag span — надпись "@темы:"
.atTag a — ссылки на темы
.atMusic — музыка
.atMusic span — надпись "@музыка:"
.atMood — настроение
.quote_text — цитированный текст
.eot — оффтопик
.postLinksBackg — ссылки внизу поста
.urlLink — URL (.urlLinks a)
.postLinks — остальные ссылки
Ссылки
.lastLink — последняя из ссылок (.lastLink a)
.addToQuote — в цитатник (.addToQuote a)
.subscribe — подписаться (.subscribe a)
.unsubscribe — отписаться (.unsubscribe a)
.quote_post — написать у себя (.quote_post a)
.umail — u-mail (.quote_post a)
.diary — дневник (.quote_post a)
.profile — профиль (.quote_post a)
.comments — комментарии (.comments a)
.comments_count_link — скобки, запятые в к-ке комментариев
.comments_count_link a — к-во комментариев (ссылка)
.prevnext — предыдущая и следующая записи
.prevPostLink — предыдущая (.prevPostLink a)
.nextPostLink — следующая (.nextPostLink a)
Служебные страницы
.tagsulall — список тем на отдельной странице
.tags_header — надписи "название" и "количество"
.tags_ul_all a — ссылка на тему
.tags_ul_all span — количество
#JournalCalendar — календарь записей
.calHeader — заголовок "календарь записей"
#JournalCalendar a — ссылки
#JournalCalendar a b — ссылка на не текущий год
.calnd — календарь на месяц
.cal-mnth — название месяца
.cal-head — дни недели
.cal-head small — числа
.cal-head a small — числа, для которых есть записи
.flwin — всплывающая подсказка
.flwin strong — заголовок подсказки
.flwin em — текст подсказки
Форма добавления комментария
#addCommentAreatitle — заголовок "добавить комментарий"
#formcontainer — оболочка формы
#msgform — форма
#from_form — переключатель, от кого добавлять комментарий
#fromMyself_box — от себя
#fromMrX_box — анонимно
#fromMrX3_box — OpenID
#fromAnother_box — от другого пользователя (input, label)
#open_id_com — оболочка поля ввода OpenID и двоеточия перед ним
#open_id_com input — поле ввода OpenID
#from_another — форма ввода логина и пароля для комментирования от другого аккаунта
#fromAnotherName — логин
#fromAnotherPass — пароль
#changebgarea_comm — галочка "прозрачные поля" (input, label)
#forTextarea — редактор и смайлы
#htmlbox — редактор
#javabut — кнопки
#codebuttons — тоже кнопки
#message — текст сообщения
#shsmile — смайлы
#favSmilesGroups — выбор группы смайлов и любимые смайлы
#EditFavSmileysLink — ссылка на редактирование любимых смайлов
#SelectSmileGroup — выпадающий список групп смайлов
#favSmiles — список смайлов
.SmilePanelElement — смайл с надписью
.SmilePanelElement small — надпись
.SmilePanelElement img — картинка смайла
Опции комментария
#ReplaceBrDiv — не заменять переносы строки на <br> (input, label)
#change_avatar_box — использовать аватар (input, label) (платный сервис "аватары")
#change_avatar_box a — выбор другого аватара
#AvatarSelector — выбранный аватар
#subscribeToComments_box — подписаться на комментарии
#doNotSmile_box — не заменять текстовые смайлы на графические
#addPicture_box — прикрепить изображение
#addPictureSection — форма выбора файла изображения
#btSubmit — кнопка отправки комментария
Дополнительные элементы
#addblock1, #addblock2, ... #addblock7 — блоки для вставки дополнительных изображений
#extratop, #extrabottom — дополнительные блоки сверху и снизу
.postDate — дата (.postDate span)
.countFirstDate — дата у нечетного поста
.countSecondDate — дата у четного поста
#commentsAreatitle — надпись "комментарии"
#newCommentsArea .header — надпись "Новые комментарии с последней страницы"
#cc — всплывающий блок "вставить цитату"
#msgWin — сообщение об ошибке
#msgTitle — заголовок
#msgTitleText — текст в заголовке
#msgWin .std_submit — кнопка закрытия
.msgErr — блок текста ошибки (в фоне прописана картинка)
#msgTextContent — текст ошибки
#msgWinCloseBt — OK
Меню
.menuSection — все секции
.menuSection ul — фон выпадающего меню
.menuSection li — все элементы меню
.menuSection a — все ссылки меню
.menuSection_title — все заголовки меню
#thisDiaryOwner — меню владельца дневника
#thisDiaryOwner ul — фон выпадающего меню
#thisDiaryOwner_title — записи
#writeToAuthor — написать на U-mail
#subscribeEmail — подписаться на дневник
#unsubscribeEmail — отписаться от дневника
#addToFav — добавить в избранное
#delFromFav — удалить из избранного
#tagslistlink — темы записей
#postsCalendar — календарь записей
#rssLink — RSS дневника
#upInChart — поднять в списке
#thisDiaryLinks — меню текущего дневника
#thisDiaryLinks ul — фон выпадающего меню
#thisDiaryLinks_title — дневник
#authorFav — избранное автора
#authorQuot — цитатник автора
#authorLinks — ссылки автора
#authorAlbum — альбом автора
#joinThisCommunity — вступить в сообщество
#writeThisCommunity — написать в сообщество
#communityDraftLink — мои черновики в сообществе
#communityMyPosts — мои записи в сообществе
#communityFav — избранное сообщества
#communityQuote — цитатник сообщества
#communityAlbum — альбом сообщества
#leaveThisCommunity — покинуть сообщество
#myDiaryLinks — меню моего дневника
#myDiaryLinks ul — фон выпадающего меню
#myDiaryLinks_title — мой дневник (заголовок)
#headlineList — список заголовков
#tagslistlink — темы записей
#myDiaryLink — мой дневник
#writeThisDiary — новая запись
#myDraftLink — черновики
#umailLink — u-mail
#myNotepadLink — блокнот
#myFavLink — избранное
#myQuotLink — цитатник
#discussionLink — дискуссии
#myLinksLink — мои ссылки
#myProfileLink — мой профиль
#albumLink — альбом
#optionsLink — настройки
#photolibLink — библиотека изображений
.count_box — количество новых комментариев или черновиков, с тире и скобками
.count_box span — количество новых комментариев, только цифра
#globalLinks — главное меню
#globalLinks ul — фон выпадающего меню
#globalLinks_title — главное меню
#allDiaryLink — все дневники
#mainpageLink — главная страница
#favListLink — список избранных
#pchListLink — список ПЧ
#communityCatalogueLink — каталог сообществ
#myCommunitiesLink — мои сообщества
#myCommunityLink — моe сообществo
#randomDiaryLink — случайный дневник
#diarySpiritLink — @дневники: изнутри
#diarySupportLink — техподдержка
#faqLink — FAQ
#lastComments — последние комментарии (если включены)
#pchs — ПЧ
#pchs ul — фон выпадающего меню
#pchs_title — ПЧ, заголовок (#pchs_title b)
#pchs li — список ПЧ с запятыми
#pchs a — ссылки на ПЧ
#myLinks — мои ссылки (#myLinks li, #myLinks a)
#myLinks ul — фон выпадающего меню
#all_links — заголовок "ссылки"
#myLinks a — каждая ссылка
#myLinks li:nth-child(3) a — вторая из ссылок (цифре 1 соответствует заголовок); не поддерживается в IE и FF<3.5
#Stats — статистика дневника
#iAmQuit — секция выхода и перелогинки
#iAmQuit b — выход
#more_login — войти под другим именем (#more_login a)
#login_change — форма перелогинки
#usrlog — логин
#usrpass — пароль
#open_uri — OpenID
#save — запомнить
.std_submit — войти
#side h1 — название дневника (#side h1 a)
#YaSearch — блок поиска по дневнику
#YaSearch_title b — фраза "Поиск"
#YaSearchForm_title b — фраза "Поиск по дневнику"
#YaSearchForm — форма поиска
#yaquery — строка поиска
#thisDiaryInfo — владелец дневника
#authorName — логин (#authorName span)
#thisDiaryPhoto — фотография
#TagsList — список тем
#TagsList span — число постов в теме
#TagsList a — название темы
Оболочки и дополнительные элементы
body — вся страница
#side — оболочка меню
#page-c — оболочка постов
#page-t — внутренняя оболочка постов
#postsArea — еще более внутренняя оболочка постов
#epigraph — оболочка эпиграфа
#commentsArea — оболочка комментариев
#newCommentsArea — новые комментарии (появляется, если вы отправляете комментарий, находясь не на последней странице комментариев)
#addCommentArea — оболочка формы добавления комментария
Разные стили для разных типов страниц
Если вы хотите, чтобы некоторые стили применялись только на некоторых
типах страниц, вставьте перед их селекторами следующие:
#Journal — дневник, а также редактирование записи или комментария
#JournalComments — комментарии
#JournalDraft — черновики
#JournalFavorite — избранное
#JournalAlbum — альбом
#JournalCalendar — календарь записей
#JournalLinks — страница моих ссылок
Например: #JournalComments a { color:green } — изменяет цвет ссылок на странице комментариев.
Элементы управления
.order_button — кнопки сортировки записей
#sortFromBegin — сортировать в порядке следования
#sortFromEnd — сортировать в обратном порядке
#sortFromLastComment — сортировать по последним комментариям
#bottomNav — ссылки навигации внизу страницы
#bottom_up — наверх
#bottom_mainlink — на главную
#bottom_randomlink — случайный дневник
#bottom_spiritlink — дневники: изнутри
#bottom_faqlink — FAQ
#Stats — статистика (находится внизу, если меню вверху)
#topNav — ссылки навигации вверху страницы
#top_up — наверх
#top_mainlink — на главную
#top_randomlink — случайный дневник
#top_spiritlink — дневники: изнутри
#top_faqlink — FAQ
.postActionLinks — кнопки управления постом
.upPostLink — поднять
.delPostLink — удалить
.editPostLink — редактировать
.tonotepadPostLink — перенести в блокнот
.fromnotepadPostLink — перенести в черновики из блокнота
Для доступа к ссылке внутри блока: #(id) a
Для доступа к изображению на кнопке: #(id) img
#pageBar — переключатель страниц
.pages_str — предыдущая, следующая
#pageBar a — все ссылки переключателя страниц
#pageBar strong — текущая страница