Initial commit with boiler plate. Not yet fully working

This commit is contained in:
Chris Toph 2024-09-02 11:03:10 -04:00
parent cba8368826
commit c1f435441f
7 changed files with 460 additions and 0 deletions

190
.config/fish/fish_variables Normal file
View file

@ -0,0 +1,190 @@
# This file contains fish universal variable definitions.
# VERSION: 3.0
SETUVAR __fish_initialized:3400
SETUVAR _tide_left_items:pwd\x1egit\x1enewline\x1echaracter
SETUVAR _tide_prompt_92037:\x1b\x28B\x1b\x5bm\x1b\x28B\x1b\x5bm\x1b\x28B\x1b\x5bm\x1b\x28B\x1b\x5bm\x1b\x28B\x1b\x5bm\x40PWD\x40\x1b\x28B\x1b\x5bm\x1b\x28B\x1b\x5bm\x1b\x28B\x1b\x5bm\x20\x1e\x1b\x5b38\x3b5\x3b76m\u276f\x1e\x1b\x28B\x1b\x5bm\x1b\x28B\x1b\x5bm\x1b\x28B\x1b\x5bm\x20\x1b\x28B\x1b\x5bm\x1b\x28B\x1b\x5bm\x1b\x5b38\x3b5\x3b180mtoph\x40nix\x1b\x5b38\x3b5\x3b246m\x20\x1b\x28B\x1b\x5bm\x1b\x28B\x1b\x5bm\x1b\x5b38\x3b5\x3b66m11\x3a43\x3a49\x20PM\x1b\x28B\x1b\x5bm\x1b\x28B\x1b\x5bm\x1b\x28B\x1b\x5bm
SETUVAR _tide_right_items:status\x1ecmd_duration\x1econtext\x1ejobs\x1enix_shell\x1etime
SETUVAR fish_color_autosuggestion:brblack
SETUVAR fish_color_cancel:\x2dr
SETUVAR fish_color_command:blue
SETUVAR fish_color_comment:red
SETUVAR fish_color_cwd:green
SETUVAR fish_color_cwd_root:red
SETUVAR fish_color_end:green
SETUVAR fish_color_error:brred
SETUVAR fish_color_escape:brcyan
SETUVAR fish_color_history_current:\x2d\x2dbold
SETUVAR fish_color_host:normal
SETUVAR fish_color_host_remote:yellow
SETUVAR fish_color_normal:normal
SETUVAR fish_color_operator:brcyan
SETUVAR fish_color_param:cyan
SETUVAR fish_color_quote:yellow
SETUVAR fish_color_redirection:cyan\x1e\x2d\x2dbold
SETUVAR fish_color_search_match:bryellow\x1e\x2d\x2dbackground\x3dbrblack
SETUVAR fish_color_selection:white\x1e\x2d\x2dbold\x1e\x2d\x2dbackground\x3dbrblack
SETUVAR fish_color_status:red
SETUVAR fish_color_user:brgreen
SETUVAR fish_color_valid_path:\x2d\x2dunderline
SETUVAR fish_key_bindings:fish_default_key_bindings
SETUVAR fish_pager_color_completion:normal
SETUVAR fish_pager_color_description:yellow\x1e\x2di
SETUVAR fish_pager_color_prefix:normal\x1e\x2d\x2dbold\x1e\x2d\x2dunderline
SETUVAR fish_pager_color_progress:brwhite\x1e\x2d\x2dbackground\x3dcyan
SETUVAR fish_pager_color_selected_background:\x2dr
SETUVAR tide_aws_bg_color:normal
SETUVAR tide_aws_color:FF9900
SETUVAR tide_aws_icon:\uf270
SETUVAR tide_character_color:5FD700
SETUVAR tide_character_color_failure:FF0000
SETUVAR tide_character_icon:\u276f
SETUVAR tide_character_vi_icon_default:\u276e
SETUVAR tide_character_vi_icon_replace:\u25b6
SETUVAR tide_character_vi_icon_visual:V
SETUVAR tide_cmd_duration_bg_color:normal
SETUVAR tide_cmd_duration_color:87875F
SETUVAR tide_cmd_duration_decimals:0
SETUVAR tide_cmd_duration_icon:\x1d
SETUVAR tide_cmd_duration_threshold:3000
SETUVAR tide_context_always_display:false
SETUVAR tide_context_bg_color:normal
SETUVAR tide_context_color_default:D7AF87
SETUVAR tide_context_color_root:D7AF00
SETUVAR tide_context_color_ssh:D7AF87
SETUVAR tide_context_hostname_parts:1
SETUVAR tide_crystal_bg_color:normal
SETUVAR tide_crystal_color:FFFFFF
SETUVAR tide_crystal_icon:\ue62f
SETUVAR tide_direnv_bg_color:normal
SETUVAR tide_direnv_bg_color_denied:normal
SETUVAR tide_direnv_color:D7AF00
SETUVAR tide_direnv_color_denied:FF0000
SETUVAR tide_direnv_icon:\u25bc
SETUVAR tide_distrobox_bg_color:normal
SETUVAR tide_distrobox_color:FF00FF
SETUVAR tide_distrobox_icon:\U000f01a7
SETUVAR tide_docker_bg_color:normal
SETUVAR tide_docker_color:2496ED
SETUVAR tide_docker_default_contexts:default\x1ecolima
SETUVAR tide_docker_icon:\uf308
SETUVAR tide_elixir_bg_color:normal
SETUVAR tide_elixir_color:4E2A8E
SETUVAR tide_elixir_icon:\ue62d
SETUVAR tide_gcloud_bg_color:normal
SETUVAR tide_gcloud_color:4285F4
SETUVAR tide_gcloud_icon:\U000f02ad
SETUVAR tide_git_bg_color:normal
SETUVAR tide_git_bg_color_unstable:normal
SETUVAR tide_git_bg_color_urgent:normal
SETUVAR tide_git_color_branch:5FD700
SETUVAR tide_git_color_conflicted:FF0000
SETUVAR tide_git_color_dirty:D7AF00
SETUVAR tide_git_color_operation:FF0000
SETUVAR tide_git_color_staged:D7AF00
SETUVAR tide_git_color_stash:5FD700
SETUVAR tide_git_color_untracked:00AFFF
SETUVAR tide_git_color_upstream:5FD700
SETUVAR tide_git_icon:\x1d
SETUVAR tide_git_truncation_length:24
SETUVAR tide_git_truncation_strategy:\x1d
SETUVAR tide_go_bg_color:normal
SETUVAR tide_go_color:00ACD7
SETUVAR tide_go_icon:\ue627
SETUVAR tide_java_bg_color:normal
SETUVAR tide_java_color:ED8B00
SETUVAR tide_java_icon:\ue256
SETUVAR tide_jobs_bg_color:normal
SETUVAR tide_jobs_color:5FAF00
SETUVAR tide_jobs_icon:\uf013
SETUVAR tide_jobs_number_threshold:1000
SETUVAR tide_kubectl_bg_color:normal
SETUVAR tide_kubectl_color:326CE5
SETUVAR tide_kubectl_icon:\U000f10fe
SETUVAR tide_left_prompt_frame_enabled:false
SETUVAR tide_left_prompt_items:pwd\x1egit\x1enewline\x1echaracter
SETUVAR tide_left_prompt_prefix:
SETUVAR tide_left_prompt_separator_diff_color:\x20
SETUVAR tide_left_prompt_separator_same_color:\x20
SETUVAR tide_left_prompt_suffix:\x20
SETUVAR tide_nix_shell_bg_color:normal
SETUVAR tide_nix_shell_color:7EBAE4
SETUVAR tide_nix_shell_icon:\uf313
SETUVAR tide_node_bg_color:normal
SETUVAR tide_node_color:44883E
SETUVAR tide_node_icon:\ue24f
SETUVAR tide_os_bg_color:normal
SETUVAR tide_os_color:normal
SETUVAR tide_os_icon:\uf313
SETUVAR tide_php_bg_color:normal
SETUVAR tide_php_color:617CBE
SETUVAR tide_php_icon:\ue608
SETUVAR tide_private_mode_bg_color:normal
SETUVAR tide_private_mode_color:FFFFFF
SETUVAR tide_private_mode_icon:\U000f05f9
SETUVAR tide_prompt_add_newline_before:false
SETUVAR tide_prompt_color_frame_and_connection:585858
SETUVAR tide_prompt_color_separator_same_color:949494
SETUVAR tide_prompt_icon_connection:\u00b7
SETUVAR tide_prompt_min_cols:34
SETUVAR tide_prompt_pad_items:false
SETUVAR tide_prompt_transient_enabled:true
SETUVAR tide_pulumi_bg_color:normal
SETUVAR tide_pulumi_color:F7BF2A
SETUVAR tide_pulumi_icon:\uf1b2
SETUVAR tide_pwd_bg_color:normal
SETUVAR tide_pwd_color_anchors:00AFFF
SETUVAR tide_pwd_color_dirs:0087AF
SETUVAR tide_pwd_color_truncated_dirs:8787AF
SETUVAR tide_pwd_icon:\x1d
SETUVAR tide_pwd_icon_home:\x1d
SETUVAR tide_pwd_icon_unwritable:\uf023
SETUVAR tide_pwd_markers:\x2ebzr\x1e\x2ecitc\x1e\x2egit\x1e\x2ehg\x1e\x2enode\x2dversion\x1e\x2epython\x2dversion\x1e\x2eruby\x2dversion\x1e\x2eshorten_folder_marker\x1e\x2esvn\x1e\x2eterraform\x1eCargo\x2etoml\x1ecomposer\x2ejson\x1eCVS\x1ego\x2emod\x1epackage\x2ejson\x1ebuild\x2ezig
SETUVAR tide_python_bg_color:normal
SETUVAR tide_python_color:00AFAF
SETUVAR tide_python_icon:\U000f0320
SETUVAR tide_right_prompt_frame_enabled:false
SETUVAR tide_right_prompt_items:status\x1ecmd_duration\x1econtext\x1ejobs\x1edirenv\x1enode\x1epython\x1erustc\x1ejava\x1ephp\x1epulumi\x1eruby\x1ego\x1egcloud\x1ekubectl\x1edistrobox\x1etoolbox\x1eterraform\x1eaws\x1enix_shell\x1ecrystal\x1eelixir\x1ezig\x1etime
SETUVAR tide_right_prompt_prefix:\x20
SETUVAR tide_right_prompt_separator_diff_color:\x20
SETUVAR tide_right_prompt_separator_same_color:\x20
SETUVAR tide_right_prompt_suffix:
SETUVAR tide_ruby_bg_color:normal
SETUVAR tide_ruby_color:B31209
SETUVAR tide_ruby_icon:\ue23e
SETUVAR tide_rustc_bg_color:normal
SETUVAR tide_rustc_color:F74C00
SETUVAR tide_rustc_icon:\ue7a8
SETUVAR tide_shlvl_bg_color:normal
SETUVAR tide_shlvl_color:d78700
SETUVAR tide_shlvl_icon:\uf120
SETUVAR tide_shlvl_threshold:1
SETUVAR tide_status_bg_color:normal
SETUVAR tide_status_bg_color_failure:normal
SETUVAR tide_status_color:5FAF00
SETUVAR tide_status_color_failure:D70000
SETUVAR tide_status_icon:\u2714
SETUVAR tide_status_icon_failure:\u2718
SETUVAR tide_terraform_bg_color:normal
SETUVAR tide_terraform_color:844FBA
SETUVAR tide_terraform_icon:\U000f1062
SETUVAR tide_time_bg_color:normal
SETUVAR tide_time_color:5F8787
SETUVAR tide_time_format:\x25r
SETUVAR tide_toolbox_bg_color:normal
SETUVAR tide_toolbox_color:613583
SETUVAR tide_toolbox_icon:\ue24f
SETUVAR tide_vi_mode_bg_color_default:normal
SETUVAR tide_vi_mode_bg_color_insert:normal
SETUVAR tide_vi_mode_bg_color_replace:normal
SETUVAR tide_vi_mode_bg_color_visual:normal
SETUVAR tide_vi_mode_color_default:949494
SETUVAR tide_vi_mode_color_insert:87AFAF
SETUVAR tide_vi_mode_color_replace:87AF87
SETUVAR tide_vi_mode_color_visual:FF8700
SETUVAR tide_vi_mode_icon_default:D
SETUVAR tide_vi_mode_icon_insert:I
SETUVAR tide_vi_mode_icon_replace:R
SETUVAR tide_vi_mode_icon_visual:V
SETUVAR tide_zig_bg_color:normal
SETUVAR tide_zig_color:F7A41D
SETUVAR tide_zig_icon:\ue6a9

47
flake.lock generated Normal file
View file

@ -0,0 +1,47 @@
{
"nodes": {
"home-manager": {
"inputs": {
"nixpkgs": [
"nixpkgs"
]
},
"locked": {
"lastModified": 1724435763,
"narHash": "sha256-UNky3lJNGQtUEXT2OY8gMxejakSWPTfWKvpFkpFlAfM=",
"owner": "nix-community",
"repo": "home-manager",
"rev": "c2cd2a52e02f1dfa1c88f95abeb89298d46023be",
"type": "github"
},
"original": {
"owner": "nix-community",
"repo": "home-manager",
"type": "github"
}
},
"nixpkgs": {
"locked": {
"lastModified": 1724224976,
"narHash": "sha256-Z/ELQhrSd7bMzTO8r7NZgi9g5emh+aRKoCdaAv5fiO0=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "c374d94f1536013ca8e92341b540eba4c22f9c62",
"type": "github"
},
"original": {
"id": "nixpkgs",
"ref": "nixos-unstable",
"type": "indirect"
}
},
"root": {
"inputs": {
"home-manager": "home-manager",
"nixpkgs": "nixpkgs"
}
}
},
"root": "root",
"version": 7
}

31
flake.nix Normal file
View file

@ -0,0 +1,31 @@
{
description = "Unstable Flake";
inputs = {
nixpkgs.url = "nixpkgs/nixos-unstable";
home-manager = {
url = "github:nix-community/home-manager";
inputs.nixpkgs.follows = "nixpkgs";
};
};
outputs = { self, nixpkgs, home-manager, ... }:
let
system = "x86_64-linux";
lib = nixpkgs.lib;
pkgs = nixpkgs.legacyPackages.${system};
in {
nixosConfigurations = {
nix = lib.nixosSystem {
inherit system;
modules = [ ./nixos/configuration.nix ];
};
};
homeConfigurations = {
toph = home-manager.lib.homeManagerConfiguration {
inherit pkgs;
modules = [ ./home-manager/home.nix ];
};
};
};
}

13
home-manager/fish.nix Normal file
View file

@ -0,0 +1,13 @@
{ pkgs, ... }:
# progams.fish =
{
enable = true;
interactiveShellInit = ''
set fish_greeting # Disable greeting
'';
plugins = [
# Enable a plugin (here grc for colorized command output) from nixpkgs
{ name = "grc"; src = pkgs.fishPlugins.grc.src; }
{ name = "tide"; src = pkgs.fishPlugins.tide.src; }
];
}

33
home-manager/home.nix Normal file
View file

@ -0,0 +1,33 @@
{ pkgs, ... }:
{
home.username = "toph";
home.homeDirectory = "/home/toph";
home.stateVersion = "24.05";
# Packages
home.packages = with pkgs; [
fish
fishPlugins.grc
fishPlugins.tide
grc
];
home.file = {
".config/fish" = {
recursive = true;
source = ../.config/fish;
};
};
home.sessionVariables = {
EDITOR = "micro";
VISUAL = "micro";
XDG_CONFIG_HOME = "$HOME/.config";
};
# Programs and Services
programs.fish = import ./fish.nix { inherit pkgs; };
# Let Home Manager install and manage itself.
programs.home-manager.enable = true;
}

133
nixos/configuration.nix Normal file
View file

@ -0,0 +1,133 @@
{ modulesPath, config, pkgs, ... }:
let
hostname = "nix";
user = "toph";
password = "[REDACTED]";
timeZone = "America/New_York";
defaultLocale = "en_US.UTF-8";
in {
imports =
[
# Include the default lxc/lxd configuration.
"${modulesPath}/virtualisation/lxc-container.nix"
# Include the container-specific autogenerated configuration.
#./lxd.nix - this has to be commented out from the system tarball
# Import hardware configuration.
./hardware-configuration.nix
];
# NETWORKING
networking = {
dhcpcd.enable = false;
hostName = hostname;
networkmanager.enable = true;
useDHCP = false;
useHostResolvConf = false;
};
systemd.network = {
enable = true;
networks."50-eth0" = {
matchConfig.Name = "eth0";
networkConfig = {
DHCP = "ipv4";
IPv6AcceptRA = true;
};
linkConfig.RequiredForOnline = "routable";
};
};
# LOCALE
time.timeZone = timeZone;
i18n.defaultLocale = defaultLocale;
# USERS
users = {
mutableUsers = false;
users."${user}" = {
isNormalUser = true;
password = password;
extraGroups = [ "wheel" ];
shell = pkgs.fish;
openssh.authorizedKeys.keys = [
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIClZstYoT64zHnGfE7LMYNiQPN5/gmCt382lC+Ji8lrH PVE"
];
};
};
# Enable passwordless sudo.
security.sudo.extraRules= [
{ users = [ user ];
commands = [
{ command = "ALL" ;
options= [ "NOPASSWD" ];
}
];
}
];
# SYSTEM PACKAGES
environment.systemPackages = with pkgs; [
git
micro
openbox
openssh
ranger
sshfs
wget
x2goserver
];
# PROGRAMS & SERVICES
programs.ssh.startAgent = true;
# Shells
environment.shells = with pkgs; [ bash fish ];
programs.fish.enable = true;
# Enable the X11 windowing system.
services.xserver.enable = true;
# OpenSSH service configuration.
services.openssh = {
enable = true;
settings = {
AllowUsers = null; # everyone
PasswordAuthentication = false;
KbdInteractiveAuthentication = false;
PermitRootLogin = "no";
};
};
# Enable sound.
# hardware.pulseaudio.enable = true;
# OR
# services.pipewire = {
# enable = true;
# pulse.enable = true;
# };
# Enable touchpad support (enabled default in most desktopManager).
# services.libinput.enable = true;
# LXC specific configuration
# Supress systemd units that don't work because of LXC.
# https://blog.xirion.net/posts/nixos-proxmox-lxc/#configurationnix-tweak
systemd.suppressedSystemUnits = [
"dev-mqueue.mount"
"sys-kernel-debug.mount"
"sys-fs-fuse-connections.mount"
];
# Copy the NixOS configuration file and link it from the resulting system
# (/run/current-system/configuration.nix). This is useful in case you
# accidentally delete configuration.nix.
# system.copySystemConfiguration = true;
# This value determines the NixOS release with which your system is to be
system.stateVersion = "24.11";
# Enable Flakes
nix.settings.experimental-features = [ "nix-command" "flakes" ];
}

View file

@ -0,0 +1,13 @@
{
# Treats the system as a container.
boot.isContainer = true;
# TODO: SSHFS
# fileSystems."/" = {
# device = "/dev/sda1";
# fsType = "ext4";
# };
# Set your system kind (needed for flakes)
nixpkgs.hostPlatform = "x86_64-linux";
}