added mac and nvim config, i should probs add screenshots at some point

This commit is contained in:
gallant 2022-12-05 22:32:03 -06:00
parent 0a71517682
commit 1b9762ff5e
51 changed files with 2381 additions and 0 deletions

View File

@ -0,0 +1 @@
This requires nvchad to be install and be dropped in for nvchad install, see here: PLACEHOLDER

View File

@ -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

View File

@ -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

View File

@ -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 = {
" * ",
" &*/ ",
" % %*** ",
" * ( & ***** ",
" / ( * ******/ ",
" # * /******** ",
" & & ******** ** ",
" % *********/ ** ",
" & /******/**/ %*( ",
" ********* & ** %**********/ **%********* ",
" *** *********/ *********,** **/ ",
" ***********/ # *** (*# ****( ",
" #***/ *** %& *** %*/ /*** *** ",
" // %& ** ",
"/ / /*/ % & & ",
" #*( /*/ ",
" & ** % ",
" % */ # & % ",
" *# ",
" /& & ",
" ## ",
" / ",
},
' ⠀⠀⠀⠀⠀⠀⠀⡴⠞⠉⢉⣭⣿⣿⠿⣳⣤⠴⠖⠛⣛⣿⣿⡷⠖⣶⣤⡀⠀⠀⠀ ',
' ⠀⠀⠀⠀⠀⠀⠀⣼⠁⢀⣶⢻⡟⠿⠋⣴⠿⢻⣧⡴⠟⠋⠿⠛⠠⠾⢛⣵⣿⠀⠀⠀⠀ ',
' ⣼⣿⡿⢶⣄⠀⢀⡇⢀⡿⠁⠈⠀⠀⣀⣉⣀⠘⣿⠀⠀⣀⣀⠀⠀⠀⠛⡹⠋⠀⠀⠀⠀ ',
' ⣭⣤⡈⢑⣼⣻⣿⣧⡌⠁⠀⢀⣴⠟⠋⠉⠉⠛⣿⣴⠟⠋⠙⠻⣦⡰⣞⠁⢀⣤⣦⣤⠀ ',
' ⠀⠀⣰⢫⣾⠋⣽⠟⠑⠛⢠⡟⠁⠀⠀⠀⠀⠀⠈⢻⡄⠀⠀⠀⠘⣷⡈⠻⣍⠤⢤⣌⣀ ',
' ⢀⡞⣡⡌⠁⠀⠀⠀⠀⢀⣿⠁⠀⠀⠀⠀⠀⠀⠀⠀⢿⡀⠀⠀⠀⠸⣇⠀⢾⣷⢤⣬⣉ ',
' ⡞⣼⣿⣤⣄⠀⠀⠀⠀⢸⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⡇⠀⠀⠀⠀⣿⠀⠸⣿⣇⠈⠻ ',
' ⢰⣿⡿⢹⠃⠀⣠⠤⠶⣼⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⡇⠀⠀⠀⠀⣿⠀⠀⣿⠛⡄⠀ ',
' ⠈⠉⠁⠀⠀⠀⡟⡀⠀⠈⡗⠲⠶⠦⢤⣤⣤⣄⣀⣀⣸⣧⣤⣤⠤⠤⣿⣀⡀⠉⣼⡇⠀ ',
' ⣿⣴⣴⡆⠀⠀⠻⣄⠀⠀⠡⠀⠀⠀⠈⠛⠋⠀⠀⠀⡈⠀⠻⠟⠀⢀⠋⠉⠙⢷⡿⡇⠀ ',
' ⣻⡿⠏⠁⠀⠀⢠⡟⠀⠀⠀⠣⡀⠀⠀⠀⠀⠀⢀⣄⠀⠀⠀⠀⢀⠈⠀⢀⣀⡾⣴⠃⠀ ',
' ⢿⠛⠀⠀⠀⠀⢸⠁⠀⠀⠀⠀⠈⠢⠄⣀⠠⠼⣁⠀⡱⠤⠤⠐⠁⠀⠀⣸⠋⢻⡟⠀⠀ ',
' ⠈⢧⣀⣤⣶⡄⠘⣆⠀⠀⠀⠀⠀⠀⠀⢀⣤⠖⠛⠻⣄⠀⠀⠀⢀⣠⡾⠋⢀⡞⠀⠀⠀ ',
' ⠀⠀⠻⣿⣿⡇⠀⠈⠓⢦⣤⣤⣤⡤⠞⠉⠀⠀⠀⠀⠈⠛⠒⠚⢩⡅⣠⡴⠋⠀⠀⠀⠀ ',
' ⠀⠀⠀⠈⠻⢧⣀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠐⣻⠿⠋⠀⠀⠀⠀⠀⠀ ',
' ⠀⠀⠀⠀⠀⠀⠉⠓⠶⣤⣄⣀⡀⠀⠀⠀⠀⠀⢀⣀⣠⡴⠖⠋⠁⠀⠀⠀⠀⠀⠀⠀⠀ ',
"⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠂⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠠⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀",
"⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⡔⠁⠀⠀",
"⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠠⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣀⣴⠟⠀⠀⠀⠀",
"⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣀⣀⡀⠠⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣠⣾⡿⠋⠀⠀⠀⠀⠀",
"⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡾⠚⠁⠀⠀⠈⠉⠙⠒⠢⢄⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣠⣴⣿⣿⠟⠀⠀⠀⠀⠀⠀⠀",
"⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠳⢄⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣀⣤⣶⣿⣿⣿⠟⠁⠀⠀⠀⠀⠀⠀⠀⠀",
"⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠙⢦⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣠⣴⣾⣿⡿⢻⠿⠟⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀",
"⠀⠀⠀⠀⠀⠀⠠⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡅⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠙⣆⠀⠀⠀⠀⢀⣀⣤⣶⣿⣿⣿⠿⠛⣡⠶⠋⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀",
"⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢹⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⡳⣤⣴⣾⣿⣿⣿⠿⠟⠋⢀⡤⠞⠉⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀",
"⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣀⣀⣀⣀⣀⣀⡀⠀⠈⡇⠀⠀⠀⠀⠀⠀⠀⠀⡀⠀⢀⣠⣤⣴⣾⣿⣿⣮⢻⡟⠋⠉⠀⠀⢀⣴⣋⣀⣀⣀⣀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀",
"⠀⠀⠀⠀⠀⠀⠀⠀⠀⠸⠿⠿⠿⠿⢿⣿⡟⠀⠀⠸⣆⠀⣠⣦⣄⢀⠰⡱⢸⢼⣿⣿⠿⠿⠛⠋⠉⠀⠘⣏⠀⢀⠴⠊⠼⠿⠿⠿⠿⢻⣿⠏⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀",
"⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣾⠏⠀⠀⢀⡀⣸⣾⣟⣝⠻⣷⣕⠈⠁⠈⠀⢠⣤⣤⣤⣤⣤⣤⣤⣬⣷⡅⠀⠀⠀⠀⠀⠀⢠⣿⠏⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀",
"⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣴⡿⣿⣄⠲⠿⠏⢾⡿⠋⠻⣇⠀⠙⢿⣦⡀⠀⠀⠈⠛⠛⠛⣋⡭⠉⠛⠛⠛⠛⡆⠀⠀⠀⢀⣴⡟⣷⣄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀",
"⠀⠀⠀⠀⠀⠀⠀⠀⢀⣠⣶⡿⠋⠀⠈⠻⣷⣄⠀⠀⠁⠀⠀⠑⢅⠀⠀⠹⣿⠆⠀⠀⢀⠴⠚⠁⠀⠀⠀⠀⠀⠀⢸⣀⣤⣶⠿⠋⠀⠈⢻⣷⣄⠀⠀⠀⠀⠀⠀⠀⠀⠀⡀⠀⠀",
"⠀⠀⠀⠀⠀⡀⠄⠒⠀⠛⠁⠀⠀⠀⠀⠀⠘⠁⠀⠀⠀⠀⠀⠀⠀⠢⣄⠀⠀⢀⠤⠊⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢯⠋⠁⠀⠀⠀⠀⠀⠙⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀",
"⠀⠀⠠⠀⠁⠀⠀⠀⠀⠀⠀⠀⠄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢘⠶⢊⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠸⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀",
"⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⡤⠚⠁⠀⠈⠱⣄⠀⠀⠀⠀⠀⠀⠁⠀⠀⠀⠀⠀⠀⣷⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀",
"⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡠⠖⠉⠀⠀⠀⠀⠀⠀⠈⠲⣄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣸⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀",
"⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⠴⠋⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠙⠢⡀⠀⠀⠀⠀⠀⠀⠀⢀⡎⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀",
"⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣠⠖⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠀⠐⠐⠦⢤⣤⣀⣀⡤⠈⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀",
" ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡰⠚⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠂⠀⠀⠀⠀⠀⠀⠀⠀",
"⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠚⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠠⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠠⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀",
"⠀⠀⠀⠀⠀⠀⠀⠄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀",
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠂⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠠⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⡔⠁⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠠⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣀⣴⠟⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣀⣀⡀⠠⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣠⣾⡿⠋⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡾⠚⠁⠀⠀⠈⠉⠙⠒⠢⢄⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣠⣴⣿⣿⠟⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠳⢄⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣀⣤⣶⣿⣿⣿⠟⠁⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠙⢦⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣠⣴⣾⣿⡿⢻⠿⠟⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠠⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡅⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠙⣆⠀⠀⠀⠀⢀⣀⣤⣶⣿⣿⣿⠿⠛⣡⠶⠋⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢹⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⡳⣤⣴⣾⣿⣿⣿⠿⠟⠋⢀⡤⠞⠉⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣀⣀⣀⣀⣀⣀⡀⠀⠈⡇⠀⠀⠀⠀⠀⠀⠀⠀⡀⠀⢀⣠⣤⣴⣾⣿⣿⣮⢻⡟⠋⠉⠀⠀⢀⣴⣋⣀⣀⣀⣀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠸⠿⠿⠿⠿⢿⣿⡟⠀⠀⠸⣆⠀⣠⣦⣄⢀⠰⡱⢸⢼⣿⣿⠿⠿⠛⠋⠉⠀⠘⣏⠀⢀⠴⠊⠼⠿⠿⠿⠿⢻⣿⠏⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣾⠏⠀⠀⢀⡀⣸⣾⣟⣝⠻⣷⣕⠈⠁⠈⠀⢠⣤⣤⣤⣤⣤⣤⣤⣬⣷⡅⠀⠀⠀⠀⠀⠀⢠⣿⠏⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣴⡿⣿⣄⠲⠿⠏⢾⡿⠋⠻⣇⠀⠙⢿⣦⡀⠀⠀⠈⠛⠛⠛⣋⡭⠉⠛⠛⠛⠛⡆⠀⠀⠀⢀⣴⡟⣷⣄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⢀⣠⣶⡿⠋⠀⠈⠻⣷⣄⠀⠀⠁⠀⠀⠑⢅⠀⠀⠹⣿⠆⠀⠀⢀⠴⠚⠁⠀⠀⠀⠀⠀⠀⢸⣀⣤⣶⠿⠋⠀⠈⢻⣷⣄⠀⠀⠀⠀⠀⠀⠀⠀⠀⡀⠀⠀
⠀⠀⠀⠀⠀⡀⠄⠒⠀⠛⠁⠀⠀⠀⠀⠀⠘⠁⠀⠀⠀⠀⠀⠀⠀⠢⣄⠀⠀⢀⠤⠊⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢯⠋⠁⠀⠀⠀⠀⠀⠙⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠠⠀⠁⠀⠀⠀⠀⠀⠀⠀⠄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢘⠶⢊⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠸⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⡤⠚⠁⠀⠈⠱⣄⠀⠀⠀⠀⠀⠀⠁⠀⠀⠀⠀⠀⠀⣷⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡠⠖⠉⠀⠀⠀⠀⠀⠀⠈⠲⣄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣸⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⠴⠋⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠙⠢⡀⠀⠀⠀⠀⠀⠀⠀⢀⡎⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣠⠖⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠀⠐⠐⠦⢤⣤⣀⣀⡤⠈⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡰⠚⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠂⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠚⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠠⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠠⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⣿⣿⡿⣫⣾⠏⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⢀⣀⣀⣀⣀⠄⠄⠄⠄⠄⠄⠀
⣿⡇⠱⠉⠁⠄⠄⠄⠄⠄⠄⢀⣀⣤⣶⣶⣿⣿⣿⣿⣿⣿⣿⣦⠄⠄⠄⠄⠄⠀
⣿⡇⠄⠄⠄⠄⠄⢀⣠⣛⡩⣩⣭⡹⣿⣿⣿⣿⠞⣛⣛⣛⡲⣿⡇⠄⠄⠄⠄⠀
⣿⡇⠄⠄⠄⡾⣡⣾⣿⣷⣹⣿⣿⡿⣪⡻⠟⣱⣿⣿⣿⣿⣿⣷⡹⠄⠄⠄⠄⠀
⣿⡇⠄⠄⣼⡇⣿⣻⣿⠟⡛⢿⣿⣾⣿⡇⢰⣍⢻⡿⠛⢿⣿⡭⣿⣷⠄⠄⠄⠀
⣿⣧⣄⡀⣿⡇⣮⣽⣿⣮⣉⣾⣿⣿⣿⣇⡸⣿⣿⣆⠛⣰⣿⣾⡿⣿⠄⠄⠄⠀
⣿⣇⡼⣄⣿⣿⡄⠙⢿⣏⣿⣿⡮⠁⣉⣾⣷⡈⠃⢿⣿⣬⡭⠝⣀⣿⠄⠄⠐⠀
⡆⡇⣹⣿⣿⣿⣿⡿⠓⠛⣉⣉⣉⣉⣙⣛⠓⠾⣟⢿⣿⣿⣿⣿⣿⣿⣿⠇⠄⠙
⠁⡇⣞⣿⡿⠋⠁⠄⠄⠈⠉⠙⠛⠛⠻⠿⠿⠿⣶⣌⠻⣿⣿⣿⣿⣿⢗⢴⣆⢣
⠸⣇⡻⠈⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠈⢻⣷⡌⢿⣿⣿⣿⢸⠼⣣⣾
⣦⡀⠄⠄⠄⠄⠄⠄⠄⠄⠄⢀⠄⠄⠄⠄⠄⠄⠄⠄⠙⠛⠈⣿⡫⡼⢠⣾⣿⣿
⣿⣇⠄⣀⣠⡀⠄⠄⠴⠾⠿⠿⠶⠶⣦⣤⡀⠄⠄⠄⠄⠄⠄⢨⠯⢁⣿⣿⣿⣿
⣿⣿⣦⢒⠤⣅⡶⣶⣶⣾⣿⣿⣿⣷⣶⣮⣍⠢⠄⠄⠄⠄⠄⠐⢠⣾⣿⣿⣿⣿
⣿⣿⣿⣧⡐⠫⣉⡿⣬⡞⢿⣿⢯⠽⣶⡽⢟⣛⢖⣨⣛⠛⢃⣴⣿⣿⣿⣿⣿⣿

0
configmac/.lol Normal file
View File

57
configmac/.yabairc Executable file
View File

@ -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

115
configmac/.zshrc Normal file
View File

@ -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

3
configmac/README.md Normal file
View File

@ -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

231
configmac/fonts.txt Normal file
View File

@ -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

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -0,0 +1 @@
3.4.18

BIN
configmac/sketchybar/.DS_Store vendored Normal file

Binary file not shown.

29
configmac/sketchybar/colors.sh Executable file
View File

@ -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

View File

@ -0,0 +1,23 @@
#include <stdio.h>
#include <time.h>
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);
}

View File

@ -0,0 +1,118 @@
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <mach/mach.h>
#include <stdbool.h>
#include <time.h>
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;
}

Binary file not shown.

View File

@ -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 \"<bootstrap name>\"\n");
exit(1);
}
event_server_begin(handler, argv[1]);
return 0;
}

View File

@ -0,0 +1,3 @@
helper: helper.c cpu.h clock.h sketchybar.h
clang -std=c17 -O3 helper.c -o helper

View File

@ -0,0 +1,227 @@
#pragma once
#include <mach/mach.h>
#include <mach/message.h>
#include <bootstrap.h>
#include <stdlib.h>
#include <pthread.h>
#include <stdio.h>
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);
}

31
configmac/sketchybar/icons.sh Executable file
View File

@ -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=􀧍

View File

@ -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"

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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.."

View File

@ -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

View File

@ -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
}