NixOS 24.5个人配置备份

configuration.nix

{ config, pkgs, lib, ... }:

{
    imports = [
        ./hardware-configuration.nix
    ];
    boot.loader.systemd-boot.enable = true;
    boot.loader.efi.canTouchEfiVariables = true;
    networking.hostName = "nixos";
    networking.networkmanager.enable = true;
    time.timeZone = "Asia/Shanghai";
    i18n.defaultLocale = "zh_CN.UTF-8";
    i18n.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";
    };
    services.xserver.enable = true;
    services.xserver.displayManager.gdm.enable = true;
    services.xserver.desktopManager.gnome.enable = true;
    services.xserver.xkb = {
        layout = "cn";
        variant = "";
    };
    services.printing.enable = true;
    hardware.pulseaudio.enable = false;
    security.rtkit.enable = true;
    services.pipewire = {
        enable = true;
        alsa.enable = true;
        alsa.support32Bit = true;
        pulse.enable = true;
    };
    users.users.demodeom = {
        # 设置默认终端为 zsh
        shell = "/etc/profiles/per-user/demodeom/bin/zsh";
        isNormalUser = true;
        description = "demodeom";
        extraGroups = [ "networkmanager" "wheel" ];
        packages = with pkgs; [
            #  thunderbird
        ];
    };
    programs.firefox.enable = true;
    # 允许UnFree软件
    nixpkgs.config.allowUnfree = true;
    # 系统级别常用的软件
    environment.systemPackages = with pkgs; [
        vim
        wget
        pkgs.brave
        pkgs.clash-verge-rev
        pkgs.virtualbox
        git
        zsh
    ];
    # 启动 flakes
    nix.settings.experimental-features = [ "nix-command" "flakes" ];
    # 输入法 Fcitx 5
    i18n.inputMethod = {
        enabled = "fcitx5";
        fcitx5.addons = with pkgs; [
            fcitx5-chinese-addons
            fcitx5-gtk
        ];
    };
    # 修复默认中文字体显示问题
    fonts.fontDir.enable = true;  
    fonts = {
        packages = with pkgs; [
            fira-code-nerdfont
            noto-fonts-cjk-sans
            noto-fonts-cjk-serif
            noto-fonts-emoji
        ];
        fontconfig = {
            antialias = true;
            hinting.enable = true;
            defaultFonts = {
                emoji = [ "Noto Color Emoji" ];
                monospace = [ "FiraCode Nerd Font" ];
                sansSerif = [ "Noto Sans CJK SC" ];
                serif = [ "Noto Serif CJK SC" ];
            };
        };
    };
    # 修复安装软件报错 openssl-1.1.1 问题
    nixpkgs.config.permittedInsecurePackages = [
        "openssl-1.1.1w"
    ];
    # VirtualBox 虚拟机配置
    # nixpkgs.config.allowUnfree = true;
    virtualisation.virtualbox.host.enable = true;
    users.extraGroups.vboxusers.members = [ "demodeom" ];
    virtualisation.virtualbox.host.enableExtensionPack = true;
    virtualisation.virtualbox.host.enableHardening = false;
    virtualisation.virtualbox.guest.enable = true;
    virtualisation.virtualbox.guest.draganddrop = true;

    system.stateVersion = "24.05";
}

flake.nix

{
    description = "A simple NixOS flake";
    inputs = {
        # NixOS 官方软件源,这里使用 nixos-24.05 分支
        nixpkgs.url = "github:NixOS/nixpkgs/nixos-24.05";
        # home manager 配置
        home-manager = {
            url = "github:nix-community/home-manager/release-24.05";
            inputs.nixpkgs.follows = "nixpkgs";
        };
    };

    outputs = inputs@{ nixpkgs, home-manager, ... }:{
        # 因此请将下面的 my-nixos 替换成你的主机名称
        nixosConfigurations.nixos = nixpkgs.lib.nixosSystem {
            system = "x86_64-linux";
            modules = [
                # 这里导入之前我们使用的 configuration.nix,这样旧的配置文件仍然能生效
                ./configuration.nix
                # 将 home-manager 配置为 nixos 的一个 module
                # 这样在 nixos-rebuild switch 时,home-manager 配置也会被自动部署
                home-manager.nixosModules.home-manager
                {
                    home-manager.useGlobalPkgs = true;
                    home-manager.useUserPackages = true;

                    # 这里的 ryan 也得替换成你的用户名
                    home-manager.users.demodeom = import ./home.nix;
                }
            ];
        };
    };

}

home.nix

{ config, pkgs, ... }:
{
    home.username = "demodeom";
    home.homeDirectory = "/home/demodeom";

    dconf.settings = {
        "org/gnome/shell" = {
            disable-user-extensions = false;
            enabled-extensions = [
                "user-theme@gnome-shell-extensions.gcampax.github.com"
                "dash-to-panel@jderose9.github.com"
                "kimpanel@kde.org"
                "appindicatorsupport@rgcjonas.gmail.com"
            ];
        };
        # 启用主题后,系统 UI 显示有问题;暂时未找到原因,先关闭    
        #"org/gnome/shell/extensions/user-theme" = {
        #  name = "palenight";
        #};
    };


    # 通过 home.packages 安装一些常用的软件
    # 这些软件将仅在当前用户下可用,不会影响系统级别的配置
    # 建议将所有 GUI 软件,以及与 OS 关系不大的 CLI 软件,都通过 home.packages 安装
    home.packages = with pkgs;[
        pkgs.sublime4
        pkgs.gnome.gnome-tweaks
        pkgs.gnome-extension-manager
        pkgs.ocs-url
        gnomeExtensions.user-themes
        palenight-theme
        gnomeExtensions.dash-to-panel
        gnomeExtensions.kimpanel
        gnomeExtensions.appindicator
        pkgs.vscode
        #pkgs.typora
        pkgs.jetbrains.pycharm-professional
        pkgs.motrix
        #pkgs.virtualbox
        zsh
        oh-my-zsh
        mpv
        ffmpeg_7-full
    ];
    # git 相关配置
    programs.git = {
        enable = true;
        userName = "Demo deom";
        userEmail = "demodeom@outlook.com";
    };

    programs.zsh = {
        enable = true;
        enableCompletion = true;
        syntaxHighlighting.enable = true;
        autosuggestion.enable = true;
        shellAliases = {
            ll = "ls -l";
            edit = "sudo -e";
            update = "sudo nixos-rebuild switch";
        };
        history.size = 10000;
        history.ignoreAllDups = true;
        history.path = "$HOME/.zsh_history";
        history.ignorePatterns = ["rm *" "pkill *" "cp *"];
        # With Oh-My-Zsh:
        oh-my-zsh = {
            enable = true;
            plugins = ["git"];
            theme = "robbyrussell";
        };
    };

    gtk = {
        enable = true;

        iconTheme = {
            name = "Papirus-Dark";
            package = pkgs.papirus-icon-theme;
        };

        theme = {
            name = "palenight";
            package = pkgs.palenight-theme;
        };

        cursorTheme = {
            name = "Numix-Cursor";
            package = pkgs.numix-cursor-theme;
        };

        gtk3.extraConfig = {
            Settings = ''
            gtk-application-prefer-dark-theme=1
            '';
        };

        gtk4.extraConfig = {
            Settings = ''
            gtk-application-prefer-dark-theme=1
            '';
        };
    };
    home.sessionVariables.GTK_THEME = "palenight";
    home.stateVersion = "24.05";
    programs.home-manager.enable = true;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值