diff --git a/machines/sabo/home.nix b/machines/sabo/home.nix new file mode 100644 index 0000000..04aae5f --- /dev/null +++ b/machines/sabo/home.nix @@ -0,0 +1,324 @@ +{ pkgs, ... }: + +{ + home.username = "mrflos"; + home.homeDirectory = "/home/mrflos"; + + home.packages = with pkgs; [ + ansible + atuin + bat + btop + cargo + catnip + cmatrix + coreutils + curl + dnsutils + emacs-nox + fd + findutils + fzf + gnugrep + gnumake + gnupg + imagemagick + jq + git + glances + htop + lazygit + lsd + magic-wormhole + mc + micro + mosh + mpc-cli + mpd + mpv + neofetch + nixd + neovim + ollama + pandoc + pass + pciutils + pinentry-all + ripgrep + rustc + slides + starship + syncthing + tmux + tokei + tree + unzip + usbutils + wget + whois + wl-clipboard + wirelesstools + yazi + yt-dlp + zed-editor + zellij + zoxide + zsh-autosuggestions + + # dev tools + dart-sass + dbeaver-bin + docker-compose + eris-go + gcc + go + nixfmt-rfc-style + lua + lua-language-server + luarocks + nixpkgs-fmt + nixos-generators + nodejs + nodePackages.eslint + nodePackages.prettier + php83 + php83Packages.composer + php83Packages.php-cs-fixer + python3 + python311Packages.virtualenv + rpi-imager + ruff-lsp + stylelint + symfony-cli + tree-sitter + virt-manager + yarn + zig + + # image optimizers + image_optim + nodePackages.svgo + jpegoptim + optipng + pngquant + gifsicle + libwebp + + # fonts + inter-nerdfont + nerd-fonts.iosevka + nerd-fonts.iosevka-term + ]; + fonts.fontconfig.enable = true; + home.file = { + "./.config/kitty/" = { + source = ../../dotfiles/kitty; + recursive = true; + }; + + "./.config/nvim/" = { + source = ../../dotfiles/nvim; + recursive = true; + }; + + "./.config/lazygit/" = { + source = ../../dotfiles/lazygit; + recursive = true; + }; + + "./.config/tmux/" = { + source = ../../dotfiles/tmux; + recursive = true; + }; + }; + home.sessionVariables = { + EDITOR = "nvim"; + }; + home.sessionPath = [ + "$HOME/.local/bin" + "$HOME/go/bin" + ]; + 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; + }; + }; + "contact@yeswiki.net" = { + realName = "YesWiki.net"; + userName = "contact@yeswiki.net"; + address = "contact@yeswiki.net"; + + primary = false; + thunderbird = { + enable = true; + }; + imap = { + host = "mail.infomaniak.com"; + port = 993; + }; + + smtp = { + host = "mail.infomaniak.com"; + port = 465; + }; + }; + }; + + programs = { + direnv = { + enable = true; + enableZshIntegration = true; + nix-direnv.enable = true; + }; + + git = { + enable = true; + userName = "Florian Schmitt"; + userEmail = "mrflos@gmail.com"; + aliases = { + fa = "fetch --all --tags --prune --recurse-submodules --force"; + }; + extraConfig = { + pull.rebase = true; + init.defaultBranch = "main"; + core.editor = "nvim"; + core.fileMode = false; + }; + }; + + neovim = { + defaultEditor = true; + viAlias = true; + vimAlias = true; + }; + + starship = { + enable = true; + settings = with builtins; fromTOML (readFile ../../dotfiles/starship/starship.toml); + }; + + zsh = { + enable = true; + autosuggestion.enable = true; + enableCompletion = true; + shellAliases = { + #tmux = "tmux -f ~/.config/tmux/tmux.conf attach || tmux -f ~/.config/tmux/tmux.conf new"; + bunx = "bun --bun x"; + c = "/home/mrflos/Code/nixos-config/scripts/tmux-sessionizer"; + g = "lazygit"; + n = "/home/mrflos/Code/nixos-config/scripts/open-notes"; + s = "/home/mrflos/Code/nixos-config/scripts/ssh-connect"; + t = "/home/mrflos/Code/nixos-config/scripts/tmux-sessionizer"; + kdenix = "nix run github:pjones/plasma-manager --extra-experimental-features nix-command --extra-experimental-features flakes > /home/mrflos/Developpements/nixos-config/modules/home-plasma.nix"; + icat = "kitty +kitten icat"; + nixedit = "cd $HOME/Code/nixos-config/ && $HOME/.nix-profile/bin/nvim ."; + nixupdate = "nix-channel --update && home-manager switch"; + nixclean = "sudo nix-env --delete-generations old --profile /nix/var/nix/profiles/system && sudo /nix/var/nix/profiles/system/bin/switch-to-configuration switch && sudo nix-store --gc"; + socks = "ssh -N -f -C -D 9090 mrflos@yunohost.yeswiki.net -p 6742"; + vi = "$HOME/.nix-profile/bin/nvim"; + vim = "$HOME/.nix-profile/bin/nvim"; + yeswiki-updater = "cd /home/mrflos/Code/yeswiki-installer/ && sudo php yeswiki-updater.php"; + }; + initExtra = '' + export BUN_INSTALL="$HOME/.bun" + export PHP_CS_FIXER_IGNORE_ENV=1 + export PATH="$HOME/.local/bin:$BUN_INSTALL/bin:$PATH" + eval "$(atuin init zsh)" + eval "$(zoxide init zsh)" + ''; + oh-my-zsh = { + enable = true; + extraConfig = '' + zstyle :omz:plugins:ssh-agent helper ksshaskpass + zstyle :omz:plugins:ssh-agent agent-forwarding yes + zstyle :omz:plugins:ssh-agent lazy yes + ''; + plugins = [ + "git" + "ssh-agent" + ]; + # theme = "robbyrussell"; + }; + }; + }; + + services.ssh-agent.enable = true; + + home.stateVersion = "24.11"; + # Let Home Manager install and manage itself. + programs.home-manager.enable = true; +}