Сервер X11 (X.org в большинстве современных дистрибутивов) обладает достаточно богатой функциональностью, в которую входит отрисовка окон друг поверх друга, работа с буфером обмена, передача сеанса работы по сети, работа с железом вроде мыши, клавиатуры и видеоподсистемы компьютера и многое другое. Однако, двигать окна, отрисовывать вокруг них рамку с кнопочками, сворачивать и разворачивать окна он без посторонней помощи не умеет, этим занимается сторонняя программа, называемая менеджером окон.
WM (Window Manager, Оконный менеджер) - это программа, которая управляет окнами в различных графических системах, типа X11. В её задачи входит (всё опционально) отрисовка рамок вокруг окон, кнопок закрытия/сворачивания окон, поддержание окон поверх других, управление политикой передачи фокуса, управление рабочими столами и многое другое.
Однако менеджером окон также (ошибочно) называют некий набор программ, куда помимо самого WM входит, например, пейджер для переключения виртуальных рабочих столов, место куда сворачиваются окна и где их можно попереключать, выбирая нужное, и системный лоток (трей), где висят значки постоянно запущенных приложений. К числу таких "менеджеров окон" можно отнести FluxBox (да любой *box), IceWM, Window Maker, FVWM, AfterStep, ion, twm и прочие.
Одним из наиболее продвинутых оконных менеджеров на данный момент является окнонный менеджер среды KDE - KWin. Он предоставляет пользователю богатейший список настроек, куда входит всё и даже больше.
Если Вы хотите детально разобраться, как должен работать WM, то исследуйте спецификацию, доступную здесь, а также микроскопический по размерам WM karmen
Если менеджер окон дополнить некоторым набором стандартных программ, выполненных в едином стиле (за счёт использования одного итого же набора базовых библиотек и наличия общих руководств по стилю программ, HIG) и реализующих большую часть базовой функциональности, нужной простому пользователю от компьютера (посидеть в интернете, набрать текст, нарисовать картинку, послушать музыку и посмотреть кино, и т.д.), то мы получим рабочую среду (Desktop Environment, Рабочее окружение). К этой группе относятся KDE и Gnome с XFCE. Кроме того, основные рабочие среды позволяют менять настройки системы через графический интерфейс. В принципе, единственные отличия DE от "менеджера окон" - это размер, количество написанных под данную среду программ, и объем предоставляемого пользователю функционала.
Запустите xrandr, он выдаст нечто вроде:
$ 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 можно узнать текущее разрешение экрана и частоту развертки
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 - http://ftp.gnome.org/pub/GNOME/sources/alacarte/
Распаковываем тему с курсорами в ~/.icons или /usr/share/icons, а в ~/.Xdefaults добавляем строчку Xcursor.theme: your_theme_name и перезапускаем X-сервер
http://wiki.fantoo.ru/index.php/HOWTO_GTK1_with_UTF8
Об этом рассказывается здесь: http://ru.gentoo-wiki.com/HOWTO_Emacs_%D0%B8_utf8 Можно добавить, что потребуется перезагрузка X-сервера, чтобы вступили в действие изменения в ~/.Xresources
export FLASH_GTK_LIBRARY=libgtk-x11-2.0.so.0
Добавьте эту команду в ~/.bash_profile или /etc/profile
Настройки шрифтов и цвета хранятся в файле ~/.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
Нужно поставить соответствующий плагин для Mplayer. Лежит он здесь
Для начала воткнем камеру в компьютер и посмотрим на вывод команды 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. Узнайте, как устанавливаются дополнительные модули в вашем дистрибутиве. Для Fedora 8 с подключенным репозиторием livna это делается так:
[jackill@mobile ~]$ sudo yum install kmod-gspca
Должны установиться пакеты kmod-gspca и gspca.
Запускаем skype, заходим в раздел Настройки->Видеоустройства (Settings->Video Devices) и на камере нажимаем кнопку Проверка (Test). Все должно работать.
Если вы уже проверили свой микшер, значит, скорее всего skype не работает с вашей звуковой подсистемой (программным микшером, если он установлен). Примером такой системы является pulse audio (работающая, например, в Fedora 8). На момент марта 2008 года skype не умеет с ней работать (также, как и многий другой софт). Ее придется отключить.
В случае работы c голой alsa вполне хватит выставить в skype устройства ввода и вывода по умолчанию (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 и [url url="http://linuxdoc.ru/HOWTO/mini/Visual-Bell.html]
В ядрах серии 2.6.х можно просто не собирать поддержку для pc speaker.
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
Воспользуйтесь командой nice. Чтобы понизить приоритет, напишите нечто вроде:
user@linux$ nice -n 10 myprogram
Подробности можно узнать, набрав man nice
Нужны утилиты отсюда, сама утилита называется taskset. Прочитать обо всем можно здесь: http://www.kernel.org/pub/linux/kernel/people/rml/cpu-affinity/README-cpu-affinity
Посмотреть на каком процессоре выполняется задача можно с помощью обычной утилиты top
man tar в районе -M. Либо man split и натравить split на tar.gz.
cat file.txt|iconv -f cp1251 -t koi8r >> file2.txt
Есть несколько способов (и программ).
Первый: в терминале задаем переменную 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;
}
Запись в avi - http://sourceforge.net/projects/xvidcap
Запись в ogg theora - http://live.gnome.org/Istanbul и http://recordmydesktop.iovar.org. Последний имеет фронтенды на GTK2 и Qt4
Запись VNC - http://www.sodan.org/%7Epenny/vncrec
Есть такая вещь под названием xosd. Для XMMS есть специальный плагин
Например, воспользоваться программой root-tail.
В файл ~/.bashrc добавьте строку "export HISTCONTROL=ignoreboth" (без кавычек)
Небольшой исторический экскурс: Вплоть до версии 8.4 библиотеки Tk для отрисовки шрифтов использовал традицонный способ системы X11. Это выражалось в том, что ни о каком сглаживании шрифтов даже не приходилось и мечтать. Кроме того, существовал баг с подбором шрифтов для кириллицы, в результате чего русскоязычный текст выглядел ужасно, что можно наблюдать на старых скриншотах tkabber-а.
Но с версии Tk 8.5 дело кардинально изменилось. Теперь для отрисовки шрифтов используется библиотека Xft (та же, что и в Qt). То есть можете смело бросать камень в того, кто скажет, что шрифты в 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
Путь к опции состоит из имени приложения и пути до конкретного экземпляра виджета, разделённых точками. Допускается использование '*' для подстановки любого набора символов (как в Shell).
Если название элемента списка начинается с маленькой буквы, то под настройку попадает только конкретный виджет с данным именем. Иначе -- весь класс виджетов. Для 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
Настраиваем разом все шрифты(Terminus 10):
*font: Terminus 10
Если используется Tk<=8.4, lesstif или другие древние тулкиты, то шрифты для совместимости лучше задавать в иксовом формате. Например:
*font: -*-liberation.sans-medium-r-*-*-11-*-*-*-*-*-*-
Для применения настроек надо полученный файл скормить на вход команде xrdb:
cat options | xrdb -merge
Хорошей идеей будет добавить эту команду в скрипты, выполняющиеся при запуске оконной среды или же поместить конфигурацию непосредственно в ~/.Xresources.
Если используется KDE и поставлена галка "применять цвета к приложениям не из KDE", то при запуске среды некоторые X-ресурсы устанавливаются кедами. И это не всегда хорошо, т.к. там определяется ресурс "*background". Так что это поведение неплохо бы отключить.
Ещё о X Resources и их влиянии на внешний вид приложений можно почитать тут.
3. Для настройки дефолтной темы для библиотеки Ttk/Tile, используйте X-ресурс tkTheme:
*tkTheme: clam
Стандартный набор тем для X11: default(строгая тема), classic(тема в стиле Motif), alt(тема в стиле Window$ 95), clam(гламурная тема с округлыми кнопочками).
Также существуют темы для Tile, использующие виджеты Qt или Gtk.
4. Если сделали всё вышеперечисленное, но шрифты до сих пор страшные (так иногда бывает в убунте), то, увы, придётся редактировать вызываемую программу или добавлять следующий Tcl-скрипт в её конфигурационный файл:
foreach f {TkDefaultFont TkTextFont TkFixedFont TkMenuFont TkHeadingFont
TkCaptionFont TkSmallCaptionFont TkIconFont TkTooltipFont} {
font configure $f -family Terminus -size 10
}
Разумеется, вместо Terminus 10 можно вставить любой шрифт.
Посмотрите здесь: http://forum.ubuntu.ru/index.php?topic=20729.0