From b6670bcd1accddf5a8dce67523f89cf08d7e6020 Mon Sep 17 00:00:00 2001 From: Jade Date: Fri, 3 Feb 2023 17:43:17 +0100 Subject: [PATCH] made it possible to use flake without all desktop bloat --- common.nix | 204 +++++------------------ modules/default.nix | 1 + modules/desktop.nix | 134 +++++++++++++++ modules/flatpak.nix | 17 ++ modules/zsh.nix | 1 + monosodium-glutamate-g/configuration.nix | 1 + potatobook-g/configuration.nix | 1 + 7 files changed, 201 insertions(+), 158 deletions(-) create mode 100644 modules/flatpak.nix diff --git a/common.nix b/common.nix index eb76e04..d2ee7cf 100644 --- a/common.nix +++ b/common.nix @@ -9,11 +9,6 @@ with lib; with builtins; { imports = [ ./modules ]; - nixpkgs.config.allowUnfree = true; - - nixpkgs.overlays = [ - (import (builtins.fetchTarball "https://github.com/PrismLauncher/PrismLauncher/archive/develop.tar.gz")).overlay - ]; nix = { package = pkgs.nixVersions.stable; @@ -24,36 +19,55 @@ with builtins; ''; }; + nixpkgs = { + config = { + allowUnfree = true; + }; + }; + + environment = { + systemPackages = with pkgs; [ + + + wget git neofetch pciutils zip unzip gnutar iw btop nodejs jdk8 jdk11 + jdk libsecret gh nix-prefetch-scripts direnv nix-direnv fzf glab openal + sl lolcat appimage-run git-crypt file whois p7zip file nmap cmatrix tree + socat + ]; + pathsToLink = [ + "/share/nix-direnv" + ]; + }; + + networking = { + networkmanager = { + enable = true; + }; + }; + + services = { + + usbmuxd.enable = true; + gvfs.enable = true; + openssh.enable = true; + + + }; + + programs = { + + dconf.enable = true; + + mtr.enable = true; + gnupg.agent = { + enable = true; + enableSSHSupport = true; + }; + + }; time.timeZone = "Europe/Berlin"; - networking.networkmanager.enable = true; # Easiest to use and most distros use this by default. - networking.networkmanager.wifi.backend = "iwd"; - networking.extraHosts = '' - 127.0.0.1 www.youtube.com - 127.0.0.1 www.reddit.com - 127.0.0.1 www.tiktok.com - 127.0.0.1 www.twitter.com - 127.0.0.1 www.instagram.com - 127.0.0.1 www.facebook.com - 127.0.0.1 www.snapchat.com - - 127.0.0.1 youtube.com - 127.0.0.1 reddit.com - 127.0.0.1 tiktok.com - 127.0.0.1 twitter.com - 127.0.0.1 instagram.com - 127.0.0.1 facebook.com - 127.0.0.1 snapchat.com - - 127.0.0.1 google-analytics.com - 127.0.0.1 stats.g.doubleclick.net - 127.0.0.1 googleadservices.com - 127.0.0.1 googletagmanager.com - 127.0.0.1 googletagservices.com - 127.0.0.1 googlesyndication.com - ''; - home-manager.users.jade = { nixosConfig, pkgs, ... }: { home.sessionVariables.TZ = nixosConfig.time.timeZone; }; @@ -63,77 +77,16 @@ with builtins; }; security.sudo.extraConfig = "Defaults insults"; - services.xserver = { - enable = true; - wacom.enable = true; - libinput = { - enable = true; - }; - desktopManager = { - xterm.enable = false; - }; - - displayManager = { - defaultSession = "none+i3"; - gdm.enable = true; - }; - - windowManager.i3 = { - enable = true; - package = pkgs.i3-gaps; - extraPackages = with pkgs; [ - gnome.gdm i3lock-fancy rofi rofimoji volumeicon feh xorg.xinput dunst - arandr lxappearance gruvbox-dark-gtk gruvbox-dark-icons-gtk - gruvterial-theme flameshot tesseract5 imagemagick xclip polybar kitty - xkeysnail gtk-engine-murrine playerctl xmacro - libwacom wacomtablet xorg.xev - ]; - }; - }; - programs.dconf.enable = true; - - programs.corectrl.enable = true; - - qt.platformTheme = "qt5ct"; - - virtualisation.libvirtd.enable = true; - - boot.plymouth = { - enable = true; - #theme = "glow"; - }; hardware.opengl.enable = true; - services.xserver.layout = "us"; - services.xserver.xkbVariant = "altgr-intl"; hardware.uinput.enable = true; - services.printing.enable = true; - - services.usbmuxd.enable = true; - services.gvfs.enable = true; - security.rtkit.enable = true; - services.pipewire = { - enable = true; - alsa.enable = true; - #alsa.support32Bit = true; - pulse.enable = true; - jack.enable = true; - }; - hardware.bluetooth.enable = true; - hardware.keyboard.uhk.enable = true; - hardware.spacenavd.enable = true; - - environment.sessionVariables = rec { - QT_QPA_PLATFORMTHEME = "qt5ct"; - TERMINAL = "kitty"; - }; users.users.jade = { isNormalUser = true; extraGroups = [ "wheel" "input" "uinput" "libvirtd" "adbusers" ]; @@ -147,83 +100,18 @@ users.users.jade = { }; - # missing: picom-jonaburg - environment.systemPackages = with pkgs; [ - # spotify-tui jetbrains.webstorm jetbrains.datagrip jetbrains.idea-ultimate jetbrains.pycharm-professional python3Full jetbrains.clion - wget git neofetch pciutils pavucontrol font-manager zip unzip gnutar iw - btop xdotool xorg.xwininfo nodejs gparted networkmanagerapplet mailspring - betterdiscordctl pulseaudioFull speedtest-cli librewolf firefox jdk8 jdk11 - jdk vlc xfce.thunar xfce.tumbler xfce.thunar-archive-plugin - gnome.file-roller uhk-agent spotify spotify-tray cool-retro-term lutris - libsecret gh xorg.xhost xdg-desktop-portal-gtk nheko obsidian - nix-prefetch-scripts audacity rustup easyeffects virt-manager evince direnv - nix-direnv fzf openrgb krita gimp - # currently broken -2023-01-20 - #gimp-with-plugins helvum - inkscape-with-extensions virglrenderer ddccontrol-db glab - firebird-emu obs-studio kdenlive openal - mullvad mullvad-vpn - sl lolcat ifuse - fspy spacenav-cube-example - cava appimage-run - spacenavd libspnav fluent-reader - #prismlauncher - evolution - godot colmap - gitg gnome-builder git-crypt - gpick qdirstat file whois ffmpeg_5 scribus p7zip file nmap cmatrix tree socat - libimobiledevice libimobiledevice-glue ifuse usbmuxd libusbmuxd gvfs gphoto2 gphoto2fs phockup digikam - ]; - programs.noisetorch.enable = true; - programs.adb.enable = true; - environment.pathsToLink = [ - "/share/nix-direnv" - ]; - - services.flatpak.enable = true; - xdg.portal.enable = true; - xdg.portal.extraPortals = [ pkgs.xdg-desktop-portal-gtk ]; - - fonts.fonts = with pkgs; [ - nerdfonts montserrat noto-fonts atkinson-hyperlegible - ]; - - programs.mtr.enable = true; - programs.gnupg.agent = { - enable = true; - enableSSHSupport = true; - }; - - programs.zsh.enable = true; users.defaultUserShell = pkgs.zsh; - services.openssh.enable = true; - programs.kdeconnect.enable = true; - - services.mullvad-vpn.enable = true; - - services.gnome.gnome-keyring.enable = true; - programs.seahorse.enable = true; - security.pam.services.jade.enableGnomeKeyring = true; # Copy the NixOS configuration file and link it from the resulting system # (/run/current-system/configuration.nix). This is useful in case you # accidentally delete configuration.nix. # system.copySystemConfiguration = true; - networking.firewall.allowedTCPPorts = [ 8384 22000 ]; - networking.firewall.allowedUDPPorts = [ 8080 22000 21027 ]; - systemd.services."NetworkManager-wait-online".enable = false; - services.syncthing = rec { - enable = true; - user = "jade"; - dataDir = "/home/${user}/Documents"; - configDir = "/home/${user}/Documents/.config/syncthing"; - }; } diff --git a/modules/default.nix b/modules/default.nix index 3b620fa..ec0b9cc 100644 --- a/modules/default.nix +++ b/modules/default.nix @@ -5,5 +5,6 @@ ./terminal.nix ./neovim.nix ./zsh.nix + ./flatpak.nix ]; } diff --git a/modules/desktop.nix b/modules/desktop.nix index 264455f..f2d7c89 100644 --- a/modules/desktop.nix +++ b/modules/desktop.nix @@ -42,8 +42,142 @@ in with lib; { compositing = mkEnableOption "Enable compositing via picom"; }; config = mkIf cfg.enable { + programs.kdeconnect.enable = true; + fonts.fonts = with pkgs; [ + nerdfonts montserrat noto-fonts atkinson-hyperlegible + ]; + + hardware.bluetooth.enable = true; + hardware.keyboard.uhk.enable = true; + hardware.spacenavd.enable = true; + programs.seahorse.enable = true; + security.pam.services.jade.enableGnomeKeyring = true; + + networking.firewall.allowedTCPPorts = [ 8384 22000 ]; + networking.firewall.allowedUDPPorts = [ 8080 22000 21027 ]; + systemd.services."NetworkManager-wait-online".enable = false; + + + qt.platformTheme = "qt5ct"; + virtualisation.libvirtd.enable = true; + + boot.plymouth = { + enable = true; + #theme = "glow"; + }; + programs = { + corectrl.enable = true; + noisetorch.enable = true; + + adb.enable = true; + }; + nixpkgs.overlays = [ + (import (builtins.fetchTarball "https://github.com/PrismLauncher/PrismLauncher/archive/develop.tar.gz")).overlay + ]; + environment.sessionVariables = rec { + QT_QPA_PLATFORMTHEME = "qt5ct"; + TERMINAL = "kitty"; + }; + services = { + printing.enable = true; + mullvad-vpn.enable = true; + gnome.gnome-keyring.enable = true; + + xserver = { + layout = "us"; + xkbVariant = "altgr-intl"; + + enable = true; + + wacom.enable = true; + libinput = { + enable = true; + }; + + desktopManager = { + xterm.enable = false; + }; + + displayManager = { + defaultSession = "none+i3"; + gdm.enable = true; + }; + + windowManager.i3 = { + enable = true; + package = pkgs.i3-gaps; + extraPackages = with pkgs; [ + gnome.gdm i3lock-fancy rofi rofimoji volumeicon feh xorg.xinput dunst + arandr lxappearance gruvbox-dark-gtk gruvbox-dark-icons-gtk + gruvterial-theme flameshot tesseract5 imagemagick xclip polybar kitty + xkeysnail gtk-engine-murrine playerctl xmacro + libwacom wacomtablet xorg.xev + ]; + }; + }; + + pipewire = { + enable = true; + alsa.enable = true; + #alsa.support32Bit = true; + pulse.enable = true; + jack.enable = true; + }; + + syncthing = rec { + enable = true; + user = "jade"; + dataDir = "/home/${user}/Documents"; + configDir = "/home/${user}/Documents/.config/syncthing"; + }; + }; + # desktop things that arent the de {{{ + networking = { + networkmanager.wifi.backend = "iwd"; + extraHosts = '' + 127.0.0.1 www.youtube.com + 127.0.0.1 www.reddit.com + 127.0.0.1 www.tiktok.com + 127.0.0.1 www.twitter.com + 127.0.0.1 www.instagram.com + 127.0.0.1 www.facebook.com + 127.0.0.1 www.snapchat.com + + 127.0.0.1 youtube.com + 127.0.0.1 reddit.com + 127.0.0.1 tiktok.com + 127.0.0.1 twitter.com + 127.0.0.1 instagram.com + 127.0.0.1 facebook.com + 127.0.0.1 snapchat.com + + 127.0.0.1 google-analytics.com + 127.0.0.1 stats.g.doubleclick.net + 127.0.0.1 googleadservices.com + 127.0.0.1 googletagmanager.com + 127.0.0.1 googletagservices.com + 127.0.0.1 googlesyndication.com + ''; + }; + # }}} home-manager.users.jade = { pkgs, ... }: { home.packages = with pkgs; [ + # from environment.systemPackages cleanup + pavucontrol font-manager xdotool xorg.xwininfo gparted + networkmanagerapplet pulseaudioFull speedtest-cli librewolf firefox vlc + xfce.thunar xfce.tumbler xfce.thunar-archive-plugin gnome.file-roller + uhk-agent cool-retro-term lutris xorg.xhost xdg-desktop-portal-gtk nheko + obsidian audacity easyeffects virt-manager evince openrgb krita gimp + inkscape-with-extensions virglrenderer ddccontrol-db + firebird-emu obs-studio kdenlive fspy spacenav-cube-example cava + spacenavd libspnav fluent-reader evolution godot colmap gitg + gnome-builder gpick qdirstat ffmpeg_5 scribus libimobiledevice + libimobiledevice-glue ifuse usbmuxd libusbmuxd gvfs gphoto2 gphoto2fs + phockup digikam + + # mullvad currently broken? + # mullvad mullvad-vpn + # external libnotify i3lock-fancy rofi rofimoji volumeicon feh xorg.xinput dunst diff --git a/modules/flatpak.nix b/modules/flatpak.nix new file mode 100644 index 0000000..53faff4 --- /dev/null +++ b/modules/flatpak.nix @@ -0,0 +1,17 @@ +{ config, lib, pkgs, ... }: + +let cfg = config.jade.flatpak; +in with lib; { + options.jade.flatpak = { + enable = mkEnableOption "Enable flatpak"; + }; + config = mkIf cfg.enable { + services.flatpak.enable = true; + xdg.portal = { + enable = true; + extraPortals = [ + pkgs.xdg-desktop-portal-gtk + ]; + }; + }; +} diff --git a/modules/zsh.nix b/modules/zsh.nix index 91373e3..c8f1e15 100644 --- a/modules/zsh.nix +++ b/modules/zsh.nix @@ -6,6 +6,7 @@ in with lib; { enable = mkEnableOption "Enable zsh"; }; config = mkIf cfg.enable { + programs.zsh.enable = true; home-manager.users.jade = { pkgs,... } : { home.packages = with pkgs; [ thefuck diff --git a/monosodium-glutamate-g/configuration.nix b/monosodium-glutamate-g/configuration.nix index 228e640..a042e5d 100644 --- a/monosodium-glutamate-g/configuration.nix +++ b/monosodium-glutamate-g/configuration.nix @@ -10,6 +10,7 @@ ]; jade = { + flatpak.enable = true; desktop.enable = true; desktop.compositing = true; terminal.enable = true; diff --git a/potatobook-g/configuration.nix b/potatobook-g/configuration.nix index 95f5bfe..02216a9 100644 --- a/potatobook-g/configuration.nix +++ b/potatobook-g/configuration.nix @@ -28,6 +28,7 @@ # }; jade = { + flatpak.enable = true; desktop.enable = true; desktop.compositing = true; terminal.enable = true;