2024-09-19 13:01:52 -04:00

210 lines
4.0 KiB
Nix

{
pkgs,
lib,
inputs,
...
}:
{
imports = [
./no-gui.nix
# ./progs/librewolf.nix
];
nixpkgs.config.allowUnfreePredicate =
pkg:
builtins.elem (lib.getName pkg) [
"apple_cursor"
"factorio-alpha"
];
home.packages =
let
#stolen from: https://stackoverflow.com/a/42398526
optimizeWithFlags =
pkg: flags:
pkgs.lib.overrideDerivation pkg (
old:
let
newflags = pkgs.lib.foldl' (acc: x: "${acc} ${x}") "" flags;
oldflags = if (pkgs.lib.hasAttr "NIX_CFLAGS_COMPILE" old) then "${old.NIX_CFLAGS_COMPILE}" else "";
in
{
NIX_CFLAGS_COMPILE = "${oldflags} ${newflags}";
stdenv = pkgs.clangStdenv;
}
);
in
with pkgs;
[
#calculator
gnome-calculator
#productivity stuff
libreoffice
hunspell # spellcheck
hunspellDicts.en_US # spellcheck dictionary
#video and audio downloading
parabolic
#soulseek client
nicotine-plus
#dark web browsing deep web browsing
tor-browser
#audio editing
audacity
#fonts
noto-fonts
noto-fonts-emoji
liberation_ttf
nerdfonts
jetbrains-mono
#for ebook reading
foliate
#audio mixer (pavucontrol but for pipewire)
pwvucontrol
#minecraft launcher
prismlauncher
mpv
mumble
system76-keyboard-configurator
mission-center
#jellyfin
finamp # music player
delfin # jellyfin client
signal-desktop
#accounting
gnucash
imagemagick
inkscape
nomacs
nautilus
lrcget
#openstreetmap contributing
josm
easyeffects
gparted
#small nicities
wl-clipboard # wl-copy & wl-paste
libnotify # notifications library
xdg-utils # xdg utils
gnome-disk-utility
puddletag
inputs.zen-browser.packages."${pkgs.system}".specific
(factorio.override (
let
data = import ./secrets/factorio.nix;
in
{
username = data.username;
token = data.token;
}
))
(optimizeWithFlags
(pkgs.gpt4all.overrideAttrs {
src = pkgs.fetchFromGitHub {
fetchSubmodules = true;
owner = "nomic-ai";
repo = "gpt4all";
rev = "HEAD";
sha256 = "S8yWNjylDaXbOviUd7Nhk7mfT0jjBsZq7XAGX38USpc=";
};
patches = [ ./gpt4all-HEAD-embeddings-model.patch ];
})
[
"-Ofast"
"-march=native"
"-mtune=native"
"-fno-protect-parens"
"-fno-finite-math-only" # https://github.com/ggerganov/llama.cpp/pull/7154#issuecomment-2143844461
]
)
];
# make chromium-based stuff use wayland
home.file.".config/chromium-flags.conf".text = "--ozone-platform-hint=auto";
#dark mode
dconf.settings = {
"org/gnome/desktop/interface" = {
color-scheme = "prefer-dark";
};
};
home.sessionVariables = {
TERMINAL = "alacritty";
};
#Terminal emulator
programs.alacritty = {
enable = true;
package = pkgs.alacritty;
settings = import ./progs/alacritty.nix { inherit pkgs; };
};
#for trezor stuff
/*
trezor-udev-rules #trezor udev rules
trezord
trezor-suite
monero-gui
monero-cli
trezorctl
*/
#allow extra fonts to be detected by fontconfig
fonts.fontconfig.enable = true;
#gtk application theming
gtk = {
enable = true;
# make gtk3 applications look like libadwaita applications!
theme = {
package = pkgs.adw-gtk3;
name = "adw-gtk3-dark";
};
iconTheme = {
package = pkgs.adwaita-icon-theme;
name = "Adwaita";
};
};
#qt application theming
qt = {
enable = true;
style = {
name = "breeze-dark";
package = pkgs.kdePackages.breeze;
};
};
#macOS cursor!
home.pointerCursor = {
gtk.enable = true;
package = pkgs.apple-cursor;
name = "macOS";
size = 24;
};
}