323 lines
9.8 KiB
Nix
323 lines
9.8 KiB
Nix
{
|
|
lib,
|
|
config,
|
|
dots,
|
|
pkgs,
|
|
inputs,
|
|
...
|
|
}:
|
|
|
|
let
|
|
cfg = config.custom.gui.aerospace;
|
|
in
|
|
{
|
|
options.custom.gui = with lib; {
|
|
aerospace = {
|
|
enable = mkEnableOption "Enable aerospace";
|
|
# logFile = mkOption {
|
|
# type = types.str;
|
|
# default = "${home-dir}/Library/Logs/aerospace.log";
|
|
# description = "Filepath of log output";
|
|
# };
|
|
};
|
|
};
|
|
|
|
config = lib.mkIf cfg.enable {
|
|
hm.home.packages = [
|
|
inputs.aerospace-scratchpad.packages.${pkgs.stdenv.hostPlatform.system}.default
|
|
];
|
|
hm.xdg.configFile."aerospace".source =
|
|
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" ];
|
|
# }
|
|
# ];
|
|
# };
|
|
# };
|
|
};
|
|
}
|