From c3c61ce654d828e0766c1b826888d7bab07f31ac Mon Sep 17 00:00:00 2001 From: Jan-Bulthuis Date: Fri, 9 May 2025 15:01:50 +0200 Subject: [PATCH] Updated personal config --- users/jan.nix | 748 +++++++++++++++++++++++++------------------------- 1 file changed, 369 insertions(+), 379 deletions(-) diff --git a/users/jan.nix b/users/jan.nix index 1e78940..1507bf1 100644 --- a/users/jan.nix +++ b/users/jan.nix @@ -8,409 +8,399 @@ }: { - config = { - # State version - home.stateVersion = "24.05"; + 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 - ]; + # 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; - }; + # 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; + # TODO: Remove everything below, it is here out of convenience and should be elsewhere + xdg.portal = { + enable = true; - config.common.default = [ - "wlr" - "gtk" - ]; + config.common.default = [ + "wlr" + "gtk" + ]; - extraPortals = with pkgs; [ - xdg-desktop-portal-gtk - xdg-desktop-portal-wlr - ]; - }; + 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_colorful_buildings_with_power_lines.jpg"; - themed = true; - invert = 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 = { - # 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"; + # Color scheme + desktop.theming.background = { + # 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; + 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 = { + # 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"; + # 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; + default = false; + }; + qutebrowser = { + enable = true; + default = true; + }; - config.common.default = [ - "gnome" - "gtk" - ]; + # Gaming + steam.enable = true; + # modrinth.enable = true; + # es-de.enable = true; # TODO: Fix, again + retroarch.enable = true; + ryujinx.enable = true; - extraPortals = with pkgs; [ - xdg-desktop-portal-gnome - xdg-desktop-portal-gtk + # 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" ]; }; - 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 + # Development + neovim.enable = true; + vscode.enable = true; + docker.enable = true; + matlab.enable = true; + mathematica.enable = true; - # 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 + # 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; - # 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 - ]; + # Enable unfree + unfree.enable = true; }; - }; - }; - # 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" - } - } - ] - ''; - }; + # 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 = [ ]; - # 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 = 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 + # Color scheme + themes.catppuccin = { + enable = true; + flavor = "mocha"; + }; + }; + } { - # 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 = [ ]; + # 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 - 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; flavor = "mocha"; }; - }; - }; + } + ); }