user-config/home.nix

116 lines
2.8 KiB
Nix
Raw Normal View History

2023-07-02 03:43:47 +00:00
{ config, pkgs, ... }:
2023-07-01 04:21:17 +00:00
{
2023-07-02 03:43:47 +00:00
# Home Manager needs a bit of information about you and the paths it should
# manage.
home.username = "hive";
home.homeDirectory = "/home/hive";
2023-07-01 04:21:17 +00:00
2023-07-02 03:43:47 +00:00
# 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 should not change this value, even if you update Home Manager. If you do
# want to update the value, then make sure to first check the Home Manager
# release notes.
home.stateVersion = "23.05"; # Please read the comment before changing.
2023-07-01 04:21:17 +00:00
2023-07-02 03:43:47 +00:00
# The home.packages option allows you to install Nix packages into your
# environment.
2023-07-01 04:21:17 +00:00
home.packages = with pkgs; [
bat
diceware
pwgen
kitty
2023-07-02 03:43:47 +00:00
git
2023-07-23 22:34:50 +00:00
srain
2023-07-02 03:43:47 +00:00
neovim
2023-07-23 22:34:50 +00:00
neovide
2023-07-01 04:21:17 +00:00
schildichat-desktop
dino
mangohud
termpdfpy
2023-07-23 22:34:50 +00:00
gimp
2023-07-01 04:21:17 +00:00
lollypop
skim
2023-07-23 22:34:50 +00:00
picard
2023-07-01 04:21:17 +00:00
syncthing
armcord
2023-07-23 22:34:50 +00:00
tdesktop
2023-07-01 04:21:17 +00:00
ripgrep
tmate
btop
firefox
apostrophe
warp
syncplay
mpv
wl-clipboard
adw-gtk3
# some bullshit to get gnome apps to install withotu a prefix
] ++ (with pkgs.gnome; with pkgs.gnomeExtensions; [
2023-07-23 22:34:50 +00:00
gnome-boxes
2023-07-01 04:21:17 +00:00
gnome-tweaks
dconf-editor
night-theme-switcher
rounded-window-corners
appindicator
]);
2023-07-02 03:43:47 +00:00
# Home Manager is pretty good at managing dotfiles. The primary way to manage
# plain files is through 'home.file'.
home.file = {
# # Building this configuration will create a copy of 'dotfiles/screenrc' in
# # the Nix store. Activating the configuration will then make '~/.screenrc' a
# # symlink to the Nix store copy.
# ".screenrc".source = dotfiles/screenrc;
# # You can also set the file content immediately.
# ".gradle/gradle.properties".text = ''
# org.gradle.console=verbose
# org.gradle.daemon.idletimeout=3600000
# '';
};
home.sessionVariables = {
# system configuration
EDITOR = "nvim";
# fish config
fish_greeting = " heya ${config.home.username}, welcome to $(hostname) ~";
};
2023-07-01 04:21:17 +00:00
# configure programs
programs.home-manager.enable = true;
programs.fish = {
enable = true;
shellAbbrs = {
nxs = "nix search nixpkgs";
nxr = "nix run nixpkgs#";
nxsh = "nix shell nixpkgs#";
e = "edit";
nxb = "sudo nixos-rebuild switch";
nxu = "sudo nixos-rebuild boot --upgrade";
nxc = "sudo nix-collect-garbage -d";
};
interactiveShellInit = ''
fish_add_path ~/.local/bin
fish_add_path ~/.local/bin/scripts
fish_add_path ~/.local/share/cargo/bin
fish_add_path /var/lib/flatpak/exports/bin
fish_vi_key_bindings
'';
};
programs.password-store = {
enable = true;
package = pkgs.pass.withExtensions (exts: [ exts.pass-otp ]);
settings = {
PASSWORD_STORE_DIR = "${config.xdg.dataHome}/pass";
PASSWORD_STORE_CLIP_TIME = "60";
};
};
programs.browserpass.enable = true;
programs.gpg.enable = true;
}