dotfiles/users/jan.nix

386 lines
9.2 KiB
Nix
Raw Permalink Normal View History

2024-07-18 04:08:27 +00:00
# How Jan likes his linux to be configured
2025-02-23 13:53:11 +00:00
{
lib,
config,
pkgs,
...
}:
{
config = {
2024-07-18 04:08:27 +00:00
# State version
home.stateVersion = "24.05";
2024-09-02 18:03:39 +00:00
# TODO: Move into modules
2024-12-01 23:58:01 +00:00
home.packages = with pkgs; [
libreoffice-still
remmina
pinentry
thunderbird
signal-desktop
2025-01-23 23:28:22 +00:00
prusa-slicer
freecad-wayland
2025-02-02 13:09:09 +00:00
inkscape
2025-02-08 20:52:28 +00:00
ente-auth
2024-12-01 23:58:01 +00:00
];
2025-02-23 13:53:11 +00:00
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
];
};
};
};
2025-02-17 14:06:20 +00:00
# Desktop environments
2025-02-23 13:53:11 +00:00
# desktop.environments =
2025-02-17 14:38:32 +00:00
# let
# in
2025-02-23 13:53:11 +00:00
# [
# {
# name = "river";
2025-02-17 14:38:32 +00:00
# type = "custom";
# config = { };
2025-02-23 13:53:11 +00:00
# extraConfig = {
# home.packages = with pkgs; [ cowsay ];
# };
# }
# ];
2024-09-02 18:03:39 +00:00
# Enabled modules
2024-07-18 04:08:27 +00:00
modules = {
2024-12-01 23:58:01 +00:00
# Communication
2024-09-02 18:03:39 +00:00
whatsapp.enable = true;
2024-07-18 11:48:49 +00:00
discord.enable = true;
2024-12-01 23:58:01 +00:00
# Browser
firefox = {
2024-07-20 04:10:56 +00:00
enable = true;
default = true;
};
2024-12-01 23:58:01 +00:00
qutebrowser = {
enable = true;
default = false;
};
# Gaming
steam.enable = true;
2025-01-23 23:28:22 +00:00
modrinth.enable = true;
2025-02-17 13:53:20 +00:00
es-de.enable = true;
2025-01-28 23:07:45 +00:00
retroarch.enable = true;
2025-01-26 12:28:36 +00:00
ryujinx.enable = true;
2024-12-01 23:58:01 +00:00
# Media
spotify.enable = true;
2025-01-24 02:05:34 +00:00
feishin.enable = true;
2024-12-01 23:58:01 +00:00
# Tools
git = {
enable = true;
user = "Jan-Bulthuis";
email = "git@bulthuis.dev";
2025-02-15 15:28:38 +00:00
# TODO: Move
ignores = [
".envrc"
".direnv"
"flake.nix"
"flake.lock"
];
2024-12-01 23:58:01 +00:00
};
btop.enable = true;
fish.enable = true;
bluetuith.enable = false;
winbox.enable = true;
obsidian.enable = true;
2024-12-01 23:58:01 +00:00
zathura.enable = true;
2025-01-28 08:03:45 +00:00
eduvpn.enable = true;
2025-01-28 09:42:20 +00:00
keyring.enable = true;
2025-02-15 15:28:38 +00:00
scripts.enable = true;
2024-07-19 11:59:26 +00:00
2024-12-01 23:58:01 +00:00
# Development
neovim.enable = true;
vscode.enable = true;
2025-01-23 23:28:22 +00:00
docker.enable = true;
2025-01-26 11:57:38 +00:00
matlab.enable = true;
2025-02-12 03:09:08 +00:00
mathematica.enable = false;
2024-12-01 23:58:01 +00:00
# Languages
haskell.enable = false;
js.enable = true;
2024-07-19 11:59:26 +00:00
nix.enable = true;
rust.enable = true;
2024-12-01 23:58:01 +00:00
python.enable = true;
cpp.enable = true;
tex.enable = true;
jupyter.enable = true;
2024-07-18 11:48:49 +00:00
# Enable unfree
unfree.enable = true;
2024-07-18 04:08:27 +00:00
};
# Theme configuration
2025-02-17 14:06:20 +00:00
desktop.theming =
2024-07-19 12:00:55 +00:00
let
2025-02-17 14:38:32 +00:00
fontpkgs = config.desktop.theming.fonts.pkgs;
2024-07-19 12:00:55 +00:00
in
{
# Fonts
fonts.serif = fontpkgs."DejaVu Serif";
fonts.sansSerif = fontpkgs."DejaVu Sans";
fonts.monospace = fontpkgs."Dina";
2024-12-01 23:58:01 +00:00
fonts.emoji = fontpkgs."Noto Color Emoji";
2025-01-24 01:26:24 +00:00
fonts.interface = fontpkgs."Dina";
2024-07-19 12:00:55 +00:00
fonts.extraFonts = [ ];
# Color scheme
themes.catppuccin = {
2025-01-23 23:28:22 +00:00
enable = true;
flavor = "mocha";
2024-07-19 12:00:55 +00:00
};
};
2024-07-19 19:54:41 +00:00
# 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
];
};
2025-02-23 13:53:11 +00:00
};
2024-07-18 04:08:27 +00:00
}