diff --git a/.config/fish/conf.d/_pure_init.fish b/.config/fish/conf.d/_pure_init.fish
new file mode 120000
index 00000000..cb509a27
--- /dev/null
+++ b/.config/fish/conf.d/_pure_init.fish
@@ -0,0 +1 @@
+/Users/alpha/.config/fish/functions/theme-pure/conf.d/_pure_init.fish
\ No newline at end of file
diff --git a/.config/fish/conf.d/pure.fish b/.config/fish/conf.d/pure.fish
new file mode 120000
index 00000000..f289d803
--- /dev/null
+++ b/.config/fish/conf.d/pure.fish
@@ -0,0 +1 @@
+/Users/alpha/.config/fish/functions/theme-pure/conf.d/pure.fish
\ No newline at end of file
diff --git a/.config/fish/config.fish b/.config/fish/config.fish
new file mode 100644
index 00000000..2da1122d
--- /dev/null
+++ b/.config/fish/config.fish
@@ -0,0 +1,6 @@
+if status is-interactive
+ # Commands to run in interactive sessions can go here
+end
+# THEME PURE #
+set fish_function_path /Users/alpha/.config/fish/functions/theme-pure/functions/ $fish_function_path
+source /Users/alpha/.config/fish/functions/theme-pure/conf.d/pure.fish
diff --git a/.config/fish/fish_variables b/.config/fish/fish_variables
new file mode 100644
index 00000000..78738c15
--- /dev/null
+++ b/.config/fish/fish_variables
@@ -0,0 +1,79 @@
+# This file contains fish universal variable definitions.
+# VERSION: 3.0
+SETUVAR __fish_initialized:3400
+SETUVAR fish_color_autosuggestion:555\x1ebrblack
+SETUVAR fish_color_cancel:\x2dr
+SETUVAR fish_color_command:blue
+SETUVAR fish_color_comment:red
+SETUVAR fish_color_cwd:green
+SETUVAR fish_color_cwd_root:red
+SETUVAR fish_color_end:green
+SETUVAR fish_color_error:brred
+SETUVAR fish_color_escape:brcyan
+SETUVAR fish_color_history_current:\x2d\x2dbold
+SETUVAR fish_color_host:normal
+SETUVAR fish_color_host_remote:yellow
+SETUVAR fish_color_normal:normal
+SETUVAR fish_color_operator:brcyan
+SETUVAR fish_color_param:cyan
+SETUVAR fish_color_quote:yellow
+SETUVAR fish_color_redirection:cyan\x1e\x2d\x2dbold
+SETUVAR fish_color_search_match:bryellow\x1e\x2d\x2dbackground\x3dbrblack
+SETUVAR fish_color_selection:white\x1e\x2d\x2dbold\x1e\x2d\x2dbackground\x3dbrblack
+SETUVAR fish_color_status:red
+SETUVAR fish_color_user:brgreen
+SETUVAR fish_color_valid_path:\x2d\x2dunderline
+SETUVAR fish_key_bindings:fish_default_key_bindings
+SETUVAR fish_pager_color_completion:normal
+SETUVAR fish_pager_color_description:B3A06D\x1eyellow\x1e\x2di
+SETUVAR fish_pager_color_prefix:normal\x1e\x2d\x2dbold\x1e\x2d\x2dunderline
+SETUVAR fish_pager_color_progress:brwhite\x1e\x2d\x2dbackground\x3dcyan
+SETUVAR fish_pager_color_selected_background:\x2dr
+SETUVAR pure_begin_prompt_with_current_directory:true
+SETUVAR pure_check_for_new_release:false
+SETUVAR pure_color_at_sign:pure_color_mute
+SETUVAR pure_color_command_duration:pure_color_warning
+SETUVAR pure_color_current_directory:pure_color_primary
+SETUVAR pure_color_danger:red
+SETUVAR pure_color_dark:black
+SETUVAR pure_color_git_branch:pure_color_mute
+SETUVAR pure_color_git_dirty:pure_color_mute
+SETUVAR pure_color_git_stash:pure_color_info
+SETUVAR pure_color_git_unpulled_commits:pure_color_info
+SETUVAR pure_color_git_unpushed_commits:pure_color_info
+SETUVAR pure_color_hostname:pure_color_mute
+SETUVAR pure_color_info:cyan
+SETUVAR pure_color_jobs:pure_color_normal
+SETUVAR pure_color_light:white
+SETUVAR pure_color_mute:brblack
+SETUVAR pure_color_normal:normal
+SETUVAR pure_color_prefix_root_prompt:pure_color_danger
+SETUVAR pure_color_primary:blue
+SETUVAR pure_color_prompt_on_error:pure_color_danger
+SETUVAR pure_color_prompt_on_success:pure_color_success
+SETUVAR pure_color_success:magenta
+SETUVAR pure_color_system_time:pure_color_mute
+SETUVAR pure_color_username_normal:pure_color_mute
+SETUVAR pure_color_username_root:pure_color_light
+SETUVAR pure_color_virtualenv:pure_color_mute
+SETUVAR pure_color_warning:yellow
+SETUVAR pure_enable_container_detection:true
+SETUVAR pure_enable_git:true
+SETUVAR pure_enable_single_line_prompt:false
+SETUVAR pure_reverse_prompt_symbol_in_vimode:true
+SETUVAR pure_separate_prompt_on_error:false
+SETUVAR pure_show_jobs:false
+SETUVAR pure_show_prefix_root_prompt:false
+SETUVAR pure_show_subsecond_command_duration:false
+SETUVAR pure_show_system_time:false
+SETUVAR pure_symbol_container_prefix:
+SETUVAR pure_symbol_git_dirty:\x2a
+SETUVAR pure_symbol_git_stash:\u2261
+SETUVAR pure_symbol_git_unpulled_commits:\u21e3
+SETUVAR pure_symbol_git_unpushed_commits:\u21e1
+SETUVAR pure_symbol_prefix_root_prompt:\x23
+SETUVAR pure_symbol_prompt:\u276f
+SETUVAR pure_symbol_reverse_prompt:\u276e
+SETUVAR pure_symbol_ssh_prefix:
+SETUVAR pure_symbol_title_bar_separator:\x2d
+SETUVAR pure_threshold_command_duration:5
diff --git a/.config/fish/functions/_pure_check_for_new_release.fish b/.config/fish/functions/_pure_check_for_new_release.fish
new file mode 120000
index 00000000..0f43d729
--- /dev/null
+++ b/.config/fish/functions/_pure_check_for_new_release.fish
@@ -0,0 +1 @@
+/Users/alpha/.config/fish/functions/theme-pure/functions/_pure_check_for_new_release.fish
\ No newline at end of file
diff --git a/.config/fish/functions/_pure_detect_container_by_cgroup_method.fish b/.config/fish/functions/_pure_detect_container_by_cgroup_method.fish
new file mode 120000
index 00000000..84d0554d
--- /dev/null
+++ b/.config/fish/functions/_pure_detect_container_by_cgroup_method.fish
@@ -0,0 +1 @@
+/Users/alpha/.config/fish/functions/theme-pure/functions/_pure_detect_container_by_cgroup_method.fish
\ No newline at end of file
diff --git a/.config/fish/functions/_pure_detect_container_by_pid_method.fish b/.config/fish/functions/_pure_detect_container_by_pid_method.fish
new file mode 120000
index 00000000..beefe28f
--- /dev/null
+++ b/.config/fish/functions/_pure_detect_container_by_pid_method.fish
@@ -0,0 +1 @@
+/Users/alpha/.config/fish/functions/theme-pure/functions/_pure_detect_container_by_pid_method.fish
\ No newline at end of file
diff --git a/.config/fish/functions/_pure_format_time.fish b/.config/fish/functions/_pure_format_time.fish
new file mode 120000
index 00000000..af523c8b
--- /dev/null
+++ b/.config/fish/functions/_pure_format_time.fish
@@ -0,0 +1 @@
+/Users/alpha/.config/fish/functions/theme-pure/functions/_pure_format_time.fish
\ No newline at end of file
diff --git a/.config/fish/functions/_pure_get_prompt_symbol.fish b/.config/fish/functions/_pure_get_prompt_symbol.fish
new file mode 120000
index 00000000..dc57a311
--- /dev/null
+++ b/.config/fish/functions/_pure_get_prompt_symbol.fish
@@ -0,0 +1 @@
+/Users/alpha/.config/fish/functions/theme-pure/functions/_pure_get_prompt_symbol.fish
\ No newline at end of file
diff --git a/.config/fish/functions/_pure_is_inside_container.fish b/.config/fish/functions/_pure_is_inside_container.fish
new file mode 120000
index 00000000..49e486f7
--- /dev/null
+++ b/.config/fish/functions/_pure_is_inside_container.fish
@@ -0,0 +1 @@
+/Users/alpha/.config/fish/functions/theme-pure/functions/_pure_is_inside_container.fish
\ No newline at end of file
diff --git a/.config/fish/functions/_pure_is_single_line_prompt.fish b/.config/fish/functions/_pure_is_single_line_prompt.fish
new file mode 120000
index 00000000..62e4ac8b
--- /dev/null
+++ b/.config/fish/functions/_pure_is_single_line_prompt.fish
@@ -0,0 +1 @@
+/Users/alpha/.config/fish/functions/theme-pure/functions/_pure_is_single_line_prompt.fish
\ No newline at end of file
diff --git a/.config/fish/functions/_pure_parse_directory.fish b/.config/fish/functions/_pure_parse_directory.fish
new file mode 120000
index 00000000..75b8fdda
--- /dev/null
+++ b/.config/fish/functions/_pure_parse_directory.fish
@@ -0,0 +1 @@
+/Users/alpha/.config/fish/functions/theme-pure/functions/_pure_parse_directory.fish
\ No newline at end of file
diff --git a/.config/fish/functions/_pure_parse_git_branch.fish b/.config/fish/functions/_pure_parse_git_branch.fish
new file mode 120000
index 00000000..bc91d4ea
--- /dev/null
+++ b/.config/fish/functions/_pure_parse_git_branch.fish
@@ -0,0 +1 @@
+/Users/alpha/.config/fish/functions/theme-pure/functions/_pure_parse_git_branch.fish
\ No newline at end of file
diff --git a/.config/fish/functions/_pure_place_iterm2_prompt_mark.fish b/.config/fish/functions/_pure_place_iterm2_prompt_mark.fish
new file mode 120000
index 00000000..4d8e7d2d
--- /dev/null
+++ b/.config/fish/functions/_pure_place_iterm2_prompt_mark.fish
@@ -0,0 +1 @@
+/Users/alpha/.config/fish/functions/theme-pure/functions/_pure_place_iterm2_prompt_mark.fish
\ No newline at end of file
diff --git a/.config/fish/functions/_pure_prefix_root_prompt.fish b/.config/fish/functions/_pure_prefix_root_prompt.fish
new file mode 120000
index 00000000..2dd03648
--- /dev/null
+++ b/.config/fish/functions/_pure_prefix_root_prompt.fish
@@ -0,0 +1 @@
+/Users/alpha/.config/fish/functions/theme-pure/functions/_pure_prefix_root_prompt.fish
\ No newline at end of file
diff --git a/.config/fish/functions/_pure_print_prompt.fish b/.config/fish/functions/_pure_print_prompt.fish
new file mode 120000
index 00000000..96e146b4
--- /dev/null
+++ b/.config/fish/functions/_pure_print_prompt.fish
@@ -0,0 +1 @@
+/Users/alpha/.config/fish/functions/theme-pure/functions/_pure_print_prompt.fish
\ No newline at end of file
diff --git a/.config/fish/functions/_pure_print_prompt_rows.fish b/.config/fish/functions/_pure_print_prompt_rows.fish
new file mode 120000
index 00000000..3e469786
--- /dev/null
+++ b/.config/fish/functions/_pure_print_prompt_rows.fish
@@ -0,0 +1 @@
+/Users/alpha/.config/fish/functions/theme-pure/functions/_pure_print_prompt_rows.fish
\ No newline at end of file
diff --git a/.config/fish/functions/_pure_prompt.fish b/.config/fish/functions/_pure_prompt.fish
new file mode 120000
index 00000000..67f93170
--- /dev/null
+++ b/.config/fish/functions/_pure_prompt.fish
@@ -0,0 +1 @@
+/Users/alpha/.config/fish/functions/theme-pure/functions/_pure_prompt.fish
\ No newline at end of file
diff --git a/.config/fish/functions/_pure_prompt_beginning.fish b/.config/fish/functions/_pure_prompt_beginning.fish
new file mode 120000
index 00000000..52ec50f3
--- /dev/null
+++ b/.config/fish/functions/_pure_prompt_beginning.fish
@@ -0,0 +1 @@
+/Users/alpha/.config/fish/functions/theme-pure/functions/_pure_prompt_beginning.fish
\ No newline at end of file
diff --git a/.config/fish/functions/_pure_prompt_command_duration.fish b/.config/fish/functions/_pure_prompt_command_duration.fish
new file mode 120000
index 00000000..a72ff82e
--- /dev/null
+++ b/.config/fish/functions/_pure_prompt_command_duration.fish
@@ -0,0 +1 @@
+/Users/alpha/.config/fish/functions/theme-pure/functions/_pure_prompt_command_duration.fish
\ No newline at end of file
diff --git a/.config/fish/functions/_pure_prompt_container.fish b/.config/fish/functions/_pure_prompt_container.fish
new file mode 120000
index 00000000..8f532b94
--- /dev/null
+++ b/.config/fish/functions/_pure_prompt_container.fish
@@ -0,0 +1 @@
+/Users/alpha/.config/fish/functions/theme-pure/functions/_pure_prompt_container.fish
\ No newline at end of file
diff --git a/.config/fish/functions/_pure_prompt_current_folder.fish b/.config/fish/functions/_pure_prompt_current_folder.fish
new file mode 120000
index 00000000..64e6489f
--- /dev/null
+++ b/.config/fish/functions/_pure_prompt_current_folder.fish
@@ -0,0 +1 @@
+/Users/alpha/.config/fish/functions/theme-pure/functions/_pure_prompt_current_folder.fish
\ No newline at end of file
diff --git a/.config/fish/functions/_pure_prompt_ending.fish b/.config/fish/functions/_pure_prompt_ending.fish
new file mode 120000
index 00000000..ecab55e6
--- /dev/null
+++ b/.config/fish/functions/_pure_prompt_ending.fish
@@ -0,0 +1 @@
+/Users/alpha/.config/fish/functions/theme-pure/functions/_pure_prompt_ending.fish
\ No newline at end of file
diff --git a/.config/fish/functions/_pure_prompt_first_line.fish b/.config/fish/functions/_pure_prompt_first_line.fish
new file mode 120000
index 00000000..d7497578
--- /dev/null
+++ b/.config/fish/functions/_pure_prompt_first_line.fish
@@ -0,0 +1 @@
+/Users/alpha/.config/fish/functions/theme-pure/functions/_pure_prompt_first_line.fish
\ No newline at end of file
diff --git a/.config/fish/functions/_pure_prompt_git.fish b/.config/fish/functions/_pure_prompt_git.fish
new file mode 120000
index 00000000..4d422ca3
--- /dev/null
+++ b/.config/fish/functions/_pure_prompt_git.fish
@@ -0,0 +1 @@
+/Users/alpha/.config/fish/functions/theme-pure/functions/_pure_prompt_git.fish
\ No newline at end of file
diff --git a/.config/fish/functions/_pure_prompt_git_branch.fish b/.config/fish/functions/_pure_prompt_git_branch.fish
new file mode 120000
index 00000000..f0962d36
--- /dev/null
+++ b/.config/fish/functions/_pure_prompt_git_branch.fish
@@ -0,0 +1 @@
+/Users/alpha/.config/fish/functions/theme-pure/functions/_pure_prompt_git_branch.fish
\ No newline at end of file
diff --git a/.config/fish/functions/_pure_prompt_git_dirty.fish b/.config/fish/functions/_pure_prompt_git_dirty.fish
new file mode 120000
index 00000000..6b423e01
--- /dev/null
+++ b/.config/fish/functions/_pure_prompt_git_dirty.fish
@@ -0,0 +1 @@
+/Users/alpha/.config/fish/functions/theme-pure/functions/_pure_prompt_git_dirty.fish
\ No newline at end of file
diff --git a/.config/fish/functions/_pure_prompt_git_pending_commits.fish b/.config/fish/functions/_pure_prompt_git_pending_commits.fish
new file mode 120000
index 00000000..8b85a836
--- /dev/null
+++ b/.config/fish/functions/_pure_prompt_git_pending_commits.fish
@@ -0,0 +1 @@
+/Users/alpha/.config/fish/functions/theme-pure/functions/_pure_prompt_git_pending_commits.fish
\ No newline at end of file
diff --git a/.config/fish/functions/_pure_prompt_git_stash.fish b/.config/fish/functions/_pure_prompt_git_stash.fish
new file mode 120000
index 00000000..37711a22
--- /dev/null
+++ b/.config/fish/functions/_pure_prompt_git_stash.fish
@@ -0,0 +1 @@
+/Users/alpha/.config/fish/functions/theme-pure/functions/_pure_prompt_git_stash.fish
\ No newline at end of file
diff --git a/.config/fish/functions/_pure_prompt_jobs.fish b/.config/fish/functions/_pure_prompt_jobs.fish
new file mode 120000
index 00000000..1182dd8b
--- /dev/null
+++ b/.config/fish/functions/_pure_prompt_jobs.fish
@@ -0,0 +1 @@
+/Users/alpha/.config/fish/functions/theme-pure/functions/_pure_prompt_jobs.fish
\ No newline at end of file
diff --git a/.config/fish/functions/_pure_prompt_new_line.fish b/.config/fish/functions/_pure_prompt_new_line.fish
new file mode 120000
index 00000000..8653a7e5
--- /dev/null
+++ b/.config/fish/functions/_pure_prompt_new_line.fish
@@ -0,0 +1 @@
+/Users/alpha/.config/fish/functions/theme-pure/functions/_pure_prompt_new_line.fish
\ No newline at end of file
diff --git a/.config/fish/functions/_pure_prompt_ssh.fish b/.config/fish/functions/_pure_prompt_ssh.fish
new file mode 120000
index 00000000..a297d052
--- /dev/null
+++ b/.config/fish/functions/_pure_prompt_ssh.fish
@@ -0,0 +1 @@
+/Users/alpha/.config/fish/functions/theme-pure/functions/_pure_prompt_ssh.fish
\ No newline at end of file
diff --git a/.config/fish/functions/_pure_prompt_symbol.fish b/.config/fish/functions/_pure_prompt_symbol.fish
new file mode 120000
index 00000000..9d2b392e
--- /dev/null
+++ b/.config/fish/functions/_pure_prompt_symbol.fish
@@ -0,0 +1 @@
+/Users/alpha/.config/fish/functions/theme-pure/functions/_pure_prompt_symbol.fish
\ No newline at end of file
diff --git a/.config/fish/functions/_pure_prompt_system_time.fish b/.config/fish/functions/_pure_prompt_system_time.fish
new file mode 120000
index 00000000..80ef2124
--- /dev/null
+++ b/.config/fish/functions/_pure_prompt_system_time.fish
@@ -0,0 +1 @@
+/Users/alpha/.config/fish/functions/theme-pure/functions/_pure_prompt_system_time.fish
\ No newline at end of file
diff --git a/.config/fish/functions/_pure_prompt_vimode.fish b/.config/fish/functions/_pure_prompt_vimode.fish
new file mode 120000
index 00000000..ea4ff20e
--- /dev/null
+++ b/.config/fish/functions/_pure_prompt_vimode.fish
@@ -0,0 +1 @@
+/Users/alpha/.config/fish/functions/theme-pure/functions/_pure_prompt_vimode.fish
\ No newline at end of file
diff --git a/.config/fish/functions/_pure_prompt_virtualenv.fish b/.config/fish/functions/_pure_prompt_virtualenv.fish
new file mode 120000
index 00000000..d08f65db
--- /dev/null
+++ b/.config/fish/functions/_pure_prompt_virtualenv.fish
@@ -0,0 +1 @@
+/Users/alpha/.config/fish/functions/theme-pure/functions/_pure_prompt_virtualenv.fish
\ No newline at end of file
diff --git a/.config/fish/functions/_pure_set_color.fish b/.config/fish/functions/_pure_set_color.fish
new file mode 120000
index 00000000..055de6e1
--- /dev/null
+++ b/.config/fish/functions/_pure_set_color.fish
@@ -0,0 +1 @@
+/Users/alpha/.config/fish/functions/theme-pure/functions/_pure_set_color.fish
\ No newline at end of file
diff --git a/.config/fish/functions/_pure_set_default.fish b/.config/fish/functions/_pure_set_default.fish
new file mode 120000
index 00000000..68c96a15
--- /dev/null
+++ b/.config/fish/functions/_pure_set_default.fish
@@ -0,0 +1 @@
+/Users/alpha/.config/fish/functions/theme-pure/functions/_pure_set_default.fish
\ No newline at end of file
diff --git a/.config/fish/functions/_pure_string_width.fish b/.config/fish/functions/_pure_string_width.fish
new file mode 120000
index 00000000..6ffd20de
--- /dev/null
+++ b/.config/fish/functions/_pure_string_width.fish
@@ -0,0 +1 @@
+/Users/alpha/.config/fish/functions/theme-pure/functions/_pure_string_width.fish
\ No newline at end of file
diff --git a/.config/fish/functions/_pure_user_at_host.fish b/.config/fish/functions/_pure_user_at_host.fish
new file mode 120000
index 00000000..2fea3e4b
--- /dev/null
+++ b/.config/fish/functions/_pure_user_at_host.fish
@@ -0,0 +1 @@
+/Users/alpha/.config/fish/functions/theme-pure/functions/_pure_user_at_host.fish
\ No newline at end of file
diff --git a/.config/fish/functions/fish_greeting.fish b/.config/fish/functions/fish_greeting.fish
new file mode 120000
index 00000000..6db36fe0
--- /dev/null
+++ b/.config/fish/functions/fish_greeting.fish
@@ -0,0 +1 @@
+/Users/alpha/.config/fish/functions/theme-pure/functions/fish_greeting.fish
\ No newline at end of file
diff --git a/.config/fish/functions/fish_mode_prompt.fish b/.config/fish/functions/fish_mode_prompt.fish
new file mode 120000
index 00000000..0a9562cb
--- /dev/null
+++ b/.config/fish/functions/fish_mode_prompt.fish
@@ -0,0 +1 @@
+/Users/alpha/.config/fish/functions/theme-pure/functions/fish_mode_prompt.fish
\ No newline at end of file
diff --git a/.config/fish/functions/fish_prompt.fish b/.config/fish/functions/fish_prompt.fish
new file mode 120000
index 00000000..8d7bcaa9
--- /dev/null
+++ b/.config/fish/functions/fish_prompt.fish
@@ -0,0 +1 @@
+/Users/alpha/.config/fish/functions/theme-pure/functions/fish_prompt.fish
\ No newline at end of file
diff --git a/.config/fish/functions/fish_title.fish b/.config/fish/functions/fish_title.fish
new file mode 120000
index 00000000..96ea357e
--- /dev/null
+++ b/.config/fish/functions/fish_title.fish
@@ -0,0 +1 @@
+/Users/alpha/.config/fish/functions/theme-pure/functions/fish_title.fish
\ No newline at end of file
diff --git a/.config/fish/functions/theme-pure b/.config/fish/functions/theme-pure
new file mode 160000
index 00000000..1aca7e7a
--- /dev/null
+++ b/.config/fish/functions/theme-pure
@@ -0,0 +1 @@
+Subproject commit 1aca7e7a45768af2f5196daa6d37dd2a1d2bb75a
diff --git a/.gitmodules b/.gitmodules
index 66f3f618..4299fa63 100644
--- a/.gitmodules
+++ b/.gitmodules
@@ -278,3 +278,7 @@
path = .local/share/nvim/site/pack/alpha/start/treesitter-playground
url = https://github.com/nvim-treesitter/playground.git
branch = master
+[submodule ".config/fish/functions/theme-pure"]
+ path = .config/fish/functions/theme-pure
+ url = https://github.com/pure-fish/pure.git
+ branch = master