From e7d965d9bff9ccd6b2419e1a3d2b8096d35debe0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Leonardo=20Eug=C3=AAnio?= Date: Fri, 21 Feb 2025 20:13:11 -0300 Subject: [PATCH] wip --- system/android.nix | 17 ++++++++++++ system/boot.nix | 1 - system/configuration.nix | 30 +++++---------------- system/containers.nix | 55 +++++++++++++++++++++++---------------- system/media-packages.nix | 4 +-- system/network.nix | 13 ++++++--- user/dummy.nix | 8 ++++++ user/home.nix | 3 +++ user/sway/default.nix | 2 +- 9 files changed, 80 insertions(+), 53 deletions(-) create mode 100644 system/android.nix create mode 100644 user/dummy.nix diff --git a/system/android.nix b/system/android.nix new file mode 100644 index 0000000..3cce4af --- /dev/null +++ b/system/android.nix @@ -0,0 +1,17 @@ +{ + config, + pkgs, + lib, + ... +}: +{ + options.my.android.enable = lib.mkEnableOption { }; + + config = lib.mkIf config.my.android.enable { + # Open kde connect ports + programs.kdeconnect.enable = true; + + programs.adb.enable = true; + services.udev.packages = [ pkgs.android-udev-rules ]; + }; +} diff --git a/system/boot.nix b/system/boot.nix index fa1ed8d..3e0151d 100644 --- a/system/boot.nix +++ b/system/boot.nix @@ -2,7 +2,6 @@ config, pkgs, lib, - inputs, ... }: { diff --git a/system/configuration.nix b/system/configuration.nix index c98e7c5..a227e36 100644 --- a/system/configuration.nix +++ b/system/configuration.nix @@ -1,14 +1,10 @@ # Edit this configuration file to define what should be installed on # your system. Help is available in the configuration.nix(5) man page # and in the NixOS manual (accessible by running ‘nixos-help’). -{ - config, - pkgs, - inputs, - ... -}: +{ pkgs, ... }: { imports = [ + ./android.nix ./gaming.nix ./media-packages.nix ./boot.nix @@ -25,39 +21,27 @@ ../settings ]; - my = import ../user/variables.nix; + my = import ../user/variables.nix // { + android.enable = true; + media-packages.enable = true; + containers.enable = true; + }; zramSwap.enable = true; - programs.adb.enable = true; - services.udev.packages = [ pkgs.android-udev-rules ]; - # Enable touchpad support (enabled default in most desktopManager). services.libinput.enable = true; - packages.media-packages.enable = true; environment.systemPackages = with pkgs; [ pavucontrol glib # gsettings usbutils - # dracula-theme # gtk theme adwaita-icon-theme # default gnome cursors - - nix-output-monitor ]; services.geoclue2.enable = true; - # Workaround for nm-wait-online hanging?? - # Ref: https://github.com/NixOS/nixpkgs/issues/180175 - systemd.services.NetworkManager-wait-online = { - serviceConfig.ExecStart = [ - "" - "${pkgs.networkmanager}/bin/nm-online -q" - ]; - }; - systemd.extraConfig = '' DefaultTimeoutStopSec=10s ''; diff --git a/system/containers.nix b/system/containers.nix index 64383a6..9032a6c 100644 --- a/system/containers.nix +++ b/system/containers.nix @@ -1,30 +1,39 @@ -{ pkgs, lib, ... }: { - services.flatpak.enable = true; + pkgs, + lib, + config, + ... +}: +{ + options.my.containers.enable = lib.mkEnableOption { }; - virtualisation.docker = { - enable = true; - autoPrune = { + config = lib.mkIf config.my.containers.enable { + services.flatpak.enable = true; + + virtualisation.docker = { enable = true; - dates = "monthly"; - flags = [ - "--all" - "--volumes" - ]; - }; - daemon.settings = { - # needed by bitbucket runner ??? - log-driver = "json-file"; - log-opts = { - max-size = "10m"; - max-file = "3"; + autoPrune = { + enable = true; + dates = "monthly"; + flags = [ + "--all" + "--volumes" + ]; + }; + daemon.settings = { + # needed by bitbucket runner ??? + log-driver = "json-file"; + log-opts = { + max-size = "10m"; + max-file = "3"; + }; }; }; + + networking.firewall.extraCommands = lib.getExe pkgs._docker-block-external-connections; + + programs.extra-container.enable = true; + + programs.firejail.enable = true; }; - - networking.firewall.extraCommands = lib.getExe pkgs._docker-block-external-connections; - - programs.extra-container.enable = true; - - programs.firejail.enable = true; } diff --git a/system/media-packages.nix b/system/media-packages.nix index 8458087..dec98a2 100644 --- a/system/media-packages.nix +++ b/system/media-packages.nix @@ -5,10 +5,10 @@ ... }: let - cfg = config.packages.media-packages; + cfg = config.my.media-packages; in { - options.packages.media-packages = { + options.my.media-packages = { enable = lib.mkEnableOption "media packages"; }; config = lib.mkIf cfg.enable { diff --git a/system/network.nix b/system/network.nix index 682639d..e280ff5 100644 --- a/system/network.nix +++ b/system/network.nix @@ -6,8 +6,6 @@ # networking.proxy.noProxy = "127.0.0.1,localhost,internal.domain"; # Enable networking networking.networkmanager.enable = true; - # Open kde connect ports - programs.kdeconnect.enable = true; networking.firewall = { enable = true; @@ -15,7 +13,7 @@ }; # Enable CUPS to print documents. - # services.printing.enable = true; + services.printing.enable = true; security.rtkit.enable = true; services.openssh = { @@ -27,4 +25,13 @@ KbdInteractiveAuthentication = false; }; }; + + # Workaround for nm-wait-online hanging?? + # Ref: https://github.com/NixOS/nixpkgs/issues/180175 + systemd.services.NetworkManager-wait-online = { + serviceConfig.ExecStart = [ + "" + "${pkgs.networkmanager}/bin/nm-online -q" + ]; + }; } diff --git a/user/dummy.nix b/user/dummy.nix new file mode 100644 index 0000000..39043dd --- /dev/null +++ b/user/dummy.nix @@ -0,0 +1,8 @@ +{ lib, ... }: +{ + options.my = { + android.enable = lib.mkEnableOption { }; + media-packages.enable = lib.mkEnableOption { }; + containers.enable = lib.mkEnableOption { }; + }; +} diff --git a/user/home.nix b/user/home.nix index 8604efb..c384c60 100644 --- a/user/home.nix +++ b/user/home.nix @@ -8,6 +8,7 @@ }: { imports = [ + ./dummy.nix ./waybar ./helix.nix ./kakoune @@ -127,6 +128,8 @@ unstable.blade-formatter nixfmt-rfc-style + + nix-output-monitor ]; fonts.fontconfig.enable = true; diff --git a/user/sway/default.nix b/user/sway/default.nix index 90f7baf..325cad5 100644 --- a/user/sway/default.nix +++ b/user/sway/default.nix @@ -73,7 +73,7 @@ in }; output = { "*" = { - adaptive_sync = "off"; + adaptive_sync = "on"; bg = "${theme.background} fill"; mode = "1920x1080@144.000Hz"; };