diff --git a/home/desktop/gtk.nix b/home/desktop/gtk.nix
index 8feb106..4571168 100644
--- a/home/desktop/gtk.nix
+++ b/home/desktop/gtk.nix
@@ -1,8 +1,17 @@
-{ config, pkgs, ... }:
+{ pkgs, ... }:
 
 {
-  gtk.enable = true;
-  gtk.theme.name = "Adwaita";
-  gtk.gtk3.extraConfig.gtk-application-prefer-dark-theme = true;
-  gtk.gtk4.extraConfig.gtk-application-prefer-dark-theme = true;
+  gtk = {
+    enable = true;
+    theme.name = "Adwaita";
+    theme.package = pkgs.gnome-themes-extra;
+    gtk3.extraConfig.gtk-application-prefer-dark-theme = true;
+    gtk4.extraConfig.gtk-application-prefer-dark-theme = true;
+  };
+
+  qt = {
+    platformTheme.name = "Adwaita-dark";
+    style.name = "Adwaita-dark";
+    style.package = pkgs.adwaita-qt;
+  };
 }
diff --git a/home/element.nix b/home/element.nix
index 36a0383..6ff1131 100644
--- a/home/element.nix
+++ b/home/element.nix
@@ -1,23 +1,22 @@
-{ config, pkgs, ... }:
+{ pkgs, ... }:
 
 let
-  # wrapper is needed because otherwise desktop file can't be accessed
-  element-desktop = pkgs.symlinkJoin {
-    inherit (pkgs.element-desktop) name src meta;
-    paths = [ pkgs.element-desktop ];
-    nativeBuildInputs = with pkgs; [ makeWrapper ];
-    postBuild = ''
-      rm -rf $out/share/applications
-      mkdir $out/share/applications
-      cat "${pkgs.element-desktop}/share/applications/element-desktop.desktop" \
-        >"$out/share/applications/element-desktop.desktop"
-    '';
+  element-desktop_ = pkgs.element-desktop.override {
+    element-web = pkgs.element-web.override {
+      conf = {
+        showLabsSettings = true;
+      };
+    };
   };
+
 in
 {
-  home.packages = [ element-desktop ];
-
-  xdg.configFile."autostart/element-desktop.desktop".text =
-    builtins.replaceStrings [ "Exec=element-desktop" ] [ "Exec=element-desktop --hidden" ]
-      (builtins.readFile "${element-desktop}/share/applications/element-desktop.desktop");
+  home.packages = with pkgs; [
+    element-desktop
+    (makeAutostartItem {
+      name = "element-desktop";
+      package = element-desktop_;
+      prependExtraArgs = [ "--hidden" ];
+    })
+  ];
 }
diff --git a/home/felschr.nix b/home/felschr.nix
index 848ec21..44825a3 100644
--- a/home/felschr.nix
+++ b/home/felschr.nix
@@ -1,9 +1,4 @@
-{
-  config,
-  lib,
-  pkgs,
-  ...
-}:
+{ lib, pkgs, ... }:
 
 {
   imports = [
diff --git a/home/modules/firefox/tor-browser.nix b/home/modules/firefox/tor-browser.nix
index 0b19322..9626100 100644
--- a/home/modules/firefox/tor-browser.nix
+++ b/home/modules/firefox/tor-browser.nix
@@ -12,7 +12,7 @@ common.mkModule {
   name = "tor-browser";
   displayName = "Tor Browser";
   dataConfigPath = ".tor project/firefox";
-  defaultPackage = pkgs.tor-browser-bundle-bin;
-  defaultPackageName = "pkgs.tor-browser-bundle-bin";
+  defaultPackage = pkgs.tor-browser;
+  defaultPackageName = "pkgs.tor-browser";
   isSecure = true;
 }
diff --git a/home/services/easyeffects.nix b/home/services/easyeffects.nix
index 1dee33a..6ba9b19 100644
--- a/home/services/easyeffects.nix
+++ b/home/services/easyeffects.nix
@@ -45,11 +45,10 @@
   };
 
   xdg.configFile."easyeffects/autoload/input/alsa_input.usb-Blue_Microphones_Yeti_Stereo_Microphone_REV8-00.analog-stereo:analog-input-mic.json".text =
-    builtins.toJSON
-      {
-        device = "alsa_input.usb-Blue_Microphones_Yeti_Stereo_Microphone_REV8-00.analog-stereo";
-        device-description = "Yeti Stereo Microphone Analog Stereo";
-        device-profile = "analog-input-mic";
-        preset-name = "optimised";
-      };
+    builtins.toJSON {
+      device = "alsa_input.usb-Blue_Microphones_Yeti_Stereo_Microphone_REV8-00.analog-stereo";
+      device-description = "Yeti Stereo Microphone Analog Stereo";
+      device-profile = "analog-input-mic";
+      preset-name = "optimised";
+    };
 }
diff --git a/home/shell/kitty.nix b/home/shell/kitty.nix
index 7ecce77..36ce7fe 100644
--- a/home/shell/kitty.nix
+++ b/home/shell/kitty.nix
@@ -1,9 +1,4 @@
-{
-  config,
-  pkgs,
-  lib,
-  ...
-}:
+{ pkgs, lib, ... }:
 
 with pkgs;
 with lib;
@@ -29,6 +24,8 @@ with lib;
     };
   };
 
-  xdg.configFile."kitty/pass_keys.py".source = "${vimPlugins.nvim-kitty-navigator}/kitty/pass_keys.py";
-  xdg.configFile."kitty/neighboring_window.py".source = "${vimPlugins.nvim-kitty-navigator}/kitty/neighboring_window.py";
+  xdg.configFile."kitty/pass_keys.py".source =
+    "${vimPlugins.nvim-kitty-navigator}/kitty/pass_keys.py";
+  xdg.configFile."kitty/neighboring_window.py".source =
+    "${vimPlugins.nvim-kitty-navigator}/kitty/neighboring_window.py";
 }
diff --git a/home/signal.nix b/home/signal.nix
index 5daf200..265d6f4 100644
--- a/home/signal.nix
+++ b/home/signal.nix
@@ -1,9 +1,12 @@
-{ config, pkgs, ... }:
+{ pkgs, ... }:
 
 {
-  home.packages = with pkgs; [ signal-desktop ];
-
-  xdg.configFile."autostart/signal-desktop.desktop".text =
-    builtins.replaceStrings [ "bin/signal-desktop" ] [ "bin/signal-desktop --start-in-tray" ]
-      (builtins.readFile "${pkgs.signal-desktop}/share/applications/signal-desktop.desktop");
+  home.packages = with pkgs; [
+    signal-desktop
+    (makeAutostartItem {
+      name = "signal-desktop";
+      package = signal-desktop;
+      prependExtraArgs = [ "--start-in-tray" ];
+    })
+  ];
 }
diff --git a/services/jellyfin.nix b/services/jellyfin.nix
index 198f36c..3585b3f 100644
--- a/services/jellyfin.nix
+++ b/services/jellyfin.nix
@@ -1,4 +1,4 @@
-{ config, lib, pkgs, ... }:
+{ config, lib, ... }:
 
 {
   services.jellyfin.enable = true;