.dotfiles/dot_config/flake/machines/hinge/home.nix
2025-09-02 15:39:25 -04:00

194 lines
6.5 KiB
Nix

{pkgs, ...}: {
imports = [
../../home/common.nix
../../home/helide
../../home/ghostty.nix
];
# xdg.enable = lib.mkForce false;
home = {
username = "tyler.mayoff";
# homeDirectory = /Users/tyler.mayoff;
packages = with pkgs; [
bazelisk
cmake
conan
pre-commit
black
ruff
unstable.copilot-language-server
swiftlint
unstable.helix-gpt
unstable.lsp-ai
python312Packages.python-lsp-server
unstable.openscad-lsp
typescript-language-server
cmake-language-server
jdt-language-server
unstable.biome
uv
ffmpeg
sccache
just
nodejs_24
yarn
cocoapods
];
sessionVariables = {
ANDROID_HOME = "/Users/tyler.mayoff/Library/Android/sdk";
PATH = "/opt/homebrew/opt/llvm@20/bin:$PATH::/Users/tyler.mayoff/Library/Android/sdk/platform-tools";
};
file.".gnupg/gpg-agent.conf".text = ''
pinentry-program ${pkgs.pinentry_mac}/Applications/pinentry-mac.app/Contents/MacOS/pinentry-mac
'';
file.".config/sketchybar/sketchybarrc" = {
executable = true;
text = ''
#!/usr/bin/env lua
package.cpath = package.cpath .. ";${pkgs.sbarlua}/lib/lua/5.4/sketchybar.so"
-- Load the sketchybar-package and prepare the helper binaries
require("helpers")
require("init")
'';
};
file.".hammerspoon/Spoons/PaperWM.spoon" = {
source = pkgs.fetchFromGitHub {
owner = "mogenson";
repo = "PaperWM.spoon";
rev = "5bc47411eaf4dbbfb950d23d1ec7daf3a0427470";
hash = "sha256-YBwa8tmo8hTpuZLFJ8JjAzkNF9+4xGSBuE3ziuHVg74=";
};
};
file.".hammerspoon/Spoons/ActiveSpace.spoon" = {
source = pkgs.fetchFromGitHub {
owner = "mogenson";
repo = "ActiveSpace.spoon";
rev = "a246cb5a38d0e930a526b44fbd6b6c6d4a36a9d9";
hash = "sha256-yFhWsb9J56qtcTx56WRhej5oY3zLUkUZjjTd8iMIhFg=";
};
};
file.".hammerspoon/Spoons/WarpMouse.spoon" = {
source = pkgs.fetchFromGitHub {
owner = "mogenson";
repo = "WarpMouse.spoon";
rev = "c3b76e02704a15d22e7e6971fe76781db642d0bd";
hash = "sha256-6hDU7lM59PoMo5ykeTdvomIqEkKkmh1Xam2GIBVgSVY=";
};
};
file.".hammerspoon/init.lua" = {
text = ''
ActiveSpace = hs.loadSpoon("ActiveSpace")
ActiveSpace.compact = true
ActiveSpace:start()
WarpMouse = hs.loadSpoon("WarpMouse")
-- WarpMouse.margin = 8 -- optionally set how far past a screen edge the mouse should warp, default is 2 pixels
WarpMouse:start()
PaperWM = hs.loadSpoon("PaperWM")
PaperWM:bindHotkeys({
-- switch to a new focused window in tiled grid
focus_left = {{"alt", "cmd"}, "left"},
focus_right = {{"alt", "cmd"}, "right"},
focus_up = {{"alt", "cmd"}, "up"},
focus_down = {{"alt", "cmd"}, "down"},
-- switch windows by cycling forward/backward
-- (forward = down or right, backward = up or left)
focus_prev = {{"alt", "cmd"}, "k"},
focus_next = {{"alt", "cmd"}, "j"},
-- move windows around in tiled grid
swap_left = {{"alt", "cmd", "shift"}, "left"},
swap_right = {{"alt", "cmd", "shift"}, "right"},
swap_up = {{"alt", "cmd", "shift"}, "up"},
swap_down = {{"alt", "cmd", "shift"}, "down"},
-- alternative: swap entire columns, rather than
-- individual windows (to be used instead of
-- swap_left / swap_right bindings)
-- swap_column_left = {{"alt", "cmd", "shift"}, "left"},
-- swap_column_right = {{"alt", "cmd", "shift"}, "right"},
-- position and resize focused window
center_window = {{"alt", "cmd"}, "c"},
full_width = {{"alt", "cmd"}, "f"},
cycle_width = {{"alt", "cmd"}, "r"},
reverse_cycle_width = {{"ctrl", "alt", "cmd"}, "r"},
cycle_height = {{"alt", "cmd", "shift"}, "r"},
reverse_cycle_height = {{"ctrl", "alt", "cmd", "shift"}, "r"},
-- increase/decrease width
increase_width = {{"alt", "cmd"}, "l"},
decrease_width = {{"alt", "cmd"}, "h"},
-- move focused window into / out of a column
slurp_in = {{"alt", "cmd"}, "i"},
barf_out = {{"alt", "cmd"}, "o"},
-- move the focused window into / out of the tiling layer
toggle_floating = {{"alt", "cmd", "shift"}, "escape"},
-- focus the first / second / etc window in the current space
focus_window_1 = {{"cmd", "shift"}, "1"},
focus_window_2 = {{"cmd", "shift"}, "2"},
focus_window_3 = {{"cmd", "shift"}, "3"},
focus_window_4 = {{"cmd", "shift"}, "4"},
focus_window_5 = {{"cmd", "shift"}, "5"},
focus_window_6 = {{"cmd", "shift"}, "6"},
focus_window_7 = {{"cmd", "shift"}, "7"},
focus_window_8 = {{"cmd", "shift"}, "8"},
focus_window_9 = {{"cmd", "shift"}, "9"},
-- switch to a new Mission Control space
switch_space_l = {{"alt", "cmd"}, ","},
switch_space_r = {{"alt", "cmd"}, "."},
switch_space_1 = {{"alt", "cmd"}, "1"},
switch_space_2 = {{"alt", "cmd"}, "2"},
switch_space_3 = {{"alt", "cmd"}, "3"},
switch_space_4 = {{"alt", "cmd"}, "4"},
switch_space_5 = {{"alt", "cmd"}, "5"},
switch_space_6 = {{"alt", "cmd"}, "6"},
switch_space_7 = {{"alt", "cmd"}, "7"},
switch_space_8 = {{"alt", "cmd"}, "8"},
switch_space_9 = {{"alt", "cmd"}, "9"},
-- move focused window to a new space and tile
move_window_1 = {{"alt", "cmd", "shift"}, "1"},
move_window_2 = {{"alt", "cmd", "shift"}, "2"},
move_window_3 = {{"alt", "cmd", "shift"}, "3"},
move_window_4 = {{"alt", "cmd", "shift"}, "4"},
move_window_5 = {{"alt", "cmd", "shift"}, "5"},
move_window_6 = {{"alt", "cmd", "shift"}, "6"},
move_window_7 = {{"alt", "cmd", "shift"}, "7"},
move_window_8 = {{"alt", "cmd", "shift"}, "8"},
move_window_9 = {{"alt", "cmd", "shift"}, "9"}
})
PaperWM:start()
'';
};
};
programs.home-manager.enable = true;
home.stateVersion = "24.11";
}