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
|
2023-07-02 03:43:47 +00:00
|
|
|
|
git
|
2023-07-23 22:34:50 +00:00
|
|
|
|
srain
|
|
|
|
|
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
|
2023-07-24 05:34:37 +00:00
|
|
|
|
comic-mono
|
2023-07-01 04:21:17 +00:00
|
|
|
|
btop
|
|
|
|
|
firefox
|
|
|
|
|
apostrophe
|
|
|
|
|
warp
|
|
|
|
|
syncplay
|
|
|
|
|
mpv
|
|
|
|
|
wl-clipboard
|
|
|
|
|
adw-gtk3
|
|
|
|
|
# some bullshit to get gnome apps to install withotu a prefix
|
2023-07-24 05:34:37 +00:00
|
|
|
|
] ++ ( with pkgs.gnome; [
|
2023-07-23 22:34:50 +00:00
|
|
|
|
gnome-boxes
|
2023-07-01 04:21:17 +00:00
|
|
|
|
gnome-tweaks
|
|
|
|
|
dconf-editor
|
2023-07-24 05:34:37 +00:00
|
|
|
|
] ++ ( with pkgs.gnomeExtensions; [
|
2023-07-01 04:21:17 +00:00
|
|
|
|
night-theme-switcher
|
|
|
|
|
rounded-window-corners
|
|
|
|
|
appindicator
|
2023-07-24 05:34:37 +00:00
|
|
|
|
]));
|
2023-07-01 04:21:17 +00:00
|
|
|
|
|
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
|
2023-07-24 05:34:37 +00:00
|
|
|
|
# EDITOR = "nvim";
|
|
|
|
|
VISUAL = "neovide --nofork";
|
|
|
|
|
NEOVIDE_MULTIGRID = 1;
|
2023-07-02 03:43:47 +00:00
|
|
|
|
|
|
|
|
|
# fish config
|
2023-07-24 06:24:22 +00:00
|
|
|
|
fish_greeting = "✨️ heya ${config.home.username}, welcome to $(hostnamectl --pretty) ~";
|
2023-07-02 03:43:47 +00:00
|
|
|
|
};
|
|
|
|
|
|
2023-07-01 04:21:17 +00:00
|
|
|
|
# configure programs
|
|
|
|
|
programs.home-manager.enable = true;
|
2023-07-24 05:34:37 +00:00
|
|
|
|
programs.neovim = {
|
|
|
|
|
enable = true;
|
|
|
|
|
defaultEditor = true;
|
|
|
|
|
viAlias = true;
|
|
|
|
|
vimAlias = true;
|
|
|
|
|
vimdiffAlias = true;
|
|
|
|
|
withNodeJs = true;
|
|
|
|
|
|
|
|
|
|
coc = {
|
|
|
|
|
enable = true;
|
|
|
|
|
};
|
|
|
|
|
};
|
2023-07-01 04:21:17 +00:00
|
|
|
|
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";
|
|
|
|
|
};
|
2023-07-24 05:34:37 +00:00
|
|
|
|
shellAliases = {
|
|
|
|
|
aria = "aria2c -c -k1M -x10";
|
|
|
|
|
dw = "diceware -n 6 -d -";
|
2023-07-24 06:30:52 +00:00
|
|
|
|
ksh = "kitty +kitten ssh";
|
2023-07-24 05:34:37 +00:00
|
|
|
|
};
|
|
|
|
|
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
|
|
|
|
|
'';
|
|
|
|
|
};
|
2023-07-01 04:21:17 +00:00
|
|
|
|
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";
|
|
|
|
|
};
|
|
|
|
|
};
|
2023-07-24 05:34:37 +00:00
|
|
|
|
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;
|
|
|
|
|
};
|
|
|
|
|
};
|
2023-07-01 04:21:17 +00:00
|
|
|
|
programs.browserpass.enable = true;
|
|
|
|
|
programs.gpg.enable = true;
|
2023-07-24 05:34:37 +00:00
|
|
|
|
|
|
|
|
|
# themeing
|
|
|
|
|
qt = {
|
|
|
|
|
enable = true;
|
|
|
|
|
platformTheme = "gnome";
|
|
|
|
|
style.name = "adwaita";
|
|
|
|
|
};
|
2023-07-01 04:21:17 +00:00
|
|
|
|
}
|