Add Jan UI and selective Flatpak options

- Expose Jan as a core package and add a Hyprland shortcut (Mod + J). -
Refactor Flatpak module to provide per‑package enable options; default
package list is now empty. - Update librewolf search template to use a
single‑parameter URL. - Minor comment formatting changes across host
module files.
This commit is contained in:
2025-11-27 11:21:59 +01:00
parent d80266e89a
commit 8d3fd7dbe2
10 changed files with 266 additions and 280 deletions

View File

@@ -2,65 +2,55 @@ _: {
/*
Development editors and IDEs
*/
# VSCodium: a free and open-source "demicrosofted" VSCode
vscodium.enable = false;
# Zed Editor: a modern, highperformance code editor
vscodium.enable = false; # VSCodium: a free and open-source "demicrosofted" VSCode
zed-editor = {
# Enable Zed Editor
enable = true;
# Remote Server: enable remote editing capabilities
remote-server = true;
enable = true; # Zed Editor: a modern, highperformance code editor
remote-server = true; # Remote Server: enable remote editing capabilities
};
/*
Web browsers
*/
# Librewolf: a privacy-focused Firefox fork
librewolf.enable = true;
# Ungoogled Chromium: a privacy-focused Chromium fork
ungoogled-chromium.enable = true;
librewolf.enable = true; # Librewolf: a privacy-focused Firefox fork
ungoogled-chromium.enable = true; # Ungoogled Chromium: a privacy-focused Chromium fork
/*
System utilities
*/
# Btop: a resource monitor for the terminal
btop.enable = true;
# Cava: terminal audio visualizer
cava.enable = false;
# Fastfetch: a fast system information tool
fastfetch.enable = true;
btop.enable = true; # Btop: a resource monitor for the terminal
cava.enable = false; # Cava: terminal audio visualizer
fastfetch.enable = true; # Fastfetch: a fast system information tool
/*
Communication and synchronization
*/
# KDE Connect: integrate your phone and desktop
kdeconnect.enable = false;
# Nextcloud Client: sync files with a Nextcloud server
nextcloud-client.enable = true;
# Vesktop: a communitydriven Discord client
vesktop.enable = true;
kdeconnect.enable = false; # KDE Connect: integrate your phone and desktop
nextcloud-client.enable = true; # Nextcloud Client: sync files with a Nextcloud server
vesktop.enable = true; # Vesktop: a communitydriven Discord client
/*
Gaming
*/
# Lutris: an open gaming platform
lutris.enable = false;
lutris.enable = false; # Lutris: an open gaming platform
/*
Media recording and streaming
*/
# OBS Studio: streaming and recording software
obs-studio.enable = false;
obs-studio.enable = false; # OBS Studio: streaming and recording software
/*
Office suite
*/
# OnlyOffice: an office suite compatible with Microsoft formats
onlyoffice.enable = true;
onlyoffice.enable = true; # OnlyOffice: an office suite compatible with Microsoft formats
/*
Learning tools
*/
# Anki: spacedrepetition flashcard program
anki.enable = true;
anki.enable = true; # Anki: spacedrepetition flashcard program
}

View File

@@ -2,86 +2,89 @@ _: {
/*
Container & Packaging
*/
# Docker: container runtime and management
docker.enable = true;
# Distrobox: containerized development environments
distrobox.enable = false;
# Flatpak: universal packaging system for Linux
flatpak.enable = true;
# Lazydocker: simple TUI for Docker
lazydocker.enable = false;
docker.enable = true; # Docker: container runtime and management
distrobox.enable = false; # Distrobox: containerized development environments
flatpak = {
enable = true; # Flatpak: universal packaging system for Linux
packages = {
sober = true; # Enable Roblox Client
warehouse = true; # Enable Flatpak manager
flatseal = true; # Enable Flatpak permissions manager
};
};
lazydocker.enable = false; # Lazydocker: simple TUI for Docker
/*
Gaming
*/
# GameMode: optimizes system performance for gaming
gamemode.enable = true;
# Gamescope: micro-compositor for games
gamescope.enable = false;
# Prism Launcher: Minecraft modded launcher
prismlauncher.enable = false;
# Steam: platform for buying and playing games
steam.enable = true;
# SpaceCadet Pinball: classic pinball game
spaceCadetPinball.enable = true;
# TTY Solitaire: terminal based solitaire game
ttySolitaire.enable = true;
gamemode.enable = true; # GameMode: optimizes system performance for gaming
gamescope.enable = false; # Gamescope: micro-compositor for games
prismlauncher.enable = false; # Prism Launcher: Minecraft modded launcher
steam.enable = true; # Steam: platform for buying and playing games
spaceCadetPinball.enable = true; # SpaceCadet Pinball: classic pinball game
ttySolitaire.enable = true; # TTY Solitaire: terminal based solitaire game
/*
Development Tools
*/
# Exercism: coding practice platform
exercism.enable = true;
# Gedit: GNOME text editor
gedit.enable = false;
# Lazygit: simple TUI for git
lazygit.enable = false;
# OpenCode: tools for coding and development
opencode.enable = true;
exercism.enable = true; # Exercism: coding practice platform
gedit.enable = false; # Gedit: GNOME text editor
lazygit.enable = false; # Lazygit: simple TUI for git
opencode.enable = true; # OpenCode: tools for coding and development
jan.enable = true; # Jan: AI chat UI
/*
Communication & Collaboration
*/
# Mattermost: open-source Slack alternative
mattermost.enable = true;
# Slack: team communication and collaboration tool
slack.enable = true;
# Tutanota: secure email client
tutanota.enable = true;
mattermost.enable = true; # Mattermost: open-source Slack alternative
slack.enable = true; # Slack: team communication and collaboration tool
tutanota.enable = true; # Tutanota: secure email client
/*
Productivity / Knowledge Management
*/
# Bitwarden: password manager (desktop)
bitwarden.enable = false;
# Iotas: lightweight notes manager
iotas.enable = true;
# Logseq: knowledge base and outliner
logseq.enable = false;
bitwarden.enable = false; # Bitwarden: password manager (desktop)
iotas.enable = true; # Iotas: lightweight notes manager
logseq.enable = false; # Logseq: knowledge base and outliner
/*
Media & Graphics
*/
# Affinity: professional graphics suite
affinity.enable = false;
# Eye of GNOME: image viewer
eyeOfGnome.enable = true;
# FreeTube: privacyfriendly YouTube client
freetube.enable = false;
# GIMP: gnu image manipulation program
gimp.enable = false;
# Kdenlive: video editing software
kdenlive.enable = false;
# Plex: media player and server client
plex.enable = true;
affinity.enable = false; # Affinity: professional graphics suite
eyeOfGnome.enable = true; # Eye of GNOME: image viewer
freetube.enable = false; # FreeTube: privacyfriendly YouTube client
gimp.enable = false; # GIMP: gnu image manipulation program
kdenlive.enable = false; # Kdenlive: video editing software
plex.enable = true; # Plex: media player and server client
/*
Utilities / Misc
*/
# Eddie AirVPN: VPN client
eddieAirVPN.enable = true;
# Galculator: simple calculator
galculator.enable = true;
# Winboat: Windows remote desktop via RDP
winboat.enable = false;
eddieAirVPN.enable = true; # Eddie AirVPN: VPN client
galculator.enable = true; # Galculator: simple calculator
winboat.enable = false; # Winboat: Windows remote desktop via RDP
}

View File

@@ -2,65 +2,55 @@ _: {
/*
Development editors and IDEs
*/
# VSCodium: a free and open-source "demicrosofted" VSCode
vscodium.enable = false;
# Zed Editor: a modern, highperformance code editor
vscodium.enable = false; # VSCodium: a free and open-source "demicrosofted" VSCode
zed-editor = {
# Enable Zed Editor
enable = true;
# Remote Server: enable remote editing capabilities
remote-server = true;
enable = true; # Zed Editor: a modern, highperformance code editor
remote-server = true; # Remote Server: enable remote editing capabilities
};
/*
Web browsers
*/
# Librewolf: a privacy-focused Firefox fork
librewolf.enable = true;
# Ungoogled Chromium: a privacy-focused Chromium fork
ungoogled-chromium.enable = true;
librewolf.enable = true; # Librewolf: a privacy-focused Firefox fork
ungoogled-chromium.enable = true; # Ungoogled Chromium: a privacy-focused Chromium fork
/*
System utilities
*/
# Btop: a resource monitor for the terminal
btop.enable = true;
# Cava: terminal audio visualizer
cava.enable = false;
# Fastfetch: a fast system information tool
fastfetch.enable = true;
btop.enable = true; # Btop: a resource monitor for the terminal
cava.enable = false; # Cava: terminal audio visualizer
fastfetch.enable = true; # Fastfetch: a fast system information tool
/*
Communication and synchronization
*/
# KDE Connect: integrate your phone and desktop
kdeconnect.enable = false;
# Nextcloud Client: sync files with a Nextcloud server
nextcloud-client.enable = true;
# Vesktop: a communitydriven Discord client
vesktop.enable = true;
kdeconnect.enable = false; # KDE Connect: integrate your phone and desktop
nextcloud-client.enable = true; # Nextcloud Client: sync files with a Nextcloud server
vesktop.enable = true; # Vesktop: a communitydriven Discord client
/*
Gaming
*/
# Lutris: an open gaming platform
lutris.enable = false;
lutris.enable = false; # Lutris: an open gaming platform
/*
Media recording and streaming
*/
# OBS Studio: streaming and recording software
obs-studio.enable = false;
obs-studio.enable = false; # OBS Studio: streaming and recording software
/*
Office suite
*/
# OnlyOffice: an office suite compatible with Microsoft formats
onlyoffice.enable = true;
onlyoffice.enable = true; # OnlyOffice: an office suite compatible with Microsoft formats
/*
Learning tools
*/
# Anki: spacedrepetition flashcard program
anki.enable = true;
anki.enable = true; # Anki: spacedrepetition flashcard program
}

View File

@@ -2,86 +2,89 @@ _: {
/*
Container & Packaging
*/
# Docker: container runtime and management
docker.enable = true;
# Distrobox: containerized development environments
distrobox.enable = false;
# Flatpak: universal packaging system for Linux
flatpak.enable = true;
# Lazydocker: simple TUI for Docker
lazydocker.enable = false;
docker.enable = true; # Docker: container runtime and management
distrobox.enable = false; # Distrobox: containerized development environments
flatpak = {
enable = true; # Flatpak: universal packaging system for Linux
packages = {
sober = true; # Enable Roblox Client
warehouse = true; # Enable Flatpak manager
flatseal = true; # Enable Flatpak permissions manager
};
};
lazydocker.enable = false; # Lazydocker: simple TUI for Docker
/*
Gaming
*/
# GameMode: optimizes system performance for gaming
gamemode.enable = true;
# Gamescope: micro-compositor for games
gamescope.enable = false;
# Prism Launcher: Minecraft modded launcher
prismlauncher.enable = false;
# Steam: platform for buying and playing games
steam.enable = true;
# SpaceCadet Pinball: classic pinball game
spaceCadetPinball.enable = true;
# TTY Solitaire: terminal based solitaire game
ttySolitaire.enable = true;
gamemode.enable = true; # GameMode: optimizes system performance for gaming
gamescope.enable = false; # Gamescope: micro-compositor for games
prismlauncher.enable = false; # Prism Launcher: Minecraft modded launcher
steam.enable = true; # Steam: platform for buying and playing games
spaceCadetPinball.enable = true; # SpaceCadet Pinball: classic pinball game
ttySolitaire.enable = true; # TTY Solitaire: terminal based solitaire game
/*
Development Tools
*/
# Exercism: coding practice platform
exercism.enable = true;
# Gedit: GNOME text editor
gedit.enable = false;
# Lazygit: simple TUI for git
lazygit.enable = false;
# OpenCode: tools for coding and development
opencode.enable = true;
exercism.enable = true; # Exercism: coding practice platform
gedit.enable = false; # Gedit: GNOME text editor
lazygit.enable = false; # Lazygit: simple TUI for git
opencode.enable = true; # OpenCode: tools for coding and development
jan.enable = true; # Jan: AI chat UI
/*
Communication & Collaboration
*/
# Mattermost: open-source Slack alternative
mattermost.enable = true;
# Slack: team communication and collaboration tool
slack.enable = true;
# Tutanota: secure email client
tutanota.enable = true;
mattermost.enable = true; # Mattermost: open-source Slack alternative
slack.enable = true; # Slack: team communication and collaboration tool
tutanota.enable = true; # Tutanota: secure email client
/*
Productivity / Knowledge Management
*/
# Bitwarden: password manager (desktop)
bitwarden.enable = false;
# Iotas: lightweight notes manager
iotas.enable = true;
# Logseq: knowledge base and outliner
logseq.enable = false;
bitwarden.enable = false; # Bitwarden: password manager (desktop)
iotas.enable = true; # Iotas: lightweight notes manager
logseq.enable = false; # Logseq: knowledge base and outliner
/*
Media & Graphics
*/
# Affinity: professional graphics suite
affinity.enable = false;
# Eye of GNOME: image viewer
eyeOfGnome.enable = true;
# FreeTube: privacyfriendly YouTube client
freetube.enable = false;
# GIMP: gnu image manipulation program
gimp.enable = false;
# Kdenlive: video editing software
kdenlive.enable = false;
# Plex: media player and server client
plex.enable = true;
affinity.enable = false; # Affinity: professional graphics suite
eyeOfGnome.enable = true; # Eye of GNOME: image viewer
freetube.enable = false; # FreeTube: privacyfriendly YouTube client
gimp.enable = false; # GIMP: gnu image manipulation program
kdenlive.enable = false; # Kdenlive: video editing software
plex.enable = true; # Plex: media player and server client
/*
Utilities / Misc
*/
# Eddie AirVPN: VPN client
eddieAirVPN.enable = true;
# Galculator: simple calculator
galculator.enable = true;
# Winboat: Windows remote desktop via RDP
winboat.enable = false;
eddieAirVPN.enable = true; # Eddie AirVPN: VPN client
galculator.enable = true; # Galculator: simple calculator
winboat.enable = false; # Winboat: Windows remote desktop via RDP
}

View File

@@ -2,65 +2,55 @@ _: {
/*
Development editors and IDEs
*/
# VSCodium: a free and open-source "demicrosofted" VSCode
vscodium.enable = false;
# Zed Editor: a modern, highperformance code editor
vscodium.enable = false; # VSCodium: a free and open-source "demicrosofted" VSCode
zed-editor = {
# Enable Zed Editor
enable = true;
# Remote Server: enable remote editing capabilities
remote-server = true;
enable = true; # Zed Editor: a modern, highperformance code editor
remote-server = true; # Remote Server: enable remote editing capabilities
};
/*
Web browsers
*/
# Librewolf: a privacy-focused Firefox fork
librewolf.enable = true;
# Ungoogled Chromium: a privacy-focused Chromium fork
ungoogled-chromium.enable = true;
librewolf.enable = true; # Librewolf: a privacy-focused Firefox fork
ungoogled-chromium.enable = true; # Ungoogled Chromium: a privacy-focused Chromium fork
/*
System utilities
*/
# Btop: a resource monitor for the terminal
btop.enable = true;
# Cava: terminal audio visualizer
cava.enable = false;
# Fastfetch: a fast system information tool
fastfetch.enable = true;
btop.enable = true; # Btop: a resource monitor for the terminal
cava.enable = false; # Cava: terminal audio visualizer
fastfetch.enable = true; # Fastfetch: a fast system information tool
/*
Communication and synchronization
*/
# KDE Connect: integrate your phone and desktop
kdeconnect.enable = false;
# Nextcloud Client: sync files with a Nextcloud server
nextcloud-client.enable = true;
# Vesktop: a communitydriven Discord client
vesktop.enable = true;
kdeconnect.enable = false; # KDE Connect: integrate your phone and desktop
nextcloud-client.enable = true; # Nextcloud Client: sync files with a Nextcloud server
vesktop.enable = true; # Vesktop: a communitydriven Discord client
/*
Gaming
*/
# Lutris: an open gaming platform
lutris.enable = false;
lutris.enable = false; # Lutris: an open gaming platform
/*
Media recording and streaming
*/
# OBS Studio: streaming and recording software
obs-studio.enable = false;
obs-studio.enable = false; # OBS Studio: streaming and recording software
/*
Office suite
*/
# OnlyOffice: an office suite compatible with Microsoft formats
onlyoffice.enable = true;
onlyoffice.enable = true; # OnlyOffice: an office suite compatible with Microsoft formats
/*
Learning tools
*/
# Anki: spacedrepetition flashcard program
anki.enable = true;
anki.enable = true; # Anki: spacedrepetition flashcard program
}

View File

@@ -2,86 +2,89 @@ _: {
/*
Container & Packaging
*/
# Docker: container runtime and management
docker.enable = true;
# Distrobox: containerized development environments
distrobox.enable = false;
# Flatpak: universal packaging system for Linux
flatpak.enable = true;
# Lazydocker: simple TUI for Docker
lazydocker.enable = false;
docker.enable = true; # Docker: container runtime and management
distrobox.enable = false; # Distrobox: containerized development environments
flatpak = {
enable = true; # Flatpak: universal packaging system for Linux
packages = {
sober = true; # Enable Roblox Client
warehouse = true; # Enable Flatpak manager
flatseal = true; # Enable Flatpak permissions manager
};
};
lazydocker.enable = false; # Lazydocker: simple TUI for Docker
/*
Gaming
*/
# GameMode: optimizes system performance for gaming
gamemode.enable = true;
# Gamescope: micro-compositor for games
gamescope.enable = false;
# Prism Launcher: Minecraft modded launcher
prismlauncher.enable = false;
# Steam: platform for buying and playing games
steam.enable = true;
# SpaceCadet Pinball: classic pinball game
spaceCadetPinball.enable = true;
# TTY Solitaire: terminal based solitaire game
ttySolitaire.enable = true;
gamemode.enable = true; # GameMode: optimizes system performance for gaming
gamescope.enable = false; # Gamescope: micro-compositor for games
prismlauncher.enable = false; # Prism Launcher: Minecraft modded launcher
steam.enable = true; # Steam: platform for buying and playing games
spaceCadetPinball.enable = true; # SpaceCadet Pinball: classic pinball game
ttySolitaire.enable = true; # TTY Solitaire: terminal based solitaire game
/*
Development Tools
*/
# Exercism: coding practice platform
exercism.enable = true;
# Gedit: GNOME text editor
gedit.enable = false;
# Lazygit: simple TUI for git
lazygit.enable = false;
# OpenCode: tools for coding and development
opencode.enable = true;
exercism.enable = true; # Exercism: coding practice platform
gedit.enable = false; # Gedit: GNOME text editor
lazygit.enable = false; # Lazygit: simple TUI for git
opencode.enable = true; # OpenCode: tools for coding and development
jan.enable = true; # Jan: AI chat UI
/*
Communication & Collaboration
*/
# Mattermost: open-source Slack alternative
mattermost.enable = true;
# Slack: team communication and collaboration tool
slack.enable = true;
# Tutanota: secure email client
tutanota.enable = true;
mattermost.enable = true; # Mattermost: open-source Slack alternative
slack.enable = true; # Slack: team communication and collaboration tool
tutanota.enable = true; # Tutanota: secure email client
/*
Productivity / Knowledge Management
*/
# Bitwarden: password manager (desktop)
bitwarden.enable = false;
# Iotas: lightweight notes manager
iotas.enable = true;
# Logseq: knowledge base and outliner
logseq.enable = false;
bitwarden.enable = false; # Bitwarden: password manager (desktop)
iotas.enable = true; # Iotas: lightweight notes manager
logseq.enable = false; # Logseq: knowledge base and outliner
/*
Media & Graphics
*/
# Affinity: professional graphics suite
affinity.enable = false;
# Eye of GNOME: image viewer
eyeOfGnome.enable = true;
# FreeTube: privacyfriendly YouTube client
freetube.enable = false;
# GIMP: gnu image manipulation program
gimp.enable = false;
# Kdenlive: video editing software
kdenlive.enable = false;
# Plex: media player and server client
plex.enable = true;
affinity.enable = false; # Affinity: professional graphics suite
eyeOfGnome.enable = true; # Eye of GNOME: image viewer
freetube.enable = false; # FreeTube: privacyfriendly YouTube client
gimp.enable = false; # GIMP: gnu image manipulation program
kdenlive.enable = false; # Kdenlive: video editing software
plex.enable = true; # Plex: media player and server client
/*
Utilities / Misc
*/
# Eddie AirVPN: VPN client
eddieAirVPN.enable = true;
# Galculator: simple calculator
galculator.enable = true;
# Winboat: Windows remote desktop via RDP
winboat.enable = false;
eddieAirVPN.enable = true; # Eddie AirVPN: VPN client
galculator.enable = true; # Galculator: simple calculator
winboat.enable = false; # Winboat: Windows remote desktop via RDP
}

View File

@@ -2,16 +2,27 @@
lib,
config,
...
}: {
}: let
mkFlatpakPackage = name: pkgId: {
options.flatpak.packages.${name} = lib.mkEnableOption "Flatpak: ${name}";
config.services.flatpak.packages =
lib.mkIf config.flatpak.packages.${name} [pkgId];
};
flatpakPackages = {
sober = "org.vinegarhq.Sober";
warehouse = "io.github.flattool.Warehouse";
flatseal = "com.github.tchx84.Flatseal";
};
in {
options.flatpak.enable = lib.mkEnableOption "Flatpak";
config.services.flatpak = lib.mkIf config.flatpak.enable {
enable = true;
update.onActivation = true;
packages = [
# "org.vinegarhq.Sober"
"io.github.flattool.Warehouse"
"com.github.tchx84.Flatseal"
];
packages = [];
};
imports = builtins.attrValues (builtins.mapAttrs mkFlatpakPackage flatpakPackages);
}

View File

@@ -25,6 +25,7 @@
tutanota = tutanota-desktop;
exercism = exercism;
opencode = opencode;
jan = jan;
lazygit = lazygit;
prismlauncher = inputs.prismlauncher-cracked.packages.${system}.default;
spaceCadetPinball = space-cadet-pinball;

View File

@@ -17,6 +17,7 @@ in {
"$modifier, D, exec, vesktop"
"$modifier, G, exec, affinity-v3"
"$modifier, I, exec, iotas"
"$modifier, J, exec, Jan"
"$modifier, L, exec, logseq"
"$modifier, M, exec, plexamp"
"$modifier, N, exec, dex ${desktopEntriesPath}/garandcloud.desktop"

View File

@@ -75,13 +75,7 @@
icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg";
urls = [
{
template = "https://search.nixos.org/options";
params = [
{
name = "query";
value = "{searchTerms}";
}
];
template = "https://search.nixos.org/options?channel=unstable&query={searchTerms}";
}
];
};