summaryrefslogtreecommitdiff
path: root/darwin.nix
blob: 978af1ba8179616f7b9efe392b99eca1bfc2b8f5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
{
  config,
  lib,
  pkgs,
  ...
}:

let
  paneru = builtins.getFlake "github:karinushka/paneru/bcf248ef60aa4c0b49002161b97bc6e268b05aa7";
  hostName = import ./host.nix;
  primaryUser = if lib.hasSuffix "cs.purdue.edu" hostName then "yoder177" else "grace";
in
{
  imports = [ paneru.darwinModules.paneru ];

  nixpkgs.config.allowUnfree = true;
  nixpkgs.hostPlatform = "aarch64-darwin";
  networking.hostName = hostName;

  environment.systemPackages = [
    pkgs.raycast
    pkgs.thaw
  ];

  system = {
    primaryUser = primaryUser;
    stateVersion = 7;
  };

  users.users.${config.system.primaryUser} = {
    name = config.system.primaryUser;
    home = "/Users/${config.system.primaryUser}";
    shell = pkgs.fish;
  };

  programs.fish.enable = true;

  services.paneru = {
    enable = true;

    settings = {
      options = {
        disable_native_tabs = true;
        focus_follows_mouse = false;
        mouse_follows_focus = false;

        animation_speed = 12.0;

        preset_column_widths = [
          0.45
          0.65
          0.9
        ];
        window_resize_cycle = true;
        create_virtual_workspace_automatically = true;
        virtual_workspace_animations = true;

      };

      swipe = {
        sensitivity = 0.35;
        deceleration = 4.0;
        continuous = true;

        gesture = {
          fingers_count = 3;
          direction = "Natural";
          vertical = false;
        };
      };

      padding = {
        top = 5;
        bottom = 5;
        left = 5;
        right = 5;
      };

      windows.all = {
        title = ".*";
        horizontal_padding = 5;
        vertical_padding = 5;
      };

      windows.todoist_quick_add = {
        bundle_id = "com.todoist.mac.Todoist";
        title = "^Todoist$";
        floating = true;
      };

      bindings = {
        window_focus_west = "cmd + shift - h";
        window_focus_east = "cmd + shift - l";

        window_swap_west = "cmd + shift + ctrl - h";
        window_swap_east = "cmd + shift + ctrl - l";

        # window_virtual_south = "cmd - j";
        # window_virtual_north = "cmd - k";

        window_center = "alt - c";
        window_resize = "cmd + shift - f";
        window_balance = "alt - b";

        quit = "ctrl + alt - q";
      };
    };
  };
  system.defaults.CustomUserPreferences = {
    "com.apple.symbolichotkeys" = {
      AppleSymbolicHotKeys = {
        "64" = {
          enabled = false;
        };
      };
    };

    "com.raycast.macos" = {
      raycastGlobalHotkey = "Command-49";
    };
  };

  security.pam.services.sudo_local.touchIdAuth = true;
}