# This is a default home.nix generated by the follwing hone-manager command # # home-manager init ./ { config, lib, pkgs, ... }: { # Home Manager needs a bit of information about you and the paths it should # manage. home.username = lib.mkDefault "your-name"; home.homeDirectory = lib.mkDefault "/home/${config.home.username}"; # 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.11"; # Please read the comment before changing. # The home.packages option allows you to install Nix packages into your # environment. home.packages = with pkgs; [ aider-chat-env libgtop # # 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 # ''; }; # 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/m3tam3re/etc/profile.d/hm-session-vars.sh # home.sessionVariables = { # EDITOR = "emacs"; }; # Let Home Manager install and manage itself. programs.home-manager.enable = true; programs.git = { enable = true; difftastic.enable = true; userName = "m3tam3re"; userEmail = "m@m3tam3re.com"; aliases = { st = "status"; logd = "log --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit"; }; extraConfig = { core.excludesfile = "~/.gitignore_global"; init.defaultBranch = "master"; }; }; programs.ssh = { enable = true; matchBlocks = { "github.com" = { hostname = "github.com"; user = "m3tam3re"; port = 22; identityFile = "~/.ssh/github"; }; "code.m3tam3re.com" = { hostname = "code.m3tam3re.com"; user = "m3tam3re"; identityFile = "~/.ssh/gitea"; }; "lkk-nix-1" = { hostname = "89.58.10.189"; user = "lkk-admin"; identityFile = "~/.ssh/lkk-admin"; }; "m3-r1" = { hostname = "202.61.226.110"; user = "m3tam3re"; identityFile = "~/.ssh/m3tam3re"; }; "lkk-prod-test" = { hostname = "192.168.122.215"; user = "root"; identityFile = "~/.ssh/m3tam3re"; }; "lkk-prod-1" = { hostname = "192.168.0.24"; user = "root"; identityFile = "~/.ssh/m3tam3re"; }; "lkk-prod-2" = { hostname = "192.168.0.20"; user = "root"; identityFile = "~/.ssh/m3tam3re"; }; "m3-deck" = { hostname = "192.168.178.193"; user = "m3tam3re"; identityFile = "~/.ssh/m3tam3re"; }; "m3-kratos-vm" = { hostname = "192.168.122.43"; user = "m3tam3re"; identityFile = "~/.ssh/m3tam3re"; }; "m3-hermes" = { hostname = "95.216.214.142"; user = "m3tam3re"; identityFile = "~/.ssh/m3tam3re"; }; "m3-helios" = { hostname = "192.168.178.210"; user = "m3tam3re"; identityFile = "~/.ssh/m3tam3re"; }; "m3-ares" = { hostname = "192.168.1.30"; user = "m3tam3re"; identityFile = "~/.ssh/m3tam3re"; }; "m3-atlas" = { hostname = "152.53.85.162"; user = "m3tam3re"; identityFile = "~/.ssh/m3tam3re"; }; "self-host-server" = { hostname = "37.27.255.72"; port = 2222; user = "m3tam3re"; identityFile = "~/.ssh/self-host-server"; }; }; }; programs.zellij-ps = { enable = true; projectFolders = [ "${config.home.homeDirectory}/p/c" "${config.home.homeDirectory}/p" "${config.home.homeDirectory}/.config" ]; layout = '' layout { pane size=1 borderless=true { plugin location="zellij:tab-bar" } pane size="70%" command="nvim" pane split_direction="vertical" { pane pane command="unimatrix" } pane size=1 borderless=true { plugin location="zellij:status-bar" } } ''; }; }