Files
nixos-configurations/home.nix
T
0xWheatyz c7a6827bdc feat(terminal): replace GNOME Console with Ghostty
Replace the default GNOME Console terminal with Ghostty by adding it to home packages, configuring it as the default terminal application via dconf settings, and excluding GNOME Console from installed packages.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2026-03-12 22:14:40 -04:00

215 lines
4.6 KiB
Nix

{ config, pkgs, ... }:
{
home.username = "l-wyatt";
home.homeDirectory = "/home/l-wyatt";
home.stateVersion = "25.11"; # Don't change after first setup
# Packages for this user
home.packages = with pkgs; [
kdePackages.kate
# nvim
firefox
git
zsh
python3
nmap
file
freerdp
bitwarden-desktop
bitwarden-cli
lunarvim
minicom
kicad
ghostty
gnomeExtensions.blur-my-shell
gnomeExtensions.just-perfection
gnomeExtensions.arc-menu
];
# --------------------------
# | Hyprland Configuration |
# --------------------------
# Set keybinds
wayland.windowManager.hyprland = {
enable = true;
settings = {
exec-once = [
"hyprpaper"
];
"$mod" = "SUPER";
bind = [
"$mod, Q, exec, konsole"
"$mod, C, killactive"
"$mod, M, exit"
"$mod, F, exec, firefox"
];
decoration = {
rounding = 10;
blur.enabled = true;
};
};
};
# Create hyprpaper config
home.file.".config/hypr/hyprpaper.conf" = {
text = ''
preload = ~/Pictures/background.jpg
wallpaper = eDP-1,~/Pictures/background.jpg
splash = false
'';
force = true;
};
# Enable Zsh and configure it
programs.zsh = {
enable = true;
oh-my-zsh.enable = true;
oh-my-zsh.theme = "agnoster";
initContent = ''
export SHELL=$(which zsh)
alias nix-shell='nix-shell --run $SHELL'
nix() {
if [[ $1 == "develop" ]]; then
shift
command nix develop "$@" -c $SHELL
else
command nix "$@"
fi
}
if [ -n "$NIX_PROJECT_SHELL" ]; then
PROMPT="($NIX_PROJECT_SHELL)$PROMPT"
fi
# Only start tmux if we're in an interactive terminal
if [ -z "$TMUX" ] && [ "$TERM" != "linux" ]; then
exec tmux
fi
'';
};
# Configure cursor theme
home.pointerCursor = {
gtk.enable = true;
x11.enable = true;
name = "Adwaita";
package = pkgs.adwaita-icon-theme;
size = 24;
};
# Set Ghostty as default terminal
dconf.settings = {
"org/gnome/desktop/default-applications/terminal" = {
exec = "ghostty";
exec-arg = "";
};
};
# Manage your git configuration declaratively
programs.git = {
enable = true;
settings = {
user = {
name = "0xWheatyz";
email = "wyatt@leeworks.dev";
};
init.defaultBranch = "master";
push.autoSetupRemote = "true";
alias.lg = "log --graph --pretty=format:'%C(yellow)%h%Creset -%C(red)%d%Creset %s %Cgreen(%cr)%Creset %C(bold blue)<%an>%Creset' --abbrev-commit";
};
};
# Enable tmux (terminal multiplexing)
programs.tmux = {
enable = true;
# Optional: customize tmux settings
extraConfig = ''
# Enable mouse support
set -g mouse on
# Start window numbering at 1
set -g base-index 1
# Set terminal colors
set -g default-terminal "screen-256color"
'';
};
# Neovim management - using kickstart.nvim via flake
# Basic fallback config (uncomment if not using the flake)
#programs.neovim = {
# enable = true;
# defaultEditor = true;
#
# # Load Lua config inline
# extraLuaConfig = ''
# vim.opt.number = true
# vim.opt.tabstop = 2
# vim.opt.shiftwidth = 2
# vim.opt.expandtab = true
# vim.opt.relativenumber = true
#
# require("telescope").setup {}
# require("nvim-treesitter.configs").setup { highlight = { enable = true } }
# '';
#
# plugins = with pkgs.vimPlugins; [
# telescope-nvim
# nvim-treesitter
# nvim-lspconfig
# gruvbox
# ];
#};
# Use kickstart.nvim configuration from flake
programs.neovim-kickstart.enable = true;
programs.ssh = {
enable = true;
enableDefaultConfig = false;
matchBlocks = {
"*" = {
controlMaster = "auto";
controlPersist = "1m";
controlPath = "~/.ssh/cm-%r@%h:%p";
};
"vps" = {
hostname = "45.79.198.105";
user = "wyatt";
port = 22;
};
# No terminal access to this machine
"_JumpHost" = {
hostname = "localhost";
port = 2222;
user = "wyatt";
proxyJump = "vps";
};
"home" = {
hostname = "10.0.0.20";
port = 22;
user = "l-wyatt";
proxyJump = "_JumpHost";
};
"git" = {
hostname = "10.0.1.10";
port = 22;
user = "git";
};
};
# extraConfig = ''
# Host *
# ControlMaster auto
# ControlPersist 1m
# ControlPath /tmp/cm-%r@%h:%p
# '';
};
}