Compare commits
59 Commits
892b3b77ec
..
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 | |||
| d8844ce058 | |||
| 82a001387a |
@@ -1,3 +1,2 @@
|
||||
*.swp
|
||||
.codex
|
||||
hardware-configuration.nix
|
||||
|
||||
+9
-6
@@ -5,13 +5,16 @@
|
||||
{ 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.
|
||||
boot.loader.systemd-boot.enable = true;
|
||||
boot.loader.efi.canTouchEfiVariables = true;
|
||||
# Latest kernel, not LTS
|
||||
boot.kernelPackages = pkgs.linuxPackages_latest;
|
||||
# TODO: Dynamically configure hostname
|
||||
networking.hostName = "laptop-nixos-1";
|
||||
# Configure network connections interactively with nmcli or nmtui.
|
||||
networking.networkmanager.enable = true;
|
||||
# Set your time zone.
|
||||
@@ -31,9 +34,13 @@
|
||||
# List packages installed in system profile.
|
||||
# You can use https://search.nixos.org/ to find more packages (and options).
|
||||
environment.systemPackages = with pkgs; [
|
||||
cryfs
|
||||
git
|
||||
htop
|
||||
jq
|
||||
procps
|
||||
psmisc
|
||||
ripgrep
|
||||
stow
|
||||
vim
|
||||
wget
|
||||
@@ -47,10 +54,6 @@
|
||||
# Or disable the firewall altogether.
|
||||
# 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
|
||||
system.stateVersion = "25.11";
|
||||
|
||||
|
||||
+1
-1
@@ -6,9 +6,9 @@
|
||||
|
||||
{
|
||||
imports = [
|
||||
./hardware-configuration.nix
|
||||
./base/system.nix
|
||||
./base/users.nix
|
||||
./desktop/hyprland.nix
|
||||
./desktop/codex.nix
|
||||
];
|
||||
}
|
||||
|
||||
@@ -0,0 +1,65 @@
|
||||
#
|
||||
# Basic desktop stuff
|
||||
#
|
||||
{ config, lib, pkgs, ... }:
|
||||
|
||||
{
|
||||
security.pam.services.sddm.kwallet.enable = true;
|
||||
|
||||
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.packages = with pkgs; [
|
||||
dejavu_fonts
|
||||
font-awesome
|
||||
font-awesome_6
|
||||
ibm-plex
|
||||
noto-fonts
|
||||
noto-fonts-color-emoji
|
||||
|
||||
+39
-3
@@ -3,20 +3,49 @@
|
||||
#
|
||||
{ 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 = [
|
||||
./base.nix
|
||||
./flatpak.nix
|
||||
./fonts.nix
|
||||
./packages.nix
|
||||
./sddm.nix
|
||||
];
|
||||
services.displayManager.defaultSession = "hyprland";
|
||||
services.displayManager.defaultSession = "hyprland-nixos-uwsm";
|
||||
|
||||
# Hyprland as the star of the show
|
||||
programs.hyprland.enable = true;
|
||||
programs.hyprland.withUWSM = true;
|
||||
services.displayManager.sessionPackages = [ hyprlandUwsmSession ];
|
||||
|
||||
# XDG portal
|
||||
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
|
||||
environment.systemPackages = with pkgs; [
|
||||
@@ -27,7 +56,7 @@
|
||||
hyprland
|
||||
hyprlock
|
||||
rofi
|
||||
swww
|
||||
awww
|
||||
waybar
|
||||
wlsunset
|
||||
wofi
|
||||
@@ -49,4 +78,11 @@
|
||||
slurp
|
||||
wl-clipboard
|
||||
];
|
||||
|
||||
# Cursor theme for Hyprland and regular Wayland/XWayland clients.
|
||||
environment.sessionVariables = {
|
||||
XCURSOR_THEME = "breeze_cursors";
|
||||
XCURSOR_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
|
||||
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