{ 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;
};
}