i3wm switch between floating windows

Автор nezabudka, 17 октября 2015, 20:56:07

« назад - далее »

0 Пользователи и 3 гостей просматривают эту тему.

nezabudka

В файле конфигурации прописано действие переключение фокуса между окнами.
Но если запустить несколько плавающих окон то переключение между ними также работает
но они не перемещаются вместе с этим на передний план. Согласитесь не очень удобно если окно
становится активным но при этом оно не меняет свою позицию на верхнюю. Главное что если переключатся
на окна при помощи мыши то все происходит совершенно правильно, окно становится активным и при этом меняет
свою позицию на верхнее окно. Подскажите строчку кода конфиге реализующую данное действие и с клавиатуры.

yura_n

#1
Это действие вероятно: "Фокус следует за мышью"? Я правильно понимаю? Если да, то я не очень хорошо понимаю таких людей. Установить тайлинговый оконный менеджер, чтобы использовать его как обычный... ;D Mod+ клавиши j, k, l, ; используйте.

nezabudka

#2
Цитата: yura_n от 17 октября 2015, 21:10:23
Это действие вероятно: "Фокус следует за мышью"? Я правильно понимаю?
Вы не правильно понимаете. Мне не нужна мышь. С мышью как раз все и работает правильно.
Вопрос в том, ни как переключить фокус между плавающими
окнами, а вопос в том что при переключении на следующее окно с клавиатуры оно не выходит
на передний план и остается закрытым неактивными окнами .  ;D

Cообщение объединено 18 октября 2015, 10:07:26

Цитата: yura_n от 17 октября 2015, 21:10:23
то я не очень хорошо понимаю таких людей. Установить тайлинговый оконный менеджер,
чтобы использовать его как обычный...
Потому что этот мозаичный менеджер позиционируется как комбинированный,
совмещающий в себе функции tiling, floating, tabbed, scratchpad

yura_n

Цитата: nezabudka от 18 октября 2015, 08:34:43а вопос в том что при переключении на следующее окно с клавиатуры оно не выходит
на передний план и остается закрытым неактивными окнами .  ;D
Могу только свой собственный рабочий конфиг выложить. У вас очевидно какая-то проблема с переносом фокуса, но какими опциями вы ее добились не очень понимаю. ;D
Цитата: nezabudka от 18 октября 2015, 08:34:43Потому что этот мозаичный менеджер позиционируется как комбинированный,
совмещающий в себе функции tiling, floating, tabbed, scratchpad
Нет, он только тайлинговый. А то, что вы перечислили, это режимы работы.

nezabudka

Цитата: yura_n от 18 октября 2015, 11:59:10
..Могу только свой собственный рабочий конфиг выложить. У вас очевидно какая-то проблема с переносом фокуса..
i3 установлен у меня на домашнем компе и на нетбуке, работает везде одинаково. Вот мой конфиг
https://github.com/olecya/i3_config.git
Хотелось бы посмотреть на ваш. Помойму вы просто не запускаете несколько плавающих окон
на одном рабочем столе, а потому вам между ними и переключатся не надо.  :'(

yura_n

#5
Вот мой конфиг:

# Установка режима работы.
workspace_layout tabbed

# Фокус следует за курсором мыши.
focus_follows_mouse yes
# Необходимо для корректного переноса фокуса.
force_focus_wrapping yes

# Настройка цветов.
# class                 border  backgr. text    indicator
client.focused          #696969 #797979 #ffffff #2e9ef4
client.focused_inactive #696969 #5f676a #ffffff #484e50
client.unfocused        #696969 #222222 #888888 #292d2e
client.urgent           #696969 #900000 #ffffff #900000

#Запуск приложений в определенном рабочем пространстве
assign [class="Qjackctl"] 7:audio
assign [class="Thunderbird"] 9:mail
assign [class="Gajim"] 10:jabber
assign [class="Audacious"] 7:audio

#Включение плавающего режима для определенных приложений
for_window [class="Qjackctl"] floating enable
for_window [class="Galculator"] floating enable
for_window [class="Truecrypt"] floating enable
for_window [class="Skype"] floating enable
for_window [class="Qalculate-gtk"] floating enable
for_window [class="Xmessage"] floating enable
for_window [class="Gxmessage"] floating enable
for_window [class="Gcolor2"] floating enable
for_window [class="Xvidcap"] floating enable
for_window [class="Gresistor"] floating enable

# Установка клавиши-модификатора.
set $mod Mod4

# Шрифт для заголовков окон. ISO 10646 = Unicode
font -misc-fixed-medium-r-normal--13-120-75-75-C-70-iso10646-1

# В сочетании с этой клавишей можно перетаскивать плавающие окна с помощью мыши.
floating_modifier $mod

# Сочетание для блокировки экрана.
# bindsym $mod+F4 exec i3lock -i ~/.i3/lock.png

# Сочетание для запуска терминала.
bindsym $mod+Return exec urxvt

# С помощью этого сочетания убивается окно, на котором находится фокус.
bindsym $mod+Shift+Q kill

# Клавиши для запуска dmenu.
bindsym $mod+d exec dmenu_run

# Изменение фокуса.
bindsym $mod+j focus left
bindsym $mod+k focus down
bindsym $mod+l focus up
bindsym $mod+semicolon focus right

# Альтернативные клавиши для изменения фокуса.
bindsym $mod+Left focus left
bindsym $mod+Right focus right
bindsym $mod+Up focus up
bindsym $mod+Down focus down

# Клавиши перемещения окна, на котором находится фокус.
bindsym $mod+Shift+J move left
bindsym $mod+Shift+colon move right
bindsym $mod+Shift+L move up
bindsym $mod+Shift+K move down

# Альтернативные клавиши перемещения окна, на котором находится фокус.
bindsym $mod+Shift+Left move left
bindsym $mod+Shift+Right move right
bindsym $mod+Shift+Up move up
bindsym $mod+Shift+Down move down

# Клавиши для разделения окон по горизонтали.
bindsym $mod+h split h

# Клавиши для разделения окон по вертикали.
bindsym $mod+v split v

# Клавиши для установки полноэкранного режима приложения, на котором находится фокус.
bindsym $mod+f fullscreen

# Клавиши для изменения схемы тайлинга.
bindsym $mod+s layout stacking
bindsym $mod+w layout tabbed
bindsym $mod+e layout default

# Клавиши для переключения режимов для окон - тайлинг/плавающий.
bindsym $mod+Shift+space floating toggle

# Клавиши для переключения фокуса между окнами в режиме тайлинга и плавающими окнами.
bindsym $mod+space focus mode_toggle

# Клавиши  для установки фокуса на родительский контейнер. В основном, данная
# возможность нужна тогда, когда на одном рабочем пространстве находится два
# или больше контейнера, и по крайней мере один из них разделен по вертикали. В
# том случае, если фокус находится на окнах того контейнера, где было применено
# разделение, чтобы переключаться между контейнерами требуется перенести фокус
# на сам контейнер.
bindsym $mod+a focus parent

# Клавиши для переключение рабочих пространств.
bindsym $mod+1 workspace 1
bindsym $mod+2 workspace 2
bindsym $mod+3 workspace 3
bindsym $mod+4 workspace 4
bindsym $mod+5 workspace 5
bindsym $mod+6 workspace 6
bindsym $mod+7 workspace 7:audio
bindsym $mod+8 workspace 8
bindsym $mod+9 workspace 9:mail
bindsym $mod+0 workspace 10:jabber

# Клавиши для перемещение контейнеров, на которых находится фокус, на
# определенное рабочее пространство.
bindsym $mod+Shift+exclam move container to workspace 1
bindsym $mod+Shift+at move container to workspace 2
bindsym $mod+Shift+numbersign move container to workspace 3
bindsym $mod+Shift+dollar move container to workspace 4
bindsym $mod+Shift+percent move container to workspace 5
bindsym $mod+Shift+asciicircum move container to workspace 6
bindsym $mod+Shift+ampersand move container to workspace 7:audio
bindsym $mod+Shift+asterisk move container to workspace 8
bindsym $mod+Shift+parenleft move container to workspace 9:mail
bindsym $mod+Shift+parenright move container to workspace 10:jabber

# Клавиши для перезагрузки конфигурационного файла.
bindsym $mod+Shift+C reload

# Клавиши для перезапуска i3.
bindsym $mod+Shift+R restart

# Изменение размеров окна (это можно делать также с помощью мыши).
# Сочетание клавиш для включения этого режима.
bindsym $mod+r mode "resize"


mode "resize" {
# Следующие привязки клавиш работают только в режиме изменения размеров,
# то есть, после того, как нажата комбинация mod+r.

        bindsym j resize shrink width 10 px or 10 ppt
        bindsym semicolon resize grow width 10 px or 10 ppt
        bindsym l resize shrink height 10 px or 10 ppt
        bindsym k resize grow height 10 px or 10 ppt

# Альтернативные клавиши.
        bindcode 113 resize shrink width 10 px or 10 ppt
        bindcode 116 resize grow height 10 px or 10 ppt
        bindcode 111 resize shrink height 10 px or 10 ppt
        bindcode 114 resize grow width 10 px or 10 ppt

# Возвращение в нормальный режим: клавиши Enter или Escape.
        bindsym Return mode "default"
        bindsym Escape mode "default"
}


# Настройка i3bar и i3status (если используется).
bar {
        status_command i3status
colors {
   background #292929
# colorclass   <border> <background> <text>
focused_workspace   #d4d4d4  #929292 #ffffff
active_workspace   #d4d4d4  #2B2B2B #ffffff
inactive_workspace   #d4d4d4  #2F2F2F #ffffff
urgent_workspace   #d4d4d4  #D300B8 #ffffff
    }
}

За исключением нескольких специфичных частностей.

Cообщение объединено 18 октября 2015, 18:40:09

Цитата: nezabudka от 18 октября 2015, 18:18:10Помойму вы просто не запускаете несколько плавающих окон
на одном рабочем столе, а потому вам между ними и переключатся не надо.  :'(
Специально запустил несколько экземпляров калькулятора. Не получается у меня ваша проблема. ;D

nezabudka

Как я не мучилась, не переключаются у меня плавающие окна одновременно с перемещением на передний план.
Решила плюнуть и пойти другим путем. Установила тулзу xdotool , поэкспериментировала немного
и в результате добавила в конфиге следуюющую строчку
bindsym $mod+q focus right; exec xdotool click --window $(xdotool getwindowfocus) 1
Теперь когда я перевожу фокус на плавающие окна:
bindsym $mod+space focus mode_toggle
для переключения между ними я пользуюсь комбинацией Alt+q
В результате все происходит так как если бы я нажимала на них левой кнопкой мыши.
Кстати эту команду после точки с запятой можно поставить в любую стандартную команду переключающую фокус между окнами,
она не помешает в мозаике. В заключении раз уж мы установили xdotool можно добавить в скрипт и эмулятор мыши
bindsym $mod+Return exec xdotool click 1
bindsym Mod4+Up exec xdotool click 4    #прокрутка вверх
bindsym Mod4+Down exec xdotool click 5  #прокрутка вниз
bindsym $mod+Up exec xdotool mousemove_relative -- 0 -15
bindsym $mod+Down exec xdotool mousemove_relative 0 15
bindsym $mod+Right exec xdotool mousemove_relative 15 0
bindsym $mod+Left exec xdotool mousemove_relative -- -15 0

Выбираем свои комбинации клавишь. Всем спасибо.