♻️ refactor nix configs
This commit is contained in:
parent
8e8ce37574
commit
b919168c44
12
flake.lock
generated
12
flake.lock
generated
@ -23,11 +23,11 @@
|
|||||||
"utils": "utils"
|
"utils": "utils"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1660574517,
|
"lastModified": 1661573386,
|
||||||
"narHash": "sha256-Lp5D2pAPrM3iAc1eeR0iGwz5rM+SYOWzVxI3p17nlrU=",
|
"narHash": "sha256-pBEg8iY00Af/SAtU2dlmOAv+2x7kScaGlFRDjNoVJO8=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "home-manager",
|
"repo": "home-manager",
|
||||||
"rev": "688e5c85b7537f308b82167c8eb4ecfb70a49861",
|
"rev": "d89bdff445eadff03fe414e9c30486bc8166b72b",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@ -38,11 +38,11 @@
|
|||||||
},
|
},
|
||||||
"nixpkgs": {
|
"nixpkgs": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1660639432,
|
"lastModified": 1661336769,
|
||||||
"narHash": "sha256-2WDiboOCfB0LhvnDVMXOAr8ZLDfm3WdO54CkoDPwN1A=",
|
"narHash": "sha256-5Sf9tMd1Jdm+lTBGspbQ4kEoYCDKpUhEVAZHRcm6mGU=",
|
||||||
"owner": "nixos",
|
"owner": "nixos",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "6c6409e965a6c883677be7b9d87a95fab6c3472e",
|
"rev": "03428dbaaa23d6bf458770907b0927b377c873a8",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
156
home.nix
156
home.nix
@ -7,163 +7,11 @@
|
|||||||
home.username = "walkah";
|
home.username = "walkah";
|
||||||
home.homeDirectory = if pkgs.stdenv.isDarwin then "/Users/walkah" else "/home/walkah";
|
home.homeDirectory = if pkgs.stdenv.isDarwin then "/Users/walkah" else "/home/walkah";
|
||||||
|
|
||||||
home.sessionPath = [
|
imports = [
|
||||||
"$HOME/.cargo/bin"
|
./modules
|
||||||
"$HOME/.deno/bin"
|
|
||||||
"$HOME/.emacs.d/bin"
|
|
||||||
"$HOME/.go/bin"
|
|
||||||
"$HOME/.local/bin"
|
|
||||||
];
|
];
|
||||||
|
|
||||||
home.packages = with pkgs; [
|
|
||||||
btop
|
|
||||||
cachix
|
|
||||||
direnv
|
|
||||||
drone-cli
|
|
||||||
exa
|
|
||||||
fd
|
|
||||||
git
|
|
||||||
gh
|
|
||||||
htop
|
|
||||||
jq
|
|
||||||
mr
|
|
||||||
nixpkgs-fmt
|
|
||||||
nixfmt
|
|
||||||
ripgrep
|
|
||||||
rnix-lsp
|
|
||||||
tea
|
|
||||||
wakatime
|
|
||||||
];
|
|
||||||
|
|
||||||
home.file.".doom.d" = {
|
|
||||||
onChange = ''
|
|
||||||
#!/bin/sh
|
|
||||||
DOOM=$HOME/.emacs.d
|
|
||||||
if [ ! -d $DOOM ]; then
|
|
||||||
git clone --depth 1 https://github.com/hlissner/doom-emacs $DOOM
|
|
||||||
fi
|
|
||||||
$DOOM/bin/doom sync
|
|
||||||
'';
|
|
||||||
source = ./config/.doom.d;
|
|
||||||
recursive = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
home.file.".ghci".text = ''
|
|
||||||
:set prompt "λ> "
|
|
||||||
'';
|
|
||||||
|
|
||||||
programs = {
|
programs = {
|
||||||
zsh = {
|
|
||||||
enable = true;
|
|
||||||
enableAutosuggestions = true;
|
|
||||||
enableCompletion = true;
|
|
||||||
oh-my-zsh = {
|
|
||||||
enable = true;
|
|
||||||
plugins = [
|
|
||||||
"bundler"
|
|
||||||
"direnv"
|
|
||||||
"docker"
|
|
||||||
"docker-compose"
|
|
||||||
"git"
|
|
||||||
"golang"
|
|
||||||
"mix"
|
|
||||||
"rails"
|
|
||||||
"ssh-agent"
|
|
||||||
"tmux"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
sessionVariables = {
|
|
||||||
EDITOR = "vim";
|
|
||||||
GOPATH = "$HOME/.go";
|
|
||||||
};
|
|
||||||
shellAliases = {
|
|
||||||
ls = "exa --git";
|
|
||||||
ll = "exa -lh --git";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
starship = {
|
|
||||||
enable = true;
|
|
||||||
enableZshIntegration = true;
|
|
||||||
settings = {
|
|
||||||
character = {
|
|
||||||
success_symbol = "[»](bold green) ";
|
|
||||||
error_symbol = "[✗](bold red) ";
|
|
||||||
};
|
|
||||||
directory = {
|
|
||||||
fish_style_pwd_dir_length = 1;
|
|
||||||
truncation_length = 1;
|
|
||||||
};
|
|
||||||
hostname = {
|
|
||||||
ssh_only = false;
|
|
||||||
format = "[$hostname]($style):";
|
|
||||||
};
|
|
||||||
gcloud = { disabled = true; };
|
|
||||||
kubernetes = { disabled = false; };
|
|
||||||
username = { format = "[$user]($style)@"; };
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
bat.enable = true;
|
|
||||||
fzf = {
|
|
||||||
enable = true;
|
|
||||||
fileWidgetOptions = [ "--preview 'bat --color always {}'" ];
|
|
||||||
};
|
|
||||||
|
|
||||||
git = {
|
|
||||||
enable = true;
|
|
||||||
userName = "James Walker";
|
|
||||||
userEmail = "walkah@walkah.net";
|
|
||||||
|
|
||||||
aliases = {
|
|
||||||
lg =
|
|
||||||
"log --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit";
|
|
||||||
st = "status -s";
|
|
||||||
undo = "reset HEAD~1 --mixed";
|
|
||||||
};
|
|
||||||
|
|
||||||
extraConfig = {
|
|
||||||
github.user = "walkah";
|
|
||||||
init.defaultBranch = "main";
|
|
||||||
pull.rebase = true;
|
|
||||||
rebase.autoStash = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
signing = {
|
|
||||||
key = "8896FEC44D47A81C";
|
|
||||||
signByDefault = true;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
tmux = {
|
|
||||||
enable = true;
|
|
||||||
clock24 = true;
|
|
||||||
plugins = with pkgs.tmuxPlugins; [
|
|
||||||
sensible
|
|
||||||
yank
|
|
||||||
{
|
|
||||||
plugin = dracula;
|
|
||||||
extraConfig = ''
|
|
||||||
set -g @dracula-show-battery true
|
|
||||||
set -g @dracula-show-fahrenheit false
|
|
||||||
set -g @dracula-show-left-icon session
|
|
||||||
set -g @dracula-show-powerline true
|
|
||||||
set -g @dracula-refresh-rate 10
|
|
||||||
'';
|
|
||||||
}
|
|
||||||
];
|
|
||||||
extraConfig = ''
|
|
||||||
set -g set-titles on
|
|
||||||
set -g set-titles-string "[#S] #W@#h (#I)"
|
|
||||||
'';
|
|
||||||
shortcut = "o";
|
|
||||||
};
|
|
||||||
|
|
||||||
emacs = {
|
|
||||||
enable = true;
|
|
||||||
package = pkgs.emacs-nox;
|
|
||||||
extraPackages = epkgs: [ epkgs.vterm ];
|
|
||||||
};
|
|
||||||
|
|
||||||
vim = { enable = true; };
|
vim = { enable = true; };
|
||||||
};
|
};
|
||||||
|
|
||||||
|
11
modules/default.nix
Normal file
11
modules/default.nix
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
{ config, lib, pkgs, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
imports = [
|
||||||
|
./dev.nix
|
||||||
|
./emacs.nix
|
||||||
|
./git.nix
|
||||||
|
./tmux.nix
|
||||||
|
./zsh.nix
|
||||||
|
];
|
||||||
|
}
|
78
modules/dev.nix
Normal file
78
modules/dev.nix
Normal file
@ -0,0 +1,78 @@
|
|||||||
|
{ config, lib, pkgs, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
home.packages = with pkgs; [
|
||||||
|
# General
|
||||||
|
btop
|
||||||
|
cmake
|
||||||
|
drone-cli
|
||||||
|
tea
|
||||||
|
|
||||||
|
# Git
|
||||||
|
git
|
||||||
|
gh
|
||||||
|
mr
|
||||||
|
|
||||||
|
# Elixir
|
||||||
|
elixir
|
||||||
|
|
||||||
|
# Golang
|
||||||
|
go
|
||||||
|
gomodifytags
|
||||||
|
gotests
|
||||||
|
gore
|
||||||
|
|
||||||
|
# Haskell
|
||||||
|
haskellPackages.haskell-language-server
|
||||||
|
# haskellPackages.cabal
|
||||||
|
haskellPackages.hoogle
|
||||||
|
stack
|
||||||
|
|
||||||
|
# Javascript/Typescript
|
||||||
|
deno
|
||||||
|
jq
|
||||||
|
nodejs
|
||||||
|
yarn
|
||||||
|
|
||||||
|
# Nix
|
||||||
|
cachix
|
||||||
|
niv
|
||||||
|
nixfmt
|
||||||
|
nixpkgs-fmt
|
||||||
|
rnix-lsp
|
||||||
|
|
||||||
|
# Python
|
||||||
|
black
|
||||||
|
isort
|
||||||
|
pipenv
|
||||||
|
python39
|
||||||
|
python39Packages.pyflakes
|
||||||
|
python39Packages.nose
|
||||||
|
python39Packages.pytest
|
||||||
|
|
||||||
|
# Rust
|
||||||
|
rustup
|
||||||
|
rust-analyzer
|
||||||
|
|
||||||
|
# Shell
|
||||||
|
shfmt
|
||||||
|
shellcheck
|
||||||
|
|
||||||
|
# Web
|
||||||
|
nodePackages.stylelint
|
||||||
|
nodePackages.js-beautify
|
||||||
|
];
|
||||||
|
|
||||||
|
home.file.".ghci".text = ''
|
||||||
|
:set prompt "λ> "
|
||||||
|
'';
|
||||||
|
|
||||||
|
home.sessionPath = [
|
||||||
|
"$HOME/.cargo/bin"
|
||||||
|
"$HOME/.deno/bin"
|
||||||
|
"$HOME/.emacs.d/bin"
|
||||||
|
"$HOME/.go/bin"
|
||||||
|
"$HOME/.local/bin"
|
||||||
|
];
|
||||||
|
|
||||||
|
}
|
31
modules/emacs.nix
Normal file
31
modules/emacs.nix
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
{ config, lib, pkgs, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
home.packages = with pkgs; [
|
||||||
|
# Doom requirements
|
||||||
|
fd
|
||||||
|
ripgrep
|
||||||
|
wakatime
|
||||||
|
];
|
||||||
|
|
||||||
|
home.file.".doom.d" = {
|
||||||
|
onChange = ''
|
||||||
|
#!/bin/sh
|
||||||
|
DOOM=$HOME/.emacs.d
|
||||||
|
if [ ! -d $DOOM ]; then
|
||||||
|
git clone --depth 1 https://github.com/hlissner/doom-emacs $DOOM
|
||||||
|
fi
|
||||||
|
$DOOM/bin/doom sync
|
||||||
|
'';
|
||||||
|
source = ../config/.doom.d;
|
||||||
|
recursive = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
programs = {
|
||||||
|
emacs = {
|
||||||
|
enable = true;
|
||||||
|
package = pkgs.emacs-nox;
|
||||||
|
extraPackages = epkgs: [ epkgs.vterm ];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
30
modules/git.nix
Normal file
30
modules/git.nix
Normal file
@ -0,0 +1,30 @@
|
|||||||
|
{ config, lib, pkgs, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
programs = {
|
||||||
|
git = {
|
||||||
|
enable = true;
|
||||||
|
userName = "James Walker";
|
||||||
|
userEmail = "walkah@walkah.net";
|
||||||
|
|
||||||
|
aliases = {
|
||||||
|
lg =
|
||||||
|
"log --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit";
|
||||||
|
st = "status -s";
|
||||||
|
undo = "reset HEAD~1 --mixed";
|
||||||
|
};
|
||||||
|
|
||||||
|
extraConfig = {
|
||||||
|
github.user = "walkah";
|
||||||
|
init.defaultBranch = "main";
|
||||||
|
pull.rebase = true;
|
||||||
|
rebase.autoStash = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
signing = {
|
||||||
|
key = "8896FEC44D47A81C";
|
||||||
|
signByDefault = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
29
modules/tmux.nix
Normal file
29
modules/tmux.nix
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
{ config, lib, pkgs, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
programs = {
|
||||||
|
tmux = {
|
||||||
|
enable = true;
|
||||||
|
clock24 = true;
|
||||||
|
plugins = with pkgs.tmuxPlugins; [
|
||||||
|
sensible
|
||||||
|
yank
|
||||||
|
{
|
||||||
|
plugin = dracula;
|
||||||
|
extraConfig = ''
|
||||||
|
set -g @dracula-show-battery true
|
||||||
|
set -g @dracula-show-fahrenheit false
|
||||||
|
set -g @dracula-show-left-icon session
|
||||||
|
set -g @dracula-show-powerline true
|
||||||
|
set -g @dracula-refresh-rate 10
|
||||||
|
'';
|
||||||
|
}
|
||||||
|
];
|
||||||
|
extraConfig = ''
|
||||||
|
set -g set-titles on
|
||||||
|
set -g set-titles-string "[#S] #W@#h (#I)"
|
||||||
|
'';
|
||||||
|
shortcut = "o";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
61
modules/zsh.nix
Normal file
61
modules/zsh.nix
Normal file
@ -0,0 +1,61 @@
|
|||||||
|
{ config, lib, pkgs, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
programs = {
|
||||||
|
bat.enable = true;
|
||||||
|
direnv.enable = true;
|
||||||
|
exa.enable = true;
|
||||||
|
fzf = {
|
||||||
|
enable = true;
|
||||||
|
fileWidgetOptions = [ "--preview 'bat --color always {}'" ];
|
||||||
|
};
|
||||||
|
|
||||||
|
zsh = {
|
||||||
|
enable = true;
|
||||||
|
enableAutosuggestions = true;
|
||||||
|
enableCompletion = true;
|
||||||
|
oh-my-zsh = {
|
||||||
|
enable = true;
|
||||||
|
plugins = [
|
||||||
|
"bundler"
|
||||||
|
"direnv"
|
||||||
|
"docker"
|
||||||
|
"docker-compose"
|
||||||
|
"git"
|
||||||
|
"golang"
|
||||||
|
"mix"
|
||||||
|
"rails"
|
||||||
|
"ssh-agent"
|
||||||
|
"tmux"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
sessionVariables = {
|
||||||
|
EDITOR = "vim";
|
||||||
|
GOPATH = "$HOME/.go";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
starship = {
|
||||||
|
enable = true;
|
||||||
|
enableZshIntegration = true;
|
||||||
|
settings = {
|
||||||
|
character = {
|
||||||
|
success_symbol = "[»](bold green) ";
|
||||||
|
error_symbol = "[✗](bold red) ";
|
||||||
|
};
|
||||||
|
directory = {
|
||||||
|
fish_style_pwd_dir_length = 1;
|
||||||
|
truncation_length = 1;
|
||||||
|
};
|
||||||
|
hostname = {
|
||||||
|
ssh_only = false;
|
||||||
|
format = "[$hostname]($style):";
|
||||||
|
};
|
||||||
|
gcloud = { disabled = true; };
|
||||||
|
kubernetes = { disabled = false; };
|
||||||
|
username = { format = "[$user]($style)@"; };
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
};
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user