Как стать автором
Обновить

Комментарии 54

Мне кажется, когда люди знают, что хотят от окон, то начинают использовать тайловые вм или что-то вроде. Из того, что я пробовал — xmonad и awesomewm.

Большинство окон удобно разворачивать на весь экран, особенно на ноутбуке. Между полноэкранными окнами надо как-то переключаться.
Несколько рабочих столов, листание тачпадом как на макбуке, тайловые оконные менеджеры. Пробовал, не понравилось. Хоткеи удобнее.

Так в тайловых все на хоткеях и держится. Хочешь определенную программу на весь экран и на отдельном рабочем столе — пожалста.
П.С.: один раз правила написал и пользуйся.
тайловые оконные менеджеры. Пробовал, не понравилось

Возможно всё дело в том, что из коробки, их действительно неудобно непривычно использовать. Но потратив время на освоение и конфигурирование, вы получите гораздо более удобную рабочую среду, в т.ч. и универсальный хоткей для запуска любых приложений (dmenu/rofi).

Если нет времени / лень вникать в тонкости конфигурирования, то есть уже готовые из коробки сетапы от сообщества, например awesome-copycats для AwesomeWM.

А есть что-нибудь подобное для i3wm?

Честно сказать, у меня почти дефолтная инсталляция i3wm, особо не видел смысла там что-то менять. Но вообще, тут можно посмотреть или на реддите r/unixporn.
awesome самое известное наверное. Под wayland есть аналог i3 — sway. Вообще их очень много (можно нагуглить), но пробовал я мало)
НЛО прилетело и опубликовало эту надпись здесь
НЛО прилетело и опубликовало эту надпись здесь
и Shift+CapsLock для кириллицы

Shift+CapsLock обычно оставляют для возможности включения\выключения КАПС-режима


UPD: у себя, помимо переключения раскладки по CapsLock настроил отображение активной индикатором ScrollLock клавиатуры (к сожалению осталось мало клавиатур с этой лампочкой).
Вот кусок xorg.conf


Section "InputClass"
        Identifier  "Keyboard Defaults"
        Driver      "evdev"
        OPtion      "XkbRules" "xorg"
        Option      "XkbLayout" "us,ru"
        Option      "XkbVariant" "basic,winkeys"
        Option      "XkbOptions" "grp:caps_toggle,grp_led:scroll,lv3:ralt_switch,compose:rwin,misc:mytypo,terminate:ctrl_alt_bksp"
        MatchIsKeyboard "on"
        MatchDevicePath "/dev/input/event*"
EndSection

который настраивает клавиатуру вне зависимости от используемого WM|DE.

НЛО прилетело и опубликовало эту надпись здесь
который настраивает клавиатуру вне зависимости от используемого WM|DE.

После войн с убунтой на эту тему в моем ru.sh остались такие записи:


setxkbmap -layout "us,ru"
setxkbmap -option "grp:caps_toggle,grp_led:caps,compose:ralt,terminate:ctrl_alt_bksp"
exit 0

#sudo dpkg-reconfigure keyboard-configuration
#gsettings reset org.gnome.desktop.input-sources xkb-options
dconf read   /org/gnome/desktop/input-sources/xkb-options
['grp:caps_toggle', 'compose:ralt', 'terminate:ctrl_alt_bksp', 'grp_led:scroll']`
cd .config/dconf/
cp -a user user.bak #drop config and from **text** console restore back

dump layout:
xkbcomp -xkb $DISPLAY xkbmap

/etc/default/keyboard
echo '@setxkbmap -layout "fr,us"'|sudo tee -a /etc/xdg/lxsession/Lubuntu/autostart

2013 – en DASH
2014 —  LONG em DASH
2e3a ⸺   2em DASH
2e3b ⸻     3em DASH

Compose
/usr/share/X11/locale/en_US.UTF-8/Compose

Ctrl+Shift+U+unicode_in_hex
2200 ∀
2201 ∁ 
2202 ∂
2203 ∃ 
2204 ∄

Что из всего этого вам потребуется, смотрите сами ;)

setxkbmap -option "grp:caps_toggle,grp_led:caps,compose:ralt,terminate:ctrl_alt_bksp"

Вот отображение раскладки лампочкой CapsLock


…,grp_led:caps,… 

не всегда удобно. Не получится увидеть включен ли КАПС-режим, если он используется. Но, да, клавиатур с этой лампочкой ещё есть.


Да и ComposeKeys не является панацеей. Половина решается Третьим уровнем.

У вас, имхо, самый правильный вариант XkbOptions для иксов, даже zap key не забыли. :-) У меня такой же, если не обращать внимание на mytypo — что вы в ней патчите, если не секрет?
НЛО прилетело и опубликовало эту надпись здесь

Кажется вы пытаетесь переизобрести i3wm/awesome с rofi и т.д.

Пользуясь случаем.
Народ, кто пользуется i3wm, подскажите пожалуйста, как сделать чтоб при запуске firefox был на 85% и без рамок по ширине, а телега на оставшиеся 15%?
Надоело каждый раз их подгонять.

В конфиге сейчас есть такие записи:
for_window [class="Thunderbird"] move container to workspace 2
for_window [class="Firefox"] move container to workspace 1, border none
for_window [class="Telegram"] move container to workspace 1, border none


Заранее спасибо!

Пробовал layout, но там вообще конфиг не подхватывается. Может я туплю? Либо он применяет конфиг до того как телега с браузером загрузятся?
Например i3-save-tree --workspace 1 > ~/.i3/workspace-1.json
В конфиге использовать append_layout с путем до сохраненного json
Сколько лет пользуюсь i3wm а не знал, что существует такая фича. И оказывается она мне жизненно необходима! Благодарю за наводку.
Когда мне нужно переключиться на какое-то окно, мне не приходится искать его на панели задач. Все нужные приложения у меня на ней закреплены и находятся всегда в одном и том же месте, в каком бы порядке я их ни открыл. Наведение мыши на иконку программы доведено фактически до автоматизма.
Кроме того, в Windows есть такой способ открытия/переключения между программами — Win+цифра. Нажмёте Win+1 — откроется программа, закреплённая на первой позиции на панели задач. Win+2 — вторая. И т.д. При этом, «я хочу видеть калькулятор вне зависимости от того, запущена ли в данный момент эта программа. Если запущена, то её окну надо передать фокус, а если нет — запустить нужную программу и передать фокус когда она загрузится» также работает. Для десятка самых нужных программ, на мой взгляд, этого более чем достаточно.

этот фокус работает и в циннамон. это облегчило мне отъезд с винды.

Передать фокус окну — это, кончено, классно и полезно. Но иногда бывает необходимо передать фокус конкретной вкладке браузера (например, открыть закреплённую вкладку с Яндекс.Музыка). Кто-нибудь находил хоть какое-нибудь рабочее решение, кроме передачи фокуса браузеру и перебор всех вкладок до нахождения нужной по изменяющемуся заголовку окна?
Tridactyl?
А конкретнее можно? А то я нахожу только Vim-like interface for Firefox, который вообще не в тему.
Сходу в .tridactylrc сделать бинд на открытый таб, либо так вбить.
Ну скажем например bind L fillcmdline tab hrenomuzika.blabla.com, если таб открыт. Если нет — например tabopen использовать. Без биндов можно держать в нужном порядке (1-2-3 и т.д. таб) и использовать стандартные шоткаты альт+цифра например.
Кажется какой-то чувак делал addon для firefox который работает с Rofi (общаются через сторонний бекенд как, например, аддон который открывает видео в mpv). Но я не пробовал, не исключено что он работать перестал.
Если взять для примера конкретно Firefox под Windows, то в нем очень удобно можно запинить некоторые окна, а затем осуществлять быстрый переход по ним с помощью Ctl+1, 2, 3… Тогда вполне можно сделать глобальные хоткеи с помощью, например, AutoHotkey, при нажатии на которые будет не только активироваться браузер, но и будет передана нужная комбинация для открытия необходимой вкладки.
Это как вариант, да. Спасибо! Но хотелось бы более универсального решения, т.к. не всегда можно гарантировать одну и ту же последовательность закреплённых вкладок. А вот с универсальным решением пока глухо. (Я, по крайней мере, пока ничего вменяемого не нашёл.)
Эх… еще бы как нибудь хоткеи для skypeforlinux и подобных мессенджеров в xubuntu отключить.
Задолбало, при переключении раскладки (Alt+Shift) активируются «кнопки» главного меню программы.
Пока более-менее простого-стандартного способа не нашел, а городить костыли как-то не по феншую.

Может кто-нибудь вкурсе, как спасти отца русской демократии?

Сменить сочетание смены раскладки, чтобы не было клавиши Alt.

По этой же причине на днях перенастроил переключение раскладки на Caps Lock.
НЛО прилетело и опубликовало эту надпись здесь

Под тормозит я имел в виду время от нажатия комбинации до момента, когда окно получит фокус. Т.е. сам автоматор, наверно, не тормозит, но тормозит его запуск. Не суть важно, не смог с ним получить приемлемый отклик. В Linux же я получаю мгновенный отклик если приложение уже запущено.
Но это пол беды, я в Mac OS хоткеи не смог настроить. Они работают до тех пор пока текущая программа их не переопределит. Надо либо выдумывать сложные хоткеи, которые больше нигде не используются (но тогда они сложные и вся прелесть теряется) либо придумать что-то еще.

Смастерил себе клавиши «РУС» и «LAT», благо у мну на клавиатуре куча дополнительных кнопок. Очень удобно.
setxkbmap -layout ru -- на клавише "Вперёд"
setxkbmap -layout us -- на клавише "Назад"

Вот бы еще производителям ноутов это объяснить. Особенно одной яблочной компании.

Легко. Не покупать их продукцию.

Пользователям gnome-shell все эти скрипты не нужны, там замечательно добавляются кастомные шорткаты и команды для запуска прямо из GUI.

Тут же идея в том, что на один шорткат навешены и запуск и получение фокуса. Плюс навигация по разным окнам одного приложения.
Давно не пользовался gnome, возможно там много подобавляли, я не знаю.


Можно ли в gnome повесить на разные шорткаты окно обычного Firefox и окно Firefox в Private Browsing? Ведь технически это одно и то же приложение. И желательно так, чтоб не перенастраиать это после перезагрузки или закрытия одного из окон.


Или другой сценарий. Я обновляю, например, файлы конфигурации в нескольких микросервисах. Каждый микросервис открыт в отдельном окне Idea. Мне нужно сделать несколько однотипных изменений в файлах во всех микросервисах. Я привязываю все нужные окна Idea к разным шорткатам (выбираю клавиши рядом, у меня это Alt+1...Alt+0). А дальше вношу однотипные правки во все проекты. Т.е. сначала меняю file1 во всех проектах, затем меняю file2 и т.д. Мне не надо искать окна по Alt+Tab и искать в какой из проектов я ещё не внес правки. В gnome так можно? Назначить открытые окна на шорткаты, желательно не заходя в меню, а потом так же легко переназначить для выполнения другой задачи?

Супер, отличная программа!
Легко настраивается, основную задачу выполняет хорошо.
К сожалению, нельзя настроить на отдельный шорткат Firefox в Private Browsing. И нет возможности создать кастомные шорткаты для привязки именно к окнам, а не к приложениям.
В любом случае, с ней намного лучше, чем без нее. Спасибо :)

Я из тех, кто ставит на Caps Lock переключение раскладки потому, что лень нажимать 2 клавиши, когда можно нажимать одну. Я бы даже хотел 2 ненужные клавиши: одну бы я использовал для включения английской раскладки, а вторую для русской. Но вторая ненужная клавиша — это вызов контекстного меню, которая настолько ненужная, что выпиливается многими производителями ноутбуков. Так что приходится довольствоваться тем, что есть.

Автор, в линуксах <Winkey's> делятся на правый и левый — это две разные „ненужные“ клавиши, но не каждая бубунта позволяет их различить.

Давно не видел правый Winkey в ноутбуках. Понял, что почти не пользуюсь правыми Alt и Ctrl, но переключение языка на них в KDE повесить не смог. Может мало копал.
Да и сомнения есть, стараюсь не настраивать то, что нельзя будет настроить на рабочем макбуке.

Поделюсь своим опытом тайлинга.


На MacOS пользовался Spectacle, потом захотел больше гибкости и перешел на Hammerspoon со своим скриптом. Сложнее, но можно сделать, что угодно. Иногда он, кажется, чуть подглючивал и подтормаживал.


А потом перешёл на Linux (Manjaro). Вначале решил, что если я не нуб, то должен настроить себе i3. А потом после трёх дней пляски с настройками за пару часов установил и настроил под себя GNOME. Его встроенных фич оказалось вполне достаточно:


  • поменял местами CapsLock и левый Ctrl (очень рекомендую!)
  • переключение раскладки оставил пока на дефолтном Super+SPC (но мне оно по работе нечасто нужно)
  • каждый апп из панели запуска вызывается по Super+<его номер>, можно сделать и выделенный шорткат для запуска приложения, если нужно
  • для переключения между окнами приложения (несколько сессий Firefox) есть шорткат (Alt+` по дефолту)
  • терминал: Tilix в quake mode с шорткатами как у iTerm, которым пользовался на маке
Я немного слоупок, но… спасибо за ваш скрипт:) Я его внедрил у себя и теперь с удовольствием использую.

Попробовал тайловые менаджеры как советуют выше — не то. У меня нет необходимости в нескольких окнах на экране. А без этой «фишки» i3 получается какой то очень пресной оболочкой. Да и ресурсы мне как то глупо экономить.

А вот назначить десятку приложений хоткеи и между ними переключаться не перекладывая руку на мышку и ничего не «листая» — самое то!
Теперь бы выучить собственные хоткеи… Может док и панель задач спрятать, чтобы по привычке к мышке не тянуться? :D

Тем не менее я взял на себя смелость улучшить ваш скрипт.

34,37c34
+ if [[ "$MATCHED_CURRENT" -eq "$CURRENT" ]] && [[ -n "$CURRENT" && -n $2 || "$PINNED" -eq "$CURRENT" ]]; then
+   echo "Minimize"
+   xdotool getactivewindow windowminimize
+ elif [[ -n $MATCHED_CURRENT && -z $PINNED ]]; then
---
- if [[ -n $MATCHED_CURRENT && -z $PINNED ]]; then


Вот так лучше. :)

Теперь повторное нажатие хоткея, если «нужное» окно уже активно — прячет его.
alt+m — вызвал почтовую программу, убедился что «полковнику никто не пишет» и тем же сочетанием клавиш ее обратно свернул.

Спасибо за отзыв. Рад что кто-то попробовал. :)


На самом деле, я и не надеялся, что кто-то вот прям сразу все себе настроит и прям сразу привыкнет. Для того, чтобы подсесть на хоткеи требуется время. А спрыгнуть еще сложнее. :)


Идея со сворачиванием тоже интересная, спасибо. Залью в репозиторий при возможности.

Обновил скрипт.
Добавил Ваше пожелание со сворачиванием окон, а заодно немного переделал механизм назначения главного окна. Теперь какое-то из окон всегда назначено главным, если надо переназначить, то это нужно делать явно.
Так же есть идея переделать механизм переназначения главного окна. Чтоб сначала нажимать комбинацию сброса, а потом комбинацию окна. Тогда при переназначении не будет прыжков: попасть в старое окно, нажать сброс главного окна, перейти в нужное окно и только потом назначить его главным.

Я программист, постоянно пользуюсь примерно 5 окнами, еще штук 5-10 может быть открыто дополнительно. И постоянно между ними переключаюсь. Со времени Unity в Ubuntu привык к сочетаниям Meta+(1-9) для переключения между приложениями. Использовал Awesome, там распределял по рабочим столам по такому же принципу. Сейчас на XFCE, тоже настроил через рабочие столы, но все-таки были неудобства.

Нашел эту статью через поиск. Непонятно было как это искать и вообще как называется такой способ переключения окон. Настроил showwin + xbindkeys. Работает, кайфую, спасибо автору. Через какое-то время может напишу дополнение по мере использования.

Мой конфиг .xbindkeysrc
"showwin 'Mozilla Firefox$' 'firefox'"
  Mod4 + 1

"showwin '.jetbrains-pycharm' 'soft/pycharm/bin/pycharm.sh'"
  Mod4 + 2

"showwin 'chromium.Chromium' 'chromium'"
  Mod4 + 3

"showwin 'slack.Slack' 'slack'"
  Mod4 + 4

"showwin 'slack.Slack' 'slack'"
  Mod4 + s

"showwin 'keepassx.keepassx' 'keepassx'"
  Mod4 + k

"showwin 'geary' 'geary'"
  Mod4 + m

"showwin 'vivaldi' 'vivaldi'"
  Mod4 + v

Спасибо за отзыв, приятно что кому-то кроме меня удобно пользоваться таким способом.
Могу порекомендовать ещё 2 вещи:


  1. Повесить на отдельный хоткей Private Browsing в Firefox, в статье есть как это сделать. Я так разделяю сайты, где я залогинен и где хочу затруднить трекинг. Это на самом деле удобно, я почти всё гуглю в приватных вкладках.
  2. Разберитесь с кастомными назначениями, та часть в статье с showwin "CustomKey1" и showwinDetach. Это добавляет удобства при решении нестандартных задач. Например, визуально сравнивать данные из разных программ или разных окон одной программы. Можно, например, быстро перелючаться на окно с pdf или даже открыть один pdf в нескольких окнах на разных страницах и быстро перемещаться между ними.
Спасибо. Приватные вкладки использую крайне редко. Если понадобятся часто — добавлю хоткеи.
Кастомные назначения добавил, не стал их выкладывать в конфиге, так как они есть в статье. Но пока толком не пользовался, не было нужды.

Прошел год с момента написания статьи. До сих пор пользуюсь в работе, ежедневно. У меня основные комбинации такие:

  • Win-1 - рабочий чат Slack

  • Win-2 - браузер

  • Win-3 - IDE

  • Win-4 - редактор текстов Obsidian, где хранятся мои заметки и планируется работа (аналог org-mode для Emacs)

  • Win-M - почта Thunderbird

  • Win-F - файловый менеджер

  • F1 - терминал xfce4-terminal --drop-down. Но он прописан не через showwin

  • Первые четыре дублируются на клавиатуре - Win + (S)lack, J-Firefox, K-IDE, (O)bsidian. Чаще пользуюсь цифрами, но иногда и так.

Сори за некрокоммент. Кто-нибудь знает альтернативу wmctrl -l | wmctrl -a для plasma под wayland?
Оно видит только несколько окон из всех запущеных (в частности, только vscode и chromium)
Задача та же: запустить приложение, но, если запущено, не запускать новый экземпляр, а переключить на передний план.
Ничего не могу найти по этому поводу для plasma под wayland. Все советы в сети сводятся к wmctl. И есть одно решение через dbus для gnome.

Как вариант, написать самому. Есть библиотеки для работы с wayland. Для Golang точно есть.

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории