c7a6827bdc
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>
215 lines
4.6 KiB
Nix
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
|
|
# '';
|
|
|
|
};
|
|
|
|
}
|
|
|