dotfiles

Artifact [ba858e6065]
Login

Artifact [ba858e6065]

Artifact ba858e6065d6069bc9d9a04ebec027ea73a89b39:


{ config, pkgs, ... }:


{
  # Let Home Manager install and manage itself.
  programs.home-manager.enable = true;

  # Home Manager needs a bit of information about you and the
  # paths it should manage.
  home.username = "steffen";
  home.homeDirectory = "/home/steffen";

  # 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 = "21.05";

  home.packages = with pkgs; [
    # shell
    exa
    bat
    lorri
    direnv
    ripgrep
    broot

    # ops
    terraform
    terraform-provider-libvirt
    borgbackup
    zpaq
    nixopsUnstable
    nixUnstable

    # dev
    just
    micro
    dotenv-linter
    rustup

    # misc
    ipfs
    hugin
    youtube-dl
    par2cmdline
    fossil
    jdupes
  ];

  services.lorri.enable = true;

  systemd.user.services = {
    ipfs = {
      Unit = {
        Description = "IPFS Daemon";
        Documentation = "man:ipfs(1)";
      };
      Install = {
        WantedBy = ["default.target"];
      };
      Service = {
        ExecStart = "${pkgs.ipfs}/bin/ipfs daemon";
        ExecStop = "pkill ipfs";
        Restart = "on-failure";
      };
    };
    syncthing = {
      Unit = {
        Description = "Syncthing daemon";
        Documentation = "man:syncthing(1)";
      };
      Install = {
        WantedBy = ["default.target"];
      };
      Service = {
        ExecStart = "${pkgs.syncthing}/bin/syncthing -no-browser";
        ExecStop = "pkill syncthing";
        Restart = "on-failure";
      };
    };
  };

  xdg.configFile = {
    # XDG configuration files
    "broot/conf.toml".source = ./config/.config/broot/conf.toml;
  };
  home.file = {
    # dotfiles in the home directory
    ".nix-channels".source = ./config/.nix-channels;
    ".zshrc".source = ./shell/.zshrc;
    ".bashrc".source = ./shell/.bashrc;
    ".profile".source = ./shell/.profile;
    ".tmux.conf".source = ./shell/.tmux.conf;
    ".doom.d/config.el".source = ./emacs/.doom.d/config.el;
    ".doom.d/init.el".source = ./emacs/.doom.d/init.el;
    ".doom.d/packages.el".source = ./emacs/.doom.d/packages.el;
    ".config/nix/nix.conf".source = ./config/.config/nix/nix.conf;
  };
}