dotfiles/nix/hosts/framework/home.nix

289 lines
5.3 KiB
Nix
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

{ inputs, configDir, config, pkgs, lib, ... }: {
imports = [ ../common/home.nix ];
# This value determines the NixOS release from which the default
# settings for stateful data, like file locations and database versions
# on your system were taken. Its perfectly fine and recommended to leave
# this value at the release version of the first install of this system.
# Before changing this value read the documentation for this option
# (e.g. man configuration.nix or on https://nixos.org/nixos/options.html).
home.stateVersion = "23.11"; # Did you read the comment?
home.packages = let
packages = with pkgs; [
pavucontrol
pamixer
picom
rofi
notify-desktop
pass
just
zathura
libvterm
texliveFull
flameshot
brightnessctl
pinentry-gtk2
bluez5-experimental
bluez-tools
blueman
dmenu
pipewire
dconf
mu
isync
openssl
meson
glib
stow
syncthing
nitrogen
networkmanager
nixfmt-classic
hurl
gh
libnotify
tokei
eza
typst
typst-live
gdb
ccls
clang-tools
valgrind
fzf
rofi
rofi-bluetooth
docker
awscli
bear
direnv
wasmtime
wabt
gleam
erlang
zip
framework-system-tools
niri
fuzzel
mako
waybar
swaybg
swaylock
xwayland
xwayland-satellite
gammastep
discord
steam
bitwarden
obs-studio
vlc
easyeffects
thunderbird
signal-desktop
plasma5Packages.kdeconnect-kde
(prismlauncher.override { jdks = [ jdk23 jdk17 jdk8 ]; })
tidal-hifi
zotero
mullvad-browser
networkmanagerapplet
pasystray
arandr
inkscape
zoom-us
gimp
libreoffice
peek
rofimoji
playerctl
nemo
protonmail-desktop
protonvpn-cli
protonvpn-gui
proton-pass
lutris
stremio
qbittorrent
davinci-resolve-studio
# Required by DVR
kitty
mesa-demos
vulkan-tools
clinfo
aspell
aspellDicts.en
nil
emacs30-pgtk
alacritty
alacritty-theme
emacs-lsp-booster
code-cursor
mu
msmtp
semgrep
ruff
ruff-lsp
irony-server
typescript-language-server
prettierd
jdk23
ocaml
ocamlPackages.ocaml-lsp
dune_3
opam
ocamlformat
noto-fonts
fira-code
open-sans
inter
roboto-mono
jetbrains-mono
noto-fonts-cjk-sans
libertine
roboto
font-awesome
adwaita-icon-theme
ihaskell
];
emacsPackages = with pkgs.emacsPackages; [ mu4e ];
pythonPackages = with pkgs.python312Packages; [ python-lsp-server ];
in packages ++ emacsPackages ++ pythonPackages;
home.sessionPath = [
"$HOME/.local/share/racket/8.14/bin/" # This has to be updated every time Racket updates :(
];
home.pointerCursor = {
gtk.enable = true;
x11.enable = true;
name = "Adwaita";
package = pkgs.adwaita-icon-theme;
size = 16;
};
xresources.properties = {
"Xft.antialias" = true;
"Xft.rgba" = "rgb"; # type of anti-aliasing
"Xft.hinting" = 1; # font hinting
"Xft.hintstyle" = "hintslight";
};
### Services
services.pasystray.enable = true;
services.easyeffects.enable = true;
# Compositor
services.picom = {
enable = true;
backend = "glx";
activeOpacity = 1;
inactiveOpacity = 1;
};
services.emacs = {
enable = true;
defaultEditor = true;
package = pkgs.emacs30-pgtk;
};
services.gammastep = {
enable = true;
dawnTime = "6:00-7:00";
duskTime = "20:00-21:00";
temperature = {
day = 6500;
night = 3500;
};
};
services.mako = {
enable = true;
defaultTimeout = 10000;
margin = "40,20";
};
### Programs
programs.home-manager.enable = true;
programs.mu.enable = true;
programs.git = {
enable = true;
userName = "Lucas Sta Maria";
userEmail = "lucas@priime.dev";
signing = {
key = "2EAF5BA156A36810B057BF61F07FB16A826E3B47";
signByDefault = true;
};
extraConfig = {
pull.rebase = true;
github.user = "priime0";
credential.helper = "store";
merge.conflictstyle = "zdiff3";
diff.algorithm = "histogram";
};
};
programs.direnv = {
enable = true;
enableFishIntegration = true;
nix-direnv.enable = true;
};
programs.alacritty = {
enable = true;
settings = {
terminal.shell = "fish";
font.size = 10;
font.normal = {
family = "JetBrains Mono";
style = "SemiBold";
};
font.bold = {
family = "JetBrains Mono";
style = "Bold";
};
font.italic = {
family = "JetBrains Mono";
style = "Italic";
};
font.bold_italic = {
family = "JetBrains Mono";
style = "Bold Italic";
};
};
};
programs.gh = {
enable = true;
settings.editor = "emacsclient";
};
programs.firefox = {
enable = true;
policies = { WebsiteFilter = { Block = [ "*://*.facebook.com/" ]; }; };
};
programs.swaylock = {
enable = true;
settings = {
color = "000000";
};
};
}