nix-conf/home.nix
2024-10-04 19:03:49 -05:00

161 lines
3.6 KiB
Nix

{ config, pkgs, ... }:
let
username = "ahnwuoa";
homeDirectory = "/home/${username}";
mkln = x: config.lib.file.mkOutOfStoreSymlink "${homeDirectory}/.local/nixos/${x}";
in
{
home.username = username;
home.homeDirectory = homeDirectory;
home.packages = with pkgs; [
(pkgs.symlinkJoin {
name = "firefox";
paths = [ pkgs.firefox ];
buildInputs = [ pkgs.makeWrapper ];
postBuild = ''
wrapProgram $out/bin/firefox \
--set HOME "${homeDirectory}/.local/share"
'';
})
alacritty
mpv
nsxiv
rofi
sct
maim
xclip
picom
obs-studio
screenkey
safeeyes
libsForQt5.kcalc
libsForQt5.kolourpaint
libsForQt5.filelight
libsForQt5.kate
papirus-icon-theme
pavucontrol
qpwgraph
qbittorrent
xournalpp
gnome.adwaita-icon-theme
lsd
bat
zoxide
fd
ripgrep
fzf
trash-cli
tlrc
micro
speedtest-cli
bluetuith
unixtools.xxd
starship
killall
file
alsa-utils
libnotify
(python311.withPackages (python-pkgs: [
python-pkgs.pwntools
# python-pkgs.angr
python-pkgs.requests
python-pkgs.pyjwt
python-pkgs.flask
]))
gnumake
coq
coqPackages.coqide
gcc
sqlitebrowser
tmuxPlugins.vim-tmux-navigator
tmuxPlugins.sessionist
wine
winetricks
cage
gdb
pwndbg
(cutter.withPlugins (ps: with ps; [ jsdec rz-ghidra sigdb ]))
ghidra-bin
pwninit
patchelf
];
xdg.configFile.alacritty.source = mkln "config/alacritty";
xdg.configFile.awesome.source = mkln "config/awesome";
xdg.configFile.bash.source = mkln "config/bash";
xdg.configFile.fcitx5.source = config/fcitx5;
xdg.configFile.fontconfig.source = config/fontconfig;
xdg.configFile.git.source = config/git;
xdg.configFile.lsd.source = config/lsd;
xdg.configFile.picom.source = config/picom;
xdg.configFile.python.source = config/python;
xdg.configFile.qt5ct.source = config/qt5ct;
xdg.configFile.readline.source = config/readline;
xdg.configFile."starship.toml".source = config/starship.toml;
xdg.configFile.sx.source = mkln "config/sx";
xdg.configFile."tmux/tmux.conf".text = (builtins.readFile config/tmux/tmux.conf) + ''
run ${pkgs.tmuxPlugins.vim-tmux-navigator.rtp}
run ${pkgs.tmuxPlugins.sessionist.rtp}
'';
fonts.fontconfig.enable = false;
qt = {
enable = true;
platformTheme.name = "qtct";
style.name = "breeze";
style.package = pkgs.libsForQt5.breeze-qt5;
};
gtk = {
enable = true;
gtk2.configLocation = "${config.xdg.configHome}/gtk-2.0/gtkrc";
theme = {
name = "Breeze";
package = pkgs.libsForQt5.breeze-gtk;
};
};
home.pointerCursor = {
name = "breeze_cursors";
package = pkgs.libsForQt5.breeze-qt5;
size = 24;
gtk.enable = true;
};
home.file.".icons/default/index.theme".enable = false;
home.file.".icons/breeze_cursors".enable = false;
xdg.mimeApps.enable = true;
xdg.mimeApps.defaultApplications = let
image = "nsxiv.desktop";
browser = "firefox.desktop";
text = "nvim.desktop";
media = "mpv.desktop";
in {
"image/jpeg" = image;
"image/png" = image;
"image/gif" = media;
"audio/mpeg" = media;
"audio/ogg" = media;
"audio/vorbis" = media;
"audio/x-vorbis+ogg" = media;
"video/mp4" = media;
"video/mpeg" = media;
"text/plain" = text;
"application/xml" = text;
};
xdg.portal = {
enable = true;
configPackages = [ pkgs.libsForQt5.xdg-desktop-portal-kde ];
extraPortals = [ pkgs.libsForQt5.xdg-desktop-portal-kde ];
config.common.default = "kde";
};
home.stateVersion = "24.05";
}