105 lines
5.7 KiB
Bash
105 lines
5.7 KiB
Bash
#!/usr/bin/env bash
|
||
|
||
# Дефолт конфиг https://github.com/baskerville/bspwm/blob/master/examples/bspwmrc
|
||
# Описание настроек можно найти тут https://manpages.debian.org/testing/bspwm/bspc.1.en.html
|
||
# Или через "man bspc" в терминале
|
||
# Или в ./bspwm.md
|
||
# https://my-take-on.tech/2020/07/03/some-tricks-for-sxhkd-and-bspwm/
|
||
|
||
################
|
||
## Автозапуск ##
|
||
################
|
||
|
||
# Это по сути терминал. Пишем то, как запускается прога через терминал и в конце & обязательно
|
||
|
||
# # Как я понял, их не надо запускать, ведь они активированы через services..enable = true;
|
||
# # Если в nixos что-то включается через services, а не через programs, то nixos сам отвечает за автозапуск сервисов
|
||
# pgrep -x sxhkd > /dev/null || sxhkd & # Запускаем sxhkd если он не запущен
|
||
# pgrep -x polybar > /dev/null || polybar & # Запускаем polybar если он не запущен
|
||
# pgrep -x dunst > /dev/null || dunst & # Запускаем dunst если он не запущен
|
||
|
||
# Изменить настройки для основного монитора. Мб вместе с --primary надо
|
||
xrandr --output DisplayPort-2 --mode 1920x1080 --rate 165
|
||
# Изменить настройки для второго (правого) монитора
|
||
xrandr --output HDMI-A-0 --mode 1920x1080 --rate 100 --right-of DisplayPort-2
|
||
|
||
ksnip &
|
||
# nekoray &
|
||
# obsidian &
|
||
# planify &
|
||
lxqt-policykit-agent &
|
||
|
||
# Я ебал рот видеть инет в трее. Замени эту ёбань на rofi и отдельную кнопку в polybar
|
||
nm-applet &
|
||
|
||
#########################
|
||
## Настройки мониторов ##
|
||
#########################
|
||
|
||
# Получаем имена активных мониторов
|
||
MONITORS=( $(xrandr --listactivemonitors | grep -E '^ [0-9]+:' | cut -d' ' -f6 | sed 's/\n/ /') )
|
||
|
||
# Если переменная MONITOR уже задана, то используется её значение.
|
||
# Если она не задана (то есть пуста или не существует), то используется первый элемент из массива MONITORS (то есть, первый активный монитор).
|
||
# Это гарантирует, что переменная MONITOR всегда будет содержать значение: либо установленное ранее, либо первый активный монитор по умолчанию.
|
||
# ":-" Это оператор в Bash, который используется для установки значения по умолчанию. Если переменная не задана или пуста, используется значение после :-
|
||
MONITOR="${MONITOR:-${MONITORS[0]}}"
|
||
|
||
# Для запуска приложений на втором мониторе, если он доступен. Если второго монитора нет, используем первый.
|
||
MONITOR2="${MONITORS[1]:-${MONITORS[0]}}"
|
||
|
||
# # Устанавливаем рабочие столы с именами от 1 до 10 для каждого монитора
|
||
for mon in ${MONITORS[@]}; do
|
||
bspc monitor $mon -d {1,2,3,4,5,6,7,8,9,10}
|
||
done
|
||
|
||
# Устанавливаем рабочие столы с именами от 1 до 10 для каждого монитора
|
||
#bspc monitor -d 1 2 3 4 5 6 7 8 9 10 # Можно заменить на {1,2,3,4,5,6,7,8,9,10}
|
||
|
||
# Настройка автоматического удаления настроек для отключённых и отсоединённых мониторов
|
||
bspc config remove_disabled_monitors false
|
||
bspc config remove_unplugged_monitors false
|
||
|
||
#####################
|
||
## Настройки bspwm ##
|
||
#####################
|
||
|
||
# Syntax - bspc config [-m MONITOR_SEL|-d DESKTOP_SEL|-n NODE_SEL] <setting> [<value>]
|
||
|
||
# Устанавливает ширину границ окон в 2 пикселя.
|
||
bspc config border_width 2
|
||
|
||
# Задаёт расстояние между окнами (отступ) в 5 пикселей.
|
||
bspc config window_gap 5
|
||
|
||
# Настраивает коэффициент разделения окон при их разделении. Значение 0.52 означает, что при разделении окно будет занимать 52% доступного пространства.
|
||
bspc config split_ratio 0.52
|
||
|
||
# В режиме monocle (максимизация окна на весь экран) границы окон будут скрыты.
|
||
bspc config borderless_monocle true
|
||
|
||
# В режиме monocle будет отсутствовать отступ между окнами.
|
||
bspc config gapless_monocle true
|
||
|
||
# Eсли вы активируете режим "monocle" на одном мониторе, другие мониторы остаются в обычном режиме
|
||
bspc config single_monocle false
|
||
|
||
# Фокусировка следует за курсором
|
||
bspc config focus_follows_pointer true
|
||
|
||
|
||
###############################
|
||
## Поведение конкретных окон ##
|
||
###############################
|
||
|
||
|
||
# Yдаляет все существующие правила для всех окон
|
||
# bspc rule -r '*'
|
||
|
||
bspc rule -a "polybar" layer=above
|
||
|
||
bspc rule -a "Screenkey" manage=off
|
||
|
||
bspc rule -a "ksnip" state=floating center=true focus=on rectangle=1600x900+0+0
|
||
bspc rule -a "org.kde.ark" state=floating center=true focus=on rectangle=1200x800+0+0
|
||
bspc rule -a "floating-terminal" state=floating center=true focus=on rectangle=1200x800+0+0
|