From 64b3f5883e5523e5193ba1583790cc8cfafcfe6e Mon Sep 17 00:00:00 2001 From: Jokler Date: Tue, 14 May 2019 22:13:09 +0200 Subject: Add scripts, polybar and i3 config files --- .config/i3/config | 235 +++++++++++++++++++++++++++++ .config/i3/launch_compton.sh | 12 ++ .config/i3/layouts/coms.json | 29 ++++ .config/i3/layouts/music.json | 27 ++++ .config/i3/layouts/videos.json | 11 ++ .config/polybar/config | 333 +++++++++++++++++++++++++++++++++++++++++ .config/polybar/launch.sh | 14 ++ 7 files changed, 661 insertions(+) create mode 100644 .config/i3/config create mode 100755 .config/i3/launch_compton.sh create mode 100644 .config/i3/layouts/coms.json create mode 100644 .config/i3/layouts/music.json create mode 100644 .config/i3/layouts/videos.json create mode 100644 .config/polybar/config create mode 100755 .config/polybar/launch.sh (limited to '.config') diff --git a/.config/i3/config b/.config/i3/config new file mode 100644 index 0000000..91fd4ac --- /dev/null +++ b/.config/i3/config @@ -0,0 +1,235 @@ +# i3 config file (v4) +# Please see https://i3wm.org/docs/userguide.html for a complete reference! + +set $mod Mod4 + +# Font for window titles. +font pango:monospace 8 + +# Use Mouse+$mod to drag floating windows to their wanted position +floating_modifier $mod + +# start a terminal +bindsym $mod+Return exec current-term + +# kill focused window +bindsym $mod+Shift+q kill + +# change focus +bindsym $mod+j focus left +bindsym $mod+k focus down +bindsym $mod+l focus up +bindsym $mod+semicolon focus right + +# alternatively, you can use the cursor keys: +bindsym $mod+Left focus left +bindsym $mod+Down focus down +bindsym $mod+Up focus up +bindsym $mod+Right focus right + +# move focused window +bindsym $mod+Shift+j move left +bindsym $mod+Shift+k move down +bindsym $mod+Shift+l move up +bindsym $mod+Shift+semicolon move right + +# alternatively, you can use the cursor 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 + +# Super+Alt to move the entire workspace to another monitor +bindsym $mod+Mod1+j move workspace to output left +bindsym $mod+Mod1+semicolon move workspace to output right + +bindsym $mod+Mod1+Left move workspace to output left +bindsym $mod+Mod1+Right move workspace to output right + +# split in horizontal orientation +bindsym $mod+h split h + +# split in vertical orientation +bindsym $mod+v split v + +# enter fullscreen mode for the focused container +bindsym $mod+f fullscreen toggle + +# change container layout (stacked, tabbed, toggle split) +bindsym $mod+s layout stacking +bindsym $mod+w layout tabbed +bindsym $mod+e layout toggle split + +# toggle tiling / floating +bindsym $mod+Shift+d floating toggle + +bindsym $mod+Mod1+d sticky toggle + +# change focus between tiling / floating windows + bindsym $mod+d focus mode_toggle + +# focus the parent container +bindsym $mod+a focus parent + +set $mon_left "DVI-D-0" +set $mon_center "DVI-I-1" +set $mon_right "HDMI-0" + +# Workspaces for whatever +set $ws1 "1" +set $ws2 "2" +set $ws3 "3" +set $ws4 "4" +set $ws5 "5" +set $ws6 "6" +set $ws7 "7" +set $ws8 "8" +set $ws9 "9" +set $ws10 "10" + +# Extra workspaces (mostly for secondary monitors) +set $ws_coms "coms" +set $ws_videos "videos" +set $ws_music "music" +set $ws_steam "steam" +set $ws_game "game" + +workspace $ws_coms output $mon_left +workspace $ws_videos output $mon_right +workspace $ws_music output $mon_right +#workspace $ws_steam output $mon_center +#workspace $ws_game output $mon_center + +# switch to workspace +bindsym $mod+1 workspace $ws1 +bindsym $mod+2 workspace $ws2 +bindsym $mod+3 workspace $ws3 +bindsym $mod+4 workspace $ws4 +bindsym $mod+5 workspace $ws5 +bindsym $mod+6 workspace $ws6 +bindsym $mod+7 workspace $ws7 +bindsym $mod+8 workspace $ws8 +bindsym $mod+9 workspace $ws9 +bindsym $mod+0 workspace $ws10 + +bindsym $mod+grave workspace $ws_coms +bindsym $mod+minus workspace $ws_steam +bindsym $mod+g workspace $ws_game +bindsym $mod+m workspace $ws_music + +# move focused container to workspace +bindsym $mod+Shift+1 move container to workspace $ws1 +bindsym $mod+Shift+2 move container to workspace $ws2 +bindsym $mod+Shift+3 move container to workspace $ws3 +bindsym $mod+Shift+4 move container to workspace $ws4 +bindsym $mod+Shift+5 move container to workspace $ws5 +bindsym $mod+Shift+6 move container to workspace $ws6 +bindsym $mod+Shift+7 move container to workspace $ws7 +bindsym $mod+Shift+8 move container to workspace $ws8 +bindsym $mod+Shift+9 move container to workspace $ws9 +bindsym $mod+Shift+0 move container to workspace $ws10 + +bindsym $mod+Shift+grave move container to workspace $ws_coms +bindsym $mod+Shift+m move container to workspace $ws_music +bindsym $mod+Shift+minus move container to workspace $ws_steam +bindsym $mod+Shift+g move container to workspace $ws_game + +# 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 + +set $system_mode "[s]hutdown, [r]eboot, s[u]spend, [l]ogout, l[o]ck" +mode $system_mode { + bindsym s exec systemctl poweroff + bindsym r exec systemctl reboot + bindsym u exec systemctl suspend + bindsym l exec i3-msg exit + bindsym o exec betterlockscreen -l; mode "default" + + bindsym Return mode "default" + bindsym Escape mode "default" + bindsym $mod+Shift+e mode "default" +} + +bindsym $mod+Shift+e mode $system_mode + +mode "resize" { + bindsym j resize shrink width 1 px or 1 ppt + bindsym k resize grow height 1 px or 1 ppt + bindsym l resize shrink height 1 px or 1 ppt + bindsym semicolon resize grow width 1 px or 1 ppt + + bindsym Left resize shrink width 1 px or 1 ppt + bindsym Down resize grow height 1 px or 1 ppt + bindsym Up resize shrink height 1 px or 1 ppt + bindsym Right resize grow width 1 px or 1 ppt + + bindsym Shift+j resize shrink width 10 px or 10 ppt + bindsym Shift+k resize grow height 10 px or 10 ppt + bindsym Shift+l resize shrink height 10 px or 10 ppt + bindsym Shift+semicolon resize grow width 10 px or 10 ppt + + bindsym Shift+Left resize shrink width 10 px or 10 ppt + bindsym Shift+Down resize grow height 10 px or 10 ppt + bindsym Shift+Up resize shrink height 10 px or 10 ppt + bindsym Shift+Right resize grow width 10 px or 10 ppt + + bindsym Return mode "default" + bindsym Escape mode "default" + bindsym $mod+r mode "default" +} + +bindsym $mod+r mode "resize" + +# Rofi Bindings +bindsym $mod+space exec rofi -modi run -show run -matching fuzzy +bindsym $mod+p exec $HOME/scripts/rofi-passmenu -matching fuzzy +bindsym $mod+c exec clipmenu -p "copy" -matching fuzzy +bindsym $mod+i exec rofi-kvmap -matching fuzzy +bindsym $mod+equal exec rofi -show calc -modi calc -no-show-match -no-sort + +# Stupid idea i don't want to give up on +bindsym $mod+x exec rofi-workspaces -p "go to" -matching fuzzy +bindsym $mod+Shift+x exec rofi-workspaces --move -p "move to" -matching fuzzy + +# Volume controls +bindsym XF86AudioLowerVolume exec pactl set-sink-volume @DEFAULT_SINK@ -1% +bindsym XF86AudioRaiseVolume exec pactl set-sink-volume @DEFAULT_SINK@ +1% +bindsym XF86AudioMute exec pactl set-sink-mute @DEFAULT_SINK@ toggle + +for_window [class="^com-atlauncher-App"] floating enable +for_window [class="^TeamViewer"] floating enable +for_window [title="^chatterino$"] floating enable +for_window [title="^Emotes from .*$"] floating enable +for_window [title="^Steam Guard .*$"] floating enable +for_window [instance="upc.exe" title="Installing.*"] floating enable +for_window [instance="ripcord" title="User Profile"] floating enable + +# No borders in my world +for_window [class=".*"] border none + +gaps inner 5 +gaps outer 2 +smart_gaps yes + +# Do not touch my mouse while I use it! +mouse_warping none +focus_follows_mouse no + +# Layouts I want pretty much all the time +exec --no-startup-id i3-msg "workspace $ws_coms; append_layout $HOME/.config/i3/layouts/coms.json" +exec --no-startup-id i3-msg "workspace $ws_music; append_layout $HOME/.config/i3/layouts/music.json" +exec --no-startup-id i3-msg "workspace $ws_videos; append_layout $HOME/.config/i3/layouts/videos.json" + +exec --no-startup-id teamspeak3 +exec --no-startup-id sweechat +exec --no-startup-id svimpc +exec --no-startup-id scava +exec --no-startup-id mpv-gui +exec --no-startup-id pasystray + +# These get restarted with i3 to reload their config files +exec_always --no-startup-id $HOME/.config/polybar/launch.sh +exec_always --no-startup-id $HOME/.config/i3/launch_compton.sh +exec_always --no-startup-id nitrogen --restore diff --git a/.config/i3/launch_compton.sh b/.config/i3/launch_compton.sh new file mode 100755 index 0000000..1b2f5a1 --- /dev/null +++ b/.config/i3/launch_compton.sh @@ -0,0 +1,12 @@ +#!/bin/bash + +# Terminate already running bar instances +killall -q compton + +# Wait until the processes have been shut down +while pgrep -u $UID -x compton >/dev/null; do sleep 1; done + +# Launch Polybar, using default config location ~/.config/polybar/config +compton & + +echo "compton launched..." diff --git a/.config/i3/layouts/coms.json b/.config/i3/layouts/coms.json new file mode 100644 index 0000000..6e93d00 --- /dev/null +++ b/.config/i3/layouts/coms.json @@ -0,0 +1,29 @@ +{ + "layout": "splith", + "percent": 1, + "type": "con", + "nodes": [ + { + "name": "Terminal", + "percent": 0.7, + "swallows": [ + { + "instance": "^weechat$" + } + ], + "type": "con" + }, + { + "name": "TeamSpeak 3", + "percent": 0.3, + "swallows": [ + { + "class": "^TeamSpeak\\ 3$", + "instance": "^ts3client_linux_amd64$", + "title": "^TeamSpeak\\ 3$" + } + ], + "type": "con" + } + ] +} diff --git a/.config/i3/layouts/music.json b/.config/i3/layouts/music.json new file mode 100644 index 0000000..8f80aab --- /dev/null +++ b/.config/i3/layouts/music.json @@ -0,0 +1,27 @@ +{ + "layout": "splitv", + "percent": 1, + "type": "con", + "nodes": [ + { + "name": "MPD Interface", + "percent": 0.8, + "swallows": [ + { + "instance": "^vimpc$" + } + ], + "type": "con" + }, + { + "name": "Visualizer", + "percent": 0.2, + "swallows": [ + { + "instance": "^cava$" + } + ], + "type": "con" + } + ] +} diff --git a/.config/i3/layouts/videos.json b/.config/i3/layouts/videos.json new file mode 100644 index 0000000..b353149 --- /dev/null +++ b/.config/i3/layouts/videos.json @@ -0,0 +1,11 @@ +{ + "name": "mpv", + "percent": 1, + "swallows": [ + { + "class": "^mpv$", + "instance": "^gl$" + } + ], + "type": "con" +} diff --git a/.config/polybar/config b/.config/polybar/config new file mode 100644 index 0000000..ae2f8b9 --- /dev/null +++ b/.config/polybar/config @@ -0,0 +1,333 @@ + +[colors] +background = #2220 +background-alt = #444 +foreground = #dfdfdf +foreground-alt = #555 +primary = #0fb5aa +secondary = #e60053 +alert = #bd2c40 + + +[bar/left] +monitor = ${env:MONITOR:DVI-D-0} +width = 100% +height = 20 +radius = 0.0 +fixed-center = false + +background = ${colors.background} +foreground = ${colors.foreground} + +line-size = 3 +line-color = #f00 + +border-size = 4 +border-color = #00000000 + +padding-left = 0 +padding-right = 2 + +module-margin-left = 1 +module-margin-right = 2 + +font-0 = fixed:pixelsize=10;1 +font-1 = Unifont:fontformat=truetype:size=8:antialias=false;0 +font-2 = "WunconSiji:pixelsize=10;1" + +modules-left = date +modules-center = +modules-right = i3 + +scroll-up = i3wm-wsnext +scroll-down = i3wm-wsprev + +cursor-click = pointer +cursor-scroll = + + +[bar/center] +monitor = ${env:MONITOR:DVI-I-1} +width = 100% +height = 25 +radius = 0.0 +fixed-center = false + +background = ${colors.background} +foreground = ${colors.foreground} + +line-size = 3 +line-color = #f00 + +border-size = 4 +border-color = #00000000 + +padding-left = 0 +padding-right = 2 + +module-margin-left = 1 +module-margin-right = 2 + +font-0 = fixed:pixelsize=10;1 +font-1 = Unifont:fontformat=truetype:size=8:antialias=false;0 +font-2 = "WunconSiji:pixelsize=10;1" + +modules-left = i3 +modules-center = xwindow +modules-right = filesystem pulseaudio memory cpu eth temperature date powermenu + +tray-position = right +tray-padding = 2 + +scroll-up = i3wm-wsnext +scroll-down = i3wm-wsprev + +cursor-click = pointer +cursor-scroll = + + +[bar/right] +monitor = ${env:MONITOR:HDMI-0} +width = 100% +height = 20 +radius = 0.0 +fixed-center = false + +background = ${colors.background} +foreground = ${colors.foreground} + +line-size = 3 +line-color = #f00 + +border-size = 4 +border-color = #00000000 + +padding-left = 0 +padding-right = 2 + +module-margin-left = 1 +module-margin-right = 2 + +font-0 = fixed:pixelsize=10;1 +font-1 = Unifont:fontformat=truetype:size=8:antialias=false;0 +font-2 = "WunconSiji:pixelsize=10;1" + +modules-left = i3 +modules-center = mpd +modules-right = date + +scroll-up = i3wm-wsnext +scroll-down = i3wm-wsprev + +cursor-click = pointer +cursor-scroll = + + +[module/xwindow] +type = internal/xwindow +label = %title% +label-maxlen = 100 + + +[module/filesystem] +type = internal/fs +interval = 25 + +mount-0 = / + +label-mounted = %{F#0a81f5}%mountpoint%%{F-}: %percentage_used%% +label-unmounted = %mountpoint% not mounted +label-unmounted-foreground = ${colors.foreground-alt} + + +[module/i3] +type = internal/i3 +format = +index-sort = true +wrapping-scroll = false +reverse-scroll = false + +; Only show workspaces on the same output as the bar +pin-workspaces = true + +label-mode-padding = 2 +label-mode-foreground = #000 +label-mode-background = ${colors.primary} + +; focused = Active workspace on focused monitor +label-focused = %name% +label-focused-background = ${colors.background-alt} +label-focused-underline= ${colors.primary} +label-focused-padding = 2 + +; unfocused = Inactive workspace on any monitor +label-unfocused = %name% +label-unfocused-padding = 2 + +; visible = Active workspace on unfocused monitor +label-visible = %name% +label-visible-background = ${self.label-focused-background} +label-visible-underline = ${self.label-focused-underline} +label-visible-padding = 2 + +; urgent = Workspace with urgency hint set +label-urgent = %name% +label-urgent-background = ${colors.alert} +label-urgent-padding = 2 + + +[module/mpd] +type = internal/mpd +format-online = + +icon-prev =  +icon-stop =  +icon-play =  +icon-pause =  +icon-next =  + +label-song-maxlen = 25 +label-song-ellipsis = true + + +[module/cpu] +type = internal/cpu +interval = 2 +format-prefix = " " +format-prefix-foreground = ${colors.foreground-alt} +format-underline = #f90000 +label = %percentage:2%% + + +[module/memory] +type = internal/memory +interval = 2 +format =