KaitoianOS/users/kaitotlex/home.nix

378 lines
8.3 KiB
Nix
Raw Normal View History

{ 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
#gfortran1
gimp3
openssl
cmake
obs-studio
2025-04-26 22:13:25 -07:00
python312Packages.pip
pipx
rpcs3
dolphin-emu
2025-03-07 12:18:43 -08:00
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
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-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
2025-04-26 22:13:25 -07:00
#thunderbird-unwrapped # Full Feature Email Client
2024-09-03 18:05:41 -07:00
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
xdg.portal = {
enable = true;
extraPortals = with pkgs; [ xdg-desktop-portal-gtk ];
};
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
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
};
};
2025-04-26 22:13:25 -07:00
# programs.firefox = {
# enable = true;
# package = pkgs.firefox-devedition;
# };
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;
}