Dynamically fetched the /etc/nixos/configuration.nix file containing 4680 lines hosted on my GitHub repository.
1 # By Abdullah As-Sadeed 2 3 { 4 config, 5 pkgs, 6 ... 7 }: 8 let 9 home-manager = builtins.fetchTarball "https://github.com/nix-community/home-manager/archive/refs/heads/master.tar.gz"; 10 11 font_name = { 12 mono = "NotoMono Nerd Font"; 13 sans_serif = "NotoSans Nerd Font"; 14 serif = "NotoSerif Nerd Font"; 15 emoji = "Noto Color Emoji"; 16 }; 17 18 dracula_theme = { 19 hex = { 20 background = "#282A36"; 21 current_line = "#44475A"; 22 foreground = "#F8F8F2"; 23 comment = "#6272A4"; 24 cyan = "#8BE9FD"; 25 green = "#50FA7B"; 26 orange = "#FFB86C"; 27 pink = "#FF79C6"; 28 purple = "#BD93F9"; 29 red = "#FF5555"; 30 yellow = "#F1FA8C"; 31 }; 32 33 rgba = { 34 background = "rgba(40, 42, 54, 1.0)"; 35 current_line = "rgba(68, 71, 90, 1.0)"; 36 foreground = "rgba(248, 248, 242, 1.0)"; 37 comment = "rgba(98, 114, 164, 1.0)"; 38 cyan = "rgba(139, 233, 253, 1.0)"; 39 green = "rgba(80, 250, 123, 1.0)"; 40 orange = "rgba(255, 184, 108, 1.0)"; 41 pink = "rgba(255, 121, 198, 1.0)"; 42 purple = "rgba(189, 147, 249, 1.0)"; 43 red = "rgba(255, 85, 85, 1.0)"; 44 yellow = "rgba(241, 250, 140, 1.0)"; 45 }; 46 }; 47 48 cursor = { 49 theme = { 50 name = "Bibata-Modern-Classic"; 51 package = pkgs.bibata-cursors; 52 }; 53 54 size = 24; 55 }; 56 57 wallpaper = builtins.fetchurl { 58 url = "https://raw.githubusercontent.com/JaKooLit/Wallpaper-Bank/refs/heads/main/wallpapers/Dark_Nature.png"; 59 }; 60 61 secrets = import ./secrets.nix; 62 in 63 { 64 imports = [ 65 (import "${home-manager}/nixos") 66 67 ./hardware-configuration.nix 68 ]; 69 70 boot = { 71 loader = { 72 efi.canTouchEfiVariables = true; 73 timeout = 2; 74 75 systemd-boot = { 76 enable = true; 77 consoleMode = "max"; 78 configurationLimit = null; 79 80 memtest86.enable = true; 81 }; 82 }; 83 84 initrd = { 85 enable = true; 86 87 kernelModules = config.boot.kernelModules; 88 89 systemd = { 90 enable = true; 91 package = config.systemd.package; 92 }; 93 94 network.ssh.enable = true; 95 96 verbose = true; 97 }; 98 99 kernelPackages = pkgs.linuxPackages_zen; 100 101 extraModulePackages = with config.boot.kernelPackages; [ 102 akvcam 103 ]; 104 105 kernelModules = [ 106 "at24" 107 "ee1004" 108 "kvm-intel" 109 "spd5118" 110 ]; 111 112 extraModprobeConfig = "options kvm_intel nested=1"; 113 114 kernelParams = [ 115 "intel_iommu=on" 116 "iommu=pt" 117 "kvm.ignore_msrs=1" 118 "boot.shell_on_fail" 119 "rd.systemd.show_status=true" 120 "rd.udev.log_level=err" 121 "udev.log_level=err" 122 "udev.log_priority=err" 123 ]; 124 125 consoleLogLevel = 4; # 4 = KERN_WARNING 126 127 tmp.cleanOnBoot = true; 128 129 plymouth = { 130 enable = true; 131 132 themePackages = [ 133 pkgs.nixos-bgrt-plymouth 134 ]; 135 theme = "nixos-bgrt"; 136 137 extraConfig = '' 138 UseFirmwareBackground=true 139 ''; 140 }; 141 }; 142 143 time = { 144 timeZone = "Asia/Dhaka"; 145 hardwareClockInLocalTime = true; 146 }; 147 148 system = { 149 copySystemConfiguration = true; 150 151 switch.enable = true; 152 tools = { 153 nixos-build-vms.enable = true; 154 nixos-enter.enable = true; 155 nixos-generate-config.enable = true; 156 nixos-install.enable = true; 157 nixos-option.enable = true; 158 nixos-rebuild.enable = true; 159 nixos-version.enable = true; 160 }; 161 162 autoUpgrade = { 163 enable = false; 164 channel = "https://nixos.org/channels/nixos-unstable"; 165 operation = "boot"; 166 allowReboot = false; 167 }; 168 169 activationScripts = { }; 170 171 userActivationScripts = { }; 172 173 stateVersion = "24.11"; 174 }; 175 176 nix = { 177 enable = true; 178 channel.enable = true; 179 180 settings = { 181 experimental-features = [ 182 "nix-command" 183 ]; 184 185 require-sigs = true; 186 sandbox = true; 187 auto-optimise-store = true; 188 189 cores = 0; # 0 = All 190 # max-jobs = 1; 191 }; 192 193 gc = { 194 automatic = true; 195 dates = "weekly"; 196 persistent = true; 197 }; 198 }; 199 200 nixpkgs = { 201 hostPlatform = "x86_64-linux"; 202 203 config = { 204 allowUnfree = true; 205 }; 206 207 overlays = [ 208 (final: prev: { 209 qt6Packages = prev.qt6Packages.overrideScope ( 210 _: kprev: { 211 qt6gtk2 = kprev.qt6gtk2.overrideAttrs (_: { 212 version = "0.5-unstable-2025-03-04"; 213 src = final.fetchFromGitLab { 214 domain = "opencode.net"; 215 owner = "trialuser"; 216 repo = "qt6gtk2"; 217 rev = "d7c14bec2c7a3d2a37cde60ec059fc0ed4efee67"; 218 hash = "sha256-6xD0lBiGWC3PXFyM2JW16/sDwicw4kWSCnjnNwUT4PI="; 219 }; 220 }); 221 } 222 ); 223 }) 224 ]; 225 }; 226 227 appstream.enable = true; 228 229 i18n = { 230 supportedLocales = [ 231 "all" 232 ]; 233 234 defaultLocale = "en_US.UTF-8"; 235 extraLocaleSettings = { 236 LC_ADDRESS = config.i18n.defaultLocale; 237 LC_IDENTIFICATION = config.i18n.defaultLocale; 238 LC_MEASUREMENT = config.i18n.defaultLocale; 239 LC_MONETARY = config.i18n.defaultLocale; 240 LC_NAME = config.i18n.defaultLocale; 241 LC_NUMERIC = config.i18n.defaultLocale; 242 LC_PAPER = config.i18n.defaultLocale; 243 LC_TELEPHONE = config.i18n.defaultLocale; 244 LC_TIME = config.i18n.defaultLocale; 245 }; 246 247 inputMethod = { 248 enable = true; 249 type = "fcitx5"; 250 251 fcitx5 = { 252 waylandFrontend = true; 253 254 addons = with pkgs; [ 255 fcitx5-openbangla-keyboard 256 ]; 257 }; 258 }; 259 }; 260 261 networking = { 262 hostName = "Bitscoper-WorkStation"; 263 264 wireless = { 265 dbusControlled = true; 266 userControlled.enable = true; 267 }; 268 269 networkmanager = { 270 enable = true; 271 package = pkgs.networkmanager; 272 273 ethernet.macAddress = "permanent"; 274 275 wifi = { 276 backend = "wpa_supplicant"; 277 278 powersave = false; 279 280 scanRandMacAddress = true; 281 macAddress = "permanent"; 282 }; 283 284 logLevel = "WARN"; 285 }; 286 287 firewall = { 288 enable = false; 289 290 allowPing = true; 291 292 allowedTCPPorts = [ 293 5060 294 ]; 295 allowedUDPPorts = [ 296 5060 297 ]; 298 }; 299 300 nameservers = [ 301 "1.1.1.3#one.one.one.one" 302 "1.0.0.3#one.one.one.one" 303 ]; 304 }; 305 306 security = { 307 allowSimultaneousMultithreading = true; 308 309 tpm2.enable = true; 310 311 lockKernelModules = false; 312 313 pam = { 314 mount = { 315 enable = true; 316 317 createMountPoints = true; 318 removeCreatedMountPoints = true; 319 320 logoutHup = true; 321 logoutTerm = false; 322 logoutKill = false; 323 324 logoutWait = 0; 325 }; 326 327 services = { 328 login = { 329 unixAuth = true; 330 nodelay = false; 331 332 fprintAuth = true; 333 334 logFailures = true; 335 336 enableGnomeKeyring = true; 337 338 gnupg = { 339 enable = true; 340 storeOnly = false; 341 noAutostart = false; 342 }; 343 }; 344 345 sddm = { 346 unixAuth = true; 347 nodelay = false; 348 349 fprintAuth = true; 350 351 logFailures = true; 352 353 enableGnomeKeyring = true; 354 355 gnupg = { 356 enable = true; 357 storeOnly = false; 358 noAutostart = false; 359 }; 360 }; 361 362 hyprlock = { 363 unixAuth = true; 364 nodelay = false; 365 366 fprintAuth = true; 367 368 logFailures = true; 369 370 enableGnomeKeyring = true; 371 372 gnupg = { 373 enable = true; 374 storeOnly = false; 375 noAutostart = false; 376 }; 377 }; 378 379 sudo = { 380 unixAuth = true; 381 nodelay = false; 382 383 fprintAuth = true; 384 385 logFailures = true; 386 }; 387 388 polkit-1 = { 389 unixAuth = true; 390 nodelay = false; 391 392 fprintAuth = true; 393 394 logFailures = true; 395 }; 396 }; 397 }; 398 399 sudo = { 400 enable = true; 401 package = pkgs.sudo; 402 403 execWheelOnly = true; 404 wheelNeedsPassword = true; 405 }; 406 407 polkit = { 408 enable = true; 409 package = pkgs.polkit; 410 }; 411 412 rtkit.enable = true; 413 414 wrappers = { 415 spice-client-glib-usb-acl-helper.source = "${pkgs.spice-gtk}/bin/spice-client-glib-usb-acl-helper"; 416 }; 417 418 audit = { 419 enable = false; 420 }; 421 }; 422 423 hardware = { 424 enableAllFirmware = true; 425 enableRedistributableFirmware = true; 426 427 cpu = { 428 intel = { 429 updateMicrocode = true; 430 }; 431 }; 432 433 graphics = { 434 enable = true; 435 enable32Bit = true; 436 437 extraPackages = with pkgs; [ 438 intel-media-driver 439 intel-compute-runtime 440 ]; 441 }; 442 443 sensor = { 444 hddtemp = { 445 enable = true; 446 unit = "C"; 447 drives = [ 448 "/dev/disk/by-path/*" 449 ]; 450 }; 451 }; 452 453 bluetooth = { 454 enable = true; 455 package = pkgs.bluez; 456 457 hsphfpd.enable = false; # Conflicts wwth WirePlumber 458 459 powerOnBoot = true; 460 461 input.General = { 462 IdleTimeout = 0; # 0 = Disabled 463 LEAutoSecurity = true; 464 ClassicBondedOnly = true; 465 UserspaceHID = true; 466 }; 467 468 network.General = { 469 DisableSecurity = false; 470 }; 471 472 settings = { 473 General = { 474 MaxControllers = 0; # 0 = Unlimited 475 ControllerMode = "dual"; 476 477 Name = config.networking.hostName; 478 479 DiscoverableTimeout = 0; # 0 = Disabled 480 PairableTimeout = 0; # 0 = Disabled 481 AlwaysPairable = true; 482 FastConnectable = true; 483 484 ReverseServiceDiscovery = true; 485 NameResolving = true; 486 RemoteNameRequestRetryDelay = 60; # Seconds 487 RefreshDiscovery = true; 488 TemporaryTimeout = 0; # 0 = Disabled 489 490 SecureConnections = "on"; 491 Privacy = "off"; 492 493 Experimental = true; 494 KernelExperimental = true; 495 }; 496 497 Policy = { 498 AutoEnable = true; 499 500 ResumeDelay = 2; # Seconds 501 ReconnectAttempts = 7; 502 ReconnectIntervals = "1, 2, 4, 8, 16, 32, 64"; 503 }; 504 505 GATT = { 506 Cache = "always"; 507 }; 508 509 CSIS = { 510 Encryption = true; 511 }; 512 513 AVRCP = { 514 VolumeCategory = true; 515 VolumeWithoutTarget = false; 516 }; 517 518 AVDTP = { 519 SessionMode = "ertm"; 520 }; 521 522 AdvMon = { 523 RSSISamplingPeriod = "0x00"; 524 }; 525 }; 526 }; 527 528 rtl-sdr = { 529 enable = true; 530 package = pkgs.rtl-sdr; 531 }; 532 533 sane = { 534 enable = true; 535 openFirewall = true; 536 }; 537 538 steam-hardware.enable = true; 539 }; 540 541 virtualisation = { 542 libvirtd = { 543 enable = true; 544 package = pkgs.libvirt; 545 546 qemu = { 547 package = pkgs.qemu_kvm; 548 549 swtpm = { 550 enable = true; 551 package = pkgs.swtpm; 552 }; 553 554 ovmf = { 555 enable = true; 556 packages = [ 557 (pkgs.OVMFFull.override { 558 secureBoot = true; 559 tpmSupport = true; 560 }).fd 561 ]; 562 }; 563 564 runAsRoot = true; 565 }; 566 }; 567 spiceUSBRedirection.enable = true; 568 569 containers.enable = true; 570 571 podman = { 572 enable = true; 573 package = pkgs.podman; 574 dockerCompat = true; 575 576 defaultNetwork.settings.dns_enabled = true; 577 }; 578 579 oci-containers.backend = "podman"; 580 581 waydroid.enable = true; 582 }; 583 584 systemd = { 585 package = pkgs.systemd; 586 587 packages = with pkgs; [ 588 cloudflare-warp 589 hardinfo2 590 ]; 591 592 globalEnvironment = { }; 593 594 targets = { 595 multi-user.wants = [ 596 "warp-svc.service" 597 ]; 598 }; 599 }; 600 601 services = { 602 dbus = { 603 enable = true; 604 dbusPackage = pkgs.dbus; 605 606 implementation = "broker"; 607 }; 608 609 btrfs.autoScrub = { 610 enable = true; 611 612 interval = "weekly"; 613 fileSystems = [ 614 "/" 615 ]; 616 }; 617 618 fwupd = { 619 enable = true; 620 package = pkgs.fwupd; 621 }; 622 623 acpid = { 624 enable = true; 625 626 powerEventCommands = ''''; 627 acEventCommands = ''''; 628 lidEventCommands = ''''; 629 630 logEvents = false; 631 }; 632 633 power-profiles-daemon = { 634 enable = true; 635 package = pkgs.power-profiles-daemon; 636 }; 637 638 logind = { 639 killUserProcesses = true; 640 641 lidSwitch = "ignore"; 642 lidSwitchDocked = "ignore"; 643 lidSwitchExternalPower = "ignore"; 644 645 powerKey = "poweroff"; 646 powerKeyLongPress = "poweroff"; 647 648 rebootKey = "reboot"; 649 rebootKeyLongPress = "reboot"; 650 651 suspendKey = "ignore"; 652 suspendKeyLongPress = "ignore"; 653 654 hibernateKey = "ignore"; 655 hibernateKeyLongPress = "ignore"; 656 }; 657 658 fprintd = { 659 enable = true; 660 package = if config.services.fprintd.tod.enable then pkgs.fprintd-tod else pkgs.fprintd; 661 # tod = { 662 # enable = true; 663 # driver = ; 664 # }; 665 }; 666 667 displayManager = { 668 enable = true; 669 preStart = ''''; 670 671 sddm = { 672 enable = true; 673 package = pkgs.kdePackages.sddm; # Qt 6 674 675 extraPackages = with pkgs; [ 676 kdePackages.qtmultimedia 677 ]; 678 679 wayland = { 680 enable = true; 681 compositor = "weston"; 682 }; 683 684 enableHidpi = true; 685 theme = "sddm-astronaut-theme"; 686 687 autoNumlock = true; 688 689 autoLogin.relogin = false; 690 691 settings = { 692 Theme = { 693 CursorTheme = cursor.theme.name; 694 CursorSize = cursor.size; 695 696 Font = font_name.sans_serif; 697 }; 698 }; 699 700 stopScript = ''''; 701 }; 702 703 defaultSession = "hyprland-uwsm"; 704 705 autoLogin = { 706 enable = false; 707 user = null; 708 }; 709 710 logToJournal = true; 711 logToFile = true; 712 }; 713 714 gnome.gnome-keyring.enable = true; 715 716 udev = { 717 enable = true; 718 packages = with pkgs; [ 719 android-udev-rules 720 game-devices-udev-rules 721 libmtp.out 722 rtl-sdr 723 steam-devices-udev-rules 724 usb-blaster-udev-rules 725 ]; 726 }; 727 728 gvfs = { 729 enable = true; 730 package = pkgs.gvfs; 731 }; 732 733 udisks2 = { 734 enable = true; 735 package = pkgs.udisks2; 736 737 mountOnMedia = false; 738 }; 739 740 libinput = { 741 enable = true; 742 743 mouse = { 744 leftHanded = false; 745 disableWhileTyping = false; 746 tapping = true; 747 middleEmulation = true; 748 clickMethod = "buttonareas"; 749 scrollMethod = "twofinger"; 750 naturalScrolling = true; 751 horizontalScrolling = true; 752 tappingDragLock = true; 753 sendEventsMode = "enabled"; 754 }; 755 756 touchpad = { 757 leftHanded = false; 758 disableWhileTyping = false; 759 tapping = true; 760 middleEmulation = true; 761 clickMethod = "buttonareas"; 762 scrollMethod = "twofinger"; 763 naturalScrolling = true; 764 horizontalScrolling = true; 765 tappingDragLock = true; 766 sendEventsMode = "enabled"; 767 }; 768 }; 769 770 pipewire = { 771 enable = true; 772 package = pkgs.pipewire; 773 systemWide = false; 774 775 audio.enable = true; 776 777 alsa.enable = true; 778 alsa.support32Bit = true; 779 pulse.enable = true; 780 jack.enable = true; 781 782 socketActivation = true; 783 784 wireplumber = { 785 enable = true; 786 package = pkgs.wireplumber; 787 788 extraConfig.bluetoothEnhancements = { 789 "monitor.bluez.properties" = { 790 "bluez5.enable-hw-volume" = true; 791 792 "bluez5.enable-sbc-xq" = true; 793 "bluez5.enable-msbc" = true; 794 795 "bluez5.roles" = [ 796 "a2dp_sink" 797 "a2dp_source" 798 "bap_sink" 799 "bap_source" 800 "hfp_ag" 801 "hfp_hf" 802 "hsp_ag" 803 "hsp_hs" 804 ]; 805 806 "bluez5.codecs" = [ 807 "aac" 808 "aptx" 809 "aptx_hd" 810 "aptx_ll" 811 "aptx_ll_duplex" 812 "faststream" 813 "faststream_duplex" 814 "lc3" 815 "lc3plus_h3" 816 "ldac" 817 "opus_05" 818 "opus_05_51" 819 "opus_05_71" 820 "opus_05_duplex" 821 "opus_05_pro" 822 "sbc" 823 "sbc_xq" 824 ]; 825 }; 826 }; 827 }; 828 829 raopOpenFirewall = true; 830 }; 831 832 pulseaudio.enable = false; 833 834 blueman.enable = true; 835 836 printing = { 837 enable = true; 838 package = pkgs.cups; 839 840 drivers = with pkgs; [ 841 gutenprint 842 gutenprintBin 843 ]; 844 845 cups-pdf.enable = true; 846 847 listenAddresses = [ 848 "*:631" 849 ]; 850 851 allowFrom = [ 852 "all" 853 ]; 854 855 browsing = true; 856 webInterface = true; 857 858 defaultShared = true; 859 startWhenNeeded = true; 860 861 extraConf = '' 862 DefaultLanguage en 863 ServerName ${config.networking.hostName} 864 ServerAlias * 865 ServerTokens Full 866 ServerAdmin bitscoper@${config.networking.hostName} 867 BrowseLocalProtocols all 868 BrowseWebIF On 869 HostNameLookups On 870 AccessLogLevel config 871 AutoPurgeJobs Yes 872 PreserveJobHistory Off 873 PreserveJobFiles Off 874 DirtyCleanInterval 30 875 LogTimeFormat standard 876 ''; 877 878 logLevel = "warn"; 879 880 openFirewall = true; 881 }; 882 ipp-usb.enable = true; 883 884 system-config-printer.enable = true; 885 886 avahi = { 887 enable = true; 888 package = pkgs.avahi; 889 890 ipv4 = true; 891 ipv6 = true; 892 893 nssmdns4 = true; 894 nssmdns6 = true; 895 896 wideArea = true; 897 898 publish = { 899 enable = true; 900 domain = true; 901 addresses = true; 902 workstation = true; 903 hinfo = true; 904 userServices = true; 905 }; 906 907 domainName = config.networking.hostName; 908 hostName = config.networking.hostName; 909 910 openFirewall = true; 911 }; 912 913 bind = { 914 enable = false; 915 package = pkgs.bind; 916 917 listenOn = [ 918 "any" 919 ]; 920 ipv4Only = false; 921 listenOnIpv6 = [ 922 "any" 923 ]; 924 925 cacheNetworks = [ 926 "127.0.0.0/24" 927 "::1/128" 928 ]; 929 930 extraOptions = '' 931 recursion no; 932 ''; 933 }; 934 935 openssh = { 936 enable = true; 937 package = pkgs.openssh; 938 939 listenAddresses = [ 940 { 941 addr = "0.0.0.0"; 942 } 943 ]; 944 ports = [ 945 22 946 ]; 947 allowSFTP = true; 948 949 banner = config.networking.hostName; 950 951 authorizedKeysInHomedir = true; 952 953 settings = { 954 PermitRootLogin = "yes"; 955 PasswordAuthentication = true; 956 X11Forwarding = false; 957 StrictModes = true; 958 UseDns = true; 959 LogLevel = "ERROR"; 960 }; 961 962 openFirewall = true; 963 }; 964 sshd.enable = true; 965 966 cockpit = { 967 enable = true; 968 package = pkgs.cockpit; 969 970 port = 9090; 971 openFirewall = true; 972 }; 973 974 phpfpm = { 975 settings = { }; 976 977 phpOptions = '' 978 default_charset = "UTF-8" 979 error_reporting = E_ALL 980 display_errors = Off 981 log_errors = On 982 cgi.force_redirect = 1 983 expose_php = On 984 file_uploads = On 985 session.cookie_lifetime = 0 986 session.use_cookies = 1 987 session.use_only_cookies = 1 988 session.use_strict_mode = 1 989 session.cookie_httponly = 1 990 session.cookie_secure = 1 991 session.cookie_samesite = "Strict" 992 session.gc_maxlifetime = 43200 993 session.use_trans_sid = O 994 session.cache_limiter = nocache 995 session.sid_length = 248 996 ''; 997 }; 998 999 postgresql = { 1000 enable = true; 1001 package = pkgs.postgresql; 1002 1003 enableTCPIP = true; 1004 1005 settings = pkgs.lib.mkForce { 1006 listen_addresses = "*"; 1007 port = 5432; 1008 jit = true; 1009 }; 1010 1011 authentication = pkgs.lib.mkOverride 10 '' 1012 local all all md5 1013 host all all 0.0.0.0/0 md5 1014 host all all ::/0 md5 1015 local replication all md5 1016 host replication all 0.0.0.0/0 md5 1017 host replication all ::/0 md5 1018 ''; 1019 1020 checkConfig = true; 1021 1022 initialScript = pkgs.writeText "initScript" '' 1023 ALTER USER postgres WITH PASSWORD '${secrets.password_1_of_bitscoper}'; 1024 ''; 1025 }; 1026 1027 mysql = { 1028 enable = true; 1029 package = pkgs.mariadb; 1030 1031 settings = { 1032 mysqld = { 1033 bind-address = "0.0.0.0"; 1034 port = 3306; 1035 1036 sql_mode = ""; 1037 }; 1038 }; 1039 1040 initialScript = pkgs.writeText "initScript" '' 1041 grant all privileges on *.* to 'root'@'%' identified by password '${secrets.hashed_password_1_of_bitscoper}' with grant option; 1042 DELETE FROM mysql.user WHERE `Host`='localhost' AND `User`='root'; 1043 flush privileges; 1044 ''; 1045 }; 1046 1047 memcached = { 1048 enable = true; 1049 listen = "0.0.0.0"; 1050 port = 11211; 1051 enableUnixSocket = false; 1052 maxMemory = 64; # Megabytes 1053 maxConnections = 256; 1054 }; 1055 1056 postfix = { 1057 enable = true; 1058 1059 enableSmtp = true; 1060 enableSubmission = true; 1061 enableSubmissions = true; 1062 1063 domain = config.networking.hostName; 1064 hostname = config.networking.hostName; 1065 origin = config.networking.hostName; 1066 1067 virtualMapType = "pcre"; 1068 aliasMapType = "pcre"; 1069 enableHeaderChecks = true; 1070 1071 setSendmail = true; 1072 1073 config = { }; 1074 }; 1075 1076 opendkim = { 1077 enable = true; 1078 1079 domains = "csl:${config.networking.hostName}"; 1080 selector = "default"; 1081 1082 settings = { }; 1083 }; 1084 1085 dovecot2 = { 1086 enable = true; 1087 1088 enableImap = true; 1089 enablePop3 = true; 1090 enableLmtp = true; 1091 protocols = [ 1092 "imap" 1093 "pop3" 1094 "lmtp" 1095 ]; 1096 1097 enableQuota = true; 1098 quotaPort = "12340"; 1099 1100 enableDHE = true; 1101 1102 createMailUser = true; 1103 1104 enablePAM = true; 1105 showPAMFailure = true; 1106 1107 pluginSettings = { }; 1108 1109 extraConfig = ''''; 1110 }; 1111 1112 icecast = { 1113 enable = true; 1114 1115 hostname = config.networking.hostName; 1116 listen = { 1117 address = "0.0.0.0"; 1118 port = 17101; 1119 }; 1120 1121 admin = { 1122 user = "bitscoper"; 1123 password = secrets.password_1_of_bitscoper; 1124 }; 1125 1126 extraConf = '' 1127 <location>${config.networking.hostName}</location> 1128 <admin>bitscoper@${config.networking.hostName}</admin> 1129 <authentication> 1130 <source-password>${secrets.password_2_of_bitscoper}</source-password> 1131 <relay-password>${secrets.password_2_of_bitscoper}</relay-password> 1132 </authentication> 1133 <directory> 1134 <yp-url-timeout>15</yp-url-timeout> 1135 <yp-url>http://dir.xiph.org/cgi-bin/yp-cgi</yp-url> 1136 </directory> 1137 <logging> 1138 <loglevel>2</loglevel> 1139 </logging> 1140 <server-id>${config.networking.hostName}</server-id> 1141 ''; # <loglevel>2</loglevel> = Warn 1142 }; 1143 1144 jellyfin = { 1145 enable = true; 1146 package = pkgs.jellyfin; 1147 1148 openFirewall = true; 1149 }; 1150 1151 ollama = { 1152 enable = true; 1153 package = pkgs.ollama; 1154 1155 host = "0.0.0.0"; 1156 port = 11434; 1157 openFirewall = true; 1158 }; 1159 1160 open-webui = { 1161 enable = true; 1162 package = pkgs.open-webui; 1163 1164 host = "0.0.0.0"; 1165 port = 11111; 1166 1167 environment = { 1168 ANONYMIZED_TELEMETRY = "False"; 1169 DO_NOT_TRACK = "True"; 1170 1171 DEFAULT_LOCALE = "en"; 1172 1173 ENABLE_ADMIN_CHAT_ACCESS = "True"; 1174 ENABLE_ADMIN_EXPORT = "True"; 1175 SHOW_ADMIN_DETAILS = "True"; 1176 ADMIN_EMAIL = "bitscoper@${config.networking.hostName}"; 1177 1178 USER_PERMISSIONS_WORKSPACE_MODELS_ACCESS = "True"; 1179 USER_PERMISSIONS_WORKSPACE_KNOWLEDGE_ACCESS = "True"; 1180 USER_PERMISSIONS_WORKSPACE_PROMPTS_ACCESS = "True"; 1181 USER_PERMISSIONS_WORKSPACE_TOOLS_ACCESS = "True"; 1182 1183 USER_PERMISSIONS_CHAT_TEMPORARY = "True"; 1184 USER_PERMISSIONS_CHAT_FILE_UPLOAD = "True"; 1185 USER_PERMISSIONS_CHAT_EDIT = "True"; 1186 USER_PERMISSIONS_CHAT_DELETE = "True"; 1187 1188 ENABLE_CHANNELS = "True"; 1189 1190 ENABLE_REALTIME_CHAT_SAVE = "True"; 1191 1192 ENABLE_AUTOCOMPLETE_GENERATION = "True"; 1193 AUTOCOMPLETE_GENERATION_INPUT_MAX_LENGTH = "-1"; 1194 1195 ENABLE_RAG_WEB_SEARCH = "True"; 1196 ENABLE_SEARCH_QUERY_GENERATION = "True"; 1197 1198 ENABLE_TAGS_GENERATION = "True"; 1199 1200 ENABLE_IMAGE_GENERATION = "True"; 1201 1202 YOUTUBE_LOADER_LANGUAGE = "en"; 1203 1204 ENABLE_MESSAGE_RATING = "True"; 1205 1206 ENABLE_COMMUNITY_SHARING = "True"; 1207 1208 ENABLE_RAG_WEB_LOADER_SSL_VERIFICATION = "True"; 1209 WEBUI_SESSION_COOKIE_SAME_SITE = "strict"; 1210 WEBUI_SESSION_COOKIE_SECURE = "True"; 1211 WEBUI_AUTH = "False"; 1212 1213 ENABLE_OLLAMA_API = "True"; 1214 OLLAMA_BASE_URL = "http://127.0.0.1:11434"; 1215 }; 1216 1217 openFirewall = true; 1218 }; 1219 1220 wordpress = { 1221 sites = { }; 1222 }; 1223 1224 asterisk = { 1225 enable = true; 1226 package = pkgs.asterisk; 1227 1228 confFiles = { 1229 "pjsip.conf" = '' 1230 [transport-tcp] 1231 type = transport 1232 protocol = tcp 1233 bind = 0.0.0.0 1234 1235 [transport-udp] 1236 type = transport 1237 protocol = udp 1238 bind = 0.0.0.0 1239 1240 [transport-tcp6] 1241 type = transport 1242 protocol = tcp 1243 bind = :: 1244 1245 [transport-udp6] 1246 type = transport 1247 protocol = udp 1248 bind = :: 1249 1250 [endpoint_internal](!) 1251 type = endpoint 1252 context = from-internal 1253 disallow = all 1254 allow = ulaw 1255 1256 [auth_userpass](!) 1257 type = auth 1258 auth_type = userpass 1259 1260 [aor_dynamic](!) 1261 type = aor 1262 max_contacts = 1 1263 1264 ; Account 1 1265 [bitscoper_1](endpoint_internal) 1266 auth = bitscoper_1 1267 aors = bitscoper_1 1268 [bitscoper_1](auth_userpass) 1269 password = ${secrets.password_2_of_bitscoper} 1270 username = bitscoper_1 1271 [bitscoper_1](aor_dynamic) 1272 1273 ; Account 2 1274 [bitscoper_2](endpoint_internal) 1275 auth = bitscoper_2 1276 aors = bitscoper_2 1277 [bitscoper_2](auth_userpass) 1278 password = ${secrets.password_2_of_bitscoper} 1279 username = bitscoper_2 1280 [bitscoper_2](aor_dynamic) 1281 1282 ; Account 3 1283 [bitscoper_3](endpoint_internal) 1284 auth = bitscoper_3 1285 aors = bitscoper_3 1286 [bitscoper_3](auth_userpass) 1287 password = ${secrets.password_2_of_bitscoper} 1288 username = bitscoper_3 1289 [bitscoper_3](aor_dynamic) 1290 1291 ; Account 4 1292 [bitscoper_4](endpoint_internal) 1293 auth = bitscoper_4 1294 aors = bitscoper_4 1295 [bitscoper_4](auth_userpass) 1296 password = ${secrets.password_2_of_bitscoper} 1297 username = bitscoper_4 1298 [bitscoper_4](aor_dynamic) 1299 ''; 1300 1301 "extensions.conf" = '' 1302 [from-internal] 1303 exten => 1, 1, Dial(PJSIP/bitscoper_1, 60) 1304 exten => 2, 1, Dial(PJSIP/bitscoper_2, 60) 1305 exten => 3, 1, Dial(PJSIP/bitscoper_3, 60) 1306 exten => 4, 1, Dial(PJSIP/bitscoper_4, 60) 1307 1308 exten => 17, 1, Answer() 1309 same => n, Wait(1) 1310 same => n, Playback(hello-world) 1311 same => n, Hangup() 1312 ''; 1313 }; 1314 1315 extraConfig = ''''; 1316 1317 extraArguments = [ 1318 1319 ]; 1320 }; 1321 1322 tailscale = { 1323 enable = true; 1324 package = pkgs.tailscale; 1325 1326 disableTaildrop = false; 1327 1328 port = 0; # 0 = Automatic 1329 openFirewall = true; 1330 }; 1331 1332 tor = { 1333 enable = false; 1334 package = pkgs.tor; 1335 1336 relay = { 1337 enable = false; 1338 1339 # role = ; 1340 }; 1341 1342 client = { 1343 enable = false; 1344 1345 dns.enable = true; 1346 1347 onionServices = { }; 1348 }; 1349 1350 torsocks = { 1351 enable = config.services.tor.client.enable; 1352 allowInbound = true; 1353 }; 1354 1355 controlSocket.enable = false; 1356 1357 enableGeoIP = true; 1358 1359 settings = { 1360 Nickname = config.networking.hostName; 1361 ContactInfo = "bitscoper@${config.networking.hostName}"; 1362 1363 IPv6Exit = true; 1364 ClientUseIPv4 = true; 1365 ClientUseIPv6 = true; 1366 1367 ExtendAllowPrivateAddresses = false; 1368 RefuseUnknownExits = true; 1369 ServerDNSDetectHijacking = true; 1370 ServerDNSRandomizeCase = true; 1371 1372 FetchServerDescriptors = true; 1373 FetchHidServDescriptors = true; 1374 FetchUselessDescriptors = false; 1375 DownloadExtraInfo = false; 1376 1377 CellStatistics = false; 1378 ConnDirectionStatistics = false; 1379 DirReqStatistics = false; 1380 EntryStatistics = false; 1381 ExitPortStatistics = false; 1382 ExtraInfoStatistics = false; 1383 HiddenServiceStatistics = false; 1384 MainloopStats = false; 1385 PaddingStatistics = false; 1386 1387 LogMessageDomains = false; 1388 }; 1389 1390 openFirewall = true; 1391 }; 1392 1393 logrotate = { 1394 enable = true; 1395 1396 checkConfig = true; 1397 allowNetworking = true; 1398 }; 1399 }; 1400 1401 programs = { 1402 command-not-found.enable = true; 1403 1404 nix-ld = { 1405 enable = true; 1406 package = pkgs.nix-ld; 1407 1408 libraries = with pkgs; [ 1409 # libepoxy 1410 glib.out 1411 libGL 1412 llvmPackages.stdenv.cc.cc.lib 1413 stdenv.cc.cc.lib 1414 ]; 1415 }; 1416 1417 appimage = { 1418 enable = true; 1419 package = pkgs.appimage-run; 1420 1421 binfmt = true; 1422 }; 1423 1424 uwsm = { 1425 enable = true; 1426 package = pkgs.uwsm; 1427 }; 1428 1429 hyprland = { 1430 enable = true; 1431 package = pkgs.hyprland; 1432 portalPackage = pkgs.xdg-desktop-portal-hyprland; 1433 1434 withUWSM = true; 1435 xwayland.enable = true; 1436 }; 1437 1438 xwayland.enable = true; 1439 1440 bash = { 1441 completion = { 1442 enable = true; 1443 package = pkgs.bash-completion; 1444 }; 1445 1446 enableLsColors = true; 1447 1448 shellAliases = { }; 1449 1450 loginShellInit = ''''; 1451 1452 shellInit = ''''; 1453 1454 interactiveShellInit = '' 1455 PROMPT_COMMAND="history -a" 1456 ''; 1457 }; 1458 1459 fish = { 1460 enable = true; 1461 package = pkgs.fish; 1462 1463 vendor = { 1464 config.enable = true; 1465 functions.enable = true; 1466 completions.enable = true; 1467 }; 1468 1469 shellAbbrs = { }; 1470 shellAliases = { }; 1471 1472 promptInit = ''''; 1473 1474 loginShellInit = ''''; 1475 1476 shellInit = ''''; 1477 1478 interactiveShellInit = '' 1479 if command -q nix-your-shell 1480 nix-your-shell fish | source 1481 end 1482 ''; 1483 }; 1484 1485 direnv = { 1486 enable = true; 1487 package = pkgs.direnv; 1488 1489 nix-direnv.enable = true; 1490 loadInNixShell = true; 1491 1492 enableBashIntegration = true; 1493 enableFishIntegration = true; 1494 1495 direnvrcExtra = ''''; 1496 1497 silent = false; 1498 }; 1499 1500 nautilus-open-any-terminal = { 1501 enable = true; 1502 terminal = "blackbox"; 1503 }; 1504 1505 nix-index = { 1506 package = pkgs.nix-index; 1507 1508 enableBashIntegration = true; 1509 enableFishIntegration = true; 1510 }; 1511 1512 java = { 1513 enable = true; 1514 package = pkgs.jdk23; 1515 1516 binfmt = true; 1517 }; 1518 1519 ssh = { 1520 package = pkgs.openssh; 1521 1522 startAgent = true; 1523 agentTimeout = null; 1524 }; 1525 1526 gnupg = { 1527 package = pkgs.gnupg; 1528 1529 agent = { 1530 enable = true; 1531 1532 enableBrowserSocket = true; 1533 enableExtraSocket = true; 1534 enableSSHSupport = false; 1535 1536 pinentryPackage = ( 1537 pkgs.pinentry-rofi.override { 1538 rofi = pkgs.rofi-wayland; 1539 } 1540 ); 1541 }; 1542 1543 dirmngr.enable = true; 1544 }; 1545 1546 nm-applet = { 1547 enable = true; 1548 indicator = true; 1549 }; 1550 1551 seahorse.enable = true; 1552 1553 git = { 1554 enable = true; 1555 package = pkgs.gitFull; 1556 1557 lfs = { 1558 enable = true; 1559 package = pkgs.git-lfs; 1560 1561 enablePureSSHTransfer = true; 1562 }; 1563 1564 prompt.enable = true; 1565 1566 config = { 1567 init.defaultBranch = "main"; 1568 1569 credential.helper = "${pkgs.gitFull}/bin/git-credential-libsecret"; 1570 1571 user = { 1572 name = "Abdullah As-Sadeed"; 1573 email = "bitscoper@gmail.com"; 1574 }; 1575 }; 1576 }; 1577 1578 adb.enable = true; 1579 1580 usbtop.enable = true; 1581 1582 system-config-printer.enable = true; 1583 1584 virt-manager = { 1585 enable = true; 1586 package = pkgs.virt-manager; 1587 }; 1588 1589 bat = { 1590 enable = true; 1591 package = pkgs.bat; 1592 extraPackages = with pkgs.bat-extras; [ 1593 batdiff 1594 batgrep 1595 batman 1596 batpipe 1597 batwatch 1598 prettybat 1599 ]; 1600 1601 settings = { }; 1602 }; 1603 1604 nano = { 1605 enable = true; 1606 nanorc = '' 1607 set linenumbers 1608 set softwrap 1609 set indicator 1610 set autoindent 1611 ''; 1612 }; 1613 1614 thunderbird = { 1615 enable = true; 1616 package = pkgs.thunderbird-latest; 1617 1618 preferences = { }; 1619 }; 1620 1621 wireshark = { 1622 enable = true; 1623 package = pkgs.wireshark; 1624 1625 dumpcap.enable = true; 1626 usbmon.enable = true; 1627 }; 1628 1629 steam = { 1630 enable = true; 1631 package = pkgs.steam; 1632 1633 # extraCompatPackages = with pkgs; [ 1634 1635 # ]; 1636 1637 localNetworkGameTransfers.openFirewall = true; 1638 remotePlay.openFirewall = true; 1639 dedicatedServer.openFirewall = true; 1640 }; 1641 1642 localsend = { 1643 enable = true; 1644 package = pkgs.localsend; 1645 1646 openFirewall = true; 1647 }; 1648 1649 dconf = { 1650 enable = true; 1651 profiles.user.databases = [ 1652 { 1653 lockAll = true; 1654 1655 settings = { 1656 "system/locale" = { 1657 region = config.i18n.defaultLocale; 1658 }; 1659 1660 "com/raggesilver/BlackBox" = { 1661 context-aware-header-bar = true; 1662 easy-copy-paste = false; 1663 fill-tabs = true; 1664 font = "${font_name.mono} 12"; 1665 headerbar-drag-area = true; 1666 notify-process-completion = true; 1667 pretty = true; 1668 remember-window-size = false; 1669 show-headerbar = true; 1670 show-menu-button = true; 1671 show-scrollbars = true; 1672 terminal-bell = true; 1673 theme-bold-is-bright = false; 1674 theme-dark = "Dracula"; 1675 theme-light = "Dracula Light"; 1676 use-overlay-scrolling = true; 1677 }; 1678 1679 "org/gnome/desktop/privacy" = { 1680 remember-app-usage = false; 1681 remember-recent-files = false; 1682 remove-old-temp-files = true; 1683 remove-old-trash-files = true; 1684 report-technical-problems = false; 1685 send-software-usage-stats = false; 1686 usb-protection = true; 1687 }; 1688 "org/gtk/gtk4/settings/file-chooser" = { 1689 sort-directories-first = true; 1690 }; 1691 "org/gnome/nautilus/preferences" = { 1692 click-policy = "double"; 1693 recursive-search = "always"; 1694 show-create-link = true; 1695 show-delete-permanently = true; 1696 show-directory-item-counts = "always"; 1697 show-image-thumbnails = "always"; 1698 date-time-format = "simple"; 1699 }; 1700 "org/gnome/nautilus/icon-view" = { 1701 captions = [ 1702 "size" 1703 "date_modified" 1704 "none" 1705 ]; 1706 }; 1707 1708 "io/missioncenter/MissionCenter" = { 1709 apps-page-core-count-affects-percentages = true; 1710 apps-page-merged-process-stats = false; 1711 apps-page-remember-sorting = false; 1712 performance-page-network-dynamic-scaling = true; 1713 performance-smooth-graphs = false; 1714 window-interface-style = "dark"; 1715 }; 1716 1717 "org/virt-manager/virt-manager" = { 1718 xmleditor-enabled = true; 1719 }; 1720 "org/virt-manager/virt-manager/connections" = { 1721 autoconnect = [ 1722 "qemu:///system" 1723 ]; 1724 uris = [ 1725 "qemu:///system" 1726 ]; 1727 }; 1728 "org/virt-manager/virt-manager/new-vm" = { 1729 cpu-default = "host-passthrough"; 1730 }; 1731 "org/virt-manager/virt-manager/console" = { 1732 auto-redirect = false; 1733 autoconnect = true; 1734 }; 1735 "org/virt-manager/virt-manager/stats" = { 1736 enable-cpu-poll = true; 1737 enable-disk-poll = true; 1738 enable-memory-poll = true; 1739 enable-net-poll = true; 1740 }; 1741 "org/virt-manager/virt-manager/vmlist-fields" = { 1742 cpu-usage = true; 1743 disk-usage = true; 1744 host-cpu-usage = true; 1745 memory-usage = true; 1746 network-traffic = true; 1747 }; 1748 "org/virt-manager/virt-manager/confirm" = { 1749 delete-storage = true; 1750 forcepoweroff = true; 1751 pause = true; 1752 poweroff = true; 1753 removedev = true; 1754 unapplied-dev = true; 1755 }; 1756 1757 "org/gnome/file-roller/ui" = { 1758 view-sidebar = true; 1759 }; 1760 "org/gnome/file-roller/listing" = { 1761 list-mode = "as-folder"; 1762 }; 1763 1764 "org/gnome/eog/plugins" = { 1765 active-plugins = [ 1766 "fullscreen" 1767 "reload" 1768 "statusbar-date" 1769 ]; 1770 }; 1771 "org/gnome/eog/ui" = { 1772 image-gallery = false; 1773 sidebar = true; 1774 statusbar = true; 1775 }; 1776 "org/gnome/eog/view" = { 1777 autorotate = true; 1778 extrapolate = true; 1779 interpolate = true; 1780 transparency = "checked"; 1781 use-background-color = false; 1782 }; 1783 "org/gnome/eog/fullscreen" = { 1784 loop = false; 1785 upscale = false; 1786 }; 1787 1788 "com/github/huluti/Curtail" = { 1789 file-attributes = true; 1790 metadata = false; 1791 new-file = true; 1792 recursive = true; 1793 }; 1794 1795 "org/gnome/meld" = { 1796 enable-space-drawer = true; 1797 highlight-current-line = true; 1798 highlight-syntax = true; 1799 prefer-dark-theme = true; 1800 show-line-numbers = true; 1801 show-overview-map = true; 1802 wrap-mode = "word"; 1803 }; 1804 }; 1805 } 1806 ]; 1807 }; 1808 }; 1809 1810 fonts = { 1811 enableDefaultPackages = false; 1812 packages = with pkgs; [ 1813 corefonts 1814 nerd-fonts.noto 1815 noto-fonts 1816 noto-fonts-cjk-sans 1817 noto-fonts-cjk-serif 1818 noto-fonts-color-emoji 1819 noto-fonts-lgc-plus 1820 ]; 1821 1822 fontconfig = { 1823 enable = true; 1824 1825 allowBitmaps = true; 1826 allowType1 = false; 1827 cache32Bit = true; 1828 1829 defaultFonts = { 1830 monospace = [ 1831 font_name.mono 1832 ]; 1833 1834 sansSerif = [ 1835 font_name.sans_serif 1836 ]; 1837 1838 serif = [ 1839 font_name.serif 1840 ]; 1841 1842 emoji = [ 1843 font_name.emoji 1844 ]; 1845 }; 1846 1847 includeUserConf = true; 1848 }; 1849 }; 1850 1851 environment = { 1852 enableDebugInfo = false; 1853 1854 enableAllTerminfo = true; 1855 1856 wordlist = { 1857 enable = true; 1858 # lists = ; 1859 }; 1860 1861 homeBinInPath = true; 1862 localBinInPath = true; 1863 1864 stub-ld.enable = true; 1865 1866 variables = { }; 1867 1868 sessionVariables = { 1869 NIXOS_OZONE_WL = "1"; 1870 CHROME_EXECUTABLE = "chromium"; 1871 }; 1872 1873 shellAliases = { 1874 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"; 1875 }; 1876 1877 extraInit = ''''; 1878 1879 loginShellInit = ''''; 1880 1881 shellInit = ''''; 1882 1883 interactiveShellInit = ''''; 1884 1885 systemPackages = 1886 with pkgs; 1887 [ 1888 # amrnb 1889 # amrwb 1890 # appimagekitk 1891 # fritzing 1892 # gnss-sdr 1893 # reiser4progs 1894 # scrounge-ntfs 1895 # sdrangel 1896 above 1897 acl 1898 aircrack-ng 1899 alac 1900 amass 1901 android-studio 1902 android-studio-tools 1903 android-tools 1904 anydesk 1905 apkeep 1906 apkleaks 1907 apksigner 1908 arduino-cli 1909 arduino-ide 1910 arduinoOTA 1911 aribb24 1912 aribb25 1913 arj 1914 audacity 1915 autopsy 1916 avrdude 1917 baobab 1918 bfcal 1919 binwalk 1920 blackbox-terminal 1921 bleachbit 1922 blender 1923 bluez-tools 1924 brightnessctl 1925 btrfs-progs 1926 bulk_extractor 1927 burpsuite 1928 bustle 1929 butt 1930 bzip2 1931 bzip3 1932 cabextract 1933 celestia 1934 celt 1935 certbot-full 1936 chmlib 1937 clang 1938 clang-analyzer 1939 clang-manpages 1940 clang-tools 1941 clinfo 1942 cliphist 1943 cloc 1944 cloudflare-warp 1945 cmake 1946 codec2 1947 collision 1948 coreutils-full 1949 cpio 1950 cryptsetup 1951 cups-filters 1952 cups-pdf-to-pdf 1953 cups-printers 1954 curlFull 1955 curtail 1956 d-spy 1957 darktable 1958 dart 1959 dbeaver-bin 1960 dconf-editor 1961 debase 1962 dirb 1963 dmg2img 1964 dmidecode 1965 dnsrecon 1966 dosfstools 1967 e2fsprogs 1968 efibootmgr 1969 eog 1970 esptool 1971 evtest 1972 evtest-qt 1973 exfatprogs 1974 f2fs-tools 1975 faac 1976 faad2 1977 fdk_aac 1978 ffmpeg-full 1979 ffmpegthumbnailer 1980 file 1981 file-roller 1982 flightgear 1983 flutter 1984 fwupd-efi 1985 gcc 1986 gdb 1987 gdk-pixbuf 1988 ghidra 1989 gimp-with-plugins 1990 git-doc 1991 git-filter-repo 1992 glib 1993 glibc 1994 gnome-font-viewer 1995 gnugrep 1996 gnulib 1997 gnumake 1998 gnused 1999 gnutar 2000 gnutls 2001 gource 2002 gparted 2003 gpredict 2004 grim 2005 gsm 2006 gtk-vnc 2007 guestfs-tools 2008 gzip 2009 hardinfo2 2010 hashcat 2011 hdparm 2012 hfsprogs 2013 hieroglyphic 2014 hw-probe 2015 hwloc 2016 hydra-check 2017 hyprpicker 2018 hyprpolkitagent 2019 i2c-tools 2020 iaito 2021 iftop 2022 inkscape 2023 inotify-tools 2024 jfsutils 2025 jmol 2026 john 2027 johnny 2028 jxrlib 2029 keepassxc 2030 kernelshark 2031 lha 2032 lhasa 2033 libGL 2034 libGLU 2035 libaom 2036 libappimage 2037 libass 2038 libcamera 2039 libde265 2040 libdvdcss 2041 libdvdnav 2042 libdvdread 2043 libepoxy 2044 libfreeaptx 2045 libfreefare 2046 libftdi1 2047 libgcc 2048 libgpg-error 2049 libguestfs 2050 libheif 2051 libilbc 2052 liblc3 2053 libnotify 2054 libogg 2055 libopenraw 2056 libopus 2057 libosinfo 2058 libqalculate 2059 libusb1 2060 libuuid 2061 libva-utils 2062 libvpx 2063 libwebcam 2064 libwebp 2065 libxfs 2066 libzip 2067 linuxConsoleTools 2068 lrzip 2069 lshw 2070 lsof 2071 lsscsi 2072 lvm2 2073 lynis 2074 lz4 2075 lzham 2076 lzip 2077 lzlib 2078 lzop 2079 macchanger 2080 masscan 2081 massdns 2082 media-player-info 2083 meld 2084 mesa-demos 2085 mfcuk 2086 mfoc 2087 mission-center 2088 monkeysAudio 2089 mtools 2090 nautilus 2091 netdiscover 2092 netsniff-ng 2093 networkmanagerapplet 2094 nikto 2095 nilfs-utils 2096 ninja 2097 nix-bash-completions 2098 nix-diff 2099 nix-index 2100 nix-info 2101 nixd 2102 nixdoc 2103 nixfmt-rfc-style 2104 nixos-icons 2105 nixpkgs-lint 2106 nixpkgs-review 2107 nmap 2108 ntfs3g 2109 nuclei 2110 onionshare-gui 2111 onlyoffice-desktopeditors 2112 opencore-amr 2113 openh264 2114 openjpeg 2115 openssl 2116 p7zip 2117 papirus-folders 2118 parabolic 2119 patchelf 2120 pciutils 2121 pcre 2122 php84 2123 pjsip 2124 pkg-config 2125 platformio 2126 platformio-core 2127 playerctl 2128 podman-compose 2129 podman-desktop 2130 pwvucontrol 2131 python313Full 2132 qalculate-gtk 2133 qbittorrent 2134 qemu-utils 2135 qpwgraph 2136 radare2 2137 rar 2138 readline 2139 reiserfsprogs 2140 remmina 2141 rpPPPoE 2142 rpmextract 2143 rtl-sdr-librtlsdr 2144 rzip 2145 sane-backends 2146 sbc 2147 scalpel 2148 schroedinger 2149 scrcpy 2150 screen 2151 sdrpp 2152 serial-studio 2153 shared-mime-info 2154 sherlock 2155 sipvicious 2156 sleuthkit 2157 slurp 2158 smartmontools 2159 smbmap 2160 songrec 2161 spice 2162 spice-gtk 2163 spice-protocol 2164 spooftooph 2165 sslscan 2166 subfinder 2167 subtitleedit 2168 swaks 2169 telegram-desktop 2170 texliveFull 2171 theharvester 2172 thermald 2173 tor-browser 2174 tree 2175 trufflehog 2176 udftools 2177 udiskie 2178 unar 2179 unicode-emoji 2180 universal-android-debloater 2181 unix-privesc-check 2182 unrar 2183 unzip 2184 usbutils 2185 util-linux 2186 virt-viewer 2187 virtio-win 2188 virtiofsd 2189 vlc 2190 vlc-bittorrent 2191 vulkan-tools 2192 wafw00f 2193 wavpack 2194 waybar-mpris 2195 waycheck 2196 wayland 2197 wayland-protocols 2198 wayland-utils 2199 waylevel 2200 webcamoid 2201 wev 2202 wget 2203 which 2204 whois 2205 wifite2 2206 win-spice 2207 wl-clipboard 2208 woff2 2209 wpscan 2210 x264 2211 x265 2212 xdg-user-dirs 2213 xdg-utils 2214 xfsdump 2215 xfsprogs 2216 xfstests 2217 xorg.xhost 2218 xoscope 2219 xvidcore 2220 xz 2221 yara 2222 zip 2223 zlib 2224 zpaq 2225 zstd 2226 (sddm-astronaut.override { 2227 embeddedTheme = "astronaut"; 2228 2229 themeConfig = { 2230 # ScreenWidth = 1920; 2231 # ScreenHeight = 1080; 2232 ScreenPadding = 0; 2233 2234 BackgroundColor = dracula_theme.hex.background; 2235 BackgroundHorizontalAlignment = "center"; 2236 BackgroundVerticalAlignment = "center"; 2237 Background = wallpaper; 2238 CropBackground = false; 2239 DimBackgroundImage = "0.0"; 2240 2241 FullBlur = false; 2242 PartialBlur = false; 2243 2244 HaveFormBackground = false; 2245 FormPosition = "center"; 2246 2247 HideLoginButton = false; 2248 HideSystemButtons = false; 2249 HideVirtualKeyboard = false; 2250 VirtualKeyboardPosition = "center"; 2251 2252 # MainColor = ; # TODO 2253 # AccentColor = ; # TODO 2254 2255 # HighlightBorderColor= ; # TODO 2256 # HighlightBackgroundColor= ; # TODO 2257 # HighlightTextColor= ; # TODO 2258 2259 HeaderTextColor = dracula_theme.hex.foreground; 2260 TimeTextColor = dracula_theme.hex.foreground; 2261 DateTextColor = dracula_theme.hex.foreground; 2262 2263 IconColor = dracula_theme.hex.foreground; 2264 PlaceholderTextColor = dracula_theme.hex.foreground; 2265 WarningColor = dracula_theme.hex.red; 2266 2267 # LoginFieldBackgroundColor = ; # TODO 2268 # LoginFieldTextColor = ; # TODO 2269 # UserIconColor = ; # TODO 2270 # HoverUserIconColor = ; # TODO 2271 2272 # PasswordFieldBackgroundColor = ; # TODO 2273 # PasswordFieldTextColor = ; # TODO 2274 # PasswordIconColor = ; # TODO 2275 # HoverPasswordIconColor = ; # TODO 2276 2277 # LoginButtonBackgroundColor = ; # TODO 2278 LoginButtonTextColor = dracula_theme.hex.foreground; 2279 2280 SystemButtonsIconsColor = dracula_theme.hex.foreground; 2281 # HoverSystemButtonsIconsColor = ; # TODO 2282 2283 SessionButtonTextColor = dracula_theme.hex.foreground; 2284 # HoverSessionButtonTextColor = ; # TODO 2285 2286 VirtualKeyboardButtonTextColor = dracula_theme.hex.foreground; 2287 # HoverVirtualKeyboardButtonTextColor = ; # TODO 2288 2289 DropdownBackgroundColor = dracula_theme.hex.background; 2290 DropdownSelectedBackgroundColor = dracula_theme.hex.current_line; 2291 DropdownTextColor = dracula_theme.hex.foreground; 2292 2293 HeaderText = ""; 2294 2295 HourFormat = "\"hh:mm A\""; 2296 DateFormat = "\"MMMM dd, yyyy\""; 2297 2298 PasswordFocus = true; 2299 AllowEmptyPassword = false; 2300 }; 2301 }) 2302 ] 2303 ++ (with unixtools; [ 2304 arp 2305 fdisk 2306 ifconfig 2307 netstat 2308 nettools 2309 ping 2310 route 2311 util-linux 2312 whereis 2313 ]) 2314 ++ (with fishPlugins; [ 2315 async-prompt 2316 autopair 2317 done 2318 fish-you-should-use 2319 ]) 2320 ++ (with gst_all_1; [ 2321 gst-libav 2322 gst-plugins-bad 2323 gst-plugins-base 2324 gst-plugins-good 2325 gst-plugins-ugly 2326 gst-vaapi 2327 gstreamer 2328 ]) 2329 ++ (with php84Extensions; [ 2330 bz2 2331 calendar 2332 ctype 2333 curl 2334 dba 2335 dom 2336 exif 2337 ffi 2338 fileinfo 2339 filter 2340 ftp 2341 gd 2342 iconv 2343 imagick 2344 imap 2345 mailparse 2346 memcached 2347 mysqli 2348 mysqlnd 2349 opcache 2350 openssl 2351 pcntl 2352 pdo 2353 pdo_mysql 2354 pdo_pgsql 2355 pgsql 2356 posix 2357 readline 2358 session 2359 sockets 2360 sodium 2361 xml 2362 xmlreader 2363 xmlwriter 2364 xsl 2365 zip 2366 zlib 2367 ]) 2368 # ++ (with php84Packages; [ 2369 2370 # ]) 2371 ++ (with python313Packages; [ 2372 black 2373 numpy 2374 pandas 2375 pillow 2376 pip 2377 pyserial 2378 seaborn 2379 ]) 2380 ++ (with texlivePackages; [ 2381 latexmk 2382 ]) 2383 ++ (with ghidra-extensions; [ 2384 findcrypt 2385 ghidra-delinker-extension 2386 ghidra-golanganalyzerextension 2387 ghidraninja-ghidra-scripts 2388 gnudisassembler 2389 lightkeeper 2390 machinelearning 2391 ret-sync 2392 sleighdevtools 2393 wasm 2394 ]) 2395 ++ (with inkscape-extensions; [ 2396 applytransforms 2397 textext 2398 ]); 2399 }; 2400 2401 xdg = { 2402 mime = { 2403 enable = true; 2404 2405 addedAssociations = config.xdg.mime.defaultApplications; 2406 2407 removedAssociations = { }; 2408 2409 # https://www.iana.org/assignments/media-types/media-types.xhtml # Excluding "application/x-*" and "x-scheme-handler/*" 2410 defaultApplications = { 2411 "inode/directory" = "nautilus.desktop"; 2412 2413 "image/aces" = "org.gnome.eog.desktop"; 2414 "image/apng" = "org.gnome.eog.desktop"; 2415 "image/avci" = "org.gnome.eog.desktop"; 2416 "image/avcs" = "org.gnome.eog.desktop"; 2417 "image/avif" = "org.gnome.eog.desktop"; 2418 "image/bmp" = "org.gnome.eog.desktop"; 2419 "image/cgm" = "org.gnome.eog.desktop"; 2420 "image/dicom-rle" = "org.gnome.eog.desktop"; 2421 "image/dpx" = "org.gnome.eog.desktop"; 2422 "image/emf" = "org.gnome.eog.desktop"; 2423 "image/fits" = "org.gnome.eog.desktop"; 2424 "image/g3fax" = "org.gnome.eog.desktop"; 2425 "image/gif" = "org.gnome.eog.desktop"; 2426 "image/heic" = "org.gnome.eog.desktop"; 2427 "image/heic-sequence" = "org.gnome.eog.desktop"; 2428 "image/heif" = "org.gnome.eog.desktop"; 2429 "image/heif-sequence" = "org.gnome.eog.desktop"; 2430 "image/hej2k" = "org.gnome.eog.desktop"; 2431 "image/hsj2" = "org.gnome.eog.desktop"; 2432 "image/ief" = "org.gnome.eog.desktop"; 2433 "image/j2c" = "org.gnome.eog.desktop"; 2434 "image/jaii" = "org.gnome.eog.desktop"; 2435 "image/jais" = "org.gnome.eog.desktop"; 2436 "image/jls" = "org.gnome.eog.desktop"; 2437 "image/jp2" = "org.gnome.eog.desktop"; 2438 "image/jpeg" = "org.gnome.eog.desktop"; 2439 "image/jph" = "org.gnome.eog.desktop"; 2440 "image/jphc" = "org.gnome.eog.desktop"; 2441 "image/jpm" = "org.gnome.eog.desktop"; 2442 "image/jpx" = "org.gnome.eog.desktop"; 2443 "image/jxl" = "org.gnome.eog.desktop"; 2444 "image/jxr" = "org.gnome.eog.desktop"; 2445 "image/jxrA" = "org.gnome.eog.desktop"; 2446 "image/jxrS" = "org.gnome.eog.desktop"; 2447 "image/jxs" = "org.gnome.eog.desktop"; 2448 "image/jxsc" = "org.gnome.eog.desktop"; 2449 "image/jxsi" = "org.gnome.eog.desktop"; 2450 "image/jxss" = "org.gnome.eog.desktop"; 2451 "image/ktx" = "org.gnome.eog.desktop"; 2452 "image/ktx2" = "org.gnome.eog.desktop"; 2453 "image/naplps" = "org.gnome.eog.desktop"; 2454 "image/png" = "org.gnome.eog.desktop"; 2455 "image/prs.btif" = "org.gnome.eog.desktop"; 2456 "image/prs.pti" = "org.gnome.eog.desktop"; 2457 "image/pwg-raster" = "org.gnome.eog.desktop"; 2458 "image/svg+xml" = "org.gnome.eog.desktop"; 2459 "image/t38" = "org.gnome.eog.desktop"; 2460 "image/tiff" = "org.gnome.eog.desktop"; 2461 "image/tiff-fx" = "org.gnome.eog.desktop"; 2462 "image/vnd.adobe.photoshop" = "org.gnome.eog.desktop"; 2463 "image/vnd.airzip.accelerator.azv" = "org.gnome.eog.desktop"; 2464 "image/vnd.cns.inf2" = "org.gnome.eog.desktop"; 2465 "image/vnd.dece.graphic" = "org.gnome.eog.desktop"; 2466 "image/vnd.djvu" = "org.gnome.eog.desktop"; 2467 "image/vnd.dvb.subtitle" = "org.gnome.eog.desktop"; 2468 "image/vnd.dwg" = "org.gnome.eog.desktop"; 2469 "image/vnd.dxf" = "org.gnome.eog.desktop"; 2470 "image/vnd.fastbidsheet" = "org.gnome.eog.desktop"; 2471 "image/vnd.fpx" = "org.gnome.eog.desktop"; 2472 "image/vnd.fst" = "org.gnome.eog.desktop"; 2473 "image/vnd.fujixerox.edmics-mmr" = "org.gnome.eog.desktop"; 2474 "image/vnd.fujixerox.edmics-rlc" = "org.gnome.eog.desktop"; 2475 "image/vnd.globalgraphics.pgb" = "org.gnome.eog.desktop"; 2476 "image/vnd.microsoft.icon" = "org.gnome.eog.desktop"; 2477 "image/vnd.mix" = "org.gnome.eog.desktop"; 2478 "image/vnd.mozilla.apng" = "org.gnome.eog.desktop"; 2479 "image/vnd.ms-modi" = "org.gnome.eog.desktop"; 2480 "image/vnd.net-fpx" = "org.gnome.eog.desktop"; 2481 "image/vnd.pco.b16" = "org.gnome.eog.desktop"; 2482 "image/vnd.radiance" = "org.gnome.eog.desktop"; 2483 "image/vnd.sealed.png" = "org.gnome.eog.desktop"; 2484 "image/vnd.sealedmedia.softseal.gif" = "org.gnome.eog.desktop"; 2485 "image/vnd.sealedmedia.softseal.jpg" = "org.gnome.eog.desktop"; 2486 "image/vnd.svf" = "org.gnome.eog.desktop"; 2487 "image/vnd.tencent.tap" = "org.gnome.eog.desktop"; 2488 "image/vnd.valve.source.texture" = "org.gnome.eog.desktop"; 2489 "image/vnd.wap.wbmp" = "org.gnome.eog.desktop"; 2490 "image/vnd.xiff" = "org.gnome.eog.desktop"; 2491 "image/vnd.zbrush.pcx" = "org.gnome.eog.desktop"; 2492 "image/webp" = "org.gnome.eog.desktop"; 2493 "image/wmf" = "org.gnome.eog.desktop"; 2494 "image/x-emf" = "org.gnome.eog.desktop"; 2495 "image/x-wmf" = "org.gnome.eog.desktop"; 2496 2497 "audio/1d-interleaved-parityfec" = "vlc.desktop"; 2498 "audio/32kadpcm" = "vlc.desktop"; 2499 "audio/3gpp" = "vlc.desktop"; 2500 "audio/3gpp2" = "vlc.desktop"; 2501 "audio/AMR" = "vlc.desktop"; 2502 "audio/AMR-WB" = "vlc.desktop"; 2503 "audio/ATRAC-ADVANCED-LOSSLESS" = "vlc.desktop"; 2504 "audio/ATRAC-X" = "vlc.desktop"; 2505 "audio/ATRAC3" = "vlc.desktop"; 2506 "audio/BV16" = "vlc.desktop"; 2507 "audio/BV32" = "vlc.desktop"; 2508 "audio/CN" = "vlc.desktop"; 2509 "audio/DAT12" = "vlc.desktop"; 2510 "audio/DV" = "vlc.desktop"; 2511 "audio/DVI4" = "vlc.desktop"; 2512 "audio/EVRC" = "vlc.desktop"; 2513 "audio/EVRC-QCP" = "vlc.desktop"; 2514 "audio/EVRC0" = "vlc.desktop"; 2515 "audio/EVRC1" = "vlc.desktop"; 2516 "audio/EVRCB" = "vlc.desktop"; 2517 "audio/EVRCB0" = "vlc.desktop"; 2518 "audio/EVRCB1" = "vlc.desktop"; 2519 "audio/EVRCNW" = "vlc.desktop"; 2520 "audio/EVRCNW0" = "vlc.desktop"; 2521 "audio/EVRCNW1" = "vlc.desktop"; 2522 "audio/EVRCWB" = "vlc.desktop"; 2523 "audio/EVRCWB0" = "vlc.desktop"; 2524 "audio/EVRCWB1" = "vlc.desktop"; 2525 "audio/EVS" = "vlc.desktop"; 2526 "audio/G711-0" = "vlc.desktop"; 2527 "audio/G719" = "vlc.desktop"; 2528 "audio/G722" = "vlc.desktop"; 2529 "audio/G7221" = "vlc.desktop"; 2530 "audio/G723" = "vlc.desktop"; 2531 "audio/G726-16" = "vlc.desktop"; 2532 "audio/G726-24" = "vlc.desktop"; 2533 "audio/G726-32" = "vlc.desktop"; 2534 "audio/G726-40" = "vlc.desktop"; 2535 "audio/G728" = "vlc.desktop"; 2536 "audio/G729" = "vlc.desktop"; 2537 "audio/G7291" = "vlc.desktop"; 2538 "audio/G729D" = "vlc.desktop"; 2539 "audio/G729E" = "vlc.desktop"; 2540 "audio/GSM" = "vlc.desktop"; 2541 "audio/GSM-EFR" = "vlc.desktop"; 2542 "audio/GSM-HR-08" = "vlc.desktop"; 2543 "audio/L16" = "vlc.desktop"; 2544 "audio/L20" = "vlc.desktop"; 2545 "audio/L24" = "vlc.desktop"; 2546 "audio/L8" = "vlc.desktop"; 2547 "audio/LPC" = "vlc.desktop"; 2548 "audio/MELP" = "vlc.desktop"; 2549 "audio/MELP1200" = "vlc.desktop"; 2550 "audio/MELP2400" = "vlc.desktop"; 2551 "audio/MELP600" = "vlc.desktop"; 2552 "audio/MP4A-LATM" = "vlc.desktop"; 2553 "audio/MPA" = "vlc.desktop"; 2554 "audio/PCMA" = "vlc.desktop"; 2555 "audio/PCMA-WB" = "vlc.desktop"; 2556 "audio/PCMU" = "vlc.desktop"; 2557 "audio/PCMU-WB" = "vlc.desktop"; 2558 "audio/QCELP" = "vlc.desktop"; 2559 "audio/RED" = "vlc.desktop"; 2560 "audio/SMV" = "vlc.desktop"; 2561 "audio/SMV-QCP" = "vlc.desktop"; 2562 "audio/SMV0" = "vlc.desktop"; 2563 "audio/TETRA_ACELP" = "vlc.desktop"; 2564 "audio/TETRA_ACELP_BB" = "vlc.desktop"; 2565 "audio/TSVCIS" = "vlc.desktop"; 2566 "audio/UEMCLIP" = "vlc.desktop"; 2567 "audio/VDVI" = "vlc.desktop"; 2568 "audio/VMR-WB" = "vlc.desktop"; 2569 "audio/aac" = "vlc.desktop"; 2570 "audio/ac3" = "vlc.desktop"; 2571 "audio/amr-wb+" = "vlc.desktop"; 2572 "audio/aptx" = "vlc.desktop"; 2573 "audio/asc" = "vlc.desktop"; 2574 "audio/basic" = "vlc.desktop"; 2575 "audio/clearmode" = "vlc.desktop"; 2576 "audio/dls" = "vlc.desktop"; 2577 "audio/dsr-es201108" = "vlc.desktop"; 2578 "audio/dsr-es202050" = "vlc.desktop"; 2579 "audio/dsr-es202211" = "vlc.desktop"; 2580 "audio/dsr-es202212" = "vlc.desktop"; 2581 "audio/eac3" = "vlc.desktop"; 2582 "audio/encaprtp" = "vlc.desktop"; 2583 "audio/flac" = "vlc.desktop"; 2584 "audio/flexfec" = "vlc.desktop"; 2585 "audio/fwdred" = "vlc.desktop"; 2586 "audio/iLBC" = "vlc.desktop"; 2587 "audio/ip-mr_v2.5" = "vlc.desktop"; 2588 "audio/matroska" = "vlc.desktop"; 2589 "audio/mhas" = "vlc.desktop"; 2590 "audio/midi-clip" = "vlc.desktop"; 2591 "audio/mobile-xmf" = "vlc.desktop"; 2592 "audio/mp4" = "vlc.desktop"; 2593 "audio/mpa-robust" = "vlc.desktop"; 2594 "audio/mpeg" = "vlc.desktop"; 2595 "audio/mpeg4-generic" = "vlc.desktop"; 2596 "audio/ogg" = "vlc.desktop"; 2597 "audio/opus" = "vlc.desktop"; 2598 "audio/parityfec" = "vlc.desktop"; 2599 "audio/prs.sid" = "vlc.desktop"; 2600 "audio/raptorfec" = "vlc.desktop"; 2601 "audio/rtp-enc-aescm128" = "vlc.desktop"; 2602 "audio/rtp-midi" = "vlc.desktop"; 2603 "audio/rtploopback" = "vlc.desktop"; 2604 "audio/rtx" = "vlc.desktop"; 2605 "audio/scip" = "vlc.desktop"; 2606 "audio/sofa" = "vlc.desktop"; 2607 "audio/sp-midi" = "vlc.desktop"; 2608 "audio/speex" = "vlc.desktop"; 2609 "audio/t140c" = "vlc.desktop"; 2610 "audio/t38" = "vlc.desktop"; 2611 "audio/telephone-event" = "vlc.desktop"; 2612 "audio/tone" = "vlc.desktop"; 2613 "audio/ulpfec" = "vlc.desktop"; 2614 "audio/usac" = "vlc.desktop"; 2615 "audio/vnd.3gpp.iufp" = "vlc.desktop"; 2616 "audio/vnd.4SB" = "vlc.desktop"; 2617 "audio/vnd.CELP" = "vlc.desktop"; 2618 "audio/vnd.audiokoz" = "vlc.desktop"; 2619 "audio/vnd.cisco.nse" = "vlc.desktop"; 2620 "audio/vnd.cmles.radio-events" = "vlc.desktop"; 2621 "audio/vnd.cns.anp1" = "vlc.desktop"; 2622 "audio/vnd.cns.inf1" = "vlc.desktop"; 2623 "audio/vnd.dece.audio" = "vlc.desktop"; 2624 "audio/vnd.digital-winds" = "vlc.desktop"; 2625 "audio/vnd.dlna.adts" = "vlc.desktop"; 2626 "audio/vnd.dolby.heaac.1" = "vlc.desktop"; 2627 "audio/vnd.dolby.heaac.2" = "vlc.desktop"; 2628 "audio/vnd.dolby.mlp" = "vlc.desktop"; 2629 "audio/vnd.dolby.mps" = "vlc.desktop"; 2630 "audio/vnd.dolby.pl2" = "vlc.desktop"; 2631 "audio/vnd.dolby.pl2x" = "vlc.desktop"; 2632 "audio/vnd.dolby.pl2z" = "vlc.desktop"; 2633 "audio/vnd.dolby.pulse.1" = "vlc.desktop"; 2634 "audio/vnd.dra" = "vlc.desktop"; 2635 "audio/vnd.dts" = "vlc.desktop"; 2636 "audio/vnd.dts.hd" = "vlc.desktop"; 2637 "audio/vnd.dts.uhd" = "vlc.desktop"; 2638 "audio/vnd.dvb.file" = "vlc.desktop"; 2639 "audio/vnd.everad.plj" = "vlc.desktop"; 2640 "audio/vnd.hns.audio" = "vlc.desktop"; 2641 "audio/vnd.lucent.voice" = "vlc.desktop"; 2642 "audio/vnd.ms-playready.media.pya" = "vlc.desktop"; 2643 "audio/vnd.nokia.mobile-xmf" = "vlc.desktop"; 2644 "audio/vnd.nortel.vbk" = "vlc.desktop"; 2645 "audio/vnd.nuera.ecelp4800" = "vlc.desktop"; 2646 "audio/vnd.nuera.ecelp7470" = "vlc.desktop"; 2647 "audio/vnd.nuera.ecelp9600" = "vlc.desktop"; 2648 "audio/vnd.octel.sbc" = "vlc.desktop"; 2649 "audio/vnd.presonus.multitrack" = "vlc.desktop"; 2650 "audio/vnd.qcelp" = "vlc.desktop"; 2651 "audio/vnd.rhetorex.32kadpcm" = "vlc.desktop"; 2652 "audio/vnd.rip" = "vlc.desktop"; 2653 "audio/vnd.sealedmedia.softseal.mpeg" = "vlc.desktop"; 2654 "audio/vnd.vmx.cvsd" = "vlc.desktop"; 2655 "audio/vorbis" = "vlc.desktop"; 2656 "audio/vorbis-config" = "vlc.desktop"; 2657 2658 "video/1d-interleaved-parityfec" = "vlc.desktop"; 2659 "video/3gpp" = "vlc.desktop"; 2660 "video/3gpp-tt" = "vlc.desktop"; 2661 "video/3gpp2" = "vlc.desktop"; 2662 "video/AV1" = "vlc.desktop"; 2663 "video/BMPEG" = "vlc.desktop"; 2664 "video/BT656" = "vlc.desktop"; 2665 "video/CelB" = "vlc.desktop"; 2666 "video/DV" = "vlc.desktop"; 2667 "video/FFV1" = "vlc.desktop"; 2668 "video/H261" = "vlc.desktop"; 2669 "video/H263" = "vlc.desktop"; 2670 "video/H263-1998" = "vlc.desktop"; 2671 "video/H263-2000" = "vlc.desktop"; 2672 "video/H264" = "vlc.desktop"; 2673 "video/H264-RCDO" = "vlc.desktop"; 2674 "video/H264-SVC" = "vlc.desktop"; 2675 "video/H265" = "vlc.desktop"; 2676 "video/H266" = "vlc.desktop"; 2677 "video/JPEG" = "vlc.desktop"; 2678 "video/MP1S" = "vlc.desktop"; 2679 "video/MP2P" = "vlc.desktop"; 2680 "video/MP2T" = "vlc.desktop"; 2681 "video/MP4V-ES" = "vlc.desktop"; 2682 "video/MPV" = "vlc.desktop"; 2683 "video/SMPTE292M" = "vlc.desktop"; 2684 "video/VP8" = "vlc.desktop"; 2685 "video/VP9" = "vlc.desktop"; 2686 "video/encaprtp" = "vlc.desktop"; 2687 "video/evc" = "vlc.desktop"; 2688 "video/flexfec" = "vlc.desktop"; 2689 "video/iso.segment" = "vlc.desktop"; 2690 "video/jpeg2000" = "vlc.desktop"; 2691 "video/jxsv" = "vlc.desktop"; 2692 "video/matroska" = "vlc.desktop"; 2693 "video/matroska-3d" = "vlc.desktop"; 2694 "video/mj2" = "vlc.desktop"; 2695 "video/mp4" = "vlc.desktop"; 2696 "video/mpeg" = "vlc.desktop"; 2697 "video/mpeg4-generic" = "vlc.desktop"; 2698 "video/nv" = "vlc.desktop"; 2699 "video/ogg" = "vlc.desktop"; 2700 "video/parityfec" = "vlc.desktop"; 2701 "video/pointer" = "vlc.desktop"; 2702 "video/quicktime" = "vlc.desktop"; 2703 "video/raptorfec" = "vlc.desktop"; 2704 "video/raw" = "vlc.desktop"; 2705 "video/rtp-enc-aescm128" = "vlc.desktop"; 2706 "video/rtploopback" = "vlc.desktop"; 2707 "video/rtx" = "vlc.desktop"; 2708 "video/scip" = "vlc.desktop"; 2709 "video/smpte291" = "vlc.desktop"; 2710 "video/ulpfec" = "vlc.desktop"; 2711 "video/vc1" = "vlc.desktop"; 2712 "video/vc2" = "vlc.desktop"; 2713 "video/vnd.CCTV" = "vlc.desktop"; 2714 "video/vnd.dece.hd" = "vlc.desktop"; 2715 "video/vnd.dece.mobile" = "vlc.desktop"; 2716 "video/vnd.dece.mp4" = "vlc.desktop"; 2717 "video/vnd.dece.pd" = "vlc.desktop"; 2718 "video/vnd.dece.sd" = "vlc.desktop"; 2719 "video/vnd.dece.video" = "vlc.desktop"; 2720 "video/vnd.directv.mpeg" = "vlc.desktop"; 2721 "video/vnd.directv.mpeg-tts" = "vlc.desktop"; 2722 "video/vnd.dlna.mpeg-tts" = "vlc.desktop"; 2723 "video/vnd.dvb.file" = "vlc.desktop"; 2724 "video/vnd.fvt" = "vlc.desktop"; 2725 "video/vnd.hns.video" = "vlc.desktop"; 2726 "video/vnd.iptvforum.1dparityfec-1010" = "vlc.desktop"; 2727 "video/vnd.iptvforum.1dparityfec-2005" = "vlc.desktop"; 2728 "video/vnd.iptvforum.2dparityfec-1010" = "vlc.desktop"; 2729 "video/vnd.iptvforum.2dparityfec-2005" = "vlc.desktop"; 2730 "video/vnd.iptvforum.ttsavc" = "vlc.desktop"; 2731 "video/vnd.iptvforum.ttsmpeg2" = "vlc.desktop"; 2732 "video/vnd.motorola.video" = "vlc.desktop"; 2733 "video/vnd.motorola.videop" = "vlc.desktop"; 2734 "video/vnd.mpegurl" = "vlc.desktop"; 2735 "video/vnd.ms-playready.media.pyv" = "vlc.desktop"; 2736 "video/vnd.nokia.interleaved-multimedia" = "vlc.desktop"; 2737 "video/vnd.nokia.mp4vr" = "vlc.desktop"; 2738 "video/vnd.nokia.videovoip" = "vlc.desktop"; 2739 "video/vnd.objectvideo" = "vlc.desktop"; 2740 "video/vnd.radgamettools.bink" = "vlc.desktop"; 2741 "video/vnd.radgamettools.smacker" = "vlc.desktop"; 2742 "video/vnd.sealed.mpeg1" = "vlc.desktop"; 2743 "video/vnd.sealed.mpeg4" = "vlc.desktop"; 2744 "video/vnd.sealed.swf" = "vlc.desktop"; 2745 "video/vnd.sealedmedia.softseal.mov" = "vlc.desktop"; 2746 "video/vnd.uvvu.mp4" = "vlc.desktop"; 2747 "video/vnd.vivo" = "vlc.desktop"; 2748 "video/vnd.youtube.yt" = "vlc.desktop"; 2749 2750 "application/vnd.oasis.opendocument.text" = "onlyoffice-desktopeditors.desktop"; # .odt 2751 "application/msword" = "onlyoffice-desktopeditors.desktop"; # .doc 2752 "application/vnd.openxmlformats-officedocument.wordprocessingml.document" = 2753 "onlyoffice-desktopeditors.desktop"; # .docx 2754 "application/vnd.openxmlformats-officedocument.wordprocessingml.template" = 2755 "onlyoffice-desktopeditors.desktop"; # .dotx 2756 2757 "application/vnd.oasis.opendocument.spreadsheet" = "onlyoffice-desktopeditors.desktop"; # .ods 2758 "application/vnd.ms-excel" = "onlyoffice-desktopeditors.desktop"; # .xls 2759 "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet" = 2760 "onlyoffice-desktopeditors.desktop"; # .xlsx 2761 "application/vnd.openxmlformats-officedocument.spreadsheetml.template" = 2762 "onlyoffice-desktopeditors.desktop"; # .xltx 2763 2764 "application/vnd.oasis.opendocument.presentation" = "onlyoffice-desktopeditors.desktop"; # .odp 2765 "application/vnd.ms-powerpoint" = "onlyoffice-desktopeditors.desktop"; # .ppt 2766 "application/vnd.openxmlformats-officedocument.presentationml.presentation" = 2767 "onlyoffice-desktopeditors.desktop"; # .pptx 2768 "application/vnd.openxmlformats-officedocument.presentationml.template" = 2769 "onlyoffice-desktopeditors.desktop"; # .potx 2770 2771 "application/pdf" = "librewolf.desktop"; 2772 2773 "font/collection" = "org.gnome.font-viewer.desktop"; 2774 "font/otf" = "org.gnome.font-viewer.desktop"; 2775 "font/sfnt" = "org.gnome.font-viewer.desktop"; 2776 "font/ttf" = "org.gnome.font-viewer.desktop"; 2777 "font/woff" = "org.gnome.font-viewer.desktop"; 2778 "font/woff2" = "org.gnome.font-viewer.desktop"; 2779 2780 "application/gzip" = "org.gnome.FileRoller.desktop"; 2781 "application/vnd.rar" = "org.gnome.FileRoller.desktop"; 2782 "application/x-7z-compressed" = "org.gnome.FileRoller.desktop"; 2783 "application/x-arj" = "org.gnome.FileRoller.desktop"; 2784 "application/x-bzip2" = "org.gnome.FileRoller.desktop"; 2785 "application/x-gtar" = "org.gnome.FileRoller.desktop"; 2786 "application/x-rar-compressed " = "org.gnome.FileRoller.desktop"; # More common than "application/vnd.rar" 2787 "application/x-tar" = "org.gnome.FileRoller.desktop"; 2788 "application/zip" = "org.gnome.FileRoller.desktop"; 2789 2790 "x-scheme-handler/http" = "librewolf.desktop"; 2791 "x-scheme-handler/https" = "librewolf.desktop"; 2792 2793 "x-scheme-handler/mailto" = "thunderbird.desktop"; 2794 }; 2795 }; 2796 2797 icons.enable = true; 2798 sounds.enable = true; 2799 2800 menus.enable = true; 2801 autostart.enable = true; 2802 2803 terminal-exec.enable = true; 2804 2805 portal = { 2806 enable = true; 2807 extraPortals = with pkgs; [ 2808 xdg-desktop-portal-hyprland 2809 ]; 2810 2811 xdgOpenUsePortal = false; # Opening Programs 2812 }; 2813 }; 2814 2815 qt = { 2816 enable = true; 2817 2818 platformTheme = "gtk2"; 2819 style = "gtk2"; 2820 }; 2821 2822 documentation = { 2823 enable = true; 2824 dev.enable = true; 2825 doc.enable = true; 2826 info.enable = true; 2827 2828 man = { 2829 enable = true; 2830 2831 man-db = { 2832 enable = true; 2833 package = pkgs.man-db; 2834 }; 2835 2836 generateCaches = true; 2837 }; 2838 2839 nixos = { 2840 enable = true; 2841 includeAllModules = true; 2842 options.warningsAreErrors = false; 2843 }; 2844 }; 2845 2846 users = { 2847 groups = { 2848 hardinfo2 = { }; # Creation 2849 }; 2850 2851 enforceIdUniqueness = true; 2852 mutableUsers = true; 2853 2854 defaultUserShell = pkgs.fish; 2855 2856 motd = "Welcome"; 2857 2858 users.bitscoper = { 2859 isNormalUser = true; 2860 2861 name = "bitscoper"; 2862 description = "Abdullah As-Sadeed"; # Full Name 2863 2864 extraGroups = [ 2865 "adbusers" 2866 "audio" 2867 "dialout" 2868 "hardinfo2" 2869 "input" 2870 "jellyfin" 2871 "kvm" 2872 "libvirtd" 2873 "lp" 2874 "networkmanager" 2875 "plugdev" 2876 "podman" 2877 "qemu-libvirtd" 2878 "scanner" 2879 "tty" 2880 "uucp" 2881 "video" 2882 "wheel" 2883 "wireshark" 2884 ]; 2885 2886 useDefaultShell = true; 2887 }; 2888 }; 2889 2890 home-manager = { 2891 useGlobalPkgs = true; 2892 useUserPackages = true; 2893 2894 backupFileExtension = "old"; 2895 2896 sharedModules = [ 2897 { 2898 home = { 2899 enableNixpkgsReleaseCheck = true; 2900 2901 shell = { 2902 enableShellIntegration = true; 2903 enableBashIntegration = true; 2904 enableFishIntegration = true; 2905 }; 2906 2907 language = { }; 2908 2909 keyboard = { }; 2910 2911 pointerCursor = { 2912 name = cursor.theme.name; 2913 package = cursor.theme.package; 2914 size = cursor.size; 2915 2916 hyprcursor = { 2917 enable = true; 2918 size = cursor.size; 2919 }; 2920 2921 gtk.enable = true; 2922 }; 2923 2924 preferXdgDirectories = true; 2925 2926 # packages = with pkgs; [ 2927 2928 # ]; 2929 2930 sessionVariables = { }; 2931 2932 sessionSearchVariables = { }; 2933 2934 shellAliases = { }; 2935 2936 enableDebugInfo = false; 2937 2938 stateVersion = "24.11"; 2939 }; 2940 2941 wayland.windowManager.hyprland = { 2942 enable = true; 2943 package = pkgs.hyprland; 2944 2945 systemd = { 2946 enable = false; 2947 enableXdgAutostart = true; 2948 2949 # extraCommands = [ 2950 2951 # ]; 2952 2953 variables = [ 2954 "--all" 2955 ]; 2956 }; 2957 2958 plugins = with pkgs.hyprlandPlugins; [ 2959 hypr-dynamic-cursors 2960 ]; 2961 2962 xwayland.enable = true; 2963 2964 sourceFirst = true; 2965 2966 settings = { 2967 monitor = [ 2968 ", highres, auto, 1" # Name, Resolution, Position, Scale 2969 ]; 2970 2971 env = [ 2972 "XCURSOR_SIZE, ${toString cursor.size}" 2973 ]; 2974 2975 exec-once = [ 2976 "uwsm app -- ${pkgs.hyprpolkitagent}/libexec/hyprpolkitagent" 2977 2978 "uwsm app -- udiskie --tray --appindicator --automount --notify --file-manager nautilus" 2979 2980 "sleep 2 && uwsm app -- keepassxc" 2981 2982 "uwsm app -- wl-paste --type text --watch cliphist store" 2983 "uwsm app -- wl-paste --type image --watch cliphist store" 2984 2985 "setfacl --modify user:jellyfin:--x ~ & adb start-server &" 2986 2987 "systemctl --user start warp-taskbar" 2988 2989 "rm -rf ~/.local/share/applications/waydroid.*" 2990 ]; 2991 2992 bind = [ 2993 "SUPER, L, exec, hyprlock --immediate" 2994 "SUPER CTRL, L, exec, uwsm stop" 2995 "SUPER CTRL, P, exec, systemctl poweroff" 2996 "SUPER CTRL, R, exec, systemctl reboot" 2997 2998 "SUPER, 1, workspace, 1" 2999 "SUPER, 2, workspace, 2" 3000 "SUPER, 3, workspace, 3" 3001 "SUPER, 4, workspace, 4" 3002 "SUPER, 5, workspace, 5" 3003 "SUPER, 6, workspace, 6" 3004 "SUPER, 7, workspace, 7" 3005 "SUPER, 8, workspace, 8" 3006 "SUPER, 9, workspace, 9" 3007 "SUPER, 0, workspace, 10" 3008 "SUPER, mouse_down, workspace, e+1" 3009 "SUPER, mouse_up, workspace, e-1" 3010 "SUPER, S, togglespecialworkspace, magic" 3011 3012 "SUPER, left, movefocus, l" 3013 "SUPER, right, movefocus, r" 3014 "SUPER, up, movefocus, u" 3015 "SUPER, down, movefocus, d" 3016 3017 "SUPER SHIFT, T, togglesplit," 3018 "SUPER SHIFT, F, togglefloating," 3019 ", F11, fullscreen, 0" 3020 "SUPER, Q, killactive," 3021 3022 "SUPER SHIFT, 1, movetoworkspace, 1" 3023 "SUPER SHIFT, 2, movetoworkspace, 2" 3024 "SUPER SHIFT, 3, movetoworkspace, 3" 3025 "SUPER SHIFT, 4, movetoworkspace, 4" 3026 "SUPER SHIFT, 5, movetoworkspace, 5" 3027 "SUPER SHIFT, 6, movetoworkspace, 6" 3028 "SUPER SHIFT, 7, movetoworkspace, 7" 3029 "SUPER SHIFT, 8, movetoworkspace, 8" 3030 "SUPER SHIFT, 9, movetoworkspace, 9" 3031 "SUPER SHIFT, 0, movetoworkspace, 10" 3032 "SUPER SHIFT, S, movetoworkspace, special:magic" 3033 3034 "SUPER SHIFT ALT, 1, movetoworkspacesilent, 1" 3035 "SUPER SHIFT ALT, 2, movetoworkspacesilent, 2" 3036 "SUPER SHIFT ALT, 3, movetoworkspacesilent, 3" 3037 "SUPER SHIFT ALT, 4, movetoworkspacesilent, 4" 3038 "SUPER SHIFT ALT, 5, movetoworkspacesilent, 5" 3039 "SUPER SHIFT ALT, 6, movetoworkspacesilent, 6" 3040 "SUPER SHIFT ALT, 7, movetoworkspacesilent, 7" 3041 "SUPER SHIFT ALT, 8, movetoworkspacesilent, 8" 3042 "SUPER SHIFT ALT, 9, movetoworkspacesilent, 9" 3043 "SUPER SHIFT ALT, 0, movetoworkspacesilent, 10" 3044 "SUPER SHIFT ALT, S, movetoworkspacesilent, special:magic" 3045 3046 "SUPER, C, exec, cliphist list | rofi -dmenu | cliphist decode | wl-copy" 3047 3048 ", PRINT, exec, filename=\"$(xdg-user-dir DOWNLOAD)/Screenshot_$(date +'%Y-%B-%d_%I-%M-%S_%p').png\"; grim -g \"$(slurp -d)\" -t png -l 9 \"$filename\" && wl-copy < \"$filename\"" 3049 3050 "SUPER, A, exec, rofi -show drun -disable-history" 3051 "SUPER, R, exec, rofi -show run -disable-history" 3052 3053 "SUPER, T, exec, blackbox" 3054 "SUPER ALT, T, exec, blackbox sh -c \"bash\"" 3055 3056 ", XF86Explorer, exec, nautilus" 3057 "SUPER, F, exec, nautilus" 3058 3059 "SUPER, U, exec, missioncenter" 3060 3061 "SUPER, W, exec, librewolf" 3062 "SUPER ALT, W, exec, librewolf --private-window" 3063 3064 ", XF86Mail, exec, thunderbird" 3065 "SUPER, M, exec, thunderbird" 3066 3067 "SUPER, E, exec, zeditor" 3068 "SUPER, D, exec, dbeaver" 3069 3070 "SUPER, V, exec, vlc" 3071 ]; 3072 3073 bindm = [ 3074 "SUPER, mouse:272, movewindow" 3075 "SUPER, mouse:273, resizewindow" 3076 ]; 3077 3078 bindl = [ 3079 ", XF86AudioPlay, exec, playerctl play-pause" 3080 ", XF86AudioPause, exec, playerctl play-pause" 3081 ", XF86AudioStop, exec, playerctl stop" 3082 3083 ", XF86AudioPrev, exec, playerctl previous" 3084 ", XF86AudioNext, exec, playerctl next" 3085 ]; 3086 3087 bindel = [ 3088 ", XF86MonBrightnessUp, exec, brightnessctl s 1%+" 3089 ", XF86MonBrightnessDown, exec, brightnessctl s 1%-" 3090 3091 ", XF86AudioRaiseVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 1%+" 3092 ", XF86AudioLowerVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 1%-" 3093 ", XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle" 3094 ", XF86AudioMicMute, exec, wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle" 3095 ]; 3096 3097 general = { 3098 allow_tearing = false; 3099 3100 gaps_workspaces = 0; 3101 3102 layout = "dwindle"; 3103 3104 gaps_in = 2; 3105 gaps_out = 4; 3106 3107 no_border_on_floating = false; 3108 3109 border_size = 1; 3110 "col.active_border" = "rgba(33ccffee) rgba(00ff99ee) 45deg"; # TODO 3111 "col.inactive_border" = "rgba(595959aa)"; # TODO 3112 3113 no_focus_fallback = false; 3114 3115 resize_on_border = true; 3116 hover_icon_on_border = true; 3117 3118 snap = { 3119 enabled = true; 3120 border_overlap = false; 3121 }; 3122 }; 3123 3124 ecosystem = { 3125 no_update_news = false; 3126 }; 3127 3128 misc = { 3129 disable_autoreload = false; 3130 3131 allow_session_lock_restore = true; 3132 3133 key_press_enables_dpms = true; 3134 mouse_move_enables_dpms = true; 3135 3136 vfr = true; 3137 vrr = 1; 3138 3139 render_ahead_of_time = false; 3140 3141 mouse_move_focuses_monitor = true; 3142 3143 disable_hyprland_logo = false; 3144 force_default_wallpaper = 1; 3145 disable_splash_rendering = true; 3146 3147 font_family = font_name.sans_serif; 3148 3149 close_special_on_empty = true; 3150 3151 animate_mouse_windowdragging = false; 3152 animate_manual_resizes = false; 3153 3154 exit_window_retains_fullscreen = false; 3155 3156 layers_hog_keyboard_focus = true; 3157 3158 focus_on_activate = false; 3159 3160 middle_click_paste = true; 3161 }; 3162 3163 dwindle = { 3164 pseudotile = false; 3165 3166 use_active_for_splits = true; 3167 force_split = 0; # Follows Mouse 3168 smart_split = false; 3169 preserve_split = true; 3170 3171 smart_resizing = true; 3172 }; 3173 3174 xwayland = { 3175 enabled = true; 3176 force_zero_scaling = true; 3177 use_nearest_neighbor = true; 3178 }; 3179 3180 windowrule = [ 3181 "suppressevent maximize, class:.*" 3182 "nofocus, class:^$, title:^$, xwayland:1, floating:1, fullscreen:0, pinned:0" 3183 ]; 3184 3185 input = { 3186 kb_layout = "us"; 3187 3188 numlock_by_default = true; 3189 3190 follow_mouse = 1; 3191 focus_on_close = 1; 3192 3193 left_handed = false; 3194 sensitivity = 1; # Mouse 3195 natural_scroll = false; 3196 3197 touchpad = { 3198 natural_scroll = true; 3199 3200 tap-to-click = true; 3201 tap-and-drag = true; 3202 drag_lock = true; 3203 3204 disable_while_typing = true; 3205 }; 3206 3207 touchdevice = { 3208 enabled = true; 3209 }; 3210 3211 tablet = { 3212 left_handed = false; 3213 }; 3214 }; 3215 3216 cursor = { 3217 no_hardware_cursors = false; 3218 3219 enable_hyprcursor = true; 3220 sync_gsettings_theme = true; 3221 3222 persistent_warps = true; 3223 3224 no_warps = false; 3225 3226 hide_on_key_press = false; 3227 hide_on_touch = true; 3228 }; 3229 3230 "plugin:dynamic-cursors" = { 3231 enabled = true; 3232 hyprcursor = { 3233 enabled = true; 3234 nearest = true; 3235 resolution = -1; 3236 }; 3237 3238 threshold = 1; 3239 mode = "rotate"; 3240 rotate = { 3241 length = cursor.size; 3242 }; 3243 3244 shake = { 3245 enabled = true; 3246 effects = false; 3247 nearest = true; 3248 ipc = true; 3249 }; 3250 }; 3251 3252 binds = { 3253 disable_keybind_grabbing = true; 3254 pass_mouse_when_bound = false; 3255 3256 window_direction_monitor_fallback = true; 3257 }; 3258 3259 gestures = { 3260 # Touchpad 3261 workspace_swipe = true; 3262 workspace_swipe_invert = true; 3263 3264 # Touchscreen 3265 workspace_swipe_touch = false; 3266 workspace_swipe_touch_invert = false; 3267 3268 workspace_swipe_create_new = true; 3269 workspace_swipe_forever = true; 3270 }; 3271 3272 decoration = { 3273 dim_special = 0.25; 3274 3275 rounding = 8; 3276 3277 active_opacity = 1.0; 3278 fullscreen_opacity = 1.0; 3279 inactive_opacity = 1.0; 3280 3281 dim_inactive = false; 3282 dim_strength = 0.0; 3283 3284 blur.enabled = false; 3285 shadow.enabled = false; 3286 }; 3287 3288 animations = { 3289 enabled = true; 3290 first_launch_animation = true; 3291 3292 bezier = [ 3293 "easeOutQuint, 0.23, 1, 0.32, 1" 3294 "easeInOutCubic, 0.65, 0.05, 0.36, 1" 3295 "linear, 0, 0, 1, 1" 3296 "almostLinear, 0.5, 0.5, 0.75, 1.0" 3297 "quick, 0.15, 0, 0.1, 1" 3298 ]; 3299 3300 animation = [ 3301 "global, 1, 10, default" 3302 "border, 1, 5.39, easeOutQuint" 3303 "windows, 1, 4.79, easeOutQuint" 3304 "windowsIn, 1, 4.1, easeOutQuint, popin 87%" 3305 "windowsOut, 1, 1.49, linear, popin 87%" 3306 "fadeIn, 1, 1.73, almostLinear" 3307 "fadeOut, 1, 1.46, almostLinear" 3308 "fade, 1, 3.03, quick" 3309 "layers, 1, 3.81, easeOutQuint" 3310 "layersIn, 1, 4, easeOutQuint, fade" 3311 "layersOut, 1, 1.5, linear, fade" 3312 "fadeLayersIn, 1, 1.79, almostLinear" 3313 "fadeLayersOut, 1, 1.39, almostLinear" 3314 "workspaces, 1, 1.94, almostLinear, fade" 3315 "workspacesIn, 1, 1.21, almostLinear, fade" 3316 "workspacesOut, 1, 1.94, almostLinear, fade" 3317 ]; 3318 # Name, On/Off, Speed, Curve [, Style] 3319 }; 3320 }; 3321 3322 extraConfig = ''''; 3323 }; 3324 3325 xdg = { 3326 mime.enable = true; 3327 3328 mimeApps = { 3329 enable = true; 3330 3331 associations = { 3332 added = config.xdg.mime.addedAssociations; 3333 3334 removed = config.xdg.mime.removedAssociations; 3335 }; 3336 3337 defaultApplications = config.xdg.mime.defaultApplications; 3338 }; 3339 3340 configFile = { 3341 "mimeapps.list".force = true; 3342 }; 3343 }; 3344 3345 gtk = { 3346 enable = true; 3347 3348 theme = { 3349 name = "Dracula"; 3350 package = pkgs.dracula-theme; 3351 }; 3352 3353 iconTheme = { 3354 name = "Papirus-Dark"; 3355 package = ( 3356 pkgs.papirus-icon-theme.override { 3357 color = "black"; 3358 } 3359 ); 3360 }; 3361 3362 cursorTheme = { 3363 name = cursor.theme.name; 3364 package = cursor.theme.package; 3365 size = cursor.size; 3366 }; 3367 3368 font = { 3369 name = font_name.sans_serif; 3370 package = pkgs.nerd-fonts.noto; 3371 size = 11; 3372 }; 3373 }; 3374 3375 qt = { 3376 enable = true; 3377 3378 platformTheme.name = "gtk2"; 3379 3380 style = { 3381 name = "gtk2"; 3382 # package = pkgs. ; 3383 }; 3384 }; 3385 3386 services = { 3387 mako = { 3388 enable = true; 3389 package = pkgs.mako; 3390 3391 actions = true; 3392 3393 anchor = "top-right"; 3394 layer = "top"; 3395 margin = "10"; 3396 sort = "-time"; 3397 maxVisible = 5; # -1 = Disabled 3398 ignoreTimeout = false; 3399 defaultTimeout = 0; # 0 = Disabled 3400 3401 borderRadius = 8; 3402 borderSize = 1; 3403 borderColor = dracula_theme.hex.comment; 3404 backgroundColor = dracula_theme.hex.background; 3405 padding = "4"; 3406 icons = true; 3407 maxIconSize = 16; 3408 markup = true; 3409 font = "${font_name.sans_serif} 11"; 3410 textColor = dracula_theme.hex.foreground; 3411 format = "<b>%s</b>\\n%b"; 3412 3413 extraConfig = '' 3414 history=1 3415 3416 on-notify=none 3417 on-button-left=dismiss 3418 on-button-right=exec makoctl menu rofi -dmenu -p 'Choose Action' 3419 on-button-middle=none 3420 on-touch=exec makoctl menu rofi -dmenu -p 'Choose Action' 3421 3422 [urgency=low] 3423 border-color=${dracula_theme.hex.current_line} 3424 3425 [urgency=normal] 3426 border-color=${dracula_theme.hex.comment} 3427 3428 [urgency=high] 3429 border-color=${dracula_theme.hex.red} 3430 ''; 3431 }; 3432 3433 hyprpaper = { 3434 enable = true; 3435 package = pkgs.hyprpaper; 3436 3437 settings = { 3438 ipc = "on"; 3439 3440 splash = false; 3441 3442 preload = [ 3443 wallpaper 3444 ]; 3445 3446 wallpaper = [ 3447 ", ${wallpaper}" 3448 ]; 3449 }; 3450 }; 3451 }; 3452 3453 programs = { 3454 hyprlock = { 3455 enable = true; 3456 package = pkgs.hyprlock; 3457 3458 sourceFirst = true; 3459 3460 settings = { 3461 general = { 3462 disable_loading_bar = true; 3463 immediate_render = true; 3464 fractional_scaling = 2; # 2 = Automatic 3465 3466 no_fade_in = false; 3467 no_fade_out = false; 3468 3469 hide_cursor = false; 3470 text_trim = false; 3471 3472 grace = 0; 3473 ignore_empty_input = true; 3474 }; 3475 3476 auth = { 3477 pam = { 3478 enabled = true; 3479 }; 3480 }; 3481 3482 background = [ 3483 { 3484 monitor = ""; 3485 path = wallpaper; 3486 } 3487 ]; 3488 3489 label = [ 3490 { 3491 monitor = ""; 3492 halign = "center"; 3493 valign = "top"; 3494 position = "0, -128"; 3495 3496 text_align = "center"; 3497 font_family = font_name.sans_serif; 3498 color = dracula_theme.rgba.foreground; 3499 font_size = 64; 3500 text = "$TIME12"; 3501 } 3502 3503 { 3504 monitor = ""; 3505 halign = "center"; 3506 valign = "center"; 3507 position = "0, 0"; 3508 3509 text_align = "center"; 3510 font_family = font_name.sans_serif; 3511 color = dracula_theme.rgba.foreground; 3512 font_size = 16; 3513 text = "$DESC"; # Full Name 3514 } 3515 ]; 3516 3517 input-field = [ 3518 { 3519 monitor = ""; 3520 halign = "center"; 3521 valign = "bottom"; 3522 position = "0, 128"; 3523 3524 size = "256, 48"; 3525 rounding = 16; 3526 outline_thickness = 1; 3527 # outer_color = ""; # TODO 3528 shadow_passes = 0; 3529 hide_input = false; 3530 inner_color = dracula_theme.rgba.current_line; 3531 font_family = font_name.sans_serif; 3532 font_color = dracula_theme.rgba.foreground; 3533 placeholder_text = "Password"; 3534 dots_center = true; 3535 dots_rounding = -1; 3536 3537 fade_on_empty = true; 3538 3539 invert_numlock = false; 3540 # capslock_color = ""; # TODO 3541 # numlock_color = ""; # TODO 3542 # bothlock_color = ""; # TODO 3543 3544 # check_color = ""; # TODO 3545 # fail_color = ""; # TODO 3546 fail_text = "<i>$FAIL <b>($ATTEMPTS)</b></i>"; 3547 fail_timeout = 2000; 3548 } 3549 ]; 3550 }; 3551 3552 extraConfig = ''''; 3553 }; 3554 3555 rofi = 3556 let 3557 rofi_theme = pkgs.writeTextFile { 3558 name = "Rofi_Theme.rasi"; 3559 text = '' 3560 * { 3561 margin: 0; 3562 background-color: transparent; 3563 padding: 0; 3564 spacing: 0; 3565 text-color: ${dracula_theme.hex.foreground}; 3566 } 3567 3568 window { 3569 width: 768px; 3570 border: 1px; 3571 border-radius: 16px; 3572 border-color: ${dracula_theme.hex.purple}; 3573 background-color: ${dracula_theme.hex.background}; 3574 } 3575 3576 mainbox { 3577 padding: 16px; 3578 } 3579 3580 inputbar { 3581 border: 1px; 3582 border-radius: 8px; 3583 border-color: ${dracula_theme.hex.comment}; 3584 background-color: ${dracula_theme.hex.current_line}; 3585 padding: 8px; 3586 spacing: 8px; 3587 children: [ "prompt", "entry" ]; 3588 } 3589 3590 prompt { 3591 text-color: ${dracula_theme.hex.foreground}; 3592 } 3593 3594 entry { 3595 placeholder-color: ${dracula_theme.hex.comment}; 3596 placeholder: "Search"; 3597 } 3598 3599 listview { 3600 margin: 16px 0px 0px 0px; 3601 fixed-height: false; 3602 lines: 8; 3603 columns: 2; 3604 } 3605 3606 element { 3607 border-radius: 8px; 3608 padding: 8px; 3609 spacing: 8px; 3610 children: [ "element-icon", "element-text" ]; 3611 } 3612 3613 element-icon { 3614 vertical-align: 0.5; 3615 size: 1em; 3616 } 3617 3618 element-text { 3619 text-color: inherit; 3620 } 3621 3622 element.selected { 3623 background-color: ${dracula_theme.hex.current_line}; 3624 } 3625 ''; 3626 }; 3627 in 3628 { 3629 enable = true; 3630 package = pkgs.rofi-wayland; 3631 # plugins = with pkgs; [ 3632 3633 # ]; 3634 3635 cycle = false; 3636 terminal = "${pkgs.blackbox-terminal}/bin/blackbox"; 3637 3638 location = "center"; 3639 3640 font = "${font_name.sans_serif} 11"; 3641 3642 extraConfig = { 3643 show-icons = true; 3644 display-drun = "Applications"; 3645 3646 disable-history = false; 3647 }; 3648 3649 theme = "${rofi_theme}"; 3650 }; 3651 3652 waybar = { 3653 enable = true; 3654 package = pkgs.waybar; 3655 3656 systemd = { 3657 enable = true; 3658 # target = ; 3659 }; 3660 3661 settings = { 3662 top_bar = { 3663 start_hidden = false; 3664 reload_style_on_change = true; 3665 position = "top"; 3666 exclusive = true; 3667 layer = "top"; 3668 passthrough = false; 3669 fixed-center = true; 3670 spacing = 4; 3671 3672 modules-left = [ 3673 "power-profiles-daemon" 3674 "idle_inhibitor" 3675 "backlight" 3676 "pulseaudio" 3677 "bluetooth" 3678 "network" 3679 ]; 3680 3681 modules-center = [ 3682 "clock" 3683 ]; 3684 3685 modules-right = [ 3686 "privacy" 3687 "mpris" 3688 "keyboard-state" 3689 "systemd-failed-units" 3690 "disk" 3691 "memory" 3692 "cpu" 3693 "battery" 3694 ]; 3695 3696 power-profiles-daemon = { 3697 format = "{icon}"; 3698 format-icons = { 3699 performance = ""; 3700 balanced = ""; 3701 power-saver = ""; 3702 }; 3703 3704 tooltip = true; 3705 tooltip-format = "Driver: {driver}\nProfile: {profile}"; 3706 }; 3707 3708 idle_inhibitor = { 3709 start-activated = false; 3710 3711 format = "{icon}"; 3712 format-icons = { 3713 activated = ""; 3714 deactivated = ""; 3715 }; 3716 3717 tooltip = true; 3718 tooltip-format-activated = "{status}"; 3719 tooltip-format-deactivated = "{status}"; 3720 }; 3721 3722 backlight = { 3723 device = "intel_backlight"; 3724 interval = 1; 3725 3726 format = "{percent}% {icon}"; 3727 format-icons = [ 3728 "" 3729 "" 3730 "" 3731 "" 3732 "" 3733 "" 3734 "" 3735 "" 3736 "" 3737 ]; 3738 3739 tooltip = true; 3740 tooltip-format = "{percent}% {icon}"; 3741 3742 on-scroll-up = "brightnessctl s +1%"; 3743 on-scroll-down = "brightnessctl s 1%-"; 3744 reverse-scrolling = false; 3745 reverse-mouse-scrolling = false; 3746 scroll-step = 1.0; 3747 }; 3748 3749 pulseaudio = { 3750 format = "{volume}% {icon} {format_source}"; 3751 format-muted = "{icon} {format_source}"; 3752 3753 format-bluetooth = "{volume}% {icon} {format_source}"; 3754 format-bluetooth-muted = "{icon} {format_source}"; 3755 3756 format-source = " {volume}% "; 3757 format-source-muted = ""; 3758 3759 format-icons = { 3760 default = [ 3761 "" 3762 "" 3763 "" 3764 ]; 3765 default-muted = ""; 3766 3767 speaker = ""; 3768 speaker-muted = ""; 3769 3770 headphone = ""; 3771 headphone-muted = ""; 3772 3773 headset = ""; 3774 headset-muted = ""; 3775 3776 hands-free = ""; 3777 hands-free-muted = ""; 3778 3779 phone = ""; 3780 phone-muted = ""; 3781 3782 portable = ""; 3783 portable-muted = ""; 3784 3785 hdmi = ""; 3786 hdmi-muted = ""; 3787 3788 hifi = ""; 3789 hifi-muted = ""; 3790 3791 car = ""; 3792 car-muted = ""; 3793 }; 3794 3795 tooltip = true; 3796 tooltip-format = "{desc}"; 3797 3798 scroll-step = 1.0; 3799 reverse-scrolling = false; 3800 reverse-mouse-scrolling = false; 3801 max-volume = 100; 3802 on-scroll-up = "wpctl set-volume @DEFAULT_AUDIO_SINK@ 1%+"; 3803 on-scroll-down = "wpctl set-volume @DEFAULT_AUDIO_SINK@ 1%-"; 3804 3805 on-click = "pwvucontrol"; 3806 }; 3807 3808 bluetooth = { 3809 format = "{status} {icon}"; 3810 format-disabled = "Disabled {icon}"; 3811 format-off = "Off {icon}"; 3812 format-on = "On {icon}"; 3813 format-connected = "{device_alias} {icon}"; 3814 format-connected-battery = "{device_alias} ({device_battery_percentage}%)"; 3815 format-icons = { 3816 no-controller = ""; 3817 disabled = ""; 3818 off = ""; 3819 on = ""; 3820 connected = ""; 3821 }; 3822 3823 tooltip = true; 3824 tooltip-format = "Status: {status}\nController Address: {controller_address} ({controller_address_type})\nController Alias: {controller_alias}"; 3825 tooltip-format-disabled = "Status: Disabled"; 3826 tooltip-format-off = "Status: Off"; 3827 tooltip-format-on = "Status: On\nController Address: {controller_address} ({controller_address_type})\nController Alias: {controller_alias}"; 3828 tooltip-format-connected = "Status: Connected\nController Address: {controller_address} ({controller_address_type})\nController Alias: {controller_alias}\nConnected Devices ({num_connections}): {device_enumerate}"; 3829 tooltip-format-connected-battery = "Status: Connected\nController Address: {controller_address} ({controller_address_type})\nController Alias: {controller_alias}\nConnected Devices ({num_connections}): {device_enumerate}"; 3830 tooltip-format-enumerate-connected = "\n\tAddress: {device_address} ({device_address_type})\n\tAlias: {device_alias}"; 3831 tooltip-format-enumerate-connected-battery = "\n\tAddress: {device_address} ({device_address_type})\n\tAlias: {device_alias}\n\tBattery: {device_battery_percentage}%"; 3832 3833 on-click = "blueman-manager"; 3834 }; 3835 3836 network = { 3837 interval = 1; 3838 3839 format = "{bandwidthUpBytes} {bandwidthDownBytes}"; 3840 format-disconnected = "Disconnected "; 3841 format-linked = "No IP "; 3842 format-ethernet = "{bandwidthUpBytes} {bandwidthDownBytes}"; 3843 format-wifi = "{bandwidthUpBytes} {bandwidthDownBytes}"; 3844 3845 tooltip = true; 3846 tooltip-format = "Interface: {ifname}\nGateway: {gwaddr}\nSubnet Mask: {netmask}\nCIDR Notation: {cidr}\nIP Address: {ipaddr}\nUp Speed: {bandwidthUpBytes}\nDown Speed: {bandwidthDownBytes}\nTotal Speed: {bandwidthTotalBytes}"; 3847 tooltip-format-disconnected = "Disconnected"; 3848 tooltip-format-ethernet = "Interface: {ifname}\nGateway: {gwaddr}\nSubnet Mask: {netmask}\nCIDR Notation= {cidr}\nIP Address: {ipaddr}\nUp Speed: {bandwidthUpBytes}\nDown Speed: {bandwidthDownBytes}\nTotal Speed: {bandwidthTotalBytes}"; 3849 tooltip-format-wifi = "Interface: {ifname}\nESSID: {essid}\nFrequency: {frequency} GHz\nStrength: {signaldBm} dBm ({signalStrength}%)\nGateway: {gwaddr}\nSubnet Mask: {netmask}\nCIDR Notation: {cidr}\nIP Address: {ipaddr}\nUp Speed: {bandwidthUpBytes}\nDown Speed: {bandwidthDownBytes}\nTotal Speed: {bandwidthTotalBytes}"; 3850 3851 on-click = "nm-connection-editor"; 3852 }; 3853 3854 clock = { 3855 timezone = config.time.timeZone; 3856 locale = "en_US"; 3857 interval = 1; 3858 3859 format = "{:%I:%M:%S %p}"; 3860 format-alt = "{:%A, %B %d, %Y}"; 3861 3862 tooltip = true; 3863 tooltip-format = "<tt><small>{calendar}</small></tt>"; 3864 3865 calendar = { 3866 mode = "year"; 3867 mode-mon-col = 3; 3868 weeks-pos = "right"; 3869 3870 format = { 3871 months = "<b>{}</b>"; 3872 days = "{}"; 3873 weekdays = "<b>{}</b>"; 3874 weeks = "<i>{:%U}</i>"; 3875 today = "<u>{}</u>"; 3876 }; 3877 }; 3878 }; 3879 3880 mpris = { 3881 interval = 1; 3882 3883 format = "{player_icon}"; 3884 3885 tooltip-format = "Title: {title}\nArtist: {artist}\nAlbum: {album}\n{status}: {position}/{length}\nPlayer: {player}"; 3886 3887 player-icons = { 3888 default = ""; 3889 3890 vlc = ""; 3891 chromium = ""; 3892 }; 3893 }; 3894 3895 privacy = { 3896 icon-size = 14; 3897 icon-spacing = 8; 3898 transition-duration = 200; 3899 3900 modules = [ 3901 { 3902 type = "screenshare"; 3903 tooltip = true; 3904 tooltip-icon-size = 16; 3905 } 3906 { 3907 type = "audio-in"; 3908 tooltip = true; 3909 tooltip-icon-size = 16; 3910 } 3911 ]; 3912 }; 3913 3914 keyboard-state = { 3915 capslock = true; 3916 numlock = true; 3917 3918 format = { 3919 capslock = ""; 3920 numlock = ""; 3921 }; 3922 }; 3923 3924 systemd-failed-units = { 3925 system = true; 3926 user = true; 3927 3928 hide-on-ok = false; 3929 3930 format = "{nr_failed_system}, {nr_failed_user} "; 3931 format-ok = ""; 3932 }; 3933 3934 disk = { 3935 path = "/"; 3936 unit = "GB"; 3937 interval = 1; 3938 3939 format = "{percentage_used}% "; 3940 3941 tooltip = true; 3942 tooltip-format = "Total: {specific_total} GB\nUsed: {specific_used} GB ({percentage_used}%)\nFree: {specific_free} GB ({percentage_free}%)"; 3943 3944 on-click = "missioncenter"; 3945 }; 3946 3947 memory = { 3948 interval = 1; 3949 3950 format = "{percentage}% "; 3951 3952 tooltip = true; 3953 tooltip-format = "Used RAM: {used} GiB ({percentage}%)\nUsed Swap: {swapUsed} GiB ({swapPercentage}%)\nAvailable RAM: {avail} GiB\nAvailable Swap: {swapAvail} GiB"; 3954 3955 on-click = "missioncenter"; 3956 }; 3957 3958 cpu = { 3959 interval = 1; 3960 3961 format = "{usage}% "; 3962 3963 tooltip = true; 3964 3965 on-click = "missioncenter"; 3966 }; 3967 3968 battery = { 3969 bat = "BAT0"; 3970 adapter = "AC0"; 3971 design-capacity = false; 3972 weighted-average = true; 3973 interval = 1; 3974 3975 full-at = 100; 3976 states = { 3977 warning = 25; 3978 critical = 10; 3979 }; 3980 3981 format = "{capacity}% {icon}"; 3982 format-plugged = "{capacity}% "; 3983 format-charging = "{capacity}% "; 3984 format-full = "{capacity}% {icon}"; 3985 format-alt = "{time} {icon}"; 3986 format-time = "{H} h {m} min"; 3987 format-icons = [ 3988 "" 3989 "" 3990 "" 3991 "" 3992 "" 3993 ]; 3994 3995 tooltip = true; 3996 tooltip-format = "Capacity: {capacity}%\nPower: {power} W\n{timeTo}\nCycles: {cycles}\nHealth: {health}%"; 3997 }; 3998 }; 3999 4000 bottom_bar = { 4001 start_hidden = false; 4002 reload_style_on_change = true; 4003 position = "bottom"; 4004 exclusive = true; 4005 layer = "top"; 4006 passthrough = false; 4007 fixed-center = true; 4008 spacing = 0; 4009 4010 modules-left = [ 4011 "hyprland/workspaces" 4012 "wlr/taskbar" 4013 ]; 4014 4015 modules-center = [ 4016 "hyprland/window" 4017 ]; 4018 4019 modules-right = [ 4020 "tray" 4021 ]; 4022 4023 "hyprland/workspaces" = { 4024 all-outputs = false; 4025 show-special = true; 4026 special-visible-only = false; 4027 active-only = false; 4028 format = "{name}"; 4029 move-to-monitor = false; 4030 }; 4031 4032 "wlr/taskbar" = { 4033 all-outputs = false; 4034 active-first = false; 4035 sort-by-app-id = false; 4036 format = "{icon}"; 4037 icon-theme = "Dracula"; 4038 icon-size = 14; 4039 markup = true; 4040 4041 tooltip = true; 4042 tooltip-format = "Title: {title}\nName: {name}\nID: {app_id}\nState: {state}"; 4043 4044 on-click = "activate"; 4045 }; 4046 4047 "hyprland/window" = { 4048 separate-outputs = true; 4049 icon = false; 4050 4051 format = "{title}"; 4052 }; 4053 4054 tray = { 4055 show-passive-items = true; 4056 reverse-direction = false; 4057 icon-size = 14; 4058 spacing = 4; 4059 }; 4060 }; 4061 }; 4062 4063 style = '' 4064 * { 4065 font-family: ${font_name.sans_serif}; 4066 font-size: 14px; 4067 } 4068 4069 window#waybar { 4070 border: none; 4071 background-color: transparent; 4072 } 4073 4074 .modules-right > widget:last-child > #workspaces { 4075 margin-right: 0; 4076 } 4077 4078 .modules-left > widget:first-child > #workspaces { 4079 margin-left: 0; 4080 } 4081 4082 #power-profiles-daemon, 4083 #idle_inhibitor, 4084 #backlight, 4085 #pulseaudio, 4086 #bluetooth, 4087 #network, 4088 #keyboard-state, 4089 #clock, 4090 #mpris, 4091 #privacy, 4092 #systemd-failed-units, 4093 #disk, 4094 #memory, 4095 #cpu, 4096 #battery, 4097 #window { 4098 border-radius: 16px; 4099 background-color: ${dracula_theme.hex.background}; 4100 padding: 2px 8px; 4101 color: ${dracula_theme.hex.foreground}; 4102 } 4103 4104 #power-profiles-daemon.power-saver { 4105 color: ${dracula_theme.hex.green}; 4106 } 4107 4108 #power-profiles-daemon.balanced { 4109 color: ${dracula_theme.hex.cyan}; 4110 } 4111 4112 #power-profiles-daemon.performance { 4113 color: ${dracula_theme.hex.foreground}; 4114 } 4115 4116 #idle_inhibitor.deactivated { 4117 color: ${dracula_theme.hex.foreground}; 4118 } 4119 4120 #idle_inhibitor.activated { 4121 color: ${dracula_theme.hex.cyan}; 4122 } 4123 4124 #pulseaudio.muted, 4125 #pulseaudio.source-muted { 4126 color: ${dracula_theme.hex.red}; 4127 } 4128 4129 #pulseaudio.bluetooth { 4130 color: ${dracula_theme.hex.foreground}; 4131 } 4132 4133 #bluetooth.no-controller, 4134 #bluetooth.disabled, 4135 #bluetooth.off { 4136 color: ${dracula_theme.hex.red}; 4137 } 4138 4139 #bluetooth.on, 4140 #bluetooth.discoverable, 4141 #bluetooth.pairable { 4142 color: ${dracula_theme.hex.foreground}; 4143 } 4144 4145 #bluetooth.discovering, 4146 #bluetooth.connected { 4147 color: ${dracula_theme.hex.cyan}; 4148 } 4149 4150 #network.disabled, 4151 #network.disconnected, 4152 #network.linked { 4153 color: ${dracula_theme.hex.red}; 4154 } 4155 4156 #network.etherenet, 4157 #network.wifi { 4158 color: ${dracula_theme.hex.foreground}; 4159 } 4160 4161 #mpris.playing { 4162 color: ${dracula_theme.hex.cyan}; 4163 } 4164 4165 #privacy-item.audio-in, 4166 #privacy-item.screenshare { 4167 color: ${dracula_theme.hex.cyan}; 4168 } 4169 4170 #keyboard-state label { 4171 margin: 0px 4px; 4172 } 4173 4174 #keyboard-state label.locked { 4175 color: ${dracula_theme.hex.cyan}; 4176 } 4177 4178 #systemd-failed-units.ok { 4179 color: ${dracula_theme.hex.foreground}; 4180 } 4181 4182 #systemd-failed-units.degraded { 4183 color: ${dracula_theme.hex.red}; 4184 } 4185 4186 #battery.plugged, 4187 #battery.full { 4188 color: ${dracula_theme.hex.foreground}; 4189 } 4190 4191 #battery.charging { 4192 color: ${dracula_theme.hex.cyan}; 4193 } 4194 4195 #battery.warning { 4196 color: ${dracula_theme.hex.yellow}; 4197 } 4198 4199 #battery.critical { 4200 color: ${dracula_theme.hex.red}; 4201 } 4202 4203 #workspaces, 4204 #taskbar, 4205 #tray { 4206 background-color: transparent; 4207 } 4208 4209 button { 4210 margin: 0px 2px; 4211 border-radius: 16px; 4212 background-color: ${dracula_theme.hex.background}; 4213 padding: 0px; 4214 color: ${dracula_theme.hex.foreground}; 4215 } 4216 4217 button * { 4218 padding: 0px 4px; 4219 } 4220 4221 button.active { 4222 background-color: ${dracula_theme.hex.current_line}; 4223 } 4224 4225 #window label { 4226 padding: 0px 4px; 4227 font-size: 11px; 4228 } 4229 4230 #tray > widget { 4231 border-radius: 16px; 4232 background-color: ${dracula_theme.hex.background}; 4233 color: ${dracula_theme.hex.foreground}; 4234 } 4235 4236 #tray image { 4237 padding: 0px 8px; 4238 } 4239 4240 #tray > .passive { 4241 -gtk-icon-effect: dim; 4242 } 4243 4244 #tray > .active { 4245 background-color: ${dracula_theme.hex.current_line}; 4246 } 4247 4248 #tray > .needs-attention { 4249 background-color: ${dracula_theme.hex.comment}; 4250 -gtk-icon-effect: highlight; 4251 } 4252 4253 #tray > widget:hover { 4254 background-color: ${dracula_theme.hex.current_line}; 4255 } 4256 ''; 4257 }; 4258 4259 dircolors = { 4260 enable = true; 4261 package = pkgs.coreutils; 4262 4263 enableBashIntegration = true; 4264 enableFishIntegration = true; 4265 4266 settings = { }; 4267 4268 extraConfig = ''''; 4269 }; 4270 4271 nix-your-shell = { 4272 enable = true; 4273 package = pkgs.nix-your-shell; 4274 4275 enableFishIntegration = true; 4276 }; 4277 4278 librewolf = { 4279 enable = true; 4280 languagePacks = [ 4281 4282 ]; 4283 4284 settings = { 4285 "privacy.resistFingerprinting" = false; 4286 }; 4287 }; 4288 4289 zed-editor = { 4290 enable = true; 4291 package = pkgs.zed-editor; 4292 installRemoteServer = false; 4293 4294 # extraPackages = with pkgs; [ 4295 4296 # ]; 4297 4298 extensions = [ 4299 "basher" 4300 "csv" 4301 "dart" 4302 "docker-compose" 4303 "dockerfile" 4304 "dracula" 4305 "env" 4306 "fish" 4307 "flutter-snippets" 4308 "http" 4309 "hyprlang" 4310 "ini" 4311 "latex" 4312 "live-server" 4313 "log" 4314 "make" 4315 "mermaid" 4316 "nix" 4317 "php" 4318 "postgres-language-server" 4319 "pylsp" 4320 "python-refactoring" 4321 "python-requirements" 4322 "rainbow-csv" 4323 "rpmspec" 4324 "scheme" 4325 "sql" 4326 "ssh-config" 4327 "ultralytics-snippets" 4328 "unicode" 4329 "xml" 4330 ]; 4331 4332 userSettings = { 4333 features = { 4334 copilot = true; 4335 }; 4336 4337 load_direnv = "shell_hook"; 4338 4339 enable_language_server = true; 4340 4341 languages = { 4342 Nix = { 4343 language_servers = [ 4344 "nixd" 4345 ]; 4346 4347 formatter = { 4348 external = { 4349 command = "nixfmt"; 4350 }; 4351 }; 4352 }; 4353 }; 4354 4355 lsp = { 4356 nixd = { 4357 initialization_options = { 4358 formatting = { 4359 command = [ 4360 "nixfmt" 4361 ]; 4362 }; 4363 }; 4364 }; 4365 }; 4366 4367 diagnostics = { 4368 include_warnings = true; 4369 4370 inline = { 4371 enabled = true; 4372 }; 4373 }; 4374 4375 git = { }; 4376 4377 telemetry = { 4378 diagnostics = false; 4379 metrics = false; 4380 }; 4381 4382 theme = { 4383 mode = "dark"; 4384 dark = "One Dark"; 4385 light = "One Light"; 4386 }; 4387 4388 icon_theme = { 4389 mode = "dark"; 4390 dark = "Zed (Default)"; 4391 light = "Zed (Default)"; 4392 }; 4393 4394 ui_font_family = font_name.sans_serif; 4395 4396 project_panel = { 4397 auto_fold_dirs = false; 4398 auto_reveal_entries = true; 4399 button = true; 4400 dock = "left"; 4401 file_icons = true; 4402 folder_icons = true; 4403 git_status = true; 4404 show_diagnostics = "all"; 4405 4406 indent_guides = { 4407 show = "always"; 4408 }; 4409 4410 scrollbar = { 4411 show = "always"; 4412 }; 4413 }; 4414 4415 outline_panel = { 4416 auto_fold_dirs = false; 4417 auto_reveal_entries = true; 4418 button = true; 4419 dock = "left"; 4420 file_icons = true; 4421 folder_icons = true; 4422 git_status = true; 4423 4424 indent_guides = { 4425 show = "always"; 4426 }; 4427 4428 scrollbar = { 4429 show = "always"; 4430 }; 4431 }; 4432 4433 tab_bar = { 4434 show = true; 4435 show_nav_history_buttons = true; 4436 show_tab_bar_buttons = true; 4437 }; 4438 4439 preview_tabs = { 4440 enabled = true; 4441 enable_preview_from_code_navigation = true; 4442 enable_preview_from_file_finder = true; 4443 }; 4444 4445 tabs = { 4446 activate_on_close = "history"; 4447 close_position = "right"; 4448 file_icons = true; 4449 git_status = true; 4450 show_close_button = "hover"; 4451 show_diagnostic = "all"; 4452 }; 4453 4454 toolbar = { 4455 breadcrumbs = true; 4456 quick_actions = true; 4457 selections_menu = true; 4458 }; 4459 4460 scrollbar = { 4461 cursors = true; 4462 diagnostics = "all"; 4463 git_diff = true; 4464 search_results = true; 4465 selected_symbol = true; 4466 selected_text = true; 4467 show = "always"; 4468 4469 axes = { 4470 horizontal = true; 4471 vertical = true; 4472 }; 4473 }; 4474 4475 indent_guides = { 4476 enabled = true; 4477 coloring = "indent_aware"; 4478 # background_coloring = "indent_aware"; 4479 }; 4480 4481 assistant = { 4482 button = true; 4483 dock = "right"; 4484 enabled = true; 4485 }; 4486 4487 terminal = { 4488 blinking = "terminal_controlled"; 4489 button = true; 4490 copy_on_select = false; 4491 dock = "bottom"; 4492 font_family = font_name.mono; 4493 line_height = "standard"; 4494 shell = "system"; 4495 working_directory = "current_project_directory"; 4496 4497 toolbar = { 4498 breadcrumbs = true; 4499 }; 4500 4501 scrollbar = { 4502 show = "always"; 4503 }; 4504 4505 detect_venv = { 4506 on = { 4507 directories = [ 4508 ".env" 4509 ".venv" 4510 "env" 4511 "venv" 4512 ]; 4513 activate_script = "default"; 4514 }; 4515 }; 4516 }; 4517 4518 show_call_status_icon = true; 4519 4520 buffer_font_family = font_name.mono; 4521 soft_wrap = "editor_width"; 4522 show_whitespaces = "all"; 4523 cursor_blink = true; 4524 cursor_shape = "bar"; 4525 4526 hover_popover_enabled = true; 4527 current_line_highlight = "all"; 4528 selection_highlight = true; 4529 4530 seed_search_query_from_cursor = "selection"; 4531 use_smartcase_search = false; 4532 4533 show_completions_on_input = true; 4534 show_completion_documentation = true; 4535 show_edit_predictions = true; 4536 4537 hard_tabs = false; 4538 4539 use_autoclose = true; 4540 always_treat_brackets_as_autoclosed = false; 4541 4542 format_on_save = "on"; 4543 remove_trailing_whitespace_on_save = false; 4544 ensure_final_newline_on_save = true; 4545 4546 calls = { 4547 mute_on_join = true; 4548 share_on_join = false; 4549 }; 4550 4551 confirm_quit = false; 4552 }; 4553 4554 userKeymaps = { }; 4555 }; 4556 4557 matplotlib = { 4558 enable = true; 4559 4560 config = { }; 4561 4562 extraConfig = ''''; 4563 }; 4564 4565 gh = { 4566 enable = true; 4567 package = pkgs.gh; 4568 # extensions = with pkgs; [ 4569 4570 # ]; 4571 4572 gitCredentialHelper = { 4573 enable = true; 4574 4575 hosts = [ 4576 "https://github.com" 4577 "https://gist.github.com" 4578 ]; 4579 }; 4580 4581 settings = { 4582 git_protocol = "https"; 4583 4584 editor = "nano"; 4585 4586 aliases = { }; 4587 }; 4588 }; 4589 4590 awscli = { 4591 enable = true; 4592 package = pkgs.awscli2; 4593 4594 settings = { 4595 "default" = { 4596 output = "json"; 4597 }; 4598 }; 4599 4600 credentials = { }; 4601 }; 4602 4603 chromium = { 4604 enable = true; 4605 package = pkgs.ungoogled-chromium; 4606 dictionaries = with pkgs.hunspellDictsChromium; [ 4607 en_US 4608 en-us 4609 ]; 4610 # nativeMessagingHosts = with pkgs; [ 4611 4612 # ]; 4613 4614 commandLineArgs = [ 4615 4616 ]; 4617 }; 4618 4619 obs-studio = { 4620 enable = true; 4621 package = pkgs.obs-studio; 4622 plugins = with pkgs.obs-studio-plugins; [ 4623 droidcam-obs 4624 input-overlay 4625 obs-3d-effect 4626 obs-backgroundremoval 4627 obs-color-monitor 4628 obs-composite-blur 4629 obs-freeze-filter 4630 obs-gradient-source 4631 obs-gstreamer 4632 obs-move-transition 4633 obs-multi-rtmp 4634 obs-mute-filter 4635 obs-pipewire-audio-capture 4636 obs-replay-source 4637 obs-rgb-levels-filter 4638 obs-scale-to-sound 4639 obs-shaderfilter 4640 obs-source-clone 4641 obs-source-record 4642 obs-source-switcher 4643 obs-text-pthread 4644 obs-transition-table 4645 obs-tuna 4646 obs-vaapi 4647 obs-vertical-canvas 4648 obs-vintage-filter 4649 obs-vkcapture 4650 waveform 4651 ]; 4652 }; 4653 4654 yt-dlp = { 4655 enable = true; 4656 package = pkgs.yt-dlp; 4657 4658 settings = { }; 4659 4660 extraConfig = ''''; 4661 }; 4662 }; 4663 } 4664 ]; 4665 4666 users.bitscoper = { }; 4667 4668 verbose = true; 4669 }; 4670 } 4671 4672 # sdkmanager --licenses 4673 # flutter doctor --android-licenses 4674 4675 # FIXME: 05ac-033e-Gamepad > Rumble 4676 # FIXME: ELAN7001 SPI Fingerprint Sensor 4677 # FIXME: Hyprpaper Delay 4678 # FIXME: MariaDB > Login 4679 # FIXME: hardinfo2 4680