{ config, pkgs, callPackage, ... }: { nixpkgs.overlays = [ (self: super: let # Overlay function emacs-overlay = import (builtins.fetchTarball { url = https://github.com/nix-community/emacs-overlay/archive/master.tar.gz; }); # # Extract version pointing to master branch emacsGit = (emacs-overlay self super).emacsGit; # # Override source attribute emacs-custom-base = emacsGit.overrideAttrs ( old: { src = pkgs.fetchFromSavannah { repo = "emacs"; rev = "89ac5ba11c773764f418c92ab47a237287a0d233"; sha256 = "19qjj0aw7w0rz29jpa1x48jmv3mh1p1aky82y040xmk6axg8blnl"; }; }); in { emacs-custom = emacs-custom-base; } ) ]; home.username = "gsimmer"; home.homeDirectory = "/home/gsimmer"; nixpkgs.config.allowUnfree = true; programs.bash.enable = false; programs.fish = { enable = true; interactiveShellInit = '' set fish_greeting ''; plugins = [ { name = "z"; src = pkgs.fetchFromGitHub { owner = "jethrokuan"; repo = "z"; rev = "e0e1b9dfdba362f8ab1ae8c1afc7ccf62b89f7eb"; sha256 = "0dbnir6jbwjpjalz14snzd3cgdysgcs3raznsijd6savad3qhijc"; }; } ]; }; programs.direnv = { enable = true; nix-direnv.enable = true; }; services.lorri.enable = true; programs.git = { enable = true; userName = "Gabriel Simmer"; userEmail = "gsimmer@protonmail.com"; signing = { key = "C81B106D46C5B875"; signByDefault = true; }; }; programs.emacs = { enable = true; package = pkgs.emacs-custom; extraPackages = epkgs: [ epkgs.vterm ]; }; programs.exa = { enable = true; enableAliases = true; }; programs.bat = { enable = true; }; home.packages = with pkgs; [ discord spotify bitwarden-cli mullvad-vpn transmission-qt vlc obs-studio python3 lmms prismlauncher ripgrep kitty cider virt-manager jre8 ]; # 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 = "23.05"; # Let Home Manager install and manage itself. programs.home-manager.enable = true; }