diff --git a/configurations/home-manager/eve/default.nix b/configurations/home-manager/eve/default.nix
index 7dedb68..b2ae492 100644
--- a/configurations/home-manager/eve/default.nix
+++ b/configurations/home-manager/eve/default.nix
@@ -80,7 +80,7 @@ in {
       userEmail = "evesnrobins@gmail.com";
       extraConfig.init.defaultBranch = "main";
     };
-    
+
     vscode = {
       enable = true;
       package = pkgs.vscodium;
diff --git a/configurations/home-manager/leyla/default.nix b/configurations/home-manager/leyla/default.nix
index 0c90ab1..90251a3 100644
--- a/configurations/home-manager/leyla/default.nix
+++ b/configurations/home-manager/leyla/default.nix
@@ -1,8 +1,4 @@
-{
-  osConfig,
-  config,
-  ...
-}: {
+{osConfig, ...}: {
   imports = [
     ./i18n.nix
     ./packages.nix
@@ -108,44 +104,5 @@
         };
       };
     };
-
-    programs = {
-      # Let Home Manager install and manage itself.
-      home-manager.enable = true;
-
-      # set up git defaults
-      git = {
-        enable = true;
-        userName = "Leyla Becker";
-        userEmail = "git@jan-leila.com";
-        extraConfig.init.defaultBranch = "main";
-      };
-
-      # add direnv to auto load flakes for development
-      direnv = {
-        enable = true;
-        enableBashIntegration = true;
-        nix-direnv.enable = true;
-        config = {
-          global.hide_env_diff = true;
-          whitelist.exact = ["/home/leyla/documents/code/nix-config"];
-        };
-      };
-      bash.enable = true;
-
-      openssh = {
-        authorizedKeys = [
-          "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIJHeItmt8TRW43uNcOC+eIurYC7Eunc0V3LGocQqLaYj leyla@horizon"
-          "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIILimFIW2exEH/Xo7LtXkqgE04qusvnPNpPWSCeNrFkP leyla@defiant"
-          "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIKBiZkg1c2aaNHiieBX4cEziqvJVj9pcDfzUrKU/mO0I leyla@twilight"
-        ];
-        hostKeys = [
-          {
-            type = "ed25519";
-            path = "${config.home.username}_${osConfig.networking.hostName}_ed25519";
-          }
-        ];
-      };
-    };
   };
 }
diff --git a/configurations/home-manager/leyla/firefox.nix b/configurations/home-manager/leyla/firefox.nix
index 4f8c624..0adea28 100644
--- a/configurations/home-manager/leyla/firefox.nix
+++ b/configurations/home-manager/leyla/firefox.nix
@@ -2,340 +2,345 @@
   lib,
   pkgs,
   inputs,
+  osConfig,
   ...
-}: {
-  programs.firefox = {
-    enable = true;
-    profiles.leyla = {
-      settings = {
-        "browser.search.defaultenginename" = "Searx";
-        "browser.search.order.1" = "Searx";
-      };
+}: let
+  is-desktop-user = osConfig.host.users.leyla.isDesktopUser;
+in {
+  config = lib.mkIf is-desktop-user {
+    programs.firefox = {
+      enable = true;
+      profiles.leyla = {
+        settings = {
+          "browser.search.defaultenginename" = "Searx";
+          "browser.search.order.1" = "Searx";
+        };
 
-      search = {
-        force = true;
-        default = "Searx";
-        engines = {
-          "Nix Packages" = {
-            urls = [
-              {
-                template = "https://search.nixos.org/packages";
-                params = [
-                  {
-                    name = "type";
-                    value = "packages";
-                  }
-                  {
-                    name = "query";
-                    value = "{searchTerms}";
-                  }
-                ];
-              }
-            ];
-            icon = "''${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg";
-            definedAliases = ["@np"];
-          };
-          "NixOS Wiki" = {
-            urls = [{template = "https://nixos.wiki/index.php?search={searchTerms}";}];
-            icon = "https://nixos.wiki/favicon.png";
-            updateInterval = 24 * 60 * 60 * 1000; # every day
-            definedAliases = ["@nw"];
-          };
-          "Searx" = {
-            urls = [{template = "https://search.jan-leila.com/?q={searchTerms}";}];
-            icon = "https://nixos.wiki/favicon.png";
-            updateInterval = 24 * 60 * 60 * 1000; # every day
-            definedAliases = ["@searx"];
+        search = {
+          force = true;
+          default = "Searx";
+          engines = {
+            "Nix Packages" = {
+              urls = [
+                {
+                  template = "https://search.nixos.org/packages";
+                  params = [
+                    {
+                      name = "type";
+                      value = "packages";
+                    }
+                    {
+                      name = "query";
+                      value = "{searchTerms}";
+                    }
+                  ];
+                }
+              ];
+              icon = "''${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg";
+              definedAliases = ["@np"];
+            };
+            "NixOS Wiki" = {
+              urls = [{template = "https://nixos.wiki/index.php?search={searchTerms}";}];
+              icon = "https://nixos.wiki/favicon.png";
+              updateInterval = 24 * 60 * 60 * 1000; # every day
+              definedAliases = ["@nw"];
+            };
+            "Searx" = {
+              urls = [{template = "https://search.jan-leila.com/?q={searchTerms}";}];
+              icon = "https://nixos.wiki/favicon.png";
+              updateInterval = 24 * 60 * 60 * 1000; # every day
+              definedAliases = ["@searx"];
+            };
           };
         };
-      };
 
-      extensions.packages = with inputs.firefox-addons.packages.${pkgs.system}; [
-        bitwarden
-        terms-of-service-didnt-read
-        multi-account-containers
-        shinigami-eyes
+        extensions.packages = with inputs.firefox-addons.packages.${pkgs.system}; [
+          bitwarden
+          terms-of-service-didnt-read
+          multi-account-containers
+          shinigami-eyes
 
-        ublock-origin
-        sponsorblock
-        dearrow
-        df-youtube
-        return-youtube-dislikes
+          ublock-origin
+          sponsorblock
+          dearrow
+          df-youtube
+          return-youtube-dislikes
 
-        privacy-badger
-        decentraleyes
-        clearurls
-        localcdn
+          privacy-badger
+          decentraleyes
+          clearurls
+          localcdn
 
-        snowflake
+          snowflake
 
-        deutsch-de-language-pack
-        dictionary-german
+          deutsch-de-language-pack
+          dictionary-german
 
-        # (
-        #   buildFirefoxXpiAddon rec {
-        #     pname = "italiano-it-language-pack";
-        #     version = "132.0.20241110.231641";
-        #     addonId = "langpack-it@firefox.mozilla.org";
-        #     url = "https://addons.mozilla.org/firefox/downloads/file/4392453/italiano_it_language_pack-${version}.xpi";
-        #     sha256 = "";
-        #     meta = with lib;
-        #     {
-        #       description = "Firefox Language Pack for Italiano (it) – Italian";
-        #       license = licenses.mpl20;
-        #       mozPermissions = [];
-        #       platforms = platforms.all;
-        #     };
-        #   }
-        # )
-        # (
-        #   buildFirefoxXpiAddon rec {
-        #     pname = "dizionario-italiano";
-        #     version = "5.1";
-        #     addonId = "it-IT@dictionaries.addons.mozilla.org";
-        #     url = "https://addons.mozilla.org/firefox/downloads/file/1163874/dizionario_italiano-${version}.xpi";
-        #     sha256 = "";
-        #     meta = with lib;
-        #     {
-        #       description = "Add support for Italian to spellchecking";
-        #       license = licenses.gpl3;
-        #       mozPermissions = [];
-        #       platforms = platforms.all;
-        #     };
-        #   }
-        # )
-      ];
+          # (
+          #   buildFirefoxXpiAddon rec {
+          #     pname = "italiano-it-language-pack";
+          #     version = "132.0.20241110.231641";
+          #     addonId = "langpack-it@firefox.mozilla.org";
+          #     url = "https://addons.mozilla.org/firefox/downloads/file/4392453/italiano_it_language_pack-${version}.xpi";
+          #     sha256 = "";
+          #     meta = with lib;
+          #     {
+          #       description = "Firefox Language Pack for Italiano (it) – Italian";
+          #       license = licenses.mpl20;
+          #       mozPermissions = [];
+          #       platforms = platforms.all;
+          #     };
+          #   }
+          # )
+          # (
+          #   buildFirefoxXpiAddon rec {
+          #     pname = "dizionario-italiano";
+          #     version = "5.1";
+          #     addonId = "it-IT@dictionaries.addons.mozilla.org";
+          #     url = "https://addons.mozilla.org/firefox/downloads/file/1163874/dizionario_italiano-${version}.xpi";
+          #     sha256 = "";
+          #     meta = with lib;
+          #     {
+          #       description = "Add support for Italian to spellchecking";
+          #       license = licenses.gpl3;
+          #       mozPermissions = [];
+          #       platforms = platforms.all;
+          #     };
+          #   }
+          # )
+        ];
 
-      settings = {
-        # Disable irritating first-run stuff
-        "browser.disableResetPrompt" = true;
-        "browser.download.panel.shown" = true;
-        "browser.feeds.showFirstRunUI" = false;
-        "browser.messaging-system.whatsNewPanel.enabled" = false;
-        "browser.rights.3.shown" = true;
-        "browser.shell.checkDefaultBrowser" = false;
-        "browser.shell.defaultBrowserCheckCount" = 1;
-        "browser.startup.homepage_override.mstone" = "ignore";
-        "browser.uitour.enabled" = false;
-        "startup.homepage_override_url" = "";
-        "trailhead.firstrun.didSeeAboutWelcome" = true;
-        "browser.bookmarks.restore_default_bookmarks" = false;
-        "browser.bookmarks.addedImportButton" = true;
-        "browser.newtabpage.activity-stream.feeds.section.topstories" = false;
+        settings = {
+          # Disable irritating first-run stuff
+          "browser.disableResetPrompt" = true;
+          "browser.download.panel.shown" = true;
+          "browser.feeds.showFirstRunUI" = false;
+          "browser.messaging-system.whatsNewPanel.enabled" = false;
+          "browser.rights.3.shown" = true;
+          "browser.shell.checkDefaultBrowser" = false;
+          "browser.shell.defaultBrowserCheckCount" = 1;
+          "browser.startup.homepage_override.mstone" = "ignore";
+          "browser.uitour.enabled" = false;
+          "startup.homepage_override_url" = "";
+          "trailhead.firstrun.didSeeAboutWelcome" = true;
+          "browser.bookmarks.restore_default_bookmarks" = false;
+          "browser.bookmarks.addedImportButton" = true;
+          "browser.newtabpage.activity-stream.feeds.section.topstories" = false;
 
-        # Usage Experience
-        "browser.startup.homepage" = "about:home";
-        "browser.download.useDownloadDir" = false;
-        "browser.uiCustomization.state" = builtins.toJSON {
-          "currentVersion" = 20;
-          "newElementCount" = 6;
-          "dirtyAreaCache" = [
-            "nav-bar"
-            "PersonalToolbar"
-            "toolbar-menubar"
-            "TabsToolbar"
-            "unified-extensions-area"
-            "vertical-tabs"
-          ];
-          "placements" = {
-            "widget-overflow-fixed-list" = [];
-            "unified-extensions-area" = [
+          # Usage Experience
+          "browser.startup.homepage" = "about:home";
+          "browser.download.useDownloadDir" = false;
+          "browser.uiCustomization.state" = builtins.toJSON {
+            "currentVersion" = 20;
+            "newElementCount" = 6;
+            "dirtyAreaCache" = [
+              "nav-bar"
+              "PersonalToolbar"
+              "toolbar-menubar"
+              "TabsToolbar"
+              "unified-extensions-area"
+              "vertical-tabs"
+            ];
+            "placements" = {
+              "widget-overflow-fixed-list" = [];
+              "unified-extensions-area" = [
+                "privacy_privacy_com-browser-action"
+                # bitwarden
+                "_446900e4-71c2-419f-a6a7-df9c091e268b_-browser-action"
+                "ublock0_raymondhill_net-browser-action"
+                "sponsorblocker_ajay_app-browser-action"
+                "dearrow_ajay_app-browser-action"
+                "jid1-mnnxcxisbpnsxq_jetpack-browser-action"
+                "_testpilot-containers-browser-action"
+                "addon_simplelogin-browser-action"
+                "_74145f27-f039-47ce-a470-a662b129930a_-browser-action"
+                "jid1-bofifl9vbdl2zq_jetpack-browser-action"
+                "dfyoutube_example_com-browser-action"
+                "_b86e4813-687a-43e6-ab65-0bde4ab75758_-browser-action"
+                "_762f9885-5a13-4abd-9c77-433dcd38b8fd_-browser-action"
+                "_b11bea1f-a888-4332-8d8a-cec2be7d24b9_-browse-action"
+                "jid0-3guet1r69sqnsrca5p8kx9ezc3u_jetpack-browser-action"
+              ];
+              "nav-bar" = [
+                "back-button"
+                "forward-button"
+                "stop-reload-button"
+                "urlbar-container"
+                "downloads-button"
+                "unified-extensions-button"
+                "reset-pbm-toolbar-button"
+              ];
+              "toolbar-menubar" = [
+                "menubar-items"
+              ];
+              "TabsToolbar" = [
+                "firefox-view-button"
+                "tabbrowser-tabs"
+                "new-tab-button"
+                "alltabs-button"
+              ];
+              "vertical-tabs" = [];
+              "PersonalToolbar" = [
+                "import-button"
+                "personal-bookmarks"
+              ];
+            };
+            "seen" = [
+              "save-to-pocket-button"
+              "developer-button"
               "privacy_privacy_com-browser-action"
-              # bitwarden
-              "_446900e4-71c2-419f-a6a7-df9c091e268b_-browser-action"
-              "ublock0_raymondhill_net-browser-action"
               "sponsorblocker_ajay_app-browser-action"
-              "dearrow_ajay_app-browser-action"
-              "jid1-mnnxcxisbpnsxq_jetpack-browser-action"
-              "_testpilot-containers-browser-action"
+              "ublock0_raymondhill_net-browser-action"
               "addon_simplelogin-browser-action"
+              "dearrow_ajay_app-browser-action"
+              "_446900e4-71c2-419f-a6a7-df9c091e268b_-browser-action"
               "_74145f27-f039-47ce-a470-a662b129930a_-browser-action"
               "jid1-bofifl9vbdl2zq_jetpack-browser-action"
               "dfyoutube_example_com-browser-action"
+              "_testpilot-containers-browser-action"
               "_b86e4813-687a-43e6-ab65-0bde4ab75758_-browser-action"
+              "jid1-mnnxcxisbpnsxq_jetpack-browser-action"
               "_762f9885-5a13-4abd-9c77-433dcd38b8fd_-browser-action"
-              "_b11bea1f-a888-4332-8d8a-cec2be7d24b9_-browse-action"
+              "_b11bea1f-a888-4332-8d8a-cec2be7d24b9_-browser-action"
               "jid0-3guet1r69sqnsrca5p8kx9ezc3u_jetpack-browser-action"
             ];
-            "nav-bar" = [
-              "back-button"
-              "forward-button"
-              "stop-reload-button"
-              "urlbar-container"
-              "downloads-button"
-              "unified-extensions-button"
-              "reset-pbm-toolbar-button"
-            ];
-            "toolbar-menubar" = [
-              "menubar-items"
-            ];
-            "TabsToolbar" = [
-              "firefox-view-button"
-              "tabbrowser-tabs"
-              "new-tab-button"
-              "alltabs-button"
-            ];
-            "vertical-tabs" = [];
-            "PersonalToolbar" = [
-              "import-button"
-              "personal-bookmarks"
-            ];
           };
-          "seen" = [
-            "save-to-pocket-button"
-            "developer-button"
-            "privacy_privacy_com-browser-action"
-            "sponsorblocker_ajay_app-browser-action"
-            "ublock0_raymondhill_net-browser-action"
-            "addon_simplelogin-browser-action"
-            "dearrow_ajay_app-browser-action"
-            "_446900e4-71c2-419f-a6a7-df9c091e268b_-browser-action"
-            "_74145f27-f039-47ce-a470-a662b129930a_-browser-action"
-            "jid1-bofifl9vbdl2zq_jetpack-browser-action"
-            "dfyoutube_example_com-browser-action"
-            "_testpilot-containers-browser-action"
-            "_b86e4813-687a-43e6-ab65-0bde4ab75758_-browser-action"
-            "jid1-mnnxcxisbpnsxq_jetpack-browser-action"
-            "_762f9885-5a13-4abd-9c77-433dcd38b8fd_-browser-action"
-            "_b11bea1f-a888-4332-8d8a-cec2be7d24b9_-browser-action"
-            "jid0-3guet1r69sqnsrca5p8kx9ezc3u_jetpack-browser-action"
+          "browser.newtabpage.activity-stream.feeds.topsites" = false;
+          "browser.newtabpage.activity-stream.showSponsoredTopSites" = false;
+          "browser.newtabpage.activity-stream.improvesearch.topSiteSearchShortcuts" = false;
+          "browser.newtabpage.blocked" = lib.genAttrs [
+            # Facebook
+            "4gPpjkxgZzXPVtuEoAL9Ig=="
+            # Reddit
+            "gLv0ja2RYVgxKdp0I5qwvA=="
+            # Amazon
+            "K00ILysCaEq8+bEqV/3nuw=="
+            # Twitter
+            "T9nJot5PurhJSy8n038xGA=="
+          ] (_: 1);
+          "identity.fxaccounts.enabled" = false;
+
+          # Security
+          "privacy.trackingprotection.enabled" = true;
+          "dom.security.https_only_mode" = true;
+
+          "extensions.formautofill.addresses.enabled" = false;
+          "extensions.formautofill.creditCards.enabled" = false;
+          "signon.rememberSignons" = false;
+          "privacy.sanitize.sanitizeOnShutdown" = true;
+          "privacy.clearOnShutdown_v2.cache" = true;
+          "privacy.clearOnShutdown_v2.cookiesAndStorage" = true;
+          "privacy.clearOnShutdown_v2.historyFormDataAndDownloads" = true;
+          "urlclassifier.trackingSkipURLs" = "";
+          "urlclassifier.features.socialtracking.skipURLs" = "";
+          "dom.security.https_only_mode_pbm" = true;
+          "dom.security.https_only_mode_error_page_user_suggestions" = true;
+
+          # Disable telemetry
+          "app.shield.optoutstudies.enabled" = false;
+          "browser.discovery.enabled" = false;
+          "browser.newtabpage.activity-stream.feeds.telemetry" = false;
+          "browser.newtabpage.activity-stream.telemetry" = false;
+          "browser.ping-centre.telemetry" = false;
+          "datareporting.healthreport.service.enabled" = false;
+          "datareporting.healthreport.uploadEnabled" = false;
+          "datareporting.policy.dataSubmissionEnabled" = false;
+          "datareporting.sessions.current.clean" = true;
+          "devtools.onboarding.telemetry.logged" = false;
+          "toolkit.telemetry.archive.enabled" = false;
+          "toolkit.telemetry.bhrPing.enabled" = false;
+          "toolkit.telemetry.enabled" = false;
+          "toolkit.telemetry.firstShutdownPing.enabled" = false;
+          "toolkit.telemetry.hybridContent.enabled" = false;
+          "toolkit.telemetry.newProfilePing.enabled" = false;
+          "toolkit.telemetry.prompted" = 2;
+          "toolkit.telemetry.rejected" = true;
+          "toolkit.telemetry.reportingpolicy.firstRun" = false;
+          "toolkit.telemetry.server" = "";
+          "toolkit.telemetry.shutdownPingSender.enabled" = false;
+          "toolkit.telemetry.unified" = false;
+          "toolkit.telemetry.unifiedIsOptIn" = false;
+          "toolkit.telemetry.updatePing.enabled" = false;
+        };
+
+        bookmarks = {
+          force = true;
+          settings = [
+            {
+              name = "Media";
+              url = "https://media.jan-leila.com/";
+              keyword = "";
+              tags = [""];
+            }
+            {
+              name = "Photos";
+              url = "https://photos.jan-leila.com";
+              keyword = "";
+              tags = [""];
+            }
+            {
+              name = "Git";
+              url = "https://git.jan-leila.com/";
+              keyword = "";
+              tags = [""];
+            }
+            {
+              name = "Home Automation";
+              url = "https://home.jan-leila.com/";
+              keyword = "";
+              tags = [""];
+            }
+            {
+              name = "Mail";
+              url = "https://mail.protonmail.com";
+              keyword = "";
+              tags = [""];
+            }
+            {
+              name = "Open Street Map";
+              url = "https://www.openstreetmap.org/";
+              keyword = "";
+              tags = [""];
+            }
+            {
+              name = "Password Manager";
+              url = "https://vault.bitwarden.com/";
+              keyword = "";
+              tags = [""];
+            }
+            {
+              name = "Mastodon";
+              url = "https://mspsocial.net";
+              keyword = "";
+              tags = [""];
+            }
+            {
+              name = "Linked In";
+              url = "https://www.linkedin.com/";
+              keyword = "";
+              tags = [""];
+            }
+            {
+              name = "Job Search";
+              url = "https://www.jobsinnetwork.com/?state=cleaned_history&language%5B%5D=en&query=react&locations.countryCode%5B%5D=IT&locations.countryCode%5B%5D=DE&locations.countryCode%5B%5D=NL&experience%5B%5D=medior&experience%5B%5D=junior&page=1";
+              keyword = "";
+              tags = [""];
+            }
+            {
+              name = "React Docs";
+              url = "https://react.dev/";
+              keyword = "";
+              tags = [""];
+            }
+            # Template
+            # {
+            #   name = "";
+            #   url = "";
+            #   keyword = "";
+            #   tags = [""];
+            # }
           ];
         };
-        "browser.newtabpage.activity-stream.feeds.topsites" = false;
-        "browser.newtabpage.activity-stream.showSponsoredTopSites" = false;
-        "browser.newtabpage.activity-stream.improvesearch.topSiteSearchShortcuts" = false;
-        "browser.newtabpage.blocked" = lib.genAttrs [
-          # Facebook
-          "4gPpjkxgZzXPVtuEoAL9Ig=="
-          # Reddit
-          "gLv0ja2RYVgxKdp0I5qwvA=="
-          # Amazon
-          "K00ILysCaEq8+bEqV/3nuw=="
-          # Twitter
-          "T9nJot5PurhJSy8n038xGA=="
-        ] (_: 1);
-        "identity.fxaccounts.enabled" = false;
-
-        # Security
-        "privacy.trackingprotection.enabled" = true;
-        "dom.security.https_only_mode" = true;
-
-        "extensions.formautofill.addresses.enabled" = false;
-        "extensions.formautofill.creditCards.enabled" = false;
-        "signon.rememberSignons" = false;
-        "privacy.sanitize.sanitizeOnShutdown" = true;
-        "privacy.clearOnShutdown_v2.cache" = true;
-        "privacy.clearOnShutdown_v2.cookiesAndStorage" = true;
-        "privacy.clearOnShutdown_v2.historyFormDataAndDownloads" = true;
-        "urlclassifier.trackingSkipURLs" = "";
-        "urlclassifier.features.socialtracking.skipURLs" = "";
-        "dom.security.https_only_mode_pbm" = true;
-        "dom.security.https_only_mode_error_page_user_suggestions" = true;
-
-        # Disable telemetry
-        "app.shield.optoutstudies.enabled" = false;
-        "browser.discovery.enabled" = false;
-        "browser.newtabpage.activity-stream.feeds.telemetry" = false;
-        "browser.newtabpage.activity-stream.telemetry" = false;
-        "browser.ping-centre.telemetry" = false;
-        "datareporting.healthreport.service.enabled" = false;
-        "datareporting.healthreport.uploadEnabled" = false;
-        "datareporting.policy.dataSubmissionEnabled" = false;
-        "datareporting.sessions.current.clean" = true;
-        "devtools.onboarding.telemetry.logged" = false;
-        "toolkit.telemetry.archive.enabled" = false;
-        "toolkit.telemetry.bhrPing.enabled" = false;
-        "toolkit.telemetry.enabled" = false;
-        "toolkit.telemetry.firstShutdownPing.enabled" = false;
-        "toolkit.telemetry.hybridContent.enabled" = false;
-        "toolkit.telemetry.newProfilePing.enabled" = false;
-        "toolkit.telemetry.prompted" = 2;
-        "toolkit.telemetry.rejected" = true;
-        "toolkit.telemetry.reportingpolicy.firstRun" = false;
-        "toolkit.telemetry.server" = "";
-        "toolkit.telemetry.shutdownPingSender.enabled" = false;
-        "toolkit.telemetry.unified" = false;
-        "toolkit.telemetry.unifiedIsOptIn" = false;
-        "toolkit.telemetry.updatePing.enabled" = false;
-      };
-
-      bookmarks = {
-        force = true;
-        settings = [
-          {
-            name = "Media";
-            url = "https://media.jan-leila.com/";
-            keyword = "";
-            tags = [""];
-          }
-          {
-            name = "Photos";
-            url = "https://photos.jan-leila.com";
-            keyword = "";
-            tags = [""];
-          }
-          {
-            name = "Git";
-            url = "https://git.jan-leila.com/";
-            keyword = "";
-            tags = [""];
-          }
-          {
-            name = "Home Automation";
-            url = "https://home.jan-leila.com/";
-            keyword = "";
-            tags = [""];
-          }
-          {
-            name = "Mail";
-            url = "https://mail.protonmail.com";
-            keyword = "";
-            tags = [""];
-          }
-          {
-            name = "Open Street Map";
-            url = "https://www.openstreetmap.org/";
-            keyword = "";
-            tags = [""];
-          }
-          {
-            name = "Password Manager";
-            url = "https://vault.bitwarden.com/";
-            keyword = "";
-            tags = [""];
-          }
-          {
-            name = "Mastodon";
-            url = "https://mspsocial.net";
-            keyword = "";
-            tags = [""];
-          }
-          {
-            name = "Linked In";
-            url = "https://www.linkedin.com/";
-            keyword = "";
-            tags = [""];
-          }
-          {
-            name = "Job Search";
-            url = "https://www.jobsinnetwork.com/?state=cleaned_history&language%5B%5D=en&query=react&locations.countryCode%5B%5D=IT&locations.countryCode%5B%5D=DE&locations.countryCode%5B%5D=NL&experience%5B%5D=medior&experience%5B%5D=junior&page=1";
-            keyword = "";
-            tags = [""];
-          }
-          {
-            name = "React Docs";
-            url = "https://react.dev/";
-            keyword = "";
-            tags = [""];
-          }
-          # Template
-          # {
-          #   name = "";
-          #   url = "";
-          #   keyword = "";
-          #   tags = [""];
-          # }
-        ];
       };
     };
   };
diff --git a/configurations/home-manager/leyla/packages.nix b/configurations/home-manager/leyla/packages.nix
index 13263ea..e9ab230 100644
--- a/configurations/home-manager/leyla/packages.nix
+++ b/configurations/home-manager/leyla/packages.nix
@@ -1,5 +1,6 @@
 {
   lib,
+  config,
   osConfig,
   pkgs,
   ...
@@ -12,22 +13,22 @@ in {
     ./firefox.nix
   ];
 
-  nixpkgs.config = {
-    allowUnfree = true;
-  };
+  config = lib.mkMerge [
+    (lib.mkIf userConfig.isTerminalUser {
+      home.packages = with pkgs; [
+        # command line tools
+        sox
+        yt-dlp
+        ffmpeg
+        imagemagick
+      ];
+    })
+    (lib.mkIf userConfig.isDesktopUser {
+      nixpkgs.config = {
+        allowUnfree = true;
+      };
 
-  home = {
-    packages =
-      lib.lists.optionals userConfig.isTerminalUser (
-        with pkgs; [
-          # command line tools
-          sox
-          yt-dlp
-          ffmpeg
-          imagemagick
-        ]
-      )
-      ++ (
+      home.packages = (
         lib.lists.optionals userConfig.isDesktopUser (
           (with pkgs; [
             # helvetica font
@@ -91,5 +92,44 @@ in {
           )
         )
       );
-  };
+      programs = lib.mkIf userConfig.isDesktopUser {
+        # Let Home Manager install and manage itself.
+        home-manager.enable = true;
+
+        # set up git defaults
+        git = {
+          enable = true;
+          userName = "Leyla Becker";
+          userEmail = "git@jan-leila.com";
+          extraConfig.init.defaultBranch = "main";
+        };
+
+        # add direnv to auto load flakes for development
+        direnv = {
+          enable = true;
+          enableBashIntegration = true;
+          nix-direnv.enable = true;
+          config = {
+            global.hide_env_diff = true;
+            whitelist.exact = ["/home/leyla/documents/code/nix-config"];
+          };
+        };
+        bash.enable = true;
+
+        openssh = {
+          authorizedKeys = [
+            "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIJHeItmt8TRW43uNcOC+eIurYC7Eunc0V3LGocQqLaYj leyla@horizon"
+            "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIILimFIW2exEH/Xo7LtXkqgE04qusvnPNpPWSCeNrFkP leyla@defiant"
+            "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIKBiZkg1c2aaNHiieBX4cEziqvJVj9pcDfzUrKU/mO0I leyla@twilight"
+          ];
+          hostKeys = [
+            {
+              type = "ed25519";
+              path = "${config.home.username}_${osConfig.networking.hostName}_ed25519";
+            }
+          ];
+        };
+      };
+    })
+  ];
 }
diff --git a/configurations/home-manager/leyla/vscode/default.nix b/configurations/home-manager/leyla/vscode/default.nix
index 2f3c455..c2ee066 100644
--- a/configurations/home-manager/leyla/vscode/default.nix
+++ b/configurations/home-manager/leyla/vscode/default.nix
@@ -8,110 +8,113 @@
 }: let
   nix-development-enabled = osConfig.host.nix-development.enable;
   ai-tooling-enabled = config.user.continue.enable && osConfig.host.ai.enable;
+  is-desktop-user = osConfig.host.users.leyla.isDesktopUser;
 in {
-  nixpkgs = {
-    overlays = [
-      inputs.nix-vscode-extensions.overlays.default
-    ];
-  };
-
-  programs = {
-    bash.shellAliases = {
-      code = "codium";
+  config = lib.mkIf is-desktop-user {
+    nixpkgs = {
+      overlays = [
+        inputs.nix-vscode-extensions.overlays.default
+      ];
     };
 
-    vscode = let
-      extensions = inputs.nix-vscode-extensions.extensions.${pkgs.system};
-      open-vsx = extensions.open-vsx;
-      vscode-marketplace = extensions.vscode-marketplace;
-    in {
-      enable = true;
+    programs = {
+      bash.shellAliases = {
+        code = "codium";
+      };
 
-      package = pkgs.vscodium;
+      vscode = let
+        extensions = inputs.nix-vscode-extensions.extensions.${pkgs.system};
+        open-vsx = extensions.open-vsx;
+        vscode-marketplace = extensions.vscode-marketplace;
+      in {
+        enable = true;
 
-      mutableExtensionsDir = false;
+        package = pkgs.vscodium;
 
-      profiles.default = {
-        enableUpdateCheck = false;
-        enableExtensionUpdateCheck = false;
+        mutableExtensionsDir = false;
 
-        userSettings = lib.mkMerge [
-          {
-            "workbench.colorTheme" = "Atom One Dark";
-            "cSpell.userWords" = import ./user-words.nix;
-            "javascript.updateImportsOnFileMove.enabled" = "always";
-            "editor.tabSize" = 2;
-            "editor.insertSpaces" = false;
-          }
-          (lib.mkIf nix-development-enabled {
-            "nix.enableLanguageServer" = true;
-            "nix.serverPath" = "nil";
-            "[nix]" = {
-              "editor.defaultFormatter" = "kamadorueda.alejandra";
-              "editor.formatOnPaste" = true;
-              "editor.formatOnSave" = true;
-              "editor.formatOnType" = true;
-            };
-            "alejandra.program" = "alejandra";
-            "nixpkgs" = {
-              "expr" = "import <nixpkgs> {}";
-            };
-          })
-          (lib.mkIf ai-tooling-enabled {
-            "continue.telemetryEnabled" = false;
-          })
-        ];
+        profiles.default = {
+          enableUpdateCheck = false;
+          enableExtensionUpdateCheck = false;
 
-        extensions = (
-          with open-vsx;
-            [
-              # vs code feel extensions
-              ms-vscode.atom-keybindings
-              akamud.vscode-theme-onedark
-              streetsidesoftware.code-spell-checker
-              streetsidesoftware.code-spell-checker-german
-              streetsidesoftware.code-spell-checker-italian
-              jeanp413.open-remote-ssh
+          userSettings = lib.mkMerge [
+            {
+              "workbench.colorTheme" = "Atom One Dark";
+              "cSpell.userWords" = import ./user-words.nix;
+              "javascript.updateImportsOnFileMove.enabled" = "always";
+              "editor.tabSize" = 2;
+              "editor.insertSpaces" = false;
+            }
+            (lib.mkIf nix-development-enabled {
+              "nix.enableLanguageServer" = true;
+              "nix.serverPath" = "nil";
+              "[nix]" = {
+                "editor.defaultFormatter" = "kamadorueda.alejandra";
+                "editor.formatOnPaste" = true;
+                "editor.formatOnSave" = true;
+                "editor.formatOnType" = true;
+              };
+              "alejandra.program" = "alejandra";
+              "nixpkgs" = {
+                "expr" = "import <nixpkgs> {}";
+              };
+            })
+            (lib.mkIf ai-tooling-enabled {
+              "continue.telemetryEnabled" = false;
+            })
+          ];
 
-              # html extensions
-              formulahendry.auto-rename-tag
-              ms-vscode.live-server
+          extensions = (
+            with open-vsx;
+              [
+                # vs code feel extensions
+                ms-vscode.atom-keybindings
+                akamud.vscode-theme-onedark
+                streetsidesoftware.code-spell-checker
+                streetsidesoftware.code-spell-checker-german
+                streetsidesoftware.code-spell-checker-italian
+                jeanp413.open-remote-ssh
 
-              # js extensions
-              dsznajder.es7-react-js-snippets
-              dbaeumer.vscode-eslint
-              standard.vscode-standard
-              firsttris.vscode-jest-runner
-              stylelint.vscode-stylelint
-              tauri-apps.tauri-vscode
+                # html extensions
+                formulahendry.auto-rename-tag
+                ms-vscode.live-server
 
-              # go extensions
-              golang.go
+                # js extensions
+                dsznajder.es7-react-js-snippets
+                dbaeumer.vscode-eslint
+                standard.vscode-standard
+                firsttris.vscode-jest-runner
+                stylelint.vscode-stylelint
+                tauri-apps.tauri-vscode
 
-              # astro blog extensions
-              astro-build.astro-vscode
-              unifiedjs.vscode-mdx
+                # go extensions
+                golang.go
 
-              # misc extensions
-              tamasfe.even-better-toml
-            ]
-            ++ (lib.lists.optionals nix-development-enabled [
-              # nix extensions
-              pinage404.nix-extension-pack
-              jnoortheen.nix-ide
-              kamadorueda.alejandra
-            ])
-            ++ (
-              with vscode-marketplace;
-                [
-                  # js extensions
-                  karyfoundation.nearley
-                ]
-                ++ (lib.lists.optionals ai-tooling-enabled [
-                  continue.continue
-                ])
-            )
-        );
+                # astro blog extensions
+                astro-build.astro-vscode
+                unifiedjs.vscode-mdx
+
+                # misc extensions
+                tamasfe.even-better-toml
+              ]
+              ++ (lib.lists.optionals nix-development-enabled [
+                # nix extensions
+                pinage404.nix-extension-pack
+                jnoortheen.nix-ide
+                kamadorueda.alejandra
+              ])
+              ++ (
+                with vscode-marketplace;
+                  [
+                    # js extensions
+                    karyfoundation.nearley
+                  ]
+                  ++ (lib.lists.optionals ai-tooling-enabled [
+                    continue.continue
+                  ])
+              )
+          );
+        };
       };
     };
   };
diff --git a/configurations/nixos/emergent/nvidia-drivers.nix b/configurations/nixos/emergent/nvidia-drivers.nix
index 4df1b67..b264ca5 100644
--- a/configurations/nixos/emergent/nvidia-drivers.nix
+++ b/configurations/nixos/emergent/nvidia-drivers.nix
@@ -1,6 +1,9 @@
-{ config, lib, pkgs, ... }:
 {
-
+  config,
+  lib,
+  pkgs,
+  ...
+}: {
   # Enable OpenGL
   hardware.graphics = {
     enable = true;
@@ -10,13 +13,12 @@
   services.xserver.videoDrivers = ["nvidia"];
 
   hardware.nvidia = {
-
     # Modesetting is required.
     modesetting.enable = true;
 
     # Nvidia power management. Experimental, and can cause sleep/suspend to fail.
     # Enable this if you have graphical corruption issues or application crashes after waking
-    # up from sleep. This fixes it by saving the entire VRAM memory to /tmp/ instead 
+    # up from sleep. This fixes it by saving the entire VRAM memory to /tmp/ instead
     # of just the bare essentials.
     powerManagement.enable = false;
 
@@ -26,17 +28,17 @@
 
     # Use the NVidia open source kernel module (not to be confused with the
     # independent third-party "nouveau" open source driver).
-    # Support is limited to the Turing and later architectures. Full list of 
-    # supported GPUs is at: 
-    # https://github.com/NVIDIA/open-gpu-kernel-modules#compatible-gpus 
+    # Support is limited to the Turing and later architectures. Full list of
+    # supported GPUs is at:
+    # https://github.com/NVIDIA/open-gpu-kernel-modules#compatible-gpus
     # Only available from driver 515.43.04+
     open = false;
 
     # Enable the Nvidia settings menu,
-	# accessible via `nvidia-settings`.
+    # accessible via `nvidia-settings`.
     nvidiaSettings = true;
 
     # Optionally, you may need to select the appropriate driver version for your specific GPU.
     package = config.boot.kernelPackages.nvidiaPackages.stable;
   };
- }
\ No newline at end of file
+}