Планета Calculate

Облако тэгов

blog wiki qutim bonding bond канал calculate2 ldap cds mail hdd smart flashplayer alsa db маршрутизатор iptables полезное новости optimization emerge grub grub2 загрузка загрузчик перенесено cls CDS домашний сервер linux tbn calculate livecd cld uptime calculate linux bsa games templates шаблоны vpn tun tap ssh доступ удаленная сеть pptp samba winbind calculate-sources kernel update LVM ПО оптимизация репозиторий portage сеты EAPI 2 release ДНК DNA calculate 2.2 fonts шрифт сглаживание CLDX packages overlay CLD Calculate Gnome Desktop Office CLDG cldg gentoo postfix mailman maillist разработка kde и многопоточный звук CLS irc профиль пользователя рассылка wget многопоточная закачка calculate-install пресса news press screenshot gnome win7 theme Windows 7 установка calculate-install-gui developers костыли birthday серые листы почта Spamassassin twitter iphone интернет blueman bluetooth benchmark benchmarking facebook GSC CSS sony vaio template CDS dns dhcp wi-fi network XFCE autologin nouveau book install syslog authentication internet USE meta package builder recordmydesktop pitivi ffmpeg ubuntu debian windows stage desktop кеширование binary CMC BINHOST BugTracker live-flash MultiTail udev bittorrent acl tracker mirrorselect vim bash-completion помощь участие распространение openldap weechat binhost torrent mirror PowerTOP Midnight Commander bash командная строка mp3 cp1251 UTF-8 dropbox kde xfce textile dwm chromium интервью elogv udisks udisks-glue ccze grc most tail handbook calculate utilities make.conf man apvlv pdf djvu umd plugn #calculatelinux euse openrc NetworkManager dns python cairo-dock glx-dock windows 7 rtorrent rutorrent flags strategy X Xorg ati ati-drivers 11.6 udisks ntfs-3g team jabber pastebin video donation Gnome3 canto ncurses RSS reader cmc lirc ПДУ xbmc Audio sound pulseaudio history foto VirtualBox Calculate Linux world openbox xchat tint tint2 slim feh obconf obmenu xxkb nm-applet автологин брелок bug autounmask package unmasking nut lighttpd ups atheros9285 atheros asus Zen оптимизация ядра lvm raid btrfs p2p linuxdcpp Calculate Utilities перемещаемые профили xorg установка linux настройка linux оптимизация linux asus n10j двойная загрузка atom n270 dhcp KDE MidnightCommander kde vlc smplayer mplayer настройка цветов монитора настройка цветов фотоаппарата настройка цветов принтера настройка цветов сканера цветовой профиль icc locale localepurge Atheros Calculate Linux Enlightenment E17 Calculate Calculate E17 mc swap ParaType font глобальное меню git ускорение keyboard layout pwkl proxy profile E17 backdor vulnerability безопасность firefox звук hdmi TV mouse клавиатура мышка радио mpg123 ppp0 net ядро xsel gnome3 Скоростной алгоритм сжатия LZ4 acoola Calculate USB Creator видео screencast 1C postgresql apache pam security pxe aufs calculate3 midori кодировка CP1251 Summer Camp beta начало блог описание python3 Icon programming установка Icon в Calculate фидонет фидо linux icon распространение программ утилитки на Icon nano подсветка синтаксиса создание подсветки синтаксиса день программиста ratigan монитор экран разрешение persistence persistence-mode liveusb livedvd remoteapp freerdp w2k3 w2k8 keyexec radeon AMD pf-kernel pre code documentation форматирование текста fontconfig lcdfilter fonts шрифты DPI qrencode qr-code xfce cl-console-bg screensaver caffeine курсор мыши unclutter steam valve objecticon сборка из исходников mencoder Firefox ext4 e4rat gnome 2 tuxonice hibernate uefi сайт github dvcs Либрусек MyRuLib Библиотека Книги сервер xen виртуализация google talk-plugin dmix звуковые карты rip GPT EFI CL14 SSD производительность обмен опытом mate cldm alpha shorewall firewall clementine dmidecode tools CSC dhcpcd networking pgo АТС asterisk revision Tor lautre lm_sensors monitoring temperature cl-update-profile minicom 3G 4G LTE Huawei cl cpu family utilities eudev systemd cl-kernel браузер tweaks RT zswap uksm nexus android bootchart OpenRC systemd-udevd new MATE dconf features CLDM abi_x86_32 kde5 KDE5 Plasma CLSK freshplayerplugin otter QupZilla openssh ControlMaster Снобизм XZ kernek qupzilla calculate-utils работа вакансия программист android kde mtp ebuild CLSL день рождение CLDL CLDC Cinnamon calculate linux antivirus free помощь проекту calculate utils реестр icons browser cl-builder Compose unicode ini.env su sudo CL17 план plan luks cryptsetup codelite cpp support forum форум lto howto дизайн Timeless тема gcc power energy saving CLC LXC LXD distro container telegram repo libvirt kvm qemu rdp automagic softraid muqss pae x86 markdown dnscrypt server vps openvpn calculate-access lxc-desktop CCDX xmpp reestr nextcloud zstd LXQt CLDXE xpak firmware instagram plymouth matrix IRC Matrix XMPP bridge

DWM сверх легкий, сверх быстрый оконный менеджер

Добавил(а) Aleksey Vasilyevich больше 14 лет назад

dwm

Dynamic Window Manager - Динамический Менеджер Окон

DWM сверх легкий оконный менеджер, в нем нет привычных заголовков окна, кнопочек закрытия, сворачивания, разворачивания окон, оформления окон, всяких там красиво выпадающих меню, иконок разноцветных, все это ему не нужно. Большая часть функций, происходит с использованием клавиатуры, все, что он делает -управляет окнами, поэтому DWM еще и помимо сверх легкого менеджера, сверх быстрый, его функционал сам по себе, дисциплинирует пользователя, прививая тем самым, что то вроде хороших манер, проникшись однажды, Вы понимаете, все остальное, что было в других менеджерах, скорее отвлекает, чем помогает в работе, вынуждая своим раздутым функционалом, делать много лишних тело движений. Безусловно, было бы не правильно, да и не объективно сравнивать DWM, например с такими гигантами как KDE и GNOME, эти представители оконного мира,уже давно, предлагают не только управление окнами,но и много другое, тем самым занимая все больше и больше не только пользовательского пространства в окружении рабочего стола, но и места на жестком диске, в оперативной памяти, неистово пожирая системные ресурсы, благо современные машины позволяют это делать, тем кто всей душей любит выше указанных представителей и им подобных. Все что делает DWM, управляет окнами, справляется он со своей задачей на 5+, по пяти бальной шкале.

Внешне DWM выглядит ровно так- как выглядят запущенные программы, которые в свою очередь занимают все рабочее пространство окна, вверху окна есть только небольшая строка состояния, где в левом углу расположены теги (по аналогии с рабочими столами в других менеджерах) они пронумерованы, переключаться между тегами можно используя управляемые клавиши, по умолчанию это Alt+N где N номер/имя тега от 1 до 9, Alt+Tab переключает с активного тега на предыдущий тег, следом идет расположение окон, количество окон в теге, заголовок активного окна.

 

По умолчанию DWM поддерживает три режима расположения окон, плиточный []= для переключения в этот режим, по умолчанию клавиши Alt+T, монокль [M] вместо M будет число окон- клавиши Alt+M и плавающий ><> Alt+F. Все расположения могут быть применены динамически, оптимизируя окружающую среду.

 

В плиточном расположении, окна группируются в две управляемые области, мастер и укладка. Основная область мастер, содержит окно которое в настоящее время Вам нужно, тогда как область укладки,содержит все остальные окна. По умолчанию используется плиточный режим. Если открыто одно окно, оно занимает всю область пользовательского пространства, добавив новое приложение оно занимает область мастер в левой части окна, само же окно разбивается на две колонки, предыдущее приложение переходит в область укладки (правая часть окна) . Изменять размер областей можно только по ширине, управляющими клавишами Alt+H и Alt+L. В правом столбце, в области укладки будут размещаться остальные открытые окна перемещенные из области мастер, пространство в этой области делится вертикально,поровну между всеми приложениями. Перемещать предыдущее приложение из области укладки в область мастер и соответственно приложение из области мастер в область укладки,меняя их расположения местами можно управляющими клавишами Alt+Enter. Ввод Alt+Space для активного окна изменит его режим расположения на плавающий, позволяя этому окну нарушать плиточный режим расположения остальных окон. В этом режиме, можно использовать мышь для перемещения и изменения размеров окна, удерживая Alt и левую кнопку мыши, позволяет перемещать окно, Alt и правая кнопка мыши позволяет изменять размер окна.

 

Нажав Alt+M Вы переключите режим расположение окон- монокль, активное окно займет все рабочее пространство и перекроет все другие открытые окна, запустив новое приложение оно перекроет предыдущие. В независимости от режима расположения окон, с помощью клавиш Alt+J, Alt+K, Вы свободно сможете переключаться между окнами делая окна активными по очереди. Если это режим расположения монокль,то одно окно будет сменять другое, если плиточный режим, то переключится фокус с одного окна на другое, в плавающем режиме все так же, окна будут активными по порядку.

Для перемещения окон между тегами, с одного тега на другой, используйте клавиши Alt+Shift+N где N номер тега в который Вы хотите перенести окно, для того что бы отобразить окно на всех тегах нажмите Alt+Shift+0 и снова Alt+Shift+N где номер тега, что бы отменить действие размещение на всех тегах этого окна, окно будет перемещено в тег N.

Для того что бы запустить консоль, нажмите Alt+Shift+Enter (по умолчанию uxterm, это поправимо, в дальнейшем Вы сможете указать любую другую консоль, если пожелаете) , Alt+P запустит dmenu для запуска приложений которые Вы будете использовать (очень удобная вещь скажу я вам, по мере набора список приложений сокращается приближая к желаемому) , только его надо предварительно установить иначе придется запускать приложения из консоли.

Для того что бы убить приложения Alt+Shift+C
Что бы спрятать строку состояния Alt+B
Что бы завершить работу DWM Alt+Shift+Q

В DWM есть ограничения о которых желательно помнить, если вы находитесь в одном теге с режимом расположения окон плитка или монокль, то переключившись на другой тег, режим расположения будет применен к тегу на который Вы переключились,что бы этого не случилось, нужно поставить режим плавающих окон и только тогда переключатся на другой тег, тогда окна останутся в том виде в каком они находились.(Это поправимо с помощью применения патча pertag )

Для этого cоздаем локальный оверлей:

mkdir -p /var/lib/layman/local/{x11-wm/dwm/files,profiles}
echo "local" > /var/lib/layman/local/profiles/repo_name
echo "PORTDIR_OVERLAY=\"\${PORTDIR_OVERLAY} /var/lib/layman/local\"" >> /etc/make.conf

Скидываем туда файлы из основного дерева portage

cp /usr/portage/x11-wm/dwm/dwm-6.0.ebuild /var/lib/layman/local/x11-wm/dwm/dwm-6.0-r1.ebuild

Версия указана на момент последней правки статьи

cp /usr/portage/x11-wm/dwm/files/* /var/lib/layman/local/x11-wm/dwm/files/

Скачиваем патч и сохраняем его в директорию /var/lib/layman/local/x11-wm/dwm/files/:

wget -P /var/lib/layman/local/x11-wm/dwm/files/ http://dwm.suckless.org/patches/dwm-6.0-pertag.diff

Редактируем ebuild:

/var/lib/layman/local/x11-wm/dwm/dwm-6.0-r1.ebuild

и добавляем в него следующие строки:
eutils к уже существующей переменной inherit

inherit eutils

и в значение существующей переменной src_prepare() добавим:

epatch "${FILESDIR}"/${P}-pertag.diff

Сохраняем и создаем манифест:

ebuild /var/lib/layman/local/x11-wm/dwm/dwm-6.0-r1.ebuild digest

Осталось пересобрать, возможно потребуется пакет предварительно размаскировать если воспользовались патчем:

emerge dwm --autounmask-write

Установка

Установка DWM и DMENU процесс крайне быстрый, установите USE флаг savedconfig, тогда Вы сможете применить изменения внесенные в настройки конфигурационного файла, это еще одна из особенностей DWM, после внесения изменений его нужно заново компилировать (пугаться не надо, процедура крайне быстрая и безболезненная, занимает меньше минуты) :

emerge dwm dmenu

После установки надо создать в пользовательской директории файл для запуска DWM ~/.xinitrc

touche ~/.xinitrc

Для вывода дополнительной информации в строке состояния, нужно добавить приблизительно следующее, здесь Вы сами для себя определяете что хотите, температуру,частоту процессора,время и дату, состояние сети, состояния заряда батареи, запуск приложений и т.д. .

Пример:

#!/bin/sh
exec xscreensaver &
exec urxvt &
exec hsetroot -fill /home/USER/Images/wallpapers.png &
exec /usr/bin/unclutter &

while true; do
    xsetroot -name "$(acpi -bt |awk -vORS=' ' ' /remaining/ {print($4$5)} /Thermal/ { print $4 "°" $6}' |sed -e 's/\.0//g') $(wicd-cli -dy |awk -vORS=' ' '/Essid:/ {print($1$2)} /Quality:/ {print($2)}') Звук:$(amixer -c 0 sget Master |awk '/Mono:/ {print($6$4)}') `skb 1` $(date '+%a %e %b %R')" 
    sleep 1;
done &

exec dwm

В примере выше используется skb простой индикатор раскладки клавиатуры из оверлея stuff.

Или укажите то, что предлагается в конце работы emerge, после установки DWM:

while true 
do
xsetroot -name "`date` `uptime | sed 's/.*,//'`"
sleep 1s
done &
exec dwm

Настройка

DWM использует шрифты из xorg.conf указанные в Section "Files". Для нормального отображения кириллицы/нужного вам шрифта, необходимо указать пути к шрифтам в файле /etc/X11/xorg.conf. Для шрифта terminus указываем путь FontPath "/usr/share/fonts/terminus".
Пример:

Section "Files" 
FontPath "/usr/share/fonts/corefonts"
FontPath "/usr/share/fonts/misc"
FontPath "/usr/share/fonts/droid"
FontPath "/usr/share/fonts/terminus"
EndSection

Далее, к требуемым шрифтам, по аналогии, и не забудьте собрать пакет media-fonts/terminus-font с USE флагом X, возможно потребуется указать дополнительные флаги. Для подбора подходящего Вам шрифта используйте программу xfontsel, установить ее можно как и все прочии программы в Calculate, используя emerge.

emerge  xfontsel

запуск программы:

xfontsel

Файл конфигурации DWM /etc/portage/savedconfig/x11-wm/dwm-6.0

/* See LICENSE file for copyright and license details. */

/* appearance */
static const char font[]            = "-*-terminus-medium-r-*-*-16-*-*-*-*-*-*-*";
static const char normbordercolor[] = "#444444";
static const char normbgcolor[]     = "#222222";
static const char normfgcolor[]     = "#bbbbbb";
static const char selbordercolor[]  = "#005577";
static const char selbgcolor[]      = "#222222";
static const char selfgcolor[]      = "#005577";
static const unsigned int borderpx  = 1;        /* border pixel of windows */
static const unsigned int snap      = 32;       /* snap pixel */
static const Bool showbar           = True;     /* False means no bar */
static const Bool topbar            = True;     /* False means bottom bar */

/* tagging */
static const char *tags[] = { "1", "2", "3", "4", "5", "6", "7", "8", "9" };

static const Rule rules[] = {
    /* xprop(1):
     *    WM_CLASS(STRING) = instance, class
     *    WM_NAME(STRING) = title
     */
    /* class      instance title      tags mask     isfloating   monitor */
    { "MPlayer",  NULL,    NULL,      0,            True,        -1 },
    { "Skype",    NULL,    NULL,      0,            True,        -1 },
    { "Gimp",     NULL,    NULL,      0,            True,        -1 },
    { "Gpicview", NULL,    NULL,      0,            False,       -1 },
    { "Firefox",  NULL,    NULL,      0,            False,       -1 },
    { "Spacefm",  NULL,    NULL,      0,            False,       -1 },
    { "URxvt",    NULL,    NULL,      0,            False,       -1 },
    { "Dwb",      NULL,    NULL,      1 << 1,       False,       -1 },
    { NULL,       NULL,    "mc",      0,            False,       -1 },
    { NULL,       NULL,    "irssi",   1 << 3,       False,       -1 },
    { NULL,       NULL,    "mcabber", 1 << 2,       False,       -1 },
    { "Zathura",  NULL,    NULL,      1 << 5,       False,       -1 },
    { NULL,       NULL,    "cmus",    1 << 6,       False,       -1 },
    { NULL,       NULL,    "newsbeuter",   1 << 7,       False,       -1 },
    { NULL,       NULL,    "rtorrent",   1 << 8,       False,       -1 },
};

/* layout(s) */
static const float mfact      = 0.55; /* factor of master area size [0.05..0.95] */
static const int nmaster      = 1;    /* number of clients in master area */
static const Bool resizehints = True; /* True means respect size hints in tiled resizals */

static const Layout layouts[] = {
    /* symbol     arrange function */
    { "[]=",      tile },    /* first entry is default */
    { "><>",      NULL },    /* no layout function means floating behavior */
    { "[M]",      monocle },
};

/* key definitions */
#define MODKEY Mod4Mask
#define TAGKEYS(KEY,TAG) \
    { MODKEY,                       KEY,      view,           {.ui = 1 << TAG} }, \
    { MODKEY|ControlMask,           KEY,      toggleview,     {.ui = 1 << TAG} }, \
    { MODKEY|ShiftMask,             KEY,      tag,            {.ui = 1 << TAG} }, \
    { MODKEY|ControlMask|ShiftMask, KEY,      toggletag,      {.ui = 1 << TAG} },

/* helper for spawning shell commands in the pre dwm-5.0 fashion */
#define SHCMD(cmd) { .v = (const char*[]){ "/bin/bash", "-c", cmd, NULL } }

/* commands */
static const char *dmenucmd[] = { "dmenu_run", "-fn", font, "-nb", normbgcolor, "-nf", normfgcolor, "-sb", selbgcolor, "-sf", selfgcolor, NULL };
static const char *termcmd[]  = { "urxvt", NULL };
static const char *dwbcmd[]  = { "dwb", NULL };
static const char *irssicmd[]  = { "urxvt", "-title", "irssi", "-e", "irssi",  NULL };
static const char *mccmd[]  = { "urxvt", "-title", "mc", "-e", "mc",  NULL };
static const char *mcabbercmd[]  = { "urxvt", "-title", "mcabber", "-e", "mcabber",  NULL };
static const char *zathuracmd[]  = { "zathura", NULL };
static const char *cmuscmd[]  = { "urxvt", "-title", "cmus", "-e", "cmus",  NULL };
static const char *newsbeutercmd[]  = { "urxvt", "-title", "newsbeuter", "-e", "newsbeuter",  NULL };
static const char *rtorrentcmd[]  = { "urxvt", "-title", "rtorrent", "-e", "rtorrent",  NULL };

static Key keys[] = {
    /* modifier                     key        function        argument */
    { MODKEY,                       XK_p,      spawn,          {.v = dmenucmd } },
    { MODKEY|ShiftMask,             XK_Return, spawn,          {.v = termcmd } },
    { MODKEY|ShiftMask,             XK_d,      spawn,          {.v = dwbcmd } },
    { MODKEY|ShiftMask,             XK_i,      spawn,          {.v = irssicmd } },
    { MODKEY|ShiftMask,             XK_f,      spawn,          {.v = mccmd } },
    { MODKEY|ShiftMask,             XK_m,      spawn,          {.v = mcabbercmd } },
    { MODKEY|ShiftMask,             XK_z,      spawn,          {.v = zathuracmd } },
    { MODKEY|ShiftMask,             XK_a,      spawn,          {.v = cmuscmd } },
    { MODKEY|ShiftMask,             XK_n,      spawn,          {.v = newsbeutercmd } },
    { MODKEY|ShiftMask,             XK_r,      spawn,          {.v = rtorrentcmd } },
    { MODKEY,                       XK_b,      togglebar,      {0} },
    { MODKEY,                       XK_j,      focusstack,     {.i = +1 } },
    { MODKEY,                       XK_k,      focusstack,     {.i = -1 } },
    { MODKEY,                       XK_i,      incnmaster,     {.i = +1 } },
    { MODKEY,                       XK_d,      incnmaster,     {.i = -1 } },
    { MODKEY,                       XK_h,      setmfact,       {.f = -0.05} },
    { MODKEY,                       XK_l,      setmfact,       {.f = +0.05} },
    { MODKEY,                       XK_Return, zoom,           {0} },
    { MODKEY,                       XK_Tab,    view,           {0} },
    { MODKEY|ShiftMask,             XK_c,      killclient,     {0} },
    { MODKEY,                       XK_t,      setlayout,      {.v = &layouts[0]} },
    { MODKEY,                       XK_f,      setlayout,      {.v = &layouts[1]} },
    { MODKEY,                       XK_m,      setlayout,      {.v = &layouts[2]} },
    { MODKEY,                       XK_space,  setlayout,      {0} },
    { MODKEY|ShiftMask,             XK_space,  togglefloating, {0} },
    { MODKEY,                       XK_0,      view,           {.ui = ~0 } },
    { MODKEY|ShiftMask,             XK_0,      tag,            {.ui = ~0 } },
    { MODKEY,                       XK_comma,  focusmon,       {.i = -1 } },
    { MODKEY,                       XK_period, focusmon,       {.i = +1 } },
    { MODKEY|ShiftMask,             XK_comma,  tagmon,         {.i = -1 } },
    { MODKEY|ShiftMask,             XK_period, tagmon,         {.i = +1 } },
    TAGKEYS(                        XK_1,                      0)
    TAGKEYS(                        XK_2,                      1)
    TAGKEYS(                        XK_3,                      2)
    TAGKEYS(                        XK_4,                      3)
    TAGKEYS(                        XK_5,                      4)
    TAGKEYS(                        XK_6,                      5)
    TAGKEYS(                        XK_7,                      6)
    TAGKEYS(                        XK_8,                      7)
    TAGKEYS(                        XK_9,                      8)
    { MODKEY|ShiftMask,             XK_q,      quit,           {0} },
};

/* button definitions */
/* click can be ClkLtSymbol, ClkStatusText, ClkWinTitle, ClkClientWin, or ClkRootWin */
static Button buttons[] = {
    /* click                event mask      button          function        argument */
    { ClkLtSymbol,          0,              Button1,        setlayout,      {0} },
    { ClkLtSymbol,          0,              Button3,        setlayout,      {.v = &layouts[2]} },
    { ClkWinTitle,          0,              Button2,        zoom,           {0} },
    { ClkStatusText,        0,              Button2,        spawn,          {.v = termcmd } },
    { ClkClientWin,         MODKEY,         Button1,        movemouse,      {0} },
    { ClkClientWin,         MODKEY,         Button2,        togglefloating, {0} },
    { ClkClientWin,         MODKEY,         Button3,        resizemouse,    {0} },
    { ClkTagBar,            0,              Button1,        view,           {0} },
    { ClkTagBar,            0,              Button3,        toggleview,     {0} },
    { ClkTagBar,            MODKEY,         Button1,        tag,            {0} },
    { ClkTagBar,            MODKEY,         Button3,        toggletag,      {0} },
};

В завершение скажу лишь о своем впечатлении, DWM стоит того, что бы им пользоваться, это замечательный менеджер, дает возможность сфокусировать внимания на приложениях которыми Вы пользуетесь, не думая об окружении рабочего стола и заморочках связанных с его настройкой, на первый взгляд может показаться, что в настройке, DWM еще более замороченный, возможно, возможно потребуется время на освоение и привыкание, но в Linux все ключевые приложения требуют освоения, да и разве маленькая программка в которой всего лишь 2000 тысячи строк по заявлению авторов, может быть более замороченной чем менеджеры у которых на борту по зависимостям десятки приложений, огромная туча пакетов, пойди разберись что к чему. Спорить не буду, доказывать и убеждать тоже, кто проникся и заинтересовался желаю успехов, кого не зацепило, уверен у Вас есть приложение доставляющие Вам удовольствие и удобство в работе.
Сайт проекта: http://dwm.suckless.org/ а также на русской Gentoo вики есть достаточно подробное описание.

Рекомендуемые приложения:

dwb zathura mcabber cmus newsbeuter rtorrent irssi или weechat sxiv turses

dwm_m.gif (69,93 КБ)

dwm.gif (165,65 КБ)

dwm_plitka_m.gif (47,21 КБ)

dwm_plitka.gif (101,88 КБ)

dwm_monokl_m.gif (68,34 КБ)

dwm_monokl.gif (158,13 КБ)


Комментарии

Comment

Добавил(а) Константин А больше 13 лет назад

пардон, может поможете с одним траблом:
есть н-ное количество консольных приложений - например mutt или newsbeuter
запускается просто
static const char *newscmd[] = { "urxvt", "-bg", "black", "-fg", "white", "-e", "newsbeuter", "-r", NULL };
но вопрос - как привязать его к конкретному тегу?

xprop выводит
WM_CLASS(STRING) = "urxvt", "URxvt"
WM_ICON_NAME(STRING) = "user@host:~"
что не подходит, ибо терминал привязан к отдельному тегу, а по WM_ICON_NAME в отличие от , например, емакса собранного с флагом -Х, не привяжешь

Comment

Добавил(а) Aleksey Vasilyevich больше 13 лет назад

Константин А писал(а):

пардон, может поможете с одним траблом:
есть н-ное количество консольных приложений - например mutt или newsbeuter
запускается просто
static const char *newscmd[] = { "urxvt", "-bg", "black", "-fg", "white", "-e", "newsbeuter", "-r", NULL };
но вопрос - как привязать его к конкретному тегу?


xprop выводит
WM_CLASS(STRING) = "urxvt", "URxvt"
WM_ICON_NAME(STRING) = "user@host:~"
что не подходит, ибо терминал привязан к отдельному тегу, а по WM_ICON_NAME в отличие от , например, емакса собранного с флагом -Х, не привяжешь

Вот так глубоко не копал... а табы urxvt использовать не пробовал, меня устраивало, cmus, mc, weechat, mcabber и все в табах... вот есть идея для ориентира - http://www.gentoo.ru/node/21774 только не спрашивай как это реализовать c urxvt, ибо не пробовал...

Comment

Добавил(а) Aleksey Vasilyevich больше 13 лет назад

Упс! а куда делись все коменты, кто скажет?

Comment

Добавил(а) Константин А больше 13 лет назад

вот так всегда, спросишь что-нибудь, и через какое-то небольшое время сам прекрасно догоняешь, как это сделать )))

как оказалось - ларчик открывался не просто, а очень просто - запускать urxvt с ключом -name <нужное_имя>, а его уже прописывать в title: примерно так

static const char *newscmd[] = { "urxvt", "-bg", "black", "-fg", "white", "-name", "newsbeuter", "-e", "newsbeuter", "-r", NULL }

и правило для него
{ NULL, NULL, "newsbeuter", 1 << 3, False, -1 },

Aleksey Vasilyevich писал(а):

Упс! а куда делись все коменты, кто скажет?

пардон, может сие от того, что я изначальную мессагу раза три правил?

Comment

Добавил(а) Aleksey Vasilyevich больше 13 лет назад

Здорово! думаю пригодится, отличное дополнение... кстати не пробовал на версии dwm 6.0 патч, что бы запоминал раскладку клавиатуры, я его применял на 5.9 http://www.calculate-linux.ru/blogs/show/322

А по поводу коментов, это я перепутал с другой веткой, все смешалось в голове, просто применялось то все на одном компе, а писалось в разных постах :D

Comment

Добавил(а) Константин А больше 13 лет назад

статью в блоге видел, но патч пока не пробовал , так как за ~полторы недели активного пользования dwm проблемы не с этим не возникало. честно говоря - если б не статья , то я бы и не заметил что у dwm с этим трабла
offtop : там еще в portege вкралась очепятка

Comment

Добавил(а) Константин А около 13 лет назад

(заранее пардон если заново открываю Америку)

x11-misc/unclutter - вещь, которой мне люто-бешено не хватало в dwm.
Что делает - скрывает курсор, если мышь не трогали н-ное количество секунд

Comment

Добавил(а) Aleksey Vasilyevich около 13 лет назад

Константин А wrote:

(заранее пардон если заново открываю Америку)

Нет не америку ;) спс, сейчас установлю, поглядеть...

Установил, но продолжаю рефлексировать и тяну курсор всторону с глаз долой, по привычке (это диагноз, подумал Штирлиц):D

Comment

Добавил(а) Константин А около 13 лет назад

ну не знаю я за полдня привык. м.б. время подходящее подобрать - имхо 1 секунда самое оно

Спасибо!