├── .envrc ├── .gitignore ├── data ├── .DS_Store ├── iterm2 │ ├── install.sh │ └── com.googlecode.iterm2.plist ├── mac-dot-zshrc └── iStatMenus │ └── iStat-m1max14-slartibartfast.ismp ├── hosts ├── darwin │ └── baldrick │ │ ├── default.nix │ │ └── custom-dock.nix ├── nixos │ ├── ktz-cloud │ │ ├── hardware-configuration.nix │ │ ├── networking.nix │ │ └── default.nix │ ├── morphnix │ │ ├── beszel.nix │ │ ├── hardware-configuration.nix │ │ └── default.nix │ ├── nvllama │ │ ├── hardware-configuration.nix │ │ ├── beszel.nix │ │ └── default.nix │ ├── nix-dev │ │ ├── disko-config.nix │ │ ├── hardware-configuration.nix │ │ └── default.nix │ └── desktop │ │ ├── hardware-configuration.nix │ │ └── default.nix └── common │ ├── darwin-common-dock.nix │ ├── nixos-common.nix │ ├── common-packages.nix │ └── darwin-common.nix ├── shell.nix ├── README.md ├── lib ├── default.nix ├── install │ ├── install-nix.sh │ ├── disko.nix │ └── hardware-configuration.nix └── helpers.nix ├── .sops.yaml ├── home ├── nvim │ ├── plugins │ │ └── telescope.lua │ ├── options.lua │ └── keymap.lua ├── ghostty │ └── config ├── starship │ ├── starship.toml │ └── starship-gruv.toml ├── alex.nix └── aerospace │ └── aerospace.toml ├── .github └── workflows │ └── flake-checker.yaml ├── testing ├── nixNv │ ├── hardware-configuration.nix │ └── configuration.nix └── mediaserver │ ├── hardware-configuration.nix │ └── configuration.nix ├── secrets └── secrets.yaml ├── justfile ├── flake.nix ├── modules └── beszel-agent.nix └── flake.lock /.envrc: -------------------------------------------------------------------------------- 1 | use nix 2 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | result 2 | com.googlecode.iterm2.plist 3 | .direnv -------------------------------------------------------------------------------- /data/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ironicbadger/nix-config/HEAD/data/.DS_Store -------------------------------------------------------------------------------- /hosts/darwin/baldrick/default.nix: -------------------------------------------------------------------------------- 1 | { ... }: 2 | { 3 | imports = [ 4 | ./custom-dock.nix 5 | ]; 6 | } -------------------------------------------------------------------------------- /shell.nix: -------------------------------------------------------------------------------- 1 | { pkgs ? import {} }: 2 | 3 | pkgs.mkShell { 4 | buildInputs = with pkgs; [ 5 | colmena 6 | ]; 7 | } -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # ironicbadger/nix-config 2 | 3 | Repo contains configuration for personal machines, mostly running nix-darwin. I have no idea what I'm doing, and the deeper I go the less of a clue I have apparently. 4 | -------------------------------------------------------------------------------- /data/iterm2/install.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # copies this plist to ~/.config/iterm2/ 3 | # so that changes between hosts don't conflict 4 | 5 | mkdir -p ~/.config/iterm2/ 6 | cp ./com.googlecode.iterm2.plist ~/.config/iterm2/ -------------------------------------------------------------------------------- /lib/default.nix: -------------------------------------------------------------------------------- 1 | { 2 | inputs, 3 | outputs, 4 | stateVersion, 5 | ... 6 | }: 7 | let 8 | helpers = import ./helpers.nix { inherit inputs outputs stateVersion; }; 9 | in 10 | { 11 | inherit (helpers) 12 | mkDarwin 13 | #mkNixos 14 | ; 15 | } -------------------------------------------------------------------------------- /hosts/darwin/baldrick/custom-dock.nix: -------------------------------------------------------------------------------- 1 | { config, ... }: 2 | { 3 | system.defaults.dock = { 4 | persistent-apps = [ 5 | "/Applications/Google Chrome.app" 6 | "/Applications/Telegram.app" 7 | "/Applications/Slack.app" 8 | "/Applications/Obsidian.app" 9 | "/Applications/Visual Studio Code.app" 10 | "/Applications/OBS.app" 11 | "/Applications/Ghostty.app" 12 | ]; 13 | }; 14 | } -------------------------------------------------------------------------------- /.sops.yaml: -------------------------------------------------------------------------------- 1 | # nix run nixpkgs#ssh-to-age -- -private-key -i .ssh/id_ed25519 > ~/.config/sops/age/keys.txt 2 | # nix shell nixpkgs#age -c age-keygen -y ~/.config/sops/age/keys.txt 3 | 4 | keys: 5 | - &hosts: 6 | - &nix-nvllama: age17h7ugzlh8lzlxcl2rd2pv4h5v9qwwznu9vpzvyahmn5suv778cfq9v80ff 7 | - &slartibartfast: age1x5jt0dstzg8qz8t350rj0tjxyjg6c672clqmkdu7c9kq7vm54s0qszmu2c 8 | creation_rules: 9 | - path_regex: secrets/secrets.yaml$ 10 | key_groups: 11 | - age: 12 | - *nix-nvllama 13 | - *slartibartfast -------------------------------------------------------------------------------- /home/nvim/plugins/telescope.lua: -------------------------------------------------------------------------------- 1 | require('telescope').setup({ 2 | extensions = { 3 | fzf = { 4 | fuzzy = true, -- false will only do exact matching 5 | override_generic_sorter = true, -- override the generic sorter 6 | override_file_sorter = true, -- override the file sorter 7 | case_mode = "smart_case", -- or "ignore_case" or "respect_case" 8 | -- the default case_mode is "smart_case" 9 | } 10 | } 11 | }) 12 | 13 | require('telescope').load_extension('fzf') -------------------------------------------------------------------------------- /hosts/nixos/ktz-cloud/hardware-configuration.nix: -------------------------------------------------------------------------------- 1 | { modulesPath, ... }: 2 | { 3 | imports = [ (modulesPath + "/profiles/qemu-guest.nix") ]; 4 | boot.loader.grub = { 5 | efiSupport = true; 6 | efiInstallAsRemovable = true; 7 | device = "nodev"; 8 | }; 9 | fileSystems."/boot" = { device = "/dev/disk/by-uuid/B7B8-3A41"; fsType = "vfat"; }; 10 | boot.initrd.availableKernelModules = [ "ata_piix" "uhci_hcd" "xen_blkfront" "vmw_pvscsi" ]; 11 | boot.initrd.kernelModules = [ "nvme" ]; 12 | fileSystems."/" = { device = "/dev/sda1"; fsType = "ext4"; }; 13 | } 14 | -------------------------------------------------------------------------------- /hosts/common/darwin-common-dock.nix: -------------------------------------------------------------------------------- 1 | { config, ... }: 2 | { 3 | system.defaults.dock = { 4 | persistent-apps = [ 5 | "/Applications/Google Chrome.app" 6 | "/Applications/Firefox.app" 7 | "/Applications/Telegram.app" 8 | "/Applications/Signal.app" 9 | "/Applications/Discord.app" 10 | #"/Applications/Slack.app" 11 | "/Applications/Ivory.app" 12 | "/Applications/Obsidian.app" 13 | "/Applications/Spotify.app" 14 | "/Applications/Visual Studio Code.app" 15 | "/Applications/Ghostty.app" 16 | ]; 17 | }; 18 | } 19 | -------------------------------------------------------------------------------- /home/ghostty/config: -------------------------------------------------------------------------------- 1 | # theme = light:onehalflight,dark:Dracula 2 | theme = nord 3 | 4 | #font-family = "FiraCode Nerd Font" 5 | font-family = "BerkeleyMono Nerd Font" 6 | font-size = 18 7 | 8 | window-width = 122 9 | window-height = 30 10 | 11 | window-padding-x = 6 12 | window-padding-y = 6 13 | window-padding-balance = true 14 | 15 | macos-option-as-alt = true 16 | macos-titlebar-style = native 17 | macos-icon = custom-style 18 | macos-icon-ghost-color = white 19 | macos-icon-screen-color = black 20 | 21 | clipboard-paste-protection = false 22 | 23 | mouse-hide-while-typing = true 24 | 25 | shell-integration = zsh 26 | 27 | auto-update = off -------------------------------------------------------------------------------- /.github/workflows/flake-checker.yaml: -------------------------------------------------------------------------------- 1 | # https://github.com/wimpysworld/nix-config/blob/main/.github/workflows/flake-checker.yml 2 | name: Flake ❄️ Checker ✅ 3 | 4 | on: 5 | push: 6 | branches: 7 | - main 8 | schedule: 9 | # l33t o'clock 10 | - cron: '37 13 * * *' 11 | workflow_dispatch: 12 | 13 | jobs: 14 | flake-checker: 15 | name: Flake Checker 16 | runs-on: ubuntu-24.04 17 | steps: 18 | - uses: actions/checkout@v3 19 | with: 20 | fetch-depth: 0 21 | - uses: DeterminateSystems/nix-installer-action@v4 22 | - uses: DeterminateSystems/magic-nix-cache-action@v2 23 | - uses: DeterminateSystems/flake-checker-action@v5 -------------------------------------------------------------------------------- /lib/install/install-nix.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # git clone -b nix-nvidia https://github.com/tailscale-dev/video-code-snippets.git 3 | # cd video-code-snippets/2025-02-nix-nvidia-ollama/nix/hosts/nixos/nix-llm/ 4 | # sh install-nix.sh 5 | 6 | # Check if the script is running as root 7 | if [ "$EUID" -ne 0 ]; then 8 | echo "This script must be run as root" 9 | exit 1 10 | fi 11 | 12 | # disk partitioning etc 13 | nix --experimental-features "nix-command flakes" run github:nix-community/disko -- --mode disko disko.nix 14 | nixos-generate-config --no-filesystems --root /mnt 15 | 16 | # installation 17 | export NIXPKGS_ALLOW_UNFREE=1 18 | cp hardware-configuration.nix /mnt/etc/nixos/ 19 | nixos-install --root /mnt --flake .#nvllama --impure -------------------------------------------------------------------------------- /hosts/nixos/morphnix/beszel.nix: -------------------------------------------------------------------------------- 1 | { 2 | users.users.beszel = { 3 | isSystemUser = true; 4 | group = "beszel"; 5 | description = "Beszel Agent service user"; 6 | }; 7 | users.groups.beszel = {}; 8 | 9 | systemd.services.beszel-agent = { 10 | description = "Beszel Agent Service"; 11 | after = [ "network.target" ]; 12 | wantedBy = [ "multi-user.target" ]; 13 | 14 | serviceConfig = { 15 | Environment = [ 16 | "PORT=45876" 17 | ''KEY="ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIFIkr64nTWbuhU7l+VrLO7lPDRgh2LVqTtrIberNge1j"'' 18 | "EXTRA_FILESYSTEMS=/mnt/jbod,/mnt/bigrust18" 19 | ]; 20 | ExecStart = "/run/current-system/sw/bin/beszel-agent"; 21 | User = "beszel"; 22 | Restart = "always"; 23 | RestartSec = 5; 24 | }; 25 | }; 26 | } -------------------------------------------------------------------------------- /hosts/nixos/nvllama/hardware-configuration.nix: -------------------------------------------------------------------------------- 1 | { config, lib, pkgs, modulesPath, ... }: 2 | { 3 | imports = 4 | [ (modulesPath + "/profiles/qemu-guest.nix") 5 | ]; 6 | 7 | boot.initrd.availableKernelModules = [ "ata_piix" "uhci_hcd" "virtio_pci" "sr_mod" "virtio_blk" ]; 8 | boot.initrd.kernelModules = [ ]; 9 | boot.kernelModules = [ ]; 10 | boot.extraModulePackages = [ ]; 11 | 12 | fileSystems."/" = 13 | { 14 | device = "/dev/vda2"; 15 | fsType = "ext4"; 16 | }; 17 | 18 | fileSystems."/boot" = 19 | { 20 | device = "/dev/vda1"; 21 | fsType = "vfat"; 22 | options = [ "fmask=0022" "dmask=0022" ]; 23 | }; 24 | 25 | swapDevices = [ ]; 26 | 27 | networking.useDHCP = lib.mkDefault true; 28 | nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; 29 | } -------------------------------------------------------------------------------- /hosts/nixos/ktz-cloud/networking.nix: -------------------------------------------------------------------------------- 1 | { lib, ... }: { 2 | # This file was populated at runtime with the networking 3 | # details gathered from the active system. 4 | networking = { 5 | nameservers = [ "1.1.1.1" ]; 6 | defaultGateway = "172.31.1.1"; 7 | defaultGateway6 = { 8 | address = ""; 9 | interface = "eth0"; 10 | }; 11 | dhcpcd.enable = false; 12 | usePredictableInterfaceNames = lib.mkForce false; 13 | interfaces = { 14 | eth0 = { 15 | ipv4.addresses = [ 16 | { address="5.161.220.163"; prefixLength=32; } 17 | ]; 18 | ipv4.routes = [ { address = "172.31.1.1"; prefixLength = 32; } ]; 19 | }; 20 | 21 | }; 22 | }; 23 | services.udev.extraRules = '' 24 | ATTR{address}=="96:00:03:c0:e2:ea", NAME="eth0" 25 | 26 | ''; 27 | } -------------------------------------------------------------------------------- /home/nvim/options.lua: -------------------------------------------------------------------------------- 1 | vim.cmd("let g:netrw_liststyle = 3") 2 | 3 | local opt = vim.opt 4 | 5 | opt.relativenumber = true 6 | opt.number = true 7 | 8 | -- tabs + indentation 9 | opt.tabstop = 2 10 | opt.shiftwidth = 2 11 | opt.expandtab = true 12 | opt.autoindent = true 13 | 14 | opt.wrap = false 15 | 16 | -- search settings 17 | opt.ignorecase = true 18 | opt.smartcase = true 19 | 20 | --opt.cursorline = true 21 | 22 | -- colors 23 | opt.termguicolors = true 24 | opt.background = "dark" 25 | opt.signcolumn = "yes" 26 | 27 | -- backspace 28 | opt.backspace = "indent,eol,start" 29 | 30 | -- clipboard 31 | opt.clipboard:append("unnamedplus") -- use system clipboard as the default register 32 | 33 | -- window splits 34 | opt.splitright = true 35 | opt.splitbelow = true 36 | 37 | -- turn off swapfile 38 | opt.swapfile = false -------------------------------------------------------------------------------- /hosts/nixos/nvllama/beszel.nix: -------------------------------------------------------------------------------- 1 | { 2 | users.users.beszel = { 3 | isSystemUser = true; 4 | group = "beszel"; 5 | description = "Beszel Agent service user"; 6 | }; 7 | users.groups.beszel = {}; 8 | 9 | systemd.services.beszel-agent = { 10 | description = "Beszel Agent Service"; 11 | after = [ "network.target" ]; 12 | wantedBy = [ "multi-user.target" ]; 13 | 14 | serviceConfig = { 15 | Environment = [ 16 | "PORT=45876" 17 | ''KEY="ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIFIkr64nTWbuhU7l+VrLO7lPDRgh2LVqTtrIberNge1j"'' 18 | # "EXTRA_FILESYSTEMS=/mnt/rust,/rpool,/flash,/mnt/pve/local-ext4,/mnt/pve/nvme" 19 | ]; 20 | ExecStart = "/run/current-system/sw/bin/beszel-agent"; 21 | User = "beszel"; 22 | Restart = "always"; 23 | RestartSec = 5; 24 | }; 25 | }; 26 | } -------------------------------------------------------------------------------- /lib/install/disko.nix: -------------------------------------------------------------------------------- 1 | { 2 | disko.devices = { 3 | disk = { 4 | main = { 5 | type = "disk"; 6 | device = "/dev/vda"; 7 | content = { 8 | type = "gpt"; 9 | partitions = { 10 | ESP = { 11 | size = "512M"; 12 | type = "EF00"; 13 | name = "ESP"; 14 | content = { 15 | type = "filesystem"; 16 | format = "vfat"; 17 | mountpoint = "/boot"; 18 | mountOptions = [ "umask=0077" ]; 19 | }; 20 | }; 21 | root = { 22 | size = "100%"; 23 | name = "root"; 24 | content = { 25 | type = "filesystem"; 26 | format = "ext4"; 27 | mountpoint = "/"; 28 | }; 29 | }; 30 | }; 31 | }; 32 | }; 33 | }; 34 | }; 35 | } -------------------------------------------------------------------------------- /hosts/common/nixos-common.nix: -------------------------------------------------------------------------------- 1 | { pkgs, unstablePkgs, lib, inputs, stateVersion, ... }: 2 | let 3 | inherit (inputs) nixpkgs nixpkgs-unstable; 4 | in 5 | { 6 | time.timeZone = "America/New_York"; 7 | system.stateVersion = stateVersion; 8 | 9 | # home-manager = { 10 | # useGlobalPkgs = true; 11 | # useUserPackages = true; 12 | # users.alex = import ../../../home/alex.nix; 13 | # }; 14 | 15 | virtualisation = { 16 | docker = { 17 | enable = true; 18 | autoPrune = { 19 | enable = true; 20 | dates = "weekly"; 21 | }; 22 | }; 23 | }; 24 | 25 | nix = { 26 | settings = { 27 | experimental-features = [ "nix-command" "flakes" ]; 28 | warn-dirty = false; 29 | }; 30 | # Automate garbage collection 31 | gc = { 32 | automatic = true; 33 | dates = "weekly"; 34 | options = "--delete-older-than 5"; 35 | }; 36 | }; 37 | 38 | # environment.systemPackages = with pkgs; [ 39 | # # 40 | # ]; 41 | } -------------------------------------------------------------------------------- /hosts/nixos/nix-dev/disko-config.nix: -------------------------------------------------------------------------------- 1 | { disks ? [ "/dev/vda" ], ... }: { 2 | disko.devices = { 3 | disk = { 4 | vdb = { 5 | device = builtins.elemAt disks 0; 6 | type = "disk"; 7 | content = { 8 | type = "table"; 9 | format = "gpt"; 10 | partitions = [ 11 | { 12 | name = "ESP"; 13 | start = "1MiB"; 14 | end = "500MiB"; 15 | bootable = true; 16 | content = { 17 | type = "filesystem"; 18 | format = "vfat"; 19 | mountpoint = "/boot"; 20 | }; 21 | } 22 | { 23 | name = "root"; 24 | start = "500MiB"; 25 | end = "100%"; 26 | part-type = "primary"; 27 | content = { 28 | type = "filesystem"; 29 | format = "btrfs"; 30 | mountpoint = "/"; 31 | }; 32 | } 33 | ]; 34 | }; 35 | }; 36 | }; 37 | }; 38 | } -------------------------------------------------------------------------------- /testing/nixNv/hardware-configuration.nix: -------------------------------------------------------------------------------- 1 | { config, lib, pkgs, modulesPath, ... }: 2 | 3 | { 4 | imports = 5 | [ (modulesPath + "/profiles/qemu-guest.nix") 6 | ]; 7 | 8 | boot.initrd.availableKernelModules = [ "ata_piix" "uhci_hcd" "virtio_pci" "sr_mod" "virtio_blk" ]; 9 | boot.initrd.kernelModules = [ ]; 10 | boot.kernelModules = [ ]; 11 | boot.extraModulePackages = [ ]; 12 | 13 | fileSystems."/" = 14 | { device = "/dev/disk/by-uuid/526bd5e9-cf59-48fd-88a7-c4297e7a4ee8"; 15 | fsType = "ext4"; 16 | }; 17 | 18 | fileSystems."/boot" = 19 | { device = "/dev/disk/by-uuid/87D0-FFC5"; 20 | fsType = "vfat"; 21 | }; 22 | 23 | swapDevices = [ ]; 24 | 25 | # Enables DHCP on each ethernet and wireless interface. In case of scripted networking 26 | # (the default) this is the recommended approach. When using systemd-networkd it's 27 | # still possible to use this option, but it's recommended to use it in conjunction 28 | # with explicit per-interface declarations with `networking.interfaces..useDHCP`. 29 | networking.useDHCP = lib.mkDefault true; 30 | # networking.interfaces.ens18.useDHCP = lib.mkDefault true; 31 | 32 | nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; 33 | } -------------------------------------------------------------------------------- /hosts/nixos/nix-dev/hardware-configuration.nix: -------------------------------------------------------------------------------- 1 | # Do not modify this file! It was generated by ‘nixos-generate-config’ 2 | # and may be overwritten by future invocations. Please make changes 3 | # to /etc/nixos/configuration.nix instead. 4 | { config, lib, pkgs, modulesPath, ... }: 5 | 6 | { 7 | imports = 8 | [ (modulesPath + "/profiles/qemu-guest.nix") 9 | ]; 10 | 11 | boot.initrd.availableKernelModules = [ "ata_piix" "uhci_hcd" "virtio_pci" "virtio_scsi" "sd_mod" "sr_mod" ]; 12 | boot.initrd.kernelModules = [ ]; 13 | boot.kernelModules = [ ]; 14 | boot.extraModulePackages = [ ]; 15 | 16 | fileSystems."/" = 17 | { device = "/dev/vda2"; 18 | fsType = "ext4"; 19 | }; 20 | 21 | fileSystems."/boot" = 22 | { device = "/dev/vda1"; 23 | fsType = "vfat"; 24 | }; 25 | 26 | swapDevices = [ ]; 27 | 28 | # Enables DHCP on each ethernet and wireless interface. In case of scripted networking 29 | # (the default) this is the recommended approach. When using systemd-networkd it's 30 | # still possible to use this option, but it's recommended to use it in conjunction 31 | # with explicit per-interface declarations with `networking.interfaces..useDHCP`. 32 | networking.useDHCP = lib.mkDefault true; 33 | # networking.interfaces.ens18.useDHCP = lib.mkDefault true; 34 | 35 | nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; 36 | } -------------------------------------------------------------------------------- /secrets/secrets.yaml: -------------------------------------------------------------------------------- 1 | morphnix-smb-user: ENC[AES256_GCM,data:QaIdmQ==,iv:C8LhECCdPB8YY7UlKMAMBeGcMeYA5Y0UanJ4JEAz8mg=,tag:96aXegv/sCUCYp/l+mtTTw==,type:str] 2 | morphnix-smb-pass: ENC[AES256_GCM,data:N3Ywcou/V4lW,iv:pxVElQScwkqW4UimEshvLnol//vASihgz5NffVOvWB4=,tag:mE3VrnFyadFQ/PWYyeeMbQ==,type:str] 3 | sops: 4 | kms: [] 5 | gcp_kms: [] 6 | azure_kv: [] 7 | hc_vault: [] 8 | age: 9 | - recipient: age1x5jt0dstzg8qz8t350rj0tjxyjg6c672clqmkdu7c9kq7vm54s0qszmu2c 10 | enc: | 11 | -----BEGIN AGE ENCRYPTED FILE----- 12 | YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSA5dzB6aUs5YWlLL0oxbEJN 13 | LzU5U1hDZmUyUlArTHgzdjJCVi9nQ2dnM1JZCnBmWjZDTis1YldqZDJoNGU0eHNP 14 | TGhZRVhCZGVKZW9UYSt2Wkp0U1Vsd2MKLS0tIGhiczV5dGxUSGZSQWczZnJqcVBv 15 | VWlIS1oxS0FUMEMvM29heS9OcDBJSm8KgAbBdoUwSKYF5noeC6knGfDQqDtMuSPN 16 | WPl7ZZXDJvEsXeZFAFbtEYufzez+6DN+8YgFpwxBVfzJquIuYom31w== 17 | -----END AGE ENCRYPTED FILE----- 18 | lastmodified: "2024-10-15T22:38:16Z" 19 | mac: ENC[AES256_GCM,data:xgH7p9x31BL5tB8tBzjztgcTLZrssA2qdAVXACCu5A6kgahiP3ZdklD0s/LVUcIN2+tEzyzVCymC+aVhTQm3fADQS54Wq83zG+vsEKDuHLKX6hY23yfKkjIXvJ2qcSd1NsYvN98o6Fqf79EXrSJi7cAmnL1UZrsXuC9QXEcKUgc=,iv:Rezvh8inDhCKVoBIuhB8mB2JTFL2rlVZl3lAFurfa/0=,tag:18lZQfiwv2xR9utY1ckUKA==,type:str] 20 | pgp: [] 21 | unencrypted_suffix: _unencrypted 22 | version: 3.8.1 23 | -------------------------------------------------------------------------------- /lib/install/hardware-configuration.nix: -------------------------------------------------------------------------------- 1 | # Do not modify this file! It was generated by ‘nixos-generate-config’ 2 | # and may be overwritten by future invocations. Please make changes 3 | # to /etc/nixos/configuration.nix instead. 4 | { config, lib, pkgs, modulesPath, ... }: 5 | 6 | { 7 | imports = 8 | [ (modulesPath + "/profiles/qemu-guest.nix") 9 | ]; 10 | 11 | boot.initrd.availableKernelModules = [ "ata_piix" "uhci_hcd" "virtio_pci" "sr_mod" "virtio_blk" ]; 12 | boot.initrd.kernelModules = [ ]; 13 | boot.kernelModules = [ ]; 14 | boot.extraModulePackages = [ ]; 15 | 16 | fileSystems."/" = 17 | { 18 | device = "/dev/vda2"; 19 | fsType = "ext4"; 20 | }; 21 | 22 | fileSystems."/boot" = 23 | { 24 | device = "/dev/vda1"; 25 | fsType = "vfat"; 26 | options = [ "fmask=0022" "dmask=0022" ]; 27 | }; 28 | swapDevices = [ ]; 29 | 30 | # Enabless DHCP on each ethernet and wireless interface. In case of scripted networking 31 | # (the default) this is the recommended approach. When using systemd-networkd it's 32 | # still possible to use this option, but it's recommended to use it in conjunction 33 | # with explicit per-interface declarations with `networking.interfaces..useDHCP`. 34 | networking.useDHCP = lib.mkDefault true; 35 | # networking.interfaces.ens18.useDHCP = lib.mkDefault true; 36 | 37 | nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; 38 | } -------------------------------------------------------------------------------- /hosts/common/common-packages.nix: -------------------------------------------------------------------------------- 1 | { inputs, pkgs, unstablePkgs, ... }: 2 | let 3 | inherit (inputs) nixpkgs nixpkgs-unstable; 4 | in 5 | { 6 | nixpkgs.config.allowUnfree = true; 7 | environment.systemPackages = with pkgs; [ 8 | nixpkgs-unstable.legacyPackages.${pkgs.stdenv.hostPlatform.system}.beszel 9 | nixpkgs-unstable.legacyPackages.${pkgs.stdenv.hostPlatform.system}.codex 10 | nixpkgs-unstable.legacyPackages.${pkgs.stdenv.hostPlatform.system}.talosctl 11 | 12 | ## stable 13 | act 14 | ansible 15 | btop 16 | coreutils 17 | diffr # Modern Unix `diff` 18 | difftastic # Modern Unix `diff` 19 | drill 20 | dust # Modern Unix `du` 21 | dua # Modern Unix `du` 22 | duf # Modern Unix `df` 23 | entr # Modern Unix `watch` 24 | esptool 25 | fastfetch 26 | fd 27 | ffmpeg 28 | figurine 29 | gh 30 | git-crypt 31 | gnused 32 | go 33 | hugo 34 | iperf3 35 | ipmitool 36 | jetbrains-mono # font 37 | jq 38 | just 39 | fluxcd 40 | kubectl 41 | kubernetes-helm 42 | k9s 43 | mc 44 | mosh 45 | nmap 46 | qemu 47 | ripgrep 48 | skopeo 49 | smartmontools 50 | stow 51 | television 52 | terraform 53 | tree 54 | unzip 55 | watch 56 | wget 57 | wireguard-tools 58 | uv 59 | zoxide 60 | 61 | # requires nixpkgs.config.allowUnfree = true; 62 | vscode-extensions.ms-vscode-remote.remote-ssh 63 | ]; 64 | } 65 | -------------------------------------------------------------------------------- /hosts/nixos/nix-dev/default.nix: -------------------------------------------------------------------------------- 1 | { config, pkgs, unstablePkgs, customArgs, ... }: 2 | 3 | { 4 | imports = [ 5 | ./hardware-configuration.nix 6 | ./../../common/common-packages.nix 7 | ]; 8 | 9 | # Use the systemd-boot EFI boot loader. 10 | boot.loader.systemd-boot.enable = true; 11 | boot.loader.efi.canTouchEfiVariables = true; 12 | 13 | time.timeZone = "America/New_York"; 14 | 15 | users.groups.${customArgs.username} = {}; 16 | users.users.${customArgs.username} = { 17 | group = customArgs.username; 18 | isNormalUser = true; 19 | extraGroups = [ "wheel" "docker" ]; 20 | packages = with pkgs; [ 21 | firefox 22 | google-chrome 23 | sunshine 24 | 25 | # unstable below this line 26 | unstablePkgs.vscode 27 | ]; 28 | }; 29 | 30 | services.openssh = { 31 | enable = true; 32 | settings.PasswordAuthentication = true; 33 | settings.PermitRootLogin = "yes"; 34 | }; 35 | services.vscode-server.enable = true; 36 | services.tailscale.enable = true; 37 | services.qemuGuest.enable = true; 38 | 39 | services.xserver.enable = true; 40 | services.xserver.displayManager.gdm.enable = true; 41 | services.xserver.desktopManager.gnome.enable = true; 42 | 43 | sound.enable = true; 44 | hardware.pulseaudio.enable = false; 45 | security.rtkit.enable = true; 46 | services.pipewire = { 47 | enable = true; 48 | alsa.enable = true; 49 | alsa.support32Bit = true; 50 | pulse.enable = true; 51 | }; 52 | 53 | virtualisation = { 54 | docker = { 55 | enable = true; 56 | autoPrune = { 57 | enable = true; 58 | dates = "weekly"; 59 | }; 60 | }; 61 | }; 62 | 63 | system.stateVersion = "23.11"; 64 | } -------------------------------------------------------------------------------- /data/mac-dot-zshrc: -------------------------------------------------------------------------------- 1 | # Default key bindings 2 | [[ -n ${key[Delete]} ]] && bindkey "${key[Delete]}" delete-char 3 | [[ -n ${key[Home]} ]] && bindkey "${key[Home]}" beginning-of-line 4 | [[ -n ${key[End]} ]] && bindkey "${key[End]}" end-of-line 5 | [[ -n ${key[Up]} ]] && bindkey "${key[Up]}" up-line-or-search 6 | [[ -n ${key[Down]} ]] && bindkey "${key[Down]}" down-line-or-search 7 | 8 | # Default prompt 9 | PS1="%n@%m %1~ %# " 10 | if [[ "$(ps -o uid= $PPID)" -eq "$UID" ]]; then 11 | PS1='%F{red}↳nix%f '"$PS1" 12 | fi 13 | 14 | # Enable colours in ls etc. 15 | export CLICOLOR=1 16 | export LSCOLORS=gxfxcxdxbxgggdabagacad 17 | export SOPS_AGE_KEY_FILE=~/.config/sops/age/keys.txt 18 | 19 | # path fix for homebrew 20 | export PATH=$PATH:/opt/homebrew/bin/ 21 | export PATH=$PATH:/Users/alex/go/bin 22 | export PATH=$HOME/.npm-global/bin:$PATH 23 | #export EDITOR=vi 24 | export VISUAL=nvim 25 | export EDITOR=nvim 26 | export TERM=xterm 27 | 28 | # Nix 29 | if [ -e '/nix/var/nix/profiles/default/etc/profile.d/nix-daemon.sh' ]; then 30 | . '/nix/var/nix/profiles/default/etc/profile.d/nix-daemon.sh' 31 | fi 32 | # End Nix 33 | 34 | autoload -Uz compinit 35 | compinit 36 | source <(kubectl completion zsh) 37 | eval "$(just --completions zsh)" 38 | export KUBE_EDITOR="nvim" 39 | 40 | alias k='kubectl' 41 | alias kg='kubectl get' 42 | alias kgp='kubectl get pod' 43 | alias kgn='kubectl get nodes' 44 | 45 | , () { 46 | nix run nixpkgs#comma -- "$@" 47 | } 48 | 49 | eval "$(starship init zsh)" 50 | alias tailscale="/Applications/Tailscale.app/Contents/MacOS/Tailscale" 51 | alias claude="npx @anthropic-ai/claude-code@latest" 52 | #alias ghostty="/Applications/Ghostty.app/Contents/MacOS/ghostty" 53 | 54 | #/Users/alex/go/bin/figurine -f "Doom.flf" magrathea 55 | -------------------------------------------------------------------------------- /home/nvim/keymap.lua: -------------------------------------------------------------------------------- 1 | vim.g.mapleader = " " 2 | 3 | local keymap = vim.keymap 4 | 5 | keymap.set("i", "jk", "", { desc = "Exit insert mode with jk"}) 6 | 7 | keymap.set("n", "nh", ":nohl", { desc = "Clear search highlights" }) 8 | 9 | -- telescope 10 | keymap.set("n", "ff", "Telescope find_files", { desc = "Fuzzy find files in cwd" }) 11 | keymap.set("n", "fr", "Telescope oldfiles", { desc = "Fuzzy find recent files" }) 12 | keymap.set("n", "fs", "Telescope live_grep", { desc = "Find string in cwd" }) 13 | keymap.set("n", "fc", "Telescope grep_string", { desc = "Find string under cursor in cwd" }) 14 | keymap.set("n", "ft", "TodoTelescope", { desc = "Find todos" }) 15 | 16 | -- window management 17 | keymap.set("n", "sv", "v", { desc = "Split window vertically" }) -- split window vertically 18 | keymap.set("n", "sh", "s", { desc = "Split window horizontally" }) -- split window horizontally 19 | keymap.set("n", "se", "=", { desc = "Make splits equal size" }) -- make split windows equal width & height 20 | keymap.set("n", "sx", "close", { desc = "Close current split" }) -- close current split window 21 | 22 | 23 | keymap.set("n", "to", "tabnew", { desc = "Open new tab" }) -- open new tab 24 | keymap.set("n", "tx", "tabclose", { desc = "Close current tab" }) -- close current tab 25 | keymap.set("n", "tn", "tabn", { desc = "Go to next tab" }) -- go to next tab 26 | keymap.set("n", "tp", "tabp", { desc = "Go to previous tab" }) -- go to previous tab 27 | keymap.set("n", "tf", "tabnew %", { desc = "Open current buffer in new tab" }) -- move current buffer to new tab -------------------------------------------------------------------------------- /hosts/nixos/desktop/hardware-configuration.nix: -------------------------------------------------------------------------------- 1 | # Do not modify this file! It was generated by ‘nixos-generate-config’ 2 | # and may be overwritten by future invocations. Please make changes 3 | # to /etc/nixos/configuration.nix instead. 4 | { config, lib, pkgs, modulesPath, ... }: 5 | 6 | { 7 | imports = 8 | [ (modulesPath + "/installer/scan/not-detected.nix") 9 | ]; 10 | 11 | boot.initrd.availableKernelModules = [ "xhci_pci" "ahci" "nvme" "usbhid" "usb_storage" "sd_mod" ]; 12 | boot.initrd.kernelModules = [ ]; 13 | boot.kernelModules = [ "kvm-intel" ]; 14 | boot.extraModulePackages = [ ]; 15 | 16 | fileSystems."/" = 17 | { device = "/dev/disk/by-uuid/3e24fc6d-90ea-489c-80f8-0cddbb53eb46"; 18 | fsType = "btrfs"; 19 | }; 20 | 21 | fileSystems."/boot" = 22 | { device = "/dev/disk/by-uuid/01FC-FB6F"; 23 | fsType = "vfat"; 24 | options = [ "fmask=0022" "dmask=0022" ]; 25 | }; 26 | 27 | swapDevices = [ ]; 28 | 29 | # Enables DHCP on each ethernet and wireless interface. In case of scripted networking 30 | # (the default) this is the recommended approach. When using systemd-networkd it's 31 | # still possible to use this option, but it's recommended to use it in conjunction 32 | # with explicit per-interface declarations with `networking.interfaces..useDHCP`. 33 | networking.useDHCP = lib.mkDefault true; 34 | # networking.interfaces.eno1.useDHCP = lib.mkDefault true; 35 | # networking.interfaces.enp2s0.useDHCP = lib.mkDefault true; 36 | # networking.interfaces.enp9s0.useDHCP = lib.mkDefault true; 37 | # networking.interfaces.wlp8s0.useDHCP = lib.mkDefault true; 38 | 39 | nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; 40 | hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware; 41 | } 42 | -------------------------------------------------------------------------------- /hosts/nixos/ktz-cloud/default.nix: -------------------------------------------------------------------------------- 1 | { config, pkgs, modulesPath, name, ... }: { 2 | imports = [ 3 | ./hardware-configuration.nix 4 | ./networking.nix # generated at runtime by nixos-infect 5 | ./../../common/nixos-common.nix 6 | ]; 7 | 8 | ## DEPLOYMENT 9 | deployment = { 10 | targetHost = name; 11 | targetUser = "root"; 12 | buildOnTarget = true; 13 | tags = [ "ktz-cloud" ]; 14 | }; 15 | 16 | boot.tmp.cleanOnBoot = true; 17 | boot.kernel.sysctl."net.ipv4.ip_forward" = 1; 18 | 19 | ## zfs 20 | boot.supportedFilesystems = [ "zfs" ]; 21 | boot.zfs.extraPools = [ "ktz-cloud" ]; 22 | services.zfs.autoScrub.enable = true; 23 | zramSwap.enable = true; 24 | 25 | networking.hostId = "7f8ded37"; 26 | networking.hostName = "ktz-cloud"; 27 | networking.domain = ""; 28 | 29 | services.tailscale.enable = true; 30 | services.tailscale.useRoutingFeatures = "server"; 31 | 32 | users.users.root.openssh.authorizedKeys.keys = [''ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIM7aI+bMjxTx7L9FRzJlk4UFCyYPzHs9Xs+vAhvPEYtk'' ''ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAILkK1tv8BNtQJFt+n5yOJf6TQ/Ms9WkRi56MpyZOlWIk'' ''ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIA2bSgQvelWzGLh4v1nv+OYx8YNijAikvVq4E9qXDWYN'' ''ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAII+F3XpAIh4l8GfPgwoTqWQj0OdZRnnG9Ak4Z0wu0Upj'' ]; 33 | 34 | home-manager.useGlobalPkgs = true; 35 | home-manager.useUserPackages = true; 36 | home-manager.users.alex = { imports = [ ./../../../home/alex.nix ]; }; 37 | 38 | users.users.alex = { 39 | isNormalUser = true; 40 | description = "alex"; 41 | extraGroups = [ "networkmanager" "wheel" "docker" ]; 42 | packages = with pkgs; [ 43 | home-manager 44 | ]; 45 | }; 46 | programs.bash.interactiveShellInit = "echo \"\" \n figurine -f \"3d.flf\" nixApp"; 47 | 48 | environment.systemPackages = with pkgs; [ 49 | ansible 50 | figurine 51 | htop 52 | molly-guard 53 | python3 54 | tmux 55 | wget 56 | ]; 57 | } -------------------------------------------------------------------------------- /justfile: -------------------------------------------------------------------------------- 1 | # Build the system config and switch to it when running `just` with no args 2 | default: switch 3 | 4 | hostname := `hostname | cut -d "." -f 1` 5 | 6 | ### macos 7 | # Build the nix-darwin system configuration without switching to it 8 | [macos] 9 | build target_host=hostname flags="": 10 | @echo "Building nix-darwin config..." 11 | nix --extra-experimental-features 'nix-command flakes' build ".#darwinConfigurations.{{target_host}}.system" {{flags}} 12 | 13 | # Build the nix-darwin config with the --show-trace flag set 14 | [macos] 15 | trace target_host=hostname: (build target_host "--show-trace") 16 | 17 | # Build the nix-darwin configuration and switch to it 18 | [macos] 19 | switch target_host=hostname: (build target_host) 20 | @echo "switching to new config for {{target_host}}" 21 | sudo ./result/sw/bin/darwin-rebuild switch --flake ".#{{target_host}}" 22 | 23 | ### linux 24 | # Build the NixOS configuration without switching to it 25 | [linux] 26 | build target_host=hostname flags="": 27 | nixos-rebuild build --flake .#{{target_host}} {{flags}} 28 | 29 | # Build the NixOS config with the --show-trace flag set 30 | [linux] 31 | trace target_host=hostname: (build target_host "--show-trace") 32 | 33 | # Build the NixOS configuration and switch to it. 34 | [linux] 35 | switch target_host=hostname: 36 | sudo nixos-rebuild switch --flake .#{{target_host}} 37 | 38 | ## colmena 39 | cbuild: 40 | colmena build 41 | 42 | capply: 43 | colmena apply 44 | 45 | # Update flake inputs to their latest revisions 46 | update: 47 | nix flake update 48 | 49 | ## remote nix vm installation 50 | install IP: 51 | ssh -o "StrictHostKeyChecking no" nixos@{{IP}} "sudo bash -c '\ 52 | nix-shell -p git --run \"cd /root/ && \ 53 | if [ -d \"nix-config\" ]; then \ 54 | rm -rf nix-config; \ 55 | fi && \ 56 | git clone https://github.com/ironicbadger/nix-config.git && \ 57 | cd nix-config/lib/install && \ 58 | sh install-nix.sh\"'" 59 | 60 | 61 | # Garbage collect old OS generations and remove stale packages from the nix store 62 | gc: 63 | nix-collect-garbage -d 64 | nix-collect-garbage --delete-older-than 7d 65 | nix-store --gc 66 | 67 | ## manual command for initial bootstrapping 68 | ## sh <(curl --proto '=https' --tlsv1.2 -L https://nixos.org/nix/install) 69 | ## nix --extra-experimental-features 'nix-command flakes' run nixpkgs#just 70 | 71 | -------------------------------------------------------------------------------- /testing/nixNv/configuration.nix: -------------------------------------------------------------------------------- 1 | { config, pkgs, ... }: 2 | 3 | { 4 | imports = 5 | [ # Include the results of the hardware scan. 6 | ./hardware-configuration.nix 7 | ]; 8 | 9 | # Bootloader. 10 | boot.loader.systemd-boot.enable = true; 11 | boot.loader.efi.canTouchEfiVariables = true; 12 | 13 | networking.hostName = "nvllama"; 14 | networking.networkmanager.enable = true; 15 | networking.localCommands = '' 16 | ip rule add to 10.42.0.0/20 priority 2500 lookup main || true 17 | ''; 18 | 19 | time.timeZone = "America/New_York"; 20 | i18n.defaultLocale = "en_US.UTF-8"; 21 | 22 | services.xserver = { 23 | enable = false; 24 | videoDrivers = [ "nvidia" ]; 25 | }; 26 | #services.xserver.displayManager.gdm.enable = true; 27 | #services.xserver.desktopManager.gnome.enable = true; 28 | 29 | users.users.alex = { 30 | isNormalUser = true; 31 | description = "alex"; 32 | extraGroups = [ "networkmanager" "wheel" "docker" ]; 33 | packages = with pkgs; []; 34 | }; 35 | 36 | nixpkgs.config.allowUnfree = true; 37 | environment.systemPackages = with pkgs; [ 38 | htop 39 | tmux 40 | inxi 41 | wget 42 | pciutils 43 | 44 | # ansible 45 | (python3.withPackages(ps: [ 46 | ps.ansible ps.pip ps.requests 47 | ])) 48 | ]; 49 | 50 | hardware.opengl.enable = true; 51 | hardware.opengl.driSupport32Bit = true; 52 | hardware.nvidia.modesetting.enable = true; 53 | hardware.nvidia.open = false; 54 | hardware.nvidia.nvidiaSettings = true; 55 | hardware.nvidia.powerManagement.enable = true; 56 | hardware.nvidia-container-toolkit.enable = true; 57 | 58 | # List services that you want to enable: 59 | services.openssh.enable = true; 60 | services.qemuGuest.enable = true; 61 | services.tailscale.enable = true; 62 | 63 | virtualisation = { 64 | containers.enable = true; 65 | docker = { 66 | enable = true; 67 | package = pkgs.docker_27; 68 | #enableNvidia = true; 69 | autoPrune = { 70 | enable = true; 71 | dates = "weekly"; 72 | }; 73 | }; 74 | }; 75 | 76 | fileSystems."/mnt/jbod" = { 77 | device = "//10.42.1.10/jbod"; 78 | fsType = "cifs"; 79 | options = [ "username=alex" "password=awdpign23" "x-systemd.automount" "noauto" ]; 80 | }; 81 | 82 | system.stateVersion = "23.11"; # Did you read the comment? 83 | 84 | } -------------------------------------------------------------------------------- /lib/helpers.nix: -------------------------------------------------------------------------------- 1 | { inputs, outputs, stateVersion, ... }: 2 | { 3 | mkDarwin = { hostname, username ? "alex", system ? "aarch64-darwin",}: 4 | let 5 | inherit (inputs.nixpkgs) lib; 6 | unstablePkgs = inputs.nixpkgs-unstable.legacyPackages.${system}; 7 | customConfPath = ./../hosts/darwin/${hostname}; 8 | customConf = if builtins.pathExists (customConfPath) then (customConfPath + "/default.nix") else ./../hosts/common/darwin-common-dock.nix; 9 | in 10 | inputs.nix-darwin.lib.darwinSystem { 11 | specialArgs = { inherit system inputs username unstablePkgs; }; 12 | #extraSpecialArgs = { inherit inputs; } 13 | modules = [ 14 | ../hosts/common/common-packages.nix 15 | ../hosts/common/darwin-common.nix 16 | customConf 17 | # Add nodejs overlay to fix build issues (https://github.com/NixOS/nixpkgs/issues/402079) 18 | { 19 | nixpkgs.overlays = [ 20 | (final: prev: { 21 | nodejs = prev.nodejs_22; 22 | nodejs-slim = prev.nodejs-slim_22; 23 | }) 24 | ]; 25 | } 26 | inputs.home-manager.darwinModules.home-manager { 27 | networking.hostName = hostname; 28 | home-manager.useGlobalPkgs = true; 29 | home-manager.useUserPackages = true; 30 | home-manager.backupFileExtension = "backup"; 31 | home-manager.extraSpecialArgs = { inherit inputs; }; 32 | #home-manager.sharedModules = [ inputs.nixvim.homeManagerModules.nixvim ]; 33 | home-manager.users.${username} = { imports = [ ./../home/${username}.nix ]; }; 34 | } 35 | inputs.nix-homebrew.darwinModules.nix-homebrew { 36 | nix-homebrew = { 37 | enable = true; 38 | enableRosetta = true; 39 | autoMigrate = true; 40 | mutableTaps = true; 41 | user = "${username}"; 42 | taps = with inputs; { 43 | "homebrew/homebrew-core" = homebrew-core; 44 | "homebrew/homebrew-cask" = homebrew-cask; 45 | "homebrew/homebrew-bundle" = homebrew-bundle; 46 | }; 47 | }; 48 | } 49 | 50 | ]; 51 | # ] ++ lib.optionals (builtins.pathExists ./../hosts/darwin/${hostname}/default.nix) [ 52 | # (import ./../hosts/darwin/${hostname}/default.nix) 53 | # ]; 54 | }; 55 | } 56 | -------------------------------------------------------------------------------- /flake.nix: -------------------------------------------------------------------------------- 1 | { 2 | inputs = { 3 | nixpkgs.url = "github:NixOS/nixpkgs/nixos-25.11"; 4 | nixpkgs-unstable.url = "github:nixos/nixpkgs/nixos-unstable"; 5 | nixpkgs-darwin.url = "github:NixOS/nixpkgs/nixpkgs-unstable"; 6 | 7 | nix-darwin.url = "github:lnl7/nix-darwin"; 8 | nix-darwin.inputs.nixpkgs.follows = "nixpkgs-darwin"; 9 | 10 | nix-homebrew.url = "github:zhaofengli-wip/nix-homebrew"; 11 | homebrew-core = { url = "github:homebrew/homebrew-core"; flake = false; }; 12 | homebrew-cask = { url = "github:homebrew/homebrew-cask"; flake = false; }; 13 | homebrew-bundle = { url = "github:homebrew/homebrew-bundle"; flake = false; }; 14 | 15 | home-manager.url = "github:nix-community/home-manager"; 16 | home-manager.inputs.nixpkgs.follows = "nixpkgs-darwin"; 17 | 18 | sops-nix.url = "github:Mic92/sops-nix"; 19 | sops-nix.inputs.nixpkgs.follows = "nixpkgs"; 20 | 21 | # disko.url = "github:nix-community/disko"; 22 | # disko.inputs.nixpkgs.follows = "nixpkgs"; 23 | 24 | # vscode-server.url = "github:nix-community/nixos-vscode-server"; 25 | }; 26 | 27 | outputs = { ... }@inputs: 28 | with inputs; 29 | let 30 | inherit (self) outputs; 31 | 32 | stateVersion = "24.05"; 33 | libx = import ./lib { inherit inputs outputs stateVersion; }; 34 | 35 | in { 36 | 37 | darwinConfigurations = { 38 | # personal 39 | nauvis = libx.mkDarwin { hostname = "nauvis"; }; 40 | mac-studio = libx.mkDarwin { hostname = "mac-studio"; }; 41 | mba15 = libx.mkDarwin { hostname = "mba15"; }; 42 | 43 | # work 44 | baldrick = libx.mkDarwin { hostname = "baldrick"; }; 45 | magrathea = libx.mkDarwin { hostname = "magrathea"; }; 46 | }; 47 | 48 | colmena = { 49 | meta = { 50 | nixpkgs = import inputs.nixpkgs { system = "x86_64-linux"; }; 51 | specialArgs = { 52 | inherit inputs outputs stateVersion self; 53 | }; 54 | }; 55 | 56 | defaults = { lib, config, name, ... }: { 57 | imports = [ 58 | inputs.home-manager.nixosModules.home-manager 59 | ]; 60 | }; 61 | 62 | # wd 63 | morphnix = import ./hosts/nixos/morphnix; 64 | nvllama = import ./hosts/nixos/nvllama; 65 | 66 | # test system 67 | # yeager = nixosSystem "x86_64-linux" "yeager" "alex"; 68 | }; 69 | 70 | }; 71 | 72 | } 73 | -------------------------------------------------------------------------------- /modules/beszel-agent.nix: -------------------------------------------------------------------------------- 1 | # modules/beszel-agent.nix 2 | { config, lib, pkgs, ... }: 3 | 4 | with lib; 5 | 6 | let 7 | cfg = config.services.beszel-agent; 8 | in { 9 | options.services.beszel-agent = { 10 | enable = mkEnableOption "Beszel agent service"; 11 | 12 | # package = mkOption { 13 | # type = types.package; 14 | # default = pkgs.beszel; 15 | # description = "The beszel package to use."; 16 | # }; 17 | 18 | port = mkOption { 19 | type = types.port; 20 | default = 45876; 21 | description = "Port number for the beszel agent to listen on."; 22 | }; 23 | 24 | key = mkOption { 25 | type = types.str; 26 | default = "\"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIFIkr64nTWbuhU7l+VrLO7lPDRgh2LVqTtrIberNge1j\""; 27 | description = "SSH key for the beszel agent."; 28 | }; 29 | 30 | extraFilesystems = mkOption { 31 | type = types.listOf types.str; 32 | default = ["/"]; 33 | description = "List of additional filesystems to monitor."; 34 | }; 35 | 36 | user = mkOption { 37 | type = types.str; 38 | default = "root"; 39 | description = "User account under which the service runs."; 40 | }; 41 | 42 | groups = mkOption { 43 | type = types.listOf types.str; 44 | default = ["root"]; 45 | description = "Groups under which the service runs."; 46 | }; 47 | 48 | restartSec = mkOption { 49 | type = types.int; 50 | default = 5; 51 | description = "Time to wait before restarting the service."; 52 | }; 53 | 54 | gpu = mkOption { 55 | type = types.bool; 56 | default = false; 57 | description = "Sets env var to enable GPU monitoring."; 58 | }; 59 | }; 60 | 61 | config = mkIf cfg.enable { 62 | # users.users.${cfg.user} = { 63 | # isSystemUser = true; 64 | # group = builtins.head cfg.groups; 65 | # extraGroups = builtins.tail cfg.groups; 66 | # description = "Beszel Agent service user"; 67 | # }; 68 | 69 | # #users.groups.${cfg.group} = {}; 70 | # users.groups = builtins.listToAttrs (map (g: { name = g; value = {}; }) cfg.groups); 71 | 72 | systemd.services.beszel-agent = { 73 | description = "Beszel Agent Service"; 74 | after = [ "network.target" ]; 75 | wantedBy = [ "multi-user.target" ]; 76 | 77 | serviceConfig = { 78 | Environment = [ 79 | "KEY=${cfg.key}" 80 | "EXTRA_FILESYSTEMS=${concatStringsSep "," cfg.extraFilesystems}" 81 | "PATH=/run/current-system/sw/bin:$PATH" 82 | ]; 83 | ExecStart = "/run/current-system/sw/bin/beszel-agent"; 84 | User = cfg.user; 85 | Group = builtins.head cfg.groups; 86 | Restart = "always"; 87 | RestartSec = cfg.restartSec; 88 | }; 89 | }; 90 | }; 91 | } -------------------------------------------------------------------------------- /home/starship/starship.toml: -------------------------------------------------------------------------------- 1 | "$schema" = 'https://starship.rs/config-schema.json' 2 | 3 | format = """ 4 | $os\ 5 | $username$hostname\ 6 | [](bg:blue_mid fg:arch_blue)\ 7 | $directory\ 8 | [](fg:blue_mid bg:blue_dark)\ 9 | $git_branch\ 10 | $git_status\ 11 | [](fg:blue_dark bg:midnight_mid)\ 12 | $nodejs\ 13 | $rust\ 14 | $golang\ 15 | $php\ 16 | [](fg:midnight_mid bg:midnight)\ 17 | $time\ 18 | [ ](fg:midnight)\ 19 | \n$character""" 20 | 21 | palette = 'arch_gradient' 22 | 23 | [palettes.arch_gradient] 24 | arch_blue = '#1793d1' 25 | blue_mid = '#0074ae' 26 | blue_dark = '#394260' 27 | midnight_mid = '#212736' 28 | midnight = '#1d2230' 29 | text_dark = '#090c0c' 30 | text_light = '#e3e5e5' 31 | text_accent = '#769ff0' 32 | text_muted = '#a0a9cb' 33 | separator = '#a3aed2' 34 | 35 | [os] 36 | format = "[ $symbol ]($style)" 37 | style = "bg:arch_blue fg:text_light" 38 | disabled = false 39 | 40 | [os.symbols] 41 | Windows = "󰍲" 42 | Ubuntu = "󰕈" 43 | SUSE = "" 44 | Raspbian = "󰐿" 45 | Mint = "󰣭" 46 | Macos = "󰀵" 47 | Manjaro = "" 48 | Linux = "󰌽" 49 | Gentoo = "󰣨" 50 | Fedora = "󰣛" 51 | Alpine = "" 52 | Amazon = "" 53 | Android = "" 54 | Arch = "󰣇" 55 | EndeavourOS = "" 56 | CentOS = "" 57 | Debian = "󰣚" 58 | Redhat = "󱄛" 59 | RedHatEnterprise = "󱄛" 60 | 61 | [username] 62 | show_always = true 63 | style_user = "bg:arch_blue fg:text_light" 64 | style_root = "bg:arch_blue fg:text_light" 65 | format = '[$user]($style)' 66 | 67 | [hostname] 68 | ssh_only = false 69 | format = "[@$hostname ]($style)" 70 | style = "bg:arch_blue fg:text_light" 71 | disabled = false 72 | 73 | [directory] 74 | style = "fg:text_light bg:blue_mid" 75 | format = "[ $path ]($style)" 76 | truncation_length = 2 77 | truncate_to_repo = false 78 | truncation_symbol = "…/" 79 | 80 | [directory.substitutions] 81 | "Documents" = "󰈙 " 82 | "Downloads" = " " 83 | "Music" = " " 84 | "Pictures" = " " 85 | 86 | [git_branch] 87 | symbol = "" 88 | style = "bg:blue_dark" 89 | format = '[[ $symbol $branch ](fg:text_accent bg:blue_dark)]($style)' 90 | 91 | [git_status] 92 | style = "bg:blue_dark" 93 | format = '[[($all_status$ahead_behind )](fg:text_accent bg:blue_dark)]($style)' 94 | 95 | [nodejs] 96 | symbol = "" 97 | style = "bg:midnight_mid" 98 | format = '[[ $symbol ($version) ](fg:text_accent bg:midnight_mid)]($style)' 99 | 100 | [rust] 101 | symbol = "" 102 | style = "bg:midnight_mid" 103 | format = '[[ $symbol ($version) ](fg:text_accent bg:midnight_mid)]($style)' 104 | 105 | [golang] 106 | symbol = "" 107 | style = "bg:midnight_mid" 108 | format = '[[ $symbol ($version) ](fg:text_accent bg:midnight_mid)]($style)' 109 | 110 | [php] 111 | symbol = "" 112 | style = "bg:midnight_mid" 113 | format = '[[ $symbol ($version) ](fg:text_accent bg:midnight_mid)]($style)' 114 | 115 | [time] 116 | disabled = false 117 | time_format = "%R" 118 | style = "bg:midnight" 119 | format = '[[ $time ](fg:text_muted bg:midnight)]($style)' 120 | 121 | [character] 122 | success_symbol = '[>](arch_blue)' 123 | error_symbol = '[>](arch_blue)' -------------------------------------------------------------------------------- /hosts/nixos/desktop/default.nix: -------------------------------------------------------------------------------- 1 | { config, lib, pkgs, ... }: 2 | { 3 | imports = 4 | [ 5 | ./hardware-configuration.nix 6 | ./../../common/nixos-common.nix 7 | ./../../common/common-packages.nix 8 | ]; 9 | 10 | ## DEPLOYMENT 11 | deployment = { 12 | targetHost = "desktop"; 13 | targetUser = "root"; 14 | buildOnTarget = true; 15 | }; 16 | 17 | # Bootloader. 18 | boot.loader.systemd-boot.enable = true; 19 | boot.loader.efi.canTouchEfiVariables = true; 20 | 21 | time.timeZone = "America/New_York"; 22 | 23 | networking = { 24 | firewall.enable = false; 25 | hostName = "desktop"; 26 | interfaces = { 27 | enp2s0 = { 28 | useDHCP = false; 29 | ipv4.addresses = [ { 30 | address = "10.42.1.15"; 31 | prefixLength = 21; 32 | } ]; 33 | }; 34 | }; 35 | defaultGateway = "10.42.0.254"; 36 | nameservers = [ "10.42.0.253" ]; 37 | localCommands = '' 38 | ip rule add to 10.42.0.0/21 priority 2500 lookup main 39 | ''; 40 | }; 41 | 42 | home-manager.useGlobalPkgs = true; 43 | home-manager.useUserPackages = true; 44 | home-manager.users.alex = { imports = [ ./../../../home/alex.nix ]; }; 45 | users.users.alex = { 46 | isNormalUser = true; 47 | description = "alex"; 48 | extraGroups = [ "wheel" "docker"]; 49 | packages = with pkgs; [ 50 | home-manager 51 | steam 52 | ]; 53 | }; 54 | 55 | environment.systemPackages = with pkgs; [ 56 | ansible 57 | fastfetch 58 | htop 59 | inxi 60 | ripgrep 61 | colmena 62 | pciutils 63 | python3 64 | tmux 65 | wget 66 | vim 67 | ]; 68 | 69 | services.xserver = { 70 | enable = true; 71 | videoDrivers = [ "nvidia" ]; 72 | }; 73 | services.displayManager.sddm = { 74 | enable = true; 75 | wayland.enable = true; 76 | }; 77 | services.desktopManager.plasma6.enable = true; 78 | 79 | hardware.opengl.enable = true; 80 | hardware.opengl.driSupport32Bit = true; 81 | hardware.nvidia.modesetting.enable = true; 82 | hardware.nvidia.open = false; 83 | hardware.nvidia.nvidiaSettings = true; 84 | hardware.nvidia.powerManagement.enable = true; 85 | hardware.nvidia-container-toolkit.enable = true; 86 | 87 | virtualisation = { 88 | docker = { 89 | enable = true; 90 | package = pkgs.docker_27; 91 | #enableNvidia = true; 92 | autoPrune = { 93 | enable = true; 94 | dates = "weekly"; 95 | }; 96 | }; 97 | }; 98 | 99 | nixpkgs.config.allowUnfree = true; 100 | services.openssh.enable = true; 101 | services.openssh.settings.PermitRootLogin = "yes"; 102 | services.tailscale.enable = true; 103 | 104 | # system.copySystemConfiguration = true; 105 | # nix = { 106 | # settings = { 107 | # experimental-features = [ "nix-command" "flakes" ]; 108 | # warn-dirty = false; 109 | # }; 110 | # # Automate garbage collection 111 | # gc = { 112 | # automatic = true; 113 | # dates = "weekly"; 114 | # options = "--delete-older-than 5"; 115 | # }; 116 | # }; 117 | 118 | system.stateVersion = "24.05"; # Did you read the comment? 119 | 120 | } 121 | -------------------------------------------------------------------------------- /testing/mediaserver/hardware-configuration.nix: -------------------------------------------------------------------------------- 1 | { config, lib, pkgs, modulesPath, ... }: 2 | 3 | { 4 | imports = 5 | [ (modulesPath + "/installer/scan/not-detected.nix") 6 | ]; 7 | 8 | boot.initrd.availableKernelModules = [ "xhci_pci" "ahci" "nvme" "mpt3sas" "usbhid" "usb_storage" "sd_mod" ]; 9 | boot.initrd.kernelModules = [ ]; 10 | boot.kernelModules = [ "kvm-intel" ]; 11 | boot.extraModulePackages = [ ]; 12 | powerManagement.cpuFreqGovernor = "powersave"; 13 | 14 | fileSystems."/" = 15 | { device = "rpool/root"; 16 | fsType = "zfs"; 17 | }; 18 | 19 | fileSystems."/home" = 20 | { device = "rpool/home"; 21 | fsType = "zfs"; 22 | }; 23 | 24 | fileSystems."/boot" = 25 | { device = "/dev/disk/by-uuid/2AD5-541F"; 26 | fsType = "vfat"; 27 | }; 28 | 29 | swapDevices = []; 30 | 31 | ## zfs disks 32 | ############ 33 | ## rpool - boot mirror 34 | # ata-Samsung_SSD_870_EVO_1TB_S6PTNM0TA60489X 35 | # ata-Samsung_SSD_870_EVO_1TB_S6PTNZ0T331139A 36 | # 37 | ## nvme-appdata - mirrored nvme ssds for appdata 38 | # nvme-Samsung_SSD_970_EVO_Plus_2TB_S59CNJ0N604556L 39 | # nvme-Samsung_SSD_990_PRO_2TB_S7KHNJ0WC22256R 40 | # 41 | ## ssd4tb - downloads and other iops heavy workloads 42 | # ata-CT4000MX500SSD1_2332E86B4A28 43 | # ata-CT4000MX500SSD1_2332E86B4BAA 44 | # ata-CT4000MX500SSD1_2332E86B49E0 45 | # 46 | ## bigrust18 - primary data pool 47 | # mirror0 - ata-WDC_WD180EDGZ-11B9PA0_2GH0M6HS 48 | # mirror0 - ata-WDC_WD180EDGZ-11B9PA0_2TGGDS5Z 49 | # mirror1 - ata-WDC_WD180EDGZ-11B9PA0_3ZGA70DZ 50 | # mirror1 - ata-ST20000NM007D-3DJ103_ZVT5JTWC 51 | 52 | # media storage disks etc 53 | fileSystems."/mnt/jbod" = 54 | { device = "/mnt/disks/disk*"; 55 | fsType = "mergerfs"; 56 | options = ["defaults" "minfreespace=250G" "fsname=mergerfs-jbod"]; 57 | }; 58 | 59 | fileSystems."/mnt/disks/disk1" = 60 | { device = "/dev/disk/by-id/ata-WDC_WD140EDGZ-11B1PA0_Y6GX1KWC-part1"; 61 | fsType = "ext4"; 62 | }; 63 | 64 | fileSystems."/mnt/disks/disk2" = 65 | { device = "/dev/disk/by-id/ata-WDC_WD120EDAZ-11F3RA0_5PJJ0K4F-part1"; 66 | fsType = "xfs"; 67 | }; 68 | 69 | fileSystems."/mnt/disks/disk3" = 70 | { device = "/dev/disk/by-id/ata-WDC_WD120EDAZ-11F3RA0_5PK9EAHE-part1"; 71 | fsType = "xfs"; 72 | }; 73 | 74 | fileSystems."/mnt/disks/disk4" = 75 | { device = "/dev/disk/by-id/ata-WDC_WD120EMAZ-11BLFA0_5PGENVSD-part1"; 76 | fsType = "xfs"; 77 | }; 78 | 79 | fileSystems."/mnt/disks/disk5" = 80 | { device = "/dev/disk/by-id/ata-ST10000DM0004-2GR11L_ZJV5CF96-part1"; 81 | fsType = "xfs"; 82 | }; 83 | 84 | # Enables DHCP on each ethernet and wireless interface. In case of scripted networking 85 | # (the default) this is the recommended approach. When using systemd-networkd it's 86 | # still possible to use this option, but it's recommended to use it in conjunction 87 | # with explicit per-interface declarations with `networking.interfaces..useDHCP`. 88 | networking.useDHCP = lib.mkDefault true; 89 | networking.hostId = "7f8ded12"; 90 | # networking.interfaces.eno1.useDHCP = lib.mkDefault true; 91 | # networking.interfaces.eno2.useDHCP = lib.mkDefault true; 92 | 93 | nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; 94 | hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware; 95 | } 96 | -------------------------------------------------------------------------------- /hosts/nixos/nvllama/default.nix: -------------------------------------------------------------------------------- 1 | { config, inputs, pkgs, name, ... }: 2 | 3 | { 4 | imports = 5 | [ 6 | inputs.sops-nix.nixosModules.sops 7 | ./hardware-configuration.nix 8 | #./../../../home/alex.nix 9 | ./../../common/nixos-common.nix 10 | ./../../common/common-packages.nix 11 | #./beszel.nix 12 | ./../../../modules/beszel-agent.nix 13 | ]; 14 | 15 | ## DEPLOYMENT 16 | deployment = { 17 | targetHost = "nvllama"; 18 | targetUser = "root"; 19 | buildOnTarget = true; 20 | allowLocalDeployment = true; 21 | tags = [ "nvllama" ]; 22 | }; 23 | 24 | # # Secrets management configuration 25 | # sops = { 26 | # defaultSopsFile = ./../../../secrets/secrets.yaml; 27 | # defaultSopsFormat = "yaml"; 28 | # age = { 29 | # sshKeyPaths = [ "/etc/ssh/ssh_host_ed25519_key" ]; 30 | # keyFile = "/root/.config/sops/age/keys.txt"; 31 | # }; 32 | # secrets = { 33 | # morphnix-smb-user = { }; 34 | # morphnix-smb-pass = { }; 35 | # }; 36 | # }; 37 | 38 | # Boot configuration 39 | boot.loader = { 40 | systemd-boot.enable = true; 41 | efi.canTouchEfiVariables = true; 42 | }; 43 | 44 | # Network configuration 45 | networking = { 46 | firewall.enable = false; 47 | hostName = "nvllama"; 48 | interfaces.ens18 = { 49 | useDHCP = false; 50 | ipv4.addresses = [{ 51 | address = "10.42.1.100"; 52 | prefixLength = 21; 53 | }]; 54 | }; 55 | defaultGateway = "10.42.0.254"; 56 | nameservers = [ "10.42.0.253" ]; 57 | # Add custom routing rule for local network 58 | localCommands = '' 59 | ip rule add to 10.42.0.0/21 priority 2500 lookup main || true 60 | ''; 61 | }; 62 | 63 | # System localization 64 | time.timeZone = "America/New_York"; 65 | i18n.defaultLocale = "en_US.UTF-8"; 66 | 67 | services.beszel-agent = { 68 | enable = true; 69 | #groups = ["beszel" "video"]; 70 | gpu = true; 71 | }; 72 | 73 | services.xserver = { 74 | enable = false; 75 | videoDrivers = [ "nvidia" ]; 76 | }; 77 | 78 | # List services that you want to enable: 79 | services.openssh.enable = true; 80 | services.qemuGuest.enable = true; 81 | services.tailscale.enable = true; 82 | 83 | # userland 84 | home-manager.useGlobalPkgs = true; 85 | home-manager.useUserPackages = true; 86 | home-manager.users.alex = { imports = [ ./../../../home/alex.nix ]; }; 87 | users.users.alex = { 88 | isNormalUser = true; 89 | description = "alex"; 90 | extraGroups = [ "networkmanager" "wheel" "docker" ]; 91 | packages = with pkgs; [ 92 | home-manager 93 | ]; 94 | }; 95 | 96 | # System packages configuration 97 | nixpkgs.config.allowUnfree = true; 98 | environment.systemPackages = with pkgs; [ 99 | ansible 100 | colmena 101 | htop 102 | inxi 103 | just 104 | ripgrep 105 | pciutils 106 | python3 107 | tmux 108 | wget 109 | ]; 110 | 111 | # Hardware configuration 112 | hardware = { 113 | graphics = { 114 | enable = true; 115 | enable32Bit = true; 116 | }; 117 | nvidia = { 118 | modesetting.enable = true; 119 | open = false; 120 | nvidiaSettings = true; 121 | powerManagement.enable = true; 122 | }; 123 | nvidia-container-toolkit.enable = true; 124 | }; 125 | 126 | # Virtualisation configuration 127 | virtualisation.docker = { 128 | enable = true; 129 | autoPrune = { 130 | enable = true; 131 | dates = "weekly"; 132 | }; 133 | }; 134 | 135 | # # Filesystem mounts 136 | # fileSystems."/mnt/jbod" = { 137 | # device = "//10.42.1.10/jbod"; 138 | # fsType = "cifs"; 139 | # options = [ 140 | # "username=${config.sops.secrets.morphnix-smb-user.path}" 141 | # "password=${config.sops.secrets.morphnix-smb-pass.path}" 142 | # "x-systemd.automount" 143 | # "noauto" 144 | # ]; 145 | # }; 146 | 147 | } 148 | -------------------------------------------------------------------------------- /home/starship/starship-gruv.toml: -------------------------------------------------------------------------------- 1 | "$schema" = 'https://starship.rs/config-schema.json' 2 | 3 | format = """ 4 | [](color_orange)\ 5 | $os\ 6 | $username$hostname\ 7 | [](bg:color_yellow fg:color_orange)\ 8 | $directory\ 9 | [](fg:color_yellow bg:color_aqua)\ 10 | $git_branch\ 11 | $git_status\ 12 | [](fg:color_aqua bg:color_blue)\ 13 | $c\ 14 | $rust\ 15 | $golang\ 16 | $nodejs\ 17 | $php\ 18 | $java\ 19 | $kotlin\ 20 | $haskell\ 21 | $python\ 22 | [](fg:color_blue bg:color_bg3)\ 23 | $docker_context\ 24 | $conda\ 25 | [](fg:color_bg3 bg:color_bg1)\ 26 | $time\ 27 | [ ](fg:color_bg1)\ 28 | $line_break$character""" 29 | 30 | palette = 'gruvbox_dark' 31 | 32 | [palettes.gruvbox_dark] 33 | color_fg0 = '#fbf1c7' 34 | color_bg1 = '#3c3836' 35 | color_bg3 = '#665c54' 36 | color_blue = '#458588' 37 | color_aqua = '#689d6a' 38 | color_green = '#98971a' 39 | color_orange = '#d65d0e' 40 | color_purple = '#b16286' 41 | color_red = '#cc241d' 42 | color_yellow = '#d79921' 43 | 44 | [os] 45 | disabled = false 46 | style = "bg:color_orange fg:color_fg0" 47 | 48 | [os.symbols] 49 | Windows = "󰍲" 50 | Ubuntu = "󰕈" 51 | SUSE = "" 52 | Raspbian = "󰐿" 53 | Mint = "󰣭" 54 | Macos = "󰀵" 55 | Manjaro = "" 56 | Linux = "󰌽" 57 | Gentoo = "󰣨" 58 | Fedora = "󰣛" 59 | Alpine = "" 60 | Amazon = "" 61 | Android = "" 62 | Arch = "󰣇" 63 | Artix = "󰣇" 64 | EndeavourOS = "" 65 | CentOS = "" 66 | Debian = "󰣚" 67 | Redhat = "󱄛" 68 | RedHatEnterprise = "󱄛" 69 | 70 | [username] 71 | show_always = true 72 | style_user = "bg:color_orange fg:color_fg0" 73 | style_root = "bg:color_orange fg:color_fg0" 74 | format = '[ $user]($style)' 75 | 76 | [hostname] 77 | ssh_only = false 78 | format = "[@$hostname ]($style)" 79 | style = "bg:color_orange fg:color_fg0" 80 | disabled = false 81 | 82 | [directory] 83 | style = "fg:color_fg0 bg:color_yellow" 84 | format = "[ $path ]($style)" 85 | truncation_length = 2 86 | truncate_to_repo = false 87 | truncation_symbol = "…/" 88 | #repo_root_style = "fg:color_fg0 bg:color_yellow" 89 | 90 | [directory.substitutions] 91 | "Downloads" = " " 92 | "Pictures" = " " 93 | 94 | [git_branch] 95 | symbol = "" 96 | style = "bg:color_aqua" 97 | format = '[[ $symbol $branch ](fg:color_fg0 bg:color_aqua)]($style)' 98 | 99 | [git_status] 100 | style = "bg:color_aqua" 101 | format = '[[($all_status$ahead_behind )](fg:color_fg0 bg:color_aqua)]($style)' 102 | 103 | [nodejs] 104 | symbol = "" 105 | style = "bg:color_blue" 106 | format = '[[ $symbol( $version) ](fg:color_fg0 bg:color_blue)]($style)' 107 | 108 | [c] 109 | symbol = " " 110 | style = "bg:color_blue" 111 | format = '[[ $symbol( $version) ](fg:color_fg0 bg:color_blue)]($style)' 112 | 113 | [rust] 114 | symbol = "" 115 | style = "bg:color_blue" 116 | format = '[[ $symbol( $version) ](fg:color_fg0 bg:color_blue)]($style)' 117 | 118 | [golang] 119 | symbol = "" 120 | style = "bg:color_blue" 121 | format = '[[ $symbol( $version) ](fg:color_fg0 bg:color_blue)]($style)' 122 | 123 | [php] 124 | symbol = "" 125 | style = "bg:color_blue" 126 | format = '[[ $symbol( $version) ](fg:color_fg0 bg:color_blue)]($style)' 127 | 128 | [java] 129 | symbol = " " 130 | style = "bg:color_blue" 131 | format = '[[ $symbol( $version) ](fg:color_fg0 bg:color_blue)]($style)' 132 | 133 | [kotlin] 134 | symbol = "" 135 | style = "bg:color_blue" 136 | format = '[[ $symbol( $version) ](fg:color_fg0 bg:color_blue)]($style)' 137 | 138 | [haskell] 139 | symbol = "" 140 | style = "bg:color_blue" 141 | format = '[[ $symbol( $version) ](fg:color_fg0 bg:color_blue)]($style)' 142 | 143 | [python] 144 | symbol = "" 145 | style = "bg:color_blue" 146 | format = '[[ $symbol( $version) ](fg:color_fg0 bg:color_blue)]($style)' 147 | 148 | [docker_context] 149 | symbol = "" 150 | style = "bg:color_bg3" 151 | format = '[[ $symbol( $context) ](fg:#83a598 bg:color_bg3)]($style)' 152 | 153 | [conda] 154 | style = "bg:color_bg3" 155 | format = '[[ $symbol( $environment) ](fg:#83a598 bg:color_bg3)]($style)' 156 | 157 | [time] 158 | disabled = false 159 | time_format = "%R" 160 | style = "bg:color_bg1" 161 | format = '[[  $time ](fg:color_fg0 bg:color_bg1)]($style)' 162 | 163 | [line_break] 164 | disabled = false 165 | 166 | [character] 167 | disabled = false 168 | success_symbol = '[](bold fg:color_green)' 169 | error_symbol = '[](bold fg:color_red)' 170 | vimcmd_symbol = '[](bold fg:color_green)' 171 | vimcmd_replace_one_symbol = '[](bold fg:color_purple)' 172 | vimcmd_replace_symbol = '[](bold fg:color_purple)' 173 | vimcmd_visual_symbol = '[](bold fg:color_yellow)' 174 | -------------------------------------------------------------------------------- /hosts/nixos/morphnix/hardware-configuration.nix: -------------------------------------------------------------------------------- 1 | { config, lib, pkgs, modulesPath, ... }: 2 | 3 | { 4 | # imports = 5 | # [ (modulesPath + "/installer/scan/not-detected.nix") 6 | # ]; 7 | 8 | boot.initrd.availableKernelModules = [ "xhci_pci" "ahci" "nvme" "mpt3sas" "usbhid" "usb_storage" "sd_mod" ]; 9 | boot.initrd.kernelModules = [ ]; 10 | boot.kernelModules = [ "kvm-intel" ]; 11 | boot.extraModulePackages = [ ]; 12 | powerManagement.cpuFreqGovernor = "powersave"; 13 | 14 | fileSystems."/" = 15 | { device = "rpool/root"; 16 | fsType = "zfs"; 17 | }; 18 | 19 | fileSystems."/home" = 20 | { device = "rpool/home"; 21 | fsType = "zfs"; 22 | }; 23 | 24 | fileSystems."/nix" = 25 | { device = "rpool/nix"; 26 | fsType = "zfs"; 27 | }; 28 | 29 | fileSystems."/var" = 30 | { device = "rpool/var"; 31 | fsType = "zfs"; 32 | }; 33 | 34 | fileSystems."/boot" = 35 | { device = "/dev/disk/by-uuid/21CA-6FD6"; 36 | fsType = "vfat"; 37 | options = [ "fmask=0022" "dmask=0022" ]; 38 | }; 39 | 40 | fileSystems."/boot2" = 41 | { device = "/dev/disk/by-uuid/21FB-38F9"; 42 | fsType = "vfat"; 43 | options = [ "fmask=0022" "dmask=0022" ]; 44 | }; 45 | 46 | swapDevices = [ ]; 47 | 48 | ## zfs disks 49 | ############ 50 | ## rpool - boot mirror 51 | # ata-Samsung_SSD_870_EVO_1TB_S6PTNM0TA60489X 52 | # ata-Samsung_SSD_870_EVO_1TB_S6PTNZ0T331139A 53 | # 54 | ## nvme-appdata - mirrored nvme ssds for appdata 55 | # nvme-Samsung_SSD_970_EVO_Plus_2TB_S59CNJ0N604556L 56 | # nvme-Samsung_SSD_990_PRO_2TB_S7KHNJ0WC22256R 57 | # 58 | ## ssd4tb - downloads and other iops heavy workloads 59 | # ata-CT4000MX500SSD1_2332E86B4A28 60 | # ata-CT4000MX500SSD1_2332E86B4BAA 61 | # ata-CT4000MX500SSD1_2332E86B49E0 62 | # 63 | ## rust - primary data pool (mirrored) 64 | # mirror0 - ata-WDC_WD200EDGZ-11B9PA0_2GJXH0XT 65 | # mirror1 - ata-ST20000NM007D-3DJ103_ZVT5JTWC 66 | 67 | ## mergerfs mounts 68 | fileSystems."/mnt/jbod" = 69 | { device = "/mnt/disks/disk*"; 70 | fsType = "mergerfs"; 71 | options = ["defaults" "minfreespace=250G" "fsname=mergerfs-jbod"]; 72 | }; 73 | 74 | ## snapraid parity mounts 75 | fileSystems."/mnt/disks/parity1" = 76 | { device = "/dev/disk/by-id/ata-WDC_WD180EDGZ-11B9PA0_3ZGA70DZ-part1"; 77 | fsType = "ext4"; 78 | }; 79 | 80 | ## btrfs commands 81 | ### mkfs.btrfs /dev/disk/blah 82 | ### btrfs subvolume create /mnt/disks/diskX/data 83 | ### btrfs subvolume create /mnt/snapct/diskX/content 84 | ## data disk mounts 85 | fileSystems."/mnt/disks/disk1" = 86 | { device = "/dev/disk/by-id/ata-WDC_WD180EDGZ-11B9PA0_2TGGDS5Z-part1"; 87 | fsType = "btrfs"; 88 | options = [ "subvol=data" ]; 89 | }; 90 | fileSystems."/mnt/snapct/disk1" = 91 | { device = "/dev/disk/by-id/ata-WDC_WD180EDGZ-11B9PA0_2TGGDS5Z-part1"; 92 | fsType = "btrfs"; 93 | options = [ "subvol=content" ]; 94 | }; 95 | 96 | fileSystems."/mnt/disks/disk2" = 97 | { device = "/dev/disk/by-id/ata-WDC_WD180EDGZ-11B9PA0_2GH0M6HS-part1"; 98 | fsType = "btrfs"; 99 | options = [ "subvol=data" ]; 100 | }; 101 | fileSystems."/mnt/snapct/disk2" = 102 | { device = "/dev/disk/by-id/ata-WDC_WD180EDGZ-11B9PA0_2GH0M6HS-part1"; 103 | fsType = "btrfs"; 104 | options = [ "subvol=content" ]; 105 | }; 106 | 107 | # fileSystems."/mnt/disks/disk3" = 108 | # { device = "/dev/disk/by-id/ata-ST16000NT001-3LV101_ZRS09BS4-part1"; 109 | # fsType = "xfs"; 110 | # }; 111 | 112 | fileSystems."/mnt/disks/disk3" = 113 | { device = "/dev/disk/by-id/ata-WDC_WD140EDGZ-11B1PA0_Y6GX1KWC-part1"; 114 | fsType = "btrfs"; 115 | options = [ "subvol=data" ]; 116 | }; 117 | fileSystems."/mnt/snapct/disk3" = 118 | { device = "/dev/disk/by-id/ata-WDC_WD140EDGZ-11B1PA0_Y6GX1KWC-part1"; 119 | fsType = "btrfs"; 120 | options = [ "subvol=content" ]; 121 | }; 122 | 123 | # # candidate for removal once data is migrated 124 | # fileSystems."/mnt/disks/disk5" = 125 | # { device = "/dev/disk/by-id/ata-WDC_WD120EDAZ-11F3RA0_5PK9EAHE-part1"; 126 | # fsType = "xfs"; 127 | # }; 128 | 129 | networking.useDHCP = lib.mkDefault true; 130 | networking.hostId = "36833652"; 131 | # networking.interfaces.eno1.useDHCP = lib.mkDefault true; 132 | # networking.interfaces.eno2.useDHCP = lib.mkDefault true; 133 | 134 | nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; 135 | hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware; 136 | } 137 | -------------------------------------------------------------------------------- /testing/mediaserver/configuration.nix: -------------------------------------------------------------------------------- 1 | { config, pkgs, ... }: 2 | { 3 | imports = [ 4 | ./hardware-configuration.nix 5 | (fetchTarball "https://github.com/nix-community/nixos-vscode-server/tarball/master") 6 | ]; 7 | 8 | boot.loader.systemd-boot.enable = true; 9 | boot.loader.efi.canTouchEfiVariables = true; 10 | boot.kernelModules = [ "drivetemp" ]; 11 | boot.kernel.sysctl."net.ipv4.ip_forward" = 1; 12 | boot.kernelParams = ["i915.fastboot=1"]; 13 | 14 | boot.supportedFilesystems = [ "zfs" ]; 15 | boot.zfs.extraPools = [ "nvme-appdata" "ssd4tb" "bigrust18" ]; 16 | services.zfs.autoScrub.enable = true; 17 | 18 | time.timeZone = "America/New_York"; 19 | users.users.alex = { 20 | isNormalUser = true; 21 | extraGroups = [ "wheel" "docker" ]; 22 | }; 23 | users.defaultUserShell = pkgs.bash; 24 | programs.bash.interactiveShellInit = "figurine -f \"3d.flf\" morphnix"; 25 | 26 | environment.systemPackages = with pkgs; [ 27 | bc 28 | devbox 29 | gcc 30 | dig 31 | figurine 32 | git 33 | gptfdisk 34 | htop 35 | hddtemp 36 | intel-gpu-tools 37 | inxi 38 | iotop 39 | jq 40 | lm_sensors 41 | mergerfs 42 | mc 43 | molly-guard 44 | ncdu 45 | nmap 46 | nvme-cli 47 | powertop 48 | snapraid 49 | tdns-cli 50 | tmux 51 | tree 52 | wget 53 | xfsprogs 54 | smartmontools 55 | e2fsprogs # badblocks 56 | 57 | # zfs send/rec with sanoid/syncoid 58 | sanoid 59 | lzop 60 | mbuffer 61 | pv 62 | zstd 63 | 64 | ansible 65 | python3 66 | # ansible 67 | #(python3.withPackages(ps: [ 68 | # ps.ansible ps.pip ps.requests 69 | # ])) 70 | ]; 71 | 72 | networking = { 73 | firewall.enable = false; 74 | hostName = "morphnix"; 75 | interfaces = { 76 | enp13s0 = { 77 | useDHCP = false; 78 | ipv4.addresses = [ { 79 | address = "10.42.1.10"; 80 | prefixLength = 20; 81 | } ]; 82 | }; 83 | }; 84 | defaultGateway = "10.42.0.254"; 85 | nameservers = [ "10.42.0.253" ]; 86 | localCommands = '' 87 | ip rule add to 10.42.0.0/20 priority 2500 lookup main || true 88 | ''; 89 | }; 90 | 91 | services.fstrim.enable = true; 92 | services.fwupd.enable = true; 93 | services.openssh = { 94 | enable = true; 95 | # just for testing, do not panic. 96 | settings.PasswordAuthentication = true; 97 | settings.PermitRootLogin = "yes"; 98 | }; 99 | services.tailscale.enable = true; 100 | 101 | services.sanoid = { 102 | enable = true; 103 | interval = "hourly"; 104 | templates.backupmedia = { 105 | daily = 3; 106 | monthly = 3; 107 | autoprune = true; 108 | autosnap = true; 109 | }; 110 | 111 | datasets."bigrust18/media" = { 112 | useTemplate = [ "backupmedia" ]; 113 | recursive = true; 114 | }; 115 | extraArgs = [ "--debug" ]; 116 | }; 117 | 118 | services.syncoid = { 119 | enable = true; 120 | user = "root"; 121 | interval = "hourly"; 122 | commands = { 123 | "bigrust18/media" = { 124 | target = "root@deepthought:bigrust20/media"; 125 | extraArgs = [ "--sshoption=StrictHostKeyChecking=off" ]; 126 | recursive = true; 127 | }; 128 | }; 129 | commonArgs = [ "--debug"]; 130 | }; 131 | 132 | virtualisation = { 133 | docker = { 134 | enable = true; 135 | autoPrune = { 136 | enable = true; 137 | dates = "weekly"; 138 | }; 139 | }; 140 | }; 141 | 142 | services.vscode-server.enable = true; 143 | 144 | services.samba-wsdd.enable = true; # make shares visible for windows 10 clients 145 | services.samba = { 146 | enable = true; 147 | securityType = "user"; 148 | extraConfig = '' 149 | workgroup = WORKGROUP 150 | server string = morphnix 151 | netbios name = morphnix 152 | security = user 153 | guest ok = yes 154 | guest account = nobody 155 | map to guest = bad user 156 | load printers = no 157 | ''; 158 | shares = let 159 | mkShare = path: { 160 | path = path; 161 | browseable = "yes"; 162 | "read only" = "no"; 163 | "guest ok" = "yes"; 164 | "create mask" = "0644"; 165 | "directory mask" = "0755"; 166 | "force user" = "alex"; 167 | "force group" = "users"; 168 | }; 169 | in { 170 | jbod = mkShare "/mnt/jbod"; 171 | bigrust18 = mkShare "/mnt/bigrust18"; 172 | downloads = mkShare "/mnt/downloads"; 173 | }; 174 | }; 175 | 176 | nix = { 177 | settings = { 178 | experimental-features = [ "nix-command" "flakes" ]; 179 | warn-dirty = false; 180 | }; 181 | }; 182 | system.copySystemConfiguration = true; 183 | system.stateVersion = "23.11"; 184 | } -------------------------------------------------------------------------------- /flake.lock: -------------------------------------------------------------------------------- 1 | { 2 | "nodes": { 3 | "brew-src": { 4 | "flake": false, 5 | "locked": { 6 | "lastModified": 1763638478, 7 | "narHash": "sha256-n/IMowE9S23ovmTkKX7KhxXC2Yq41EAVFR2FBIXPcT8=", 8 | "owner": "Homebrew", 9 | "repo": "brew", 10 | "rev": "fbfdbaba008189499958a7aeb1e2c36ab10c067d", 11 | "type": "github" 12 | }, 13 | "original": { 14 | "owner": "Homebrew", 15 | "ref": "5.0.3", 16 | "repo": "brew", 17 | "type": "github" 18 | } 19 | }, 20 | "home-manager": { 21 | "inputs": { 22 | "nixpkgs": [ 23 | "nixpkgs-darwin" 24 | ] 25 | }, 26 | "locked": { 27 | "lastModified": 1765682243, 28 | "narHash": "sha256-yeCxFV/905Wr91yKt5zrVvK6O2CVXWRMSrxqlAZnLp0=", 29 | "owner": "nix-community", 30 | "repo": "home-manager", 31 | "rev": "58bf3ecb2d0bba7bdf363fc8a6c4d49b4d509d03", 32 | "type": "github" 33 | }, 34 | "original": { 35 | "owner": "nix-community", 36 | "repo": "home-manager", 37 | "type": "github" 38 | } 39 | }, 40 | "homebrew-bundle": { 41 | "flake": false, 42 | "locked": { 43 | "lastModified": 1745335228, 44 | "narHash": "sha256-TIKR2UgtyUmHLNZp255/vLs+1I10hXe+sciMEbAGFwE=", 45 | "owner": "homebrew", 46 | "repo": "homebrew-bundle", 47 | "rev": "a3265c84b232e13048ecbf6fc18a2eedfadbeb08", 48 | "type": "github" 49 | }, 50 | "original": { 51 | "owner": "homebrew", 52 | "repo": "homebrew-bundle", 53 | "type": "github" 54 | } 55 | }, 56 | "homebrew-cask": { 57 | "flake": false, 58 | "locked": { 59 | "lastModified": 1765730662, 60 | "narHash": "sha256-eNTehhd2thoC/2A+Tvk1VS4U4dsjRBAtBwrJkYFt0eU=", 61 | "owner": "homebrew", 62 | "repo": "homebrew-cask", 63 | "rev": "0cb064603bf15b47f89526fad82f8061852ebe8e", 64 | "type": "github" 65 | }, 66 | "original": { 67 | "owner": "homebrew", 68 | "repo": "homebrew-cask", 69 | "type": "github" 70 | } 71 | }, 72 | "homebrew-core": { 73 | "flake": false, 74 | "locked": { 75 | "lastModified": 1765731293, 76 | "narHash": "sha256-urpmDq/6PzClLuu7s/Cvzs0eNjWfjRLlj0Ix8JJLlzw=", 77 | "owner": "homebrew", 78 | "repo": "homebrew-core", 79 | "rev": "74887b1e3427ffc60894f4d27f2a50ea210e1f4d", 80 | "type": "github" 81 | }, 82 | "original": { 83 | "owner": "homebrew", 84 | "repo": "homebrew-core", 85 | "type": "github" 86 | } 87 | }, 88 | "nix-darwin": { 89 | "inputs": { 90 | "nixpkgs": [ 91 | "nixpkgs-darwin" 92 | ] 93 | }, 94 | "locked": { 95 | "lastModified": 1765684049, 96 | "narHash": "sha256-svCS2r984qEowMT0y3kCrsD/m0J6zaF5I/UusS7QaH0=", 97 | "owner": "lnl7", 98 | "repo": "nix-darwin", 99 | "rev": "9b628e171bfaea1a3d1edf31eee46251e0fe4a33", 100 | "type": "github" 101 | }, 102 | "original": { 103 | "owner": "lnl7", 104 | "repo": "nix-darwin", 105 | "type": "github" 106 | } 107 | }, 108 | "nix-homebrew": { 109 | "inputs": { 110 | "brew-src": "brew-src" 111 | }, 112 | "locked": { 113 | "lastModified": 1764473698, 114 | "narHash": "sha256-C91gPgv6udN5WuIZWNehp8qdLqlrzX6iF/YyboOj6XI=", 115 | "owner": "zhaofengli-wip", 116 | "repo": "nix-homebrew", 117 | "rev": "6a8ab60bfd66154feeaa1021fc3b32684814a62a", 118 | "type": "github" 119 | }, 120 | "original": { 121 | "owner": "zhaofengli-wip", 122 | "repo": "nix-homebrew", 123 | "type": "github" 124 | } 125 | }, 126 | "nixpkgs": { 127 | "locked": { 128 | "lastModified": 1765608474, 129 | "narHash": "sha256-9Wx53UK0z8Di5iesJID0tS1dRKwGxI4i7tsSanOHhF0=", 130 | "owner": "NixOS", 131 | "repo": "nixpkgs", 132 | "rev": "28bb483c11a1214a73f9fd2d9928a6e2ea86ec71", 133 | "type": "github" 134 | }, 135 | "original": { 136 | "owner": "NixOS", 137 | "ref": "nixos-25.11", 138 | "repo": "nixpkgs", 139 | "type": "github" 140 | } 141 | }, 142 | "nixpkgs-darwin": { 143 | "locked": { 144 | "lastModified": 1765644376, 145 | "narHash": "sha256-yqHBL2wYGwjGL2GUF2w3tofWl8qO9tZEuI4wSqbCrtE=", 146 | "owner": "NixOS", 147 | "repo": "nixpkgs", 148 | "rev": "23735a82a828372c4ef92c660864e82fbe2f5fbe", 149 | "type": "github" 150 | }, 151 | "original": { 152 | "owner": "NixOS", 153 | "ref": "nixpkgs-unstable", 154 | "repo": "nixpkgs", 155 | "type": "github" 156 | } 157 | }, 158 | "nixpkgs-unstable": { 159 | "locked": { 160 | "lastModified": 1765472234, 161 | "narHash": "sha256-9VvC20PJPsleGMewwcWYKGzDIyjckEz8uWmT0vCDYK0=", 162 | "owner": "nixos", 163 | "repo": "nixpkgs", 164 | "rev": "2fbfb1d73d239d2402a8fe03963e37aab15abe8b", 165 | "type": "github" 166 | }, 167 | "original": { 168 | "owner": "nixos", 169 | "ref": "nixos-unstable", 170 | "repo": "nixpkgs", 171 | "type": "github" 172 | } 173 | }, 174 | "root": { 175 | "inputs": { 176 | "home-manager": "home-manager", 177 | "homebrew-bundle": "homebrew-bundle", 178 | "homebrew-cask": "homebrew-cask", 179 | "homebrew-core": "homebrew-core", 180 | "nix-darwin": "nix-darwin", 181 | "nix-homebrew": "nix-homebrew", 182 | "nixpkgs": "nixpkgs", 183 | "nixpkgs-darwin": "nixpkgs-darwin", 184 | "nixpkgs-unstable": "nixpkgs-unstable", 185 | "sops-nix": "sops-nix" 186 | } 187 | }, 188 | "sops-nix": { 189 | "inputs": { 190 | "nixpkgs": [ 191 | "nixpkgs" 192 | ] 193 | }, 194 | "locked": { 195 | "lastModified": 1765684837, 196 | "narHash": "sha256-fJCnsYcpQxxy/wit9EBOK33c0Z9U4D3Tvo3gf2mvHos=", 197 | "owner": "Mic92", 198 | "repo": "sops-nix", 199 | "rev": "94d8af61d8a603d33d1ed3500a33fcf35ae7d3bc", 200 | "type": "github" 201 | }, 202 | "original": { 203 | "owner": "Mic92", 204 | "repo": "sops-nix", 205 | "type": "github" 206 | } 207 | } 208 | }, 209 | "root": "root", 210 | "version": 7 211 | } 212 | -------------------------------------------------------------------------------- /home/alex.nix: -------------------------------------------------------------------------------- 1 | { config, inputs, pkgs, lib, unstablePkgs, ... }: 2 | { 3 | home.stateVersion = "23.11"; 4 | 5 | # list of programs 6 | # https://mipmip.github.io/home-manager-option-search 7 | 8 | # aerospace config 9 | # home.file = lib.mkMerge [ 10 | # (lib.mkIf pkgs.stdenv.isDarwin { 11 | # ".config/aerospace/aerospace.toml".text = builtins.readFile ./aerospace/aerospace.toml; 12 | # }) 13 | # ]; 14 | 15 | programs.gpg.enable = true; 16 | 17 | programs.direnv = { 18 | enable = true; 19 | nix-direnv.enable = true; 20 | }; 21 | 22 | programs.eza = { 23 | enable = true; 24 | enableZshIntegration = true; 25 | icons = "auto"; 26 | git = true; 27 | extraOptions = [ 28 | "--group-directories-first" 29 | "--header" 30 | "--color=auto" 31 | ]; 32 | }; 33 | 34 | programs.fzf = { 35 | enable = true; 36 | enableBashIntegration = true; 37 | enableZshIntegration = true; 38 | tmux.enableShellIntegration = true; 39 | defaultOptions = [ 40 | "--no-mouse" 41 | ]; 42 | }; 43 | 44 | programs.git = { 45 | enable = true; 46 | lfs.enable = true; 47 | settings = { 48 | user = { 49 | email = "alexktz@gmail.com"; 50 | name = "Alex Kretzschmar"; 51 | }; 52 | init = { 53 | defaultBranch = "main"; 54 | }; 55 | merge = { 56 | conflictStyle = "diff3"; 57 | tool = "meld"; 58 | }; 59 | pull = { 60 | rebase = true; 61 | }; 62 | }; 63 | }; 64 | 65 | programs.diff-so-fancy = { 66 | enable = true; 67 | enableGitIntegration = true; 68 | }; 69 | 70 | programs.htop = { 71 | enable = true; 72 | settings.show_program_path = true; 73 | }; 74 | 75 | programs.lf.enable = true; 76 | 77 | programs.starship = { 78 | enable = true; 79 | enableZshIntegration = true; 80 | enableBashIntegration = true; 81 | settings = pkgs.lib.importTOML ./starship/starship.toml; 82 | }; 83 | 84 | programs.bash.enable = true; 85 | 86 | programs.zsh = { 87 | enable = true; 88 | enableCompletion = true; 89 | autosuggestion.enable = true; 90 | #initExtra = (builtins.readFile ../mac-dot-zshrc); 91 | }; 92 | 93 | programs.tmux = { 94 | enable = true; 95 | keyMode = "vi"; 96 | clock24 = true; 97 | historyLimit = 9999999; 98 | mouse = true; 99 | plugins = with pkgs.tmuxPlugins; [ 100 | gruvbox 101 | vim-tmux-navigator 102 | sensible 103 | ]; 104 | extraConfig = '' 105 | # remap prefix from 'C-b' to 'C-a' 106 | unbind C-b 107 | set-option -g prefix C-a 108 | bind-key C-a send-prefix 109 | 110 | # split panes using | and - 111 | bind | split-window -h 112 | bind - split-window -v 113 | unbind '"' 114 | unbind % 115 | 116 | # reload config file 117 | bind r source-file ~/.config/tmux/tmux.conf \; display-message "~/.config/tmux/tmux.conf reloaded." 118 | 119 | # switch panes using Alt-arrow without prefix 120 | bind -n M-Left select-pane -L 121 | bind -n M-Right select-pane -R 122 | bind -n M-Up select-pane -U 123 | bind -n M-Down select-pane -D 124 | 125 | # switch windows using Shift-arrow without prefix 126 | bind -n S-Left previous-window 127 | bind -n S-Right next-window 128 | 129 | # don't rename windows automatically 130 | set-option -g allow-rename off 131 | 132 | # rename window to reflect current program 133 | setw -g automatic-rename on 134 | 135 | # renumber windows when a window is closed 136 | set -g renumber-windows on 137 | 138 | # don't do anything when a 'bell' rings 139 | set -g visual-activity off 140 | set -g visual-bell off 141 | set -g visual-silence off 142 | setw -g monitor-activity off 143 | set -g bell-action none 144 | 145 | # clock mode 146 | setw -g clock-mode-colour yellow 147 | 148 | # copy mode 149 | setw -g mode-style 'fg=black bg=yellow bold' 150 | 151 | # panes 152 | set -g pane-border-style 'fg=yellow' 153 | set -g pane-active-border-style 'fg=green' 154 | 155 | # statusbar 156 | set -g status-position top 157 | set -g status-justify left 158 | set -g status-style 'fg=green' 159 | set -g status-left "" 160 | set -g status-left-length 10 161 | set -g status-right '#[fg=green,bg=default,bright]#(tmux-mem-cpu-load) #[fg=red,dim,bg=default]#(uptime | cut -f 4-5 -d " " | cut -f 1 -d ",") #[fg=white,bg=default]%a%l:%M:%S %p#[default] #[fg=blue]%Y-%m-%d' 162 | 163 | setw -g window-status-current-style 'fg=black bg=green' 164 | setw -g window-status-current-format ' #I #W #F ' 165 | setw -g window-status-style 'fg=green bg=black' 166 | setw -g window-status-format ' #I #[fg=white]#W #[fg=yellow]#F ' 167 | setw -g window-status-bell-style 'fg=black bg=yellow bold' 168 | 169 | # messages 170 | set -g message-style 'fg=black bg=yellow bold' 171 | 172 | # start new session 173 | new-session -s main 174 | ''; 175 | }; 176 | 177 | programs.home-manager.enable = true; 178 | programs.nix-index.enable = true; 179 | 180 | programs.alacritty.enable = true; 181 | 182 | programs.bat.enable = true; 183 | programs.bat.config.theme = "Nord"; 184 | #programs.zsh.shellAliases.cat = "${pkgs.bat}/bin/bat"; 185 | 186 | # programs.neovim = { 187 | # enable = true; 188 | # viAlias = true; 189 | # vimAlias = true; 190 | # vimdiffAlias = true; 191 | # plugins = with pkgs.vimPlugins; [ 192 | # ## regular 193 | # comment-nvim 194 | # lualine-nvim 195 | # nvim-web-devicons 196 | # vim-tmux-navigator 197 | 198 | # ## with config 199 | # # { 200 | # # plugin = gruvbox-nvim; 201 | # # config = "colorscheme gruvbox"; 202 | # # } 203 | 204 | # { 205 | # plugin = catppuccin-nvim; 206 | # config = "colorscheme catppuccin"; 207 | # } 208 | 209 | # ## telescope 210 | # { 211 | # plugin = telescope-nvim; 212 | # type = "lua"; 213 | # config = builtins.readFile ./nvim/plugins/telescope.lua; 214 | # } 215 | # telescope-fzf-native-nvim 216 | 217 | # ]; 218 | # extraLuaConfig = '' 219 | # ${builtins.readFile ./nvim/options.lua} 220 | # ${builtins.readFile ./nvim/keymap.lua} 221 | # ''; 222 | # }; 223 | 224 | programs.zoxide.enable = true; 225 | 226 | programs.ssh = { 227 | enable = true; 228 | enableDefaultConfig = false; 229 | extraConfig = '' 230 | StrictHostKeyChecking no 231 | ''; 232 | matchBlocks = { 233 | # ~/.ssh/config 234 | "*" = { 235 | user = "root"; 236 | extraOptions = { 237 | UserKnownHostsFile = "/dev/null"; 238 | LogLevel = "ERROR"; 239 | }; 240 | }; 241 | "github.com" = { 242 | hostname = "ssh.github.com"; 243 | port = 443; 244 | }; 245 | }; 246 | }; 247 | } -------------------------------------------------------------------------------- /hosts/nixos/morphnix/default.nix: -------------------------------------------------------------------------------- 1 | { config, inputs, pkgs, name, ... }: 2 | { 3 | imports = [ 4 | ./hardware-configuration.nix 5 | (builtins.fetchTarball { 6 | url = "https://github.com/nix-community/nixos-vscode-server/tarball/master"; 7 | sha256 = "09j4kvsxw1d5dvnhbsgih0icbrxqv90nzf0b589rb5z6gnzwjnqf"; 8 | }) 9 | ./../../common/nixos-common.nix 10 | ./../../common/common-packages.nix 11 | ./beszel.nix 12 | ]; 13 | 14 | ## DEPLOYMENT 15 | deployment = { 16 | targetHost = name; 17 | targetUser = "root"; 18 | buildOnTarget = true; 19 | allowLocalDeployment = true; 20 | }; 21 | 22 | boot.loader.systemd-boot.enable = true; 23 | boot.loader.efi.canTouchEfiVariables = true; 24 | boot.kernelModules = [ "drivetemp" ]; 25 | boot.kernel.sysctl."net.ipv4.ip_forward" = 1; 26 | boot.kernelParams = [ 27 | "i915.fastboot=1" 28 | "i915.enable_guc=3" 29 | ]; 30 | 31 | boot.supportedFilesystems = [ "zfs" ]; 32 | boot.zfs.extraPools = [ "nvme-appdata" "ssd4tb" "bigrust" ]; 33 | services.zfs.autoScrub.enable = true; 34 | 35 | time.timeZone = "America/New_York"; 36 | 37 | home-manager.useGlobalPkgs = true; 38 | home-manager.useUserPackages = true; 39 | #home-manager.backupFileExtension = "bak"; 40 | home-manager.users.alex = { imports = [ ./../../../home/alex.nix ]; }; 41 | users.users.alex = { 42 | isNormalUser = true; 43 | extraGroups = [ "wheel" "docker" "render" "video"]; 44 | packages = with pkgs; [ 45 | home-manager 46 | ]; 47 | }; 48 | users.defaultUserShell = pkgs.bash; 49 | programs.bash.interactiveShellInit = "echo \"\" \n figurine -f \"3d.flf\" morphnix"; 50 | 51 | environment.systemPackages = with pkgs; [ 52 | ansible 53 | bc 54 | btrfs-progs 55 | colmena 56 | devbox 57 | dig 58 | e2fsprogs # badblocks 59 | figurine 60 | git 61 | gptfdisk 62 | hddtemp 63 | htop 64 | intel-gpu-tools 65 | inxi 66 | iotop 67 | jq 68 | lm_sensors 69 | mc 70 | mergerfs 71 | molly-guard 72 | ncdu 73 | nmap 74 | nvme-cli 75 | powertop 76 | python3 77 | smartmontools 78 | snapraid 79 | snapper 80 | tmux 81 | tree 82 | wget 83 | xfsprogs 84 | 85 | # zfs send/rec with sanoid/syncoid 86 | sanoid 87 | lzop 88 | mbuffer 89 | pv 90 | zstd 91 | ]; 92 | 93 | ## quicksync 94 | hardware.firmware = [ pkgs.linux-firmware ]; 95 | hardware.opengl = { 96 | enable = true; 97 | extraPackages = with pkgs; [ 98 | # VA-API drivers 99 | intel-media-driver # LIBVA_DRIVER_NAME=iHD 100 | intel-vaapi-driver 101 | libvdpau-va-gl 102 | 103 | # OpenCL and compute support 104 | intel-compute-runtime 105 | intel-gmmlib 106 | onevpl-intel-gpu 107 | 108 | # VA-API utilities and libraries 109 | libva 110 | libva-utils 111 | 112 | # Diagnostic tools 113 | glxinfo 114 | pciutils 115 | ]; 116 | }; 117 | environment.sessionVariables = { 118 | LIBVA_DRIVER_NAME = "iHD"; 119 | LIBVA_DRIVERS_PATH = "/run/opengl-driver/lib/dri"; 120 | LIBVA_MESSAGING_LEVEL = "1"; 121 | GST_VAAPI_ALL_DRIVERS = "1"; 122 | }; 123 | 124 | networking = { 125 | firewall.enable = false; 126 | hostName = "morphnix"; 127 | interfaces = { 128 | enp6s0 = { 129 | useDHCP = false; 130 | ipv4.addresses = [ { 131 | address = "10.42.1.10"; 132 | prefixLength = 21; 133 | } ]; 134 | }; 135 | }; 136 | defaultGateway = "10.42.0.254"; 137 | nameservers = [ "10.42.0.253" ]; 138 | localCommands = '' 139 | ip rule add to 10.42.0.0/21 priority 2500 lookup main || true 140 | ''; 141 | }; 142 | 143 | virtualisation = { 144 | docker = { 145 | enable = true; 146 | autoPrune = { 147 | enable = true; 148 | dates = "weekly"; 149 | }; 150 | }; 151 | }; 152 | 153 | services.fstrim.enable = true; 154 | services.fwupd.enable = true; 155 | services.openssh.enable = true; 156 | services.tailscale.enable = true; 157 | 158 | # services.sanoid = { 159 | # enable = true; 160 | # interval = "hourly"; 161 | # # backupmedia 162 | # templates.backupmedia = { 163 | # daily = 3; 164 | # monthly = 3; 165 | # autoprune = true; 166 | # autosnap = true; 167 | # }; 168 | # datasets."bigrust18/media" = { 169 | # useTemplate = [ "backupmedia" ]; 170 | # recursive = true; 171 | # }; 172 | # extraArgs = [ "--debug" ]; 173 | # }; 174 | 175 | # services.syncoid = { 176 | # enable = true; 177 | # user = "root"; 178 | # interval = "hourly"; 179 | # commands = { 180 | # "bigrust18/media" = { 181 | # target = "root@deepthought:bigrust20/media"; 182 | # extraArgs = [ "--sshoption=StrictHostKeyChecking=off" ]; 183 | # recursive = true; 184 | # }; 185 | # }; 186 | # commonArgs = [ "--debug"]; 187 | # }; 188 | 189 | 190 | services.snapraid = { 191 | enable = true; 192 | parityFiles = [ 193 | "/mnt/disks/parity1/snapraid.parity" 194 | ]; 195 | contentFiles = [ 196 | "/var/snapraid.content" 197 | "/mnt/snapct/disk1/snapraid.content" 198 | "/mnt/snapct/disk2/snapraid.content" 199 | ]; 200 | dataDisks = { 201 | d1 = "/mnt/disks/disk1"; 202 | d2 = "/mnt/disks/disk2"; 203 | d3 = "/mnt/disks/disk3"; 204 | }; 205 | exclude = [ 206 | "*.unrecoverable" 207 | "/tmp/" 208 | "/lost+found/" 209 | "downloads/" 210 | "appdata/" 211 | "*.!sync" 212 | "/.snapshots/" 213 | ]; 214 | }; 215 | 216 | services.snapper.configs = { 217 | disk1 = { 218 | SUBVOLUME = "/mnt/disks/disk1"; 219 | TIMELINE_CREATE = false; 220 | }; 221 | disk2 = { 222 | SUBVOLUME = "/mnt/disks/disk2"; 223 | TIMELINE_CREATE = false; 224 | }; 225 | disk3 = { 226 | SUBVOLUME = "/mnt/disks/disk3"; 227 | TIMELINE_CREATE = false; 228 | }; 229 | }; 230 | 231 | services.vscode-server.enable = true; 232 | 233 | services.samba-wsdd.enable = true; # make shares visible for windows 10 clients 234 | services.samba = { 235 | enable = true; 236 | securityType = "user"; 237 | settings = { 238 | global = { 239 | "workgroup" = "WORKGROUP"; 240 | "server string" = "morphnix"; 241 | "netbios name" = "morphnix"; 242 | "security" = "user"; 243 | "guest ok" = "yes"; 244 | "guest account" = "nobody"; 245 | "map to guest" = "bad user"; 246 | "load printers" = "no"; 247 | }; 248 | }; 249 | shares = let 250 | mkShare = path: { 251 | path = path; 252 | browseable = "yes"; 253 | "read only" = "no"; 254 | "guest ok" = "yes"; 255 | "create mask" = "0644"; 256 | "directory mask" = "0755"; 257 | "force user" = "alex"; 258 | "force group" = "users"; 259 | }; 260 | in { 261 | jbod = mkShare "/mnt/jbod"; 262 | bigrust18 = mkShare "/mnt/bigrust18"; 263 | downloads = mkShare "/mnt/downloads"; 264 | }; 265 | }; 266 | 267 | nix = { 268 | settings = { 269 | experimental-features = [ "nix-command" "flakes" ]; 270 | warn-dirty = false; 271 | }; 272 | }; 273 | } 274 | -------------------------------------------------------------------------------- /home/aerospace/aerospace.toml: -------------------------------------------------------------------------------- 1 | # Place a copy of this config to ~/.aerospace.toml 2 | # After that, you can edit ~/.aerospace.toml to your liking 3 | 4 | # You can use it to add commands that run after login to macOS user session. 5 | # 'start-at-login' needs to be 'true' for 'after-login-command' to work 6 | # Available commands: https://nikitabobko.github.io/AeroSpace/commands 7 | after-login-command = [] 8 | 9 | # You can use it to add commands that run after AeroSpace startup. 10 | # 'after-startup-command' is run after 'after-login-command' 11 | # Available commands : https://nikitabobko.github.io/AeroSpace/commands 12 | after-startup-command = [ 13 | 'exec-and-forget borders active_color=0xffe1e3e4 inactive_color=0xff494d64 width=5.0' 14 | ] 15 | 16 | # Start AeroSpace at login 17 | start-at-login = true 18 | 19 | # Normalizations. See: https://nikitabobko.github.io/AeroSpace/guide#normalization 20 | enable-normalization-flatten-containers = true 21 | enable-normalization-opposite-orientation-for-nested-containers = true 22 | 23 | # See: https://nikitabobko.github.io/AeroSpace/guide#layouts 24 | # The 'accordion-padding' specifies the size of accordion padding 25 | # You can set 0 to disable the padding feature 26 | accordion-padding = 30 27 | 28 | # Possible values: tiles|accordion 29 | default-root-container-layout = 'tiles' 30 | 31 | # Possible values: horizontal|vertical|auto 32 | # 'auto' means: wide monitor (anything wider than high) gets horizontal orientation, 33 | # tall monitor (anything higher than wide) gets vertical orientation 34 | default-root-container-orientation = 'auto' 35 | 36 | # Mouse follows focus when focused monitor changes 37 | # Drop it from your config, if you don't like this behavior 38 | # See https://nikitabobko.github.io/AeroSpace/guide#on-focus-changed-callbacks 39 | # See https://nikitabobko.github.io/AeroSpace/commands#move-mouse 40 | # Fallback value (if you omit the key): on-focused-monitor-changed = [] 41 | on-focused-monitor-changed = ['move-mouse monitor-lazy-center'] 42 | 43 | # You can effectively turn off macOS "Hide application" (cmd-h) feature by toggling this flag 44 | # Useful if you don't use this macOS feature, but accidentally hit cmd-h or cmd-alt-h key 45 | # Also see: https://nikitabobko.github.io/AeroSpace/goodies#disable-hide-app 46 | automatically-unhide-macos-hidden-apps = false 47 | 48 | # Possible values: (qwerty|dvorak) 49 | # See https://nikitabobko.github.io/AeroSpace/guide#key-mapping 50 | [key-mapping] 51 | preset = 'qwerty' 52 | 53 | # Gaps between windows (inner-*) and between monitor edges (outer-*). 54 | # Possible values: 55 | # - Constant: gaps.outer.top = 8 56 | # - Per monitor: gaps.outer.top = [{ monitor.main = 16 }, { monitor."some-pattern" = 32 }, 24] 57 | # In this example, 24 is a default value when there is no match. 58 | # Monitor pattern is the same as for 'workspace-to-monitor-force-assignment'. 59 | # See: https://nikitabobko.github.io/AeroSpace/guide#assign-workspaces-to-monitors 60 | [gaps] 61 | inner.horizontal = 5 62 | inner.vertical = 5 63 | outer.left = 5 64 | outer.bottom = 5 65 | outer.top = 5 66 | outer.right = 5 67 | 68 | # 'main' binding mode declaration 69 | # See: https://nikitabobko.github.io/AeroSpace/guide#binding-modes 70 | # 'main' binding mode must be always presented 71 | # Fallback value (if you omit the key): mode.main.binding = {} 72 | [mode.main.binding] 73 | 74 | # All possible keys: 75 | # - Letters. a, b, c, ..., z 76 | # - Numbers. 0, 1, 2, ..., 9 77 | # - Keypad numbers. keypad0, keypad1, keypad2, ..., keypad9 78 | # - F-keys. f1, f2, ..., f20 79 | # - Special keys. minus, equal, period, comma, slash, backslash, quote, semicolon, backtick, 80 | # leftSquareBracket, rightSquareBracket, space, enter, esc, backspace, tab 81 | # - Keypad special. keypadClear, keypadDecimalMark, keypadDivide, keypadEnter, keypadEqual, 82 | # keypadMinus, keypadMultiply, keypadPlus 83 | # - Arrows. left, down, up, right 84 | 85 | # All possible modifiers: cmd, alt, ctrl, shift 86 | 87 | # All possible commands: https://nikitabobko.github.io/AeroSpace/commands 88 | 89 | # See: https://nikitabobko.github.io/AeroSpace/commands#exec-and-forget 90 | # You can uncomment the following lines to open up terminal with alt + enter shortcut (like in i3) 91 | # alt-enter = '''exec-and-forget osascript -e ' 92 | # tell application "Terminal" 93 | # do script 94 | # activate 95 | # end tell' 96 | # ''' 97 | 98 | # See: https://nikitabobko.github.io/AeroSpace/commands#layout 99 | alt-slash = 'layout tiles horizontal vertical' 100 | alt-comma = 'layout accordion horizontal vertical' 101 | 102 | # See: https://nikitabobko.github.io/AeroSpace/commands#focus 103 | alt-h = 'focus left' 104 | alt-j = 'focus down' 105 | alt-k = 'focus up' 106 | alt-l = 'focus right' 107 | 108 | # See: https://nikitabobko.github.io/AeroSpace/commands#move 109 | alt-shift-h = 'move left' 110 | alt-shift-j = 'move down' 111 | alt-shift-k = 'move up' 112 | alt-shift-l = 'move right' 113 | 114 | # See: https://nikitabobko.github.io/AeroSpace/commands#resize 115 | alt-shift-minus = 'resize smart -50' 116 | alt-shift-equal = 'resize smart +50' 117 | 118 | # See: https://nikitabobko.github.io/AeroSpace/commands#workspace 119 | alt-1 = 'workspace 1' 120 | alt-2 = 'workspace 2' 121 | alt-3 = 'workspace 3' 122 | alt-4 = 'workspace 4' 123 | alt-5 = 'workspace 5' 124 | alt-6 = 'workspace 6' 125 | alt-7 = 'workspace 7' 126 | alt-8 = 'workspace 8' 127 | alt-9 = 'workspace 9' 128 | alt-a = 'workspace A' # In your config, you can drop workspace bindings that you don't need 129 | alt-b = 'workspace B' 130 | alt-c = 'workspace C' 131 | alt-d = 'workspace D' 132 | alt-e = 'workspace E' 133 | alt-f = 'workspace F' 134 | alt-g = 'workspace G' 135 | alt-i = 'workspace I' 136 | alt-m = 'workspace M' 137 | alt-n = 'workspace N' 138 | alt-o = 'workspace O' 139 | alt-p = 'workspace P' 140 | alt-q = 'workspace Q' 141 | alt-r = 'workspace R' 142 | alt-s = 'workspace S' 143 | alt-t = 'workspace T' 144 | alt-u = 'workspace U' 145 | alt-v = 'workspace V' 146 | alt-w = 'workspace W' 147 | alt-x = 'workspace X' 148 | alt-y = 'workspace Y' 149 | alt-z = 'workspace Z' 150 | 151 | # See: https://nikitabobko.github.io/AeroSpace/commands#move-node-to-workspace 152 | alt-shift-1 = 'move-node-to-workspace 1' 153 | alt-shift-2 = 'move-node-to-workspace 2' 154 | alt-shift-3 = 'move-node-to-workspace 3' 155 | alt-shift-4 = 'move-node-to-workspace 4' 156 | alt-shift-5 = 'move-node-to-workspace 5' 157 | alt-shift-6 = 'move-node-to-workspace 6' 158 | alt-shift-7 = 'move-node-to-workspace 7' 159 | alt-shift-8 = 'move-node-to-workspace 8' 160 | alt-shift-9 = 'move-node-to-workspace 9' 161 | alt-shift-a = 'move-node-to-workspace A' 162 | alt-shift-b = 'move-node-to-workspace B' 163 | alt-shift-c = 'move-node-to-workspace C' 164 | alt-shift-d = 'move-node-to-workspace D' 165 | alt-shift-e = 'move-node-to-workspace E' 166 | alt-shift-f = 'move-node-to-workspace F' 167 | alt-shift-g = 'move-node-to-workspace G' 168 | alt-shift-i = 'move-node-to-workspace I' 169 | alt-shift-m = 'move-node-to-workspace M' 170 | alt-shift-n = 'move-node-to-workspace N' 171 | alt-shift-o = 'move-node-to-workspace O' 172 | alt-shift-p = 'move-node-to-workspace P' 173 | alt-shift-q = 'move-node-to-workspace Q' 174 | alt-shift-r = 'move-node-to-workspace R' 175 | alt-shift-s = 'move-node-to-workspace S' 176 | alt-shift-t = 'move-node-to-workspace T' 177 | alt-shift-u = 'move-node-to-workspace U' 178 | alt-shift-v = 'move-node-to-workspace V' 179 | alt-shift-w = 'move-node-to-workspace W' 180 | alt-shift-x = 'move-node-to-workspace X' 181 | alt-shift-y = 'move-node-to-workspace Y' 182 | alt-shift-z = 'move-node-to-workspace Z' 183 | 184 | # See: https://nikitabobko.github.io/AeroSpace/commands#workspace-back-and-forth 185 | alt-tab = 'workspace-back-and-forth' 186 | # See: https://nikitabobko.github.io/AeroSpace/commands#move-workspace-to-monitor 187 | alt-shift-tab = 'move-workspace-to-monitor --wrap-around next' 188 | 189 | # See: https://nikitabobko.github.io/AeroSpace/commands#mode 190 | alt-shift-semicolon = 'mode service' 191 | 192 | # 'service' binding mode declaration. 193 | # See: https://nikitabobko.github.io/AeroSpace/guide#binding-modes 194 | [mode.service.binding] 195 | esc = ['reload-config', 'mode main'] 196 | r = ['flatten-workspace-tree', 'mode main'] # reset layout 197 | f = ['layout floating tiling', 'mode main'] # Toggle between floating and tiling layout 198 | backspace = ['close-all-windows-but-current', 'mode main'] 199 | 200 | # sticky is not yet supported https://github.com/nikitabobko/AeroSpace/issues/2 201 | #s = ['layout sticky tiling', 'mode main'] 202 | 203 | alt-shift-h = ['join-with left', 'mode main'] 204 | alt-shift-j = ['join-with down', 'mode main'] 205 | alt-shift-k = ['join-with up', 'mode main'] 206 | alt-shift-l = ['join-with right', 'mode main'] 207 | -------------------------------------------------------------------------------- /hosts/common/darwin-common.nix: -------------------------------------------------------------------------------- 1 | { inputs, outputs, config, lib, hostname, system, username, pkgs, unstablePkgs, ... }: 2 | let 3 | inherit (inputs) nixpkgs nixpkgs-unstable; 4 | in 5 | { 6 | users.users.alex.home = "/Users/alex"; 7 | 8 | nix = { 9 | settings = { 10 | experimental-features = [ "nix-command" "flakes" ]; 11 | warn-dirty = false; 12 | }; 13 | channel.enable = false; 14 | }; 15 | system.stateVersion = 5; 16 | 17 | # Set primary user for system-wide activation 18 | system.primaryUser = "alex"; 19 | 20 | nixpkgs = { 21 | config.allowUnfree = true; 22 | hostPlatform = lib.mkDefault "${system}"; 23 | }; 24 | 25 | environment.systemPackages = with pkgs; [ 26 | ## unstable 27 | unstablePkgs.yt-dlp 28 | unstablePkgs.get_iplayer 29 | unstablePkgs.colmena 30 | unstablePkgs.talhelper 31 | 32 | ## stable CLI 33 | pkgs.age 34 | pkgs.comma 35 | pkgs.hcloud 36 | pkgs.just 37 | pkgs.lima 38 | pkgs.nix 39 | pkgs.nodejs 40 | pkgs.opentofu 41 | pkgs.pass 42 | pkgs.sops 43 | pkgs.turso-cli 44 | pkgs.yq 45 | ]; 46 | 47 | fonts.packages = [ 48 | pkgs.nerd-fonts.fira-code 49 | pkgs.nerd-fonts.fira-mono 50 | pkgs.nerd-fonts.hack 51 | pkgs.nerd-fonts.jetbrains-mono 52 | ]; 53 | 54 | # pins to stable as unstable updates very often 55 | nix.registry = { 56 | n.to = { 57 | type = "path"; 58 | path = inputs.nixpkgs; 59 | }; 60 | u.to = { 61 | type = "path"; 62 | path = inputs.nixpkgs-unstable; 63 | }; 64 | }; 65 | 66 | programs.nix-index.enable = true; 67 | 68 | programs.zsh = { 69 | enable = true; 70 | enableCompletion = true; 71 | promptInit = builtins.readFile ./../../data/mac-dot-zshrc; 72 | }; 73 | 74 | homebrew = { 75 | enable = true; 76 | onActivation = { 77 | cleanup = "zap"; 78 | autoUpdate = true; 79 | upgrade = true; 80 | }; 81 | global.autoUpdate = true; 82 | 83 | brews = [ 84 | #"bitwarden-cli" 85 | "neovim" 86 | "ollama" 87 | #"tailscale" 88 | #"borders" 89 | ]; 90 | taps = [ 91 | #"FelixKratz/formulae" #sketchybar 92 | ]; 93 | casks = [ 94 | #"screenflow" 95 | #"cleanshot" 96 | "adobe-creative-cloud" 97 | #"nikitabobko/tap/aerospace" 98 | #"alcove" 99 | "audacity" 100 | #"balenaetcher" 101 | #"bambu-studio" 102 | "bentobox" 103 | "claude" 104 | #"claude-code" 105 | #"clop" 106 | "chatgpt-atlas" # Atlas browser 107 | "discord" 108 | "displaylink" 109 | #"docker" 110 | "easy-move-plus-resize" 111 | "element" 112 | "elgato-camera-hub" 113 | "elgato-control-center" 114 | "elgato-stream-deck" 115 | "firefox" 116 | "flameshot" 117 | "font-fira-code" 118 | "font-fira-code-nerd-font" 119 | "font-fira-mono-for-powerline" 120 | "font-hack-nerd-font" 121 | "font-jetbrains-mono-nerd-font" 122 | "font-meslo-lg-nerd-font" 123 | "ghostty" 124 | "google-chrome" 125 | "handbrake" 126 | #"iina" 127 | "hammerspoon" 128 | "istat-menus" 129 | "iterm2" 130 | "jordanbaird-ice" 131 | "karabiner-elements" 132 | "lm-studio" 133 | "logitech-options" 134 | "macwhisper" 135 | #"marta" 136 | "mqtt-explorer" 137 | "music-decoy" # github/FuzzyIdeas/MusicDecoy 138 | "nextcloud" 139 | "notion" 140 | "obs" 141 | "obsidian" 142 | #"ollama-app" 143 | "omnidisksweeper" 144 | "orbstack" 145 | "openscad" 146 | "openttd" 147 | "plexamp" 148 | #"popclip" 149 | #"prusaslicer" 150 | "raycast" 151 | "signal" 152 | #"shortcat" 153 | "slack" 154 | "spotify" 155 | "steam" 156 | #"wireshark" 157 | #"viscosity" 158 | "visual-studio-code" 159 | "vlc" 160 | # "lm-studio" 161 | 162 | # # rogue amoeba 163 | "audio-hijack" 164 | "farrago" 165 | "loopback" 166 | "soundsource" 167 | ]; 168 | masApps = { 169 | "Amphetamine" = 937984704; 170 | "AutoMounter" = 1160435653; 171 | "Bitwarden" = 1352778147; 172 | "Creator's Best Friend" = 1524172135; 173 | "DaVinci Resolve" = 571213070; 174 | "Disk Speed Test" = 425264550; 175 | "Fantastical" = 975937182; 176 | "Ivory for Mastodon by Tapbots" = 6444602274; 177 | "Home Assistant Companion" = 1099568401; 178 | #"Microsoft Remote Desktop" = 1295203466; 179 | "Perplexity" = 6714467650; 180 | "Resize Master" = 1025306797; 181 | "rCmd" = 1596283165; 182 | "Snippety" = 1530751461; 183 | #"Tailscale" = 1475387142; 184 | "Telegram" = 747648890; 185 | "The Unarchiver" = 425424353; 186 | "Todoist" = 585829637; 187 | "UTM" = 1538878817; 188 | "Wireguard" = 1451685025; 189 | 190 | "Final Cut Pro" = 424389933; 191 | 192 | # these apps only available via uk apple id 193 | #"Logic Pro" = 634148309; 194 | #"MainStage" = 634159523; 195 | #"Garageband" = 682658836; 196 | #"ShutterCount" = 720123827; 197 | #"Teleprompter" = 1533078079; 198 | 199 | "Keynote" = 409183694; 200 | "Numbers" = 409203825; 201 | "Pages" = 409201541; 202 | }; 203 | }; 204 | 205 | # Add ability to used TouchID for sudo authentication 206 | security.pam.services.sudo_local.touchIdAuth = true; 207 | 208 | # macOS configuration 209 | system.defaults = { 210 | NSGlobalDomain.AppleShowAllExtensions = true; 211 | NSGlobalDomain.AppleShowScrollBars = "Always"; 212 | NSGlobalDomain.NSUseAnimatedFocusRing = false; 213 | NSGlobalDomain.NSNavPanelExpandedStateForSaveMode = true; 214 | NSGlobalDomain.NSNavPanelExpandedStateForSaveMode2 = true; 215 | NSGlobalDomain.PMPrintingExpandedStateForPrint = true; 216 | NSGlobalDomain.PMPrintingExpandedStateForPrint2 = true; 217 | NSGlobalDomain.NSDocumentSaveNewDocumentsToCloud = false; 218 | NSGlobalDomain.ApplePressAndHoldEnabled = false; 219 | NSGlobalDomain.InitialKeyRepeat = 25; 220 | NSGlobalDomain.KeyRepeat = 2; 221 | NSGlobalDomain."com.apple.mouse.tapBehavior" = 1; 222 | NSGlobalDomain.NSWindowShouldDragOnGesture = true; 223 | NSGlobalDomain.NSAutomaticSpellingCorrectionEnabled = false; 224 | LaunchServices.LSQuarantine = false; # disables "Are you sure?" for new apps 225 | loginwindow.GuestEnabled = false; 226 | finder.FXPreferredViewStyle = "Nlsv"; 227 | }; 228 | 229 | system.defaults.CustomUserPreferences = { 230 | "com.apple.finder" = { 231 | ShowExternalHardDrivesOnDesktop = true; 232 | ShowHardDrivesOnDesktop = false; 233 | ShowMountedServersOnDesktop = false; 234 | ShowRemovableMediaOnDesktop = true; 235 | _FXSortFoldersFirst = true; 236 | # When performing a search, search the current folder by default 237 | FXDefaultSearchScope = "SCcf"; 238 | DisableAllAnimations = true; 239 | NewWindowTarget = "PfDe"; 240 | NewWindowTargetPath = "file://$\{HOME\}/Desktop/"; 241 | AppleShowAllExtensions = true; 242 | FXEnableExtensionChangeWarning = false; 243 | ShowStatusBar = true; 244 | ShowPathbar = true; 245 | WarnOnEmptyTrash = false; 246 | }; 247 | "com.apple.desktopservices" = { 248 | # Avoid creating .DS_Store files on network or USB volumes 249 | DSDontWriteNetworkStores = true; 250 | DSDontWriteUSBStores = true; 251 | }; 252 | "com.apple.HIToolbox" = { 253 | # Completely disable Caps Lock functionality 254 | AppleFnUsageType = 1; # Enable Fn key functionality 255 | AppleKeyboardUIMode = 3; 256 | # Disable Caps Lock toggle entirely 257 | AppleSymbolicHotKeys = { 258 | "60" = { 259 | enabled = false; # Disable Caps Lock toggle hotkey 260 | }; 261 | }; 262 | # Override modifier key behavior to prevent Caps Lock from functioning 263 | AppleModifierKeyRemapping = { 264 | "1452-630-0" = { 265 | # Map Caps Lock (key code 57/0x39) to nothing (disable it) 266 | HIDKeyboardModifierMappingSrc = 30064771129; # Caps Lock 267 | HIDKeyboardModifierMappingDst = 30064771299; # No Action 268 | }; 269 | }; 270 | }; 271 | "com.apple.dock" = { 272 | autohide = false; 273 | launchanim = false; 274 | static-only = false; 275 | show-recents = false; 276 | show-process-indicators = true; 277 | orientation = "left"; 278 | tilesize = 36; 279 | minimize-to-application = true; 280 | mineffect = "scale"; 281 | enable-window-tool = false; 282 | }; 283 | "com.apple.ActivityMonitor" = { 284 | OpenMainWindow = true; 285 | IconType = 5; 286 | SortColumn = "CPUUsage"; 287 | SortDirection = 0; 288 | }; 289 | "com.apple.Safari" = { 290 | # Privacy: don’t send search queries to Apple 291 | UniversalSearchEnabled = false; 292 | SuppressSearchSuggestions = true; 293 | }; 294 | "com.apple.AdLib" = { 295 | allowApplePersonalizedAdvertising = false; 296 | }; 297 | "com.apple.SoftwareUpdate" = { 298 | AutomaticCheckEnabled = true; 299 | # Check for software updates daily, not just once per week 300 | ScheduleFrequency = 1; 301 | # Download newly available updates in background 302 | AutomaticDownload = 1; 303 | # Install System data files & security updates 304 | CriticalUpdateInstall = 1; 305 | }; 306 | "com.apple.TimeMachine".DoNotOfferNewDisksForBackup = true; 307 | # Prevent Photos from opening automatically when devices are plugged in 308 | "com.apple.ImageCapture".disableHotPlug = true; 309 | # Turn on app auto-update 310 | "com.apple.commerce".AutoUpdate = true; 311 | "com.googlecode.iterm2".PromptOnQuit = false; 312 | "com.google.Chrome" = { 313 | AppleEnableSwipeNavigateWithScrolls = true; 314 | DisablePrintPreview = true; 315 | PMPrintingExpandedStateForPrint2 = true; 316 | }; 317 | }; 318 | 319 | } 320 | -------------------------------------------------------------------------------- /data/iStatMenus/iStat-m1max14-slartibartfast.ismp: -------------------------------------------------------------------------------- 1 | $ANSIBLE_VAULT;1.1;AES256 2 | 33373161303366383038623639623638623735663439336639366335303566616439623832366164 3 | 6331306663623635316362336330393433373462323336330a636131626239366232316265353638 4 | 32396632326230666433353535313038376531323662666365393534623966333232316134333730 5 | 3265326261366131610a633631643138653463666163646162616433346166366562323961316263 6 | 38303163373636623939313966623165626264343866393136313561306534306634383033613830 7 | 66373630623663313631623561393862343139393862626265356430323362653864373465306463 8 | 66386138373965376339623337393437383964356163346565323830613862356166653134623161 9 | 31393738346163383061633064333638393866653965393666333335653562626537313066353964 10 | 65386135636561303532636230636233383832343235303965633130663633333330346461336564 11 | 65366461356364326432396563373962316530393436313365653934313632623335663362636265 12 | 35373262363338363235613634343062383732306631383039353166393234633563313462653435 13 | 33623739616665616630613466393863313634656166366161313565306634323333396134643733 14 | 61313363363335643464313563346233383836313830646530393764346230386665313832636563 15 | 66373335656666366664616166643334336538396661636236356638393362643839636536343130 16 | 36656437353236643336383966336662303036663538356461656430366265323633303437343937 17 | 62613765633765326266333834353532613766633538653239616461613265373839643562376235 18 | 34363334343163366161646133323161633663333864323533376134346639373862643039396666 19 | 30636434633634316338396536373231383165306166353632396235383435633938613434636438 20 | 32623237663263626136656630386564376365356133303535633731653434386134666236626230 21 | 34633832353138666335373737643431393130363235623434376538643364323566363131313938 22 | 31316262643165366133646332643361313034636265363137626237336536663230313362643362 23 | 65366330643630373939376432306635323137646165366430346236663338323430623838613933 24 | 30633661643161386539633463306464376665386435633561353138343864663734323232373036 25 | 31326464613265633736366131326264356462373230383932306337303262656230386631333639 26 | 32303466626132643464373363336565623264343339326539636233393133306530333936376539 27 | 65373338323839336234643532396335316536343961386630323634363531326664323834356238 28 | 31306661666232663831633533356535373965363236356361363331376162303165393731363265 29 | 38383037626235353065306236386238626166396433353962376363366165643765373663373134 30 | 35653738663137353161653864373235626638646261346665313332336336383365666565656237 31 | 64316131633361353061326437336263633964646336376665363633633761666561663239383264 32 | 30666232373661333461613231343662623431633166616166653337313262666439343161396362 33 | 38353661643563323863623038396165616664376139356134356666386333613365633435393763 34 | 30633836626631623636653566326639373362373061336666643665633664376635633463663333 35 | 62386563643935346164356330313264646236393437653736666336303365343137303764376634 36 | 38326662663337663732313432653964366530656466303838643439613632636334373837303839 37 | 66373734663632623835396362653932383231613338363261343264316236363264623738623061 38 | 61666237393364623436393131333439666263323331373538663138306631383532613964326338 39 | 32666632303432373865663063306533303735383732653162376636616230373338356463633932 40 | 31653262663637313262646535656161303565343631383661306261613236303065323033663334 41 | 65663762353362656438616139343231396230636332383264306436616539663636373935613938 42 | 35396638323738313461363161663733373939653635376665303339383334303466356362656535 43 | 36373732343363626264636138386565323432343261656236393834303830326537353632633938 44 | 38326365336564613665623935333364323737306536623363383736613836303339666662666563 45 | 65343864363131393635313630306266346430613638343864663362646634373366663036646436 46 | 63656134666539376135363839393739613437373966373638646561323561393535303930356461 47 | 39353933363364626161316230356537393831626439666664366230666636373435306464613565 48 | 39313439393038373963373563646562373333636665343233633530626632333130333461653635 49 | 36363932363362643064363462313136373834646663333531626634303130383735386434626237 50 | 65393832353663666662323634373931646565663838666462663761666264633131623731373635 51 | 38343737633463343165326238393262346136366330333930363533323138646462323663356562 52 | 66633534623230366236366461316431653365396133343864656533653664343239316338333733 53 | 64656630613566343366613631623034343235353933666338646636316639653930613939353565 54 | 39363133326230303863623338383739646666393762313263613931663031353931663632396232 55 | 64336334373839626539303937336537373932383266666134363262396466343339336135636565 56 | 32393666646162343638336365633136343563366634616639363631323165323166653735653064 57 | 37653237653037663436333863623439323536643738323830316237646638326232313833666665 58 | 31383130653562343638376530346262626132323061646535613066396264623964323937326636 59 | 35623165666232643562326230623332316632636339306635386139336165303962303831396231 60 | 61653733323164326661316166306134653261363435316531666636613263633637356663646338 61 | 30666261366235393562376434316234653132336466376161303635616565336163383035643965 62 | 39623863393035633831353962383664376466366131666363656132656339343436613965653533 63 | 31623161656366363333666263353836353662653437613439376162396338613365623236303139 64 | 39353638343662366239313132386336393537383135303464353536646563343161373131613961 65 | 34613834383734383231366163366232653563343439393265613838333735346563303532386536 66 | 32373365666438616232393637313132643666646464356439373265653536643466626162353937 67 | 39383939646639636463313766373632633339306632616234643365656638306439663638306263 68 | 34383031356631306130336239656533663664366336633738313039366533636266663134363064 69 | 39313036656436613161373665353662313234383061383665356238663739373666306262313632 70 | 30353762656633396539396638346138613562393330386238646538653833396461633737666534 71 | 38663236636238313334313862653261633861383739386664616365396332373865616330303162 72 | 35373532396261393561373831373765313637363965376666653765326361613433666533373561 73 | 39373962623265316362656463386662323736643537336264376466616531376335613264333266 74 | 32653636653261326330616234323764623566306562623335323266333832303162663931316566 75 | 39666234623065613365313063376239663066343866366462663562623834333133323239343839 76 | 64643364383763343535373230383239616365316231383261653032363130393534356234373539 77 | 65306237636461653362303765666566633361373630353834366562643139393731616462323337 78 | 66656438363930323265613262643265396564366261316334383665666662306136613237616331 79 | 64323665343539346331656432666664393534346539656564323065613139363134346136336236 80 | 32663361313930663939636463366335356633303339323564313663613034326462333539396466 81 | 63303437663536633736343530306631313961623838323733386534343236383964353536646134 82 | 63646631313664636332613863656563656434376464303166326239343862663632373132323334 83 | 35373631626239366534316337383461396637663031313966373563666432343937393761383864 84 | 64363631616639313434393263383663376431633737663766393030356339623830653365633966 85 | 61366636626666366539336236633532326662383633363036303161383937383462333765323933 86 | 64363630643861623364346438306434636634326661616636353030373365326634646364323031 87 | 31373434363434323464666239313865373736336430346438656264316366306331643038653233 88 | 36346436643637333532313062326133343466626663363363343836303038636462613138306334 89 | 62623930306537363233613934356635306164626135653863633731393738316466316366326431 90 | 66306361633837346463663162303165313539303435363634613666626332663332323235656636 91 | 31343037663331373431363763383939383937363434643530323334356163373736663738303631 92 | 30313764666431633061323331623464636134383962303133383561656235626338613334643330 93 | 37373934383961666635643034383161306234356265653532363930383136343831353831363138 94 | 32646462303333383833653734306435386464363736333261613139353035623666303533633633 95 | 61613865336236653466313066663763616365393331323463383639303336393137653131393264 96 | 64363466643865623733326638393264613263323562333931366535616234396131643233326531 97 | 30663765316633623839356566636563643639616663393661376336663536663633346333643134 98 | 64373964353631306633326438346338383461386533353538316531306264633330316233353035 99 | 61346564393832353166333565303035613763316332653731356463313662616338306463626562 100 | 63643735633463336231643837366533323639626538613839376135336532393432306237353231 101 | 66396564646436643039613831353235646634333632646664396433303162633831313333636464 102 | 30326335376462306562633638663266356333353234316332393465363633306561613661343535 103 | 66383432613230396638396266613065333662623162633663353934316135323634376339313630 104 | 36323766383332393534353331313261386633393064666366653630663937326537636661633466 105 | 63303836633161353832356538333737356463356362363032653039316132663330616633323635 106 | 34303233306263323835373663303962393633326564363538623737323463346661656235613938 107 | 34396465386336313435393565373561653932343264353030653466383330373435373338313062 108 | 36323162393733366665643132353462383562326138373861656536383830386466313261366637 109 | 31313132326535336264383234653538323266343236316131306265306237666339363433616330 110 | 61333131316634313733373436383235616537356166613936393963343839666237626463333563 111 | 62623961326365363734626239343837333933376537376634346634653838373635383331643263 112 | 39343563373365633064366339613339373431363630303035643730353733303835393362633030 113 | 38613530643237326332366461303034323736393465636366316535396362393635346666636139 114 | 37363738383062366134353838316638366164633865663736333434353766633261666461616665 115 | 61643163643931333366386662663064343233613937623365386334346232356232356437383639 116 | 32646233663735653463626532636636363332323563373735316438346232633031343733306636 117 | 34313239616164613331326161646333363036346261376635323138393862653039313039356462 118 | 36306536643033656632353865353937326532346561623437643330656563306161363330323066 119 | 33663938653036616361633263393065643964613363363438333566323364353463626663633932 120 | 32303933633232306533386233353966363863613862613466613066333461393537646531396264 121 | 30663036363532386139323861616630653961363037313337343432333930343333323666663336 122 | 34616435613136626565313435653062303536366163653938383535316261663062653837343432 123 | 39303032363738383863386133663136373665373532613562373137623937613966386165646565 124 | 32326431393961376165623337353436393732616231346464666338663461363539303433386430 125 | 33313261343334666339303734346236363039376437306365366262643233373630393039626636 126 | 38323639386566306634633739363533653437363138313130313665303864376438663465383765 127 | 62303762666163646665373636326331336131363335643538343765323232313263373636633034 128 | 65306665306562346365383762386564326436303861653132643437643838343936643638346561 129 | 31616366623738383334323130323066633562656666366632646263343335323261663162613230 130 | 62396235386239653530383466303764303534643332653634373734376136653136363739366331 131 | 39326230323466346266303561356264386466323930663336313632643035356330313933333766 132 | 33653364613761633163336663653332356136313766643264633138333730313766663563663437 133 | 61303666663963636538336566313737663531323039333362303733653130656463663363356462 134 | 63623639333935396238323539303935326534336335633737333066343366353135306562366566 135 | 35393338346361636262376238643938646339373861663266633966376161313065306137666538 136 | 66336433383262386231353666653866376531616537623436656534323633623231653036373865 137 | 32633564373966646566306130653036663738373034343339643632333130306566383161353331 138 | 33646661326364646533633630303837336130363064306138356339336137643034333534343263 139 | 64316264633433613334316137666661643934633438653337386337313439356638353761393836 140 | 39306163633363373631343362363261306634353361666633303634353765653934373932616631 141 | 31373866326130316666393638623662356430623734336132626166383437383664393866383539 142 | 31323337323861616166663031633530653238336562613462613163363238383939316263326364 143 | 38353232653761656531316433353362393462646438323064613266343237393061646663313930 144 | 66383065636131323363363134343635383066363362343863333862366462653966386631643765 145 | 36373662653664306535623737323931626631303266363030643562333435616238643534303762 146 | 34316366353130323161373566383737636266333034653537326337383136643438646530653736 147 | 63316332306562636130333735616432383931363266643736643862386162313165653666363835 148 | 34613266336434343563646134636532383535663139623939343634326161376166623831663763 149 | 38386263336335386134633834323138303963336138366538316365386333626235646430343639 150 | 30343235363366663565336565343338376266346332343437376462613263386164306136623737 151 | 66663663316238383464643939366132636565363132633130643730333736313737306139333961 152 | 62633836373330343137646236343533613036643463643936356633616163643064326534393065 153 | 66616463623665633832306438316361313335316266386164326136663432663431303933323731 154 | 36333464383430633961633135666631383035653732333730616666363932313566366134623966 155 | 62353264613866666661376639383462646133663932623031353861656461303432373730633136 156 | 65383536373734383663643563666231346561393661316238313432643333393536663238316164 157 | 62643939666136393863656564623061626662623965323335376132386630373861356431656632 158 | 30626365616232323961663034323864336366656162633762633361633165363635326233343433 159 | 62613761326537623264633661663732333439623534363864363630633163333431386330356561 160 | 61343734353635633935313335373665653535383162323064636339323965303636373162303666 161 | 66366637346134343730336666646531363365353566306437373836653034313936333038343231 162 | 32326666613362313439323034646362666437306262623535656364343331323737646334353833 163 | 36346535663735396230363237366630626336306563626263663964333865323138653836623763 164 | 38386439623365373839306336626661353862643232323037366333643837336461393963313565 165 | 37663535616431373239643863643836663865383337653337613166323930353233356264386363 166 | 39616330313037386430363635313535633437336335663736623437346266626632626661363939 167 | 32346332373830316331633438363439633239383237393333306666643063356461613032333138 168 | 38353239366431343063323561333631343034356637363861393434623837653939396232316430 169 | 34623262343064666131393864396432353739616331353066326539613339386634316632646461 170 | 34326362343939326430633164633635343631313361323735303637356534346562383136393433 171 | 32393138313634653330326264613936323563633963636265306365393962636231653138376137 172 | 36616430656366626164643066306332366438383332313839626666383738336532663837663937 173 | 33336661386462333461626335306563333864356339376631666639636638346166396265353930 174 | 65333662393638656330326230666537383934623535366637376431626662336362663939646137 175 | 63363766363332313764333330666330666139363633336432333365356562356266366261366139 176 | 61666235653835663433373435363533656432613235383539393565353732353336623932613035 177 | 62616431353666646264663235386337383134313662306364323361313830613530313737356331 178 | 66613863373833643461643063393466663132383035623561646462363761323332306336663731 179 | 34663161333166653735633966313734386132343536623965323236353661353038633364333766 180 | 61323237633533636233633864663838363935306334666134643264383334356633303936353535 181 | 38303238646664326161613263316366313935653065396165633931373564373739383264633737 182 | 34646562353362333936333635326363343432636662666232393539633137623066363430383564 183 | 36633139383037623634336466323435353632633938333931613636363537613361373834636334 184 | 32613865663435616263656335636634383935623534363338623462313065656233396437393238 185 | 65336561393635343337316562393338363234653933626266626262353064653938316331653464 186 | 33666135373539636330393336653064386532396539613132623930626361373261623232653035 187 | 30343261303761313730303866643739366432373330326264643562636435383532643336336130 188 | 34303235363431643836326139616135636638326239396230356530616263313237363536356533 189 | 30353161393135356362393937383662303665626539643763373437306562386366383638316537 190 | 63333461396463373130643531383938386564333037353461363862303566656133316132613937 191 | 37376635623865323337613938626432306530343264666166656132363266393535626164633939 192 | 37623366646439316333353563646232303265343338633366643563666331623237663638373566 193 | 32316439343230653037623239316663346463656466386437326432373263646661373161643265 194 | 64656535393939353465363737383163306363303866356637356238666164363933666437613231 195 | 36346466313233316266373932373964366337366136636232316134343438633665353033666332 196 | 62353132643836643531643132376432393638323462346164396538333236633434376431643032 197 | 32653330333762306435303364656362663038346332343661646230663566373738653361386431 198 | 65333133333230303562653964393963633430386164633066633032326566633266663834613364 199 | 38366135666462666165623139393065663062386462313139343632346239333936663239313131 200 | 36626337336136356538626435613265633634316434653030613533653635323764353332313963 201 | 39303634343261623163363539393430313462646633613731343436346261346430343063636438 202 | 66353434633734623435396637386265633134626134663532313834633161313439393731323135 203 | 66613033363633396235323363633934643733613265333737323066663636303539313137613436 204 | 37623632363231613965633366663331336466626462393833636130383164633937656638386361 205 | 34633830656462373531393965373638626537633436666264653631343265646238626431353039 206 | 66626431386430373039653039343464393763393136383866613035626461333437326131346661 207 | 65333835663039636237383433653732386461393530653561326232396464666161643565666331 208 | 30343466383334386462363963313430343135393665363365616264353563393931636433663162 209 | 37636535303662623966303633613261613164323066656263366562343734613234333134626339 210 | 32396162643061663230363630373735343035633138306437623364623232333337323066303939 211 | 38636530656335353665396131356166323266613164623130363366356436656163346262393336 212 | 63613934376138623032396437376231633931363734383766306634363265653039626362666235 213 | 34386238363930366230356631666630643262323238353035626337663166623963383832633934 214 | 66636334346431323836383165633462643737626334616166613763666635663634643964363733 215 | 66336330396165663233653030386561373463313762373630396534353963313363393662356438 216 | 36333234366237653733666661323238386133393462663763666636306430316363303138623638 217 | 63616264616438393062383833353234613838626637333839373835303531383937356433653132 218 | 32356532643838333665646431626436633530353638343730626463373338373733613630666661 219 | 63316566653562396362313132613631393931653634306534323333623637663161306638323864 220 | 61356464653337303932363837643733326133303230366136313333636433306630333238356632 221 | 30363837303437666632613763303962343031303635386436356232373135616265336136353562 222 | 32653730303362383132386361366163646163363536636331623233646361333961336430636661 223 | 65653961336439656532643934373462343238653164656363626331303661393066366332363031 224 | 32663664376366303632616234316466613761346139363034303033623837363466316634353631 225 | 37353138383766616463333066393931396265383439313930656365363366653732303233396562 226 | 35353434663633633464626338613230353666353930633839383032366538663161653866613766 227 | 62643063363038666462373131643633623839326161376639643930343562363263666430646331 228 | 35356130373562316562623763363334626538376166663762633433653135316466393832383662 229 | 31323239623863356364346461303038313533663965636365656534386231363365653934303161 230 | 31663738366535313930643661386666633036633630646262316139386235643866643063326130 231 | 62326639346433613665353439326130643533313166643461623233326239376238306431616531 232 | 62373436346436353838363361656134633263626565623430356432636436623833666437336631 233 | 30653663353635356164623836656266663834633331393733613237383462343338363061353063 234 | 64363463623031323633333066633864666163653736343135323563376336656665303434643430 235 | 37303865353661656635353933376235363533363635373438656532323565396664303661366530 236 | 66343038333430663136346236626364316339656666323639303362633630313965636430396431 237 | 65323362326234366338363730376637343533326463646338376135326161376632373166346538 238 | 62323966616235306165303261346337333334626430316665633866643865633963373730313965 239 | 35626361343733343163386535613633386665326433353665333334626264326662346266376431 240 | 34653835393436623333383838326338383532303234323466376437616131326633396465636438 241 | 32303532393266303665663263333231333537656565323463363066306337393961376536356533 242 | 32323466343034666230313432636232363039613637653736613239326637326164343734313763 243 | 35333161313364356230393537656330303866363934393336366336663038353562376465386663 244 | 62383237336230613533643939316238313564633966653764613034363435386433303662383932 245 | 62616133366139383739353631363262333038623734633564666165653365333733343838313339 246 | 63396332626365613937613365633137613235373139363939623633303465343337656465336431 247 | 34663462613861613566326131643238653662623662643331376638616561386562633838356361 248 | 32383137303836366138393431636136643539333939383061386231393164313265363061373938 249 | 35323931666432666234626565616161373937643365343531343632363737366632663162636633 250 | 33653463323530323563633162363163316133623138633930343666313464306261313464626537 251 | 34633264323734303130313963666233376236623764336330616230346337376136383434626662 252 | 33663032646165316636633938653665336465656438316335316638643733323934633334366365 253 | 34356534303438363663313135363763306166653462306634343664656436646536333438346334 254 | 37376633383430343032316234326562633835323266393036306133326436343838636539616664 255 | 66663531656539303736336637313166636632343934313331633863386331376435616364343663 256 | 30326237653532376536303832313861316138323835336432633361313035313639353066656465 257 | 64616630393162666665363139666139346337393865336132346665316238383466616531653434 258 | 38663131336335313962653563626632346662303931376238383735376632303064383063633264 259 | 33356330353533396563346334326230323339363836663332623239303966353637616436373334 260 | 65373331366633663637333762666533613137326164323130373533636237313939303333393062 261 | 63636564383334623434616262343962663131623630386165333264383263343238323738333832 262 | 62363663383731633362623434656431306465383161643632653035666265626461353834396237 263 | 64316135333631343739656430623134393531616232643235396237383966663661613132633932 264 | 62333038356663653839363566653834636632376264336165626338373334353136303665616461 265 | 33633839366134396664343738326263396165303631373639316235663639363630306461363138 266 | 32303737663536333137373135346362366131373239393230616137383231643766393764346535 267 | 30656561643632313339393233393538353336623532333832633439383336643333353237316633 268 | 61353662626666336637663735343233653864346261623730323162336139323534313935366239 269 | 38653931313239633062653935313335363966383964373838383063393237666530636266396233 270 | 62616561663232353762353332366333373337323736643435323032313536333936356539393633 271 | 65353933396234656532373161323831653339363765336663363234343733343935323464346631 272 | 30643536373233323933386136383262623630616431636663306539363262323665333363363366 273 | 38653666373730623866633138343162613563653832643738326164613464623863626135363263 274 | 35376238366332646534656235623563366261393964323965356435633138313163663864343236 275 | 36306335633861396530396138383565633336396230326561353838623732396666653037333965 276 | 64316639323834356336313065623264303935333636326637623566303066636135343333313036 277 | 38343562653562343135323864643861346536666635356661303261343064353539313863373038 278 | 61306337323464633537663334323366396162323133303132613461373030373437636535383336 279 | 33653865393437303763373062343436316238366662356335326132356135383135646566363463 280 | 35336564386661646336613739353535346163353032643439363839663761323235626138343030 281 | 33633933633532333337653136323664316237353839333533323730373638303837623336326136 282 | 63633263383061336235323164646437313437333164393963323963643732396138316563333333 283 | 66313865306235346265343930343937303566396362666365336439356135666266323139366461 284 | 35623031616635346334303534643633613631303136386335393431643631323938656534376564 285 | 30663462326164396638363938623565326334636265316666646234653631393261613766343365 286 | 39393961303139326139343934306666343131303138663562366162333438633366613837333032 287 | 64633234393835386463326131623865663762346339646436393261316537343930353632636465 288 | 34623433363162636536613036326565363365373162323834363431656461626633333164363433 289 | 39313235656262343162323035343966343536656339623639373135663339626563356163396463 290 | 62633037373964633765623630333132343137336138376239323335393839643264633063366430 291 | 33333536656536323664363139663365306535376362373330616439326438306336323764323433 292 | 61653161333138656662333863663363373363323962616137363766336530383063343536303166 293 | 35623766356631356430646263373665313631653361626432353263656131666235356139613063 294 | 36626366346331343737653536343364633339333761633733313631306437333731353932623637 295 | 30666537633630363261396263343866343363393438336630633338383334613039616438333632 296 | 37633335366230623733303331343235336138333432643738646139363962386263623231323361 297 | 64313533653239653336343064313136376162313333373661636236323762346365653734613839 298 | 37343131326131376230663564333036306536623735346137663038363033666537646136373663 299 | 65653937626236653434363963623464363433333731626563373466663965623836363639313632 300 | 35386531646430313230393764393432343338643362636236633566323430396131643036393132 301 | 32333562646138353732346439356665363432326337323465383936643339383735393436313339 302 | 34323030653431623836663661626639303535636665623638316362386635653438666363623933 303 | 33343435323831396330353962386233393830346430623461396130316534393639626262396330 304 | 64373561313731643632396131326530626438653130666661663931396136663561376239373362 305 | 31343662373861336534396637616365393932653663323232353435636266663766326566326262 306 | 35366631353331643162316437313736343137646565396134613539313630653761373564383534 307 | 31616362343630356266373861353033306365333866376235333339656531613336323338613366 308 | 34613362616565653335363139316432303232323431373038383761303930633564646233303136 309 | 38373862643066336263363961336663343138386333353563633039333032616435383031613038 310 | 64306536373566613462313435633334623330616131636165346236636638323332633336653236 311 | 62363266376632386333353330613634316562613932393337376636663939643035313639623938 312 | 65356231623261623264653735653163363833326431373338373464386339313335383031393437 313 | 61643766656534316133633064303437646339313439666430346634633364666336303761383439 314 | 32323035633433633038616534313162613565613262663531656531393939316361353536336431 315 | 31383234363462366465633038333237323931626562643061633063353164386366336135386539 316 | 63653032663632336531626134396361333463646332396166363165333463323332373461623234 317 | 61333665336534356130386163396464643366353466623664663432366464353766663236616536 318 | 31336636623137626265616339323630616337346232336263373162356639383263336134323134 319 | 61396332383961346539376239376265666537356462613265343736383636306162633162653039 320 | 34643761366435373066613264363830343032626538356236616463653132663038613437366533 321 | 32303465386361656438303364613365343636363637613332326130376565366138306439356564 322 | 66383439333430363864373537633362386566393535323735363766383333376136326131396532 323 | 33396563343832646562386361656437626437623539663930353935363738383035646438623935 324 | 61333737386439366533363432333935663563376435343735663630313432353137636137363661 325 | 63303639353437323739346137323132356463616234326330653832626238626161643931313837 326 | 64633165656532616431633833626338366662383531653732353965313265633332653961613633 327 | 64323362383662333063373139613530333362313035616537653637353837643162643336643162 328 | 30653830366662343830316662653033666662316131613764306461376237303561386435353232 329 | 35613331666436623531373264323064636533313132353264643765633931333164306639663135 330 | 34333765646538363361386134656339636534366139333733366564643331643863366266666133 331 | 63323038356636336234376136613964393239303132626530663337653136643662346364323238 332 | 38316437393763613964316536326537363361333131323136626133666366323962363434656437 333 | 31316566336238633161653763353835333631643462613838303161343333333130366530363037 334 | 39613337366234336665383962373834303465393861346162663631323731313561653362356565 335 | 37393739323030343566326431613732393439336565656234643131663435316664383265383938 336 | 35373564336363653031656231616435383962336532383833643032623735383334396637613633 337 | 36396138333761633839386334636662613661333230306135663633363134633631363862366164 338 | 61323533333130313838373932393435323461383233333166646532313838346239353334383263 339 | 38323263333866633164353730616535333461326536643762373734663038666165366136666461 340 | 35393865383132343235616332633533656435343939623464363930393562666335636430616164 341 | 32316366353761616235656162616462336261653261646361306234356436393634633334633532 342 | 64306164653161383431623834393161303764363636613062386234643133303938 343 | -------------------------------------------------------------------------------- /data/iterm2/com.googlecode.iterm2.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | AboutToPasteTabsWithCancel 6 | 7 | AboutToPasteTabsWithCancel_selection 8 | 2 9 | Command 10 | 11 | Custom Color Presets 12 | 13 | Adventure 14 | 15 | Ansi 0 Color 16 | 17 | Alpha Component 18 | 1 19 | Blue Component 20 | 0.015686275437474251 21 | Color Space 22 | sRGB 23 | Green Component 24 | 0.015686275437474251 25 | Red Component 26 | 0.015686275437474251 27 | 28 | Ansi 1 Color 29 | 30 | Alpha Component 31 | 1 32 | Blue Component 33 | 0.2010747492313385 34 | Color Space 35 | sRGB 36 | Green Component 37 | 0.29108250141143799 38 | Red Component 39 | 0.84613037109375 40 | 41 | Ansi 10 Color 42 | 43 | Alpha Component 44 | 1 45 | Blue Component 46 | 0.17344316840171814 47 | Color Space 48 | sRGB 49 | Green Component 50 | 0.71117794513702393 51 | Red Component 52 | 0.59946936368942261 53 | 54 | Ansi 11 Color 55 | 56 | Alpha Component 57 | 1 58 | Blue Component 59 | 0.43768906593322754 60 | Color Space 61 | sRGB 62 | Green Component 63 | 0.71335631608963013 64 | Red Component 65 | 1 66 | 67 | Ansi 12 Color 68 | 69 | Alpha Component 70 | 1 71 | Blue Component 72 | 0.93790364265441895 73 | Color Space 74 | sRGB 75 | Green Component 76 | 0.84338563680648804 77 | Red Component 78 | 0.59206557273864746 79 | 80 | Ansi 13 Color 81 | 82 | Alpha Component 83 | 1 84 | Blue Component 85 | 0.0 86 | Color Space 87 | sRGB 88 | Green Component 89 | 0.47304326295852661 90 | Red Component 91 | 0.66794437170028687 92 | 93 | Ansi 14 Color 94 | 95 | Alpha Component 96 | 1 97 | Blue Component 98 | 0.89620906114578247 99 | Color Space 100 | sRGB 101 | Green Component 102 | 0.81277894973754883 103 | Red Component 104 | 0.74220961332321167 105 | 106 | Ansi 15 Color 107 | 108 | Alpha Component 109 | 1 110 | Blue Component 111 | 0.78074795007705688 112 | Color Space 113 | sRGB 114 | Green Component 115 | 0.83679884672164917 116 | Red Component 117 | 0.89390510320663452 118 | 119 | Ansi 2 Color 120 | 121 | Alpha Component 122 | 1 123 | Blue Component 124 | 0.0078431377187371254 125 | Color Space 126 | sRGB 127 | Green Component 128 | 0.65098041296005249 129 | Red Component 130 | 0.364705890417099 131 | 132 | Ansi 3 Color 133 | 134 | Alpha Component 135 | 1 136 | Blue Component 137 | 0.42989203333854675 138 | Color Space 139 | sRGB 140 | Green Component 141 | 0.73400628566741943 142 | Red Component 143 | 0.9317435622215271 144 | 145 | Ansi 4 Color 146 | 147 | Alpha Component 148 | 1 149 | Blue Component 150 | 0.70196080207824707 151 | Color Space 152 | sRGB 153 | Green Component 154 | 0.47843137383460999 155 | Red Component 156 | 0.25490197539329529 157 | 158 | Ansi 5 Color 159 | 160 | Alpha Component 161 | 1 162 | Blue Component 163 | 0.59879773855209351 164 | Color Space 165 | sRGB 166 | Green Component 167 | 0.76886701583862305 168 | Red Component 169 | 0.89855408668518066 170 | 171 | Ansi 6 Color 172 | 173 | Alpha Component 174 | 1 175 | Blue Component 176 | 0.89620906114578247 177 | Color Space 178 | sRGB 179 | Green Component 180 | 0.81277894973754883 181 | Red Component 182 | 0.74220961332321167 183 | 184 | Ansi 7 Color 185 | 186 | Alpha Component 187 | 1 188 | Blue Component 189 | 0.84705883264541626 190 | Color Space 191 | sRGB 192 | Green Component 193 | 0.87058824300765991 194 | Red Component 195 | 0.85882353782653809 196 | 197 | Ansi 8 Color 198 | 199 | Alpha Component 200 | 1 201 | Blue Component 202 | 0.33635789155960083 203 | Color Space 204 | sRGB 205 | Green Component 206 | 0.33806523680686951 207 | Red Component 208 | 0.40942513942718506 209 | 210 | Ansi 9 Color 211 | 212 | Alpha Component 213 | 1 214 | Blue Component 215 | 0.25763893127441406 216 | Color Space 217 | sRGB 218 | Green Component 219 | 0.41823640465736389 220 | Red Component 221 | 0.84476584196090698 222 | 223 | Background Color 224 | 225 | Alpha Component 226 | 1 227 | Blue Component 228 | 0.015686275437474251 229 | Color Space 230 | sRGB 231 | Green Component 232 | 0.015686275437474251 233 | Red Component 234 | 0.015686275437474251 235 | 236 | Badge Color 237 | 238 | Alpha Component 239 | 0.5 240 | Blue Component 241 | 9.0245162454039018e-09 242 | Color Space 243 | sRGB 244 | Green Component 245 | 0.1490195095539093 246 | Red Component 247 | 0.99999994039535522 248 | 249 | Bold Color 250 | 251 | Alpha Component 252 | 1 253 | Blue Component 254 | 1 255 | Color Space 256 | sRGB 257 | Green Component 258 | 1 259 | Red Component 260 | 0.99999600648880005 261 | 262 | Cursor Color 263 | 264 | Alpha Component 265 | 1 266 | Blue Component 267 | 1 268 | Color Space 269 | sRGB 270 | Green Component 271 | 1 272 | Red Component 273 | 0.99607843160629272 274 | 275 | Cursor Guide Color 276 | 277 | Alpha Component 278 | 0.25 279 | Blue Component 280 | 1 281 | Color Space 282 | sRGB 283 | Green Component 284 | 0.9268307089805603 285 | Red Component 286 | 0.70213186740875244 287 | 288 | Cursor Text Color 289 | 290 | Alpha Component 291 | 1 292 | Blue Component 293 | 0.0 294 | Color Space 295 | sRGB 296 | Green Component 297 | 0.0 298 | Red Component 299 | 0.0 300 | 301 | Foreground Color 302 | 303 | Alpha Component 304 | 1 305 | Blue Component 306 | 1 307 | Color Space 308 | sRGB 309 | Green Component 310 | 1 311 | Red Component 312 | 0.99607843160629272 313 | 314 | Link Color 315 | 316 | Alpha Component 317 | 1 318 | Blue Component 319 | 0.73423302173614502 320 | Color Space 321 | sRGB 322 | Green Component 323 | 0.35916060209274292 324 | Red Component 325 | 0.0 326 | 327 | Selected Text Color 328 | 329 | Alpha Component 330 | 1 331 | Blue Component 332 | 1 333 | Color Space 334 | sRGB 335 | Green Component 336 | 1 337 | Red Component 338 | 0.99999600648880005 339 | 340 | Selection Color 341 | 342 | Alpha Component 343 | 1 344 | Blue Component 345 | 0.37524169683456421 346 | Color Space 347 | sRGB 348 | Green Component 349 | 0.37524682283401489 350 | Red Component 351 | 0.37523728609085083 352 | 353 | Tab Color 354 | 355 | Alpha Component 356 | 1 357 | Blue Component 358 | 0.13531491160392761 359 | Color Space 360 | sRGB 361 | Green Component 362 | 0.13531494140625 363 | Red Component 364 | 0.13531494140625 365 | 366 | 367 | 368 | Default Bookmark Guid 369 | 5711D96A-C639-4876-A903-AAD381BB749B 370 | EnableAPIServer 371 | 372 | HapticFeedbackForEsc 373 | 374 | HotkeyMigratedFromSingleToMulti 375 | 376 | NeverWarnAboutShortLivedSessions_5711D96A-C639-4876-A903-AAD381BB749B 377 | 378 | NeverWarnAboutShortLivedSessions_5711D96A-C639-4876-A903-AAD381BB749B_selection 379 | 0 380 | New Bookmarks 381 | 382 | 383 | ASCII Anti Aliased 384 | 385 | ASCII Ligatures 386 | 387 | Ambiguous Double Width 388 | 389 | Ansi 0 Color 390 | 391 | Alpha Component 392 | 1 393 | Blue Component 394 | 0.015686275437474251 395 | Color Space 396 | sRGB 397 | Green Component 398 | 0.015686275437474251 399 | Red Component 400 | 0.015686275437474251 401 | 402 | Ansi 1 Color 403 | 404 | Alpha Component 405 | 1 406 | Blue Component 407 | 0.2010747492313385 408 | Color Space 409 | sRGB 410 | Green Component 411 | 0.29108250141143799 412 | Red Component 413 | 0.84613037109375 414 | 415 | Ansi 10 Color 416 | 417 | Alpha Component 418 | 1 419 | Blue Component 420 | 0.0 421 | Color Space 422 | sRGB 423 | Green Component 424 | 1 425 | Red Component 426 | 0.448455810546875 427 | 428 | Ansi 11 Color 429 | 430 | Alpha Component 431 | 1 432 | Blue Component 433 | 0.43768906593322754 434 | Color Space 435 | sRGB 436 | Green Component 437 | 0.71335631608963013 438 | Red Component 439 | 1 440 | 441 | Ansi 12 Color 442 | 443 | Alpha Component 444 | 1 445 | Blue Component 446 | 0.979888916015625 447 | Color Space 448 | sRGB 449 | Green Component 450 | 0.8947165141449156 451 | Red Component 452 | 0.66824608342722058 453 | 454 | Ansi 13 Color 455 | 456 | Alpha Component 457 | 1 458 | Blue Component 459 | 0.0 460 | Color Space 461 | sRGB 462 | Green Component 463 | 0.47304326295852661 464 | Red Component 465 | 0.66794437170028687 466 | 467 | Ansi 14 Color 468 | 469 | Alpha Component 470 | 1 471 | Blue Component 472 | 0.89620906114578247 473 | Color Space 474 | sRGB 475 | Green Component 476 | 0.81277894973754883 477 | Red Component 478 | 0.74220961332321167 479 | 480 | Ansi 15 Color 481 | 482 | Alpha Component 483 | 1 484 | Blue Component 485 | 0.78074795007705688 486 | Color Space 487 | sRGB 488 | Green Component 489 | 0.83679884672164917 490 | Red Component 491 | 0.89390510320663452 492 | 493 | Ansi 2 Color 494 | 495 | Alpha Component 496 | 1 497 | Blue Component 498 | 0.0 499 | Color Space 500 | sRGB 501 | Green Component 502 | 0.481109619140625 503 | Red Component 504 | 0.12158412951976061 505 | 506 | Ansi 3 Color 507 | 508 | Alpha Component 509 | 1 510 | Blue Component 511 | 0.42989203333854675 512 | Color Space 513 | sRGB 514 | Green Component 515 | 0.73400628566741943 516 | Red Component 517 | 0.9317435622215271 518 | 519 | Ansi 4 Color 520 | 521 | Alpha Component 522 | 1 523 | Blue Component 524 | 1 525 | Color Space 526 | sRGB 527 | Green Component 528 | 0.724334716796875 529 | Red Component 530 | 0.44866943359375 531 | 532 | Ansi 5 Color 533 | 534 | Alpha Component 535 | 1 536 | Blue Component 537 | 0.59879773855209351 538 | Color Space 539 | sRGB 540 | Green Component 541 | 0.76886701583862305 542 | Red Component 543 | 0.89855408668518066 544 | 545 | Ansi 6 Color 546 | 547 | Alpha Component 548 | 1 549 | Blue Component 550 | 0.89620906114578247 551 | Color Space 552 | sRGB 553 | Green Component 554 | 0.81277894973754883 555 | Red Component 556 | 0.74220961332321167 557 | 558 | Ansi 7 Color 559 | 560 | Alpha Component 561 | 1 562 | Blue Component 563 | 0.84705883264541626 564 | Color Space 565 | sRGB 566 | Green Component 567 | 0.87058824300765991 568 | Red Component 569 | 0.85882353782653809 570 | 571 | Ansi 8 Color 572 | 573 | Alpha Component 574 | 1 575 | Blue Component 576 | 0.33635789155960083 577 | Color Space 578 | sRGB 579 | Green Component 580 | 0.33806523680686951 581 | Red Component 582 | 0.40942513942718506 583 | 584 | Ansi 9 Color 585 | 586 | Alpha Component 587 | 1 588 | Blue Component 589 | 0.25763893127441406 590 | Color Space 591 | sRGB 592 | Green Component 593 | 0.41823640465736389 594 | Red Component 595 | 0.84476584196090698 596 | 597 | BM Growl 598 | 599 | Background Color 600 | 601 | Alpha Component 602 | 1 603 | Blue Component 604 | 0.23531242180615664 605 | Color Space 606 | sRGB 607 | Green Component 608 | 0.23531242180615664 609 | Red Component 610 | 0.237640380859375 611 | 612 | Background Image Location 613 | 614 | Badge Color 615 | 616 | Alpha Component 617 | 0.5 618 | Blue Component 619 | 9.0245162454039018e-09 620 | Color Space 621 | sRGB 622 | Green Component 623 | 0.1490195095539093 624 | Red Component 625 | 0.99999994039535522 626 | 627 | Blinking Cursor 628 | 629 | Blur 630 | 631 | Blur Radius 632 | 10.074991945876288 633 | Bold Color 634 | 635 | Alpha Component 636 | 1 637 | Blue Component 638 | 1 639 | Color Space 640 | sRGB 641 | Green Component 642 | 1 643 | Red Component 644 | 0.99999600648880005 645 | 646 | Character Encoding 647 | 4 648 | Close Sessions On End 649 | 650 | Columns 651 | 120 652 | Command 653 | /etc/profiles/per-user/alex/bin/zsh 654 | Cursor Color 655 | 656 | Alpha Component 657 | 1 658 | Blue Component 659 | 1 660 | Color Space 661 | sRGB 662 | Green Component 663 | 1 664 | Red Component 665 | 0.99607843160629272 666 | 667 | Cursor Guide Color 668 | 669 | Alpha Component 670 | 0.25 671 | Blue Component 672 | 1 673 | Color Space 674 | sRGB 675 | Green Component 676 | 0.9268307089805603 677 | Red Component 678 | 0.70213186740875244 679 | 680 | Cursor Text Color 681 | 682 | Alpha Component 683 | 1 684 | Blue Component 685 | 0.0 686 | Color Space 687 | sRGB 688 | Green Component 689 | 0.0 690 | Red Component 691 | 0.0 692 | 693 | Custom Command 694 | Custom Shell 695 | Custom Directory 696 | No 697 | Default Bookmark 698 | No 699 | Description 700 | Default 701 | Disable Window Resizing 702 | 703 | Flashing Bell 704 | 705 | Foreground Color 706 | 707 | Alpha Component 708 | 1 709 | Blue Component 710 | 0.873870849609375 711 | Color Space 712 | sRGB 713 | Green Component 714 | 0.873870849609375 715 | Red Component 716 | 0.87307079695165157 717 | 718 | Guid 719 | 5711D96A-C639-4876-A903-AAD381BB749B 720 | Horizontal Spacing 721 | 1.04 722 | Idle Code 723 | 0 724 | Initial Text 725 | 726 | Jobs to Ignore 727 | 728 | rlogin 729 | ssh 730 | slogin 731 | telnet 732 | 733 | Keyboard Map 734 | 735 | Link Color 736 | 737 | Alpha Component 738 | 1 739 | Blue Component 740 | 0.73423302173614502 741 | Color Space 742 | sRGB 743 | Green Component 744 | 0.35916060209274292 745 | Red Component 746 | 0.0 747 | 748 | Mouse Reporting 749 | 750 | Name 751 | grey 752 | Non Ascii Font 753 | FiraCodeNFM-Reg 17 754 | Non-ASCII Anti Aliased 755 | 756 | Non-ASCII Ligatures 757 | 758 | Normal Font 759 | FiraCodeNFM-Reg 17 760 | Only The Default BG Color Uses Transparency 761 | 762 | Option Key Sends 763 | 1 764 | Prompt Before Closing 2 765 | 766 | Right Option Key Sends 767 | 0 768 | Rows 769 | 38 770 | Screen 771 | -1 772 | Scrollback Lines 773 | 0 774 | Selected Text Color 775 | 776 | Alpha Component 777 | 1 778 | Blue Component 779 | 1 780 | Color Space 781 | sRGB 782 | Green Component 783 | 1 784 | Red Component 785 | 0.99999600648880005 786 | 787 | Selection Color 788 | 789 | Alpha Component 790 | 1 791 | Blue Component 792 | 0.37524169683456421 793 | Color Space 794 | sRGB 795 | Green Component 796 | 0.37524682283401489 797 | Red Component 798 | 0.37523728609085083 799 | 800 | Send Code When Idle 801 | 802 | Shortcut 803 | 804 | Silence Bell 805 | 806 | Sync Title 807 | 808 | Tab Color 809 | 810 | Alpha Component 811 | 1 812 | Blue Component 813 | 0.13531491160392761 814 | Color Space 815 | sRGB 816 | Green Component 817 | 0.13531494140625 818 | Red Component 819 | 0.13531494140625 820 | 821 | Tags 822 | 823 | Terminal Type 824 | xterm-256color 825 | Transparency 826 | 0.0 827 | Unicode Normalization 828 | 0 829 | Unicode Version 830 | 8 831 | Unlimited Scrollback 832 | 833 | Use Bold Font 834 | 835 | Use Bright Bold 836 | 837 | Use Italic Font 838 | 839 | Use Non-ASCII Font 840 | 841 | Vertical Spacing 842 | 1 843 | Visual Bell 844 | 845 | Window Type 846 | 0 847 | Working Directory 848 | /Users/alex 849 | 850 | 851 | ASCII Anti Aliased 852 | 853 | Ambiguous Double Width 854 | 855 | Ansi 0 Color 856 | 857 | Blue Component 858 | 0.0 859 | Green Component 860 | 0.0 861 | Red Component 862 | 0.0 863 | 864 | Ansi 1 Color 865 | 866 | Blue Component 867 | 0.0 868 | Green Component 869 | 0.0 870 | Red Component 871 | 0.73333334922790527 872 | 873 | Ansi 10 Color 874 | 875 | Blue Component 876 | 0.3333333432674408 877 | Green Component 878 | 1 879 | Red Component 880 | 0.3333333432674408 881 | 882 | Ansi 11 Color 883 | 884 | Blue Component 885 | 0.3333333432674408 886 | Green Component 887 | 1 888 | Red Component 889 | 1 890 | 891 | Ansi 12 Color 892 | 893 | Blue Component 894 | 1 895 | Green Component 896 | 0.3333333432674408 897 | Red Component 898 | 0.3333333432674408 899 | 900 | Ansi 13 Color 901 | 902 | Blue Component 903 | 1 904 | Green Component 905 | 0.3333333432674408 906 | Red Component 907 | 1 908 | 909 | Ansi 14 Color 910 | 911 | Blue Component 912 | 1 913 | Green Component 914 | 1 915 | Red Component 916 | 0.3333333432674408 917 | 918 | Ansi 15 Color 919 | 920 | Blue Component 921 | 1 922 | Green Component 923 | 1 924 | Red Component 925 | 1 926 | 927 | Ansi 2 Color 928 | 929 | Blue Component 930 | 0.0 931 | Green Component 932 | 0.73333334922790527 933 | Red Component 934 | 0.0 935 | 936 | Ansi 3 Color 937 | 938 | Blue Component 939 | 0.0 940 | Green Component 941 | 0.73333334922790527 942 | Red Component 943 | 0.73333334922790527 944 | 945 | Ansi 4 Color 946 | 947 | Blue Component 948 | 0.73333334922790527 949 | Green Component 950 | 0.0 951 | Red Component 952 | 0.0 953 | 954 | Ansi 5 Color 955 | 956 | Blue Component 957 | 0.73333334922790527 958 | Green Component 959 | 0.0 960 | Red Component 961 | 0.73333334922790527 962 | 963 | Ansi 6 Color 964 | 965 | Blue Component 966 | 0.73333334922790527 967 | Green Component 968 | 0.73333334922790527 969 | Red Component 970 | 0.0 971 | 972 | Ansi 7 Color 973 | 974 | Blue Component 975 | 0.73333334922790527 976 | Green Component 977 | 0.73333334922790527 978 | Red Component 979 | 0.73333334922790527 980 | 981 | Ansi 8 Color 982 | 983 | Blue Component 984 | 0.3333333432674408 985 | Green Component 986 | 0.3333333432674408 987 | Red Component 988 | 0.3333333432674408 989 | 990 | Ansi 9 Color 991 | 992 | Blue Component 993 | 0.3333333432674408 994 | Green Component 995 | 0.3333333432674408 996 | Red Component 997 | 1 998 | 999 | BM Growl 1000 | 1001 | Background Color 1002 | 1003 | Blue Component 1004 | 0.0 1005 | Green Component 1006 | 0.0 1007 | Red Component 1008 | 0.0 1009 | 1010 | Background Image Location 1011 | 1012 | Blinking Cursor 1013 | 1014 | Blur 1015 | 1016 | Bold Color 1017 | 1018 | Blue Component 1019 | 1 1020 | Green Component 1021 | 1 1022 | Red Component 1023 | 1 1024 | 1025 | Character Encoding 1026 | 4 1027 | Close Sessions On End 1028 | 1029 | Columns 1030 | 80 1031 | Command 1032 | 1033 | Cursor Color 1034 | 1035 | Blue Component 1036 | 0.73333334922790527 1037 | Green Component 1038 | 0.73333334922790527 1039 | Red Component 1040 | 0.73333334922790527 1041 | 1042 | Cursor Text Color 1043 | 1044 | Blue Component 1045 | 1 1046 | Green Component 1047 | 1 1048 | Red Component 1049 | 1 1050 | 1051 | Custom Command 1052 | No 1053 | Custom Directory 1054 | No 1055 | Default Bookmark 1056 | No 1057 | Description 1058 | Default 1059 | Disable Window Resizing 1060 | 1061 | Flashing Bell 1062 | 1063 | Foreground Color 1064 | 1065 | Blue Component 1066 | 0.73333334922790527 1067 | Green Component 1068 | 0.73333334922790527 1069 | Red Component 1070 | 0.73333334922790527 1071 | 1072 | Guid 1073 | 028A4830-1D52-4453-8DD4-49EB5E8D52C2 1074 | Horizontal Spacing 1075 | 1 1076 | Idle Code 1077 | 0 1078 | Jobs to Ignore 1079 | 1080 | rlogin 1081 | ssh 1082 | slogin 1083 | telnet 1084 | 1085 | Keyboard Map 1086 | 1087 | Mouse Reporting 1088 | 1089 | Name 1090 | Default 1091 | Non Ascii Font 1092 | Monaco 12 1093 | Non-ASCII Anti Aliased 1094 | 1095 | Normal Font 1096 | Monaco 12 1097 | Option Key Sends 1098 | 0 1099 | Prompt Before Closing 2 1100 | 1101 | Right Option Key Sends 1102 | 0 1103 | Rows 1104 | 28 1105 | Screen 1106 | -1 1107 | Scrollback Lines 1108 | 1000 1109 | Selected Text Color 1110 | 1111 | Blue Component 1112 | 0.0 1113 | Green Component 1114 | 0.0 1115 | Red Component 1116 | 0.0 1117 | 1118 | Selection Color 1119 | 1120 | Blue Component 1121 | 1 1122 | Green Component 1123 | 0.8353000283241272 1124 | Red Component 1125 | 0.70980000495910645 1126 | 1127 | Send Code When Idle 1128 | 1129 | Shortcut 1130 | 1131 | Silence Bell 1132 | 1133 | Sync Title 1134 | 1135 | Tags 1136 | 1137 | Terminal Type 1138 | xterm-256color 1139 | Transparency 1140 | 0.0 1141 | Unlimited Scrollback 1142 | 1143 | Use Bold Font 1144 | 1145 | Use Bright Bold 1146 | 1147 | Use Italic Font 1148 | 1149 | Use Non-ASCII Font 1150 | 1151 | Vertical Spacing 1152 | 1 1153 | Visual Bell 1154 | 1155 | Window Type 1156 | 0 1157 | Working Directory 1158 | /Users/alex 1159 | 1160 | 1161 | OnlyWhenMoreTabs 1162 | 1163 | PasteTabToStringTabStopSize 1164 | 2 1165 | PointerActions 1166 | 1167 | Button,1,1,, 1168 | 1169 | Action 1170 | kContextMenuPointerAction 1171 | 1172 | Button,2,1,, 1173 | 1174 | Action 1175 | kPasteFromClipboardPointerAction 1176 | 1177 | Gesture,ThreeFingerSwipeDown,, 1178 | 1179 | Action 1180 | kPrevWindowPointerAction 1181 | 1182 | Gesture,ThreeFingerSwipeLeft,, 1183 | 1184 | Action 1185 | kPrevTabPointerAction 1186 | 1187 | Gesture,ThreeFingerSwipeRight,, 1188 | 1189 | Action 1190 | kNextTabPointerAction 1191 | 1192 | Gesture,ThreeFingerSwipeUp,, 1193 | 1194 | Action 1195 | kNextWindowPointerAction 1196 | 1197 | 1198 | PromptOnQuit 1199 | 1200 | QuitWhenAllWindowsClosed 1201 | 1202 | SoundForEsc 1203 | 1204 | VisualIndicatorForEsc 1205 | 1206 | findMode_iTerm 1207 | 0 1208 | kCPKSelectionViewPreferredModeKey 1209 | 0 1210 | kCPKSelectionViewShowHSBTextFieldsKey 1211 | 1212 | 1213 | 1214 | --------------------------------------------------------------------------------