Skip to content

Instantly share code, notes, and snippets.

@eduardolat
Created December 19, 2025 17:14
Show Gist options
  • Select an option

  • Save eduardolat/599094a9a4fda1f4d8c87d5e599f42dc to your computer and use it in GitHub Desktop.

Select an option

Save eduardolat/599094a9a4fda1f4d8c87d5e599f42dc to your computer and use it in GitHub Desktop.
Gnome terminal configuration in nix for home-manager
{ lib, pkgs, ... }:
{
# Install gnome terminal
home.packages = [
pkgs.gnome-terminal
];
# Configure gnome terminal keybindings, follow this guide to configure dconf
# https://wiki.nixos.org/wiki/GNOME
#
# Color scheme: https://raw.githubusercontent.com/catppuccin/palette/refs/heads/main/palette.json
dconf = {
enable = true;
settings = {
"org/gnome/terminal/legacy/profiles:/:b1dcc9dd-5262-4d8d-a863-c897e6d979b9" = {
visible-name = "Eduardo";
background-color = "rgb(30,32,48)";
foreground-color = "rgb(198,208,245)";
audible-bell = true;
bold-color-same-as-fg = true;
bold-is-bright = false;
cell-height-scale = 1.0;
cell-width-scale = 1.0;
cursor-colors-set = false;
cursor-blink-mode = "system";
cursor-shape = "ibeam";
default-size-columns = 130;
default-size-rows = 35;
font = "FiraCode Nerd Font Mono 12";
text-blink-mode = "always";
highlight-colors-set = false;
palette = [
"rgb(81,87,109)"
"rgb(231,130,132)"
"rgb(166,209,137)"
"rgb(229,200,144)"
"rgb(140,170,238)"
"rgb(244,184,228)"
"rgb(129,200,190)"
"rgb(181,191,226)"
"rgb(98,104,128)"
"rgb(231,130,132)"
"rgb(166,209,137)"
"rgb(229,200,144)"
"rgb(140,170,238)"
"rgb(244,184,228)"
"rgb(129,200,190)"
"rgb(198,208,245)"
];
scroll-on-keystroke = true;
scroll-on-output = false;
use-system-font = false;
use-theme-colors = false;
};
"org/gnome/terminal/legacy/keybindings" = {
"new-tab" = "<Primary><Shift>t";
"new-window" = "<Primary><Shift>n";
"close-tab" = "<Primary><Shift>w";
"copy" = "<Primary><Shift>c";
"paste" = "<Primary><Shift>v";
"find" = "<Primary><Shift>f";
"prev-tab" = "<Primary><Shift>Left";
"next-tab" = "<Primary><Shift>Right";
"select-all" = "<Primary><Shift>a";
"zoom-in" = "<Primary>equal";
"zoom-out" = "<Primary>minus";
"zoom-normal" = "<Primary>0";
"close-window" = "disabled";
"copy-html" = "disabled";
"preferences" = "disabled";
"toggle-menubar" = "disabled";
"full-screen" = "disabled";
"find-next" = "disabled";
"find-previous" = "disabled";
"find-clear" = "disabled";
"read-only" = "disabled";
"reset" = "disabled";
"reset-and-clear" = "disabled";
"move-tab-left" = "disabled";
"move-tab-right" = "disabled";
"detach-tab" = "disabled";
"switch-to-tab-1" = "disabled";
"switch-to-tab-2" = "disabled";
"switch-to-tab-3" = "disabled";
"switch-to-tab-4" = "disabled";
"switch-to-tab-5" = "disabled";
"switch-to-tab-6" = "disabled";
"switch-to-tab-7" = "disabled";
"switch-to-tab-8" = "disabled";
"switch-to-tab-9" = "disabled";
"switch-to-tab-10" = "disabled";
"switch-to-tab-11" = "disabled";
"switch-to-tab-12" = "disabled";
"switch-to-tab-13" = "disabled";
"switch-to-tab-14" = "disabled";
"switch-to-tab-15" = "disabled";
"switch-to-tab-16" = "disabled";
"switch-to-tab-17" = "disabled";
"switch-to-tab-18" = "disabled";
"switch-to-tab-19" = "disabled";
"switch-to-tab-20" = "disabled";
"switch-to-tab-21" = "disabled";
"switch-to-tab-22" = "disabled";
"switch-to-tab-23" = "disabled";
"switch-to-tab-24" = "disabled";
"switch-to-tab-25" = "disabled";
"switch-to-tab-26" = "disabled";
"switch-to-tab-27" = "disabled";
"switch-to-tab-28" = "disabled";
"switch-to-tab-29" = "disabled";
"switch-to-tab-30" = "disabled";
"switch-to-tab-31" = "disabled";
"switch-to-tab-32" = "disabled";
"switch-to-tab-33" = "disabled";
"switch-to-tab-34" = "disabled";
"switch-to-tab-35" = "disabled";
"switch-to-tab-last" = "disabled";
"help" = "disabled";
"header-menu" = "disabled";
};
};
};
programs = {
# Bash configuration
bash = {
enable = true;
shellAliases = {
c = "clear";
l = "eza -lga"; # Large list + hidden
ll = "l";
lt = "eza --tree"; # List tree format
".." = "z ..";
cd = "z";
lzd = "lazydocker";
n = "task -d ~/nixos-config";
};
};
# Prompt customizations
starship = {
enable = true;
enableBashIntegration = true;
settings = {
format = lib.concatStrings [
"$directory"
"$nix_shell"
"$git_branch"
"$git_status"
"$cmd_duration"
"$line_break"
"$character"
];
directory = {
truncate_to_repo = false;
truncation_symbol = "…/";
};
nix_shell = {
format = "via [$symbol]($style)";
};
cmd_duration = {
min_time = 0;
show_milliseconds = true;
};
character = {
success_symbol = "[➜](bold green)";
error_symbol = "[✗](bold red)";
};
add_newline = true;
};
};
# Better cd replacement
zoxide = {
enable = true;
enableBashIntegration = true;
};
# Better ls replacement
eza = {
enable = true;
enableBashIntegration = true;
icons = true; # Requires nerd fonts
};
# Fuzzy finder
fzf = {
enable = true;
enableBashIntegration = true;
};
};
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment