···11+{ config, pkgs, ... }:
22+33+{
44+ # Home Manager needs a bit of information about you and the paths it should
55+ # manage.
66+ home.username = "pedro";
77+ home.homeDirectory = "/home/pedro";
88+99+ # This value determines the Home Manager release that your configuration is
1010+ # compatible with. This helps avoid breakage when a new Home Manager release
1111+ # introduces backwards incompatible changes.
1212+ #
1313+ # You should not change this value, even if you update Home Manager. If you do
1414+ # want to update the value, then make sure to first check the Home Manager
1515+ # release notes.
1616+ home.stateVersion = "22.11"; # Please read the comment before changing.
1717+1818+ # The home.packages option allows you to install Nix packages into your
1919+ # environment.
2020+ home.packages = with pkgs; [
2121+ neovim
2222+ nodejs
2323+ ghc
2424+ direnv
2525+ gnupg
2626+ wezterm
2727+ vscodium
2828+ bibata-cursors
2929+3030+ gnomeExtensions.paperwm
3131+ gnome.gnome-tweaks
3232+ just
3333+3434+ eww-wayland
3535+ ripgrep
3636+ jq
3737+ # # Adds the 'hello' command to your environment. It prints a friendly
3838+ # # "Hello, world!" when run.
3939+ # pkgs.hello
4040+4141+ # # It is sometimes useful to fine-tune packages, for example, by applying
4242+ # # overrides. You can do that directly here, just don't forget the
4343+ # # parentheses. Maybe you want to install Nerd Fonts with a limited number of
4444+ # # fonts?
4545+ # (pkgs.nerdfonts.override { fonts = [ "FantasqueSansMono" ]; })
4646+4747+ # # You can also create simple shell scripts directly inside your
4848+ # # configuration. For example, this adds a command 'my-hello' to your
4949+ # # environment:
5050+ # (pkgs.writeShellScriptBin "my-hello" ''
5151+ # echo "Hello, ${config.home.username}!"
5252+ # '')
5353+ ];
5454+5555+ # Home Manager is pretty good at managing dotfiles. The primary way to manage
5656+ # plain files is through 'home.file'.
5757+ home.file = {
5858+ # # Building this configuration will create a copy of 'dotfiles/screenrc' in
5959+ # # the Nix store. Activating the configuration will then make '~/.screenrc' a
6060+ # # symlink to the Nix store copy.
6161+ # ".screenrc".source = dotfiles/screenrc;
6262+6363+ # # You can also set the file content immediately.
6464+ # ".gradle/gradle.properties".text = ''
6565+ # org.gradle.console=verbose
6666+ # org.gradle.daemon.idletimeout=3600000
6767+ # '';
6868+ };
6969+7070+ # You can also manage environment variables but you will have to manually
7171+ # source
7272+ #
7373+ # ~/.nix-profile/etc/profile.d/hm-session-vars.sh
7474+ #
7575+ # or
7676+ #
7777+ # /etc/profiles/per-user/pedro/etc/profile.d/hm-session-vars.sh
7878+ #
7979+ # if you don't want to manage your shell through Home Manager.
8080+ home.sessionVariables = {
8181+ # EDITOR = "emacs";
8282+ EDITOR = "emacs";
8383+ VISUAL = "emacs";
8484+ BROWSER = "firefox";
8585+ };
8686+8787+ # Let Home Manager install and manage itself.
8888+ programs = {
8989+ alacritty.enable = true;
9090+9191+ firefox.enable = true;
9292+9393+ home-manager.enable = true;
9494+9595+ emacs.enable = true;
9696+9797+ starship.enable = true;
9898+9999+ # Enabling zsh
100100+ zsh = {
101101+ enable = true;
102102+ enableSyntaxHighlighting = true;
103103+ oh-my-zsh = {
104104+ enable = true;
105105+ plugins = [ "git" ];
106106+ };
107107+ };
108108+ };
109109+110110+111111+ services = {
112112+ gpg-agent = {
113113+ enable = true;
114114+ enableSshSupport = true;
115115+ enableZshIntegration = true;
116116+ extraConfig = ''
117117+ allow-emacs-pinentry
118118+ '';
119119+ };
120120+ };
121121+122122+ xdg.enable = true;
123123+}