Сервер X11 (X.org во всех современных дистрибутивах) обладает достаточно богатой функциональностью, в которую входит отрисовка окон друг поверх друга, работа с буфером обмена, передача сеанса работы по сети, работа с железом вроде мыши, клавиатуры, видеокарты и монитора компьютера и многое другое. Однако, двигать окна, отрисовывать вокруг них рамку с кнопочками, сворачивать и разворачивать окна он без посторонней помощи не умеет, этим занимается сторонняя программа, называемая менеджером окон.
WM (Window Manager, Оконный менеджер) - это программа, которая управляет окнами в различных графических системах, типа X11. В её задачи входит (всё опционально) отрисовка рамок вокруг окон, кнопок закрытия/сворачивания окон, поддержание окон поверх других, управление политикой передачи фокуса, управление рабочими столами и многое другое.
Однако менеджером окон также (ошибочно) называют некий набор программ, куда помимо самого WM входит, например, пейджер для переключения виртуальных рабочих столов, место куда сворачиваются окна и где их можно попереключать, выбирая нужное, и системный лоток (трей), где висят значки постоянно запущенных приложений. К числу таких "менеджеров окон" можно отнести любой из семества *box, IceWM, Window Maker, FVWM и прочие.
Одним из наиболее продвинутых на данный момент является оконный менеджер среды KDE - KWin. Он предоставляет пользователю богатейший список настроек, куда входит всё и даже больше. По количеству эффектов и графических наворотов первое место занимает композитный оконный менеджер Compiz
Если Вы хотите детально разобраться, как должен работать WM, то исследуйте спецификацию, доступную здесь, а также микроскопический по размерам WM karmen
Если менеджер окон дополнить некоторым набором стандартных программ, выполненных в едином стиле (за счёт использования одного и того же набора базовых библиотек и наличия общих руководств по стилю программ, HIG) и реализующих большую часть базовой функциональности, нужной простому пользователю от компьютера (посидеть в интернете, набрать текст, нарисовать картинку, послушать музыку и посмотреть кино, и т.д.), то мы получим рабочую среду (Desktop Environment, Рабочее окружение). К этой группе относятся KDE, Gnome, XFCE и LXDE. Кроме того, основные рабочие среды позволяют менять настройки системы через графический интерфейс. В принципе, единственные отличия DE от "менеджера окон" - это размер, количество написанных под данную среду программ, и объем предоставляемого пользователю функционала.
Запустите xrandr, он выдаст нечто вроде:
user@linux$ xrandr SZ: Pixels Physical Refresh *0 1440 x 900 ( 381mm x 238mm ) *60 1 1024 x 768 ( 381mm x 238mm ) 85 2 800 x 600 ( 381mm x 238mm ) 85 3 640 x 480 ( 381mm x 238mm ) 85 Current rotation - normal Current reflection - none Rotations possible - normal left inverted right Reflections possible - none
Теперь напишете, например, xrandr 2 и получите разрешение 1024x768. Так же с помощь xrandr можно узнать текущее разрешение экрана и частоту развертки
В новых версиях команды xrandr надо указывать так :
xrandr -s ШИРИНАxВЫСОТА
Вывод команды xrandr :
Screen 0: minimum 320 x 175, current 1024 x 768, maximum 1024 x 768 default connected 1024x768+0+0 0mm x 0mm 1024x768 50.0* 51.0 54.0 55.0 56.0 800x600 52.0 59.0 60.0 61.0 62.0 63.0 64.0 65.0 640x480 53.0 69.0 70.0 71.0 72.0 896x672 57.0 832x624 58.0 720x400 66.0 640x512 67.0 68.0 640x400 73.0 640x350 74.0 576x432 75.0 512x384 76.0 77.0 78.0 79.0 416x312 80.0 400x300 81.0 82.0 83.0 84.0 85.0 360x200 86.0 320x240 87.0 88.0 89.0 90.0 320x200 91.0 320x175 92.0
(Проверялось на Slackware 13. RandR version 1.3. X.Org X Server 1.6.3.)
http://acdcontrol.sourceforge.net
Этот вопрос долго будоражил умы ЛОРовцев, но в итоге решение было найдено :)
http://wiki.linux.ru/index.php/FAQ:kxkb
Это файлы gtkrc. Существуют глобальные настройки и локальные. Локальные хранятся в домашней папке, в файле ~/.gtkrc-2.0, глобальные в /etc/gtk-2.0/gtkrc.
gtk-theme-name = "Clearlooks"
gtk-font-name = "Tahoma 8"
gtk-icon-theme-name = "Tango"
style "user-font"
{
font_name="Tahoma 8"
}
widget_class "*" style "user-font"
В ~/.gtkrc-2.0 прописать gtk-alternative-button-order=1
Используйте Alacarte. Начиная с версии 2.16 он официально является частью Gnome.
Распаковываем тему с курсорами в ~/.icons или /usr/share/icons, а в ~/.Xdefaults добавляем строчку Xcursor.theme: your_theme_name и перезапускаем X-сервер.
Об этом рассказывается здесь. Для того, чтобы вступили в действие изменения сделанные в ~/.Xresources необходимо выполнить команду
xrdb -merge ~/.Xresources
и перезапустить Emacs.
Создаем каталог /etc/adobe, а в нем - файл /etc/adobe/mms.cfg. В файл вписываем следующую строку:
OverrideGPUValidation=true
Это заставит flash использовать аппаратное ускорение графики.
Настройки шрифтов и цвета хранятся в файле ~/.mozilla/default/*/chrome/userChrome.css. Если его там нет, то создайте вручную. Вот пример настройки шрифтов:
/* UI fonts */
* {
font-size: 8pt !important;
font-family: Tahoma !important;
}
menubar {
font-weight: bold !important;
}
Более подробно об этом рассказано тут
Переименовать .jar в .xpi и открыть простым File -> Open File, либо открыть Tools -> Themes и перетащить туда файл с темой мышкой. Если ничего не помогло, то воспользоваться скриптом - http://www.eightlines.com/neil/mozskin/installjar.html
Нужно поставить соответствующий плагин для браузера. Рекомендую mplayerplug-in. Остальные можно поискать с помощью пакетного менеджера, например так - apt-cache search plugin|grep mozilla:
artem@sakura:~$ apt-cache search plugin|grep mozilla kaffeine-mozilla - mozilla plugin that launches kaffeine for supported media types mozilla-plugin-gnash - free SWF movie player - Plugin for Mozilla and derivatives mozilla-plugin-vlc - multimedia plugin for web browsers based on VLC swfdec-mozilla - Mozilla plugin for SWF files (Macromedia Flash) totem-mozilla - Totem Mozilla plugin mozilla-acroread - Adobe Acrobat(R) Reader plugin for mozilla / konqueror mozilla-mplayer - MPlayer-Plugin for Mozilla
Для начала воткнем камеру в компьютер и посмотрим на вывод команды lsusb. Мы должны увидеть что-то вроде такого:
[jackill@mobile ~]$ /sbin/lsusb Bus 001 Device 001: ID 0000:0000 Bus 003 Device 001: ID 0000:0000 Bus 002 Device 004: ID 046d:092f Logitech, Inc. QuickCam Express Plus Bus 002 Device 001: ID 0000:0000
Узнаем, чем поддерживается камера, воспользовавшись поисковиком. Отыскав сайт QuickCam Team, мы убедимся, что все в порядке.
В большинстве дистрибутивов драйвер gspca есть по умолчанию и никаких лишних телодвижений совершать не нужно.
Запускаем skype, заходим в раздел Настройки->Видеоустройства (Settings->Video Devices) и на камере нажимаем кнопку Проверка (Test). Все должно работать.
Сначала проверьте правильно ли выставлен вывод звука в настройках Skype - Настройки->Устройства (Settings->Audio Devices). Для PulseAudio должен быть выбран пункт pulse. На момент апреля 2009 года Skype без проблем работает с PulseAudio. В случае работы с голой ALSA достаточно выставить устройства ввода и вывода по умолчанию (default).
Решение с микрофоном для материнских плат nVidia с кодеком HDA тут
Самый простой способ для камер Logitech, сообщённый разработчиками skype.
Меняем вот эти параметры (для начала, как указано ниже):
echo 4 > /sys/module/gspca/parameters/gamma echo 290 > /sys/module/gspca/parameters/GRed echo 310 > /sys/module/gspca/parameters/GGreen echo 315 > /sys/module/gspca/parameters/GBlue
С помощью этих параметров настройте изображение и затем занесите команды в загрузочные скрипты.
Если хочется отключить писк в консоли (для bash и программ, использующих readline), можно добавить в ~/.inputrc строку `set bell-style off`, или `xset -b` (что эквивалентно `xset b off`), затем выйти из нее (консоли) и зайти снова - должно получиться. Или сделать setterm -blength 0.
Для более глубокого ознакомления со способами управления звуком (и не только) в консоли рекомендую посетить http://gazette.linux.ru.net/rus/articles/hobcon.html и http://linuxdoc.ru/HOWTO/mini/Visual-Bell.html
В ядрах серии 2.6 можно просто добавить модуль pcspkr в блеклист - /etc/modprobe.d/blacklist
man console_codes
Просто без привязки к конкретной консоли (пользователь остается за машиной):
user@linux$ nohup COMMAND [ARG]...
Программа nohup запускает COMMAND таким образом, что она игнорирует сигнал hangup, что позволяет ей продолжать работу и после выхода из терминала. Также, она перенаправляет весь вывод программы в файл ~/nohup.out и понижает приоритет выполняемой программы.
Запустить ее в screen:
user@linux$ screen -S имя команда [параметры]
Выйти из сеанса можно при помощи сочетания клавиш Ctrl-A Ctrl-D. Подключиться обратно так:
user@linux$ screen -R имя
Очень рекомендуем прочитать man screen (он подробный и хорошо написан).
Также можно "отвязать" от терминала программу, уже запущенную в фоновом режиме в bash, командой disown.
user@linux$ xmms http://64.236.34.67:80/stream/2007 & user@linux$ disown xmms
Еще можно воспользоваться командами fg, bg, job
Можно использовать планировщик заданий at. Например так:
user@linux$ at rtorrent 0220
Это запустит rtorrent в 02:20
В случае с графической программой нужно указать переменную DISPLAY:
user@linux$ DISPLAY=:0 at transmission 0220
Воспользуйтесь командой nice. Чтобы понизить приоритет, напишите нечто вроде:
user@linux$ nice -n 10 myprogram
Подробности можно узнать, набрав man nice
Утилита называется taskset, входит в состав util-linux. Прочитать обо всем можно здесь: http://www.kernel.org/pub/linux/kernel/people/rml/cpu-affinity/README-cpu-affinity
Посмотреть на каком процессоре выполняется задача можно с помощью обычной утилиты top. .
man tar в районе -M. Либо man split и натравить split на tar.gz.
Вот так
Есть несколько способов (и программ).
Первый: в терминале задаем переменную LANG=ru_RU.CP1251. Запускаем любимый клиент. Файлы будут выглядеть нормально.
Второй: ставим gftp, в свойствах выбираем Параметры -> Набор символов удаленной стороны. Проблема в том, что они придут на машину в "непотребной" кодировке. Существуют патчи - можно почитать об этом здесь.
Третий: запускаем Mozilla или Konqueror и выбираем кодировку. У konqueror соответствующий пункт появится в меню Tools (Select Remote Charset). Да, если вы перешли с одного сайта, указав там кодировку cp1251, на другой с cp1251, названия файлов на другом будут отображаться некорректно. Лечится просто - выставляете какую-нибудь другую кодировку, затем снова cp1251.
Четвертый: Пользуемся lftp:
lftp :~>set ftp:charset CP1251 lftp :~>open "имя виндового ftp сервера"
Есть такой пакет ImageMagick, Входит он практически в любой дистрибутив и содержит группу утилит, предназначенных для различного преобразования файлов. Полный список поддерживаемых форматов вы можете узнать, набрав man ImageMagick.
В качестве примера возьмем задачу по уменьшению группы файлов (jpeg уменьшить пропорционально, чтобы координата x равнялась 800 пикселям):
#!/bin/sh for i in $@ ; do convert -geometry 800 $i small/$i ; done
Запускать из каталога с картинками, уменьшенные изображения будут в каталоге small, который нужно предварительно создать
/* FIXME: написать о uvesafb */
С помощью параметра ядра vga, значения можно узнать тут
Программой fbgrab
Воспользоваться таким скриптом. Выходной формат - bmp:
#!/usr/bin/perl
$ttynum=shift or die "Usage: grab <vttynum>\n";
die "$ttynum: Incorrect virtual console number\n" unless $ttynum=~/^\d+$/;
$ttydev="/dev/tty" . $ttynum;
$vcsadev="/dev/vcsa" . $ttynum;
open(VCSA, $vcsadev) or die "Cannot open $vcsadev: $!\n";
$len=read(VCSA, $buf, 16384);
close(VCSA);
($height, $width, $curx, $cury)=unpack('C4',$buf);
open(T, $ttydev) or die "Cannot open $ttydev: $!\n";
$fnt=pack('L4096', 0);
$fntx=pack('SSP', 256, 32, $fnt);
ioctl(T, 0x4B6B, $fntx) or die "Cannot grab console font: $!\n";
close(T);
($nchars, $fheight)=unpack('SS', $fntx);
$thickness = ($fheight >= 14 ? 2 : 1);
foreach $c (0..255)
{
my @tmp;
my @ch=split(//, substr($fnt, $c*32, $fheight));
push @tmp, [ split(//, unpack('B8',shift @ch)) ] while @ch;
push @font,[ @tmp ];
}
print 'BM'.pack('L29',
$width*$height*$fheight*4+118,0,118,40,$width*8,$height*$fheight,0x40001,
0,$width*$height*$fheight*4,0x120b,0x120b,16,16,
0x000000,0x000080,0x008000,0x008080,0x800000,0x800080,0x808000,0xC0C0C0,
0x808080,0x0000FF,0x00FF00,0x00FFFF,0xFF0000,0xFF00FF,0xFFFF00,0xFFFFFF);
for($line=$height-1;$line>=0;--$line)
{
my @img;
push @img,[] while (1..$fheight);
foreach $col (0..$width-1)
{
($fgattr,$bgattr)=
split(//, unpack('h2', substr($buf, 5+2*($line*$width + $col), 1)));
$ch=unpack('C', substr($buf,4+2*($line*$width + $col), 1));
if($line==$cury && $col==$curx)
{
foreach $_ (1..$fheight-$thickness)
{
push(@{$img[$fheight-$_]},
map {$_?$fgattr:$bgattr} @{$font[$ch][$_-1]});
}
foreach $_ (0..$thickness-1)
{
push @{$img[$_]},($fgattr)x8;
}
}
else
{
foreach $_ (1..$fheight)
{
push(@{$img[$fheight-$_]},
map {$_?$fgattr:$bgattr} @{$font[$ch][$_-1]});
}
}
}
print pack('H'.(8*$width),join('',@$_)) while $_=shift @img;
}
Если требуется "текстовый" скриншот, можно воспользоваться screen. Подробности - C-a ?
Запись в avi - xvidcap
Запись в ogg theora - Istanbul и recordMyDesktop. Последний имеет фронтенды на GTK2 и QT4
Запись сессии VNC - vncrec
Есть такая вещь под названием xosd.
Например программой root-tail.
В файл ~/.bashrc добавьте строку:
export HISTCONTROL=ignoreboth
Небольшой исторический экскурс: Вплоть до версии 8.4 библиотеки Tk для отрисовки шрифтов использовал традицонный способ системы X11. Это выражалось в том, что ни о каком сглаживании шрифтов даже не приходилось и мечтать. Кроме того, существовал баг с подбором шрифтов для кириллицы, в результате чего русскоязычный текст выглядел ужасно, что можно наблюдать на старых скриншотах tkabber-а, но с версии Tk 8.5 дело кардинально изменилось. Теперь для отрисовки шрифтов используется библиотека Xft. То есть можете смело бросать камень в того, кто скажет, что шрифты в Tk страшные :). Более того, в Tk 8.5 переработаны дефолтные настройки толщины бордюров виджетов, и теперь "из коробки" Tk выглядит немного менее архаично.
Итак, что же надо сделать, чтобы получить красивый внешний вид приложения на Tk:
1. Установить Tk 8.5 или выше и настроить его для использования по умолчанию в приложениях на Tcl/Tk. В Debian/Ubuntu последнее делается с помощью update-alternatives --config wish где надо выбрать wish8.5.
2. Использовать для тонкой настройки виджетов механизм ресурсов X.
В отличие от библиотек Qt и GTK, авторы которых изобрели собственные средства для управления конфигурацией, Tk использует стандартный способ настройки внешнего вида: X Resource Database.
База данных ресурсов X11 содержит настройки в следующем формате:
application.component.subcomponent.subcomponent.attribute: value
Путь к опции состоит из имени приложения и пути до конкретного экземпляра виджета, разделённых точками. Допускается использование * для подстановки любого набора символов.
Если название элемента списка начинается с маленькой буквы, то под настройку попадает только конкретный виджет с данным именем. Иначе весь класс виджетов. Для Tk стандартный набор классов виджетов следующий: Button, Checkbutton, Radiobutton, Label, Entry, Listbox, Menuentry, Menu, Menubutton, Message, Scale, Text.
Имя атрибута (attribute) должно всегда начинаться с маленькой буквы. Стандартными атрибутами для Tk являются: font, borderWidth и т.д. Подробнее можно посмотреть тут. Из всех написанных там слов нас наиболее интересует Database Name. Полный список опций для конкретного класса виджетов можно посмотреть тут в секции Widgets.
Итак, примеры. Устанавливаем толщину всех контуров(для кнопок, скроллбаров, полей ввода и т.д.) в 1 пиксел:
*borderWidth: 1
Убираем контур у выпуклой главной менюшки, а контур выпадающих и контекстных меню делаем толщиной в 1 пиксел:
*Menu.borderWidth: 1 *menu.borderWidth: 0
Настраиваем разом все шрифты (Tahoma 10):
*font: Tahoma 10
Если используется Tk<=8.4, lesstif или другие древние тулкиты, то шрифты для совместимости лучше задавать в иксовом формате. Например:
*font: -*-liberation.sans-medium-r-*-*-11-*-*-*-*-*-*-
Для применения настроек надо полученный файл скормить на вход команде xrdb:
cat options | xrdb -merge
Хорошей идеей будет добавить эту команду в скрипты, выполняющиеся при запуске оконной среды или же поместить конфигурацию непосредственно в ~/.Xresources.
Если используется KDE и поставлена галка "применять цвета к приложениям не из KDE", то при запуске среды некоторые X-ресурсы устанавливаются KDE. И это не всегда хорошо, т.к. там определяется ресурс "*background". Так что это поведение неплохо бы отключить.
Ещё о X Resources и их влиянии на внешний вид приложений можно почитать тут.
3. Для настройки дефолтной темы для библиотеки Ttk/Tile, используйте X-ресурс tkTheme:
*tkTheme: clam
Стандартный набор тем для X11: default(строгая тема), classic(тема в стиле Motif), alt(тема в стиле Window$ 95), clam(гламурная тема с округлыми кнопочками).
Также существуют темы для Tile, использующие виджеты Qt или (в следующей ссылке слово google было заменено на слово ГООГЛЕ, т.к. ругался спам-фильтр LOR-WIKI) Gtk.
4. Если сделали всё вышеперечисленное, но шрифты до сих пор страшные (так иногда бывает в Ubuntu), то, увы, придётся редактировать вызываемую программу или добавлять следующий Tcl-скрипт в её конфигурационный файл:
foreach f {TkDefaultFont TkTextFont TkFixedFont TkMenuFont TkHeadingFont
TkCaptionFont TkSmallCaptionFont TkIconFont TkTooltipFont} {
font configure $f -family Tahoma -size 10
}
Разумеется, вместо Tahoma 10 можно вставить любой шрифт.
Есть два метода. Простейший:
1. Установить gswitchit-plugins. Пакет для Ubuntu Linux доступен тут.
2. В меню (правая клавиша мышки) апплет индикатора выбрать настройку дополнений.
3. Добавить дополнение "Флаги".
4. Зайти в диалог конфигурации дополнения, скачать флаги и включить их использование.
5. Возможно, придется перезапустить апплет индикатора.
Более сложный и более гибкий метод включает ручное скачивание флагов и работу с настройками в gconf. См. здесь
Например так:
user@linux:~$ GTK2_RC_FILES=/usr/share/themes/Glider/gtk-2.0/gtkrc gedit