switched from iterm to wezterm
This commit is contained in:
parent
f99d262760
commit
1972aef9bb
35 changed files with 593 additions and 215 deletions
|
|
@ -1,2 +1,3 @@
|
||||||
/Users/jfraeys/yes
|
/Users/jfraeys/.conda
|
||||||
/Users/jfraeys/yes/envs/soft-skills-env
|
/usr/local/Caskroom/miniforge/base
|
||||||
|
/usr/local/Caskroom/miniforge/base/envs/soft-skills-env
|
||||||
|
|
|
||||||
23
gh/.config/gh/config.yml
Normal file
23
gh/.config/gh/config.yml
Normal 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
5
gh/.config/gh/hosts.yml
Normal file
|
|
@ -0,0 +1,5 @@
|
||||||
|
github.com:
|
||||||
|
git_protocol: https
|
||||||
|
users:
|
||||||
|
jfraeys:
|
||||||
|
user: jfraeys
|
||||||
Binary file not shown.
10
jupyter/.jupyter/custom/custom.css
Normal file
10
jupyter/.jupyter/custom/custom.css
Normal 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;
|
||||||
|
}
|
||||||
82
jupyter/.jupyter/custom/custom.js
Normal file
82
jupyter/.jupyter/custom/custom.js
Normal 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
|
||||||
|
*/
|
||||||
13
jupyter/.jupyter/jupyter_nbconvert_config.json
Normal file
13
jupyter/.jupyter/jupyter_nbconvert_config.json
Normal 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"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
7
jupyter/.jupyter/jupyter_notebook_config.json
Normal file
7
jupyter/.jupyter/jupyter_notebook_config.json
Normal file
|
|
@ -0,0 +1,7 @@
|
||||||
|
{
|
||||||
|
"NotebookApp": {
|
||||||
|
"nbserver_extensions": {
|
||||||
|
"jupyter_nbextensions_configurator": true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -6,5 +6,9 @@
|
||||||
|
|
||||||
// Selected Theme
|
// Selected Theme
|
||||||
// Application-level visual styling theme
|
// Application-level visual styling theme
|
||||||
"theme": "JupyterLab Dark"
|
"theme": "JupyterLab Dark",
|
||||||
|
|
||||||
|
// Scrollbar Theming
|
||||||
|
// Enable/disable styling of the application scrollbars
|
||||||
|
"theme-scrollbars": true
|
||||||
}
|
}
|
||||||
|
|
@ -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"
|
||||||
|
}
|
||||||
|
|
@ -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"}}
|
||||||
|
|
@ -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"}}
|
||||||
|
|
@ -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"}}
|
||||||
|
|
@ -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"}}
|
||||||
|
|
@ -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"}}
|
||||||
|
|
@ -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"}}
|
||||||
|
|
@ -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"}}
|
||||||
|
|
@ -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"}}
|
||||||
|
|
@ -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"}}
|
||||||
|
|
@ -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"}}
|
||||||
|
|
@ -3,6 +3,7 @@
|
||||||
"nbextensions_configurator/config_menu/main": true,
|
"nbextensions_configurator/config_menu/main": true,
|
||||||
"hinterland/hinterland": true,
|
"hinterland/hinterland": true,
|
||||||
"jupyter_tabnine/main": true,
|
"jupyter_tabnine/main": true,
|
||||||
"jupyter-js-widgets/extension": true
|
"jupyter-js-widgets/extension": true,
|
||||||
|
"contrib_nbextensions_help_item/main": true
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -1,5 +1,29 @@
|
||||||
{
|
{
|
||||||
"0fb1f2828eeeae418602193a4d04d5ccd121dc74": {
|
"0fb1f2828eeeae418602193a4d04d5ccd121dc74": {
|
||||||
"seen": true
|
"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
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
41
oh-my-zsh/.oh-my-zsh/custom/colour-ssh.zsh
Executable file
41
oh-my-zsh/.oh-my-zsh/custom/colour-ssh.zsh
Executable 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
20
p10k/.p10k.zsh
Executable file → Normal 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.
|
# Based on romkatv/powerlevel10k/config/p10k-lean.zsh, checksum 61526.
|
||||||
# Wizard options: nerdfont-complete + powerline, small icons, unicode, lean, 1 line,
|
# Wizard options: nerdfont-complete + powerline, small icons, unicode, lean, 24h time,
|
||||||
# compact, many icons, concise, transient_prompt, instant_prompt=quiet.
|
# 1 line, compact, few icons, concise, transient_prompt, instant_prompt=quiet.
|
||||||
# Type `p10k configure` to generate another config.
|
# Type `p10k configure` to generate another config.
|
||||||
#
|
#
|
||||||
# Config for Powerlevel10k with lean prompt style. Type `p10k configure` to generate
|
# 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.
|
# The list of segments shown on the left. Fill it with the most important segments.
|
||||||
typeset -g POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(
|
typeset -g POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(
|
||||||
os_icon # os identifier
|
# os_icon # os identifier
|
||||||
dir # current directory
|
dir # current directory
|
||||||
vcs # git status
|
vcs # git status
|
||||||
prompt_char # prompt symbol
|
prompt_char # prompt symbol
|
||||||
|
|
@ -100,7 +100,7 @@
|
||||||
taskwarrior # taskwarrior task count (https://taskwarrior.org/)
|
taskwarrior # taskwarrior task count (https://taskwarrior.org/)
|
||||||
per_directory_history # Oh My Zsh per-directory-history local/global indicator
|
per_directory_history # Oh My Zsh per-directory-history local/global indicator
|
||||||
# cpu_arch # CPU architecture
|
# cpu_arch # CPU architecture
|
||||||
# time # current time
|
time # current time
|
||||||
# ip # ip address and bandwidth usage for a specified network interface
|
# ip # ip address and bandwidth usage for a specified network interface
|
||||||
# public_ip # public IP address
|
# public_ip # public IP address
|
||||||
# proxy # system-wide http/https/ftp proxy
|
# 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
|
# parameter. For example, if POWERLEVEL9K_DIR_WORK_NOT_WRITABLE_FOREGROUND is not set, it falls
|
||||||
# back to POWERLEVEL9K_DIR_FOREGROUND.
|
# back to POWERLEVEL9K_DIR_FOREGROUND.
|
||||||
#
|
#
|
||||||
# typeset -g POWERLEVEL9K_DIR_CLASSES=()
|
typeset -g POWERLEVEL9K_DIR_CLASSES=()
|
||||||
|
|
||||||
# Custom prefix.
|
# Custom prefix.
|
||||||
# typeset -g POWERLEVEL9K_DIR_PREFIX='%fin '
|
# typeset -g POWERLEVEL9K_DIR_PREFIX='%fin '
|
||||||
|
|
||||||
#####################################[ vcs: git status ]######################################
|
#####################################[ vcs: git status ]######################################
|
||||||
# Branch icon. Set this parameter to '\UE0A0 ' for the popular Powerline branch icon.
|
# 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.
|
# 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.
|
# 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_VISUAL_IDENTIFIER_COLOR=76
|
||||||
typeset -g POWERLEVEL9K_VCS_LOADING_VISUAL_IDENTIFIER_COLOR=244
|
typeset -g POWERLEVEL9K_VCS_LOADING_VISUAL_IDENTIFIER_COLOR=244
|
||||||
# Custom icon.
|
# Custom icon.
|
||||||
# typeset -g POWERLEVEL9K_VCS_VISUAL_IDENTIFIER_EXPANSION='⭐'
|
typeset -g POWERLEVEL9K_VCS_VISUAL_IDENTIFIER_EXPANSION=
|
||||||
# Custom prefix.
|
# Custom prefix.
|
||||||
# typeset -g POWERLEVEL9K_VCS_PREFIX='%fon '
|
# typeset -g POWERLEVEL9K_VCS_PREFIX='%fon '
|
||||||
|
|
||||||
|
|
@ -547,7 +547,7 @@
|
||||||
# Duration format: 1d 2h 3m 4s.
|
# Duration format: 1d 2h 3m 4s.
|
||||||
typeset -g POWERLEVEL9K_COMMAND_EXECUTION_TIME_FORMAT='d h m s'
|
typeset -g POWERLEVEL9K_COMMAND_EXECUTION_TIME_FORMAT='d h m s'
|
||||||
# Custom icon.
|
# Custom icon.
|
||||||
# typeset -g POWERLEVEL9K_COMMAND_EXECUTION_TIME_VISUAL_IDENTIFIER_EXPANSION='⭐'
|
typeset -g POWERLEVEL9K_COMMAND_EXECUTION_TIME_VISUAL_IDENTIFIER_EXPANSION=
|
||||||
# Custom prefix.
|
# Custom prefix.
|
||||||
# typeset -g POWERLEVEL9K_COMMAND_EXECUTION_TIME_PREFIX='%ftook '
|
# typeset -g POWERLEVEL9K_COMMAND_EXECUTION_TIME_PREFIX='%ftook '
|
||||||
|
|
||||||
|
|
@ -1630,7 +1630,7 @@
|
||||||
# behavior where they contain the end times of their preceding commands.
|
# behavior where they contain the end times of their preceding commands.
|
||||||
typeset -g POWERLEVEL9K_TIME_UPDATE_ON_COMMAND=false
|
typeset -g POWERLEVEL9K_TIME_UPDATE_ON_COMMAND=false
|
||||||
# Custom icon.
|
# Custom icon.
|
||||||
# typeset -g POWERLEVEL9K_TIME_VISUAL_IDENTIFIER_EXPANSION='⭐'
|
typeset -g POWERLEVEL9K_TIME_VISUAL_IDENTIFIER_EXPANSION=
|
||||||
# Custom prefix.
|
# Custom prefix.
|
||||||
# typeset -g POWERLEVEL9K_TIME_PREFIX='%fat '
|
# typeset -g POWERLEVEL9K_TIME_PREFIX='%fat '
|
||||||
|
|
||||||
|
|
|
||||||
12
setup.sh
12
setup.sh
|
|
@ -15,14 +15,16 @@ base=(
|
||||||
zsh
|
zsh
|
||||||
vim
|
vim
|
||||||
nvim
|
nvim
|
||||||
tmux
|
# tmux
|
||||||
git
|
git
|
||||||
|
wezterm
|
||||||
)
|
)
|
||||||
|
|
||||||
# Folders that should, or only need to be installed for a local user on macOS
|
# Folders that should, or only need to be installed for a local user on macOS
|
||||||
useronly_macos=(
|
useronly_macos=(
|
||||||
yabai
|
yabai
|
||||||
skhd
|
skhd
|
||||||
|
oh-my-zsh
|
||||||
)
|
)
|
||||||
|
|
||||||
#Folders that should, or only need to be installed for a local user on Linux
|
#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
|
# Folders that should, or only need to be installed for a local user
|
||||||
useronly=(
|
useronly=(
|
||||||
|
zoxide
|
||||||
conda
|
conda
|
||||||
dask
|
dask
|
||||||
gh
|
gh
|
||||||
|
|
@ -46,7 +49,7 @@ ignore_files=(
|
||||||
".DS_Store"
|
".DS_Store"
|
||||||
"__setup"
|
"__setup"
|
||||||
"bin"
|
"bin"
|
||||||
"git"
|
".git"
|
||||||
"setup.sh"
|
"setup.sh"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
@ -85,7 +88,7 @@ expect_yes() {
|
||||||
spawn bash -c \"cd '$profile_dir' && $1\" > /dev/null 2>&1
|
spawn bash -c \"cd '$profile_dir' && $1\" > /dev/null 2>&1
|
||||||
expect {
|
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 }
|
\"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.\"
|
puts \"Error: Expected line not found.\"
|
||||||
exit 1
|
exit 1
|
||||||
}
|
}
|
||||||
|
|
@ -123,9 +126,10 @@ for app in "${useronly[@]}"; do
|
||||||
stowit "${HOME}" "${app}"
|
stowit "${HOME}" "${app}"
|
||||||
if [[ "${app}" = "firefox" ]]; then
|
if [[ "${app}" = "firefox" ]]; then
|
||||||
expect_yes "./updater.sh"
|
expect_yes "./updater.sh"
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
|
|
||||||
echo ""
|
echo ""
|
||||||
echo "##### ALL DONE"
|
echo "##### ALL DONE"
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,9 +1,22 @@
|
||||||
# change window focus within space
|
#change window focus within space
|
||||||
shift + cmd - j : yabai -m window --focus south
|
shift + cmd - j : yabai -m window --focus south
|
||||||
shift + cmd - k : yabai -m window --focus north
|
shift + cmd - k : yabai -m window --focus north
|
||||||
shift + cmd - h : yabai -m window --focus west
|
shift + cmd - h : yabai -m window --focus west
|
||||||
shift + cmd - l : yabai -m window --focus east
|
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 #
|
# change space #
|
||||||
shift + cmd - 1 : yabai -m space --display 1
|
shift + cmd - 1 : yabai -m space --display 1
|
||||||
shift + cmd - 2 : yabai -m space --display 2
|
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
|
shift + cmd - 7 : yabai -m space --display 7
|
||||||
|
|
||||||
#change focus between external displays (left and right)
|
#change focus between external displays (left and right)
|
||||||
cmd - s: yabai -m display --focus west
|
cmd - h: yabai -m display --focus west
|
||||||
cmd - g: yabai -m display --focus east
|
cmd - l: yabai -m display --focus east
|
||||||
|
|
||||||
# rotate layout clockwise
|
# rotate layout clockwise
|
||||||
shift + alt - r : yabai -m space --rotate 270
|
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
|
shift + alt - t : yabai -m window --toggle float --grid 4:4:1:1:2:2
|
||||||
|
|
||||||
# maximize a window
|
# 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
|
# toggle whether the focused window should be shown on all spaces
|
||||||
shift + alt - a : yabai -m window --toggle sticky
|
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
|
# swap windows
|
||||||
shift + alt - j : yabai -m window --swap south
|
shift + alt - j : yabai -m window --swap south
|
||||||
shift + alt - k : yabai -m window --swap north
|
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
|
ctrl + alt - l : yabai -m window --warp east
|
||||||
|
|
||||||
# move window to display left and right
|
# move window to display left and right
|
||||||
shift + alt - s : yabai -m window --display west; yabai -m display --focus west;
|
shift + alt - h : 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 - l : yabai -m window --display east; yabai -m display --focus east;
|
||||||
|
|
||||||
#move window to prev and next space
|
#move window to prev and next space
|
||||||
shift + alt - p : yabai -m window --space prev;
|
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 - 6 : yabai -m window --space 6;
|
||||||
shift + alt - 7 : yabai -m window --space 7;
|
shift + alt - 7 : yabai -m window --space 7;
|
||||||
|
|
||||||
# open apps
|
# # open apps
|
||||||
ctrl + cmd - 1 : open -a VSCodium.app
|
# lctrl + shift - t : open -an Wezterm.app
|
||||||
ctrl + cmd - 2 : open -a Brave\ Browser.app
|
# lctrl + shift - b : open -an Firefox.app
|
||||||
ctrl + cmd - 3 : open -n /Applications/Brave\ Browser.app
|
# lctrl + shift - v : open -an VSCodium.app
|
||||||
ctrl + cmd - 4 : open -a Mail.app
|
# shift + alt - m : open -an Mail.app
|
||||||
ctrl + cmd - 5 : open -a Authy\ Desktop.app
|
# shift + alt - a : open -an Authy\ Desktop.app
|
||||||
ctrl + cmd - 6 : open -a Bitwarden.app
|
# shift + alt - w : open -an Bitwarden.app
|
||||||
ctrl + cmd - 0 : open -a iTerm.app
|
|
||||||
|
|
||||||
# stop/start/restart yabai
|
# stop/start/restart yabai
|
||||||
ctrl + alt - q : brew services stop yabai
|
ctrl + alt - q : yabai --stop-service
|
||||||
ctrl + alt - s : brew services start yabai
|
ctrl + alt - s : yabai --start-service
|
||||||
ctrl + alt - r : brew services restart yabai
|
ctrl + alt - r : yabai --restart-service
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,6 @@
|
||||||
#! /bin/bash
|
#/bin/bash
|
||||||
|
|
||||||
IGNORED_CAL="Birthdays, Family, Contacts, School, Home, Canadian Holidays, Canadiens, Jours fériés au Canada"
|
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
|
ALERT_POPUP_BEFORE_SECONDS=15
|
||||||
THEME_BG="#2c323c"
|
THEME_BG="#2c323c"
|
||||||
THEME_RED="#f92572"
|
THEME_RED="#f92572"
|
||||||
|
|
@ -12,6 +11,13 @@ NERD_FONT_SEPARATOR=""
|
||||||
|
|
||||||
ICAL_BUDDY="/usr/local/bin/icalBuddy"
|
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() {
|
get_next_meeting() {
|
||||||
next_meeting=$("$ICAL_BUDDY" \
|
next_meeting=$("$ICAL_BUDDY" \
|
||||||
--includeEventProps "title,datetime,attendees" \
|
--includeEventProps "title,datetime,attendees" \
|
||||||
|
|
@ -22,9 +28,15 @@ get_next_meeting() {
|
||||||
--limitItems 1 \
|
--limitItems 1 \
|
||||||
--excludeAllDayEvents \
|
--excludeAllDayEvents \
|
||||||
--separateByDate \
|
--separateByDate \
|
||||||
--bullet "" \
|
--excludeCals "$IGNORED_CAL" \
|
||||||
--excludeCals "${IGNORED_CAL}" \
|
eventsToday
|
||||||
eventsToday)
|
)
|
||||||
|
|
||||||
|
if [[ -z "$next_meeting" ]]; then
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "$next_meeting"
|
||||||
}
|
}
|
||||||
|
|
||||||
get_next_next_meeting() {
|
get_next_next_meeting() {
|
||||||
|
|
@ -38,168 +50,205 @@ get_next_next_meeting() {
|
||||||
--limitItems 1 \
|
--limitItems 1 \
|
||||||
--excludeAllDayEvents \
|
--excludeAllDayEvents \
|
||||||
--separateByDate \
|
--separateByDate \
|
||||||
--bullet "" \
|
--excludeCals "$IGNORED_CAL" \
|
||||||
--excludeCals "${IGNORED_CAL}" \
|
eventsFrom:"${end_timestamp}" to:"${tonight}"
|
||||||
eventsFrom:"${end_timestamp}" to:"${tonight}")
|
)
|
||||||
|
|
||||||
|
if [[ -z "$next_meeting" ]]; then
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
parse_result() {
|
parse_result() {
|
||||||
local ical_output="$1"
|
local ical_output="$1"
|
||||||
|
|
||||||
# Extract the title from the third line
|
start_time=""
|
||||||
title=$(echo "$ical_output" | awk 'NR==3')
|
end_time=""
|
||||||
|
attendees=""
|
||||||
|
title=$(echo "$ical_output" | awk 'NR==3')
|
||||||
|
lines=()
|
||||||
|
|
||||||
while IFS= read -r line; do
|
# Use process substitution to emulate a file for the while loop
|
||||||
# array+=("$line")
|
while read -r line; do
|
||||||
|
lines+=("$line") # Store each line in the array for potential future use
|
||||||
# Extract start and end time
|
|
||||||
if [[ $line =~ [0-9]{2}:[0-9]{2}\ -\ [0-9]{2}:[0-9]{2} ]]; then
|
if [[ $line =~ [0-9]{2}:[0-9]{2}\ -\ [0-9]{2}:[0-9]{2} ]]; then
|
||||||
start_time=$(echo "$line" | awk '{print $1}')
|
start_time=$(echo "$line" | awk '{print $1}')
|
||||||
end_time=$(echo "$line" | awk '{print $3}')
|
end_time=$(echo "$line" | awk '{print $3}')
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Extract attendees from the line, excluding "mailto:"
|
if [[ $line == *attendees:* ]]; then
|
||||||
if [[ $line == *attendees:* ]]; then
|
attendees_line=${line#*attendees:}
|
||||||
attendees_line=${line#*attendees:}
|
attendees=$(echo "$attendees_line" | sed 's/^[[:space:]]*//;s/[[:space:]]*$//g')
|
||||||
attendees=$(echo "$attendees_line" | sed 's/^[[:space:]]*//;s/[[:space:]]*$//g')
|
# Count the number of attendees
|
||||||
# Count the number of attendees
|
num_attendees=$(echo "$attendees" | awk -F, '{print NF}')
|
||||||
num_attendees=$(echo "$attendees" | awk -F, '{print NF}')
|
fi
|
||||||
fi
|
done < <(echo "$ical_output")
|
||||||
done < <(echo "$ical_output")
|
|
||||||
}
|
}
|
||||||
|
|
||||||
calculate_times() {
|
calculate_times() {
|
||||||
if [[ -z "$start_time" ]]; then
|
if [[ -z "$start_time" ]]; then
|
||||||
# echo "Error: start_time is empty or invalid"
|
|
||||||
return 1
|
return 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
epoc_meeting=$(date -jf "%T" "$start_time:00" +%s)
|
epoc_meeting=$(date -jf "%T" "$start_time:00" +%s)
|
||||||
if [[ $? -ne 0 ]]; then
|
if [[ $? -ne 0 ]]; then
|
||||||
echo "Error: Failed to convert '$start_time' using format '%T'"
|
echo "Error: Failed to convert '$start_time' to epoch time" >&2
|
||||||
return 1
|
return 2
|
||||||
fi
|
fi
|
||||||
|
|
||||||
epoc_now=$(date +%s)
|
epoc_now=$(date +%s)
|
||||||
|
|
||||||
epoc_diff=$((epoc_meeting - epoc_now))
|
epoc_diff=$((epoc_meeting - epoc_now))
|
||||||
|
|
||||||
minutes_till_meeting=$((epoc_diff / 60))
|
minutes_till_meeting=$((epoc_diff / 60))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
get_upcoming_meetings() {
|
get_upcoming_meetings() {
|
||||||
upcoming_meetings=$("$ICAL_BUDDY" \
|
upcoming_meetings=$("$ICAL_BUDDY" \
|
||||||
--includeEventProps "title,datetime" \
|
--noCalendarNames \
|
||||||
--propertyOrder "title,datetime" \
|
--formatOutput \
|
||||||
--noCalendarNames \
|
--includeEventProps "title,datetime,attendees,notes,url" \
|
||||||
--dateFormat "%A" \
|
--propertyOrder "title,datetime" \
|
||||||
--excludeAllDayEvents \
|
--includeOnlyEventsFromNowOn \
|
||||||
--separateByDate \
|
--sortTagsByDate "Descending" \
|
||||||
--bullet "$MEETING_DELIMITER" \
|
--excludeAllDayEvents \
|
||||||
--excludeCals "${IGNORED_CAL}" \
|
--bullet "$MEETING_DELIMITER" \
|
||||||
eventsToday)
|
--excludeCals "$IGNORED_CAL" \
|
||||||
|
eventsToday)
|
||||||
echo "upcoming_meetings: $upcoming_meetings"
|
|
||||||
|
if [[ -z "$upcoming_meetings" ]]; then
|
||||||
if [[ $? -ne 0 ]]; then
|
return 1
|
||||||
echo "Error: Failed to get upcoming meetings"
|
fi
|
||||||
return 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [[ -z "$upcoming_meetings" ]]; then
|
|
||||||
echo "Error: upcoming_meetings is empty"
|
|
||||||
return 1
|
|
||||||
fi
|
|
||||||
}
|
}
|
||||||
|
|
||||||
get_popup_size($last_meetingi) {
|
# get_last_meeting() {
|
||||||
# Set minimum and maximum width/height
|
# get_upcoming_meetings
|
||||||
local min_width=15
|
#
|
||||||
local max_width=40
|
# if [[ -z "$upcoming_meetings" ]]; then
|
||||||
local min_height=13
|
# return 1
|
||||||
local max_height=100
|
# 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
|
# Split the string into an array using the delimiter, in ZSH script
|
||||||
local max_line_length=0
|
get_last_meeting() {
|
||||||
local length=0
|
get_upcoming_meetings
|
||||||
|
|
||||||
while IFS= read -r line; do
|
if [[ -z "$upcoming_meetings" ]]; then
|
||||||
echo "line: $line"
|
return 1
|
||||||
length=${#line}
|
fi
|
||||||
max_line_length=$((length > max_line_length ? length : max_line_length))
|
|
||||||
done <<< "$last_meeting"
|
|
||||||
|
|
||||||
# Add padding for aesthetics
|
echo "upcoming_meetings: $upcoming_meetings"
|
||||||
width=$((max_line_length + 4))
|
|
||||||
|
|
||||||
# Ensure width is within the specified range
|
# Split the input by newline and remove leading/trailing whitespace
|
||||||
width=$((width > max_width ? max_width : width))
|
IFS=$'\n' lines=($(echo "$input" | sed -e 's/^[[:space:]]*//' -e 's/[[:space:]]*$//'))
|
||||||
width=$((width < min_width ? min_width : width))
|
|
||||||
|
|
||||||
# Count the number of lines in the last meeting text
|
# Find the last line that contains "attendees:"
|
||||||
local line_count=$(echo "$last_meeting" | wc -l)
|
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
|
echo "last_attendees_line: $last_attendees_line"
|
||||||
height=$((line_count + (width / max_line_length) + 1))
|
|
||||||
|
|
||||||
# Ensure height is within the specified range
|
# Extract meeting information from the last attendees line
|
||||||
height=$((height < min_height ? min_height : height))
|
if [[ -n "$last_attendees_line" ]]; then
|
||||||
height=$((height > max_height ? max_height : height))
|
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() {
|
display_popup() {
|
||||||
# Get all upcoming meetings
|
get_last_meeting
|
||||||
get_upcoming_meetings
|
|
||||||
IFS='$MEETING_DELIMITER' read -r -d '$MEETING_DELIMITER' meetings <<< "$upcoming_meetings"
|
|
||||||
|
|
||||||
# Get the last meeting
|
if [[ -z "$last_meeting" ]]; then
|
||||||
local last_meeting="${meetings[-1]}"
|
return 1
|
||||||
|
fi
|
||||||
call get_popup_size "$last_meeting"
|
|
||||||
|
|
||||||
# Display a popup for the last meeting with dynamic width and height
|
tmux display-popup \
|
||||||
tmux display-popup \
|
-S "fg=$THEME_BG" \
|
||||||
-S "fg=$THEME_BG" \
|
-w 50% \
|
||||||
-w${width}% \
|
-h 50% \
|
||||||
-h${height}% \
|
-T 'Meeting Reminder' \
|
||||||
-d '#{pane_current_path}' \
|
-d '#{pane_current_path}' \
|
||||||
-T Meeting \
|
echo "$last_meeting"
|
||||||
echo "$last_meeting"
|
|
||||||
}
|
}
|
||||||
|
|
||||||
print_tmux_status() {
|
print_tmux_status() {
|
||||||
local tmux_refresh_interval=$(tmux show-option -g status-interval)
|
local tmux_refresh_interval=$(tmux show-option -g status-interval)
|
||||||
tmux_refresh_interval=$(echo "$tmux_refresh_interval" | awk '{print $NF}' | tr -d '[:space:]')
|
local tmux_refresh_interval=$(echo "$tmux_refresh_interval" | awk '{print $NF}' | tr -d '[:space:]')
|
||||||
tmux_refresh_interval=$((tmux_refresh_interval))
|
local tmux_refresh_interval=$((tmux_refresh_interval))
|
||||||
local print_alert="#[fg=$THEME_RED,bold,bg=$THEME_BG] \
|
|
||||||
|
local print_alert="#[fg=$THEME_RED,bold,bg=$THEME_BG] \
|
||||||
$NERD_FONT_SEPARATOR \
|
$NERD_FONT_SEPARATOR \
|
||||||
$NERD_FONT_MEETING \
|
$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
|
if ((ALERT_POPUP_BEFORE_SECONDS <= tmux_refresh_interval)); then
|
||||||
echo "Error: ALERT_POPUP_BEFORE_SECONDS must be greater than tmux_refresh_interval"
|
echo "Error: ALERT_POPUP_BEFORE_SECONDS must be greater than tmux_refresh_interval" >&2
|
||||||
fi
|
return
|
||||||
|
fi
|
||||||
|
|
||||||
if [[ $minutes_till_meeting -lt $ALERT_IF_IN_NEXT_MINUTES && \
|
if ((minutes_till_meeting < ALERT_IF_IN_NEXT_MINUTES)) && ((epoc_diff > ALERT_POPUP_BEFORE_SECONDS)); then
|
||||||
$epoc_diff -gt $ALERT_POPUP_BEFORE_SECONDS ]]; then
|
echo "$print_alert"
|
||||||
echo "$print_alert"
|
elif ((epoc_diff <= ALERT_POPUP_BEFORE_SECONDS)) && ((epoc_diff > (ALERT_POPUP_BEFORE_SECONDS - tmux_refresh_interval))); then
|
||||||
elif [[ $epoc_diff -le $ALERT_POPUP_BEFORE_SECONDS && \
|
echo "$print_alert"
|
||||||
$epoc_diff -gt $(( $ALERT_POPUP_BEFORE_SECONDS - $tmux_refresh_interval )) ]]; then
|
display_popup
|
||||||
echo "$print_alert"
|
else
|
||||||
display_popup
|
echo "#[bold,bg=$THEME_BG] $NERD_FONT_SEPARATOR $NERD_FONT_FREE "
|
||||||
else
|
fi
|
||||||
echo "#[bold,bg=$THEME_BG] $NERD_FONT_SEPARATOR $NERD_FONT_FREE "
|
|
||||||
fi
|
|
||||||
}
|
}
|
||||||
|
|
||||||
main() {
|
main() {
|
||||||
|
check_ical_buddy
|
||||||
|
|
||||||
get_next_meeting
|
get_next_meeting
|
||||||
|
|
||||||
parse_result "${next_meeting[@]}"
|
parse_result "${next_meeting[@]}"
|
||||||
|
|
||||||
calculate_times
|
calculate_times
|
||||||
if [[ "${next_meeting[*]}" != "" && $number_of_attendees -lt 2 ]]; then
|
if [[ -n "${next_meeting[*]}" && $num_attendees -lt 2 ]]; then
|
||||||
get_next_next_meeting
|
get_next_next_meeting
|
||||||
|
|
||||||
parse_result "${next_next_meeting[@]}"
|
parse_result "${next_next_meeting[@]}"
|
||||||
|
|
||||||
calculate_times
|
calculate_times
|
||||||
fi
|
fi
|
||||||
|
|
||||||
print_tmux_status
|
print_tmux_status
|
||||||
}
|
}
|
||||||
|
|
||||||
main
|
main
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -6,15 +6,6 @@ set-option -g prefix C-a
|
||||||
unbind r
|
unbind r
|
||||||
bind R source-file ~/.config/tmux/tmux.conf; display-message "Config reloaded.."
|
bind R source-file ~/.config/tmux/tmux.conf; display-message "Config reloaded.."
|
||||||
|
|
||||||
# # unbind-key “x” from it’s 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 it’s current job of “ask and then close”
|
|
||||||
# bind-key X kill-session
|
|
||||||
|
|
||||||
set-option -g detach-on-destroy off
|
|
||||||
|
|
||||||
# Session management
|
# Session management
|
||||||
bind S command-prompt -p "New Session:" "new-session -A -s '%%' -c ~"
|
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
|
# Use choose-tree for interactive session and window navigation
|
||||||
bind-key W choose-tree -Zw
|
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 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"
|
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
|
# List windows
|
||||||
bind p previous-window
|
bind p previous-window
|
||||||
bind n next-window
|
bind n next-window
|
||||||
|
bind Y last-window
|
||||||
|
|
||||||
# Quick renaming
|
# Quick renaming
|
||||||
bind C switch-client -n -t "#{session_name}"
|
bind C switch-client -n -t "#{session_name}"
|
||||||
|
|
@ -90,7 +89,7 @@ set-window-option -g aggressive-resize off
|
||||||
# Seamless navigation with neovim panes
|
# 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)?$'"
|
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-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-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'
|
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-sensible'
|
||||||
set -g @plugin 'tmux-plugins/tmux-resurrect'
|
set -g @plugin 'tmux-plugins/tmux-resurrect'
|
||||||
set -g @plugin 'tmux-plugins/tmux-continuum'
|
set -g @plugin 'tmux-plugins/tmux-continuum'
|
||||||
set -g @plugin 'tmux-plugins/tmux-prefix-highlight'
|
|
||||||
set -g @plugin 'rickstaa/tmux-notify'
|
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')"
|
run-shell "tmux source-file $HOME/.config/tmux/tmux.\${TMUX_THEME:-default}.theme"
|
||||||
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)'
|
|
||||||
|
|
||||||
set -g status-justify left
|
set -g status-justify left
|
||||||
set -g status-interval 3
|
set -g status-interval 5
|
||||||
set -g status-left-length 200
|
set -g status-left-length 200
|
||||||
set -g status-right-length 200
|
set -g status-right-length 200
|
||||||
set -g status-position top
|
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 @continuum-save-interval 15
|
||||||
# set -g status-right '#[fg=blue]#(date "+%%H:%%M %%d-%%b-%%yi")'
|
set -g @continuum-restore 'on'
|
||||||
# set -g status-left 'Session: #S | Host: #{hostname} | '
|
set -g @continuum-save-path "$HOME/.config/tmux/resurrect"
|
||||||
# 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 @notify_show_alerts 'on'
|
||||||
# set -g status-right '#{?client_prefix,#[reverse]<Prefix>#[noreverse] ,}' # Display prefix indicator
|
set -g @notify_show_messages 'on'
|
||||||
# set -g status-right '#{?pane_in_mode,[#[fg=yellow]Copy Mode#[fg=default]],}' # Display copy mode indicator
|
set -g @notify_show_activity 'on'
|
||||||
# set -g status-right ' #{=21:pane_title}' # Display pane title
|
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
|
# Renaming Session the current dir's name
|
||||||
set-option -g automatic-rename on
|
set-option -g automatic-rename on
|
||||||
set-option -g automatic-rename-format '#{b:pane_current_path}'
|
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
|
# Default TMUX keybindings
|
||||||
bind c new-window
|
bind c new-window -c '#{pane_current_path}'
|
||||||
bind '"' split-window -h
|
bind '"' split-window -h -c '#{pane_current_path}'
|
||||||
bind % split-window -v
|
bind % split-window -v -c '#{pane_current_path}'
|
||||||
bind h select-pane -L
|
bind h select-pane -L
|
||||||
bind l select-pane -R
|
bind l select-pane -R
|
||||||
bind Left select-pane -L
|
bind Left select-pane -L
|
||||||
|
|
@ -206,3 +199,4 @@ bind-key : command-prompt
|
||||||
bind-key -n F5 show-buffer
|
bind-key -n F5 show-buffer
|
||||||
|
|
||||||
run '$HOME/.config/tmux/plugins/tpm/tpm'
|
run '$HOME/.config/tmux/plugins/tpm/tpm'
|
||||||
|
|
||||||
|
|
|
||||||
17
tmux/.config/tmux/tmux.default.theme
Normal file
17
tmux/.config/tmux/tmux.default.theme
Normal 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'
|
||||||
|
|
||||||
17
tmux/.config/tmux/tmux.light.theme
Normal file
17
tmux/.config/tmux/tmux.light.theme
Normal 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'
|
||||||
|
|
||||||
|
|
@ -1,4 +1,8 @@
|
||||||
let g:netrw_dirhistmax =10
|
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_2='/Users/jeremiefraeys/.ssh'
|
||||||
let g:netrw_dirhist_1='/Users/jeremiefraeys/.oh-my-zsh'
|
let g:netrw_dirhist_1='/Users/jeremiefraeys/.oh-my-zsh'
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,5 @@
|
||||||
lt g:TerminusFocusReporting=0
|
let g:TerminusFocusReporting = 0
|
||||||
let g:molokai_original = 1
|
let g:molokai_original = 1
|
||||||
|
|
||||||
set autoindent expandtab tabstop=4 shiftwidth=4
|
set autoindent expandtab tabstop=4 shiftwidth=4
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
#!/usr/bin/env sh
|
#/usr/bin/env sh
|
||||||
# global settings
|
# global settings
|
||||||
yabai -m config mouse_follows_focus off
|
yabai -m config mouse_follows_focus off
|
||||||
yabai -m config focus_follows_mouse 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 off
|
||||||
yabai -m config window_opacity_duration 0.0
|
yabai -m config window_opacity_duration 0.0
|
||||||
yabai -m config window_shadow off
|
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 window_border_width 4
|
||||||
|
|
||||||
yabai -m config active_window_opacity 1.0
|
yabai -m config active_window_opacity 1.0
|
||||||
|
|
@ -20,12 +20,13 @@ yabai -m config mouse_action2 resize
|
||||||
|
|
||||||
# general space settings
|
# general space settings
|
||||||
yabai -m config layout bsp
|
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 bottom_padding 50
|
||||||
yabai -m config left_padding 10
|
yabai -m config left_padding 5
|
||||||
yabai -m config right_padding 10
|
yabai -m config right_padding 5
|
||||||
yabai -m config window_gap 10
|
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.."
|
echo "yabai configuration loaded.."
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -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
|
export ITERM_ENABLE_SHELL_INTEGRATION_WITH_TMUX=YES
|
||||||
|
|
||||||
if [[ -n $SSH_CONNECTION ]]; then
|
if [[ -n $SSH_CONNECTION ]]; then
|
||||||
|
|
@ -10,17 +26,41 @@ export PYENV_ROOT="$HOME/.pyenv"
|
||||||
[[ -d $PYENV_ROOT/bin ]] && export PATH="$PYENV_ROOT/bin:$PATH"
|
[[ -d $PYENV_ROOT/bin ]] && export PATH="$PYENV_ROOT/bin:$PATH"
|
||||||
eval "$(pyenv init -)"
|
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/"
|
chmod -R ug+rwx "$HOME/.local/bin/"
|
||||||
export FZF_DEFAULT_OPTS='--height 40% --layout=reverse --border'
|
export FZF_DEFAULT_OPTS='--height 40% --layout=reverse --border'
|
||||||
|
|
||||||
# Add RVM to PATH for scripting. Make sure this is the last PATH variable change.
|
# 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 python="python3"
|
||||||
alias vim="nvim"
|
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 cat="bat --paging=never"
|
||||||
|
alias grep="grep --color=auto"
|
||||||
|
alias ll="ls -alF"
|
||||||
|
|
||||||
# set bat to highlight --help messages
|
# set bat to highlight --help messages
|
||||||
alias bathelp='bat --plain --language=help'
|
alias bathelp='bat --plain --language=help'
|
||||||
|
|
@ -32,11 +72,3 @@ help() {
|
||||||
alias -g -- -h='-h 2>&1 | bat --language=help --style=plain'
|
alias -g -- -h='-h 2>&1 | bat --language=help --style=plain'
|
||||||
alias -g -- --help='--help 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/"
|
|
||||||
|
|
||||||
|
|
|
||||||
34
zsh/.zshrc
34
zsh/.zshrc
|
|
@ -8,6 +8,8 @@ export PATH="$HOME/.local/bin:$PATH"
|
||||||
# Path to your oh-my-zsh installation.
|
# Path to your oh-my-zsh installation.
|
||||||
export ZSH="$HOME/.oh-my-zsh"
|
export ZSH="$HOME/.oh-my-zsh"
|
||||||
|
|
||||||
|
export UPDATE_ZSH_DAYS=1
|
||||||
|
|
||||||
# Set name of the theme to load --- if set to "random", it will
|
# 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,
|
# 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
|
# to know which specific one was loaded, run: echo $RANDOM_THEME
|
||||||
|
|
@ -59,6 +61,16 @@ ZSH_THEME="powerlevel10k/powerlevel10k"
|
||||||
# much, much faster.
|
# much, much faster.
|
||||||
# DISABLE_UNTRACKED_FILES_DIRTY="true"
|
# 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
|
# Uncomment the following line if you want to change the command execution time
|
||||||
# stamp shown in the history command output.
|
# stamp shown in the history command output.
|
||||||
# You can set one of the optional three formats:
|
# 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.
|
# Add wisely, as too many plugins slow down shell startup.
|
||||||
plugins=(
|
plugins=(
|
||||||
git
|
git
|
||||||
|
docker
|
||||||
zsh-syntax-highlighting
|
zsh-syntax-highlighting
|
||||||
zsh-autosuggestions
|
zsh-autosuggestions
|
||||||
macos
|
macos
|
||||||
|
autoupdate
|
||||||
)
|
)
|
||||||
|
|
||||||
export ZSH_AUTOSUGGEST_STRATEGY=(
|
export ZSH_AUTOSUGGEST_STRATEGY=(
|
||||||
|
|
@ -123,21 +137,25 @@ source ~/.zprofile
|
||||||
|
|
||||||
# >>> conda initialize >>>
|
# >>> conda initialize >>>
|
||||||
# !! Contents within this block are managed by 'conda init' !!
|
# !! 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
|
if [ $? -eq 0 ]; then
|
||||||
eval "$__conda_setup"
|
eval "$__conda_setup"
|
||||||
else
|
else
|
||||||
if [ -f "/Users/jfraeys/yes/etc/profile.d/conda.sh" ]; then
|
if [ -f "/usr/local/Caskroom/miniforge/base/etc/profile.d/conda.sh" ]; then
|
||||||
. "/Users/jfraeys/yes/etc/profile.d/conda.sh"
|
. "/usr/local/Caskroom/miniforge/base/etc/profile.d/conda.sh"
|
||||||
else
|
else
|
||||||
export PATH="/Users/jfraeys/yes/bin:$PATH"
|
export PATH="/usr/local/Caskroom/miniforge/base/bin:$PATH"
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
unset __conda_setup
|
unset __conda_setup
|
||||||
|
|
||||||
if [ -f "/Users/jfraeys/yes/etc/profile.d/mamba.sh" ]; then
|
if [ -f "/usr/local/Caskroom/miniforge/base/etc/profile.d/mamba.sh" ]; then
|
||||||
. "/Users/jfraeys/yes/etc/profile.d/mamba.sh"
|
. "/usr/local/Caskroom/miniforge/base/etc/profile.d/mamba.sh"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
conda config --set auto_activate_base false
|
|
||||||
# <<< conda initialize <<<
|
# <<< 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
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue