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": {
|
"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": {
|
"home-manager": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"nixpkgs": [
|
"nixpkgs": [
|
||||||
@@ -267,285 +7,39 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1735344290,
|
"lastModified": 1756261190,
|
||||||
"narHash": "sha256-oJDtWPH1oJT34RJK1FSWjwX4qcGOBRkcNQPD0EbSfNM=",
|
"narHash": "sha256-eiy0klFK5EVJLNilutR7grsZN/7Itj9DyD75eyOf83k=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "home-manager",
|
"repo": "home-manager",
|
||||||
"rev": "613691f285dad87694c2ba1c9e6298d04736292d",
|
"rev": "77f348da3176dc68b20a73dab94852a417daf361",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"owner": "nix-community",
|
"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",
|
"repo": "home-manager",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nixpkgs": {
|
"nixpkgs": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1736061677,
|
"lastModified": 1756787288,
|
||||||
"narHash": "sha256-DjkQPnkAfd7eB522PwnkGhOMuT9QVCZspDpJJYyOj60=",
|
"narHash": "sha256-rw/PHa1cqiePdBxhF66V7R+WAP8WekQ0mCDG4CFqT8Y=",
|
||||||
"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=",
|
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "c69a9bffbecde46b4b939465422ddc59493d3e4d",
|
"rev": "d0fc30899600b9b3466ddb260fd83deb486c32f1",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"ref": "nixpkgs-unstable",
|
"ref": "nixos-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",
|
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"root": {
|
"root": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"ghostty": "ghostty",
|
|
||||||
"home-manager": "home-manager",
|
"home-manager": "home-manager",
|
||||||
"nixpkgs": "nixpkgs",
|
"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"
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|||||||
62
flake.nix
62
flake.nix
@@ -1,52 +1,26 @@
|
|||||||
{
|
{
|
||||||
description = "A very basic flake";
|
description = "Jared's NixOS Configuration";
|
||||||
|
|
||||||
inputs = {
|
inputs = {
|
||||||
nixpkgs.url = "github:nixos/nixpkgs?ref=nixos-24.11";
|
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
|
||||||
home-manager.url = "github:nix-community/home-manager?ref=release-24.11";
|
home-manager = {
|
||||||
home-manager.inputs.nixpkgs.follows = "nixpkgs";
|
url = "github:nix-community/home-manager";
|
||||||
#hyprland.url = "github:hyprwm/Hyprland";
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
#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";
|
|
||||||
};
|
};
|
||||||
|
|
||||||
outputs = { self, nixpkgs, home-manager, stylix, sops-nix, ghostty, ... } @ inputs: let
|
outputs = { self, nixpkgs, home-manager }: {
|
||||||
inherit (self) outputs;
|
nixosConfigurations.abra = nixpkgs.lib.nixosSystem {
|
||||||
username = "jared";
|
system = "x86_64-linux";
|
||||||
in {
|
modules = [
|
||||||
nixosConfigurations = {
|
./hosts/abra/configuration.nix
|
||||||
# ============ NixOS Configuration ============ #
|
home-manager.nixosModules.home-manager
|
||||||
tito = nixpkgs.lib.nixosSystem {
|
{
|
||||||
system = "x86_64-linux";
|
home-manager.useGlobalPkgs = true;
|
||||||
specialArgs = {inherit inputs username stylix ghostty ;};
|
home-manager.useUserPackages = true;
|
||||||
modules = [
|
home-manager.users.jared = import ./home-manager;
|
||||||
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;
|
|
||||||
}
|
|
||||||
];
|
|
||||||
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
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 = [ ];
|
boot.extraModulePackages = [ ];
|
||||||
|
|
||||||
fileSystems."/" =
|
fileSystems."/" =
|
||||||
{ device = "/dev/disk/by-uuid/77969bfa-44f3-44f2-9c57-69fd161f6a75";
|
{ device = "/dev/disk/by-uuid/39d9cdd2-79cd-45f9-9d06-b902d9f717fe";
|
||||||
fsType = "ext4";
|
fsType = "ext4";
|
||||||
};
|
};
|
||||||
|
|
||||||
fileSystems."/boot" =
|
fileSystems."/boot" =
|
||||||
{ device = "/dev/disk/by-uuid/FFD6-BA11";
|
{ device = "/dev/disk/by-uuid/4104-FEB1";
|
||||||
fsType = "vfat";
|
fsType = "vfat";
|
||||||
options = [ "fmask=0022" "dmask=0022" ];
|
options = [ "fmask=0077" "dmask=0077" ];
|
||||||
};
|
};
|
||||||
|
|
||||||
swapDevices =
|
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
|
# 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