dotfiles/nixos/home.nix
2022-01-21 19:22:31 -05:00

251 lines
5.3 KiB
Nix

{ pkgs, ... }:
let
# Import unstable channel (for Neovim 0.5)
unstable = import <nixos-unstable> { config = { allowUnfree = true; }; };
in
{
nixpkgs.config.allowUnfree = true;
home.packages = with pkgs; [
firefox
unzip
neovim
gcc # for tree-sitter
alacritty
# unstable.neovim
tmux
rsync
ripgrep
bat
fd
exa
sd
jq
tealdeer
_1password-gui
discord
];
#programs.alacritty = {
# enable = true;
# settings = {
# window = {
# dimensions = {
# columns = 85;
# lines = 30;
# };
# padding = {
# x = 20;
# y = 20;
# };
# };
# scrolling.history = 10000;
# font = {
# size = 15.0;
# };
# key_bindings = [
# {
# key = "F";
# mods = "Super";
# action = "ToggleFullscreen";
# }
# {
# key = "L";
# mods = "Super";
# chars = "\x1F";
# }
# ];
# };
#};
programs.fish = {
enable = true;
functions = {};
interactiveShellInit = "";
loginShellInit = "";
shellAbbrs = {
# Directory aliases
l = "ls";
lh = "ls -lh";
ll = "ls -alhF";
lf = "ls -lh | fzf";
c = "cd";
# -- - = "cd -";
mkd = "mkdir -pv";
# Tmux
ta = "tmux attach-session";
tan = "tmux attach-session -t noah";
tnn = "tmux new-session -s noah";
# Git
g = "git";
gs = "git status";
gd = "git diff";
gds = "git diff --staged";
gdp = "git diff HEAD^";
ga = "git add";
gaa = "git add -A";
gac = "git commit -am";
gc = "git commit -m";
gca = "git commit --amend";
gu = "git pull";
gp = "git push";
gpp = "git_set_upstream";
gl = "git log --graph --decorate --oneline -20";
gll = "git log --graph --decorate --oneline";
gco = "git checkout";
gcom = "git switch master";
gcob = "git switch -c";
gb = "git branch";
gbd = "git branch -d";
gbD = "git branch -D";
gr = "git reset";
grh = "git reset --hard";
gm = "git merge";
gcp = "git cherry-pick";
cdg = "cd (git rev-parse --show-toplevel)";
# GitHub
ghr = "gh repo view -w";
gha = "gh run list | head -1 | awk \'{ print $(NF-2) }\' | xargs gh run view";
grw = "gh run watch";
grf = "gh run view --log-failed";
grl = "gh run view --log";
# Vim
v = "nvim";
vl = "nvim -c 'normal! `0'";
vll = "nvim -c 'Hist'";
# Notes
qn = "quicknote";
sn = "syncnotes";
to = "today";
work = "vim $NOTES_PATH/work.md";
# Improved CLI Tools
cat = "bat"; # Swap cat with bat
h = "http -Fh --all"; # Curl site for headers
j = "just";
# Fun CLI Tools
weather = "curl wttr.in/$WEATHER_CITY";
moon = "curl wttr.in/Moon";
# Cheat Sheets
ssl = "openssl req -new -newkey rsa:2048 -nodes -keyout server.key -out server.csr";
fingerprint = "ssh-keyscan myhost.com | ssh-keygen -lf -";
publickey = "ssh-keygen -y -f ~/.ssh/id_rsa > ~/.ssh/id_rsa.pub";
forloop = "for i in (seq 1 100)";
# Docker
dc = "$DOTS/bin/docker_cleanup";
dr = "docker run --rm -it";
db = "docker build . -t";
# Terraform
te = "terraform";
# Kubernetes
k = "kubectl";
pods = "kubectl get pods -A";
nodes = "kubectl get nodes";
deploys = "kubectl get deployments -A";
dash = "kube-dashboard";
ks = "k9s";
# Python
py = "python";
po = "poetry";
pr = "poetry run python";
# Rust
ca = "cargo";
};
shellAliases = {};
shellInit = "";
};
home.sessionVariables = {
EDITOR = "nvim";
fish_greeting = "";
};
programs.starship = {
enable = true;
enableFishIntegration = true;
};
programs.fzf = {
enable = true;
enableFishIntegration = true;
};
programs.zoxide = {
enable = true;
enableFishIntegration = true;
};
# Other configs
xdg.configFile = {
"starship.toml".source = ../starship/starship.toml.configlink;
#"alacritty/alacritty.yml".source = ../alacritty.configlink/alacritty.yml;
"nvim/init.lua".source = ./init.lua;
};
# nixpkgs.overlays = [(
# self: super: {
# neovim = unstable.neovim;
# })
# ];
nixpkgs.overlays = [
(import (builtins.fetchTarball {
url = https://github.com/nix-community/neovim-nightly-overlay/archive/master.tar.gz;
}))
];
#programs.neovim = {
# enable = true;
# # package = pkgs.neovim-nightly;
# vimAlias = true;
# extraPackages = with pkgs; [
# nodePackages.pyright
# rust-analyzer
# terraform-ls
# ];
# #extraConfig = builtins.concatStringsSep "\n" [
# # ''
# # luafile ${builtins.toString ./init.lua}
# # ''
# #];
# #extraConfig = ''
# # lua << EOF
# # ${builtins.readFile ./init.lua}
# # EOF
# #'';
#};
# # Neovim config
# home.file = {
# ".config/nvim/init.lua".source = ../nvim.configlink/init.lua;
# };
programs.git = {
enable = true;
userName = "Noah Masur";
userEmail = "7386960+nmasur@users.noreply.github.com";
extraConfig = {
core = {
editor = "nvim";
};
};
};
}