sway project script
This commit is contained in:
parent
1fc158f36c
commit
b704c73107
6 changed files with 135 additions and 1 deletions
|
@ -31,6 +31,7 @@
|
||||||
(packages (append (specifications->packages (list "xdg-utils"
|
(packages (append (specifications->packages (list "xdg-utils"
|
||||||
"mako"
|
"mako"
|
||||||
"vscodium"
|
"vscodium"
|
||||||
|
"libnotify"
|
||||||
"i3-autotiling"
|
"i3-autotiling"
|
||||||
"wofi"
|
"wofi"
|
||||||
"qrencode"
|
"qrencode"
|
||||||
|
|
|
@ -24,6 +24,7 @@
|
||||||
slack
|
slack
|
||||||
cryptomator
|
cryptomator
|
||||||
pcem
|
pcem
|
||||||
|
cider
|
||||||
#steam
|
#steam
|
||||||
|
|
||||||
# Rust
|
# Rust
|
||||||
|
|
|
@ -36,6 +36,10 @@ bindsym XF86AudioRaiseVolume exec pactl set-sink-volume @DEFAULT_SINK@ +5%
|
||||||
bindsym XF86AudioLowerVolume exec pactl set-sink-volume @DEFAULT_SINK@ -5%
|
bindsym XF86AudioLowerVolume exec pactl set-sink-volume @DEFAULT_SINK@ -5%
|
||||||
bindsym XF86AudioMute exec pactl set-sink-mute @DEFAULT_SINK@ toggle
|
bindsym XF86AudioMute exec pactl set-sink-mute @DEFAULT_SINK@ toggle
|
||||||
bindsym XF86AudioMicMute exec pactl set-source-mute @DEFAULT_SOURCE@ toggle
|
bindsym XF86AudioMicMute exec pactl set-source-mute @DEFAULT_SOURCE@ toggle
|
||||||
|
bindsym F3 exec pactl set-sink-volume @DEFAULT_SINK@ +5%
|
||||||
|
bindsym F2 exec pactl set-sink-volume @DEFAULT_SINK@ -5%
|
||||||
|
bindsym F1 exec pactl set-sink-mute @DEFAULT_SINK@ toggle
|
||||||
|
bindsym F4 exec pactl set-source-mute @DEFAULT_SOURCE@ toggle
|
||||||
|
|
||||||
# Brightness keybinds
|
# Brightness keybinds
|
||||||
bindsym XF86MonBrightnessDown exec brightnessctl set 5%-
|
bindsym XF86MonBrightnessDown exec brightnessctl set 5%-
|
||||||
|
|
6
home-config/sway/config.d/project
Normal file
6
home-config/sway/config.d/project
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
### Project
|
||||||
|
|
||||||
|
bindsym $mod+Alt+Left exec ~/.config/sway/scripts.d/project.sh LEFT
|
||||||
|
bindsym $mod+Alt+Right exec ~/.config/sway/scripts.d/project.sh RIGHT
|
||||||
|
bindsym $mod+Alt+Up exec ~/.config/sway/scripts.d/project.sh EXTERNAL_ONLY
|
||||||
|
bindsym $mod+Alt+Down exec ~/.config/sway/scripts.d/project.sh PRIMARY_ONLY
|
119
home-config/sway/scripts.d/project.sh
Executable file
119
home-config/sway/scripts.d/project.sh
Executable file
|
@ -0,0 +1,119 @@
|
||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
get_mode() {
|
||||||
|
swaymsg -t get_outputs -r | jq ".[$1].modes[0]"
|
||||||
|
}
|
||||||
|
|
||||||
|
get_name() {
|
||||||
|
swaymsg -t get_outputs -r | jq -r ".[$1].name"
|
||||||
|
}
|
||||||
|
|
||||||
|
get_width() {
|
||||||
|
get_mode "$1" | jq ".width"
|
||||||
|
}
|
||||||
|
|
||||||
|
get_height() {
|
||||||
|
get_mode "$1" | jq ".width"
|
||||||
|
}
|
||||||
|
|
||||||
|
get_refresh() {
|
||||||
|
get_mode "$1" | jq ".refresh" | rev | cut -c 4- | rev
|
||||||
|
}
|
||||||
|
|
||||||
|
get_placement() {
|
||||||
|
# $1 - monitor placement
|
||||||
|
# $2 - monitor index compared
|
||||||
|
# $3 - monitor compared scale
|
||||||
|
WIDTH="$(jq -n "$(get_width $2)/$3" | awk -F. '{print $1}')"
|
||||||
|
case $1 in
|
||||||
|
"NONE")
|
||||||
|
echo "0 0"
|
||||||
|
;;
|
||||||
|
"RIGHT")
|
||||||
|
echo "$WIDTH 0"
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
echo "0 0"
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
}
|
||||||
|
|
||||||
|
update() {
|
||||||
|
# $1 - monitor index
|
||||||
|
# $2 - monitor scale
|
||||||
|
# $3 - monitor placement
|
||||||
|
# $4 - monitor index compared
|
||||||
|
# $5 - monitor compared scale
|
||||||
|
swaymsg output "$(get_name $1)" "enable"
|
||||||
|
swaymsg output "$(get_name $1)" resolution "$(get_width $1)x$(get_height $1)@$(get_refresh $1)hz" scale $2 position "$(get_placement $3 $4 $5)"
|
||||||
|
}
|
||||||
|
|
||||||
|
off() {
|
||||||
|
swaymsg output "$(get_name $1)" "disable"
|
||||||
|
}
|
||||||
|
|
||||||
|
get_id() {
|
||||||
|
i=0
|
||||||
|
while true; do
|
||||||
|
NAME="$(get_name $i)"
|
||||||
|
if [ "$NAME" == "$1" ]; then
|
||||||
|
echo "$i"
|
||||||
|
exit 0
|
||||||
|
elif [ "$NAME" == "null" ]; then
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
((i=i+1))
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
|
die() {
|
||||||
|
notify-send -u critical -t 3000 "Sway" "Failed to get display"
|
||||||
|
}
|
||||||
|
|
||||||
|
PRIMARY=$(get_id "eDP-1")
|
||||||
|
EXTERNAL=$(get_id "DP-1" || get_id "HDMI-1")
|
||||||
|
|
||||||
|
PRIMARY_SCALE=1.5
|
||||||
|
EXTERNAL_SCALE=1
|
||||||
|
|
||||||
|
set_monitors() {
|
||||||
|
update $EXTERNAL $EXTERNAL_SCALE $1 $PRIMARY $PRIMARY_SCALE
|
||||||
|
update $PRIMARY $PRIMARY_SCALE $2 $EXTERNAL $EXTERNAL_SCALE
|
||||||
|
}
|
||||||
|
|
||||||
|
set_left() {
|
||||||
|
set_monitors "NONE" "RIGHT"
|
||||||
|
}
|
||||||
|
|
||||||
|
set_right() {
|
||||||
|
set_monitors "RIGHT" "NONE"
|
||||||
|
}
|
||||||
|
|
||||||
|
set_primary_only() {
|
||||||
|
set_monitors "NONE" "NONE"
|
||||||
|
off $EXTERNAL
|
||||||
|
}
|
||||||
|
|
||||||
|
set_external_only() {
|
||||||
|
set_monitors "NONE" "NONE"
|
||||||
|
off $PRIMARY
|
||||||
|
}
|
||||||
|
|
||||||
|
case $1 in
|
||||||
|
"LEFT")
|
||||||
|
set_left
|
||||||
|
notify-send -t 3000 "Sway" "External display set to left aligned"
|
||||||
|
;;
|
||||||
|
"RIGHT")
|
||||||
|
set_right
|
||||||
|
notify-send -t 3000 "Sway" "External display set to right aligned"
|
||||||
|
;;
|
||||||
|
"PRIMARY_ONLY")
|
||||||
|
set_primary_only
|
||||||
|
notify-send -t 3000 "Sway" "Set to primary display only"
|
||||||
|
;;
|
||||||
|
"EXTERNAL_ONLY")
|
||||||
|
set_external_only
|
||||||
|
notify-send -t 3000 "Sway" "Set to external display only"
|
||||||
|
;;
|
||||||
|
esac
|
|
@ -156,7 +156,10 @@
|
||||||
(unix-sock-group "libvirt")
|
(unix-sock-group "libvirt")
|
||||||
(tls-port "16555")))
|
(tls-port "16555")))
|
||||||
(service virtlog-service-type)
|
(service virtlog-service-type)
|
||||||
(service bluetooth-service-type)
|
(service bluetooth-service-type
|
||||||
|
(bluetooth-configuration
|
||||||
|
(experimental #t)
|
||||||
|
(fast-connectable? #t)))
|
||||||
(service pam-limits-service-type)
|
(service pam-limits-service-type)
|
||||||
(service fprintd-service-type)
|
(service fprintd-service-type)
|
||||||
(udev-rules-service 'fido2 libfido2 #:groups '("plugdev")))
|
(udev-rules-service 'fido2 libfido2 #:groups '("plugdev")))
|
||||||
|
|
Loading…
Reference in a new issue