{ config, lib, pkgs, ... }: { home = { file = { "${config.xdg.configHome}/neofetch/config.conf".text = builtins.readFile ./neofetch.conf; }; packages = with pkgs; [ neofetch ]; sessionVariables = { EDITOR = "vi"; MANPAGER = "sh -c 'col --no-backspaces --spaces | bat --language man'"; SYSTEMD_EDITOR = "vi"; VISUAL = "vi"; }; }; programs = { atuin = { enable = true; enableBashIntegration = true; enableFishIntegration = true; flags = [ "--disable-up-arrow" ]; package = pkgs.unstable.atuin; settings = { auto_sync = true; dialect = "uk"; show_preview = true; style = "compact"; sync_frequency = "1h"; sync_address = "https://api.atuin.sh"; update_check = false; }; }; bat = { enable = true; extraPackages = with pkgs.bat-extras; [ batwatch prettybat ]; }; bottom = { enable = true; settings = { colors = { high_battery_color = "green"; medium_battery_color = "yellow"; low_battery_color = "red"; }; disk_filter = { is_list_ignored = true; list = [ "/dev/loop" ]; regex = true; case_sensitive = false; whole_word = false; }; flags = { dot_marker = false; enable_gpu_memory = true; group_processes = true; hide_table_gap = true; mem_as_value = true; tree = true; }; }; }; dircolors = { enable = true; enableBashIntegration = true; enableFishIntegration = true; }; direnv = { enable = true; enableBashIntegration = true; nix-direnv = { enable = true; }; }; exa = { enable = true; enableAliases = true; icons = true; }; fish = { enable = true; shellAliases = { cat = "bat --paging=never --style=plain"; htop = "btm --basic --tree --hide_table_gap --dot_marker --mem_as_value"; ip = "ip --color --brief"; less = "bat --paging=always"; more = "bat --paging=always"; top = "btm --basic --tree --hide_table_gap --dot_marker --mem_as_value"; tree = "exa --tree"; }; }; gh = { enable = true; extensions = with pkgs; [ gh-markdown-preview ]; settings = { editor = "micro"; git_protocol = "ssh"; prompt = "enabled"; }; }; git = { enable = true; delta = { enable = true; options = { features = "decorations"; navigate = true; side-by-side = true; }; }; aliases = { lg = "log --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit --date=relative"; }; extraConfig = { push = { default = "matching"; }; pull = { rebase = true; }; init = { defaultBranch = "main"; }; }; ignores = [ "*.log" "*.out" ".DS_Store" "bin/" "dist/" "result" ]; }; gpg.enable = true; home-manager.enable = true; info.enable = true; jq.enable = true; micro = { enable = true; settings = { colorscheme = "simple"; diffgutter = true; rmtrailingws = true; savecursor = true; saveundo = true; scrollbar = true; }; }; powerline-go = { enable = true; settings = { cwd-max-depth = 5; cwd-max-dir-size = 12; max-width = 60; }; }; }; services = { gpg-agent = { enable = true; enableSshSupport = true; pinentryFlavor = "curses"; }; }; # Nicely reload system units when changing configs systemd.user.startServices = "sd-switch"; xdg = { enable = true; userDirs = { enable = true; createDirectories = lib.mkDefault true; extraConfig = { XDG_SCREENSHOTS_DIR = "${config.home.homeDirectory}/Pictures/Screenshots"; }; }; }; }