185 lines
4.1 KiB
Nix
185 lines
4.1 KiB
Nix
{ 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";
|
||
};
|
||
}
|