about summary refs log tree commit diff
path: root/nixos/home.nix
diff options
context:
space:
mode:
Diffstat (limited to 'nixos/home.nix')
-rw-r--r--nixos/home.nix117
1 files changed, 117 insertions, 0 deletions
diff --git a/nixos/home.nix b/nixos/home.nix
new file mode 100644
index 0000000..cfc4090
--- /dev/null
+++ b/nixos/home.nix
@@ -0,0 +1,117 @@
+{ config, pkgs, ... }:
+
+{
+  # Home Manager needs a bit of information about you and the paths it should
+  # manage.
+  home.username = "venomade";
+  home.homeDirectory = "/home/venomade";
+
+  # 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 = [
+    # # 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" ]; })
+
+    # # 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 = {
+    # # 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
+    # '';
+    ".config/dmscripts/config".source = config/dmscripts-conf;
+    ".config/kitty/kitty.conf".source = config/kitty.conf;
+    ".config/picom/picom.conf".source = config/picom.conf;
+    ".config/ranger/rc.conf".source   = config/rc.conf;
+    ".ghci".source                    = config/ghci;
+    ".vim/coc-settings.json".source   = config/coc-settings.json;
+    ".vimrc".source                   = config/vimrc;
+    ".xmobarrc".source                = config/xmobarrc;
+    ".zshrc".source                   = config/zshrc;
+  };
+
+  home.file."neovim" = {
+      source = ./config/neovim;
+      target = ".config/nvim";
+      recursive = true;
+  };
+
+  home.file."scripts" = {
+      source = ./scripts;
+      target = ".local/bin";
+      recursive = true;
+  };
+
+  home.file."wallpapers" = {
+      source = ./wallpapers;
+      target = ".wallpapers";
+      recursive = true;
+  };
+
+  home.file.".icons/default".source = "${pkgs.vanilla-dmz}/share/icons/Vanilla-DMZ";
+
+  # Home Manager can also manage your environment variables through
+  # 'home.sessionVariables'. If you don't want to manage your shell through Home
+  # Manager then you have to manually source 'hm-session-vars.sh' 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/venomade/etc/profile.d/hm-session-vars.sh
+  #
+  home.sessionVariables = {
+    # EDITOR = "emacs";
+  };
+
+  programs.git = {
+    enable = true;
+    userEmail = "venomade@venomade.com";
+    userName = "venomade";
+  };
+
+  # Configure X11 Cursor
+  xsession.pointerCursor = {
+        package = pkgs.gnome.adwaita-icon-theme;
+        name = "Adwaita";
+        size = 38;
+    };
+
+  # Let Home Manager install and manage itself.
+  programs.home-manager.enable = true;
+}