diff --git a/flake.nix b/flake.nix
index 986ff2a..5a2d3e9 100644
--- a/flake.nix
+++ b/flake.nix
@@ -63,132 +63,133 @@
     , ...
     } @ inputs:
 
-      digga.lib.mkFlake
-        {
-          inherit self inputs;
+    digga.lib.mkFlake
+      {
+        inherit self inputs;
 
-          channelsConfig = { allowUnfree = true; };
+        channelsConfig = { allowUnfree = true; };
 
-          channels =
-            let
-              commonOverlays = [
-                digga.overlays.patchedNix
-                nur.overlay
-                emacs-overlay.overlay
-                nvfetcher.overlay
-                deploy.overlay
-                nixpkgs-wayland.overlay
-                ./pkgs/default.nix
-              ];
-            in
-              {
-                stable = {
-                  imports = [ (digga.lib.importOverlays ./overlays) ];
-                  overlays = commonOverlays;
-                };
-                unstable = {
-                  imports = [ (digga.lib.importOverlays ./overlays) ];
-                  overlays = commonOverlays;
-                };
-              };
-
-          lib = import ./lib { lib = digga.lib // nixos.lib; };
-
-          sharedOverlays = [
-            (
-              final: prev: {
-                __dontExport = true;
-                lib = prev.lib.extend (
-                  lfinal: lprev: {
-                    our = self.lib;
-                  }
-                );
-              }
-            )
-          ];
-
-          nixos = {
-            hostDefaults = {
-              channelName = "unstable";
-              imports = [ (digga.lib.importModules ./modules) ];
-              externalModules = [
-                { lib.our = self.lib; }
-                digga.nixosModules.bootstrapIso
-                digga.nixosModules.nixConfig
-                home.nixosModules.home-manager
-                bud.nixosModules.bud
-              ];
+        channels =
+          let
+            commonOverlays = [
+              digga.overlays.patchedNix
+              nur.overlay
+              emacs-overlay.overlay
+              nvfetcher.overlay
+              deploy.overlay
+              nixpkgs-wayland.overlay
+              ./pkgs/default.nix
+            ];
+          in
+          {
+            stable = {
+              imports = [ (digga.lib.importOverlays ./overlays) ];
+              overlays = commonOverlays;
             };
-            hosts = {
-              # mbp is added bypassing Digga's mkFlake and adding a specific output to this flake
-              pc = {
-                system = "x86_64-linux";
-                imports = [ { modules = ./hosts/pc; } ];
-              };
-              pbp = {
-                system = "aarch64-linux";
-                imports = [ { modules = ./hosts/pbp; } ];
-                modules = [
-                  "${pinebook-pro}/pinebook_pro.nix"
-                ];
-              };
+            unstable = {
+              imports = [ (digga.lib.importOverlays ./overlays) ];
+              overlays = commonOverlays;
             };
-            # imports = [ (digga.lib.importHosts ./hosts) ]; # same reason as above
-            importables = rec {
-              profiles = digga.lib.rakeLeaves ./profiles // {
-                users = digga.lib.rakeLeaves ./users;
-              };
-              suites = with profiles; rec {
-                base = [ core users.ccr users.root ];
-              };
-              pbpKernelLatest = (
-                import pinebook-pro-kernel-latest {
-                  system = "aarch64-linux";
-                  overlays = [
-                    (import "${pinebook-pro}/overlay.nix")
-                  ];
-                  config.allowUnfree = true;
+          };
+
+        lib = import ./lib { lib = digga.lib // nixos.lib; };
+
+        sharedOverlays = [
+          (
+            final: prev: {
+              __dontExport = true;
+              lib = prev.lib.extend (
+                lfinal: lprev: {
+                  our = self.lib;
                 }
-              ).pkgs.linuxPackages_pinebookpro_latest;
+              );
+            }
+          )
+        ];
+
+        nixos = {
+          hostDefaults = {
+            channelName = "unstable";
+            imports = [ (digga.lib.importModules ./modules) ];
+            externalModules = [
+              { lib.our = self.lib; }
+              digga.nixosModules.bootstrapIso
+              digga.nixosModules.nixConfig
+              home.nixosModules.home-manager
+              bud.nixosModules.bud
+            ];
+          };
+          hosts = {
+            # mbp is added bypassing Digga's mkFlake and adding a specific output to this flake
+            pc = {
+              system = "x86_64-linux";
+              imports = [{ modules = ./hosts/pc; }];
+            };
+            pbp = {
+              system = "aarch64-linux";
+              imports = [{ modules = ./hosts/pbp; }];
+              modules = [
+                "${pinebook-pro}/pinebook_pro.nix"
+              ];
             };
           };
-
-          home = {
-            imports = [ (digga.lib.importModules ./users/modules) ];
-            externalModules = [];
-            importables = rec {
-              profiles = digga.lib.rakeLeaves ./users/profiles;
-              suites = with profiles; rec {
-                base = [ direnv git zsh gpg password-store ];
-                shell = [ zsh exa fzf ];
-                gui = [ sway xdg gtk foot bat ];
-                browser = [ firefox chromium qutebrowser ];
-                multimedia = [ mpv zathura ];
-                dev = [ vim emacs vscode lorri direnv ];
-              };
+          # imports = [ (digga.lib.importHosts ./hosts) ]; # same reason as above
+          importables = rec {
+            profiles = digga.lib.rakeLeaves ./profiles // {
+              users = digga.lib.rakeLeaves ./users;
             };
+            suites = with profiles; rec {
+              base = [ core users.ccr users.root ];
+            };
+            pbpKernelLatest = (
+              import pinebook-pro-kernel-latest {
+                system = "aarch64-linux";
+                overlays = [
+                  (import "${pinebook-pro}/overlay.nix")
+                ];
+                config.allowUnfree = true;
+              }
+            ).pkgs.linuxPackages_pinebookpro_latest;
           };
-
-          devshell = ./shell;
-
-          homeConfigurations = digga.lib.mkHomeConfigurations self.nixosConfigurations;
-
-          deploy.nodes = digga.lib.mkDeployNodes self.nixosConfigurations {};
-
-          defaultTemplate = self.templates.bud;
-          templates.bud.path = ./.;
-          templates.bud.description = "bud template";
-
-        }
-      // {
-        budModules = { devos = import ./bud; };
-        # checks.aarch64-linux = { }; # this line will be uncommented by Github Action in order since it can't build aarch64 derivations
-      }
-      // {
-        darwinConfigurations."mbp" = darwin.lib.darwinSystem {
-          system = "x86_64-darwin";
-          modules = [ home.darwinModules.home-manager ./hosts/mbp ];
-          inputs = { inherit darwin; };
         };
+
+        home = {
+          imports = [ (digga.lib.importModules ./users/modules) ];
+          externalModules = [ ];
+          importables = rec {
+            profiles = digga.lib.rakeLeaves ./users/profiles;
+            suites = with profiles; rec {
+              base = [ direnv git zsh gpg password-store ];
+              shell = [ zsh exa fzf ];
+              gui = [ sway xdg gtk foot bat ];
+              browser = [ firefox chromium qutebrowser ];
+              multimedia = [ mpv zathura ];
+              dev = [ vim emacs vscode lorri direnv ];
+            };
+          };
+        };
+
+        devshell = ./shell;
+
+        homeConfigurations = digga.lib.mkHomeConfigurations self.nixosConfigurations;
+
+        deploy.nodes = digga.lib.mkDeployNodes self.nixosConfigurations { };
+
+        defaultTemplate = self.templates.bud;
+        templates.bud.path = ./.;
+        templates.bud.description = "bud template";
+
+      }
+    // {
+      budModules = { devos = import ./bud; };
+      # checks.aarch64-linux = { }; # this line will be uncommented by Github Action in order since it can't build aarch64 derivations
+    }
+    // {
+      darwinConfigurations."mbp" = darwin.lib.darwinSystem {
+        system = "x86_64-darwin";
+        modules = [ home.darwinModules.home-manager ./hosts/mbp ];
+        inputs = { inherit darwin; };
+        specialArgs = { inherit emacs-overlay; };
       };
+    };
 }
diff --git a/hosts/mbp/configuration.nix b/hosts/mbp/configuration.nix
index 94fccdc..2d44543 100644
--- a/hosts/mbp/configuration.nix
+++ b/hosts/mbp/configuration.nix
@@ -1,4 +1,4 @@
-{pkgs, home-manager, ...}:
+{ pkgs, home-manager, emacs-overlay, ... }:
 {
   imports = [
     ../../users/andreaciceri
@@ -14,6 +14,8 @@
     enableSSHSupport = true;
   };
 
+  nixpkgs.overlays = [ (import ../../pkgs) emacs-overlay.overlay ];
+
   nix = {
     package = pkgs.nixUnstable;
     extraOptions = ''
@@ -27,4 +29,4 @@
       options = "--delete-older-than 3d";
     };
   };
-  }
+}
diff --git a/hosts/mbp/default.nix b/hosts/mbp/default.nix
index f8bb144..e9338b2 100644
--- a/hosts/mbp/default.nix
+++ b/hosts/mbp/default.nix
@@ -1,4 +1,4 @@
-{ pkgs, ...}:
+{ pkgs, emacs-overlay, ... }:
 {
   imports = [
     ./configuration.nix
diff --git a/pkgs/default.nix b/pkgs/default.nix
index 8b8e8a5..3484178 100644
--- a/pkgs/default.nix
+++ b/pkgs/default.nix
@@ -1,6 +1,8 @@
 final: prev: {
   # keep sources this first
-  sources = prev.callPackage (import ./_sources/generated.nix) {};
-  customEmacs = prev.callPackage (import ./emacs) {};
+  sources = prev.callPackage (import ./_sources/generated.nix) { };
+  customEmacs = prev.callPackage (import ./emacs) { };
+  ungoogled-chromium = import ./ungoogled-chromium { inherit prev; };
+  vscodium = import ./vscodium { inherit prev; };
   # then, call packages with `final.callPackage`
 }
diff --git a/pkgs/ungoogled-chromium/default.nix b/pkgs/ungoogled-chromium/default.nix
new file mode 100644
index 0000000..0a776f7
--- /dev/null
+++ b/pkgs/ungoogled-chromium/default.nix
@@ -0,0 +1,10 @@
+{ prev, pkgs, ... }:
+
+prev.runCommandNoCC "wrap-chromium"
+{ buildInputs = with pkgs; [ makeWrapper ]; }
+  ''
+    makeWrapper ${c}/bin/chromium $out/bin/chromium \
+      --add-flags "--enable-features=UseOzonePlatform" \
+      --add-flags "--ozone-platform=wayland"
+    ln -sf ${c}/share $out/share
+  ''
diff --git a/pkgs/vscodium/default.nix b/pkgs/vscodium/default.nix
new file mode 100644
index 0000000..af087a5
--- /dev/null
+++ b/pkgs/vscodium/default.nix
@@ -0,0 +1,10 @@
+{ prev, pkgs, ... }:
+
+prev.runCommandNoCC "codium"
+{ buildInputs = with pkgs; [ makeWrapper ]; }
+  ''
+    makeWrapper ${prev.vscodium}/bin/codium $out/bin/codium \
+      --add-flags "--enable-features=UseOzonePlatform" \
+      --add-flags "--ozone-platform=wayland"
+    ln -sf ${prev.vscodium}/share $out/share
+  ''
diff --git a/profiles/chromecast/default.nix b/profiles/chromecast/default.nix
new file mode 100644
index 0000000..696ff4b
--- /dev/null
+++ b/profiles/chromecast/default.nix
@@ -0,0 +1,7 @@
+{
+  config = {
+    networking.firewall.extraCommands = ''
+      iptables -I INPUT -p udp -m udp --dport 32768:60999 -j ACCEPT
+    '';
+  };
+}
diff --git a/users/andreaciceri/default.nix b/users/andreaciceri/default.nix
index a1f2ed7..7eb3fd9 100644
--- a/users/andreaciceri/default.nix
+++ b/users/andreaciceri/default.nix
@@ -1,15 +1,15 @@
-{ config, lib, pkgs, ... }: {
-  home-manager.users."andreaciceri" = {...}: {
+{ config, lib, pkgs, emacs-overlay, ... }: {
+  home-manager.users."andreaciceri" = { ... }: {
     imports = [
       ../profiles/bat
       ../profiles/fzf
       ../profiles/zsh
       ../profiles/direnv
       ../profiles/exa
+      ../profiles/emacs
     ];
     home.packages = with pkgs; [
       yarn
     ];
   };
-
 }
diff --git a/users/profiles/emacs/default.nix b/users/profiles/emacs/default.nix
index 0ab17ea..ca892e7 100644
--- a/users/profiles/emacs/default.nix
+++ b/users/profiles/emacs/default.nix
@@ -12,10 +12,9 @@
   };
 
   home.packages = with pkgs; [
-    python-language-server
     fd
     ag
     nixpkgs-fmt
     rnix-lsp
-  ];
+  ] ++ (if config.network.hostname != "mbp" then python-language-server else [ ]);
 }