Files
nixos/home-manager/terminal.nix
2025-01-11 22:41:21 +00:00

135 lines
2.6 KiB
Nix

{ lib, inputs, config, pkgs, ... }:
with lib;
let
cfg = config.programs.atuin;
in
{
options.terminal = {
nixUpdateLocation = mkOption {
type = types.str;
};
flakeUpdateLocation = mkOption {
type = types.str;
};
};
config = {
home.packages = with pkgs;[
blesh
(nerdfonts.override { fonts = [ "SpaceMono" ]; })
];
home.file = {
# # Building this configuration will create a copy of 'dotfiles/screenrc' in
# # the Nix store. Activating the configuration will then make '~/.screenrc' a
# # symlink to the Nix store copy.
# ".screenrc".source = dotfiles/screenrc;
# # You can also set the file content immediately.
# ".gradle/gradle.properties".text = ''
# org.gradle.console=verbose
# org.gradle.daemon.idletimeout=3600000
# '';
".gitconfig".source = ./dotfiles/gitconfig;
};
programs = {
bash = {
enable = true;
bashrcExtra = ''
source $(blesh-share)/ble.sh
bleopt canvas_winch_action=redraw-prev
'';
};
starship.enable = true;
atuin.enable = true;
zellij = {
enable = true;
enableBashIntegration = true;
settings = {
theme = "dracula";
};
};
direnv = {
enable = true;
enableBashIntegration = true;
nix-direnv.enable = true;
};
git = {
enable = true;
delta.enable = true;
};
gitui = {
enable = true;
};
helix.enable = true;
bat = {
enable = true;
};
eza = {
enable = true;
enableBashIntegration = true;
git = true;
extraOptions = [
"--color=auto"
"--icons=always"
"--group-directories-first"
"--header"
];
};
bottom = {
enable = true;
};
fd = {
enable = true;
};
ripgrep = {
enable = true;
};
topgrade = {
enable = true;
settings = {
misc = {
assume_yes = true;
};
linux = {
nix_arguments = "--flake ${config.terminal.nixUpdateLocation}";
};
pre_commands = {
nix-flake-update = "sudo nix flake update --flake ${config.terminal.flakeUpdateLocation}";
};
};
};
alacritty = {
enable = true;
settings = {
font = {
normal = {
family = "SpaceMono Nerd Font";
style = "Regular";
};
size = 14;
};
};
};
};
};
}