master
Elias Almqvist 4 months ago
parent 89f9c7ed6e
commit 706cb95010
No known key found for this signature in database
GPG Key ID: E31A99CE3E75A158
  1. 16
      nix-darwin/configuration.nix
  2. 63
      nix-darwin/flake.nix
  3. 105
      nix-darwin/home.nix

@ -0,0 +1,16 @@
{ pkgs, ... }:
{
# System-wide configuration
environment.systemPackages = with pkgs; [
# Add any system-wide packages here
];
services.nix-daemon.enable = true;
nix.package = pkgs.nix;
system.defaults.dock.autohide = true;
system.defaults.finder.AppleShowAllExtensions = true;
# Add more system configurations as needed
}

@ -1,54 +1,23 @@
{ config, pkgs, ... }:
{ {
home.username = "elal"; description = "Home Manager configuration";
home.homeDirectory = "/Users/elal";
home.stateVersion = "22.11";
programs.home-manager.enable = true;
home.packages = with pkgs; [
alacritty
neovim
zsh
oh-my-zsh
skhd
yabai
];
programs.alacritty = {
enable = true;
# Add any Alacritty-specific configurations here
};
programs.neovim = { inputs = {
enable = true; nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
# Add any Neovim-specific configurations here home-manager = {
}; url = "github:nix-community/home-manager";
inputs.nixpkgs.follows = "nixpkgs";
programs.zsh = {
enable = true;
oh-my-zsh = {
enable = true;
theme = "lambda";
}; };
# Add any other Zsh-specific configurations here
}; };
home.file.".config/skhd/skhdrc".text = '' outputs = { nixpkgs, home-manager, ... }:
# Add your skhd keybindings here let
''; system = "aarch64-darwin";
pkgs = nixpkgs.legacyPackages.${system};
in {
homeConfigurations.elal = home-manager.lib.homeManagerConfiguration {
inherit pkgs;
home.file.".config/yabai/yabairc".text = '' modules = [ ./home.nix ];
# Add your yabai configuration here };
''; };
# Optionally, you can add Homebrew integration if needed
# homebrew = {
# enable = true;
# onActivation.autoUpdate = true;
# onActivation.cleanup = "zap";
# brews = [];
# casks = [];
# };
} }

@ -1,56 +1,101 @@
{ config, pkgs, ... }: { config, pkgs, ... }:
{ {
# Home Manager needs a bit of information about you and the paths it should
# manage.
home.username = "elal"; home.username = "elal";
home.homeDirectory = "/Users/elal"; home.homeDirectory = "/Users/elal";
home.stateVersion = "22.11";
programs.home-manager.enable = true; # 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 = "24.05"; # Please read the comment before changing.
# The home.packages option allows you to install Nix packages into your
# environment.
home.packages = [
# # Adds the 'hello' command to your environment. It prints a friendly
# # "Hello, world!" when run.
# pkgs.hello
# # 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" ]; })
home.packages = with pkgs; [ # # 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}!"
# '')
alacritty alacritty
neovim neovim
zsh zsh
oh-my-zsh oh-my-zsh
skhd
yabai yabai
skhd
]; ];
programs.alacritty = { # Home Manager is pretty good at managing dotfiles. The primary way to manage
enable = true; # plain files is through 'home.file'.
# Add any Alacritty-specific configurations here home.file = {
# # Building this configuration will create a copy of 'dotfiles/screenrc' in
# # the Nix store. Activating the configuration will then make '~/.screenrc' a
# # symlink to the Nix store copy.
# ".screenrc".source = dotfiles/screenrc;
# # You can also set the file content immediately.
# ".gradle/gradle.properties".text = ''
# org.gradle.console=verbose
# org.gradle.daemon.idletimeout=3600000
# '';
}; };
programs.neovim = { # Home Manager can also manage your environment variables through
enable = true; # 'home.sessionVariables'. These will be explicitly sourced when using a
viAlias = true; # shell provided by Home Manager. If you don't want to manage your shell
vimAlias = true; # through Home Manager then you have to manually source 'hm-session-vars.sh'
# Add any Neovim-specific configurations here # located at either
#
# ~/.nix-profile/etc/profile.d/hm-session-vars.sh
#
# or
#
# ~/.local/state/nix/profiles/profile/etc/profile.d/hm-session-vars.sh
#
# or
#
# /etc/profiles/per-user/elal/etc/profile.d/hm-session-vars.sh
#
home.sessionVariables = {
# EDITOR = "emacs";
}; };
programs.zsh = { # Let Home Manager install and manage itself.
programs.home-manager.enable = true;
programs.zsh = {
enable = true; enable = true;
oh-my-zsh = { oh-my-zsh = {
enable = true; enable = true;
theme = "lambda"; theme = "lambda";
plugins = [ "git" "macos" ];
}; };
# Add any other Zsh-specific configurations here
}; };
home.file.".config/skhd/skhdrc".text = '' programs.alacritty = {
# Add your skhd keybindings here enable = true;
''; };
home.file.".config/yabai/yabairc".text = '' programs.neovim = {
# Add your yabai configuration here enable = true;
''; viAlias = true;
vimAlias = true;
# Optionally, you can add Homebrew integration if needed };
# homebrew = {
# enable = true;
# onActivation.autoUpdate = true;
# onActivation.cleanup = "zap";
# brews = [];
# casks = [];
# };
} }

Loading…
Cancel
Save