diff --git a/.gitignore b/.gitignore
index f50f065..66db231 100644
--- a/.gitignore
+++ b/.gitignore
@@ -11,6 +11,7 @@
!zathura/
!mimeapps.list
!fuzzel/
+!fish/
!brave-flags.conf
!chromium-flags.conf
!README.md
diff --git a/btop/btop.conf b/btop/btop.conf
index 510fab2..10ca1a5 100644
--- a/btop/btop.conf
+++ b/btop/btop.conf
@@ -63,7 +63,7 @@ proc_sorting = "cpu lazy"
proc_reversed = False
#* Show processes as a tree.
-proc_tree = False
+proc_tree = True
#* Use the cpu graph colors in the process list.
proc_colors = True
diff --git a/fish/conf.d/autopair.fish b/fish/conf.d/autopair.fish
new file mode 100644
index 0000000..abb4bf3
--- /dev/null
+++ b/fish/conf.d/autopair.fish
@@ -0,0 +1,39 @@
+status is-interactive || exit
+
+set --global autopair_left "(" "[" "{" '"' "'"
+set --global autopair_right ")" "]" "}" '"' "'"
+set --global autopair_pairs "()" "[]" "{}" '""' "''"
+
+function _autopair_fish_key_bindings --on-variable fish_key_bindings
+ set --query fish_key_bindings[1] || return
+
+ test $fish_key_bindings = fish_default_key_bindings &&
+ set --local mode default insert ||
+ set --local mode insert default
+
+ bind --mode $mode[-1] --erase \177 \b \t
+
+ bind --mode $mode[1] \177 _autopair_backspace # macOS ⌫
+ bind --mode $mode[1] \b _autopair_backspace
+ bind --mode $mode[1] \t _autopair_tab
+
+ printf "%s\n" $autopair_pairs | while read --local left right --delimiter ""
+ bind --mode $mode[-1] --erase $left $right
+ if test $left = $right
+ bind --mode $mode[1] $left "_autopair_insert_same \\$left"
+ else
+ bind --mode $mode[1] $left "_autopair_insert_left \\$left \\$right"
+ bind --mode $mode[1] $right "_autopair_insert_right \\$right"
+ end
+ end
+end
+
+_autopair_fish_key_bindings
+
+function _autopair_uninstall --on-event autopair_uninstall
+ string collect (
+ bind --all | string replace --filter --regex -- "_autopair.*" --erase
+ set --names | string replace --filter --regex -- "^autopair" "set --erase autopair"
+ ) | source
+ functions --erase (functions --all | string match "_autopair_*")
+end
diff --git a/fish/conf.d/done.fish b/fish/conf.d/done.fish
new file mode 100644
index 0000000..b1a989b
--- /dev/null
+++ b/fish/conf.d/done.fish
@@ -0,0 +1,300 @@
+# MIT License
+
+# Copyright (c) 2016 Francisco Lourenço & Daniel Wehner
+
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and associated documentation files (the "Software"), to deal
+# in the Software without restriction, including without limitation the rights
+# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+# copies of the Software, and to permit persons to whom the Software is
+# furnished to do so, subject to the following conditions:
+
+# The above copyright notice and this permission notice shall be included in all
+# copies or substantial portions of the Software.
+
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+# SOFTWARE.
+
+if not status is-interactive
+ exit
+end
+
+set -g __done_version 1.16.5
+
+function __done_run_powershell_script
+ set -l powershell_exe (command --search "powershell.exe")
+
+ if test $status -ne 0
+ and command --search wslvar
+
+ set -l powershell_exe (wslpath (wslvar windir)/System32/WindowsPowerShell/v1.0/powershell.exe)
+ end
+
+ if string length --quiet "$powershell_exe"
+ and test -x "$powershell_exe"
+
+ set cmd (string escape $argv)
+
+ eval "$powershell_exe -Command $cmd"
+ end
+end
+
+function __done_windows_notification -a title -a message
+ if test "$__done_notify_sound" -eq 1
+ set soundopt ""
+ else
+ set soundopt ""
+ end
+
+ __done_run_powershell_script "
+[Windows.Data.Xml.Dom.XmlDocument, Windows.Data.Xml.Dom.XmlDocument, ContentType = WindowsRuntime] | Out-Null
+[Windows.UI.Notifications.ToastNotification, Windows.UI.Notifications, ContentType = WindowsRuntime] | Out-Null
+
+\$toast_xml_source = @\"
+
+ $soundopt
+
+
+ $title
+ $message
+
+
+
+\"@
+
+\$toast_xml = New-Object Windows.Data.Xml.Dom.XmlDocument
+\$toast_xml.loadXml(\$toast_xml_source)
+
+\$toast = New-Object Windows.UI.Notifications.ToastNotification \$toast_xml
+
+[Windows.UI.Notifications.ToastNotificationManager]::CreateToastNotifier(\"fish\").Show(\$toast)
+"
+end
+
+function __done_get_focused_window_id
+ if type -q lsappinfo
+ lsappinfo info -only bundleID (lsappinfo front) | cut -d '"' -f4
+ else if test -n "$SWAYSOCK"
+ and type -q jq
+ swaymsg --type get_tree | jq '.. | objects | select(.focused == true) | .id'
+ else if begin
+ test "$XDG_SESSION_DESKTOP" = gnome; and type -q gdbus
+ end
+ gdbus call --session --dest org.gnome.Shell --object-path /org/gnome/Shell --method org.gnome.Shell.Eval 'global.display.focus_window.get_id()'
+ else if type -q xprop
+ and test -n "$DISPLAY"
+ # Test that the X server at $DISPLAY is running
+ and xprop -grammar >/dev/null 2>&1
+ xprop -root 32x '\t$0' _NET_ACTIVE_WINDOW | cut -f 2
+ else if uname -a | string match --quiet --ignore-case --regex microsoft
+ __done_run_powershell_script '
+Add-Type @"
+ using System;
+ using System.Runtime.InteropServices;
+ public class WindowsCompat {
+ [DllImport("user32.dll")]
+ public static extern IntPtr GetForegroundWindow();
+ }
+"@
+[WindowsCompat]::GetForegroundWindow()
+'
+ else if set -q __done_allow_nongraphical
+ echo 12345 # dummy value
+ end
+end
+
+function __done_is_tmux_window_active
+ set -q fish_pid; or set -l fish_pid %self
+
+ # find the outermost process within tmux
+ # ppid != "tmux" -> pid = ppid
+ # ppid == "tmux" -> break
+ set tmux_fish_pid $fish_pid
+ while set tmux_fish_ppid (ps -o ppid= -p $tmux_fish_pid | string trim)
+ and ! string match -q "tmux*" (basename (ps -o command= -p $tmux_fish_ppid))
+ set tmux_fish_pid $tmux_fish_ppid
+ end
+
+ # tmux session attached and window is active -> no notification
+ # all other combinations -> send notification
+ tmux list-panes -a -F "#{session_attached} #{window_active} #{pane_pid}" | string match -q "1 1 $tmux_fish_pid"
+end
+
+function __done_is_screen_window_active
+ string match --quiet --regex "$STY\s+\(Attached" (screen -ls)
+end
+
+function __done_is_process_window_focused
+ # Return false if the window is not focused
+
+ if set -q __done_allow_nongraphical
+ return 1
+ end
+
+ set __done_focused_window_id (__done_get_focused_window_id)
+ if test "$__done_sway_ignore_visible" -eq 1
+ and test -n "$SWAYSOCK"
+ string match --quiet --regex "^true" (swaymsg -t get_tree | jq ".. | objects | select(.id == "$__done_initial_window_id") | .visible")
+ return $status
+ else if test "$__done_initial_window_id" != "$__done_focused_window_id"
+ return 1
+ end
+ # If inside a tmux session, check if the tmux window is focused
+ if type -q tmux
+ and test -n "$TMUX"
+ __done_is_tmux_window_active
+ return $status
+ end
+
+ # If inside a screen session, check if the screen window is focused
+ if type -q screen
+ and test -n "$STY"
+ __done_is_screen_window_active
+ return $status
+ end
+
+ return 0
+end
+
+function __done_humanize_duration -a milliseconds
+ set -l seconds (math --scale=0 "$milliseconds/1000" % 60)
+ set -l minutes (math --scale=0 "$milliseconds/60000" % 60)
+ set -l hours (math --scale=0 "$milliseconds/3600000")
+
+ if test $hours -gt 0
+ printf '%s' $hours'h '
+ end
+ if test $minutes -gt 0
+ printf '%s' $minutes'm '
+ end
+ if test $seconds -gt 0
+ printf '%s' $seconds's'
+ end
+end
+
+# verify that the system has graphical capabilities before initializing
+if test -z "$SSH_CLIENT" # not over ssh
+ and count (__done_get_focused_window_id) >/dev/null # is able to get window id
+ set __done_enabled
+end
+
+if set -q __done_allow_nongraphical
+ and set -q __done_notification_command
+ set __done_enabled
+end
+
+if set -q __done_enabled
+ set -g __done_initial_window_id ''
+ set -q __done_min_cmd_duration; or set -g __done_min_cmd_duration 5000
+ set -q __done_exclude; or set -g __done_exclude 'git (?!push|pull|fetch)'
+ set -q __done_notify_sound; or set -g __done_notify_sound 0
+ set -q __done_sway_ignore_visible; or set -g __done_sway_ignore_visible 0
+
+ function __done_started --on-event fish_preexec
+ set __done_initial_window_id (__done_get_focused_window_id)
+ end
+
+ function __done_ended --on-event fish_prompt
+ set -l exit_status $status
+
+ # backwards compatibility for fish < v3.0
+ set -q cmd_duration; or set -l cmd_duration $CMD_DURATION
+
+ if test $cmd_duration
+ and test $cmd_duration -gt $__done_min_cmd_duration # longer than notify_duration
+ and not __done_is_process_window_focused # process pane or window not focused
+ and not string match -qr $__done_exclude $history[1] # don't notify on git commands which might wait external editor
+
+ # Store duration of last command
+ set -l humanized_duration (__done_humanize_duration "$cmd_duration")
+
+ set -l title "Done in $humanized_duration"
+ set -l wd (string replace --regex "^$HOME" "~" (pwd))
+ set -l message "$wd/ $history[1]"
+ set -l sender $__done_initial_window_id
+
+ if test $exit_status -ne 0
+ set title "Failed ($exit_status) after $humanized_duration"
+ end
+
+ if set -q __done_notification_command
+ eval $__done_notification_command
+ if test "$__done_notify_sound" -eq 1
+ echo -e "\a" # bell sound
+ end
+ else if type -q terminal-notifier # https://github.com/julienXX/terminal-notifier
+ if test "$__done_notify_sound" -eq 1
+ terminal-notifier -message "$message" -title "$title" -sender "$__done_initial_window_id" -sound default
+ else
+ terminal-notifier -message "$message" -title "$title" -sender "$__done_initial_window_id"
+ end
+
+ else if type -q osascript # AppleScript
+ osascript -e "display notification \"$message\" with title \"$title\""
+ if test "$__done_notify_sound" -eq 1
+ echo -e "\a" # bell sound
+ end
+
+ else if type -q notify-send # Linux notify-send
+ # set urgency to normal
+ set -l urgency normal
+
+ # use user-defined urgency if set
+ if set -q __done_notification_urgency_level
+ set urgency "$__done_notification_urgency_level"
+ end
+ # override user-defined urgency level if non-zero exitstatus
+ if test $exit_status -ne 0
+ set urgency critical
+ if set -q __done_notification_urgency_level_failure
+ set urgency "$__done_notification_urgency_level_failure"
+ end
+ end
+
+ notify-send --hint=int:transient:1 --urgency=$urgency --icon=utilities-terminal --app-name=fish "$title" "$message"
+
+ if test "$__done_notify_sound" -eq 1
+ echo -e "\a" # bell sound
+ end
+
+ else if type -q notify-desktop # Linux notify-desktop
+ set -l urgency
+ if test $exit_status -ne 0
+ set urgency "--urgency=critical"
+ end
+ notify-desktop $urgency --icon=utilities-terminal --app-name=fish "$title" "$message"
+ if test "$__done_notify_sound" -eq 1
+ echo -e "\a" # bell sound
+ end
+
+ else if uname -a | string match --quiet --ignore-case --regex microsoft
+ __done_windows_notification "$title" "$message"
+
+ else # anything else
+ echo -e "\a" # bell sound
+ end
+
+ end
+ end
+end
+
+function __done_uninstall -e done_uninstall
+ # Erase all __done_* functions
+ functions -e __done_ended
+ functions -e __done_started
+ functions -e __done_get_focused_window_id
+ functions -e __done_is_tmux_window_active
+ functions -e __done_is_screen_window_active
+ functions -e __done_is_process_window_focused
+ functions -e __done_windows_notification
+ functions -e __done_run_powershell_script
+ functions -e __done_humanize_duration
+
+ # Erase __done variables
+ set -e __done_version
+end
diff --git a/fish/conf.d/omf.fish b/fish/conf.d/omf.fish
new file mode 100644
index 0000000..3e0f6d6
--- /dev/null
+++ b/fish/conf.d/omf.fish
@@ -0,0 +1,7 @@
+# Path to Oh My Fish install.
+set -q XDG_DATA_HOME
+ and set -gx OMF_PATH "$XDG_DATA_HOME/omf"
+ or set -gx OMF_PATH "$HOME/.local/share/omf"
+
+# Load Oh My Fish configuration.
+source $OMF_PATH/init.fish
diff --git a/fish/config.fish b/fish/config.fish
new file mode 100644
index 0000000..ff870d1
--- /dev/null
+++ b/fish/config.fish
@@ -0,0 +1,31 @@
+if status is-interactive
+ # Commands to run in interactive sessions can go here
+end
+# set SPACESHIP_PROMPT_ADD_NEWLINE false
+# set SPACESHIP_TIME_SHOW false
+# set SPACESHIP_USER_SHOW always
+# set SPACESHIP_HOST_SHOW true
+# set SPACESHIP_CHAR_SYMBOL ""
+# set SPACESHIP_CHAR_SYMBOL=" "
+# set SPACESHIP_VI_MODE_INSERT
+# set SPACESHIP_VI_MODE_NORMAL
+# Set the cursor shapes for the different vi modes.
+set fish_cursor_default block blink
+set fish_cursor_insert line blink
+set fish_cursor_replace_one underscore blink
+set fish_cursor_visual block
+# starship init fish | source
+fish_vi_key_bindings
+if test -e ~/.cache/wal/colors.fish
+ source ~/.cache/wal/colors.fish
+end
+zoxide init --cmd cd fish | source
+set -gx PATH ~/.local/bin $PATH
+if not pgrep --full ssh-agent | string collect > /dev/null
+ eval (ssh-agent -c)
+ set -Ux SSH_AGENT_PID $SSH_AGENT_PID
+ set -Ux SSH_AUTH_SOCK $SSH_AUTH_SOCK
+end
+if uwsm check may-start && uwsm select
+ exec uwsm start default
+end
diff --git a/fish/fish_plugins b/fish/fish_plugins
new file mode 100644
index 0000000..4e6e9a7
--- /dev/null
+++ b/fish/fish_plugins
@@ -0,0 +1,2 @@
+franciscolourenco/done
+jorgebucaran/autopair.fish
diff --git a/fish/fish_variables b/fish/fish_variables
new file mode 100644
index 0000000..62f34c1
--- /dev/null
+++ b/fish/fish_variables
@@ -0,0 +1,128 @@
+# This file contains fish universal variable definitions.
+# VERSION: 3.0
+SETUVAR CUDAToolkit_ROOT:/opt/cuda/
+SETUVAR DATABASE_URL:sqlite\x3adatabase\x2esqlite
+SETUVAR GLFW_IM_MODULE:ibus
+SETUVAR MANPAGER:sh\x20\x2dc\x20\x27col\x20\x2dbx\x20\x7c\x20bat\x20\x2dl\x20man\x20\x2dp\x27
+SETUVAR RUST_LOG:debug
+SETUVAR --export SSH_AGENT_PID:1759
+SETUVAR --export SSH_AUTH_SOCK:/tmp/ssh\x2dXXXXXXP83gHQ/agent\x2e1758
+SETUVAR SXHKD_SHELL:/usr/bin/bash
+SETUVAR ZO_CMD:zo
+SETUVAR Z_CMD:z
+SETUVAR Z_DATA:/home/narl/\x2elocal/share/z/data
+SETUVAR Z_DATA_DIR:/home/narl/\x2elocal/share/z
+SETUVAR Z_EXCLUDE:\x5e/home/narl\x24
+SETUVAR __done_min_cmd_duration:5000
+SETUVAR __fish_initialized:3800
+SETUVAR _fisher_franciscolourenco_2F_done_files:/home/niru/\x2econfig/fish/conf\x2ed/done\x2efish
+SETUVAR _fisher_jorgebucaran_2F_autopair_2E_fish_files:/home/niru/\x2econfig/fish/functions/_autopair_backspace\x2efish\x1e/home/niru/\x2econfig/fish/functions/_autopair_insert_left\x2efish\x1e/home/niru/\x2econfig/fish/functions/_autopair_insert_right\x2efish\x1e/home/niru/\x2econfig/fish/functions/_autopair_insert_same\x2efish\x1e/home/niru/\x2econfig/fish/functions/_autopair_tab\x2efish\x1e/home/niru/\x2econfig/fish/conf\x2ed/autopair\x2efish
+SETUVAR _fisher_plugins:franciscolourenco/done\x1ejorgebucaran/autopair\x2efish
+SETUVAR fish_color_autosuggestion:6c7086
+SETUVAR fish_color_cancel:f38ba8
+SETUVAR fish_color_command:89b4fa
+SETUVAR fish_color_comment:7f849c
+SETUVAR fish_color_cwd:f9e2af
+SETUVAR fish_color_cwd_root:red
+SETUVAR fish_color_end:fab387
+SETUVAR fish_color_error:f38ba8
+SETUVAR fish_color_escape:eba0ac
+SETUVAR fish_color_gray:6c7086
+SETUVAR fish_color_history_current:\x2d\x2dbold
+SETUVAR fish_color_host:89b4fa
+SETUVAR fish_color_host_remote:a6e3a1
+SETUVAR fish_color_keyword:f38ba8
+SETUVAR fish_color_match:\x2d\x2dbackground\x3dbrblue
+SETUVAR fish_color_normal:cdd6f4
+SETUVAR fish_color_operator:f5c2e7
+SETUVAR fish_color_option:a6e3a1
+SETUVAR fish_color_param:f2cdcd
+SETUVAR fish_color_quote:a6e3a1
+SETUVAR fish_color_redirection:f5c2e7
+SETUVAR fish_color_search_match:\x2d\x2dbackground\x3d313244
+SETUVAR fish_color_selection:\x2d\x2dbackground\x3d313244
+SETUVAR fish_color_status:f38ba8
+SETUVAR fish_color_user:94e2d5
+SETUVAR fish_color_valid_path:\x2d\x2dunderline
+SETUVAR fish_greeting:\x1d
+SETUVAR fish_key_bindings:fish_vi_key_bindings
+SETUVAR fish_pager_color_background:\x1d
+SETUVAR fish_pager_color_completion:cdd6f4
+SETUVAR fish_pager_color_description:6c7086
+SETUVAR fish_pager_color_prefix:f5c2e7
+SETUVAR fish_pager_color_progress:6c7086
+SETUVAR fish_pager_color_secondary_background:\x1d
+SETUVAR fish_pager_color_secondary_completion:\x1d
+SETUVAR fish_pager_color_secondary_description:\x1d
+SETUVAR fish_pager_color_secondary_prefix:\x1d
+SETUVAR fish_pager_color_selected_background:\x1d
+SETUVAR fish_pager_color_selected_completion:\x1d
+SETUVAR fish_pager_color_selected_description:\x1d
+SETUVAR fish_pager_color_selected_prefix:\x1d
+SETUVAR fish_user_paths:/home/narl/dev/enqs/dzgtrudi/src/TRuDI\x2eFrontend/node_modules/\x2ebin\x1e/home/niru/\x2escripts\x1e/home/niru/Documents/rust\x2ddev/practice\x2drs/target/release\x1e/opt/cuda/bin\x1e/home/niru/\x2ecargo/bin
+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_aws_profile:pure_color_warning
+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_k8s_context:pure_color_success
+SETUVAR pure_color_k8s_namespace:pure_color_primary
+SETUVAR pure_color_k8s_prefix:pure_color_info
+SETUVAR pure_color_light:white
+SETUVAR pure_color_mute:brblack
+SETUVAR pure_color_nixdevshell_prefix:pure_color_info
+SETUVAR pure_color_nixdevshell_symbol:pure_color_mute
+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_aws_profile:true
+SETUVAR pure_enable_container_detection:true
+SETUVAR pure_enable_git:true
+SETUVAR pure_enable_k8s:false
+SETUVAR pure_enable_nixdevshell:false
+SETUVAR pure_enable_single_line_prompt:false
+SETUVAR pure_enable_virtualenv:true
+SETUVAR pure_reverse_prompt_symbol_in_vimode:true
+SETUVAR pure_separate_prompt_on_error:false
+SETUVAR pure_shorten_prompt_current_directory_length:0
+SETUVAR pure_shorten_window_title_current_directory_length:0
+SETUVAR pure_show_jobs:true
+SETUVAR pure_show_prefix_root_prompt:false
+SETUVAR pure_show_subsecond_command_duration:false
+SETUVAR pure_show_system_time:false
+SETUVAR pure_symbol_aws_profile_prefix:
+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_k8s_prefix:\u2638
+SETUVAR pure_symbol_nixdevshell_prefix:\u2744\ufe0f
+SETUVAR pure_symbol_prefix_root_prompt:\x23
+SETUVAR pure_symbol_prompt:\x3e_
+SETUVAR pure_symbol_reverse_prompt:\x7c_
+SETUVAR pure_symbol_ssh_prefix:
+SETUVAR pure_symbol_title_bar_separator:\x2d
+SETUVAR pure_symbol_virtualenv_prefix:
+SETUVAR pure_threshold_command_duration:5
+SETUVAR pure_truncate_prompt_current_directory_keeps:\x2d1
+SETUVAR pure_truncate_window_title_current_directory_keeps:\x2d1
diff --git a/fish/functions/_autopair_backspace.fish b/fish/functions/_autopair_backspace.fish
new file mode 100644
index 0000000..a43fa79
--- /dev/null
+++ b/fish/functions/_autopair_backspace.fish
@@ -0,0 +1,9 @@
+function _autopair_backspace
+ set --local index (commandline --cursor)
+ set --local buffer (commandline)
+
+ test $index -ge 1 &&
+ contains -- (string sub --start=$index --length=2 -- "$buffer") $autopair_pairs &&
+ commandline --function delete-char
+ commandline --function backward-delete-char
+end
diff --git a/fish/functions/_autopair_insert_left.fish b/fish/functions/_autopair_insert_left.fish
new file mode 100644
index 0000000..f078e86
--- /dev/null
+++ b/fish/functions/_autopair_insert_left.fish
@@ -0,0 +1,13 @@
+function _autopair_insert_left --argument-names left right
+ set --local buffer (commandline)
+ set --local before (commandline --cut-at-cursor)
+
+ commandline --insert -- $left
+
+ switch "$buffer"
+ case "$before"{," "\*,$autopair_right\*}
+ set --local index (commandline --cursor)
+ commandline --insert -- $right
+ commandline --cursor $index
+ end
+end
diff --git a/fish/functions/_autopair_insert_right.fish b/fish/functions/_autopair_insert_right.fish
new file mode 100644
index 0000000..a0bd61c
--- /dev/null
+++ b/fish/functions/_autopair_insert_right.fish
@@ -0,0 +1,11 @@
+function _autopair_insert_right --argument-names key
+ set --local buffer (commandline)
+ set --local before (commandline --cut-at-cursor)
+
+ switch "$buffer"
+ case "$before$key"\*
+ commandline --cursor (math (commandline --cursor) + 1)
+ case \*
+ commandline --insert -- $key
+ end
+end
diff --git a/fish/functions/_autopair_insert_same.fish b/fish/functions/_autopair_insert_same.fish
new file mode 100644
index 0000000..27f971d
--- /dev/null
+++ b/fish/functions/_autopair_insert_same.fish
@@ -0,0 +1,20 @@
+function _autopair_insert_same --argument-names key
+ set --local buffer (commandline)
+ set --local index (commandline --cursor)
+ set --local next (string sub --start=(math $index + 1) --length=1 -- "$buffer")
+
+ if test (math (count (string match --all --regex -- "$key" "$buffer")) % 2) = 0
+ test $key = $next && commandline --cursor (math $index + 1) && return
+
+ commandline --insert -- $key
+
+ if test $index -lt 1 ||
+ contains -- (string sub --start=$index --length=1 -- "$buffer") "" " " $autopair_left &&
+ contains -- $next "" " " $autopair_right
+ commandline --insert -- $key
+ commandline --cursor (math $index + 1)
+ end
+ else
+ commandline --insert -- $key
+ end
+end
diff --git a/fish/functions/_autopair_tab.fish b/fish/functions/_autopair_tab.fish
new file mode 100644
index 0000000..b74a0fb
--- /dev/null
+++ b/fish/functions/_autopair_tab.fish
@@ -0,0 +1,7 @@
+function _autopair_tab
+ commandline --paging-mode && down-or-search && return
+
+ string match --quiet --regex -- '\$[^\s]*"$' (commandline --current-token) &&
+ commandline --function delete-char
+ commandline --function complete
+end
diff --git a/fish/functions/batdiff.fish b/fish/functions/batdiff.fish
new file mode 100644
index 0000000..b37cd25
--- /dev/null
+++ b/fish/functions/batdiff.fish
@@ -0,0 +1,3 @@
+function batdiff --description 'batdiff function'
+ git diff --name-only --diff-filter=d $argv | bat --diff
+end
diff --git a/fish/functions/cat.fish b/fish/functions/cat.fish
new file mode 100644
index 0000000..5ef6a67
--- /dev/null
+++ b/fish/functions/cat.fish
@@ -0,0 +1,3 @@
+function cat --wraps=bat --description 'alias cat=bat'
+ bat $argv;
+end
diff --git a/fish/functions/cpr.fish b/fish/functions/cpr.fish
new file mode 100644
index 0000000..233c156
--- /dev/null
+++ b/fish/functions/cpr.fish
@@ -0,0 +1,3 @@
+function cpr
+ rsync --archive -hh --partial --info=stats1,progress2 --modify-window=1 $argv
+end
diff --git a/fish/functions/du.fish b/fish/functions/du.fish
new file mode 100644
index 0000000..3dcf5ad
--- /dev/null
+++ b/fish/functions/du.fish
@@ -0,0 +1,3 @@
+function du --wraps='dust -bs' --description 'alias du=dust -bs'
+ dust -bs $argv;
+end
diff --git a/fish/functions/egrep.fish b/fish/functions/egrep.fish
new file mode 100644
index 0000000..5da358d
--- /dev/null
+++ b/fish/functions/egrep.fish
@@ -0,0 +1,3 @@
+function egrep --description 'alias egrep=egrep --color=auto'
+ command egrep --color=auto $argv;
+end
diff --git a/fish/functions/fgrep.fish b/fish/functions/fgrep.fish
new file mode 100644
index 0000000..639e9f5
--- /dev/null
+++ b/fish/functions/fgrep.fish
@@ -0,0 +1,3 @@
+function fgrep --description 'alias fgrep=fgrep --color=auto'
+ command fgrep --color=auto $argv;
+end
diff --git a/fish/functions/fish_prompt.fish b/fish/functions/fish_prompt.fish
new file mode 100644
index 0000000..c3f0f39
--- /dev/null
+++ b/fish/functions/fish_prompt.fish
@@ -0,0 +1,30 @@
+function fish_prompt --description 'Write out the prompt'
+ set -l last_status $status
+ set -l normal (set_color normal)
+ set -l status_color (set_color brgreen)
+ set -l cwd_color (set_color $fish_color_cwd)
+ set -l vcs_color (set_color brpurple)
+ set -l prompt_status ""
+
+ # Since we display the prompt on a new line allow the directory names to be longer.
+ set -q fish_prompt_pwd_dir_length
+ or set -lx fish_prompt_pwd_dir_length 0
+
+ # Color the prompt differently when we're root
+ set -l suffix '❯'
+ if functions -q fish_is_root_user; and fish_is_root_user
+ if set -q fish_color_cwd_root
+ set cwd_color (set_color $fish_color_cwd_root)
+ end
+ set suffix '#'
+ end
+
+ # Color the prompt in red on error
+ if test $last_status -ne 0
+ set status_color (set_color $fish_color_error)
+ set prompt_status $status_color "[" $last_status "]" $normal
+ end
+
+ echo -s (prompt_login) ' ' $cwd_color (prompt_pwd) $vcs_color (fish_vcs_prompt) $normal ' ' $prompt_status
+ echo -n -s $status_color $suffix ' ' $normal
+end
diff --git a/fish/functions/grep.fish b/fish/functions/grep.fish
new file mode 100644
index 0000000..bbfe9ec
--- /dev/null
+++ b/fish/functions/grep.fish
@@ -0,0 +1,3 @@
+function grep --description 'alias grep=grep --color=auto'
+ command grep --color=auto $argv;
+end
diff --git a/fish/functions/la.fish b/fish/functions/la.fish
new file mode 100644
index 0000000..0375506
--- /dev/null
+++ b/fish/functions/la.fish
@@ -0,0 +1,3 @@
+function la --wraps='exa -a --long --color=auto' --description 'alias la=exa -a --long --color=auto'
+ exa -a --long --color=auto $argv;
+end
diff --git a/fish/functions/lg.fish b/fish/functions/lg.fish
new file mode 100644
index 0000000..aeaf7a1
--- /dev/null
+++ b/fish/functions/lg.fish
@@ -0,0 +1,3 @@
+function lg --wraps='exa --git --long' --description 'alias lg=exa --git --long'
+ exa --git --long $argv;
+end
diff --git a/fish/functions/ll.fish b/fish/functions/ll.fish
new file mode 100644
index 0000000..05bffc2
--- /dev/null
+++ b/fish/functions/ll.fish
@@ -0,0 +1,3 @@
+function ll --wraps='exa --long --color=auto' --description 'alias ll exa --long --color=auto'
+ exa --long --color=auto $argv;
+end
diff --git a/fish/functions/ls.fish b/fish/functions/ls.fish
new file mode 100644
index 0000000..e38f2d2
--- /dev/null
+++ b/fish/functions/ls.fish
@@ -0,0 +1,3 @@
+function ls --wraps='exa --long --color=auto' --description 'alias ls=exa --long --color=auto'
+ exa --long --color=auto $argv;
+end
diff --git a/fish/functions/mvr.fish b/fish/functions/mvr.fish
new file mode 100644
index 0000000..48340be
--- /dev/null
+++ b/fish/functions/mvr.fish
@@ -0,0 +1,3 @@
+function mvr
+ rsync --archive -hh --partial --info=stats1,progress2 --modify-window=1 --remove-source-files $argv
+end
diff --git a/fish/functions/open.fish b/fish/functions/open.fish
new file mode 100644
index 0000000..8e17e00
--- /dev/null
+++ b/fish/functions/open.fish
@@ -0,0 +1,3 @@
+function open -d "Open an application detached from the terminal"
+ nohup $argv >/dev/null 2>&1 &
+end
\ No newline at end of file
diff --git a/fish/themes/Catppuccin Frappe.theme b/fish/themes/Catppuccin Frappe.theme
new file mode 100644
index 0000000..b4c1994
--- /dev/null
+++ b/fish/themes/Catppuccin Frappe.theme
@@ -0,0 +1,30 @@
+# name: 'Catppuccin Frappé'
+# url: 'https://github.com/catppuccin/fish'
+# preferred_background: 303446
+
+fish_color_normal c6d0f5
+fish_color_command 8caaee
+fish_color_param eebebe
+fish_color_keyword e78284
+fish_color_quote a6d189
+fish_color_redirection f4b8e4
+fish_color_end ef9f76
+fish_color_comment 838ba7
+fish_color_error e78284
+fish_color_gray 737994
+fish_color_selection --background=414559
+fish_color_search_match --background=414559
+fish_color_option a6d189
+fish_color_operator f4b8e4
+fish_color_escape ea999c
+fish_color_autosuggestion 737994
+fish_color_cancel e78284
+fish_color_cwd e5c890
+fish_color_user 81c8be
+fish_color_host 8caaee
+fish_color_host_remote a6d189
+fish_color_status e78284
+fish_pager_color_progress 737994
+fish_pager_color_prefix f4b8e4
+fish_pager_color_completion c6d0f5
+fish_pager_color_description 737994
\ No newline at end of file
diff --git a/fish/themes/Catppuccin Latte.theme b/fish/themes/Catppuccin Latte.theme
new file mode 100644
index 0000000..002dace
--- /dev/null
+++ b/fish/themes/Catppuccin Latte.theme
@@ -0,0 +1,30 @@
+# name: 'Catppuccin Latte'
+# url: 'https://github.com/catppuccin/fish'
+# preferred_background: eff1f5
+
+fish_color_normal 4c4f69
+fish_color_command 1e66f5
+fish_color_param dd7878
+fish_color_keyword d20f39
+fish_color_quote 40a02b
+fish_color_redirection ea76cb
+fish_color_end fe640b
+fish_color_comment 8c8fa1
+fish_color_error d20f39
+fish_color_gray 9ca0b0
+fish_color_selection --background=ccd0da
+fish_color_search_match --background=ccd0da
+fish_color_option 40a02b
+fish_color_operator ea76cb
+fish_color_escape e64553
+fish_color_autosuggestion 9ca0b0
+fish_color_cancel d20f39
+fish_color_cwd df8e1d
+fish_color_user 179299
+fish_color_host 1e66f5
+fish_color_host_remote 40a02b
+fish_color_status d20f39
+fish_pager_color_progress 9ca0b0
+fish_pager_color_prefix ea76cb
+fish_pager_color_completion 4c4f69
+fish_pager_color_description 9ca0b0
\ No newline at end of file
diff --git a/fish/themes/Catppuccin Macchiato.theme b/fish/themes/Catppuccin Macchiato.theme
new file mode 100644
index 0000000..c8be912
--- /dev/null
+++ b/fish/themes/Catppuccin Macchiato.theme
@@ -0,0 +1,30 @@
+# name: 'Catppuccin Macchiato'
+# url: 'https://github.com/catppuccin/fish'
+# preferred_background: 24273a
+
+fish_color_normal cad3f5
+fish_color_command 8aadf4
+fish_color_param f0c6c6
+fish_color_keyword ed8796
+fish_color_quote a6da95
+fish_color_redirection f5bde6
+fish_color_end f5a97f
+fish_color_comment 8087a2
+fish_color_error ed8796
+fish_color_gray 6e738d
+fish_color_selection --background=363a4f
+fish_color_search_match --background=363a4f
+fish_color_option a6da95
+fish_color_operator f5bde6
+fish_color_escape ee99a0
+fish_color_autosuggestion 6e738d
+fish_color_cancel ed8796
+fish_color_cwd eed49f
+fish_color_user 8bd5ca
+fish_color_host 8aadf4
+fish_color_host_remote a6da95
+fish_color_status ed8796
+fish_pager_color_progress 6e738d
+fish_pager_color_prefix f5bde6
+fish_pager_color_completion cad3f5
+fish_pager_color_description 6e738d
\ No newline at end of file
diff --git a/fish/themes/Catppuccin Mocha.theme b/fish/themes/Catppuccin Mocha.theme
new file mode 100644
index 0000000..892a000
--- /dev/null
+++ b/fish/themes/Catppuccin Mocha.theme
@@ -0,0 +1,30 @@
+# name: 'Catppuccin Mocha'
+# url: 'https://github.com/catppuccin/fish'
+# preferred_background: 1e1e2e
+
+fish_color_normal cdd6f4
+fish_color_command 89b4fa
+fish_color_param f2cdcd
+fish_color_keyword f38ba8
+fish_color_quote a6e3a1
+fish_color_redirection f5c2e7
+fish_color_end fab387
+fish_color_comment 7f849c
+fish_color_error f38ba8
+fish_color_gray 6c7086
+fish_color_selection --background=313244
+fish_color_search_match --background=313244
+fish_color_option a6e3a1
+fish_color_operator f5c2e7
+fish_color_escape eba0ac
+fish_color_autosuggestion 6c7086
+fish_color_cancel f38ba8
+fish_color_cwd f9e2af
+fish_color_user 94e2d5
+fish_color_host 89b4fa
+fish_color_host_remote a6e3a1
+fish_color_status f38ba8
+fish_pager_color_progress 6c7086
+fish_pager_color_prefix f5c2e7
+fish_pager_color_completion cdd6f4
+fish_pager_color_description 6c7086
\ No newline at end of file
diff --git a/hypr/hyprland.conf b/hypr/hyprland.conf
index 8d8dc48..028f797 100644
--- a/hypr/hyprland.conf
+++ b/hypr/hyprland.conf
@@ -50,7 +50,7 @@ $menu = fuzzel
# Autostart necessary processes (like notifications daemons, status bars, etc.)
# Or execute your favorite apps at launch like this:
-exec-once = uwsm app -- waybar
+# exec-once = uwsm app -- waybar
exec-once = uwsm app -- nm-applet
exec-once = uwsm app -- nextcloud --background
exec-once = uwsm app -- rclone mount google_drive: ~/gdrive
@@ -215,7 +215,7 @@ input {
kb_options =
kb_rules =
- follow_mouse = 1
+ follow_mouse = 0
accel_profile = flat
sensitivity = 0 # -1.0 - 1.0, 0 means no modification.
diff --git a/waybar/config.jsonc b/waybar/config.jsonc
index 518ae1b..fe94a61 100644
--- a/waybar/config.jsonc
+++ b/waybar/config.jsonc
@@ -16,7 +16,7 @@
"max-length": 35
},
"clock": {
- "format": "{:%I:%M %p}",
+ "format": "{:%H:%M}",
"format-alt": "{:%a, %b %d}",
"tooltip-format": "{:%Y %B}\n{calendar}"
},
diff --git a/waybar/style.css b/waybar/style.css
index c288cc9..b2c0d5c 100644
--- a/waybar/style.css
+++ b/waybar/style.css
@@ -74,13 +74,13 @@ window#waybar.hidden {
}
#custom-anc.anc-active {
- color: @sky;
- border-bottom: 3px solid @sky;
+ color: @teal;
+ border-bottom: 3px solid @teal;
}
#custom-anc.anc-aware {
- color: @green;
- border-bottom: 3px solid @green;
+ color: @yellow;
+ border-bottom: 3px solid @yellow;
}
#custom-anc.anc-off {