1
Files
flake-nixinator/home/home.nix
2022-07-01 00:15:39 +02:00

258 lines
5.2 KiB
Nix

# This is your home-manager configuration file
# Use this to configure your home environment (it replaces ~/.config/nixpkgs/home.nix)
{ inputs, lib, config, pkgs, ... }: {
imports = [
# If you want to use home-manager modules from other flakes (such as nix-colors), use something like:
# inputs.nix-colors.homeManagerModule
# Feel free to split up your configuration and import pieces of it here.
];
# https://github.com/nix-community/home-manager/issues/2942
nixpkgs.config.allowUnfreePredicate = (pkg: true);
nixpkgs.config.allowUnfree = true;
# Chinese Input
i18n.inputMethod.enabled = "fcitx5";
i18n.inputMethod.fcitx5.addons = with pkgs; [ fcitx5-gtk libsForQt5.fcitx5-qt fcitx5-chinese-addons fcitx5-configtool ];
# Packages with extra options managed by HomeManager natively
programs = {
home-manager.enable = true;
bat = {
enable = true;
};
command-not-found.enable = true;
direnv = {
enable = true;
nix-direnv.enable = true;
};
# TODO: Move to emacs module
emacs = {
# TODO: This is wrong, I need to figure out the overlays
# package = pkgs.emacsPgtkNativeComp;
package = pkgs.emacs28NativeComp;
enable = true;
};
exa.enable = true;
feh.enable = true;
# TODO: Copy config from Arch dots
fish = {
enable = true;
};
firefox = {
enable = true;
# TODO: Add extra config
package = pkgs.firefox-wayland.override {
# See nixpkgs' firefox/wrapper.nix to check which options you can use
cfg = {
# Gnome shell native connector
enableGnomeExtensions = false; # I don't need this since I declare installed extensions inside HomeManager
};
};
# TODO: Add extensions
extensions = [];
};
fzf = {
enable = true;
enableFishIntegration = true;
};
git = {
enable = true;
delta.enable = true;
userEmail = "christoph.urlacher@protonmail.com";
userName = "ChUrl";
};
keychain = {
enable = true;
enableFishIntegration = true;
enableXsessionIntegration = true;
agents = [ "ssh" ];
keys = [ "id_ed25519" ];
};
# TODO: Copy config from Arch dots
kitty = {
enable = true;
};
mpv.enable = true;
neovim = {
enable = true;
};
ssh.enable = true;
starship = {
enable = true;
enableFishIntegration = true;
};
# TODO: TexLive
zoxide = {
enable = true;
enableFishIntegration = true;
};
};
# Add stuff for your user as you see fit:
home.packages = with pkgs; [
# CLI Tools
procs
tokei
rsync
xclip
poppler_utils
ffmpeg
imagemagick
htop
httpie
rclone
# TODO: Moooore
# Gnome extensions
gnomeExtensions.appindicator
gnomeExtensions.blur-my-shell
gnomeExtensions.sound-output-device-chooser
gnomeExtensions.vitals
gnomeExtensions.no-overview
gnomeExtensions.switch-workspace
gnomeExtensions.maximize-to-empty-workspace
gnomeExtensions.pip-on-top
# Ranger
# TODO: Make module out of this
ranger
ueberzug
ffmpegthumbnailer
atool
p7zip
zip
unzip
unrar
libarchive
exiftool
mediainfo
# Doom Emacs
# TODO: Make module out of this
binutils
zstd
ripgrep
fd
gcc
libgccjit
gnumake
cmake
sqlite
python310Packages.pygments
inkscape
graphviz
gnuplot
pandoc
nixfmt
shellcheck
maim
xorg.xwininfo
xdotool
# Web
signal-desktop
noisetorch
# Flatpak discord
yt-dlp
# Flatpak spotify
thunderbird
protonmail-bridge
protonvpn-cli
# Tools
# calibre
# virt-manager # Let's try gnome-boxes while we're at it
gnome.gnome-boxes
gource
keepassxc
# ark # This is KDE tool
anki
libreoffice-fresh
# libsForQt5.dolphin-plugins
# libsForQt5.kdegraphics-thumbnailers
# Graphics
wacomtablet
xournalpp
# kdenlive
# krita
# blender
# godot
# Icons
papirus-icon-theme
# Fonts
# TODO: Make a module and move to fonts.fonts or something more specific
victor-mono
source-code-pro
source-sans-pro
source-serif-pro
jetbrains-mono
etBook
overpass
source-han-mono
source-han-sans
source-han-serif
wqy_zenhei
wqy_microhei
# Audio
# TODO: Make a module
# vcv-rack
# bitwig-studio
# audacity
# carla
# TODO: Make wine-tgk derivation
# yabridge
# yabridgectl # TODO: Do I need both?
# Use NixCommunity binary cache
cachix
# Gaming
gamemode
# TODO: This is wrong, I need to figure out nur when I try out gamescope
# pkgs.repos.dukzcry.gamescope
# Flatpak bottles
# Flatpak steam
polymc # TODO: Should I use Flatpak for all gaming stuff?
# lutris # I don't want that crap, pleaaaase
];
services = {
# lorri.enable = true; # Use nix-direnv instead
nextcloud-client = {
enable = true;
startInBackground = true;
};
};
# Nicely reload system units when changing configs
systemd.user.startServices = "sd-switch";
}