371 lines
10 KiB
Nix
371 lines
10 KiB
Nix
{
|
|
lib,
|
|
config,
|
|
pkgs,
|
|
...
|
|
}:
|
|
|
|
{
|
|
config = (
|
|
lib.recursiveUpdate
|
|
{
|
|
# State version
|
|
home.stateVersion = "24.05";
|
|
|
|
# TODO: Move into modules
|
|
home.packages = with pkgs; [
|
|
libreoffice-still
|
|
remmina
|
|
pinentry
|
|
thunderbird
|
|
signal-desktop
|
|
prusa-slicer
|
|
freecad-wayland
|
|
inkscape
|
|
ente-auth
|
|
bitwarden
|
|
carla
|
|
baobab
|
|
gnome-calculator
|
|
nautilus
|
|
];
|
|
|
|
# desktop.development = "river-light";
|
|
desktop.enable = true;
|
|
desktop.environments = {
|
|
river-dark = {
|
|
name = "River Dark";
|
|
type = "custom";
|
|
config = { };
|
|
extraConfig = {
|
|
modules = {
|
|
# Desktop environment
|
|
river.enable = true;
|
|
waylock.enable = true;
|
|
waybar.enable = true;
|
|
mako.enable = true;
|
|
foot.enable = true;
|
|
rofi-rbw.enable = true;
|
|
};
|
|
|
|
# TODO: Remove everything below, it is here out of convenience and should be elsewhere
|
|
xdg.portal = {
|
|
enable = true;
|
|
|
|
config.common.default = [
|
|
"wlr"
|
|
"gtk"
|
|
];
|
|
|
|
extraPortals = with pkgs; [
|
|
xdg-desktop-portal-gtk
|
|
xdg-desktop-portal-wlr
|
|
];
|
|
};
|
|
|
|
# Color scheme
|
|
desktop.theming.background = {
|
|
image = {
|
|
url = "https://i.postimg.cc/tTB3dM3T/1382899.png";
|
|
hash = "sha256-kStcwAtK2vxitU6uaQtZTA5iFS8k0iXkFwinY2M8wQE=";
|
|
};
|
|
themed = true;
|
|
inverted = false;
|
|
};
|
|
desktop.theming.themes.catppuccin = {
|
|
enable = true;
|
|
flavor = "mocha";
|
|
};
|
|
};
|
|
};
|
|
river-light = {
|
|
name = "River Light";
|
|
type = "custom";
|
|
config = { };
|
|
extraConfig = {
|
|
modules = {
|
|
# Desktop environment
|
|
river.enable = true;
|
|
waylock.enable = true;
|
|
waybar.enable = true;
|
|
mako.enable = true;
|
|
foot.enable = true;
|
|
rofi-rbw.enable = true;
|
|
};
|
|
|
|
# TODO: Remove everything below, it is here out of convenience and should be elsewhere
|
|
xdg.portal = {
|
|
enable = true;
|
|
|
|
config.common.default = [
|
|
"wlr"
|
|
"gtk"
|
|
];
|
|
|
|
extraPortals = with pkgs; [
|
|
xdg-desktop-portal-gtk
|
|
xdg-desktop-portal-wlr
|
|
];
|
|
};
|
|
|
|
# Color scheme
|
|
desktop.theming.background = {
|
|
image = {
|
|
url = "https://raw.githubusercontent.com/dharmx/walls/refs/heads/main/digital/a_drawing_of_a_spider_on_a_white_surface.png";
|
|
hash = "sha256-eCEjM7R9yeHNhZZtvHjrgkfwT25JA7FeMoVwnQ887CQ=";
|
|
};
|
|
themed = true;
|
|
inverted = false;
|
|
};
|
|
desktop.theming.themes.catppuccin = {
|
|
enable = true;
|
|
flavor = lib.mkForce "latte";
|
|
};
|
|
};
|
|
};
|
|
gnome = {
|
|
name = "Gnome";
|
|
type = "custom";
|
|
config = { };
|
|
extraConfig = {
|
|
programs = {
|
|
gnome-shell.enable = true;
|
|
};
|
|
desktop = {
|
|
initScript = ''
|
|
${pkgs.gnome-session}/bin/gnome-session
|
|
'';
|
|
session = {
|
|
type = "wayland";
|
|
desktop = "GNOME";
|
|
};
|
|
};
|
|
modules.river.enable = lib.mkForce false;
|
|
|
|
# TODO: Remove everything below, it is here out of convenience and should be elsewhere
|
|
xdg.portal = {
|
|
enable = true;
|
|
|
|
config.common.default = [
|
|
"gnome"
|
|
"gtk"
|
|
];
|
|
|
|
extraPortals = with pkgs; [
|
|
xdg-desktop-portal-gnome
|
|
xdg-desktop-portal-gtk
|
|
];
|
|
};
|
|
home.packages = [
|
|
# Core utilities
|
|
pkgs.epiphany
|
|
pkgs.gnome-text-editor
|
|
pkgs.gnome-calendar
|
|
pkgs.gnome-characters
|
|
pkgs.gnome-clocks
|
|
pkgs.gnome-console
|
|
pkgs.gnome-contacts
|
|
pkgs.gnome-font-viewer
|
|
pkgs.gnome-logs
|
|
pkgs.gnome-maps
|
|
pkgs.gnome-music
|
|
pkgs.gnome-system-monitor
|
|
pkgs.gnome-weather
|
|
pkgs.loupe
|
|
pkgs.gnome-connections
|
|
pkgs.simple-scan
|
|
pkgs.snapshot
|
|
pkgs.totem
|
|
pkgs.yelp
|
|
|
|
# Optional packages
|
|
pkgs.adwaita-icon-theme
|
|
pkgs.gnome-backgrounds
|
|
pkgs.gnome-bluetooth
|
|
pkgs.gnome-color-manager
|
|
pkgs.gnome-control-center
|
|
pkgs.gnome-shell-extensions
|
|
pkgs.gnome-tour # GNOME Shell detects the .desktop file on first log-in.
|
|
pkgs.gnome-user-docs
|
|
pkgs.glib # for gsettings program
|
|
pkgs.gnome-menus
|
|
pkgs.gtk3.out # for gtk-launch program
|
|
pkgs.xdg-user-dirs # Update user dirs as described in https://freedesktop.org/wiki/Software/xdg-user-dirs/
|
|
pkgs.xdg-user-dirs-gtk # Used to create the default bookmarks
|
|
|
|
# Fonts
|
|
pkgs.cantarell-fonts
|
|
pkgs.dejavu_fonts
|
|
pkgs.source-code-pro # Default monospace font in 3.32
|
|
pkgs.source-sans
|
|
|
|
# Other stuff
|
|
pkgs.gnome-session
|
|
];
|
|
};
|
|
};
|
|
};
|
|
|
|
# Pipewire roc sink
|
|
xdg.configFile."pipewire/pipewire.conf.d/60-roc-sink.conf" = {
|
|
text = ''
|
|
context.modules = [
|
|
{
|
|
name = "libpipewire-module-roc-sink"
|
|
args = {
|
|
fec.code = "rs8m"
|
|
remote.ip = "10.20.60.251"
|
|
remote.source.port = 10001
|
|
remote.repair.port = 10002
|
|
sink.name = "Roc Sink"
|
|
sink.props.node.name = "roc-sink"
|
|
}
|
|
}
|
|
]
|
|
'';
|
|
};
|
|
|
|
# Enabled modules
|
|
modules = {
|
|
# Communication
|
|
whatsapp.enable = true;
|
|
discord.enable = true;
|
|
|
|
# Browser
|
|
firefox = {
|
|
enable = true;
|
|
default = false;
|
|
};
|
|
qutebrowser = {
|
|
enable = true;
|
|
default = true;
|
|
};
|
|
|
|
# Gaming
|
|
steam.enable = true;
|
|
# modrinth.enable = true;
|
|
# es-de.enable = true; # TODO: Fix, again
|
|
retroarch.enable = true;
|
|
ryujinx.enable = true;
|
|
|
|
# Media
|
|
spotify.enable = true;
|
|
feishin.enable = true;
|
|
|
|
# Tools
|
|
git = {
|
|
enable = true;
|
|
user = "Jan-Bulthuis";
|
|
email = "git@bulthuis.dev";
|
|
# TODO: Move
|
|
ignores = [
|
|
".envrc"
|
|
".direnv"
|
|
"flake.nix"
|
|
"flake.lock"
|
|
];
|
|
};
|
|
btop.enable = true;
|
|
fish.enable = true;
|
|
bluetuith.enable = false;
|
|
winbox.enable = true;
|
|
obsidian.enable = true;
|
|
zathura.enable = true;
|
|
eduvpn.enable = true;
|
|
keyring.enable = true;
|
|
scripts.enable = true;
|
|
xpra = {
|
|
enable = true;
|
|
hosts = [
|
|
"mixer@10.20.60.251"
|
|
];
|
|
};
|
|
|
|
# Development
|
|
neovim.enable = true;
|
|
vscode.enable = true;
|
|
docker.enable = true;
|
|
matlab.enable = true;
|
|
mathematica.enable = true;
|
|
|
|
# Languages
|
|
haskell.enable = false;
|
|
js.enable = true;
|
|
nix.enable = true;
|
|
rust.enable = true;
|
|
python.enable = true;
|
|
cpp.enable = true;
|
|
tex.enable = true;
|
|
jupyter.enable = true;
|
|
|
|
# Enable unfree
|
|
unfree.enable = true;
|
|
};
|
|
|
|
# Theme configuration
|
|
desktop.theming =
|
|
let
|
|
fontpkgs = config.desktop.theming.fonts.pkgs;
|
|
in
|
|
lib.mkDefault {
|
|
# Fonts
|
|
fonts.serif = fontpkgs."DejaVu Serif";
|
|
fonts.sansSerif = fontpkgs."DejaVu Sans";
|
|
fonts.monospace = fontpkgs."Dina";
|
|
fonts.emoji = fontpkgs."Noto Color Emoji";
|
|
fonts.interface = fontpkgs."Dina";
|
|
fonts.extraFonts = [ ];
|
|
|
|
# Color scheme
|
|
themes.catppuccin = {
|
|
enable = true;
|
|
flavor = "mocha";
|
|
};
|
|
};
|
|
}
|
|
{
|
|
# Default desktop environment
|
|
modules = {
|
|
# Desktop environment
|
|
river.enable = true;
|
|
waylock.enable = true;
|
|
waybar.enable = true;
|
|
mako.enable = true;
|
|
foot.enable = true;
|
|
rofi-rbw.enable = true;
|
|
};
|
|
|
|
# TODO: Remove everything below, it is here out of convenience and should be elsewhere
|
|
xdg.portal = {
|
|
enable = true;
|
|
|
|
config.common.default = lib.mkDefault [
|
|
"wlr"
|
|
"gtk"
|
|
];
|
|
|
|
extraPortals =
|
|
with pkgs;
|
|
lib.mkDefault [
|
|
xdg-desktop-portal-gtk
|
|
xdg-desktop-portal-wlr
|
|
];
|
|
};
|
|
|
|
# Color scheme
|
|
desktop.theming.background = lib.mkDefault {
|
|
image = {
|
|
url = "https://i.postimg.cc/tTB3dM3T/1382899.png";
|
|
hash = "sha256-kStcwAtK2vxitU6uaQtZTA5iFS8k0iXkFwinY2M8wQE=";
|
|
};
|
|
themed = true;
|
|
inverted = false;
|
|
};
|
|
desktop.theming.themes.catppuccin = {
|
|
enable = true;
|
|
flavor = "mocha";
|
|
};
|
|
}
|
|
);
|
|
}
|