feat: update

This commit is contained in:
Ray Andrew 2026-02-04 00:01:10 -06:00
parent df36053b98
commit 72228ef67e
Signed by: rayandrew
SSH key fingerprint: SHA256:XYrYrxF0Z3A72n8P/p6mqPRNQZT22F88XcLsG+kX4xw
11 changed files with 179 additions and 314 deletions

View file

@ -1,5 +1,5 @@
config-version = 2 config-version = 2
start-at-login = true start-at-login = false
after-startup-command = [ after-startup-command = [
"workspace 10", "workspace 10",
@ -29,7 +29,7 @@ on-focus-changed = [
[mode.main.binding] [mode.main.binding]
alt-enter = 'exec-and-forget open -na Ghostty' alt-enter = 'exec-and-forget open -na Ghostty'
alt-p = 'exec-and-forget ~/dotfiles/bin/open-music' # alt-p = 'exec-and-forget ~/dotfiles/bin/open-music'
alt-m = 'exec-and-forget ~/dotfiles/bin/open-mail' alt-m = 'exec-and-forget ~/dotfiles/bin/open-mail'
alt-tab = 'workspace-back-and-forth' alt-tab = 'workspace-back-and-forth'

View file

@ -19,14 +19,14 @@ davmail.logFilePath=/tmp/davmail.log
davmail.logFileSize=1MB davmail.logFileSize=1MB
# OAuth token storage # OAuth token storage
davmail.oauth.tokenFilePath=/home/rayandrew/.local/state/davmail-tokens davmail.oauth.tokenFilePath=/Users/rayandrew/.local/state/davmail-tokens
# Log levels # Log levels
log4j.logger.davmail=WARN # log4j.logger.davmail=WARN
log4j.logger.httpclient.wire=WARN # log4j.logger.httpclient.wire=WARN
log4j.logger.org.apache.commons.httpclient=WARN # log4j.logger.org.apache.commons.httpclient=WARN
log4j.rootLogger=WARN # log4j.rootLogger=WARN
#
# log4j.logger.davmail=DEBUG # log4j.logger.davmail=DEBUG
# log4j.logger.httpclient.wire=DEBUG # log4j.logger.httpclient.wire=DEBUG
# log4j.logger.org.apache.commons.httpclient=DEBUG # log4j.logger.org.apache.commons.httpclient=DEBUG

View file

@ -0,0 +1,57 @@
davmail.ssl.keystoreType=
davmail.ssl.keystorePass=
davmail.proxyPassword=
davmail.smtpPort=1025
davmail.enableKerberos=false
davmail.folderSizeLimit=
davmail.forceActiveSyncUpdate=false
davmail.imapAutoExpunge=true
davmail.useSystemProxies=false
davmail.proxyUser=
davmail.ssl.nosecuresmtp=false
davmail.caldavPastDelay=0
davmail.ssl.keyPass=
log4j.logger.httpclient.wire=WARN
davmail.noProxyFor=
davmail.server=false
davmail.popMarkReadOnRetr=false
davmail.ssl.nosecureimap=false
davmail.disableTrayActivitySwitch=false
davmail.caldavAutoSchedule=true
davmail.enableProxy=false
davmail.proxyPort=
davmail.mode=EWS
davmail.smtpSaveInSent=true
davmail.bindAddress=
davmail.ssl.nosecurepop=false
davmail.ssl.pkcs11Library=
log4j.rootLogger=WARN
davmail.ssl.keystoreFile=
log4j.logger.davmail=DEBUG
davmail.ssl.clientKeystoreType=
davmail.clientSoTimeout=
davmail.ssl.pkcs11Config=
davmail.imapPort=1143
davmail.ssl.clientKeystorePass=
davmail.url=https://outlook.office365.com/EWS/Exchange.asmx
davmail.sentKeepDelay=0
davmail.ssl.nosecureldap=false
davmail.imapAlwaysApproxMsgSize=false
davmail.ssl.nosecurecaldav=false
davmail.popPort=1110
davmail.showStartupBanner=true
log4j.logger.httpclient=WARN
davmail.proxyHost=
davmail.ldapPort=1389
davmail.server.certificate.hash=
davmail.disableGuiNotifications=false
davmail.imapIdleDelay=
davmail.allowRemote=false
davmail.disableUpdateCheck=false
davmail.caldavPort=1080
davmail.enableKeepAlive=false
davmail.ssl.clientKeystoreFile=
davmail.logFilePath=
davmail.carddavReadPhoto=true
davmail.keepDelay=30
davmail.caldavAlarmSound=

View file

@ -1,5 +1,33 @@
set fish_greeting set fish_greeting
# Noctis Azureus Ghostty color theme
set -g fish_color_normal becfda
set -g fish_color_command 49d6e9 # cyan - functions
set -g fish_color_keyword df769b # magenta
set -g fish_color_quote 49e9a6 # green - strings
set -g fish_color_redirection 60b6eb # bright blue
set -g fish_color_end df769b # magenta
set -g fish_color_error e66533 # red
set -g fish_color_param e4b781 # yellow - variables
set -g fish_color_comment 475e6c # comment gray
set -g fish_color_selection --background=0c3f5f
set -g fish_color_search_match --background=1679b6
set -g fish_color_operator e69533 # bright yellow
set -g fish_color_escape 60ebb1 # bright green - string escape
set -g fish_color_autosuggestion 475e6c
set -g fish_color_cwd 49ace9 # blue
set -g fish_color_cwd_root e66533
set -g fish_color_user 49e9a6
set -g fish_color_host 49d6e9
set -g fish_color_host_remote e4b781
set -g fish_color_valid_path --underline
set -g fish_color_option e4b781 # yellow
set -g fish_pager_color_completion becfda
set -g fish_pager_color_description 475e6c
set -g fish_pager_color_prefix 49e9a6 --bold
set -g fish_pager_color_progress becfda --background=0c3f5f
set -g fish_pager_color_selected_background --background=0c3f5f
# Bootstrap Fisher (reads plugins from fish_plugins) # Bootstrap Fisher (reads plugins from fish_plugins)
if not functions -q fisher if not functions -q fisher
curl -sL https://raw.githubusercontent.com/jorgebucaran/fisher/main/functions/fisher.fish | source curl -sL https://raw.githubusercontent.com/jorgebucaran/fisher/main/functions/fisher.fish | source
@ -92,3 +120,16 @@ end
# end # end
alias vim nvim alias vim nvim
# Autocompletions
function __load_run_py_completions --on-variable __RUN_PY_COMPLETIONS
if test -n "$__RUN_PY_COMPLETIONS"; and test -f "$__RUN_PY_COMPLETIONS"
source "$__RUN_PY_COMPLETIONS"
end
end
# Also check on startup
if test -n "$__RUN_PY_COMPLETIONS"; and test -f "$__RUN_PY_COMPLETIONS"
source "$__RUN_PY_COMPLETIONS"
end

View file

@ -237,6 +237,18 @@ Host ucare-gpu-1.cs.uchicago.edu
LogLevel FATAL LogLevel FATAL
RequestTTY yes RequestTTY yes
Host bomb
ForwardAgent yes
ForwardX11 yes
ForwardX11Trusted yes
User rayandrew
HostName bomb.cs.uchicago.edu
ProxyJump cs-uc-07
# ControlMaster auto
# ControlPersist yes
LogLevel FATAL
RequestTTY yes
Host ucare-gpu-1 Host ucare-gpu-1
ForwardAgent yes ForwardAgent yes
ForwardX11 yes ForwardX11 yes

View file

@ -21,6 +21,7 @@ vim.opt.autoread = true
vim.opt.cursorline = true vim.opt.cursorline = true
vim.opt.scrolloff = 10 vim.opt.scrolloff = 10
vim.opt.termguicolors = true vim.opt.termguicolors = true
vim.opt.exrc = true
local path_package = vim.fn.stdpath 'data' .. '/site/' local path_package = vim.fn.stdpath 'data' .. '/site/'
local mini_path = path_package .. 'pack/deps/start/mini.nvim' local mini_path = path_package .. 'pack/deps/start/mini.nvim'
@ -718,7 +719,48 @@ later(function()
} }
-- Enable language servers -- Enable language servers
vim.lsp.enable { 'lua_ls', 'ts_ls', 'pyright', 'rust_analyzer', 'clangd', 'copilot', 'nixd', 'marksman', 'r_language_server' } vim.lsp.enable { 'lua_ls', 'ts_ls', 'pyright', 'rust_analyzer', 'clangd', 'nixd', 'marksman', 'r_language_server' }
-- Copilot toggle commands (check if disabled by .nvim.lua)
if vim.g.copilot_enabled == nil then vim.g.copilot_enabled = true end
if vim.g.copilot_enabled then vim.lsp.enable 'copilot' end
local function copilot_disable()
vim.g.copilot_enabled = false
vim.lsp.enable('copilot', false)
for _, client in ipairs(vim.lsp.get_clients { name = 'copilot' }) do
-- Detach from all buffers first for graceful shutdown
for _, bufnr in ipairs(vim.lsp.get_buffers_by_client_id(client.id)) do
vim.lsp.buf_detach_client(bufnr, client.id)
end
client:stop()
end
end
local function copilot_enable()
vim.g.copilot_enabled = true
vim.lsp.enable('copilot', true)
end
vim.api.nvim_create_user_command('CopilotToggle', function()
if vim.g.copilot_enabled then
copilot_disable()
vim.notify('Copilot disabled', vim.log.levels.INFO)
else
copilot_enable()
vim.notify('Copilot enabled', vim.log.levels.INFO)
end
end, { desc = 'Toggle Copilot' })
vim.api.nvim_create_user_command('CopilotDisable', function()
copilot_disable()
vim.notify('Copilot disabled', vim.log.levels.INFO)
end, { desc = 'Disable Copilot' })
vim.api.nvim_create_user_command('CopilotEnable', function()
copilot_enable()
vim.notify('Copilot enabled', vim.log.levels.INFO)
end, { desc = 'Enable Copilot' })
end) end)
local map = function(mode, lhs, rhs, opts) local map = function(mode, lhs, rhs, opts)

View file

@ -1,3 +1,5 @@
dir_length = 2
[[session]] [[session]]
name = "Downloads" name = "Downloads"
path = "~/Downloads" path = "~/Downloads"

View file

@ -14,11 +14,6 @@ in
options.custom.gui = with lib; { options.custom.gui = with lib; {
aerospace = { aerospace = {
enable = mkEnableOption "Enable aerospace"; enable = mkEnableOption "Enable aerospace";
# logFile = mkOption {
# type = types.str;
# default = "${home-dir}/Library/Logs/aerospace.log";
# description = "Filepath of log output";
# };
}; };
}; };
@ -28,296 +23,5 @@ in
]; ];
hm.xdg.configFile."aerospace".source = hm.xdg.configFile."aerospace".source =
config.hm.lib.file.mkOutOfStoreSymlink "${dots}/config/aerospace"; config.hm.lib.file.mkOutOfStoreSymlink "${dots}/config/aerospace";
# launchd.user.agents.aerospace.serviceConfig = {
# StandardErrorPath = cfg.logFile;
# StandardOutPath = cfg.logFile;
# };
#
# services.aerospace = {
# enable = true;
# # package = pkgs.custom.aerospace;
# settings = {
# enable-normalization-flatten-containers = false;
# enable-normalization-opposite-orientation-for-nested-containers = false;
# accordion-padding = 0;
# on-focused-monitor-changed = [ "move-mouse monitor-lazy-center" ];
# default-root-container-layout = "tiles";
# default-root-container-orientation = "auto";
# after-startup-command = [
# "workspace 10"
# "layout h_accordion"
# "workspace-back-and-forth"
# ];
#
# gaps = {
# inner = {
# horizontal = 15;
# vertical = 15;
# };
# outer = {
# left = 10;
# bottom = 5;
# top = [
# { monitor."LG ULTRAWIDE" = 50; }
# { monitor."ZOWIE XL LCD" = 50; }
# 12
# ];
# right = 10;
# };
# };
#
# mode = {
# main = {
# binding = {
# alt-enter =
# let
# script = pkgs.writeText "ghostty.applescript" ''
# do shell script "open -n -a Ghostty"
# '';
# in
# "exec-and-forget osascript ${script}";
#
# # alt-enter = "exec-and-forget \"open -n -a /Applications/Slack.app\"";
#
# alt-shift-f = "fullscreen";
# alt-shift-q = "close --quit-if-last-window";
# alt-space = "layout floating tiling";
# alt-e = "layout tiles horizontal vertical";
# alt-t = "layout h_accordion";
# alt-s = "layout v_accordion";
# alt-v = "split vertical";
# alt-shift-v = "split horizontal";
# # alt-v = "join-with down";
# # alt-shift-v = "join-with right";
# alt-h = "focus --boundaries-action wrap-around-the-workspace left";
# alt-l = "focus --boundaries-action wrap-around-the-workspace right";
# alt-j = "focus --boundaries-action wrap-around-the-workspace down";
# alt-k = "focus --boundaries-action wrap-around-the-workspace up";
# alt-shift-h = "move left";
# alt-shift-l = "move right";
# alt-shift-j = "move down";
# alt-shift-k = "move up";
#
# cmd-h = [ ]; # Disable "hide application"
# cmd-alt-h = [ ]; # Disable "hide others"
# cmd-q = [ ]; # Disable "quit"
# cmd-shift-q = [ ]; # Disable "logout"
#
# alt-1 = "workspace 1";
# alt-2 = "workspace 2";
# alt-3 = "workspace 3";
# alt-4 = "workspace 4";
# alt-5 = "workspace 5";
# alt-6 = "workspace 6";
# alt-7 = "workspace 7";
# alt-8 = "workspace 8";
# alt-9 = "workspace 9";
# alt-0 = "workspace 10";
#
# alt-shift-1 = [
# "move-node-to-workspace 1"
# # "workspace 1"
# ];
# alt-shift-2 = [
# "move-node-to-workspace 2"
# # "workspace 2"
# ];
# alt-shift-3 = [
# "move-node-to-workspace 3"
# # "workspace 3"
# ];
# alt-shift-4 = [
# "move-node-to-workspace 4"
# # "workspace 4"
# ];
# alt-shift-5 = [
# "move-node-to-workspace 5"
# # "workspace 5"
# ];
# alt-shift-6 = [
# "move-node-to-workspace 6"
# # "workspace 6"
# ];
# alt-shift-7 = [
# "move-node-to-workspace 7"
# # "workspace 7"
# ];
# alt-shift-8 = [
# "move-node-to-workspace 8"
# # "workspace 8"
# ];
# alt-shift-9 = [
# "move-node-to-workspace 9"
# # "workspace 9"
# ];
# alt-shift-0 = [
# "move-node-to-workspace 10"
# # "workspace 10"
# ];
#
# alt-shift-c = "reload-config";
# alt-tab = "workspace-back-and-forth";
# alt-shift-tab = "move-workspace-to-monitor --wrap-around next";
# alt-r = "mode resize";
# alt-shift-semicolon = "mode service";
# };
# };
#
# service = {
# binding = {
# esc = [
# "reload-config"
# "mode main"
# ];
# r = [
# "flatten-workspace-tree"
# "mode main"
# ];
# f = [
# "layout floating tiling"
# "mode main"
# ];
# backspace = [
# "close-all-windows-but-current"
# "mode main"
# ];
#
# alt-shift-h = [
# "join-with left"
# "mode main"
# ];
# alt-shift-j = [
# "join-with down"
# "mode main"
# ];
# alt-shift-k = [
# "join-with up"
# "mode main"
# ];
# alt-shift-l = [
# "join-with right"
# "mode main"
# ];
#
# # down = "volume down";
# # up = "volume up";
# # shift-down = [ "volume set 0" "mode main" ];
# };
# };
#
# resize = {
# binding = {
# h = "resize width -50";
# j = "resize height +50";
# k = "resize height -50";
# l = "resize width +50";
# enter = "mode main";
# esc = "mode main";
# };
# };
# };
#
# workspace-to-monitor-force-assignment = {
# "1" = "main";
# "2" = "main";
# "3" = "main";
# "4" = "main";
# "5" = "main";
# "6" = "main";
# "7" = [
# "2"
# "main"
# ];
# "8" = "main";
# "9" = "main";
# "10" = [
# "2"
# "main"
# ];
# };
#
# on-window-detected = [
# # workspace
# # media
# {
# "if".app-id = "com.spotify.client";
# run = [ "move-node-to-workspace 7" ];
# }
# # browser
# {
# "if".app-id = "app.zen-browser.zen";
# run = [ "move-node-to-workspace 10" ];
# }
# {
# "if".app-id = "com.kagi.kagimacOS";
# run = [
# "move-node-to-workspace 10"
# ];
# }
# # {
# # "if".app-id = "com.openai.chat";
# # run = [
# # "move-node-to-workspace 10"
# # ];
# # }
# # {
# # "if".app-id = "app.mozilla.firefox";
# # run = [ "move-node-to-workspace 10" ];
# # }
# # {
# # "if".app-id = "com.google.Chrome";
# # run = [ "move-node-to-workspace 10" ];
# # }
# # {
# # "if".app-id = "org.chromium.Chromium";
# # run = [ "move-node-to-workspace 10" ];
# # }
# # communications
# {
# "if".app-id = "com.tinyspeck.slackmacgap";
# run = [ "move-node-to-workspace 9" ];
# }
# {
# "if".app-id = "com.microsoft.teams2";
# run = [ "move-node-to-workspace 9" ];
# }
# # special app's layout
# ## tiling
# {
# "if".app-id = "com.mitchellh.ghostty";
# run = [ "layout tiling" ];
# }
# ## floating
# {
# "if".app-id = "com.renfei.SnippetsLab";
# run = [ "layout floating" ];
# }
# {
# "if".app-id = "com.colliderli.iina";
# run = [ "layout tiling" ];
# }
# {
# "if".app-id = "com.apple.ActivityMonitor";
# run = [ "layout floating" ];
# }
# {
# "if".app-id = "com.apple.calculator";
# run = [ "layout floating" ];
# }
# {
# "if".app-id = "com.apple.finder";
# run = [ "layout floating" ];
# }
# {
# "if".app-id = "com.1password.1password";
# run = [ "layout floating" ];
# }
# {
# "if".app-id = "com.chabomakers.Antinote";
# run = [ "layout floating" ];
# }
# ];
# };
# };
}; };
} }

View file

@ -23,6 +23,7 @@
vscode-insiders = mkEnableOption "Enable VSCode Insiders"; vscode-insiders = mkEnableOption "Enable VSCode Insiders";
firefox = mkEnableOption "Enable Firefox"; firefox = mkEnableOption "Enable Firefox";
google-chrome = mkEnableOption "Enable Google Chrome"; google-chrome = mkEnableOption "Enable Google Chrome";
google-drive = mkEnableOption "Enable Google Drive";
chromium = mkEnableOption "Enable Chromium"; chromium = mkEnableOption "Enable Chromium";
aldente = mkEnableOption "Enable AlDente"; aldente = mkEnableOption "Enable AlDente";
zotero = mkEnableOption "Enable Zotero"; zotero = mkEnableOption "Enable Zotero";
@ -182,6 +183,11 @@
"google-chrome" "google-chrome"
]; ];
}) })
(lib.mkIf config.custom.brew.google-drive {
homebrew.casks = [
"google-drive"
];
})
(lib.mkIf config.custom.brew.chromium { (lib.mkIf config.custom.brew.chromium {
homebrew.casks = [ homebrew.casks = [
"chromium" "chromium"

View file

@ -6,9 +6,9 @@
{ {
custom = { custom = {
gui = { gui = {
aerospace.enable = true; aerospace.enable = false;
sketchybar.enable = true; sketchybar.enable = false;
jankyborders.enable = true; jankyborders.enable = false;
yabai.enable = false; yabai.enable = false;
}; };
brew = { brew = {
@ -55,6 +55,7 @@
sratoolkit = true; sratoolkit = true;
hisat2 = true; hisat2 = true;
google-chrome = true; google-chrome = true;
google-drive = true;
vscode-insiders = true; vscode-insiders = true;
positron = true; positron = true;
claude = true; claude = true;

File diff suppressed because one or more lines are too long