128 lines
3.2 KiB
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;
|
|
}
|