refactor!: massively overhaul configuration and bring it to the modern
age
This commit is contained in:
parent
1310dd7b7a
commit
9a081df74a
16 changed files with 492 additions and 251 deletions
337
home.nix
337
home.nix
|
@ -1,337 +0,0 @@
|
|||
{
|
||||
pkgs,
|
||||
inputs,
|
||||
...
|
||||
}:
|
||||
{
|
||||
home.username = "kaitotlex";
|
||||
home.homeDirectory = "/home/kaitotlex";
|
||||
|
||||
# link the configuration file in current directory to the specified location in home directory
|
||||
# home.file.".config/i3/wallpaper.jpg".source = ./wallpaper.jpg;
|
||||
|
||||
# link all files in `./scripts` to `~/.config/i3/scripts`
|
||||
# home.file.".config/i3/scripts" = {
|
||||
# source = ./scripts;
|
||||
# recursive = true; # link recursively
|
||||
# executable = true; # make all files executable
|
||||
# };
|
||||
|
||||
# encode the file content in nix configuration file directly
|
||||
# home.file.".xxx".text = ''
|
||||
# xxx
|
||||
# '';
|
||||
|
||||
# Packages that should be installed to the user profile.
|
||||
home.packages = with pkgs; [
|
||||
# here is some command line tools I use frequently
|
||||
# feel free to add your own or remove some of them
|
||||
firefox-devedition
|
||||
neofetch
|
||||
polychromatic
|
||||
openrazer-daemon
|
||||
wineWowPackages.waylandFull
|
||||
wget
|
||||
|
||||
gparted
|
||||
gnumake
|
||||
|
||||
manga-cli
|
||||
|
||||
clang
|
||||
macchanger
|
||||
ani-cli
|
||||
mpv
|
||||
sherlock
|
||||
|
||||
notion-app-enhanced
|
||||
# archives
|
||||
zip
|
||||
xz
|
||||
unzip
|
||||
p7zip
|
||||
|
||||
# utils
|
||||
ripgrep # recursively searches directories for a regex pattern
|
||||
jq # A lightweight and flexible command-line JSON processor
|
||||
yq-go # yaml processor https://github.com/mikefarah/yq
|
||||
eza # A modern replacement for ‘ls’
|
||||
fzf # A command-line fuzzy finder
|
||||
emacs # full featured everything
|
||||
wl-clipboard
|
||||
|
||||
# networking tools
|
||||
mtr # A network diagnostic tool
|
||||
iperf3
|
||||
dnsutils # `dig` + `nslookup`
|
||||
ldns # replacement of `dig`, it provide the command `drill`
|
||||
aria2 # A lightweight multi-protocol & multi-source command-line download utility
|
||||
socat # replacement of openbsd-netcat
|
||||
nmap # A utility for network discovery and security auditing
|
||||
ipcalc # it is a calculator for the IPv4/v6 addresses
|
||||
|
||||
# misc
|
||||
cowsay
|
||||
file
|
||||
which
|
||||
tree
|
||||
gnused
|
||||
gnutar
|
||||
gawk
|
||||
zstd
|
||||
gnupg
|
||||
python3
|
||||
rustc
|
||||
arduino-cli
|
||||
jdk
|
||||
|
||||
# nix related
|
||||
#
|
||||
# it provides the command `nom` works just like `nix`
|
||||
# with more details log output
|
||||
nix-output-monitor
|
||||
# productivity
|
||||
hugo # static site generator
|
||||
glow # markdown previewer in terminal
|
||||
obsidian # markdown previewer
|
||||
thunderbird-unwrapped # Full Feature Email Client
|
||||
|
||||
# LaTeX stuff
|
||||
texliveFull
|
||||
texlivePackages.pdflatexpicscale
|
||||
texlivePackages.babel
|
||||
texlivePackages.csquotes
|
||||
texlivePackages.biblatex
|
||||
texlivePackages.geometry
|
||||
texlivePackages.times
|
||||
texlivePackages.hyperref
|
||||
texlivePackages.setspace
|
||||
texlivePackages.fancyhdr
|
||||
texlivePackages.biblatex
|
||||
texlivePackages.csquotes
|
||||
texlivePackages.csquotes-de
|
||||
texlivePackages.collection-latexextra
|
||||
|
||||
#ViM config
|
||||
|
||||
btop # replacement of htop/nmon
|
||||
iotop # io monitoring
|
||||
iftop # network monitoring
|
||||
|
||||
waydroid
|
||||
|
||||
# system call monitoring
|
||||
strace # system call monitoring
|
||||
ltrace # library call monitoring
|
||||
lsof # list open files
|
||||
|
||||
#Rice
|
||||
kanagawa-gtk-theme
|
||||
kanagawa-icon-theme
|
||||
|
||||
# system tools
|
||||
sysstat
|
||||
lm_sensors # for `sensors` command
|
||||
ethtool
|
||||
pciutils # lspci
|
||||
usbutils # lsusb
|
||||
|
||||
# messaging apps
|
||||
vesktop
|
||||
signal-desktop
|
||||
gh
|
||||
|
||||
inputs.nixvim.packages.${pkgs.system}.default
|
||||
|
||||
#Pentest
|
||||
netcat
|
||||
nmap
|
||||
metasploit
|
||||
john
|
||||
lynis
|
||||
hydra-cli
|
||||
ghidra
|
||||
social-engineer-toolkit
|
||||
aircrack-ng
|
||||
|
||||
];
|
||||
|
||||
services.dunst.enable = true;
|
||||
|
||||
programs.git = {
|
||||
enable = true;
|
||||
userName = "KaitoTLex";
|
||||
userEmail = "warrenlin1688@gmail.com";
|
||||
delta.enable = true;
|
||||
extraConfig = {
|
||||
init.defaultBranch = "main";
|
||||
};
|
||||
};
|
||||
|
||||
programs.lazygit.enable = true;
|
||||
|
||||
programs.zoxide = {
|
||||
enable = true;
|
||||
enableBashIntegration = true;
|
||||
enableFishIntegration = true;
|
||||
};
|
||||
|
||||
programs.kitty = {
|
||||
enable = true;
|
||||
theme = "Tokyo Night";
|
||||
font.name = "CaskaydiaCove Nerd Font";
|
||||
settings = {
|
||||
font_size = 12;
|
||||
window_padding_width = "8 8 0";
|
||||
confirm_os_window_close = -1;
|
||||
shell_integration = "enabled";
|
||||
};
|
||||
};
|
||||
|
||||
programs.waybar = {
|
||||
enable = true;
|
||||
settings = {
|
||||
mainBar = {
|
||||
layer = "top";
|
||||
position = "top";
|
||||
height = 30;
|
||||
output = [
|
||||
"DP-1"
|
||||
"HDMI-A-1"
|
||||
];
|
||||
modules-left = [
|
||||
"hyprland/workspaces"
|
||||
"sway/submap"
|
||||
"wlr/taskbar"
|
||||
];
|
||||
modules-center = [
|
||||
"hyprland/window"
|
||||
"custom/hello-from-waybar"
|
||||
];
|
||||
modules-right = [
|
||||
"mpd"
|
||||
"custom/mymodule#with-css-id"
|
||||
"temperature"
|
||||
];
|
||||
|
||||
"hyprland/workspaces" = {
|
||||
disable-scroll = true;
|
||||
all-outputs = true;
|
||||
};
|
||||
"custom/hello-from-waybar" = {
|
||||
format = "hello {}";
|
||||
max-length = 40;
|
||||
interval = "once";
|
||||
exec = pkgs.writeShellScript "hello-from-waybar" ''
|
||||
echo "from within waybar"
|
||||
'';
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
programs.oh-my-posh = {
|
||||
enable = true;
|
||||
# enableZshIntegration = true;
|
||||
enableFishIntegration = true;
|
||||
enableBashIntegration = true;
|
||||
useTheme = "gruvbox";
|
||||
};
|
||||
|
||||
programs.bash = {
|
||||
enable = true;
|
||||
};
|
||||
programs.fish = {
|
||||
enable = true;
|
||||
shellAliases = {
|
||||
rebuild = "sudo nixos-rebuild switch";
|
||||
ls = "eza -l --icons=auto";
|
||||
};
|
||||
functions = {
|
||||
update-nixos = {
|
||||
description = "Update the system flake and attempt to build and switch to the new configuration.";
|
||||
body = ''
|
||||
cd /etc/nixos
|
||||
nix flake update
|
||||
sudo nixos-rebuild switch
|
||||
'';
|
||||
};
|
||||
};
|
||||
interactiveShellInit = ''
|
||||
fish_vi_key_bindings
|
||||
set -g fish_greeting
|
||||
oh-my-posh disable notice
|
||||
'';
|
||||
plugins = [
|
||||
{
|
||||
name = "autopair";
|
||||
src = pkgs.fetchFromGitHub {
|
||||
owner = "jorgebucaran";
|
||||
repo = "autopair.fish";
|
||||
rev = "4d1752ff5b39819ab58d7337c69220342e9de0e2";
|
||||
hash = "sha256-qt3t1iKRRNuiLWiVoiAYOu+9E7jsyECyIqZJ/oRIT1A=";
|
||||
};
|
||||
}
|
||||
{
|
||||
name = "fzf";
|
||||
src = pkgs.fetchFromGitHub {
|
||||
owner = "PatrickF1";
|
||||
repo = "fzf.fish";
|
||||
rev = "8920367cf85eee5218cc25a11e209d46e2591e7a";
|
||||
hash = "sha256-T8KYLA/r/gOKvAivKRoeqIwE2pINlxFQtZJHpOy9GMM=";
|
||||
};
|
||||
}
|
||||
{
|
||||
name = "sponge";
|
||||
src = pkgs.fetchFromGitHub {
|
||||
owner = "meaningful-ooo";
|
||||
repo = "sponge";
|
||||
rev = "384299545104d5256648cee9d8b117aaa9a6d7be";
|
||||
hash = "sha256-MdcZUDRtNJdiyo2l9o5ma7nAX84xEJbGFhAVhK+Zm1w=";
|
||||
};
|
||||
}
|
||||
{
|
||||
name = "done";
|
||||
src = pkgs.fetchFromGitHub {
|
||||
owner = "franciscolourenco";
|
||||
repo = "done";
|
||||
rev = "eb32ade85c0f2c68cbfcff3036756bbf27a4f366";
|
||||
hash = "sha256-DMIRKRAVOn7YEnuAtz4hIxrU93ULxNoQhW6juxCoh4o=";
|
||||
};
|
||||
}
|
||||
];
|
||||
};
|
||||
|
||||
programs.fd.enable = true;
|
||||
|
||||
programs.btop = {
|
||||
enable = true;
|
||||
settings = {
|
||||
color_theme = "tokyo-night";
|
||||
vim_keys = true;
|
||||
theme_background = false;
|
||||
};
|
||||
};
|
||||
|
||||
programs.eza = {
|
||||
enable = true;
|
||||
enableFishIntegration = true;
|
||||
enableBashIntegration = true;
|
||||
};
|
||||
|
||||
programs.fzf.enable = true;
|
||||
|
||||
# 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.
|
||||
home.stateVersion = "24.05";
|
||||
#
|
||||
# You can update home Manager without changing this value. See
|
||||
# the home Manager release notes for a list of state version
|
||||
# changes in each release.
|
||||
|
||||
# Let home Manager install and manage itself.
|
||||
programs.home-manager.enable = true;
|
||||
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue