nix-dotfiles/home.nix
2024-03-11 22:29:23 -04:00

156 lines
4.3 KiB
Nix

{ config, lib, pkgs, ... }:
let
scripts = ./scripts;
extra = ./extra;
terminal = pkgs.alacritty;
in
{
home.username = "alice";
home.homeDirectory = "/home/alice";
home.stateVersion = "23.11";
# Configure cursor
home.pointerCursor = {
package = pkgs.vanilla-dmz;
name = "Vanilla-DMZ";
size = 256;
};
# Configure icon theme
gtk = {
enable = true;
iconTheme = {
name = "Papirus";
package = pkgs.papirus-icon-theme;
};
};
# Install packages
home.packages = with pkgs;
[ gcc tree-sitter ] ++ # Basic dev tools
[ texliveFull ] ++ # Typesetting
(with ocamlPackages; [ ocaml opam dune_3 dune-release merlin ocaml-lsp odoc ocamlformat utop ]) ++ # OCaml
[ python3 ] ++ # I guess.....
[ julia ] ++ # Julia
[ nil ] ++ # Nix tools
[ grim slurp wl-clipboard jq (callPackage ./pkgs/xdg-terminal-exec/xdg-terminal-exec.nix {}) blueman ] ++ # Basic utilities
[ bitwarden-cli ] ++ # Personalized selection of command-line (CLI/TUI) apps
[ terminal ] ++ # Terminal emulator
[ firefox cinnamon.nemo gnome.file-roller cinnamon.nemo-fileroller imv vlc pavucontrol ] ++ # Basic graphical apps
[ libreoffice signal-desktop element-desktop prismlauncher mumble gimp inkscape deluge-gtk ] ++ # Personalized selection of graphical apps
[ (callPackage ./pkgs/mons/mons.nix {}) ] ++ # Games
[ swaybg bemenu j4-dmenu-desktop fcitx5-with-addons ] ++ # Sway- and Wayland-related packages
[ noto-fonts redhat-official-fonts overpass ibm-plex font-awesome ] ++ # Fonts
[ kak-lsp ] ++
# [ papirus-icon-theme ] ++ # Icons
# [ vanilla-dmz ] ++ # Cursor
[ ] ++ # Temp
[ ];
programs.home-manager.enable = true;
# Enabling bash from home-manager means environment variables set by HM get set correctly
programs.bash = {
enable = true;
profileExtra = ''
export VISUAL=nvim
# Enable fcitx for sway
export GTK_IM_MODULE=fcitx
export QT_IM_MODULE=fcitx
export XMODIFIERS=@im=fcitx
# If running from tty1 start sway
[ "$(tty)" = "/dev/tty1" ] && exec sway
'';
};
programs.git = {
enable = true;
userName = "vorboyvo";
userEmail = "mrsirofvibe@outlook.com";
extraConfig = { init.defaultBranch = "main"; };
};
wayland.windowManager.sway = import ./programs/sway.nix { inherit scripts extra config lib pkgs terminal; };
programs.waybar = import ./programs/waybar.nix { inherit scripts config lib pkgs terminal; };
programs.swaylock = {
enable = true;
settings = {
font-size = 14;
};
};
services.swayidle = {
enable = true;
events = [
{ event = "before-sleep"; command = "${pkgs.lib.getExe pkgs.swaylock} -f"; }
];
};
# programs.waybar = import ./wayland/waybar.nix { inherit config lib pkgs; };
# configure fonts correctly
fonts.fontconfig.enable = true;
xdg.configFile."fontconfig/conf.d/20-default.fonts.conf".source = "${extra}/20-default-fonts.conf";
# fix nemo terminal integration
dconf.settings."org/cinnamon/desktop/applications/terminal".exec = "${pkgs.lib.getExe terminal}" ;
# dconf.settings."org/cinnamon/desktop/applications/terminal".exec-arg = "-e --cwd %F";
# terminal emulator
programs.alacritty.enable = true;
programs.neovim = import ./programs/neovim.nix;
# trying out kakoune
programs.kakoune = {
enable = true;
config = {
numberLines = {
enable = true;
highlightCursor = true;
};
hooks = [
{
name = "BufSetOption";
option = "filetype=latex";
commands = ''
set-option buffer makecmd latexmk -pvc -pdf -e '$pdf_previewer="xdg-open %S"' -e '$pdflatex="pdflatex -interaction=nonstopmode -synctex=1 %O %S"' %opt{documentsrc}
'';
}
];
};
extraConfig = ''
eval %sh{kak-lsp --kakoune -s $kak_session}
lsp-enable
'';
};
xdg.config."kak-lsp/kak-lsp.toml".source = ./programs/kakoune/kak-lsp.toml;
programs.zathura = {
enable = true;
};
programs.pandoc = {
enable = true;
};
# Configure notifications
services.dunst = {
enable = true;
settings = {
global.font = "Red Hat Display 12";
};
};
services.batsignal = {
enable = true;
};
programs.firefox = import ./programs/firefox.nix {inherit pkgs;};
programs.thunderbird = import ./programs/thunderbird.nix;
}