# Inject the right home-manager config for the machine. { config, pkgs, lib, ... }: let treesitterWithGrammars = (pkgs.vimPlugins.nvim-treesitter.withPlugins (p: [ p.bash p.comment p.css p.dockerfile p.fish p.gitattributes p.gitignore p.go p.gomod p.gowork p.hcl p.php p.javascript p.jq p.json5 p.json p.lua p.make p.markdown p.nix p.python p.rust p.toml p.typescript p.vue p.yaml ])); in { # TODO can we automate the installation of home-manager ? # sudo nix-channel --add https://github.com/nix-community/home-manager/archive/release-23.11.tar.gz home-manager imports = [ ]; # Let Home Manager install and manage itself. #programs.home-manager.enable = true; home-manager.useGlobalPkgs = true; users.users.mrflos = { isNormalUser = true; description = "mrflos"; createHome = true; extraGroups = [ "docker" "libvirtd" "lxd" "networkmanager" "wheel" ]; uid = 1000; shell = pkgs.zsh; }; nix.settings.trusted-users = [ "mrflos" ]; home-manager.users.mrflos = { pkgs, ... }: { home.stateVersion = "23.05"; home.packages = with pkgs; [ gcc cmake ripgrep fd lua-language-server rust-analyzer-unwrapped php83Packages.composer nodejs_20 yarn ]; home.file = { "./.config/kitty/" = { source = ../configs/kitty; recursive = true; }; "./.config/nvim/" = { source = ../configs/nvim; recursive = true; }; # Treesitter is configured as a locally developed module in lazy.nvim # we hardcode a symlink here so that we can refer to it in our lazy config "./.local/share/nvim/nix/nvim-treesitter/" = { recursive = true; source = treesitterWithGrammars; }; }; accounts.email.accounts = { "mrflos@chmok.net" = { realName = "Florian Schmitt"; userName = "mrflos@chmok.net"; address = "mrflos@chmok.net"; primary = true; thunderbird = { enable = true; }; imap = { host = "mail.infomaniak.com"; port = 993; }; smtp = { host = "mail.infomaniak.com"; port = 465; }; }; "mrflos@yeswiki.pro" = { realName = "Florian Schmitt - Yeswiki.pro"; userName = "mrflos@yeswiki.pro"; address = "mrflos@yeswiki.pro"; thunderbird = { enable = true; }; imap = { host = "mail.infomaniak.com"; port = 993; }; smtp = { host = "mail.infomaniak.com"; port = 465; }; }; "mrflos@mrflos.pw" = { realName = "Florian Schmitt"; userName = "mrflos"; address = "mrflos@mrflos.pw"; primary = false; thunderbird = { enable = true; }; imap = { host = "mrflos.pw"; port = 993; tls.enable = true; tls.useStartTls = true; }; smtp = { host = "mrflos.pw"; port = 587; tls.useStartTls = true; }; }; "contact@yeswiki.pro" = { realName = "YesWiki.pro"; userName = "contact@yeswiki.pro"; address = "contact@yeswiki.pro"; primary = false; thunderbird = { enable = true; }; imap = { host = "mail.infomaniak.com"; port = 993; }; smtp = { host = "mail.infomaniak.com"; port = 465; }; }; }; programs = { git = { enable = true; userName = "Florian Schmitt"; userEmail = "mrflos@gmail.com"; extraConfig = { pull.rebase = true; init.defaultBranch = "main"; core.fileMode = false; }; }; neovim = { enable = true; viAlias = true; vimAlias = true; coc.enable = false; plugins = [ treesitterWithGrammars ]; }; password-store = { enable = true; package = pkgs.pass.withExtensions (exts: [ exts.pass-otp ]); settings = { PASSWORD_STORE_DIR = "$XDG_DATA_HOME/password-store"; PASSWORD_STORE_KEY = "How to Hide This ?"; PASSWORD_STORE_CLIP_TIME = "60"; }; }; thunderbird = { enable = true; profiles.default = { isDefault = true; }; }; }; }; }