Init repo

This commit is contained in:
Kagura 2024-09-03 14:05:20 +08:00
commit 502359be51

122
home.nix Normal file
View file

@ -0,0 +1,122 @@
{ config, pkgs, ... }:
let
basicPackages = with pkgs; [
# Zsh packages
zsh
zsh-powerlevel10k
oh-my-zsh
thefuck
fzf
zsh-fzf-tab
git
eza
kitty
fuzzel
hyfetch
btop
vlc
];
nixosOnlyPackages = with pkgs; [
# Dev tools
rustup
clang-tools
pkg-config
openssl
zlib
];
otherOnlyPackages = with pkgs; [
helix
];
in
{
# Home Manager needs a bit of information about you and the paths it should
# manage.
home.username = "kagura";
home.homeDirectory = "/home/kagura";
# 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 = "24.05"; # Please read the comment before changing.
# The home.packages option allows you to install Nix packages into your
# environment.
home.packages = if (builtins.pathExists /etc/NIXOS) then
(basicPackages) ++ (nixosOnlyPackages)
else (basicPackages) ++ (otherOnlyPackages);
# Home Manager is pretty good at managing dotfiles. The primary way to manage
# plain files is through 'home.file'.
home.file = {
};
home.sessionVariables = {
EDITOR = "hx";
PKG_CONFIG_PATH = "${pkgs.openssl.dev}/lib/pkgconfig";
INPUT_METHOD = "fcitx";
QT_IM_MODULE = "fcitx";
GTK_IM_MODULE = "fcitx";
XIM_SERVERS = "fcitx";
};
programs.home-manager.enable = true;
programs.fzf = {
enable = true;
enableZshIntegration = true;
};
programs.zsh = {
enable = true;
enableCompletion = true;
syntaxHighlighting.enable = true;
shellAliases = {
ls = "eza";
ll = "eza --icons -l";
la = "eza --icons -al";
vi = "hx";
vim = "hx";
update = "sudo nixos-rebuild switch";
home-update = "home-manager switch";
};
history = {
size = 10000;
path = "${config.xdg.dataHome}/zsh/history";
};
zplug = {
enable = true;
plugins = [{ name = "zsh-users/zsh-autosuggestions"; }];
};
plugins = [{
name = "powerlevel10k";
src = pkgs.zsh-powerlevel10k;
file = "share/zsh-powerlevel10k/powerlevel10k.zsh-theme";
}];
oh-my-zsh = {
enable = true;
plugins = [ "git" "thefuck" ];
theme = "agnoster";
};
initExtra = ''
[[ ! -f ~/.p10k.zsh ]] || source ~/.p10k.zsh
source ${pkgs.zsh-fzf-tab}/share/fzf-tab/fzf-tab.plugin.zsh
'';
};
}