nix-flake/home/default.nix

93 lines
2.6 KiB
Nix

{config, pkgs, lib, inputs, vars, ...}:{
imports = [
#home-manager modules
inputs.nix-index-database.hmModules.nix-index
inputs.nvf.homeManagerModules.default
inputs.catppuccin.homeManagerModules.catppuccin
#aux files to make finding specific things easier
./sway.nix
./theming.nix
./packages.nix #general user packages not managed by home-manager but i want to install via hm anyways
];
home = rec {
username = vars.user; #this is set in flake.nix
homeDirectory = "/home/${username}"; #change this if you use a non-standard home dir
stateVersion = "23.11";
file = {
".config/waybar/config".source = config.lib.file.mkOutOfStoreSymlink "${homeDirectory}/.config/nixos/home/waybar/config";
".config/waybar/style.css".source = config.lib.file.mkOutOfStoreSymlink "${homeDirectory}/.config/nixos/home/waybar/style.css";
};
};
programs.home-manager.enable = (!vars.isNixOS); #value is set in flake.nix
programs.foot = {
enable = true;
settings.main.font = "monospace:size=10";
#settings.colors.alpha = "0.8";
};
programs.ncmpcpp = {
enable = true;
settings = {
tags_separator = ";";
};
};
services.mpd = {
enable = true;
musicDirectory = "/home/${vars.user}/Music";
extraConfig = ''
audio_output {
type "pipewire"
name "default pipewire"
}
'';
};
services.mpd-mpris = {
enable = true;
};
programs.waybar = {
enable = true;
};
programs.git = {
enable = true;
userName = "beanigen";
userEmail = "beanigit@protonmail.com";
extraConfig = {
commit.gpgsign = true;
gpg.format = "ssh";
user.signingkey = "~/.ssh/id_ed25519.pub";
init.defaultBranch = "main";
};
};
xdg.portal = {
enable = true;
extraPortals = [ pkgs.xdg-desktop-portal-wlr ];
configPackages = [ pkgs.xdg-desktop-portal-wlr ];
};
programs.obs-studio = {
enable = true;
plugins = with pkgs.obs-studio-plugins; [
wlrobs
obs-backgroundremoval
obs-pipewire-audio-capture
];
};
programs.nvf = {
enable = true;
settings.vim = {
statusline.lualine = {
enable = true;
theme = "dracula";
};
autocomplete.nvim-cmp.enable = true;
languages = {
enableFormat = true;
enableLSP = true;
#enableTreesitter = true; disabled until it fixes itself
nix.enable = true;
clang.enable = true;
html.enable = true;
css.enable = true;
python.enable = true;
};
};
};
}