{ pkgs, lib, ... }: let HOME = "/home/mtgmonkey"; USERNAME = "mtgmonkey"; HOSTNAME = "nixos"; in { imports = [./home/stylix.nix]; programs = { bash = { enable = true; shellAliases = { # replacements neofetch = lib.mkForce "fastfetch"; ls = lib.mkForce "lsd"; ll = lib.mkForce "lsd -l"; l = lib.mkForce "lsd -la"; cd = lib.mkForce "z"; # gen gg = lib.mkForce "git log --oneline --abbrev-commit --all --graph --decorate --color"; md = lib.mkForce "glow"; # nixos/hm hm = lib.mkForce "home-manager"; hm-check = lib.mkForce "nix check flake ${HOME}/dotfiles/."; hm-switch = lib.mkForce "home-manager switch --flake ${HOME}/.dotfiles/. -f ${HOME}/.dotfiles/home.nix"; nix-check = lib.mkForce "nix check flake /etc/nixos/."; nix-switch = lib.mkForce "nixos-rebuild switch --flake /etc/nixos/."; }; bashrcExtra = '' PS1="\u@\h:\w$ " eval "$(zoxide init bash)" ''; }; btop = { enable = true; settings = { theme_background = false; vim_keys = true; rounded_corners = false; graph_symbol = "braille"; update_ms = 200; proc_sorting = "cpu lazy"; proc_gradient = false; proc_left = true; cpu_single_graph = true; cpu_bottom = true; clock_format = "/user@/host:/uptime@%H:%M"; background_update = false; mem_graphs = false; mem_below_net = true; show_swap = true; only_physical = true; show_io_stat = true; io_mode = false; io_graph_combined = false; log_level = "ERROR"; }; }; # alias git = { enable = true; userName = USERNAME; userEmail = "${USERNAME}@${HOSTNAME}"; extraConfig = { init.defaultBranch = "master"; }; }; gh.enable = true; nvf = { enable = true; settings.vim = { autocomplete.nvim-cmp.enable = false; formatter.conform-nvim = { enable = true; setupOpts.format_on_save = { lsp_format = "fallback"; timeout_ms = 5000; }; }; lsp.otter-nvim.enable = true; git.enable = true; keymaps = [ { key = ""; mode = ["i" "n" "v" "c"]; action = ""; } { key = ""; mode = ["i" "n" "v" "c"]; action = ""; } { key = ""; mode = ["i" "n" "v" "c"]; action = ""; } { key = ""; mode = ["i" "n" "v" "c"]; action = ""; } { key = "jj"; mode = ["i"]; action = ""; } { key = "kk"; mode = ["i"]; action = ""; } { key = "jk"; mode = ["i"]; action = ""; } { key = "kj"; mode = ["i"]; action = ""; } { key = ""; mode = ["i"]; action = ""; } ]; languages = { assembly.enable = true; nix = { enable = true; format.enable = true; lsp.enable = true; }; rust = { enable = true; format.enable = true; lsp.enable = true; }; haskell = { enable = true; lsp.enable = true; }; }; lineNumberMode = "relative"; options = { tabstop = 2; shiftwidth = 2; expandtab = true; smarttab = true; foldmethod = "indent"; number = true; }; statusline.lualine.enable = true; syntaxHighlighting = true; }; }; qutebrowser.enable = true; rofi.enable = true; ssh.enable = true; home-manager.enable = true; # alias # replacements fastfetch.enable = true; lsd.enable = true; }; services = { udiskie = { enable = false; settings.program_options.file_manager = "${pkgs.ranger}/bin/ranger"; }; }; xsession.windowManager.xmonad = { enable = true; enableContribAndExtras = true; config = ./home/xmonad/config.hs; }; xdg.configFile."shell".source = lib.getExe pkgs.brush; home = { username = USERNAME; homeDirectory = HOME; stateVersion = "25.05"; packages = [ pkgs.acpi pkgs.brush pkgs.brightnessctl pkgs.flameshot pkgs.fzf pkgs.jmtpfs pkgs.nix-output-monitor pkgs.lynx pkgs.rip2 pkgs.ripgrep pkgs.tree # alias pkgs.glow pkgs.zoxide ]; }; }