Compare commits

..

57 Commits

Author SHA1 Message Date
salt cde6eb2fa7 Add in styling n shit 2026-05-18 14:56:47 -05:00
salt f974c85b5e Polish session up a bit more 2026-05-08 22:00:11 -05:00
salt 4d993d5841 Add XDG menu source from Plasma 2026-05-08 21:52:18 -05:00
salt b982de75f3 Revert "Testing explicit MIME associations"
This reverts commit 02cd233318.
2026-05-08 21:42:52 -05:00
salt 02cd233318 Testing explicit MIME associations 2026-05-08 21:42:11 -05:00
salt 010b34ca1d Turn more shit on 2026-05-08 21:27:41 -05:00
salt 4f97ee32d1 Add kservice 2026-05-08 21:17:14 -05:00
salt 739b4e25b8 More KDE 2026-05-08 21:14:30 -05:00
salt ef9611ce96 Explicitly enable some XDG stuff 2026-05-08 21:12:43 -05:00
salt 2b4436c675 Add Okular 2026-05-08 21:07:38 -05:00
salt d2dcc124cf Add Ark 2026-05-08 21:06:31 -05:00
salt 14738729de Add gwenview 2026-05-08 21:06:12 -05:00
salt 3a76c107e4 More packages 2026-05-08 17:15:59 -05:00
salt 85be826fae Add LO 2026-05-08 17:06:03 -05:00
salt 1c63fb1130 More packages 2026-05-08 17:04:25 -05:00
salt 5a702e5914 Oops 2026-05-08 16:51:54 -05:00
salt 4437852aaa More packages 2026-05-08 16:50:54 -05:00
salt e8f4abfbb0 Add check script 2026-05-08 16:40:20 -05:00
salt 35fccb631c Doctoring things up 2026-05-08 16:39:54 -05:00
salt de8fe9dc11 Add kwallet 2026-05-03 18:43:51 -05:00
salt a0385efe7e Revert "Remove GTK portal"
This reverts commit 2b0e4b5cd1.
2026-05-03 18:36:41 -05:00
salt 2b0e4b5cd1 Remove GTK portal 2026-05-03 18:00:17 -05:00
salt 2e5401ad21 Enable more portals? 2026-05-03 17:54:51 -05:00
salt cd68ff6ce6 Enable steam-devices 2026-05-03 17:51:10 -05:00
salt efc316d63a FUCK 2026-05-03 03:14:56 -05:00
salt 4f1bb4326e Add zswap 2026-05-03 03:14:33 -05:00
salt 344872a373 No wait THAT'S ripgrep 2026-05-03 03:02:53 -05:00
salt 13c2c08321 Add ripgrep 2026-05-03 03:02:31 -05:00
salt 64acb884a9 Give Codex some bubblewrap 2026-05-03 02:56:55 -05:00
salt 84a437c399 Rename swww -> awww 2026-05-03 02:49:17 -05:00
salt f6b3f38fba Fix codex 2026-05-03 02:48:47 -05:00
salt 571af6f44d Update thunar 2026-05-03 02:46:56 -05:00
salt a90e409e51 Oops. 2026-05-03 02:46:22 -05:00
salt 916da21dd7 Oops? 2026-05-03 02:45:57 -05:00
salt 5b6dcf51eb Oops 2026-05-03 02:45:06 -05:00
salt c20909d919 Add clanker 2026-05-03 02:44:44 -05:00
salt 20e83dcbfa Allow unfree 2026-05-03 02:32:47 -05:00
salt 091c9c5e85 Compartmentalizing stuffs 2026-05-03 02:21:30 -05:00
salt 827c5c0925 Remove copySystemConfiguration (don't need it anyway with flakes) 2026-05-03 02:16:29 -05:00
salt 8bc8b3eada Oops 2026-05-03 02:15:30 -05:00
salt acaf693a28 Check in the... generated hardware config?? 2026-05-03 02:15:13 -05:00
salt 7a4d9b4114 Lock the flake 2026-05-03 02:08:47 -05:00
salt dfe4b67433 Fine, modularize it then 2026-05-03 02:00:10 -05:00
salt 7dce64e0b0 Fix OTHER syntax err 2026-05-03 01:59:06 -05:00
salt 306b2f22dc Fix syntax err 2026-05-03 01:58:45 -05:00
salt 34d2fc8379 Flake? Flake 2026-05-03 01:58:20 -05:00
salt a37a2d45a7 Pin FA6 2026-05-03 01:46:42 -05:00
salt 88994f305a Add htop 2026-05-03 01:43:52 -05:00
salt fb136d9ce1 Add psmisc 2026-05-03 01:43:19 -05:00
salt 13649b7ee9 Target specific breeze variant 2026-05-03 01:38:59 -05:00
salt a2dfd078a8 Fix typing 2026-05-03 01:37:26 -05:00
salt 0003dc0699 Try and define themes in dconf 2026-05-03 01:36:46 -05:00
salt a8e1a504ca Tune theme 2026-05-03 01:29:12 -05:00
salt 2975eacf67 Maybe this? 2026-05-03 01:25:17 -05:00
salt 7adeac1881 Fix package name 2026-05-03 01:19:00 -05:00
salt 1d4c953d4c Tuning 2026-05-03 01:18:32 -05:00
salt b081901c91 Fix syntax 2026-05-03 01:15:10 -05:00
17 changed files with 282 additions and 21 deletions
-1
View File
@@ -1,3 +1,2 @@
*.swp *.swp
.codex .codex
hardware-configuration.nix
+9 -6
View File
@@ -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";
Executable
+2
View File
@@ -0,0 +1,2 @@
#! /bin/sh
exec nix flake check .
+1 -1
View File
@@ -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
View File
@@ -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;
} }
+25
View File
@@ -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
View File
@@ -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
View File
@@ -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";
]; };
} }
+46
View File
@@ -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
View File
@@ -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
}
+20
View File
@@ -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
];
};
};
}
+4
View File
@@ -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;
}
Executable
+2
View File
@@ -0,0 +1,2 @@
#! /bin/sh
exec nixos-option -F . "$@"
+2 -1
View File
@@ -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
+8
View File
@@ -0,0 +1,8 @@
{
swapDevices = [
{
device = "/swap-16";
size = 16 * 1024;
}
];
}
+8
View File
@@ -0,0 +1,8 @@
{
boot.kernelParams = [
"zswap.enabled=1"
"zswap.compressor=zstd"
"zswap.zpool=zsmalloc"
"zswap.max_poool_percent=30"
];
}