diff --git a/README.md b/README.md
new file mode 100644
index 0000000..82bd4af
--- /dev/null
+++ b/README.md
@@ -0,0 +1,2 @@
+# Dotfiles20
+My new and improved dotfiles
diff --git a/laptop/home/.Xresources b/laptop/home/.Xresources
new file mode 100644
index 0000000..1c28c20
--- /dev/null
+++ b/laptop/home/.Xresources
@@ -0,0 +1,36 @@
+! scroll with output
+URxvt*scrollTtyOutput: true
+
+! scroll in relation to buffer (with mouse scroll or Shift+Page Up)
+URxvt*scrollWithBuffer: true
+
+! scroll back to the bottom on keypress
+URxvt*scrollTtyKeypress: true
+
+! Fix scrolling in second page of terminal
+URxvt.secondaryScreen: 1
+URxvt.secondaryScroll: 0
+URxvt.secondaryWheel: 1
+
+! Better font spacing
+URxvt.letterSpace: -1
+
+! Crosh-like copy and paste
+URxvt.clipboard.autocopy: true
+URxvt.keysym.M-c: perl:clipboard:copy
+URxvt.keysym.M-v: perl:clipboard:paste
+
+! Open links from the terminal
+URxvt.perl-ext-common: default,matcher
+URxvt.url-launcher: /usr/bin/xdg-open
+URxvt.matcher.button: 1
+
+! Highlight links
+URxvt.matcher.rend.0: Uline Bold fg5
+
+! Fix glyphs
+URxvt*skipBuiltinGlyphs: true
+
+! Custom font
+URxvt.font: xft:monaco:size=20
+
diff --git a/laptop/home/.config/i3/config b/laptop/home/.config/i3/config
new file mode 100644
index 0000000..72a4f6d
--- /dev/null
+++ b/laptop/home/.config/i3/config
@@ -0,0 +1,318 @@
+# This file has been auto-generated by i3-config-wizard(1).
+# It will not be overwritten, so edit it as you like.
+#
+# Should you change your keyboard layout some time, delete
+# this file and re-run i3-config-wizard(1).
+#
+
+# i3 config file (v4)
+#
+# Please see https://i3wm.org/docs/userguide.html for a complete reference!
+
+set $mod Mod4
+
+# Languages
+exec "setxkbmap -option 'grp:alt_shift_toggle' -layout us,jp -variant qwerty"
+exec gxkb
+# exec --no-startup-id fcitx -d
+
+# Font for window titles. Will also be used by the bar unless a different font
+# is used in the bar {} block below.
+font pango:monospace 8
+
+# This font is widely installed, provides lots of unicode glyphs, right-to-left
+# text rendering and scalability on retina/hidpi displays (thanks to pango).
+#font pango:DejaVu Sans Mono 8
+
+# Before i3 v4.8, we used to recommend this one as the default:
+# font -misc-fixed-medium-r-normal--13-120-75-75-C-70-iso10646-1
+# The font above is very space-efficient, that is, it looks good, sharp and
+# clear in small sizes. However, its unicode glyph coverage is limited, the old
+# X core fonts rendering does not support right-to-left and this being a bitmap
+# font, it doesn’t scale on retina/hidpi displays.
+
+# Use Mouse+$mod to drag floating windows to their wanted position
+floating_modifier $mod
+
+# Create a scratchpad
+#exec gnome-terminal --title "scratch"
+#[title="scratch"] move scratchpad
+bindsym $mod+Shift+n mark "scratch", move scratchpad
+bindsym $mod+n [con_mark="scratch"] scratchpad show
+
+# Rick roll
+bindsym $mod+Control+r exec xdg-open /home/ewpratten/Music/rickroll.mp3
+
+# start a terminal
+bindsym $mod+Return exec i3-sensible-terminal
+
+# kill focused window
+bindsym $mod+Shift+q kill
+
+# start dmenu (a program launcher)
+#bindsym $mod+d exec dmenu_run
+
+# Show custom launcher
+bindsym $mod+Shift+w exec sh /home/ewpratten/projects/menus/scripts/web.sh
+
+# Calculator
+bindsym $mod+c exec xsel -o | dmenu -p Calculate: | xargs echo | bc 2>&1 | dmenu -p Answer: | xsel -i
+
+# use rofi instead
+
+bindsym $mod+d exec rofi -show run
+bindsym $mod+Shift+d exec rofi -show drun
+
+# There also is the (new) i3-dmenu-desktop which only displays applications
+# shipping a .desktop file. It is a wrapper around dmenu, so you need that
+# installed.
+
+
+# settings
+# byndsym $mod+Control+s exec env XDG_CURRENT_DESKTOP=GNOME gnome-control-center
+
+exec --no-startup-id nitrogen --restore
+#exec_always --no-startup-id compton -b --respect-prop-shadow
+#exec_always --no-startup-id $HOME/.config/compton/launch.sh
+exec --no-startup-id nm-applet
+exec --no-startup-id volumeicon
+exec --no-startup-id kdeconnect-indicator
+exec /home/ewpratten/bin/conk
+#exec_always --no-startup-id $HOME/.config/polybar/launch.sh
+
+# This allows the gnome password prompt. But requires: policykit-desktop-privileges policykit-1-gnome
+exec --no-startup-id /usr/lib/policykit-1-gnome/polkit-gnome-authentication-agent-1
+
+# gaps
+for_window [class=".*"] border pixel 0
+gaps outer 5
+gaps inner 5
+
+
+# smart_gaps on
+
+# windows style workspace switcher
+
+bindsym $mod+Control+Right workspace next
+bindsym $mod+Control+Left workspace prev
+
+workspace_auto_back_and_forth yes
+
+# Set window focusing to only focus if requester is on screen
+
+focus_on_window_activation smart
+
+# Audio Manager
+
+bindsym $mod+Shift+a exec pavucontrol
+
+# Drop-down terminal
+#exec --no-startup-id i3-sensible-terminal --title="metask"
+#for_window [instance="metask"] floating enable;
+#for_window [instance="metask"] move scratchpad; [instance="metask"] scratchpad show; move position 0px 22px; resize shrink height 300px; resize grow width 683px; move scratchpad
+#bindsym $mod+t [instance="metask"] scratchpad show
+
+# window lock
+
+bindsym $mod+Control+l exec gnome-screensaver-command -l
+
+# locker
+set $Locker i3lock -c 141414 -e -f -i /home/ewpratten/Pictures/lockscreen.png && sleep 1
+
+set $mode_system System (l) lock, (e) logout, (s) suspend, (h) hibernate, (r) reboot, (Shift+s) shutdown, (b) fix mouse
+mode "$mode_system" {
+ bindsym l exec --no-startup-id $Locker, mode "default"
+ bindsym e exec --no-startup-id i3-msg exit, mode "default"
+ bindsym s exec --no-startup-id $Locker && systemctl suspend, mode "default"
+ bindsym h exec --no-startup-id $Locker && systemctl hibernate, mode "default"
+ bindsym r exec --no-startup-id systemctl reboot, mode "default"
+ bindsym Shift+s exec --no-startup-id systemctl poweroff -i, mode "default"
+ bindsym b exec --no-startup-id sudo modprobe -r psmouse && sudo modprobe psmouse, mode "default"
+
+ # back to normal: Enter or Escape
+ bindsym Return mode "default"
+ bindsym Escape mode "default"
+}
+
+bindsym $mod+Delete mode "$mode_system"
+
+set $mode_monitor Move current workspace with VIM keys
+mode "$mode_monitor" {
+ bindsym h move workspace to output left
+ bindsym l move workspace to output right
+ bindsym j move workspace to output up
+ bindsym k move workspace to output down
+
+ bindsym Return mode "default"
+ bindsym Escape mode "default"
+
+}
+
+bindsym $mod+m mode "$mode_monitor"
+
+# Go to sleep
+
+bindsym $mod+Shift+s exec systemctl suspend
+
+# Screen Shots
+bindsym Print exec scrot '%Y-%m-%d-%s_screenshot_$wx$h.jpg' -e 'mv $f ~/Pictures/'
+bindsym Control+Print exec gnome-screenshot -i
+
+# Pulse Audio controls
+bindsym XF86AudioRaiseVolume exec --no-startup-id pactl set-sink-volume 0 +5% #increase sound volume
+bindsym XF86AudioLowerVolume exec --no-startup-id pactl set-sink-volume 0 -5% #decrease sound volume
+bindsym XF86AudioMute exec --no-startup-id pactl set-sink-mute 0 toggle # mute sound
+
+# Sreen brightness controls
+bindsym XF86MonBrightnessUp exec xbacklight -inc 20 # increase screen brightness
+bindsym XF86MonBrightnessDown exec xbacklight -dec 20 # decrease screen brightness
+
+# Media player controls
+bindsym XF86AudioPlay exec playerctl play
+bindsym XF86AudioPause exec playerctl pause
+bindsym XF86AudioNext exec playerctl next
+bindsym XF86AudioPrev exec playerctl previous
+
+# 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
+
+# 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+space floating toggle
+
+# change focus between tiling / floating windows
+bindsym $mod+space focus mode_toggle
+
+# focus the parent container
+bindsym $mod+a focus parent
+
+# focus the child container
+#bindsym $mod+d focus child
+
+# Define names for default workspaces for which we configure key bindings later on.
+# We use variables to avoid repeating the names in multiple places.
+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"
+
+# Auto-start programs
+exec --no-startup-id i3msg "1"; exec /usr/bin/firefox
+
+# 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
+
+# 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
+
+# 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'"
+
+# 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 j resize shrink width 10 px or 10 ppt
+ bindsym k resize grow height 10 px or 10 ppt
+ bindsym l resize shrink height 10 px or 10 ppt
+ bindsym semicolon 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 or $mod+r
+ bindsym Return mode "default"
+ bindsym Escape mode "default"
+ bindsym $mod+r mode "default"
+}
+
+bindsym $mod+r mode "resize"
+
+# Start i3bar to display a workspace bar (plus the system information i3status
+# finds out, if available)
+bar {
+ colors {
+
+ # colour of border, background, and text
+ focused_workspace #2f343f #bf616a #d8dee8
+ active_workspace #2f343f #2f343f #d8dee8
+ inactive_workspace #2f343f #2f343f #d8dee8
+ urgent_workspace #2f343f #ebcb8b #2f343f
+
+ background #002b36
+ }
+ status_command i3status
+ position top
+}
+
+new_window 1pixel
+
diff --git a/laptop/home/.config/i3/scratch.sh b/laptop/home/.config/i3/scratch.sh
new file mode 100755
index 0000000..ea75414
--- /dev/null
+++ b/laptop/home/.config/i3/scratch.sh
@@ -0,0 +1,3 @@
+#! /bin/bash
+i3-msg exec "gnome-ternimal --title scratch"
+i3-msg '[ title="scratch" ] move scratchpad'
diff --git a/laptop/home/.config/i3status/config b/laptop/home/.config/i3status/config
new file mode 100644
index 0000000..e08c362
--- /dev/null
+++ b/laptop/home/.config/i3status/config
@@ -0,0 +1,82 @@
+general{
+ output_format = "i3bar"
+ colors = true
+ interval = 5
+}
+
+order += "cpu_usage"
+#order += "cpu_temperature 0"
+order += "disk /"
+order += "ethernet enp0s31f6"
+order += "wireless wlp3s0"
+order += "ethernet tun0"
+#order += "wireless wlan0"
+#order += "ethernet eth0"
+order += "volume master"
+order += "battery 0"
+order += "battery 1"
+order += "tztime local"
+
+battery 0 {
+ format = "%status %percentage %remaining"
+ format_down = "No battery"
+ status_chr = "⚡ CHR"
+ status_bat = "🔋 BAT"
+ status_unk = "? UNK"
+ status_full = "☻ FULL"
+ low_threshold = 10
+}
+battery 1 {
+ format = "%status %percentage %remaining"
+ format_down = "No battery"
+ status_chr = "⚡ CHR"
+ status_bat = "🔋 BAT"
+ status_unk = "? UNK"
+ status_full = "☻ FULL"
+ low_threshold = 10
+}
+
+cpu_usage {
+ format = "CPU: %usage"
+}
+
+cpu_temperature 0 {
+ format = "T: %degrees °C"
+ path = "/sys/devices/platform/coretemp.0/temp1_input"
+}
+
+disk "/" {
+ format = "%free Free"
+}
+
+volume master {
+ format = "♪: %volume"
+ format_muted = "♪: muted (%volume)"
+ device = "default"
+ mixer = "Master"
+ mixer_idx = 0
+}
+
+
+
+tztime local {
+ format = "%time"
+ format_time = "%a %-d %b %I:%M"
+}
+
+wireless wlp3s0 {
+ format_up = "WIFI: (%quality at %essid, %bitrate) %ip"
+ format_down = "WIFI: down"
+}
+
+ethernet enp0s31f6 {
+ # if you use %speed, i3status requires the cap_net_admin capability
+ format_up = "ETH: %ip (%speed)"
+ format_down = "ETH: down"
+}
+
+ethernet tun0 {
+ format_up = "VPN: %ip"
+ format_down = "VPN: down"
+}
+
diff --git a/laptop/home/.conkyrc b/laptop/home/.conkyrc
new file mode 100644
index 0000000..afa0a3a
--- /dev/null
+++ b/laptop/home/.conkyrc
@@ -0,0 +1,82 @@
+--[[
+Conky, a system monitor, based on torsmo
+
+Any original torsmo code is licensed under the BSD license
+
+All code written since the fork of torsmo is licensed under the GPL
+
+Please see COPYING for details
+
+Copyright (c) 2004, Hannu Saransaari and Lauri Hakkarainen
+Copyright (c) 2005-2019 Brenden Matthews, Philip Kovacs, et. al. (see AUTHORS)
+All rights reserved.
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+You should have received a copy of the GNU General Public License
+along with this program. If not, see .
+]]
+
+conky.config = {
+ alignment = 'top_left',
+ background = false,
+ border_width = 1,
+ cpu_avg_samples = 2,
+ default_color = 'white',
+ default_outline_color = 'white',
+ default_shade_color = 'white',
+ draw_borders = false,
+ draw_graph_borders = true,
+ draw_outline = false,
+ draw_shades = false,
+ double_buffer = true,
+ use_xft = true,
+ font = 'DejaVu Sans Mono:size=12',
+ gap_x = 1600,
+ gap_y = 60,
+ minimum_height = 5,
+ minimum_width = 5,
+ net_avg_samples = 2,
+ no_buffers = true,
+ out_to_console = false,
+ out_to_ncurses = false,
+ out_to_stderr = false,
+ out_to_x = true,
+ extra_newline = false,
+ own_window = true,
+ own_window_colour = '#003e60',
+ own_window_class = 'Conky',
+ own_window_type = 'override',
+ stippled_borders = 0,
+ update_interval = 1.0,
+ uppercase = false,
+ use_spacer = 'none',
+ show_graph_scale = false,
+ show_graph_range = false
+}
+
+conky.text = [[
+${alignc}${font Open Sans Light:pixelsize=55}${time %H:%M}$font
+${alignc}${color1}${time %A} ${time %d} ${time %B} ${time %Y}$font
+
+${color1}CPU${alignr}${cpu cpu0}%${color0}
+${top name 1} $alignr ${top cpu 1}%
+${top name 2} $alignr ${top cpu 2}%
+${top name 3} $alignr ${top cpu 3}%
+${top name 4} $alignr ${top cpu 4}%
+${top name 5} $alignr ${top cpu 5}%
+
+${color1}RAM${alignr}${mem}${color0}
+${top_mem name 1} $alignr ${top_mem mem_res 1}
+${top_mem name 2} $alignr ${top_mem mem_res 2}
+${top_mem name 3} $alignr ${top_mem mem_res 3}
+${top_mem name 4} $alignr ${top_mem mem_res 4}
+${top_mem name 5} $alignr ${top_mem mem_res 5}
+]];
diff --git a/laptop/home/.profile b/laptop/home/.profile
new file mode 100644
index 0000000..d89ea5a
--- /dev/null
+++ b/laptop/home/.profile
@@ -0,0 +1,27 @@
+# ~/.profile: executed by the command interpreter for login shells.
+# This file is not read by bash(1), if ~/.bash_profile or ~/.bash_login
+# exists.
+# see /usr/share/doc/bash/examples/startup-files for examples.
+# the files are located in the bash-doc package.
+
+# the default umask is set in /etc/profile; for setting the umask
+# for ssh logins, install and configure the libpam-umask package.
+#umask 022
+
+# if running bash
+if [ -n "$BASH_VERSION" ]; then
+ # include .bashrc if it exists
+ if [ -f "$HOME/.bashrc" ]; then
+ . "$HOME/.bashrc"
+ fi
+fi
+
+# set PATH so it includes user's private bin if it exists
+if [ -d "$HOME/bin" ] ; then
+ PATH="$HOME/bin:$PATH"
+fi
+
+# set PATH so it includes user's private bin if it exists
+if [ -d "$HOME/.local/bin" ] ; then
+ PATH="$HOME/.local/bin:$PATH"
+fi
diff --git a/laptop/home/.spacemacs b/laptop/home/.spacemacs
new file mode 100644
index 0000000..7c5f6b4
--- /dev/null
+++ b/laptop/home/.spacemacs
@@ -0,0 +1,329 @@
+;; -*- mode: emacs-lisp -*-
+;; This file is loaded by Spacemacs at startup.
+;; It must be stored in your home directory.
+
+(defun dotspacemacs/layers ()
+ "Configuration Layers declaration.
+You should not put any user code in this function besides modifying the variable
+values."
+ (setq-default
+ ;; Base distribution to use. This is a layer contained in the directory
+ ;; `+distribution'. For now available distributions are `spacemacs-base'
+ ;; or `spacemacs'. (default 'spacemacs)
+ dotspacemacs-distribution 'spacemacs
+ ;; Lazy installation of layers (i.e. layers are installed only when a file
+ ;; with a supported type is opened). Possible values are `all', `unused'
+ ;; and `nil'. `unused' will lazy install only unused layers (i.e. layers
+ ;; not listed in variable `dotspacemacs-configuration-layers'), `all' will
+ ;; lazy install any layer that support lazy installation even the layers
+ ;; listed in `dotspacemacs-configuration-layers'. `nil' disable the lazy
+ ;; installation feature and you have to explicitly list a layer in the
+ ;; variable `dotspacemacs-configuration-layers' to install it.
+ ;; (default 'unused)
+ dotspacemacs-enable-lazy-installation 'unused
+ ;; If non-nil then Spacemacs will ask for confirmation before installing
+ ;; a layer lazily. (default t)
+ dotspacemacs-ask-for-lazy-installation t
+ ;; If non-nil layers with lazy install support are lazy installed.
+ ;; List of additional paths where to look for configuration layers.
+ ;; Paths must have a trailing slash (i.e. `~/.mycontribs/')
+ dotspacemacs-configuration-layer-path '()
+ ;; List of configuration layers to load.
+ dotspacemacs-configuration-layers
+ '(
+ ;; ----------------------------------------------------------------
+ ;; Example of useful layers you may want to use right away.
+ ;; Uncomment some layer names and press (Vim style) or
+ ;; (Emacs style) to install them.
+ ;; ----------------------------------------------------------------
+ helm
+ ;; auto-completion
+ ;; better-defaults
+ emacs-lisp
+ ;; git
+ ;; markdown
+ ;; org
+ ;; (shell :variables
+ ;; shell-default-height 30
+ ;; shell-default-position 'bottom)
+ ;; spell-checking
+ ;; syntax-checking
+ ;; version-control
+ )
+ ;; List of additional packages that will be installed without being
+ ;; wrapped in a layer. If you need some configuration for these
+ ;; packages, then consider creating a layer. You can also put the
+ ;; configuration in `dotspacemacs/user-config'.
+ dotspacemacs-additional-packages '()
+ ;; A list of packages that cannot be updated.
+ dotspacemacs-frozen-packages '()
+ ;; A list of packages that will not be installed and loaded.
+ dotspacemacs-excluded-packages '()
+ ;; Defines the behaviour of Spacemacs when installing packages.
+ ;; Possible values are `used-only', `used-but-keep-unused' and `all'.
+ ;; `used-only' installs only explicitly used packages and uninstall any
+ ;; unused packages as well as their unused dependencies.
+ ;; `used-but-keep-unused' installs only the used packages but won't uninstall
+ ;; them if they become unused. `all' installs *all* packages supported by
+ ;; Spacemacs and never uninstall them. (default is `used-only')
+ dotspacemacs-install-packages 'used-only))
+
+(defun dotspacemacs/init ()
+ "Initialization function.
+This function is called at the very startup of Spacemacs initialization
+before layers configuration.
+You should not put any user code in there besides modifying the variable
+values."
+ ;; This setq-default sexp is an exhaustive list of all the supported
+ ;; spacemacs settings.
+ (setq-default
+ ;; If non nil ELPA repositories are contacted via HTTPS whenever it's
+ ;; possible. Set it to nil if you have no way to use HTTPS in your
+ ;; environment, otherwise it is strongly recommended to let it set to t.
+ ;; This variable has no effect if Emacs is launched with the parameter
+ ;; `--insecure' which forces the value of this variable to nil.
+ ;; (default t)
+ dotspacemacs-elpa-https t
+ ;; Maximum allowed time in seconds to contact an ELPA repository.
+ dotspacemacs-elpa-timeout 5
+ ;; If non nil then spacemacs will check for updates at startup
+ ;; when the current branch is not `develop'. Note that checking for
+ ;; new versions works via git commands, thus it calls GitHub services
+ ;; whenever you start Emacs. (default nil)
+ dotspacemacs-check-for-update nil
+ ;; If non-nil, a form that evaluates to a package directory. For example, to
+ ;; use different package directories for different Emacs versions, set this
+ ;; to `emacs-version'.
+ dotspacemacs-elpa-subdirectory nil
+ ;; One of `vim', `emacs' or `hybrid'.
+ ;; `hybrid' is like `vim' except that `insert state' is replaced by the
+ ;; `hybrid state' with `emacs' key bindings. The value can also be a list
+ ;; with `:variables' keyword (similar to layers). Check the editing styles
+ ;; section of the documentation for details on available variables.
+ ;; (default 'vim)
+ dotspacemacs-editing-style 'vim
+ ;; If non nil output loading progress in `*Messages*' buffer. (default nil)
+ dotspacemacs-verbose-loading nil
+ ;; Specify the startup banner. Default value is `official', it displays
+ ;; the official spacemacs logo. An integer value is the index of text
+ ;; banner, `random' chooses a random text banner in `core/banners'
+ ;; directory. A string value must be a path to an image format supported
+ ;; by your Emacs build.
+ ;; If the value is nil then no banner is displayed. (default 'official)
+ dotspacemacs-startup-banner 'official
+ ;; List of items to show in startup buffer or an association list of
+ ;; the form `(list-type . list-size)`. If nil then it is disabled.
+ ;; Possible values for list-type are:
+ ;; `recents' `bookmarks' `projects' `agenda' `todos'."
+ ;; List sizes may be nil, in which case
+ ;; `spacemacs-buffer-startup-lists-length' takes effect.
+ dotspacemacs-startup-lists '((recents . 5)
+ (projects . 7))
+ ;; True if the home buffer should respond to resize events.
+ dotspacemacs-startup-buffer-responsive t
+ ;; Default major mode of the scratch buffer (default `text-mode')
+ dotspacemacs-scratch-mode 'text-mode
+ ;; List of themes, the first of the list is loaded when spacemacs starts.
+ ;; Press T n to cycle to the next theme in the list (works great
+ ;; with 2 themes variants, one dark and one light)
+ dotspacemacs-themes '(spacemacs-dark
+ spacemacs-light)
+ ;; If non nil the cursor color matches the state color in GUI Emacs.
+ dotspacemacs-colorize-cursor-according-to-state t
+ ;; Default font, or prioritized list of fonts. `powerline-scale' allows to
+ ;; quickly tweak the mode-line size to make separators look not too crappy.
+ dotspacemacs-default-font '("Source Code Pro"
+ :size 13
+ :weight normal
+ :width normal
+ :powerline-scale 1.1)
+ ;; The leader key
+ dotspacemacs-leader-key "SPC"
+ ;; The key used for Emacs commands (M-x) (after pressing on the leader key).
+ ;; (default "SPC")
+ dotspacemacs-emacs-command-key "SPC"
+ ;; The key used for Vim Ex commands (default ":")
+ dotspacemacs-ex-command-key ":"
+ ;; The leader key accessible in `emacs state' and `insert state'
+ ;; (default "M-m")
+ dotspacemacs-emacs-leader-key "M-m"
+ ;; Major mode leader key is a shortcut key which is the equivalent of
+ ;; pressing ` m`. Set it to `nil` to disable it. (default ",")
+ dotspacemacs-major-mode-leader-key ","
+ ;; Major mode leader key accessible in `emacs state' and `insert state'.
+ ;; (default "C-M-m")
+ dotspacemacs-major-mode-emacs-leader-key "C-M-m"
+ ;; These variables control whether separate commands are bound in the GUI to
+ ;; the key pairs C-i, TAB and C-m, RET.
+ ;; Setting it to a non-nil value, allows for separate commands under
+ ;; and TAB or and RET.
+ ;; In the terminal, these pairs are generally indistinguishable, so this only
+ ;; works in the GUI. (default nil)
+ dotspacemacs-distinguish-gui-tab nil
+ ;; If non nil `Y' is remapped to `y$' in Evil states. (default nil)
+ dotspacemacs-remap-Y-to-y$ nil
+ ;; If non-nil, the shift mappings `<' and `>' retain visual state if used
+ ;; there. (default t)
+ dotspacemacs-retain-visual-state-on-shift t
+ ;; If non-nil, J and K move lines up and down when in visual mode.
+ ;; (default nil)
+ dotspacemacs-visual-line-move-text nil
+ ;; If non nil, inverse the meaning of `g' in `:substitute' Evil ex-command.
+ ;; (default nil)
+ dotspacemacs-ex-substitute-global nil
+ ;; Name of the default layout (default "Default")
+ dotspacemacs-default-layout-name "Default"
+ ;; If non nil the default layout name is displayed in the mode-line.
+ ;; (default nil)
+ dotspacemacs-display-default-layout nil
+ ;; If non nil then the last auto saved layouts are resume automatically upon
+ ;; start. (default nil)
+ dotspacemacs-auto-resume-layouts nil
+ ;; Size (in MB) above which spacemacs will prompt to open the large file
+ ;; literally to avoid performance issues. Opening a file literally means that
+ ;; no major mode or minor modes are active. (default is 1)
+ dotspacemacs-large-file-size 1
+ ;; Location where to auto-save files. Possible values are `original' to
+ ;; auto-save the file in-place, `cache' to auto-save the file to another
+ ;; file stored in the cache directory and `nil' to disable auto-saving.
+ ;; (default 'cache)
+ dotspacemacs-auto-save-file-location 'cache
+ ;; Maximum number of rollback slots to keep in the cache. (default 5)
+ dotspacemacs-max-rollback-slots 5
+ ;; If non nil, `helm' will try to minimize the space it uses. (default nil)
+ dotspacemacs-helm-resize nil
+ ;; if non nil, the helm header is hidden when there is only one source.
+ ;; (default nil)
+ dotspacemacs-helm-no-header nil
+ ;; define the position to display `helm', options are `bottom', `top',
+ ;; `left', or `right'. (default 'bottom)
+ dotspacemacs-helm-position 'bottom
+ ;; Controls fuzzy matching in helm. If set to `always', force fuzzy matching
+ ;; in all non-asynchronous sources. If set to `source', preserve individual
+ ;; source settings. Else, disable fuzzy matching in all sources.
+ ;; (default 'always)
+ dotspacemacs-helm-use-fuzzy 'always
+ ;; If non nil the paste micro-state is enabled. When enabled pressing `p`
+ ;; several times cycle between the kill ring content. (default nil)
+ dotspacemacs-enable-paste-transient-state nil
+ ;; Which-key delay in seconds. The which-key buffer is the popup listing
+ ;; the commands bound to the current keystroke sequence. (default 0.4)
+ dotspacemacs-which-key-delay 0.4
+ ;; Which-key frame position. Possible values are `right', `bottom' and
+ ;; `right-then-bottom'. right-then-bottom tries to display the frame to the
+ ;; right; if there is insufficient space it displays it at the bottom.
+ ;; (default 'bottom)
+ dotspacemacs-which-key-position 'bottom
+ ;; If non nil a progress bar is displayed when spacemacs is loading. This
+ ;; may increase the boot time on some systems and emacs builds, set it to
+ ;; nil to boost the loading time. (default t)
+ dotspacemacs-loading-progress-bar t
+ ;; If non nil the frame is fullscreen when Emacs starts up. (default nil)
+ ;; (Emacs 24.4+ only)
+ dotspacemacs-fullscreen-at-startup nil
+ ;; If non nil `spacemacs/toggle-fullscreen' will not use native fullscreen.
+ ;; Use to disable fullscreen animations in OSX. (default nil)
+ dotspacemacs-fullscreen-use-non-native nil
+ ;; If non nil the frame is maximized when Emacs starts up.
+ ;; Takes effect only if `dotspacemacs-fullscreen-at-startup' is nil.
+ ;; (default nil) (Emacs 24.4+ only)
+ dotspacemacs-maximized-at-startup nil
+ ;; A value from the range (0..100), in increasing opacity, which describes
+ ;; the transparency level of a frame when it's active or selected.
+ ;; Transparency can be toggled through `toggle-transparency'. (default 90)
+ dotspacemacs-active-transparency 90
+ ;; A value from the range (0..100), in increasing opacity, which describes
+ ;; the transparency level of a frame when it's inactive or deselected.
+ ;; Transparency can be toggled through `toggle-transparency'. (default 90)
+ dotspacemacs-inactive-transparency 90
+ ;; If non nil show the titles of transient states. (default t)
+ dotspacemacs-show-transient-state-title t
+ ;; If non nil show the color guide hint for transient state keys. (default t)
+ dotspacemacs-show-transient-state-color-guide t
+ ;; If non nil unicode symbols are displayed in the mode line. (default t)
+ dotspacemacs-mode-line-unicode-symbols t
+ ;; If non nil smooth scrolling (native-scrolling) is enabled. Smooth
+ ;; scrolling overrides the default behavior of Emacs which recenters point
+ ;; when it reaches the top or bottom of the screen. (default t)
+ dotspacemacs-smooth-scrolling t
+ ;; Control line numbers activation.
+ ;; If set to `t' or `relative' line numbers are turned on in all `prog-mode' and
+ ;; `text-mode' derivatives. If set to `relative', line numbers are relative.
+ ;; This variable can also be set to a property list for finer control:
+ ;; '(:relative nil
+ ;; :disabled-for-modes dired-mode
+ ;; doc-view-mode
+ ;; markdown-mode
+ ;; org-mode
+ ;; pdf-view-mode
+ ;; text-mode
+ ;; :size-limit-kb 1000)
+ ;; (default nil)
+ dotspacemacs-line-numbers nil
+ ;; Code folding method. Possible values are `evil' and `origami'.
+ ;; (default 'evil)
+ dotspacemacs-folding-method 'evil
+ ;; If non-nil smartparens-strict-mode will be enabled in programming modes.
+ ;; (default nil)
+ dotspacemacs-smartparens-strict-mode nil
+ ;; If non-nil pressing the closing parenthesis `)' key in insert mode passes
+ ;; over any automatically added closing parenthesis, bracket, quote, etc…
+ ;; This can be temporary disabled by pressing `C-q' before `)'. (default nil)
+ dotspacemacs-smart-closing-parenthesis nil
+ ;; Select a scope to highlight delimiters. Possible values are `any',
+ ;; `current', `all' or `nil'. Default is `all' (highlight any scope and
+ ;; emphasis the current one). (default 'all)
+ dotspacemacs-highlight-delimiters 'all
+ ;; If non nil, advise quit functions to keep server open when quitting.
+ ;; (default nil)
+ dotspacemacs-persistent-server nil
+ ;; List of search tool executable names. Spacemacs uses the first installed
+ ;; tool of the list. Supported tools are `ag', `pt', `ack' and `grep'.
+ ;; (default '("ag" "pt" "ack" "grep"))
+ dotspacemacs-search-tools '("ag" "pt" "ack" "grep")
+ ;; The default package repository used if no explicit repository has been
+ ;; specified with an installed package.
+ ;; Not used for now. (default nil)
+ dotspacemacs-default-package-repository nil
+ ;; Delete whitespace while saving buffer. Possible values are `all'
+ ;; to aggressively delete empty line and long sequences of whitespace,
+ ;; `trailing' to delete only the whitespace at end of lines, `changed'to
+ ;; delete only whitespace for changed lines or `nil' to disable cleanup.
+ ;; (default nil)
+ dotspacemacs-whitespace-cleanup nil
+ ))
+
+(defun dotspacemacs/user-init ()
+ "Initialization function for user code.
+It is called immediately after `dotspacemacs/init', before layer configuration
+executes.
+ This function is mostly useful for variables that need to be set
+before packages are loaded. If you are unsure, you should try in setting them in
+`dotspacemacs/user-config' first."
+ )
+
+(defun dotspacemacs/user-config ()
+ "Configuration function for user code.
+This function is called at the very end of Spacemacs initialization after
+layers configuration.
+This is the place where most of your configurations should be done. Unless it is
+explicitly specified that a variable should be set before a package is loaded,
+you should place your code here."
+ )
+
+;; Do not write anything past this comment. This is where Emacs will
+;; auto-generate custom variable definitions.
+(custom-set-variables
+ ;; custom-set-variables was added by Custom.
+ ;; If you edit it by hand, you could mess it up, so be careful.
+ ;; Your init file should contain only one such instance.
+ ;; If there is more than one, they won't work right.
+ '(package-selected-packages
+ (quote
+ (ws-butler winum which-key volatile-highlights vi-tilde-fringe uuidgen use-package toc-org spaceline powerline restart-emacs request rainbow-delimiters popwin persp-mode pcre2el paradox spinner org-plus-contrib org-bullets open-junk-file neotree move-text macrostep lorem-ipsum linum-relative link-hint indent-guide hydra lv hungry-delete hl-todo highlight-parentheses highlight-numbers parent-mode highlight-indentation helm-themes helm-swoop helm-projectile projectile pkg-info epl helm-mode-manager helm-make helm-flx helm-descbinds helm-ag google-translate golden-ratio flx-ido flx fill-column-indicator fancy-battery eyebrowse expand-region exec-path-from-shell evil-visualstar evil-visual-mark-mode evil-unimpaired evil-tutor evil-surround evil-search-highlight-persist highlight evil-numbers evil-nerd-commenter evil-mc evil-matchit evil-lisp-state smartparens evil-indent-plus evil-iedit-state iedit evil-exchange evil-escape evil-ediff evil-args evil-anzu anzu evil goto-chg undo-tree eval-sexp-fu elisp-slime-nav dumb-jump f dash s diminish define-word column-enforce-mode clean-aindent-mode bind-map bind-key auto-highlight-symbol auto-compile packed aggressive-indent adaptive-wrap ace-window ace-link ace-jump-helm-line helm avy helm-core popup async))))
+(custom-set-faces
+ ;; custom-set-faces was added by Custom.
+ ;; If you edit it by hand, you could mess it up, so be careful.
+ ;; Your init file should contain only one such instance.
+ ;; If there is more than one, they won't work right.
+ )
diff --git a/laptop/home/.zshrc b/laptop/home/.zshrc
new file mode 100644
index 0000000..abb01e6
--- /dev/null
+++ b/laptop/home/.zshrc
@@ -0,0 +1,183 @@
+# If you come from bash you might have to change your $PATH.
+# export PATH=$HOME/bin:/usr/local/bin:$PATH
+
+# Path to your oh-my-zsh installation.
+ export ZSH="/home/ewpratten/.oh-my-zsh"
+
+# Set name of the theme to load --- if set to "random", it will
+# load a random theme each time oh-my-zsh is loaded, in which case,
+# to know which specific one was loaded, run: echo $RANDOM_THEME
+# See https://github.com/robbyrussell/oh-my-zsh/wiki/Themes
+#ZSH_THEME="minimal"
+
+# Set list of themes to pick from when loading at random
+# Setting this variable when ZSH_THEME=random will cause zsh to load
+# a theme from this variable instead of looking in ~/.oh-my-zsh/themes/
+# If set to an empty array, this variable will have no effect.
+# ZSH_THEME_RANDOM_CANDIDATES=( "robbyrussell" "agnoster" )
+
+# Uncomment the following line to use case-sensitive completion.
+# CASE_SENSITIVE="true"
+
+# Uncomment the following line to use hyphen-insensitive completion.
+# Case-sensitive completion must be off. _ and - will be interchangeable.
+# HYPHEN_INSENSITIVE="true"
+
+# Uncomment the following line to disable bi-weekly auto-update checks.
+# DISABLE_AUTO_UPDATE="true"
+
+# Uncomment the following line to change how often to auto-update (in days).
+# export UPDATE_ZSH_DAYS=13
+
+# Uncomment the following line to disable colors in ls.
+# DISABLE_LS_COLORS="true"
+
+# Uncomment the following line to disable auto-setting terminal title.
+# DISABLE_AUTO_TITLE="true"
+
+# Uncomment the following line to enable command auto-correction.
+# ENABLE_CORRECTION="true"
+
+# Uncomment the following line to display red dots whilst waiting for completion.
+# COMPLETION_WAITING_DOTS="true"
+
+# Uncomment the following line if you want to disable marking untracked files
+# under VCS as dirty. This makes repository status check for large repositories
+# much, much faster.
+# DISABLE_UNTRACKED_FILES_DIRTY="true"
+
+# Uncomment the following line if you want to change the command execution time
+# stamp shown in the history command output.
+# You can set one of the optional three formats:
+# "mm/dd/yyyy"|"dd.mm.yyyy"|"yyyy-mm-dd"
+# or set a custom format using the strftime function format specifications,
+# see 'man strftime' for details.
+# HIST_STAMPS="mm/dd/yyyy"
+
+# Would you like to use another custom folder than $ZSH/custom?
+# ZSH_CUSTOM=/path/to/new-custom-folder
+
+# Which plugins would you like to load?
+# Standard plugins can be found in ~/.oh-my-zsh/plugins/*
+# Custom plugins may be added to ~/.oh-my-zsh/custom/plugins/
+# Example format: plugins=(rails git textmate ruby lighthouse)
+# Add wisely, as too many plugins slow down shell startup.
+plugins=(zsh-autosuggestions)
+
+source $ZSH/oh-my-zsh.sh
+
+alias i3cheatsheet='egrep ^bind ~/.config/i3/config | cut -d '\'' '\'' -f 2- | sed '\''s/ /\t/'\'' | column -ts $'\''\t'\'' | pr -2 -w 145 -t | less'
+
+# Load Z
+. ~/bin/z.sh
+
+# User configuration
+
+# export MANPATH="/usr/local/man:$MANPATH"
+
+# You may need to manually set your language environment
+# export LANG=en_US.UTF-8
+
+# Preferred editor for local and remote sessions
+# if [[ -n $SSH_CONNECTION ]]; then
+# export EDITOR='vim'
+# else
+# export EDITOR='mvim'
+# fi
+
+# Compilation flags
+# export ARCHFLAGS="-arch x86_64"
+
+# Set personal aliases, overriding those provided by oh-my-zsh libs,
+# plugins, and themes. Aliases can be placed here, though oh-my-zsh
+# users are encouraged to define aliases within the ZSH_CUSTOM folder.
+# For a full list of active aliases, run `alias`.
+#
+# Example aliases
+# alias zshconfig="mate ~/.zshrc"
+# alias ohmyzsh="mate ~/.oh-my-zsh"
+#
+
+fancyLocationString(){
+ echo "<$(echo $(printf "\\\\$(printf "u001b[3$(($(echo $((16#$(hostname | md5sum | cut -c -2)))) % 10))")m")$(if [ -n "$SSH_CLIENT" ] || [ -n "$SSH_TTY" ]; then echo "R"; else echo "L"; fi))\u001b[0m>"
+}
+
+# Prompt config
+autoload -U colors && colors
+NEWLINE=$'\n'
+export PROMPT="%{$fg[green]%}%n@%M %{$fg[cyan]%}%~ $ %{$reset_color%}"
+setopt prompt_subst
+autoload -Uz vcs_info
+zstyle ':vcs_info:*' actionformats \
+ '%F{5}(%f%s%F{5})%F{3}-%F{5}[%F{2}%b%F{3}|%F{1}%a%F{5}]%f '
+zstyle ':vcs_info:*' formats \
+ '%F{5}(%f%s%F{5})%F{3}-%F{5}[%F{2}%b%F{5}]%f '
+zstyle ':vcs_info:(sv[nk]|bzr):*' branchformat '%b%F{1}:%F{3}%r'
+
+zstyle ':vcs_info:*' enable git cvs svn
+
+# or use pre_cmd, see man zshcontrib
+vcs_info_wrapper() {
+ vcs_info
+ if [ -n "$vcs_info_msg_0_" ]; then
+ echo "%{$fg[grey]%}${vcs_info_msg_0_}%{$reset_color%}$del"
+ fi
+}
+export RPROMPT=$'%@ $(vcs_info_wrapper) %?'
+
+# Aliases
+alias ls="ls --color=auto"
+alias ll="ls -l"
+alias la="ls -a"
+alias please='sudo $(history -p !!)'
+alias :q="exit"
+alias :wq="exit"
+alias cls=clear
+alias zshreload="source ~/.zshrc"
+alias lip="ip addr | grep inet | grep wlan0"
+alias p4='ping 4.2.2.2 -c 4'
+alias ubenv='docker run -it ubuntu'
+alias fixmouse='sudo modprobe -r psmouse && sudo modprobe psmouse && xinput --set-prop "SynPS/2 Synaptics TouchPad" 287 0' # Fixes mouse issues
+alias quickhttp='sudo python -m SimpleHTTPServer 443'
+
+mkcd() {
+ if [ $# != 1 ]; then
+ echo "Usage: mkcd "
+ else
+ mkdir -p $1 && cd $1
+ fi
+}
+
+extract () {
+ if [ -f $1 ] ; then
+ case $1 in
+ *.tar.bz2) tar xvjf $1 ;;
+ *.tar.gz) tar xvzf $1 ;;
+ *.bz2) bunzip2 $1 ;;
+ *.rar) unrar x $1 ;;
+ *.gz) gunzip $1 ;;
+ *.tar) tar xvf $1 ;;
+ *.tbz2) tar xvjf $1 ;;
+ *.tgz) tar xvzf $1 ;;
+ *.zip) unzip $1 ;;
+ *.Z) uncompress $1 ;;
+ *.7z) 7z x $1 ;;
+ *) echo "don't know how to extract '$1'..." ;;
+ esac
+ else
+ echo "'$1' is not a valid file!"
+ fi
+}
+
+pydo () {
+ python3 -c "print($1)"
+}
+
+export LD_LIBRARY="$LD_LIBRARY:/home/ewpratten/lib"
+# source ~/.zsh/zsh-autosuggestions/zsh-autosuggestions.zsh
+
+export PATH="$PATH:/home/ewpratten/development/flutter/bin:/home/ewpratten/development/binalias:/home/ewpratten/bin:/home/ewpratten/bin/go/bin:/usr/lib/dart/bin:/home/ewpratten/.local/kitty.app/bin:/home/ewpratten/node/bin"
+
+#THIS MUST BE AT THE END OF THE FILE FOR SDKMAN TO WORK!!!
+export SDKMAN_DIR="/home/ewpratten/.sdkman"
+[[ -s "/home/ewpratten/.sdkman/bin/sdkman-init.sh" ]] && source "/home/ewpratten/.sdkman/bin/sdkman-init.sh"
diff --git a/laptop/home/.zshrc.pre-oh-my-zsh b/laptop/home/.zshrc.pre-oh-my-zsh
new file mode 100644
index 0000000..e438006
--- /dev/null
+++ b/laptop/home/.zshrc.pre-oh-my-zsh
@@ -0,0 +1,168 @@
+# The following lines were added by compinstall
+
+zstyle ':completion:*' completer _complete _ignored
+zstyle :compinstall filename '/home/chronos/user/.zshrc'
+
+autoload -Uz compinit
+compinit
+# End of lines added by compinstall
+# Lines configured by zsh-newuser-install
+HISTFILE=~/.histfile
+HISTSIZE=1000
+SAVEHIST=1000
+unsetopt beep
+bindkey -v
+# End of lines configured by zsh-newuser-install
+
+#git clone https://github.com/zsh-users/zsh-syntax-highlighting.git
+#echo "source ${(q-)PWD}/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh" >> ${ZDOTDIR:-$HOME}/.zshrc
+#source ./zsh-syntax-highlighting/zsh-syntax-highlighting.zsh
+
+# prompt stuff
+autoload -U colors && colors
+NEWLINE=$'\n'
+export PROMPT="%{$fg[green]%}%n@%M %{$fg[cyan]%}%~ $ %{$reset_color%}"
+setopt prompt_subst
+autoload -Uz vcs_info
+zstyle ':vcs_info:*' actionformats \
+ '%F{5}(%f%s%F{5})%F{3}-%F{5}[%F{2}%b%F{3}|%F{1}%a%F{5}]%f '
+zstyle ':vcs_info:*' formats \
+ '%F{5}(%f%s%F{5})%F{3}-%F{5}[%F{2}%b%F{5}]%f '
+zstyle ':vcs_info:(sv[nk]|bzr):*' branchformat '%b%F{1}:%F{3}%r'
+
+zstyle ':vcs_info:*' enable git cvs svn
+
+# or use pre_cmd, see man zshcontrib
+vcs_info_wrapper() {
+ vcs_info
+ if [ -n "$vcs_info_msg_0_" ]; then
+ echo "%{$fg[grey]%}${vcs_info_msg_0_}%{$reset_color%}$del"
+ fi
+}
+export RPROMPT=$'%@ $(vcs_info_wrapper) %?'
+#other stuff
+
+# clear
+# screenfetch
+
+#dont mess with this
+alias ls="ls --color=auto"
+
+#alias pip="python3 -m pip"
+
+alias settings="env XDG_CURRENT_DESKTOP=GNOME gnome-control-center "
+
+# aliases
+
+#pandoc
+alias docx="pandoc -s -o"
+
+#alias school="cd /media/removable/SD\ Card/School"
+#alias sdcard="cd /media/removable/SD\ Card/"
+alias ll="ls -l"
+alias la="ls -a"
+alias please='sudo $(history -p !!)'
+# alias vi=vim
+alias :q="exit"
+alias :wq="exit"
+alias cls=clear
+alias zshreload="source ~/.zshrc"
+alias lip="ip addr | grep inet | grep wlan0"
+alias p4='ping 4.2.2.2 -c 4'
+alias tracknjack="sudo /home/ewpratten/.local/bin/trackerjacker"
+
+sci(){
+ if [ $# != 1 ]; then
+ crew -h
+ else
+ crew install $1
+ fi
+}
+
+search(){
+ if [ $# != 1 ]; then
+ echo "please enter a name to search for"
+ else
+ ls | grep "$1"
+ fi
+}
+
+csearch(){
+ if [ $# != 1 ]; then
+ echo "Usage: csearch "
+ else
+ crew search | grep -e "$1"
+ fi
+}
+
+mkcd() {
+ if [ $# != 1 ]; then
+ echo "Usage: mkcd "
+ else
+ mkdir -p $1 && cd $1
+ fi
+}
+
+cl()
+{
+ last_dir="$(ls -Frt | grep '/$' | tail -n1)"
+ if [ -d "$last_dir" ]; then
+ cd "$last_dir"
+ fi
+}
+
+sud() { # do sudo, or sudo the last command if no argument given
+ if [[ $# == 0 ]]; then
+ sudo $(history -p '!!')
+ else
+ sudo "$@"
+ fi
+}
+
+up(){
+ local d=""
+ limit=$1
+ for ((i=1 ; i <= limit ; i++))
+ do
+ d=$d/..
+ done
+ d=$(echo $d | sed 's/^\///')
+ if [ -z "$d" ]; then
+ d=..
+ fi
+ cd $d
+}
+
+extract () {
+ if [ -f $1 ] ; then
+ case $1 in
+ *.tar.bz2) tar xvjf $1 ;;
+ *.tar.gz) tar xvzf $1 ;;
+ *.bz2) bunzip2 $1 ;;
+ *.rar) unrar x $1 ;;
+ *.gz) gunzip $1 ;;
+ *.tar) tar xvf $1 ;;
+ *.tbz2) tar xvjf $1 ;;
+ *.tgz) tar xvzf $1 ;;
+ *.zip) unzip $1 ;;
+ *.Z) uncompress $1 ;;
+ *.7z) 7z x $1 ;;
+ *) echo "don't know how to extract '$1'..." ;;
+ esac
+ else
+ echo "'$1' is not a valid file!"
+ fi
+}
+#cls
+#screenfetch
+#source ~/.zsh/zsh-autosuggestions/zsh-autosuggestions.zsh
+#source /home/chronos/user/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh
+
+#eval $(thefuck --alias)
+#export PATH=/usr/local/bin:/usr/bin:/bin:/opt/bin:/usr/local/share/texlive/2017/bin/x86_64-linux
+#export MANPATH=/usr/local/share/man:/usr/share/man:/usr/local/share/texlive/2017/bin/texmf-dist/doc/man
+#export JAVA_HOME="/usr/lib/jvm/java-8-openjdk-amd64/jre"
+export LD_LIBRARY="$LD_LIBRARY:/home/ewpratten/lib"
+source ~/.zsh/zsh-autosuggestions/zsh-autosuggestions.zsh
+
+export PATH="$PATH:/home/ewpratten/development/flutter/bin:/home/ewpratten/development/binalias:/home/ewpratten/bin:/home/ewpratten/bin/go/bin:/usr/lib/dart/bin"
diff --git a/laptop/home/bin/z.sh b/laptop/home/bin/z.sh
new file mode 100644
index 0000000..2b7f87a
--- /dev/null
+++ b/laptop/home/bin/z.sh
@@ -0,0 +1,253 @@
+# Copyright (c) 2009 rupa deadwyler. Licensed under the WTFPL license, Version 2
+
+# maintains a jump-list of the directories you actually use
+#
+# INSTALL:
+# * put something like this in your .bashrc/.zshrc:
+# . /path/to/z.sh
+# * cd around for a while to build up the db
+# * PROFIT!!
+# * optionally:
+# set $_Z_CMD in .bashrc/.zshrc to change the command (default z).
+# set $_Z_DATA in .bashrc/.zshrc to change the datafile (default ~/.z).
+# set $_Z_NO_RESOLVE_SYMLINKS to prevent symlink resolution.
+# set $_Z_NO_PROMPT_COMMAND if you're handling PROMPT_COMMAND yourself.
+# set $_Z_EXCLUDE_DIRS to an array of directories to exclude.
+# set $_Z_OWNER to your username if you want use z while sudo with $HOME kept
+#
+# USE:
+# * z foo # cd to most frecent dir matching foo
+# * z foo bar # cd to most frecent dir matching foo and bar
+# * z -r foo # cd to highest ranked dir matching foo
+# * z -t foo # cd to most recently accessed dir matching foo
+# * z -l foo # list matches instead of cd
+# * z -e foo # echo the best match, don't cd
+# * z -c foo # restrict matches to subdirs of $PWD
+
+[ -d "${_Z_DATA:-$HOME/.z}" ] && {
+ echo "ERROR: z.sh's datafile (${_Z_DATA:-$HOME/.z}) is a directory."
+}
+
+_z() {
+
+ local datafile="${_Z_DATA:-$HOME/.z}"
+
+ # if symlink, dereference
+ [ -h "$datafile" ] && datafile=$(readlink "$datafile")
+
+ # bail if we don't own ~/.z and $_Z_OWNER not set
+ [ -z "$_Z_OWNER" -a -f "$datafile" -a ! -O "$datafile" ] && return
+
+ _z_dirs () {
+ local line
+ while read line; do
+ # only count directories
+ [ -d "${line%%\|*}" ] && echo "$line"
+ done < "$datafile"
+ return 0
+ }
+
+ # add entries
+ if [ "$1" = "--add" ]; then
+ shift
+
+ # $HOME isn't worth matching
+ [ "$*" = "$HOME" ] && return
+
+ # don't track excluded directory trees
+ local exclude
+ for exclude in "${_Z_EXCLUDE_DIRS[@]}"; do
+ case "$*" in "$exclude*") return;; esac
+ done
+
+ # maintain the data file
+ local tempfile="$datafile.$RANDOM"
+ _z_dirs | awk -v path="$*" -v now="$(date +%s)" -F"|" '
+ BEGIN {
+ rank[path] = 1
+ time[path] = now
+ }
+ $2 >= 1 {
+ # drop ranks below 1
+ if( $1 == path ) {
+ rank[$1] = $2 + 1
+ time[$1] = now
+ } else {
+ rank[$1] = $2
+ time[$1] = $3
+ }
+ count += $2
+ }
+ END {
+ if( count > 9000 ) {
+ # aging
+ for( x in rank ) print x "|" 0.99*rank[x] "|" time[x]
+ } else for( x in rank ) print x "|" rank[x] "|" time[x]
+ }
+ ' 2>/dev/null >| "$tempfile"
+ # do our best to avoid clobbering the datafile in a race condition.
+ if [ $? -ne 0 -a -f "$datafile" ]; then
+ env rm -f "$tempfile"
+ else
+ [ "$_Z_OWNER" ] && chown $_Z_OWNER:"$(id -ng $_Z_OWNER)" "$tempfile"
+ env mv -f "$tempfile" "$datafile" || env rm -f "$tempfile"
+ fi
+
+ # tab completion
+ elif [ "$1" = "--complete" -a -s "$datafile" ]; then
+ _z_dirs | awk -v q="$2" -F"|" '
+ BEGIN {
+ q = substr(q, 3)
+ if( q == tolower(q) ) imatch = 1
+ gsub(/ /, ".*", q)
+ }
+ {
+ if( imatch ) {
+ if( tolower($1) ~ q ) print $1
+ } else if( $1 ~ q ) print $1
+ }
+ ' 2>/dev/null
+
+ else
+ # list/go
+ local echo fnd last list opt typ
+ while [ "$1" ]; do case "$1" in
+ --) while [ "$1" ]; do shift; fnd="$fnd${fnd:+ }$1";done;;
+ -*) opt=${1:1}; while [ "$opt" ]; do case ${opt:0:1} in
+ c) fnd="^$PWD $fnd";;
+ e) echo=1;;
+ h) echo "${_Z_CMD:-z} [-cehlrtx] args" >&2; return;;
+ l) list=1;;
+ r) typ="rank";;
+ t) typ="recent";;
+ x) sed -i -e "\:^${PWD}|.*:d" "$datafile";;
+ esac; opt=${opt:1}; done;;
+ *) fnd="$fnd${fnd:+ }$1";;
+ esac; last=$1; [ "$#" -gt 0 ] && shift; done
+ [ "$fnd" -a "$fnd" != "^$PWD " ] || list=1
+
+ # if we hit enter on a completion just go there
+ case "$last" in
+ # completions will always start with /
+ /*) [ -z "$list" -a -d "$last" ] && builtin cd "$last" && return;;
+ esac
+
+ # no file yet
+ [ -f "$datafile" ] || return
+
+ local cd
+ cd="$( < <( _z_dirs ) awk -v t="$(date +%s)" -v list="$list" -v typ="$typ" -v q="$fnd" -F"|" '
+ function frecent(rank, time) {
+ # relate frequency and time
+ dx = t - time
+ if( dx < 3600 ) return rank * 4
+ if( dx < 86400 ) return rank * 2
+ if( dx < 604800 ) return rank / 2
+ return rank / 4
+ }
+ function output(matches, best_match, common) {
+ # list or return the desired directory
+ if( list ) {
+ cmd = "sort -g >&2"
+ for( x in matches ) {
+ if( matches[x] ) {
+ printf "%-10s %s\n", matches[x], x | cmd
+ }
+ }
+ if( common ) {
+ printf "%-10s %s\n", "common:", common > "/dev/stderr"
+ }
+ } else {
+ if( common ) best_match = common
+ print best_match
+ }
+ }
+ function common(matches) {
+ # find the common root of a list of matches, if it exists
+ for( x in matches ) {
+ if( matches[x] && (!short || length(x) < length(short)) ) {
+ short = x
+ }
+ }
+ if( short == "/" ) return
+ for( x in matches ) if( matches[x] && index(x, short) != 1 ) {
+ return
+ }
+ return short
+ }
+ BEGIN {
+ gsub(" ", ".*", q)
+ hi_rank = ihi_rank = -9999999999
+ }
+ {
+ if( typ == "rank" ) {
+ rank = $2
+ } else if( typ == "recent" ) {
+ rank = $3 - t
+ } else rank = frecent($2, $3)
+ if( $1 ~ q ) {
+ matches[$1] = rank
+ } else if( tolower($1) ~ tolower(q) ) imatches[$1] = rank
+ if( matches[$1] && matches[$1] > hi_rank ) {
+ best_match = $1
+ hi_rank = matches[$1]
+ } else if( imatches[$1] && imatches[$1] > ihi_rank ) {
+ ibest_match = $1
+ ihi_rank = imatches[$1]
+ }
+ }
+ END {
+ # prefer case sensitive
+ if( best_match ) {
+ output(matches, best_match, common(matches))
+ } else if( ibest_match ) {
+ output(imatches, ibest_match, common(imatches))
+ }
+ }
+ ')"
+
+ [ $? -eq 0 ] && [ "$cd" ] && {
+ if [ "$echo" ]; then echo "$cd"; else builtin cd "$cd"; fi
+ }
+ fi
+}
+
+alias ${_Z_CMD:-z}='_z 2>&1'
+
+[ "$_Z_NO_RESOLVE_SYMLINKS" ] || _Z_RESOLVE_SYMLINKS="-P"
+
+if type compctl >/dev/null 2>&1; then
+ # zsh
+ [ "$_Z_NO_PROMPT_COMMAND" ] || {
+ # populate directory list, avoid clobbering any other precmds.
+ if [ "$_Z_NO_RESOLVE_SYMLINKS" ]; then
+ _z_precmd() {
+ (_z --add "${PWD:a}" &)
+ }
+ else
+ _z_precmd() {
+ (_z --add "${PWD:A}" &)
+ }
+ fi
+ [[ -n "${precmd_functions[(r)_z_precmd]}" ]] || {
+ precmd_functions[$(($#precmd_functions+1))]=_z_precmd
+ }
+ }
+ _z_zsh_tab_completion() {
+ # tab completion
+ local compl
+ read -l compl
+ reply=(${(f)"$(_z --complete "$compl")"})
+ }
+ compctl -U -K _z_zsh_tab_completion _z
+elif type complete >/dev/null 2>&1; then
+ # bash
+ # tab completion
+ complete -o filenames -C '_z --complete "$COMP_LINE"' ${_Z_CMD:-z}
+ [ "$_Z_NO_PROMPT_COMMAND" ] || {
+ # populate directory list. avoid clobbering other PROMPT_COMMANDs.
+ grep "_z --add" <<< "$PROMPT_COMMAND" >/dev/null || {
+ PROMPT_COMMAND="$PROMPT_COMMAND"$'\n''(_z --add "$(command pwd '$_Z_RESOLVE_SYMLINKS' 2>/dev/null)" 2>/dev/null &);'
+ }
+ }
+fi
diff --git a/workstation/home/.config/i3/config b/workstation/home/.config/i3/config
new file mode 100644
index 0000000..72a4f6d
--- /dev/null
+++ b/workstation/home/.config/i3/config
@@ -0,0 +1,318 @@
+# This file has been auto-generated by i3-config-wizard(1).
+# It will not be overwritten, so edit it as you like.
+#
+# Should you change your keyboard layout some time, delete
+# this file and re-run i3-config-wizard(1).
+#
+
+# i3 config file (v4)
+#
+# Please see https://i3wm.org/docs/userguide.html for a complete reference!
+
+set $mod Mod4
+
+# Languages
+exec "setxkbmap -option 'grp:alt_shift_toggle' -layout us,jp -variant qwerty"
+exec gxkb
+# exec --no-startup-id fcitx -d
+
+# Font for window titles. Will also be used by the bar unless a different font
+# is used in the bar {} block below.
+font pango:monospace 8
+
+# This font is widely installed, provides lots of unicode glyphs, right-to-left
+# text rendering and scalability on retina/hidpi displays (thanks to pango).
+#font pango:DejaVu Sans Mono 8
+
+# Before i3 v4.8, we used to recommend this one as the default:
+# font -misc-fixed-medium-r-normal--13-120-75-75-C-70-iso10646-1
+# The font above is very space-efficient, that is, it looks good, sharp and
+# clear in small sizes. However, its unicode glyph coverage is limited, the old
+# X core fonts rendering does not support right-to-left and this being a bitmap
+# font, it doesn’t scale on retina/hidpi displays.
+
+# Use Mouse+$mod to drag floating windows to their wanted position
+floating_modifier $mod
+
+# Create a scratchpad
+#exec gnome-terminal --title "scratch"
+#[title="scratch"] move scratchpad
+bindsym $mod+Shift+n mark "scratch", move scratchpad
+bindsym $mod+n [con_mark="scratch"] scratchpad show
+
+# Rick roll
+bindsym $mod+Control+r exec xdg-open /home/ewpratten/Music/rickroll.mp3
+
+# start a terminal
+bindsym $mod+Return exec i3-sensible-terminal
+
+# kill focused window
+bindsym $mod+Shift+q kill
+
+# start dmenu (a program launcher)
+#bindsym $mod+d exec dmenu_run
+
+# Show custom launcher
+bindsym $mod+Shift+w exec sh /home/ewpratten/projects/menus/scripts/web.sh
+
+# Calculator
+bindsym $mod+c exec xsel -o | dmenu -p Calculate: | xargs echo | bc 2>&1 | dmenu -p Answer: | xsel -i
+
+# use rofi instead
+
+bindsym $mod+d exec rofi -show run
+bindsym $mod+Shift+d exec rofi -show drun
+
+# There also is the (new) i3-dmenu-desktop which only displays applications
+# shipping a .desktop file. It is a wrapper around dmenu, so you need that
+# installed.
+
+
+# settings
+# byndsym $mod+Control+s exec env XDG_CURRENT_DESKTOP=GNOME gnome-control-center
+
+exec --no-startup-id nitrogen --restore
+#exec_always --no-startup-id compton -b --respect-prop-shadow
+#exec_always --no-startup-id $HOME/.config/compton/launch.sh
+exec --no-startup-id nm-applet
+exec --no-startup-id volumeicon
+exec --no-startup-id kdeconnect-indicator
+exec /home/ewpratten/bin/conk
+#exec_always --no-startup-id $HOME/.config/polybar/launch.sh
+
+# This allows the gnome password prompt. But requires: policykit-desktop-privileges policykit-1-gnome
+exec --no-startup-id /usr/lib/policykit-1-gnome/polkit-gnome-authentication-agent-1
+
+# gaps
+for_window [class=".*"] border pixel 0
+gaps outer 5
+gaps inner 5
+
+
+# smart_gaps on
+
+# windows style workspace switcher
+
+bindsym $mod+Control+Right workspace next
+bindsym $mod+Control+Left workspace prev
+
+workspace_auto_back_and_forth yes
+
+# Set window focusing to only focus if requester is on screen
+
+focus_on_window_activation smart
+
+# Audio Manager
+
+bindsym $mod+Shift+a exec pavucontrol
+
+# Drop-down terminal
+#exec --no-startup-id i3-sensible-terminal --title="metask"
+#for_window [instance="metask"] floating enable;
+#for_window [instance="metask"] move scratchpad; [instance="metask"] scratchpad show; move position 0px 22px; resize shrink height 300px; resize grow width 683px; move scratchpad
+#bindsym $mod+t [instance="metask"] scratchpad show
+
+# window lock
+
+bindsym $mod+Control+l exec gnome-screensaver-command -l
+
+# locker
+set $Locker i3lock -c 141414 -e -f -i /home/ewpratten/Pictures/lockscreen.png && sleep 1
+
+set $mode_system System (l) lock, (e) logout, (s) suspend, (h) hibernate, (r) reboot, (Shift+s) shutdown, (b) fix mouse
+mode "$mode_system" {
+ bindsym l exec --no-startup-id $Locker, mode "default"
+ bindsym e exec --no-startup-id i3-msg exit, mode "default"
+ bindsym s exec --no-startup-id $Locker && systemctl suspend, mode "default"
+ bindsym h exec --no-startup-id $Locker && systemctl hibernate, mode "default"
+ bindsym r exec --no-startup-id systemctl reboot, mode "default"
+ bindsym Shift+s exec --no-startup-id systemctl poweroff -i, mode "default"
+ bindsym b exec --no-startup-id sudo modprobe -r psmouse && sudo modprobe psmouse, mode "default"
+
+ # back to normal: Enter or Escape
+ bindsym Return mode "default"
+ bindsym Escape mode "default"
+}
+
+bindsym $mod+Delete mode "$mode_system"
+
+set $mode_monitor Move current workspace with VIM keys
+mode "$mode_monitor" {
+ bindsym h move workspace to output left
+ bindsym l move workspace to output right
+ bindsym j move workspace to output up
+ bindsym k move workspace to output down
+
+ bindsym Return mode "default"
+ bindsym Escape mode "default"
+
+}
+
+bindsym $mod+m mode "$mode_monitor"
+
+# Go to sleep
+
+bindsym $mod+Shift+s exec systemctl suspend
+
+# Screen Shots
+bindsym Print exec scrot '%Y-%m-%d-%s_screenshot_$wx$h.jpg' -e 'mv $f ~/Pictures/'
+bindsym Control+Print exec gnome-screenshot -i
+
+# Pulse Audio controls
+bindsym XF86AudioRaiseVolume exec --no-startup-id pactl set-sink-volume 0 +5% #increase sound volume
+bindsym XF86AudioLowerVolume exec --no-startup-id pactl set-sink-volume 0 -5% #decrease sound volume
+bindsym XF86AudioMute exec --no-startup-id pactl set-sink-mute 0 toggle # mute sound
+
+# Sreen brightness controls
+bindsym XF86MonBrightnessUp exec xbacklight -inc 20 # increase screen brightness
+bindsym XF86MonBrightnessDown exec xbacklight -dec 20 # decrease screen brightness
+
+# Media player controls
+bindsym XF86AudioPlay exec playerctl play
+bindsym XF86AudioPause exec playerctl pause
+bindsym XF86AudioNext exec playerctl next
+bindsym XF86AudioPrev exec playerctl previous
+
+# 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
+
+# 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+space floating toggle
+
+# change focus between tiling / floating windows
+bindsym $mod+space focus mode_toggle
+
+# focus the parent container
+bindsym $mod+a focus parent
+
+# focus the child container
+#bindsym $mod+d focus child
+
+# Define names for default workspaces for which we configure key bindings later on.
+# We use variables to avoid repeating the names in multiple places.
+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"
+
+# Auto-start programs
+exec --no-startup-id i3msg "1"; exec /usr/bin/firefox
+
+# 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
+
+# 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
+
+# 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'"
+
+# 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 j resize shrink width 10 px or 10 ppt
+ bindsym k resize grow height 10 px or 10 ppt
+ bindsym l resize shrink height 10 px or 10 ppt
+ bindsym semicolon 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 or $mod+r
+ bindsym Return mode "default"
+ bindsym Escape mode "default"
+ bindsym $mod+r mode "default"
+}
+
+bindsym $mod+r mode "resize"
+
+# Start i3bar to display a workspace bar (plus the system information i3status
+# finds out, if available)
+bar {
+ colors {
+
+ # colour of border, background, and text
+ focused_workspace #2f343f #bf616a #d8dee8
+ active_workspace #2f343f #2f343f #d8dee8
+ inactive_workspace #2f343f #2f343f #d8dee8
+ urgent_workspace #2f343f #ebcb8b #2f343f
+
+ background #002b36
+ }
+ status_command i3status
+ position top
+}
+
+new_window 1pixel
+
diff --git a/workstation/home/.config/i3/scratch.sh b/workstation/home/.config/i3/scratch.sh
new file mode 100755
index 0000000..ea75414
--- /dev/null
+++ b/workstation/home/.config/i3/scratch.sh
@@ -0,0 +1,3 @@
+#! /bin/bash
+i3-msg exec "gnome-ternimal --title scratch"
+i3-msg '[ title="scratch" ] move scratchpad'
diff --git a/workstation/home/.config/i3status/config b/workstation/home/.config/i3status/config
new file mode 100644
index 0000000..fee83d0
--- /dev/null
+++ b/workstation/home/.config/i3status/config
@@ -0,0 +1,62 @@
+general{
+ output_format = "i3bar"
+ colors = true
+ interval = 5
+}
+
+order += "cpu_usage"
+#order += "cpu_temperature 0"
+order += "disk /"
+order += "ethernet enp0s31f6"
+order += "wireless wlp3s0"
+order += "ethernet tun0"
+#order += "wireless wlan0"
+#order += "ethernet eth0"
+order += "volume master"
+order += "tztime local"
+
+
+cpu_usage {
+ format = "CPU: %usage"
+}
+
+cpu_temperature 0 {
+ format = "T: %degrees °C"
+ path = "/sys/devices/platform/coretemp.0/temp1_input"
+}
+
+disk "/" {
+ format = "%free Free"
+}
+
+volume master {
+ format = "♪: %volume"
+ format_muted = "♪: muted (%volume)"
+ device = "default"
+ mixer = "Master"
+ mixer_idx = 0
+}
+
+
+
+tztime local {
+ format = "%time"
+ format_time = "%a %-d %b %I:%M"
+}
+
+wireless wlp3s0 {
+ format_up = "WIFI: (%quality at %essid, %bitrate) %ip"
+ format_down = "WIFI: down"
+}
+
+ethernet enp0s31f6 {
+ # if you use %speed, i3status requires the cap_net_admin capability
+ format_up = "ETH: %ip (%speed)"
+ format_down = "ETH: down"
+}
+
+ethernet tun0 {
+ format_up = "VPN: %ip"
+ format_down = "VPN: down"
+}
+