Updated personal config

This commit is contained in:
Jan-Bulthuis 2025-05-09 15:01:50 +02:00
parent 626d78f088
commit c3c61ce654

View File

@ -8,409 +8,399 @@
}: }:
{ {
config = { config = (
# State version lib.recursiveUpdate
home.stateVersion = "24.05"; {
# State version
home.stateVersion = "24.05";
# TODO: Move into modules # TODO: Move into modules
home.packages = with pkgs; [ home.packages = with pkgs; [
libreoffice-still libreoffice-still
remmina remmina
pinentry pinentry
thunderbird thunderbird
signal-desktop signal-desktop
prusa-slicer prusa-slicer
freecad-wayland freecad-wayland
inkscape inkscape
ente-auth ente-auth
bitwarden bitwarden
carla carla
]; baobab
gnome-calculator
nautilus
];
# desktop.development = "river-light"; # desktop.development = "river-light";
desktop.enable = true; desktop.enable = true;
desktop.environments = { desktop.environments = {
river-dark = { river-dark = {
name = "River Dark"; name = "River Dark";
type = "custom"; type = "custom";
config = { }; config = { };
extraConfig = { extraConfig = {
modules = { modules = {
# Desktop environment # Desktop environment
river.enable = true; river.enable = true;
waylock.enable = true; waylock.enable = true;
waybar.enable = true; waybar.enable = true;
mako.enable = true; mako.enable = true;
foot.enable = true; foot.enable = true;
rofi-rbw.enable = true; rofi-rbw.enable = true;
}; };
# TODO: Remove everything below, it is here out of convenience and should be elsewhere # TODO: Remove everything below, it is here out of convenience and should be elsewhere
xdg.portal = { xdg.portal = {
enable = true; enable = true;
config.common.default = [ config.common.default = [
"wlr" "wlr"
"gtk" "gtk"
]; ];
extraPortals = with pkgs; [ extraPortals = with pkgs; [
xdg-desktop-portal-gtk xdg-desktop-portal-gtk
xdg-desktop-portal-wlr xdg-desktop-portal-wlr
]; ];
}; };
# Color scheme # Color scheme
desktop.theming.background = { desktop.theming.background = {
# path = "unsorted/a_group_of_mountains_with_a_building_in_the_background.jpg"; # path = "unsorted/a_group_of_mountains_with_a_building_in_the_background.jpg";
path = "anime/a_colorful_buildings_with_power_lines.jpg"; # image = "anime/a_colorful_buildings_with_power_lines.jpg";
themed = true; image = {
invert = false; url = "https://i.postimg.cc/tTB3dM3T/1382899.png";
}; hash = "sha256-kStcwAtK2vxitU6uaQtZTA5iFS8k0iXkFwinY2M8wQE=";
desktop.theming.themes.catppuccin = { };
enable = true; # image = {
flavor = "mocha"; # url = "https://raw.githubusercontent.com/dharmx/walls/refs/heads/main/digital/a_couple_of_people_standing_on_a_mountain.png";
}; # hash = "sha256-SgKG090iSxwOPCGH/2ODPbwe275Zi5k0+d5Hso0mN7c=";
}; # };
}; themed = true;
river-light = { inverted = false;
name = "River Light"; };
type = "custom"; desktop.theming.themes.catppuccin = {
config = { }; enable = true;
extraConfig = { flavor = "mocha";
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 = {
# 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;
};
desktop.theming.themes.catppuccin = {
enable = true;
flavor = lib.mkForce "latte";
};
};
};
# 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";
}; };
}; };
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 # TODO: Remove everything below, it is here out of convenience and should be elsewhere
xdg.portal = { 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 = {
# path = "unsorted/a_group_of_mountains_with_a_building_in_the_background.jpg";
# image = "anime/a_cartoon_of_a_street_with_buildings.jpeg";
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;
# # Theme configuration
# desktop.theming =
# let
# fontpkgs = config.desktop.theming.fonts.pkgs;
# in
# {
# # Fonts
# fonts.serif = fontpkgs."DejaVu Serif";
# fonts.sansSerif = fontpkgs."Adwaita Sans";
# fonts.monospace = fontpkgs."Adwaita Mono";
# fonts.emoji = fontpkgs."Noto Color Emoji";
# fonts.interface = fontpkgs."Adwaita Sans";
# 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 = [
"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; enable = true;
default = false;
};
qutebrowser = {
enable = true;
default = true;
};
config.common.default = [ # Gaming
"gnome" steam.enable = true;
"gtk" # modrinth.enable = true;
]; # es-de.enable = true; # TODO: Fix, again
retroarch.enable = true;
ryujinx.enable = true;
extraPortals = with pkgs; [ # Media
xdg-desktop-portal-gnome spotify.enable = true;
xdg-desktop-portal-gtk 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"
]; ];
}; };
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 # Development
pkgs.adwaita-icon-theme neovim.enable = true;
pkgs.gnome-backgrounds vscode.enable = true;
pkgs.gnome-bluetooth docker.enable = true;
pkgs.gnome-color-manager matlab.enable = true;
pkgs.gnome-control-center mathematica.enable = true;
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 # Languages
pkgs.aisleriot haskell.enable = false;
pkgs.atomix js.enable = true;
pkgs.five-or-more nix.enable = true;
pkgs.four-in-a-row rust.enable = true;
pkgs.gnome-2048 python.enable = true;
pkgs.gnome-chess cpp.enable = true;
pkgs.gnome-klotski tex.enable = true;
pkgs.gnome-mahjongg jupyter.enable = true;
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 # Enable unfree
pkgs.cantarell-fonts unfree.enable = true;
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
];
}; };
};
};
# Pipewire roc sink # Theme configuration
xdg.configFile."pipewire/pipewire.conf.d/60-roc-sink.conf" = { desktop.theming =
text = '' let
context.modules = [ fontpkgs = config.desktop.theming.fonts.pkgs;
{ in
name = "libpipewire-module-roc-sink" lib.mkDefault {
args = { # Fonts
fec.code = "rs8m" fonts.serif = fontpkgs."DejaVu Serif";
remote.ip = "10.20.60.251" fonts.sansSerif = fontpkgs."DejaVu Sans";
remote.source.port = 10001 fonts.monospace = fontpkgs."Dina";
remote.repair.port = 10002 fonts.emoji = fontpkgs."Noto Color Emoji";
sink.name = "Roc Sink" fonts.interface = fontpkgs."Dina";
sink.props.node.name = "roc-sink" fonts.extraFonts = [ ];
}
}
]
'';
};
# Enabled modules # Color scheme
modules = { themes.catppuccin = {
# Communication enable = true;
whatsapp.enable = true; flavor = "mocha";
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 = 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 # Default desktop environment
fonts.serif = fontpkgs."DejaVu Serif"; modules = {
fonts.sansSerif = fontpkgs."DejaVu Sans"; # Desktop environment
fonts.monospace = fontpkgs."Dina"; river.enable = true;
fonts.emoji = fontpkgs."Noto Color Emoji"; waylock.enable = true;
fonts.interface = fontpkgs."Dina"; waybar.enable = true;
fonts.extraFonts = [ ]; 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 # Color scheme
themes.catppuccin = { desktop.theming.background = lib.mkDefault {
# path = "unsorted/a_group_of_mountains_with_a_building_in_the_background.jpg";
# image = "anime/a_colorful_buildings_with_power_lines.jpg";
image = {
url = "https://i.postimg.cc/tTB3dM3T/1382899.png";
hash = "sha256-kStcwAtK2vxitU6uaQtZTA5iFS8k0iXkFwinY2M8wQE=";
};
# image = {
# url = "https://raw.githubusercontent.com/dharmx/walls/refs/heads/main/digital/a_couple_of_people_standing_on_a_mountain.png";
# hash = "sha256-SgKG090iSxwOPCGH/2ODPbwe275Zi5k0+d5Hso0mN7c=";
# };
themed = true;
inverted = false;
};
desktop.theming.themes.catppuccin = {
enable = true; enable = true;
flavor = "mocha"; flavor = "mocha";
}; };
}; }
}; );
} }