dotfiles/users/jan.nix

428 lines
11 KiB
Nix
Raw 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
2025-02-27 10:13:33 +00:00
bitwarden
2025-04-18 19:49:36 +00:00
carla
2024-12-01 23:58:01 +00:00
];
2025-02-27 10:13:33 +00:00
# desktop.development = "river-light";
desktop.enable = true;
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
2025-02-27 10:13:33 +00:00
desktop.theming.background = {
# path = "unsorted/a_group_of_mountains_with_a_building_in_the_background.jpg";
path = "anime/a_colorful_buildings_with_power_lines.jpg";
themed = true;
invert = false;
};
2025-02-23 13:53:11 +00:00
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
2025-02-27 10:13:33 +00:00
desktop.theming.background = {
# path = "unsorted/a_group_of_mountains_with_a_building_in_the_background.jpg";
path = "anime/a_cartoon_of_a_street_with_buildings.jpeg";
themed = true;
invert = false;
};
2025-02-23 13:53:11 +00:00
desktop.theming.themes.catppuccin = {
enable = true;
flavor = lib.mkForce "latte";
};
};
};
2025-02-27 10:13:33 +00:00
# cosmic = {
# name = "Cosmic";
# type = "custom";
# config = { };
# extraConfig = {
# desktop = {
# initScript = ''
# ${pkgs.cosmic-session}/bin/cosmic-session
# '';
# session = {
# type = "wayland";
# desktop = "cosmic";
# };
# };
# # TODO: Remove everything below, it is here out of convenience and should be elsewhere
# xdg.portal = {
# enable = true;
# config.common.default = [
# "cosmic"
# "gtk"
# ];
# extraPortals = with pkgs; [
# xdg-desktop-portal-cosmic
# xdg-desktop-portal-gtk
# ];
# configPackages = lib.mkDefault (with pkgs; [ xdg-desktop-portal-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
# ];
# };
# };
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";
};
};
2025-02-27 10:13:33 +00:00
# TODO: Remove everything below, it is here out of convenience and should be elsewhere
xdg.portal = {
enable = true;
2025-02-27 10:13:33 +00:00
config.common.default = [
"gnome"
"gtk"
];
2025-02-27 10:13:33 +00:00
extraPortals = with pkgs; [
xdg-desktop-portal-gnome
xdg-desktop-portal-gtk
];
};
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
2025-02-27 10:13:33 +00:00
# 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
2025-02-27 10:13:33 +00:00
# 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
2025-02-27 10:13:33 +00:00
# Fonts
pkgs.cantarell-fonts
pkgs.dejavu_fonts
pkgs.source-code-pro # Default monospace font in 3.32
pkgs.source-sans
2025-02-27 10:13:33 +00:00
# Other stuff
pkgs.gnome-session
# pkgs.gnome-session.sessions
];
};
};
2025-02-23 13:53:11 +00:00
};
2025-04-17 12:48:22 +00:00
# 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
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;
2025-02-27 10:13:33 +00:00
default = false;
2024-07-20 04:10:56 +00:00
};
2024-12-01 23:58:01 +00:00
qutebrowser = {
enable = true;
2025-02-27 10:13:33 +00:00
default = true;
2024-12-01 23:58:01 +00:00
};
# Gaming
steam.enable = true;
2025-01-23 23:28:22 +00:00
modrinth.enable = true;
# es-de.enable = true; # TODO: Fix, again
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;
2025-04-17 00:17:38 +00:00
wprs = {
enable = true;
hosts = {
"mixer@10.20.60.251" = [
{
name = "Carla";
2025-04-18 19:49:36 +00:00
command = "carla -platform xcb";
2025-04-17 00:17:38 +00:00
}
];
};
};
2025-04-18 19:49:36 +00:00
xpra = {
enable = true;
hosts = [
"mixer@10.20.60.251"
];
};
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-18 04:08:27 +00:00
}