From 377369f8627141305a412f152b54efa0ff0df372 Mon Sep 17 00:00:00 2001 From: Stephen Bryant Date: Sun, 5 Jan 2025 19:30:12 -0500 Subject: [PATCH] save progress --- dotfiles/terminal/default.nix | 5 + dotfiles/terminal/starship/default.nix | 152 +++++++++++++++++++++++++ dotfiles/terminal/zsh/default.nix | 45 ++++++++ flake.nix | 40 +++++-- 4 files changed, 232 insertions(+), 10 deletions(-) create mode 100644 dotfiles/terminal/default.nix create mode 100644 dotfiles/terminal/starship/default.nix create mode 100644 dotfiles/terminal/zsh/default.nix diff --git a/dotfiles/terminal/default.nix b/dotfiles/terminal/default.nix new file mode 100644 index 0000000..531b022 --- /dev/null +++ b/dotfiles/terminal/default.nix @@ -0,0 +1,5 @@ +{ + imports = [ + ./terminal + ]; +} \ No newline at end of file diff --git a/dotfiles/terminal/starship/default.nix b/dotfiles/terminal/starship/default.nix new file mode 100644 index 0000000..069494e --- /dev/null +++ b/dotfiles/terminal/starship/default.nix @@ -0,0 +1,152 @@ +{ + programs.starship = { + enable = true; + settings = { + add_newline = false; + scan_timeout = 10; + format = "$all"; + character = { + success_symbol = "[>](bold green)"; + error_symbol = "[x](bold red)"; + vimcmd_symbol = "[<](bold green)"; + }; + + git_commit = { + tag_symbol = " tag "; + }; + git_status = { + ahead = ">"; + behind = "<"; + diverged = "<>"; + renamed = "r"; + deleted = "x"; + }; + cmd_duration = { + min_time = 500; + format = "took [$duration](bold yellow)"; + }; + aws = { + symbol = "aws "; + }; + azure = { + symbol = "az "; + }; + bun = { + symbol = "bun "; + }; + + cmake = { + symbol = "cmake "; + }; + deno = { + symbol = "deno "; + }; + directory = { + read_only = " ro"; + }; + docker_context = { + symbol = "docker "; + }; + git_branch = { + symbol = "git "; + }; + golang = { + symbol = "go "; + }; + hostname = { + ssh_only = false; + format = " on [$hostname](bold #FFA500)\n"; + disabled = false; + }; + lua = { + symbol = "lua "; + }; + nodejs = { + symbol = "nodejs "; + }; + memory_usage = { + symbol = "memory "; + }; + nim = { + symbol = "nim "; + }; + nix_shell = { + symbol = "nix "; + }; + os.symbols = { + Alpaquita = "alq "; + Alpine = "alp "; + Amazon = "amz "; + Android = "andr "; + Arch = "rch "; + Artix = "atx "; + CentOS = "cent "; + Debian = "deb "; + DragonFly = "dfbsd "; + Emscripten = "emsc "; + EndeavourOS = "ndev "; + Fedora = "fed "; + FreeBSD = "fbsd "; + Garuda = "garu "; + Gentoo = "gent "; + HardenedBSD = "hbsd "; + Illumos = "lum "; + Linux = "lnx "; + Mabox = "mbox "; + Macos = "mac "; + Manjaro = "mjo "; + Mariner = "mrn "; + MidnightBSD = "mid "; + Mint = "mint "; + NetBSD = "nbsd "; + NixOS = "nix "; + OpenBSD = "obsd "; + OpenCloudOS = "ocos "; + openEuler = "oeul "; + openSUSE = "osuse "; + OracleLinux = "orac "; + Pop = "pop "; + Raspbian = "rasp "; + Redhat = "rhl "; + RedHatEnterprise = "rhel "; + Redox = "redox "; + Solus = "sol "; + SUSE = "suse "; + Ubuntu = "ubnt "; + Unknown = "unk "; + Windows = "win "; + }; + package = { + symbol = "pkg "; + }; + purescript = { + symbol = "purs "; + }; + python = { + symbol = "py "; + }; + rust = { + symbol = "rs "; + }; + status = { + symbol = "[x](bold red) "; + }; + sudo = { + symbol = "sudo "; + }; + terraform = { + symbol = "terraform "; + }; + username = { + style_user = "blue bold"; + style_root = "orange bold"; + format = "[$user]($style)"; + disabled = false; + show_always = true; + }; + zig = { + symbol = "zig "; + }; + }; + }; +} \ No newline at end of file diff --git a/dotfiles/terminal/zsh/default.nix b/dotfiles/terminal/zsh/default.nix new file mode 100644 index 0000000..a34653f --- /dev/null +++ b/dotfiles/terminal/zsh/default.nix @@ -0,0 +1,45 @@ +{ pkgs, username, ... }: +{ + imports = [ + ./alacritty + # ./cava + ./fonts + ./foot + ./nvim + ./starship + ./tmux + ./yazi + ./zsh + ]; + + # ---- Home Configuration ---- + home-manager.users.${username} = { + programs.git.enable = true; + }; + + # ---- System Configuration ---- + programs = { + htop.enable = true; + mtr.enable = true; + }; + + environment.systemPackages = with pkgs; [ + alacritty + brightnessctl + btop + gh + ghostty + kubectl + kubernetes-helm + lens + mods + nitch + pavucontrol + playerctl + ripgrep + todoist + unzip + vhs + zoxide + ]; +} \ No newline at end of file diff --git a/flake.nix b/flake.nix index 8fe8baa..f4dac04 100644 --- a/flake.nix +++ b/flake.nix @@ -28,6 +28,8 @@ outputs = inputs@{ self, nix-darwin, nix-homebrew, homebrew-core, homebrew-cask, homebrew-bundle, home-manager, ... }: let + username = "stephen"; + hostname = "swaphb-mba"; configuration = { pkgs, lib, inputs, ... }: { # List packages installed in system profile. To search by name, run: # $ nix-env -qaP | grep wget @@ -39,6 +41,13 @@ [ pkgs.vim pkgs.lens + pkgs.vscode + pkgs._1password-gui + pkgs._1password-cli + pkgs.spotify + pkgs.slack + pkgs.podman-desktop + pkgs.kubectl ]; ################ @@ -52,6 +61,8 @@ brews = [ "cowsay" "git" + "k9s" + "helm" ]; casks = []; }; @@ -89,11 +100,21 @@ nix.settings.experimental-features = "nix-command flakes"; # Create /etc/zshrc that loads the nix-darwin environment. - programs.zsh.enable = true; # default shell on catalina + programs = { + fish = { + enable = false; + }; + zsh = { + enable = true; + }; + # vscode = { + # enable = true; + # }; + }; # programs.fish.enable = true; # Enable 1password plugins on interactive shell init programs.bash.interactiveShellInit = '' - source /home/stephen/.config/op/plugins.sh + source /home/${username}/.config/op/plugins.sh ''; # Set Git commit hash for darwin-version. @@ -109,7 +130,7 @@ AppleShowAllExtensions = true; FXPreferredViewStyle = "clmv"; }; - loginwindow.LoginwindowText = "swaphb-mba"; + loginwindow.LoginwindowText = "${hostname}"; screencapture.location = "~/Pictures/screenshots"; screensaver.askForPasswordDelay = 10; trackpad = { @@ -132,7 +153,7 @@ }; }; - homeconfig = {pkgs, lib, ...}: { + homeconfig = { pkgs, lib, ... }: { # this is internal compatibility configuration # for home-manager, don't change this! home.stateVersion = "24.05"; @@ -145,13 +166,13 @@ EDITOR = "nano"; }; - home.homeDirectory = lib.mkForce "/Users/stephen"; # Update this line + home.homeDirectory = lib.mkForce "/Users/${username}"; }; in { # Build darwin flake using: - # $ darwin-rebuild build --flake .#swaphb-mba - darwinConfigurations."swaphb-mba" = nix-darwin.lib.darwinSystem { + # $ darwin-rebuild build --flake .#${hostname} + darwinConfigurations."${hostname}" = nix-darwin.lib.darwinSystem { modules = [ configuration nix-homebrew.darwinModules.nix-homebrew @@ -159,7 +180,7 @@ nix-homebrew = { enable = true; enableRosetta = true; - user = "stephen"; + user = "${username}"; taps = { "homebrew/homebrew-core" = homebrew-core; "homebrew/homebrew-cask" = homebrew-cask; @@ -174,13 +195,12 @@ home-manager.useGlobalPkgs = true; home-manager.useUserPackages = true; home-manager.verbose = true; - home-manager.users.stephen = homeconfig; } ]; }; # Expose the package set, including overlays, for convenience. - darwinPackages = self.darwinConfigurations."swaphb-mba".pkgs; + darwinPackages = self.darwinConfigurations."${hostname}".pkgs; }; }