aboutsummaryrefslogtreecommitdiff
path: root/config
diff options
context:
space:
mode:
Diffstat (limited to 'config')
-rw-r--r--config/sway/config301
-rwxr-xr-xconfig/sway/conky-swaybar13
-rw-r--r--config/sway/conkyrc.json107
3 files changed, 421 insertions, 0 deletions
diff --git a/config/sway/config b/config/sway/config
new file mode 100644
index 0000000..04d7f63
--- /dev/null
+++ b/config/sway/config
@@ -0,0 +1,301 @@
+# Default config for sway
+#
+# Copy this to ~/.config/sway/config and edit it to your liking.
+#
+# Read `man 5 sway` for a complete reference.
+
+### Variables
+#
+# Logo key. Use Mod1 for Alt.
+set $mod Mod4
+
+# Home row direction keys, like vim
+set $left h
+set $down j
+set $up k
+set $right l
+# Your preferred terminal emulator
+set $term termite
+# Your preferred application launcher
+# Note: it's recommended that you pass the final command to sway
+set $menu dmenu_path | dmenu | xargs swaymsg exec
+
+### Output configuration
+#
+# Default wallpaper (more resolutions are available in __DATADIR__/backgrounds/sway/)
+output * bg $DOTFILES_LOCATION/wallpapers/nsa_wallpaper.png fill
+#
+# Example configuration:
+#
+# output HDMI-A-1 resolution 1920x1080 position 1920,0
+#
+# You can get the names of your outputs by running: swaymsg -t get_outputs
+output HDMI-A-1 resolution 1920x1080 position 1920,0
+output eDP-1 resolution 1920x1080 position 0,0
+
+### Idle configuration
+#
+# Example configuration:
+#
+#exec swayidle \
+# timeout 300 'swaylock -c 000000' \
+# timeout 600 'swaymsg "output * dpms off"' \
+# resume 'swaymsg "output * dpms on"' \
+# before-sleep 'swaylock -c 000000'
+#
+# This will lock your screen after 300 seconds of inactivity, then turn off
+# your displays after another 600 seconds, and turn your screens back on when
+# resumed. It will also lock your screen before your computer goes to sleep.
+exec swayidle \
+ timeout 300 'swaylock -c 000000' \
+ timeout 600 'swaymsg "output * dpms off"' \
+ resume 'swaymsg "output * dpms on"' \
+ before-sleep 'swaylock -c 000000'
+
+### Input configuration
+#
+# Example configuration:
+#
+# input "2:14:SynPS/2_Synaptics_TouchPad" {
+# dwt enabled
+# tap enabled
+# natural_scroll enabled
+# middle_emulation enabled
+# }
+#
+# You can get the names of your inputs by running: swaymsg -t get_inputs
+# Read `man 5 sway-input` for more information about this section.
+
+input "1739:10036:Synaptics_s3203" {
+ dwt enabled
+ tap enabled
+ natural_scroll enabled
+ middle_emulation enabled
+}
+input "5426:512:Razer_Reclusa_Keyboard" {
+ xkb_layout de
+ xkb_variant nodeadkeys
+ xkb_options grp:alt_shift_toggle
+ xkb_options caps:escape
+}
+input "1:1:AT_Translated_Set_2_keyboard" {
+ xkb_layout de
+ xkb_variant nodeadkeys
+ xkb_options grp:alt_shift_toggle
+ xkb_options caps:escape
+}
+
+### Key bindings
+#
+# Basics:
+#
+ # start a terminal
+ bindsym $mod+Return exec $term
+
+ # kill focused window
+ bindsym $mod+Shift+q kill
+
+ # start your launcher
+ bindsym $mod+d exec $menu
+
+ # Drag floating windows by holding down $mod and left mouse button.
+ # Resize them with right mouse button + $mod.
+ # Despite the name, also works for non-floating windows.
+ # Change normal to inverse to use left mouse button for resizing and right
+ # mouse button for dragging.
+ floating_modifier $mod normal
+
+ # reload the configuration file
+ bindsym $mod+Shift+c reload
+
+ # exit sway (logs you out of your Wayland session)
+ bindsym $mod+Shift+e exec swaynag -t warning -m 'You pressed the exit shortcut. Do you really want to exit sway? This will end your Wayland session.' -b 'Yes, exit sway' 'swaymsg exit'
+#
+# Moving around:
+#
+ # Move your focus around
+ bindsym $mod+$left focus left
+ bindsym $mod+$down focus down
+ bindsym $mod+$up focus up
+ bindsym $mod+$right focus right
+ # or use $mod+[up|down|left|right]
+ bindsym $mod+Left focus left
+ bindsym $mod+Down focus down
+ bindsym $mod+Up focus up
+ bindsym $mod+Right focus right
+
+ # _move_ the focused window with the same, but add Shift
+ bindsym $mod+Shift+$left move left
+ bindsym $mod+Shift+$down move down
+ bindsym $mod+Shift+$up move up
+ bindsym $mod+Shift+$right move right
+ # ditto, with arrow keys
+ bindsym $mod+Shift+Left move left
+ bindsym $mod+Shift+Down move down
+ bindsym $mod+Shift+Up move up
+ bindsym $mod+Shift+Right move right
+#
+# Workspaces:
+#
+ # switch to workspace
+ bindsym $mod+1 workspace 1
+ bindsym $mod+2 workspace 2:www
+ bindsym $mod+3 workspace 3:work
+ bindsym $mod+4 workspace 4
+ bindsym $mod+5 workspace 5
+ bindsym $mod+6 workspace 6
+ bindsym $mod+7 workspace 7
+ bindsym $mod+8 workspace 8:mail
+ bindsym $mod+9 workspace 9:music
+ bindsym $mod+0 workspace 10
+ # move focused container to workspace
+ bindsym $mod+Shift+1 move container to workspace 1
+ bindsym $mod+Shift+2 move container to workspace 2:www
+ bindsym $mod+Shift+3 move container to workspace 3:work
+ bindsym $mod+Shift+4 move container to workspace 4
+ bindsym $mod+Shift+5 move container to workspace 5
+ bindsym $mod+Shift+6 move container to workspace 6
+ bindsym $mod+Shift+7 move container to workspace 7
+ bindsym $mod+Shift+8 move container to workspace 8:mail
+ bindsym $mod+Shift+9 move container to workspace 9:music
+ bindsym $mod+Shift+0 move container to workspace 10
+ # Note: workspaces can have any name you want, not just numbers.
+ # We just use 1-10 as the default.
+
+ assign [class=qutebrowser] "2:www"
+
+ assign [class=Signal] 7
+ assign [title=lumail2] "8:mail"
+ # Maybe this works someday
+ assign [class=Spotify] "9:music"
+
+ # Assign workspaces to screens
+ workspace 1 output HDMI-A-1
+ workspace "2 www" output HDMI-A-1
+ workspace "3:work" output HDMI-A-1
+ workspace "7" output eDP-1
+ workspace "8:mail" output eDP-1
+ workspace "9:music" output eDP-1
+
+#
+# Layout stuff:
+#
+ # You can "split" the current object of your focus with
+ # $mod+b or $mod+v, for horizontal and vertical splits
+ # respectively.
+ bindsym $mod+b splith
+ bindsym $mod+v splitv
+
+ # Switch the current container between different layout styles
+ bindsym $mod+s layout stacking
+ bindsym $mod+w layout tabbed
+ bindsym $mod+e layout toggle split
+
+ # Make the current focus fullscreen
+ bindsym $mod+f fullscreen
+
+ # Toggle the current focus between tiling and floating mode
+ bindsym $mod+Shift+space floating toggle
+
+ # Swap focus between the tiling area and the floating area
+ bindsym $mod+space focus mode_toggle
+
+ # move focus to the parent container
+ bindsym $mod+a focus parent
+#
+# Scratchpad:
+#
+ # Sway has a "scratchpad", which is a bag of holding for windows.
+ # You can send windows there and get them back later.
+
+ # Move the currently focused window to the scratchpad
+ bindsym $mod+Shift+minus move scratchpad
+
+ # Show the next scratchpad window or hide the focused scratchpad window.
+ # If there are multiple scratchpad windows, this command cycles through them.
+ bindsym $mod+minus scratchpad show
+#
+# Resizing containers:
+#
+mode "resize" {
+ # left will shrink the containers width
+ # right will grow the containers width
+ # up will shrink the containers height
+ # down will grow the containers height
+ bindsym $left resize shrink width 10px
+ bindsym $down resize grow height 10px
+ bindsym $up resize shrink height 10px
+ bindsym $right resize grow width 10px
+
+ # ditto, with arrow keys
+ bindsym Left resize shrink width 10px
+ bindsym Down resize grow height 10px
+ bindsym Up resize shrink height 10px
+ bindsym Right resize grow width 10px
+
+ # return to default mode
+ bindsym Return mode "default"
+ bindsym Escape mode "default"
+}
+bindsym $mod+r mode "resize"
+
+#
+# Audio shortcuts
+#
+# Volume
+bindsym --locked XF86AudioLowerVolume exec $DOTFILES_LOCATION/scripts/audio_control.sh -5
+bindsym --locked XF86AudioRaiseVolume exec $DOTFILES_LOCATION/scripts/audio_control.sh +5
+bindsym --locked XF86AudioMute exec $DOTFILES_LOCATION/scripts/audio_control.sh toggle
+# Music
+bindsym --locked XF86AudioPrev exec $DOTFILES_LOCATION/scripts/media_control.sh prev
+bindsym --locked XF86AudioPlay exec $DOTFILES_LOCATION/scripts/media_control.sh toggle
+bindsym --locked XF86AudioNext exec $DOTFILES_LOCATION/scripts/media_control.sh next
+
+# Suspend
+bindsym $mod+F7 exec systemctl suspend
+
+#hide borders
+new_window pixel 3
+hide_edge_borders smart
+
+#
+# Status bar
+#
+# Read `man 5 sway-bar` for more information about this section.
+bar {
+ position bottom
+
+ # When the status_command prints a new line to stdout, swaybar updates.
+ # The default just shows the current date and time.
+ # status_command while date +'%Y-%m-%d %l:%M:%S %p'; do sleep 1; done
+
+ colors {
+ statusline #ffffff
+ background #323232
+ inactive_workspace #32323200 #32323200 #5c5c5c
+ }
+ status_command $HOME/.config/sway/conky-swaybar
+}
+
+#
+# Session
+#
+
+# Unlock GPG key
+exec --no-startup-id bash -c "echo | gpg -s > /dev/null"
+
+# Start notification service
+exec --no-startup-id mako
+
+# Start notification service
+# exec --no-startup-id nextcloud
+
+# Start touchpad daemon
+exec --no-startup-id syndaemon -i 1 -d
+
+# Start email sync
+exec --no-startup-id systemctl --user start offlineimap@FAU.service
+exec --no-startup-id systemctl --user start offlineimap@MUHQ.service
+exec --no-startup-id systemctl --user start offlineimap@SNFMT.service
+
+include /etc/sway/config.d/*
diff --git a/config/sway/conky-swaybar b/config/sway/conky-swaybar
new file mode 100755
index 0000000..56159c3
--- /dev/null
+++ b/config/sway/conky-swaybar
@@ -0,0 +1,13 @@
+#!/bin/sh
+
+# Send the header so that i3bar knows we want to use JSON:
+echo '{"version":1}'
+
+# Begin the endless array.
+echo '['
+
+# We send an empty first array of blocks to make the loop simpler:
+echo '[],'
+
+# Now send blocks with information forever:
+exec conky -c $HOME/.config/i3/conkyrc.json
diff --git a/config/sway/conkyrc.json b/config/sway/conkyrc.json
new file mode 100644
index 0000000..1c45da2
--- /dev/null
+++ b/config/sway/conkyrc.json
@@ -0,0 +1,107 @@
+conky.config = {
+ background = false,
+ out_to_x = false,
+ out_to_console = true,
+ update_interval = 1,
+ mpd_port = 6601,
+
+ -- Network interface must have an ip address to be considered up
+ if_up_strictness = "address"
+}
+
+conky.text = [[
+[
+ #{"name": "uptime", "color":"\#ffffff", "full_text":"${uptime_short}"},
+
+ ################## cpu #################
+
+ #{"name": "cpuTemperature", "full_text": "${exec sensors | grep -A 1 'temp1' | cut -c13-16 | sed '/^$/d'}C"},
+
+ {"name": "cpuStart", "color" : "\#ffffff", "full_text": "CPU: [", "separator": false},
+
+ {"name": "cpu1", "color": ${if_match ${cpu cpu1}<89}"\#ffffff"${else}"\#ff0000"${endif},
+ "full_text": "${cpu cpu1}%,", "separator": false},
+
+ {"name": "cpu2", "color": ${if_match ${cpu cpu2}<89}"\#ffffff"${else}"\#ff0000"${endif},
+
+ "full_text": "${cpu cpu2}%,", "separator": false},
+
+ {"name": "cpu3", "color": ${if_match ${cpu cpu3}<89}"\#ffffff"${else}"\#ff0000"${endif},
+ "full_text": "${cpu cpu3}%,", "separator": false},
+
+ {"name": "cpu4", "color": ${if_match ${cpu cpu4}<89}"\#ffffff"${else}"\#ff0000"${endif},
+ "full_text": "${cpu cpu4}%", "separator": false},
+
+ {"name": "cpuEnd", "color": "\#ffffff", "full_text": "]"},
+
+
+ ################ memory #########################
+
+ {"name": "memory", "color": ${if_match ${memperc}<80}"\#ffffff"${else}"\#ff0000"${endif},
+ "full_text": "RAM: ${memperc}%"},
+
+ #{"name": "disk", "color": "\#ffffff", "full_text": " ${fs_used_perc /}%"},
+
+
+ ############### music/ spotify/ mpd ###################
+
+ ${if_match "${nodename_short}"!="fishbowl"}
+ {"name":"music", "color": "\#ffffff", "full_text": "${exec $DOTFILES_LOCATION/scripts/media_status.sh}"},
+ ${endif}
+
+
+ ########### networking ########################
+
+ ${if_up wlp2s0}
+ {"name":"wifi", "color": ${if_match ${wireless_link_qual_perc wlp2s0}>60}"\#339966"${else}"\#FF9200"${endif},
+ "full_text": "${addr wlp2s0} ${wireless_link_qual_perc wlp2s0}%"},
+ {"name":"download", "color":"\#ffffff", "full_text": "⤋: ${downspeed wlp2s0}"},
+
+ ${else} ${if_up enp0s20u1}
+ {"name":"ethernet", "color": "\#339966", "full_text": "IP: ${addr enp0s20u1} "},
+ {"name":"download", "color":"\#ffffff", "full_text": "⤋: ${downspeed enp0s20u1}"},
+
+ ${else} ${if_up eth0}
+ {"name":"ethernet", "color": "\#339966", "full_text": "IP: ${addr eth0} "},
+ {"name":"download", "color":"\#ffffff", "full_text": "⤋: ${downspeed eth0}"},
+
+ ${else}
+ {"name":"nonet", "full_text": "no connection" },
+ ${endif}
+ ${endif}
+ ${endif}
+
+
+ ################ Volume ########################
+
+ {"name": "volume status", "color": "\#ffffff", "full_text":
+ "${exec $DOTFILES_LOCATION/scripts/audio_status.sh}"},
+
+
+ ################# Battery ####################
+
+ {"name": "battery","color":
+ ${if_match ${battery_percent BAT0}<50}
+ ${if_match ${battery_percent BAT0}<25}"\#ff0000"
+ ${else}"\#ff9200"
+ ${endif}
+ ${else}"\#ffffff"
+ ${endif}, "full_text": "${battery BAT0}"},
+
+ {"name": "battery","color":
+ ${if_match ${battery_percent BAT1}<50}
+ ${if_match ${battery_percent BAT1}<25}"\#ff0000"
+ ${else}"\#ff9200"
+ ${endif}
+ ${else}"\#ffffff"
+ ${endif}, "full_text": "${battery BAT1}"},
+
+
+ ############### Time ##################
+ ${if_match "${nodename_short}"!="fishbowl"}
+ {"name": "marks", "color": "\#FFFFFF",
+ "full_text": "${exec fish -c 'mark get -r=3'}", "separator": false},
+ ${endif}
+ {"name": "time", "color": "\#CFCFCF", "full_text": "${time %d/%m/%y} ${time %H:%M}"}
+],
+]]