- Saved searches
- Use saved searches to filter your results more quickly
- aless80/MintWindowManager
- Name already in use
- Sign In Required
- Launching GitHub Desktop
- Launching GitHub Desktop
- Launching Xcode
- Launching Visual Studio Code
- Latest commit
- Git stats
- Files
- README.md
- About
- i3wm
- Основные особенности
- Компоненты
- Размещение окон
- Конфигурация
- Горячие клавиши
- Установка
- Установка в Ubuntu (LinuxMint)
- Установка в ArchLinux (Manjaro)
- Установка в Fedora
Saved searches
Use saved searches to filter your results more quickly
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session.
Window Manager for Linux Mint Mate
aless80/MintWindowManager
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Name already in use
A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Sign In Required
Please sign in to use Codespaces.
Launching GitHub Desktop
If nothing happens, download GitHub Desktop and try again.
Launching GitHub Desktop
If nothing happens, download GitHub Desktop and try again.
Launching Xcode
If nothing happens, download Xcode and try again.
Launching Visual Studio Code
Your codespace will open once ready.
There was a problem preparing your codespace, please try again.
Latest commit
Git stats
Files
Failed to load latest commit information.
README.md
Window Manager for Linux Mint (Mate, Cinnamon, etc)
Bash scripts to tile a window on a certain position of the screen and resizes them. The scripts can be used with keyboard shortcuts. The scripts are most suitable for Linux computers using «normal» and «ultrawide» monitors (see below) because they resize windows to 34%, 50%, or 66% of the screen width. More specifically, I developed these scripts working on a 27″ monitor and a 37.5″ Curved one.
sudo apt install xdotool wmctrl x11-xserver-utils
Description of bash scripts
This repository includes two types of script: scripts that tile windows (the mv*.sh scripts) and scripts that resize windows by changing their heights (the resize*.sh scripts). The window width depend on the resolution width of the display. Unfortunately linux commands are not precise in estimating monitor size. Therefore, if two monitors are used and the current is greater than 600mm I consider the monitor to be «wide».
I will use cardinal directions such as E for East, NW for North West, C for Center to describe the positions on the screen. The mv*.sh scripts resize the current window to 50% (34% for normal monitors) of the screen width and move them to the corresponding cardinal position. When a script is invoked a second time, the window will be resized to 66% or 34% (50% for ultrawide monitors) of the screen width for windows tiled on the West or East, respectively.
The resize*.sh scripts resize the height of the windows. By invoking the scripts multiple times, windows can be resized to a height of 25%, 33%, 50%, 66%, 75%.
For Linux Mint MATE the scripts take into account MATE panels on the bottom and on the left (if any).
I personally use the following keyboard shortcuts to the following scripts:
Keyboard Shortcut | Script | Action |
---|---|---|
Ctrl + WinKey + Up | resizeup.sh | Increase a window’s height to 33%, 50%, 66%, or 75% of the screen height |
Ctrl + WinKey + Down | resizedown.sh | Decrease a window’s height to 25%, 33%, 50%, or 66% of the screen height |
For «normal» monitors, i.e. monitors with width lower than 600mm:
Keyboard Shortcut | Script | Action |
---|---|---|
Ctrl + WinKey + Page Up | mvW.sh | Move window to the Left, resize to 50% or 66% of screen width |
Ctrl + WinKey + Page Down | mvE.sh | Move window to the Right, resize to 50% or 34% of screen width |
Ctrl + WinKey + Left | mvSW.sh | Move window to the Bottom Left corner, resize to 50% or 66% of screen width |
Ctrl + WinKey + Right | mvSE.sh | Move window to the Bottom Right corner, resize to 50% or 34% of screen width |
Shift + Ctrl + WinKey + Left | mvNW.sh | Move window to the Top Left corner, resize to 50% or 66% of screen width |
Shift + Ctrl + WinKey + Right | mvNE.sh | Move window to the Top Right corner, resize to 50% or 34% of screen width |
For ultrawide monitors with monitor width greater than 600mm:
Keyboard Shortcut | Script | Action |
---|---|---|
Ctrl + WinKey + 1 | mvW.sh | Move window to the Left, resize to 25% or 33% of screen width |
Ctrl + WinKey + 2 | mvC.sh | Move window to the Center, resize to 48% of %33% of screen width |
Ctrl + WinKey + 3 | mvW.sh | Move window to the Right, resize to 25% or 50% of screen width |
These keyboard shortcuts can be programmatically set by using these lines of code:
#Change the following variable to the installation path INSTALLATIONPATH="Dropbox/scripts/MintWM" RELEASE=`env | grep DESKTOP_SESSION= | sed 's/DESKTOP_SESSION=//'` #any monitor dconf write /org/$/desktop/keybindings/custom20/action "'bash $/resizeup.sh'" dconf write /org/$/desktop/keybindings/custom20/name "'resizeup'" dconf write /org/$/desktop/keybindings/custom20/binding "'Up'" dconf write /org/$/desktop/keybindings/custom21/action "'bash $/resizedown.sh'" dconf write /org/$/desktop/keybindings/custom21/name "'resizedown'" dconf write /org/$/desktop/keybindings/custom21/binding "'Down'" dconf write /org/$/desktop/keybindings/custom22/action "'bash $/mvSW.sh'" dconf write /org/$/desktop/keybindings/custom22/name "'mvSW'" dconf write /org/$/desktop/keybindings/custom22/binding "'Left'" dconf write /org/$/desktop/keybindings/custom23/action "'bash $/mvSE.sh'" dconf write /org/$/desktop/keybindings/custom23/name "'mvSE'" dconf write /org/$/desktop/keybindings/custom23/binding "'Right'" dconf write /org/$/desktop/keybindings/custom24/action "'bash $/mvNW.sh'" dconf write /org/$/desktop/keybindings/custom24/name "'mvNW'" dconf write /org/$/desktop/keybindings/custom24/binding "'Left'" dconf write /org/$/desktop/keybindings/custom25/action "'bash $/mvNE.sh'" dconf write /org/$/desktop/keybindings/custom25/name "'mvNE'" dconf write /org/$/desktop/keybindings/custom25/binding "'Right'" #normal monitors dconf write /org/$/desktop/keybindings/custom26/action "'bash $/mvW.sh'" dconf write /org/$/desktop/keybindings/custom26/name "'mvW'" dconf write /org/$/desktop/keybindings/custom26/binding "'Page_Up'" dconf write /org/$/desktop/keybindings/custom27/action "'bash $/mvE.sh'" dconf write /org/$/desktop/keybindings/custom27/name "'mvE'" dconf write /org/$/desktop/keybindings/custom27/binding "'Page_Down'" #ultrawide monitors dconf write /org/$/desktop/keybindings/custom28/action "'bash $/mvW.sh'" dconf write /org/$/desktop/keybindings/custom28/name "'mvW'" dconf write /org/$/desktop/keybindings/custom28/binding "'1'" dconf write /org/$/desktop/keybindings/custom29/action "'bash $/mvE.sh'" dconf write /org/$/desktop/keybindings/custom29/name "'mvE'" dconf write /org/$/desktop/keybindings/custom29/binding "'3'" dconf write /org/$/desktop/keybindings/custom30/action "'bash $/mvC.sh'" dconf write /org/$/desktop/keybindings/custom30/name "'mvC'" dconf write /org/$/desktop/keybindings/custom30/binding "'2'"
About
Window Manager for Linux Mint Mate
i3wm
i3 (i3wm) — тайлинговый оконный менеджер. Высокая производительность. Настройка через конфигурационные файлы. Широкие возможности управления горячими клавишами.
Основные особенности
- Позиционируется, как оконный менеджер для продвинутых пользователей и разработчиков.
- i3 был написан с нуля. При разработке уделяется внимание чистоте исходного кода и документированию. Каждая новая функция требует документирования.
- Вместо Xlib используется Xcb. Xcb имеет более чистый API и во многих ситуациях работает быстрее, чем Xlib.
- Поддерживается работа с несколькими мониторами. Также поддерживается «горячее» подключение новых устройств вывода и поворот дисплея.
- Используется древовидная система хранения данных, что позволяет создавать более гибкие макеты, по сравнению с другими оконными менеджерами.
- Поддерживаются различные режимы работы. Например, можно использовать разные сочетания клавиш в режиме «resize» и в режиме по умолчанию.
- Реализована поддержка межпроцессного взаимодействия (IPC). Приложения могут подписываться на различные события и принимать команды.
- Поддержка UTF-8.
- Разработчики стараются не усложнять i3 излишними функциями и сосредоточены в первую очередь на исправлении ошибок и поддержке стабильности. Добавление новых функций рассматривается только в том случае, если польза от них явно перевесит дополнительное усложнение «внутренностей» i3. Поэтому, когда это возможно, рекомендуется добавлять новые функции с помощью IPC.
Компоненты
В составе i3 можно выделить следующие компоненты:
- i3 — оконный менеджер.
- i3bar — панель (отображает рабочие столы и строку терминала).
- i3status — строка состояния.
- i3lock — экран блокировки.
- dmenu — меню для запуска программ (команд).
Размещение окон
i3 относится к тайлинговым оконным менеджерам. Также используются понятия — мозаичный, плиточный.
Окна при размещении не перекрываются и располагаются в «табличном» виде.
Для отдельных окон поддерживается «плавающий» режим (Floating mode). Использование данного режима нарушает парадигму тайлинга, но он полезен, например, для различных диалоговых окон или окон панелей инструментов (например, панелей в GIMP). Плавающие окна всегда располагаются поверх плиточных окон. Принудительно перевести окно в «плавающий» режим можно с помощью сочетания клавиш mod+Shift+Space.
Поддерживается создание нескольких рабочих пространств (workspaces). Пространства нумеруются цифрами от 0 до 9.
Поддерживается расположение окон в стек и вкладки.
По умолчанию i3 не использует композитор. Для поддержки размытия, прозрачности и различных визуальных эффектов необходимо установить сторонний композитор, например, Picom.
Конфигурация
Для конфигурации используются текстовые файлы.
Базовая конфигурация (шаблон) расположена в файле: /etc/i3/config
Для задания пользовательских настроек необходимо скопировать /etc/i3/config в ~/.i3/config или ~/.config/i3/config
При первом запуске оконного менеджера i3 открывается диалог с предложением сгенерировать файл конфигурации в ~/.config/i3/config и выбрать клавишу-модификатор mod (Alt или Win).
Горячие клавиши
i3 поддерживает управление с помощью горячих клавиш. Использование мыши необязательно.
Все сочетания горячих клавиш используют базовую клавишу, которая называется mod. По умолчанию mod соответствует клавише Alt. Многие пользователи в качестве базовой клавиши выбирают клавишу Win.
Переназначить горячие клавиши можно через файлы конфигурации.
Ниже приведены некоторые популярные горячие клавиши (mod по умолчанию соответствует клавише Alt):
mod+Enter | Открыть новый Терминал. |
mod+j | Перевести фокус влево. |
mod+k | Перевести фокус вниз. |
mod+l | Перевести фокус вверх. |
mod+; | Перевести фокус вправо. |
mod+a | Перевести фокус на родительскую область. |
mod+Shift+j | Переместить окно влево. |
mod+Shift+k | Переместить окно вниз. |
mod+Shift+l | Переместить окно вверх. |
mod+Shift+; | Переместить окно вправо. |
mod+f | Переключить полноэкранный режим. |
mod+v | Разделить окно по вертикали. |
mod+h | Разделить окно по горизонтали. |
mod+r | Режим изменения размера. |
mod+e | Макет по умолчанию. |
mod+s | Макет Стек. |
mod+w | Макет Вкладки. |
mod+d | Открыть dmenu. |
mod+Shift+q | Закрыть окно (либо kill приложения, если оно не поддерживает события WM_DELETE). |
mod+1, mod+2, . | Переключиться на рабочее пространство (workspace) 1, 2, . |
mod+Shift+1, mod+Shift+2, . | Переместить окно на другой workspace. Если workspace не существует, он будет создан. |
mod+Shift+Space | Перевести окно в Плавающий режим. |
mod+Shift+c | Перезагрузить конфигурационный файл. |
mod+Shift+r | Перезапустить i3. |
mod+Shift+e | Корректно завершить i3. |