Comments 58
Тайлинг нужен был, когда один монитор: тогда приходилось держать в фокусе сразу несколько приложений. Сейчас, например, у меня 3 монитора и куда проще открывать все нужно в фулскрине. Поэтому, обхожусь гномом.
Но вообще тема интересная. В свое время, пользовался dwm+gentoo.
Но вообще тема интересная. В свое время, пользовался dwm+gentoo.
0
Чур не смеяться, но я с помощью тайлинга собираю себе вказиудобные псевдо-IDE:
1) Сверху-слева несколько vim во вкладках для редактирования кода (когда же я освою табы в нем!), справа-сверху консоль для вывода результатов эксперимента, снизу консоль сборки и правки файлов с настройками эксперимента.
2) слева evince с готовой pdf, справа vim для редактирования tex и консоль для сборки tex в pdf снизу.
И это не тормозит на нетбуке в отличие от Eclipse или Kile.
1) Сверху-слева несколько vim во вкладках для редактирования кода (когда же я освою табы в нем!), справа-сверху консоль для вывода результатов эксперимента, снизу консоль сборки и правки файлов с настройками эксперимента.
2) слева evince с готовой pdf, справа vim для редактирования tex и консоль для сборки tex в pdf снизу.
И это не тормозит на нетбуке в отличие от Eclipse или Kile.
+2
Расставляешь окна по своим местам руками каждый раз? Или скрипт какой используешь?
0
Расставляю пока вручную. Хотя надо и правда скрипт написать
0
А знаешь как программно манипулировать окнами в i3wm? Мне это очень надо, но пока не нашел как…
0
Насколько я понял из видео с GoogleTechTalks, можно получить управление с помощью i3wm.org/docs/ipc.html
Также он говорил про управление из консоли через передачу параметров i3-input
Сам не пробовал, фантазирую
Также он говорил про управление из консоли через передачу параметров i3-input
Сам не пробовал, фантазирую
0
Накопал щас управление. Команда focus ключевая, перемещается и изменяет размер только окно в фокусе (костыль?).
0
Поставил линукс тайлинговый оконный менеджер — напиши на Хабре!
+6
Теперь ждем статей про dwm :)
0
+3
UFO just landed and posted this here
Это какие например? У меня i3 все диалоги (которые именно диалоговые, а не обычные окна) открывает в плавающем слое.
0
Добавьте эту строчку в конфиг i3wm и диалоговое окно Nautilus'а (Действия над файлами) будет по умолчанию не во весь экран.
for_window [class="^Nautilus$" instance="^file_progress$"] floating enable
0
А как бы сделать так, что бы рестарте i3 у меня не дох xxkb?
0
Думал он избавит меня от мучений с интерфейсом skype, gimp, lazarus, но нифига. Старательно настроенную конфигурацию контейнеров для каждого приложения он не запоминает. Остальные его преимущества перед не тайловыми WM для меня не существенны.
0
Это да, этого недостает.
После прочтения документации, пытался настроить запуск Skype'а таким образом:
Но команды move и resize не работают с assign =(
Или я плохо документацию читал? Как еще можно настроить положение и размеры окон на определенном рабочем месте при загрузке?
После прочтения документации, пытался настроить запуск Skype'а таким образом:
assign [class="^SkypeTab$" instance="^SkypeTab$"] border none
assign [class="^SkypeTab$" instance="^SkypeTab$"] move up
assign [class="^SkypeTab$" instance="^SkypeTab$"] resize shrink down 32 px or 32 ppt
Но команды move и resize не работают с assign =(
Или я плохо документацию читал? Как еще можно настроить положение и размеры окон на определенном рабочем месте при загрузке?
0
upd:
Два последних assign в предыдущем примере это for_window (перепутал).
И вот так работает:
— фокусируемся на окне, поднимаем его вверх, изменяем размер и перемещаем фокус на рабочий стол «1: desktop».
Два последних assign в предыдущем примере это for_window (перепутал).
И вот так работает:
for_window [class="^SkypeTab$" instance="^SkypeTab$"] focus; move up; resize shrink down 30 px or 30 ppt; workspace 1: desktop
— фокусируемся на окне, поднимаем его вверх, изменяем размер и перемещаем фокус на рабочий стол «1: desktop».
0
переключение на русскую раскладку по Alt+Shift
Хм, а я думал, что мода использовать бесполезную клавишу CapsLock для переключения раскладки уже везде победила. ;)
+2
победила! :)
0
Мне очень понравилось использовать как модификатор Win-клавишу. И запомнить ее очень просто — все «оконные» функции доступны через Windows-клавишу.
Особо приятно по Win-Esc окна закрывать.
Особо приятно по Win-Esc окна закрывать.
0
Я раскладки переключаю не используемым мной правым ctrl. а на капс куда удобнее поставить функцию левого ctrl.
0
Поставил почти как на маке: alt+space, привык моментально, менять не собираюсь.
А использовать клавишу-которую-нельзя-нажимать вообще стараюсь не использовать.
А использовать клавишу-которую-нельзя-нажимать вообще стараюсь не использовать.
0
Читая цикл про тайлинговые менеджеры так и не понял в чем их преимущество именно для GUI приложений. На скринах и видео — консоль. Для консоли есть Terminator и tmux, которые позволяют совместить тайлинг с удобствами классических DE. Переключиться из окна браузера в Terminator можно хоткеями. Виртуальные рабочие столы тоже можно создать столько, сколько нужно и без тайлинга и опять же, перемещаться между ними с помощью хоткеев. Возможно в одном рабочем пространстве браузер и мультиконсоль совместить:
ubuntuone.com/3MoUHwDNyLapJL8Mk3eCVa
На моем скрине: вверху хром, внизу открыт Terminator с разделенным по вертикали экраном.
Разделение экрана выполнено с помощью Unity(Compiz): Chrom поднят вверх и сжат до 50% экрана — Ctrl+Alt+8(NumLock), Terminator опущен вниз и сжат до 50% экрана — Ctrl+Alt+2(NumLock). Terminator разделен пополам вертикально — Ctrl+Shift+E.
ubuntuone.com/3MoUHwDNyLapJL8Mk3eCVa
На моем скрине: вверху хром, внизу открыт Terminator с разделенным по вертикали экраном.
Разделение экрана выполнено с помощью Unity(Compiz): Chrom поднят вверх и сжат до 50% экрана — Ctrl+Alt+8(NumLock), Terminator опущен вниз и сжат до 50% экрана — Ctrl+Alt+2(NumLock). Terminator разделен пополам вертикально — Ctrl+Shift+E.
0
В KDE теперь тоже есть тайловый режим, но на 4.7 работал он плохо. Для меня основное преимущество тайловых менеджеров в их ресурсоёмкости. Я плавно переходил на нетбуке KDE->Gnome->Unity->Xfce->[Awesome/i3] и только в их случае он перестал тормозить при 5 открытых djvu книгах и браузере.
Обычно раскладка окон в тайловых менеджерах более эффективна с точки зрения использования экранного пространства. Да, я согласен, что можно подкрутить и Gnome так, что у него не будет заголовков окон и т.д. Можно в i3 пользоваться плавающими окнами.
В общем, преимущество в производительности и личных предпочтениях, имхо.
Обычно раскладка окон в тайловых менеджерах более эффективна с точки зрения использования экранного пространства. Да, я согласен, что можно подкрутить и Gnome так, что у него не будет заголовков окон и т.д. Можно в i3 пользоваться плавающими окнами.
В общем, преимущество в производительности и личных предпочтениях, имхо.
0
А как же видео с Google Tech Talk? Всяко лучше, чем кратенькая статья, не раскрывающая в полной мере все прелести i3. Благо рассказчик подготовлен очень хорошо — ни единой заминки за всю презентацию.
0
Не забудьте про автозапуск gnome-settings-daemon, чтобы был корректный рендеринг шрифтов, а на ноутбуках работали сочетания клавиш с Fn.
+1
А зачем добавлять setxkbmap в «.xsessionrc». Настройкам переключения раскладки клавиутуры самое место в «/etc/default/keyboard».
0
Небольшие выдержки из моего конфига i3wm.
Gedit, Nautilus, диалог Nautilus'а «Действия над файлами» и лаунчер Gmrun по-умолчанию в флоат режиме:
Сделать скриншот:
Управление громкостью клавишей Win+плюс\минус:
От трея отказался, статус-бар выглядит так (conky через dzen2 и скрипты на python):
1 — Индикатор Dropbox'a (On\Off\Sunc)
2 — Mail информер
3 — Cpu и Ram
4 — Громкость
5 — Дата
* если кому-нибудь надо, выложу конфиги.
___________________
Для получения значений class и instance окна использую утилиту xprop:
Gedit, Nautilus, диалог Nautilus'а «Действия над файлами» и лаунчер Gmrun по-умолчанию в флоат режиме:
for_window [class="^Gedit$" instance="^gedit$"] floating enable
for_window [class="^Nautilus$" instance="^nautilus$"] floating enable
for_window [class="^Nautilus$" instance="^file_progress$"] floating enable
for_window [class="^Gmrun$" instance="^gmrun$"] floating enable
Сделать скриншот:
bindsym Print exec scrot 'f%Y-%m-%d-%s_$wx$h.png' -e 'mv $f /home/UserName/Scrot/'
Управление громкостью клавишей Win+плюс\минус:
bindsym $mod+KP_Add exec amixer -c 0 sset PCM,0 5+
bindsym $mod+KP_Subtract exec amixer -c 0 sset PCM,0 5-
От трея отказался, статус-бар выглядит так (conky через dzen2 и скрипты на python):
1 — Индикатор Dropbox'a (On\Off\Sunc)
2 — Mail информер
3 — Cpu и Ram
4 — Громкость
5 — Дата
* если кому-нибудь надо, выложу конфиги.
___________________
Для получения значений class и instance окна использую утилиту xprop:
$ xprop | grep "WM_CLASS(STRING)"
+1
Выложите конфиги пожалуйста
0
~/.i3/config
...
bar {
#status_command i3status
status_command conky -c ~/.i3/i3conky.conf | dzen2 -h '17' -w '600' -x '1317' -y '1062' -bg '#3c3b37' -ta 'rm'
position bottom
tray_output none
colors {
background #3c3b37
statusline #dfd5c8
# focused_workspace #ffffff #285577
# active_workspace #ffffff #333333
inactive_workspace #dfd5c8 #222222
# urgent_workspace #ffffff #900000
}
}
...
~/.i3/i3conky.conf
background no
out_to_x no
out_to_console yes
update_interval 1
TEXT
${execpi 5 ~/.i3/i3script/dropbox.py} ${execpi 600 ~/.i3/i3script/mail.py} ^fg(\#75dcff)Cpu $cpu% - Ram $memperc%^fg() ^fg(\#87ff73)Vol ${execpi 1 amixer -c 0 sget PCM | grep -o "Left.*Playback.*" | grep -o "[0-9]*%"}^fg() ^fg(\#ffa24e)${time %A %d %B %I:%M}^fg()
~/.i3/i3script/dropbox.py
#!/usr/bin/env python
# coding: utf-8
from subprocess import Popen, PIPE
status = {'Dropbox isn\'t running!': '^fg(\#ea2121)Off^fg()',
'/home/user/Dropbox: up to date': 'On',
'/home/user/Dropbox: syncing': '^fg(\#87ff73)Sync^fg()'}
def get_status():
pp = Popen('dropbox filestatus /home/user/Dropbox', shell=True, stdout=PIPE).stdout.read().replace('\n', '')
return status[pp]
print get_status()
~/.i3/i3script/mail.py
#!/usr/bin/env python
# coding: utf-8
import pycurl, StringIO, re
username = 'login'
password = 'pass'
def get_mail():
data = StringIO.StringIO()
curl = pycurl.Curl()
curl.setopt(pycurl.WRITEFUNCTION, data.write)
curl.setopt(pycurl.URL, 'https://'+username+':'+password+'@mail.google.com/mail/feed/atom')
try:
curl.perform()
except:
return False
mail = re.findall('<fullcount>(.*)</fullcount>', data.getvalue())[0]
if mail != '0': return '^fg(\#ea2121)Mail %s^fg()' % (mail)
else: return 'Mail 0'
print get_mail()
0
>никаких дополнительных настроек.
>Настроем их работу в паре:
Так нужно настраивать или из коробки работает?
>Настроем их работу в паре:
Так нужно настраивать или из коробки работает?
0
Awesome, xmonad, i3 что из этого дружественней к пользователю?
0
Может у вас какой-то особенный /bin/sh, но в моём после exec ничего не выполняется. Я про вот этот кусок кода:
#!/bin/sh
exec setxkbmap «us,ru» ",winkeys" «grp:alt_shift_toggle» &
dropbox start &
Вот подтверждение:
% cat ~/tmp/exectest.sh
#!/bin/sh
exec echo 'setxkbmap «us,ru» ",winkeys" «grp:alt_shift_toggle» &'
echo 'dropbox start &'
% /bin/sh ~/tmp/exectest.sh
setxkbmap «us,ru» ",winkeys" «grp:alt_shift_toggle» &
%
Как видите, отработала только одна команда echo.
А вот выдержка из руководства (http://unixhelp.ed.ac.uk/CGI/man-cgi?sh):
exec [-cl] [-a name] [command [arguments]]
If command is specified, it replaces the shell. No new process
is created. The arguments become the arguments to command. If
the -l option is supplied, the shell places a dash at the begin-
ning of the zeroth arg passed to command. This is what login(1)
does. The -c option causes command to be executed with an empty
environment. If -a is supplied, the shell passes name as the
zeroth argument to the executed command. If command cannot be
executed for some reason, a non-interactive shell exits, unless
the shell option execfail is enabled, in which case it returns
failure. An interactive shell returns failure if the file can-
not be executed. If command is not specified, any redirections
take effect in the current shell, and the return status is 0.
If there is a redirection error, the return status is 1.
#!/bin/sh
exec setxkbmap «us,ru» ",winkeys" «grp:alt_shift_toggle» &
dropbox start &
Вот подтверждение:
% cat ~/tmp/exectest.sh
#!/bin/sh
exec echo 'setxkbmap «us,ru» ",winkeys" «grp:alt_shift_toggle» &'
echo 'dropbox start &'
% /bin/sh ~/tmp/exectest.sh
setxkbmap «us,ru» ",winkeys" «grp:alt_shift_toggle» &
%
Как видите, отработала только одна команда echo.
А вот выдержка из руководства (http://unixhelp.ed.ac.uk/CGI/man-cgi?sh):
exec [-cl] [-a name] [command [arguments]]
If command is specified, it replaces the shell. No new process
is created. The arguments become the arguments to command. If
the -l option is supplied, the shell places a dash at the begin-
ning of the zeroth arg passed to command. This is what login(1)
does. The -c option causes command to be executed with an empty
environment. If -a is supplied, the shell passes name as the
zeroth argument to the executed command. If command cannot be
executed for some reason, a non-interactive shell exits, unless
the shell option execfail is enabled, in which case it returns
failure. An interactive shell returns failure if the file can-
not be executed. If command is not specified, any redirections
take effect in the current shell, and the return status is 0.
If there is a redirection error, the return status is 1.
0
Вытащите амперсанд из-под кавычек, его передавать exec не надо:
#!/bin/sh
exec echo 'setxkbmap «us,ru» ",winkeys" «grp:alt_shift_toggle» '&
echo 'dropbox start' &
Тогда выполнятся обе строки:
$ ./exectest.sh
$ dropbox start
setxkbmap «us,ru» ",winkeys" «grp:alt_shift_toggle»
#!/bin/sh
exec echo 'setxkbmap «us,ru» ",winkeys" «grp:alt_shift_toggle» '&
echo 'dropbox start' &
Тогда выполнятся обе строки:
$ ./exectest.sh
$ dropbox start
setxkbmap «us,ru» ",winkeys" «grp:alt_shift_toggle»
0
Ну если так, то конечно будет две строки на выходе, т.к. exec выполниться в порождённом процессе, а не в текущем. Но объясните мне — а какой тогда смысл писать «exec»? Или ещё лучше — какой смысл в одной строке написать, а в другой — нет? Ведь по сути обе строки отработают одинаково — каждая породит новый процесс, который что-то там сделает и тихо завершится, никак не влияя на родительский.
Совершенно другое дело, если бы запуск Иксов делался бы по-дедовски, с помощью startx и .xinitrc — вот там использовать exec для запуска оконного менеджера было необходимо, и естественно, эта команда была последней.
Может всё-таки расскажете, откуда вы взяли exec? И зачем понатыкали амперсандов? Ну ладно, для дропбокса — не спорю, но для setxkbmap зачем???
Совершенно другое дело, если бы запуск Иксов делался бы по-дедовски, с помощью startx и .xinitrc — вот там использовать exec для запуска оконного менеджера было необходимо, и естественно, эта команда была последней.
Может всё-таки расскажете, откуда вы взяли exec? И зачем понатыкали амперсандов? Ну ладно, для дропбокса — не спорю, но для setxkbmap зачем???
0
У этого wm есть tray?
0
Есть. Но через некоторое время понимаешь, что трей вообще не нужен.
+1
Он нужен для Skype, например.
0
и часов
0
Вот так выглядит статус-бар (conky через dzen2 и скрипты на python):
1 — Индикатор Dropbox'a (On\Off\Sunc)
2 — Mail информер
3 — Cpu и Ram
4 — Громкость
5 — Дата
1 — Индикатор Dropbox'a (On\Off\Sunc)
2 — Mail информер
3 — Cpu и Ram
4 — Громкость
5 — Дата
0
Ага, вы (или не вы) где-то рядом это уже показывали. Я пока не готов тратить 100 МБ памяти на коньки + еще метров N на python + dzen2.
Я пользуюсь Skype, который можно убить или через killall -9 skype или через менюшку в трэйе.
В i3bar есть поддержка трея (+ вход с stdin).
Я пользуюсь Skype, который можно убить или через killall -9 skype или через менюшку в трэйе.
В i3bar есть поддержка трея (+ вход с stdin).
0
conky - 640 КиБ
dzen - 244 КиБ
0
Хм. Я что-то делаю не так :)
0
Запускается так:
А сам конфиг такой:
bar {
...
status_command conky -c ~/.i3/i3conky.conf | dzen2 -h '17' -w '600' -x '1317' -y '1062' -bg '#3c3b37' -ta 'rm'
...
}
}
А сам конфиг такой:
background no
out_to_x no
out_to_console yes
update_interval 1
TEXT
${execpi 5 ~/.i3/i3script/dropbox.py} ${execpi 600 ~/.i3/i3script/mail.py} ^fg(\#75dcff)Cpu $cpu% - Ram $memperc%^fg() ^fg(\#87ff73)Vol ${execpi 1 amixer -c 0 sget PCM | grep -o "Left.*Playback.*" | grep -o "[0-9]*%"}^fg() ^fg(\#ffa24e)${time %A %d %B %I:%M}^fg()
+1
Skype на отдельном рабочем месте «IM» (вместе с Pidgin'ом) — сворачивать\разворачивать ничего не надо.
Skype'у трей для чего-то еще надо?
P.S. Но повторюсь, трей есть из коробки.
Skype'у трей для чего-то еще надо?
P.S. Но повторюсь, трей есть из коробки.
0
Sign up to leave a comment.
Тайловый оконный менеджер i3