bitscoper.dev

My NixOS

Dynamically fetched the /etc/nixos/configuration.nix file containing 3347 lines hosted on my GitHub repository.

1	# By Abdullah As-Sadeed
2	
3	{
4	  config,
5	  pkgs,
6	  ...
7	}:
8	let
9	  android_nixpkgs =
10	    pkgs.callPackage
11	      (import (
12	        builtins.fetchGit {
13	          url = "https://github.com/tadfisher/android-nixpkgs.git";
14	        }
15	      ))
16	      {
17	        channel = "stable";
18	      };
19	  android_sdk = android_nixpkgs.sdk (
20	    sdkPkgs: with sdkPkgs; [
21	      build-tools-36-0-0
22	      cmdline-tools-latest
23	      emulator
24	      platform-tools
25	      platforms-android-36
26	      system-images-android-36-google-apis-playstore-x86-64
27	      tools
28	    ]
29	  );
30	  android_sdk_path = "${android_sdk}/share/android-sdk";
31	
32	  home-manager = builtins.fetchTarball "https://github.com/nix-community/home-manager/archive/refs/heads/master.tar.gz";
33	
34	  font_preferences = {
35	    package = pkgs.nerd-fonts.noto;
36	
37	    name = {
38	      mono = "NotoMono Nerd Font";
39	      sans_serif = "NotoSans Nerd Font";
40	      serif = "NotoSerif Nerd Font";
41	      emoji = "Noto Color Emoji";
42	    };
43	
44	    size = 12;
45	  };
46	
47	  cursor = {
48	    theme = {
49	      package = pkgs.gnome-themes-extra;
50	      name = "Adwaita";
51	    };
52	
53	    size = 24;
54	  };
55	
56	  secrets = import ./secrets.nix;
57	in
58	{
59	  imports = [
60	    (import "${home-manager}/nixos")
61	
62	    ./hardware-configuration.nix
63	  ];
64	
65	  boot = {
66	    loader = {
67	      efi.canTouchEfiVariables = true;
68	      timeout = 2;
69	
70	      systemd-boot = {
71	        enable = true;
72	        consoleMode = "max";
73	        configurationLimit = null;
74	
75	        memtest86.enable = true;
76	      };
77	    };
78	
79	    initrd = {
80	      enable = true;
81	
82	      kernelModules = config.boot.kernelModules;
83	
84	      systemd = {
85	        enable = true;
86	        package = config.systemd.package;
87	      };
88	
89	      network.ssh.enable = true;
90	
91	      verbose = true;
92	    };
93	
94	    kernelPackages = pkgs.linuxPackages_zen;
95	
96	    extraModulePackages = with config.boot.kernelPackages; [
97	    ];
98	
99	    kernelModules = [
100	      "at24"
101	      "ee1004"
102	      "kvm-intel"
103	      "spd5118"
104	    ];
105	
106	    extraModprobeConfig = "options kvm_intel nested=1";
107	
108	    kernelParams = [
109	      "intel_iommu=on"
110	      "iommu=pt"
111	      "kvm.ignore_msrs=1"
112	      "boot.shell_on_fail"
113	      "rd.systemd.show_status=true"
114	      "rd.udev.log_level=err"
115	      "udev.log_level=err"
116	      "udev.log_priority=err"
117	    ];
118	
119	    consoleLogLevel = 4; # 4 = KERN_WARNING
120	
121	    tmp.cleanOnBoot = true;
122	
123	    plymouth = {
124	      enable = true;
125	
126	      themePackages = [
127	        pkgs.nixos-bgrt-plymouth
128	      ];
129	      theme = "nixos-bgrt";
130	
131	      extraConfig = ''
132	        UseFirmwareBackground=true
133	      '';
134	    };
135	  };
136	
137	  time = {
138	    timeZone = "Asia/Dhaka";
139	    hardwareClockInLocalTime = true;
140	  };
141	
142	  system = {
143	    copySystemConfiguration = true;
144	
145	    switch.enable = true;
146	    tools = {
147	      nixos-build-vms.enable = true;
148	      nixos-enter.enable = true;
149	      nixos-generate-config.enable = true;
150	      nixos-install.enable = true;
151	      nixos-option.enable = true;
152	      nixos-rebuild.enable = true;
153	      nixos-version.enable = true;
154	    };
155	
156	    autoUpgrade = {
157	      enable = false;
158	      channel = "https://nixos.org/channels/nixos-unstable";
159	      operation = "boot";
160	      allowReboot = false;
161	    };
162	
163	    activationScripts = { };
164	
165	    userActivationScripts = { };
166	
167	    stateVersion = "24.11";
168	  };
169	
170	  nix = {
171	    enable = true;
172	    channel.enable = true;
173	
174	    settings = {
175	      experimental-features = [
176	        "nix-command"
177	      ];
178	
179	      require-sigs = true;
180	      sandbox = true;
181	      auto-optimise-store = true;
182	
183	      cores = 0; # 0 = All
184	      # max-jobs = 1;
185	    };
186	
187	    gc = {
188	      automatic = true;
189	      dates = "weekly";
190	      persistent = true;
191	    };
192	  };
193	
194	  nixpkgs = {
195	    hostPlatform = "x86_64-linux";
196	
197	    config = {
198	      allowUnfree = true;
199	      android_sdk.accept_license = true;
200	    };
201	
202	    overlays = [
203	    ];
204	  };
205	
206	  appstream.enable = true;
207	
208	  i18n = {
209	    defaultLocale = "en_US.UTF-8";
210	    extraLocales = "all";
211	
212	    extraLocaleSettings = {
213	      LC_ADDRESS = config.i18n.defaultLocale;
214	      LC_COLLATE = config.i18n.defaultLocale;
215	      LC_CTYPE = config.i18n.defaultLocale;
216	      LC_IDENTIFICATION = config.i18n.defaultLocale;
217	      LC_MEASUREMENT = config.i18n.defaultLocale;
218	      LC_MESSAGES = config.i18n.defaultLocale;
219	      LC_MONETARY = config.i18n.defaultLocale;
220	      LC_NAME = config.i18n.defaultLocale;
221	      LC_NUMERIC = config.i18n.defaultLocale;
222	      LC_PAPER = config.i18n.defaultLocale;
223	      LC_TELEPHONE = config.i18n.defaultLocale;
224	      LC_TIME = config.i18n.defaultLocale;
225	      LC_ALL = config.i18n.defaultLocale;
226	    };
227	
228	    inputMethod = {
229	      enable = true;
230	      type = "ibus";
231	      ibus.engines = with pkgs.ibus-engines; [
232	        openbangla-keyboard
233	      ];
234	    };
235	  };
236	
237	  networking = {
238	    enableIPv6 = true;
239	
240	    domain = "bitscoper";
241	    hostName = "Bitscoper-WorkStation";
242	    fqdn = "${config.networking.hostName}.${config.networking.domain}";
243	
244	    wireless = {
245	      dbusControlled = true;
246	      userControlled.enable = true;
247	    };
248	
249	    networkmanager = {
250	      enable = true;
251	      package = pkgs.networkmanager;
252	
253	      ethernet.macAddress = "permanent";
254	
255	      wifi = {
256	        backend = "wpa_supplicant";
257	
258	        powersave = false;
259	
260	        scanRandMacAddress = true;
261	        macAddress = "permanent";
262	      };
263	
264	      logLevel = "WARN";
265	    };
266	
267	    firewall = {
268	      enable = false;
269	
270	      allowPing = true;
271	
272	      allowedTCPPorts = [
273	
274	      ];
275	      allowedUDPPorts = [
276	
277	      ];
278	    };
279	
280	    nameservers = [
281	      "1.1.1.3#one.one.one.one"
282	      "1.0.0.3#one.one.one.one"
283	    ];
284	
285	    timeServers = [
286	      "0.nixos.pool.ntp.org"
287	      "1.nixos.pool.ntp.org"
288	      "2.nixos.pool.ntp.org"
289	      "3.nixos.pool.ntp.org"
290	    ];
291	  };
292	
293	  security = {
294	    allowSimultaneousMultithreading = true;
295	
296	    tpm2.enable = true;
297	
298	    lockKernelModules = false;
299	
300	    pam = {
301	      mount = {
302	        enable = true;
303	
304	        createMountPoints = true;
305	        removeCreatedMountPoints = true;
306	
307	        logoutHup = true;
308	        logoutTerm = false;
309	        logoutKill = false;
310	
311	        logoutWait = 0;
312	      };
313	
314	      services = {
315	        login = {
316	          unixAuth = true;
317	          nodelay = false;
318	
319	          # fprintAuth = true;
320	
321	          logFailures = true;
322	
323	          enableGnomeKeyring = true;
324	
325	          gnupg = {
326	            enable = true;
327	            storeOnly = false;
328	            noAutostart = false;
329	          };
330	        };
331	
332	        sudo = {
333	          unixAuth = true;
334	          nodelay = false;
335	
336	          fprintAuth = true;
337	
338	          logFailures = true;
339	        };
340	
341	        polkit-1 = {
342	          unixAuth = true;
343	          nodelay = false;
344	
345	          fprintAuth = true;
346	
347	          logFailures = true;
348	        };
349	      };
350	    };
351	
352	    sudo = {
353	      enable = true;
354	      package = pkgs.sudo;
355	
356	      execWheelOnly = true;
357	      wheelNeedsPassword = true;
358	    };
359	
360	    polkit = {
361	      enable = true;
362	      package = pkgs.polkit;
363	    };
364	
365	    rtkit.enable = true;
366	
367	    wrappers = {
368	      spice-client-glib-usb-acl-helper.source = "${pkgs.spice-gtk}/bin/spice-client-glib-usb-acl-helper";
369	    };
370	
371	    audit = {
372	      enable = false;
373	    };
374	  };
375	
376	  hardware = {
377	    enableAllFirmware = true;
378	    enableRedistributableFirmware = true;
379	
380	    cpu = {
381	      intel = {
382	        updateMicrocode = true;
383	      };
384	    };
385	
386	    graphics = {
387	      enable = true;
388	      enable32Bit = true;
389	
390	      extraPackages = with pkgs; [
391	        intel-media-driver
392	        intel-compute-runtime
393	      ];
394	    };
395	
396	    sensor = {
397	      hddtemp = {
398	        enable = true;
399	        unit = "C";
400	        drives = [
401	          "/dev/disk/by-path/*"
402	        ];
403	      };
404	    };
405	
406	    bluetooth = {
407	      enable = true;
408	      package = pkgs.bluez;
409	
410	      hsphfpd.enable = false; # Conflicts wwth WirePlumber
411	
412	      powerOnBoot = true;
413	
414	      input.General = {
415	        IdleTimeout = 0; # 0 = Disabled
416	        LEAutoSecurity = true;
417	        ClassicBondedOnly = true;
418	        UserspaceHID = true;
419	      };
420	
421	      network.General = {
422	        DisableSecurity = false;
423	      };
424	
425	      settings = {
426	        General = {
427	          MaxControllers = 0; # 0 = Unlimited
428	          ControllerMode = "dual";
429	
430	          Name = config.networking.hostName;
431	
432	          DiscoverableTimeout = 0; # 0 = Disabled
433	          PairableTimeout = 0; # 0 = Disabled
434	          AlwaysPairable = true;
435	          FastConnectable = true;
436	
437	          ReverseServiceDiscovery = true;
438	          NameResolving = true;
439	          RemoteNameRequestRetryDelay = 60; # Seconds
440	          RefreshDiscovery = true;
441	          TemporaryTimeout = 0; # 0 = Disabled
442	
443	          SecureConnections = "on";
444	          Privacy = "off";
445	
446	          Experimental = true;
447	          KernelExperimental = true;
448	        };
449	
450	        Policy = {
451	          AutoEnable = true;
452	
453	          ResumeDelay = 2; # Seconds
454	          ReconnectAttempts = 7;
455	          ReconnectIntervals = "1, 2, 4, 8, 16, 32, 64";
456	        };
457	
458	        GATT = {
459	          Cache = "always";
460	        };
461	
462	        CSIS = {
463	          Encryption = true;
464	        };
465	
466	        AVRCP = {
467	          VolumeCategory = true;
468	          VolumeWithoutTarget = false;
469	        };
470	
471	        AVDTP = {
472	          SessionMode = "ertm";
473	        };
474	
475	        AdvMon = {
476	          RSSISamplingPeriod = "0x00";
477	        };
478	      };
479	    };
480	
481	    rtl-sdr = {
482	      enable = true;
483	      package = pkgs.rtl-sdr;
484	    };
485	
486	    sane = {
487	      enable = true;
488	      openFirewall = true;
489	    };
490	  };
491	
492	  virtualisation = {
493	    libvirtd = {
494	      enable = true;
495	      package = pkgs.libvirt;
496	
497	      qemu = {
498	        package = pkgs.qemu_kvm;
499	
500	        swtpm = {
501	          enable = true;
502	          package = pkgs.swtpm;
503	        };
504	
505	        ovmf = {
506	          enable = true;
507	          packages = [
508	            (pkgs.OVMFFull.override {
509	              secureBoot = true;
510	              tpmSupport = true;
511	            }).fd
512	          ];
513	        };
514	
515	        runAsRoot = true;
516	      };
517	    };
518	    spiceUSBRedirection.enable = true;
519	
520	    containers.enable = true;
521	
522	    podman = {
523	      enable = true;
524	      package = pkgs.podman;
525	      dockerCompat = true;
526	
527	      defaultNetwork.settings.dns_enabled = true;
528	    };
529	
530	    oci-containers.backend = "podman";
531	
532	    waydroid.enable = true;
533	  };
534	
535	  systemd = {
536	    package = pkgs.systemd;
537	
538	    packages = with pkgs; [
539	      cloudflare-warp
540	      hardinfo2
541	    ];
542	
543	    globalEnvironment = { };
544	
545	    targets = {
546	      multi-user.wants = [
547	        "warp-svc.service"
548	      ];
549	    };
550	  };
551	
552	  services = {
553	    dbus = {
554	      enable = true;
555	      dbusPackage = pkgs.dbus;
556	
557	      implementation = "broker";
558	
559	      packages = with pkgs; [
560	      ];
561	    };
562	
563	    timesyncd = {
564	      enable = true;
565	
566	      servers = config.networking.timeServers;
567	      fallbackServers = config.networking.timeServers;
568	
569	      extraConfig = '''';
570	    };
571	
572	    fwupd = {
573	      enable = true;
574	      package = pkgs.fwupd;
575	    };
576	
577	    btrfs.autoScrub = {
578	      enable = true;
579	
580	      interval = "weekly";
581	      fileSystems = [
582	        "/"
583	      ];
584	    };
585	
586	    acpid = {
587	      enable = true;
588	
589	      powerEventCommands = '''';
590	      acEventCommands = '''';
591	      lidEventCommands = '''';
592	
593	      logEvents = false;
594	    };
595	
596	    power-profiles-daemon = {
597	      enable = true;
598	      package = pkgs.power-profiles-daemon;
599	    };
600	
601	    logind = {
602	      killUserProcesses = true;
603	
604	      lidSwitch = "ignore";
605	      lidSwitchDocked = "ignore";
606	      lidSwitchExternalPower = "ignore";
607	
608	      powerKey = "poweroff";
609	      powerKeyLongPress = "poweroff";
610	
611	      rebootKey = "reboot";
612	      rebootKeyLongPress = "reboot";
613	
614	      suspendKey = "ignore";
615	      suspendKeyLongPress = "ignore";
616	
617	      hibernateKey = "ignore";
618	      hibernateKeyLongPress = "ignore";
619	    };
620	
621	    udev = {
622	      enable = true;
623	      packages = with pkgs; [
624	        android-udev-rules
625	        game-devices-udev-rules
626	        gnome-settings-daemon
627	        libmtp.out
628	        rtl-sdr
629	      ];
630	    };
631	
632	    libinput = {
633	      enable = true;
634	
635	      mouse = {
636	        leftHanded = false;
637	        disableWhileTyping = false;
638	        tapping = true;
639	        middleEmulation = true;
640	        clickMethod = "buttonareas";
641	        scrollMethod = "twofinger";
642	        naturalScrolling = true;
643	        horizontalScrolling = true;
644	        tappingDragLock = true;
645	        sendEventsMode = "enabled";
646	      };
647	
648	      touchpad = {
649	        leftHanded = false;
650	        disableWhileTyping = false;
651	        tapping = true;
652	        middleEmulation = true;
653	        clickMethod = "buttonareas";
654	        scrollMethod = "twofinger";
655	        naturalScrolling = true;
656	        horizontalScrolling = true;
657	        tappingDragLock = true;
658	        sendEventsMode = "enabled";
659	      };
660	    };
661	
662	    fprintd = {
663	      enable = true;
664	      package = if config.services.fprintd.tod.enable then pkgs.fprintd-tod else pkgs.fprintd;
665	      # tod = {
666	      #   enable = true;
667	      #   driver = ;
668	      # };
669	    };
670	
671	    displayManager = {
672	      enable = true;
673	      preStart = '''';
674	
675	      defaultSession = "gnome";
676	
677	      autoLogin = {
678	        enable = false;
679	        user = null;
680	      };
681	
682	      logToJournal = true;
683	      logToFile = true;
684	    };
685	
686	    xserver = {
687	      enable = true;
688	
689	      displayManager = {
690	        gdm = {
691	          enable = true;
692	          wayland = true;
693	
694	          banner = config.networking.hostName;
695	          autoSuspend = false;
696	
697	          settings = { };
698	
699	          debug = false;
700	        };
701	      };
702	
703	      desktopManager = {
704	        gnome = {
705	          enable = true;
706	
707	          extraGSettingsOverridePackages = with pkgs; [
708	          ];
709	          extraGSettingsOverrides = '''';
710	
711	          debug = false;
712	        };
713	
714	        xterm.enable = false;
715	      };
716	
717	      excludePackages = with pkgs; [
718	        xterm
719	      ];
720	    };
721	
722	    gnome = {
723	      core-apps.enable = true;
724	      core-os-services.enable = true;
725	      core-shell.enable = true;
726	      glib-networking.enable = true;
727	      gnome-browser-connector.enable = true;
728	      gnome-keyring.enable = true;
729	      gnome-online-accounts.enable = true;
730	      gnome-remote-desktop.enable = true;
731	      gnome-settings-daemon.enable = true;
732	      gnome-user-share.enable = true;
733	    };
734	
735	    gvfs = {
736	      enable = true;
737	      package = pkgs.gnome.gvfs;
738	    };
739	
740	    pipewire = {
741	      enable = true;
742	      package = pkgs.pipewire;
743	      systemWide = false;
744	
745	      audio.enable = true;
746	
747	      alsa.enable = true;
748	      alsa.support32Bit = true;
749	      pulse.enable = true;
750	      jack.enable = true;
751	
752	      socketActivation = true;
753	
754	      wireplumber = {
755	        enable = true;
756	        package = pkgs.wireplumber;
757	
758	        extraConfig.bluetoothEnhancements = {
759	          "monitor.bluez.properties" = {
760	            "bluez5.enable-hw-volume" = true;
761	
762	            "bluez5.enable-sbc-xq" = true;
763	            "bluez5.enable-msbc" = true;
764	
765	            "bluez5.roles" = [
766	              "a2dp_sink"
767	              "a2dp_source"
768	              "bap_sink"
769	              "bap_source"
770	              "hfp_ag"
771	              "hfp_hf"
772	              "hsp_ag"
773	              "hsp_hs"
774	            ];
775	
776	            "bluez5.codecs" = [
777	              "aac"
778	              "aptx"
779	              "aptx_hd"
780	              "aptx_ll"
781	              "aptx_ll_duplex"
782	              "faststream"
783	              "faststream_duplex"
784	              "lc3"
785	              "lc3plus_h3"
786	              "ldac"
787	              "opus_05"
788	              "opus_05_51"
789	              "opus_05_71"
790	              "opus_05_duplex"
791	              "opus_05_pro"
792	              "sbc"
793	              "sbc_xq"
794	            ];
795	          };
796	        };
797	      };
798	
799	      raopOpenFirewall = true;
800	    };
801	
802	    pulseaudio.enable = false;
803	
804	    phpfpm = {
805	      settings = { };
806	
807	      phpOptions = ''
808	        default_charset = "UTF-8"
809	        error_reporting = E_ALL
810	        display_errors = Off
811	        log_errors = On
812	        cgi.force_redirect = 1
813	        expose_php = On
814	        file_uploads = On
815	        session.cookie_lifetime = 0
816	        session.use_cookies = 1
817	        session.use_only_cookies = 1
818	        session.use_strict_mode = 1
819	        session.cookie_httponly = 1
820	        session.cookie_secure = 1
821	        session.cookie_samesite = "Strict"
822	        session.gc_maxlifetime = 43200
823	        session.use_trans_sid = O
824	        session.cache_limiter = nocache
825	        session.sid_length = 248
826	      '';
827	    };
828	
829	    avahi = {
830	      enable = true;
831	      package = pkgs.avahi;
832	
833	      ipv4 = true;
834	      ipv6 = true;
835	
836	      nssmdns4 = true;
837	      nssmdns6 = true;
838	
839	      wideArea = true;
840	
841	      publish = {
842	        enable = true;
843	        domain = true;
844	        addresses = true;
845	        workstation = true;
846	        hinfo = true;
847	        userServices = true;
848	      };
849	
850	      domainName = config.networking.hostName;
851	      hostName = config.networking.hostName;
852	
853	      openFirewall = true;
854	    };
855	
856	    openssh = {
857	      enable = true;
858	      package = pkgs.openssh;
859	
860	      listenAddresses = [
861	        {
862	          addr = "0.0.0.0";
863	        }
864	        {
865	          addr = "::";
866	        }
867	      ];
868	      ports = [
869	        22
870	      ];
871	      allowSFTP = true;
872	
873	      banner = config.networking.hostName;
874	
875	      authorizedKeysInHomedir = true;
876	
877	      settings = {
878	        PermitRootLogin = "yes";
879	        PasswordAuthentication = true;
880	        X11Forwarding = false;
881	        StrictModes = true;
882	        UseDns = true;
883	        LogLevel = "ERROR";
884	      };
885	
886	      openFirewall = true;
887	    };
888	    sshd.enable = true;
889	
890	    cockpit = {
891	      enable = true;
892	      package = pkgs.cockpit;
893	
894	      port = 9090;
895	      openFirewall = true;
896	    };
897	
898	    printing = {
899	      enable = true;
900	      package = pkgs.cups;
901	
902	      drivers = with pkgs; [
903	        gutenprint
904	        gutenprintBin
905	      ];
906	
907	      cups-pdf.enable = true;
908	
909	      listenAddresses = [
910	        "*:631"
911	      ];
912	
913	      allowFrom = [
914	        "all"
915	      ];
916	
917	      browsing = true;
918	      webInterface = true;
919	
920	      defaultShared = true;
921	      startWhenNeeded = true;
922	
923	      extraConf = ''
924	        DefaultLanguage en
925	        ServerName ${config.networking.hostName}
926	        ServerAlias *
927	        ServerTokens Full
928	        ServerAdmin bitscoper@${config.networking.hostName}
929	        BrowseLocalProtocols all
930	        BrowseWebIF On
931	        HostNameLookups On
932	        AccessLogLevel config
933	        AutoPurgeJobs Yes
934	        PreserveJobHistory Off
935	        PreserveJobFiles Off
936	        DirtyCleanInterval 30
937	        LogTimeFormat standard
938	      '';
939	
940	      logLevel = "warn";
941	
942	      openFirewall = true;
943	    };
944	    ipp-usb.enable = true;
945	    system-config-printer.enable = true;
946	
947	    bind = {
948	      enable = false;
949	      package = pkgs.bind;
950	
951	      listenOn = [
952	        "any"
953	      ];
954	      ipv4Only = false;
955	      listenOnIpv6 = [
956	        "any"
957	      ];
958	
959	      cacheNetworks = [
960	        "127.0.0.0/24"
961	        "::1/128"
962	      ];
963	
964	      extraOptions = ''
965	        recursion no;
966	      '';
967	    };
968	
969	    memcached = {
970	      enable = true;
971	      listen = "*";
972	      port = 11211;
973	      enableUnixSocket = false;
974	      maxMemory = 64; # Megabytes
975	      maxConnections = 256;
976	    };
977	
978	    postgresql = {
979	      enable = true;
980	      package = pkgs.postgresql;
981	
982	      enableTCPIP = true;
983	
984	      settings = pkgs.lib.mkForce {
985	        listen_addresses = "*";
986	        port = 5432;
987	        jit = true;
988	      };
989	
990	      authentication = pkgs.lib.mkOverride 10 ''
991	        local all all md5
992	        host all all 0.0.0.0/0 md5
993	        host all all ::/0 md5
994	        local replication all md5
995	        host replication all 0.0.0.0/0 md5
996	        host replication all ::/0 md5
997	      '';
998	
999	      checkConfig = true;
1000	
1001	      initialScript = pkgs.writeText "initScript" ''
1002	        ALTER USER postgres WITH PASSWORD '${secrets.password_1_of_bitscoper}';
1003	      '';
1004	    };
1005	
1006	    mysql = {
1007	      enable = true;
1008	      package = pkgs.mariadb;
1009	
1010	      settings = {
1011	        mysqld = {
1012	          bind-address = "*";
1013	          port = 3306;
1014	
1015	          sql_mode = "";
1016	        };
1017	      };
1018	
1019	      initialScript = pkgs.writeText "initScript" ''
1020	        grant all privileges on *.* to 'root'@'%' identified by password '${secrets.hashed_password_1_of_bitscoper}' with grant option;
1021	        DELETE FROM mysql.user WHERE `Host`='localhost' AND `User`='root';
1022	        flush privileges;
1023	      '';
1024	    };
1025	
1026	    postfix = {
1027	      enable = true;
1028	
1029	      enableSmtp = true;
1030	      enableSubmission = true;
1031	      enableSubmissions = true;
1032	
1033	      domain = config.networking.hostName;
1034	      hostname = config.networking.hostName;
1035	      origin = config.networking.hostName;
1036	
1037	      virtualMapType = "pcre";
1038	      aliasMapType = "pcre";
1039	      enableHeaderChecks = true;
1040	
1041	      setSendmail = true;
1042	
1043	      config = { };
1044	    };
1045	
1046	    opendkim = {
1047	      enable = true;
1048	
1049	      domains = "csl:${config.networking.hostName}";
1050	      selector = "default";
1051	
1052	      settings = { };
1053	    };
1054	
1055	    dovecot2 = {
1056	      enable = true;
1057	
1058	      enableImap = true;
1059	      enableLmtp = true;
1060	      enablePop3 = false;
1061	      protocols = [
1062	        "imap"
1063	        "lmtp"
1064	      ];
1065	
1066	      enableQuota = true;
1067	      quotaPort = "12340";
1068	
1069	      enableDHE = true;
1070	
1071	      createMailUser = true;
1072	
1073	      enablePAM = true;
1074	      showPAMFailure = true;
1075	
1076	      pluginSettings = { };
1077	
1078	      extraConfig = '''';
1079	    };
1080	
1081	    jellyfin = {
1082	      enable = true;
1083	      package = pkgs.jellyfin;
1084	
1085	      openFirewall = true;
1086	    };
1087	
1088	    ollama = {
1089	      enable = true;
1090	      package = pkgs.ollama;
1091	
1092	      host = "0.0.0.0";
1093	      port = 11434;
1094	      openFirewall = true;
1095	    };
1096	
1097	    open-webui = {
1098	      enable = true;
1099	      package = pkgs.open-webui;
1100	
1101	      host = "*";
1102	      port = 11111;
1103	
1104	      environment = {
1105	        ANONYMIZED_TELEMETRY = "False";
1106	        DO_NOT_TRACK = "True";
1107	
1108	        DEFAULT_LOCALE = "en";
1109	
1110	        ENABLE_ADMIN_CHAT_ACCESS = "True";
1111	        ENABLE_ADMIN_EXPORT = "True";
1112	        SHOW_ADMIN_DETAILS = "True";
1113	        ADMIN_EMAIL = "bitscoper@${config.networking.hostName}";
1114	
1115	        USER_PERMISSIONS_WORKSPACE_MODELS_ACCESS = "True";
1116	        USER_PERMISSIONS_WORKSPACE_KNOWLEDGE_ACCESS = "True";
1117	        USER_PERMISSIONS_WORKSPACE_PROMPTS_ACCESS = "True";
1118	        USER_PERMISSIONS_WORKSPACE_TOOLS_ACCESS = "True";
1119	
1120	        USER_PERMISSIONS_CHAT_TEMPORARY = "True";
1121	        USER_PERMISSIONS_CHAT_FILE_UPLOAD = "True";
1122	        USER_PERMISSIONS_CHAT_EDIT = "True";
1123	        USER_PERMISSIONS_CHAT_DELETE = "True";
1124	
1125	        ENABLE_CHANNELS = "True";
1126	
1127	        ENABLE_REALTIME_CHAT_SAVE = "True";
1128	
1129	        ENABLE_AUTOCOMPLETE_GENERATION = "True";
1130	        AUTOCOMPLETE_GENERATION_INPUT_MAX_LENGTH = "-1";
1131	
1132	        ENABLE_RAG_WEB_SEARCH = "True";
1133	        ENABLE_SEARCH_QUERY_GENERATION = "True";
1134	
1135	        ENABLE_TAGS_GENERATION = "True";
1136	
1137	        ENABLE_IMAGE_GENERATION = "True";
1138	
1139	        YOUTUBE_LOADER_LANGUAGE = "en";
1140	
1141	        ENABLE_MESSAGE_RATING = "True";
1142	
1143	        ENABLE_COMMUNITY_SHARING = "True";
1144	
1145	        ENABLE_RAG_WEB_LOADER_SSL_VERIFICATION = "True";
1146	        WEBUI_SESSION_COOKIE_SAME_SITE = "strict";
1147	        WEBUI_SESSION_COOKIE_SECURE = "True";
1148	        WEBUI_AUTH = "False";
1149	
1150	        ENABLE_OLLAMA_API = "True";
1151	        OLLAMA_BASE_URL = "http://127.0.0.1:11434";
1152	      };
1153	
1154	      openFirewall = true;
1155	    };
1156	
1157	    wordpress = {
1158	      sites = { };
1159	    };
1160	
1161	    tailscale = {
1162	      enable = true;
1163	      package = pkgs.tailscale;
1164	
1165	      disableTaildrop = false;
1166	
1167	      port = 0; # 0 = Automatic
1168	      openFirewall = true;
1169	    };
1170	
1171	    sysprof.enable = true;
1172	
1173	    logrotate = {
1174	      enable = true;
1175	
1176	      checkConfig = true;
1177	      allowNetworking = true;
1178	    };
1179	  };
1180	
1181	  programs = {
1182	    command-not-found.enable = true;
1183	
1184	    nix-ld = {
1185	      enable = true;
1186	      package = pkgs.nix-ld;
1187	
1188	      libraries = with pkgs; [
1189	        glib.out
1190	        libGL
1191	        llvmPackages.stdenv.cc.cc.lib
1192	        stdenv.cc.cc.lib
1193	      ];
1194	    };
1195	
1196	    java = {
1197	      enable = true;
1198	      package = pkgs.jdk23;
1199	
1200	      binfmt = true;
1201	    };
1202	
1203	    appimage = {
1204	      enable = true;
1205	      package = pkgs.appimage-run;
1206	
1207	      binfmt = true;
1208	    };
1209	
1210	    xwayland.enable = true;
1211	
1212	    bash = {
1213	      completion = {
1214	        enable = true;
1215	        package = pkgs.bash-completion;
1216	      };
1217	
1218	      enableLsColors = true;
1219	
1220	      shellAliases = { };
1221	
1222	      loginShellInit = '''';
1223	
1224	      shellInit = '''';
1225	
1226	      interactiveShellInit = ''
1227	        PROMPT_COMMAND="history -a"
1228	      '';
1229	    };
1230	
1231	    fish = {
1232	      enable = true;
1233	      package = pkgs.fish;
1234	
1235	      vendor = {
1236	        config.enable = true;
1237	        functions.enable = true;
1238	        completions.enable = true;
1239	      };
1240	
1241	      shellAbbrs = { };
1242	      shellAliases = { };
1243	
1244	      promptInit = '''';
1245	
1246	      loginShellInit = '''';
1247	
1248	      shellInit = '''';
1249	
1250	      interactiveShellInit = ''
1251	        if command -q nix-your-shell
1252	        nix-your-shell fish | source
1253	        end
1254	      '';
1255	    };
1256	
1257	    direnv = {
1258	      enable = true;
1259	      package = pkgs.direnv;
1260	
1261	      nix-direnv.enable = true;
1262	      loadInNixShell = true;
1263	
1264	      enableBashIntegration = true;
1265	      enableFishIntegration = true;
1266	
1267	      direnvrcExtra = '''';
1268	
1269	      silent = false;
1270	    };
1271	
1272	    nix-index = {
1273	      package = pkgs.nix-index;
1274	
1275	      enableBashIntegration = true;
1276	      enableFishIntegration = true;
1277	    };
1278	
1279	    gnupg = {
1280	      package = pkgs.gnupg;
1281	
1282	      agent = {
1283	        enable = true;
1284	
1285	        enableBrowserSocket = true;
1286	        enableExtraSocket = true;
1287	        enableSSHSupport = false;
1288	
1289	        pinentryPackage = pkgs.pinentry-gnome3;
1290	      };
1291	
1292	      dirmngr.enable = true;
1293	    };
1294	
1295	    ssh = {
1296	      package = pkgs.openssh;
1297	
1298	      startAgent = true;
1299	      agentTimeout = null;
1300	    };
1301	
1302	    git = {
1303	      enable = true;
1304	      package = pkgs.gitFull;
1305	
1306	      lfs = {
1307	        enable = true;
1308	        package = pkgs.git-lfs;
1309	
1310	        enablePureSSHTransfer = true;
1311	      };
1312	
1313	      prompt.enable = true;
1314	
1315	      config = {
1316	        init.defaultBranch = "main";
1317	
1318	        credential.helper = "${pkgs.gitFull}/bin/git-credential-libsecret";
1319	
1320	        user = {
1321	          name = "Abdullah As-Sadeed";
1322	          email = "bitscoper@gmail.com";
1323	        };
1324	      };
1325	    };
1326	
1327	    usbtop.enable = true;
1328	
1329	    adb.enable = true;
1330	
1331	    nano = {
1332	      enable = true;
1333	      package = pkgs.nano;
1334	
1335	      syntaxHighlight = true;
1336	
1337	      nanorc = ''
1338	        set linenumbers
1339	        set softwrap
1340	        set indicator
1341	        set autoindent
1342	      '';
1343	    };
1344	
1345	    bat = {
1346	      enable = true;
1347	      package = pkgs.bat;
1348	      extraPackages = with pkgs.bat-extras; [
1349	        batdiff
1350	        batgrep
1351	        batman
1352	        batpipe
1353	        batwatch
1354	        prettybat
1355	      ];
1356	
1357	      settings = { };
1358	    };
1359	
1360	    virt-manager = {
1361	      enable = true;
1362	      package = pkgs.virt-manager;
1363	    };
1364	
1365	    system-config-printer.enable = true;
1366	
1367	    file-roller.enable = true;
1368	    gnome-disks.enable = true;
1369	    seahorse.enable = true;
1370	
1371	    firefox = {
1372	      enable = true;
1373	      package = pkgs.firefox-devedition;
1374	      languagePacks = [
1375	        "ar"
1376	        "bn"
1377	        "en-US"
1378	      ];
1379	
1380	      nativeMessagingHosts = {
1381	        packages = with pkgs; [
1382	          gnomeExtensions.gsconnect
1383	          keepassxc
1384	        ];
1385	      };
1386	
1387	      policies = {
1388	        Extensions = {
1389	          Install = [
1390	            "https://addons.mozilla.org/firefox/downloads/latest/decentraleyes/latest.xpi"
1391	            "https://addons.mozilla.org/firefox/downloads/latest/gnome-shell-integration/latest.xpi"
1392	            "https://addons.mozilla.org/firefox/downloads/latest/gsconnect/latest.xpi"
1393	            "https://addons.mozilla.org/firefox/downloads/latest/keepassxc-browser/latest.xpi"
1394	            "https://addons.mozilla.org/firefox/downloads/latest/languagetool/latest.xpi"
1395	            "https://addons.mozilla.org/firefox/downloads/latest/search_by_image/latest.xpi"
1396	            "https://addons.mozilla.org/firefox/downloads/latest/single-file/latest.xpi"
1397	            "https://addons.mozilla.org/firefox/downloads/latest/tab-disguiser/latest.xpi"
1398	            "https://addons.mozilla.org/firefox/downloads/latest/ublock-origin/latest.xpi"
1399	            "https://addons.mozilla.org/firefox/downloads/latest/zjm-whatfont/latest.xpi"
1400	          ];
1401	
1402	          Locked = [
1403	            "chrome-gnome-shell@gnome.org" # GNOME Shell Integration
1404	            "gsconnect@andyholmes.github.io" # GSConnect
1405	            "jid1-BoFifL9Vbdl2zQ@jetpack" # Decentraleyes
1406	            "uBlock0@raymondhill.net" # uBlock Origin
1407	            "{19b92b95-9cca-4f8d-b364-37a81f7133d5}" # Tab Disguiser
1408	            "{2e5ff8c8-32fe-46d0-9fc8-6b8986621f3c}" # Search by Image
1409	            "{531906d3-e22f-4a6c-a102-8057b88a1a63}" # SingleFile
1410	            "{dcb8caa2-63fa-41aa-a508-a45c5990ebdd}" # WhatFont
1411	          ];
1412	        };
1413	      };
1414	
1415	      autoConfig = '''';
1416	
1417	      preferences = {
1418	        "browser.contentblocking.category" = "strict";
1419	        "browser.search.region" = "BD";
1420	        "browser.search.suggest.enabled.private" = true;
1421	        "dom.security.https_only_mode" = true;
1422	        "privacy.globalprivacycontrol.enabled" = true;
1423	        "security.warn_submit_secure_to_insecure" = true;
1424	        # "privacy.fingerprintingProtection" = true;
1425	        # "privacy.trackingprotection.enabled" = true;
1426	      };
1427	      preferencesStatus = "locked";
1428	    };
1429	
1430	    thunderbird = {
1431	      enable = true;
1432	      package = pkgs.thunderbird-latest;
1433	
1434	      preferences = { };
1435	    };
1436	
1437	    wireshark = {
1438	      enable = true;
1439	      package = pkgs.wireshark;
1440	
1441	      dumpcap.enable = true;
1442	      usbmon.enable = true;
1443	    };
1444	
1445	    localsend = {
1446	      enable = true;
1447	      package = pkgs.localsend;
1448	
1449	      openFirewall = true;
1450	    };
1451	
1452	    dconf = {
1453	      enable = true;
1454	      profiles.user.databases = [
1455	        {
1456	          lockAll = true;
1457	
1458	          settings = {
1459	            "system/locale" = {
1460	              region = config.i18n.defaultLocale;
1461	            };
1462	            "system/proxy" = {
1463	              mode = "auto";
1464	            };
1465	
1466	            "org/gnome/system/location" = {
1467	              enabled = true;
1468	            };
1469	            "org/gnome/settings-daemon/plugins/power" = {
1470	              idle-dim = false;
1471	              power-button-action = "interactive";
1472	              power-saver-profile-on-low-battery = false;
1473	              sleep-inactive-ac-type = "nothing";
1474	              sleep-inactive-battery-type = "nothing";
1475	            };
1476	            "org/gnome/settings-daemon/plugins/color" = {
1477	              night-light-enabled = false;
1478	            };
1479	            "org/gnome/desktop/peripherals/keyboard" = {
1480	              numlock-state = true;
1481	              repeat = true;
1482	            };
1483	            "org/gnome/desktop/peripherals/mouse" = {
1484	              accel-profile = "default";
1485	              left-handed = false;
1486	              natural-scroll = false;
1487	            };
1488	            "org/gnome/desktop/peripherals/touchpad" = {
1489	              click-method = "areas";
1490	              disable-while-typing = true;
1491	              edge-scrolling-enabled = false;
1492	              natural-scroll = true;
1493	              send-events = "enabled";
1494	              tap-to-click = true;
1495	              two-finger-scrolling-enabled = true;
1496	            };
1497	            "org/gnome/desktop/peripherals/pointingstick" = {
1498	              scroll-method = "default";
1499	            };
1500	            "org/gnome/desktop/media-handling" = {
1501	              autorun-never = false;
1502	            };
1503	            "org/gnome/desktop/input-sources" = {
1504	              per-window = false;
1505	              show-all-sources = true;
1506	              sources = [
1507	                (pkgs.lib.gvariant.mkTuple [
1508	                  "xkb"
1509	                  "us"
1510	                ])
1511	                (pkgs.lib.gvariant.mkTuple [
1512	                  "ibus"
1513	                  "OpenBangla"
1514	                ])
1515	                (pkgs.lib.gvariant.mkTuple [
1516	                  "xkb"
1517	                  "bd"
1518	                ])
1519	                (pkgs.lib.gvariant.mkTuple [
1520	                  "xkb"
1521	                  "ara"
1522	                ])
1523	              ];
1524	            };
1525	            "org/gnome/desktop/sound" = {
1526	              allow-volume-above-100-percent = true;
1527	              event-sounds = true;
1528	            };
1529	            "org/gnome/desktop/datetime" = {
1530	              automatic-timezone = false;
1531	            };
1532	            "org/gnome/desktop/session" = {
1533	              idle-delay = pkgs.lib.gvariant.mkUint32 0; # 0 = Disabled
1534	            };
1535	            "org/gnome/desktop/privacy" = {
1536	              disable-camera = false;
1537	              old-files-age = pkgs.lib.gvariant.mkUint32 1; # 1 = 1 day
1538	              remember-app-usage = false;
1539	              remember-recent-files = false;
1540	              remove-old-temp-files = true;
1541	              remove-old-trash-files = true;
1542	              report-technical-problems = false;
1543	              send-software-usage-stats = false;
1544	              usb-protection = true;
1545	            };
1546	            "org/gnome/desktop/screensaver" = {
1547	              lock-enabled = false;
1548	            };
1549	            "org/gnome/desktop/notifications" = {
1550	              show-in-lock-screen = true;
1551	            };
1552	            "org/gnome/desktop/interface" = {
1553	              # overlay-scrolling = true;
1554	              clock-format = "12h";
1555	              clock-show-date = true;
1556	              clock-show-weekday = true;
1557	              color-scheme = "prefer-dark";
1558	              cursor-blink = true;
1559	              document-font-name = "${font_preferences.name.sans_serif} ${toString font_preferences.size}";
1560	              enable-animations = true;
1561	              enable-hot-corners = true;
1562	              gtk-enable-primary-paste = true;
1563	              gtk-key-theme = "Default";
1564	              locate-pointer = true;
1565	              monospace-font-name = "${font_preferences.name.mono} ${toString font_preferences.size}";
1566	              show-battery-percentage = true;
1567	            };
1568	            "org/gnome/desktop/wm/preferences" = {
1569	              action-double-click-titlebar = "toggle-maximize";
1570	              action-middle-click-titlebar = "toggle-maximize-vertically";
1571	              action-right-click-titlebar = "menu";
1572	              auto-raise = true;
1573	              button-layout = "appmenu:minimize,maximize,close";
1574	              focus-mode = "mouse";
1575	              mouse-button-modifier = "<Super>";
1576	              resize-with-right-button = false;
1577	              visual-bell = false;
1578	            };
1579	            "org/gnome/desktop/calendar" = {
1580	              show-weekdate = true;
1581	            };
1582	            "org/gnome/desktop/search-providers" = {
1583	              disable-external = false;
1584	            };
1585	            "org/gnome/desktop/file-sharing" = {
1586	              require-password = "always";
1587	            };
1588	            "org/gnome/desktop/a11y" = {
1589	              always-show-universal-access-status = false;
1590	            };
1591	            "org/gnome/desktop/a11y/keyboard" = {
1592	              enable = false;
1593	              bouncekeys-enable = false;
1594	              mousekeys-enable = false;
1595	              slowkeys-enable = false;
1596	              stickykeys-enable = false;
1597	              togglekeys-enable = true;
1598	            };
1599	            "org/gnome/desktop/a11y/mouse" = {
1600	              secondary-click-enabled = false;
1601	              dwell-click-enabled = false;
1602	            };
1603	            "org/gnome/desktop/a11y/interface" = {
1604	              high-contrast = false;
1605	              show-status-shapes = true;
1606	            };
1607	            "org/gnome/desktop/a11y/magnifier" = {
1608	              invert-lightness = false;
1609	            };
1610	            "org/gnome/shell" = {
1611	              # app-picker-layout = pkgs.lib.gvariant.mkEmptyArray (pkgs.lib.gvariant.type.string); # Alphabetical Sort
1612	              always-show-log-out = true;
1613	              disable-extension-version-validation = false;
1614	              disable-user-extensions = false;
1615	              enabled-extensions = [
1616	                "Vitals@CoreCoding.com"
1617	                "appindicatorsupport@rgcjonas.gmail.com"
1618	                "blur-my-shell@aunetx"
1619	                "desktop-cube@schneegans.github.com"
1620	                "drive-menu@gnome-shell-extensions.gcampax.github.com"
1621	                "gsconnect@andyholmes.github.io"
1622	                "pano@elhan.io"
1623	                "places-menu@gnome-shell-extensions.gcampax.github.com"
1624	              ];
1625	              favorite-apps = [
1626	                "org.gnome.Console.desktop"
1627	                "org.gnome.Nautilus.desktop"
1628	                "firefox-devedition.desktop"
1629	                "thunderbird.desktop"
1630	                "org.fritzing.Fritzing.desktop"
1631	                "org.kicad.kicad.desktop"
1632	                "serial-studio.desktop"
1633	                "code.desktop"
1634	                "com.obsproject.Studio.desktop"
1635	                "sdrangel.desktop"
1636	                "sdrpp.desktop"
1637	                "virt-manager.desktop"
1638	              ];
1639	              last-selected-power-profile = "performance";
1640	            };
1641	            "org/gnome/shell/app-switcher" = {
1642	              current-workspace-only = false;
1643	            };
1644	            "org/gnome/shell/extensions/appindicator" = {
1645	              legacy-tray-enabled = true;
1646	            };
1647	            "org/gnome/shell/extensions/gsconnect" = {
1648	              keep-alive-when-locked = true;
1649	              name = config.networking.hostName;
1650	              show-indicators = true;
1651	            };
1652	            "org/gnome/shell/extensions/pano" = {
1653	              item-date-font-family = font_preferences.name.sans_serif;
1654	              item-title-font-family = font_preferences.name.sans_serif;
1655	              keep-search-entry = false;
1656	              link-previews = true;
1657	              open-links-in-browser = true;
1658	              paste-on-select = false;
1659	              play-audio-on-copy = false;
1660	              search-bar-font-family = font_preferences.name.sans_serif;
1661	              send-notification-on-copy = false;
1662	              session-only-mode = true;
1663	              show-indicator = true;
1664	              sync-primary = true;
1665	              watch-exclusion-list = true;
1666	              wiggle-indicator = true;
1667	            };
1668	            "org/gnome/shell/extensions/vitals" = {
1669	              fixed-widths = false;
1670	              hide-icons = false;
1671	              hide-zeros = false;
1672	              hot-sensors = [
1673	                "_processor_usage_"
1674	                "_memory_usage_"
1675	                "__network-rx_max__"
1676	                "__network-tx_max__"
1677	              ];
1678	              include-public-ip = true;
1679	              include-static-gpu-info = true;
1680	              include-static-info = true;
1681	              menu-centered = true;
1682	              show-battery = true;
1683	              show-fan = true;
1684	              show-gpu = true;
1685	              show-memory = true;
1686	              show-network = true;
1687	              show-processor = true;
1688	              show-storage = true;
1689	              show-system = true;
1690	              show-temperature = true;
1691	              show-voltage = true;
1692	              use-higher-precision = true;
1693	            };
1694	            "org/gnome/shell/extensions/desktop-cube" = {
1695	              do-explode = true;
1696	              enable-desktop-dragging = true;
1697	              enable-desktop-edge-switch = true;
1698	              enable-overview-dragging = true;
1699	              enable-overview-edge-switch = true;
1700	              enable-panel-dragging = true;
1701	              last-first-gap = true;
1702	            };
1703	            "org/gnome/mutter" = {
1704	              attach-modal-dialogs = false;
1705	              center-new-windows = true;
1706	              dynamic-workspaces = true;
1707	              edge-tiling = true;
1708	              workspaces-only-on-primary = false;
1709	            };
1710	
1711	            "org/gtk/settings/file-chooser" = {
1712	              clock-format = "12h";
1713	            };
1714	            "org/gtk/gtk4/settings/file-chooser" = {
1715	              sort-directories-first = true;
1716	            };
1717	            "org/gnome/nautilus/preferences" = {
1718	              click-policy = "double";
1719	              recursive-search = "always";
1720	              show-create-link = true;
1721	              show-delete-permanently = true;
1722	              show-directory-item-counts = "always";
1723	              show-image-thumbnails = "always";
1724	              date-time-format = "simple";
1725	            };
1726	            "org/gnome/nautilus/icon-view" = {
1727	              captions = [
1728	                "size"
1729	                "date_modified"
1730	                "none"
1731	              ];
1732	            };
1733	
1734	            "org/gnome/file-roller/ui" = {
1735	              view-sidebar = true;
1736	            };
1737	
1738	            "org/gnome/Console" = {
1739	              audible-bell = true;
1740	              ignore-scrollback-limit = true;
1741	              theme = "night";
1742	              use-system-font = true;
1743	              visual-bell = true;
1744	            };
1745	
1746	            "org/virt-manager/virt-manager" = {
1747	              xmleditor-enabled = true;
1748	            };
1749	            "org/virt-manager/virt-manager/connections" = {
1750	              autoconnect = [
1751	                "qemu:///system"
1752	              ];
1753	              uris = [
1754	                "qemu:///system"
1755	              ];
1756	            };
1757	            "org/virt-manager/virt-manager/new-vm" = {
1758	              cpu-default = "host-passthrough";
1759	            };
1760	            "org/virt-manager/virt-manager/console" = {
1761	              auto-redirect = false;
1762	              autoconnect = true;
1763	            };
1764	            "org/virt-manager/virt-manager/stats" = {
1765	              enable-cpu-poll = true;
1766	              enable-disk-poll = true;
1767	              enable-memory-poll = true;
1768	              enable-net-poll = true;
1769	            };
1770	            "org/virt-manager/virt-manager/vmlist-fields" = {
1771	              cpu-usage = true;
1772	              disk-usage = true;
1773	              host-cpu-usage = true;
1774	              memory-usage = true;
1775	              network-traffic = true;
1776	            };
1777	            "org/virt-manager/virt-manager/confirm" = {
1778	              delete-storage = true;
1779	              forcepoweroff = true;
1780	              pause = true;
1781	              poweroff = true;
1782	              removedev = true;
1783	              unapplied-dev = true;
1784	            };
1785	
1786	            "org/gnome/gnome-system-monitor" = {
1787	              cpu-smooth-graph = true;
1788	              kill-dialog = true;
1789	              network-in-bits = false;
1790	              network-total-in-bits = false;
1791	              process-memory-in-iec = true;
1792	              resources-memory-in-iec = true;
1793	              show-all-fs = true;
1794	              show-dependencies = true;
1795	              show-whose-processes = "all";
1796	              smooth-refresh = true;
1797	              solaris-mode = true;
1798	            };
1799	            "org/gnome/gnome-system-monitor/proctree" = {
1800	              col-0-visible = true;
1801	              col-1-visible = true;
1802	              col-2-visible = true;
1803	              col-3-visible = true;
1804	              col-4-visible = true;
1805	              col-6-visible = true;
1806	              col-7-visible = true;
1807	              col-8-visible = true;
1808	              col-9-visible = true;
1809	              col-10-visible = true;
1810	              col-11-visible = true;
1811	              col-12-visible = true;
1812	              col-14-visible = true;
1813	              col-15-visible = true;
1814	              col-16-visible = true;
1815	              col-17-visible = true;
1816	              col-18-visible = true;
1817	              col-19-visible = true;
1818	              col-20-visible = true;
1819	              col-21-visible = true;
1820	              col-22-visible = true;
1821	              col-23-visible = true;
1822	              col-24-visible = true;
1823	              col-25-visible = true;
1824	              col-26-visible = true;
1825	            };
1826	            "org/gnome/gnome-system-monitor/disksview" = {
1827	              col-available-visible = true;
1828	              col-device-visible = true;
1829	              col-directory-visible = true;
1830	              col-free-visible = true;
1831	              col-total-visible = true;
1832	              col-type-visible = true;
1833	              col-used-visible = true;
1834	            };
1835	
1836	            "org/gnome/Snapshot" = {
1837	              enable-audio-recording = true;
1838	              play-shutter-sound = true;
1839	              show-composition-guidelines = true;
1840	            };
1841	
1842	            "com/github/huluti/Curtail" = {
1843	              file-attributes = true;
1844	              metadata = false;
1845	              new-file = true;
1846	              recursive = true;
1847	            };
1848	
1849	            "org/gnome/simple-scan" = {
1850	              postproc-keep-original = true;
1851	            };
1852	
1853	            "com/github/tenderowl/frog" = {
1854	              telemetry = false;
1855	            };
1856	
1857	            "app/drey/EarTag" = {
1858	              musicbrainz-cover-size = "Maximum size";
1859	            };
1860	
1861	            "org/gnome/meld" = {
1862	              enable-space-drawer = true;
1863	              highlight-current-line = true;
1864	              highlight-syntax = true;
1865	              prefer-dark-theme = true;
1866	              show-line-numbers = true;
1867	              show-overview-map = true;
1868	              wrap-mode = "word";
1869	            };
1870	
1871	            "org/gnome/gitg/preferences/interface" = {
1872	              enable-diff-highlighting = true;
1873	              enable-monitoring = true;
1874	              use-default-font = true;
1875	              use-gravatar = true;
1876	            };
1877	            "org/gnome/gitg/preferences/commit/message" = {
1878	              enable-spell-checking = true;
1879	              show-markup = true;
1880	            };
1881	
1882	            "org/gnome/calculator" = {
1883	              show-thousands = true;
1884	              show-zeroes = true;
1885	            };
1886	
1887	            "io/gitlab/adhami3310/Converter" = {
1888	              show-less-popular = true;
1889	            };
1890	
1891	            "org/gnome/maps" = {
1892	              show-scale = true;
1893	            };
1894	
1895	            "org/gnome/GWeather4" = {
1896	              temperature-unit = "centigrade";
1897	            };
1898	
1899	            "app/drey/Dialect" = {
1900	              color-scheme = "dark";
1901	              show-pronunciation = true;
1902	              src-auto = true;
1903	            };
1904	          };
1905	        }
1906	      ];
1907	    };
1908	  };
1909	
1910	  fonts = {
1911	    enableDefaultPackages = false;
1912	    packages = with pkgs; [
1913	      corefonts
1914	      nerd-fonts.noto
1915	      noto-fonts
1916	      noto-fonts-cjk-sans
1917	      noto-fonts-cjk-serif
1918	      noto-fonts-color-emoji
1919	      noto-fonts-lgc-plus
1920	    ];
1921	
1922	    fontconfig = {
1923	      enable = true;
1924	
1925	      allowBitmaps = true;
1926	      allowType1 = false;
1927	      cache32Bit = true;
1928	
1929	      defaultFonts = {
1930	        monospace = [
1931	          font_preferences.name.mono
1932	        ];
1933	
1934	        sansSerif = [
1935	          font_preferences.name.sans_serif
1936	        ];
1937	
1938	        serif = [
1939	          font_preferences.name.serif
1940	        ];
1941	
1942	        emoji = [
1943	          font_preferences.name.emoji
1944	        ];
1945	      };
1946	
1947	      includeUserConf = true;
1948	    };
1949	  };
1950	
1951	  environment = {
1952	    enableAllTerminfo = true;
1953	
1954	    wordlist = {
1955	      enable = true;
1956	      # lists = ;
1957	    };
1958	
1959	    homeBinInPath = true;
1960	    localBinInPath = true;
1961	
1962	    stub-ld.enable = true;
1963	
1964	    variables = {
1965	      ANDROID_SDK_ROOT = android_sdk_path;
1966	      ANDROID_HOME = android_sdk_path;
1967	    };
1968	
1969	    sessionVariables = {
1970	      NIXOS_OZONE_WL = "1";
1971	      CHROME_EXECUTABLE = "chromium";
1972	    };
1973	
1974	    shellAliases = {
1975	      clean_build = "sudo nix-channel --update && sudo nix-env -u --always && sudo rm -rf /nix/var/nix/gcroots/auto/* && sudo nix-collect-garbage -d && nix-collect-garbage -d && sudo nix-store --gc && sudo nixos-rebuild switch --install-bootloader --upgrade-all";
1976	    };
1977	
1978	    extraInit = '''';
1979	
1980	    loginShellInit = '''';
1981	
1982	    shellInit = '''';
1983	
1984	    interactiveShellInit = '''';
1985	
1986	    systemPackages =
1987	      with pkgs;
1988	      [
1989	        # amrnb
1990	        # amrwb
1991	        # appimagekit
1992	        # gnss-sdr
1993	        # reiser4progs
1994	        above
1995	        acl
1996	        aircrack-ng
1997	        alac
1998	        amass
1999	        android-tools
2000	        android_sdk # Custom
2001	        anydesk
2002	        apkeep
2003	        apkleaks
2004	        apksigner
2005	        aptdec
2006	        aribb24
2007	        aribb25
2008	        arj
2009	        audacity
2010	        autopsy
2011	        avrdude
2012	        baobab
2013	        binary
2014	        binwalk
2015	        bleachbit
2016	        blender
2017	        bluez-tools
2018	        btrfs-progs
2019	        bulk_extractor
2020	        burpsuite
2021	        bustle
2022	        bzip2
2023	        bzip3
2024	        cabextract
2025	        celestia
2026	        celt
2027	        certbot-full
2028	        chmlib
2029	        clang
2030	        clang-analyzer
2031	        clang-manpages
2032	        clang-tools
2033	        clinfo
2034	        cloc
2035	        cloudflare-warp
2036	        cmake
2037	        code-nautilus
2038	        codec2
2039	        collision
2040	        coreutils-full
2041	        cpio
2042	        cryptsetup
2043	        cups-filters
2044	        cups-pdf-to-pdf
2045	        cups-printers
2046	        curlFull
2047	        curtail
2048	        d-spy
2049	        darktable
2050	        dart
2051	        dbeaver-bin
2052	        dconf-editor
2053	        dconf2nix
2054	        debase
2055	        dialect
2056	        dirb
2057	        dmg2img
2058	        dmidecode
2059	        dnsrecon
2060	        dosfstools
2061	        e2fsprogs
2062	        eartag
2063	        efibootmgr
2064	        esptool
2065	        evtest
2066	        evtest-qt
2067	        exfatprogs
2068	        eyedropper
2069	        f2fs-tools
2070	        faac
2071	        faad2
2072	        fdk_aac
2073	        ffmpeg-full
2074	        ffmpegthumbnailer
2075	        file
2076	        flutter
2077	        fritzing
2078	        fwupd-efi
2079	        gcc
2080	        gdb
2081	        gdk-pixbuf
2082	        ghidra
2083	        gimp-with-plugins
2084	        git-doc
2085	        git-filter-repo
2086	        gitg
2087	        glib
2088	        glibc
2089	        gnome-autoar
2090	        gnome-backgrounds
2091	        gnome-bluetooth
2092	        gnome-calculator
2093	        gnome-calendar
2094	        gnome-characters
2095	        gnome-clocks
2096	        gnome-color-manager
2097	        gnome-connections
2098	        gnome-console
2099	        gnome-control-center
2100	        gnome-decoder
2101	        gnome-epub-thumbnailer
2102	        gnome-firmware
2103	        gnome-font-viewer
2104	        gnome-frog
2105	        gnome-graphs
2106	        gnome-logs
2107	        gnome-maps
2108	        gnome-multi-writer
2109	        gnome-nettool
2110	        gnome-power-manager
2111	        gnome-system-monitor
2112	        gnome-tecla
2113	        gnome-tweaks
2114	        gnome-user-docs
2115	        gnome-video-effects
2116	        gnome-weather
2117	        gnugrep
2118	        gnulib
2119	        gnumake
2120	        gnused
2121	        gnutar
2122	        gnutls
2123	        gource
2124	        gpredict
2125	        gsm
2126	        gtk-vnc
2127	        guestfs-tools
2128	        gzip
2129	        hardinfo2
2130	        hashcat
2131	        hdparm
2132	        hfsprogs
2133	        hieroglyphic
2134	        hw-probe
2135	        hwloc
2136	        hydra-check
2137	        i2c-tools
2138	        iaito
2139	        iftop
2140	        inkscape
2141	        inotify-tools
2142	        jellyfin-media-player
2143	        jfsutils
2144	        jmol
2145	        john
2146	        johnny
2147	        jxrlib
2148	        keepassxc
2149	        kernelshark
2150	        kicad
2151	        letterpress
2152	        lha
2153	        lhasa
2154	        libGL
2155	        libGLU
2156	        libaom
2157	        libappimage
2158	        libass
2159	        libcamera
2160	        libde265
2161	        libdvdcss
2162	        libdvdnav
2163	        libdvdread
2164	        libepoxy
2165	        libfreeaptx
2166	        libfreefare
2167	        libftdi1
2168	        libgcc
2169	        libgpg-error
2170	        libgsf
2171	        libguestfs
2172	        libheif
2173	        libilbc
2174	        liblc3
2175	        libnotify
2176	        libogg
2177	        libopenraw
2178	        libopus
2179	        libosinfo
2180	        libusb1
2181	        libuuid
2182	        libuvc
2183	        libva-utils
2184	        libvpx
2185	        libwebcam
2186	        libwebp
2187	        libxfs
2188	        libzip
2189	        linuxConsoleTools
2190	        lorem
2191	        loupe
2192	        lrzip
2193	        lshw
2194	        lsof
2195	        lsscsi
2196	        lvm2
2197	        lynis
2198	        lz4
2199	        lzham
2200	        lzip
2201	        lzlib
2202	        lzop
2203	        macchanger
2204	        masscan
2205	        massdns
2206	        mattermost-desktop
2207	        media-player-info
2208	        meld
2209	        mesa-demos
2210	        mfcuk
2211	        mfoc
2212	        monkeysAudio
2213	        mtools
2214	        nautilus
2215	        netdiscover
2216	        netsniff-ng
2217	        networkmanagerapplet
2218	        ngrok
2219	        nikto
2220	        nilfs-utils
2221	        ninja
2222	        nix-bash-completions
2223	        nix-diff
2224	        nix-index
2225	        nix-info
2226	        nixd
2227	        nixdoc
2228	        nixfmt-rfc-style
2229	        nixos-icons
2230	        nixpkgs-lint
2231	        nixpkgs-review
2232	        nmap
2233	        ntfs3g
2234	        ntp
2235	        nuclei
2236	        onionshare-gui
2237	        onlyoffice-desktopeditors
2238	        opencore-amr
2239	        openh264
2240	        openjpeg
2241	        openssl
2242	        p7zip
2243	        paper-clip
2244	        parabolic
2245	        patchelf
2246	        pciutils
2247	        pcre
2248	        php84
2249	        pjsip
2250	        pkg-config
2251	        platformio
2252	        platformio-core
2253	        podman-compose
2254	        podman-desktop
2255	        python313Full
2256	        qemu-utils
2257	        qpwgraph
2258	        radare2
2259	        rar
2260	        readline
2261	        reiserfsprogs
2262	        rpPPPoE
2263	        rpi-imager
2264	        rpmextract
2265	        rtl-sdr-librtlsdr
2266	        rzip
2267	        sane-backends
2268	        sbc
2269	        scalpel
2270	        schroedinger
2271	        scrcpy
2272	        screen
2273	        sdrangel
2274	        sdrpp
2275	        serial-studio
2276	        share-preview
2277	        shared-mime-info
2278	        sherlock
2279	        simple-scan
2280	        sipvicious
2281	        sleuthkit
2282	        smartmontools
2283	        smbmap
2284	        snapshot
2285	        songrec
2286	        spice
2287	        spice-gtk
2288	        spice-protocol
2289	        spooftooph
2290	        sslscan
2291	        subfinder
2292	        subtitleedit
2293	        swaks
2294	        switcheroo
2295	        sysprof
2296	        telegram-desktop
2297	        texliveFull
2298	        theharvester
2299	        thermald
2300	        time
2301	        tor-browser
2302	        transmission_4-gtk
2303	        tree
2304	        trufflehog
2305	        udftools
2306	        unar
2307	        unicode-emoji
2308	        universal-android-debloater
2309	        unix-privesc-check
2310	        unrar
2311	        unzip
2312	        usbutils
2313	        util-linux
2314	        valuta
2315	        virt-viewer
2316	        virtio-win
2317	        virtiofsd
2318	        vlc
2319	        vlc-bittorrent
2320	        vulkan-tools
2321	        wafw00f
2322	        wavpack
2323	        waycheck
2324	        wayland-utils
2325	        waylevel
2326	        webfontkitgenerator
2327	        wev
2328	        wget
2329	        which
2330	        whois
2331	        wifite2
2332	        win-spice
2333	        wl-clipboard
2334	        woff2
2335	        wpscan
2336	        x264
2337	        x265
2338	        xdg-user-dirs
2339	        xdg-utils
2340	        xfsdump
2341	        xfsprogs
2342	        xfstests
2343	        xorg.xhost
2344	        xoscope
2345	        xvidcore
2346	        xz
2347	        yara
2348	        zenity
2349	        zip
2350	        zlib
2351	        zpaq
2352	        zstd
2353	      ]
2354	      ++ (with unixtools; [
2355	        arp
2356	        fdisk
2357	        ifconfig
2358	        netstat
2359	        nettools
2360	        ping
2361	        route
2362	        util-linux
2363	        whereis
2364	      ])
2365	      ++ (with fishPlugins; [
2366	        async-prompt
2367	        autopair
2368	        done
2369	        fish-you-should-use
2370	        sponge
2371	      ])
2372	      ++ (with gst_all_1; [
2373	        gst-libav
2374	        gst-plugins-bad
2375	        gst-plugins-base
2376	        gst-plugins-good
2377	        gst-plugins-ugly
2378	        gst-vaapi
2379	        gstreamer
2380	      ])
2381	      ++ (with pkgs.gnome; [
2382	        nixos-gsettings-overrides
2383	      ])
2384	      ++ (with gnomeExtensions; [
2385	        appindicator
2386	        blur-my-shell
2387	        desktop-cube
2388	        gsconnect
2389	        pano
2390	        places-status-indicator
2391	        removable-drive-menu
2392	        vitals
2393	      ])
2394	      ++ (with php84Extensions; [
2395	        bz2
2396	        calendar
2397	        ctype
2398	        curl
2399	        dba
2400	        dom
2401	        exif
2402	        ffi
2403	        fileinfo
2404	        filter
2405	        ftp
2406	        gd
2407	        iconv
2408	        imagick
2409	        imap
2410	        mailparse
2411	        memcached
2412	        mysqli
2413	        mysqlnd
2414	        opcache
2415	        openssl
2416	        pcntl
2417	        pdo
2418	        pdo_mysql
2419	        pdo_pgsql
2420	        pgsql
2421	        posix
2422	        readline
2423	        session
2424	        sockets
2425	        sodium
2426	        xml
2427	        xmlreader
2428	        xmlwriter
2429	        xsl
2430	        zip
2431	        zlib
2432	      ])
2433	      # ++ (with php84Packages; [
2434	      # ])
2435	      ++ (with python313Packages; [
2436	        black
2437	        numpy
2438	        pandas
2439	        pillow
2440	        pip
2441	        pyserial
2442	        seaborn
2443	      ])
2444	      ++ (with texlivePackages; [
2445	        latexmk
2446	      ])
2447	      ++ (with ghidra-extensions; [
2448	        findcrypt
2449	        ghidra-delinker-extension
2450	        ghidra-golanganalyzerextension
2451	        ghidraninja-ghidra-scripts
2452	        gnudisassembler
2453	        lightkeeper
2454	        machinelearning
2455	        ret-sync
2456	        sleighdevtools
2457	        wasm
2458	      ])
2459	      ++ (with inkscape-extensions; [
2460	        applytransforms
2461	        textext
2462	      ]);
2463	
2464	    gnome.excludePackages = with pkgs; [
2465	      decibels
2466	      epiphany
2467	      evince
2468	      geary
2469	      gnome-contacts
2470	      gnome-music
2471	      gnome-text-editor
2472	      gnome-tour
2473	      totem
2474	      yelp
2475	    ];
2476	
2477	    enableDebugInfo = false;
2478	  };
2479	
2480	  xdg = {
2481	    mime = {
2482	      enable = true;
2483	
2484	      addedAssociations = config.xdg.mime.defaultApplications;
2485	
2486	      removedAssociations = { };
2487	
2488	      # https://www.iana.org/assignments/media-types/media-types.xhtml
2489	      defaultApplications = {
2490	        "inode/directory" = "nautilus.desktop";
2491	
2492	        "image/aces" = "org.gnome.Loupe.desktop";
2493	        "image/apng" = "org.gnome.Loupe.desktop";
2494	        "image/avci" = "org.gnome.Loupe.desktop";
2495	        "image/avcs" = "org.gnome.Loupe.desktop";
2496	        "image/avif" = "org.gnome.Loupe.desktop";
2497	        "image/bmp" = "org.gnome.Loupe.desktop";
2498	        "image/cgm" = "org.gnome.Loupe.desktop";
2499	        "image/dicom-rle" = "org.gnome.Loupe.desktop";
2500	        "image/dpx" = "org.gnome.Loupe.desktop";
2501	        "image/emf" = "org.gnome.Loupe.desktop";
2502	        "image/fits" = "org.gnome.Loupe.desktop";
2503	        "image/g3fax" = "org.gnome.Loupe.desktop";
2504	        "image/gif" = "org.gnome.Loupe.desktop";
2505	        "image/heic" = "org.gnome.Loupe.desktop";
2506	        "image/heic-sequence" = "org.gnome.Loupe.desktop";
2507	        "image/heif" = "org.gnome.Loupe.desktop";
2508	        "image/heif-sequence" = "org.gnome.Loupe.desktop";
2509	        "image/hej2k" = "org.gnome.Loupe.desktop";
2510	        "image/hsj2" = "org.gnome.Loupe.desktop";
2511	        "image/ief" = "org.gnome.Loupe.desktop";
2512	        "image/j2c" = "org.gnome.Loupe.desktop";
2513	        "image/jaii" = "org.gnome.Loupe.desktop";
2514	        "image/jais" = "org.gnome.Loupe.desktop";
2515	        "image/jls" = "org.gnome.Loupe.desktop";
2516	        "image/jp2" = "org.gnome.Loupe.desktop";
2517	        "image/jpeg" = "org.gnome.Loupe.desktop";
2518	        "image/jph" = "org.gnome.Loupe.desktop";
2519	        "image/jphc" = "org.gnome.Loupe.desktop";
2520	        "image/jpm" = "org.gnome.Loupe.desktop";
2521	        "image/jpx" = "org.gnome.Loupe.desktop";
2522	        "image/jxl" = "org.gnome.Loupe.desktop";
2523	        "image/jxr" = "org.gnome.Loupe.desktop";
2524	        "image/jxrA" = "org.gnome.Loupe.desktop";
2525	        "image/jxrS" = "org.gnome.Loupe.desktop";
2526	        "image/jxs" = "org.gnome.Loupe.desktop";
2527	        "image/jxsc" = "org.gnome.Loupe.desktop";
2528	        "image/jxsi" = "org.gnome.Loupe.desktop";
2529	        "image/jxss" = "org.gnome.Loupe.desktop";
2530	        "image/ktx" = "org.gnome.Loupe.desktop";
2531	        "image/ktx2" = "org.gnome.Loupe.desktop";
2532	        "image/naplps" = "org.gnome.Loupe.desktop";
2533	        "image/png" = "org.gnome.Loupe.desktop";
2534	        "image/prs.btif" = "org.gnome.Loupe.desktop";
2535	        "image/prs.pti" = "org.gnome.Loupe.desktop";
2536	        "image/pwg-raster" = "org.gnome.Loupe.desktop";
2537	        "image/svg+xml" = "org.gnome.Loupe.desktop";
2538	        "image/t38" = "org.gnome.Loupe.desktop";
2539	        "image/tiff" = "org.gnome.Loupe.desktop";
2540	        "image/tiff-fx" = "org.gnome.Loupe.desktop";
2541	        "image/vnd.adobe.photoshop" = "org.gnome.Loupe.desktop";
2542	        "image/vnd.airzip.accelerator.azv" = "org.gnome.Loupe.desktop";
2543	        "image/vnd.cns.inf2" = "org.gnome.Loupe.desktop";
2544	        "image/vnd.dece.graphic" = "org.gnome.Loupe.desktop";
2545	        "image/vnd.djvu" = "org.gnome.Loupe.desktop";
2546	        "image/vnd.dvb.subtitle" = "org.gnome.Loupe.desktop";
2547	        "image/vnd.dwg" = "org.gnome.Loupe.desktop";
2548	        "image/vnd.dxf" = "org.gnome.Loupe.desktop";
2549	        "image/vnd.fastbidsheet" = "org.gnome.Loupe.desktop";
2550	        "image/vnd.fpx" = "org.gnome.Loupe.desktop";
2551	        "image/vnd.fst" = "org.gnome.Loupe.desktop";
2552	        "image/vnd.fujixerox.edmics-mmr" = "org.gnome.Loupe.desktop";
2553	        "image/vnd.fujixerox.edmics-rlc" = "org.gnome.Loupe.desktop";
2554	        "image/vnd.globalgraphics.pgb" = "org.gnome.Loupe.desktop";
2555	        "image/vnd.microsoft.icon" = "org.gnome.Loupe.desktop";
2556	        "image/vnd.mix" = "org.gnome.Loupe.desktop";
2557	        "image/vnd.mozilla.apng" = "org.gnome.Loupe.desktop";
2558	        "image/vnd.ms-modi" = "org.gnome.Loupe.desktop";
2559	        "image/vnd.net-fpx" = "org.gnome.Loupe.desktop";
2560	        "image/vnd.pco.b16" = "org.gnome.Loupe.desktop";
2561	        "image/vnd.radiance" = "org.gnome.Loupe.desktop";
2562	        "image/vnd.sealed.png" = "org.gnome.Loupe.desktop";
2563	        "image/vnd.sealedmedia.softseal.gif" = "org.gnome.Loupe.desktop";
2564	        "image/vnd.sealedmedia.softseal.jpg" = "org.gnome.Loupe.desktop";
2565	        "image/vnd.svf" = "org.gnome.Loupe.desktop";
2566	        "image/vnd.tencent.tap" = "org.gnome.Loupe.desktop";
2567	        "image/vnd.valve.source.texture" = "org.gnome.Loupe.desktop";
2568	        "image/vnd.wap.wbmp" = "org.gnome.Loupe.desktop";
2569	        "image/vnd.xiff" = "org.gnome.Loupe.desktop";
2570	        "image/vnd.zbrush.pcx" = "org.gnome.Loupe.desktop";
2571	        "image/webp" = "org.gnome.Loupe.desktop";
2572	        "image/wmf" = "org.gnome.Loupe.desktop";
2573	        "image/x-emf" = "org.gnome.Loupe.desktop";
2574	        "image/x-wmf" = "org.gnome.Loupe.desktop";
2575	
2576	        "audio/1d-interleaved-parityfec" = "vlc.desktop";
2577	        "audio/32kadpcm" = "vlc.desktop";
2578	        "audio/3gpp" = "vlc.desktop";
2579	        "audio/3gpp2" = "vlc.desktop";
2580	        "audio/AMR" = "vlc.desktop";
2581	        "audio/AMR-WB" = "vlc.desktop";
2582	        "audio/ATRAC-ADVANCED-LOSSLESS" = "vlc.desktop";
2583	        "audio/ATRAC-X" = "vlc.desktop";
2584	        "audio/ATRAC3" = "vlc.desktop";
2585	        "audio/BV16" = "vlc.desktop";
2586	        "audio/BV32" = "vlc.desktop";
2587	        "audio/CN" = "vlc.desktop";
2588	        "audio/DAT12" = "vlc.desktop";
2589	        "audio/DV" = "vlc.desktop";
2590	        "audio/DVI4" = "vlc.desktop";
2591	        "audio/EVRC" = "vlc.desktop";
2592	        "audio/EVRC-QCP" = "vlc.desktop";
2593	        "audio/EVRC0" = "vlc.desktop";
2594	        "audio/EVRC1" = "vlc.desktop";
2595	        "audio/EVRCB" = "vlc.desktop";
2596	        "audio/EVRCB0" = "vlc.desktop";
2597	        "audio/EVRCB1" = "vlc.desktop";
2598	        "audio/EVRCNW" = "vlc.desktop";
2599	        "audio/EVRCNW0" = "vlc.desktop";
2600	        "audio/EVRCNW1" = "vlc.desktop";
2601	        "audio/EVRCWB" = "vlc.desktop";
2602	        "audio/EVRCWB0" = "vlc.desktop";
2603	        "audio/EVRCWB1" = "vlc.desktop";
2604	        "audio/EVS" = "vlc.desktop";
2605	        "audio/G711-0" = "vlc.desktop";
2606	        "audio/G719" = "vlc.desktop";
2607	        "audio/G722" = "vlc.desktop";
2608	        "audio/G7221" = "vlc.desktop";
2609	        "audio/G723" = "vlc.desktop";
2610	        "audio/G726-16" = "vlc.desktop";
2611	        "audio/G726-24" = "vlc.desktop";
2612	        "audio/G726-32" = "vlc.desktop";
2613	        "audio/G726-40" = "vlc.desktop";
2614	        "audio/G728" = "vlc.desktop";
2615	        "audio/G729" = "vlc.desktop";
2616	        "audio/G7291" = "vlc.desktop";
2617	        "audio/G729D" = "vlc.desktop";
2618	        "audio/G729E" = "vlc.desktop";
2619	        "audio/GSM" = "vlc.desktop";
2620	        "audio/GSM-EFR" = "vlc.desktop";
2621	        "audio/GSM-HR-08" = "vlc.desktop";
2622	        "audio/L16" = "vlc.desktop";
2623	        "audio/L20" = "vlc.desktop";
2624	        "audio/L24" = "vlc.desktop";
2625	        "audio/L8" = "vlc.desktop";
2626	        "audio/LPC" = "vlc.desktop";
2627	        "audio/MELP" = "vlc.desktop";
2628	        "audio/MELP1200" = "vlc.desktop";
2629	        "audio/MELP2400" = "vlc.desktop";
2630	        "audio/MELP600" = "vlc.desktop";
2631	        "audio/MP4A-LATM" = "vlc.desktop";
2632	        "audio/MPA" = "vlc.desktop";
2633	        "audio/PCMA" = "vlc.desktop";
2634	        "audio/PCMA-WB" = "vlc.desktop";
2635	        "audio/PCMU" = "vlc.desktop";
2636	        "audio/PCMU-WB" = "vlc.desktop";
2637	        "audio/QCELP" = "vlc.desktop";
2638	        "audio/RED" = "vlc.desktop";
2639	        "audio/SMV" = "vlc.desktop";
2640	        "audio/SMV-QCP" = "vlc.desktop";
2641	        "audio/SMV0" = "vlc.desktop";
2642	        "audio/TETRA_ACELP" = "vlc.desktop";
2643	        "audio/TETRA_ACELP_BB" = "vlc.desktop";
2644	        "audio/TSVCIS" = "vlc.desktop";
2645	        "audio/UEMCLIP" = "vlc.desktop";
2646	        "audio/VDVI" = "vlc.desktop";
2647	        "audio/VMR-WB" = "vlc.desktop";
2648	        "audio/aac" = "vlc.desktop";
2649	        "audio/ac3" = "vlc.desktop";
2650	        "audio/amr-wb+" = "vlc.desktop";
2651	        "audio/aptx" = "vlc.desktop";
2652	        "audio/asc" = "vlc.desktop";
2653	        "audio/basic" = "vlc.desktop";
2654	        "audio/clearmode" = "vlc.desktop";
2655	        "audio/dls" = "vlc.desktop";
2656	        "audio/dsr-es201108" = "vlc.desktop";
2657	        "audio/dsr-es202050" = "vlc.desktop";
2658	        "audio/dsr-es202211" = "vlc.desktop";
2659	        "audio/dsr-es202212" = "vlc.desktop";
2660	        "audio/eac3" = "vlc.desktop";
2661	        "audio/encaprtp" = "vlc.desktop";
2662	        "audio/flac" = "vlc.desktop";
2663	        "audio/flexfec" = "vlc.desktop";
2664	        "audio/fwdred" = "vlc.desktop";
2665	        "audio/iLBC" = "vlc.desktop";
2666	        "audio/ip-mr_v2.5" = "vlc.desktop";
2667	        "audio/matroska" = "vlc.desktop";
2668	        "audio/mhas" = "vlc.desktop";
2669	        "audio/midi-clip" = "vlc.desktop";
2670	        "audio/mobile-xmf" = "vlc.desktop";
2671	        "audio/mp4" = "vlc.desktop";
2672	        "audio/mpa-robust" = "vlc.desktop";
2673	        "audio/mpeg" = "vlc.desktop";
2674	        "audio/mpeg4-generic" = "vlc.desktop";
2675	        "audio/ogg" = "vlc.desktop";
2676	        "audio/opus" = "vlc.desktop";
2677	        "audio/parityfec" = "vlc.desktop";
2678	        "audio/prs.sid" = "vlc.desktop";
2679	        "audio/raptorfec" = "vlc.desktop";
2680	        "audio/rtp-enc-aescm128" = "vlc.desktop";
2681	        "audio/rtp-midi" = "vlc.desktop";
2682	        "audio/rtploopback" = "vlc.desktop";
2683	        "audio/rtx" = "vlc.desktop";
2684	        "audio/scip" = "vlc.desktop";
2685	        "audio/sofa" = "vlc.desktop";
2686	        "audio/sp-midi" = "vlc.desktop";
2687	        "audio/speex" = "vlc.desktop";
2688	        "audio/t140c" = "vlc.desktop";
2689	        "audio/t38" = "vlc.desktop";
2690	        "audio/telephone-event" = "vlc.desktop";
2691	        "audio/tone" = "vlc.desktop";
2692	        "audio/ulpfec" = "vlc.desktop";
2693	        "audio/usac" = "vlc.desktop";
2694	        "audio/vnd.3gpp.iufp" = "vlc.desktop";
2695	        "audio/vnd.4SB" = "vlc.desktop";
2696	        "audio/vnd.CELP" = "vlc.desktop";
2697	        "audio/vnd.audiokoz" = "vlc.desktop";
2698	        "audio/vnd.cisco.nse" = "vlc.desktop";
2699	        "audio/vnd.cmles.radio-events" = "vlc.desktop";
2700	        "audio/vnd.cns.anp1" = "vlc.desktop";
2701	        "audio/vnd.cns.inf1" = "vlc.desktop";
2702	        "audio/vnd.dece.audio" = "vlc.desktop";
2703	        "audio/vnd.digital-winds" = "vlc.desktop";
2704	        "audio/vnd.dlna.adts" = "vlc.desktop";
2705	        "audio/vnd.dolby.heaac.1" = "vlc.desktop";
2706	        "audio/vnd.dolby.heaac.2" = "vlc.desktop";
2707	        "audio/vnd.dolby.mlp" = "vlc.desktop";
2708	        "audio/vnd.dolby.mps" = "vlc.desktop";
2709	        "audio/vnd.dolby.pl2" = "vlc.desktop";
2710	        "audio/vnd.dolby.pl2x" = "vlc.desktop";
2711	        "audio/vnd.dolby.pl2z" = "vlc.desktop";
2712	        "audio/vnd.dolby.pulse.1" = "vlc.desktop";
2713	        "audio/vnd.dra" = "vlc.desktop";
2714	        "audio/vnd.dts" = "vlc.desktop";
2715	        "audio/vnd.dts.hd" = "vlc.desktop";
2716	        "audio/vnd.dts.uhd" = "vlc.desktop";
2717	        "audio/vnd.dvb.file" = "vlc.desktop";
2718	        "audio/vnd.everad.plj" = "vlc.desktop";
2719	        "audio/vnd.hns.audio" = "vlc.desktop";
2720	        "audio/vnd.lucent.voice" = "vlc.desktop";
2721	        "audio/vnd.ms-playready.media.pya" = "vlc.desktop";
2722	        "audio/vnd.nokia.mobile-xmf" = "vlc.desktop";
2723	        "audio/vnd.nortel.vbk" = "vlc.desktop";
2724	        "audio/vnd.nuera.ecelp4800" = "vlc.desktop";
2725	        "audio/vnd.nuera.ecelp7470" = "vlc.desktop";
2726	        "audio/vnd.nuera.ecelp9600" = "vlc.desktop";
2727	        "audio/vnd.octel.sbc" = "vlc.desktop";
2728	        "audio/vnd.presonus.multitrack" = "vlc.desktop";
2729	        "audio/vnd.qcelp" = "vlc.desktop";
2730	        "audio/vnd.rhetorex.32kadpcm" = "vlc.desktop";
2731	        "audio/vnd.rip" = "vlc.desktop";
2732	        "audio/vnd.sealedmedia.softseal.mpeg" = "vlc.desktop";
2733	        "audio/vnd.vmx.cvsd" = "vlc.desktop";
2734	        "audio/vorbis" = "vlc.desktop";
2735	        "audio/vorbis-config" = "vlc.desktop";
2736	
2737	        "video/1d-interleaved-parityfec" = "vlc.desktop";
2738	        "video/3gpp" = "vlc.desktop";
2739	        "video/3gpp-tt" = "vlc.desktop";
2740	        "video/3gpp2" = "vlc.desktop";
2741	        "video/AV1" = "vlc.desktop";
2742	        "video/BMPEG" = "vlc.desktop";
2743	        "video/BT656" = "vlc.desktop";
2744	        "video/CelB" = "vlc.desktop";
2745	        "video/DV" = "vlc.desktop";
2746	        "video/FFV1" = "vlc.desktop";
2747	        "video/H261" = "vlc.desktop";
2748	        "video/H263" = "vlc.desktop";
2749	        "video/H263-1998" = "vlc.desktop";
2750	        "video/H263-2000" = "vlc.desktop";
2751	        "video/H264" = "vlc.desktop";
2752	        "video/H264-RCDO" = "vlc.desktop";
2753	        "video/H264-SVC" = "vlc.desktop";
2754	        "video/H265" = "vlc.desktop";
2755	        "video/H266" = "vlc.desktop";
2756	        "video/JPEG" = "vlc.desktop";
2757	        "video/MP1S" = "vlc.desktop";
2758	        "video/MP2P" = "vlc.desktop";
2759	        "video/MP2T" = "vlc.desktop";
2760	        "video/MP4V-ES" = "vlc.desktop";
2761	        "video/MPV" = "vlc.desktop";
2762	        "video/SMPTE292M" = "vlc.desktop";
2763	        "video/VP8" = "vlc.desktop";
2764	        "video/VP9" = "vlc.desktop";
2765	        "video/encaprtp" = "vlc.desktop";
2766	        "video/evc" = "vlc.desktop";
2767	        "video/flexfec" = "vlc.desktop";
2768	        "video/iso.segment" = "vlc.desktop";
2769	        "video/jpeg2000" = "vlc.desktop";
2770	        "video/jxsv" = "vlc.desktop";
2771	        "video/matroska" = "vlc.desktop";
2772	        "video/matroska-3d" = "vlc.desktop";
2773	        "video/mj2" = "vlc.desktop";
2774	        "video/mp4" = "vlc.desktop";
2775	        "video/mpeg" = "vlc.desktop";
2776	        "video/mpeg4-generic" = "vlc.desktop";
2777	        "video/nv" = "vlc.desktop";
2778	        "video/ogg" = "vlc.desktop";
2779	        "video/parityfec" = "vlc.desktop";
2780	        "video/pointer" = "vlc.desktop";
2781	        "video/quicktime" = "vlc.desktop";
2782	        "video/raptorfec" = "vlc.desktop";
2783	        "video/raw" = "vlc.desktop";
2784	        "video/rtp-enc-aescm128" = "vlc.desktop";
2785	        "video/rtploopback" = "vlc.desktop";
2786	        "video/rtx" = "vlc.desktop";
2787	        "video/scip" = "vlc.desktop";
2788	        "video/smpte291" = "vlc.desktop";
2789	        "video/ulpfec" = "vlc.desktop";
2790	        "video/vc1" = "vlc.desktop";
2791	        "video/vc2" = "vlc.desktop";
2792	        "video/vnd.CCTV" = "vlc.desktop";
2793	        "video/vnd.dece.hd" = "vlc.desktop";
2794	        "video/vnd.dece.mobile" = "vlc.desktop";
2795	        "video/vnd.dece.mp4" = "vlc.desktop";
2796	        "video/vnd.dece.pd" = "vlc.desktop";
2797	        "video/vnd.dece.sd" = "vlc.desktop";
2798	        "video/vnd.dece.video" = "vlc.desktop";
2799	        "video/vnd.directv.mpeg" = "vlc.desktop";
2800	        "video/vnd.directv.mpeg-tts" = "vlc.desktop";
2801	        "video/vnd.dlna.mpeg-tts" = "vlc.desktop";
2802	        "video/vnd.dvb.file" = "vlc.desktop";
2803	        "video/vnd.fvt" = "vlc.desktop";
2804	        "video/vnd.hns.video" = "vlc.desktop";
2805	        "video/vnd.iptvforum.1dparityfec-1010" = "vlc.desktop";
2806	        "video/vnd.iptvforum.1dparityfec-2005" = "vlc.desktop";
2807	        "video/vnd.iptvforum.2dparityfec-1010" = "vlc.desktop";
2808	        "video/vnd.iptvforum.2dparityfec-2005" = "vlc.desktop";
2809	        "video/vnd.iptvforum.ttsavc" = "vlc.desktop";
2810	        "video/vnd.iptvforum.ttsmpeg2" = "vlc.desktop";
2811	        "video/vnd.motorola.video" = "vlc.desktop";
2812	        "video/vnd.motorola.videop" = "vlc.desktop";
2813	        "video/vnd.mpegurl" = "vlc.desktop";
2814	        "video/vnd.ms-playready.media.pyv" = "vlc.desktop";
2815	        "video/vnd.nokia.interleaved-multimedia" = "vlc.desktop";
2816	        "video/vnd.nokia.mp4vr" = "vlc.desktop";
2817	        "video/vnd.nokia.videovoip" = "vlc.desktop";
2818	        "video/vnd.objectvideo" = "vlc.desktop";
2819	        "video/vnd.radgamettools.bink" = "vlc.desktop";
2820	        "video/vnd.radgamettools.smacker" = "vlc.desktop";
2821	        "video/vnd.sealed.mpeg1" = "vlc.desktop";
2822	        "video/vnd.sealed.mpeg4" = "vlc.desktop";
2823	        "video/vnd.sealed.swf" = "vlc.desktop";
2824	        "video/vnd.sealedmedia.softseal.mov" = "vlc.desktop";
2825	        "video/vnd.uvvu.mp4" = "vlc.desktop";
2826	        "video/vnd.vivo" = "vlc.desktop";
2827	        "video/vnd.youtube.yt" = "vlc.desktop";
2828	
2829	        "application/pdf" = "firefox-devedition.desktop";
2830	
2831	        "x-scheme-handler/http" = "firefox-devedition.desktop";
2832	        "x-scheme-handler/https" = "firefox-devedition.desktop";
2833	
2834	        "x-scheme-handler/mailto" = "thunderbird.desktop";
2835	      };
2836	    };
2837	
2838	    icons.enable = true;
2839	    sounds.enable = true;
2840	
2841	    menus.enable = true;
2842	    autostart.enable = true;
2843	
2844	    terminal-exec.enable = true;
2845	
2846	    portal = {
2847	      enable = true;
2848	      extraPortals = with pkgs; [
2849	        xdg-desktop-portal-gnome
2850	      ];
2851	
2852	      xdgOpenUsePortal = false; # Opening Programs
2853	    };
2854	  };
2855	
2856	  # qt = {
2857	  #   enable = true;
2858	
2859	  #   platformTheme = "gnome";
2860	  #   style = "adwaita-dark";
2861	  # };
2862	
2863	  documentation = {
2864	    enable = true;
2865	    dev.enable = true;
2866	    doc.enable = true;
2867	    info.enable = true;
2868	
2869	    man = {
2870	      enable = true;
2871	
2872	      man-db = {
2873	        enable = true;
2874	        package = pkgs.man-db;
2875	      };
2876	
2877	      generateCaches = true;
2878	    };
2879	
2880	    nixos = {
2881	      enable = true;
2882	      includeAllModules = true;
2883	      options.warningsAreErrors = false;
2884	    };
2885	  };
2886	
2887	  users = {
2888	    groups = {
2889	      hardinfo2 = { }; # Creation
2890	    };
2891	
2892	    enforceIdUniqueness = true;
2893	    mutableUsers = true;
2894	
2895	    defaultUserShell = pkgs.fish;
2896	
2897	    motd = "Welcome";
2898	
2899	    users.bitscoper = {
2900	      isNormalUser = true;
2901	
2902	      name = "bitscoper";
2903	      description = "Abdullah As-Sadeed"; # Full Name
2904	
2905	      extraGroups = [
2906	        "adbusers"
2907	        "audio"
2908	        "dialout"
2909	        "hardinfo2"
2910	        "input"
2911	        "jellyfin"
2912	        "kvm"
2913	        "libvirtd"
2914	        "lp"
2915	        "networkmanager"
2916	        "plugdev"
2917	        "podman"
2918	        "qemu-libvirtd"
2919	        "scanner"
2920	        "tty"
2921	        "uucp"
2922	        "video"
2923	        "wheel"
2924	        "wireshark"
2925	      ];
2926	
2927	      useDefaultShell = true;
2928	    };
2929	  };
2930	
2931	  home-manager = {
2932	    useGlobalPkgs = true;
2933	    useUserPackages = true;
2934	
2935	    backupFileExtension = "old";
2936	
2937	    sharedModules = [
2938	      {
2939	        home = {
2940	          enableNixpkgsReleaseCheck = true;
2941	
2942	          shell = {
2943	            enableShellIntegration = true;
2944	            enableBashIntegration = true;
2945	            enableFishIntegration = true;
2946	          };
2947	
2948	          language = { };
2949	
2950	          keyboard = { };
2951	
2952	          pointerCursor = {
2953	            name = cursor.theme.name;
2954	            package = cursor.theme.package;
2955	            size = cursor.size;
2956	
2957	            gtk.enable = true;
2958	          };
2959	
2960	          preferXdgDirectories = true;
2961	
2962	          packages = with pkgs; [
2963	          ];
2964	
2965	          sessionVariables = { };
2966	
2967	          sessionSearchVariables = { };
2968	
2969	          shellAliases = { };
2970	
2971	          enableDebugInfo = false;
2972	
2973	          stateVersion = "24.11";
2974	        };
2975	
2976	        xdg = {
2977	          mime.enable = true;
2978	
2979	          mimeApps = {
2980	            enable = true;
2981	
2982	            associations = {
2983	              added = config.xdg.mime.addedAssociations;
2984	
2985	              removed = config.xdg.mime.removedAssociations;
2986	            };
2987	
2988	            defaultApplications = config.xdg.mime.defaultApplications;
2989	          };
2990	
2991	          configFile = {
2992	            "mimeapps.list".force = true;
2993	          };
2994	        };
2995	
2996	        gtk = {
2997	          enable = true;
2998	
2999	          theme = {
3000	            package = pkgs.gnome-themes-extra;
3001	            name = "Adwaita-dark";
3002	          };
3003	
3004	          iconTheme = {
3005	            package = pkgs.adwaita-icon-theme;
3006	            name = "Adwaita";
3007	          };
3008	
3009	          cursorTheme = {
3010	            name = cursor.theme.name;
3011	            package = cursor.theme.package;
3012	            size = cursor.size;
3013	          };
3014	
3015	          font = {
3016	            name = font_preferences.name.sans_serif;
3017	            package = font_preferences.package;
3018	            size = font_preferences.size;
3019	          };
3020	        };
3021	
3022	        qt = {
3023	          enable = true;
3024	
3025	          platformTheme.name = "adwaita";
3026	
3027	          style = {
3028	            package = pkgs.adwaita-qt6;
3029	            name = "adwaita-qt";
3030	          };
3031	        };
3032	
3033	        services = { };
3034	
3035	        programs = {
3036	          dircolors = {
3037	            enable = true;
3038	            package = pkgs.coreutils;
3039	
3040	            enableBashIntegration = true;
3041	            enableFishIntegration = true;
3042	
3043	            settings = { };
3044	
3045	            extraConfig = '''';
3046	          };
3047	
3048	          nix-your-shell = {
3049	            enable = true;
3050	            package = pkgs.nix-your-shell;
3051	
3052	            enableFishIntegration = true;
3053	          };
3054	
3055	          vscode = {
3056	            enable = true;
3057	            package = pkgs.vscode;
3058	            mutableExtensionsDir = false;
3059	
3060	            profiles = {
3061	              default = {
3062	                extensions =
3063	                  with pkgs.vscode-extensions;
3064	                  [
3065	                    aaron-bond.better-comments
3066	                    adpyke.codesnap
3067	                    albymor.increment-selection
3068	                    alefragnani.bookmarks
3069	                    alexisvt.flutter-snippets
3070	                    anweber.vscode-httpyac
3071	                    bierner.comment-tagged-templates
3072	                    bierner.docs-view
3073	                    bierner.emojisense
3074	                    bierner.github-markdown-preview
3075	                    bierner.markdown-checkbox
3076	                    bierner.markdown-emoji
3077	                    bierner.markdown-footnotes
3078	                    bierner.markdown-mermaid
3079	                    bierner.markdown-preview-github-styles
3080	                    bradgashler.htmltagwrap
3081	                    chanhx.crabviz
3082	                    christian-kohler.path-intellisense
3083	                    codezombiech.gitignore
3084	                    coolbear.systemd-unit-file
3085	                    dart-code.dart-code
3086	                    dart-code.flutter
3087	                    davidanson.vscode-markdownlint
3088	                    dendron.adjust-heading-level
3089	                    devsense.phptools-vscode
3090	                    dotenv.dotenv-vscode
3091	                    ecmel.vscode-html-css
3092	                    edonet.vscode-command-runner
3093	                    esbenp.prettier-vscode
3094	                    ethansk.restore-terminals
3095	                    fabiospampinato.vscode-open-in-github
3096	                    firefox-devtools.vscode-firefox-debug
3097	                    formulahendry.auto-close-tag
3098	                    formulahendry.auto-rename-tag
3099	                    formulahendry.code-runner
3100	                    foxundermoon.shell-format
3101	                    github.copilot
3102	                    github.copilot-chat
3103	                    github.vscode-github-actions
3104	                    github.vscode-pull-request-github
3105	                    grapecity.gc-excelviewer
3106	                    gruntfuggly.todo-tree
3107	                    hars.cppsnippets
3108	                    hbenl.vscode-test-explorer
3109	                    hediet.vscode-drawio
3110	                    ibm.output-colorizer
3111	                    iciclesoft.workspacesort
3112	                    iliazeus.vscode-ansi
3113	                    illixion.vscode-vibrancy-continued
3114	                    james-yu.latex-workshop
3115	                    jbockle.jbockle-format-files
3116	                    jellyedwards.gitsweep
3117	                    jkillian.custom-local-formatters
3118	                    jnoortheen.nix-ide
3119	                    jock.svg
3120	                    kamikillerto.vscode-colorize
3121	                    llvm-vs-code-extensions.vscode-clangd
3122	                    mads-hartmann.bash-ide-vscode
3123	                    mechatroner.rainbow-csv
3124	                    meganrogge.template-string-converter
3125	                    mishkinf.goto-next-previous-member
3126	                    mkhl.direnv
3127	                    moshfeu.compare-folders
3128	                    sanaajani.taskrunnercode
3129	                    ms-azuretools.vscode-docker
3130	                    ms-python.black-formatter
3131	                    ms-python.debugpy
3132	                    ms-python.isort
3133	                    slevesque.vscode-multiclip
3134	                    ms-python.python
3135	                    ms-toolsai.datawrangler
3136	                    ms-toolsai.jupyter
3137	                    ms-toolsai.jupyter-keymap
3138	                    ms-toolsai.jupyter-renderers
3139	                    rioj7.commandonallfiles
3140	                    ms-toolsai.vscode-jupyter-cell-tags
3141	                    ms-toolsai.vscode-jupyter-slideshow
3142	                    ms-vscode-remote.remote-containers
3143	                    ms-vscode-remote.remote-ssh
3144	                    stylelint.vscode-stylelint
3145	                    ms-vscode-remote.remote-ssh-edit
3146	                    ms-vscode.cmake-tools
3147	                    ms-vscode.cpptools
3148	                    ms-vscode.hexeditor
3149	                    ms-vscode.live-server
3150	                    ms-vscode.makefile-tools
3151	                    ms-vscode.test-adapter-converter
3152	                    ms-vsliveshare.vsliveshare
3153	                    ms-windows-ai-studio.windows-ai-studio
3154	                    oderwat.indent-rainbow
3155	                    platformio.platformio-vscode-ide
3156	                    quicktype.quicktype
3157	                    redhat.vscode-xml
3158	                    redhat.vscode-yaml
3159	                    rubymaniac.vscode-paste-and-indent
3160	                    ryu1kn.partial-diff
3161	                    shardulm94.trailing-spaces
3162	                    skyapps.fish-vscode
3163	                    spywhere.guides
3164	                    tailscale.vscode-tailscale
3165	                    tamasfe.even-better-toml
3166	                    timonwong.shellcheck
3167	                    vscode-icons-team.vscode-icons
3168	                    tyriar.sort-lines
3169	                    usernamehw.errorlens
3170	                    vincaslt.highlight-matching-tag
3171	                    visualstudioexptteam.intellicode-api-usage-examples
3172	                    visualstudioexptteam.vscodeintellicode
3173	                    vscjava.vscode-gradle
3174	                    wmaurer.change-case
3175	                    zainchen.json
3176	                  ]
3177	                  ++ pkgs.vscode-utils.extensionsFromVscodeMarketplace [
3178	                    {
3179	                      name = "vscode-serial-monitor";
3180	                      publisher = "ms-vscode";
3181	                      version = "0.13.250503001";
3182	                      sha256 = "iuni/DybnUxdbvggvlCidurW4GevVPvwYO7/5i+S1ok=";
3183	                    }
3184	                    {
3185	                      name = "unique-lines";
3186	                      publisher = "bibhasdn";
3187	                      version = "1.0.0";
3188	                      sha256 = "W0ZpZ6+vjkfNfOtekx5NWOFTyxfWAiB0XYcIwHabFPQ=";
3189	                    }
3190	                    {
3191	                      name = "pubspec-assist";
3192	                      publisher = "jeroen-meijer";
3193	                      version = "2.3.2";
3194	                      sha256 = "+Mkcbeq7b+vkuf2/LYT10mj46sULixLNKGpCEk1Eu/0=";
3195	                    }
3196	                    {
3197	                      name = "vscode-sort-json";
3198	                      publisher = "richie5um2";
3199	                      version = "1.20.0";
3200	                      sha256 = "Jobx5Pf4SYQVR2I4207RSSP9I85qtVY6/2Nvs/Vvi/0=";
3201	                    }
3202	                    {
3203	                      name = "arb-editor";
3204	                      publisher = "Google";
3205	                      version = "0.2.1";
3206	                      sha256 = "uHdQeW9ZXYg6+VnD6cb5CU10/xV5hCtxt5K+j0qb7as=";
3207	                    }
3208	                    {
3209	                      name = "vscode-print";
3210	                      publisher = "pdconsec";
3211	                      version = "1.4.0";
3212	                      sha256 = "jAZ1F5neIFSevy0bNuHabh8pUbm5vuuxjmot08GctPc=";
3213	                    }
3214	                  ];
3215	
3216	                enableUpdateCheck = true;
3217	                enableExtensionUpdateCheck = true;
3218	
3219	                # userSettings = {
3220	                # };
3221	              };
3222	            };
3223	          };
3224	
3225	          matplotlib = {
3226	            enable = true;
3227	
3228	            config = { };
3229	
3230	            extraConfig = '''';
3231	          };
3232	
3233	          gh = {
3234	            enable = true;
3235	            package = pkgs.gh;
3236	            extensions = with pkgs; [
3237	            ];
3238	
3239	            gitCredentialHelper = {
3240	              enable = true;
3241	
3242	              hosts = [
3243	                "https://github.com"
3244	                "https://gist.github.com"
3245	              ];
3246	            };
3247	
3248	            settings = {
3249	              git_protocol = "https";
3250	
3251	              editor = "nano";
3252	
3253	              aliases = { };
3254	            };
3255	          };
3256	
3257	          awscli = {
3258	            enable = true;
3259	            package = pkgs.awscli2;
3260	
3261	            settings = {
3262	              "default" = {
3263	                output = "json";
3264	              };
3265	            };
3266	
3267	            credentials = { };
3268	          };
3269	
3270	          chromium = {
3271	            enable = true;
3272	            package = pkgs.ungoogled-chromium;
3273	            dictionaries = with pkgs.hunspellDictsChromium; [
3274	              en_US
3275	              en-us
3276	            ];
3277	            nativeMessagingHosts = config.programs.firefox.nativeMessagingHosts.packages;
3278	
3279	            commandLineArgs = [
3280	              "--ozone-platform=wayland"
3281	              "--password-store=gnome"
3282	              "--proxy-auto-detect"
3283	            ];
3284	          };
3285	
3286	          obs-studio = {
3287	            enable = true;
3288	            package = pkgs.obs-studio;
3289	            plugins = with pkgs.obs-studio-plugins; [
3290	              droidcam-obs
3291	              input-overlay
3292	              obs-3d-effect
3293	              obs-backgroundremoval
3294	              obs-color-monitor
3295	              obs-composite-blur
3296	              obs-freeze-filter
3297	              obs-gradient-source
3298	              obs-gstreamer
3299	              obs-move-transition
3300	              obs-multi-rtmp
3301	              obs-mute-filter
3302	              obs-pipewire-audio-capture
3303	              obs-replay-source
3304	              obs-rgb-levels-filter
3305	              obs-scale-to-sound
3306	              obs-shaderfilter
3307	              obs-source-clone
3308	              obs-source-record
3309	              obs-source-switcher
3310	              obs-text-pthread
3311	              obs-transition-table
3312	              obs-tuna
3313	              obs-vaapi
3314	              obs-vertical-canvas
3315	              obs-vintage-filter
3316	              obs-vkcapture
3317	              waveform
3318	            ];
3319	          };
3320	
3321	          yt-dlp = {
3322	            enable = true;
3323	            package = pkgs.yt-dlp;
3324	
3325	            settings = { };
3326	
3327	            extraConfig = '''';
3328	          };
3329	        };
3330	      }
3331	    ];
3332	
3333	    users.root = { };
3334	    users.bitscoper = { };
3335	
3336	    verbose = true;
3337	  };
3338	}
3339	
3340	# gsettings reset org.gnome.shell app-picker-layout
3341	
3342	# FIXME: 05ac-033e-Gamepad > Rumble
3343	# FIXME: ELAN7001 SPI Fingerprint Sensor
3344	# FIXME: MariaDB > Login
3345	# FIXME: Qt
3346	# FIXME: hardinfo2
3347