system/home/home.nix

138 lines
2.6 KiB
Nix
Raw Normal View History

2022-04-05 10:03:33 +03:00
{ config, pkgs, ... }:
let
2022-08-27 23:41:37 +03:00
secrets = import ../secrets.nix;
2022-04-05 10:03:33 +03:00
in
{
imports = (import ./ui) ++ (import ./shell) ++ (import ./progs);
2022-04-05 10:03:33 +03:00
# Home Manager needs a bit of information about you and the
# paths it should manage.
2022-08-30 04:32:05 +03:00
home.username = secrets.userName;
home.homeDirectory = secrets.userDir;
2022-04-05 10:03:33 +03:00
home.keyboard = {
model = "pc105";
layout = "us,ru";
variant = "dvorak,";
2022-08-29 15:40:41 +03:00
options = [ "grp:win_space_toggle" ];
};
home.packages = with pkgs; [
2022-08-27 23:41:37 +03:00
kotatogram-desktop
2022-09-01 13:29:50 +03:00
nheko
2022-08-28 04:54:03 +03:00
docker-compose
2022-08-29 14:12:03 +03:00
libreoffice
2022-09-03 22:47:05 +03:00
image-roll
2022-04-05 17:47:31 +03:00
2022-08-29 15:40:41 +03:00
asciinema # record the terminal
neofetch # command-line system information
# tools
2022-08-29 15:40:41 +03:00
xh # friendly and fast tool for sending HTTP requests
fd # a simple, fast and user-friendly alternative to find
bat # a cat clone with syntax highlighting and git integration
# nix
nixpkgs-fmt
# browser
2022-08-29 15:40:41 +03:00
librewolf # a fork of firefox, focused on privacy, security and freedom
2022-08-28 04:54:03 +03:00
# for work
google-cloud-sdk
kubectl
2022-08-29 15:40:41 +03:00
postgresql_12 # 🤷 I need only psql
2022-04-05 17:18:23 +03:00
];
# user interface
ui = {
# windows manager
xmonad.enable = true;
# bar
polybar.enable = true;
# lock
betterlockscreen.enable = true;
2022-08-24 23:54:30 +03:00
};
# shell
2022-08-24 14:02:45 +03:00
shell = {
zsh.enable = true;
prompt.starship.enable = true;
};
# programs
progs = {
alacritty.enable = true;
2022-08-30 04:32:05 +03:00
git = {
enable = true;
2022-08-30 04:32:05 +03:00
gpgKey = secrets.gpgSigningKey;
inherit (secrets) userName userEmail;
2022-09-01 22:04:00 +03:00
git-crypt.enable = true;
};
# password manager
pass.enable = true;
2022-04-05 10:42:47 +03:00
# email manager
himalaya.enable = true;
2022-04-05 16:40:07 +03:00
# finance manager
hledger.enable = true;
# file manager
vifm.enable = true;
# editor
nvim = {
2022-04-05 16:40:07 +03:00
enable = true;
default = true;
2022-04-05 16:40:07 +03:00
};
# tools
exa.enable = true;
zoxide.enable = true;
2022-04-05 16:40:07 +03:00
};
2022-08-31 13:23:54 +03:00
programs.direnv = {
enable = true;
nix-direnv.enable = true;
};
2022-08-30 00:22:29 +03:00
accounts = {
email = {
accounts = secrets.emailAccounts;
};
2022-04-05 11:26:26 +03:00
};
2022-04-05 17:18:23 +03:00
2022-04-14 16:55:53 +03:00
home.file = {
"scripts" = {
source = ../scripts;
recursive = true;
};
2022-04-14 16:55:53 +03:00
"pictures/wallpapers" = {
source = ../wallpapers;
recursive = true;
};
};
2022-08-30 00:20:34 +03:00
xdg.enable = true;
# 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.11";
# Let Home Manager install and manage itself.
programs.home-manager.enable = true;
2022-04-05 10:03:33 +03:00
}