Compare commits
57 Commits
d8844ce058
...
master
| Author | SHA1 | Date | |
|---|---|---|---|
| cde6eb2fa7 | |||
| f974c85b5e | |||
| 4d993d5841 | |||
| b982de75f3 | |||
| 02cd233318 | |||
| 010b34ca1d | |||
| 4f97ee32d1 | |||
| 739b4e25b8 | |||
| ef9611ce96 | |||
| 2b4436c675 | |||
| d2dcc124cf | |||
| 14738729de | |||
| 3a76c107e4 | |||
| 85be826fae | |||
| 1c63fb1130 | |||
| 5a702e5914 | |||
| 4437852aaa | |||
| e8f4abfbb0 | |||
| 35fccb631c | |||
| de8fe9dc11 | |||
| a0385efe7e | |||
| 2b0e4b5cd1 | |||
| 2e5401ad21 | |||
| cd68ff6ce6 | |||
| efc316d63a | |||
| 4f1bb4326e | |||
| 344872a373 | |||
| 13c2c08321 | |||
| 64acb884a9 | |||
| 84a437c399 | |||
| f6b3f38fba | |||
| 571af6f44d | |||
| a90e409e51 | |||
| 916da21dd7 | |||
| 5b6dcf51eb | |||
| c20909d919 | |||
| 20e83dcbfa | |||
| 091c9c5e85 | |||
| 827c5c0925 | |||
| 8bc8b3eada | |||
| acaf693a28 | |||
| 7a4d9b4114 | |||
| dfe4b67433 | |||
| 7dce64e0b0 | |||
| 306b2f22dc | |||
| 34d2fc8379 | |||
| a37a2d45a7 | |||
| 88994f305a | |||
| fb136d9ce1 | |||
| 13649b7ee9 | |||
| a2dfd078a8 | |||
| 0003dc0699 | |||
| a8e1a504ca | |||
| 2975eacf67 | |||
| 7adeac1881 | |||
| 1d4c953d4c | |||
| b081901c91 |
@@ -1,3 +1,2 @@
|
|||||||
*.swp
|
*.swp
|
||||||
.codex
|
.codex
|
||||||
hardware-configuration.nix
|
|
||||||
|
|||||||
+9
-6
@@ -5,13 +5,16 @@
|
|||||||
{ config, lib, pkgs, ... }:
|
{ config, lib, pkgs, ... }:
|
||||||
|
|
||||||
{
|
{
|
||||||
|
# Enable the modern Nix CLI and flakes for reproducible system rebuilds.
|
||||||
|
nix.settings.experimental-features = [ "nix-command" "flakes" ];
|
||||||
|
# Allow non-free packages
|
||||||
|
nixpkgs.config.allowUnfree = true;
|
||||||
|
|
||||||
# Use the systemd-boot EFI boot loader.
|
# Use the systemd-boot EFI boot loader.
|
||||||
boot.loader.systemd-boot.enable = true;
|
boot.loader.systemd-boot.enable = true;
|
||||||
boot.loader.efi.canTouchEfiVariables = true;
|
boot.loader.efi.canTouchEfiVariables = true;
|
||||||
# Latest kernel, not LTS
|
# Latest kernel, not LTS
|
||||||
boot.kernelPackages = pkgs.linuxPackages_latest;
|
boot.kernelPackages = pkgs.linuxPackages_latest;
|
||||||
# TODO: Dynamically configure hostname
|
|
||||||
networking.hostName = "laptop-nixos-1";
|
|
||||||
# Configure network connections interactively with nmcli or nmtui.
|
# Configure network connections interactively with nmcli or nmtui.
|
||||||
networking.networkmanager.enable = true;
|
networking.networkmanager.enable = true;
|
||||||
# Set your time zone.
|
# Set your time zone.
|
||||||
@@ -31,9 +34,13 @@
|
|||||||
# List packages installed in system profile.
|
# List packages installed in system profile.
|
||||||
# You can use https://search.nixos.org/ to find more packages (and options).
|
# You can use https://search.nixos.org/ to find more packages (and options).
|
||||||
environment.systemPackages = with pkgs; [
|
environment.systemPackages = with pkgs; [
|
||||||
|
cryfs
|
||||||
git
|
git
|
||||||
|
htop
|
||||||
jq
|
jq
|
||||||
procps
|
procps
|
||||||
|
psmisc
|
||||||
|
ripgrep
|
||||||
stow
|
stow
|
||||||
vim
|
vim
|
||||||
wget
|
wget
|
||||||
@@ -47,10 +54,6 @@
|
|||||||
# Or disable the firewall altogether.
|
# Or disable the firewall altogether.
|
||||||
# networking.firewall.enable = false;
|
# networking.firewall.enable = false;
|
||||||
|
|
||||||
# Copies and links NixOS config to /run/current-system/configuration.nix
|
|
||||||
# Case you nuke it. Idiot.
|
|
||||||
system.copySystemConfiguration = true;
|
|
||||||
|
|
||||||
# Don't touch. It's used for migration compatibility and should not change
|
# Don't touch. It's used for migration compatibility and should not change
|
||||||
system.stateVersion = "25.11";
|
system.stateVersion = "25.11";
|
||||||
|
|
||||||
|
|||||||
+1
-1
@@ -6,9 +6,9 @@
|
|||||||
|
|
||||||
{
|
{
|
||||||
imports = [
|
imports = [
|
||||||
./hardware-configuration.nix
|
|
||||||
./base/system.nix
|
./base/system.nix
|
||||||
./base/users.nix
|
./base/users.nix
|
||||||
./desktop/hyprland.nix
|
./desktop/hyprland.nix
|
||||||
|
./desktop/codex.nix
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|||||||
+58
-4
@@ -1,11 +1,65 @@
|
|||||||
#
|
#
|
||||||
# Flatpak
|
# Basic desktop stuff
|
||||||
#
|
#
|
||||||
{ config, lib, pkgs, ... }:
|
{ config, lib, pkgs, ... }:
|
||||||
|
|
||||||
{
|
{
|
||||||
environment.systemPackages = with pkgs; [
|
security.pam.services.sddm.kwallet.enable = true;
|
||||||
adwaita
|
|
||||||
breeze
|
services.dbus.packages = [ pkgs.kdePackages.kwallet ];
|
||||||
|
xdg.menus.enable = true;
|
||||||
|
environment.etc."xdg/menus/applications.menu".source =
|
||||||
|
"${pkgs.kdePackages.plasma-workspace}/etc/xdg/menus/plasma-applications.menu";
|
||||||
|
xdg.mime.enable = true;
|
||||||
|
xdg.portal.enable = true;
|
||||||
|
xdg.portal.extraPortals = [ pkgs.kdePackages.kwallet ];
|
||||||
|
|
||||||
|
qt = {
|
||||||
|
enable = true;
|
||||||
|
platformTheme = "kde";
|
||||||
|
style = "breeze";
|
||||||
|
};
|
||||||
|
environment.pathsToLink = [
|
||||||
|
"/share/color-schemes"
|
||||||
|
"/share/kstyle"
|
||||||
|
"/share/plasma"
|
||||||
];
|
];
|
||||||
|
|
||||||
|
environment.etc."xdg/kdeglobals".text = lib.generators.toINI { } {
|
||||||
|
General = {
|
||||||
|
ColorScheme = "BreezeDark";
|
||||||
|
Name = "Breeze Dark";
|
||||||
|
};
|
||||||
|
Icons.Theme = "Papirus-Dark";
|
||||||
|
KDE = {
|
||||||
|
LookAndFeelPackage = "org.kde.breezedark.desktop";
|
||||||
|
widgetStyle = "Breeze";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
programs.dconf = {
|
||||||
|
enable = true;
|
||||||
|
profiles.user.databases = [
|
||||||
|
{
|
||||||
|
settings."org/gnome/desktop/interface" = with lib.gvariant; {
|
||||||
|
color-scheme = "prefer-dark";
|
||||||
|
cursor-theme = "breeze_cursors";
|
||||||
|
cursor-size = mkUint32 24;
|
||||||
|
gtk-theme = "Breeze-Dark";
|
||||||
|
icon-theme = "Papirus";
|
||||||
|
};
|
||||||
|
}
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
|
environment.systemPackages = with pkgs; [
|
||||||
|
# Themes
|
||||||
|
kdePackages.breeze
|
||||||
|
kdePackages.breeze-gtk
|
||||||
|
kdePackages.kwallet
|
||||||
|
kdePackages.kwalletmanager
|
||||||
|
papirus-icon-theme
|
||||||
|
];
|
||||||
|
|
||||||
|
hardware.steam-hardware.enable = true;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,25 @@
|
|||||||
|
#
|
||||||
|
# Codex custom package
|
||||||
|
#
|
||||||
|
{ config, lib, pkgs, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
environment.systemPackages = [
|
||||||
|
(pkgs.stdenvNoCC.mkDerivation {
|
||||||
|
name = "codex";
|
||||||
|
version = "0.128.0";
|
||||||
|
nativeBuildInputs = [ pkgs.makeWrapper ];
|
||||||
|
src = pkgs.fetchurl {
|
||||||
|
url = "https://github.com/openai/codex/releases/download/rust-v0.128.0/codex-x86_64-unknown-linux-musl.tar.gz";
|
||||||
|
hash = "sha256-iGuF5hGMC0MjRDfKAH++kjYRpTsQPQDg0650rvsg4jo=";
|
||||||
|
};
|
||||||
|
sourceRoot = ".";
|
||||||
|
installPhase = ''
|
||||||
|
mkdir -p $out/bin $out/libexec
|
||||||
|
install -m755 codex-x86_64-unknown-linux-musl $out/libexec/codex
|
||||||
|
makeWrapper $out/libexec/codex $out/bin/codex \
|
||||||
|
--prefix PATH : ${lib.makeBinPath [ pkgs.bubblewrap ]}
|
||||||
|
'';
|
||||||
|
})
|
||||||
|
];
|
||||||
|
}
|
||||||
+1
-1
@@ -7,7 +7,7 @@
|
|||||||
fonts.fontconfig.enable = true;
|
fonts.fontconfig.enable = true;
|
||||||
fonts.packages = with pkgs; [
|
fonts.packages = with pkgs; [
|
||||||
dejavu_fonts
|
dejavu_fonts
|
||||||
font-awesome
|
font-awesome_6
|
||||||
ibm-plex
|
ibm-plex
|
||||||
noto-fonts
|
noto-fonts
|
||||||
noto-fonts-color-emoji
|
noto-fonts-color-emoji
|
||||||
|
|||||||
+36
-7
@@ -3,21 +3,49 @@
|
|||||||
#
|
#
|
||||||
{ config, lib, pkgs, ... }:
|
{ config, lib, pkgs, ... }:
|
||||||
|
|
||||||
|
let
|
||||||
|
hyprlandUwsmSession = pkgs.writeTextFile {
|
||||||
|
name = "hyprland-nixos-uwsm";
|
||||||
|
destination = "/share/wayland-sessions/hyprland-nixos-uwsm.desktop";
|
||||||
|
text = ''
|
||||||
|
[Desktop Entry]
|
||||||
|
Name=Hyprland (NixOS UWSM)
|
||||||
|
Comment=Hyprland managed by UWSM with the NixOS session environment
|
||||||
|
Exec=${pkgs.writeShellScript "start-hyprland-nixos-uwsm" ''
|
||||||
|
. /etc/set-environment
|
||||||
|
exec ${lib.getExe pkgs.uwsm} start -F -- /run/current-system/sw/bin/Hyprland
|
||||||
|
''}
|
||||||
|
Type=Application
|
||||||
|
DesktopNames=Hyprland
|
||||||
|
'';
|
||||||
|
passthru.providedSessions = [ "hyprland-nixos-uwsm" ];
|
||||||
|
};
|
||||||
|
in
|
||||||
{
|
{
|
||||||
imports = [
|
imports = [
|
||||||
./base.nix
|
./base.nix
|
||||||
./flatpak.nix
|
./flatpak.nix
|
||||||
./fonts.nix
|
./fonts.nix
|
||||||
|
./packages.nix
|
||||||
./sddm.nix
|
./sddm.nix
|
||||||
];
|
];
|
||||||
services.displayManager.defaultSession = "hyprland";
|
services.displayManager.defaultSession = "hyprland-nixos-uwsm";
|
||||||
|
|
||||||
# Hyprland as the star of the show
|
# Hyprland as the star of the show
|
||||||
programs.hyprland.enable = true;
|
programs.hyprland.enable = true;
|
||||||
|
programs.hyprland.withUWSM = true;
|
||||||
|
services.displayManager.sessionPackages = [ hyprlandUwsmSession ];
|
||||||
|
|
||||||
# XDG portal
|
# XDG portal
|
||||||
xdg.portal.enable = true;
|
xdg.portal.enable = true;
|
||||||
xdg.portal.extraPortals = [ pkgs.xdg-desktop-portal-hyprland ];
|
xdg.portal.extraPortals = with pkgs; [
|
||||||
|
xdg-desktop-portal-gtk
|
||||||
|
xdg-desktop-portal-hyprland
|
||||||
|
];
|
||||||
|
xdg.portal.config.hyprland.default = [
|
||||||
|
"hyprland"
|
||||||
|
"gtk"
|
||||||
|
];
|
||||||
|
|
||||||
# Supplementary packages
|
# Supplementary packages
|
||||||
environment.systemPackages = with pkgs; [
|
environment.systemPackages = with pkgs; [
|
||||||
@@ -28,7 +56,7 @@
|
|||||||
hyprland
|
hyprland
|
||||||
hyprlock
|
hyprlock
|
||||||
rofi
|
rofi
|
||||||
swww
|
awww
|
||||||
waybar
|
waybar
|
||||||
wlsunset
|
wlsunset
|
||||||
wofi
|
wofi
|
||||||
@@ -51,9 +79,10 @@
|
|||||||
wl-clipboard
|
wl-clipboard
|
||||||
];
|
];
|
||||||
|
|
||||||
# Some basic hyprcursor stuff
|
# Cursor theme for Hyprland and regular Wayland/XWayland clients.
|
||||||
environment.variables = [
|
environment.sessionVariables = {
|
||||||
HYPRCURSOR_THEME = "Adwaita";
|
XCURSOR_THEME = "breeze_cursors";
|
||||||
|
XCURSOR_SIZE = "24";
|
||||||
HYPRCURSOR_SIZE = "24";
|
HYPRCURSOR_SIZE = "24";
|
||||||
];
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,46 @@
|
|||||||
|
#
|
||||||
|
# Basic desktop stuff
|
||||||
|
#
|
||||||
|
{ config, lib, pkgs, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
# Hardware
|
||||||
|
hardware.steam-hardware.enable = true;
|
||||||
|
|
||||||
|
# Common utilities
|
||||||
|
programs.kdeconnect.enable = true;
|
||||||
|
programs.thunderbird.enable = true;
|
||||||
|
|
||||||
|
environment.systemPackages = with pkgs; [
|
||||||
|
libnotify
|
||||||
|
shared-mime-info
|
||||||
|
|
||||||
|
kdePackages.kdf
|
||||||
|
kdePackages.kservice
|
||||||
|
|
||||||
|
kdePackages.kio
|
||||||
|
kdePackages.kio-admin
|
||||||
|
kdePackages.kio-extras
|
||||||
|
kdePackages.kio-fuse
|
||||||
|
|
||||||
|
kdePackages.ark
|
||||||
|
kdePackages.dolphin
|
||||||
|
kdePackages.gwenview
|
||||||
|
kdePackages.okular
|
||||||
|
|
||||||
|
keepassxc
|
||||||
|
element-desktop
|
||||||
|
gimp-with-plugins
|
||||||
|
inkscape
|
||||||
|
libreoffice-qt-fresh
|
||||||
|
nextcloud-client
|
||||||
|
vesktop
|
||||||
|
|
||||||
|
bambu-studio
|
||||||
|
|
||||||
|
dolphin-emu
|
||||||
|
dolphin-emu-primehack
|
||||||
|
luanti # Minetest
|
||||||
|
ppsspp
|
||||||
|
];
|
||||||
|
}
|
||||||
Generated
+27
@@ -0,0 +1,27 @@
|
|||||||
|
{
|
||||||
|
"nodes": {
|
||||||
|
"nixpkgs": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1777578337,
|
||||||
|
"narHash": "sha256-Ad49moKWeXtKBJNy2ebiTQUEgdLyvGmTeykAQ9xM+Z4=",
|
||||||
|
"owner": "NixOS",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"rev": "15f4ee454b1dce334612fa6843b3e05cf546efab",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "NixOS",
|
||||||
|
"ref": "nixos-unstable",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"root": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs": "nixpkgs"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"root": "root",
|
||||||
|
"version": 7
|
||||||
|
}
|
||||||
@@ -0,0 +1,20 @@
|
|||||||
|
{
|
||||||
|
description = "Salt's NixOS configuration";
|
||||||
|
|
||||||
|
inputs = {
|
||||||
|
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
|
||||||
|
};
|
||||||
|
|
||||||
|
outputs = { nixpkgs, ... }: {
|
||||||
|
nixosConfigurations.laptop-nixos-1 = nixpkgs.lib.nixosSystem {
|
||||||
|
system = "x86_64-linux";
|
||||||
|
modules = [
|
||||||
|
./configuration.nix
|
||||||
|
./hosts/laptop-nixos-1/configuration.nix
|
||||||
|
./hosts/laptop-nixos-1/hardware-configuration.nix
|
||||||
|
./swap/16G.nix
|
||||||
|
./swap/zswap.nix
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -0,0 +1,4 @@
|
|||||||
|
{
|
||||||
|
networking.hostName = "laptop-nixos-1";
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,33 @@
|
|||||||
|
# Do not modify this file! It was generated by ‘nixos-generate-config’
|
||||||
|
# and may be overwritten by future invocations. Please make changes
|
||||||
|
# to /etc/nixos/configuration.nix instead.
|
||||||
|
{ config, lib, pkgs, modulesPath, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
imports =
|
||||||
|
[ (modulesPath + "/installer/scan/not-detected.nix")
|
||||||
|
];
|
||||||
|
|
||||||
|
boot.initrd.availableKernelModules = [ "xhci_pci" "thunderbolt" "nvme" "usb_storage" "sd_mod" "sdhci_pci" ];
|
||||||
|
boot.initrd.kernelModules = [ ];
|
||||||
|
boot.kernelModules = [ "kvm-intel" ];
|
||||||
|
boot.extraModulePackages = [ ];
|
||||||
|
|
||||||
|
fileSystems."/" =
|
||||||
|
{ device = "/dev/mapper/cryptroot";
|
||||||
|
fsType = "ext4";
|
||||||
|
};
|
||||||
|
|
||||||
|
boot.initrd.luks.devices."cryptroot".device = "/dev/disk/by-uuid/bec0b67c-636f-41ba-b626-0c705ee10f57";
|
||||||
|
|
||||||
|
fileSystems."/boot" =
|
||||||
|
{ device = "/dev/disk/by-uuid/30B9-37E9";
|
||||||
|
fsType = "vfat";
|
||||||
|
options = [ "fmask=0022" "dmask=0022" ];
|
||||||
|
};
|
||||||
|
|
||||||
|
swapDevices = [ ];
|
||||||
|
|
||||||
|
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
|
||||||
|
hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
|
||||||
|
}
|
||||||
+2
-1
@@ -1,3 +1,4 @@
|
|||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
git pull
|
git pull
|
||||||
exec sudo nixos-rebuild switch
|
NIX_CONFIG='experimental-features = nix-command flakes' nix flake lock
|
||||||
|
exec sudo env NIX_CONFIG='experimental-features = nix-command flakes' nixos-rebuild switch --flake .#laptop-nixos-1
|
||||||
|
|||||||
@@ -0,0 +1,8 @@
|
|||||||
|
{
|
||||||
|
swapDevices = [
|
||||||
|
{
|
||||||
|
device = "/swap-16";
|
||||||
|
size = 16 * 1024;
|
||||||
|
}
|
||||||
|
];
|
||||||
|
}
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
{
|
||||||
|
boot.kernelParams = [
|
||||||
|
"zswap.enabled=1"
|
||||||
|
"zswap.compressor=zstd"
|
||||||
|
"zswap.zpool=zsmalloc"
|
||||||
|
"zswap.max_poool_percent=30"
|
||||||
|
];
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user