diff --git a/.bashrc b/.bashrc
index 7753bdffd17cbdb21e44f82d2244b595b7f2e650..10af2c02eb71b529e576a5298c0bcad46694cc47 100644
--- a/.bashrc
+++ b/.bashrc
@@ -47,6 +47,14 @@ fi
 # shellcheck disable=SC2142
 [ -f /usr/local/bin/virtualenvwrapper.sh ] && . /usr/local/bin/virtualenvwrapper.sh
 
+if which powerline-daemon > /dev/null && [ -f /usr/share/powerline/bindings/bash/powerline.sh ]
+then
+    export POWERLINE_BASH_CONTINUATION=1
+    export POWERLINE_BASH_SELECT=1
+    pgrep -f powerline-daemon > /dev/null || powerline-daemon -q
+    . /usr/share/powerline/bindings/bash/powerline.sh
+fi
+
 export REPREPRO_BASE_DIR="$HOME/Documents/Shore/debian-repository"
 export EDITOR=vim
 export GOPATH="$HOME/Documents/Golang"
diff --git a/.config/powerline/config.json b/.config/powerline/config.json
new file mode 100644
index 0000000000000000000000000000000000000000..a8e5f3ecdb7225bbf24d648a905e842540edd1dc
--- /dev/null
+++ b/.config/powerline/config.json
@@ -0,0 +1,13 @@
+{
+    "ext": {
+        "shell": {
+            "theme": "personal"
+        },
+        "vim": {
+            "theme": "default"
+        },
+        "tmux": {
+            "theme": "personal"
+        }
+    }
+}
diff --git a/.config/powerline/themes/shell/personal.json b/.config/powerline/themes/shell/personal.json
new file mode 100644
index 0000000000000000000000000000000000000000..61e59f81113af8d389609c5e5892dd678aa3cf15
--- /dev/null
+++ b/.config/powerline/themes/shell/personal.json
@@ -0,0 +1,34 @@
+{
+	"segments": {
+		"left": [
+			{
+				"function": "powerline.segments.common.net.hostname",
+				"priority": 10
+			},
+			{
+				"function": "powerline.segments.common.env.user",
+				"priority": 30
+			},
+			{
+				"function": "powerline.segments.common.env.virtualenv",
+				"priority": 50
+			},
+			{
+				"function": "powerline.segments.common.vcs.branch",
+				"priority": 40
+			},
+			{
+				"function": "powerline.segments.shell.cwd",
+				"priority": 10
+			},
+			{
+				"function": "powerline.segments.shell.jobnum",
+				"priority": 20
+			},
+			{
+				"function": "powerline.segments.shell.last_status",
+				"priority": 10
+			}
+		]
+	}
+}
diff --git a/.config/powerline/themes/tmux/personal.json b/.config/powerline/themes/tmux/personal.json
new file mode 100644
index 0000000000000000000000000000000000000000..24ad5bfede604391ccf6b5f9acd491699c867afa
--- /dev/null
+++ b/.config/powerline/themes/tmux/personal.json
@@ -0,0 +1,20 @@
+{
+	"segments": {
+		"right": [
+			{
+				"function": "powerline.segments.common.time.date"
+			},
+			{
+				"function": "powerline.segments.common.time.date",
+				"name": "time",
+				"args": {
+					"format": "%H:%M",
+					"istime": true
+				}
+			},
+			{
+				"function": "powerline.segments.common.net.hostname"
+			}
+		]
+	}
+}
diff --git a/.tmux.conf b/.tmux.conf
index 4f0383f9b9b0568d390131ec14ae990047ab4059..433b4065aaa45bd5d2fa2602559ea1a6042c3dc6 100644
--- a/.tmux.conf
+++ b/.tmux.conf
@@ -1 +1,2 @@
+if-shell '[ -f /usr/share/powerline/bindings/tmux/powerline.conf ]' 'source "/usr/share/powerline/bindings/tmux/powerline.conf"'
 bind-key b send-prefix
diff --git a/.vimrc b/.vimrc
index c147704b28f9a6f4bff1997cc07254cc2325b307..d79dc95a9e12b98285acd934bdfdac14cbfc1a38 100644
--- a/.vimrc
+++ b/.vimrc
@@ -9,3 +9,9 @@ setlocal textwidth=80
 setlocal smarttab
 setlocal expandtab
 syntax on
+:silent! python3 from powerline.vim import setup as powerline_setup
+:silent! python3 powerline_setup()
+:silent! python3 del powerline_setup
+set laststatus=2 " Always display the statusline in all windows
+set showtabline=2 " Always display the tabline, even if there is only one tab
+set noshowmode " Hide the default mode text (e.g. -- INSERT -- below the statusline)