Moved from nixos-config server branch

This commit is contained in:
2025-01-19 17:28:53 -08:00
parent cbc06888a4
commit 0b12d08acf
7 changed files with 444 additions and 0 deletions
+190
View File
@@ -0,0 +1,190 @@
{ config, pkgs, lib, ... }:
{
home.packages = with pkgs; [
#cli tools
bat
btop
curl
docker
dust
ghostty
git
neovim
nettools
nix-prefetch-github
nmap
openssh
tailscale
thefuck
tldr
unzip
vim
wget
];
programs = {
fastfetch.enable = true;
fzf.enable = true;
bat.enable = true;
btop.enable = true;
kitty.enable = true;
yazi.enable = true;
starship.enable = true;
lazygit.enable = true;
#thefuck.enable = true;
#thefuck.enableZshIntegration = true;
git = {
enable = true;
userName = "USER";
};
eza = {
enable = true;
icons = "auto";
enableZshIntegration = true;
extraOptions = [
"--group-directories-first"
];
};
ssh = {
enable = true;
matchBlocks = {
global = {
host = "*";
setEnv = {
TERM = "xterm-256color";
};
};
};
# Add IdentityAgent configuration here
extraConfig = ''
IdentityAgent ~/.1password/agent.sock
'';
};
zoxide = {
enable = true;
enableZshIntegration = true;
};
zsh = {
enable = true;
enableCompletion = true;
autosuggestion.enable = true;
syntaxHighlighting.enable = true;
historySubstringSearch.enable = true;
shellAliases = {
ls = "eza --color=auto";
grep = "grep --color=auto";
ll = "eza -la";
lg = "lazygit";
fu = "fuck";
lt = "eza --tree";
cd = "z";
cat = "bat";
catp = "bat -p";
btop = "btop --utf-force";
open = "xdg-open";
};
initExtra = ''
. ~/.nix-profile/etc/profile.d/nix.sh
fastfetch
'';
history = {
size = 10000;
path = "${config.xdg.dataHome}/zsh/history";
};
oh-my-zsh = {
enable = true;
#plugins = ["thefuck"];
};
};
starship = {
settings = {
add_newline = true;
format = lib.concatStrings [
"$time"
"$directory"
"$git_branch"
"$git_status"
"$hostname"
"$golang"
"direnv"
"$status"
];
right_format = lib.concatStrings [
"$cmd_duration"
];
cmd_duration = {
disabled = false;
show_notifications = false;
min_time = 2000;
format = "[$duration](bold yellow)";
};
directory = {
style = "cyan";
format = ''\[[$path]($style)\] '';
};
direnv = {
disabled = false;
};
git_branch = {
style = "bold cyan";
format = ''\[[$symbol$branch(:$remote_branch)]($style)\] '';
};
git_status = {
format = "[($all_status$ahead_behind )]($style)";
conflicted = "🏳";
ahead = "\${count}";
diverged = "\${ahead_count}\${behind_count}";
behind = "\${count}";
up_to_date = "";
untracked = "🤷";
stashed = "📦";
modified = "📝";
staged = ''[++\($count\)](green)'';
renamed = "👅";
deleted = "🗑";
};
golang = {
format = ''\[[$symbol($version)]($style)\]'';
};
hostname = {
format = "[$ssh_symbol$hostname]($style) ";
};
status = {
disabled = false;
success_symbol = "[](bold red)[](bold yellow)[](bold green) ";
symbol = "[](bold red) ";
format = "$symbol";
};
time = {
disabled = false;
style = "cyan";
format = ''\[[$time]($style)\] '';
};
};
};
};
}
+26
View File
@@ -0,0 +1,26 @@
{
programs = {
direnv = {
enable = true;
enableZshIntegration = true;
# export_function needed for per directory function/alias with direnv: https://github.com/direnv/direnv/issues/73
stdlib = ''
export_function() {
local name=$1
local alias_dir=$PWD/.direnv/aliases
mkdir -p "$alias_dir"
PATH_add "$alias_dir"
local target="$alias_dir/$name"
if declare -f "$name" >/dev/null; then
echo "#!$SHELL" > "$target"
declare -f "$name" >> "$target" 2>/dev/null
# notice that we add shell variables to the function trigger.
echo "$name \$*" >> "$target"
chmod +x "$target"
fi
}
'';
nix-direnv.enable = true;
};
};
}
Binary file not shown.

After

Width:  |  Height:  |  Size: 38 KiB

+126
View File
@@ -0,0 +1,126 @@
{
programs = {
fastfetch = {
enable = true;
settings = {
logo = {
source = "/etc/nixos/home-manager/fastfetch/assets/evangelion-mecha-neon-genesis-desktop-wallpaper-cover.jpg";
type = "kitty";
height = 20;
width = 60;
padding = {
top = 2; #2;
left = 2; # 3;
};
};
display = {
separator = " ";
};
modules = [
"break"
"break"
{
type = "os";
key = " OS ";
keyColor = "31";
}
{
type = "kernel";
key = " kernel";
keyColor = "31";
}
{
type = "packages";
key = " 󰏖 packages";
keyColor = "31";
}
{
type = "shell";
key = " shell";
keyColor = "31";
}
"break"
{
type = "wm";
key = " WM ";
keyColor = "32";
}
{
type = "wmtheme";
key = " 󰉼 theme";
keyColor = "32";
}
{
type = "icons";
key = " 󰀻 icons";
keyColor = "32";
}
{
type = "cursor";
key = " cursor";
keyColor = "32";
}
{
type = "terminal";
key = " terminal";
keyColor = "32";
}
{
type = "processes";
key = " processes";
keyColor = "32";
}
"break"
{
type = "host";
format = "{5} {1} Type {2}";
key = " PC ";
keyColor = "33";
}
{
type = "cpu";
format = "{1} ({3}) @ {7} GHz";
key = " cpu";
keyColor = "33";
}
{
type = "gpu";
format = "{1} {2} @ {12} GHz";
key = " 󰢮 gpu";
keyColor = "33";
}
{
type = "memory";
key = " memory";
keyColor = "33";
}
{
type = "swap";
key = " 󰓡 swap";
keyColor = "33";
}
{
type = "disk";
key = " 󰋊 disk";
keyColor = "33";
}
{
type = "monitor";
key = " monitor";
keyColor = "33";
}
{
type = "battery";
key = " 󰂀 battery";
keyColor = "33";
}
{
type = "localip";
key = " 󰩟 local ip";
keyColor = "33";
}
];
};
};
};
}
+71
View File
@@ -0,0 +1,71 @@
{ config, pkgs, inputs, ... }:
{
imports = [
./cli-tools.nix
./fastfetch/fastfetch.nix
./direnv.nix
];
# Home Manager needs a bit of information about you and the paths it should
# manage.
home.username = "USER";
home.homeDirectory = "/home/USER";
# This value determines the Home Manager release that your configuration is
# compatible with. This helps avoid breakage when a new Home Manager release
# introduces backwards incompatible changes.
#
# You should not change this value, even if you update Home Manager. If you do
# want to update the value, then make sure to first check the Home Manager
# release notes.
home.stateVersion = "24.11"; # Please read the comment before changing.
nixpkgs.config.allowUnfree = true;
fonts.fontconfig.enable = true;
# The home.packages option allows you to install Nix packages into your
# environment.
home.packages = with pkgs; [
#(pkgs.nerdfonts.override { fonts = [ "FiraCode" "DroidSansMono" ]; })
];
# Home Manager is pretty good at managing dotfiles. The primary way to manage
# plain files is through 'home.file'.
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
# '';
};
# Home Manager can also manage your environment variables through
# 'home.sessionVariables'. These will be explicitly sourced when using a
# shell provided by Home Manager. If you don't want to manage your shell
# through Home Manager then you have to manually source 'hm-session-vars.sh'
# located at either
#
# ~/.nix-profile/etc/profile.d/hm-session-vars.sh
#
# or
#
# ~/.local/state/nix/profiles/profile/etc/profile.d/hm-session-vars.sh
#
# or
#
# /etc/profiles/per-user/sapphiregaze/etc/profile.d/hm-session-vars.sh
#
home.sessionVariables = {
EDITOR = "nvim";
};
# Let Home Manager install and manage itself.
programs.home-manager.enable = true;
}
+31
View File
@@ -0,0 +1,31 @@
!#/bin/bash
echo "Intalling nix and home-manager"
sh <(curl -L https://nixos.org/nix/install) --no-daemon
mkdir -p ~/.config/nix
echo "experimental-features = nix-command flakes" >>~/.config/nix/nix.conf
. ~/.nix-profile/etc/profile.d/nix.sh
nix-channel --add https://nixos.org/channels/nixos-24.11 nixpkgs
nix-channel --add https://github.com/nix-community/home-manager/archive/release-24.11.tar.gz home-manager
nix-channel --update
nix-shell '<home-manager>' -A install
cp -r home-manager/ ~/.config/
home-manager switch
sudo echo "/home/$USER/.nix-profile/bin/zsh" | sudo tee -a /etc/shells
. ~/.nix-profile/etc/profile.d/nix.sh
chsh -s /home/$USER/.nix-profile/bin/zsh $USER
source ~/.zshrc
#sudo echo ". ~/.nix-profile/etc/profile.d/nix.sh" | sudo tee -a ~/.bashrc
#sudo echo "zsh" | sudo tee -a ~/.bashrc