289 lines
6.5 KiB
Nix
289 lines
6.5 KiB
Nix
{ config, pkgs, lib, callPackage, inputs, ... }:
|
|
|
|
{
|
|
home.username = "liamm";
|
|
home.homeDirectory = "/home/liamm";
|
|
|
|
imports = [
|
|
# home-manager
|
|
inputs.ags.homeManagerModules.default
|
|
../../modules/home-manager/dunst.nix
|
|
../../modules/home-manager/tmux.nix
|
|
../../modules/home-manager/fastfetch.nix
|
|
../../modules/home-manager/terminals/alacritty.nix
|
|
|
|
# desktop
|
|
../../modules/desktop/bluetooth.nix
|
|
../../modules/desktop/hyprland.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;
|
|
home.packages = with pkgs; [
|
|
android-studio
|
|
audacity
|
|
brave
|
|
brightnessctl
|
|
contour
|
|
dmenu
|
|
emacs-all-the-icons-fonts
|
|
emacsPackages.pdf-tools
|
|
exfatprogs
|
|
filezilla
|
|
firefox
|
|
floorp
|
|
genymotion
|
|
gimp
|
|
gnome-keyring
|
|
gnome-sound-recorder
|
|
gnome-disk-utility
|
|
gparted
|
|
gtk4
|
|
gvfs
|
|
grim
|
|
grimblast
|
|
htop
|
|
imagemagick
|
|
imhex
|
|
kdenlive
|
|
keepassxc
|
|
libsForQt5.polkit-kde-agent
|
|
libtool
|
|
libreoffice
|
|
mpv
|
|
nautilus
|
|
networkmanagerapplet
|
|
nwg-look
|
|
openvpn
|
|
pamixer
|
|
pavucontrol
|
|
picom
|
|
powertop
|
|
praat
|
|
prismlauncher
|
|
protonvpn-cli
|
|
protonvpn-gui
|
|
qbittorrent
|
|
signal-desktop
|
|
slstatus
|
|
swww
|
|
teams-for-linux
|
|
texliveFull
|
|
thunderbird
|
|
tree
|
|
unzip
|
|
wev
|
|
wl-clipboard
|
|
xclip
|
|
xdg-user-dirs
|
|
zip
|
|
];
|
|
|
|
# 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 = "emacsclient";
|
|
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;
|
|
platformTheme.name = "gtk";
|
|
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;
|
|
};
|
|
"kitty" = {
|
|
recursive = true;
|
|
source = ../../modules/old_configs/kitty;
|
|
};
|
|
"nvim" = {
|
|
recursive = true;
|
|
source = ../../modules/old_configs/nvim;
|
|
};
|
|
"river" = {
|
|
recursive = true;
|
|
source = ../../modules/old_configs/river;
|
|
};
|
|
"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;
|
|
};
|
|
# BEGIN PROGRAMS
|
|
|
|
programs = {
|
|
ags = {
|
|
enable = true;
|
|
configDir = ../../modules/home-manager/ags;
|
|
};
|
|
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
|
|
fastfetch
|
|
'';
|
|
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)";
|
|
work = "nix develop --impure";
|
|
build = "./build.sh";
|
|
};
|
|
};
|
|
emacs = {
|
|
enable = true;
|
|
package = pkgs.emacs-gtk;
|
|
extraPackages = epkgs: [
|
|
epkgs.pdf-tools
|
|
epkgs.org-pdftools
|
|
];
|
|
};
|
|
feh.enable = true;
|
|
git = {
|
|
enable = true;
|
|
lfs.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;
|
|
network-manager-applet.enable = true;
|
|
|
|
emacs = {
|
|
enable = true;
|
|
package = pkgs.emacs-gtk;
|
|
client = {
|
|
enable = true;
|
|
arguments = [
|
|
"-c"
|
|
"-a emacs"
|
|
];
|
|
};
|
|
startWithUserSession = "graphical";
|
|
};
|
|
|
|
gnome-keyring.enable = true;
|
|
|
|
gpg-agent = {
|
|
enable = true;
|
|
defaultCacheTtl = 1800;
|
|
enableSshSupport = true;
|
|
};
|
|
|
|
nextcloud-client.enable = true;
|
|
};
|
|
}
|