初步配置,等 GPD 到货后根据实际情况调整
This commit is contained in:
parent
5c2b9a3cfa
commit
d1f1cb7715
13
README.md
13
README.md
@ -1,3 +1,14 @@
|
|||||||
# gpd-configurations
|
# gpd-configurations
|
||||||
|
|
||||||
GPD Win Max 配置
|
GPD Win Max 配置
|
||||||
|
|
||||||
|
## 构建
|
||||||
|
|
||||||
|
```bash
|
||||||
|
nixos-rebuild switch --flake 'git+https://git.sense-t.eu.org/NixOS/gpd-configurations#gpd'
|
||||||
|
```
|
||||||
|
|
||||||
|
## Todo
|
||||||
|
|
||||||
|
- [] 无状态 `/` 分区
|
||||||
|
- [] wsproxy on podman
|
||||||
|
20
configuration.nix
Normal file
20
configuration.nix
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
# NixOS configurations file.
|
||||||
|
{config, pkgs, lib,...}: {
|
||||||
|
system.stateVersion = "23.05";
|
||||||
|
imports = [
|
||||||
|
# Include the results of the hardware scan.
|
||||||
|
./hardware-configuration.nix
|
||||||
|
|
||||||
|
# User custom configurations.
|
||||||
|
./global
|
||||||
|
];
|
||||||
|
|
||||||
|
|
||||||
|
boot.plymouth.enable = true;
|
||||||
|
|
||||||
|
boot.loader.systemd-boot.enable = true;
|
||||||
|
boot.loader.efi.canTouchEfiVariables = true;
|
||||||
|
|
||||||
|
# Use xanmod kernel
|
||||||
|
boot.kernelPackages = pkgs.linuxKernel.kernels.linux_xanmod;
|
||||||
|
}
|
62
flake.nix
Normal file
62
flake.nix
Normal file
@ -0,0 +1,62 @@
|
|||||||
|
{
|
||||||
|
description = "NixOS configuration for GPD Win Max";
|
||||||
|
|
||||||
|
nixConfig = {
|
||||||
|
substituters = [
|
||||||
|
"https://mirrors.ustc.edu.cn/nix-channels/store" # 中科大
|
||||||
|
"https://mirrors.tuna.tsinghua.edu.cn/nix-channels/store" # 清华
|
||||||
|
"https://mirrors.bfsu.edu.cn/nix-channels/store" # 北外
|
||||||
|
"https://mirror.sjtu.edu.cn/nix-channels/store" # 交大
|
||||||
|
"https://cache.nixos.org/"
|
||||||
|
];
|
||||||
|
|
||||||
|
trusted-users = [
|
||||||
|
"root"
|
||||||
|
"@wheel"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
|
inputs = {
|
||||||
|
nixpkgs.url = "nixpkgs/nixos-23.05";
|
||||||
|
impermanence.url = "github:nix-community/impermanence";
|
||||||
|
|
||||||
|
home-manager = {
|
||||||
|
url = "github:nix-community/home-manager/release-23.05";
|
||||||
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
};
|
||||||
|
|
||||||
|
inputs.nixos-cn = {
|
||||||
|
url = "github:nixos-cn/flakes";
|
||||||
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
outputs = {self, nixpkgs, home-manager, nixos-cn,...}: {
|
||||||
|
nixosConfigurations.gpd = nixpkgs.lib.nixosSystem rec {
|
||||||
|
system = "x86_64-linux";
|
||||||
|
|
||||||
|
specialArgs = {
|
||||||
|
pkgs = import nixpkgs {
|
||||||
|
system = system;
|
||||||
|
config.allowUnfree = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
cn-pkgs = import nixos-cn {
|
||||||
|
system = system;
|
||||||
|
config.allowUnfree = true;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
modules = [
|
||||||
|
./configuration.nix
|
||||||
|
impermanence.nixosModules.impermanence
|
||||||
|
|
||||||
|
home-manager.nixosModules.home-manager {
|
||||||
|
home-manager.useGlobalPkgs = true;
|
||||||
|
home-manager.useUserPackages = true;
|
||||||
|
home-manager.users = import ./per-user;
|
||||||
|
}
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
8
global/default.nix
Normal file
8
global/default.nix
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
{
|
||||||
|
imports = [
|
||||||
|
./system-configuration.nix
|
||||||
|
./software-configuration.nix
|
||||||
|
./user-configuration.nix
|
||||||
|
./font-configuration.nix
|
||||||
|
];
|
||||||
|
}
|
36
global/font-configuration.nix
Normal file
36
global/font-configuration.nix
Normal file
@ -0,0 +1,36 @@
|
|||||||
|
{pkgs, ...}: {
|
||||||
|
fonts= {
|
||||||
|
fonts = with pkgs;[
|
||||||
|
noto-fonts
|
||||||
|
noto-fonts-cjk
|
||||||
|
noto-fonts-emoji
|
||||||
|
liberation_ttf
|
||||||
|
fira-code
|
||||||
|
fira-code-symbols
|
||||||
|
source-han-sans
|
||||||
|
source-han-serif
|
||||||
|
source-code-pro
|
||||||
|
font-awesome_5
|
||||||
|
powerline-fonts
|
||||||
|
powerline-symbols
|
||||||
|
(nerdfonts.override { fonts = [ "FiraCode" "DroidSansMono" ]; })
|
||||||
|
];
|
||||||
|
|
||||||
|
fontconfig.cache32Bit = true;
|
||||||
|
|
||||||
|
fontconfig.defaultFonts = {
|
||||||
|
serif = [
|
||||||
|
"Source Han Serif"
|
||||||
|
];
|
||||||
|
|
||||||
|
sansSerif = [
|
||||||
|
"Source Han Sans"
|
||||||
|
];
|
||||||
|
|
||||||
|
monospace = [
|
||||||
|
"Fira Code"
|
||||||
|
"Source Han Serif SC"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
51
global/software-configuration.nix
Normal file
51
global/software-configuration.nix
Normal file
@ -0,0 +1,51 @@
|
|||||||
|
{pkgs, ...}: {
|
||||||
|
xdg.portal = {
|
||||||
|
enable = true;
|
||||||
|
wlr.enable = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
# Enable automatic login for the user.
|
||||||
|
services = {
|
||||||
|
flatpak.enable = true;
|
||||||
|
greetd = {
|
||||||
|
enable = true;
|
||||||
|
settings = rec {
|
||||||
|
initial_session = {
|
||||||
|
user = "user";
|
||||||
|
command = "${pkgs.greetd.greetd}/bin/agreety --cmd Hyprland";
|
||||||
|
};
|
||||||
|
default_session = initial_session;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
xserver = {
|
||||||
|
layout = "cn";
|
||||||
|
xkbVariant = "";
|
||||||
|
libinput = {
|
||||||
|
mouse = {
|
||||||
|
accelProfile = "flat";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
# List packages installed in system profile. To search, run:
|
||||||
|
# $ nix search wget
|
||||||
|
environment.systemPackages = with pkgs; [
|
||||||
|
kitty
|
||||||
|
rofi
|
||||||
|
hyprland-protocols
|
||||||
|
hyprland-share-picker
|
||||||
|
xdg-desktop-portal-hyprland
|
||||||
|
];
|
||||||
|
|
||||||
|
programs = {
|
||||||
|
hyprland = {
|
||||||
|
enable = true;
|
||||||
|
xwayland = {
|
||||||
|
enable = true;
|
||||||
|
hidpi = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
27
global/system-configuration.nix
Normal file
27
global/system-configuration.nix
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
{
|
||||||
|
sound.enable = true;
|
||||||
|
networking.networkmanager.enable = true;
|
||||||
|
time.timeZone = "Asia/Shanghai";
|
||||||
|
security.sudo.wheelNeedsPassword = false;
|
||||||
|
|
||||||
|
hardware = {
|
||||||
|
pulseaudio.enable = true;
|
||||||
|
opengl.enable = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
# Select internationalisation properties.
|
||||||
|
i18n = {
|
||||||
|
defaultLocale = "zh_CN.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";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
16
global/user-configuration.nix
Normal file
16
global/user-configuration.nix
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
{
|
||||||
|
users= {
|
||||||
|
mutableUsers = false;
|
||||||
|
users = {
|
||||||
|
user = {
|
||||||
|
isNormalUser = true;
|
||||||
|
description = "Default user";
|
||||||
|
extraGroups = [
|
||||||
|
"networkmanager"
|
||||||
|
"wheel"
|
||||||
|
"input"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
3
home/default.nix
Normal file
3
home/default.nix
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
{
|
||||||
|
user = import ./user;
|
||||||
|
}
|
11
home/user/default.nix
Normal file
11
home/user/default.nix
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
{pkgs, ...}: {
|
||||||
|
home = import ./home.nix;
|
||||||
|
programs = import ./programs.nix;
|
||||||
|
systemd.user.services = import ./sevices.nix;
|
||||||
|
|
||||||
|
i18n.inputMethod.enabled = "fcitx5";
|
||||||
|
i18n.inputMethod.fcitx5.addons = with pkgs; [
|
||||||
|
fcitx5-configtool
|
||||||
|
fcitx5-gtk
|
||||||
|
];
|
||||||
|
}
|
27
home/user/home.nix
Normal file
27
home/user/home.nix
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
{pkgs, ...}: {
|
||||||
|
stateVersion = "23.05"; # Static
|
||||||
|
username = "GPD User";
|
||||||
|
homeDirectory = "/home/user";
|
||||||
|
|
||||||
|
packages = with pkgs; [
|
||||||
|
btop
|
||||||
|
bat
|
||||||
|
thefuck
|
||||||
|
ranger
|
||||||
|
icdiff
|
||||||
|
podman
|
||||||
|
jdk17
|
||||||
|
];
|
||||||
|
|
||||||
|
shellAliases = {
|
||||||
|
cao = "fuck";
|
||||||
|
top = "btop";
|
||||||
|
ls = "ls --color=auto";
|
||||||
|
cat = "bat -p --paging=never -u";
|
||||||
|
diff="icdiff";
|
||||||
|
};
|
||||||
|
|
||||||
|
file = {
|
||||||
|
# TODO: hyprland
|
||||||
|
};
|
||||||
|
}
|
39
home/user/programs.nix
Normal file
39
home/user/programs.nix
Normal file
@ -0,0 +1,39 @@
|
|||||||
|
{pkgs, ...}: {
|
||||||
|
home-manager.enable = true;
|
||||||
|
|
||||||
|
vim = {
|
||||||
|
enable = true;
|
||||||
|
defaultEditor = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
zsh = {
|
||||||
|
enable = true;
|
||||||
|
enableSyntaxHighlighting = true;
|
||||||
|
|
||||||
|
oh-my-zsh = {
|
||||||
|
enable = true;
|
||||||
|
plugins = [ "sudo" "git" "golang" "thefuck" "kubectl" "emoji" "pip" "npm" "yarn" "vscode" ];
|
||||||
|
theme = "agnoster";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
waybar = {
|
||||||
|
enable = true;
|
||||||
|
systemd.enable = true;
|
||||||
|
settings = {
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
style = ''
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
kitty = {
|
||||||
|
enable = true;
|
||||||
|
font = pkgs.
|
||||||
|
|
||||||
|
shellIntegration = {
|
||||||
|
enableZshIntegration = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
4
home/user/services.nix
Normal file
4
home/user/services.nix
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
# Will used for podman
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
Reference in New Issue
Block a user