new stable

This commit is contained in:
DACHXY 2024-12-29 14:14:12 +08:00
parent 9bc6a41617
commit f317b141f7
21 changed files with 179 additions and 61 deletions

50
flake.lock generated
View file

@ -151,11 +151,11 @@
]
},
"locked": {
"lastModified": 1733951536,
"narHash": "sha256-Zb5ZCa7Xj+0gy5XVXINTSr71fCfAv+IKtmIXNrykT54=",
"lastModified": 1735344290,
"narHash": "sha256-oJDtWPH1oJT34RJK1FSWjwX4qcGOBRkcNQPD0EbSfNM=",
"owner": "nix-community",
"repo": "home-manager",
"rev": "1318c3f3b068cdcea922fa7c1a0a1f0c96c22f5f",
"rev": "613691f285dad87694c2ba1c9e6298d04736292d",
"type": "github"
},
"original": {
@ -259,18 +259,19 @@
"xdph": "xdph"
},
"locked": {
"lastModified": 1735209119,
"narHash": "sha256-zarY0tzIHyWcaImbIJOYRbBbHdLRdNDkRfOmzPVapRk=",
"owner": "hyprwm",
"repo": "Hyprland",
"rev": "e75e2cdac79417ffdbbbe903f72668953483a4e7",
"type": "github"
"lastModified": 1735394862,
"narHash": "sha256-34vW0z18FAZajpAU2bFmGjiepnu+9Nm769blbbp679g=",
"ref": "refs/heads/main",
"rev": "2b01a5bcf62956a5d641a3367edcd35e103edfcd",
"revCount": 5597,
"submodules": true,
"type": "git",
"url": "https://github.com/hyprwm/Hyprland"
},
"original": {
"owner": "hyprwm",
"ref": "main",
"repo": "Hyprland",
"type": "github"
"submodules": true,
"type": "git",
"url": "https://github.com/hyprwm/Hyprland"
}
},
"hyprland-plugins": {
@ -520,29 +521,13 @@
"type": "github"
}
},
"nixpkgs-unstable_2": {
"locked": {
"lastModified": 1733749988,
"narHash": "sha256-+5qdtgXceqhK5ZR1YbP1fAUsweBIrhL38726oIEAtDs=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "bc27f0fde01ce4e1bfec1ab122d72b7380278e68",
"type": "github"
},
"original": {
"owner": "nixos",
"ref": "nixpkgs-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs_2": {
"locked": {
"lastModified": 1734991663,
"narHash": "sha256-8T660guvdaOD+2/Cj970bWlQwAyZLKrrbkhYOFcY1YE=",
"lastModified": 1735264675,
"narHash": "sha256-MgdXpeX2GuJbtlBrH9EdsUeWl/yXEubyvxM1G+yO4Ak=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "6c90912761c43e22b6fb000025ab96dd31c971ff",
"rev": "d49da4c08359e3c39c4e27c74ac7ac9b70085966",
"type": "github"
},
"original": {
@ -601,7 +586,6 @@
"hyprland-plugins": "hyprland-plugins",
"nix-index-database": "nix-index-database",
"nixpkgs": "nixpkgs_2",
"nixpkgs-unstable": "nixpkgs-unstable_2",
"yazi": "yazi"
}
},

View file

@ -3,9 +3,10 @@
inputs = {
nixpkgs.url = "github:nixos/nixpkgs/nixos-24.11";
nixpkgs-unstable.url = "github:nixos/nixpkgs/nixpkgs-unstable";
# nixpkgs.url = "github:nixos/nixpkgs/nixpkgs-unstable";
home-manager.url = "github:nix-community/home-manager/release-24.11";
# home-manager.url = "github:nix-community/home-manager";
home-manager.inputs.nixpkgs.follows = "nixpkgs";
nix-index-database.url = "github:nix-community/nix-index-database";
@ -20,7 +21,11 @@
};
# Not used yet due to some skill issue
hyprland.url = "github:hyprwm/Hyprland/main";
hyprland = {
type = "git";
url = "https://github.com/hyprwm/Hyprland";
submodules = true;
};
hyprland-plugins = {
url = "github:hyprwm/hyprland-plugins";
inputs.hyprland.follows = "hyprland";
@ -32,11 +37,10 @@
};
outputs =
{ self, nixpkgs-unstable, nixpkgs, nix-index-database, ... }@inputs:
{ self, nixpkgs, nix-index-database, ... }@inputs:
let
system = "x86_64-linux";
pkgs = nixpkgs.legacyPackages.${system};
pkgsUnstable = nixpkgs-unstable.legacyPackages.${system};
in
{
formatter.x86_64-linux =
@ -49,7 +53,6 @@
];
specialArgs = {
inherit inputs;
inherit pkgsUnstable;
inherit system;
};
};
@ -61,7 +64,6 @@
];
specialArgs = {
inherit inputs;
inherit pkgsUnstable;
inherit system;
};
};

View file

@ -1,3 +1,5 @@
debug:disable_logs = false
source = ~/.config/hypr/monitor.conf
source = ~/.config/hypr/exec.conf
source = ~/.config/hypr/bind.conf

View file

@ -62,7 +62,7 @@ master {
}
gestures {
workspace_swipe = off
workspace_swipe = true
}
misc {

View file

@ -47,6 +47,8 @@ layerrule = blur, logout_dialog
layerrule = unset, rofi
layerrule = blur, rofi
layerrule = ignorezero, rofi
layerrule = unset, swaync-control-center
layerrule = unset, swaync-notification-window
layerrule = blur, swaync-control-center
layerrule = blur, swaync-notification-window
layerrule = ignorezero, swaync-control-center

View file

@ -120,7 +120,7 @@
"format-critical": "{temperatureC}°C {icon}",
"format": " {temperatureC}°C {icon} ",
"format-icons": ["🔥"],
"on-click-right": "kitty -c ~/.config/kitty/kitty.conf --title nvtop sh -c 'nvtop'"
"on-click-right": "kitty -c ~/.config/kitty/kitty.conf --title btop sh -c 'btop'"
},
"custom/swaync": {

View file

@ -6,6 +6,7 @@
home.homeDirectory = "/home/danny";
home.stateVersion = "24.11";
# home.stateVersion = "25.05";
# Let Home Manager install and manage itself.
programs.home-manager.enable = true;

View file

@ -6,7 +6,7 @@
enable = true;
package = inputs.hyprland.packages.${pkgs.stdenv.hostPlatform.system}.hyprland;
xwayland.enable = true;
systemd.enable = false;
systemd.enable = true;
plugins = [
inputs.hyprland-plugins.packages.${pkgs.stdenv.hostPlatform.system}.hyprbars
@ -17,7 +17,7 @@
"$mod" = "SUPER";
bind = [
"$mod, F, exec, firefox"
"$mod, enter, exec, kitty"
"$mod, enter, exec, ghostty"
]
++ (
# workspaces

View file

@ -0,0 +1,16 @@
{ ... }:
{
# Scheduled auto upgrade system (this is only for system upgrades,
# if you want to upgrade cargo\npm\pip global packages, docker containers or different part of the system
# or get really full system upgrade, use `topgrade` CLI utility manually instead.
# I recommend running `topgrade` once a week or at least once a month)
system.autoUpgrade = {
enable = true;
operation = "switch"; # If you don't want to apply updates immediately, only after rebooting, use `boot` option in this case
flake = "/etc/nixos";
flags = [ "--update-input" "nixpkgs" "--update-input" "rust-overlay" "--commit-lock-file" ];
dates = "weekly";
# channel = "https://nixos.org/channels/nixos-unstable";
};
}

View file

@ -12,7 +12,6 @@
./networking.nix
./nixsettings.nix
./packages.nix
./polkit.nix
./programs.nix
./security.nix
./services.nix
@ -24,5 +23,9 @@
./dn-ca.nix
./environment.nix
./virtualization.nix
./display-manager.nix
./gc.nix
./polkit.nix
# ./auto-upgrade.nix
];
}

View file

@ -0,0 +1,25 @@
{ pkgs, ... }:
{
services = {
greetd = {
enable = false;
settings = {
default_session = {
command = "${pkgs.greetd.tuigreet}/bin/tuigreet --time --time-format '%I:%M %p | %a %h | %F' --cmd Hyprland";
user = "danny";
};
};
};
displayManager = {
sddm.wayland.enable = true;
sddm.enable = true;
sddm.theme = "${import ./sddm-theme.nix { inherit pkgs; }}";
};
};
environment.systemPackages = with pkgs; [
greetd.tuigreet
];
}

View file

@ -14,9 +14,7 @@ in
{
environment.systemPackages = [ offload ];
environment.variables = {
NIXOS_OZONE_WL = "1";
ELECTRON_OZONE_PLATFORM_HINT = "auto";
GSETTINGS_SCHEMA_DIR = "${pkgs.gtk3}/share/gsettings-schemas/${pkgs.gtk3.name}/glib-2.0/schemas";
XCURSOR_SIZE = "24";
};
}

View file

@ -8,6 +8,7 @@
noto-fonts-cjk-serif
noto-fonts-emoji
# nerd-fonts.caskaydia-cove
(nerdfonts.override { fonts = [ "CascadiaCode" ]; })
];

16
system/modules/gc.nix Normal file
View file

@ -0,0 +1,16 @@
{ ... }:
{
# Optimize storage and automatic scheduled GC running
# If you want to run GC manually, use commands:
# `nix-store --optimize` for finding and eliminating redundant copies of identical store paths
# `nix-store --gc` for optimizing the nix store and removing unreferenced and obsolete store paths
# `nix-collect-garbage -d` for deleting old generations of user profiles
nix.settings.auto-optimise-store = true;
nix.optimise.automatic = true;
nix.gc = {
automatic = true;
dates = "weekly";
options = "--delete-older-than 14d";
};
}

View file

@ -1,14 +1,24 @@
{ pkgs, inputs, ... }:
{ pkgs, inputs, system, ... }:
{
programs.hyprland = {
enable = true;
package = inputs.hyprland.packages.${system}.hyprland;
withUWSM = true;
xwayland = { enable = true; };
portalPackage = pkgs.xdg-desktop-portal-hyprland;
xwayland.enable = true;
portalPackage = inputs.hyprland.packages.${system}.xdg-desktop-portal-hyprland;
# portalPackage = pkgs.xdg-desktop-portal-hyprland;
};
environment.sessionVariables = {
NIXOS_OZONE_WL = "1";
WLR_NO_HARDWARE_CURSORS = "1";
};
environment.systemPackages = with pkgs; [
pyprland
# hyprlock
hyprcursor
hyprsunset
hyprpaper
hyprpicker

View file

@ -21,10 +21,11 @@
enable = true;
type = "fcitx5";
fcitx5.addons = with pkgs; [
rime-data
fcitx5-gtk
fcitx5-rime
fcitx5-mozc # Japanese
fcitx5-chinese-addons
fcitx5-rime # Bopomofo
rime-data
];
};

View file

@ -5,7 +5,7 @@
enable = true;
wlr.enable = false;
xdgOpenUsePortal = false;
extraPortals = [ pkgs.xdg-desktop-portal-hyprland pkgs.xdg-desktop-portal-gtk pkgs.xdg-desktop-portal-wlr ];
extraPortals = [ pkgs.xdg-desktop-portal-gtk pkgs.xdg-desktop-portal-wlr ];
};
programs = {

View file

@ -0,0 +1,19 @@
[toolchain]
channel = "nightly"
components = [
"rust-src",
"rust-analyzer",
"rustc-codegen-cranelift",
"miri",
"llvm-tools",
"rust-docs-json",
]
targets = [
"wasm32-unknown-unknown",
"wasm32-wasi",
"x86_64-pc-windows-gnu",
"x86_64-unknown-linux-gnu",
"aarch64-unknown-linux-gnu",
"x86_64-unknown-linux-musl",
]
profile = "default"

30
system/modules/rust.nix Normal file
View file

@ -0,0 +1,30 @@
{ inputs, pkgs, ... }:
{
# Apply the overlay to the package set
# nixpkgs.overlays = [
# inputs.rust-overlay.overlays.default
# ];
environment.systemPackages = with pkgs; [
# (rust-bin.fromRustupToolchainFile ./rust-toolchain.toml)
taplo #toml formatter & lsp
cargo-watch
cargo-deny
cargo-audit
cargo-update
cargo-edit
cargo-outdated
cargo-license
cargo-tarpaulin
cargo-cross
cargo-zigbuild
cargo-nextest
cargo-spellcheck
cargo-modules
cargo-bloat
cargo-unused-features
bacon
evcxr #rust repl
];
}

View file

@ -1,8 +1,21 @@
{ pkgs, ... }:
{
security.polkit.enable = true;
security.pam.services.swaylock = { };
security.pam.services.swaylock.fprintAuth = false;
security.pam.services.sddm.enableGnomeKeyring = true;
services.udev.packages = [ pkgs.yubikey-personalization ];
security.pam.u2f = {
enable = true;
settings.cue = true;
control = "sufficient";
};
security.pam.services = {
greetd.u2fAuth = true;
sudo.u2fAuth = true;
# hyprlock.u2fAuth = true;
};
environment.systemPackages = with pkgs; [
yubikey-manager
];
}

View file

@ -31,11 +31,6 @@
xkb.layout = "us";
};
displayManager = {
sddm.wayland.enable = true;
sddm.enable = true;
sddm.theme = "${import ./sddm-theme.nix { inherit pkgs; }}";
};
# USB auto mount
gvfs.enable = true;