Files
nixos/hosts/default/home.nix
T
2024-03-31 23:44:05 +01:00

269 lines
6.3 KiB
Nix

{ config, pkgs, lib, callPackage, ... }:
{
home.username = "liamm";
home.homeDirectory = "/home/liamm";
imports = [
../../modules/home-manager/dunst.nix
../../modules/home-manager/terminals/alacritty.nix
];
# 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.11"; # Please read the comment before changing.
# The home.packages option allows you to install Nix packages into your
# environment.
nixpkgs.config.allowUnfree = true;
nixpkgs.overlays = [
(import (builtins.fetchTarball {
url = https://github.com/nix-community/emacs-overlay/archive/master.tar.gz;
sha256 = "00f028qrz2z0i7ma24993pwxcrx2viay6jygaz3jykj7lrww6ja6";
}))
];
home.packages = with pkgs; [
android-studio
brave
brightnessctl
contour
emacs-all-the-icons-fonts
# emacsPackages.pdf-tools
exfatprogs
firefox
floorp
gnome.gnome-keyring
gnome.gvfs
gnome.nautilus
grimblast
# gvfs
htop
keepassxc
libtool
libreoffice
minecraft
neofetch
networkmanagerapplet
openvpn
pamixer
pavucontrol
picom
powertop
praat
prismlauncher
signal-desktop
swayidle
swww
texliveFull
thunderbird
tree
wev
# etcher ## Currently Uses Electron-19 -- which is marked EOL
];
# Home Manager is pretty good at managing dotfiles. The primary way to manage
# plain files is through 'home.file'.
home.file = {
# # 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".source = dotfiles/screenrc;
};
home.sessionVariables = {
EDITOR = "emacs";
GIT_EDITOR = "nvim";
NIX_SHELL_PRESERVE_PROMPT = 1;
};
nix.settings.extra-trusted-substituters = [
"https://ghostty.cachix.org"
];
nix.settings.experimental-features = [ "nix-command" "flakes" ];
# Let Home Manager install and manage itself.
programs.home-manager.enable = true;
# THEMING
## QT SECTION
qt.enable = true;
qt.platformTheme = "gtk";
qt.style.name = "adwaita-dark";
## GTK SECTION
gtk = {
enable = true;
cursorTheme = {
package = pkgs.bibata-cursors;
name = "Bibata-Modern-Ice";
};
theme = {
name = "Materia-dark";
package = pkgs.materia-theme;
};
iconTheme = {
package = pkgs.arc-icon-theme;
name = "arc-icon-theme";
};
};
# ENV SETTINGS
fonts.fontconfig = {
enable = true;
};
xdg.enable = true;
xdg.configFile = {
"contour" = {
recursive = true;
source = ../../modules/old_configs/contour;
};
"emacs" = {
recursive = true;
source = ../../modules/old_configs/emacs;
};
"ghostty" = {
recursive = true;
source = ../../modules/old_configs/ghostty;
};
"hypr" = {
recursive = true;
source = ../../modules/old_configs/hypr;
};
"kitty" = {
recursive = true;
source = ../../modules/old_configs/kitty;
};
"nvim" = {
recursive = true;
source = ../../modules/old_configs/nvim;
};
"river" = {
recursive = true;
source = ../../modules/old_configs/river;
};
"swaylock" = {
recursive = true;
source = ../../modules/old_configs/swaylock;
};
"waybar" = {
recursive = true;
source = ../../modules/old_configs/waybar;
};
"wofi" = {
recursive = true;
source = ../../modules/old_configs/wofi;
};
"user-dirs.dirs".source = ../../modules/old_configs/user-dirs.dirs;
"user-dirs.locale".source = ../../modules/old_configs/user-dirs.locale;
};
wayland.windowManager.hyprland = {
enable = true;
systemd.enable = true;
xwayland.enable = true;
# extraConfig = ''
# ${builtins.readFile ./hyprland.conf}
# '';
};
# BEGIN PROGRAMS
programs = {
bash = {
enable = true;
enableCompletion = true;
enableVteIntegration = true;
initExtra =''
if [[ -z $ORIG_SHLVL ]]; then
export ORIG_SHLVL=$SHLVL
fi;
if [[ $SHLVL -gt $ORIG_SHLVL ]]; then
export PS1='\[\e[1;m\e[1;33m\e[1;m\] ($(($SHLVL - $ORIG_SHLVL))) \W\[\e[m\e[m\] 🐧 \[\e[1;32m\]~> \[\e[m\e[m\]'
else
export PS1='\[\e[1;m\e[1;33m\e[1;m\] \W\[\e[m\e[m\] 🐧 \[\e[1;32m\]~> \[\e[m\e[m\]'
fi;
set -o vi
'';
shellAliases = {
ls = "ls --color=auto";
ll = "ls -l";
la = "ls -lA";
ping = "ping -c 5";
kpx = "keepassxc-cli open";
nixbuild = "sudo nixos-rebuild switch --flake";
nixtest = "sudo nixos-rebuild test --flake";
vi = "\vim";
emacsd = "emacs --daemon";
emacsc = "emacsclient -c -a 'emacs'";
new = "source $HOME/.bashrc";
newbar = "pkill waybar; waybar &disown";
".." = "cd ..";
set-github-var = "export GITHUB=$(sed -n 2p ~/documents/.git_keys)";
set-gitlab-var = "export GITLAB=$(sed -n 4p ~/documents/.git_keys)";
};
};
emacs = {
enable = true;
package = pkgs.emacs-unstable;
extraPackages = epkgs: [
epkgs.pdf-tools
epkgs.org-pdftools
];
};
feh.enable = true;
git = {
enable = true;
diff-so-fancy.enable = true;
userEmail = "maloneliam@proton.me";
userName = "Liam Malone";
};
neovim = {
enable = true;
package = pkgs.neovim-unwrapped;
vimAlias = true;
vimdiffAlias = true;
};
obs-studio = {
enable = true;
};
swaylock.enable = true;
waybar = {
enable = true;
systemd.enable = true;
systemd.target = "hyprland-session.target";
};
wofi.enable = true;
};
# BEGIN SERVICES
services = {
blueman-applet.enable = true;
emacs = {
enable = true;
package = pkgs.emacs-unstable;
client = {
enable = true;
arguments = [
"-c"
"-a emacs"
];
};
startWithUserSession = true;
};
gnome-keyring.enable = true;
gpg-agent = {
enable = true;
defaultCacheTtl = 1800;
enableSshSupport = true;
};
nextcloud-client.enable = true;
swayidle.enable = true;
};
}