Compare commits
1 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 1e291f4366 |
32
debug-sway.sh
Executable file
32
debug-sway.sh
Executable file
@@ -0,0 +1,32 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Debug script for SDDM and Sway session issues
|
||||
echo "=== SDDM and Sway Debug Information ==="
|
||||
|
||||
echo -e "\n1. Checking if Sway is installed:"
|
||||
which sway 2>/dev/null || echo "Sway not found in PATH"
|
||||
|
||||
echo -e "\n2. Checking Sway desktop files:"
|
||||
find /nix/store -name "sway.desktop" 2>/dev/null | head -3
|
||||
|
||||
echo -e "\n3. Checking current SDDM configuration:"
|
||||
if [ -f /etc/sddm.conf ]; then
|
||||
cat /etc/sddm.conf
|
||||
else
|
||||
echo "SDDM config file not found"
|
||||
fi
|
||||
|
||||
echo -e "\n4. Checking available sessions:"
|
||||
ls -la /usr/share/wayland-sessions/ 2>/dev/null || echo "No wayland-sessions directory found"
|
||||
ls -la /usr/share/xsessions/ 2>/dev/null || echo "No xsessions directory found"
|
||||
|
||||
echo -e "\n5. Checking if SDDM service is running:"
|
||||
systemctl status sddm 2>/dev/null || echo "Cannot check SDDM status"
|
||||
|
||||
echo -e "\n6. Checking environment variables:"
|
||||
echo "XDG_SESSION_TYPE: $XDG_SESSION_TYPE"
|
||||
echo "XDG_CURRENT_DESKTOP: $XDG_CURRENT_DESKTOP"
|
||||
|
||||
echo -e "\n7. Testing Sway startup:"
|
||||
echo "Run this command to test Sway:"
|
||||
echo "sway --debug 2>&1 | head -10"
|
||||
522
flake.lock
generated
522
flake.lock
generated
@@ -1,265 +1,5 @@
|
||||
{
|
||||
"nodes": {
|
||||
"base16": {
|
||||
"inputs": {
|
||||
"fromYaml": "fromYaml"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1732200724,
|
||||
"narHash": "sha256-+R1BH5wHhfnycySb7Sy5KbYEaTJZWm1h+LW1OtyhiTs=",
|
||||
"owner": "SenchoPens",
|
||||
"repo": "base16.nix",
|
||||
"rev": "153d52373b0fb2d343592871009a286ec8837aec",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "SenchoPens",
|
||||
"repo": "base16.nix",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"base16-fish": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1622559957,
|
||||
"narHash": "sha256-PebymhVYbL8trDVVXxCvZgc0S5VxI7I1Hv4RMSquTpA=",
|
||||
"owner": "tomyun",
|
||||
"repo": "base16-fish",
|
||||
"rev": "2f6dd973a9075dabccd26f1cded09508180bf5fe",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "tomyun",
|
||||
"repo": "base16-fish",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"base16-helix": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1725860795,
|
||||
"narHash": "sha256-Z2o8VBPW3I+KKTSfe25kskz0EUj7MpUh8u355Z1nVsU=",
|
||||
"owner": "tinted-theming",
|
||||
"repo": "base16-helix",
|
||||
"rev": "7f795bf75d38e0eea9fed287264067ca187b88a9",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "tinted-theming",
|
||||
"repo": "base16-helix",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"base16-vim": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1731949548,
|
||||
"narHash": "sha256-XIDexXM66sSh5j/x70e054BnUsviibUShW7XhbDGhYo=",
|
||||
"owner": "tinted-theming",
|
||||
"repo": "base16-vim",
|
||||
"rev": "61165b1632409bd55e530f3dbdd4477f011cadc6",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "tinted-theming",
|
||||
"repo": "base16-vim",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"firefox-gnome-theme": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1734969791,
|
||||
"narHash": "sha256-A9PxLienMYJ/WUvqFie9qXrNC2MeRRYw7TG/q7DRjZg=",
|
||||
"owner": "rafaelmardojai",
|
||||
"repo": "firefox-gnome-theme",
|
||||
"rev": "92f4890bd150fc9d97b61b3583680c0524a8cafe",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "rafaelmardojai",
|
||||
"repo": "firefox-gnome-theme",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"flake-compat": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1696426674,
|
||||
"narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=",
|
||||
"owner": "edolstra",
|
||||
"repo": "flake-compat",
|
||||
"rev": "0f9255e01c2351cc7d116c072cb317785dd33b33",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "edolstra",
|
||||
"repo": "flake-compat",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"flake-compat_2": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1696426674,
|
||||
"narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=",
|
||||
"owner": "edolstra",
|
||||
"repo": "flake-compat",
|
||||
"rev": "0f9255e01c2351cc7d116c072cb317785dd33b33",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "edolstra",
|
||||
"repo": "flake-compat",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"flake-utils": {
|
||||
"inputs": {
|
||||
"systems": "systems"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1705309234,
|
||||
"narHash": "sha256-uNRRNRKmJyCRC/8y1RqBkqWBLM034y4qN7EprSdmgyA=",
|
||||
"owner": "numtide",
|
||||
"repo": "flake-utils",
|
||||
"rev": "1ef2e671c3b0c19053962c07dbda38332dcebf26",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "numtide",
|
||||
"repo": "flake-utils",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"flake-utils_2": {
|
||||
"inputs": {
|
||||
"systems": [
|
||||
"stylix",
|
||||
"systems"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1731533236,
|
||||
"narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=",
|
||||
"owner": "numtide",
|
||||
"repo": "flake-utils",
|
||||
"rev": "11707dc2f618dd54ca8739b309ec4fc024de578b",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "numtide",
|
||||
"repo": "flake-utils",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"fromYaml": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1731966426,
|
||||
"narHash": "sha256-lq95WydhbUTWig/JpqiB7oViTcHFP8Lv41IGtayokA8=",
|
||||
"owner": "SenchoPens",
|
||||
"repo": "fromYaml",
|
||||
"rev": "106af9e2f715e2d828df706c386a685698f3223b",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "SenchoPens",
|
||||
"repo": "fromYaml",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"ghostty": {
|
||||
"inputs": {
|
||||
"flake-compat": "flake-compat",
|
||||
"nixpkgs-stable": "nixpkgs-stable",
|
||||
"nixpkgs-unstable": "nixpkgs-unstable",
|
||||
"zig": "zig"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1736210320,
|
||||
"narHash": "sha256-QnDkQ/s1OWmPj1f+7MFNxQiAPJdHbI1Aft7yM5I+8gQ=",
|
||||
"owner": "ghostty-org",
|
||||
"repo": "ghostty",
|
||||
"rev": "a3837a1e4ee06a183f32d4a622c2cdcd51f73fb8",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "ghostty-org",
|
||||
"repo": "ghostty",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"git-hooks": {
|
||||
"inputs": {
|
||||
"flake-compat": [
|
||||
"stylix",
|
||||
"flake-compat"
|
||||
],
|
||||
"gitignore": "gitignore",
|
||||
"nixpkgs": [
|
||||
"stylix",
|
||||
"nixpkgs"
|
||||
],
|
||||
"nixpkgs-stable": [
|
||||
"stylix",
|
||||
"git-hooks",
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1731363552,
|
||||
"narHash": "sha256-vFta1uHnD29VUY4HJOO/D6p6rxyObnf+InnSMT4jlMU=",
|
||||
"owner": "cachix",
|
||||
"repo": "git-hooks.nix",
|
||||
"rev": "cd1af27aa85026ac759d5d3fccf650abe7e1bbf0",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "cachix",
|
||||
"repo": "git-hooks.nix",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"gitignore": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
"stylix",
|
||||
"git-hooks",
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1709087332,
|
||||
"narHash": "sha256-HG2cCnktfHsKV0s4XW83gU3F57gaTljL9KNSuG6bnQs=",
|
||||
"owner": "hercules-ci",
|
||||
"repo": "gitignore.nix",
|
||||
"rev": "637db329424fd7e46cf4185293b9cc8c88c95394",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "hercules-ci",
|
||||
"repo": "gitignore.nix",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"gnome-shell": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1732369855,
|
||||
"narHash": "sha256-JhUWbcYPjHO3Xs3x9/Z9RuqXbcp5yhPluGjwsdE2GMg=",
|
||||
"owner": "GNOME",
|
||||
"repo": "gnome-shell",
|
||||
"rev": "dadd58f630eeea41d645ee225a63f719390829dc",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "GNOME",
|
||||
"ref": "47.2",
|
||||
"repo": "gnome-shell",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"home-manager": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
@@ -267,285 +7,39 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1735344290,
|
||||
"narHash": "sha256-oJDtWPH1oJT34RJK1FSWjwX4qcGOBRkcNQPD0EbSfNM=",
|
||||
"lastModified": 1756261190,
|
||||
"narHash": "sha256-eiy0klFK5EVJLNilutR7grsZN/7Itj9DyD75eyOf83k=",
|
||||
"owner": "nix-community",
|
||||
"repo": "home-manager",
|
||||
"rev": "613691f285dad87694c2ba1c9e6298d04736292d",
|
||||
"rev": "77f348da3176dc68b20a73dab94852a417daf361",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nix-community",
|
||||
"ref": "release-24.11",
|
||||
"repo": "home-manager",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"home-manager_2": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
"stylix",
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1733572789,
|
||||
"narHash": "sha256-zjO6m5BqxXIyjrnUziAzk4+T4VleqjstNudSqWcpsHI=",
|
||||
"owner": "nix-community",
|
||||
"repo": "home-manager",
|
||||
"rev": "c7ffc9727d115e433fd884a62dc164b587ff651d",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nix-community",
|
||||
"ref": "release-24.11",
|
||||
"repo": "home-manager",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs": {
|
||||
"locked": {
|
||||
"lastModified": 1736061677,
|
||||
"narHash": "sha256-DjkQPnkAfd7eB522PwnkGhOMuT9QVCZspDpJJYyOj60=",
|
||||
"owner": "nixos",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "cbd8ec4de4469333c82ff40d057350c30e9f7d36",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nixos",
|
||||
"ref": "nixos-24.11",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs-stable": {
|
||||
"locked": {
|
||||
"lastModified": 1733423277,
|
||||
"narHash": "sha256-TxabjxEgkNbCGFRHgM/b9yZWlBj60gUOUnRT/wbVQR8=",
|
||||
"owner": "nixos",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "e36963a147267afc055f7cf65225958633e536bf",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nixos",
|
||||
"ref": "release-24.11",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs-unstable": {
|
||||
"locked": {
|
||||
"lastModified": 1733229606,
|
||||
"narHash": "sha256-FLYY5M0rpa5C2QAE3CKLYAM6TwbKicdRK6qNrSHlNrE=",
|
||||
"owner": "nixos",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "566e53c2ad750c84f6d31f9ccb9d00f823165550",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nixos",
|
||||
"ref": "nixpkgs-unstable",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs_2": {
|
||||
"locked": {
|
||||
"lastModified": 1731763621,
|
||||
"narHash": "sha256-ddcX4lQL0X05AYkrkV2LMFgGdRvgap7Ho8kgon3iWZk=",
|
||||
"lastModified": 1756787288,
|
||||
"narHash": "sha256-rw/PHa1cqiePdBxhF66V7R+WAP8WekQ0mCDG4CFqT8Y=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "c69a9bffbecde46b4b939465422ddc59493d3e4d",
|
||||
"rev": "d0fc30899600b9b3466ddb260fd83deb486c32f1",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "NixOS",
|
||||
"ref": "nixpkgs-unstable",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs_3": {
|
||||
"locked": {
|
||||
"lastModified": 1733550349,
|
||||
"narHash": "sha256-NcGumB4Lr6KSDq+nIqXtNA8QwAQKDSZT7N9OTGWbTrs=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "e2605d0744c2417b09f8bf850dfca42fcf537d34",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "NixOS",
|
||||
"ref": "nixos-24.11",
|
||||
"ref": "nixos-unstable",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"root": {
|
||||
"inputs": {
|
||||
"ghostty": "ghostty",
|
||||
"home-manager": "home-manager",
|
||||
"nixpkgs": "nixpkgs",
|
||||
"sops-nix": "sops-nix",
|
||||
"stylix": "stylix"
|
||||
}
|
||||
},
|
||||
"sops-nix": {
|
||||
"inputs": {
|
||||
"nixpkgs": "nixpkgs_2"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1736203741,
|
||||
"narHash": "sha256-eSjkBwBdQk+TZWFlLbclF2rAh4JxbGg8az4w/Lfe7f4=",
|
||||
"owner": "Mic92",
|
||||
"repo": "sops-nix",
|
||||
"rev": "c9c88f08e3ee495e888b8d7c8624a0b2519cb773",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "Mic92",
|
||||
"repo": "sops-nix",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"stylix": {
|
||||
"inputs": {
|
||||
"base16": "base16",
|
||||
"base16-fish": "base16-fish",
|
||||
"base16-helix": "base16-helix",
|
||||
"base16-vim": "base16-vim",
|
||||
"firefox-gnome-theme": "firefox-gnome-theme",
|
||||
"flake-compat": "flake-compat_2",
|
||||
"flake-utils": "flake-utils_2",
|
||||
"git-hooks": "git-hooks",
|
||||
"gnome-shell": "gnome-shell",
|
||||
"home-manager": "home-manager_2",
|
||||
"nixpkgs": "nixpkgs_3",
|
||||
"systems": "systems_2",
|
||||
"tinted-foot": "tinted-foot",
|
||||
"tinted-kitty": "tinted-kitty",
|
||||
"tinted-tmux": "tinted-tmux"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1736203541,
|
||||
"narHash": "sha256-ucHJzVv3lGxq7v+snqs/rDNwojVyvBHxwQ5yE2qNfNc=",
|
||||
"owner": "danth",
|
||||
"repo": "stylix",
|
||||
"rev": "45af2a43aaaf05dfb8839dc827c2e2b0d98375da",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "danth",
|
||||
"ref": "release-24.11",
|
||||
"repo": "stylix",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"systems": {
|
||||
"locked": {
|
||||
"lastModified": 1681028828,
|
||||
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
|
||||
"owner": "nix-systems",
|
||||
"repo": "default",
|
||||
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nix-systems",
|
||||
"repo": "default",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"systems_2": {
|
||||
"locked": {
|
||||
"lastModified": 1681028828,
|
||||
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
|
||||
"owner": "nix-systems",
|
||||
"repo": "default",
|
||||
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nix-systems",
|
||||
"repo": "default",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"tinted-foot": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1726913040,
|
||||
"narHash": "sha256-+eDZPkw7efMNUf3/Pv0EmsidqdwNJ1TaOum6k7lngDQ=",
|
||||
"owner": "tinted-theming",
|
||||
"repo": "tinted-foot",
|
||||
"rev": "fd1b924b6c45c3e4465e8a849e67ea82933fcbe4",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "tinted-theming",
|
||||
"repo": "tinted-foot",
|
||||
"rev": "fd1b924b6c45c3e4465e8a849e67ea82933fcbe4",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"tinted-kitty": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1716423189,
|
||||
"narHash": "sha256-2xF3sH7UIwegn+2gKzMpFi3pk5DlIlM18+vj17Uf82U=",
|
||||
"owner": "tinted-theming",
|
||||
"repo": "tinted-kitty",
|
||||
"rev": "eb39e141db14baef052893285df9f266df041ff8",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "tinted-theming",
|
||||
"repo": "tinted-kitty",
|
||||
"rev": "eb39e141db14baef052893285df9f266df041ff8",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"tinted-tmux": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1729501581,
|
||||
"narHash": "sha256-1ohEFMC23elnl39kxWnjzH1l2DFWWx4DhFNNYDTYt54=",
|
||||
"owner": "tinted-theming",
|
||||
"repo": "tinted-tmux",
|
||||
"rev": "f0e7f7974a6441033eb0a172a0342e96722b4f14",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "tinted-theming",
|
||||
"repo": "tinted-tmux",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"zig": {
|
||||
"inputs": {
|
||||
"flake-compat": [
|
||||
"ghostty"
|
||||
],
|
||||
"flake-utils": "flake-utils",
|
||||
"nixpkgs": [
|
||||
"ghostty",
|
||||
"nixpkgs-stable"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1717848532,
|
||||
"narHash": "sha256-d+xIUvSTreHl8pAmU1fnmkfDTGQYCn2Rb/zOwByxS2M=",
|
||||
"owner": "mitchellh",
|
||||
"repo": "zig-overlay",
|
||||
"rev": "02fc5cc555fc14fda40c42d7c3250efa43812b43",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "mitchellh",
|
||||
"repo": "zig-overlay",
|
||||
"type": "github"
|
||||
"nixpkgs": "nixpkgs"
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
62
flake.nix
62
flake.nix
@@ -1,52 +1,26 @@
|
||||
{
|
||||
description = "A very basic flake";
|
||||
description = "Jared's NixOS Configuration";
|
||||
|
||||
inputs = {
|
||||
nixpkgs.url = "github:nixos/nixpkgs?ref=nixos-24.11";
|
||||
home-manager.url = "github:nix-community/home-manager?ref=release-24.11";
|
||||
home-manager.inputs.nixpkgs.follows = "nixpkgs";
|
||||
#hyprland.url = "github:hyprwm/Hyprland";
|
||||
#nix-colors.url = "github:misterio77/nix-colors";
|
||||
stylix.url = "github:danth/stylix/release-24.11";
|
||||
sops-nix.url = "github:Mic92/sops-nix";
|
||||
ghostty.url = "github:ghostty-org/ghostty";
|
||||
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
|
||||
home-manager = {
|
||||
url = "github:nix-community/home-manager";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
};
|
||||
|
||||
outputs = { self, nixpkgs, home-manager, stylix, sops-nix, ghostty, ... } @ inputs: let
|
||||
inherit (self) outputs;
|
||||
username = "jared";
|
||||
in {
|
||||
nixosConfigurations = {
|
||||
# ============ NixOS Configuration ============ #
|
||||
tito = nixpkgs.lib.nixosSystem {
|
||||
system = "x86_64-linux";
|
||||
specialArgs = {inherit inputs username stylix ghostty ;};
|
||||
modules = [
|
||||
stylix.nixosModules.stylix
|
||||
sops-nix.nixosModules.sops
|
||||
./hosts/tito/configuration.nix
|
||||
home-manager.nixosModules.home-manager {
|
||||
home-manager.useGlobalPkgs = true;
|
||||
home-manager.useUserPackages = true;
|
||||
home-manager.users.jared = import ./home/jared/home.nix;
|
||||
}
|
||||
];
|
||||
};
|
||||
xps = nixpkgs.lib.nixosSystem {
|
||||
system = "x86_64-linux";
|
||||
specialArgs = {inherit inputs username stylix ghostty ;};
|
||||
modules = [
|
||||
stylix.nixosModules.stylix
|
||||
sops-nix.nixosModules.sops
|
||||
./hosts/xps/configuration.nix
|
||||
home-manager.nixosModules.home-manager {
|
||||
home-manager.useGlobalPkgs = true;
|
||||
home-manager.useUserPackages = true;
|
||||
home-manager.users.jared = import ./home/jared/home.nix;
|
||||
}
|
||||
];
|
||||
|
||||
};
|
||||
outputs = { self, nixpkgs, home-manager }: {
|
||||
nixosConfigurations.abra = nixpkgs.lib.nixosSystem {
|
||||
system = "x86_64-linux";
|
||||
modules = [
|
||||
./hosts/abra/configuration.nix
|
||||
home-manager.nixosModules.home-manager
|
||||
{
|
||||
home-manager.useGlobalPkgs = true;
|
||||
home-manager.useUserPackages = true;
|
||||
home-manager.users.jared = import ./home-manager;
|
||||
}
|
||||
];
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
27
home-manager/default.nix
Normal file
27
home-manager/default.nix
Normal file
@@ -0,0 +1,27 @@
|
||||
{ config, pkgs, ... }:
|
||||
|
||||
{
|
||||
imports = [
|
||||
./programs
|
||||
./services
|
||||
./themes
|
||||
];
|
||||
|
||||
# Home Manager settings
|
||||
home.stateVersion = "25.05";
|
||||
|
||||
# User-specific packages
|
||||
home.packages = with pkgs; [
|
||||
# Sway-related packages
|
||||
swaybg
|
||||
swayidle
|
||||
swaylock
|
||||
wlogout
|
||||
wofi
|
||||
grim
|
||||
slurp
|
||||
mako
|
||||
wl-clipboard
|
||||
# Add user-specific packages here
|
||||
];
|
||||
}
|
||||
14
home-manager/programs/default.nix
Normal file
14
home-manager/programs/default.nix
Normal file
@@ -0,0 +1,14 @@
|
||||
{ config, pkgs, ... }:
|
||||
|
||||
{
|
||||
imports = [
|
||||
# Add program-specific configurations here
|
||||
./git.nix
|
||||
./direnv.nix
|
||||
./neovim.nix
|
||||
./sway.nix
|
||||
./waybar.nix
|
||||
# ./shell.nix
|
||||
./yazi.nix
|
||||
];
|
||||
}
|
||||
10
home-manager/programs/direnv.nix
Normal file
10
home-manager/programs/direnv.nix
Normal file
@@ -0,0 +1,10 @@
|
||||
{ config, pkgs, ... }:
|
||||
|
||||
{
|
||||
programs.direnv = {
|
||||
enable = true;
|
||||
enableBashIntegration = true; # or enableZshIntegration = true;
|
||||
nix-direnv.enable = true;
|
||||
};
|
||||
}
|
||||
|
||||
15
home-manager/programs/git.nix
Normal file
15
home-manager/programs/git.nix
Normal file
@@ -0,0 +1,15 @@
|
||||
{ config, pkgs, ... }:
|
||||
|
||||
{
|
||||
programs.git = {
|
||||
enable = true;
|
||||
userName = "Jared Kling";
|
||||
userEmail = "jared@kling.dev";
|
||||
|
||||
extraConfig = {
|
||||
init.defaultBranch = "main";
|
||||
pull.rebase = true;
|
||||
push.autoSetupRemote = true;
|
||||
};
|
||||
};
|
||||
}
|
||||
11
home-manager/programs/neovim.nix
Normal file
11
home-manager/programs/neovim.nix
Normal file
@@ -0,0 +1,11 @@
|
||||
{ config, pkgs, ... }:
|
||||
|
||||
{
|
||||
programs.neovim = {
|
||||
enable = true;
|
||||
viAlias = true;
|
||||
vimAlias = true;
|
||||
withNodeJs = true;
|
||||
defaultEditor = true;
|
||||
};
|
||||
}
|
||||
167
home-manager/programs/sway.nix
Normal file
167
home-manager/programs/sway.nix
Normal file
@@ -0,0 +1,167 @@
|
||||
{ config, pkgs, ... }:
|
||||
|
||||
{
|
||||
wayland.windowManager.sway = {
|
||||
enable = true;
|
||||
config = {
|
||||
# Input configuration
|
||||
input = {
|
||||
"type:touchpad" = {
|
||||
natural_scroll = "enabled";
|
||||
tap = "enabled";
|
||||
tap_button_map = "lrm";
|
||||
scroll_method = "two_finger";
|
||||
};
|
||||
"type:pointer" = {
|
||||
natural_scroll = "enabled";
|
||||
};
|
||||
};
|
||||
|
||||
# Key bindings
|
||||
keybindings = {
|
||||
"Mod4+Return" = "exec alacritty";
|
||||
"Mod4+Shift+q" = "kill";
|
||||
"Mod4+b" = "exec vivaldi";
|
||||
"Mod4+d" = "exec wofi --show drun --width 500 --height 350 --border 2 --prompt \"Apps\" --allow-images --gtk-dark";
|
||||
"Mod4+Shift+d" = "exec wofi --show run --width 400 --height 200 --prompt \"Run\"";
|
||||
"Mod4+Tab" = "exec ~/.config/sway/scripts/window-switcher.sh";
|
||||
"Mod4+Shift+c" = "reload";
|
||||
"Mod4+Shift+e" = "exec swaynag -t warning -m 'You pressed the exit shortcut. Do you really want to exit sway? This will end your Wayland session.' -B 'Yes, exit sway' 'swaymsg exit'";
|
||||
|
||||
# Focus movement
|
||||
"Mod4+h" = "focus left";
|
||||
"Mod4+j" = "focus down";
|
||||
"Mod4+k" = "focus up";
|
||||
"Mod4+l" = "focus right";
|
||||
"Mod4+Left" = "focus left";
|
||||
"Mod4+Down" = "focus down";
|
||||
"Mod4+Up" = "focus up";
|
||||
"Mod4+Right" = "focus right";
|
||||
|
||||
# Move windows
|
||||
"Mod4+Shift+h" = "move left";
|
||||
"Mod4+Shift+j" = "move down";
|
||||
"Mod4+Shift+k" = "move up";
|
||||
"Mod4+Shift+l" = "move right";
|
||||
"Mod4+Shift+Left" = "move left";
|
||||
"Mod4+Shift+Down" = "move down";
|
||||
"Mod4+Shift+Up" = "move up";
|
||||
"Mod4+Shift+Right" = "move right";
|
||||
|
||||
# Workspace switching
|
||||
"Mod4+1" = "workspace number 1";
|
||||
"Mod4+2" = "workspace number 2";
|
||||
"Mod4+3" = "workspace number 3";
|
||||
"Mod4+4" = "workspace number 4";
|
||||
"Mod4+5" = "workspace number 5";
|
||||
"Mod4+6" = "workspace number 6";
|
||||
"Mod4+7" = "workspace number 7";
|
||||
"Mod4+8" = "workspace number 8";
|
||||
"Mod4+9" = "workspace number 9";
|
||||
"Mod4+0" = "workspace number 10";
|
||||
|
||||
# Move containers to workspaces
|
||||
"Mod4+Shift+1" = "move container to workspace number 1";
|
||||
"Mod4+Shift+2" = "move container to workspace number 2";
|
||||
"Mod4+Shift+3" = "move container to workspace number 3";
|
||||
"Mod4+Shift+4" = "move container to workspace number 4";
|
||||
"Mod4+Shift+5" = "move container to workspace number 5";
|
||||
"Mod4+Shift+6" = "move container to workspace number 6";
|
||||
"Mod4+Shift+7" = "move container to workspace number 7";
|
||||
"Mod4+Shift+8" = "move container to workspace number 8";
|
||||
"Mod4+Shift+9" = "move container to workspace number 9";
|
||||
"Mod4+Shift+0" = "move container to workspace number 10";
|
||||
|
||||
"Mod4+f" = "fullscreen";
|
||||
"Mod4+Shift+b" = "exec pkill waybar; waybar &";
|
||||
};
|
||||
|
||||
# Window rules
|
||||
window = {
|
||||
commands = [
|
||||
{
|
||||
criteria = { class = ".*"; };
|
||||
command = "border pixel 2";
|
||||
}
|
||||
{
|
||||
criteria = { app_id = ".*"; };
|
||||
command = "border pixel 2";
|
||||
}
|
||||
{
|
||||
criteria = { window_role = "dialog"; };
|
||||
command = "border normal";
|
||||
}
|
||||
{
|
||||
criteria = { window_type = "dialog"; };
|
||||
command = "border normal";
|
||||
}
|
||||
];
|
||||
titlebar = false;
|
||||
};
|
||||
|
||||
# Assignments
|
||||
assigns = {
|
||||
"9" = [{ class = "Vivaldi-stable"; }];
|
||||
};
|
||||
|
||||
# Gaps
|
||||
gaps = {
|
||||
inner = 8;
|
||||
outer = 12;
|
||||
};
|
||||
|
||||
# Colors (Tokyo Night theme)
|
||||
colors = {
|
||||
focused = {
|
||||
border = "#7aa2f7";
|
||||
background = "#7aa2f7";
|
||||
text = "#1a1b26";
|
||||
indicator = "#7aa2f7";
|
||||
childBorder = "#7aa2f7";
|
||||
};
|
||||
focusedInactive = {
|
||||
border = "#24283b";
|
||||
background = "#24283b";
|
||||
text = "#c0caf5";
|
||||
indicator = "#24283b";
|
||||
childBorder = "#24283b";
|
||||
};
|
||||
unfocused = {
|
||||
border = "#24283b";
|
||||
background = "#1a1b26";
|
||||
text = "#9aa5ce";
|
||||
indicator = "#24283b";
|
||||
childBorder = "#24283b";
|
||||
};
|
||||
urgent = {
|
||||
border = "#f7768e";
|
||||
background = "#f7768e";
|
||||
text = "#1a1b26";
|
||||
indicator = "#f7768e";
|
||||
childBorder = "#f7768e";
|
||||
};
|
||||
};
|
||||
|
||||
# Output configuration
|
||||
output = {
|
||||
"*" = {
|
||||
#bg = "/home/jared/.config/sway/wallpapers/starters_and_pika.jpg fill";
|
||||
};
|
||||
};
|
||||
|
||||
# Seat configuration
|
||||
seat = {
|
||||
"seat0" = {
|
||||
xcursor_theme = "Bibata-Modern-Ice 24";
|
||||
};
|
||||
};
|
||||
|
||||
# Startup commands
|
||||
startup = [
|
||||
{ command = "waybar"; }
|
||||
{ command = "dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP=sway"; }
|
||||
{ command = "systemctl --user import-environment WAYLAND_DISPLAY XDG_CURRENT_DESKTOP"; }
|
||||
];
|
||||
};
|
||||
};
|
||||
}
|
||||
229
home-manager/programs/waybar.nix
Normal file
229
home-manager/programs/waybar.nix
Normal file
@@ -0,0 +1,229 @@
|
||||
{ config, pkgs, ... }:
|
||||
|
||||
{
|
||||
programs.waybar = {
|
||||
enable = true;
|
||||
settings = {
|
||||
mainBar = {
|
||||
position = "top";
|
||||
height = 30;
|
||||
spacing = 4;
|
||||
|
||||
modules-left = [ "sway/workspaces" "sway/mode" ];
|
||||
modules-center = [ "sway/window" ];
|
||||
modules-right = [ "idle_inhibitor" "pulseaudio" "network" "cpu" "memory" "temperature" "battery" "tray" "clock" ];
|
||||
|
||||
"sway/workspaces" = {
|
||||
disable-scroll = true;
|
||||
all-outputs = true;
|
||||
format = "{name}: {icon}";
|
||||
format-icons = {
|
||||
"1" = "";
|
||||
"2" = "";
|
||||
"3" = "";
|
||||
"4" = "";
|
||||
"5" = "";
|
||||
"6" = "";
|
||||
"7" = "";
|
||||
"8" = "";
|
||||
"9" = "";
|
||||
"10" = "";
|
||||
urgent = "";
|
||||
focused = "";
|
||||
default = "";
|
||||
};
|
||||
};
|
||||
|
||||
"sway/mode" = {
|
||||
format = "<span style=\"italic\">{}</span>";
|
||||
};
|
||||
|
||||
"sway/window" = {
|
||||
format = "{}";
|
||||
max-length = 50;
|
||||
};
|
||||
|
||||
"idle_inhibitor" = {
|
||||
format = "{icon}";
|
||||
format-icons = {
|
||||
activated = "";
|
||||
deactivated = "";
|
||||
};
|
||||
};
|
||||
|
||||
"tray" = {
|
||||
spacing = 10;
|
||||
};
|
||||
|
||||
"clock" = {
|
||||
tooltip-format = "<big>{:%Y %B}</big>\n<tt><small>{calendar}</small></tt>";
|
||||
format-alt = "{:%Y-%m-%d}";
|
||||
};
|
||||
|
||||
"cpu" = {
|
||||
format = "{usage}% ";
|
||||
tooltip = false;
|
||||
};
|
||||
|
||||
"memory" = {
|
||||
format = "{}% ";
|
||||
};
|
||||
|
||||
"temperature" = {
|
||||
thermal-zone = 2;
|
||||
hwmon-path = "/sys/class/hwmon/hwmon2/temp1_input";
|
||||
critical-threshold = 80;
|
||||
format = "{temperatureC}°C {icon}";
|
||||
format-icons = [ "" "" "" ];
|
||||
};
|
||||
|
||||
"battery" = {
|
||||
states = {
|
||||
warning = 30;
|
||||
critical = 15;
|
||||
};
|
||||
format = "{capacity}% {icon}";
|
||||
format-charging = " {capacity}%";
|
||||
format-plugged = " {capacity}%";
|
||||
format-alt = "{time} {icon}";
|
||||
format-icons = [ "" "" "" "" "" "" "" "" "" "" "" ];
|
||||
};
|
||||
|
||||
"network" = {
|
||||
format-wifi = "{essid} ({signalStrength}%) ";
|
||||
format-ethernet = "{ipaddr}/{cidr} ";
|
||||
tooltip-format = "{ifname} via {gwaddr} ";
|
||||
format-linked = "{ifname} (No IP) ";
|
||||
format-disconnected = "Disconnected ⚠";
|
||||
format-alt = "{ifname}: {ipaddr}/{cidr}";
|
||||
};
|
||||
|
||||
"pulseaudio" = {
|
||||
format = "{volume}% {icon} {format_source}";
|
||||
format-bluetooth = "{volume}% {icon} {format_source}";
|
||||
format-bluetooth-muted = " {icon} {format_source}";
|
||||
format-muted = " {format_source}";
|
||||
format-source = "{volume}% ";
|
||||
format-source-muted = "";
|
||||
format-icons = {
|
||||
headphone = "";
|
||||
hands-free = "";
|
||||
headset = "";
|
||||
phone = "";
|
||||
portable = "";
|
||||
car = "";
|
||||
default = [ "" "" "" ];
|
||||
};
|
||||
on-click = "pavucontrol";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
style = ''
|
||||
* {
|
||||
border: none;
|
||||
border-radius: 0;
|
||||
font-family: "JetBrainsMono Nerd Font", "Font Awesome 6 Free";
|
||||
font-size: 13px;
|
||||
min-height: 0;
|
||||
}
|
||||
|
||||
window#waybar {
|
||||
background: #1a1b26;
|
||||
color: #c0caf5;
|
||||
}
|
||||
|
||||
#workspaces button {
|
||||
padding: 0 5px;
|
||||
background: transparent;
|
||||
color: #c0caf5;
|
||||
border-top: 2px solid transparent;
|
||||
}
|
||||
|
||||
#workspaces button.focused {
|
||||
color: #7aa2f7;
|
||||
border-top: 2px solid #7aa2f7;
|
||||
}
|
||||
|
||||
#workspaces button.urgent {
|
||||
color: #f7768e;
|
||||
}
|
||||
|
||||
#mode {
|
||||
background: #f7768e;
|
||||
color: #1a1b26;
|
||||
padding: 0 5px;
|
||||
}
|
||||
|
||||
#clock, #battery, #cpu, #memory, #temperature, #network, #pulseaudio, #tray, #mode, #idle_inhibitor {
|
||||
padding: 0 10px;
|
||||
margin: 0 4px;
|
||||
color: #c0caf5;
|
||||
}
|
||||
|
||||
#clock {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
#battery {
|
||||
color: #c0caf5;
|
||||
}
|
||||
|
||||
#battery.charging {
|
||||
color: #9ece6a;
|
||||
}
|
||||
|
||||
#battery.critical:not(.charging) {
|
||||
color: #f7768e;
|
||||
animation-name: blink;
|
||||
animation-duration: 0.5s;
|
||||
animation-timing-function: linear;
|
||||
animation-iteration-count: infinite;
|
||||
animation-direction: alternate;
|
||||
}
|
||||
|
||||
#cpu {
|
||||
color: #bb9af7;
|
||||
}
|
||||
|
||||
#memory {
|
||||
color: #bb9af7;
|
||||
}
|
||||
|
||||
#temperature {
|
||||
color: #ff9e64;
|
||||
}
|
||||
|
||||
#temperature.critical {
|
||||
color: #f7768e;
|
||||
}
|
||||
|
||||
#network {
|
||||
color: #7aa2f7;
|
||||
}
|
||||
|
||||
#network.disconnected {
|
||||
color: #f7768e;
|
||||
}
|
||||
|
||||
#pulseaudio {
|
||||
color: #7aa2f7;
|
||||
}
|
||||
|
||||
#pulseaudio.muted {
|
||||
color: #f7768e;
|
||||
}
|
||||
|
||||
#tray {
|
||||
background-color: #1a1b26;
|
||||
}
|
||||
|
||||
@keyframes blink {
|
||||
to {
|
||||
background-color: #f7768e;
|
||||
color: #1a1b26;
|
||||
}
|
||||
}
|
||||
'';
|
||||
};
|
||||
}
|
||||
9
home-manager/programs/yazi.nix
Normal file
9
home-manager/programs/yazi.nix
Normal file
@@ -0,0 +1,9 @@
|
||||
{ config, pkgs, ... }:
|
||||
|
||||
{
|
||||
programs.yazi = {
|
||||
enable = true;
|
||||
enableBashIntegration = true;
|
||||
};
|
||||
}
|
||||
|
||||
8
home-manager/services/default.nix
Normal file
8
home-manager/services/default.nix
Normal file
@@ -0,0 +1,8 @@
|
||||
{ config, pkgs, ... }:
|
||||
|
||||
{
|
||||
imports = [
|
||||
# Add service-specific configurations here
|
||||
# ./dunst.nix
|
||||
];
|
||||
}
|
||||
8
home-manager/themes/default.nix
Normal file
8
home-manager/themes/default.nix
Normal file
@@ -0,0 +1,8 @@
|
||||
{ config, pkgs, ... }:
|
||||
|
||||
{
|
||||
imports = [
|
||||
# Add theme-specific configurations here
|
||||
# ./colors.nix
|
||||
];
|
||||
}
|
||||
@@ -1,68 +0,0 @@
|
||||
# This is your home-manager configuration file
|
||||
# Use this to configure your home environment (it replaces ~/.config/nixpkgs/home.nix)
|
||||
{
|
||||
inputs,
|
||||
outputs,
|
||||
lib,
|
||||
config,
|
||||
pkgs,
|
||||
stylix,
|
||||
home-manager,
|
||||
...
|
||||
}: {
|
||||
home = {
|
||||
username = "jared";
|
||||
homeDirectory = "/home/jared";
|
||||
packages = with pkgs; [
|
||||
spotify
|
||||
strawberry
|
||||
nodePackages.prettier
|
||||
];
|
||||
};
|
||||
|
||||
|
||||
# Add stuff for your user as you see fit:
|
||||
# programs.neovim.enable = true;
|
||||
# home.packages = with pkgs; [ steam ];
|
||||
|
||||
# Enable home-manager and git
|
||||
programs.home-manager.enable = true;
|
||||
# programs.git.enable = true;
|
||||
programs.kitty.enable = true;
|
||||
programs.firefox.enable = true;
|
||||
programs.zellij.enable = true;
|
||||
programs.zellij.settings = {
|
||||
keybinds."unbind" = "Ctrl o";
|
||||
keybinds.session."bind \"Ctrl p\"".SwitchToMode = "Normal";
|
||||
keybinds."shared_except \"session\" \"locked\""."bind \"Ctrl 9\"".SwitchToMode = "Session";
|
||||
};
|
||||
programs.zsh.enable = true;
|
||||
# programs.spotify-player.enable = true;
|
||||
|
||||
dconf.settings = {
|
||||
"org/gnome/desktop/wm/keybindings" = {
|
||||
switch-applications = [];
|
||||
switch-applications-backward = [];
|
||||
switch-windows = [ "<Alt>Tab" ];
|
||||
switch-windows-backward = [ "<Shift><Alt>Tab" ];
|
||||
};
|
||||
};
|
||||
programs.direnv = {
|
||||
enable = true;
|
||||
enableBashIntegration = true;
|
||||
nix-direnv.enable = true;
|
||||
};
|
||||
programs.bash.enable = true;
|
||||
programs.bash.bashrcExtra = ''
|
||||
export GIT_ASKPASS=""
|
||||
if [ -f .bashrc.orig ]; then
|
||||
. ~/.bashrc.orig
|
||||
fi
|
||||
'';
|
||||
|
||||
# Nicely reload system units when changing configs
|
||||
# systemd.user.startServices = "sd-switch";
|
||||
|
||||
# https://nixos.wiki/wiki/FAQ/When_do_I_update_stateVersion
|
||||
home.stateVersion = "24.05";
|
||||
}
|
||||
10
hosts/abra/configuration.nix
Normal file
10
hosts/abra/configuration.nix
Normal file
@@ -0,0 +1,10 @@
|
||||
{ config, pkgs, ... }:
|
||||
|
||||
{
|
||||
imports = [
|
||||
# Include the results of the hardware scan.
|
||||
./hardware-configuration.nix
|
||||
# Include system-level configurations
|
||||
../../system
|
||||
];
|
||||
}
|
||||
@@ -14,18 +14,18 @@
|
||||
boot.extraModulePackages = [ ];
|
||||
|
||||
fileSystems."/" =
|
||||
{ device = "/dev/disk/by-uuid/77969bfa-44f3-44f2-9c57-69fd161f6a75";
|
||||
{ device = "/dev/disk/by-uuid/39d9cdd2-79cd-45f9-9d06-b902d9f717fe";
|
||||
fsType = "ext4";
|
||||
};
|
||||
|
||||
fileSystems."/boot" =
|
||||
{ device = "/dev/disk/by-uuid/FFD6-BA11";
|
||||
{ device = "/dev/disk/by-uuid/4104-FEB1";
|
||||
fsType = "vfat";
|
||||
options = [ "fmask=0022" "dmask=0022" ];
|
||||
options = [ "fmask=0077" "dmask=0077" ];
|
||||
};
|
||||
|
||||
swapDevices =
|
||||
[ { device = "/dev/disk/by-uuid/d495d805-4feb-4b25-ab7d-8eeb66efe3a7"; }
|
||||
[ { device = "/dev/disk/by-uuid/4d15e7fc-f101-4712-af2f-098cf75f3e8f"; }
|
||||
];
|
||||
|
||||
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking
|
||||
@@ -1,60 +0,0 @@
|
||||
{
|
||||
config,
|
||||
pkgs,
|
||||
lib,
|
||||
inputs,
|
||||
username,
|
||||
stylix,
|
||||
ghostty,
|
||||
...
|
||||
}: {
|
||||
imports = [
|
||||
./hardware-configuration.nix
|
||||
../../modules/nvidia.nix
|
||||
../../modules/common.nix
|
||||
../../modules/gnome.nix
|
||||
inputs.sops-nix.nixosModules.sops
|
||||
../../modules/protonvpn.nix
|
||||
];
|
||||
|
||||
sops.defaultSopsFile = ../../secrets/secrets.yaml;
|
||||
sops.defaultSopsFormat = "yaml";
|
||||
sops.age.keyFile = "/home/${username}/.config/sops/age/keys.txt";
|
||||
|
||||
networking = {
|
||||
hostName = "tito";
|
||||
networkmanager.enable = true;
|
||||
};
|
||||
|
||||
programs = {
|
||||
steam = {
|
||||
enable = true;
|
||||
remotePlay.openFirewall = true;
|
||||
dedicatedServer.openFirewall = true;
|
||||
};
|
||||
chromium.enable = true;
|
||||
};
|
||||
|
||||
virtualisation.docker.enable = true;
|
||||
|
||||
users.users.${username} = {
|
||||
isNormalUser = true;
|
||||
extraGroups = [
|
||||
"networkmanager"
|
||||
"wheel"
|
||||
"audito"
|
||||
"video"
|
||||
"input"
|
||||
"docker"
|
||||
];
|
||||
};
|
||||
|
||||
stylix.base16Scheme = "${pkgs.base16-schemes}/share/themes/solarflare.yaml";
|
||||
stylix.image = /home/jared/Pictures/tropea.jpg;
|
||||
|
||||
stylix.targets.gnome.enable = true;
|
||||
stylix.cursor.package = pkgs.vimix-cursor-theme;
|
||||
stylix.cursor.name = "Vimix-Cursors";
|
||||
|
||||
system.stateVersion = "23.11";
|
||||
}
|
||||
@@ -1,39 +0,0 @@
|
||||
# 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 = [ "nvme" "ahci" "xhci_pci" "usbhid" "usb_storage" "sd_mod" ];
|
||||
boot.initrd.kernelModules = [ ];
|
||||
boot.kernelModules = [ "kvm-amd" ];
|
||||
boot.extraModulePackages = [ ];
|
||||
|
||||
fileSystems."/" =
|
||||
{ device = "/dev/disk/by-uuid/b030079d-d72f-43a8-a437-4368f4275b66";
|
||||
fsType = "ext4";
|
||||
};
|
||||
|
||||
fileSystems."/boot" =
|
||||
{ device = "/dev/disk/by-uuid/A646-15B0";
|
||||
fsType = "vfat";
|
||||
options = [ "fmask=0022" "dmask=0022" ];
|
||||
};
|
||||
|
||||
swapDevices = [ ];
|
||||
|
||||
# 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
|
||||
# still possible to use this option, but it's recommended to use it in conjunction
|
||||
# with explicit per-interface declarations with `networking.interfaces.<interface>.useDHCP`.
|
||||
networking.useDHCP = lib.mkDefault true;
|
||||
# networking.interfaces.enp12s0.useDHCP = lib.mkDefault true;
|
||||
# networking.interfaces.wlp13s0.useDHCP = lib.mkDefault true;
|
||||
|
||||
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
|
||||
hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
|
||||
}
|
||||
@@ -1,55 +0,0 @@
|
||||
{
|
||||
config,
|
||||
pkgs,
|
||||
lib,
|
||||
inputs,
|
||||
username,
|
||||
stylix,
|
||||
ghostty,
|
||||
...
|
||||
}: {
|
||||
imports =
|
||||
[ # Include the results of the hardware scan.
|
||||
./hardware-configuration.nix
|
||||
../../modules/common.nix
|
||||
../../modules/gnome.nix
|
||||
inputs.sops-nix.nixosModules.sops
|
||||
../../modules/protonvpn.nix
|
||||
];
|
||||
|
||||
sops.defaultSopsFile = ../../secrets/secrets.yaml;
|
||||
sops.defaultSopsFormat = "yaml";
|
||||
sops.age.keyFile = "/home/${username}/.config/sops/age/keys.txt";
|
||||
|
||||
networking = {
|
||||
hostName = "xps";
|
||||
networkmanager.enable = true;
|
||||
};
|
||||
|
||||
virtualisation.docker.enable = true;
|
||||
|
||||
users.users.${username} = {
|
||||
isNormalUser = true;
|
||||
extraGroups = [
|
||||
"networkmanager"
|
||||
"wheel"
|
||||
"audio"
|
||||
"video"
|
||||
"input"
|
||||
"docker"
|
||||
];
|
||||
};
|
||||
# Enable automatic login for the user.
|
||||
services.displayManager.autoLogin.enable = true;
|
||||
services.displayManager.autoLogin.user = "${username}";
|
||||
|
||||
stylix.enable = true;
|
||||
stylix.base16Scheme = "${pkgs.base16-schemes}/share/themes/solarflare.yaml";
|
||||
stylix.image = ../../backgrounds/SupermassiveBinaryBlackHoles.png;
|
||||
stylix.cursor.package = pkgs.vimix-cursor-theme;
|
||||
stylix.cursor.name = "Vimix-Cursors";
|
||||
stylix.targets.gnome.enable = true;
|
||||
|
||||
system.stateVersion = "23.11"; # Did you read the comment?
|
||||
|
||||
}
|
||||
@@ -1,120 +0,0 @@
|
||||
{
|
||||
config,
|
||||
pkgs,
|
||||
stylix,
|
||||
username,
|
||||
ghostty,
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
{
|
||||
boot = {
|
||||
loader.systemd-boot.enable = true;
|
||||
loader.efi.canTouchEfiVariables = true;
|
||||
|
||||
kernelPackages = pkgs.linuxPackages_latest;
|
||||
kernel.sysctl = {
|
||||
"vm.swappiness" = 10;
|
||||
};
|
||||
};
|
||||
|
||||
services = {
|
||||
printing.enable = true;
|
||||
openssh.enable = true;
|
||||
tailscale.enable = true;
|
||||
flatpak.enable = true;
|
||||
pipewire = {
|
||||
enable = true;
|
||||
alsa.enable = true;
|
||||
alsa.support32Bit = true;
|
||||
pulse.enable = true;
|
||||
};
|
||||
# Configure keymap in X11
|
||||
xserver.xkb = {
|
||||
layout = "us";
|
||||
variant = "";
|
||||
};
|
||||
};
|
||||
|
||||
programs.ssh.startAgent = true; # Use OpenSSH agent instead
|
||||
services.gnome.gnome-keyring.enable = lib.mkForce false; # Disable GNOME keyring
|
||||
|
||||
|
||||
hardware.bluetooth.enable = true;
|
||||
hardware.pulseaudio.enable = false;
|
||||
hardware.graphics.enable = true;
|
||||
|
||||
environment.variables = {
|
||||
EDITOR = "nvim";
|
||||
};
|
||||
environment.systemPackages = with pkgs; [
|
||||
git
|
||||
neovim
|
||||
gcc
|
||||
tailscale
|
||||
firefox
|
||||
htop
|
||||
nerdfonts
|
||||
kitty
|
||||
yazi
|
||||
nodejs
|
||||
openvpn
|
||||
audio-recorder
|
||||
qemu
|
||||
qemu_kvm
|
||||
unzip
|
||||
libation
|
||||
nodePackages.prettier
|
||||
dconf2nix
|
||||
libation
|
||||
sops
|
||||
ghostty.packages.x86_64-linux.default
|
||||
];
|
||||
|
||||
programs = {
|
||||
nh = {
|
||||
enable = true;
|
||||
flake = "/home/${username}/nix-config";
|
||||
};
|
||||
git = {
|
||||
enable = true;
|
||||
config = {
|
||||
credential.helper = "store";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
networking.nameservers = [
|
||||
"192.168.1.3"
|
||||
"1.1.1.1"
|
||||
"9.9.9.9"
|
||||
];
|
||||
|
||||
# Set your time zone.
|
||||
time.timeZone = "America/Chicago";
|
||||
|
||||
# Select internationalisation properties.
|
||||
i18n.defaultLocale = "en_US.UTF-8";
|
||||
|
||||
i18n.extraLocaleSettings = {
|
||||
LC_ADDRESS = "en_US.UTF-8";
|
||||
LC_IDENTIFICATION = "en_US.UTF-8";
|
||||
LC_MEASUREMENT = "en_US.UTF-8";
|
||||
LC_MONETARY = "en_US.UTF-8";
|
||||
LC_NAME = "en_US.UTF-8";
|
||||
LC_NUMERIC = "en_US.UTF-8";
|
||||
LC_PAPER = "en_US.UTF-8";
|
||||
LC_TELEPHONE = "en_US.UTF-8";
|
||||
LC_TIME = "en_US.UTF-8";
|
||||
};
|
||||
|
||||
security.rtkit.enable = true;
|
||||
|
||||
nixpkgs.config.allowUnfree = true;
|
||||
nix.settings.experimental-features = [ "nix-command" "flakes" ];
|
||||
nix.gc = {
|
||||
automatic = true;
|
||||
dates = "weekly";
|
||||
options = "--delete-older-than 7d";
|
||||
};
|
||||
}
|
||||
@@ -1,11 +0,0 @@
|
||||
{ config, pkgs, stylix, ... }:
|
||||
{
|
||||
# Enable the X11 windowing system.
|
||||
services.xserver.enable = true;
|
||||
|
||||
# Enable the GNOME Desktop Environment.
|
||||
services.xserver.displayManager.gdm.enable = true;
|
||||
services.xserver.desktopManager.gnome.enable = true;
|
||||
|
||||
}
|
||||
|
||||
@@ -1,54 +0,0 @@
|
||||
{ config, pkgs, stylix, ... }:
|
||||
{
|
||||
programs.hyprland = {
|
||||
enable = true;
|
||||
# nvidiaPatches = true;
|
||||
xwayland.enable = true;
|
||||
};
|
||||
|
||||
services.xserver = {
|
||||
enable = true;
|
||||
};
|
||||
|
||||
services.displayManager.sddm.enable = true;
|
||||
services.displayManager.sddm.wayland.enable = true;
|
||||
|
||||
environment.sessionVariables = {
|
||||
# Cursor could be invisible without this
|
||||
WLR_NO_HARDWARE_CURSORS = "1";
|
||||
# Electron, use wayland
|
||||
NIXOS_OZONE_WL = "1";
|
||||
};
|
||||
|
||||
environment.systemPackages = with pkgs; [
|
||||
# bar
|
||||
(waybar.overrideAttrs (oldAttrs: {
|
||||
mesonFlags = oldAttrs.mesonFlags ++ [ "-Dexperimental=true" ];
|
||||
})
|
||||
)
|
||||
#Elkowar wacky widges (alternate bar)
|
||||
#eww
|
||||
|
||||
# notifications
|
||||
dunst
|
||||
#mako
|
||||
|
||||
libnotify
|
||||
|
||||
# wallpaper
|
||||
swww
|
||||
|
||||
# app-launcher
|
||||
rofi-wayland
|
||||
];
|
||||
|
||||
services.dbus.enable = true;
|
||||
xdg.portal.enable = true;
|
||||
xdg.portal.extraPortals = [ pkgs.xdg-desktop-portal-gtk ];
|
||||
|
||||
hardware = {
|
||||
opengl.enable = true;
|
||||
nvidia.modesetting.enable = true;
|
||||
};
|
||||
}
|
||||
|
||||
@@ -1,18 +0,0 @@
|
||||
|
||||
{ config, lib, pkgs, ... }:
|
||||
|
||||
{
|
||||
|
||||
hardware.nvidia = {
|
||||
modesetting.enable = true;
|
||||
powerManagement.enable = true;
|
||||
powerManagement.finegrained = false;
|
||||
open = false;
|
||||
nvidiaSettings = true;
|
||||
|
||||
package = config.boot.kernelPackages.nvidiaPackages.stable;
|
||||
};
|
||||
hardware.nvidia-container-toolkit.enable = true;
|
||||
#virtualisation.docker.enableNvidia = true;
|
||||
services.xserver.videoDrivers = ["nvidia"];
|
||||
}
|
||||
@@ -1,26 +0,0 @@
|
||||
{ config, pkgs, ... }:
|
||||
{
|
||||
sops.secrets."protonvpn/norway_config" = {};
|
||||
sops.secrets."protonvpn/us_config" = {};
|
||||
sops.secrets."protonvpn/auth-user-pass" = {};
|
||||
environment.systemPackages = with pkgs; [
|
||||
update-resolv-conf
|
||||
];
|
||||
environment.etc."openvpn/update-resolv-conf".source = "${pkgs.update-resolv-conf}/libexec/openvpn/update-resolv-conf";
|
||||
services.openvpn.servers = {
|
||||
proton-norway = {
|
||||
autoStart = false;
|
||||
config = ''
|
||||
config ${config.sops.secrets."protonvpn/norway_config".path}
|
||||
auth-user-pass ${config.sops.secrets."protonvpn/auth-user-pass".path}
|
||||
'';
|
||||
};
|
||||
proton-united-states = {
|
||||
autoStart = false;
|
||||
config = ''
|
||||
config ${config.sops.secrets."protonvpn/us_config".path}
|
||||
auth-user-pass ${config.sops.secrets."protonvpn/auth-user-pass".path}
|
||||
'';
|
||||
};
|
||||
};
|
||||
}
|
||||
42
rebuild.sh
Executable file
42
rebuild.sh
Executable file
@@ -0,0 +1,42 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
# NixOS rebuild script for flake-based configuration
|
||||
# Usage: ./rebuild.sh [switch|build|test]
|
||||
|
||||
set -e
|
||||
|
||||
# Check if experimental features are enabled
|
||||
if ! nix --version | grep -q "experimental-features"; then
|
||||
echo "Warning: Nix experimental features may not be enabled."
|
||||
echo "Consider adding 'experimental-features = nix-command flakes' to /etc/nix/nix.conf"
|
||||
fi
|
||||
|
||||
ACTION=${1:-switch}
|
||||
|
||||
case $ACTION in
|
||||
switch)
|
||||
echo "Building and switching to new configuration..."
|
||||
sudo nixos-rebuild switch --flake .#xps-nixos
|
||||
;;
|
||||
build)
|
||||
echo "Building configuration without switching..."
|
||||
sudo nixos-rebuild build --flake .#xps-nixos
|
||||
;;
|
||||
test)
|
||||
echo "Building configuration for testing..."
|
||||
sudo nixos-rebuild build --flake .#xps-nixos
|
||||
echo "Configuration built successfully. Run 'sudo nixos-rebuild switch' to apply it."
|
||||
;;
|
||||
update)
|
||||
echo "Updating flake inputs..."
|
||||
nix flake update --extra-experimental-features nix-command --extra-experimental-features flakes
|
||||
;;
|
||||
*)
|
||||
echo "Usage: $0 [switch|build|test|update]"
|
||||
echo " switch: Build and switch to new configuration (default)"
|
||||
echo " build: Build configuration without switching"
|
||||
echo " test: Build configuration for testing"
|
||||
echo " update: Update flake inputs"
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
File diff suppressed because one or more lines are too long
7
system/boot.nix
Normal file
7
system/boot.nix
Normal file
@@ -0,0 +1,7 @@
|
||||
{ config, pkgs, ... }:
|
||||
|
||||
{
|
||||
# Bootloader.
|
||||
boot.loader.systemd-boot.enable = true;
|
||||
boot.loader.efi.canTouchEfiVariables = true;
|
||||
}
|
||||
14
system/default.nix
Normal file
14
system/default.nix
Normal file
@@ -0,0 +1,14 @@
|
||||
{ config, pkgs, ... }:
|
||||
|
||||
{
|
||||
imports = [
|
||||
./boot.nix
|
||||
./networking.nix
|
||||
./locale.nix
|
||||
./services.nix
|
||||
./packages.nix
|
||||
./users.nix
|
||||
./nix.nix
|
||||
./programs.nix
|
||||
];
|
||||
}
|
||||
21
system/locale.nix
Normal file
21
system/locale.nix
Normal file
@@ -0,0 +1,21 @@
|
||||
{ config, pkgs, ... }:
|
||||
|
||||
{
|
||||
# Set your time zone.
|
||||
time.timeZone = "America/Chicago";
|
||||
|
||||
# Select internationalisation properties.
|
||||
i18n.defaultLocale = "en_US.UTF-8";
|
||||
|
||||
i18n.extraLocaleSettings = {
|
||||
LC_ADDRESS = "en_US.UTF-8";
|
||||
LC_IDENTIFICATION = "en_US.UTF-8";
|
||||
LC_MEASUREMENT = "en_US.UTF-8";
|
||||
LC_MONETARY = "en_US.UTF-8";
|
||||
LC_NAME = "en_US.UTF-8";
|
||||
LC_NUMERIC = "en_US.UTF-8";
|
||||
LC_PAPER = "en_US.UTF-8";
|
||||
LC_TELEPHONE = "en_US.UTF-8";
|
||||
LC_TIME = "en_US.UTF-8";
|
||||
};
|
||||
}
|
||||
6
system/networking.nix
Normal file
6
system/networking.nix
Normal file
@@ -0,0 +1,6 @@
|
||||
{ config, pkgs, ... }:
|
||||
|
||||
{
|
||||
networking.hostName = "abra"; # Define your hostname.
|
||||
networking.networkmanager.enable = true;
|
||||
}
|
||||
12
system/nix.nix
Normal file
12
system/nix.nix
Normal file
@@ -0,0 +1,12 @@
|
||||
{ config, pkgs, ... }:
|
||||
|
||||
{
|
||||
nix.settings.experimental-features = [ "nix-command" "flakes" ];
|
||||
# This value determines the NixOS release from which the default
|
||||
# settings for stateful data, like file locations and database versions
|
||||
# on your system were taken. It's perfectly fine and recommended to leave
|
||||
# this value at the release version of the first install of this system.
|
||||
# Before changing this value read the documentation for this option
|
||||
# (e.g. man configuration.nix or on https://nixos.org/nixos/options.html).
|
||||
system.stateVersion = "25.05"; # Did you read the comment?
|
||||
}
|
||||
71
system/packages.nix
Normal file
71
system/packages.nix
Normal file
@@ -0,0 +1,71 @@
|
||||
{ config, pkgs, ... }:
|
||||
|
||||
{
|
||||
# Install firefox.
|
||||
programs.firefox.enable = true;
|
||||
|
||||
# Allow unfree packages
|
||||
nixpkgs.config.allowUnfree = true;
|
||||
|
||||
# List packages installed in system profile. To search, run:
|
||||
# $ nix search wget
|
||||
environment.systemPackages = with pkgs; [
|
||||
vim # Do not forget to add an editor to edit configuration.nix! The Nano editor is also installed by default.
|
||||
alacritty
|
||||
|
||||
# Wayland and Sway essentials
|
||||
sway
|
||||
xdg-desktop-portal-wlr
|
||||
xdg-desktop-portal-gtk
|
||||
wofi
|
||||
swaylock
|
||||
swayidle
|
||||
# Additional packages for SDDM compatibility
|
||||
qt5.qtwayland
|
||||
qt6.qtwayland
|
||||
|
||||
polkit # policy kit
|
||||
ffmpeg # media player / encoding
|
||||
xdg-utils # desktop integration tools
|
||||
vivaldi
|
||||
|
||||
nodejs_22
|
||||
code-cursor-fhs
|
||||
jq
|
||||
zellij
|
||||
bibata-cursors
|
||||
podman
|
||||
podman-compose
|
||||
yazi
|
||||
wget
|
||||
];
|
||||
|
||||
fonts = {
|
||||
enableDefaultPackages = true;
|
||||
packages = with pkgs; [
|
||||
# Nerd Fonts - individual packages
|
||||
nerd-fonts.jetbrains-mono
|
||||
nerd-fonts.fira-code
|
||||
nerd-fonts.sauce-code-pro # Source Code Pro equivalent
|
||||
nerd-fonts.dejavu-sans-mono
|
||||
|
||||
# Additional fonts for fallbacks
|
||||
noto-fonts
|
||||
noto-fonts-cjk-sans
|
||||
noto-fonts-emoji
|
||||
liberation_ttf
|
||||
fira-code
|
||||
fira-code-symbols
|
||||
];
|
||||
|
||||
fontconfig = {
|
||||
enable = true;
|
||||
defaultFonts = {
|
||||
monospace = [ "JetBrainsMono Nerd Font" "Fira Code" ];
|
||||
sansSerif = [ "Noto Sans" "Liberation Sans" ];
|
||||
serif = [ "Noto Serif" "Liberation Serif" ];
|
||||
emoji = [ "Noto Color Emoji" ];
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
33
system/programs.nix
Normal file
33
system/programs.nix
Normal file
@@ -0,0 +1,33 @@
|
||||
{ config, pkgs, ... }:
|
||||
|
||||
{
|
||||
# Enable Sway at system level (required for SDDM to detect it)
|
||||
programs.sway = {
|
||||
enable = true;
|
||||
wrapperFeatures.gtk = true;
|
||||
};
|
||||
|
||||
# Enable Xwayland for compatibility
|
||||
programs.xwayland.enable = true;
|
||||
|
||||
# Environment variables for Wayland
|
||||
environment.variables = {
|
||||
XDG_SESSION_TYPE = "wayland";
|
||||
XDG_CURRENT_DESKTOP = "sway";
|
||||
QT_QPA_PLATFORM = "wayland";
|
||||
MOZ_ENABLE_WAYLAND = "1";
|
||||
_JAVA_AWT_WM_NONREPARENTING = "1";
|
||||
# Additional Wayland environment variables
|
||||
GDK_BACKEND = "wayland,x11";
|
||||
CLUTTER_BACKEND = "wayland";
|
||||
};
|
||||
|
||||
# Ensure Wayland sessions are properly registered
|
||||
environment.sessionVariables = {
|
||||
XDG_SESSION_TYPE = "wayland";
|
||||
XDG_CURRENT_DESKTOP = "sway";
|
||||
};
|
||||
|
||||
# Enable other useful programs
|
||||
programs.light.enable = true;
|
||||
}
|
||||
26
system/services-gdm.nix
Normal file
26
system/services-gdm.nix
Normal file
@@ -0,0 +1,26 @@
|
||||
{ config, pkgs, ... }:
|
||||
|
||||
{
|
||||
# Alternative configuration using GDM instead of SDDM
|
||||
# Uncomment this and comment out SDDM in services.nix if SDDM doesn't work
|
||||
|
||||
# Enable GDM display manager (alternative to SDDM)
|
||||
services.displayManager.gdm = {
|
||||
enable = true;
|
||||
wayland.enable = true;
|
||||
settings = {
|
||||
daemon = {
|
||||
WaylandEnable = true;
|
||||
};
|
||||
security = {
|
||||
DisallowTCP = false;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
# Autologin configuration for GDM
|
||||
services.displayManager.autoLogin = {
|
||||
enable = true;
|
||||
user = "jared";
|
||||
};
|
||||
}
|
||||
78
system/services.nix
Normal file
78
system/services.nix
Normal file
@@ -0,0 +1,78 @@
|
||||
{ config, pkgs, ... }:
|
||||
|
||||
{
|
||||
# Enable CUPS to print documents.
|
||||
services.printing.enable = true;
|
||||
|
||||
# Enable sound with pipewire.
|
||||
services.pulseaudio.enable = false;
|
||||
security.rtkit.enable = true;
|
||||
services.pipewire = {
|
||||
enable = true;
|
||||
alsa.enable = true;
|
||||
alsa.support32Bit = true;
|
||||
pulse.enable = true;
|
||||
# If you want to use JACK applications, uncomment this
|
||||
#jack.enable = true;
|
||||
|
||||
# use the example session manager (no others are packaged yet so this is enabled by default,
|
||||
# no need to redefine it in your config for now)
|
||||
#media-session.enable = true;
|
||||
};
|
||||
|
||||
# Enable X11 server (required for some applications and SDDM compatibility)
|
||||
services.xserver.enable = true;
|
||||
|
||||
services.openssh = {
|
||||
enable = true;
|
||||
settings = {
|
||||
X11Forwarding = true;
|
||||
PermitRootLogin = "no"; # no root
|
||||
PasswordAuthentication = false; # no passwords
|
||||
};
|
||||
};
|
||||
|
||||
# Enable SDDM display manager with proper Wayland support
|
||||
services.displayManager.sddm = {
|
||||
enable = true;
|
||||
wayland.enable = true;
|
||||
settings = {
|
||||
General = {
|
||||
DisplayServer = "wayland";
|
||||
GreeterEnvironment = "QT_WAYLAND_SHELL_INTEGRATION=layer-shell";
|
||||
Numlock = "on";
|
||||
HaltCommand = "/run/current-system/systemd/bin/systemctl poweroff";
|
||||
RebootCommand = "/run/current-system/systemd/bin/systemctl reboot";
|
||||
InputMethod = "";
|
||||
};
|
||||
Autologin = {
|
||||
User = "jared";
|
||||
Session = "sway";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
# Libinput configuration for both X11 and Wayland
|
||||
services.libinput = {
|
||||
enable = true;
|
||||
touchpad = {
|
||||
naturalScrolling = true;
|
||||
disableWhileTyping = true; # Optional: Palm rejection
|
||||
};
|
||||
mouse = {
|
||||
naturalScrolling = true;
|
||||
};
|
||||
};
|
||||
|
||||
virtualisation.docker = {
|
||||
enable = true;
|
||||
};
|
||||
|
||||
# Security and session management
|
||||
security.polkit.enable = true;
|
||||
|
||||
# Ensure proper seat management for Wayland
|
||||
services.seatd = {
|
||||
enable = true;
|
||||
};
|
||||
}
|
||||
14
system/users.nix
Normal file
14
system/users.nix
Normal file
@@ -0,0 +1,14 @@
|
||||
{ config, pkgs, ... }:
|
||||
|
||||
{
|
||||
# Define a user account. Don't forget to set a password with 'passwd'.
|
||||
users.users.jared = {
|
||||
isNormalUser = true;
|
||||
description = "Jared";
|
||||
extraGroups = [ "networkmanager" "wheel" "video" "input" "audio" "docker" "seat" "render" ];
|
||||
# Set initial password (user should change this after first login)
|
||||
initialPassword = "changeme";
|
||||
packages = with pkgs; [
|
||||
];
|
||||
};
|
||||
}
|
||||
Reference in New Issue
Block a user