user-config/home.nix
2023-07-24 06:30:52 +00:00

185 lines
4.1 KiB
Nix
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

{ config, pkgs, ... }:
{
# Home Manager needs a bit of information about you and the paths it should
# manage.
home.username = "hive";
home.homeDirectory = "/home/hive";
# 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.
# The home.packages option allows you to install Nix packages into your
# environment.
home.packages = with pkgs; [
bat
diceware
pwgen
git
srain
neovide
schildichat-desktop
dino
mangohud
termpdfpy
gimp
lollypop
skim
picard
syncthing
armcord
tdesktop
ripgrep
tmate
comic-mono
btop
firefox
apostrophe
warp
syncplay
mpv
wl-clipboard
adw-gtk3
# some bullshit to get gnome apps to install withotu a prefix
] ++ ( with pkgs.gnome; [
gnome-boxes
gnome-tweaks
dconf-editor
] ++ ( with pkgs.gnomeExtensions; [
night-theme-switcher
rounded-window-corners
appindicator
]));
# 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";
VISUAL = "neovide --nofork";
NEOVIDE_MULTIGRID = 1;
# fish config
fish_greeting = " heya ${config.home.username}, welcome to $(hostnamectl --pretty) ~";
};
# configure programs
programs.home-manager.enable = true;
programs.neovim = {
enable = true;
defaultEditor = true;
viAlias = true;
vimAlias = true;
vimdiffAlias = true;
withNodeJs = true;
coc = {
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";
};
shellAliases = {
aria = "aria2c -c -k1M -x10";
dw = "diceware -n 6 -d -";
ksh = "kitty +kitten ssh";
};
functions = {
edit = ''
if test $XDG_SESSION_TYPE != tty
$VISUAL $argv
else
$EDITOR $argv
end
'';
fish_prompt = ''
set -l last_status $status
prompt_login
echo -n ' : '
set_color $fish_color_cwd
echo -n (prompt_pwd)
set_color normal
fish_vcs_prompt '|%s'
echo " "
if not test $last_status -eq 0
set_color $fish_color_error
end
echo -n "> "
set_color normal
'';
};
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.kitty = {
enable = true;
shellIntegration.enableFishIntegration = true;
theme = "Catppuccin-Mocha";
settings = {
tab_bar_style = "powerline";
tab_powerline_style = "round";
hide_window_decorations = true;
tab_bar_edge = "top";
remember_window_size = false;
initial_window_widthc = 216;
initial_window_heightc = 168;
allow_remote_control = true;
shell = "fish";
editor = "nvim";
font_family = "Comic Mono";
font_size = 13;
};
};
programs.browserpass.enable = true;
programs.gpg.enable = true;
# themeing
qt = {
enable = true;
platformTheme = "gnome";
style.name = "adwaita";
};
}