diff --git a/configboth/nvim/README.md b/configboth/nvim/README.md new file mode 100644 index 0000000..1b88347 --- /dev/null +++ b/configboth/nvim/README.md @@ -0,0 +1 @@ +This requires nvchad to be install and be dropped in for nvchad install, see here: PLACEHOLDER diff --git a/configboth/nvim/lua/custom/chadrc.lua b/configboth/nvim/lua/custom/chadrc.lua new file mode 100644 index 0000000..25c8c90 --- /dev/null +++ b/configboth/nvim/lua/custom/chadrc.lua @@ -0,0 +1,32 @@ +-- Just an example, supposed to be placed in /lua/custom/ + +local M = {} + +-- make sure you maintain the structure of `core/default_config.lua` here, +-- example of changing theme: + +M.ui = { + theme = "rxyhn", +} +M.plugins = { + ["glepnir/dashboard-nvim"] = { + disable = false, + config = function() + require "custom.dash" + end + }, + ['folke/which-key.nvim'] = {disable = false}, + ['goolord/alpha-nvim'] = {disable = true}, + ['kylechui/nvim-surround'] = { + tag = "*", + config = function() + require("nvim-surround").setup({ + + }) + end + }, +} + + + +return M diff --git a/configboth/nvim/lua/custom/dash.lua b/configboth/nvim/lua/custom/dash.lua new file mode 100644 index 0000000..5bc87df --- /dev/null +++ b/configboth/nvim/lua/custom/dash.lua @@ -0,0 +1,51 @@ +local present, db = pcall(require, "dashboard") +local home = os.getenv('HOME') +if present then + db.custom_header = { + "⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠂⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠠⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀", + "⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⡔⠁⠀⠀", + "⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠠⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣀⣴⠟⠀⠀⠀⠀", + "⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣀⣀⡀⠠⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣠⣾⡿⠋⠀⠀⠀⠀⠀", + "⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡾⠚⠁⠀⠀⠈⠉⠙⠒⠢⢄⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣠⣴⣿⣿⠟⠀⠀⠀⠀⠀⠀⠀", + "⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠳⢄⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣀⣤⣶⣿⣿⣿⠟⠁⠀⠀⠀⠀⠀⠀⠀⠀", + "⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠙⢦⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣠⣴⣾⣿⡿⢻⠿⠟⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀", + "⠀⠀⠀⠀⠀⠀⠠⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡅⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠙⣆⠀⠀⠀⠀⢀⣀⣤⣶⣿⣿⣿⠿⠛⣡⠶⠋⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀", + "⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢹⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⡳⣤⣴⣾⣿⣿⣿⠿⠟⠋⢀⡤⠞⠉⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀", + "⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣀⣀⣀⣀⣀⣀⡀⠀⠈⡇⠀⠀⠀⠀⠀⠀⠀⠀⡀⠀⢀⣠⣤⣴⣾⣿⣿⣮⢻⡟⠋⠉⠀⠀⢀⣴⣋⣀⣀⣀⣀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀", + "⠀⠀⠀⠀⠀⠀⠀⠀⠀⠸⠿⠿⠿⠿⢿⣿⡟⠀⠀⠸⣆⠀⣠⣦⣄⢀⠰⡱⢸⢼⣿⣿⠿⠿⠛⠋⠉⠀⠘⣏⠀⢀⠴⠊⠼⠿⠿⠿⠿⢻⣿⠏⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀", + "⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣾⠏⠀⠀⢀⡀⣸⣾⣟⣝⠻⣷⣕⠈⠁⠈⠀⢠⣤⣤⣤⣤⣤⣤⣤⣬⣷⡅⠀⠀⠀⠀⠀⠀⢠⣿⠏⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀", + "⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣴⡿⣿⣄⠲⠿⠏⢾⡿⠋⠻⣇⠀⠙⢿⣦⡀⠀⠀⠈⠛⠛⠛⣋⡭⠉⠛⠛⠛⠛⡆⠀⠀⠀⢀⣴⡟⣷⣄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀", + "⠀⠀⠀⠀⠀⠀⠀⠀⢀⣠⣶⡿⠋⠀⠈⠻⣷⣄⠀⠀⠁⠀⠀⠑⢅⠀⠀⠹⣿⠆⠀⠀⢀⠴⠚⠁⠀⠀⠀⠀⠀⠀⢸⣀⣤⣶⠿⠋⠀⠈⢻⣷⣄⠀⠀⠀⠀⠀⠀⠀⠀⠀⡀⠀⠀", + "⠀⠀⠀⠀⠀⡀⠄⠒⠀⠛⠁⠀⠀⠀⠀⠀⠘⠁⠀⠀⠀⠀⠀⠀⠀⠢⣄⠀⠀⢀⠤⠊⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢯⠋⠁⠀⠀⠀⠀⠀⠙⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀", + "⠀⠀⠠⠀⠁⠀⠀⠀⠀⠀⠀⠀⠄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢘⠶⢊⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠸⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀", + "⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⡤⠚⠁⠀⠈⠱⣄⠀⠀⠀⠀⠀⠀⠁⠀⠀⠀⠀⠀⠀⣷⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀", + "⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡠⠖⠉⠀⠀⠀⠀⠀⠀⠈⠲⣄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣸⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀", + "⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⠴⠋⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠙⠢⡀⠀⠀⠀⠀⠀⠀⠀⢀⡎⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀", + "⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣠⠖⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠀⠐⠐⠦⢤⣤⣀⣀⡤⠈⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀", + " ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡰⠚⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠂⠀⠀⠀⠀⠀⠀⠀⠀", + "⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠚⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠠⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠠⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀", + "⠀⠀⠀⠀⠀⠀⠀⠄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀", +} + db.custom_center = { + {icon = ' ', + desc = 'Recently opened files NOTWORKING ', + action = 'DashboardFindHistory', + shortcut = 'SPC f h'}, + {icon = ' ', + desc = 'Find File ', + action = 'Telescope find_files find_command=rg,--hidden,--files', + shortcut = 'SPC f f'}, + {icon = ' ', + desc = 'File Browser NOTWORKING ', + action = 'Telescope file_browser', + shortcut = 'SPC f b'}, + {icon = ' ', + desc = 'Find word ', + action = 'Telescope live_grep', + shortcut = 'SPC f w'}, + {icon = ' ', + desc = 'Open Personal dotfiles ', + action = 'Telescope fd search_dirs=' .. home ..'/.config', + shortcut = 'SPC f d'}, + } +end diff --git a/configboth/nvim/lua/custom/dashtemp.txt b/configboth/nvim/lua/custom/dashtemp.txt new file mode 100644 index 0000000..007163e --- /dev/null +++ b/configboth/nvim/lua/custom/dashtemp.txt @@ -0,0 +1,124 @@ +local colorList = { + "#DF5B61", + "#78B892", + "#DE8F78", + "#6791C9", + "#BC83E3", + "#67AFC1", + "#F16269", + "#8CD7AA", + "#E9967E", + "#79AAEB", + "#C488EC", + "#7ACFE4", +} +local num = math.random(0,12) + +val = { + " * ", + " &*/ ", + " % %*** ", + " * ( & ***** ", + " / ( * ******/ ", + " # * /******** ", + " & & ******** ** ", + " % *********/ ** ", + " & /******/**/ %*( ", + " ********* & ** %**********/ **%********* ", + " *** *********/ *********,** **/ ", + " ***********/ # *** (*# ****( ", + " #***/ *** %& *** %*/ /*** *** ", + " // %& ** ", + "/ / /*/ % & & ", + " #*( /*/ ", + " & ** % ", + " % */ # & % ", + " *# ", + " /& & ", + " ## ", + " / ", + }, + ' ⠀⠀⠀⠀⠀⠀⠀⡴⠞⠉⢉⣭⣿⣿⠿⣳⣤⠴⠖⠛⣛⣿⣿⡷⠖⣶⣤⡀⠀⠀⠀ ', + ' ⠀⠀⠀⠀⠀⠀⠀⣼⠁⢀⣶⢻⡟⠿⠋⣴⠿⢻⣧⡴⠟⠋⠿⠛⠠⠾⢛⣵⣿⠀⠀⠀⠀ ', + ' ⣼⣿⡿⢶⣄⠀⢀⡇⢀⡿⠁⠈⠀⠀⣀⣉⣀⠘⣿⠀⠀⣀⣀⠀⠀⠀⠛⡹⠋⠀⠀⠀⠀ ', + ' ⣭⣤⡈⢑⣼⣻⣿⣧⡌⠁⠀⢀⣴⠟⠋⠉⠉⠛⣿⣴⠟⠋⠙⠻⣦⡰⣞⠁⢀⣤⣦⣤⠀ ', + ' ⠀⠀⣰⢫⣾⠋⣽⠟⠑⠛⢠⡟⠁⠀⠀⠀⠀⠀⠈⢻⡄⠀⠀⠀⠘⣷⡈⠻⣍⠤⢤⣌⣀ ', + ' ⢀⡞⣡⡌⠁⠀⠀⠀⠀⢀⣿⠁⠀⠀⠀⠀⠀⠀⠀⠀⢿⡀⠀⠀⠀⠸⣇⠀⢾⣷⢤⣬⣉ ', + ' ⡞⣼⣿⣤⣄⠀⠀⠀⠀⢸⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⡇⠀⠀⠀⠀⣿⠀⠸⣿⣇⠈⠻ ', + ' ⢰⣿⡿⢹⠃⠀⣠⠤⠶⣼⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⡇⠀⠀⠀⠀⣿⠀⠀⣿⠛⡄⠀ ', + ' ⠈⠉⠁⠀⠀⠀⡟⡀⠀⠈⡗⠲⠶⠦⢤⣤⣤⣄⣀⣀⣸⣧⣤⣤⠤⠤⣿⣀⡀⠉⣼⡇⠀ ', + ' ⣿⣴⣴⡆⠀⠀⠻⣄⠀⠀⠡⠀⠀⠀⠈⠛⠋⠀⠀⠀⡈⠀⠻⠟⠀⢀⠋⠉⠙⢷⡿⡇⠀ ', + ' ⣻⡿⠏⠁⠀⠀⢠⡟⠀⠀⠀⠣⡀⠀⠀⠀⠀⠀⢀⣄⠀⠀⠀⠀⢀⠈⠀⢀⣀⡾⣴⠃⠀ ', + ' ⢿⠛⠀⠀⠀⠀⢸⠁⠀⠀⠀⠀⠈⠢⠄⣀⠠⠼⣁⠀⡱⠤⠤⠐⠁⠀⠀⣸⠋⢻⡟⠀⠀ ', + ' ⠈⢧⣀⣤⣶⡄⠘⣆⠀⠀⠀⠀⠀⠀⠀⢀⣤⠖⠛⠻⣄⠀⠀⠀⢀⣠⡾⠋⢀⡞⠀⠀⠀ ', + ' ⠀⠀⠻⣿⣿⡇⠀⠈⠓⢦⣤⣤⣤⡤⠞⠉⠀⠀⠀⠀⠈⠛⠒⠚⢩⡅⣠⡴⠋⠀⠀⠀⠀ ', + ' ⠀⠀⠀⠈⠻⢧⣀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠐⣻⠿⠋⠀⠀⠀⠀⠀⠀ ', + ' ⠀⠀⠀⠀⠀⠀⠉⠓⠶⣤⣄⣀⡀⠀⠀⠀⠀⠀⢀⣀⣠⡴⠖⠋⠁⠀⠀⠀⠀⠀⠀⠀⠀ ', + + + + + ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ +⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ +"⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠂⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠠⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀", +"⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⡔⠁⠀⠀", +"⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠠⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣀⣴⠟⠀⠀⠀⠀", +"⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣀⣀⡀⠠⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣠⣾⡿⠋⠀⠀⠀⠀⠀", +"⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡾⠚⠁⠀⠀⠈⠉⠙⠒⠢⢄⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣠⣴⣿⣿⠟⠀⠀⠀⠀⠀⠀⠀", +"⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠳⢄⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣀⣤⣶⣿⣿⣿⠟⠁⠀⠀⠀⠀⠀⠀⠀⠀", +"⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠙⢦⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣠⣴⣾⣿⡿⢻⠿⠟⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀", +"⠀⠀⠀⠀⠀⠀⠠⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡅⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠙⣆⠀⠀⠀⠀⢀⣀⣤⣶⣿⣿⣿⠿⠛⣡⠶⠋⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀", +"⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢹⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⡳⣤⣴⣾⣿⣿⣿⠿⠟⠋⢀⡤⠞⠉⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀", +"⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣀⣀⣀⣀⣀⣀⡀⠀⠈⡇⠀⠀⠀⠀⠀⠀⠀⠀⡀⠀⢀⣠⣤⣴⣾⣿⣿⣮⢻⡟⠋⠉⠀⠀⢀⣴⣋⣀⣀⣀⣀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀", +"⠀⠀⠀⠀⠀⠀⠀⠀⠀⠸⠿⠿⠿⠿⢿⣿⡟⠀⠀⠸⣆⠀⣠⣦⣄⢀⠰⡱⢸⢼⣿⣿⠿⠿⠛⠋⠉⠀⠘⣏⠀⢀⠴⠊⠼⠿⠿⠿⠿⢻⣿⠏⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀", +"⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣾⠏⠀⠀⢀⡀⣸⣾⣟⣝⠻⣷⣕⠈⠁⠈⠀⢠⣤⣤⣤⣤⣤⣤⣤⣬⣷⡅⠀⠀⠀⠀⠀⠀⢠⣿⠏⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀", +"⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣴⡿⣿⣄⠲⠿⠏⢾⡿⠋⠻⣇⠀⠙⢿⣦⡀⠀⠀⠈⠛⠛⠛⣋⡭⠉⠛⠛⠛⠛⡆⠀⠀⠀⢀⣴⡟⣷⣄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀", +"⠀⠀⠀⠀⠀⠀⠀⠀⢀⣠⣶⡿⠋⠀⠈⠻⣷⣄⠀⠀⠁⠀⠀⠑⢅⠀⠀⠹⣿⠆⠀⠀⢀⠴⠚⠁⠀⠀⠀⠀⠀⠀⢸⣀⣤⣶⠿⠋⠀⠈⢻⣷⣄⠀⠀⠀⠀⠀⠀⠀⠀⠀⡀⠀⠀", +"⠀⠀⠀⠀⠀⡀⠄⠒⠀⠛⠁⠀⠀⠀⠀⠀⠘⠁⠀⠀⠀⠀⠀⠀⠀⠢⣄⠀⠀⢀⠤⠊⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢯⠋⠁⠀⠀⠀⠀⠀⠙⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀", +"⠀⠀⠠⠀⠁⠀⠀⠀⠀⠀⠀⠀⠄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢘⠶⢊⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠸⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀", +"⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⡤⠚⠁⠀⠈⠱⣄⠀⠀⠀⠀⠀⠀⠁⠀⠀⠀⠀⠀⠀⣷⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀", +"⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡠⠖⠉⠀⠀⠀⠀⠀⠀⠈⠲⣄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣸⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀", +"⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⠴⠋⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠙⠢⡀⠀⠀⠀⠀⠀⠀⠀⢀⡎⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀", +"⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣠⠖⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠀⠐⠐⠦⢤⣤⣀⣀⡤⠈⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀", +" ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡰⠚⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠂⠀⠀⠀⠀⠀⠀⠀⠀", +"⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠚⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠠⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠠⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀", +"⠀⠀⠀⠀⠀⠀⠀⠄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀", + +⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠂⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠠⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ +⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⡔⠁⠀⠀ +⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠠⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣀⣴⠟⠀⠀⠀⠀ +⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣀⣀⡀⠠⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣠⣾⡿⠋⠀⠀⠀⠀⠀ +⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡾⠚⠁⠀⠀⠈⠉⠙⠒⠢⢄⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣠⣴⣿⣿⠟⠀⠀⠀⠀⠀⠀⠀ +⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠳⢄⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣀⣤⣶⣿⣿⣿⠟⠁⠀⠀⠀⠀⠀⠀⠀⠀ +⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠙⢦⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣠⣴⣾⣿⡿⢻⠿⠟⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ +⠀⠀⠀⠀⠀⠀⠠⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡅⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠙⣆⠀⠀⠀⠀⢀⣀⣤⣶⣿⣿⣿⠿⠛⣡⠶⠋⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ +⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢹⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⡳⣤⣴⣾⣿⣿⣿⠿⠟⠋⢀⡤⠞⠉⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ +⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣀⣀⣀⣀⣀⣀⡀⠀⠈⡇⠀⠀⠀⠀⠀⠀⠀⠀⡀⠀⢀⣠⣤⣴⣾⣿⣿⣮⢻⡟⠋⠉⠀⠀⢀⣴⣋⣀⣀⣀⣀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ +⠀⠀⠀⠀⠀⠀⠀⠀⠀⠸⠿⠿⠿⠿⢿⣿⡟⠀⠀⠸⣆⠀⣠⣦⣄⢀⠰⡱⢸⢼⣿⣿⠿⠿⠛⠋⠉⠀⠘⣏⠀⢀⠴⠊⠼⠿⠿⠿⠿⢻⣿⠏⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ +⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣾⠏⠀⠀⢀⡀⣸⣾⣟⣝⠻⣷⣕⠈⠁⠈⠀⢠⣤⣤⣤⣤⣤⣤⣤⣬⣷⡅⠀⠀⠀⠀⠀⠀⢠⣿⠏⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ +⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣴⡿⣿⣄⠲⠿⠏⢾⡿⠋⠻⣇⠀⠙⢿⣦⡀⠀⠀⠈⠛⠛⠛⣋⡭⠉⠛⠛⠛⠛⡆⠀⠀⠀⢀⣴⡟⣷⣄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ +⠀⠀⠀⠀⠀⠀⠀⠀⢀⣠⣶⡿⠋⠀⠈⠻⣷⣄⠀⠀⠁⠀⠀⠑⢅⠀⠀⠹⣿⠆⠀⠀⢀⠴⠚⠁⠀⠀⠀⠀⠀⠀⢸⣀⣤⣶⠿⠋⠀⠈⢻⣷⣄⠀⠀⠀⠀⠀⠀⠀⠀⠀⡀⠀⠀ +⠀⠀⠀⠀⠀⡀⠄⠒⠀⠛⠁⠀⠀⠀⠀⠀⠘⠁⠀⠀⠀⠀⠀⠀⠀⠢⣄⠀⠀⢀⠤⠊⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢯⠋⠁⠀⠀⠀⠀⠀⠙⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ +⠀⠀⠠⠀⠁⠀⠀⠀⠀⠀⠀⠀⠄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢘⠶⢊⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠸⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ +⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⡤⠚⠁⠀⠈⠱⣄⠀⠀⠀⠀⠀⠀⠁⠀⠀⠀⠀⠀⠀⣷⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ +⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡠⠖⠉⠀⠀⠀⠀⠀⠀⠈⠲⣄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣸⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ +⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⠴⠋⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠙⠢⡀⠀⠀⠀⠀⠀⠀⠀⢀⡎⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ +⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣠⠖⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠀⠐⠐⠦⢤⣤⣀⣀⡤⠈⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ + ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡰⠚⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠂⠀⠀⠀⠀⠀⠀⠀⠀ +⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠚⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠠⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠠⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ +⠀⠀⠀⠀⠀⠀⠀⠄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ + +⣿⣿⡿⣫⣾⠏⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⢀⣀⣀⣀⣀⠄⠄⠄⠄⠄⠄⠀ +⣿⡇⠱⠉⠁⠄⠄⠄⠄⠄⠄⢀⣀⣤⣶⣶⣿⣿⣿⣿⣿⣿⣿⣦⠄⠄⠄⠄⠄⠀ +⣿⡇⠄⠄⠄⠄⠄⢀⣠⣛⡩⣩⣭⡹⣿⣿⣿⣿⠞⣛⣛⣛⡲⣿⡇⠄⠄⠄⠄⠀ +⣿⡇⠄⠄⠄⡾⣡⣾⣿⣷⣹⣿⣿⡿⣪⡻⠟⣱⣿⣿⣿⣿⣿⣷⡹⠄⠄⠄⠄⠀ +⣿⡇⠄⠄⣼⡇⣿⣻⣿⠟⡛⢿⣿⣾⣿⡇⢰⣍⢻⡿⠛⢿⣿⡭⣿⣷⠄⠄⠄⠀ +⣿⣧⣄⡀⣿⡇⣮⣽⣿⣮⣉⣾⣿⣿⣿⣇⡸⣿⣿⣆⠛⣰⣿⣾⡿⣿⠄⠄⠄⠀ +⣿⣇⡼⣄⣿⣿⡄⠙⢿⣏⣿⣿⡮⠁⣉⣾⣷⡈⠃⢿⣿⣬⡭⠝⣀⣿⠄⠄⠐⠀ +⡆⡇⣹⣿⣿⣿⣿⡿⠓⠛⣉⣉⣉⣉⣙⣛⠓⠾⣟⢿⣿⣿⣿⣿⣿⣿⣿⠇⠄⠙ +⠁⡇⣞⣿⡿⠋⠁⠄⠄⠈⠉⠙⠛⠛⠻⠿⠿⠿⣶⣌⠻⣿⣿⣿⣿⣿⢗⢴⣆⢣ +⠸⣇⡻⠈⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠈⢻⣷⡌⢿⣿⣿⣿⢸⠼⣣⣾ +⣦⡀⠄⠄⠄⠄⠄⠄⠄⠄⠄⢀⠄⠄⠄⠄⠄⠄⠄⠄⠙⠛⠈⣿⡫⡼⢠⣾⣿⣿ +⣿⣇⠄⣀⣠⡀⠄⠄⠴⠾⠿⠿⠶⠶⣦⣤⡀⠄⠄⠄⠄⠄⠄⢨⠯⢁⣿⣿⣿⣿ +⣿⣿⣦⢒⠤⣅⡶⣶⣶⣾⣿⣿⣿⣷⣶⣮⣍⠢⠄⠄⠄⠄⠄⠐⢠⣾⣿⣿⣿⣿ +⣿⣿⣿⣧⡐⠫⣉⡿⣬⡞⢿⣿⢯⠽⣶⡽⢟⣛⢖⣨⣛⠛⢃⣴⣿⣿⣿⣿⣿⣿ diff --git a/.config/.lol b/configboth/nvim/lua/custom/overrides.lua similarity index 100% rename from .config/.lol rename to configboth/nvim/lua/custom/overrides.lua diff --git a/configmac/.lol b/configmac/.lol new file mode 100644 index 0000000..e69de29 diff --git a/configmac/.yabairc b/configmac/.yabairc new file mode 100755 index 0000000..af70983 --- /dev/null +++ b/configmac/.yabairc @@ -0,0 +1,57 @@ +#!/usr/bin/env sh + +# the scripting-addition must be loaded manually if +# you are running yabai on macOS Big Sur. Uncomment +# the following line to have the injection performed +# when the config is executed during startup. +# +# for this to work you must configure sudo such that +# it will be able to run the command without password +# +# see this wiki page for information: +# - https://github.com/koekeishiya/yabai/wiki/Installing-yabai-(latest-release) +# +sudo yabai --load-sa +yabai -m signal --add event=dock_did_restart action="sudo yabai --load-sa" + +# global settings +yabai -m config mouse_follows_focus off +yabai -m config focus_follows_mouse autoraise +yabai -m config window_origin_display default +yabai -m config window_placement second_child +yabai -m config window_topmost off +yabai -m config window_shadow on +yabai -m config window_opacity off +yabai -m config window_opacity_duration 0.0 +yabai -m config active_window_opacity 1.0 +yabai -m config normal_window_opacity 0.90 +yabai -m config window_border off +yabai -m config window_border_width 6 +yabai -m config active_window_border_color 0xff775759 +yabai -m config normal_window_border_color 0xff555555 +yabai -m config insert_feedback_color 0xffd75f5f +yabai -m config split_ratio 0.50 +yabai -m config auto_balance off +yabai -m config mouse_modifier fn +yabai -m config mouse_action1 move +yabai -m config mouse_action2 resize +yabai -m config mouse_drop_action swap + +# general space settings +yabai -m config layout bsp +yabai -m config top_padding 12 +yabai -m config bottom_padding 12 +yabai -m config left_padding 12 +yabai -m config right_padding 12 +yabai -m config window_gap 06 +yabai -m config external_bar all:42:0 + +yabai -m signal --add event=space_changed \ + action="osascript -e 'tell application \"Übersicht\" to refresh widget id \"yabar-workspace-jsx\"'" +yabai -m signal --add event=display_changed \ + action="osascript -e 'tell application \"Übersicht\" to refresh widget id \"yabar-workspace-jsx\"'" +yabai -m signal --add event=application_front_switched \ + action="osascript -e 'tell application \"Übersicht\" to refresh widget id \"yabar-workspace-jsx\"'" +echo "yabai configuration loaded.." + +yabai -m rule --add title="^quake$" manage=off diff --git a/configmac/.zshrc b/configmac/.zshrc new file mode 100644 index 0000000..fe6555b --- /dev/null +++ b/configmac/.zshrc @@ -0,0 +1,115 @@ +# If you come from bash you might have to change your $PATH. +export PATH=$HOME/bin:/usr/local/bin:$PATH:$HOME/.yarn/bin/:$HOME/.local/bin:$HOME/.emacs.d/bin:$HOME/.cargo/bin +export RUST_SRC_PATH=$(rustc --print sysroot)/lib/rustlib/src/rust/library +# Path to your oh-my-zsh installation. +export ZSH="$HOME/.oh-my-zsh" + +# 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 +# See https://github.com/ohmyzsh/ohmyzsh/wiki/Themes +ZSH_THEME="robbyrussell" +ZSH_DISABLE_COMPFIX="true" +# Set list of themes to pick from when loading at random +# Setting this variable when ZSH_THEME=random will cause zsh to load +# a theme from this variable instead of looking in $ZSH/themes/ +# If set to an empty array, this variable will have no effect. +# ZSH_THEME_RANDOM_CANDIDATES=( "robbyrussell" "agnoster" ) + +# Uncomment the following line to use case-sensitive completion. +# CASE_SENSITIVE="true" + +# Uncomment the following line to use hyphen-insensitive completion. +# Case-sensitive completion must be off. _ and - will be interchangeable. +# HYPHEN_INSENSITIVE="true" + +# Uncomment one of the following lines to change the auto-update behavior +# zstyle ':omz:update' mode disabled # disable automatic updates +# zstyle ':omz:update' mode auto # update automatically without asking +# zstyle ':omz:update' mode reminder # just remind me to update when it's time + +# Uncomment the following line to change how often to auto-update (in days). +# zstyle ':omz:update' frequency 13 + +# Uncomment the following line if pasting URLs and other text is messed up. +# DISABLE_MAGIC_FUNCTIONS="true" + +# Uncomment the following line to disable colors in ls. +# DISABLE_LS_COLORS="true" + +# Uncomment the following line to disable auto-setting terminal title. +# DISABLE_AUTO_TITLE="true" + +# Uncomment the following line to enable command auto-correction. +# ENABLE_CORRECTION="true" + +# Uncomment the following line to display red dots whilst waiting for completion. +# You can also set it to another string to have that shown instead of the default red dots. +# e.g. COMPLETION_WAITING_DOTS="%F{yellow}waiting...%f" +# Caution: this setting can cause issues with multiline prompts in zsh < 5.7.1 (see #5765) +# COMPLETION_WAITING_DOTS="true" + +# Uncomment the following line if you want to disable marking untracked files +# under VCS as dirty. This makes repository status check for large repositories +# much, much faster. +# DISABLE_UNTRACKED_FILES_DIRTY="true" + +# 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: +# "mm/dd/yyyy"|"dd.mm.yyyy"|"yyyy-mm-dd" +# or set a custom format using the strftime function format specifications, +# see 'man strftime' for details. +# HIST_STAMPS="mm/dd/yyyy" + +# Would you like to use another custom folder than $ZSH/custom? +# ZSH_CUSTOM=/path/to/new-custom-folder + +# Which plugins would you like to load? +# Standard plugins can be found in $ZSH/plugins/ +# Custom plugins may be added to $ZSH_CUSTOM/plugins/ +# Example format: plugins=(rails git textmate ruby lighthouse) +# Add wisely, as too many plugins slow down shell startup +# plugins=(git zsh-autosuggestions) + +source $ZSH/oh-my-zsh.sh + +# User configuration + +# export MANPATH="/usr/local/man:$MANPATH" + +# You may need to manually set your language environment +# export LANG=en_US.UTF-8 + +# Preferred editor for local and remote sessions +# if [[ -n $SSH_CONNECTION ]]; then +# export EDITOR='vim' +# else +# export EDITOR='mvim' +# fi + +# Compilation flags +# export ARCHFLAGS="-arch x86_64" +plugins=(zsh_codex) +zle -N create_completion +bindkey '^X' create_completion +# Set personal aliases, overriding those provided by oh-my-zsh libs, +# plugins, and themes. Aliases can be placed here, though oh-my-zsh +# users are encouraged to define aliases within the ZSH_CUSTOM folder. +# For a full list of active aliases, run `alias`. +# +# Example aliases +# alias zshconfig="mate ~/.zshrc" +# alias ohmyzsh="mate ~/.oh-my-zsh" +export EDITOR='emacs -nw' + +#alias discord='discord --no-sandbox' +#alias em='emacs -nw' +#alias ssh="kitty +kitten ssh" +#alias icat="kitty +kitten icat" +alias cat="bat" +alias ls='lsd -A' +alias uploadsc='(cd ~/Pictures/ScreenshotsSHORTCUT && exec pb $(ls -Art | tail -n 1))' +alias connectssh='shuttle -HN --dns -r gallant@35.188.39.50' + +source /usr/local/share/zsh-autosuggestions/zsh-autosuggestions.zsh diff --git a/configmac/README.md b/configmac/README.md new file mode 100644 index 0000000..08f8c20 --- /dev/null +++ b/configmac/README.md @@ -0,0 +1,3 @@ +gonna be honest here, i just copy and pasted here, if it doesn't work then make a issue please + +for ease of access, i just decided to put my `ls /fontfolder/` here to make searching for the fonts easier diff --git a/configmac/fonts.txt b/configmac/fonts.txt new file mode 100644 index 0000000..846b31b --- /dev/null +++ b/configmac/fonts.txt @@ -0,0 +1,231 @@ +all-the-icons.ttf +azuki.ttf +azukiB.ttf +azukiP.ttf +Blex Mono Bold Italic Nerd Font Complete Mono Windows Compatible.ttf +Blex Mono Bold Italic Nerd Font Complete Mono.ttf +Blex Mono Bold Italic Nerd Font Complete Windows Compatible.ttf +Blex Mono Bold Italic Nerd Font Complete.ttf +Blex Mono Bold Nerd Font Complete Mono Windows Compatible.ttf +Blex Mono Bold Nerd Font Complete Mono.ttf +Blex Mono Bold Nerd Font Complete Windows Compatible.ttf +Blex Mono Bold Nerd Font Complete.ttf +Blex Mono ExtraLight Italic Nerd Font Complete Mono Windows Compatible.ttf +Blex Mono ExtraLight Italic Nerd Font Complete Mono.ttf +Blex Mono ExtraLight Italic Nerd Font Complete Windows Compatible.ttf +Blex Mono ExtraLight Italic Nerd Font Complete.ttf +Blex Mono ExtraLight Nerd Font Complete Mono Windows Compatible.ttf +Blex Mono ExtraLight Nerd Font Complete Mono.ttf +Blex Mono ExtraLight Nerd Font Complete Windows Compatible.ttf +Blex Mono ExtraLight Nerd Font Complete.ttf +Blex Mono Italic Nerd Font Complete Mono Windows Compatible.ttf +Blex Mono Italic Nerd Font Complete Mono.ttf +Blex Mono Italic Nerd Font Complete Windows Compatible.ttf +Blex Mono Italic Nerd Font Complete.ttf +Blex Mono Light Italic Nerd Font Complete Mono Windows Compatible.ttf +Blex Mono Light Italic Nerd Font Complete Mono.ttf +Blex Mono Light Italic Nerd Font Complete Windows Compatible.ttf +Blex Mono Light Italic Nerd Font Complete.ttf +Blex Mono Light Nerd Font Complete Mono Windows Compatible.ttf +Blex Mono Light Nerd Font Complete Mono.ttf +Blex Mono Light Nerd Font Complete Windows Compatible.ttf +Blex Mono Light Nerd Font Complete.ttf +Blex Mono Medium Italic Nerd Font Complete Mono Windows Compatible.ttf +Blex Mono Medium Italic Nerd Font Complete Mono.ttf +Blex Mono Medium Italic Nerd Font Complete Windows Compatible.ttf +Blex Mono Medium Italic Nerd Font Complete.ttf +Blex Mono Medium Nerd Font Complete Mono Windows Compatible.ttf +Blex Mono Medium Nerd Font Complete Mono.ttf +Blex Mono Medium Nerd Font Complete Windows Compatible.ttf +Blex Mono Medium Nerd Font Complete.ttf +Blex Mono Nerd Font Complete Mono Windows Compatible.ttf +Blex Mono Nerd Font Complete Mono.ttf +Blex Mono Nerd Font Complete Windows Compatible.ttf +Blex Mono Nerd Font Complete.ttf +Blex Mono SemiBold Italic Nerd Font Complete Mono Windows Compatible.ttf +Blex Mono SemiBold Italic Nerd Font Complete Mono.ttf +Blex Mono SemiBold Italic Nerd Font Complete Windows Compatible.ttf +Blex Mono SemiBold Italic Nerd Font Complete.ttf +Blex Mono SemiBold Nerd Font Complete Mono Windows Compatible.ttf +Blex Mono SemiBold Nerd Font Complete Mono.ttf +Blex Mono SemiBold Nerd Font Complete Windows Compatible.ttf +Blex Mono SemiBold Nerd Font Complete.ttf +Blex Mono Text Italic Nerd Font Complete Mono Windows Compatible.ttf +Blex Mono Text Italic Nerd Font Complete Mono.ttf +Blex Mono Text Italic Nerd Font Complete Windows Compatible.ttf +Blex Mono Text Italic Nerd Font Complete.ttf +Blex Mono Text Nerd Font Complete Mono Windows Compatible.ttf +Blex Mono Text Nerd Font Complete Mono.ttf +Blex Mono Text Nerd Font Complete Windows Compatible.ttf +Blex Mono Text Nerd Font Complete.ttf +Blex Mono Thin Italic Nerd Font Complete Mono Windows Compatible.ttf +Blex Mono Thin Italic Nerd Font Complete Mono.ttf +Blex Mono Thin Italic Nerd Font Complete Windows Compatible.ttf +Blex Mono Thin Italic Nerd Font Complete.ttf +Blex Mono Thin Nerd Font Complete Mono Windows Compatible.ttf +Blex Mono Thin Nerd Font Complete Mono.ttf +Blex Mono Thin Nerd Font Complete Windows Compatible.ttf +Blex Mono Thin Nerd Font Complete.ttf +encodings.dir +file-icons.ttf +Fira Code Bold Nerd Font Complete Mono Windows Compatible.ttf +Fira Code Bold Nerd Font Complete Mono.ttf +Fira Code Bold Nerd Font Complete Windows Compatible.ttf +Fira Code Bold Nerd Font Complete.ttf +Fira Code Light Nerd Font Complete Mono Windows Compatible.ttf +Fira Code Light Nerd Font Complete Mono.ttf +Fira Code Light Nerd Font Complete Windows Compatible.ttf +Fira Code Light Nerd Font Complete.ttf +Fira Code Medium Nerd Font Complete Mono Windows Compatible.ttf +Fira Code Medium Nerd Font Complete Mono.ttf +Fira Code Medium Nerd Font Complete Windows Compatible.ttf +Fira Code Medium Nerd Font Complete.ttf +Fira Code Regular Nerd Font Complete Mono Windows Compatible.ttf +Fira Code Regular Nerd Font Complete Mono.ttf +Fira Code Regular Nerd Font Complete Windows Compatible.ttf +Fira Code Regular Nerd Font Complete.ttf +Fira Code Retina Nerd Font Complete Mono Windows Compatible.ttf +Fira Code Retina Nerd Font Complete Mono.ttf +Fira Code Retina Nerd Font Complete Windows Compatible.ttf +Fira Code Retina Nerd Font Complete.ttf +Fira Code SemiBold Nerd Font Complete Mono Windows Compatible.ttf +Fira Code SemiBold Nerd Font Complete Mono.ttf +Fira Code SemiBold Nerd Font Complete Windows Compatible.ttf +Fira Code SemiBold Nerd Font Complete.ttf +Font Awesome 6 Brands-Regular-400.otf +Font Awesome 6 Duotone-Solid-900.otf +Font Awesome 6 Free-Regular-400.otf +Font Awesome 6 Free-Solid-900.otf +Font Awesome 6 Pro-Light-300.otf +Font Awesome 6 Pro-Regular-400.otf +Font Awesome 6 Pro-Solid-900.otf +Font Awesome 6 Pro-Thin-100.otf +fontawesome.ttf +fonts.dir +fonts.list +fonts.scale +Hack Bold Italic Nerd Font Complete Mono.ttf +Hack Bold Italic Nerd Font Complete.ttf +Hack Bold Nerd Font Complete Mono.ttf +Hack Bold Nerd Font Complete.ttf +Hack Italic Nerd Font Complete Mono.ttf +Hack Italic Nerd Font Complete.ttf +Hack Regular Nerd Font Complete Mono.ttf +Hack Regular Nerd Font Complete.ttf +icomoon-feather.ttf +icomoon_Regular.ttf +iconic.ttf +Iosevka Bold Italic Nerd Font Complete Mono.ttf +Iosevka Bold Italic Nerd Font Complete.ttf +Iosevka Bold Nerd Font Complete Mono.ttf +Iosevka Bold Nerd Font Complete.ttf +Iosevka Bold Oblique Nerd Font Complete Mono.ttf +Iosevka Bold Oblique Nerd Font Complete.ttf +Iosevka Extralight Italic Nerd Font Complete Mono.ttf +Iosevka Extralight Italic Nerd Font Complete.ttf +Iosevka Extralight Nerd Font Complete Mono.ttf +Iosevka Extralight Nerd Font Complete.ttf +Iosevka Extralight Oblique Nerd Font Complete Mono.ttf +Iosevka Extralight Oblique Nerd Font Complete.ttf +Iosevka Heavy Italic Nerd Font Complete Mono.ttf +Iosevka Heavy Italic Nerd Font Complete.ttf +Iosevka Heavy Nerd Font Complete Mono.ttf +Iosevka Heavy Nerd Font Complete.ttf +Iosevka Heavy Oblique Nerd Font Complete Mono.ttf +Iosevka Heavy Oblique Nerd Font Complete.ttf +Iosevka Italic Nerd Font Complete Mono.ttf +Iosevka Italic Nerd Font Complete.ttf +Iosevka Light Italic Nerd Font Complete Mono.ttf +Iosevka Light Italic Nerd Font Complete.ttf +Iosevka Light Nerd Font Complete Mono.ttf +Iosevka Light Nerd Font Complete.ttf +Iosevka Light Oblique Nerd Font Complete Mono.ttf +Iosevka Light Oblique Nerd Font Complete.ttf +Iosevka Medium Italic Nerd Font Complete Mono.ttf +Iosevka Medium Italic Nerd Font Complete.ttf +Iosevka Medium Nerd Font Complete Mono.ttf +Iosevka Medium Nerd Font Complete.ttf +Iosevka Medium Oblique Nerd Font Complete Mono.ttf +Iosevka Medium Oblique Nerd Font Complete.ttf +Iosevka Nerd Font Complete Mono.ttf +Iosevka Nerd Font Complete.ttf +Iosevka Oblique Nerd Font Complete Mono.ttf +Iosevka Oblique Nerd Font Complete.ttf +Iosevka Term Bold Italic Nerd Font Complete Mono.ttf +Iosevka Term Bold Italic Nerd Font Complete.ttf +Iosevka Term Bold Nerd Font Complete Mono.ttf +Iosevka Term Bold Nerd Font Complete.ttf +Iosevka Term Bold Oblique Nerd Font Complete Mono.ttf +Iosevka Term Bold Oblique Nerd Font Complete.ttf +Iosevka Term Extralight Italic Nerd Font Complete Mono.ttf +Iosevka Term Extralight Italic Nerd Font Complete.ttf +Iosevka Term Extralight Nerd Font Complete Mono.ttf +Iosevka Term Extralight Nerd Font Complete.ttf +Iosevka Term Extralight Oblique Nerd Font Complete Mono.ttf +Iosevka Term Extralight Oblique Nerd Font Complete.ttf +Iosevka Term Heavy Italic Nerd Font Complete Mono.ttf +Iosevka Term Heavy Italic Nerd Font Complete.ttf +Iosevka Term Heavy Nerd Font Complete Mono.ttf +Iosevka Term Heavy Nerd Font Complete.ttf +Iosevka Term Heavy Oblique Nerd Font Complete Mono.ttf +Iosevka Term Heavy Oblique Nerd Font Complete.ttf +Iosevka Term Italic Nerd Font Complete Mono.ttf +Iosevka Term Italic Nerd Font Complete.ttf +Iosevka Term Light Italic Nerd Font Complete Mono.ttf +Iosevka Term Light Italic Nerd Font Complete.ttf +Iosevka Term Light Nerd Font Complete Mono.ttf +Iosevka Term Light Nerd Font Complete.ttf +Iosevka Term Light Oblique Nerd Font Complete Mono.ttf +Iosevka Term Light Oblique Nerd Font Complete.ttf +Iosevka Term Medium Italic Nerd Font Complete Mono.ttf +Iosevka Term Medium Italic Nerd Font Complete.ttf +Iosevka Term Medium Nerd Font Complete Mono.ttf +Iosevka Term Medium Nerd Font Complete.ttf +Iosevka Term Medium Oblique Nerd Font Complete Mono.ttf +Iosevka Term Medium Oblique Nerd Font Complete.ttf +Iosevka Term Nerd Font Complete Mono.ttf +Iosevka Term Nerd Font Complete.ttf +Iosevka Term Oblique Nerd Font Complete Mono.ttf +Iosevka Term Oblique Nerd Font Complete.ttf +Iosevka Term Thin Italic Nerd Font Complete Mono.ttf +Iosevka Term Thin Italic Nerd Font Complete.ttf +Iosevka Term Thin Nerd Font Complete Mono.ttf +Iosevka Term Thin Nerd Font Complete.ttf +Iosevka Term Thin Oblique Nerd Font Complete Mono.ttf +Iosevka Term Thin Oblique Nerd Font Complete.ttf +Iosevka Thin Italic Nerd Font Complete Mono.ttf +Iosevka Thin Italic Nerd Font Complete.ttf +Iosevka Thin Nerd Font Complete Mono.ttf +Iosevka Thin Nerd Font Complete.ttf +Iosevka Thin Oblique Nerd Font Complete Mono.ttf +Iosevka Thin Oblique Nerd Font Complete.ttf +iosevka-bold.ttc +iosevka-extrabold.ttc +iosevka-extralight.ttc +iosevka-heavy.ttc +iosevka-light.ttc +iosevka-medium.ttc +iosevka-regular.ttc +iosevka-semibold.ttc +iosevka-thin.ttc +material-design-icons.ttf +MaterialIcons-Regular.ttf +MaterialIconsOutlined-Regular.otf +MaterialIconsRound-Regular.otf +MaterialIconsSharp-Regular.otf +MaterialIconsTwoTone-Regular.otf +octicons.ttf +remix.ttf +Roboto-Black.ttf +Roboto-BlackItalic.ttf +Roboto-Bold.ttf +Roboto-BoldItalic.ttf +Roboto-Italic.ttf +Roboto-Light.ttf +Roboto-LightItalic.ttf +Roboto-Medium.ttf +Roboto-MediumItalic.ttf +Roboto-Regular.ttf +Roboto-Thin.ttf +Roboto-ThinItalic.ttf +weathericons.ttf diff --git a/configmac/iterm2/AppSupport/SavedState/lock b/configmac/iterm2/AppSupport/SavedState/lock new file mode 100644 index 0000000..e69de29 diff --git a/configmac/iterm2/AppSupport/SavedState/restorable-state.sqlite b/configmac/iterm2/AppSupport/SavedState/restorable-state.sqlite new file mode 100644 index 0000000..5dd9888 Binary files /dev/null and b/configmac/iterm2/AppSupport/SavedState/restorable-state.sqlite differ diff --git a/configmac/iterm2/AppSupport/SavedState/restorable-state.sqlite-shm b/configmac/iterm2/AppSupport/SavedState/restorable-state.sqlite-shm new file mode 100644 index 0000000..d1e5c78 Binary files /dev/null and b/configmac/iterm2/AppSupport/SavedState/restorable-state.sqlite-shm differ diff --git a/configmac/iterm2/AppSupport/SavedState/restorable-state.sqlite-wal b/configmac/iterm2/AppSupport/SavedState/restorable-state.sqlite-wal new file mode 100644 index 0000000..e69de29 diff --git a/configmac/iterm2/AppSupport/iTermServer-3.4.15 b/configmac/iterm2/AppSupport/iTermServer-3.4.15 new file mode 100755 index 0000000..751ad3b Binary files /dev/null and b/configmac/iterm2/AppSupport/iTermServer-3.4.15 differ diff --git a/configmac/iterm2/AppSupport/iTermServer-3.4.16 b/configmac/iterm2/AppSupport/iTermServer-3.4.16 new file mode 100755 index 0000000..ce78011 Binary files /dev/null and b/configmac/iterm2/AppSupport/iTermServer-3.4.16 differ diff --git a/configmac/iterm2/AppSupport/iTermServer-3.4.18 b/configmac/iterm2/AppSupport/iTermServer-3.4.18 new file mode 100755 index 0000000..ee01648 Binary files /dev/null and b/configmac/iterm2/AppSupport/iTermServer-3.4.18 differ diff --git a/configmac/iterm2/AppSupport/iterm2-daemon-1.socket.lock b/configmac/iterm2/AppSupport/iterm2-daemon-1.socket.lock new file mode 100644 index 0000000..e69de29 diff --git a/configmac/iterm2/AppSupport/parsers/753940570034705db2b7c35a66c82b4153119b129e3cbfc5a0bd0d05e1bc0976 b/configmac/iterm2/AppSupport/parsers/753940570034705db2b7c35a66c82b4153119b129e3cbfc5a0bd0d05e1bc0976 new file mode 100644 index 0000000..575d4bc Binary files /dev/null and b/configmac/iterm2/AppSupport/parsers/753940570034705db2b7c35a66c82b4153119b129e3cbfc5a0bd0d05e1bc0976 differ diff --git a/configmac/iterm2/AppSupport/parsers/767e05bb32ca0721fd9ddd46bd7fa6a31c54fb8d0e9523ec97c45cdc55e675db b/configmac/iterm2/AppSupport/parsers/767e05bb32ca0721fd9ddd46bd7fa6a31c54fb8d0e9523ec97c45cdc55e675db new file mode 100644 index 0000000..b0c798c Binary files /dev/null and b/configmac/iterm2/AppSupport/parsers/767e05bb32ca0721fd9ddd46bd7fa6a31c54fb8d0e9523ec97c45cdc55e675db differ diff --git a/configmac/iterm2/AppSupport/parsers/8564005a2442ab34eb199e2fca2ee16d349b5cce53dc874c7439195a1314e0b9 b/configmac/iterm2/AppSupport/parsers/8564005a2442ab34eb199e2fca2ee16d349b5cce53dc874c7439195a1314e0b9 new file mode 100644 index 0000000..95c1819 Binary files /dev/null and b/configmac/iterm2/AppSupport/parsers/8564005a2442ab34eb199e2fca2ee16d349b5cce53dc874c7439195a1314e0b9 differ diff --git a/configmac/iterm2/AppSupport/parsers/85dfcf6f3e327cf4cba1b2c2e0b0e9034c1657b158c125fa4969cb1dfb7fe069 b/configmac/iterm2/AppSupport/parsers/85dfcf6f3e327cf4cba1b2c2e0b0e9034c1657b158c125fa4969cb1dfb7fe069 new file mode 100644 index 0000000..73502c2 Binary files /dev/null and b/configmac/iterm2/AppSupport/parsers/85dfcf6f3e327cf4cba1b2c2e0b0e9034c1657b158c125fa4969cb1dfb7fe069 differ diff --git a/configmac/iterm2/AppSupport/parsers/a4083865c238cfafe84ea863dee7da51d6a9b4551fa14c2de4eadb18a732882e b/configmac/iterm2/AppSupport/parsers/a4083865c238cfafe84ea863dee7da51d6a9b4551fa14c2de4eadb18a732882e new file mode 100644 index 0000000..f2dc1e9 Binary files /dev/null and b/configmac/iterm2/AppSupport/parsers/a4083865c238cfafe84ea863dee7da51d6a9b4551fa14c2de4eadb18a732882e differ diff --git a/configmac/iterm2/AppSupport/parsers/d2ba5f33144c8b5daec6ee1f9852db010d1793e88a3e92fe872c6638f10616d0 b/configmac/iterm2/AppSupport/parsers/d2ba5f33144c8b5daec6ee1f9852db010d1793e88a3e92fe872c6638f10616d0 new file mode 100644 index 0000000..6ae83da Binary files /dev/null and b/configmac/iterm2/AppSupport/parsers/d2ba5f33144c8b5daec6ee1f9852db010d1793e88a3e92fe872c6638f10616d0 differ diff --git a/configmac/iterm2/AppSupport/version.txt b/configmac/iterm2/AppSupport/version.txt new file mode 100644 index 0000000..ccafd73 --- /dev/null +++ b/configmac/iterm2/AppSupport/version.txt @@ -0,0 +1 @@ +3.4.18 \ No newline at end of file diff --git a/configmac/sketchybar/.DS_Store b/configmac/sketchybar/.DS_Store new file mode 100644 index 0000000..78ba8f8 Binary files /dev/null and b/configmac/sketchybar/.DS_Store differ diff --git a/configmac/sketchybar/colors.sh b/configmac/sketchybar/colors.sh new file mode 100755 index 0000000..6ddc144 --- /dev/null +++ b/configmac/sketchybar/colors.sh @@ -0,0 +1,29 @@ +#!/usr/bin/env sh + +# Color Palette +export BLACK=0xff181926 +export WHITE=0xffD9D7D6 +export RED=0xffed8796 +export GREEN=0xffcad3f5 +export BLUE=0xff8aadf4 +export YELLOW=0xffeed49f +export ORANGE=0xfff5a97f +export MAGENTA=0xffc6a0f6 +export GREY=0xff939ab7 +export TRANSPARENT=0x00000000 + +# General bar colors +#export BAR_COLOR=0xcc24273a +#131e22 +#export BAR_COLOR=0xff2a2f38 #grey +export BAR_COLOR=0xff131E22 +export ICON_COLOR=$WHITE # Color of all icons +export LABEL_COLOR=$WHITE # Color of all labels +export SPACE_BACKGROUND=0xFF242831 +export OPEN_APPS_BACKGROUND=0xff494d64 +export CALENDAR_BACKGROUND=0xFF242831 + +export POPUP_BACKGROUND_COLOR=$BLACK +export POPUP_BORDER_COLOR=$WHITE + +export SHADOW_COLOR=$BLACK diff --git a/configmac/sketchybar/helper/clock.h b/configmac/sketchybar/helper/clock.h new file mode 100644 index 0000000..ed3fe4e --- /dev/null +++ b/configmac/sketchybar/helper/clock.h @@ -0,0 +1,23 @@ +#include +#include + +struct clock { + char command[128]; +}; + +static inline void clock_init(struct clock* clock) { + snprintf(clock->command, 128, ""); +} + +static inline void clock_update(struct clock* clock) { + time_t t = time(NULL); + struct tm* tm = localtime(&t); + + char time[8]; + strftime(time, 8, "%H:%M", tm); + + char date[16]; + strftime(date, 16, "%a %d. %b", tm); + + snprintf(clock->command, 128, "--set calendar icon=\"%s\" label=\"%s\"", date, time); +} diff --git a/configmac/sketchybar/helper/cpu.h b/configmac/sketchybar/helper/cpu.h new file mode 100644 index 0000000..fa200fe --- /dev/null +++ b/configmac/sketchybar/helper/cpu.h @@ -0,0 +1,118 @@ +#include +#include +#include +#include +#include +#include + +static const char TOPPROC[32] = { "/bin/ps -Aceo pid,pcpu,comm -r" }; +static const char FILTER_PATTERN[16] = { "com.apple." }; + +struct cpu { + host_t host; + mach_msg_type_number_t count; + host_cpu_load_info_data_t load; + host_cpu_load_info_data_t prev_load; + bool has_prev_load; + + char command[256]; +}; + +static inline void cpu_init(struct cpu* cpu) { + cpu->host = mach_host_self(); + cpu->count = HOST_CPU_LOAD_INFO_COUNT; + cpu->has_prev_load = false; + snprintf(cpu->command, 100, ""); +} + +static inline void cpu_update(struct cpu* cpu) { + kern_return_t error = host_statistics(cpu->host, + HOST_CPU_LOAD_INFO, + (host_info_t)&cpu->load, + &cpu->count ); + + if (error != KERN_SUCCESS) { + printf("Error: Could not read cpu host statistics.\n"); + return; + } + + if (cpu->has_prev_load) { + uint32_t delta_user = cpu->load.cpu_ticks[CPU_STATE_USER] + - cpu->prev_load.cpu_ticks[CPU_STATE_USER]; + + uint32_t delta_system = cpu->load.cpu_ticks[CPU_STATE_SYSTEM] + - cpu->prev_load.cpu_ticks[CPU_STATE_SYSTEM]; + + uint32_t delta_idle = cpu->load.cpu_ticks[CPU_STATE_IDLE] + - cpu->prev_load.cpu_ticks[CPU_STATE_IDLE]; + + double user_perc = (double)delta_user / (double)(delta_system + + delta_user + + delta_idle); + + double sys_perc = (double)delta_system / (double)(delta_system + + delta_user + + delta_idle); + + double total_perc = user_perc + sys_perc; + + FILE* file; + char line[1024]; + + file = popen(TOPPROC, "r"); + if (!file) { + printf("Error: TOPPROC command errored out...\n" ); + return; + } + + fgets(line, sizeof(line), file); + fgets(line, sizeof(line), file); + + char* start = strstr(line, FILTER_PATTERN); + char topproc[32]; + uint32_t caret = 0; + for (int i = 0; i < sizeof(line); i++) { + if (start && i == start - line) { + i+=9; + continue; + } + + if (i > 29) break; + if (i > 27) { + topproc[caret++] = '.'; + continue; + } + topproc[caret++] = line[i]; + if (line[i] == '\0') break; + } + + pclose(file); + + char color[16]; + if (total_perc >= .7) { + snprintf(color, 16, "%s", getenv("RED")); + } else if (total_perc >= .3) { + snprintf(color, 16, "%s", getenv("ORANGE")); + } else if (total_perc >= .1) { + snprintf(color, 16, "%s", getenv("YELLOW")); + } else { + snprintf(color, 16, "%s", getenv("LABEL_COLOR")); + } + + snprintf(cpu->command, 256, "--push cpu.sys %.2f " + "--push cpu.user %.2f " + "--set cpu.percent label=%.0f%% label.color=%s " + "--set cpu.top label=\"%s\"", + sys_perc, + user_perc, + total_perc*100., + color, + topproc ); + } + else { + snprintf(cpu->command, 256, ""); + } + + cpu->prev_load = cpu->load; + cpu->has_prev_load = true; +} diff --git a/configmac/sketchybar/helper/helper b/configmac/sketchybar/helper/helper new file mode 100755 index 0000000..2f60d2b Binary files /dev/null and b/configmac/sketchybar/helper/helper differ diff --git a/configmac/sketchybar/helper/helper.c b/configmac/sketchybar/helper/helper.c new file mode 100644 index 0000000..c430afd --- /dev/null +++ b/configmac/sketchybar/helper/helper.c @@ -0,0 +1,59 @@ +#include "cpu.h" +#include "clock.h" +#include "sketchybar.h" + +struct cpu g_cpu; +struct clock g_clock; + +void handler(env env) { + // Environment variables passed from sketchybar can be accessed as seen below + char* name = env_get_value_for_key(env, "NAME"); + char* sender = env_get_value_for_key(env, "SENDER"); + char* info = env_get_value_for_key(env, "INFO"); + char* selected = env_get_value_for_key(env, "SELECTED"); + + if (selected && strlen(selected) > 0) { + // Space items + char* width; + if (strcmp(selected, "true") == 0) { + width = "0"; + } else { + width = "dynamic"; + } + char command[256]; + snprintf(command, 256, "--animate tanh 20 --set %s icon.highlight=%s label.width=%s", name, selected, width); + sketchybar(command); + } + else if (strcmp(sender, "front_app_switched") == 0) { + // front_app item + char command[256]; + + snprintf(command, 256, "--set %s label=\"%s\"", name, info); + sketchybar(command); + } + else if ((strcmp(sender, "routine") == 0) + || (strcmp(sender, "forced") == 0)) { + // CPU and Clock routine updates + cpu_update(&g_cpu); + clock_update(&g_clock); + + if (strlen(g_cpu.command) > 0 && strlen(g_clock.command) > 0) { + char command[512]; + snprintf(command, 512, "%s %s", g_cpu.command, g_clock.command); + sketchybar(command); + } + } +} + +int main (int argc, char** argv) { + cpu_init(&g_cpu); + clock_init(&g_clock); + + if (argc < 2) { + printf("Usage: provider \"\"\n"); + exit(1); + } + + event_server_begin(handler, argv[1]); + return 0; +} diff --git a/configmac/sketchybar/helper/makefile b/configmac/sketchybar/helper/makefile new file mode 100644 index 0000000..59eb176 --- /dev/null +++ b/configmac/sketchybar/helper/makefile @@ -0,0 +1,3 @@ + +helper: helper.c cpu.h clock.h sketchybar.h + clang -std=c17 -O3 helper.c -o helper diff --git a/configmac/sketchybar/helper/sketchybar.h b/configmac/sketchybar/helper/sketchybar.h new file mode 100644 index 0000000..82da2f6 --- /dev/null +++ b/configmac/sketchybar/helper/sketchybar.h @@ -0,0 +1,227 @@ +#pragma once + +#include +#include +#include +#include +#include +#include + +typedef char* env; + +#define MACH_HANDLER(name) void name(env env) +typedef MACH_HANDLER(mach_handler); + +struct mach_message { + mach_msg_header_t header; + mach_msg_size_t msgh_descriptor_count; + mach_msg_ool_descriptor_t descriptor; +}; + +struct mach_buffer { + struct mach_message message; + mach_msg_trailer_t trailer; +}; + +struct mach_server { + bool is_running; + mach_port_name_t task; + mach_port_t port; + mach_port_t bs_port; + + pthread_t thread; + mach_handler* handler; +}; + +static struct mach_server g_mach_server; +static mach_port_t g_mach_port = 0; + +static inline char* env_get_value_for_key(env env, char* key) { + uint32_t caret = 0; + for(;;) { + if (!env[caret]) break; + if (strcmp(&env[caret], key) == 0) + return &env[caret + strlen(&env[caret]) + 1]; + + caret += strlen(&env[caret]) + + strlen(&env[caret + strlen(&env[caret]) + 1]) + + 2; + } + return (char*)""; +} + +static inline mach_port_t mach_get_bs_port() { + mach_port_name_t task = mach_task_self(); + + mach_port_t bs_port; + if (task_get_special_port(task, + TASK_BOOTSTRAP_PORT, + &bs_port ) != KERN_SUCCESS) { + return 0; + } + + mach_port_t port; + if (bootstrap_look_up(bs_port, + "git.felix.sketchybar", + &port ) != KERN_SUCCESS) { + return 0; + } + + return port; +} + +static inline void mach_receive_message(mach_port_t port, struct mach_buffer* buffer, bool timeout) { + *buffer = (struct mach_buffer) { 0 }; + mach_msg_return_t msg_return; + if (timeout) + msg_return = mach_msg(&buffer->message.header, + MACH_RCV_MSG | MACH_RCV_TIMEOUT, + 0, + sizeof(struct mach_buffer), + port, + 100, + MACH_PORT_NULL ); + else + msg_return = mach_msg(&buffer->message.header, + MACH_RCV_MSG, + 0, + sizeof(struct mach_buffer), + port, + MACH_MSG_TIMEOUT_NONE, + MACH_PORT_NULL ); + + if (msg_return != MACH_MSG_SUCCESS) { + buffer->message.descriptor.address = NULL; + } +} + +static inline char* mach_send_message(mach_port_t port, char* message, uint32_t len) { + if (!message || !port) { + return NULL; + } + + mach_port_t response_port; + mach_port_name_t task = mach_task_self(); + if (mach_port_allocate(task, MACH_PORT_RIGHT_RECEIVE, + &response_port ) != KERN_SUCCESS) { + return NULL; + } + + if (mach_port_insert_right(task, response_port, + response_port, + MACH_MSG_TYPE_MAKE_SEND)!= KERN_SUCCESS) { + return NULL; + } + + struct mach_message msg = { 0 }; + msg.header.msgh_remote_port = port; + msg.header.msgh_local_port = response_port; + msg.header.msgh_id = response_port; + msg.header.msgh_bits = MACH_MSGH_BITS_SET(MACH_MSG_TYPE_COPY_SEND, + MACH_MSG_TYPE_MAKE_SEND, + 0, + MACH_MSGH_BITS_COMPLEX ); + + msg.header.msgh_size = sizeof(struct mach_message); + msg.msgh_descriptor_count = 1; + msg.descriptor.address = message; + msg.descriptor.size = len * sizeof(char); + msg.descriptor.copy = MACH_MSG_VIRTUAL_COPY; + msg.descriptor.deallocate = false; + msg.descriptor.type = MACH_MSG_OOL_DESCRIPTOR; + + mach_msg(&msg.header, + MACH_SEND_MSG, + sizeof(struct mach_message), + 0, + MACH_PORT_NULL, + MACH_MSG_TIMEOUT_NONE, + MACH_PORT_NULL ); + + struct mach_buffer buffer = { 0 }; + mach_receive_message(response_port, &buffer, true); + if (buffer.message.descriptor.address) + return (char*)buffer.message.descriptor.address; + mach_msg_destroy(&buffer.message.header); + + return NULL; +} + +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated-declarations" +static inline bool mach_server_begin(struct mach_server* mach_server, mach_handler handler, char* bootstrap_name) { + mach_server->task = mach_task_self(); + + if (mach_port_allocate(mach_server->task, + MACH_PORT_RIGHT_RECEIVE, + &mach_server->port ) != KERN_SUCCESS) { + return false; + } + + if (mach_port_insert_right(mach_server->task, + mach_server->port, + mach_server->port, + MACH_MSG_TYPE_MAKE_SEND) != KERN_SUCCESS) { + return false; + } + + if (task_get_special_port(mach_server->task, + TASK_BOOTSTRAP_PORT, + &mach_server->bs_port) != KERN_SUCCESS) { + return false; + } + + if (bootstrap_register(mach_server->bs_port, + bootstrap_name, + mach_server->port ) != KERN_SUCCESS) { + return false; + } + + mach_server->handler = handler; + mach_server->is_running = true; + while (mach_server->is_running) { + struct mach_buffer* buffer = (struct mach_buffer*)malloc(sizeof(struct mach_buffer)); + mach_receive_message(mach_server->port, buffer, false); + mach_server->handler((env)buffer->message.descriptor.address); + mach_msg_destroy(&buffer->message.header); + } + + return true; +} +#pragma clang diagnostic pop + +static inline char* sketchybar(char* message) { + uint32_t message_length = strlen(message) + 1; + char formatted_message[message_length + 1]; + + char quote = '\0'; + uint32_t caret = 0; + for (int i = 0; i < message_length; ++i) { + if (message[i] == '"' || message[i] == '\'') { + if (quote == message[i]) quote = '\0'; + else quote = message[i]; + continue; + } + formatted_message[caret] = message[i]; + if (message[i] == ' ' && !quote) formatted_message[caret] = '\0'; + caret++; + } + + if (caret > 0 && formatted_message[caret] == '\0' + && formatted_message[caret - 1] == '\0') { + caret--; + } + + formatted_message[caret] = '\0'; + if (!g_mach_port) g_mach_port = mach_get_bs_port(); + char* response = mach_send_message(g_mach_port, + formatted_message, + caret + 1 ); + + if (response) return response; + else return (char*)""; +} + +static inline void event_server_begin(mach_handler event_handler, char* bootstrap_name) { + mach_server_begin(&g_mach_server, event_handler, bootstrap_name); +} diff --git a/configmac/sketchybar/icons.sh b/configmac/sketchybar/icons.sh new file mode 100755 index 0000000..65a7961 --- /dev/null +++ b/configmac/sketchybar/icons.sh @@ -0,0 +1,31 @@ +#!/usr/bin/env sh + +# General Icons +LOADING=􀖇 +APPLE=􀣺 +PREFERENCES=􀺽 +ACTIVITY=􀒓 +LOCK=􀒳 +BELL=􀋚 +BELL_DOT=􀝗 + +# Git Icons +GIT_ISSUE=􀍷 +GIT_DISCUSSION=􀒤 +GIT_PULL_REQUEST=􀙡 +GIT_COMMIT=􀡚 +GIT_INDICATOR=􀂓 + +# Spotify Icons +SPOTIFY_BACK=􀊎 +SPOTIFY_PLAY_PAUSE=􀊈 +SPOTIFY_NEXT=􀊐 +SPOTIFY_SHUFFLE=􀊝 +SPOTIFY_REPEAT=􀊞 + +# Yabai Icons +YABAI_STACK=􀏭 +YABAI_FULLSCREEN_ZOOM=􀏜 +YABAI_PARENT_ZOOM=􀥃 +YABAI_FLOAT=􀢌 +YABAI_GRID=􀧍 diff --git a/configmac/sketchybar/items/apple.sh b/configmac/sketchybar/items/apple.sh new file mode 100755 index 0000000..2b7ee1a --- /dev/null +++ b/configmac/sketchybar/items/apple.sh @@ -0,0 +1,32 @@ +#!/usr/bin/env sh + +POPUP_OFF="sketchybar --set apple.logo popup.drawing=off" +POPUP_CLICK_SCRIPT="sketchybar --set \$NAME popup.drawing=toggle" + +sketchybar --add item apple.logo left \ + \ + --set apple.logo icon= \ + icon.font="Font Awesome 6 Pro:Regular:16.0" \ + icon.color=$GREEN \ + background.padding_left=-8 \ + background.padding_right=25 \ + label.drawing=off \ + click_script="$POPUP_CLICK_SCRIPT" \ + \ + --add item apple.prefs popup.apple.logo \ + --set apple.prefs icon=$PREFERENCES \ + label="Preferences" \ + click_script="open -a 'System Preferences'; + $POPUP_OFF" \ + \ + --add item apple.activity popup.apple.logo \ + --set apple.activity icon=$ACTIVITY \ + label="Activity" \ + click_script="open -a 'Activity Monitor'; + $POPUP_OFF"\ + \ + --add item apple.lock popup.apple.logo \ + --set apple.lock icon=$LOCK \ + label="Lock Screen" \ + click_script="pmset displaysleepnow; + $POPUP_OFF" diff --git a/configmac/sketchybar/items/calendar.sh b/configmac/sketchybar/items/calendar.sh new file mode 100755 index 0000000..cb3259e --- /dev/null +++ b/configmac/sketchybar/items/calendar.sh @@ -0,0 +1,16 @@ +#!/usr/bin/env sh + +sketchybar --add item calendar right \ + --set calendar icon=cal \ + icon.color=$WHITE \ + icon.font="$FONT:Black:12.0" \ + icon.padding_left=5 \ + icon.padding_right=5 \ + label.color=$WHITE \ + label.padding_left=5 \ + label.padding_right=5 \ + width=140 \ + align=center \ + background.color=$CALENDAR_BACKGROUND \ + background.height=26 \ + background.corner_radius=11 diff --git a/configmac/sketchybar/items/cpu.sh b/configmac/sketchybar/items/cpu.sh new file mode 100755 index 0000000..9d65c40 --- /dev/null +++ b/configmac/sketchybar/items/cpu.sh @@ -0,0 +1,41 @@ +#!/usr/bin/env sh + +sketchybar --add item cpu.top right \ + --set cpu.top label.font="$FONT:Semibold:7" \ + label=CPU \ + icon.drawing=off \ + width=0 \ + y_offset=6 \ + background.padding_right=23 \ + \ + --add item cpu.percent right \ + --set cpu.percent label.font="$FONT:Heavy:12" \ + label=CPU \ + y_offset=-4 \ + width=40 \ + icon.drawing=off \ + update_freq=2 \ + mach_helper="$HELPER" \ + background.padding_right=20 \ + \ + --add graph cpu.sys right 100 \ + --set cpu.sys width=0 \ + graph.color=$RED \ + graph.fill_color=$RED \ + label.drawing=off \ + icon.drawing=off \ + background.padding_right=20 \ + background.padding_left=10 \ + background.height=30 \ + background.drawing=on \ + background.color=$TRANSPARENT \ + \ + --add graph cpu.user right 100 \ + --set cpu.user graph.color=$BLUE \ + label.drawing=off \ + icon.drawing=off \ + background.padding_right=20 \ + background.padding_left=10 \ + background.height=30 \ + background.drawing=on \ + background.color=$TRANSPARENT diff --git a/configmac/sketchybar/items/front_app.sh b/configmac/sketchybar/items/front_app.sh new file mode 100755 index 0000000..95a6fab --- /dev/null +++ b/configmac/sketchybar/items/front_app.sh @@ -0,0 +1,27 @@ +#!/usr/bin/env sh + +sketchybar --add event window_focus \ + --add event windows_on_spaces \ + --add item system.yabai left \ + --set system.yabai script="$PLUGIN_DIR/yabai.sh" \ + icon.font="$FONT:Bold:16.0" \ + label.drawing=off \ + icon.width=30 \ + icon=$YABAI_GRID \ + icon.color=$GREEN \ + updates=on \ + associated_display=active \ + --subscribe system.yabai window_focus \ + windows_on_spaces \ + mouse.clicked \ + \ + --add item front_app left \ + --set front_app mach_helper="$HELPER" \ + icon.drawing=off \ + background.padding_left=0 \ + background.padding_right=10 \ + label.color=$WHITE \ + label.font="$FONT:Black:12.0" \ + associated_display=active \ + --subscribe front_app front_app_switched + diff --git a/configmac/sketchybar/items/github.sh b/configmac/sketchybar/items/github.sh new file mode 100755 index 0000000..444630d --- /dev/null +++ b/configmac/sketchybar/items/github.sh @@ -0,0 +1,26 @@ +#!/usr/bin/env sh + +sketchybar --add item github.bell right \ + --set github.bell update_freq=180 \ + icon.font="$FONT:Bold:15.0" \ + icon=$BELL \ + icon.color=$BLUE \ + label=$LOADING \ + label.highlight_color=$BLUE \ + background.padding_left=10 \ + popup.align=right \ + script="$PLUGIN_DIR/github.sh" \ + click_script="$POPUP_CLICK_SCRIPT" \ + --subscribe github.bell mouse.entered \ + mouse.exited \ + mouse.exited.global \ + \ + --add item github.template popup.github.bell \ + --set github.template drawing=off \ + background.corner_radius=12 \ + background.padding_left=7 \ + background.padding_right=7 \ + background.color=$BLACK \ + background.drawing=off \ + icon.background.height=2 \ + icon.background.y_offset=-12 diff --git a/configmac/sketchybar/items/spaces.sh b/configmac/sketchybar/items/spaces.sh new file mode 100755 index 0000000..3b2d238 --- /dev/null +++ b/configmac/sketchybar/items/spaces.sh @@ -0,0 +1,40 @@ +#!/usr/bin/env sh + +SPACE_ICONS=("" "" "" "" "" "" "" "") + +sid=0 +for i in "${!SPACE_ICONS[@]}" +do + sid=$(($i+1)) + sketchybar --add space space.$sid left \ + --set space.$sid associated_space=$sid \ + icon=${SPACE_ICONS[i]} \ + icon.padding_left=22 \ + icon.padding_right=22 \ + label.padding_right=33 \ + icon.highlight_color=$RED \ + background.padding_left=-8 \ + background.padding_right=-8 \ + background.height=26 \ + background.corner_radius=9 \ + background.color=$SPACE_BACKGROUND \ + background.drawing=on \ + icon.font="Font Awesome 6 Pro:Regular:16.0" \ + label.background.height=26 \ + label.background.drawing=on \ + label.background.color=$OPEN_APPS_BACKGROUND \ + label.background.corner_radius=9 \ + label.drawing=off \ + script="" \ + mach_helper="$HELPER" \ + click_script="$SPACE_CLICK_SCRIPT" +done + +sketchybar --add item separator left \ + --set separator icon= \ + icon.font="Hack Nerd Font:Regular:16.0" \ + background.padding_left=26 \ + background.padding_right=15 \ + label.drawing=off \ + associated_display=active \ + icon.color=$WHITE diff --git a/configmac/sketchybar/items/spotify.sh b/configmac/sketchybar/items/spotify.sh new file mode 100755 index 0000000..62ff4c9 --- /dev/null +++ b/configmac/sketchybar/items/spotify.sh @@ -0,0 +1,131 @@ +SPOTIFY_EVENT="com.spotify.client.PlaybackStateChanged" +POPUP_SCRIPT="sketchybar -m --set spotify.anchor popup.drawing=toggle" + +sketchybar --add event spotify_change $SPOTIFY_EVENT \ + --add item spotify.anchor center \ + --set spotify.anchor script="$PLUGIN_DIR/spotify.sh" \ + click_script="$POPUP_SCRIPT" \ + width=170 \ + align=left \ + icon.background.drawing=on \ + icon.background.color=$GREEN \ + icon.background.height=3 \ + icon.background.corner_radius=2 \ + background.padding_left=1 \ + background.drawing=on \ + popup.horizontal=on \ + popup.align=center \ + popup.height=120 \ + label=􁁒 \ + label.font="$FONT:Regular:19.0" \ + label.drawing=off \ + drawing=off \ + --subscribe spotify.anchor mouse.entered mouse.exited \ + mouse.exited.global \ + \ + --add item spotify.cover popup.spotify.anchor \ + --set spotify.cover script="$PLUGIN_DIR/spotify.sh" \ + label.drawing=off \ + icon.drawing=off \ + background.padding_left=12 \ + background.padding_right=10 \ + background.image.scale=0.15 \ + background.image.drawing=on \ + background.drawing=on \ + \ + --add item spotify.title popup.spotify.anchor \ + --set spotify.title icon.drawing=off \ + background.padding_left=0 \ + background.padding_right=0 \ + width=0 \ + label.font="$FONT:Heavy:14.0" \ + y_offset=40 \ + \ + --add item spotify.artist popup.spotify.anchor \ + --set spotify.artist icon.drawing=off \ + y_offset=20 \ + background.padding_left=0 \ + background.padding_right=0 \ + width=0 \ + \ + --add item spotify.album popup.spotify.anchor \ + --set spotify.album icon.drawing=off \ + background.padding_left=0 \ + background.padding_right=0 \ + y_offset=3 \ + width=0 \ + \ + --add item spotify.shuffle popup.spotify.anchor \ + --set spotify.shuffle icon=􀊝 \ + icon.padding_left=5 \ + icon.padding_right=5 \ + icon.color=$BLACK \ + icon.highlight_color=$MAGENTA \ + label.drawing=off \ + script="$PLUGIN_DIR/spotify.sh" \ + y_offset=-30 \ + --subscribe spotify.shuffle mouse.clicked \ + \ + --add item spotify.back popup.spotify.anchor \ + --set spotify.back icon=􀊎 \ + icon.padding_left=5 \ + icon.padding_right=5 \ + icon.color=$BLACK \ + script="$PLUGIN_DIR/spotify.sh" \ + label.drawing=off \ + y_offset=-30 \ + --subscribe spotify.back mouse.clicked \ + \ + --add item spotify.play popup.spotify.anchor \ + --set spotify.play icon=􀊔 \ + background.height=40 \ + background.corner_radius=20 \ + width=40 \ + align=center \ + background.color=$BLACK \ + background.border_color=$WHITE \ + background.border_width=0 \ + background.drawing=on \ + icon.padding_left=4 \ + icon.padding_right=5 \ + icon.color=$WHITE \ + updates=on \ + label.drawing=off \ + script="$PLUGIN_DIR/spotify.sh" \ + y_offset=-30 \ + --subscribe spotify.play mouse.clicked spotify_change \ + \ + --add item spotify.next popup.spotify.anchor \ + --set spotify.next icon=􀊐 \ + icon.padding_left=5 \ + icon.padding_right=10 \ + icon.color=$BLACK \ + label.drawing=off \ + script="$PLUGIN_DIR/spotify.sh" \ + y_offset=-30 \ + --subscribe spotify.next mouse.clicked \ + \ + --add item spotify.repeat popup.spotify.anchor \ + --set spotify.repeat icon=􀊞 \ + icon.highlight_color=$MAGENTA \ + icon.padding_left=5 \ + icon.padding_right=10 \ + icon.color=$BLACK \ + label.drawing=off \ + script="$PLUGIN_DIR/spotify.sh" \ + y_offset=-30 \ + --subscribe spotify.repeat mouse.clicked \ + \ + --add item spotify.spacer popup.spotify.anchor \ + --set spotify.spacer width=5 \ + \ + --add bracket spotify spotify.shuffle \ + spotify.back \ + spotify.play \ + spotify.next \ + spotify.repeat \ + --set spotify background.color=$GREEN \ + background.corner_radius=11 \ + background.drawing=on \ + y_offset=-30 \ + drawing=off diff --git a/configmac/sketchybar/items/volume.sh b/configmac/sketchybar/items/volume.sh new file mode 100755 index 0000000..fd6cf04 --- /dev/null +++ b/configmac/sketchybar/items/volume.sh @@ -0,0 +1,21 @@ +sketchybar --add item volume right \ + --set volume script="$PLUGIN_DIR/volume.sh" \ + updates=on \ + icon.background.drawing=on \ + icon.background.color=$BLUE \ + icon.background.height=8 \ + icon.background.corner_radius=3 \ + icon.width=0 \ + icon.align=right \ + label.drawing=off \ + background.drawing=on \ + background.color=$OPEN_APPS_BACKGROUND \ + background.height=8 \ + background.corner_radius=3 \ + align=left \ + --subscribe volume volume_change + +sketchybar --add item volume_icon right \ + --set volume_icon icon.font="$FONT:Regular:21.0" \ + icon=􀥒 \ + label.drawing=off diff --git a/configmac/sketchybar/plugins/github.sh b/configmac/sketchybar/plugins/github.sh new file mode 100755 index 0000000..a26f9e3 --- /dev/null +++ b/configmac/sketchybar/plugins/github.sh @@ -0,0 +1,87 @@ +#!/bin/sh + +update() { + source "$HOME/.config/sketchybar/colors.sh" + source "$HOME/.config/sketchybar/icons.sh" + + NOTIFICATIONS="$(gh api notifications)" + COUNT="$(echo "$NOTIFICATIONS" | jq 'length')" + args=() + if [ "$NOTIFICATIONS" = "[]" ]; then + args+=(--set $NAME icon=$BELL label="0") + else + args+=(--set $NAME icon=$BELL_DOT label="$COUNT") + fi + + PREV_COUNT=$(sketchybar --query github.bell | jq -r .label.value) + # For sound to play around with: + # afplay /System/Library/Sounds/Morse.aiff + + args+=(--remove '/github.notification\.*/') + + COUNTER=0 + COLOR=$BLUE + args+=(--set github.bell icon.color=$COLOR) + + while read -r repo url type title + do + COUNTER=$((COUNTER + 1)) + IMPORTANT="$(echo "$title" | egrep -i "(deprecat|break|broke)")" + COLOR=$BLUE + PADDING=0 + + if [ "${repo}" = "" ] && [ "${title}" = "" ]; then + repo="Note" + title="No new notifications" + fi + case "${type}" in + "'Issue'") COLOR=$GREEN; ICON=$GIT_ISSUE; URL="$(gh api "$(echo "${url}" | sed -e "s/^'//" -e "s/'$//")" | jq .html_url)" + ;; + "'Discussion'") COLOR=$WHITE; ICON=$GIT_DISCUSSION; URL="https://www.github.com/notifications" + ;; + "'PullRequest'") COLOR=$MAGENTA; ICON=$GIT_PULL_REQUEST; URL="$(gh api "$(echo "${url}" | sed -e "s/^'//" -e "s/'$//")" | jq .html_url)" + ;; + "'Commit'") COLOR=$WHITE; ICON=$GIT_COMMIT; URL="$(gh api "$(echo "${url}" | sed -e "s/^'//" -e "s/'$//")" | jq .html_url)" + ;; + esac + + if [ "$IMPORTANT" != "" ]; then + COLOR=$RED + ICON=􀁞 + args+=(--set github.bell icon.color=$COLOR) + fi + + args+=(--clone github.notification.$COUNTER github.template \ + --set github.notification.$COUNTER label="$(echo "$title" | sed -e "s/^'//" -e "s/'$//")" \ + icon="$ICON $(echo "$repo" | sed -e "s/^'//" -e "s/'$//"):" \ + icon.padding_left="$PADDING" \ + label.padding_right="$PADDING" \ + icon.color=$COLOR \ + position=popup.github.bell \ + icon.background.color=$COLOR \ + drawing=on \ + click_script="open $URL; + sketchybar --set github.bell popup.drawing=off") + done <<< "$(echo "$NOTIFICATIONS" | jq -r '.[] | [.repository.name, .subject.latest_comment_url, .subject.type, .subject.title] | @sh')" + + sketchybar -m "${args[@]}" + + if [ $COUNT -gt $PREV_COUNT ] 2>/dev/null || [ "$SENDER" = "forced" ]; then + sketchybar --animate tanh 15 --set github.bell label.y_offset=5 label.y_offset=0 + fi +} + +popup() { + sketchybar --set $NAME popup.drawing=$1 +} + +case "$SENDER" in + "routine"|"forced") update + ;; + "mouse.entered") popup on + ;; + "mouse.exited"|"mouse.exited.global") popup off + ;; + "mouse.clicked") popup toggle + ;; +esac diff --git a/configmac/sketchybar/plugins/icon_map.sh b/configmac/sketchybar/plugins/icon_map.sh new file mode 100755 index 0000000..7252f6f --- /dev/null +++ b/configmac/sketchybar/plugins/icon_map.sh @@ -0,0 +1,381 @@ +case "$1" in +"Brave Browser") + icon_result=":brave_browser:" + ;; +"Keyboard Maestro") + icon_result=":keyboard_maestro:" + ;; +"Min") + icon_result=":min_browser:" + ;; +"Final Cut Pro") + icon_result=":final_cut_pro:" + ;; +"FaceTime") + icon_result=":face_time:" + ;; +"Affinity Publisher") + icon_result=":affinity_publisher:" + ;; +"Messages" | "Nachrichten") + icon_result=":messages:" + ;; +"Tweetbot" | "Twitter") + icon_result=":twitter:" + ;; +"ClickUp") + icon_result=":click_up:" + ;; +"KeePassXC") + icon_result=":kee_pass_x_c:" + ;; +"Microsoft Edge") + icon_result=":microsoft_edge:" + ;; +"VLC") + icon_result=":vlc:" + ;; +"Emacs") + icon_result=":emacs:" + ;; +"Thunderbird") + icon_result=":thunderbird:" + ;; +"Notes") + icon_result=":notes:" + ;; +"Caprine") + icon_result=":caprine:" + ;; +"Zulip") + icon_result=":zulip:" + ;; +"Spark") + icon_result=":spark:" + ;; +"Microsoft To Do" | "Things") + icon_result=":things:" + ;; +"DEVONthink 3") + icon_result=":devonthink3:" + ;; +"GitHub Desktop") + icon_result=":git_hub:" + ;; +"App Store") + icon_result=":app_store:" + ;; +"Chromium" | "Google Chrome" | "Google Chrome Canary") + icon_result=":google_chrome:" + ;; +"zoom.us") + icon_result=":zoom:" + ;; +"MoneyMoney") + icon_result=":bank:" + ;; +"Color Picker") + icon_result=":color_picker:" + ;; +"Microsoft Word") + icon_result=":microsoft_word:" + ;; +"Iris") + icon_result=":iris:" + ;; +"WebStorm") + icon_result=":web_storm:" + ;; +"Neovide" | "MacVim" | "Vim" | "VimR") + icon_result=":vim:" + ;; +"Sublime Text") + icon_result=":sublime_text:" + ;; +"PomoDone App") + icon_result=":pomodone:" + ;; +"Setapp") + icon_result=":setapp:" + ;; +"qutebrowser") + icon_result=":qute_browser:" + ;; +"Mattermost") + icon_result=":mattermost:" + ;; +"Notability") + icon_result=":notability:" + ;; +"WhatsApp") + icon_result=":whats_app:" + ;; +"OBS") + icon_result=":obsstudio:" + ;; +"Parallels Desktop") + icon_result=":parallels:" + ;; +"VMware Fusion") + icon_result=":vmware_fusion:" + ;; +"Pine") + icon_result=":pine:" + ;; +"Microsoft Excel") + icon_result=":microsoft_excel:" + ;; +"Microsoft PowerPoint") + icon_result=":microsoft_power_point:" + ;; +"Matlab") + icon_result=":matlab:" + ;; +"Numbers") + icon_result=":numbers:" + ;; +"Default") + icon_result=":default:" + ;; +"Element") + icon_result=":element:" + ;; +"Bear") + icon_result=":bear:" + ;; +"TeamSpeak 3") + icon_result=":team_speak:" + ;; +"Airmail") + icon_result=":airmail:" + ;; +"Firefox Developer Edition" | "Firefox Nightly") + icon_result=":firefox_developer_edition:" + ;; +"Trello") + icon_result=":trello:" + ;; +"TickTick") + icon_result=":tick_tick:" + ;; +"Notion") + icon_result=":notion:" + ;; +"Live") + icon_result=":ableton:" + ;; +"Evernote Legacy") + icon_result=":evernote_legacy:" + ;; +"Calendar" | "Fantastical") + icon_result=":calendar:" + ;; +"Android Studio") + icon_result=":android_studio:" + ;; +"Xcode") + icon_result=":xcode:" + ;; +"Slack") + icon_result=":slack:" + ;; +"Sequel Pro") + icon_result=":sequel_pro:" + ;; +"Bitwarden") + icon_result=":bit_warden:" + ;; +"System Preferences") + icon_result=":gear:" + ;; +"Discord" | "Discord Canary" | "Discord PTB") + icon_result=":discord:" + ;; +"Vivaldi") + icon_result=":vivaldi:" + ;; +"Firefox") + icon_result=":firefox:" + ;; +"Skype") + icon_result=":skype:" + ;; +"Dropbox") + icon_result=":dropbox:" + ;; +"微信") + icon_result=":wechat:" + ;; +"Typora") + icon_result=":text:" + ;; +"Blender") + icon_result=":blender:" + ;; +"Canary Mail" | "HEY" | "Mail" | "Mailspring" | "MailMate" | "邮件") + icon_result=":mail:" + ;; +"Safari" | "Safari Technology Preview") + icon_result=":safari:" + ;; +"Telegram") + icon_result=":telegram:" + ;; +"Keynote") + icon_result=":keynote:" + ;; +"Reeder") + icon_result=":reeder5:" + ;; +"Spotify") + icon_result=":spotify:" + ;; +"MAMP" | "MAMP PRO") + icon_result=":mamp:" + ;; +"Figma") + icon_result=":figma:" + ;; +"Joplin") + icon_result=":joplin:" + ;; +"Spotlight") + icon_result=":spotlight:" + ;; +"Music") + icon_result=":music:" + ;; +"Insomnia") + icon_result=":insomnia:" + ;; +"TIDAL") + icon_result=":tidal:" + ;; +"Alfred") + icon_result=":alfred:" + ;; +"Pages") + icon_result=":pages:" + ;; +"Folx") + icon_result=":folx:" + ;; +"Android Messages") + icon_result=":android_messages:" + ;; +"mpv") + icon_result=":mpv:" + ;; +"网易云音乐") + icon_result=":netease_music:" + ;; +"Transmit") + icon_result=":transmit:" + ;; +"Pi-hole Remote") + icon_result=":pihole:" + ;; +"Nova") + icon_result=":nova:" + ;; +"Affinity Designer") + icon_result=":affinity_designer:" + ;; +"IntelliJ IDEA") + icon_result=":idea:" + ;; +"Drafts") + icon_result=":drafts:" + ;; +"Audacity") + icon_result=":audacity:" + ;; +"Affinity Photo") + icon_result=":affinity_photo:" + ;; +"Atom") + icon_result=":atom:" + ;; +"Obsidian") + icon_result=":obsidian:" + ;; +"CleanMyMac X") + icon_result=":desktop:" + ;; +"Zotero") + icon_result=":zotero:" + ;; +"Todoist") + icon_result=":todoist:" + ;; +"LibreWolf") + icon_result=":libre_wolf:" + ;; +"Grammarly Editor") + icon_result=":grammarly:" + ;; +"OmniFocus") + icon_result=":omni_focus:" + ;; +"Reminders") + icon_result=":reminders:" + ;; +"Preview" | "Skim" | "zathura") + icon_result=":pdf:" + ;; +"1Password 7") + icon_result=":one_password:" + ;; +"Code" | "Code - Insiders") + icon_result=":code:" + ;; +"VSCodium") + icon_result=":vscodium:" + ;; +"Tower") + icon_result=":tower:" + ;; +"Calibre") + icon_result=":book:" + ;; +"Finder" | "访达") + icon_result=":finder:" + ;; +"Linear") + icon_result=":linear:" + ;; +"League of Legends") + icon_result=":league_of_legends:" + ;; +"Zeplin") + icon_result=":zeplin:" + ;; +"Signal") + icon_result=":signal:" + ;; +"Podcasts") + icon_result=":podcasts:" + ;; +"Alacritty" | "Hyper" | "iTerm2" | "kitty" | "Terminal" | "WezTerm") + icon_result=":terminal:" + ;; +"Tor Browser") + icon_result=":tor_browser:" + ;; +"Kakoune") + icon_result=":kakoune:" + ;; +"GrandTotal" | "Receipts") + icon_result=":dollar:" + ;; +"Sketch") + icon_result=":sketch:" + ;; +"Sequel Ace") + icon_result=":sequel_ace:" + ;; +*) + icon_result=":default:" + ;; +esac +echo $icon_result diff --git a/configmac/sketchybar/plugins/spotify.sh b/configmac/sketchybar/plugins/spotify.sh new file mode 100755 index 0000000..24f4709 --- /dev/null +++ b/configmac/sketchybar/plugins/spotify.sh @@ -0,0 +1,118 @@ +#!/bin/sh + +next () +{ + osascript -e 'tell application "Spotify" to play next track' +} + +back () +{ + osascript -e 'tell application "Spotify" to play previous track' +} + +play () +{ + osascript -e 'tell application "Spotify" to playpause' +} + +repeat () +{ + REPEAT=$(osascript -e 'tell application "Spotify" to get repeating') + if [ "$REPEAT" = "false" ]; then + sketchybar -m --set spotify.repeat icon.highlight=on + osascript -e 'tell application "Spotify" to set repeating to true' + else + sketchybar -m --set spotify.repeat icon.highlight=off + osascript -e 'tell application "Spotify" to set repeating to false' + fi +} + +shuffle () +{ + SHUFFLE=$(osascript -e 'tell application "Spotify" to get shuffling') + if [ "$SHUFFLE" = "false" ]; then + sketchybar -m --set spotify.shuffle icon.highlight=on + osascript -e 'tell application "Spotify" to set shuffling to true' + else + sketchybar -m --set spotify.shuffle icon.highlight=off + osascript -e 'tell application "Spotify" to set shuffling to false' + fi +} + +update () +{ + PLAYING=1 + if [ "$(echo "$INFO" | jq -r '.["Player State"]')" = "Playing" ]; then + PLAYING=0 + TRACK="$(echo "$INFO" | jq -r .Name | sed 's/\(.\{20\}\).*/\1.../')" + ARTIST="$(echo "$INFO" | jq -r .Artist | sed 's/\(.\{20\}\).*/\1.../')" + ALBUM="$(echo "$INFO" | jq -r .Album | sed 's/\(.\{25\}\).*/\1.../')" + SHUFFLE=$(osascript -e 'tell application "Spotify" to get shuffling') + REPEAT=$(osascript -e 'tell application "Spotify" to get repeating') + COVER=$(osascript -e 'tell application "Spotify" to get artwork url of current track') + fi + + args=() + if [ $PLAYING -eq 0 ]; then + curl -s --max-time 20 "$COVER" -o /tmp/cover.jpg + if [ "$ARTIST" == "" ]; then + args+=(--set spotify.title label="$TRACK" drawing=on \ + --set spotify.album label="Podcast" drawing=on \ + --set spotify.artist label="$ALBUM" drawing=on ) + else + args+=(--set spotify.title label="$TRACK" drawing=on \ + --set spotify.album label="$ALBUM" drawing=on \ + --set spotify.artist label="$ARTIST" drawing=on) + fi + args+=(--set spotify.play icon=􀊆 \ + --set spotify.shuffle icon.highlight=$SHUFFLE \ + --set spotify.repeat icon.highlight=$REPEAT \ + --set spotify.cover background.image="/tmp/cover.jpg" \ + background.color=0x00000000 \ + --set spotify.anchor label.drawing=on \ + icon.drawing=off \ + y_offset=0 \ + background.drawing=off \ + align=center \ + drawing=on \ + --set spotify drawing=on ) + else + args+=(--set spotify.title drawing=off \ + --set spotify.artist drawing=off \ + --set spotify.anchor drawing=off popup.drawing=off \ + --set spotify.play icon=􀊄 ) + fi + sketchybar -m "${args[@]}" +} + +mouse_clicked () { + case "$NAME" in + "spotify.next") next + ;; + "spotify.back") back + ;; + "spotify.play") play + ;; + "spotify.shuffle") shuffle + ;; + "spotify.repeat") repeat + ;; + *) exit + ;; + esac +} + +popup () { + sketchybar --set spotify.anchor popup.drawing=$1 +} + +case "$SENDER" in + "mouse.clicked") mouse_clicked + ;; + "mouse.entered") popup on + ;; + "mouse.exited"|"mouse.exited.global") popup off + ;; + *) update + ;; +esac diff --git a/configmac/sketchybar/plugins/volume.sh b/configmac/sketchybar/plugins/volume.sh new file mode 100755 index 0000000..d6e7f69 --- /dev/null +++ b/configmac/sketchybar/plugins/volume.sh @@ -0,0 +1,32 @@ +#!/usr/bin/env sh + +WIDTH=100 + +volume_change() { + case "$INFO" in + [1-9][0-9]|100) ICON=􀥒 + ;; + [1-9]) ICON=􀻂 + ;; + 0) ICON=􀫡 + ;; + esac + sketchybar --set volume_icon icon=$ICON + INITIAL_WIDTH=$(sketchybar --query volume | jq ".icon.width") + if [ "$INITIAL_WIDTH" -eq "0" ]; then + sketchybar --animate tanh 30 --set volume width=$WIDTH icon.width=$INFO + else + sketchybar --set volume icon.width=$INFO width=$WIDTH + fi + + sleep 2 + FINAL_WIDTH=$(sketchybar --query volume | jq ".icon.width") + if [ "$FINAL_WIDTH" -eq "$INFO" ]; then + sketchybar --animate tanh 30 --set volume width=0 icon.width=0 + fi +} + +case "$SENDER" in + "volume_change") volume_change + ;; +esac diff --git a/configmac/sketchybar/plugins/yabai.sh b/configmac/sketchybar/plugins/yabai.sh new file mode 100755 index 0000000..5693a3a --- /dev/null +++ b/configmac/sketchybar/plugins/yabai.sh @@ -0,0 +1,77 @@ +#!/bin/sh + +window_state() { + source "$HOME/.config/sketchybar/colors.sh" + source "$HOME/.config/sketchybar/icons.sh" + + WINDOW=$(yabai -m query --windows --window) + CURRENT=$(echo "$WINDOW" | jq '.["stack-index"]') + + args=() + if [[ $CURRENT -gt 0 ]]; then + LAST=$(yabai -m query --windows --window stack.last | jq '.["stack-index"]') + args+=(--set $NAME icon=$YABAI_STACK icon.color=$RED label.drawing=on label=$(printf "[%s/%s]" "$CURRENT" "$LAST")) + yabai -m config active_window_border_color $RED > /dev/null 2>&1 & + + else + args+=(--set $NAME label.drawing=off) + case "$(echo "$WINDOW" | jq '.["is-floating"]')" in + "false") + if [ "$(echo "$WINDOW" | jq '.["has-fullscreen-zoom"]')" = "true" ]; then + args+=(--set $NAME icon=$YABAI_FULLSCREEN_ZOOM icon.color=$GREEN) + yabai -m config active_window_border_color $GREEN > /dev/null 2>&1 & + elif [ "$(echo "$WINDOW" | jq '.["has-parent-zoom"]')" = "true" ]; then + args+=(--set $NAME icon=$YABAI_PARENT_ZOOM icon.color=$BLUE) + yabai -m config active_window_border_color $BLUE > /dev/null 2>&1 & + else + args+=(--set $NAME icon=$YABAI_GRID icon.color=0xfff0c6c6) + yabai -m config active_window_border_color $WHITE > /dev/null 2>&1 & + fi + ;; + "true") + args+=(--set $NAME icon=$YABAI_FLOAT icon.color=$MAGENTA) + yabai -m config active_window_border_color $MAGENTA > /dev/null 2>&1 & + ;; + esac + fi + + sketchybar -m "${args[@]}" +} + +windows_on_spaces () { + DISPLAY_INFO="$(yabai -m query --displays)" + CURRENT_SPACES="$(yabai -m query --displays | jq -r '.[].spaces | @sh')" + + args=() + while read -r line + do + for space in $line + do + icon_strip=" " + apps=$(yabai -m query --windows --space $space | jq -r ".[].app") + for app in $apps + do + icon_strip+=" $($HOME/.config/sketchybar/plugins/icon_map.sh "$app")" + done + args+=(--set space.$space label="$icon_strip" label.drawing=on) + done + done <<< "$CURRENT_SPACES" + + sketchybar -m "${args[@]}" +} + +mouse_clicked() { + yabai -m window --toggle float + update +} + +case "$SENDER" in + "mouse.clicked") mouse_clicked + ;; + "forced") exit 0 + ;; + "window_focus") window_state + ;; + "windows_on_spaces") windows_on_spaces + ;; +esac diff --git a/configmac/sketchybar/plugins/zen.sh b/configmac/sketchybar/plugins/zen.sh new file mode 100755 index 0000000..0fd11f6 --- /dev/null +++ b/configmac/sketchybar/plugins/zen.sh @@ -0,0 +1,24 @@ +#!/bin/sh + +if [ $1 = "on" ]; then + sketchybar --set github.bell drawing=off \ + --set apple.logo drawing=on \ + --set '/cpu.*/' drawing=off \ + --set calendar icon.drawing=off \ + --set system.yabai drawing=off \ + --set separator drawing=off \ + --set front_app drawing=off \ + --set spotify.play updates=off \ + --set spotify.title drawing=off \ + --set spotify.artist drawing=off +else + sketchybar --set github.bell drawing=on \ + --set apple.logo drawing=on \ + --set '/cpu.*/' drawing=on \ + --set calendar icon.drawing=on \ + --set separator drawing=on \ + --set front_app drawing=on \ + --set system.yabai drawing=on \ + --set spotify.play updates=on +fi + diff --git a/configmac/sketchybar/sketchybarrc b/configmac/sketchybar/sketchybarrc new file mode 100755 index 0000000..9471229 --- /dev/null +++ b/configmac/sketchybar/sketchybarrc @@ -0,0 +1,73 @@ +#!/usr/bin/env sh + +source "$HOME/.config/sketchybar/colors.sh" # Loads all defined colors +source "$HOME/.config/sketchybar/icons.sh" # Loads all defined icons + +ITEM_DIR="$HOME/.config/sketchybar/items" # Directory where the items are configured +PLUGIN_DIR="$HOME/.config/sketchybar/plugins" # Directory where all the plugin scripts are stored + +FONT="SF Pro" # Needs to have Regular, Bold, Semibold, Heavy and Black variants +SPACE_CLICK_SCRIPT="yabai -m space --focus \$SID 2>/dev/null" # The script that is run for clicking on space components + +PADDINGS=3 # All paddings use this value (icon, label, background) + +POPUP_BORDER_WIDTH=2 +POPUP_CORNER_RADIUS=11 + +SHADOW=on + +HELPER=git.felix.helper +# Start the helper process +killall helper +# cd $HOME/.config/sketchybar/helper && make +$HOME/.config/sketchybar/helper/helper $HELPER > /dev/null 2>&1 & + +# Setting up the general bar appearance and default values +sketchybar --bar height=39 \ + color=$BAR_COLOR \ + shadow=$SHADOW \ + position=top \ + sticky=on \ + padding_right=$((10 - $PADDINGS)) \ + padding_left=18 \ + corner_radius=9 \ + y_offset=10 \ + margin=10 \ + blur_radius=20 \ + notch_width=0 \ + \ + --default updates=when_shown \ + icon.font="$FONT:Bold:14.0" \ + icon.color=$ICON_COLOR \ + icon.padding_left=$PADDINGS \ + icon.padding_right=$PADDINGS \ + label.font="$FONT:Semibold:13.0" \ + label.color=$LABEL_COLOR \ + label.padding_left=$PADDINGS \ + label.padding_right=$PADDINGS \ + background.padding_right=$PADDINGS \ + background.padding_left=$PADDINGS \ + popup.background.border_width=2 \ + popup.background.corner_radius=11 \ + popup.background.border_color=$POPUP_BORDER_COLOR \ + popup.background.color=$POPUP_BACKGROUND_COLOR \ + popup.background.shadow.drawing=$SHADOW + +# Left +source "$ITEM_DIR/apple.sh" +source "$ITEM_DIR/spaces.sh" +source "$ITEM_DIR/front_app.sh" + +# Center +source "$ITEM_DIR/spotify.sh" + +# Right +source "$ITEM_DIR/github.sh" +source "$ITEM_DIR/calendar.sh" +source "$ITEM_DIR/cpu.sh" +source "$ITEM_DIR/volume.sh" + +############## FINALIZING THE SETUP ############## +sketchybar --update + +echo "sketchybar configuation loaded.." diff --git a/configmac/sketchybar/spaces.sh b/configmac/sketchybar/spaces.sh new file mode 100644 index 0000000..b88f88c --- /dev/null +++ b/configmac/sketchybar/spaces.sh @@ -0,0 +1,108 @@ +#!/usr/bin/env sh + +sketchybar --add space space_template left \ + --set space_template icon.highlight_color=0xff9dd274 \ + label.drawing=off \ + drawing=off \ + updates=on \ + associated_display=1 \ + label.font="SF Pro:Black:13.0" \ + icon.font="Font Awesome 6 Pro:Regular:17.0" \ + script="$PLUGIN_DIR/space.sh" \ + icon.padding_right=6 \ + icon.padding_left=2 \ + background.padding_left=2 \ + background.padding_right=2 \ + icon.background.height=2 \ + icon.background.color=$ICON_COLOR \ + icon.background.color=$ICON_COLOR \ + icon.background.y_offset=-13 \ + click_script="$SPACE_CLICK_SCRIPT" \ + \ + --clone spaces_1.label label_template \ + --set spaces_1.label label=spc \ + label.width=38 \ + label.align=center \ + associated_display=1 \ + position=left \ + drawing=on \ + \ + --clone spaces_1.code space_template \ + --set spaces_1.code associated_space=1 \ + icon= \ + icon.highlight_color=$GREEN \ + icon.background.color=$GREEN \ + drawing=on \ + \ + --clone spaces_1.tex space_template \ + --set spaces_1.tex associated_space=2 \ + icon=$SPACES_TEX \ + icon.highlight_color=$ORANGE \ + icon.background.color=$ORANGE \ + drawing=on \ + \ + --clone spaces_1.web space_template \ + --set spaces_1.web associated_space=3 \ + icon=$SPACES_WEB \ + icon.highlight_color=$BLUE \ + icon.background.color=$BLUE \ + drawing=on \ + \ + --clone spaces_1.idle space_template \ + --set spaces_1.idle associated_space=4 \ + icon=$SPACES_IDLE \ + icon.highlight_color=$YELLOW \ + icon.background.color=$YELLOW \ + drawing=on \ + \ + --add bracket spaces_1 \ + spaces_1.label \ + spaces_1.code \ + spaces_1.web \ + spaces_1.tex \ + spaces_1.idle \ + \ + --set space_template associated_display=2 \ + \ + --clone spaces_2.label label_template \ + --set spaces_2.label label=spc \ + associated_display=2 \ + label.width=45 \ + label.align=center \ + position=left \ + drawing=on \ + \ + --clone spaces_2.misc space_template \ + --set spaces_2.misc associated_space=5 \ + icon=$SPACES_MISC \ + icon.highlight_color=$GREEN \ + icon.background.color=$GREEN \ + drawing=on \ + \ + --clone spaces_2.doc space_template \ + --set spaces_2.doc associated_space=6 \ + icon=$SPACES_DOC \ + icon.highlight_color=$ORANGE \ + icon.background.color=$ORANGE \ + drawing=on \ + \ + --clone spaces_2.help space_template \ + --set spaces_2.help associated_space=7 \ + icon=$SPACES_HELP \ + icon.highlight_color=$BLUE \ + icon.background.color=$BLUE \ + drawing=on \ + \ + --clone spaces_2.music space_template \ + --set spaces_2.music associated_space=8 \ + icon=$SPACES_MUSIC \ + icon.highlight_color=$YELLOW \ + icon.background.color=$YELLOW \ + drawing=on \ + \ + --add bracket spaces_2 \ + spaces_2.label \ + spaces_2.misc \ + spaces_2.doc \ + spaces_2.help \ + spaces_2.music diff --git a/configmac/wezterm/wezterm.lua b/configmac/wezterm/wezterm.lua new file mode 100644 index 0000000..18c6842 --- /dev/null +++ b/configmac/wezterm/wezterm.lua @@ -0,0 +1,42 @@ +--[[ + _ _ _ _____ _____ _____ _____ _____ _____ +| | | | __|__ |_ _| __| __ | | +| | | | __| __| | | | __| -| | | | +|_____|_____|_____| |_| |_____|__|__|_|_|_| + ~ Aesthetic Wezterm ~ + rxyhn +--]] + +local wezterm = require 'wezterm'; + +return { + font_dirs = {"/home/gallant/.fonts"}, + front_end = "OpenGL", + font = wezterm.font("Iosevka", {weight = "Regular", italic = false}), + harfbuzz_features = {"calt=0", "clig=0", "liga=0"}, + font_size = 15, + colors = { -- aesthetic night colorscheme + foreground = "#d9d7d6", + background = "#061115", + cursor_bg = "#d9d7d6", + cursor_fg = "#d9d7d6", + cursor_border = "#d9d7d6", + selection_fg = "#061115", + selection_bg = "#d9d7d6", + scrollbar_thumb = "#d9d7d6", + split = "#16161a", + ansi = {"#061115", "#df5b61", "#78b892", "#de8f78", "#6791c9", "#bc83e3", "#67afc1", "#d9d7d6"}, + brights = {"#484e5b", "#f16269", "#8cd7aa", "#e9967e", "#79aaeb", "#c488ec", "#7acfe4", "#e5e5e5"}, + indexed = {[136] = "#d9d7d6"}, + }, + window_padding = { + left = 25, + right = 25, + top = 25, + bottom = 25, + }, + enable_tab_bar = false, + default_cursor_style = "BlinkingUnderline", + exit_behavior = "CloseOnCleanExit", + window_background_opacity = 0.20 +}