# 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 bitwarden ]; # desktop.development = "river-light"; 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.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"; }; }; # 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.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 ]; }; }; }; # 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; # 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"; }; }; }; }