nixos_dots/archive/bspwmrc
2024-12-12 19:12:55 +03:00

105 lines
5.7 KiB
Bash
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/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