build a brandnew architecture for configurations.
This commit is contained in:
		
							parent
							
								
									08aacf8c0d
								
							
						
					
					
						commit
						6dbbce42cf
					
				
					 43 changed files with 425 additions and 643 deletions
				
			
		| 
						 | 
					@ -1,201 +0,0 @@
 | 
				
			||||||
# Edit this configuration file to define what should be installed on
 | 
					 | 
				
			||||||
# your system.  Help is available in the configuration.nix(5) man page
 | 
					 | 
				
			||||||
# and in the NixOS manual (accessible by running ‘nixos-help’).
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
  pkgs,
 | 
					 | 
				
			||||||
  lib,
 | 
					 | 
				
			||||||
  config,
 | 
					 | 
				
			||||||
  inputs,
 | 
					 | 
				
			||||||
  ...
 | 
					 | 
				
			||||||
}:
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
  # Configure network proxy if necessary
 | 
					 | 
				
			||||||
  # networking.proxy.default = "http://user:password@proxy:port/";
 | 
					 | 
				
			||||||
  # networking.proxy.noProxy = "127.0.0.1,localhost,internal.domain";
 | 
					 | 
				
			||||||
  programs.virt-manager.enable = true;
 | 
					 | 
				
			||||||
  virtualisation = {
 | 
					 | 
				
			||||||
    libvirtd.enable = true;
 | 
					 | 
				
			||||||
    spiceUSBRedirection.enable = true;
 | 
					 | 
				
			||||||
  };
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  i18n.inputMethod = {
 | 
					 | 
				
			||||||
    enable = true;
 | 
					 | 
				
			||||||
    type = "fcitx5";
 | 
					 | 
				
			||||||
    fcitx5 = {
 | 
					 | 
				
			||||||
      addons = with pkgs; [
 | 
					 | 
				
			||||||
        libsForQt5.fcitx5-qt
 | 
					 | 
				
			||||||
        fcitx5-gtk
 | 
					 | 
				
			||||||
        fcitx5-configtool
 | 
					 | 
				
			||||||
        fcitx5-chinese-addons
 | 
					 | 
				
			||||||
        (fcitx5-rime.override {
 | 
					 | 
				
			||||||
          rimeDataPkgs =
 | 
					 | 
				
			||||||
            [
 | 
					 | 
				
			||||||
              rime-data
 | 
					 | 
				
			||||||
            ]
 | 
					 | 
				
			||||||
            ++ (with (pkgs.callPackage inputs.nur-xddxdd { }); [
 | 
					 | 
				
			||||||
              rime-ice
 | 
					 | 
				
			||||||
              rime-zhwiki
 | 
					 | 
				
			||||||
              rime-moegirl
 | 
					 | 
				
			||||||
            ]);
 | 
					 | 
				
			||||||
        })
 | 
					 | 
				
			||||||
      ];
 | 
					 | 
				
			||||||
      waylandFrontend = true;
 | 
					 | 
				
			||||||
    };
 | 
					 | 
				
			||||||
  };
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  # Enable the X11 windowing system.
 | 
					 | 
				
			||||||
  # You can disable this if you're only using the Wayland session.
 | 
					 | 
				
			||||||
  services.xserver = {
 | 
					 | 
				
			||||||
    display = 0;
 | 
					 | 
				
			||||||
    enable = true;
 | 
					 | 
				
			||||||
  };
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  # Enable the KDE Plasma Desktop Environment.
 | 
					 | 
				
			||||||
  # services.displayManager.sddm.enable = true;
 | 
					 | 
				
			||||||
  # services.desktopManager.plasma6.enable = true;
 | 
					 | 
				
			||||||
  services.desktopManager.cosmic.enable = true;
 | 
					 | 
				
			||||||
  services.displayManager.cosmic-greeter.enable = true;
 | 
					 | 
				
			||||||
  programs.niri.enable = true;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  # Configure keymap in X11
 | 
					 | 
				
			||||||
  services.xserver.xkb = {
 | 
					 | 
				
			||||||
    layout = "cn";
 | 
					 | 
				
			||||||
    variant = "";
 | 
					 | 
				
			||||||
  };
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  # Enable CUPS to print documents.
 | 
					 | 
				
			||||||
  services.printing.enable = true;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  services.openssh = {
 | 
					 | 
				
			||||||
    enable = true;
 | 
					 | 
				
			||||||
    settings = {
 | 
					 | 
				
			||||||
      PasswordAuthentication = false;
 | 
					 | 
				
			||||||
      KbdInteractiveAuthentication = false;
 | 
					 | 
				
			||||||
      X11Forwarding = true;
 | 
					 | 
				
			||||||
      PermitRootLogin = "no";
 | 
					 | 
				
			||||||
      LogLevel = "VERBOSE";
 | 
					 | 
				
			||||||
      Macs = [
 | 
					 | 
				
			||||||
        "hmac-sha2-512-etm@openssh.com"
 | 
					 | 
				
			||||||
        "hmac-sha2-256-etm@openssh.com"
 | 
					 | 
				
			||||||
        "umac-128-etm@openssh.com"
 | 
					 | 
				
			||||||
        "hmac-sha2-512"
 | 
					 | 
				
			||||||
        "hmac-sha2-256"
 | 
					 | 
				
			||||||
        "umac-128@openssh.com"
 | 
					 | 
				
			||||||
      ];
 | 
					 | 
				
			||||||
      Ciphers = [
 | 
					 | 
				
			||||||
        "chacha20-poly1305@openssh.com"
 | 
					 | 
				
			||||||
        "aes256-gcm@openssh.com"
 | 
					 | 
				
			||||||
        "aes128-gcm@openssh.com"
 | 
					 | 
				
			||||||
        "aes256-ctr"
 | 
					 | 
				
			||||||
        "aes192-ctr"
 | 
					 | 
				
			||||||
        "aes128-ctr"
 | 
					 | 
				
			||||||
      ];
 | 
					 | 
				
			||||||
      KexAlgorithms = [ "curve25519-sha256@libssh.org"
 | 
					 | 
				
			||||||
        "ecdh-sha2-nistp521"
 | 
					 | 
				
			||||||
        "ecdh-sha2-nistp384"
 | 
					 | 
				
			||||||
        "ecdh-sha2-nistp256"
 | 
					 | 
				
			||||||
        "diffie-hellman-group-exchange-sha256"
 | 
					 | 
				
			||||||
      ];
 | 
					 | 
				
			||||||
    };
 | 
					 | 
				
			||||||
    ports = [ 3022 ];
 | 
					 | 
				
			||||||
  };
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  programs.localsend.enable = true;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  # Enable sound with pipewire.
 | 
					 | 
				
			||||||
  services.pulseaudio.enable = false;
 | 
					 | 
				
			||||||
  security.rtkit.enable = true;
 | 
					 | 
				
			||||||
  services.pipewire = {
 | 
					 | 
				
			||||||
    enable = true;
 | 
					 | 
				
			||||||
    alsa.enable = true;
 | 
					 | 
				
			||||||
    alsa.support32Bit = true;
 | 
					 | 
				
			||||||
    pulse.enable = true;
 | 
					 | 
				
			||||||
    # If you want to use JACK applications, uncomment this
 | 
					 | 
				
			||||||
    #jack.enable = true;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    # use the example session manager (no others are packaged yet so this is enabled by default,
 | 
					 | 
				
			||||||
    # no need to redefine it in your config for now)
 | 
					 | 
				
			||||||
    #media-session.enable = true;
 | 
					 | 
				
			||||||
  };
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  # Enable touchpad support (enabled default in most desktopManager).
 | 
					 | 
				
			||||||
  # services.xserver.libinput.enable = true;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  # Define a user account. Don't forget to set a password with ‘passwd’.
 | 
					 | 
				
			||||||
  users.users.david = {
 | 
					 | 
				
			||||||
    isNormalUser = true;
 | 
					 | 
				
			||||||
    description = "david";
 | 
					 | 
				
			||||||
    extraGroups = [
 | 
					 | 
				
			||||||
      "networkmanager"
 | 
					 | 
				
			||||||
      "libvirtd"
 | 
					 | 
				
			||||||
      "wheel"
 | 
					 | 
				
			||||||
    ];
 | 
					 | 
				
			||||||
  };
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  # Install firefox.
 | 
					 | 
				
			||||||
  programs.firefox.enable = true;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  # List packages installed in system profile. To search, run:
 | 
					 | 
				
			||||||
  environment.systemPackages = with pkgs; [
 | 
					 | 
				
			||||||
    nix-output-monitor
 | 
					 | 
				
			||||||
    wget
 | 
					 | 
				
			||||||
    git
 | 
					 | 
				
			||||||
    vim
 | 
					 | 
				
			||||||
    helix
 | 
					 | 
				
			||||||
    nixd
 | 
					 | 
				
			||||||
    nixfmt-rfc-style
 | 
					 | 
				
			||||||
    fontconfig
 | 
					 | 
				
			||||||
    noto-fonts-cjk-sans
 | 
					 | 
				
			||||||
    noto-fonts-cjk-serif
 | 
					 | 
				
			||||||
  ];
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  fonts = {
 | 
					 | 
				
			||||||
    enableDefaultPackages = false;
 | 
					 | 
				
			||||||
    packages = with pkgs; [
 | 
					 | 
				
			||||||
      nerd-fonts.fira-code
 | 
					 | 
				
			||||||
      noto-fonts
 | 
					 | 
				
			||||||
      noto-fonts-cjk-sans
 | 
					 | 
				
			||||||
      noto-fonts-cjk-serif
 | 
					 | 
				
			||||||
      noto-fonts-emoji
 | 
					 | 
				
			||||||
      lxgw-wenkai
 | 
					 | 
				
			||||||
    ];
 | 
					 | 
				
			||||||
    fontconfig.defaultFonts = pkgs.lib.mkForce {
 | 
					 | 
				
			||||||
      serif = [
 | 
					 | 
				
			||||||
        "LXGW WenKai"
 | 
					 | 
				
			||||||
        "Noto Serif CJK SC"
 | 
					 | 
				
			||||||
        "Noto Serif"
 | 
					 | 
				
			||||||
      ];
 | 
					 | 
				
			||||||
      sansSerif = [
 | 
					 | 
				
			||||||
        "Noto Serif CJK SC"
 | 
					 | 
				
			||||||
        "Noto Serif"
 | 
					 | 
				
			||||||
      ];
 | 
					 | 
				
			||||||
      monospace = [
 | 
					 | 
				
			||||||
        "FiraCode Nerd Font"
 | 
					 | 
				
			||||||
      ];
 | 
					 | 
				
			||||||
      emoji = [ "Noto Color Emoji" ];
 | 
					 | 
				
			||||||
    };
 | 
					 | 
				
			||||||
  };
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  environment.variables.EDITOR = "hx";
 | 
					 | 
				
			||||||
  # Some programs need SUID wrappers, can be configured further or are
 | 
					 | 
				
			||||||
  # started in user sessions.
 | 
					 | 
				
			||||||
  # programs.mtr.enable = true;
 | 
					 | 
				
			||||||
  # programs.gnupg.agent = {
 | 
					 | 
				
			||||||
  #   enable = true;
 | 
					 | 
				
			||||||
  #   enableSSHSupport = true;
 | 
					 | 
				
			||||||
  # };
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  # List services that you want to enable:
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  # This value determines the NixOS release from which the default
 | 
					 | 
				
			||||||
  # settings for stateful data, like file locations and database versions
 | 
					 | 
				
			||||||
  # on your system were taken. It‘s perfectly fine and recommended to leave
 | 
					 | 
				
			||||||
  # this value at the release version of the first install of this system.
 | 
					 | 
				
			||||||
  # Before changing this value read the documentation for this option
 | 
					 | 
				
			||||||
  # (e.g. man configuration.nix or on https://nixos.org/nixos/options.html).
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  system.stateVersion = "24.11"; # Did you read the comment?
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
							
								
								
									
										72
									
								
								flake.nix
									
										
									
									
									
								
							
							
						
						
									
										72
									
								
								flake.nix
									
										
									
									
									
								
							| 
						 | 
					@ -67,10 +67,12 @@
 | 
				
			||||||
    }@inputs:
 | 
					    }@inputs:
 | 
				
			||||||
    let
 | 
					    let
 | 
				
			||||||
      inherit (self) outputs;
 | 
					      inherit (self) outputs;
 | 
				
			||||||
 | 
					      rootPath = ./.;
 | 
				
			||||||
    in
 | 
					    in
 | 
				
			||||||
    flake-parts.lib.mkFlake { inherit inputs; } {
 | 
					    flake-parts.lib.mkFlake { inherit inputs; } {
 | 
				
			||||||
      systems = flake-utils.lib.defaultSystems;
 | 
					      systems = flake-utils.lib.defaultSystems;
 | 
				
			||||||
      flake = {
 | 
					      flake =
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
          nix.settings = {
 | 
					          nix.settings = {
 | 
				
			||||||
            # substituters shared in home-manager and nixos configuration
 | 
					            # substituters shared in home-manager and nixos configuration
 | 
				
			||||||
            substituters =
 | 
					            substituters =
 | 
				
			||||||
| 
						 | 
					@ -110,6 +112,9 @@
 | 
				
			||||||
                nixpkgs.lib.nixosSystem {
 | 
					                nixpkgs.lib.nixosSystem {
 | 
				
			||||||
                  modules =
 | 
					                  modules =
 | 
				
			||||||
                    [
 | 
					                    [
 | 
				
			||||||
 | 
					                      outputs.nixosModules.default
 | 
				
			||||||
 | 
					                    ]
 | 
				
			||||||
 | 
					                    ++ [
 | 
				
			||||||
                      (
 | 
					                      (
 | 
				
			||||||
                        let
 | 
					                        let
 | 
				
			||||||
                          dirPath = nixosConfigDir + "/${hostName}";
 | 
					                          dirPath = nixosConfigDir + "/${hostName}";
 | 
				
			||||||
| 
						 | 
					@ -117,17 +122,70 @@
 | 
				
			||||||
                        in
 | 
					                        in
 | 
				
			||||||
                        if builtins.pathExists dirPath then dirPath else filePath
 | 
					                        if builtins.pathExists dirPath then dirPath else filePath
 | 
				
			||||||
                      )
 | 
					                      )
 | 
				
			||||||
                    ./configuration.nix
 | 
					 | 
				
			||||||
                    ./users
 | 
					 | 
				
			||||||
                  ]
 | 
					 | 
				
			||||||
                  ++ [
 | 
					 | 
				
			||||||
                    outputs.nixosModules.default
 | 
					 | 
				
			||||||
                    ];
 | 
					                    ];
 | 
				
			||||||
                  specialArgs = {
 | 
					                  specialArgs = {
 | 
				
			||||||
                  inherit inputs outputs;
 | 
					                    inherit inputs outputs rootPath;
 | 
				
			||||||
                  };
 | 
					                  };
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
              );
 | 
					              );
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        // (
 | 
				
			||||||
 | 
					          let
 | 
				
			||||||
 | 
					            mkHomeConfig =
 | 
				
			||||||
 | 
					              {
 | 
				
			||||||
 | 
					                hostName,
 | 
				
			||||||
 | 
					                unixName ? "david",
 | 
				
			||||||
 | 
					                system ? "x86_64-linux",
 | 
				
			||||||
 | 
					                nixpkgs ? inputs.nixpkgs,
 | 
				
			||||||
 | 
					                home-manager ? inputs.home-manager,
 | 
				
			||||||
 | 
					              }:
 | 
				
			||||||
 | 
					              {
 | 
				
			||||||
 | 
					                "${unixName}@${hostName}" = home-manager.lib.homeManagerConfiguration {
 | 
				
			||||||
 | 
					                  pkgs = nixpkgs.legacyPackages."${system}";
 | 
				
			||||||
 | 
					                  modules =
 | 
				
			||||||
 | 
					                    [
 | 
				
			||||||
 | 
					                      (./home + "/${unixName}/configurations/${hostName}")
 | 
				
			||||||
 | 
					                    ]
 | 
				
			||||||
 | 
					                    ++ (with outputs.homeManagerModules; [
 | 
				
			||||||
 | 
					                      default
 | 
				
			||||||
 | 
					                      "${unixName}"
 | 
				
			||||||
 | 
					                    ]);
 | 
				
			||||||
 | 
					                  extraSpecialArgs = {
 | 
				
			||||||
 | 
					                    inherit
 | 
				
			||||||
 | 
					                      inputs
 | 
				
			||||||
 | 
					                      outputs
 | 
				
			||||||
 | 
					                      unixName
 | 
				
			||||||
 | 
					                      hostName
 | 
				
			||||||
 | 
					                      system
 | 
				
			||||||
 | 
					                      rootPath
 | 
				
			||||||
 | 
					                      ;
 | 
				
			||||||
                  };
 | 
					                  };
 | 
				
			||||||
                };
 | 
					                };
 | 
				
			||||||
 | 
					              };
 | 
				
			||||||
 | 
					          in
 | 
				
			||||||
 | 
					          {
 | 
				
			||||||
 | 
					            homeConfigurations = nixpkgs.foldr (a: b: a // b) { } (
 | 
				
			||||||
 | 
					              map (hostName: mkHomeConfig { inherit hostName; }) [ "Tytonidae" ]
 | 
				
			||||||
 | 
					            );
 | 
				
			||||||
 | 
					            homeManagerModules =
 | 
				
			||||||
 | 
					              {
 | 
				
			||||||
 | 
					                default = import ./home/modules;
 | 
				
			||||||
 | 
					              }
 | 
				
			||||||
 | 
					              // (
 | 
				
			||||||
 | 
					                let
 | 
				
			||||||
 | 
					                  allEntries = builtins.readDir ./home;
 | 
				
			||||||
 | 
					                  allUsers = nixpkgs.lib.filterAttrs (
 | 
				
			||||||
 | 
					                    key: value: value == "directory" && key != "modules"
 | 
				
			||||||
 | 
					                  ) allEntries;
 | 
				
			||||||
 | 
					                in
 | 
				
			||||||
 | 
					                builtins.listToAttrs (
 | 
				
			||||||
 | 
					                  map (name: {
 | 
				
			||||||
 | 
					                    name = name;
 | 
				
			||||||
 | 
					                    value = import ./home + "/${name}/modules";
 | 
				
			||||||
 | 
					                  }) (builtins.attrNames allUsers)
 | 
				
			||||||
 | 
					                )
 | 
				
			||||||
 | 
					              );
 | 
				
			||||||
 | 
					          }
 | 
				
			||||||
 | 
					        );
 | 
				
			||||||
 | 
					    };
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,7 +1,7 @@
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
  pkgs,
 | 
					  pkgs,
 | 
				
			||||||
  config,
 | 
					  config,
 | 
				
			||||||
  ghostty,
 | 
					  inputs,
 | 
				
			||||||
  ...
 | 
					  ...
 | 
				
			||||||
}:
 | 
					}:
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
| 
						 | 
					@ -61,7 +61,7 @@
 | 
				
			||||||
    qq
 | 
					    qq
 | 
				
			||||||
    telegram-desktop
 | 
					    telegram-desktop
 | 
				
			||||||
    taplo
 | 
					    taplo
 | 
				
			||||||
    ghostty.packages."${pkgs.system}".default
 | 
					    inputs.ghostty.packages."${pkgs.system}".default
 | 
				
			||||||
  ];
 | 
					  ];
 | 
				
			||||||
  programs.ssh = {
 | 
					  programs.ssh = {
 | 
				
			||||||
    enable = true;
 | 
					    enable = true;
 | 
				
			||||||
| 
						 | 
					@ -1,4 +1,4 @@
 | 
				
			||||||
{ pkgs, firefox-addons, ... }:
 | 
					{ pkgs, inputs, ... }:
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
  programs.firefox = {
 | 
					  programs.firefox = {
 | 
				
			||||||
    enable = true;
 | 
					    enable = true;
 | 
				
			||||||
| 
						 | 
					@ -11,7 +11,7 @@
 | 
				
			||||||
      isDefault = true;
 | 
					      isDefault = true;
 | 
				
			||||||
      extensions =
 | 
					      extensions =
 | 
				
			||||||
        let
 | 
					        let
 | 
				
			||||||
          addons = (pkgs.callPackage firefox-addons { }).firefox-addons;
 | 
					          addons = (pkgs.callPackage inputs.firefox-addons { }).firefox-addons;
 | 
				
			||||||
        in
 | 
					        in
 | 
				
			||||||
        [
 | 
					        [
 | 
				
			||||||
          addons.immersive-translate
 | 
					          addons.immersive-translate
 | 
				
			||||||
							
								
								
									
										1
									
								
								home/david/modules/default.nix
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								home/david/modules/default.nix
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1 @@
 | 
				
			||||||
 | 
					{ ... }: { }
 | 
				
			||||||
							
								
								
									
										1
									
								
								home/modules/default.nix
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								home/modules/default.nix
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1 @@
 | 
				
			||||||
 | 
					{ ... }: { }
 | 
				
			||||||
| 
						 | 
					@ -5,29 +5,53 @@
 | 
				
			||||||
      nixos-hardware.nixosModules.asus-fx506hm
 | 
					      nixos-hardware.nixosModules.asus-fx506hm
 | 
				
			||||||
    ])
 | 
					    ])
 | 
				
			||||||
    ++ [
 | 
					    ++ [
 | 
				
			||||||
 | 
					      ./i18n.nix
 | 
				
			||||||
 | 
					      ./gui.nix
 | 
				
			||||||
 | 
					      ./users
 | 
				
			||||||
 | 
					      ./openssh.nix
 | 
				
			||||||
 | 
					      ./kvm.nix
 | 
				
			||||||
 | 
					      ./dae
 | 
				
			||||||
 | 
					      ./nh.nix
 | 
				
			||||||
 | 
					      ./steam.nix
 | 
				
			||||||
 | 
					      ./spotify.nix
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      # Include the hardware related config
 | 
					      # Include the hardware related config
 | 
				
			||||||
      ./hardware-configuration.nix
 | 
					      ./hardware-configuration.nix
 | 
				
			||||||
      ./networking.nix
 | 
					      ./networking.nix
 | 
				
			||||||
    ];
 | 
					    ];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  youthlic.home-manager = {
 | 
				
			||||||
 | 
					    enable = true;
 | 
				
			||||||
 | 
					    unixName = "david";
 | 
				
			||||||
 | 
					    hostName = "Tytonidae";
 | 
				
			||||||
 | 
					  };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  networking.hostName = "Tytonidae";
 | 
					  networking.hostName = "Tytonidae";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  time.timeZone = "Asia/Shanghai";
 | 
					  time.timeZone = "Asia/Shanghai";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  i18n = {
 | 
					  services.printing.enable = true;
 | 
				
			||||||
    defaultLocale = "C.UTF-8";
 | 
					
 | 
				
			||||||
    extraLocaleSettings = {
 | 
					  environment.systemPackages = with pkgs; [
 | 
				
			||||||
      LC_ADDRESS = "zh_CN.UTF-8";
 | 
					    nix-output-monitor
 | 
				
			||||||
      LC_IDENTIFICATION = "zh_CN.UTF-8";
 | 
					    wget
 | 
				
			||||||
      LC_MEASUREMENT = "zh_CN.UTF-8";
 | 
					    git
 | 
				
			||||||
      LC_MONETARY = "zh_CN.UTF-8";
 | 
					    vim
 | 
				
			||||||
      LC_NAME = "zh_CN.UTF-8";
 | 
					    helix
 | 
				
			||||||
      LC_NUMERIC = "zh_CN.UTF-8";
 | 
					    nixd
 | 
				
			||||||
      LC_PAPER = "zh_CN.UTF-8";
 | 
					    nixfmt-rfc-style
 | 
				
			||||||
      LC_TELEPHONE = "zh_CN.UTF-8";
 | 
					
 | 
				
			||||||
      LC_TIME = "zh_CN.UTF-8";
 | 
					    element-desktop
 | 
				
			||||||
    };
 | 
					    discord-ptb
 | 
				
			||||||
  };
 | 
					    asusctl
 | 
				
			||||||
 | 
					    vlc
 | 
				
			||||||
 | 
					    btop
 | 
				
			||||||
 | 
					    handbrake
 | 
				
			||||||
 | 
					    wechat-uos
 | 
				
			||||||
 | 
					    nvtopPackages.full
 | 
				
			||||||
 | 
					  ];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  environment.variables.EDITOR = "hx";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  nixpkgs = {
 | 
					  nixpkgs = {
 | 
				
			||||||
    config = {
 | 
					    config = {
 | 
				
			||||||
| 
						 | 
					@ -40,4 +64,13 @@
 | 
				
			||||||
    loader.systemd-boot.enable = true;
 | 
					    loader.systemd-boot.enable = true;
 | 
				
			||||||
    loader.efi.canTouchEfiVariables = true;
 | 
					    loader.efi.canTouchEfiVariables = true;
 | 
				
			||||||
  };
 | 
					  };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  # This value determines the NixOS release from which the default
 | 
				
			||||||
 | 
					  # settings for stateful data, like file locations and database versions
 | 
				
			||||||
 | 
					  # on your system were taken. It‘s perfectly fine and recommended to leave
 | 
				
			||||||
 | 
					  # this value at the release version of the first install of this system.
 | 
				
			||||||
 | 
					  # Before changing this value read the documentation for this option
 | 
				
			||||||
 | 
					  # (e.g. man configuration.nix or on https://nixos.org/nixos/options.html).
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  system.stateVersion = "24.11"; # Did you read the comment?
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										69
									
								
								nixos/configurations/Tytonidae/gui.nix
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										69
									
								
								nixos/configurations/Tytonidae/gui.nix
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,69 @@
 | 
				
			||||||
 | 
					{ pkgs, ... }:
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  # Enable the X11 windowing system.
 | 
				
			||||||
 | 
					  # You can disable this if you're only using the Wayland session.
 | 
				
			||||||
 | 
					  services.xserver = {
 | 
				
			||||||
 | 
					    display = 0;
 | 
				
			||||||
 | 
					    enable = true;
 | 
				
			||||||
 | 
					  };
 | 
				
			||||||
 | 
					  # Enable the KDE Plasma Desktop Environment.
 | 
				
			||||||
 | 
					  # services.displayManager.sddm.enable = true;
 | 
				
			||||||
 | 
					  # services.desktopManager.plasma6.enable = true;
 | 
				
			||||||
 | 
					  services.desktopManager.cosmic.enable = true;
 | 
				
			||||||
 | 
					  services.displayManager.cosmic-greeter.enable = true;
 | 
				
			||||||
 | 
					  programs.niri.enable = true;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  # Configure keymap in X11
 | 
				
			||||||
 | 
					  services.xserver.xkb = {
 | 
				
			||||||
 | 
					    layout = "cn";
 | 
				
			||||||
 | 
					    variant = "";
 | 
				
			||||||
 | 
					  };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  environment.systemPackages = with pkgs; [
 | 
				
			||||||
 | 
					    fontconfig
 | 
				
			||||||
 | 
					  ];
 | 
				
			||||||
 | 
					  programs.firefox.enable = true;
 | 
				
			||||||
 | 
					  programs.localsend.enable = true;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  fonts = {
 | 
				
			||||||
 | 
					    enableDefaultPackages = false;
 | 
				
			||||||
 | 
					    packages = with pkgs; [
 | 
				
			||||||
 | 
					      nerd-fonts.fira-code
 | 
				
			||||||
 | 
					      noto-fonts
 | 
				
			||||||
 | 
					      noto-fonts-cjk-sans
 | 
				
			||||||
 | 
					      noto-fonts-cjk-serif
 | 
				
			||||||
 | 
					      noto-fonts-emoji
 | 
				
			||||||
 | 
					      lxgw-wenkai
 | 
				
			||||||
 | 
					    ];
 | 
				
			||||||
 | 
					    fontconfig.defaultFonts = pkgs.lib.mkForce {
 | 
				
			||||||
 | 
					      serif = [
 | 
				
			||||||
 | 
					        "LXGW WenKai"
 | 
				
			||||||
 | 
					        "Noto Serif CJK SC"
 | 
				
			||||||
 | 
					        "Noto Serif"
 | 
				
			||||||
 | 
					      ];
 | 
				
			||||||
 | 
					      sansSerif = [
 | 
				
			||||||
 | 
					        "Noto Serif CJK SC"
 | 
				
			||||||
 | 
					        "Noto Serif"
 | 
				
			||||||
 | 
					      ];
 | 
				
			||||||
 | 
					      monospace = [
 | 
				
			||||||
 | 
					        "FiraCode Nerd Font"
 | 
				
			||||||
 | 
					      ];
 | 
				
			||||||
 | 
					      emoji = [ "Noto Color Emoji" ];
 | 
				
			||||||
 | 
					    };
 | 
				
			||||||
 | 
					  };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  services.pulseaudio.enable = false;
 | 
				
			||||||
 | 
					  security.rtkit.enable = true;
 | 
				
			||||||
 | 
					  services.pipewire = {
 | 
				
			||||||
 | 
					    enable = true;
 | 
				
			||||||
 | 
					    alsa.enable = true;
 | 
				
			||||||
 | 
					    alsa.support32Bit = true;
 | 
				
			||||||
 | 
					    pulse.enable = true;
 | 
				
			||||||
 | 
					    # If you want to use JACK applications, uncomment this
 | 
				
			||||||
 | 
					    #jack.enable = true;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    # use the example session manager (no others are packaged yet so this is enabled by default,
 | 
				
			||||||
 | 
					    # no need to redefine it in your config for now)
 | 
				
			||||||
 | 
					    #media-session.enable = true;
 | 
				
			||||||
 | 
					  };
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										42
									
								
								nixos/configurations/Tytonidae/i18n.nix
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										42
									
								
								nixos/configurations/Tytonidae/i18n.nix
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,42 @@
 | 
				
			||||||
 | 
					{ pkgs, inputs, ... }:
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  i18n = {
 | 
				
			||||||
 | 
					    defaultLocale = "C.UTF-8";
 | 
				
			||||||
 | 
					    extraLocaleSettings = {
 | 
				
			||||||
 | 
					      LC_ADDRESS = "zh_CN.UTF-8";
 | 
				
			||||||
 | 
					      LC_IDENTIFICATION = "zh_CN.UTF-8";
 | 
				
			||||||
 | 
					      LC_MEASUREMENT = "zh_CN.UTF-8";
 | 
				
			||||||
 | 
					      LC_MONETARY = "zh_CN.UTF-8";
 | 
				
			||||||
 | 
					      LC_NAME = "zh_CN.UTF-8";
 | 
				
			||||||
 | 
					      LC_NUMERIC = "zh_CN.UTF-8";
 | 
				
			||||||
 | 
					      LC_PAPER = "zh_CN.UTF-8";
 | 
				
			||||||
 | 
					      LC_TELEPHONE = "zh_CN.UTF-8";
 | 
				
			||||||
 | 
					      LC_TIME = "zh_CN.UTF-8";
 | 
				
			||||||
 | 
					    };
 | 
				
			||||||
 | 
					    inputMethod = {
 | 
				
			||||||
 | 
					      enable = true;
 | 
				
			||||||
 | 
					      type = "fcitx5";
 | 
				
			||||||
 | 
					      fcitx5 = {
 | 
				
			||||||
 | 
					        addons = with pkgs; [
 | 
				
			||||||
 | 
					          libsForQt5.fcitx5-qt
 | 
				
			||||||
 | 
					          fcitx5-gtk
 | 
				
			||||||
 | 
					          fcitx5-configtool
 | 
				
			||||||
 | 
					          fcitx5-chinese-addons
 | 
				
			||||||
 | 
					          (fcitx5-rime.override {
 | 
				
			||||||
 | 
					            rimeDataPkgs =
 | 
				
			||||||
 | 
					              [
 | 
				
			||||||
 | 
					                rime-data
 | 
				
			||||||
 | 
					              ]
 | 
				
			||||||
 | 
					              ++ (with (pkgs.callPackage inputs.nur-xddxdd { }); [
 | 
				
			||||||
 | 
					                rime-ice
 | 
				
			||||||
 | 
					                rime-zhwiki
 | 
				
			||||||
 | 
					                rime-moegirl
 | 
				
			||||||
 | 
					              ]);
 | 
				
			||||||
 | 
					          })
 | 
				
			||||||
 | 
					        ];
 | 
				
			||||||
 | 
					        waylandFrontend = true;
 | 
				
			||||||
 | 
					      };
 | 
				
			||||||
 | 
					    };
 | 
				
			||||||
 | 
					  };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										9
									
								
								nixos/configurations/Tytonidae/kvm.nix
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										9
									
								
								nixos/configurations/Tytonidae/kvm.nix
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,9 @@
 | 
				
			||||||
 | 
					{ ... }:
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  programs.virt-manager.enable = true;
 | 
				
			||||||
 | 
					  virtualisation = {
 | 
				
			||||||
 | 
					    libvirtd.enable = true;
 | 
				
			||||||
 | 
					    spiceUSBRedirection.enable = true;
 | 
				
			||||||
 | 
					  };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										37
									
								
								nixos/configurations/Tytonidae/openssh.nix
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										37
									
								
								nixos/configurations/Tytonidae/openssh.nix
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,37 @@
 | 
				
			||||||
 | 
					{ ... }:
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  services.openssh = {
 | 
				
			||||||
 | 
					    enable = true;
 | 
				
			||||||
 | 
					    settings = {
 | 
				
			||||||
 | 
					      PasswordAuthentication = false;
 | 
				
			||||||
 | 
					      KbdInteractiveAuthentication = false;
 | 
				
			||||||
 | 
					      X11Forwarding = true;
 | 
				
			||||||
 | 
					      PermitRootLogin = "no";
 | 
				
			||||||
 | 
					      LogLevel = "VERBOSE";
 | 
				
			||||||
 | 
					      Macs = [
 | 
				
			||||||
 | 
					        "hmac-sha2-512-etm@openssh.com"
 | 
				
			||||||
 | 
					        "hmac-sha2-256-etm@openssh.com"
 | 
				
			||||||
 | 
					        "umac-128-etm@openssh.com"
 | 
				
			||||||
 | 
					        "hmac-sha2-512"
 | 
				
			||||||
 | 
					        "hmac-sha2-256"
 | 
				
			||||||
 | 
					        "umac-128@openssh.com"
 | 
				
			||||||
 | 
					      ];
 | 
				
			||||||
 | 
					      Ciphers = [
 | 
				
			||||||
 | 
					        "chacha20-poly1305@openssh.com"
 | 
				
			||||||
 | 
					        "aes256-gcm@openssh.com"
 | 
				
			||||||
 | 
					        "aes128-gcm@openssh.com"
 | 
				
			||||||
 | 
					        "aes256-ctr"
 | 
				
			||||||
 | 
					        "aes192-ctr"
 | 
				
			||||||
 | 
					        "aes128-ctr"
 | 
				
			||||||
 | 
					      ];
 | 
				
			||||||
 | 
					      KexAlgorithms = [
 | 
				
			||||||
 | 
					        "curve25519-sha256@libssh.org"
 | 
				
			||||||
 | 
					        "ecdh-sha2-nistp521"
 | 
				
			||||||
 | 
					        "ecdh-sha2-nistp384"
 | 
				
			||||||
 | 
					        "ecdh-sha2-nistp256"
 | 
				
			||||||
 | 
					        "diffie-hellman-group-exchange-sha256"
 | 
				
			||||||
 | 
					      ];
 | 
				
			||||||
 | 
					    };
 | 
				
			||||||
 | 
					    ports = [ 3022 ];
 | 
				
			||||||
 | 
					  };
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										18
									
								
								nixos/configurations/Tytonidae/users/david.nix
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										18
									
								
								nixos/configurations/Tytonidae/users/david.nix
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,18 @@
 | 
				
			||||||
 | 
					{ pkgs, ... }:
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  users.users.david = {
 | 
				
			||||||
 | 
					    isNormalUser = true;
 | 
				
			||||||
 | 
					    description = "david";
 | 
				
			||||||
 | 
					    extraGroups = [
 | 
				
			||||||
 | 
					      "networkmanager"
 | 
				
			||||||
 | 
					      "libvirtd"
 | 
				
			||||||
 | 
					      "wheel"
 | 
				
			||||||
 | 
					    ];
 | 
				
			||||||
 | 
					  };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  programs.fish.enable = true;
 | 
				
			||||||
 | 
					  users.users.david.shell = pkgs.fish;
 | 
				
			||||||
 | 
					  users.users.david.openssh.authorizedKeys.keyFiles = [
 | 
				
			||||||
 | 
					    ./tytonidae.pub
 | 
				
			||||||
 | 
					  ];
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										6
									
								
								nixos/configurations/Tytonidae/users/default.nix
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								nixos/configurations/Tytonidae/users/default.nix
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,6 @@
 | 
				
			||||||
 | 
					{ ... }:
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  imports = [
 | 
				
			||||||
 | 
					    ./david.nix
 | 
				
			||||||
 | 
					  ];
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
| 
						 | 
					@ -14,6 +14,7 @@
 | 
				
			||||||
    ])
 | 
					    ])
 | 
				
			||||||
    ++ [
 | 
					    ++ [
 | 
				
			||||||
      ./nix.nix
 | 
					      ./nix.nix
 | 
				
			||||||
 | 
					      ./home.nix
 | 
				
			||||||
    ];
 | 
					    ];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  config = {
 | 
					  config = {
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										64
									
								
								nixos/modules/home.nix
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										64
									
								
								nixos/modules/home.nix
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,64 @@
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  inputs,
 | 
				
			||||||
 | 
					  outputs,
 | 
				
			||||||
 | 
					  lib,
 | 
				
			||||||
 | 
					  config,
 | 
				
			||||||
 | 
					  pkgs,
 | 
				
			||||||
 | 
					  rootPath,
 | 
				
			||||||
 | 
					  ...
 | 
				
			||||||
 | 
					}:
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  options.youthlic.home-manager = {
 | 
				
			||||||
 | 
					    enable = lib.mkOption {
 | 
				
			||||||
 | 
					      type = lib.types.bool;
 | 
				
			||||||
 | 
					      default = false;
 | 
				
			||||||
 | 
					      example = true;
 | 
				
			||||||
 | 
					      description = ''
 | 
				
			||||||
 | 
					        whether enable home-manager or not
 | 
				
			||||||
 | 
					      '';
 | 
				
			||||||
 | 
					    };
 | 
				
			||||||
 | 
					    unixName = lib.mkOption {
 | 
				
			||||||
 | 
					      type = lib.types.str;
 | 
				
			||||||
 | 
					      default = "david";
 | 
				
			||||||
 | 
					      example = "youthlic";
 | 
				
			||||||
 | 
					      description = ''
 | 
				
			||||||
 | 
					        unix name of home-manager user
 | 
				
			||||||
 | 
					      '';
 | 
				
			||||||
 | 
					    };
 | 
				
			||||||
 | 
					    hostName = lib.mkOption {
 | 
				
			||||||
 | 
					      type = lib.types.str;
 | 
				
			||||||
 | 
					      example = "Tytonidae";
 | 
				
			||||||
 | 
					      description = ''
 | 
				
			||||||
 | 
					        host name of home-manager user
 | 
				
			||||||
 | 
					      '';
 | 
				
			||||||
 | 
					    };
 | 
				
			||||||
 | 
					  };
 | 
				
			||||||
 | 
					  config =
 | 
				
			||||||
 | 
					    let
 | 
				
			||||||
 | 
					      cfg = config.youthlic.home-manager;
 | 
				
			||||||
 | 
					      unixName = cfg.unixName;
 | 
				
			||||||
 | 
					      hostName = cfg.hostName;
 | 
				
			||||||
 | 
					    in
 | 
				
			||||||
 | 
					    lib.mkIf cfg.enable {
 | 
				
			||||||
 | 
					      home-manager = {
 | 
				
			||||||
 | 
					        useGlobalPkgs = true;
 | 
				
			||||||
 | 
					        useUserPackages = true;
 | 
				
			||||||
 | 
					        users."${cfg.unixName}" = (
 | 
				
			||||||
 | 
					          { ... }:
 | 
				
			||||||
 | 
					          {
 | 
				
			||||||
 | 
					            imports = [
 | 
				
			||||||
 | 
					              (rootPath + "/home/${unixName}/modules")
 | 
				
			||||||
 | 
					              (rootPath + "/home/${unixName}/configurations/${hostName}")
 | 
				
			||||||
 | 
					            ];
 | 
				
			||||||
 | 
					          }
 | 
				
			||||||
 | 
					        );
 | 
				
			||||||
 | 
					        extraSpecialArgs = {
 | 
				
			||||||
 | 
					          inherit outputs inputs;
 | 
				
			||||||
 | 
					          inherit (cfg) unixName hostName;
 | 
				
			||||||
 | 
					          inherit (pkgs) system;
 | 
				
			||||||
 | 
					        };
 | 
				
			||||||
 | 
					        backupFileExtension = "backup";
 | 
				
			||||||
 | 
					        sharedModules = [ outputs.homeManagerModules.default ];
 | 
				
			||||||
 | 
					      };
 | 
				
			||||||
 | 
					    };
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										7
									
								
								nixpkgs.nix
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										7
									
								
								nixpkgs.nix
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,7 @@
 | 
				
			||||||
 | 
					let
 | 
				
			||||||
 | 
					  lock = (builtins.fromJSON (builtins.readFile ./flake.lock)).nodes.nixpkgs.locked;
 | 
				
			||||||
 | 
					in
 | 
				
			||||||
 | 
					import (fetchTarball {
 | 
				
			||||||
 | 
					  url = "https://github.com/nixos/nixpkgs/archive/${lock.rev}.tar.gz";
 | 
				
			||||||
 | 
					  sha256 = lock.narHash;
 | 
				
			||||||
 | 
					})
 | 
				
			||||||
							
								
								
									
										7
									
								
								pkgs/default.nix
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										7
									
								
								pkgs/default.nix
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,7 @@
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  pkgs ? (import ./../nixpkgs.nix) { },
 | 
				
			||||||
 | 
					  ...
 | 
				
			||||||
 | 
					}:
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  # example = pkgs.callPackage ./example.nix { };
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
| 
						 | 
					@ -1,35 +0,0 @@
 | 
				
			||||||
{
 | 
					 | 
				
			||||||
  pkgs,
 | 
					 | 
				
			||||||
  inputs,
 | 
					 | 
				
			||||||
  ...
 | 
					 | 
				
			||||||
}:
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
  imports = [
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
      home-manager.useGlobalPkgs = true;
 | 
					 | 
				
			||||||
      home-manager.useUserPackages = true;
 | 
					 | 
				
			||||||
      home-manager.users.david = import ./home-manager;
 | 
					 | 
				
			||||||
      home-manager.extraSpecialArgs = inputs;
 | 
					 | 
				
			||||||
      home-manager.backupFileExtension = "backup";
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
    ./steam.nix
 | 
					 | 
				
			||||||
    ./spotify.nix
 | 
					 | 
				
			||||||
    ./nh.nix
 | 
					 | 
				
			||||||
    ./dae
 | 
					 | 
				
			||||||
  ];
 | 
					 | 
				
			||||||
  programs.fish.enable = true;
 | 
					 | 
				
			||||||
  users.users.david.shell = pkgs.fish;
 | 
					 | 
				
			||||||
  users.users.david.openssh.authorizedKeys.keyFiles = [
 | 
					 | 
				
			||||||
    ./tytonidae.pub
 | 
					 | 
				
			||||||
  ];
 | 
					 | 
				
			||||||
  environment.systemPackages = with pkgs; [
 | 
					 | 
				
			||||||
    element-desktop
 | 
					 | 
				
			||||||
    discord-ptb
 | 
					 | 
				
			||||||
    asusctl
 | 
					 | 
				
			||||||
    vlc
 | 
					 | 
				
			||||||
    btop
 | 
					 | 
				
			||||||
    handbrake
 | 
					 | 
				
			||||||
    wechat-uos
 | 
					 | 
				
			||||||
    nvtopPackages.full
 | 
					 | 
				
			||||||
  ];
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,16 +0,0 @@
 | 
				
			||||||
{ ... }:
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
  programs.emacs = {
 | 
					 | 
				
			||||||
    enable = true;
 | 
					 | 
				
			||||||
  };
 | 
					 | 
				
			||||||
  services.emacs = {
 | 
					 | 
				
			||||||
    enable = true;
 | 
					 | 
				
			||||||
    client = {
 | 
					 | 
				
			||||||
      enable = true;
 | 
					 | 
				
			||||||
    };
 | 
					 | 
				
			||||||
  };
 | 
					 | 
				
			||||||
  programs.doom-emacs = {
 | 
					 | 
				
			||||||
    enable = true;
 | 
					 | 
				
			||||||
    doomDir = ./doom;
 | 
					 | 
				
			||||||
  };
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,77 +0,0 @@
 | 
				
			||||||
;;; $DOOMDIR/config.el -*- lexical-binding: t; -*-
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
;; Place your private configuration here! Remember, you do not need to run 'doom
 | 
					 | 
				
			||||||
;; sync' after modifying this file!
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
;; Some functionality uses this to identify you, e.g. GPG configuration, email
 | 
					 | 
				
			||||||
;; clients, file templates and snippets. It is optional.
 | 
					 | 
				
			||||||
;; (setq user-full-name "John Doe"
 | 
					 | 
				
			||||||
;;       user-mail-address "john@doe.com")
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
;; Doom exposes five (optional) variables for controlling fonts in Doom:
 | 
					 | 
				
			||||||
;;
 | 
					 | 
				
			||||||
;; - `doom-font' -- the primary font to use
 | 
					 | 
				
			||||||
;; - `doom-variable-pitch-font' -- a non-monospace font (where applicable)
 | 
					 | 
				
			||||||
;; - `doom-big-font' -- used for `doom-big-font-mode'; use this for
 | 
					 | 
				
			||||||
;;   presentations or streaming.
 | 
					 | 
				
			||||||
;; - `doom-symbol-font' -- for symbols
 | 
					 | 
				
			||||||
;; - `doom-serif-font' -- for the `fixed-pitch-serif' face
 | 
					 | 
				
			||||||
;;
 | 
					 | 
				
			||||||
;; See 'C-h v doom-font' for documentation and more examples of what they
 | 
					 | 
				
			||||||
;; accept. For example:
 | 
					 | 
				
			||||||
;;
 | 
					 | 
				
			||||||
;;(setq doom-font (font-spec :family "Fira Code" :size 12 :weight 'semi-light)
 | 
					 | 
				
			||||||
;;      doom-variable-pitch-font (font-spec :family "Fira Sans" :size 13))
 | 
					 | 
				
			||||||
;;
 | 
					 | 
				
			||||||
;; If you or Emacs can't find your font, use 'M-x describe-font' to look them
 | 
					 | 
				
			||||||
;; up, `M-x eval-region' to execute elisp code, and 'M-x doom/reload-font' to
 | 
					 | 
				
			||||||
;; refresh your font settings. If Emacs still can't find your font, it likely
 | 
					 | 
				
			||||||
;; wasn't installed correctly. Font issues are rarely Doom issues!
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
;; There are two ways to load a theme. Both assume the theme is installed and
 | 
					 | 
				
			||||||
;; available. You can either set `doom-theme' or manually load a theme with the
 | 
					 | 
				
			||||||
;; `load-theme' function. This is the default:
 | 
					 | 
				
			||||||
(setq doom-theme 'doom-ayu-mirage)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
;; This determines the style of line numbers in effect. If set to `nil', line
 | 
					 | 
				
			||||||
;; numbers are disabled. For relative line numbers, set this to `relative'.
 | 
					 | 
				
			||||||
(setq display-line-numbers-type 'relative)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
;; If you use `org' and don't want your org files in the default location below,
 | 
					 | 
				
			||||||
;; change `org-directory'. It must be set before org loads!
 | 
					 | 
				
			||||||
(setq org-directory "~/org/")
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
;; Whenever you reconfigure a package, make sure to wrap your config in an
 | 
					 | 
				
			||||||
;; `after!' block, otherwise Doom's defaults may override your settings. E.g.
 | 
					 | 
				
			||||||
;;
 | 
					 | 
				
			||||||
;;   (after! PACKAGE
 | 
					 | 
				
			||||||
;;     (setq x y))
 | 
					 | 
				
			||||||
;;
 | 
					 | 
				
			||||||
;; The exceptions to this rule:
 | 
					 | 
				
			||||||
;;
 | 
					 | 
				
			||||||
;;   - Setting file/directory variables (like `org-directory')
 | 
					 | 
				
			||||||
;;   - Setting variables which explicitly tell you to set them before their
 | 
					 | 
				
			||||||
;;     package is loaded (see 'C-h v VARIABLE' to look up their documentation).
 | 
					 | 
				
			||||||
;;   - Setting doom variables (which start with 'doom-' or '+').
 | 
					 | 
				
			||||||
;;
 | 
					 | 
				
			||||||
;; Here are some additional functions/macros that will help you configure Doom.
 | 
					 | 
				
			||||||
;;
 | 
					 | 
				
			||||||
;; - `load!' for loading external *.el files relative to this one
 | 
					 | 
				
			||||||
;; - `use-package!' for configuring packages
 | 
					 | 
				
			||||||
;; - `after!' for running code after a package has loaded
 | 
					 | 
				
			||||||
;; - `add-load-path!' for adding directories to the `load-path', relative to
 | 
					 | 
				
			||||||
;;   this file. Emacs searches the `load-path' when you load packages with
 | 
					 | 
				
			||||||
;;   `require' or `use-package'.
 | 
					 | 
				
			||||||
;; - `map!' for binding new keys
 | 
					 | 
				
			||||||
;;
 | 
					 | 
				
			||||||
;; To get information about any of these functions/macros, move the cursor over
 | 
					 | 
				
			||||||
;; the highlighted symbol at press 'K' (non-evil users must press 'C-c c k').
 | 
					 | 
				
			||||||
;; This will open documentation for it, including demos of how they are used.
 | 
					 | 
				
			||||||
;; Alternatively, use `C-h o' to look up a symbol (functions, variables, faces,
 | 
					 | 
				
			||||||
;; etc).
 | 
					 | 
				
			||||||
;;
 | 
					 | 
				
			||||||
;; You can also try 'gd' (or 'C-c c d') to jump to their definition and see how
 | 
					 | 
				
			||||||
;; they are implemented.
 | 
					 | 
				
			||||||
(setq doom-font "FiraCode Nerd Font:size=18")
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,193 +0,0 @@
 | 
				
			||||||
;;; init.el -*- lexical-binding: t; -*-
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
;; This file controls what Doom modules are enabled and what order they load
 | 
					 | 
				
			||||||
;; in. Remember to run 'doom sync' after modifying it!
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
;; NOTE Press 'SPC h d h' (or 'C-h d h' for non-vim users) to access Doom's
 | 
					 | 
				
			||||||
;;      documentation. There you'll find a link to Doom's Module Index where all
 | 
					 | 
				
			||||||
;;      of our modules are listed, including what flags they support.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
;; NOTE Move your cursor over a module's name (or its flags) and press 'K' (or
 | 
					 | 
				
			||||||
;;      'C-c c k' for non-vim users) to view its documentation. This works on
 | 
					 | 
				
			||||||
;;      flags as well (those symbols that start with a plus).
 | 
					 | 
				
			||||||
;;
 | 
					 | 
				
			||||||
;;      Alternatively, press 'gd' (or 'C-c c d') on a module to browse its
 | 
					 | 
				
			||||||
;;      directory (for easy access to its source code).
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
(doom! :input
 | 
					 | 
				
			||||||
       ;;bidi              ; (tfel ot) thgir etirw uoy gnipleh
 | 
					 | 
				
			||||||
       ;;chinese
 | 
					 | 
				
			||||||
       ;;japanese
 | 
					 | 
				
			||||||
       ;;layout            ; auie,ctsrnm is the superior home row
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
       :completion
 | 
					 | 
				
			||||||
       company           ; the ultimate code completion backend
 | 
					 | 
				
			||||||
       (corfu +orderless)  ; complete with cap(f), cape and a flying feather!
 | 
					 | 
				
			||||||
       ;;helm              ; the *other* search engine for love and life
 | 
					 | 
				
			||||||
       ;;ido               ; the other *other* search engine...
 | 
					 | 
				
			||||||
       ;;ivy               ; a search engine for love and life
 | 
					 | 
				
			||||||
       vertico           ; the search engine of the future
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
       :ui
 | 
					 | 
				
			||||||
       ;;deft              ; notational velocity for Emacs
 | 
					 | 
				
			||||||
       doom              ; what makes DOOM look the way it does
 | 
					 | 
				
			||||||
       doom-dashboard    ; a nifty splash screen for Emacs
 | 
					 | 
				
			||||||
       ;;doom-quit         ; DOOM quit-message prompts when you quit Emacs
 | 
					 | 
				
			||||||
       ;;(emoji +unicode)  ; 🙂
 | 
					 | 
				
			||||||
       hl-todo           ; highlight TODO/FIXME/NOTE/DEPRECATED/HACK/REVIEW
 | 
					 | 
				
			||||||
       indent-guides     ; highlighted indent columns
 | 
					 | 
				
			||||||
       ligatures         ; ligatures and symbols to make your code pretty again
 | 
					 | 
				
			||||||
       ;;minimap           ; show a map of the code on the side
 | 
					 | 
				
			||||||
       modeline          ; snazzy, Atom-inspired modeline, plus API
 | 
					 | 
				
			||||||
       ;;nav-flash         ; blink cursor line after big motions
 | 
					 | 
				
			||||||
       ;;neotree           ; a project drawer, like NERDTree for vim
 | 
					 | 
				
			||||||
       ophints           ; highlight the region an operation acts on
 | 
					 | 
				
			||||||
       (popup +defaults)   ; tame sudden yet inevitable temporary windows
 | 
					 | 
				
			||||||
       ;;tabs              ; a tab bar for Emacs
 | 
					 | 
				
			||||||
       treemacs          ; a project drawer, like neotree but cooler
 | 
					 | 
				
			||||||
       unicode           ; extended unicode support for various languages
 | 
					 | 
				
			||||||
       (vc-gutter +pretty) ; vcs diff in the fringe
 | 
					 | 
				
			||||||
       vi-tilde-fringe   ; fringe tildes to mark beyond EOB
 | 
					 | 
				
			||||||
       ;;window-select     ; visually switch windows
 | 
					 | 
				
			||||||
       workspaces        ; tab emulation, persistence & separate workspaces
 | 
					 | 
				
			||||||
       zen               ; distraction-free coding or writing
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
       :editor
 | 
					 | 
				
			||||||
       (evil +everywhere); come to the dark side, we have cookies
 | 
					 | 
				
			||||||
       file-templates    ; auto-snippets for empty files
 | 
					 | 
				
			||||||
       fold              ; (nigh) universal code folding
 | 
					 | 
				
			||||||
       (format +onsave)  ; automated prettiness
 | 
					 | 
				
			||||||
       ;;god               ; run Emacs commands without modifier keys
 | 
					 | 
				
			||||||
       ;;lispy             ; vim for lisp, for people who don't like vim
 | 
					 | 
				
			||||||
       ;;multiple-cursors  ; editing in many places at once
 | 
					 | 
				
			||||||
       ;;objed             ; text object editing for the innocent
 | 
					 | 
				
			||||||
       ;;parinfer          ; turn lisp into python, sort of
 | 
					 | 
				
			||||||
       ;;rotate-text       ; cycle region at point between text candidates
 | 
					 | 
				
			||||||
       snippets          ; my elves. They type so I don't have to
 | 
					 | 
				
			||||||
       word-wrap         ; soft wrapping with language-aware indent
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
       :emacs
 | 
					 | 
				
			||||||
       dired             ; making dired pretty [functional]
 | 
					 | 
				
			||||||
       electric          ; smarter, keyword-based electric-indent
 | 
					 | 
				
			||||||
       ;;eww               ; the internet is gross
 | 
					 | 
				
			||||||
       ;;ibuffer           ; interactive buffer management
 | 
					 | 
				
			||||||
       undo              ; persistent, smarter undo for your inevitable mistakes
 | 
					 | 
				
			||||||
       vc                ; version-control and Emacs, sitting in a tree
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
       :term
 | 
					 | 
				
			||||||
       ;;eshell            ; the elisp shell that works everywhere
 | 
					 | 
				
			||||||
       ;;shell             ; simple shell REPL for Emacs
 | 
					 | 
				
			||||||
       ;;term              ; basic terminal emulator for Emacs
 | 
					 | 
				
			||||||
       vterm             ; the best terminal emulation in Emacs
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
       :checkers
 | 
					 | 
				
			||||||
       syntax              ; tasing you for every semicolon you forget
 | 
					 | 
				
			||||||
       ;;(spell +flyspell) ; tasing you for misspelling mispelling
 | 
					 | 
				
			||||||
       ;;grammar           ; tasing grammar mistake every you make
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
       :tools
 | 
					 | 
				
			||||||
       ;;ansible
 | 
					 | 
				
			||||||
       ;;biblio            ; Writes a PhD for you (citation needed)
 | 
					 | 
				
			||||||
       ;;collab            ; buffers with friends
 | 
					 | 
				
			||||||
       ;;debugger          ; FIXME stepping through code, to help you add bugs
 | 
					 | 
				
			||||||
       ;;direnv
 | 
					 | 
				
			||||||
       ;;docker
 | 
					 | 
				
			||||||
       ;;editorconfig      ; let someone else argue about tabs vs spaces
 | 
					 | 
				
			||||||
       ;;ein               ; tame Jupyter notebooks with emacs
 | 
					 | 
				
			||||||
       (eval +overlay)     ; run code, run (also, repls)
 | 
					 | 
				
			||||||
       lookup              ; navigate your code and its documentation
 | 
					 | 
				
			||||||
       ;;lsp               ; M-x vscode
 | 
					 | 
				
			||||||
       magit             ; a git porcelain for Emacs
 | 
					 | 
				
			||||||
       ;;make              ; run make tasks from Emacs
 | 
					 | 
				
			||||||
       ;;pass              ; password manager for nerds
 | 
					 | 
				
			||||||
       ;;pdf               ; pdf enhancements
 | 
					 | 
				
			||||||
       ;;prodigy           ; FIXME managing external services & code builders
 | 
					 | 
				
			||||||
       ;;terraform         ; infrastructure as code
 | 
					 | 
				
			||||||
       ;;tmux              ; an API for interacting with tmux
 | 
					 | 
				
			||||||
       ;;tree-sitter       ; syntax and parsing, sitting in a tree...
 | 
					 | 
				
			||||||
       ;;upload            ; map local to remote projects via ssh/ftp
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
       :os
 | 
					 | 
				
			||||||
       (:if (featurep :system 'macos) macos)  ; improve compatibility with macOS
 | 
					 | 
				
			||||||
       ;;tty               ; improve the terminal Emacs experience
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
       :lang
 | 
					 | 
				
			||||||
       ;;agda              ; types of types of types of types...
 | 
					 | 
				
			||||||
       ;;beancount         ; mind the GAAP
 | 
					 | 
				
			||||||
       ;;(cc +lsp)         ; C > C++ == 1
 | 
					 | 
				
			||||||
       ;;clojure           ; java with a lisp
 | 
					 | 
				
			||||||
       ;;common-lisp       ; if you've seen one lisp, you've seen them all
 | 
					 | 
				
			||||||
       ;;coq               ; proofs-as-programs
 | 
					 | 
				
			||||||
       ;;crystal           ; ruby at the speed of c
 | 
					 | 
				
			||||||
       ;;csharp            ; unity, .NET, and mono shenanigans
 | 
					 | 
				
			||||||
       ;;data              ; config/data formats
 | 
					 | 
				
			||||||
       ;;(dart +flutter)   ; paint ui and not much else
 | 
					 | 
				
			||||||
       ;;dhall
 | 
					 | 
				
			||||||
       ;;elixir            ; erlang done right
 | 
					 | 
				
			||||||
       ;;elm               ; care for a cup of TEA?
 | 
					 | 
				
			||||||
       emacs-lisp        ; drown in parentheses
 | 
					 | 
				
			||||||
       ;;erlang            ; an elegant language for a more civilized age
 | 
					 | 
				
			||||||
       ;;ess               ; emacs speaks statistics
 | 
					 | 
				
			||||||
       ;;factor
 | 
					 | 
				
			||||||
       ;;faust             ; dsp, but you get to keep your soul
 | 
					 | 
				
			||||||
       ;;fortran           ; in FORTRAN, GOD is REAL (unless declared INTEGER)
 | 
					 | 
				
			||||||
       ;;fsharp            ; ML stands for Microsoft's Language
 | 
					 | 
				
			||||||
       ;;fstar             ; (dependent) types and (monadic) effects and Z3
 | 
					 | 
				
			||||||
       ;;gdscript          ; the language you waited for
 | 
					 | 
				
			||||||
       ;;(go +lsp)         ; the hipster dialect
 | 
					 | 
				
			||||||
       ;;(graphql +lsp)    ; Give queries a REST
 | 
					 | 
				
			||||||
       ;;(haskell +lsp)    ; a language that's lazier than I am
 | 
					 | 
				
			||||||
       ;;hy                ; readability of scheme w/ speed of python
 | 
					 | 
				
			||||||
       ;;idris             ; a language you can depend on
 | 
					 | 
				
			||||||
       ;;json              ; At least it ain't XML
 | 
					 | 
				
			||||||
       ;;(java +lsp)       ; the poster child for carpal tunnel syndrome
 | 
					 | 
				
			||||||
       ;;javascript        ; all(hope(abandon(ye(who(enter(here))))))
 | 
					 | 
				
			||||||
       ;;julia             ; a better, faster MATLAB
 | 
					 | 
				
			||||||
       ;;kotlin            ; a better, slicker Java(Script)
 | 
					 | 
				
			||||||
       ;;latex             ; writing papers in Emacs has never been so fun
 | 
					 | 
				
			||||||
       ;;lean              ; for folks with too much to prove
 | 
					 | 
				
			||||||
       ;;ledger            ; be audit you can be
 | 
					 | 
				
			||||||
       ;;lua               ; one-based indices? one-based indices
 | 
					 | 
				
			||||||
       markdown          ; writing docs for people to ignore
 | 
					 | 
				
			||||||
       ;;nim               ; python + lisp at the speed of c
 | 
					 | 
				
			||||||
       ;;nix               ; I hereby declare "nix geht mehr!"
 | 
					 | 
				
			||||||
       ;;ocaml             ; an objective camel
 | 
					 | 
				
			||||||
       org               ; organize your plain life in plain text
 | 
					 | 
				
			||||||
       ;;php               ; perl's insecure younger brother
 | 
					 | 
				
			||||||
       ;;plantuml          ; diagrams for confusing people more
 | 
					 | 
				
			||||||
       ;;graphviz          ; diagrams for confusing yourself even more
 | 
					 | 
				
			||||||
       ;;purescript        ; javascript, but functional
 | 
					 | 
				
			||||||
       ;;python            ; beautiful is better than ugly
 | 
					 | 
				
			||||||
       ;;qt                ; the 'cutest' gui framework ever
 | 
					 | 
				
			||||||
       ;;racket            ; a DSL for DSLs
 | 
					 | 
				
			||||||
       ;;raku              ; the artist formerly known as perl6
 | 
					 | 
				
			||||||
       ;;rest              ; Emacs as a REST client
 | 
					 | 
				
			||||||
       ;;rst               ; ReST in peace
 | 
					 | 
				
			||||||
       ;;(ruby +rails)     ; 1.step {|i| p "Ruby is #{i.even? ? 'love' : 'life'}"}
 | 
					 | 
				
			||||||
       (rust +lsp)       ; Fe2O3.unwrap().unwrap().unwrap().unwrap()
 | 
					 | 
				
			||||||
       ;;scala             ; java, but good
 | 
					 | 
				
			||||||
       ;;(scheme +guile)   ; a fully conniving family of lisps
 | 
					 | 
				
			||||||
       sh                ; she sells {ba,z,fi}sh shells on the C xor
 | 
					 | 
				
			||||||
       ;;sml
 | 
					 | 
				
			||||||
       ;;solidity          ; do you need a blockchain? No.
 | 
					 | 
				
			||||||
       ;;swift             ; who asked for emoji variables?
 | 
					 | 
				
			||||||
       ;;terra             ; Earth and Moon in alignment for performance.
 | 
					 | 
				
			||||||
       ;;web               ; the tubes
 | 
					 | 
				
			||||||
       ;;yaml              ; JSON, but readable
 | 
					 | 
				
			||||||
       ;;zig               ; C, but simpler
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
       :email
 | 
					 | 
				
			||||||
       ;;(mu4e +org +gmail)
 | 
					 | 
				
			||||||
       ;;notmuch
 | 
					 | 
				
			||||||
       ;;(wanderlust +gmail)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
       :app
 | 
					 | 
				
			||||||
       ;;calendar
 | 
					 | 
				
			||||||
       ;;emms
 | 
					 | 
				
			||||||
       ;;everywhere        ; *leave* Emacs!? You must be joking
 | 
					 | 
				
			||||||
       ;;irc               ; how neckbeards socialize
 | 
					 | 
				
			||||||
       ;;(rss +org)        ; emacs as an RSS reader
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
       :config
 | 
					 | 
				
			||||||
       ;;literate
 | 
					 | 
				
			||||||
       (default +bindings +smartparens))
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,49 +0,0 @@
 | 
				
			||||||
;; -*- no-byte-compile: t; -*-
 | 
					 | 
				
			||||||
;;; $DOOMDIR/packages.el
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
;; To install a package with Doom you must declare them here and run 'doom sync'
 | 
					 | 
				
			||||||
;; on the command line, then restart Emacs for the changes to take effect -- or
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
;; To install SOME-PACKAGE from MELPA, ELPA or emacsmirror:
 | 
					 | 
				
			||||||
;; (package! some-package)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
;; To install a package directly from a remote git repo, you must specify a
 | 
					 | 
				
			||||||
;; `:recipe'. You'll find documentation on what `:recipe' accepts here:
 | 
					 | 
				
			||||||
;; https://github.com/radian-software/straight.el#the-recipe-format
 | 
					 | 
				
			||||||
;; (package! another-package
 | 
					 | 
				
			||||||
;;   :recipe (:host github :repo "username/repo"))
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
;; If the package you are trying to install does not contain a PACKAGENAME.el
 | 
					 | 
				
			||||||
;; file, or is located in a subdirectory of the repo, you'll need to specify
 | 
					 | 
				
			||||||
;; `:files' in the `:recipe':
 | 
					 | 
				
			||||||
;; (package! this-package
 | 
					 | 
				
			||||||
;;   :recipe (:host github :repo "username/repo"
 | 
					 | 
				
			||||||
;;            :files ("some-file.el" "src/lisp/*.el")))
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
;; If you'd like to disable a package included with Doom, you can do so here
 | 
					 | 
				
			||||||
;; with the `:disable' property:
 | 
					 | 
				
			||||||
;; (package! builtin-package :disable t)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
;; You can override the recipe of a built in package without having to specify
 | 
					 | 
				
			||||||
;; all the properties for `:recipe'. These will inherit the rest of its recipe
 | 
					 | 
				
			||||||
;; from Doom or MELPA/ELPA/Emacsmirror:
 | 
					 | 
				
			||||||
;; (package! builtin-package :recipe (:nonrecursive t))
 | 
					 | 
				
			||||||
;; (package! builtin-package-2 :recipe (:repo "myfork/package"))
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
;; Specify a `:branch' to install a package from a particular branch or tag.
 | 
					 | 
				
			||||||
;; This is required for some packages whose default branch isn't 'master' (which
 | 
					 | 
				
			||||||
;; our package manager can't deal with; see radian-software/straight.el#279)
 | 
					 | 
				
			||||||
;; (package! builtin-package :recipe (:branch "develop"))
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
;; Use `:pin' to specify a particular commit to install.
 | 
					 | 
				
			||||||
;; (package! builtin-package :pin "1a2b3c4d5e")
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
;; Doom's packages are pinned to a specific commit and updated from release to
 | 
					 | 
				
			||||||
;; release. The `unpin!' macro allows you to unpin single packages...
 | 
					 | 
				
			||||||
;; (unpin! pinned-package)
 | 
					 | 
				
			||||||
;; ...or multiple packages
 | 
					 | 
				
			||||||
;; (unpin! pinned-package another-pinned-package)
 | 
					 | 
				
			||||||
;; ...Or *all* packages (NOT RECOMMENDED; will likely break things)
 | 
					 | 
				
			||||||
;; (unpin! t)
 | 
					 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue