153 lines
3.9 KiB
Nix
Executable file
153 lines
3.9 KiB
Nix
Executable file
{ config, pkgs, ... }:
|
|
|
|
{
|
|
home.username = "lunita";
|
|
home.homeDirectory = "/home/lunita";
|
|
|
|
home.stateVersion = "25.05";
|
|
|
|
xdg.userDirs = {
|
|
enable = true;
|
|
createDirectories = true;
|
|
};
|
|
gtk = {
|
|
enable = true;
|
|
colorScheme = "dark";
|
|
};
|
|
|
|
programs.zsh = {
|
|
enable = true;
|
|
syntaxHighlighting.enable = true;
|
|
|
|
shellAliases = {
|
|
c = "clear";
|
|
nf = "neofetch";
|
|
v = "nvim";
|
|
d = "cd ~/Documents";
|
|
D = "cd ~/Downloads";
|
|
dot = "cd ~/dotfiles";
|
|
g = "git";
|
|
};
|
|
|
|
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
|
|
# Run Hyprland if applicable
|
|
if [[ "$(tty)" == "/dev/tty"* ]] && command -v Hyprland &> /dev/null; then
|
|
exec Hyprland
|
|
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 -m";
|
|
co = "checkout";
|
|
s = "status";
|
|
pu = "push origin master";
|
|
po = "push origin main";
|
|
rmc = "rm -r --cached";
|
|
};
|
|
};
|
|
|
|
nixpkgs.config.allowUnfree = true;
|
|
# Librewolf comes with safe defaults already, so minimal changes are necessary.
|
|
programs.librewolf = {
|
|
enable = true;
|
|
settings = {
|
|
"webgl.disabled" = false;
|
|
# "privacy.clearOnShutdown.history" = false;
|
|
# "privacy.clearOnShutdown.cookies" = false;
|
|
"network.cookie.lifetimePolicy" = 0;
|
|
};
|
|
};
|
|
|
|
services.udiskie = {
|
|
enable = true;
|
|
settings = {
|
|
program_options = {
|
|
file_manager = "${pkgs.kdePackages.dolphin}/bin/dolphin";
|
|
};
|
|
};
|
|
};
|
|
|
|
home.packages = with pkgs; [
|
|
tree # Nice file tree views w/ permissions
|
|
linux-wifi-hotspot # For hotspotting while over ethernet
|
|
neofetch # Muh epic r1ce!!!
|
|
hyfetch # basically neofetch but with queer flags
|
|
htop # OG resource manager
|
|
btop # Pretty resource manager
|
|
imagemagick # For converting images into other fmts
|
|
sxiv # Minimal image viewer
|
|
mpv # Media 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 # File syncing
|
|
ghostty # Terminal emulator
|
|
irssi # Terminal IRC client
|
|
nyxt # Customizable browser
|
|
cmus # C Music Player (TUI)
|
|
deadbeef # Closest thing to foobar2000 native on Linux
|
|
nicotine-plus # FOSS client for SoulSeek
|
|
kdePackages.dolphin # GUI File Manager
|
|
# Fonts
|
|
nerd-fonts.jetbrains-mono
|
|
miracode
|
|
monocraft
|
|
];
|
|
fonts.fontconfig.enable = true;
|
|
|
|
home.file = {
|
|
# Ghostty
|
|
".config/ghostty/config" .source = dotfiles/ghostty/config;
|
|
# Neovim
|
|
".config/nvim/init.lua" .source = dotfiles/nvim/init.lua;
|
|
# Emacs
|
|
".emacs.d/init.el" .source = dotfiles/.emacs.d/init.el;
|
|
# MPV
|
|
".config/mpv/mpv.conf" .source = dotfiles/mpv/mpv.conf;
|
|
# Btop
|
|
".config/btop/btop.conf" .source = dotfiles/btop/btop.conf;
|
|
# Neofetch
|
|
".config/neofetch/config.conf" .source = dotfiles/neofetch/config.conf;
|
|
# Hyprland
|
|
".config/hypr/bg.jpg" .source = dotfiles/hypr/bg.jpg;
|
|
".config/hypr/hyprland.conf" .source = dotfiles/hypr/hyprland.conf;
|
|
".config/hypr/start.sh" .source = dotfiles/hypr/start.sh;
|
|
# Waybar
|
|
".config/waybar/config" .source = dotfiles/waybar/config;
|
|
".config/waybar/style.css" .source = dotfiles/waybar/style.css;
|
|
};
|
|
|
|
home.sessionVariables = {
|
|
EDITOR = "nvim";
|
|
};
|
|
|
|
programs.home-manager.enable = true;
|
|
}
|