{ config, lib, inputs, pkgs, self, ... }: let cfg = config.profiles.base-darwin; inherit (self.packages.aarch64-darwin) neovim; in { imports = [ ../../modules/programs/nixpkgs ../../modules/programs/zshell ]; options.profiles.base-darwin.enable = lib.mkEnableOption "The base profile, contains general configurations. (Darwin)"; config = lib.mkIf cfg.enable { home.sessionVariables = rec { # NIXOS_OZONE_WL = 1; # FIXME: interface 'wl_output' has no event 4 EDITOR = "nvim"; VISUAL = "nvim"; GIT_EDITOR = EDITOR; }; home.packages = [ # Nix Tools pkgs.nix-index pkgs.nix-tree pkgs.nix-top pkgs.nix-update pkgs.hydra-check pkgs.aria2 pkgs.bottom pkgs.fd pkgs.fzf pkgs.iterm2 pkgs.libnotify pkgs.procs pkgs.sops pkgs.tree pkgs.pinentry_mac neovim # Common build tools (pkgs.rust-bin.selectLatestNightlyWith (toolchain: toolchain.default)) pkgs.go pkgs.gcc ]; programs = { direnv.enable = true; direnv.nix-direnv.enable = true; exa.enable = true; exa.enableAliases = true; gpg.enable = true; gpg.settings.keyserver = "keys.openpgp.org"; home-manager.enable = true; htop.enable = true; tmux = { enable = true; prefix = "C-f"; terminal = "xterm-256color"; shell = "${pkgs.zsh}/bin/zsh"; baseIndex = 1; keyMode = "vi"; escapeTime = 0; extraConfig = import ./config/tmux.nix; }; zsh = { enable = true; enableCompletion = true; enableAutosuggestions = true; autocd = true; dotDir = ".config/zsh"; plugins = [ { name = "powerlevel10k"; src = pkgs.zsh-powerlevel10k; file = "share/zsh-powerlevel10k/powerlevel10k.zsh-theme"; } { name = "powerlevel10k-config"; src = lib.cleanSource ./p10k-config; file = "p10k.zsh"; } { name = "zsh-syntax-highlighting"; src = pkgs.fetchFromGitHub { owner = "zsh-users"; repo = "zsh-syntax-highlighting"; rev = "0.7.1"; sha256 = "03r6hpb5fy4yaakqm3lbf4xcvd408r44jgpv4lnzl9asp4sb9qc0"; }; } ]; shellAliases = config.programs.zshell.aliases; }; zshell.aliases = { e = "nvim"; nvimdiff = "nvim -d"; }; zoxide = { enable = true; enableZshIntegration = true; }; # TODO: https://github.com/zellij-org/zellij/issues/1013 # zellij = { # enable = true; # # settings = { # default_mode = "normal"; # pane_frames = false; # simplified_ui = true; # bitmap fonts # # themes = { # default = { # # Industrial Jellybeans theme # bg = [ 21 21 21 ]; # fg = [ 136 136 136 ]; # black = [ 28 28 28 ]; # gray = [ 64 64 64 ]; # white = [ 232 232 211 ]; # red = [ 141 61 38 ]; # orange = [ 250 187 110 ]; # yellow = [ 250 208 122 ]; # green = [ 153 173 106 ]; # blue = [ 129 151 191 ]; # cyan = [ 143 191 220 ]; # magenta = [ 198 182 238 ]; # }; # }; # }; # }; }; home.file."${config.programs.gpg.homedir}/gpg-agent.conf".text = '' default-cache-ttl 3600 default-cache-ttl-ssh 3600 pinentry-program ${pkgs.pinentry_mac}/Applications/pinentry-mac.app/Contents/MacOS/pinentry-mac allow-preset-passphrase ''; }; }