386 lines
9.2 KiB
Nix
386 lines
9.2 KiB
Nix
# How Jan likes his linux to be configured
|
|
|
|
{
|
|
lib,
|
|
config,
|
|
pkgs,
|
|
...
|
|
}:
|
|
|
|
{
|
|
config = {
|
|
# 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
|
|
];
|
|
|
|
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.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.themes.catppuccin = {
|
|
enable = true;
|
|
flavor = lib.mkForce "latte";
|
|
};
|
|
};
|
|
};
|
|
cosmic = {
|
|
name = "Cosmic";
|
|
type = "custom";
|
|
config = { };
|
|
extraConfig = {
|
|
desktop = {
|
|
initScript = ''
|
|
${pkgs.dbus}/bin/dbus-run-session ${pkgs.cosmic-session}/bin/cosmic-session
|
|
'';
|
|
session = {
|
|
type = "wayland";
|
|
desktop = "cosmic";
|
|
};
|
|
};
|
|
home.packages = with pkgs; [
|
|
adwaita-icon-theme
|
|
alsa-utils
|
|
cosmic-applets
|
|
cosmic-applibrary
|
|
cosmic-bg
|
|
(cosmic-comp.override {
|
|
useXWayland = false;
|
|
})
|
|
cosmic-edit
|
|
cosmic-files
|
|
cosmic-greeter
|
|
cosmic-icons
|
|
cosmic-idle
|
|
cosmic-launcher
|
|
cosmic-notifications
|
|
cosmic-osd
|
|
cosmic-panel
|
|
cosmic-player
|
|
cosmic-randr
|
|
cosmic-screenshot
|
|
cosmic-session
|
|
cosmic-settings
|
|
cosmic-settings-daemon
|
|
cosmic-term
|
|
cosmic-wallpapers
|
|
cosmic-workspaces-epoch
|
|
hicolor-icon-theme
|
|
playerctl
|
|
pop-icon-theme
|
|
pop-launcher
|
|
xdg-user-dirs
|
|
xwayland
|
|
cosmic-store
|
|
|
|
# Fonts
|
|
fira
|
|
noto-fonts
|
|
open-sans
|
|
];
|
|
|
|
xdg.portal = {
|
|
enable = true;
|
|
extraPortals = with pkgs; [
|
|
xdg-desktop-portal-cosmic
|
|
xdg-desktop-portal-gtk
|
|
];
|
|
configPackages = lib.mkDefault (with pkgs; [ xdg-desktop-portal-cosmic ]);
|
|
};
|
|
|
|
};
|
|
};
|
|
gnome = {
|
|
name = "Gnome";
|
|
type = "custom";
|
|
config = { };
|
|
extraConfig = {
|
|
programs = {
|
|
gnome-shell.enable = true;
|
|
};
|
|
desktop = {
|
|
initScript = ''
|
|
${pkgs.dbus}/bin/dbus-run-session ${pkgs.gnome-session}/bin/gnome-session
|
|
'';
|
|
session = {
|
|
type = "wayland";
|
|
desktop = "GNOME";
|
|
};
|
|
};
|
|
home.packages = [
|
|
# Core utilities
|
|
pkgs.baobab
|
|
pkgs.epiphany
|
|
pkgs.gnome-text-editor
|
|
pkgs.gnome-calculator
|
|
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.nautilus
|
|
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
|
|
|
|
# Games
|
|
pkgs.aisleriot
|
|
pkgs.atomix
|
|
pkgs.five-or-more
|
|
pkgs.four-in-a-row
|
|
pkgs.gnome-2048
|
|
pkgs.gnome-chess
|
|
pkgs.gnome-klotski
|
|
pkgs.gnome-mahjongg
|
|
pkgs.gnome-mines
|
|
pkgs.gnome-nibbles
|
|
pkgs.gnome-robots
|
|
pkgs.gnome-sudoku
|
|
pkgs.gnome-taquin
|
|
pkgs.gnome-tetravex
|
|
pkgs.hitori
|
|
pkgs.iagno
|
|
pkgs.lightsoff
|
|
pkgs.quadrapassel
|
|
pkgs.swell-foop
|
|
pkgs.tali
|
|
|
|
# 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
|
|
# pkgs.gnome-session.sessions
|
|
];
|
|
};
|
|
};
|
|
};
|
|
|
|
# Desktop environments
|
|
# desktop.environments =
|
|
# let
|
|
# in
|
|
# [
|
|
# {
|
|
# name = "river";
|
|
# type = "custom";
|
|
# config = { };
|
|
# extraConfig = {
|
|
# home.packages = with pkgs; [ cowsay ];
|
|
# };
|
|
# }
|
|
# ];
|
|
|
|
# Enabled modules
|
|
modules = {
|
|
# Communication
|
|
whatsapp.enable = true;
|
|
discord.enable = true;
|
|
|
|
# Browser
|
|
firefox = {
|
|
enable = true;
|
|
default = true;
|
|
};
|
|
qutebrowser = {
|
|
enable = true;
|
|
default = false;
|
|
};
|
|
|
|
# Gaming
|
|
steam.enable = true;
|
|
modrinth.enable = true;
|
|
es-de.enable = true;
|
|
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;
|
|
|
|
# Development
|
|
neovim.enable = true;
|
|
vscode.enable = true;
|
|
docker.enable = true;
|
|
matlab.enable = true;
|
|
mathematica.enable = false;
|
|
|
|
# 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
|
|
{
|
|
# 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";
|
|
};
|
|
};
|
|
|
|
# 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
|
|
];
|
|
};
|
|
|
|
};
|
|
}
|