diff --git a/nixpkgs/README.md b/nixpkgs/README.md new file mode 100644 index 0000000..6ece2ce --- /dev/null +++ b/nixpkgs/README.md @@ -0,0 +1,5 @@ +# Home Manager Configuration + +This directory contains my configuration for home-manager, which can be easily installed by running `./install.sh {machine name}`. + +The `machines` folder contains userland configs for specific machines. Each of these configs will import modules from the `modules` folder for shell config, git config, etc. \ No newline at end of file diff --git a/nixpkgs/install.sh b/nixpkgs/install.sh new file mode 100755 index 0000000..df7242c --- /dev/null +++ b/nixpkgs/install.sh @@ -0,0 +1,5 @@ +# Where first arg is directory under machines, can be one of macos, fedora, nixos +mkdir -p $HOME/.config +ln -s $(pwd) $HOME/.config/nixpkgs +ln -s $(pwd)/machines/$1/home.nix $HOME/.config/nixpkgs/home.nix +ln -s $(pwd)/machines/$1/config.nix $HOME/.config/nixpkgs/config.nix diff --git a/nixpkgs/machines/loft/config.nix b/nixpkgs/machines/loft/config.nix new file mode 100644 index 0000000..1dd1750 --- /dev/null +++ b/nixpkgs/machines/loft/config.nix @@ -0,0 +1,3 @@ +{ + allowUnfree = true; +} diff --git a/nixpkgs/machines/loft/home.nix b/nixpkgs/machines/loft/home.nix new file mode 100644 index 0000000..1e00d96 --- /dev/null +++ b/nixpkgs/machines/loft/home.nix @@ -0,0 +1,18 @@ +{ config, pkgs, ... }: + +{ + imports = [ + ../../modules/home-manager.nix + ../../modules/fonts.nix + ../../modules/git.nix + ../../modules/gnome.nix + ../../modules/vscode.nix + ../../modules/zsh.nix + ]; + + home.packages = with pkgs; [ + neofetch + fortune + ]; + +} \ No newline at end of file diff --git a/nixpkgs/modules/fonts.nix b/nixpkgs/modules/fonts.nix new file mode 100644 index 0000000..0d981de --- /dev/null +++ b/nixpkgs/modules/fonts.nix @@ -0,0 +1,8 @@ +{ config, pkgs, libs, ... }: +{ + home.packages = with pkgs; [ + (nerdfonts.override { fonts = [ "FiraCode" ]; }) + ]; + + fonts.fontconfig.enable = true; +} \ No newline at end of file diff --git a/nixpkgs/modules/git.nix b/nixpkgs/modules/git.nix new file mode 100644 index 0000000..27ca9f8 --- /dev/null +++ b/nixpkgs/modules/git.nix @@ -0,0 +1,12 @@ +{ config, pkgs, libs, ... }: +{ + home.packages = with pkgs; [ + git-lfs + ]; + + programs.git = { + enable = true; + userEmail = "michaelhthomas@outlook.com"; + userName = "Michael Thomas"; + }; +} \ No newline at end of file diff --git a/nixpkgs/modules/gnome.nix b/nixpkgs/modules/gnome.nix new file mode 100644 index 0000000..13a0f18 --- /dev/null +++ b/nixpkgs/modules/gnome.nix @@ -0,0 +1,27 @@ +{ config, pkgs, libs, ... }: +{ + home.packages = with pkgs; [ + gnomeExtensions.caffeine + ]; + + gtk = { + enable = true; + theme.name = "Adwaita-dark"; + # font.name = "Ubuntu 12"; + iconTheme = { + name = "Papirus"; + package = pkgs.papirus-icon-theme; + }; + }; + + programs.gnome-terminal = { + enable = true; + profile = { + "5ddfe964-7ee6-4131-b449-26bdd97518f7" = { + default = true; + visibleName = "Michael"; + font = "FiraCode Nerd Font 12"; + }; + }; + }; +} \ No newline at end of file diff --git a/nixpkgs/modules/home-manager.nix b/nixpkgs/modules/home-manager.nix new file mode 100644 index 0000000..114b75f --- /dev/null +++ b/nixpkgs/modules/home-manager.nix @@ -0,0 +1,20 @@ +{ config, pkgs, libs, ... }: +{ + # Let Home Manager install and manage itself. + programs.home-manager.enable = true; + + # Home Manager needs a bit of information about you and the + # paths it should manage. + home.username = builtins.getEnv "USER"; + home.homeDirectory = builtins.getEnv "HOME"; + + # 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 can update Home Manager without changing this value. See + # the Home Manager release notes for a list of state version + # changes in each release. + home.stateVersion = "21.03"; +} diff --git a/nixpkgs/modules/vscode.nix b/nixpkgs/modules/vscode.nix new file mode 100644 index 0000000..6451520 --- /dev/null +++ b/nixpkgs/modules/vscode.nix @@ -0,0 +1,15 @@ +{ config, pkgs, libs, ... }: +{ + programs = { + vscode = { + enable = true; + extensions = [ + pkgs.vscode-extensions.bbenoist.Nix + ]; + # userSettings = { + # "editor.fontFamily" = "'FiraCode Nerd Font', 'Droid Sans Mono', 'monospace', monospace, 'Droid Sans Fallback'"; + # "editor.tabSize" = 2; + # }; + }; + }; +} \ No newline at end of file diff --git a/nixpkgs/modules/zsh.nix b/nixpkgs/modules/zsh.nix new file mode 100644 index 0000000..42771b7 --- /dev/null +++ b/nixpkgs/modules/zsh.nix @@ -0,0 +1,35 @@ +{ config, pkgs, libs, ... }: +{ + programs.zsh = { + enable = true; + prezto = { + enable = true; + pmodules = [ + "archive" + "docker" + "environment" + "git" + "terminal" + "editor" + "history" + "directory" + "spectrum" + "utility" + "completion" + "command-not-found" + "syntax-highlighting" + "history-substring-search" + "autosuggestions" + "prompt" + ]; + }; + }; + programs.starship = { + enable = true; + enableZshIntegration = true; + settings = { + character.symbol = "➜"; + character.success_symbol = "[➜](bold green)"; + }; + }; +} \ No newline at end of file