nixos-config/user/home.nix
2023-05-13 21:02:50 -05:00

187 lines
4 KiB
Nix

{ config, lib, pkgs, myName, myEmail, myHomeDir, myDotfilesDir, myTheme, ... }:
{
# Home Manager needs a bit of information about you and the paths it should
# manage.
home.username = myName;
home.homeDirectory = myHomeDir;
programs.home-manager.enable = true;
imports = [
./wm/xmonad/xmonad.nix # My xmonad config
./shell/sh.nix # My zsh and bash config
./bin/phoenix.nix # My nix command wrapper
./app/git/git.nix # My git config
./app/games/games.nix # Various videogame apps
./style/stylix.nix # Styling and themes for my apps
./lang/cc/cc.nix # C and C++ tools
./lang/python/python.nix # Python
./lang/python/python-packages.nix # Extra Python packages I want
./lang/haskell/haskell.nix # Haskell tools
./lang/android/android.nix # Android developement
./lang/godot/godot.nix # Game development
];
home.stateVersion = "22.11"; # Please read the comment before changing.
home.packages = with pkgs; [
# # Adds the 'hello' command to your environment. It prints a friendly
# # "Hello, world!" when run.
# Core
hello
zsh
alacritty
kitty
librewolf-wayland
brave
dmenu
rofi
feh
git
xmobar
# Office
libreoffice-qt
mate.atril
xournalpp
gnome.geary
autokey
protonmail-bridge
# File Managers
ranger
libsForQt5.dolphin
libsForQt5.dolphin-plugins
xdragon
# Media
gimp-with-plugins
krita
cmus
vlc
mpv
yt-dlp
blender
obs-studio
libsForQt5.kdenlive
movit
mediainfo
libmediainfo
mediainfo-gui
freetube
# TODO need ytsub somehow (sarowish/ytsub)
audio-recorder
# Command Line
neofetch lolcat cowsay
gnugrep gnused
bat exa fd bottom ripgrep
rsync
systeroid
tmux
htop
hwinfo
unzip
octave
brightnessctl
w3m
fzf
hunspell hunspellDicts.en_US-large
pandoc
nodePackages.mermaid-cli
# Various dev packages
texinfo
libffi zlib
nodePackages.ungit
# Compositor and Desktop Utils
picom
alttab
xorg.xcursorthemes
# X Utils
xdotool
xclip
ddcutil
sct
caffeine-ng
twmn
# Wayland Utils
xdg-desktop-portal-wlr
wtype
# wl-clipboard-x11
xorg.xlsclients
glfw-wayland
swayidle
swaylock
wlsunset
wayshot
wev
# TODO Configure pipewire audio server
# Virtual Machines
libvirt
virt-manager
qemu_full
lxc
swtpm
# Security
keepassxc
gnome.seahorse
protonvpn-gui
# Filesystems
dosfstools
];
programs.doom-emacs = {
enable = true;
doomPrivateDir = ./app/doom-emacs;
};
nixpkgs.overlays = [
(self: super:
{
picom = super.picom.overrideAttrs (oldAttrs: rec {
version = "unstable-2021-10-23";
src = super.fetchFromGitHub {
owner = "pijulius";
repo = "picom";
rev = "982bb43e5d4116f1a37a0bde01c9bda0b88705b9";
sha256 = "sha256-YiuLScDV9UfgI1MiYRtjgRkJ0VuA1TExATA2nJSJMhM=";
};
meta = with builtins.lib; {
description = "A fork of picom featuring better animations";
homepage = "https://github.com/pijulius/picom";
};
});
}
)
];
home.file.".librewolf/librewolf.overrides.cfg".text = ''
pref("font.name.serif.x-western","Inconsolata");
pref("font.size.variable.x-western",20);
pref("browser.toolbars.bookmarks.visibility","always");
pref("privacy.resisttFingerprinting.letterboxing", true);
pref("network.http.referer.XOriginPolicy",2);
pref("privacy.clearOnShutdown.history",false);
pref("privacy.clearOnShutdown.downloads",false);
pref("privacy.clearOnShutdown.cookies",false);
pref("gfx.webrender.software.opengl",true);
pref("webgl"webgl.disabled",false);
'';
home.sessionVariables = {
EDITOR = "emacsclient";
};
}