dotfiles/.config/nix/hosts/mecca/home.nix

128 lines
3.2 KiB
Nix

{ config, pkgs, ... }:
{
home.username = "lunita";
home.homeDirectory = "/home/lunita";
home.stateVersion = "25.05";
programs.zsh = {
enable = true;
syntaxHighlighting.enable = true;
shellAliases = {
c = "clear";
nf = "neofetch";
hmc = "nvim ~/.config/home-manager/home.nix";
hmb = "home-manager build switch";
fkc = "sudo nvim ~/.config/nixos/flake.nix";
nxr = "sudo nixos-rebuild switch --flake ~/.config/nixos#${config.home.sessionVariables.HOSTNAME}";
v = "nvim";
d = "cd ~/Documents";
D = "cd ~/Downloads";
};
initContent = ''
# '~' => goto base of user home directory
alias ~='cd ~'
# Vim keybinds
bindkey -v
# Preferred editor for local and remote sessions
if [[ -n $SSH_CONNECTION ]]; then
export EDITOR='vim'
else
export EDITOR='nvim'
fi
# Set TERM for Ghostty ssh workaround
if [[ "$TERM_PROGRAM" == "ghostty" ]]; then
export TERM=xterm-256color
fi
'';
history.size = 10000;
oh-my-zsh = {
enable = true;
plugins = [ "git" ];
theme = "lambda";
};
};
programs.git = {
enable = true;
userName = "lulusilly";
userEmail = "lunita@puppygirl.onl";
aliases = {
ci = "commit";
co = "checkout";
s = "status";
};
};
programs.waybar = {
enable = true;
package = pkgs.waybar;
# Define the Waybar style.css content here
style = ''
* {
font-family: "JetBrainsMono Nerd Font", monospace;
font-size: 13px;
}
#window {
/* Example: style the window module */
background-color: #333333;
color: #ffffff;
border-radius: 8px;
padding: 0 10px;
}
'';
# Define the Waybar config content here (JSON format)
settings = {
mainBar = {
layer = "top";
position = "top";
modules-left = [ "hyprland/workspaces" "hyprland/window" ];
modules-center = [ "clock" ];
modules-right = [ "network" "pulseaudio" "battery" ];
};
};
};
nixpkgs.config.allowUnfree = true;
home.packages = with pkgs; [
tree # Nice file tree views w/permissions
neofetch # Muh epic r1ce!!!
btop # Resource manager
stow # For dotfiles deployment. May use home.file in future
imagemagick # For converting images into other fmts
sxiv # Minimal image viewer
mpv # Video player
zathura # PDF/CBZ/EPUB/DJVU reader
tmux # Tride and true terminal multiplexer
obsidian # For epic note taking (really just mediocre journaling)
keepassxc # Secure password manager
syncthing # Self explanatory
];
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 = {
EDITOR = "nvim";
HOSTNAME = builtins.getEnv "HOSTNAME";
};
programs.home-manager.enable = true;
}