Splitting desktop to user and gnome and adding agenix

This commit is contained in:
Lyes Saadi 2025-03-22 14:16:04 +01:00
parent 0350576970
commit 49ad024034
Signed by: lyes
GPG key ID: 55A1D803917CF39A
14 changed files with 453 additions and 274 deletions

View file

@ -1,4 +1,4 @@
{ pkgs, ... }:
{ pkgs, agenix, ... }:
{
environment.systemPackages = with pkgs; [
@ -16,11 +16,13 @@
man-pages-posix
python3
any-nix-shell
cheat
# Nix
home-manager
nix-index
direnv
agenix.packages."${system}".default
];
# Some programs need SUID wrappers, can be configured further or are

View file

@ -1,4 +1,4 @@
{ pkgs, lib, ... }:
{ ... }:
{
# Networking
@ -53,10 +53,4 @@
# Bluetooth
hardware.bluetooth.enable = true;
hardware.bluetooth.powerOnBoot = true;
# KDE Connect
programs.kdeconnect = {
enable = true;
package = lib.mkDefault pkgs.gnomeExtensions.gsconnect;
};
}

View file

@ -1,90 +1,17 @@
{ pkgs, lib, config, zen-browser, ... }:
{ pkgs, lib, config, ... }:
let
tex = (pkgs.texlive.combine { inherit (pkgs.texlive)
scheme-medium
lettre
wallpaper
lastpage
hyphenat
moresize
fontawesome5
montserrat
titlesec
ly1
footmisc
titling
frpseudocode
ebproof
comment;
});
in {
{
# Packages
environment.systemPackages = with pkgs; [
# Web
zen-browser.packages."${system}".default
fragments
dropbox
varia
filezilla
whatip
epiphany
organicmaps
# Messaging
thunderbird-128
discord
vesktop
whatsapp-for-linux
# element-desktop
fractal
zoom-us
# Image
drawing
gimp
loupe
snapshot
inkscape
thunderbird
# Video
mpv
vlc
syncplay
obs-studio
yt-dlp
handbrake
kooha
video-trimmer
(kodi.withPackages(kodiPkgs: with kodiPkgs; [
youtube
sponsorblock
pvr-iptvsimple
]))
# Audio
shortwave
gnome-podcasts
helvum
local.quadcastrgb
gnome-sound-recorder
easyeffects
# Games
heroic
# cemu
prismlauncher
# vvvvvv
ryujinx
dolphin-emu
parsec-bin
unstable.suyu
# suyu
# Reading
# calibre
papers
# Office
libreoffice
onlyoffice-bin
@ -95,137 +22,21 @@ in {
hunspellDicts.en_US
hunspellDicts.en_GB-ize
# Note taking
apostrophe
setzer
tex
pandoc
unstable.typst
# typst
tinymist
zotero
# Programming
git
git-lfs
vscode
# zed-editor
gcc
rustup
python3
ocaml
ocamlPackages.ocaml-lsp
ocamlPackages.ocamlformat
opam
ledit
nodejs
nil
nixd
nixfmt-rfc-style
protege # LogIA Course
haskellPackages.Agda
agdaPackages.standard-library
devtoolbox
elan
# Containers & VMs
toolbox
distrobox
gnome-boxes
# Virtualization
qemu
virt-manager
# System
gnome-firmware
# Utilities
ghostty
impression
resources
file-roller
baobab
planify
dosage-tracker
# Proton
protonmail-bridge-gui
protonmail-desktop
protonvpn-gui
proton-pass
# Customization
gnome-tweaks
gnome-extension-manager
adw-gtk3
paper-icon-theme
# gnomeExtensions.gsconnect
# Multimedia
pipewire.dev
# pulseaudio
libopus
# Printing
hplipWithPlugin
];
# Flatpaks
services.flatpak = lib.mkIf (config?services.flatpak.packages) {
remotes = lib.mkOptionDefault [{
name = "gnome-nightly";
location = "https://nightly.gnome.org/gnome-nightly.flatpakrepo";
}];
packages = [
# Image
"page.kramo.Sly"
# Video
"org.nickvision.tubeconverter"
# Audio
"io.github.revisto.drum-machine"
# Reading
"com.github.johnfactotum.Foliate"
# Science
"com.github.alexhuntley.Plots"
# Office
"com.belmoussaoui.Obfuscate"
"com.github.muriloventuroso.pdftricks"
"com.github.flxzt.rnote"
"com.github.jeromerobert.pdfarranger"
"garden.jamie.Morphosis"
# Utilities
"com.belmoussaoui.Decoder"
"io.github.nokse22.minitext"
"org.gnome.World.PikaBackup"
"io.github.fabrialberio.pinapp"
"re.sonny.Eloquent"
# Customization
"ca.desrt.dconf-editor"
"app.drey.Damask"
"com.github.GradienceTeam.Gradience"
"com.github.tchx84.Flatseal"
# Games
"com.usebottles.bottles"
"dev.tchx84.Gameeky"
"dev.tchx84.Gameeky.ThematicPack.FreedomValley"
"dev.tchx84.Gameeky.ThematicPack.Blasterman"
"dev.tchx84.Gameeky.ThematicPack.Wackman"
"net.zdechov.app.TransLines"
"io.github.nokse22.ultimate-tic-tac-toe"
# Programming
{ appId = "org.gnome.Builder.Devel"; origin = "gnome-nightly"; }
"app.drey.Biblioteca"
];
uninstallUnmanaged = true;

View file

@ -12,24 +12,6 @@
# Fingerprint
services.fprintd.enable = true;
security.pam.services.login.fprintAuth = false;
security.pam.services.gdm-fingerprint.text = ''
auth required pam_shells.so
auth requisite pam_nologin.so
auth requisite pam_faillock.so preauth
auth required ${pkgs.fprintd}/lib/security/pam_fprintd.so
auth optional pam_permit.so
auth required pam_env.so
auth [success=ok default=1] ${pkgs.gdm}/lib/security/pam_gdm.so
auth optional ${pkgs.gnome-keyring}/lib/security/pam_gnome_keyring.so
account include login
password required pam_deny.so
session include login
session optional ${pkgs.gnome-keyring}/lib/security/pam_gnome_keyring.so auto_start
'';
# Touchpad
services.libinput.enable = true;
@ -45,11 +27,6 @@
programs.xwayland.enable = true;
environment.sessionVariables.NIXOS_OZONE_WL = "1";
# GNOME
services.xserver.displayManager.gdm.enable = true;
services.xserver.desktopManager.gnome.enable = true;
environment.gnome.excludePackages = [ pkgs.evince ];
# KDE
# services.desktopManager.plasma6.enable = true;
# programs.ssh.askPassword = lib.mkForce "${pkgs.gnome.seahorse}/libexec/seahorse/ssh-askpass";

39
modules/gnome/default.nix Normal file
View file

@ -0,0 +1,39 @@
{ pkgs, lib, ... }:
{
imports =
[
./packages.nix
];
# Fingerprint
security.pam.services.login.fprintAuth = false;
security.pam.services.gdm-fingerprint.text = ''
auth required pam_shells.so
auth requisite pam_nologin.so
auth requisite pam_faillock.so preauth
auth required ${pkgs.fprintd}/lib/security/pam_fprintd.so
auth optional pam_permit.so
auth required pam_env.so
auth [success=ok default=1] ${pkgs.gdm}/lib/security/pam_gdm.so
auth optional ${pkgs.gnome-keyring}/lib/security/pam_gnome_keyring.so
account include login
password required pam_deny.so
session include login
session optional ${pkgs.gnome-keyring}/lib/security/pam_gnome_keyring.so auto_start
'';
# GNOME
services.xserver.displayManager.gdm.enable = true;
services.xserver.desktopManager.gnome.enable = true;
environment.gnome.excludePackages = [ pkgs.evince ];
# KDE Connect
programs.kdeconnect = {
enable = true;
package = lib.mkDefault pkgs.gnomeExtensions.gsconnect;
};
}

107
modules/gnome/packages.nix Normal file
View file

@ -0,0 +1,107 @@
{ pkgs, lib, config, ... }:
{
environment.systemPackages = with pkgs; [
# Web
fragments
varia
whatip
epiphany
# Image
drawing
loupe
snapshot
# Video
kooha
video-trimmer
# Audio
shortwave
gnome-podcasts
gnome-sound-recorder
# Reading
papers
# Note taking
apostrophe
setzer
# Programming
devtoolbox
# Containers & VMs
gnome-boxes
# System
gnome-firmware
# Utilities
impression
resources
file-roller
baobab
planify
dosage-tracker
# Customization
gnome-tweaks
gnome-extension-manager
adw-gtk3
paper-icon-theme
];
services.flatpak = lib.mkIf (config?services.flatpak.packages) {
remotes = lib.mkOptionDefault [{
name = "gnome-nightly";
location = "https://nightly.gnome.org/gnome-nightly.flatpakrepo";
}];
packages = [
# Image
"page.kramo.Sly"
# Video
"org.nickvision.tubeconverter"
# Audio
"io.github.revisto.drum-machine"
# Reading
"com.github.johnfactotum.Foliate"
# Science
"com.github.alexhuntley.Plots"
# Office
"com.belmoussaoui.Obfuscate"
"com.github.muriloventuroso.pdftricks"
"com.github.flxzt.rnote"
"com.github.jeromerobert.pdfarranger"
"garden.jamie.Morphosis"
# Utilities
"com.belmoussaoui.Decoder"
"io.github.nokse22.minitext"
"io.github.fabrialberio.pinapp"
"re.sonny.Eloquent"
# Customization
"ca.desrt.dconf-editor"
"app.drey.Damask"
"com.github.GradienceTeam.Gradience"
# Games
"dev.tchx84.Gameeky"
"dev.tchx84.Gameeky.ThematicPack.FreedomValley"
"dev.tchx84.Gameeky.ThematicPack.Blasterman"
"dev.tchx84.Gameeky.ThematicPack.Wackman"
# Programming
{ appId = "org.gnome.Builder.Devel"; origin = "gnome-nightly"; }
"app.drey.Biblioteca"
];
};
}