nixos/home.nix

148 lines
4.3 KiB
Nix

{ lib, config, pkgs, nur, inputs, ... }:
with lib.hm.gvariant;
{
imports = [
# ./modules/dconf.nix
# ./modules/shell.nix
./modules/firefox.nix
# ./modules/sway.nix
./modules/emacs.nix
];
# Home Manager needs a bit of information about you and the
# paths it should manage.
home.username = "mir";
home.homeDirectory = "/home/mir";
home.packages = [
pkgs.btop
pkgs.killall
pkgs.gdb
pkgs.neofetch
pkgs.fastfetch
pkgs.file
pkgs.findutils
pkgs.wget
pkgs.yt-dlp
pkgs.mpv
pkgs.fzf
pkgs.nerdfonts
pkgs.eza
pkgs.python3
pkgs.unzip
# pkgs.gnupg
# pkgs.python3
# (pkgs.python3.withPackages(
# ps: with ps; [
# epc sexpdata six pynput inflect
# pyqt6
# # pyqt6-qt6
# pyqt6-sip]))
# pkgs.fetchFromGitHub
];
# 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;
# version = "23.11";
};
home.sessionVariables = {
TERMINAL = "kitty";
TERM_PROGRAM = "kitty";
BROWSER = "firefox";
MOZ_USE_XINPUT2 = "1";
};
programs.kitty = {
# format from https://johns.codes/blog/organizing-system-configs-with-nixos
enable = true;
settings = {
font_family = "MesloLGS NF";
background_opacity = "0.8";
};
};
# environment.systemPackages = with pkgs; [
# (python3.withPackages(
# ps: with ps; [epc sexpdata six pynput inflect PyQt6 PyQt6-Qt6 PyQt6-sip]))
# ];
fonts.fontconfig.enable = true;
programs.git = {
enable = true;
package = pkgs.gitFull;
userName = "mir";
userEmail = "mirmarq428@gmail.com";
extraConfig = {
credential.helper = "store";
init.defaultBranch = "main";
};
};
# programs.gdb = {
# enable = true;
# };
programs.gpg = {
enable = true;
# package = pkgs.gnupg.overrideAttrs (orig: {
# version = "2.4.0";
# src = pkgs.fetchurl {
# url = "mirror://gnupg/gnupg/gnupg-2.4.0.tar.bz2";
# hash = "sha256-HXkVjdAdmSQx3S4/rLif2slxJ/iXhOosthDGAPsMFIM=";
# };
# });
# agent = {
# pinentryFlavor = "gnome3";
# };
};
services.gpg-agent = {
enable = true;
defaultCacheTtl = 1800;
enableSshSupport = true;
};
# programs.bash.enable = true;
# programs.bash.profileExtra = lib.mkAfter ''
# rm -rf ${config.home.homeDirectory}/.local/share/applications/home-manager
# rm -rf ${config.home.homeDirectory}/.icons/nix-icons
# ls ${config.home.homeDirectory}/.nix-profile/share/applications/*.desktop > ${config.home.homeDirectory}/.cache/current_desktop_files.txt
# '';
# home.activation = {
# linkDesktopApplications = {
# after = ["writeBoundary" "createXdgUserDirectories"];
# before = [];
# data = ''
# rm -rf ${config.home.homeDirectory}/.local/share/applications/home-manager
# rm -rf ${config.home.homeDirectory}/.icons/nix-icons
# mkdir -p ${config.home.homeDirectory}/.local/share/applications/home-manager
# mkdir -p ${config.home.homeDirectory}/.icons
# ln -sf ${config.home.homeDirectory}/.nix-profile/share/icons ${config.home.homeDirectory}/.icons/nix-icons
#
# # Check if the cached desktop files list exists
# if [ -f ${config.home.homeDirectory}/.cache/current_desktop_files.txt ]; then
# current_files=$(cat ${config.home.homeDirectory}/.cache/current_desktop_files.txt)
# else
# current_files=""
# fi
#
# # Symlink new desktop entries
# for desktop_file in ${config.home.homeDirectory}/.nix-profile/share/applications/*.desktop; do
# if ! echo "$current_files" | grep -q "$(basename $desktop_file)"; then
# ln -sf "$desktop_file" ${config.home.homeDirectory}/.local/share/applications/home-manager/$(basename $desktop_file)
# fi
# done
#
# # Update desktop database
# ${pkgs.desktop-file-utils}/bin/update-desktop-database ${config.home.homeDirectory}/.local/share/applications
# '';
# };
# };
}