switched from iterm to wezterm

This commit is contained in:
Jeremie Fraeys 2024-05-27 17:58:49 -04:00
parent f99d262760
commit 1972aef9bb
35 changed files with 593 additions and 215 deletions

View file

@ -1,2 +1,3 @@
/Users/jfraeys/yes
/Users/jfraeys/yes/envs/soft-skills-env
/Users/jfraeys/.conda
/usr/local/Caskroom/miniforge/base
/usr/local/Caskroom/miniforge/base/envs/soft-skills-env

23
gh/.config/gh/config.yml Normal file
View file

@ -0,0 +1,23 @@
# The current version of the config schema
version: 1
# What protocol to use when performing git operations. Supported values:
# ssh, https
git_protocol: https
# What editor gh should run when creating issues, pull requests, etc. If
# blank, will refer to environment.
editor: vim
# When to interactively prompt. This is a global config that cannot be
# overridden by hostname. Supported values: enabled, disabled
prompt: enabled
# A pager program to send command output to, e.g. "less". If blank, will
# refer to environment. Set the value to "cat" to disable the pager.
pager:
# Aliases allow you to create nicknames for gh commands
aliases:
co: pr checkout
# The path to a unix socket through which send HTTP connections. If blank,
# HTTP traffic will be handled by net/http.DefaultTransport.
http_unix_socket:
# What web browser gh should use when opening URLs. If blank, will refer to
# environment.
browser:

5
gh/.config/gh/hosts.yml Normal file
View file

@ -0,0 +1,5 @@
github.com:
git_protocol: https
users:
jfraeys:
user: jfraeys

View file

@ -0,0 +1,10 @@
/*This file contains any manual css for this page that needs to override the global styles.
This is only required when different pages style the same element differently. This is just
a hack to deal with our current css styles and no new styling should be added in this file.*/
#ipython-main-app {
position: relative;
}
#jupyter-main-app {
position: relative;
}

View file

@ -0,0 +1,82 @@
// leave at least 2 line with only a star on it below, or doc generation fails
/**
*
*
* Placeholder for custom user javascript
* mainly to be overridden in profile/static/custom/custom.js
* This will always be an empty file in IPython
*
* User could add any javascript in the `profile/static/custom/custom.js` file.
* It will be executed by the ipython notebook at load time.
*
* Same thing with `profile/static/custom/custom.css` to inject custom css into the notebook.
*
*
* The object available at load time depend on the version of IPython in use.
* there is no guaranties of API stability.
*
* The example below explain the principle, and might not be valid.
*
* Instances are created after the loading of this file and might need to be accessed using events:
* define([
* 'base/js/namespace',
* 'base/js/events'
* ], function(IPython, events) {
* events.on("app_initialized.NotebookApp", function () {
* IPython.keyboard_manager....
* });
* });
*
* __Example 1:__
*
* Create a custom button in toolbar that execute `%qtconsole` in kernel
* and hence open a qtconsole attached to the same kernel as the current notebook
*
* define([
* 'base/js/namespace',
* 'base/js/events'
* ], function(IPython, events) {
* events.on('app_initialized.NotebookApp', function(){
* IPython.toolbar.add_buttons_group([
* {
* 'label' : 'run qtconsole',
* 'icon' : 'icon-terminal', // select your icon from http://fortawesome.github.io/Font-Awesome/icons
* 'callback': function () {
* IPython.notebook.kernel.execute('%qtconsole')
* }
* }
* // add more button here if needed.
* ]);
* });
* });
*
* __Example 2:__
*
* At the completion of the dashboard loading, load an unofficial javascript extension
* that is installed in profile/static/custom/
*
* define([
* 'base/js/events'
* ], function(events) {
* events.on('app_initialized.DashboardApp', function(){
* require(['custom/unofficial_extension.js'])
* });
* });
*
* __Example 3:__
*
* Use `jQuery.getScript(url [, success(script, textStatus, jqXHR)] );`
* to load custom script into the notebook.
*
* // to load the metadata ui extension example.
* $.getScript('/static/notebook/js/celltoolbarpresets/example.js');
* // or
* // to load the metadata ui extension to control slideshow mode / reveal js for nbconvert
* $.getScript('/static/notebook/js/celltoolbarpresets/slideshow.js');
*
*
* @module IPython
* @namespace IPython
* @class customjs
* @static
*/

View file

@ -0,0 +1,13 @@
{
"version": 1,
"Exporter": {
"extra_template_paths": [
".",
"/usr/local/Caskroom/miniforge/base/envs/ml-nlp-env/lib/python3.11/site-packages/jupyter_contrib_nbextensions/templates"
],
"preprocessors": [
"jupyter_contrib_nbextensions.nbconvert_support.CodeFoldingPreprocessor",
"jupyter_contrib_nbextensions.nbconvert_support.PyMarkdownPreprocessor"
]
}
}

View file

@ -0,0 +1,7 @@
{
"NotebookApp": {
"nbserver_extensions": {
"jupyter_nbextensions_configurator": true
}
}
}

View file

@ -6,5 +6,9 @@
// Selected Theme
// Application-level visual styling theme
"theme": "JupyterLab Dark"
"theme": "JupyterLab Dark",
// Scrollbar Theming
// Enable/disable styling of the application scrollbars
"theme-scrollbars": true
}

View file

@ -0,0 +1,11 @@
{
// CodeMirror
// @jupyterlab/codemirror-extension:commands
// Text editor settings for all CodeMirror editors.
// ************************************************
// Theme
// CSS file defining the corresponding
// .cm-s-[name] styles is loaded
"theme": "jupyter"
}

View file

@ -0,0 +1 @@
{"data":{"layout-restorer:data":{"main":{"dock":{"type":"tab-area","currentIndex":0,"widgets":[]}},"down":{"size":0,"widgets":[]},"left":{"collapsed":false,"current":"filebrowser","widgets":["filebrowser","running-sessions","@jupyterlab/toc:plugin","extensionmanager.main-view"]},"right":{"collapsed":true,"widgets":["jp-property-inspector","debugger-sidebar"]},"relativeSizes":[0.22233718457205265,0.7776628154279474,0]}},"metadata":{"id":"auto-0"}}

View file

@ -0,0 +1 @@
{"data":{"layout-restorer:data":{"main":{"dock":{"type":"tab-area","currentIndex":0,"widgets":["notebook:notebooks/count_tf_df_analysis.ipynb","notebook:notebooks/exploration_soft_skills.ipynb","notebook:notebooks/exploration_coop_postings.ipynb","notebook:notebooks/tf_idf_programs.ipynb"]},"current":"notebook:notebooks/count_tf_df_analysis.ipynb"},"down":{"size":0,"widgets":[]},"left":{"collapsed":false,"visible":true,"current":"filebrowser","widgets":["filebrowser","running-sessions","@jupyterlab/toc:plugin","extensionmanager.main-view"],"widgetStates":{"jp-running-sessions":{"sizes":[0.25,0.25,0.25,0.25],"expansionStates":[false,false,false,false]},"extensionmanager.main-view":{"sizes":[0,1,0],"expansionStates":[false,false,false]}}},"right":{"collapsed":true,"visible":true,"widgets":["jp-property-inspector","debugger-sidebar"],"widgetStates":{"jp-debugger-sidebar":{"sizes":[0.2,0.2,0.2,0.2,0.2],"expansionStates":[false,false,false,false,false]}}},"relativeSizes":[0.1298499741334713,0.8701500258665287,0],"top":{"simpleVisibility":true}},"file-browser-filebrowser:cwd":{"path":"notebooks"},"notebook:notebooks/count_tf_df_analysis.ipynb":{"data":{"path":"notebooks/count_tf_df_analysis.ipynb","factory":"Notebook"}},"notebook:notebooks/exploration_soft_skills.ipynb":{"data":{"path":"notebooks/exploration_soft_skills.ipynb","factory":"Notebook"}},"notebook:notebooks/exploration_coop_postings.ipynb":{"data":{"path":"notebooks/exploration_coop_postings.ipynb","factory":"Notebook"}},"notebook:notebooks/tf_idf_programs.ipynb":{"data":{"path":"notebooks/tf_idf_programs.ipynb","factory":"Notebook"}}},"metadata":{"id":"auto-1"}}

View file

@ -0,0 +1 @@
{"data":{"layout-restorer:data":{"main":{"dock":{"type":"tab-area","currentIndex":3,"widgets":["notebook:notebooks/figures_tf_idf_programe_name.ipynb","notebook:notebooks/tf_idf_timeline.ipynb","notebook:notebooks/tf_idf_programs.ipynb","notebook:notebooks/count_tf_df_analysis.ipynb","notebook:notebooks/exploration_coop_postings.ipynb","notebook:notebooks/exploration_soft_skills.ipynb"]},"current":"notebook:notebooks/count_tf_df_analysis.ipynb"},"down":{"size":0,"widgets":[]},"left":{"collapsed":false,"current":"filebrowser","widgets":["filebrowser","running-sessions","@jupyterlab/toc:plugin","extensionmanager.main-view"]},"right":{"collapsed":true,"widgets":["jp-property-inspector","debugger-sidebar"]},"relativeSizes":[0.22236718127129082,0.7776328187287092,0]},"file-browser-filebrowser:cwd":{"path":"notebooks"},"notebook:notebooks/exploration_coop_postings.ipynb":{"data":{"path":"notebooks/exploration_coop_postings.ipynb","factory":"Notebook"}},"notebook:notebooks/exploration_soft_skills.ipynb":{"data":{"path":"notebooks/exploration_soft_skills.ipynb","factory":"Notebook"}},"notebook:notebooks/figures_tf_idf_programe_name.ipynb":{"data":{"path":"notebooks/figures_tf_idf_programe_name.ipynb","factory":"Notebook"}},"notebook:notebooks/tf_idf_timeline.ipynb":{"data":{"path":"notebooks/tf_idf_timeline.ipynb","factory":"Notebook"}},"notebook:notebooks/tf_idf_programs.ipynb":{"data":{"path":"notebooks/tf_idf_programs.ipynb","factory":"Notebook"}},"notebook:notebooks/count_tf_df_analysis.ipynb":{"data":{"path":"notebooks/count_tf_df_analysis.ipynb","factory":"Notebook"}}},"metadata":{"id":"auto-2"}}

View file

@ -0,0 +1 @@
{"data":{"layout-restorer:data":{"main":{"dock":{"type":"tab-area","currentIndex":1,"widgets":["notebook:notebooks/count_tf_df_analysis.ipynb"]},"current":"notebook:notebooks/count_tf_df_analysis.ipynb"},"down":{"size":0,"widgets":[]},"left":{"collapsed":false,"current":"filebrowser","widgets":["filebrowser","running-sessions","@jupyterlab/toc:plugin","extensionmanager.main-view"]},"right":{"collapsed":true,"widgets":["jp-property-inspector","debugger-sidebar"]},"relativeSizes":[0.22233718457205265,0.7776628154279474,0]},"file-browser-filebrowser:cwd":{"path":"notebooks"},"notebook:notebooks/count_tf_df_analysis.ipynb":{"data":{"path":"notebooks/count_tf_df_analysis.ipynb","factory":"Notebook"}}},"metadata":{"id":"auto-4"}}

View file

@ -0,0 +1 @@
{"data":{"layout-restorer:data":{"main":{"dock":{"type":"tab-area","currentIndex":1,"widgets":["notebook:notebooks/count_tf_df_analysis.ipynb"]},"current":"notebook:notebooks/count_tf_df_analysis.ipynb"},"down":{"size":0,"widgets":[]},"left":{"collapsed":false,"visible":true,"current":"filebrowser","widgets":["filebrowser","running-sessions","@jupyterlab/toc:plugin","extensionmanager.main-view"],"widgetStates":{"jp-running-sessions":{"sizes":[0.25,0.25,0.25,0.25],"expansionStates":[false,false,false,false]},"extensionmanager.main-view":{"sizes":[0.3333333333333333,0.3333333333333333,0.3333333333333333],"expansionStates":[false,false,false]}}},"right":{"collapsed":true,"visible":true,"widgets":["jp-property-inspector","debugger-sidebar"],"widgetStates":{"jp-debugger-sidebar":{"sizes":[0.2,0.2,0.2,0.2,0.2],"expansionStates":[false,false,false,false,false]}}},"relativeSizes":[0.1298499741334713,0.8701500258665287,0],"top":{"simpleVisibility":true}},"file-browser-filebrowser:cwd":{"path":"notebooks"},"notebook:notebooks/count_tf_df_analysis.ipynb":{"data":{"path":"notebooks/count_tf_df_analysis.ipynb","factory":"Notebook"}}},"metadata":{"id":"auto-a"}}

View file

@ -0,0 +1 @@
{"data":{"layout-restorer:data":{"main":{"dock":{"type":"tab-area","currentIndex":1,"widgets":["notebook:notebooks/count_tf_df_analysis.ipynb","notebook:notebooks/tf_idf_timeline.ipynb","notebook:notebooks/tf_idf_programs.ipynb"]},"current":"notebook:notebooks/tf_idf_timeline.ipynb"},"down":{"size":0,"widgets":[]},"left":{"collapsed":false,"current":"filebrowser","widgets":["filebrowser","running-sessions","@jupyterlab/toc:plugin","extensionmanager.main-view"]},"right":{"collapsed":true,"widgets":["jp-property-inspector","debugger-sidebar"]},"relativeSizes":[0.22236718127129082,0.7776328187287092,0]},"file-browser-filebrowser:cwd":{"path":"notebooks"},"notebook:notebooks/count_tf_df_analysis.ipynb":{"data":{"path":"notebooks/count_tf_df_analysis.ipynb","factory":"Notebook"}},"notebook:notebooks/tf_idf_timeline.ipynb":{"data":{"path":"notebooks/tf_idf_timeline.ipynb","factory":"Notebook"}},"notebook:notebooks/tf_idf_programs.ipynb":{"data":{"path":"notebooks/tf_idf_programs.ipynb","factory":"Notebook"}}},"metadata":{"id":"auto-m"}}

View file

@ -0,0 +1 @@
{"data":{"layout-restorer:data":{"main":{"dock":{"type":"tab-area","currentIndex":1,"widgets":["notebook:notebooks/count_tf_df_analysis.ipynb"]},"current":"notebook:notebooks/count_tf_df_analysis.ipynb"},"down":{"size":0,"widgets":[]},"left":{"collapsed":false,"visible":true,"current":"filebrowser","widgets":["filebrowser","running-sessions","@jupyterlab/toc:plugin","extensionmanager.main-view"],"widgetStates":{"jp-running-sessions":{"sizes":[0.25,0.25,0.25,0.25],"expansionStates":[false,false,false,false]},"extensionmanager.main-view":{"sizes":[0.3333333333333333,0.3333333333333333,0.3333333333333333],"expansionStates":[false,false,false]}}},"right":{"collapsed":true,"visible":true,"widgets":["jp-property-inspector","debugger-sidebar"],"widgetStates":{"jp-debugger-sidebar":{"sizes":[0.2,0.2,0.2,0.2,0.2],"expansionStates":[false,false,false,false,false]}}},"relativeSizes":[0.1298499741334713,0.8701500258665287,0],"top":{"simpleVisibility":true}},"file-browser-filebrowser:cwd":{"path":"notebooks"},"notebook:notebooks/count_tf_df_analysis.ipynb":{"data":{"path":"notebooks/count_tf_df_analysis.ipynb","factory":"Notebook"}}},"metadata":{"id":"auto-t"}}

View file

@ -0,0 +1 @@
{"data":{"layout-restorer:data":{"main":{"dock":{"type":"tab-area","currentIndex":0,"widgets":[]}},"down":{"size":0,"widgets":[]},"left":{"collapsed":false,"current":"filebrowser","widgets":["filebrowser","running-sessions","@jupyterlab/toc:plugin","extensionmanager.main-view"]},"right":{"collapsed":true,"widgets":["jp-property-inspector","debugger-sidebar"]},"relativeSizes":[0.22233718457205265,0.7776628154279474,0]}},"metadata":{"id":"auto-w"}}

View file

@ -0,0 +1 @@
{"data":{"layout-restorer:data":{"main":{"dock":{"type":"tab-area","currentIndex":0,"widgets":[]}},"down":{"size":0,"widgets":[]},"left":{"collapsed":false,"visible":true,"current":"filebrowser","widgets":["filebrowser","running-sessions","@jupyterlab/toc:plugin","extensionmanager.main-view"],"widgetStates":{"jp-running-sessions":{"sizes":[0.25,0.25,0.25,0.25],"expansionStates":[false,false,false,false]},"extensionmanager.main-view":{"sizes":[0.3333333333333333,0.3333333333333333,0.3333333333333333],"expansionStates":[false,false,false]}}},"right":{"collapsed":true,"visible":true,"widgets":["jp-property-inspector","debugger-sidebar"],"widgetStates":{"jp-debugger-sidebar":{"sizes":[0.2,0.2,0.2,0.2,0.2],"expansionStates":[false,false,false,false,false]}}},"relativeSizes":[0.1298499741334713,0.8701500258665287,0],"top":{"simpleVisibility":true}}},"metadata":{"id":"auto-z"}}

View file

@ -1 +1 @@
{"data":{"layout-restorer:data":{"main":{"dock":{"type":"tab-area","currentIndex":0,"widgets":[]},"current":"notebook:notebooks/figures_tf_idf_years.ipynb"},"down":{"size":0,"widgets":[]},"left":{"collapsed":false,"visible":true,"current":"running-sessions","widgets":["filebrowser","running-sessions","@jupyterlab/toc:plugin","extensionmanager.main-view"]},"right":{"collapsed":true,"visible":true,"widgets":["jp-property-inspector","debugger-sidebar"]},"relativeSizes":[0.16373124592302674,0.8362687540769732,0],"top":{"simpleVisibility":true}},"file-browser-filebrowser:cwd":{"path":"notebooks"},"notebook:notebooks/figures_tf_idf_years.ipynb":{"data":{"path":"notebooks/figures_tf_idf_years.ipynb","factory":"Notebook"}},"notebook:notebooks/tf_idf_timeline.ipynb":{"data":{"path":"notebooks/tf_idf_timeline.ipynb","factory":"Notebook"}}},"metadata":{"id":"default"}}
{"data":{"layout-restorer:data":{"main":{"dock":{"type":"tab-area","currentIndex":0,"widgets":["notebook:Untitled.ipynb"]},"current":"notebook:Untitled.ipynb"},"down":{"size":0,"widgets":[]},"left":{"collapsed":false,"visible":true,"current":"filebrowser","widgets":["filebrowser","running-sessions","@jupyterlab/toc:plugin","extensionmanager.main-view"],"widgetStates":{"jp-running-sessions":{"sizes":[0.25,0.25,0.25,0.25],"expansionStates":[false,false,false,false]},"extensionmanager.main-view":{"sizes":[0.3333333333333333,0.3333333333333333,0.3333333333333333],"expansionStates":[false,false,false]}}},"right":{"collapsed":true,"visible":true,"widgets":["jp-property-inspector","debugger-sidebar"],"widgetStates":{"jp-debugger-sidebar":{"sizes":[0.2,0.2,0.2,0.2,0.2],"expansionStates":[false,false,false,false,false]}}},"relativeSizes":[0.25397835773392746,0.7460216422660726,0],"top":{"simpleVisibility":true}},"file-browser-filebrowser:cwd":{"path":""},"notebook:Untitled.ipynb":{"data":{"path":"Untitled.ipynb","factory":"Notebook"}}},"metadata":{"id":"default"}}

View file

@ -3,6 +3,7 @@
"nbextensions_configurator/config_menu/main": true,
"hinterland/hinterland": true,
"jupyter_tabnine/main": true,
"jupyter-js-widgets/extension": true
"jupyter-js-widgets/extension": true,
"contrib_nbextensions_help_item/main": true
}
}

View file

@ -1,5 +1,29 @@
{
"0fb1f2828eeeae418602193a4d04d5ccd121dc74": {
"seen": true
},
"d564445e21a7603ceaf5b28e4e981ac33d23905b": {
"seen": true
},
"e90082157ab36fe43a156f798be33af1f0101d8a": {
"seen": true
},
"608d7f891761d97403a2faf16de02aff3dda2895": {
"seen": true
},
"6c7c5d359b52a7ce16f1e251efb0e609a9c4e9ef": {
"seen": true
},
"a8587a7634f266c21a3498ad4b619099dab155d4": {
"seen": true
},
"5122698b39c2ff9417deb80bd329aee257a51be0": {
"seen": true
},
"b9d150ecb5e02a8359329ac6f34bfa41d1209f9e": {
"seen": true
},
"c8e6c57a45295d2f0982437c629c8ea5408700b7": {
"seen": true
}
}

View file

@ -0,0 +1,41 @@
# Function to change the tmux window background color based on SSH environment
function windowc() {
local profile_name="$1"
case "$profile_name" in
services*|service*)
tmux set-window-option -g window-status-bg colour1 # Change to the desired color
;;
production*|prod*|web*)
tmux set-window-option -g window-status-bg "rgb:00/7F/7F" # Change to the desired color
;;
staging*|stage*)
tmux set-window-option -g window-status-bg colour3 # Change to the desired color
;;
*)
tmux set-window-option -g window-status-bg default # Use default color for any other server
;;
esac
}
# Function to automatically create a new tmux window when using ssh
function colourssh() {
# Run the original ssh command, capturing its output
ssh_output=$(command ssh "$@")
# Check if the ssh command was successful
if [ $? -eq 0 ]; then
# Extract the hostname from the ssh command using pcregrep
host=$(echo "$ssh_output" | pcregrep -o1 'ssh\s+([^\@]+)')
# Change tmux window background color based on SSH environment
windowc "$host"
# Create a new tmux window
tmux new-window
fi
}
# Alias to use the modified ssh function
alias ssh="colourssh"

20
p10k/.p10k.zsh Executable file → Normal file
View file

@ -1,7 +1,7 @@
# Generated by Powerlevel10k configuration wizard on 2023-11-22 at 03:05 EST.
# Generated by Powerlevel10k configuration wizard on 2024-05-04 at 13:58 EDT.
# Based on romkatv/powerlevel10k/config/p10k-lean.zsh, checksum 61526.
# Wizard options: nerdfont-complete + powerline, small icons, unicode, lean, 1 line,
# compact, many icons, concise, transient_prompt, instant_prompt=quiet.
# Wizard options: nerdfont-complete + powerline, small icons, unicode, lean, 24h time,
# 1 line, compact, few icons, concise, transient_prompt, instant_prompt=quiet.
# Type `p10k configure` to generate another config.
#
# Config for Powerlevel10k with lean prompt style. Type `p10k configure` to generate
@ -30,7 +30,7 @@
# The list of segments shown on the left. Fill it with the most important segments.
typeset -g POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(
os_icon # os identifier
# os_icon # os identifier
dir # current directory
vcs # git status
prompt_char # prompt symbol
@ -100,7 +100,7 @@
taskwarrior # taskwarrior task count (https://taskwarrior.org/)
per_directory_history # Oh My Zsh per-directory-history local/global indicator
# cpu_arch # CPU architecture
# time # current time
time # current time
# ip # ip address and bandwidth usage for a specified network interface
# public_ip # public IP address
# proxy # system-wide http/https/ftp proxy
@ -333,14 +333,14 @@
# parameter. For example, if POWERLEVEL9K_DIR_WORK_NOT_WRITABLE_FOREGROUND is not set, it falls
# back to POWERLEVEL9K_DIR_FOREGROUND.
#
# typeset -g POWERLEVEL9K_DIR_CLASSES=()
typeset -g POWERLEVEL9K_DIR_CLASSES=()
# Custom prefix.
# typeset -g POWERLEVEL9K_DIR_PREFIX='%fin '
#####################################[ vcs: git status ]######################################
# Branch icon. Set this parameter to '\UE0A0 ' for the popular Powerline branch icon.
typeset -g POWERLEVEL9K_VCS_BRANCH_ICON='\uF126 '
typeset -g POWERLEVEL9K_VCS_BRANCH_ICON=
# Untracked files icon. It's really a question mark, your font isn't broken.
# Change the value of this parameter to show a different icon.
@ -486,7 +486,7 @@
typeset -g POWERLEVEL9K_VCS_VISUAL_IDENTIFIER_COLOR=76
typeset -g POWERLEVEL9K_VCS_LOADING_VISUAL_IDENTIFIER_COLOR=244
# Custom icon.
# typeset -g POWERLEVEL9K_VCS_VISUAL_IDENTIFIER_EXPANSION='⭐'
typeset -g POWERLEVEL9K_VCS_VISUAL_IDENTIFIER_EXPANSION=
# Custom prefix.
# typeset -g POWERLEVEL9K_VCS_PREFIX='%fon '
@ -547,7 +547,7 @@
# Duration format: 1d 2h 3m 4s.
typeset -g POWERLEVEL9K_COMMAND_EXECUTION_TIME_FORMAT='d h m s'
# Custom icon.
# typeset -g POWERLEVEL9K_COMMAND_EXECUTION_TIME_VISUAL_IDENTIFIER_EXPANSION='⭐'
typeset -g POWERLEVEL9K_COMMAND_EXECUTION_TIME_VISUAL_IDENTIFIER_EXPANSION=
# Custom prefix.
# typeset -g POWERLEVEL9K_COMMAND_EXECUTION_TIME_PREFIX='%ftook '
@ -1630,7 +1630,7 @@
# behavior where they contain the end times of their preceding commands.
typeset -g POWERLEVEL9K_TIME_UPDATE_ON_COMMAND=false
# Custom icon.
# typeset -g POWERLEVEL9K_TIME_VISUAL_IDENTIFIER_EXPANSION='⭐'
typeset -g POWERLEVEL9K_TIME_VISUAL_IDENTIFIER_EXPANSION=
# Custom prefix.
# typeset -g POWERLEVEL9K_TIME_PREFIX='%fat '

View file

@ -15,14 +15,16 @@ base=(
zsh
vim
nvim
tmux
# tmux
git
wezterm
)
# Folders that should, or only need to be installed for a local user on macOS
useronly_macos=(
yabai
skhd
oh-my-zsh
)
#Folders that should, or only need to be installed for a local user on Linux
@ -32,6 +34,7 @@ useronly_linux=(
# Folders that should, or only need to be installed for a local user
useronly=(
zoxide
conda
dask
gh
@ -46,7 +49,7 @@ ignore_files=(
".DS_Store"
"__setup"
"bin"
"git"
".git"
"setup.sh"
)
@ -85,7 +88,7 @@ expect_yes() {
spawn bash -c \"cd '$profile_dir' && $1\" > /dev/null 2>&1
expect {
\"This script will update to the latest user.js file and append any custom configurations from user-overrides.js. Continue Y/N?\" { send \"y\r\"; exp_continue }
eof {
eof {
puts \"Error: Expected line not found.\"
exit 1
}
@ -123,9 +126,10 @@ for app in "${useronly[@]}"; do
stowit "${HOME}" "${app}"
if [[ "${app}" = "firefox" ]]; then
expect_yes "./updater.sh"
fi
fi
fi
done
echo ""
echo "##### ALL DONE"

View file

@ -1,9 +1,22 @@
# change window focus within space
#change window focus within space
shift + cmd - j : yabai -m window --focus south
shift + cmd - k : yabai -m window --focus north
shift + cmd - h : yabai -m window --focus west
shift + cmd - l : yabai -m window --focus east
# Resize windows
lctrl + alt - h : yabai -m window --resize left:-50:0; \
yabai -m window --resize right:-50:0
lctrl + alt - j : yabai -m window --resize bottom:0:50; \
yabai -m window --resize top:0:50
lctrl + alt - k : yabai -m window --resize top:0:-50; \
yabai -m window --resize bottom:0:-50
lctrl + alt - l : yabai -m window --resize right:50:0; \
yabai -m window --resize left:50:0
# Equalize size of windows
lctrl + alt - e : yabai -m space --balance
# change space #
shift + cmd - 1 : yabai -m space --display 1
shift + cmd - 2 : yabai -m space --display 2
@ -14,8 +27,8 @@ shift + cmd - 6 : yabai -m space --display 6
shift + cmd - 7 : yabai -m space --display 7
#change focus between external displays (left and right)
cmd - s: yabai -m display --focus west
cmd - g: yabai -m display --focus east
cmd - h: yabai -m display --focus west
cmd - l: yabai -m display --focus east
# rotate layout clockwise
shift + alt - r : yabai -m space --rotate 270
@ -30,14 +43,11 @@ shift + alt - x : yabai -m space --mirror x-axis
shift + alt - t : yabai -m window --toggle float --grid 4:4:1:1:2:2
# maximize a window
shift + alt - m : yabai -m window --toggle zoom-fullscreeni
shift + alt - m : yabai -m window --toggle zoom-fullscreen
# toggle whether the focused window should be shown on all spaces
shift + alt - a : yabai -m window --toggle sticky
# balance out tree of windows (resize to occupy same area)
shift + alt - e : yabai -m space --balance
# swap windows
shift + alt - j : yabai -m window --swap south
shift + alt - k : yabai -m window --swap north
@ -51,8 +61,8 @@ ctrl + alt - h : yabai -m window --warp west
ctrl + alt - l : yabai -m window --warp east
# move window to display left and right
shift + alt - s : yabai -m window --display west; yabai -m display --focus west;
shift + alt - g : yabai -m window --display east; yabai -m display --focus east;
shift + alt - h : yabai -m window --display west; yabai -m display --focus west;
shift + alt - l : yabai -m window --display east; yabai -m display --focus east;
#move window to prev and next space
shift + alt - p : yabai -m window --space prev;
@ -67,16 +77,16 @@ shift + alt - 5 : yabai -m window --space 5;
shift + alt - 6 : yabai -m window --space 6;
shift + alt - 7 : yabai -m window --space 7;
# open apps
ctrl + cmd - 1 : open -a VSCodium.app
ctrl + cmd - 2 : open -a Brave\ Browser.app
ctrl + cmd - 3 : open -n /Applications/Brave\ Browser.app
ctrl + cmd - 4 : open -a Mail.app
ctrl + cmd - 5 : open -a Authy\ Desktop.app
ctrl + cmd - 6 : open -a Bitwarden.app
ctrl + cmd - 0 : open -a iTerm.app
# # open apps
# lctrl + shift - t : open -an Wezterm.app
# lctrl + shift - b : open -an Firefox.app
# lctrl + shift - v : open -an VSCodium.app
# shift + alt - m : open -an Mail.app
# shift + alt - a : open -an Authy\ Desktop.app
# shift + alt - w : open -an Bitwarden.app
# stop/start/restart yabai
ctrl + alt - q : brew services stop yabai
ctrl + alt - s : brew services start yabai
ctrl + alt - r : brew services restart yabai
ctrl + alt - q : yabai --stop-service
ctrl + alt - s : yabai --start-service
ctrl + alt - r : yabai --restart-service

View file

@ -1,7 +1,6 @@
#! /bin/bash
#/bin/bash
IGNORED_CAL="Birthdays, Family, Contacts, School, Home, Canadian Holidays, Canadiens, Jours fériés au Canada"
ALERT_IF_IN_NEXT_MINUTES=60
ALERT_IF_IN_NEXT_MINUTES=30
ALERT_POPUP_BEFORE_SECONDS=15
THEME_BG="#2c323c"
THEME_RED="#f92572"
@ -12,6 +11,13 @@ NERD_FONT_SEPARATOR=""
ICAL_BUDDY="/usr/local/bin/icalBuddy"
check_ical_buddy() {
if [[ ! -f "$ICAL_BUDDY" ]]; then
echo "Error: iCalBuddy is not installed" >&2
return 1
fi
}
get_next_meeting() {
next_meeting=$("$ICAL_BUDDY" \
--includeEventProps "title,datetime,attendees" \
@ -22,9 +28,15 @@ get_next_meeting() {
--limitItems 1 \
--excludeAllDayEvents \
--separateByDate \
--bullet "" \
--excludeCals "${IGNORED_CAL}" \
eventsToday)
--excludeCals "$IGNORED_CAL" \
eventsToday
)
if [[ -z "$next_meeting" ]]; then
return 1
fi
echo "$next_meeting"
}
get_next_next_meeting() {
@ -38,168 +50,205 @@ get_next_next_meeting() {
--limitItems 1 \
--excludeAllDayEvents \
--separateByDate \
--bullet "" \
--excludeCals "${IGNORED_CAL}" \
eventsFrom:"${end_timestamp}" to:"${tonight}")
--excludeCals "$IGNORED_CAL" \
eventsFrom:"${end_timestamp}" to:"${tonight}"
)
if [[ -z "$next_meeting" ]]; then
return 1
fi
}
parse_result() {
local ical_output="$1"
local ical_output="$1"
# Extract the title from the third line
title=$(echo "$ical_output" | awk 'NR==3')
start_time=""
end_time=""
attendees=""
title=$(echo "$ical_output" | awk 'NR==3')
lines=()
while IFS= read -r line; do
# array+=("$line")
# Extract start and end time
if [[ $line =~ [0-9]{2}:[0-9]{2}\ -\ [0-9]{2}:[0-9]{2} ]]; then
start_time=$(echo "$line" | awk '{print $1}')
end_time=$(echo "$line" | awk '{print $3}')
fi
# Use process substitution to emulate a file for the while loop
while read -r line; do
lines+=("$line") # Store each line in the array for potential future use
if [[ $line =~ [0-9]{2}:[0-9]{2}\ -\ [0-9]{2}:[0-9]{2} ]]; then
start_time=$(echo "$line" | awk '{print $1}')
end_time=$(echo "$line" | awk '{print $3}')
fi
# Extract attendees from the line, excluding "mailto:"
if [[ $line == *attendees:* ]]; then
attendees_line=${line#*attendees:}
attendees=$(echo "$attendees_line" | sed 's/^[[:space:]]*//;s/[[:space:]]*$//g')
# Count the number of attendees
num_attendees=$(echo "$attendees" | awk -F, '{print NF}')
fi
done < <(echo "$ical_output")
if [[ $line == *attendees:* ]]; then
attendees_line=${line#*attendees:}
attendees=$(echo "$attendees_line" | sed 's/^[[:space:]]*//;s/[[:space:]]*$//g')
# Count the number of attendees
num_attendees=$(echo "$attendees" | awk -F, '{print NF}')
fi
done < <(echo "$ical_output")
}
calculate_times() {
if [[ -z "$start_time" ]]; then
# echo "Error: start_time is empty or invalid"
return 1
fi
epoc_meeting=$(date -jf "%T" "$start_time:00" +%s)
if [[ $? -ne 0 ]]; then
echo "Error: Failed to convert '$start_time' using format '%T'"
return 1
echo "Error: Failed to convert '$start_time' to epoch time" >&2
return 2
fi
epoc_now=$(date +%s)
epoc_diff=$((epoc_meeting - epoc_now))
minutes_till_meeting=$((epoc_diff / 60))
}
get_upcoming_meetings() {
upcoming_meetings=$("$ICAL_BUDDY" \
--includeEventProps "title,datetime" \
--propertyOrder "title,datetime" \
--noCalendarNames \
--dateFormat "%A" \
--excludeAllDayEvents \
--separateByDate \
--bullet "$MEETING_DELIMITER" \
--excludeCals "${IGNORED_CAL}" \
eventsToday)
echo "upcoming_meetings: $upcoming_meetings"
if [[ $? -ne 0 ]]; then
echo "Error: Failed to get upcoming meetings"
return 1
fi
if [[ -z "$upcoming_meetings" ]]; then
echo "Error: upcoming_meetings is empty"
return 1
fi
upcoming_meetings=$("$ICAL_BUDDY" \
--noCalendarNames \
--formatOutput \
--includeEventProps "title,datetime,attendees,notes,url" \
--propertyOrder "title,datetime" \
--includeOnlyEventsFromNowOn \
--sortTagsByDate "Descending" \
--excludeAllDayEvents \
--bullet "$MEETING_DELIMITER" \
--excludeCals "$IGNORED_CAL" \
eventsToday)
if [[ -z "$upcoming_meetings" ]]; then
return 1
fi
}
get_popup_size($last_meetingi) {
# Set minimum and maximum width/height
local min_width=15
local max_width=40
local min_height=13
local max_height=100
# get_last_meeting() {
# get_upcoming_meetings
#
# if [[ -z "$upcoming_meetings" ]]; then
# return 1
# fi
#
# meetings=("${(s/$MEETING_DELIMITER/)upcoming_meetings}")
#
# echo "meetings: ${meetings[@]}"
#
# if [[ ${#meetings[@]} -eq 0 ]]; then
# return 2
# fi
#
# last_meeting="${meetings[-1]}"
# echo "$last_meeting"
# }
# Calculate the maximum line length in the last meeting text
local max_line_length=0
local length=0
# Split the string into an array using the delimiter, in ZSH script
get_last_meeting() {
get_upcoming_meetings
while IFS= read -r line; do
echo "line: $line"
length=${#line}
max_line_length=$((length > max_line_length ? length : max_line_length))
done <<< "$last_meeting"
if [[ -z "$upcoming_meetings" ]]; then
return 1
fi
# Add padding for aesthetics
width=$((max_line_length + 4))
echo "upcoming_meetings: $upcoming_meetings"
# Ensure width is within the specified range
width=$((width > max_width ? max_width : width))
width=$((width < min_width ? min_width : width))
# Split the input by newline and remove leading/trailing whitespace
IFS=$'\n' lines=($(echo "$input" | sed -e 's/^[[:space:]]*//' -e 's/[[:space:]]*$//'))
# Count the number of lines in the last meeting text
local line_count=$(echo "$last_meeting" | wc -l)
# Find the last line that contains "attendees:"
last_attendees_line=""
for line in ${(O)lines}; do
if [[ $line == *attendees:* ]]; then
last_attendees_line=$line
fi
done
# Calculate the height based on the length of the text
height=$((line_count + (width / max_line_length) + 1))
echo "last_attendees_line: $last_attendees_line"
# Ensure height is within the specified range
height=$((height < min_height ? min_height : height))
height=$((height > max_height ? max_height : height))
# Extract meeting information from the last attendees line
if [[ -n "$last_attendees_line" ]]; then
title=$lines[1]
start_time=$(echo "$lines[2]" | awk '{print $1}')
end_time=$(echo "$lines[2]" | awk '{print $3}')
attendees=$(echo "$last_attendees_line" | sed 's/^[^:]*: //')
# Store the meeting information in last_meeting
last_meeting="Title: $title
Start Time: $start_time
End Time: $end_time
Attendees: $attendees"
# Print or use the extracted information as needed
echo "$last_meeting"
else
echo "No meeting information found."
return 1
fi
echo "last_meeting: $last_meeting"
return "$last_meeting"
}
display_popup() {
# Get all upcoming meetings
get_upcoming_meetings
IFS='$MEETING_DELIMITER' read -r -d '$MEETING_DELIMITER' meetings <<< "$upcoming_meetings"
get_last_meeting
# Get the last meeting
local last_meeting="${meetings[-1]}"
call get_popup_size "$last_meeting"
if [[ -z "$last_meeting" ]]; then
return 1
fi
# Display a popup for the last meeting with dynamic width and height
tmux display-popup \
-S "fg=$THEME_BG" \
-w${width}% \
-h${height}% \
-d '#{pane_current_path}' \
-T Meeting \
echo "$last_meeting"
tmux display-popup \
-S "fg=$THEME_BG" \
-w 50% \
-h 50% \
-T 'Meeting Reminder' \
-d '#{pane_current_path}' \
echo "$last_meeting"
}
print_tmux_status() {
local tmux_refresh_interval=$(tmux show-option -g status-interval)
tmux_refresh_interval=$(echo "$tmux_refresh_interval" | awk '{print $NF}' | tr -d '[:space:]')
tmux_refresh_interval=$((tmux_refresh_interval))
local print_alert="#[fg=$THEME_RED,bold,bg=$THEME_BG] \
local tmux_refresh_interval=$(tmux show-option -g status-interval)
local tmux_refresh_interval=$(echo "$tmux_refresh_interval" | awk '{print $NF}' | tr -d '[:space:]')
local tmux_refresh_interval=$((tmux_refresh_interval))
local print_alert="#[fg=$THEME_RED,bold,bg=$THEME_BG] \
$NERD_FONT_SEPARATOR \
$NERD_FONT_MEETING \
$start_time $title ($minutes_till_meeting minutes)"
$start_time $title ($minutes_till_meeting minutes) "
if [[ $(( $ALERT_POPUP_BEFORE_SECONDS - $tmux_refresh_interval )) -lt 0 ]]; then
echo "Error: ALERT_POPUP_BEFORE_SECONDS must be greater than tmux_refresh_interval"
fi
if ((ALERT_POPUP_BEFORE_SECONDS <= tmux_refresh_interval)); then
echo "Error: ALERT_POPUP_BEFORE_SECONDS must be greater than tmux_refresh_interval" >&2
return
fi
if [[ $minutes_till_meeting -lt $ALERT_IF_IN_NEXT_MINUTES && \
$epoc_diff -gt $ALERT_POPUP_BEFORE_SECONDS ]]; then
echo "$print_alert"
elif [[ $epoc_diff -le $ALERT_POPUP_BEFORE_SECONDS && \
$epoc_diff -gt $(( $ALERT_POPUP_BEFORE_SECONDS - $tmux_refresh_interval )) ]]; then
echo "$print_alert"
display_popup
else
echo "#[bold,bg=$THEME_BG] $NERD_FONT_SEPARATOR $NERD_FONT_FREE "
fi
if ((minutes_till_meeting < ALERT_IF_IN_NEXT_MINUTES)) && ((epoc_diff > ALERT_POPUP_BEFORE_SECONDS)); then
echo "$print_alert"
elif ((epoc_diff <= ALERT_POPUP_BEFORE_SECONDS)) && ((epoc_diff > (ALERT_POPUP_BEFORE_SECONDS - tmux_refresh_interval))); then
echo "$print_alert"
display_popup
else
echo "#[bold,bg=$THEME_BG] $NERD_FONT_SEPARATOR $NERD_FONT_FREE "
fi
}
main() {
check_ical_buddy
get_next_meeting
parse_result "${next_meeting[@]}"
calculate_times
if [[ "${next_meeting[*]}" != "" && $number_of_attendees -lt 2 ]]; then
if [[ -n "${next_meeting[*]}" && $num_attendees -lt 2 ]]; then
get_next_next_meeting
parse_result "${next_next_meeting[@]}"
calculate_times
fi
print_tmux_status
}
main

View file

@ -6,15 +6,6 @@ set-option -g prefix C-a
unbind r
bind R source-file ~/.config/tmux/tmux.conf; display-message "Config reloaded.."
# # unbind-key “x” from its current job of “ask and then close”
# unbind-key x
# # rebind-key it to just “close”
# bind-key x kill-pane
# # unbind-key “x” from its current job of “ask and then close”
# bind-key X kill-session
set-option -g detach-on-destroy off
# Session management
bind S command-prompt -p "New Session:" "new-session -A -s '%%' -c ~"
@ -30,6 +21,13 @@ bind w display-popup -E "tmux list-windows -F '#{window_index} #{window_name} (#
# Use choose-tree for interactive session and window navigation
bind-key W choose-tree -Zw
# # Define a shell function to perform the search and display results in a tmux popup
# tmux_search() {
# display-popup -E -t 3 "$(grep -nri "$1" .)"
# }
#
# # Bind a key to trigger the search function
# bind-key / command-prompt -p "Search term:" "run-shell 'tmux_search \"%%\"'"
# Bind a key to run the switch_or_create_session function
bind-key -r f run-shell "tmux neww -n tmux_sessonizer ~/.local/bin/tmux_sessionizer"
@ -52,6 +50,7 @@ bind j select-pane -D
# List windows
bind p previous-window
bind n next-window
bind Y last-window
# Quick renaming
bind C switch-client -n -t "#{session_name}"
@ -90,7 +89,7 @@ set-window-option -g aggressive-resize off
# Seamless navigation with neovim panes
is_vim="ps -o state= -o comm= -t '#{pane_tty}' | grep -iqE '^[^TXZ ]+ +(\\S+\\/)?g?(view|n?vim?x?)(diff)?$'"
# Navigate panes
# Navigate panes
bind-key -n C-h if-shell "$is_vim" 'send-keys C-h' 'select-pane -L'
bind-key -n C-j if-shell "$is_vim" 'send-keys C-j' 'select-pane -D'
bind-key -n C-k if-shell "$is_vim" 'send-keys C-k' 'select-pane -U'
@ -101,47 +100,41 @@ set -g @plugin 'tmux-plugins/tpm'
set -g @plugin 'tmux-plugins/tmux-sensible'
set -g @plugin 'tmux-plugins/tmux-resurrect'
set -g @plugin 'tmux-plugins/tmux-continuum'
set -g @plugin 'tmux-plugins/tmux-prefix-highlight'
set -g @plugin 'rickstaa/tmux-notify'
set -g @tpm_install_dir "$HOME/.config/tmux/plugins/"
set -g @tpm_install_dir "$HOME/.config/tmux/plugins"
set -g status-left "#(echo -e '\033]50;SetProfile=MesloLGS NF\007')"
set -g status-left '#[fg=#282c35,bold,bg=#98C379] 󱌄 #S '
set -g status-right '#{prefix_highlight} #[fg=grey,bold,bg=#2c323c] %a %Y-%m-%d %H:%M #($HOME/.config/tmux/scripts/cal.sh)'
run-shell "tmux source-file $HOME/.config/tmux/tmux.\${TMUX_THEME:-default}.theme"
set -g status-justify left
set -g status-interval 3
set -g status-interval 5
set -g status-left-length 200
set -g status-right-length 200
set -g status-position top
set -g status-style bg='#2c323c'
set -g window-status-format "#[fg=#828997, bg=#2c323c] #I #W"
set -g window-status-current-format "#[fg=#61afef, bg=#2c323c] 󰆤#I #W"
set -g window-style 'fg=white,bg=#262a2c'
# Set status line
# set -g status-right '#[fg=blue]#(date "+%%H:%%M %%d-%%b-%%yi")'
# set -g status-left 'Session: #S | Host: #{hostname} | '
# set -g status-right '#{?window_bigger,[#[fg=green]\u25B2#[fg=default]],}' # Display arrow if the window has more lines
# set -g status-right '#{?window_smaller,[#[fg=red]\u25BC#[fg=default]],}' # Display arrow if the window has fewer lines
# set -g status-right '#{?client_prefix,#[reverse]<Prefix>#[noreverse] ,}' # Display prefix indicator
# set -g status-right '#{?pane_in_mode,[#[fg=yellow]Copy Mode#[fg=default]],}' # Display copy mode indicator
# set -g status-right ' #{=21:pane_title}' # Display pane title
set -g @continuum-save-interval 15
set -g @continuum-restore 'on'
set -g @continuum-save-path "$HOME/.config/tmux/resurrect"
set -g @notify_show_alerts 'on'
set -g @notify_show_messages 'on'
set -g @notify_show_activity 'on'
set -g @notify_show_monitor_activity 'on'
set -g @resurrect-capture 'C'
set -g @resurrect-save 'R'
set -g @resurrect-save-script 'yes'
set -g @resurrect-save-path "$HOME/.config/tmux/resurrect"
# Renaming Session the current dir's name
set-option -g automatic-rename on
set-option -g automatic-rename-format '#{b:pane_current_path}'
set -g @prefix_highlight_fg '#282c35' # default is 'colour231'
set -g @prefix_highlight_bg '#61afef' # default is 'colour04'
set -g @prefix_highlight_prefix_prompt 'P'
# Default TMUX keybindings
bind c new-window
bind '"' split-window -h
bind % split-window -v
bind c new-window -c '#{pane_current_path}'
bind '"' split-window -h -c '#{pane_current_path}'
bind % split-window -v -c '#{pane_current_path}'
bind h select-pane -L
bind l select-pane -R
bind Left select-pane -L
@ -206,3 +199,4 @@ bind-key : command-prompt
bind-key -n F5 show-buffer
run '$HOME/.config/tmux/plugins/tpm/tpm'

View file

@ -0,0 +1,17 @@
# Set status line
set -g status-left "#(echo -e '\033]50;SetProfile=MesloLGS NF\007')"
set -g status-left '#[fg=#272A30,bold,bg=green] 󱌄 #S '
set -g status-right '#{?client_prefix,#[bg=red],} #[fg=#8F908A,bold,bg=#2E323C] %a %Y-%m-%d %H:%M #($HOME/.config/tmux/scripts/cal.sh)'
set -g status-style 'bg=#2E323C'
# Set window style
set -g window-status-format '#[fg=#8F908A,bg=#2E323C] #I #W'
set -g window-status-current-format '#[fg=blue,bg=#2E323C] 󰆤#I #W'
set -g window-style 'fg=#f8f8f0,bg=#26292C'
set -g window-status-style 'fg=blue,bg=#2E323C'
# Set status line
set -g pane-border-style 'bg=#2E323C'
set -g pane-active-border-style 'fg=blue'
set -g message-style 'fg=#2E323C,bg=#B1B1B1'

View file

@ -0,0 +1,17 @@
# Set status line
set -g status-left "#(echo -e '\033]50;SetProfile=MesloLGS NF\007')"
set -g status-left '#[fg=#073642,bold,bg=#dcd6c5] 󱌄 #S '
set -g status-right '#{?client_prefix,#[bg=red],} #[fg=white,bold,bg=brightblack] %a %Y-%m-%d %H:%M #($HOME/.config/tmux/scripts/cal.sh)'
set -g status-style 'bg=#002b36'
# Set window style
set -g window-status-format '#[fg=white,bg=brightblack] #I #W'
set -g window-status-current-format '#[fg=blue,bg=brightblack] 󰆤#I #W'
set -g window-style 'fg=#586e75,bg=#fdf6e3'
set -g window-status-style 'fg=#839496,bg=brightblack'
# Additional settings
set -g pane-border-style 'bg=brightblack'
set -g pane-active-border-style 'fg=blue'
set -g message-style 'fg=white,bg=brightblack'

View file

@ -1,4 +1,8 @@
let g:netrw_dirhistmax =10
let g:netrw_dirhistcnt =2
let g:netrw_dirhistcnt =6
let g:netrw_dirhist_6='/Users/jfraeys/.dotfiles/nvim/.config/nvim/lua/custom/plugins'
let g:netrw_dirhist_5='/Users/jfraeys/Documents/projects/job-req/resume-recomm/job_req_resume_recomm'
let g:netrw_dirhist_4='/Users/jfraeys/Documents/projects/job-req/resume-recomm'
let g:netrw_dirhist_3='/Users/jfraeys/Documents/projects/job-req/resume-recomm/job_req_resume_recomm'
let g:netrw_dirhist_2='/Users/jeremiefraeys/.ssh'
let g:netrw_dirhist_1='/Users/jeremiefraeys/.oh-my-zsh'

View file

@ -1,4 +1,5 @@
lt g:TerminusFocusReporting=0
let g:TerminusFocusReporting = 0
let g:molokai_original = 1
set autoindent expandtab tabstop=4 shiftwidth=4

View file

@ -1,4 +1,4 @@
#!/usr/bin/env sh
#/usr/bin/env sh
# global settings
yabai -m config mouse_follows_focus off
yabai -m config focus_follows_mouse off
@ -7,7 +7,7 @@ yabai -m config window_topmost off
yabai -m config window_opacity off
yabai -m config window_opacity_duration 0.0
yabai -m config window_shadow off
yabai -m config window_border off
yabai -m config window_border off
yabai -m config window_border_width 4
yabai -m config active_window_opacity 1.0
@ -20,12 +20,13 @@ yabai -m config mouse_action2 resize
# general space settings
yabai -m config layout bsp
yabai -m config top_padding 10
yabai -m config top_padding 5
yabai -m config bottom_padding 50
yabai -m config left_padding 10
yabai -m config right_padding 10
yabai -m config window_gap 10
yabai -m config left_padding 5
yabai -m config right_padding 5
yabai -m config window_gap 3
yabai -m config --sapce 2 window_gap 0
yabai -m config --space 2 window_gap 0
echo "yabai configuration loaded.."

View file

@ -1,3 +1,19 @@
if [[ -z "$XDG_CONFIG_HOME" ]]; then
export XDG_CONFIG_HOME="$HOME/.config"
fi
if [[ -z "$XDG_CACHE_HOME" ]]; then
export XDG_CACHE_HOME="$HOME/.cache"
fi
if [[ -z "$XDG_DATA_HOME" ]]; then
export XDG_DATA_HOME="$HOME/.local/share"
fi
if [[ -z "$XDG_STATE_HOME" ]]; then
export XDG_STATE_HOME="$HOME/.local/state"
fi
export ITERM_ENABLE_SHELL_INTEGRATION_WITH_TMUX=YES
if [[ -n $SSH_CONNECTION ]]; then
@ -10,17 +26,41 @@ export PYENV_ROOT="$HOME/.pyenv"
[[ -d $PYENV_ROOT/bin ]] && export PATH="$PYENV_ROOT/bin:$PATH"
eval "$(pyenv init -)"
export PATH=$PATH:/usr/local/bin/
# set PATH so it includes user's private ~/.local/bin if it exists
if [ -d "$HOME/.local/bin" ] ; then
PATH="$HOME/.local/bin:$PATH"
fi
chmod -R ug+rwx "$HOME/.local/bin/"
export FZF_DEFAULT_OPTS='--height 40% --layout=reverse --border'
# Add RVM to PATH for scripting. Make sure this is the last PATH variable change.
export PATH="$PATH:$HOME/.rvm/bin"´
export PATH="$PATH:$HOME/.rvm/bin"
# Add Golang to PATH
export GOPATH="$HOME/Documents/projects:$HOME/go"
export PATH="$PATH:$(go env GOPATH)/bin"
# # Function to activate Python virtual environment if found
activate_python_env() {
local env_dir
# env_dir=$(find . -type f -name activate -exec dirname {} \;)
env_dir=$(fd -H -I -t f -d 3 'activate$' | xargs dirname)
if [ -n "$env_dir" ]; then
source "$env_dir/activate"
else
echo "No Python virtual environment found in the current directory or its subdirectories."
fi
}
alias act='activate_python_env'
alias python="python3"
alias vim="nvim"
alias tn="tmux new -s (pwd | sed 's/.*\///g')"
# alias docker="$HOME/.local/bin/docker_check.sh"
alias tn="tmux new -s $(pwd | sed 's/.*\///g')"
alias cat="bat --paging=never"
alias grep="grep --color=auto"
alias ll="ls -alF"
# set bat to highlight --help messages
alias bathelp='bat --plain --language=help'
@ -32,11 +72,3 @@ help() {
alias -g -- -h='-h 2>&1 | bat --language=help --style=plain'
alias -g -- --help='--help 2>&1 | bat --language=help --style=plain'
# dir location alias
alias projects="cd ~/projects"
alias download="cd ~/Download"
alias document="cd ~/Document"
alias config="cd ~/.config"
alias .tmux.conf="nvim ~/.tmux.conf"
alias research="cd ~/Google\ Drive/My\ Drive/School/UoGuelph/MSc/Research/soft_skills_job_desc/jfraeysd/"

View file

@ -8,6 +8,8 @@ export PATH="$HOME/.local/bin:$PATH"
# Path to your oh-my-zsh installation.
export ZSH="$HOME/.oh-my-zsh"
export UPDATE_ZSH_DAYS=1
# 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
@ -59,6 +61,16 @@ ZSH_THEME="powerlevel10k/powerlevel10k"
# much, much faster.
# DISABLE_UNTRACKED_FILES_DIRTY="true"
# autoload -Uz add-zsh-hook
# move_curor_to_bottom() {
# [[ -n ${PIN_PROMPT_NEWLINE+1} ]] && echo
# tput cup $LINES
# }
# move_curor_to_bottom
# add-zsh-hook preexec move_curor_to_bottom
# 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:
@ -77,9 +89,11 @@ ZSH_CUSTOM=$HOME/.oh-my-zsh/custom
# Add wisely, as too many plugins slow down shell startup.
plugins=(
git
docker
zsh-syntax-highlighting
zsh-autosuggestions
macos
autoupdate
)
export ZSH_AUTOSUGGEST_STRATEGY=(
@ -123,21 +137,25 @@ source ~/.zprofile
# >>> conda initialize >>>
# !! Contents within this block are managed by 'conda init' !!
__conda_setup="$('/Users/jfraeys/yes/bin/conda' 'shell.zsh' 'hook' 2> /dev/null)"
__conda_setup="$('/usr/local/Caskroom/miniforge/base/bin/conda' 'shell.zsh' 'hook' 2> /dev/null)"
if [ $? -eq 0 ]; then
eval "$__conda_setup"
else
if [ -f "/Users/jfraeys/yes/etc/profile.d/conda.sh" ]; then
. "/Users/jfraeys/yes/etc/profile.d/conda.sh"
if [ -f "/usr/local/Caskroom/miniforge/base/etc/profile.d/conda.sh" ]; then
. "/usr/local/Caskroom/miniforge/base/etc/profile.d/conda.sh"
else
export PATH="/Users/jfraeys/yes/bin:$PATH"
export PATH="/usr/local/Caskroom/miniforge/base/bin:$PATH"
fi
fi
unset __conda_setup
if [ -f "/Users/jfraeys/yes/etc/profile.d/mamba.sh" ]; then
. "/Users/jfraeys/yes/etc/profile.d/mamba.sh"
if [ -f "/usr/local/Caskroom/miniforge/base/etc/profile.d/mamba.sh" ]; then
. "/usr/local/Caskroom/miniforge/base/etc/profile.d/mamba.sh"
fi
conda config --set auto_activate_base false
# <<< conda initialize <<<
eval "$(zoxide init --cmd cd zsh)"
# To customize prompt, run `p10k configure` or edit ~/.dotfiles/p10k/.p10k.zsh.
[[ ! -f ~/.dotfiles/p10k/.p10k.zsh ]] || source ~/.dotfiles/p10k/.p10k.zsh