dots/configurations/price/default.nix
Price Hiller 77f94f5789
refactor: use nix home manager for configuration
🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀
2023-10-23 06:10:25 -05:00

189 lines
4.9 KiB
Nix

{ config, pkgs, ... }:
let
dots = config.home.homeDirectory + "/.config/home-manager/configurations/price/dots";
xdg_config = "${dots}/xdg/config";
xdg_local = "${dots}/xdg/config";
dotf = configPath:
let
dot_file = "${configPath}";
in
{
source = config.lib.file.mkOutOfStoreSymlink dot_file;
recursive = builtins.pathExists ("${dot_file}" + "/.");
};
in
{
nixpkgs.config.allowUnfree = true;
# Home Manager needs a bit of information about you and the paths it should
# manage.
home.username = "sam";
home.homeDirectory = "/home/sam";
# 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.
#
# You should not change this value, even if you update Home Manager. If you do
# want to update the value, then make sure to first check the Home Manager
# release notes.
home.stateVersion = "23.05"; # Please read the comment before changing.
home.packages = with pkgs; [
hyprland
waybar
neovim-nightly
nixd
wezterm
git
udiskie
openssh
eza
mullvad-vpn
firefox-devedition
swww
twitter-color-emoji
swaylock-effects
zathura
mako
jq
inotify-tools
wf-recorder
ffmpeg
ungoogled-chromium
man
man-pages
man-pages-posix
pavucontrol
playerctl
slurp
grim
feh
wireshark
thunderbird
wl-clipboard
gh
libfido2
python3
lua
silicon
mpv
yarn
bat
ripgrep
delta
sqlite
glibc
gifski
tlp
thermald
lxappearance
ccache
qt6ct
qt5ct
gtk-engine-murrine
fuse
imagemagick
tectonic
virt-manager
python-qt
ansible
ansible-lint
xwaylandvideobridge
spotify
feh
# Fonts
liberation_ttf
fira-code-nerdfont
noto-fonts
noto-fonts-cjk-sans
noto-fonts-cjk-serif
noto-fonts-color-emoji
meslo-lgs-nf
roboto
# # Adds the 'hello' command to your environment. It prints a friendly
# # "Hello, world!" when run.
# pkgs.hello
# # It is sometimes useful to fine-tune packages, for example, by applying
# # overrides. You can do that directly here, just don't forget the
# # parentheses. Maybe you want to install Nerd Fonts with a limited number of
# # fonts?
# (pkgs.nerdfonts.override { fonts = [ "FantasqueSansMono" ]; })
# # You can also create simple shell scripts directly inside your
# # configuration. For example, this adds a command 'my-hello' to your
# # environment:
# (pkgs.writeShellScriptBin "my-hello" ''
# echo "Hello, ${config.home.username}!"
# '')
];
services = {
opensnitch-ui.enable = true;
};
xdg.configFile = {
"nvim" = dotf "${xdg_config}/nvim";
"chrome-flags.conf" = dotf "${xdg_config}/chrome-flags.conf";
"chromium-flags.conf" = dotf "${xdg_config}/chromium-flags.conf";
"mimeapps.list" = dotf "${xdg_config}/mimeapps.list";
"stylua.toml" = dotf "${xdg_config}/stylua.toml";
"Trolltech.conf" = dotf "${xdg_config}/Trolltech.conf";
"zathura" = dotf "${xdg_config}/zathura";
"bat" = dotf "${xdg_config}/bat";
"zsh" = dotf "${xdg_config}/zsh";
"hypr" = dotf "${xdg_config}/hypr";
"mako" = dotf "${xdg_config}/mako";
"mpv" = dotf "${xdg_config}/mpv";
"waybar" = dotf "${xdg_config}/waybar";
"silicon" = dotf "${xdg_config}/silicon";
"powershell" = dotf "${xdg_config}/powershell";
"wezterm" = dotf "${xdg_config}/wezterm";
"wofi" = dotf "${xdg_config}/wofi";
"kitty" = dotf "${xdg_config}/kitty";
"git" = dotf "${xdg_config}/git";
"gtk-3.0" = dotf "${xdg_config}/gtk-3.0";
"gtk-4.0" = dotf "${xdg_config}/gtk-4.0";
"fontconfig" = dotf "${xdg_config}/fontconfig";
"emacs" = dotf "${xdg_config}/emacs";
};
home.file = {
".omnisharp" = dotf "${dots}/.omnisharp";
".latexmkrc" = dotf "${dots}/.latexmkrc";
".zshrc" = dotf "${dots}/.zshrc";
# # Building this configuration will create a copy of 'dotfiles/screenrc' in
# # the Nix store. Activating the configuration will then make '~/.screenrc' a
# # symlink to the Nix store copy.
# ".screenrc" = dotfiles/screenrc;
# # You can also set the file content immediately.
# ".gradle/gradle.properties".text = ''
# org.gradle.console=verbose
# org.gradle.daemon.idletimeout=3600000
# '';
};
# You can also manage environment variables but you will have to manually
# source
#
# ~/.nix-profile/etc/profile.d/hm-session-vars.sh
#
# or
#
# /etc/profiles/per-user/sam/etc/profile.d/hm-session-vars.sh
#
# if you don't want to manage your shell through Home Manager.
home.sessionVariables = {
EDITOR = "nvim";
LIBSQLITE = "${pkgs.sqlite.out}/lib/libsqlite3.so";
};
# Let Home Manager install and manage itself.
programs.home-manager.enable = true;
}