dotfiles/home.nix
Daniel Bulant 47a73a8c5e
update
2026-04-06 12:06:59 +02:00

463 lines
9 KiB
Nix

{
helium,
colmena,
dms,
zen-browser,
nix-gaming,
nixpkgs-unstable, # suyu,
hyprland-plugins, # , hyprland
pkgs,
danksearch,
niri,
affinity-nix,
inputs,
nix-monitor,
rusic,
...
}:
let
unstable = import nixpkgs-unstable {
system = pkgs.system;
config = {
allowUnfree = true;
};
};
# system = stdenv.hostPlatform.system;
in
{
imports = [
zen-browser.homeModules.beta
dms.homeModules.dank-material-shell
danksearch.homeModules.default
nix-monitor.homeManagerModules.default
# niri.homeManagerModules.default
# dms.homeModules.niri
];
home = {
stateVersion = "25.11";
packages = with pkgs; [
lmstudio
spacetimedb
nixd
buck2
(rusic.packages.${system}.default)
affine
voxtype-onnx
#affinity-nix.packages.x86_64-linux.v3
biome
bun
lenovo-legion
itch
filezilla
nicotine-plus
protonvpn-gui
dgop
mysql-workbench
i2c-tools
kdePackages.kimageformats
power-profiles-daemon
tail-tray
steam
helium
opencode
perf
obs-studio
flamegraph
samply
font-awesome
arduino-ide
libxkbfile
# dioxus-cli
cosmic-files
cosmic-player
cosmic-screenshot
cosmic-applibrary
cosmic-ext-calculator
cosmic-icons
examine
flix
postgresql
upower
usbutils
killall
powertop
pgadmin4-desktopmode
thunderbird-bin
logisim-evolution
typst
typstyle
typstwriter
colmena.defaultPackage.${system}
usbimager
bitwarden-desktop
#metasploit
lenovo-legion
burpsuite
zap
kubernetes-helm
# required by quickshell config
# unstable.quickshell
wlogout
fuzzel
translate-shell
hyprpicker
hypridle
hyprland-qtutils
hyprwayland-scanner
hyprcursor
material-symbols
cava
cliphist
matugen
swww
kdePackages.fcitx5-with-addons
easyeffects
mpvpaper
uv
hyprshot
libsecret
hyprls
ddcutil
brightnessctl
libqalculate
# cloud things
minikube
nebula
nixpkgs-unstable.legacyPackages.${system}.jet-pilot
k9s
prismlauncher
lf
rawtherapee
syncthingtray
anki-bin
xournalpp
simple-scan
godot_4
#rar
wootility
#surrealdb
pico-sdk
elf2uf2-rs
obsidian
betaflight-configurator
home-manager
#glxinfo
pciutils
nix-top
grc
onefetch
inter
#fira
#fira-code
# fira-code-nerdfont
nerd-fonts.fira-code
iosevka
kitty
#rofi-wayland
rofi
discord
vesktop
spotify
spicetify-cli
meslo-lgs-nf
waybar
chromium
#dunst
sccache
swaybg
activitywatch
networkmanagerapplet
kubectl
duf
dust
#jetbrains.webstorm
#jetbrains.clion
#jetbrains.datagrip
# jetbrains.rider
#jetbrains.idea-ultimate
jre_minimal
datovka
nwg-displays
wireguard-tools
mongodb-compass
unstable.mongodb-tools
#hashcat
tldr
#dunst
grim
slurp
wl-clipboard
nextcloud-client
kdePackages.filelight
kdePackages.kate
kdePackages.ksystemstats
kdePackages.kinfocenter
kdePackages.kirigami-addons
kdePackages.ark
kdePackages.qtdeclarative
kdePackages.dolphin
cachix
playerctl
libcanberra-gtk3 # sound events
#qt6ct
nil # nix language server
nix-output-monitor
expect
nh
udev-block-notify
appimage-run
mpv
heroic
heaptrack
#cinny-desktop
gping
gparted
valgrind
caddy
jq
htmlq
fzf
gleam
erlang
terraform
nodejs
#corepack
ansible
aria2
qbittorrent
audacity
bettercap
duperemove
ffmpeg
flameshot
ripgrep
iotop
nethogs
john
iperf
mold
nheko
quickemu
qemu
socat
websocat
whois
#wifite2
dig
httpie
inxi
numbat
wireshark
nixfmt
qpwgraph
nixpkgs-unstable.legacyPackages.${system}.zed-editor
nixpkgs-unstable.legacyPackages.${system}.pineflash
unstable.nosql-booster
android-tools
hyperfine
scc
aircrack-ng
strace
ghidra
ffuf
sqlmap
nmap
rustscan
thc-hydra
file
binwalk
p7zip
foremost
gdb
feroxbuster
python312Packages.pypykatz
screen
openvpn
#ghostty
mdbook
nix-tree
nix-du
graphviz
#blender
warpinator
awatcher
tigervnc
oh-my-posh
libva-utils
atuin
jc
lsof
carapace
crate2nix
liberation_ttf
noto-fonts-color-emoji
rubik
nerd-fonts.jetbrains-mono
google-fonts
];
pointerCursor = {
gtk.enable = true;
package = pkgs.bibata-cursors;
name = "Bibata-Modern-Classic";
size = 16;
};
};
gtk = {
enable = true;
theme = {
package = pkgs.orchis-theme;
name = "Orchis";
};
};
services.lorri.enable = true;
wayland.windowManager.hyprland = {
# enable = true;
# package = hyprland.packages.${pkgs.stdenv.hostPlatform.system}.hyprland;
# portalPackage = hyprland.packages.${pkgs.stdenv.hostPlatform.system}.xdg-desktop-portal-hyprland;
# plugins = [
# hyprland-plugins.packages.${pkgs.stdenv.hostPlatform.system}.hyprexpo
# hyprland-plugins.packages.${pkgs.stdenv.hostPlatform.system}.hyprtrails
# ];
};
programs.dsearch.enable = true;
programs.dank-material-shell = {
enable = true;
systemd.enable = false;
# niri = {
# enableKeybinds = false; # Sets static preset keybinds
# # enableSpawn = true; # Auto-start DMS with niri, if enabled
# };
};
# programs.niri.enable = true;
fonts.fontconfig = {
enable = true;
defaultFonts = {
emoji = [ "Noto Color Emoji" ];
monospace = [
"Iosevka"
"Iosevka NF"
"FiraCode Nerd Font Mono"
];
sansSerif = [ "Inter" ];
serif = [ "Noto Serif" ];
};
};
programs = {
nix-monitor.enable = true;
nix-monitor.rebuildCommand = [
"bash"
"-c"
"cd /home/dan/projects/dotfiles; nh os switch ."
];
zen-browser.enable = true;
fish = {
enable = true;
shellInit = ''
source ~/.config/fish/config-old.fish
'';
plugins = with pkgs.fishPlugins; [
{
name = "grc";
src = grc.src;
}
{
name = "tide";
src = tide.src;
}
];
};
nushell = {
enable = true;
# unstable, perhaps 25.05
# plugins = with pkgs.nushellPlugins; [
# query
# skim
# net
# highlight
# gstat
# formats
# dbus
# units
# ];
# configFile.source = ./.config/nushell/base-config.nu;
configFile.text = "source base-config.nu";
};
vscode = {
enable = true;
# package = nixpkgs-unstable.packages.${pkgs.system}.vscode;
# package = unstable.pkgs.vscode;
# extensions = with pkgs.vscode-extensions; [
# ];
};
difftastic.enable = true;
difftastic.git.enable = true;
git = {
enable = true;
settings = {
user.name = "Daniel Bulant";
user.email = "danbulant@gmail.com";
pull.rebase = false;
pull.ff = "only";
gpg.format = "ssh";
commit.gpgsign = true;
gpg.ssh.allowedSignersFile = "/home/dan/allowed_signers";
};
signing = {
signByDefault = true;
key = "/home/dan/.ssh/id_ed25519";
};
};
gitui.enable = true;
btop.enable = true;
bat.enable = true;
lsd.enable = true;
fastfetch.enable = true;
direnv.enable = true;
direnv.nix-direnv.enable = true;
};
services.kdeconnect.enable = true;
services.kdeconnect.indicator = true;
services.blueman-applet.enable = true;
services.mpris-proxy.enable = true;
xdg.mimeApps = {
enable = true;
defaultApplications = {
"x-scheme-handler/http" = "zen-beta.desktop";
"x-scheme-handler/https" = "zen-beta.desktop";
"x-scheme-handler/chrome" = "zen-beta.desktop";
"text/html" = "zen-beta.desktop";
"application/x-extension-htm" = "zen-beta.desktop";
"application/x-extension-html" = "zen-beta.desktop";
"application/x-extension-shtml" = "zen-beta.desktop";
"application/xhtml+xml" = "zen-beta.desktop";
"application/x-extension-xhtml" = "zen-beta.desktop";
"application/x-extension-xht" = "zen-beta.desktop";
"x-scheme-handler/discord" = "vesktop.desktop";
};
};
}