Files
nixos-dotfiles/home.nix
T
2026-06-03 05:38:20 +02:00

166 lines
4.9 KiB
Nix
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
{config, pkgs, ...}:
{
home.username = "ulve";
home.homeDirectory = "/home/ulve";
programs.git = {
enable = true;
settings.user.name = "ulve";
settings.user.email = "johansson.olov@gmail.com";
delta.enable = true;
};
programs.eza = {
enable = true;
enableZshIntegration = true;
git = true;
icons = "auto";
};
programs.bat = {
enable = true;
};
home.stateVersion = "26.05";
programs.bash = {
enable = true;
shellAliases = {
n = "nvim";
rebuild = "sudo nixos-rebuild switch --flake ~/nixos-dotfiles";
};
};
programs.zoxide = {
enable = true;
enableZshIntegration = true;
options = [ "--cmd z" ];
};
programs.fzf = {
enable = true;
enableZshIntegration = true;
};
programs.zsh = {
enable = true;
shellAliases = {
n = "nvim";
rebuild = "sudo nixos-rebuild switch --flake ~/nixos-dotfiles";
};
initContent = ''
bindkey "^[[A" history-search-backward
bindkey "^[[B" history-search-forward
'';
};
programs.starship = {
enable = true;
enableZshIntegration = true;
settings = {
format = "$directory$git_branch$git_status$line_break$character";
right_format = "$time";
directory = {
truncation_length = 3;
truncate_to_repo = false;
style = "bold cyan";
};
git_branch = {
format = "[$symbol$branch]($style) ";
style = "bold purple";
};
git_status = {
format = "([\\[$all_status$ahead_behind\\]]($style) )";
style = "bold red";
ahead = "⇡$count";
behind = "⇣$count";
diverged = "⇕⇡$ahead_count⇣$behind_count";
modified = "!$count";
untracked = "?$count";
staged = "+$count";
deleted = "✘$count";
};
time = {
disabled = false;
format = "[$time]($style)";
style = "dimmed white";
time_format = "%H:%M:%S";
};
character = {
success_symbol = "[](bold green)";
error_symbol = "[](bold red)";
};
};
};
programs.ssh = {
enable = true;
enableDefaultConfig = false;
settings = {
"codeberg.org" = {
IdentityFile = "~/.ssh/id_ed25519_codeberg";
};
};
};
xdg.configFile."qtile".source = ./config/qtile;
xdg.configFile."nvim" = {
source = config.lib.file.mkOutOfStoreSymlink "/home/ulve/nixos-dotfiles/config/dottily";
};
xdg.configFile."sway".source = ./config/sway;
home.packages = with pkgs; [
claude-code # ai coding assistant
wl-clipboard # wayland copy utils
slurp # select region in wayland for copy
grim # grab images from wayland
brave # browser
fastfetch # vanity
wlogout # logout menu
foot # terminal
wmenu # dynamic menu
btop # resource monitor
htop # process viewer
tmux # terminal multiplexer
neovim # editor
fd # fast find alternative
ripgrep # fast grep alternative
gcc # c compiler (also needed by treesitter)
nodejs # javascript runtime
powershell # yes
teams-for-linux # teams
yazi # terminal file manager
thunar # gui file manager
tree-sitter # parser generator (nvim)
nil # language server for nix
nixpkgs-fmt # nix code formatter
lua-language-server # lsp: lua
pyright # lsp: python
bash-language-server # lsp: bash
vtsls # lsp: typescript/javascript
gopls # lsp: go
omnisharp-roslyn # lsp: c#
efm-langserver # lsp: general purpose (runs linters/formatters)
stylua # formatter: lua
lua54Packages.luacheck # linter: lua
black # formatter: python
python3Packages.flake8 # linter: python
prettierd # formatter: js/ts/html/css/json (daemon)
eslint_d # linter: js/ts (daemon)
fixjson # formatter: json
shellcheck # linter: bash/sh
shfmt # formatter: bash/sh
gofumpt # formatter: go (stricter gofmt)
go # go toolchain (needed by gopls + revive)
revive # linter: go
dotnet-sdk # .net sdk (c#)
jq # json processor
];
}