feat: add basic macos configuration

This commit is contained in:
Yadunand Prem 2024-04-11 15:24:55 +08:00
parent 79136c3823
commit 14b33a0e1f
No known key found for this signature in database
4 changed files with 240 additions and 0 deletions

58
yadunut-mbp/brewfile Normal file
View File

@ -0,0 +1,58 @@
beancount
binutils
coq
dive
efm-langserver
entr
eza
fava
fd
fzf
gh
git
git-delta
git-lfs
gmime
hashicorp/tap/nomad
hashicorp/tap/nomad-pack
hashicorp/tap/packer
hashicorp/tap/vault
hashicorp/tap/waypoint
jq
lazygit
libev
libgccjit
libmagic
libpq
lsusb
neovim
ninja
opam
openssh
pigz
pinentry-mac
postgresql@15
qemu
ripgrep
rust-analyzer
sleepwatcher
starship
tectonic
tesseract
texlab
tio
tmux
tokei
typst
vips
volta
watch
watchman
wget
xapian
yq
zellij
zls
zoxide
zsh-completions
zsync

48
yadunut-mbp/flake.lock Normal file
View File

@ -0,0 +1,48 @@
{
"nodes": {
"home-manager": {
"inputs": {
"nixpkgs": [
"nixpkgs"
]
},
"locked": {
"lastModified": 1712730572,
"narHash": "sha256-rAVvdP77rEmgobvSgybqPAcHefv5dCXPH/ge6Ds+JtU=",
"owner": "nix-community",
"repo": "home-manager",
"rev": "18f89ef74f0d48635488ccd6a5e30dc9d48a3a87",
"type": "github"
},
"original": {
"owner": "nix-community",
"repo": "home-manager",
"type": "github"
}
},
"nixpkgs": {
"locked": {
"lastModified": 1712608508,
"narHash": "sha256-vMZ5603yU0wxgyQeHJryOI+O61yrX2AHwY6LOFyV1gM=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "4cba8b53da471aea2ab2b0c1f30a81e7c451f4b6",
"type": "github"
},
"original": {
"owner": "nixos",
"ref": "nixos-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"root": {
"inputs": {
"home-manager": "home-manager",
"nixpkgs": "nixpkgs"
}
}
},
"root": "root",
"version": 7
}

29
yadunut-mbp/flake.nix Normal file
View File

@ -0,0 +1,29 @@
{
description = "Home Manager configuration of yadunut";
inputs = {
# Specify the source of Home Manager and Nixpkgs.
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
home-manager = {
url = "github:nix-community/home-manager";
inputs.nixpkgs.follows = "nixpkgs";
};
};
outputs = { nixpkgs, home-manager, ... }:
let
system = "aarch64-darwin";
pkgs = nixpkgs.legacyPackages.${system};
in {
homeConfigurations."yadunut" = home-manager.lib.homeManagerConfiguration {
inherit pkgs;
# Specify your home configuration modules here, for example,
# the path to your home.nix.
modules = [ ./home.nix ];
# Optionally use extraSpecialArgs
# to pass through arguments to home.nix
};
};
}

105
yadunut-mbp/home.nix Normal file
View File

@ -0,0 +1,105 @@
{ config, pkgs, ... }:
{
# Home Manager needs a bit of information about you and the paths it should
# manage.
home.username = "yadunut";
home.homeDirectory = "/Users/yadunut";
# This value determines the Home Manager release that your configuration is
# compatible with. This helps avoid breakage when a new Home Manager release
# introduces backwards incompatible changes.
#
# You should not change this value, even if you update Home Manager. If you do
# want to update the value, then make sure to first check the Home Manager
# release notes.
home.stateVersion = "23.11"; # Please read the comment before changing.
# The home.packages option allows you to install Nix packages into your
# environment.
home.packages = [
pkgs.htop
pkgs.ripgrep
pkgs.bat
pkgs.delta
pkgs.fd
# # It is sometimes useful to fine-tune packages, for example, by applying
# # overrides. You can do that directly here, just don't forget the
# # parentheses. Maybe you want to install Nerd Fonts with a limited number of
# # fonts?
# (pkgs.nerdfonts.override { fonts = [ "FantasqueSansMono" ]; })
# # You can also create simple shell scripts directly inside your
# # configuration. For example, this adds a command 'my-hello' to your
# # environment:
# (pkgs.writeShellScriptBin "my-hello" ''
# echo "Hello, ${config.home.username}!"
# '')
];
# Home Manager is pretty good at managing dotfiles. The primary way to manage
# plain files is through 'home.file'.
home.file = {
# ".screenrc".source = dotfiles/screenrc;
# # You can also set the file content immediately.
# ".gradle/gradle.properties".text = ''
# org.gradle.daemon.idletimeout=3600000
# '';
};
home.sessionVariables = {
EDITOR = "nvim";
};
programs.fzf.enable = true;
programs.fzf.enableZshIntegration = true;
programs.zoxide.enable = true;
programs.zoxide.enableZshIntegration = true;
programs.eza.enable = true;
programs.eza.enableZshIntegration = true;
programs.kitty.shellIntegration.enableZshIntegration = true;
programs.emacs.enable = true;
programs.lazygit.enable = true;
programs.zsh = {
enable = true;
prezto = {
enable = true;
editor.keymap = "vi";
editor.dotExpansion = true;
pmodules = [
"environment"
"terminal"
"utility"
"directory"
"editor"
"history"
"syntax-highlighting"
"history-substring-search"
"autosuggestions"
"completion"
];
};
shellAliases = {
lg = "lazygit";
cat = "bat";
diff = "delta";
s = "kitty +kitten ssh";
};
};
programs.starship = {
enable = true;
enableZshIntegration = true;
};
programs.neovim.enable = true;
# Let Home Manager install and manage itself.
programs.home-manager.enable = true;
}