From b13ad503cc781a306f00ae12e7e50a6e42b7cfd0 Mon Sep 17 00:00:00 2001 From: Gabriel Ebner Date: Sat, 9 Mar 2019 20:37:53 +0100 Subject: [PATCH] Initial sway support. --- .gitignore | 1 + Makefile | 2 +- config/sway/config.m4 | 178 ++++++++++++++++++++++++++++++++++++++++++ swaylock.sh | 9 +++ 4 files changed, 189 insertions(+), 1 deletion(-) create mode 100644 config/sway/config.m4 create mode 100755 swaylock.sh diff --git a/.gitignore b/.gitignore index 29cdb84..286c9e0 100644 --- a/.gitignore +++ b/.gitignore @@ -5,6 +5,7 @@ procmailrc gitconfig ctags i3/config +config/sway/config i3status.conf mbsyncrc msmtprc diff --git a/Makefile b/Makefile index 2464b1b..b612ae0 100644 --- a/Makefile +++ b/Makefile @@ -4,7 +4,7 @@ FILES = bashrc bash_profile vimrc zshrc gitconfig screenrc commonshrc liquidprom config/qutebrowser config/nvim/init.vim ideavimrc \ config/khal config/vdirsyncer/config config/khard \ config/rofi-pass gdbinit notmuch-config \ - config/fish tridactylrc \ + config/fish tridactylrc config/sway/config \ $(wildcard sbt/0.13/*.sbt sbt/0.13/plugins/*.sbt) \ $(wildcard sbt/1.0/plugins/*.sbt) diff --git a/config/sway/config.m4 b/config/sway/config.m4 new file mode 100644 index 0000000..2e77c7d --- /dev/null +++ b/config/sway/config.m4 @@ -0,0 +1,178 @@ +# vim:ft=conf: + +changequote([,]) +define([hostname], esyscmd([echo -n `hostname`])) + +define([forloop], [pushdef([$1], [$2])_forloop($@)popdef([$1])]) +define([_forloop], + [$4[]ifelse($1, [$3], [], [define([$1], incr($1))$0($@)])]) + +set $mod Mod4 + +font pango:monospace 7 + +new_window none +hide_edge_borders both + +focus_on_window_activation urgent + +floating_modifier $mod + +bindsym $mod+Return exec alacritty + +bindsym $mod+Shift+q kill + +bindsym $mod+d exec rofi -show run +bindsym $mod+Tab exec rofi -show window +bindsym $mod+p exec rofi-pass + +define([dir_bind], [ + bindsym $mod+$2 focus $1 + bindsym $mod+Shift+$2 move $1 + bindsym $mod+Mod1+$2 move workspace to output $1 +]) + +dir_bind(left, h) dir_bind(left, Left) +dir_bind(down, j) dir_bind(down, Down) +dir_bind(up, k) dir_bind(up, Up) +dir_bind(right, l) dir_bind(right, Right) + +bindsym $mod+v split h +bindsym $mod+g split v + +bindsym $mod+f fullscreen toggle + +bindsym $mod+s layout stacking +bindsym $mod+w layout tabbed +bindsym $mod+e layout toggle split + +bindsym $mod+Shift+space floating toggle +bindsym $mod+Ctrl+space focus mode_toggle + +bindsym $mod+a focus parent +bindsym $mod+b focus child + +forloop([i], 1,9, [ + bindsym $mod+i workspace i + bindsym $mod+Shift+i move container to workspace i +]) + +# reload the configuration file +bindsym $mod+Shift+c reload +# restart i3 inplace (preserves your layout/session, can be used to upgrade i3) +bindsym $mod+Shift+r restart +# exit i3 (logs you out of your X session) +bindsym $mod+Shift+e exec "i3-nagbar -t warning -m 'You pressed the exit shortcut. Do you really want to exit i3? This will end your X session.' -b 'Yes, exit i3' 'i3-msg exit'" + +# TODO +# ifelse(hostname, [petalius], [ +# # brightness control +# bindsym XF86MonBrightnessDown exec light -U 10 +# bindsym XF86MonBrightnessUp exec light -A 10 +# bindsym Shift+XF86MonBrightnessDown exec light -U 1 +# bindsym Shift+XF86MonBrightnessUp exec light -A 1 +# ]) + +# resize window (you can also use the mouse for that) +mode "resize" { + # These bindings trigger as soon as you enter the resize mode + + # Pressing left will shrink the window’s width. + # Pressing right will grow the window’s width. + # Pressing up will shrink the window’s height. + # Pressing down will grow the window’s height. + bindsym h resize shrink width 10 px or 10 ppt + bindsym j resize grow height 10 px or 10 ppt + bindsym k resize shrink height 10 px or 10 ppt + bindsym l resize grow width 10 px or 10 ppt + + # same bindings, but for the arrow keys + bindsym Left resize shrink width 10 px or 10 ppt + bindsym Down resize grow height 10 px or 10 ppt + bindsym Up resize shrink height 10 px or 10 ppt + bindsym Right resize grow width 10 px or 10 ppt + + # back to normal: Enter or Escape + bindsym Return mode "default" + bindsym Escape mode "default" +} +bindsym $mod+r mode "resize" + +mode "moveit" { + bindsym h move left 25 px + bindsym j move down 25 px + bindsym k move up 25 px + bindsym l move right 25 px + + # same bindings, but for the arrow keys + bindsym Left move left 25 px + bindsym Down move down 25 px + bindsym Up move up 25 px + bindsym Right move right 25 px + + # back to normal: Enter or Escape + bindsym Return mode "default" + bindsym Escape mode "default" +} +bindsym $mod+m mode "moveit" + +define([defcolor], [define(base$1, ["[#]$2"])]) +include([base16.m4]) + +# client.focused base0D base0D base00 base01 +# client.focused_inactive base02 base02 base03 base01 +# client.unfocused base01 base01 base03 base01 +# client.urgent base02 base08 base07 base08 + +# Start i3bar to display a workspace bar (plus the system information i3status +# finds out, if available) +bar { + status_command i3status + font pango:DejaVu Sans, Noto Sans CJK JP 8 + + colors { + separator base03 + background base01 + statusline base05 + focused_workspace base0C base0D base00 + active_workspace base02 base02 base07 + inactive_workspace base01 base01 base03 + urgent_workspace base08 base08 base07 + } +} + + +# exec --no-startup-id nm-applet +# exec --no-startup-id pa-applet +# exec --no-startup-id blueman-applet + +bindsym $mod+Ctrl+l exec --no-startup-id loginctl lock-session +exec swayidle -w \ + timeout 300 /home/gebner/etc/swaylock.sh \ + timeout 600 'swaymsg "output * dpms off"' \ + resume 'swaymsg "output * dpms on"' \ + before-sleep /home/gebner/etc/swaylock.sh + +output * bg gray solid_color +output * bg /home/gebner/Desktop/background.png fill + +input * xkb_layout us +input * xkb_variant altgr-intl +input * xkb_options caps:ctrl_modifier + +ifelse(hostname, [theba], [ + workspace 1 output eDP1 + workspace 9 output DP2 # VGA +]) + +# TODO +ifelse(hostname, [archachatina], [ +# exec --no-startup-id ~/.screenlayout/studyroom.sh +]) +ifelse(hostname, [decoysnail], [ +# exec --no-startup-id ~/.screenlayout/desk.sh +]) + +# pdfpc +assign [[window_role="presenter"]] 1 +assign [[window_role="presentation"]] 9 diff --git a/swaylock.sh b/swaylock.sh new file mode 100755 index 0000000..6bfa509 --- /dev/null +++ b/swaylock.sh @@ -0,0 +1,9 @@ +#!/bin/sh + +bg_img=~/Desktop/background.png + +if [ -f $bg_img ]; then + exec swaylock -f -i $bg_img +else + exec swaylock -f -c 777777 +fi