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