{ config, pkgs, ... }: let inherit (config) conf; inherit (config.conf) keys; in { programs.fish.enable = true; users.defaultUserShell = pkgs.fish; home-manager.users.${conf.username} = { home.packages = with pkgs; [ man-pages man-pages-posix ]; home.file = { ".gdbinit" = { source = ./gdbinit.conf; }; }; programs.man = { enable = true; }; programs.less = { enable = true; keys = '' ${keys.up} back-line ${keys.down} forw-line ''; }; programs.git = { enable = true; userName = "twoneis"; userEmail = "git@chpu.eu"; extraConfig = { init.defaultBranch = "main"; push.autoSetupRemote = true; }; }; programs.helix = { enable = true; defaultEditor = true; extraPackages = with pkgs; [nil marksman]; settings = import ./helix.conf.nix {config = config;}; languages = import ./helix-languages.conf.nix {}; }; programs.direnv = { enable = true; enableBashIntegration = true; nix-direnv.enable = true; }; programs.bottom = { enable = true; }; programs.hyfetch = { enable = true; settings = import ./hyfetch.conf.nix {}; }; programs.fish = { enable = true; plugins = [ { name = "pure"; src = pkgs.fishPlugins.pure.src; } ]; functions = { run = { body = '' nix run nixpkgs#$argv[1] -- $argv[2..] ''; }; initdev = { body = '' nix flake init -t github:twoneis/flakes#$argv[1] ''; }; fish_prompt = { body = builtins.readFile ./prompt.fish; }; }; shellAliases = { ll = "ls --almost-all --ignore-backups --literal --human-readable --time-style=long-iso -l"; }; shellAbbrs = { ga = "git add"; gc = "git commit"; gp = "git push"; gs = "git submodule sync --recursive && git submodule update --init --recursive"; gpl = "git pull --recurse-submodules"; gst = "git status"; nrb = "sudo nixos-rebuild switch --cores 0 --flake ."; nd = "nix develop"; repl = "nix repl --expr 'import {}'"; }; }; }; }