2024-09-17 23:21:29 -07:00
|
|
|
{ pkgs, inputs, ... }:
|
2024-09-03 18:05:41 -07:00
|
|
|
{
|
|
|
|
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
|
2025-03-07 12:18:43 -08:00
|
|
|
gfortran
|
|
|
|
affine-bin
|
|
|
|
elmPackages.elm
|
2025-01-31 19:31:26 -08:00
|
|
|
kicad
|
2025-01-26 21:46:55 -08:00
|
|
|
android-tools
|
2025-02-05 11:32:19 -08:00
|
|
|
wacomtablet
|
2025-01-26 21:46:55 -08:00
|
|
|
prusa-slicer
|
2025-01-26 21:43:51 -08:00
|
|
|
openhantek6022
|
2025-01-20 17:52:47 -08:00
|
|
|
tor
|
2025-01-16 23:45:39 -08:00
|
|
|
libreoffice
|
2024-12-31 05:27:14 -08:00
|
|
|
rasm
|
2025-01-05 15:37:29 +08:00
|
|
|
arduino-language-server
|
2024-12-27 20:52:26 +08:00
|
|
|
geoclue2
|
|
|
|
lua
|
2024-12-12 20:35:41 -08:00
|
|
|
tetrio-desktop
|
2024-12-15 17:50:53 -08:00
|
|
|
prismlauncher
|
|
|
|
asciiquarium-transparent
|
|
|
|
fortune
|
|
|
|
cowsay
|
2024-12-12 20:35:41 -08:00
|
|
|
cbonsai
|
|
|
|
xfce.tumbler
|
|
|
|
vitetris
|
2024-12-03 17:30:36 -08:00
|
|
|
playerctl
|
|
|
|
lunar-client
|
2024-11-27 20:22:18 -08:00
|
|
|
texlab
|
|
|
|
gramma
|
2024-11-19 08:07:14 -08:00
|
|
|
pavucontrol
|
2025-01-22 16:46:02 -08:00
|
|
|
libsecret
|
2024-11-19 08:07:14 -08:00
|
|
|
ryujinx
|
|
|
|
unzip
|
|
|
|
sixpair
|
|
|
|
kdePackages.kio-fuse
|
|
|
|
kdePackages.kio-extras
|
|
|
|
kdePackages.qtsvg
|
|
|
|
kdePackages.qtwayland
|
2024-11-05 17:18:59 -08:00
|
|
|
yubikey-personalization
|
2024-10-24 19:38:17 -07:00
|
|
|
typst-live
|
2024-10-24 19:35:38 -07:00
|
|
|
typst
|
|
|
|
tmux
|
|
|
|
pipes
|
|
|
|
cmatrix
|
2024-09-03 18:05:41 -07:00
|
|
|
neofetch
|
|
|
|
polychromatic
|
|
|
|
openrazer-daemon
|
|
|
|
wineWowPackages.waylandFull
|
|
|
|
wget
|
2024-09-18 18:24:11 -07:00
|
|
|
vscode
|
2024-11-19 08:07:14 -08:00
|
|
|
melonDS
|
2024-09-15 14:59:57 -07:00
|
|
|
gparted
|
|
|
|
gnumake
|
2024-09-18 18:46:59 -07:00
|
|
|
chromium
|
2024-09-18 18:18:12 -07:00
|
|
|
manga-tui
|
2024-09-18 19:04:39 -07:00
|
|
|
thunderbird
|
2024-10-07 14:16:24 -07:00
|
|
|
rustc
|
|
|
|
cargo
|
2024-10-09 21:53:46 -07:00
|
|
|
yubikey-manager
|
|
|
|
libratbag
|
2024-09-29 12:17:36 -07:00
|
|
|
pamixer
|
2024-09-27 08:07:41 -07:00
|
|
|
sl
|
2024-10-09 21:53:46 -07:00
|
|
|
piper
|
|
|
|
nwg-displays
|
2024-09-24 21:17:49 -07:00
|
|
|
xfce.thunar
|
2024-11-19 08:07:14 -08:00
|
|
|
tailwindcss
|
2024-09-24 21:17:49 -07:00
|
|
|
|
2024-11-25 14:55:49 -08:00
|
|
|
typescript
|
|
|
|
typescript-language-server
|
|
|
|
live-server
|
|
|
|
tailwindcss
|
|
|
|
tailwindcss-language-server
|
2024-11-19 08:07:14 -08:00
|
|
|
nodejs_22
|
2024-09-15 14:59:57 -07:00
|
|
|
clang
|
|
|
|
macchanger
|
|
|
|
ani-cli
|
|
|
|
mpv
|
|
|
|
sherlock
|
2024-12-12 20:35:41 -08:00
|
|
|
clang-analyzer
|
|
|
|
clang-tools
|
2024-11-20 21:32:35 -08:00
|
|
|
tinymist
|
2024-09-15 14:59:57 -07:00
|
|
|
|
2024-10-16 15:45:58 -07:00
|
|
|
steam
|
2024-11-19 08:07:14 -08:00
|
|
|
blueman
|
2024-10-16 15:45:58 -07:00
|
|
|
|
2024-09-03 18:05:41 -07:00
|
|
|
notion-app-enhanced
|
|
|
|
# archives
|
|
|
|
zip
|
|
|
|
xz
|
|
|
|
unzip
|
|
|
|
p7zip
|
|
|
|
|
|
|
|
# utils
|
|
|
|
jq # A lightweight and flexible command-line JSON processor
|
|
|
|
yq-go # yaml processor https://github.com/mikefarah/yq
|
|
|
|
emacs # full featured everything
|
2024-09-15 14:59:57 -07:00
|
|
|
wl-clipboard
|
2024-09-03 18:05:41 -07:00
|
|
|
|
|
|
|
# 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
|
|
|
|
# with more details log output
|
|
|
|
nix-output-monitor
|
|
|
|
# productivity
|
|
|
|
glow # markdown previewer in terminal
|
2024-09-03 18:24:51 -07:00
|
|
|
obsidian # markdown previewer
|
2024-09-03 18:05:41 -07:00
|
|
|
thunderbird-unwrapped # Full Feature Email Client
|
|
|
|
|
2024-09-24 21:17:49 -07:00
|
|
|
#sway Modules
|
|
|
|
swaybg
|
2024-10-07 13:03:43 -07:00
|
|
|
xwayland
|
2024-09-24 21:17:49 -07:00
|
|
|
|
2024-09-03 18:05:41 -07:00
|
|
|
# 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
|
|
|
|
|
|
|
|
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
|
2025-01-22 16:46:02 -08:00
|
|
|
git-credential-oauth
|
2024-09-03 18:05:41 -07:00
|
|
|
|
|
|
|
# messaging apps
|
|
|
|
vesktop
|
|
|
|
signal-desktop
|
|
|
|
gh
|
|
|
|
|
2024-09-15 14:59:57 -07:00
|
|
|
#Pentest
|
|
|
|
netcat
|
|
|
|
nmap
|
|
|
|
metasploit
|
2025-03-07 12:18:43 -08:00
|
|
|
#john
|
2024-09-15 14:59:57 -07:00
|
|
|
lynis
|
|
|
|
hydra-cli
|
2025-01-17 21:40:46 -08:00
|
|
|
#ghidra
|
2024-09-15 14:59:57 -07:00
|
|
|
social-engineer-toolkit
|
|
|
|
aircrack-ng
|
2024-12-27 04:50:27 -08:00
|
|
|
swaylock-fancy
|
2024-09-24 21:17:49 -07:00
|
|
|
brightnessctl
|
2024-09-03 18:24:51 -07:00
|
|
|
];
|
2024-10-09 21:53:46 -07:00
|
|
|
|
2024-11-20 16:38:09 -08:00
|
|
|
xdg.portal = {
|
|
|
|
enable = true;
|
|
|
|
extraPortals = with pkgs; [ xdg-desktop-portal-gtk ];
|
|
|
|
};
|
|
|
|
|
2024-09-18 18:18:12 -07:00
|
|
|
programs.rofi = {
|
2024-09-18 10:28:09 -07:00
|
|
|
enable = true;
|
2024-09-18 18:18:12 -07:00
|
|
|
cycle = true;
|
|
|
|
location = "center";
|
2024-09-18 18:42:10 -07:00
|
|
|
package = pkgs.rofi-wayland;
|
2024-09-18 10:28:09 -07:00
|
|
|
};
|
|
|
|
|
2024-09-18 18:18:12 -07:00
|
|
|
services.dunst.enable = true;
|
|
|
|
|
2024-09-03 18:05:41 -07:00
|
|
|
programs.git = {
|
|
|
|
enable = true;
|
|
|
|
userName = "KaitoTLex";
|
2025-01-22 16:46:02 -08:00
|
|
|
userEmail = "wlin@kaitotlex.systems";
|
2025-01-22 23:47:07 -08:00
|
|
|
signing = {
|
|
|
|
signByDefault = true;
|
2025-03-07 12:18:43 -08:00
|
|
|
key = "BC04C0C14AEDA705B8FBACE8C5F52A3C0F3B4A77";
|
2025-01-22 23:47:07 -08:00
|
|
|
};
|
2025-01-24 11:51:11 -08:00
|
|
|
|
2024-09-03 18:05:41 -07:00
|
|
|
};
|
2025-01-24 11:51:11 -08:00
|
|
|
|
2024-09-17 23:21:29 -07:00
|
|
|
programs.neovim.defaultEditor = true;
|
|
|
|
|
2024-09-03 18:05:41 -07:00
|
|
|
programs.lazygit.enable = true;
|
|
|
|
|
|
|
|
programs.zoxide = {
|
|
|
|
enable = true;
|
|
|
|
enableBashIntegration = true;
|
|
|
|
enableFishIntegration = true;
|
|
|
|
};
|
|
|
|
|
|
|
|
programs.kitty = {
|
|
|
|
enable = true;
|
|
|
|
settings = {
|
|
|
|
font_size = 12;
|
2024-11-28 00:48:21 -08:00
|
|
|
window_padding_width = "8 8";
|
2024-09-03 18:05:41 -07:00
|
|
|
confirm_os_window_close = -1;
|
2024-11-28 00:48:21 -08:00
|
|
|
enable_audio_bell = "no";
|
|
|
|
allow_remote_control = "yes";
|
|
|
|
listen_on = "unix:/tmp/kitty";
|
|
|
|
scrollback_pager = ''nvim --noplugin -c "set signcolumn=no showtabline=0" -c "silent write! /tmp/kitty_scrollback_buffer | te cat /tmp/kitty_scrollback_buffer - "'';
|
|
|
|
cursor = pkgs.lib.mkForce "#c0caf5";
|
|
|
|
cursor_text_color = pkgs.lib.mkForce "#1a1b26";
|
|
|
|
cursor_trail = 3;
|
2024-12-12 20:35:41 -08:00
|
|
|
background_image = "${inputs.wallpapers}/kitty/moominResized.png";
|
|
|
|
background_image_layout = "cscaled";
|
|
|
|
#background_image_linear = "yes";
|
2024-12-15 17:50:53 -08:00
|
|
|
background_opacity = pkgs.lib.mkForce "0.6";
|
2024-09-03 18:05:41 -07:00
|
|
|
};
|
|
|
|
};
|
|
|
|
|
2024-09-17 23:21:29 -07:00
|
|
|
programs.firefox = {
|
2024-09-03 18:05:41 -07:00
|
|
|
enable = true;
|
2024-09-17 23:21:29 -07:00
|
|
|
package = pkgs.firefox-devedition;
|
2024-09-03 18:05:41 -07:00
|
|
|
};
|
2024-09-17 23:21:29 -07:00
|
|
|
programs.ripgrep.enable = true;
|
|
|
|
|
2024-09-03 18:05:41 -07:00
|
|
|
programs.oh-my-posh = {
|
|
|
|
enable = true;
|
|
|
|
# enableZshIntegration = true;
|
2024-10-07 13:03:43 -07:00
|
|
|
enableFishIntegration = false;
|
2024-09-03 18:05:41 -07:00
|
|
|
enableBashIntegration = true;
|
|
|
|
useTheme = "gruvbox";
|
|
|
|
};
|
|
|
|
|
|
|
|
programs.bash = {
|
|
|
|
enable = true;
|
|
|
|
};
|
|
|
|
programs.fish = {
|
|
|
|
enable = true;
|
|
|
|
shellAliases = {
|
2025-01-22 16:46:02 -08:00
|
|
|
nixr = "nh os switch .";
|
2024-09-03 18:05:41 -07:00
|
|
|
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 = {
|
|
|
|
vim_keys = true;
|
|
|
|
};
|
|
|
|
};
|
|
|
|
|
|
|
|
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;
|
|
|
|
|
|
|
|
}
|