{ config, pkgs, callPackage, lib, ... }: { nixpkgs = { config.allowUnfreePredicate = pkg: builtins.elem (lib.getName pkg) [ "parsec-bin" "discord" ]; config.allowUnfree = true; overlays = let discordOverlay = self: super: { discord = super.discord.override { withVencord = true; withOpenASAR = true; }; }; in [ (import (builtins.fetchTarball { url = "https://github.com/nix-community/emacs-overlay/archive/master.tar.gz"; sha256 = "0nr8bpglvhjjkyh6xf091gb8nwqn66spycmhhzvkh5smahxpjw0n"; })) discordOverlay]; }; home = { username = "gsimmer"; homeDirectory = "/home/gsimmer"; }; services.pueue = { enable = true; settings = { client = { }; daemon.callback = '' ${pkgs.libnotify}/bin/notify-send -t 4000 "Task {{id}} finished, status '{{result}}'" "{{exit_code}} {{command}}" ''; shared = { }; profiles = { }; }; }; programs = { bash.enable = false; fish = { enable = false; interactiveShellInit = '' set fish_greeting atuin init fish | source ''; }; nushell = { enable = true; extraConfig = (builtins.readFile ./config.nu); }; direnv = { enable = true; nix-direnv.enable = true; }; git = { enable = true; userName = "Gabriel Simmer"; userEmail = "g@gmem.ca"; extraConfig = { gpg = { format = "ssh"; }; user = { signingkey = "/home/gsimmer/.ssh/yubikey-second.pub"; }; tag = { gpgSign = true; }; commit = { gpgSign = true; }; }; }; emacs = { enable = true; package = pkgs.emacs-unstable-pgtk; extraPackages = epkgs: [ epkgs.vterm ]; }; eza = { enable = true; }; bat = { enable = true; }; }; # Prevent clobbering SSH_AUTH_SOCK home.sessionVariables = { SSH_AUTH_SOCK = "$XDG_RUNTIME_DIR/yubikey-agent/yubikey-agent.sock"; }; # Disable gnome-keyring ssh-agent xdg.configFile."autostart/gnome-keyring-ssh.desktop".text = '' ${lib.fileContents "${pkgs.gnome3.gnome-keyring}/etc/xdg/autostart/gnome-keyring-ssh.desktop"} Hidden=true ''; home.packages = with pkgs; [ bitwarden-cli vlc obs-studio python3 thunderbird prismlauncher ripgrep kitty virt-manager jre8 parsec-bin nodejs atuin age-plugin-yubikey rage discord mangohud comma looking-glass-client ]; # 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; }