Compare commits

..

No commits in common. "586b4a27cd485b708e634ffd416ff3d784825d5c" and "1d50e3276a8ddf0a03fcb2333bcb4936058a547a" have entirely different histories.

30 changed files with 321 additions and 354 deletions

View file

@ -3,9 +3,6 @@
This is a repository that implements liminalOS, my personal Linux distribution This is a repository that implements liminalOS, my personal Linux distribution
based on [NixOS](https://nixos.org/). based on [NixOS](https://nixos.org/).
Time wasted writing Nix code:
![](https://wakatime.com/badge/user/018dc5b8-ba5a-4572-a38a-b526d1b28240/project/c59b3d5e-0c9c-4bd5-a752-e75522ab0cdc.svg)
<!-- prettier-ignore --> <!-- prettier-ignore -->
> **lim·i·nal** > **lim·i·nal**
> 1. between or belonging to two different places, states, etc. > 1. between or belonging to two different places, states, etc.

290
flake.nix
View file

@ -28,7 +28,8 @@
inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs.follows = "nixpkgs";
}; };
lix-module = { lix-module = {
url = "https://git.lix.systems/lix-project/nixos-module/archive/2.90.0.tar.gz"; url =
"https://git.lix.systems/lix-project/nixos-module/archive/2.90.0.tar.gz";
inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs.follows = "nixpkgs";
}; };
apple-silicon = { apple-silicon = {
@ -37,157 +38,146 @@
}; };
}; };
outputs = { outputs = { self, nixpkgs, home-manager, catppuccin, lanzaboote, stablepkgs
self, , bleedingpkgs, lix-module, nix-darwin, nix-homebrew, apple-silicon, ...
nixpkgs, }@inputs: rec {
home-manager, formatter.x86_64-linux = nixpkgs.legacyPackages.x86_64-linux.nixfmt;
catppuccin, nixosConfigurations = {
lanzaboote, demeter = nixpkgs.lib.nixosSystem {
stablepkgs, specialArgs = { inherit inputs; };
bleedingpkgs, system = "x86_64-linux";
lix-module, modules = [
nix-darwin, ./hosts/demeter
nix-homebrew, ./modules/nixos/gaming
apple-silicon, ./modules/nixos/audio
... ./modules/nixos/networking
} @ inputs: rec { ./modules/nixos/fonts
formatter.x86_64-linux = nixpkgs.legacyPackages.x86_64-linux.alejandra; ./modules/nixos/greeter
nixosConfigurations = { ./modules/nixos/core
demeter = nixpkgs.lib.nixosSystem {
specialArgs = {inherit inputs;};
system = "x86_64-linux";
modules = [
./hosts/demeter
./modules/nixos/gaming
./modules/nixos/audio
./modules/nixos/networking
./modules/nixos/fonts
./modules/nixos/greeter
./modules/nixos/core
catppuccin.nixosModules.catppuccin catppuccin.nixosModules.catppuccin
lix-module.nixosModules.default lix-module.nixosModules.default
lanzaboote.nixosModules.lanzaboote lanzaboote.nixosModules.lanzaboote
home-manager.nixosModules.home-manager home-manager.nixosModules.home-manager
{ {
home-manager.useGlobalPkgs = true; home-manager.useGlobalPkgs = true;
home-manager.useUserPackages = true; home-manager.useUserPackages = true;
home-manager.backupFileExtension = "backup"; home-manager.backupFileExtension = "backup";
home-manager.users.youwen = { home-manager.users.youwen = {
imports = [ imports = [
./users/youwen/linux/desktop ./users/youwen/linux/desktop
./users/youwen/linux/packages/x86_64 ./users/youwen/linux/packages/x86_64
./users/youwen/linux/programs ./users/youwen/linux/programs
./users/youwen/common/neofetch ./users/youwen/common/neofetch
./users/youwen/common ./users/youwen/common
inputs.catppuccin.homeManagerModules.catppuccin inputs.catppuccin.homeManagerModules.catppuccin
]; ];
}; };
} }
];
};
callisto = nixpkgs.lib.nixosSystem {
specialArgs = {inherit inputs;};
system = "aarch64-linux";
modules = [
./hosts/callisto
./modules/nixos/audio
./modules/nixos/networking
./modules/nixos/fonts
./modules/nixos/greeter
./modules/nixos/core
apple-silicon.nixosModules.apple-silicon-support
catppuccin.nixosModules.catppuccin
lix-module.nixosModules.default
home-manager.nixosModules.home-manager
{
home-manager.useGlobalPkgs = true;
home-manager.useUserPackages = true;
home-manager.backupFileExtension = "backup";
home-manager.users.youwen = {
imports = [
./users/youwen/common
./users/youwen/common/neofetch/asahi-only.nix
./users/youwen/linux/laptop
./users/youwen/linux/packages/aarch-64
inputs.catppuccin.homeManagerModules.catppuccin
];
};
}
{
nixpkgs.overlays = [
(self: super: {
signal-desktop =
bleedingpkgs.legacyPackages.${self.system}.signal-desktop;
})
];
}
];
};
adrastea = nixpkgs.lib.nixosSystem {
specialArgs = {inherit inputs;};
system = "x86_64-linux";
modules = [
./hosts/adrastea
./modules/nixos/gaming
./modules/nixos/audio
./modules/nixos/networking
./modules/nixos/fonts
./modules/nixos/greeter
./modules/nixos/core
catppuccin.nixosModules.catppuccin
lix-module.nixosModules.default
# lanzaboote.nixosModules.lanzaboote
home-manager.nixosModules.home-manager
{
home-manager.useGlobalPkgs = true;
home-manager.useUserPackages = true;
home-manager.backupFileExtension = "backup";
home-manager.users.youwen = {
imports = [
./users/youwen/linux/laptop
./users/youwen/linux/packages/x86_64
./users/youwen/linux/programs
./users/youwen/common
./users/youwen/common/neofetch
./hosts/adrastea/home-manager-overrides.nix
inputs.catppuccin.homeManagerModules.catppuccin
];
};
}
];
};
};
formatter.aarch64-darwin = nixpkgs.legacyPackages.aarch64-darwin.alejandra;
formatter.aarch64-linux = nixpkgs.legacyPackages.aarch64-linux.alejandra;
# Build darwin flake using:
# $ darwin-rebuild build --flake .#Youwens-MacBook-Pro
darwinConfigurations.phobos = nix-darwin.lib.darwinSystem {
specialArgs = {inherit inputs;};
modules = [
./hosts/phobos
home-manager.darwinModules.home-manager
{
home-manager.useGlobalPkgs = true;
home-manager.useUserPackages = true;
home-manager.users.youwen.imports = [
./users/youwen/darwin/darwin-home.nix
./users/youwen/common/core.nix
./users/youwen/common/neofetch
]; ];
home-manager.backupFileExtension = "backup"; };
callisto = nixpkgs.lib.nixosSystem {
specialArgs = { inherit inputs; };
system = "aarch64-linux";
modules = [
./hosts/callisto
./modules/nixos/audio
./modules/nixos/networking
./modules/nixos/fonts
./modules/nixos/greeter
./modules/nixos/core
# Optionally, use home-manager.extraSpecialArgs to pass apple-silicon.nixosModules.apple-silicon-support
# arguments to home.nix catppuccin.nixosModules.catppuccin
} lix-module.nixosModules.default
nix-homebrew.darwinModules.nix-homebrew home-manager.nixosModules.home-manager
./modules/darwin/homebrew.nix {
./modules/darwin/yabai.nix home-manager.useGlobalPkgs = true;
./modules/darwin/skhd.nix home-manager.useUserPackages = true;
]; home-manager.backupFileExtension = "backup";
home-manager.users.youwen = {
imports = [
./users/youwen/common
./users/youwen/common/neofetch/asahi-only.nix
./users/youwen/linux/laptop
./users/youwen/linux/packages/aarch-64
inputs.catppuccin.homeManagerModules.catppuccin
];
};
}
{
nixpkgs.overlays = [
(self: super: {
signal-desktop =
bleedingpkgs.legacyPackages.${self.system}.signal-desktop;
})
];
}
];
};
adrastea = nixpkgs.lib.nixosSystem {
specialArgs = { inherit inputs; };
system = "x86_64-linux";
modules = [
./hosts/adrastea
./modules/nixos/gaming
./modules/nixos/audio
./modules/nixos/networking
./modules/nixos/fonts
./modules/nixos/greeter
./modules/nixos/core
catppuccin.nixosModules.catppuccin
lix-module.nixosModules.default
# lanzaboote.nixosModules.lanzaboote
home-manager.nixosModules.home-manager
{
home-manager.useGlobalPkgs = true;
home-manager.useUserPackages = true;
home-manager.backupFileExtension = "backup";
home-manager.users.youwen = {
imports = [
./users/youwen/linux/laptop
./users/youwen/linux/packages/x86_64
./users/youwen/linux/programs
./users/youwen/common
./users/youwen/common/neofetch
./hosts/adrastea/home-manager-overrides.nix
inputs.catppuccin.homeManagerModules.catppuccin
];
};
}
];
};
};
formatter.aarch64-darwin = nixpkgs.legacyPackages.aarch64-darwin.nixfmt;
formatter.aarch64-linux = nixpkgs.legacyPackages.aarch64-linux.nixfmt;
# Build darwin flake using:
# $ darwin-rebuild build --flake .#Youwens-MacBook-Pro
darwinConfigurations.phobos = nix-darwin.lib.darwinSystem {
specialArgs = { inherit inputs; };
modules = [
./hosts/phobos
home-manager.darwinModules.home-manager
{
home-manager.useGlobalPkgs = true;
home-manager.useUserPackages = true;
home-manager.users.youwen.imports = [
./users/youwen/darwin/darwin-home.nix
./users/youwen/common/core.nix
./users/youwen/common/neofetch
];
home-manager.backupFileExtension = "backup";
# Optionally, use home-manager.extraSpecialArgs to pass
# arguments to home.nix
}
nix-homebrew.darwinModules.nix-homebrew
./modules/darwin/homebrew.nix
./modules/darwin/yabai.nix
./modules/darwin/skhd.nix
];
};
}; };
};
} }

View file

@ -1,15 +1,11 @@
# Edit this configuration file to define what should be installed on # Edit this configuration file to define what should be installed on
# your system. Help is available in the configuration.nix(5) man page # your system. Help is available in the configuration.nix(5) man page
# and in the NixOS manual (accessible by running nixos-help). # and in the NixOS manual (accessible by running nixos-help).
{ config, inputs, pkgs, lib, ... }:
{ {
config, imports = [ # Include the results of the hardware scan.
inputs,
pkgs,
lib,
...
}: {
imports = [
# Include the results of the hardware scan.
./hardware-configuration.nix ./hardware-configuration.nix
]; ];
@ -36,7 +32,7 @@
enable = true; enable = true;
keyboards = { keyboards = {
default = { default = {
ids = ["*"]; ids = [ "*" ];
settings = { settings = {
main = { main = {
capslock = "esc"; capslock = "esc";
@ -48,7 +44,8 @@
}; };
}; };
boot.initrd.luks.devices."luks-52d1be6d-b32f-41e0-a6d7-2ff52599fe7c".device = "/dev/disk/by-uuid/52d1be6d-b32f-41e0-a6d7-2ff52599fe7c"; boot.initrd.luks.devices."luks-52d1be6d-b32f-41e0-a6d7-2ff52599fe7c".device =
"/dev/disk/by-uuid/52d1be6d-b32f-41e0-a6d7-2ff52599fe7c";
services.tlp.enable = true; services.tlp.enable = true;
@ -83,7 +80,7 @@
LC_TIME = "en_US.UTF-8"; LC_TIME = "en_US.UTF-8";
}; };
systemd.services = {NetworkManager-wait-online.enable = false;}; systemd.services = { NetworkManager-wait-online.enable = false; };
# Enable the X11 windowing system. # Enable the X11 windowing system.
# You can disable this if you're only using the Wayland session. # You can disable this if you're only using the Wayland session.
@ -91,7 +88,7 @@
programs.nix-ld = { programs.nix-ld = {
enable = true; enable = true;
libraries = with pkgs; [icu xorg.libXtst xorg.libXi]; libraries = with pkgs; [ icu xorg.libXtst xorg.libXi ];
}; };
hardware.nvidia = { hardware.nvidia = {
@ -114,7 +111,7 @@
hardware.nvidia.package = config.boot.kernelPackages.nvidiaPackages.stable; hardware.nvidia.package = config.boot.kernelPackages.nvidiaPackages.stable;
services.xserver.videoDrivers = ["nvidia"]; services.xserver.videoDrivers = [ "nvidia" ];
# services.desktopManager.plasma6.enable = true; # services.desktopManager.plasma6.enable = true;
@ -134,14 +131,14 @@
users.users.youwen = { users.users.youwen = {
isNormalUser = true; isNormalUser = true;
description = "Youwen Wu"; description = "Youwen Wu";
extraGroups = ["networkmanager" "wheel" "nixos" "realtime"]; extraGroups = [ "networkmanager" "wheel" "nixos" "realtime" ];
}; };
users.groups.realtime = {}; users.groups.realtime = { };
nix.settings = { nix.settings = {
trusted-users = ["root" "youwen"]; trusted-users = [ "root" "youwen" ];
experimental-features = ["nix-command" "flakes"]; experimental-features = [ "nix-command" "flakes" ];
}; };
services.udev.extraRules = '' services.udev.extraRules = ''

View file

@ -1,34 +1,33 @@
# Do not modify this file! It was generated by nixos-generate-config # Do not modify this file! It was generated by nixos-generate-config
# and may be overwritten by future invocations. Please make changes # and may be overwritten by future invocations. Please make changes
# to /etc/nixos/configuration.nix instead. # to /etc/nixos/configuration.nix instead.
{ { config, lib, pkgs, modulesPath, ... }:
config,
lib,
pkgs,
modulesPath,
...
}: {
imports = [(modulesPath + "/installer/scan/not-detected.nix")];
boot.initrd.availableKernelModules = ["nvme" "xhci_pci" "usbhid" "usb_storage" "sd_mod"]; {
boot.initrd.kernelModules = []; imports = [ (modulesPath + "/installer/scan/not-detected.nix") ];
boot.kernelModules = ["kvm-amd"];
boot.extraModulePackages = []; boot.initrd.availableKernelModules =
[ "nvme" "xhci_pci" "usbhid" "usb_storage" "sd_mod" ];
boot.initrd.kernelModules = [ ];
boot.kernelModules = [ "kvm-amd" ];
boot.extraModulePackages = [ ];
fileSystems."/" = { fileSystems."/" = {
device = "/dev/disk/by-uuid/01983a52-5693-4cda-ad2e-5a406776bfb9"; device = "/dev/disk/by-uuid/01983a52-5693-4cda-ad2e-5a406776bfb9";
fsType = "ext4"; fsType = "ext4";
}; };
boot.initrd.luks.devices."luks-f169a679-d70b-4dff-a344-7131f3303813".device = "/dev/disk/by-uuid/f169a679-d70b-4dff-a344-7131f3303813"; boot.initrd.luks.devices."luks-f169a679-d70b-4dff-a344-7131f3303813".device =
"/dev/disk/by-uuid/f169a679-d70b-4dff-a344-7131f3303813";
fileSystems."/boot" = { fileSystems."/boot" = {
device = "/dev/disk/by-uuid/3FCB-9D60"; device = "/dev/disk/by-uuid/3FCB-9D60";
fsType = "vfat"; fsType = "vfat";
options = ["fmask=0022" "dmask=0022"]; options = [ "fmask=0022" "dmask=0022" ];
}; };
swapDevices = [{device = "/dev/disk/by-uuid/f28d0752-feab-4591-899e-e5deac3712d0";}]; swapDevices =
[{ device = "/dev/disk/by-uuid/f28d0752-feab-4591-899e-e5deac3712d0"; }];
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking # Enables DHCP on each ethernet and wireless interface. In case of scripted networking
# (the default) this is the recommended approach. When using systemd-networkd it's # (the default) this is the recommended approach. When using systemd-networkd it's

View file

@ -1,3 +1,4 @@
{pkgs, ...}: { { pkgs, ... }:
wayland.windowManager.hyprland.settings.monitor = pkgs.lib.mkForce ["eDP-1,2560x1440@165,0x0,1.6"]; {
wayland.windowManager.hyprland.settings.monitor = pkgs.lib.mkForce [ "eDP-1,2560x1440@165,0x0,1.6" ];
} }

View file

@ -1,14 +1,11 @@
# Edit this configuration file to define what should be installed on # Edit this configuration file to define what should be installed on
# your system. Help is available in the configuration.nix(5) man page # your system. Help is available in the configuration.nix(5) man page
# and in the NixOS manual (accessible by running nixos-help). # and in the NixOS manual (accessible by running nixos-help).
{ config, inputs, pkgs, ... }:
{ {
config, imports = [ # Include the results of the hardware scan.
inputs,
pkgs,
...
}: {
imports = [
# Include the results of the hardware scan.
./hardware-configuration.nix ./hardware-configuration.nix
# ./apple-silicon-support # ./apple-silicon-support
]; ];
@ -26,7 +23,7 @@
options hid_apple iso_layout=0 options hid_apple iso_layout=0
''; '';
boot.kernelParams = ["apple_dcp.show_notch=1"]; boot.kernelParams = [ "apple_dcp.show_notch=1" ];
networking.hostName = "callisto"; # Define your hostname. networking.hostName = "callisto"; # Define your hostname.
# networking.wireless.enable = true; # Enables wireless support via wpa_supplicant. # networking.wireless.enable = true; # Enables wireless support via wpa_supplicant.
@ -36,7 +33,7 @@
settings.General.EnableNetworkConfiguration = true; settings.General.EnableNetworkConfiguration = true;
}; };
nixpkgs.overlays = [inputs.apple-silicon.overlays.apple-silicon-overlay]; nixpkgs.overlays = [ inputs.apple-silicon.overlays.apple-silicon-overlay ];
programs.light.enable = true; programs.light.enable = true;
@ -71,7 +68,7 @@
programs.nix-ld = { programs.nix-ld = {
enable = true; enable = true;
libraries = with pkgs; [icu xorg.libXtst xorg.libXi]; libraries = with pkgs; [ icu xorg.libXtst xorg.libXi ];
}; };
# Configure keymap in X11 # Configure keymap in X11
@ -90,14 +87,14 @@
users.users.youwen = { users.users.youwen = {
isNormalUser = true; isNormalUser = true;
description = "Youwen Wu"; description = "Youwen Wu";
extraGroups = ["networkmanager" "wheel" "nixos" "realtime"]; extraGroups = [ "networkmanager" "wheel" "nixos" "realtime" ];
}; };
users.groups.realtime = {}; users.groups.realtime = { };
nix.settings = { nix.settings = {
trusted-users = ["root" "youwen"]; trusted-users = [ "root" "youwen" ];
experimental-features = ["nix-command" "flakes"]; experimental-features = [ "nix-command" "flakes" ];
}; };
services.udev.extraRules = '' services.udev.extraRules = ''
@ -158,12 +155,13 @@
environment.variables = { environment.variables = {
EDITOR = "nvim"; EDITOR = "nvim";
NIX_AUTO_RUN = 1; NIX_AUTO_RUN = 1;
}; };
services.keyd = { services.keyd = {
enable = true; enable = true;
keyboards = { keyboards = {
default = { default = {
ids = ["*"]; ids = [ "*" ];
settings = { settings = {
main = { main = {
capslock = "esc"; capslock = "esc";

View file

@ -1,19 +1,15 @@
# Do not modify this file! It was generated by nixos-generate-config # Do not modify this file! It was generated by nixos-generate-config
# and may be overwritten by future invocations. Please make changes # and may be overwritten by future invocations. Please make changes
# to /etc/nixos/configuration.nix instead. # to /etc/nixos/configuration.nix instead.
{ { config, lib, pkgs, modulesPath, ... }:
config,
lib,
pkgs,
modulesPath,
...
}: {
imports = [(modulesPath + "/installer/scan/not-detected.nix")];
boot.initrd.availableKernelModules = ["usb_storage" "sdhci_pci"]; {
boot.initrd.kernelModules = []; imports = [ (modulesPath + "/installer/scan/not-detected.nix") ];
boot.kernelModules = [];
boot.extraModulePackages = []; boot.initrd.availableKernelModules = [ "usb_storage" "sdhci_pci" ];
boot.initrd.kernelModules = [ ];
boot.kernelModules = [ ];
boot.extraModulePackages = [ ];
fileSystems."/" = { fileSystems."/" = {
device = "/dev/disk/by-uuid/bc88058e-6e3a-4987-b78e-e19cb5611608"; device = "/dev/disk/by-uuid/bc88058e-6e3a-4987-b78e-e19cb5611608";
@ -23,10 +19,10 @@
fileSystems."/boot" = { fileSystems."/boot" = {
device = "/dev/disk/by-uuid/852F-07F1"; device = "/dev/disk/by-uuid/852F-07F1";
fsType = "vfat"; fsType = "vfat";
options = ["fmask=0022" "dmask=0022"]; options = [ "fmask=0022" "dmask=0022" ];
}; };
swapDevices = []; swapDevices = [ ];
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking # Enables DHCP on each ethernet and wireless interface. In case of scripted networking
# (the default) this is the recommended approach. When using systemd-networkd it's # (the default) this is the recommended approach. When using systemd-networkd it's

View file

@ -1,15 +1,11 @@
# Edit this configuration file to define what should be installed on # Edit this configuration file to define what should be installed on
# your system. Help is available in the configuration.nix(5) man page # your system. Help is available in the configuration.nix(5) man page
# and in the NixOS manual (accessible by running nixos-help). # and in the NixOS manual (accessible by running nixos-help).
{ config, inputs, pkgs, lib, ... }:
{ {
config, imports = [ # Include the results of the hardware scan.
inputs,
pkgs,
lib,
...
}: {
imports = [
# Include the results of the hardware scan.
./hardware-configuration.nix ./hardware-configuration.nix
]; ];
@ -65,7 +61,7 @@
LC_TIME = "en_US.UTF-8"; LC_TIME = "en_US.UTF-8";
}; };
systemd.services = {NetworkManager-wait-online.enable = false;}; systemd.services = { NetworkManager-wait-online.enable = false; };
# Enable the X11 windowing system. # Enable the X11 windowing system.
# You can disable this if you're only using the Wayland session. # You can disable this if you're only using the Wayland session.
@ -73,7 +69,7 @@
programs.nix-ld = { programs.nix-ld = {
enable = true; enable = true;
libraries = with pkgs; [icu xorg.libXtst xorg.libXi]; libraries = with pkgs; [ icu xorg.libXtst xorg.libXi ];
}; };
hardware.nvidia = { hardware.nvidia = {
@ -95,7 +91,7 @@
hardware.nvidia.package = config.boot.kernelPackages.nvidiaPackages.stable; hardware.nvidia.package = config.boot.kernelPackages.nvidiaPackages.stable;
services.xserver.videoDrivers = ["nvidia"]; services.xserver.videoDrivers = [ "nvidia" ];
services.flatpak.enable = true; services.flatpak.enable = true;
@ -117,14 +113,14 @@
users.users.youwen = { users.users.youwen = {
isNormalUser = true; isNormalUser = true;
description = "Youwen Wu"; description = "Youwen Wu";
extraGroups = ["networkmanager" "wheel" "nixos" "realtime"]; extraGroups = [ "networkmanager" "wheel" "nixos" "realtime" ];
}; };
users.groups.realtime = {}; users.groups.realtime = { };
nix.settings = { nix.settings = {
trusted-users = ["root" "youwen"]; trusted-users = [ "root" "youwen" ];
experimental-features = ["nix-command" "flakes"]; experimental-features = [ "nix-command" "flakes" ];
}; };
services.udev.extraRules = '' services.udev.extraRules = ''

View file

@ -1,38 +1,34 @@
# Do not modify this file! It was generated by nixos-generate-config # Do not modify this file! It was generated by nixos-generate-config
# and may be overwritten by future invocations. Please make changes # and may be overwritten by future invocations. Please make changes
# to /etc/nixos/configuration.nix instead. # to /etc/nixos/configuration.nix instead.
{ config, lib, pkgs, modulesPath, ... }:
{ {
config, imports =
lib, [ (modulesPath + "/installer/scan/not-detected.nix")
pkgs, ];
modulesPath,
...
}: {
imports = [
(modulesPath + "/installer/scan/not-detected.nix")
];
boot.initrd.availableKernelModules = ["xhci_pci" "ahci" "nvme" "usbhid" "usb_storage" "sd_mod"]; boot.initrd.availableKernelModules = [ "xhci_pci" "ahci" "nvme" "usbhid" "usb_storage" "sd_mod" ];
boot.initrd.kernelModules = []; boot.initrd.kernelModules = [ ];
boot.kernelModules = ["kvm-intel"]; boot.kernelModules = [ "kvm-intel" ];
boot.extraModulePackages = []; boot.extraModulePackages = [ ];
fileSystems."/" = { fileSystems."/" =
device = "/dev/disk/by-uuid/5a339a7f-8668-42d7-9ecc-d7a8f1d3f7b2"; { device = "/dev/disk/by-uuid/5a339a7f-8668-42d7-9ecc-d7a8f1d3f7b2";
fsType = "ext4"; fsType = "ext4";
}; };
boot.initrd.luks.devices."luks-362ec972-7c5e-4c9f-ba5d-b8f2ed083509".device = "/dev/disk/by-uuid/362ec972-7c5e-4c9f-ba5d-b8f2ed083509"; boot.initrd.luks.devices."luks-362ec972-7c5e-4c9f-ba5d-b8f2ed083509".device = "/dev/disk/by-uuid/362ec972-7c5e-4c9f-ba5d-b8f2ed083509";
fileSystems."/boot" = { fileSystems."/boot" =
device = "/dev/disk/by-uuid/27EE-D950"; { device = "/dev/disk/by-uuid/27EE-D950";
fsType = "vfat"; fsType = "vfat";
options = ["fmask=0022" "dmask=0022"]; options = [ "fmask=0022" "dmask=0022" ];
}; };
swapDevices = [ swapDevices =
{device = "/dev/disk/by-uuid/670fc084-d593-44b3-aed9-78d95fec71de";} [ { device = "/dev/disk/by-uuid/670fc084-d593-44b3-aed9-78d95fec71de"; }
]; ];
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking # Enables DHCP on each ethernet and wireless interface. In case of scripted networking
# (the default) this is the recommended approach. When using systemd-networkd it's # (the default) this is the recommended approach. When using systemd-networkd it's

View file

@ -1,15 +1,10 @@
{ { inputs, config, pkgs, ... }: {
inputs,
config,
pkgs,
...
}: {
# Expose the package set, including overlays, for convenience. # Expose the package set, including overlays, for convenience.
# darwinPackages = inputs.self.darwinConfigurations."Youwens-MacBook-Pro".pkgs; # darwinPackages = inputs.self.darwinConfigurations."Youwens-MacBook-Pro".pkgs;
# List packages installed in system profile. To search by name, run: # List packages installed in system profile. To search by name, run:
# $ nix-env -qaP | grep wget # $ nix-env -qaP | grep wget
environment.systemPackages = with pkgs; []; environment.systemPackages = with pkgs; [ ];
# Use a custom configuration.nix location. # Use a custom configuration.nix location.
# $ darwin-rebuild switch -I darwin-config=$HOME/.config/nixpkgs/darwin/configuration.nix # $ darwin-rebuild switch -I darwin-config=$HOME/.config/nixpkgs/darwin/configuration.nix
@ -50,8 +45,8 @@
noto-fonts noto-fonts
noto-fonts-cjk noto-fonts-cjk
noto-fonts-emoji noto-fonts-emoji
(nerdfonts.override {fonts = ["CascadiaCode"];}) (nerdfonts.override { fonts = [ "CascadiaCode" ]; })
(google-fonts.override {fonts = ["Lora"];}) (google-fonts.override { fonts = [ "Lora" ]; })
]; ];
}; };
} }

View file

@ -1,4 +1,4 @@
{inputs, ...}: { { inputs, ... }: {
nix-homebrew = { nix-homebrew = {
enable = true; enable = true;
enableRosetta = true; enableRosetta = true;

View file

@ -1,8 +1,4 @@
{ { config, pkgs, ... }: {
config,
pkgs,
...
}: {
services.yabai = { services.yabai = {
enable = true; enable = true;
enableScriptingAddition = true; enableScriptingAddition = true;
@ -32,3 +28,4 @@
blur_radius = 5.0; blur_radius = 5.0;
}; };
} }

View file

@ -1,18 +1,18 @@
{pkgs, ...}: { { pkgs, ... }: {
fonts = { fonts = {
enableDefaultPackages = true; enableDefaultPackages = true;
fontconfig = { fontconfig = {
defaultFonts = { defaultFonts = {
serif = ["Noto Serif"]; serif = [ "Noto Serif" ];
sansSerif = ["Noto Sans"]; sansSerif = [ "Noto Sans" ];
}; };
}; };
packages = with pkgs; [ packages = with pkgs; [
noto-fonts noto-fonts
noto-fonts-cjk noto-fonts-cjk
noto-fonts-emoji noto-fonts-emoji
(nerdfonts.override {fonts = ["CascadiaCode"];}) (nerdfonts.override { fonts = [ "CascadiaCode" ]; })
(google-fonts.override {fonts = ["Lora"];}) (google-fonts.override { fonts = [ "Lora" ]; })
]; ];
}; };
} }

View file

@ -1,4 +1,5 @@
{pkgs, ...}: { {pkgs, ...}:
{
services.greetd = { services.greetd = {
enable = true; enable = true;
settings = { settings = {

View file

@ -2,5 +2,5 @@
services.openssh.enable = true; services.openssh.enable = true;
# networking.firewall.allowedTCPPorts = [ ... ]; # networking.firewall.allowedTCPPorts = [ ... ];
# networking.firewall.allowedUDPPorts = [ ... ]; # networking.firewall.allowedUDPPorts = [ ... ];
networking.nameservers = ["1.1.1.1" "1.0.0.1"]; networking.nameservers = [ "1.1.1.1" "1.0.0.1" ];
} }

View file

@ -1,4 +1,4 @@
{pkgs, ...}: { { pkgs, ... }: {
home.file.".essentials" = { home.file.".essentials" = {
source = ./essentials; source = ./essentials;
recursive = true; recursive = true;
@ -15,7 +15,7 @@
''; '';
}; };
programs.fzf = {enable = true;}; programs.fzf = { enable = true; };
programs.git = { programs.git = {
enable = true; enable = true;
@ -57,7 +57,7 @@
programs.gh = { programs.gh = {
enable = true; enable = true;
extensions = [pkgs.github-copilot-cli]; extensions = [ pkgs.github-copilot-cli ];
}; };
programs.oh-my-posh = { programs.oh-my-posh = {
@ -68,8 +68,6 @@
useTheme = "gruvbox"; useTheme = "gruvbox";
}; };
programs.direnv.enable = true;
programs.fish = { programs.fish = {
enable = true; enable = true;
shellAliases = { shellAliases = {
@ -78,7 +76,8 @@
}; };
functions = { functions = {
update-nixos = { update-nixos = {
description = "Update the system flake and attempt to build and switch to the new configuration."; description =
"Update the system flake and attempt to build and switch to the new configuration.";
body = '' body = ''
cd /etc/nixos cd /etc/nixos
nix flake update nix flake update

View file

@ -1 +1 @@
{imports = [./core.nix];} { imports = [ ./core.nix ]; }

View file

@ -1,9 +1,6 @@
{ inputs, config, pkgs, ... }:
{ {
inputs,
config,
pkgs,
...
}: {
home.username = "youwen"; home.username = "youwen";
home.homeDirectory = "/Users/youwen"; home.homeDirectory = "/Users/youwen";
@ -82,4 +79,5 @@
# Let home Manager install and manage itself. # Let home Manager install and manage itself.
programs.home-manager.enable = true; programs.home-manager.enable = true;
} }

View file

@ -7,3 +7,4 @@
../waybar/desktop ../waybar/desktop
]; ];
} }

View file

@ -1,8 +1,6 @@
{ config, pkgs, ... }:
{ {
config,
pkgs,
...
}: {
home.username = "youwen"; home.username = "youwen";
home.homeDirectory = "/home/youwen"; home.homeDirectory = "/home/youwen";

View file

@ -1,8 +1,9 @@
{pkgs, ...}: { { pkgs, ... }:
{
wayland.windowManager.hyprland = { wayland.windowManager.hyprland = {
enable = true; enable = true;
settings = { settings = {
exec-once = ["waypaper --restore"]; exec-once = [ "waypaper --restore" ];
"$mod" = "SUPER"; "$mod" = "SUPER";
"$Left" = "Y"; "$Left" = "Y";
"$Right" = "O"; "$Right" = "O";
@ -163,7 +164,8 @@
"ignorezero,swaync-control-center" "ignorezero,swaync-control-center"
"blur,logout_dialog" "blur,logout_dialog"
]; ];
monitor = ["DP-1,2560x1440@165,1920x0,auto" "HDMI-A-1,1920x1080@60,0x0,1"]; monitor =
[ "DP-1,2560x1440@165,1920x0,auto" "HDMI-A-1,1920x1080@60,0x0,1" ];
dwindle = { dwindle = {
pseudotile = "yes"; pseudotile = "yes";
preserve_split = "yes"; preserve_split = "yes";
@ -187,7 +189,7 @@
"workspaces, 1, 5, wind" "workspaces, 1, 5, wind"
]; ];
}; };
general = { general = {
gaps_in = "3"; gaps_in = "3";
gaps_out = "8"; gaps_out = "8";
@ -282,15 +284,17 @@
services.hypridle = { services.hypridle = {
enable = true; enable = true;
settings = { settings = {
lock_cmd = "pidof hyprlock || hyprlock"; # avoid starting multiple hyprlock instances. lock_cmd =
"pidof hyprlock || hyprlock"; # avoid starting multiple hyprlock instances.
before_sleep_cmd = "loginctl lock-session"; # lock before suspend. before_sleep_cmd = "loginctl lock-session"; # lock before suspend.
after_sleep_cmd = "hyprctl dispatch dpms on"; # to avoid having to press a key twice to turn on the display. after_sleep_cmd =
"hyprctl dispatch dpms on"; # to avoid having to press a key twice to turn on the display.
}; };
}; };
xdg.portal = { xdg.portal = {
enable = true; enable = true;
configPackages = [pkgs.xdg-desktop-portal-hyprland]; configPackages = [ pkgs.xdg-desktop-portal-hyprland ];
extraPortals = [pkgs.xdg-desktop-portal-hyprland]; extraPortals = [ pkgs.xdg-desktop-portal-hyprland ];
}; };
} }

View file

@ -1 +1 @@
{imports = [../common.nix];} { imports = [ ../common.nix ]; }

View file

@ -1,5 +1,5 @@
{lib, ...}: { { lib, ... }: {
imports = [../common.nix]; imports = [ ../common.nix ];
wayland.windowManager.hyprland.settings.input.touchpad = { wayland.windowManager.hyprland.settings.input.touchpad = {
natural_scroll = true; natural_scroll = true;
disable_while_typing = true; disable_while_typing = true;

View file

@ -1,6 +1,8 @@
{pkgs, ...}: { { pkgs, ... }: {
imports = [../theming ../home.nix ../programs ../hyprland/laptop ../waybar/laptop]; imports =
[ ../theming ../home.nix ../programs ../hyprland/laptop ../waybar/laptop ];
# some overrides for laptop specifically # some overrides for laptop specifically
programs.kitty.settings.font_size = pkgs.lib.mkForce 11; programs.kitty.settings.font_size = pkgs.lib.mkForce 11;
} }

View file

@ -1,3 +1,3 @@
{pkgs, ...}: let { pkgs, ... }:
createCommon = import ../common-packages.nix; let createCommon = import ../common-packages.nix;
in {home.packages = (createCommon pkgs) ++ [];} in { home.packages = ((createCommon pkgs) ++ [ ]); }

View file

@ -1,15 +1,13 @@
{pkgs, ...}: let { pkgs, ... }:
createCommon = import ../common-packages.nix; let createCommon = import ../common-packages.nix;
in { in {
home.packages = home.packages = ((createCommon pkgs) ++ (with pkgs; [
(createCommon pkgs) spotify
++ (with pkgs; [ bitwarden-desktop
spotify modrinth-app
bitwarden-desktop lutris
modrinth-app wine
lutris sbctl
wine r2modman
sbctl ]));
r2modman
]);
} }

View file

@ -15,8 +15,8 @@
action_alias = "kitty_scrollback_nvim kitten /home/youwen/.local/share/nvim/lazy/kitty-scrollback.nvim/python/kitty_scrollback_nvim.py"; action_alias = "kitty_scrollback_nvim kitten /home/youwen/.local/share/nvim/lazy/kitty-scrollback.nvim/python/kitty_scrollback_nvim.py";
}; };
keybindings = { keybindings = {
"kitty_mod+h" = "kitty_scrollback_nvim"; "kitty_mod+h" = "kitty_scrollback_nvim";
"kitty_mod+g" = "kitty_scrollback_nvim --config ksb_builtin_last_cmd_output"; "kitty_mod+g" = "kitty_scrollback_nvim --config ksb_builtin_last_cmd_output";
}; };
}; };

View file

@ -1,5 +1,5 @@
{pkgs, ...}: { { pkgs, ... }: {
imports = [./catppuccin.nix]; imports = [ ./catppuccin.nix ];
gtk = { gtk = {
enable = true; enable = true;
@ -8,7 +8,7 @@
name = "Bibata-Modern-Ice"; name = "Bibata-Modern-Ice";
size = 26; size = 26;
}; };
iconTheme = {name = "Papirus-Dark";}; iconTheme = { name = "Papirus-Dark"; };
}; };
qt = { qt = {
@ -23,6 +23,8 @@
theme=GraphiteNordDark theme=GraphiteNordDark
''; '';
"Kvantum/GraphiteNord".source = "${pkgs.graphite-kde-theme}/share/Kvantum/GraphiteNord"; "Kvantum/GraphiteNord".source =
"${pkgs.graphite-kde-theme}/share/Kvantum/GraphiteNord";
}; };
} }

View file

@ -9,21 +9,21 @@
width = 1600; width = 1600;
reload-style-on-change = true; reload-style-on-change = true;
margin = "10px 0px 0px 0px"; margin = "10px 0px 0px 0px";
modules-left = ["hyprland/window" "hyprland/workspaces"]; modules-left = [ "hyprland/window" "hyprland/workspaces" ];
modules-right = ["backlight" "group/adjustable" "custom/weather"]; modules-right = [ "backlight" "group/adjustable" "custom/weather" ];
modules-center = ["network" "group/hardware" "clock"]; modules-center = [ "network" "group/hardware" "clock" ];
"hyprland/workspaces" = { "hyprland/workspaces" = {
active-only = false; active-only = false;
all-outputs = false; all-outputs = false;
format = "{icon}"; format = "{icon}";
persistent-workspaces = { persistent-workspaces = {
eDP-1 = [1]; eDP-1 = [ 1 ];
DP-1 = [2 3 4 5]; DP-1 = [ 2 3 4 5 ];
}; };
}; };
"group/hardware" = { "group/hardware" = {
orientation = "inherit"; orientation = "inherit";
modules = ["cpu" "memory" "battery"]; modules = [ "cpu" "memory" "battery" ];
}; };
"group/adjustable" = { "group/adjustable" = {
orientation = "inherit"; orientation = "inherit";
@ -31,7 +31,7 @@
transition-duration = 500; transition-duration = 500;
transition-left-to-right = true; transition-left-to-right = true;
}; };
modules = ["pulseaudio" "mpris"]; modules = [ "pulseaudio" "mpris" ];
}; };
"custom/weather" = { "custom/weather" = {
orientation = "horizontal"; orientation = "horizontal";
@ -51,12 +51,12 @@
# format-paused = " 󰏤 {title} "; # format-paused = " 󰏤 {title} ";
# format-stopped = "Nothing Playing"; # format-stopped = "Nothing Playing";
# }; # };
tray = {spacing = 10;}; tray = { spacing = 10; };
clock = {format = "{:%a %b %d, %I:%M %p} ";}; clock = { format = "{:%a %b %d, %I:%M %p} "; };
backlight = { backlight = {
device = "intel_backlight"; device = "intel_backlight";
format = "{percent}% {icon}"; format = "{percent}% {icon}";
format-icons = ["󰃞" "󰃠"]; format-icons = [ "󰃞" "󰃠" ];
}; };
battery = { battery = {
states = { states = {
@ -65,9 +65,9 @@
critical = 10; critical = 10;
}; };
format = "{capacity}% {icon}"; format = "{capacity}% {icon}";
format-icons = ["󰁻" "󰁽" "󰁿" "󰂀" "󰁹"]; format-icons = [ "󰁻" "󰁽" "󰁿" "󰂀" "󰁹" ];
}; };
"hyprland/window" = {format = "{class}";}; "hyprland/window" = { format = "{class}"; };
network = { network = {
format-wifi = "{essid} "; format-wifi = "{essid} ";
format-linked = "{ifname} (No IP) "; format-linked = "{ifname} (No IP) ";
@ -81,7 +81,7 @@
format-muted = " {format_source}"; format-muted = " {format_source}";
format-source = "{volume}% "; format-source = "{volume}% ";
format-source-muted = ""; format-source-muted = "";
format-icons = {default = ["" "" ""];}; format-icons = { default = [ "" "" "" ]; };
}; };
}; };
}; };

View file

@ -9,21 +9,23 @@
# width = 1000; # width = 1000;
reload-style-on-change = true; reload-style-on-change = true;
margin = "5px 0px 0px 0px"; margin = "5px 0px 0px 0px";
modules-left = ["hyprland/window" "hyprland/workspaces" "network" "clock"]; modules-left =
modules-right = ["group/hardware" "backlight" "group/adjustable" "custom/weather"]; [ "hyprland/window" "hyprland/workspaces" "network" "clock" ];
modules-right =
[ "group/hardware" "backlight" "group/adjustable" "custom/weather" ];
# modules-center = [ "network" "group/hardware" "clock" ]; # modules-center = [ "network" "group/hardware" "clock" ];
"hyprland/workspaces" = { "hyprland/workspaces" = {
active-only = false; active-only = false;
all-outputs = false; all-outputs = false;
format = "{icon}"; format = "{icon}";
persistent-workspaces = { persistent-workspaces = {
eDP-1 = [1]; eDP-1 = [ 1 ];
DP-1 = [2 3 4 5]; DP-1 = [ 2 3 4 5 ];
}; };
}; };
"group/hardware" = { "group/hardware" = {
orientation = "inherit"; orientation = "inherit";
modules = ["cpu" "battery"]; modules = [ "cpu" "battery" ];
}; };
"group/adjustable" = { "group/adjustable" = {
orientation = "inherit"; orientation = "inherit";
@ -31,7 +33,7 @@
transition-duration = 500; transition-duration = 500;
transition-left-to-right = true; transition-left-to-right = true;
}; };
modules = ["pulseaudio" "mpris"]; modules = [ "pulseaudio" "mpris" ];
}; };
"custom/weather" = { "custom/weather" = {
orientation = "horizontal"; orientation = "horizontal";
@ -51,12 +53,12 @@
# format-paused = " 󰏤 {title} "; # format-paused = " 󰏤 {title} ";
# format-stopped = "Nothing Playing"; # format-stopped = "Nothing Playing";
# }; # };
tray = {spacing = 10;}; tray = { spacing = 10; };
clock = {format = "{:%a %b %d, %I:%M %p} ";}; clock = { format = "{:%a %b %d, %I:%M %p} "; };
backlight = { backlight = {
device = "intel_backlight"; device = "intel_backlight";
format = "{percent}% {icon}"; format = "{percent}% {icon}";
format-icons = ["󰃞" "󰃠"]; format-icons = [ "󰃞" "󰃠" ];
}; };
battery = { battery = {
states = { states = {
@ -65,9 +67,9 @@
critical = 10; critical = 10;
}; };
format = "{capacity}% {icon}"; format = "{capacity}% {icon}";
format-icons = ["󰁻" "󰁽" "󰁿" "󰂀" "󰁹"]; format-icons = [ "󰁻" "󰁽" "󰁿" "󰂀" "󰁹" ];
}; };
"hyprland/window" = {format = "{class}";}; "hyprland/window" = { format = "{class}"; };
network = { network = {
format-wifi = "{essid} "; format-wifi = "{essid} ";
format-linked = "{ifname} (No IP) "; format-linked = "{ifname} (No IP) ";
@ -81,7 +83,7 @@
format-muted = " {format_source}"; format-muted = " {format_source}";
format-source = "{volume}% "; format-source = "{volume}% ";
format-source-muted = ""; format-source-muted = "";
format-icons = {default = ["" "" ""];}; format-icons = { default = [ "" "" "" ]; };
}; };
}; };
}; };