diff --git a/common/default.nix b/common/default.nix index 4f1b79b..03687ef 100644 --- a/common/default.nix +++ b/common/default.nix @@ -3,6 +3,7 @@ { imports = [ ./console.nix + ./virt.nix ./users.nix ]; } diff --git a/common/devel/pkgs.nix b/common/devel/pkgs.nix index af0e362..710ba5d 100644 --- a/common/devel/pkgs.nix +++ b/common/devel/pkgs.nix @@ -6,9 +6,14 @@ # General git # C/C++ + bison gcc cmake + gnumake + ninja + pkgconfig qtcreator + qt5.full # Java gradle diff --git a/common/gui/default.nix b/common/gui/default.nix index e81f131..b17ad78 100644 --- a/common/gui/default.nix +++ b/common/gui/default.nix @@ -20,6 +20,7 @@ services.syncthing.enable = true; services.flatpak.enable = true; xdg.portal.enable = true; + xdg.portal.gtkUsePortal = true; # Input config services.xserver = { diff --git a/common/gui/pkgs.nix b/common/gui/pkgs.nix index fe61b8b..df03193 100644 --- a/common/gui/pkgs.nix +++ b/common/gui/pkgs.nix @@ -1,4 +1,4 @@ -{ pkgs, ...}: +{ pkgs, config, ...}: { environment = { @@ -17,19 +17,46 @@ plasma-nm # KDE plasma and applications - kate + #cuttlefish + discover + # Dependencies for discover + glib-networking + libsoup + # End + kdeApplications.akonadi + kdeApplications.ark + kdeApplications.filelight + kdeApplications.gwenview + kdeApplications.kate + kdeApplications.kdialog + kdeApplications.kmail + kdeApplications.kmail-account-wizard + kdeApplications.kmailtransport + kdeApplications.knotes + kdeApplications.kolourpaint latte-dock # My PC has enough RAM by now - kleopatra - networkmanager + kdeApplications.kleopatra + kdeApplications.korganizer okular + packagekit + packagekit-qt plasma-desktop plasma-integration + plasma5.xdg-desktop-portal-kde sddm + kdeApplications.spectacle + # To show of your distro neofetch # Communication tdesktop + + # Misc + networkmanager + qemu_kvm + virt-manager ]; }; + nixpkgs.config.firefox.enablePlasmaBrowserIntegration = true; } diff --git a/common/pkgs/console-core.nix b/common/pkgs/console-core.nix index a2c4c23..47a7c87 100644 --- a/common/pkgs/console-core.nix +++ b/common/pkgs/console-core.nix @@ -3,7 +3,13 @@ { environment = { systemPackages = with pkgs; [ + docker-compose + file + imagemagick + lsb-release neovim + podman + podman-compose tmux vim ]; diff --git a/common/pkgs/gui.nix b/common/pkgs/gui.nix deleted file mode 100644 index 3570c15..0000000 --- a/common/pkgs/gui.nix +++ /dev/null @@ -1,41 +0,0 @@ -{ pkgs, ...}: - -{ - environment = { - systemPackages = with pkgs; [ - # Internet - firefox - keepassxc - riot-desktop - syncthing - qsyncthingtray - - # Wire(less) internet support - dnsmasq - hostapd - iw - plasma-nm - - # KDE plasma and applications - kate - latte-dock # My PC has enough RAM by now - kleopatra - networkmanager - okular - plasma-desktop - plasma-integration - sddm - # To show of your distro - neofetch - - # Communication - tdesktop - ]; - }; - - #packageOverrides = pkgs: rec { - #latte-dock = pkgs.latte-dock.override (attrs: { - # src = fetc - #}; - #} -} diff --git a/common/virt.nix b/common/virt.nix new file mode 100644 index 0000000..6cea409 --- /dev/null +++ b/common/virt.nix @@ -0,0 +1,84 @@ +{ pkgs, ...}: +{ + boot.kernelModules = ["kvm-intel"]; + # virtualisation.libvirtd.enable = true; + # To map subuid and subguid for your user and allow rootless containers + users.users.chris.extraGroups = [ "docker" ]; + virtualisation = { + + docker = { + enable = true; + + # Create a `docker` alias for podman, to use it as a drop-in replacement + #dockerCompat = true; + }; + }; + + virtualisation.virtualbox.host.enable = true; + virtualisation.virtualbox.host.enableExtensionPack = true; + users.extraGroups.vboxusers.members = [ "chris" ]; + # environment.systemPackages = with pkgs; [ podman runc conmon slirp4netns fuse-overlayfs ]; + # users.users.chris.subUidRanges = [{ startUid = 100000; count = 65536; }]; + # users.users.chris.subGidRanges = [{ startGid = 100000; count = 65536; }]; + # environment.etc."containers/policy.json" = { + # mode="0644"; + # text='' + # { + # "default": [ + # { + # "type": "insecureAcceptAnything" + # } + # ], + # "transports": + # { + # "docker-daemon": + # { + # "": [{"type":"insecureAcceptAnything"}] + # } + # } + # } + # ''; + # }; + + # environment.etc."containers/registries.conf" = { + # mode="0644"; + # text='' + # [registries.search] + # registries = ['docker.io', 'quay.io'] + # ''; + # }; + # environment.etc."cni/net.d/00-loopback.conf".text = '' + # { + # "cniVersion": "0.3.0", + # "type": "loopback" + # } + # ''; + # environment.etc."cni/net.d/87-podman-bridge.conflist".text = '' + # { + # "cniVersion": "0.3.0", + # "name": "podman", + # "plugins": [ + # { + # "type": "bridge", + # "bridge": "cni0", + # "isGateway": true, + # "ipMasq": true, + # "ipam": { + # "type": "host-local", + # "subnet": "10.88.0.0/16", + # "routes": [ + # { "dst": "0.0.0.0/0" } + # ] + # } + # }, + # { + # "type": "portmap", + # "capabilities": { + # "portMappings": true + # } + # } + # ] + # } + # ''; + +}