{ pkgs, ... }: { fonts.fontconfig = { enable = true; }; home = { language.base = "it_IT.UTF-8"; keyboard.layout = "it"; keyboard.options = ["terminate:ctrl_alt_bksp" "compose:rctrl"]; packages = with pkgs; [ nerdfonts ]; }; programs = { alacritty = { enable = false; settings = import ./alacritty.nix; }; bat = { enable = true; config = { theme = "Nord"; }; }; command-not-found.enable = true; broot = { enable = true; enableBashIntegration = true; enableZshIntegration = true; }; dircolors = { enable = true; enableBashIntegration = true; enableZshIntegration = true; }; direnv = { enable = true; enableBashIntegration = true; enableZshIntegration = true; enableNixDirenvIntegration = true; }; git = let kakouneCommand = "${pkgs.kakoune}/bin/kak"; meldCommand = "${pkgs.meld}/bin/meld"; in { enable = true; userName = "Filippo Berto"; userEmail = "berto.f@protonmail.com"; signing = { key = "berto.f@protonmail.com"; signByDefault = true; }; extraConfig = { core.editor = kakouneCommand; credential.helper = "cache --timeout=3600"; diff.guitool = meldCommand; merge.guitool = meldCommand; pull.rebase = true; rebase.autostash = true; init.defaultBranch = "master"; }; lfs.enable = true; delta.enable = true; }; info.enable = true; kakoune = { enable = true; config = import ./kakoune.nix pkgs; extraConfig = builtins.concatStringsSep "\n" [ "# Extra" "define-command -docstring 'save and quit' x 'write-all; quit'" "add-highlighter global/ regex \\h+$ 0:Error" "eval %sh{kak-lsp --kakoune -s \$kak_session}" "require-module auto-pairs" "require-module powerline" ]; plugins = [ pkgs.kakounePlugins.kak-auto-pairs pkgs.kakounePlugins.kak-auto-pairs pkgs.kakounePlugins.powerline-kak pkgs.kakounePlugins.prelude-kak ]; }; zsh = { enableVteIntegration = true; }; }; qt = { enable = true; platformTheme = "gtk"; }; xsession.numlock.enable = true; }