Merge pull request 'Feature creep' (#2) from feature/quickshell into main
Reviewed-on: #2
This commit is contained in:
4
.gitignore
vendored
4
.gitignore
vendored
@@ -1,2 +1,4 @@
|
||||
# Result is a symlink to the built iso
|
||||
result
|
||||
result
|
||||
# direnv binaries
|
||||
.direnv
|
||||
|
||||
10
.sops.yaml
10
.sops.yaml
@@ -1,14 +1,12 @@
|
||||
# This example uses YAML anchors which allows reuse of multiple keys
|
||||
# without having to repeat yourself.
|
||||
# Also see https://github.com/Mic92/dotfiles/blob/d6114726d859df36ccaa32891c4963ae5717ef7f/nixos/.sops.yaml
|
||||
# for a more complex example.
|
||||
keys:
|
||||
- &remy_usb age1027e2vu808mvf95m4f0am3aeg88n8vgzt56s04ndpkgm7awzeajspxl6tu
|
||||
- &remy_yoga age1t2stzdjfwrtekk23w43623fdvt9awdujth765f8l6mu9g6l4537q4gw8d0
|
||||
# - &admin_bob age12zlz6lvcdk6eqaewfylg35w0syh58sm7gh53q5vvn7hd7c6nngyseftjxl
|
||||
- &remy_yoga ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIAX4zsiXSSWbE75C0wyBVwaHOw6Gsbh/WqQsgEhvPwT8 remy@nyx
|
||||
|
||||
- &host_yoga age1ckqer7nxzq7q58v9xaqy8ac9vx2va69a46t86wp9m78pj5dpuy3sq8xeaj
|
||||
creation_rules:
|
||||
- path_regex: secrets/[^/]+\.(yaml|json|env|ini)$
|
||||
key_groups:
|
||||
- age:
|
||||
- *remy_usb
|
||||
- *remy_yoga
|
||||
- *host_yoga
|
||||
|
||||
536
flake.lock
generated
536
flake.lock
generated
@@ -20,11 +20,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1759499898,
|
||||
"narHash": "sha256-UNzYHLWfkSzLHDep5Ckb5tXc0fdxwPIrT+MY4kpQttM=",
|
||||
"lastModified": 1762356719,
|
||||
"narHash": "sha256-qwd/xdoOya1m8FENle+4hWnydCtlXUWLAW/Auk6WL7s=",
|
||||
"owner": "hyprwm",
|
||||
"repo": "aquamarine",
|
||||
"rev": "655e067f96fd44b3f5685e17f566b0e4d535d798",
|
||||
"rev": "6d0b3567584691bf9d8fedb5d0093309e2f979c7",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -38,11 +38,11 @@
|
||||
"fromYaml": "fromYaml"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1746562888,
|
||||
"narHash": "sha256-YgNJQyB5dQiwavdDFBMNKk1wyS77AtdgDk/VtU6wEaI=",
|
||||
"lastModified": 1755819240,
|
||||
"narHash": "sha256-qcMhnL7aGAuFuutH4rq9fvAhCpJWVHLcHVZLtPctPlo=",
|
||||
"owner": "SenchoPens",
|
||||
"repo": "base16.nix",
|
||||
"rev": "806a1777a5db2a1ef9d5d6f493ef2381047f2b89",
|
||||
"rev": "75ed5e5e3fce37df22e49125181fa37899c3ccd6",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -54,27 +54,28 @@
|
||||
"base16-fish": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1622559957,
|
||||
"narHash": "sha256-PebymhVYbL8trDVVXxCvZgc0S5VxI7I1Hv4RMSquTpA=",
|
||||
"lastModified": 1754405784,
|
||||
"narHash": "sha256-l9xHIy+85FN+bEo6yquq2IjD1rSg9fjfjpyGP1W8YXo=",
|
||||
"owner": "tomyun",
|
||||
"repo": "base16-fish",
|
||||
"rev": "2f6dd973a9075dabccd26f1cded09508180bf5fe",
|
||||
"rev": "23ae20a0093dca0d7b39d76ba2401af0ccf9c561",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "tomyun",
|
||||
"repo": "base16-fish",
|
||||
"rev": "23ae20a0093dca0d7b39d76ba2401af0ccf9c561",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"base16-helix": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1748408240,
|
||||
"narHash": "sha256-9M2b1rMyMzJK0eusea0x3lyh3mu5nMeEDSc4RZkGm+g=",
|
||||
"lastModified": 1752979451,
|
||||
"narHash": "sha256-0CQM+FkYy0fOO/sMGhOoNL80ftsAzYCg9VhIrodqusM=",
|
||||
"owner": "tinted-theming",
|
||||
"repo": "base16-helix",
|
||||
"rev": "6c711ab1a9db6f51e2f6887cc3345530b33e152e",
|
||||
"rev": "27cf1e66e50abc622fb76a3019012dc07c678fac",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -100,14 +101,76 @@
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"dankMaterialShell": {
|
||||
"inputs": {
|
||||
"dgop": "dgop",
|
||||
"nixpkgs": [
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1763522195,
|
||||
"narHash": "sha256-QW/SKfUN5nT8J1EIvtpNaGf886+BBp2vCvs/ZuMo0VE=",
|
||||
"owner": "AvengeMedia",
|
||||
"repo": "DankMaterialShell",
|
||||
"rev": "dfdaa82245302d40ac1aa4c0d60728b4397dde61",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "AvengeMedia",
|
||||
"repo": "DankMaterialShell",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"dgop": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
"dankMaterialShell",
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1762435535,
|
||||
"narHash": "sha256-QhzRn7pYN35IFpKjjxJAj3GPJECuC+VLhoGem3ezycc=",
|
||||
"owner": "AvengeMedia",
|
||||
"repo": "dgop",
|
||||
"rev": "6cf638dde818f9f8a2e26d0243179c43cb3458d7",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "AvengeMedia",
|
||||
"repo": "dgop",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"dms-cli": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1763078370,
|
||||
"narHash": "sha256-wsYqJlLdRSlJpRE0tIuuPMU6aOyhMdV237rEG/enUxY=",
|
||||
"owner": "AvengeMedia",
|
||||
"repo": "danklinux",
|
||||
"rev": "7a083a0d6d087d41d0bc5077d03e662e1417ce3c",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "AvengeMedia",
|
||||
"repo": "danklinux",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"firefox-gnome-theme": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1748383148,
|
||||
"narHash": "sha256-pGvD/RGuuPf/4oogsfeRaeMm6ipUIznI2QSILKjKzeA=",
|
||||
"lastModified": 1758112371,
|
||||
"narHash": "sha256-lizRM2pj6PHrR25yimjyFn04OS4wcdbc38DCdBVa2rk=",
|
||||
"owner": "rafaelmardojai",
|
||||
"repo": "firefox-gnome-theme",
|
||||
"rev": "4eb2714fbed2b80e234312611a947d6cb7d70caf",
|
||||
"rev": "0909cfe4a2af8d358ad13b20246a350e14c2473d",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -140,11 +203,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1749398372,
|
||||
"narHash": "sha256-tYBdgS56eXYaWVW3fsnPQ/nFlgWi/Z2Ymhyu21zVM98=",
|
||||
"lastModified": 1756770412,
|
||||
"narHash": "sha256-+uWLQZccFHwqpGqr2Yt5VsW/PbeJVTn9Dk6SHWhNRPw=",
|
||||
"owner": "hercules-ci",
|
||||
"repo": "flake-parts",
|
||||
"rev": "9305fe4e5c2a6fcf5ba6a3ff155720fbe4076569",
|
||||
"rev": "4524271976b625a4a605beefd893f270620fd751",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -153,24 +216,6 @@
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"flake-utils": {
|
||||
"inputs": {
|
||||
"systems": "systems_2"
|
||||
},
|
||||
"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": {
|
||||
@@ -212,18 +257,20 @@
|
||||
"gnome-shell": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1744584021,
|
||||
"narHash": "sha256-0RJ4mJzf+klKF4Fuoc8VN8dpQQtZnKksFmR2jhWE1Ew=",
|
||||
"host": "gitlab.gnome.org",
|
||||
"lastModified": 1762869044,
|
||||
"narHash": "sha256-nwm/GJ2Syigf7VccLAZ66mFC8mZJFqpJmIxSGKl7+Ds=",
|
||||
"owner": "GNOME",
|
||||
"repo": "gnome-shell",
|
||||
"rev": "52c517c8f6c199a1d6f5118fae500ef69ea845ae",
|
||||
"type": "github"
|
||||
"rev": "680e3d195a92203f28d4bf8c6e8bb537cc3ed4ad",
|
||||
"type": "gitlab"
|
||||
},
|
||||
"original": {
|
||||
"host": "gitlab.gnome.org",
|
||||
"owner": "GNOME",
|
||||
"ref": "48.1",
|
||||
"ref": "gnome-49",
|
||||
"repo": "gnome-shell",
|
||||
"type": "github"
|
||||
"type": "gitlab"
|
||||
}
|
||||
},
|
||||
"home-manager": {
|
||||
@@ -233,16 +280,15 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1758463745,
|
||||
"narHash": "sha256-uhzsV0Q0I9j2y/rfweWeGif5AWe0MGrgZ/3TjpDYdGA=",
|
||||
"lastModified": 1763416652,
|
||||
"narHash": "sha256-8EBEEvtzQ11LCxpQHMNEBQAGtQiCu/pqP9zSovDSbNM=",
|
||||
"owner": "nix-community",
|
||||
"repo": "home-manager",
|
||||
"rev": "3b955f5f0a942f9f60cdc9cacb7844335d0f21c3",
|
||||
"rev": "ea164b7c9ccdc2321379c2ff78fd4317b4c41312",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nix-community",
|
||||
"ref": "release-25.05",
|
||||
"repo": "home-manager",
|
||||
"type": "github"
|
||||
}
|
||||
@@ -255,11 +301,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1752603129,
|
||||
"narHash": "sha256-S+wmHhwNQ5Ru689L2Gu8n1OD6s9eU9n9mD827JNR+kw=",
|
||||
"lastModified": 1762964643,
|
||||
"narHash": "sha256-RYHN8O/Aja59XDji6WSJZPkJpYVUfpSkyH+PEupBJqM=",
|
||||
"owner": "nix-community",
|
||||
"repo": "home-manager",
|
||||
"rev": "e8c19a3cec2814c754f031ab3ae7316b64da085b",
|
||||
"rev": "827f2a23373a774a8805f84ca5344654c31f354b",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -313,11 +359,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1759490292,
|
||||
"narHash": "sha256-T6iWzDOXp8Wv0KQOCTHpBcmAOdHJ6zc/l9xaztW6Ivc=",
|
||||
"lastModified": 1762462052,
|
||||
"narHash": "sha256-6roLYzcDf4V38RUMSqycsOwAnqfodL6BmhRkUtwIgdA=",
|
||||
"owner": "hyprwm",
|
||||
"repo": "hyprgraphics",
|
||||
"rev": "9431db625cd9bb66ac55525479dce694101d6d7a",
|
||||
"rev": "ffc999d980c7b3bca85d3ebd0a9fbadf984a8162",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -331,8 +377,8 @@
|
||||
"aquamarine": "aquamarine",
|
||||
"hyprcursor": "hyprcursor",
|
||||
"hyprgraphics": "hyprgraphics",
|
||||
"hyprland-guiutils": "hyprland-guiutils",
|
||||
"hyprland-protocols": "hyprland-protocols",
|
||||
"hyprland-qtutils": "hyprland-qtutils",
|
||||
"hyprlang": "hyprlang",
|
||||
"hyprutils": "hyprutils",
|
||||
"hyprwayland-scanner": "hyprwayland-scanner",
|
||||
@@ -342,11 +388,11 @@
|
||||
"xdph": "xdph"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1760108751,
|
||||
"narHash": "sha256-GYyykk6SJytykQAz50WjKa2xK4C+sjPsz2wj5QjRktI=",
|
||||
"lastModified": 1763540034,
|
||||
"narHash": "sha256-TogNk567BTZib1XiYheW04ELxNB2bhee6G4SgphRqmA=",
|
||||
"owner": "hyprwm",
|
||||
"repo": "Hyprland",
|
||||
"rev": "6a01c399a971a57854fb4a99ce246534139beda4",
|
||||
"rev": "fbb31503f1b69402eeda81ba75a547c862c88bf2",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -355,6 +401,52 @@
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"hyprland-guiutils": {
|
||||
"inputs": {
|
||||
"aquamarine": [
|
||||
"hyprland",
|
||||
"aquamarine"
|
||||
],
|
||||
"hyprgraphics": [
|
||||
"hyprland",
|
||||
"hyprgraphics"
|
||||
],
|
||||
"hyprlang": [
|
||||
"hyprland",
|
||||
"hyprlang"
|
||||
],
|
||||
"hyprtoolkit": "hyprtoolkit",
|
||||
"hyprutils": [
|
||||
"hyprland",
|
||||
"hyprutils"
|
||||
],
|
||||
"hyprwayland-scanner": [
|
||||
"hyprland",
|
||||
"hyprwayland-scanner"
|
||||
],
|
||||
"nixpkgs": [
|
||||
"hyprland",
|
||||
"nixpkgs"
|
||||
],
|
||||
"systems": [
|
||||
"hyprland",
|
||||
"systems"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1762755186,
|
||||
"narHash": "sha256-ZjjETUHtoEhVN7JI1Cbt3p/KcXpK8ZQaPHx7UkG1OgA=",
|
||||
"owner": "hyprwm",
|
||||
"repo": "hyprland-guiutils",
|
||||
"rev": "66356e20a8ed348aa49c1b9ceace786e224225b3",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "hyprwm",
|
||||
"repo": "hyprland-guiutils",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"hyprland-protocols": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
@@ -367,11 +459,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1749046714,
|
||||
"narHash": "sha256-kymV5FMnddYGI+UjwIw8ceDjdeg7ToDVjbHCvUlhn14=",
|
||||
"lastModified": 1759610243,
|
||||
"narHash": "sha256-+KEVnKBe8wz+a6dTLq8YDcF3UrhQElwsYJaVaHXJtoI=",
|
||||
"owner": "hyprwm",
|
||||
"repo": "hyprland-protocols",
|
||||
"rev": "613878cb6f459c5e323aaafe1e6f388ac8a36330",
|
||||
"rev": "bd153e76f751f150a09328dbdeb5e4fab9d23622",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -380,74 +472,6 @@
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"hyprland-qt-support": {
|
||||
"inputs": {
|
||||
"hyprlang": [
|
||||
"hyprland",
|
||||
"hyprland-qtutils",
|
||||
"hyprlang"
|
||||
],
|
||||
"nixpkgs": [
|
||||
"hyprland",
|
||||
"hyprland-qtutils",
|
||||
"nixpkgs"
|
||||
],
|
||||
"systems": [
|
||||
"hyprland",
|
||||
"hyprland-qtutils",
|
||||
"systems"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1749154592,
|
||||
"narHash": "sha256-DO7z5CeT/ddSGDEnK9mAXm1qlGL47L3VAHLlLXoCjhE=",
|
||||
"owner": "hyprwm",
|
||||
"repo": "hyprland-qt-support",
|
||||
"rev": "4c8053c3c888138a30c3a6c45c2e45f5484f2074",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "hyprwm",
|
||||
"repo": "hyprland-qt-support",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"hyprland-qtutils": {
|
||||
"inputs": {
|
||||
"hyprland-qt-support": "hyprland-qt-support",
|
||||
"hyprlang": [
|
||||
"hyprland",
|
||||
"hyprlang"
|
||||
],
|
||||
"hyprutils": [
|
||||
"hyprland",
|
||||
"hyprland-qtutils",
|
||||
"hyprlang",
|
||||
"hyprutils"
|
||||
],
|
||||
"nixpkgs": [
|
||||
"hyprland",
|
||||
"nixpkgs"
|
||||
],
|
||||
"systems": [
|
||||
"hyprland",
|
||||
"systems"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1759080228,
|
||||
"narHash": "sha256-RgDoAja0T1hnF0pTc56xPfLfFOO8Utol2iITwYbUhTk=",
|
||||
"owner": "hyprwm",
|
||||
"repo": "hyprland-qtutils",
|
||||
"rev": "629b15c19fa4082e4ce6be09fdb89e8c3312aed7",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "hyprwm",
|
||||
"repo": "hyprland-qtutils",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"hyprlang": {
|
||||
"inputs": {
|
||||
"hyprutils": [
|
||||
@@ -464,11 +488,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1758927902,
|
||||
"narHash": "sha256-LZgMds7M94+vuMql2bERQ6LiFFdhgsEFezE4Vn+Ys3A=",
|
||||
"lastModified": 1763254292,
|
||||
"narHash": "sha256-JNgz3Fz2KMzkT7aR72wsgu/xNeJB//LSmdilh8Z/Zao=",
|
||||
"owner": "hyprwm",
|
||||
"repo": "hyprlang",
|
||||
"rev": "4dafa28d4f79877d67a7d1a654cddccf8ebf15da",
|
||||
"rev": "deea98d5b61d066bdc7a68163edd2c4bd28d3a6b",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -477,6 +501,58 @@
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"hyprtoolkit": {
|
||||
"inputs": {
|
||||
"aquamarine": [
|
||||
"hyprland",
|
||||
"hyprland-guiutils",
|
||||
"aquamarine"
|
||||
],
|
||||
"hyprgraphics": [
|
||||
"hyprland",
|
||||
"hyprland-guiutils",
|
||||
"hyprgraphics"
|
||||
],
|
||||
"hyprlang": [
|
||||
"hyprland",
|
||||
"hyprland-guiutils",
|
||||
"hyprlang"
|
||||
],
|
||||
"hyprutils": [
|
||||
"hyprland",
|
||||
"hyprland-guiutils",
|
||||
"hyprutils"
|
||||
],
|
||||
"hyprwayland-scanner": [
|
||||
"hyprland",
|
||||
"hyprland-guiutils",
|
||||
"hyprwayland-scanner"
|
||||
],
|
||||
"nixpkgs": [
|
||||
"hyprland",
|
||||
"hyprland-guiutils",
|
||||
"nixpkgs"
|
||||
],
|
||||
"systems": [
|
||||
"hyprland",
|
||||
"hyprland-guiutils",
|
||||
"systems"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1762463729,
|
||||
"narHash": "sha256-2fYkU/mdz8WKY3dkDPlE/j6hTxIwqultsx4gMMsMns0=",
|
||||
"owner": "hyprwm",
|
||||
"repo": "hyprtoolkit",
|
||||
"rev": "88483bdee5329ec985f0c8f834c519cd18cfe532",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "hyprwm",
|
||||
"repo": "hyprtoolkit",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"hyprutils": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
@@ -489,11 +565,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1759619523,
|
||||
"narHash": "sha256-r1ed7AR2ZEb2U8gy321/Xcp1ho2tzn+gG1te/Wxsj1A=",
|
||||
"lastModified": 1763323331,
|
||||
"narHash": "sha256-+Z0OfCo1MS8/aIutSAW5aJR9zTae1wz9kcJYMgpwN6M=",
|
||||
"owner": "hyprwm",
|
||||
"repo": "hyprutils",
|
||||
"rev": "3df7bde01efb3a3e8e678d1155f2aa3f19e177ef",
|
||||
"rev": "0c6411851cc779d551edc89b83966696201611aa",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -529,47 +605,47 @@
|
||||
},
|
||||
"nix-flatpak": {
|
||||
"locked": {
|
||||
"lastModified": 1711997201,
|
||||
"narHash": "sha256-J71xzQlVYsjagA4AsVwRazhBh2rZrPpKvxTgs6UzL7c=",
|
||||
"lastModified": 1754777568,
|
||||
"narHash": "sha256-0bBqT+3XncgF8F03RFAamw9vdf0VmaDoIJLTGkjfQZs=",
|
||||
"owner": "gmodena",
|
||||
"repo": "nix-flatpak",
|
||||
"rev": "b76fa31346db7fc958a9898f3c594696ca71c4fd",
|
||||
"rev": "62f636b87ef6050760a8cb325cadb90674d1e23e",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "gmodena",
|
||||
"ref": "v0.4.1",
|
||||
"repo": "nix-flatpak",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nix-vscode-extensions": {
|
||||
"nix4vscode": {
|
||||
"inputs": {
|
||||
"flake-utils": "flake-utils",
|
||||
"nixpkgs": "nixpkgs_2"
|
||||
"nixpkgs": [
|
||||
"nixpkgs"
|
||||
],
|
||||
"systems": "systems_2"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1759936999,
|
||||
"narHash": "sha256-3HWI+eKHqTvIZ6lRy0e4z5gvPwHYsHntZ3fl7zivg8M=",
|
||||
"lastModified": 1763517711,
|
||||
"narHash": "sha256-uY0Vr7ene4VlHyeZRHRNvT4WRwakAr8JShwmNEg7JB0=",
|
||||
"owner": "nix-community",
|
||||
"repo": "nix-vscode-extensions",
|
||||
"rev": "fd5c5549692ff4d2dbee1ab7eea19adc2f97baeb",
|
||||
"repo": "nix4vscode",
|
||||
"rev": "ce4507078be02de77c001ca498657436ec815a35",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nix-community",
|
||||
"repo": "nix-vscode-extensions",
|
||||
"rev": "fd5c5549692ff4d2dbee1ab7eea19adc2f97baeb",
|
||||
"repo": "nix4vscode",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs": {
|
||||
"locked": {
|
||||
"lastModified": 1759381078,
|
||||
"narHash": "sha256-gTrEEp5gEspIcCOx9PD8kMaF1iEmfBcTbO0Jag2QhQs=",
|
||||
"lastModified": 1763283776,
|
||||
"narHash": "sha256-Y7TDFPK4GlqrKrivOcsHG8xSGqQx3A6c+i7novT85Uk=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "7df7ff7d8e00218376575f0acdcc5d66741351ee",
|
||||
"rev": "50a96edd8d0db6cc8db57dab6bb6d6ee1f3dc49a",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -581,11 +657,11 @@
|
||||
},
|
||||
"nixpkgs-unstable": {
|
||||
"locked": {
|
||||
"lastModified": 1759831965,
|
||||
"narHash": "sha256-vgPm2xjOmKdZ0xKA6yLXPJpjOtQPHfaZDRtH+47XEBo=",
|
||||
"lastModified": 1763421233,
|
||||
"narHash": "sha256-Stk9ZYRkGrnnpyJ4eqt9eQtdFWRRIvMxpNRf4sIegnw=",
|
||||
"owner": "nixos",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "c9b6fb798541223bbb396d287d16f43520250518",
|
||||
"rev": "89c2b2330e733d6cdb5eae7b899326930c2c0648",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -597,48 +673,16 @@
|
||||
},
|
||||
"nixpkgs_2": {
|
||||
"locked": {
|
||||
"lastModified": 1759770925,
|
||||
"narHash": "sha256-CZwkCtzTNclqlhuwDsVtGoRumTpqCUK0xSnFIMgd8ls=",
|
||||
"lastModified": 1763421233,
|
||||
"narHash": "sha256-Stk9ZYRkGrnnpyJ4eqt9eQtdFWRRIvMxpNRf4sIegnw=",
|
||||
"owner": "nixos",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "674c2b09c59a220204350ced584cadaacee30038",
|
||||
"rev": "89c2b2330e733d6cdb5eae7b899326930c2c0648",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nixos",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "674c2b09c59a220204350ced584cadaacee30038",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs_3": {
|
||||
"locked": {
|
||||
"lastModified": 1759994382,
|
||||
"narHash": "sha256-wSK+3UkalDZRVHGCRikZ//CyZUJWDJkBDTQX1+G77Ow=",
|
||||
"owner": "nixos",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "5da4a26309e796daa7ffca72df93dbe53b8164c7",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nixos",
|
||||
"ref": "nixos-25.05",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs_4": {
|
||||
"locked": {
|
||||
"lastModified": 1751211869,
|
||||
"narHash": "sha256-1Cu92i1KSPbhPCKxoiVG5qnoRiKTgR5CcGSRyLpOd7Y=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "b43c397f6c213918d6cfe6e3550abfe79b5d1c51",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "NixOS",
|
||||
"ref": "nixos-25.05",
|
||||
"ref": "nixos-unstable",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
@@ -652,15 +696,14 @@
|
||||
"nixpkgs": [
|
||||
"stylix",
|
||||
"nixpkgs"
|
||||
],
|
||||
"treefmt-nix": "treefmt-nix"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1751320053,
|
||||
"narHash": "sha256-3m6RMw0FbbaUUa01PNaMLoO7D99aBClmY5ed9V3vz+0=",
|
||||
"lastModified": 1758998580,
|
||||
"narHash": "sha256-VLx0z396gDCGSiowLMFz5XRO/XuNV+4EnDYjdJhHvUk=",
|
||||
"owner": "nix-community",
|
||||
"repo": "NUR",
|
||||
"rev": "cbde1735782f9c2bb2c63d5e05fba171a14a4670",
|
||||
"rev": "ba8d9c98f5f4630bcb0e815ab456afd90c930728",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -679,11 +722,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1758108966,
|
||||
"narHash": "sha256-ytw7ROXaWZ7OfwHrQ9xvjpUWeGVm86pwnEd1QhzawIo=",
|
||||
"lastModified": 1763319842,
|
||||
"narHash": "sha256-YG19IyrTdnVn0l3DvcUYm85u3PaqBt6tI6VvolcuHnA=",
|
||||
"owner": "cachix",
|
||||
"repo": "git-hooks.nix",
|
||||
"rev": "54df955a695a84cd47d4a43e08e1feaf90b1fd9b",
|
||||
"rev": "7275fa67fbbb75891c16d9dee7d88e58aea2d761",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -692,35 +735,16 @@
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"quickshell": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1759997568,
|
||||
"narHash": "sha256-xQyzPkgpgjAceJKwZhLU2//Y1jAmvPGOq80svqkWFhQ=",
|
||||
"ref": "refs/heads/master",
|
||||
"rev": "3e32ae595f97bd2d2e5ed4512fb4bb25edb4eae6",
|
||||
"revCount": 691,
|
||||
"type": "git",
|
||||
"url": "https://git.outfoxxed.me/outfoxxed/quickshell"
|
||||
},
|
||||
"original": {
|
||||
"type": "git",
|
||||
"url": "https://git.outfoxxed.me/outfoxxed/quickshell"
|
||||
}
|
||||
},
|
||||
"root": {
|
||||
"inputs": {
|
||||
"dankMaterialShell": "dankMaterialShell",
|
||||
"dms-cli": "dms-cli",
|
||||
"home-manager": "home-manager",
|
||||
"hyprland": "hyprland",
|
||||
"nix-flatpak": "nix-flatpak",
|
||||
"nix-vscode-extensions": "nix-vscode-extensions",
|
||||
"nixpkgs": "nixpkgs_3",
|
||||
"nix4vscode": "nix4vscode",
|
||||
"nixpkgs": "nixpkgs_2",
|
||||
"nixpkgs-unstable": "nixpkgs-unstable",
|
||||
"quickshell": "quickshell",
|
||||
"sops-nix": "sops-nix",
|
||||
"stylix": "stylix",
|
||||
"watt": "watt",
|
||||
@@ -734,11 +758,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1759635238,
|
||||
"narHash": "sha256-UvzKi02LMFP74csFfwLPAZ0mrE7k6EiYaKecplyX9Qk=",
|
||||
"lastModified": 1763509310,
|
||||
"narHash": "sha256-s2WzTAD3vJtPACBCZXezNUMTG/wC6SFsU9DxazB9wDI=",
|
||||
"owner": "Mic92",
|
||||
"repo": "sops-nix",
|
||||
"rev": "6e5a38e08a2c31ae687504196a230ae00ea95133",
|
||||
"rev": "3ee33c0ed7c5aa61b4e10484d2ebdbdc98afb03e",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -756,7 +780,9 @@
|
||||
"firefox-gnome-theme": "firefox-gnome-theme",
|
||||
"flake-parts": "flake-parts",
|
||||
"gnome-shell": "gnome-shell",
|
||||
"nixpkgs": "nixpkgs_4",
|
||||
"nixpkgs": [
|
||||
"nixpkgs"
|
||||
],
|
||||
"nur": "nur",
|
||||
"systems": "systems_3",
|
||||
"tinted-foot": "tinted-foot",
|
||||
@@ -766,16 +792,15 @@
|
||||
"tinted-zed": "tinted-zed"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1759596342,
|
||||
"narHash": "sha256-1Eda1V8pjpviMdBTdDXrFp7jkaUokIgXgBYTZyzDODk=",
|
||||
"owner": "danth",
|
||||
"lastModified": 1763497248,
|
||||
"narHash": "sha256-OGP6MYc+lVkLVQOTS6ORszDcCnZm7kDOGpFBdDoLd0k=",
|
||||
"owner": "nix-community",
|
||||
"repo": "stylix",
|
||||
"rev": "4d065856e936fc6a99ba55d39ac2df9ded6bedbe",
|
||||
"rev": "f19ac46f6aa26188b2020ed40066a5b832be9c53",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "danth",
|
||||
"ref": "release-25.05",
|
||||
"owner": "nix-community",
|
||||
"repo": "stylix",
|
||||
"type": "github"
|
||||
}
|
||||
@@ -796,6 +821,7 @@
|
||||
}
|
||||
},
|
||||
"systems_2": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1681028828,
|
||||
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
|
||||
@@ -861,11 +887,11 @@
|
||||
"tinted-schemes": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1750770351,
|
||||
"narHash": "sha256-LI+BnRoFNRa2ffbe3dcuIRYAUcGklBx0+EcFxlHj0SY=",
|
||||
"lastModified": 1757716333,
|
||||
"narHash": "sha256-d4km8W7w2zCUEmPAPUoLk1NlYrGODuVa3P7St+UrqkM=",
|
||||
"owner": "tinted-theming",
|
||||
"repo": "schemes",
|
||||
"rev": "5a775c6ffd6e6125947b393872cde95867d85a2a",
|
||||
"rev": "317a5e10c35825a6c905d912e480dfe8e71c7559",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -877,11 +903,11 @@
|
||||
"tinted-tmux": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1751159871,
|
||||
"narHash": "sha256-UOHBN1fgHIEzvPmdNMHaDvdRMgLmEJh2hNmDrp3d3LE=",
|
||||
"lastModified": 1757811970,
|
||||
"narHash": "sha256-n5ZJgmzGZXOD9pZdAl1OnBu3PIqD+X3vEBUGbTi4JiI=",
|
||||
"owner": "tinted-theming",
|
||||
"repo": "tinted-tmux",
|
||||
"rev": "bded5e24407cec9d01bd47a317d15b9223a1546c",
|
||||
"rev": "d217ba31c846006e9e0ae70775b0ee0f00aa6b1e",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -893,11 +919,11 @@
|
||||
"tinted-zed": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1751158968,
|
||||
"narHash": "sha256-ksOyv7D3SRRtebpXxgpG4TK8gZSKFc4TIZpR+C98jX8=",
|
||||
"lastModified": 1757811247,
|
||||
"narHash": "sha256-4EFOUyLj85NRL3OacHoLGEo0wjiRJzfsXtR4CZWAn6w=",
|
||||
"owner": "tinted-theming",
|
||||
"repo": "base16-zed",
|
||||
"rev": "86a470d94204f7652b906ab0d378e4231a5b3384",
|
||||
"rev": "824fe0aacf82b3c26690d14e8d2cedd56e18404e",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -906,28 +932,6 @@
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"treefmt-nix": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
"stylix",
|
||||
"nur",
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1733222881,
|
||||
"narHash": "sha256-JIPcz1PrpXUCbaccEnrcUS8jjEb/1vJbZz5KkobyFdM=",
|
||||
"owner": "numtide",
|
||||
"repo": "treefmt-nix",
|
||||
"rev": "49717b5af6f80172275d47a418c9719a31a78b53",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "numtide",
|
||||
"repo": "treefmt-nix",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"watt": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
@@ -977,11 +981,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1755354946,
|
||||
"narHash": "sha256-zdov5f/GcoLQc9qYIS1dUTqtJMeDqmBmo59PAxze6e4=",
|
||||
"lastModified": 1761431178,
|
||||
"narHash": "sha256-xzjC1CV3+wpUQKNF+GnadnkeGUCJX+vgaWIZsnz9tzI=",
|
||||
"owner": "hyprwm",
|
||||
"repo": "xdg-desktop-portal-hyprland",
|
||||
"rev": "a10726d6a8d0ef1a0c645378f983b6278c42eaa0",
|
||||
"rev": "4b8801228ff958d028f588f0c2b911dbf32297f9",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -998,11 +1002,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1759965431,
|
||||
"narHash": "sha256-HvXr+rOkSZeseOYCruuMKMAUedcDkHOuYpFbnlIPs8Y=",
|
||||
"lastModified": 1763521945,
|
||||
"narHash": "sha256-Zcrafbe4niRJMbzaVOwg7+iedJhwBFttre2DpyCC6qA=",
|
||||
"owner": "0xc000022070",
|
||||
"repo": "zen-browser-flake",
|
||||
"rev": "391a133511ad7e09651b9c3939d8cf8d379766b1",
|
||||
"rev": "24d7381b9231c23daceec5d372cc28e877f7785d",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
||||
250
flake.nix
250
flake.nix
@@ -1,39 +1,53 @@
|
||||
{
|
||||
description = "Nix config entry point";
|
||||
|
||||
# since secrets live in a submodule, enable submodules by default
|
||||
inputs.self.submodules = true;
|
||||
inputs = {
|
||||
nixpkgs.url = "github:nixos/nixpkgs/nixos-25.05";
|
||||
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
|
||||
nixpkgs-unstable.url = "github:nixos/nixpkgs/nixos-unstable";
|
||||
# Home manager
|
||||
home-manager.url = "github:nix-community/home-manager/release-25.05";
|
||||
home-manager.inputs.nixpkgs.follows = "nixpkgs";
|
||||
home-manager = {
|
||||
url = "github:nix-community/home-manager";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
|
||||
# Managing flatpak apps
|
||||
nix-flatpak.url = "github:gmodena/nix-flatpak/?ref=v0.4.1";
|
||||
nix-flatpak.url = "github:gmodena/nix-flatpak";
|
||||
|
||||
# hyprland, plugins and related utils
|
||||
hyprland.url = "github:hyprwm/Hyprland";
|
||||
stylix.url = "github:danth/stylix/release-25.05";
|
||||
# zen browser
|
||||
zen-browser.url = "github:0xc000022070/zen-browser-flake";
|
||||
# IMPORTANT: we're using "libgbm" and is only available in unstable so ensure
|
||||
# to have it up-to-date or simply don't specify the nixpkgs input
|
||||
zen-browser.inputs.nixpkgs.follows = "nixpkgs";
|
||||
|
||||
# power management
|
||||
watt = {
|
||||
url = "github:NotAShelf/watt/?ref=v0.3.2";
|
||||
stylix = {
|
||||
url = "github:nix-community/stylix";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
# zen browser
|
||||
zen-browser = {
|
||||
url = "github:0xc000022070/zen-browser-flake";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
|
||||
# secrets
|
||||
sops-nix.url = "github:Mic92/sops-nix";
|
||||
sops-nix.inputs.nixpkgs.follows = "nixpkgs";
|
||||
|
||||
# quickshell
|
||||
quickshell = {
|
||||
url = "git+https://git.outfoxxed.me/outfoxxed/quickshell";
|
||||
sops-nix = {
|
||||
url = "github:Mic92/sops-nix";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
|
||||
# quickshell
|
||||
dms-cli = {
|
||||
url = "github:AvengeMedia/danklinux";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
dankMaterialShell = {
|
||||
url = "github:AvengeMedia/DankMaterialShell";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
inputs.dms-cli.follows = "dms-cli";
|
||||
};
|
||||
|
||||
nix4vscode = {
|
||||
url = "github:nix-community/nix4vscode";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
nix-vscode-extensions.url = "github:nix-community/nix-vscode-extensions/fd5c5549692ff4d2dbee1ab7eea19adc2f97baeb";
|
||||
};
|
||||
|
||||
outputs = {
|
||||
@@ -43,109 +57,117 @@
|
||||
home-manager,
|
||||
stylix,
|
||||
sops-nix,
|
||||
quickshell,
|
||||
nix-vscode-extensions,
|
||||
nix4vscode,
|
||||
...
|
||||
} @ inputs:
|
||||
let
|
||||
system = "x86_64-linux";
|
||||
username = "remy";
|
||||
name = "Rémy";
|
||||
|
||||
pkgs = nixpkgs.legacyPackages.${system};
|
||||
pkgs-unstable = nixpkgs-unstable.legacyPackages.${system};
|
||||
|
||||
lib = nixpkgs.lib;
|
||||
|
||||
systems = {
|
||||
# HP Spectre x360 2018
|
||||
Nixtre = {
|
||||
hostModules = [
|
||||
./hosts/spectre-x360-2018
|
||||
];
|
||||
userModules = [
|
||||
./users/remy_spectre
|
||||
inputs.nix-flatpak.homeManagerModules.nix-flatpak
|
||||
];
|
||||
extraModules = [
|
||||
inputs.stylix.nixosModules.stylix
|
||||
inputs.sops-nix.nixosModules.sops
|
||||
];
|
||||
};
|
||||
|
||||
# Portable usb stick
|
||||
nichts = {
|
||||
hostModules = [
|
||||
./hosts/mobile-usb
|
||||
];
|
||||
userModules = [
|
||||
./users/remy_usb
|
||||
inputs.nix-flatpak.homeManagerModules.nix-flatpak
|
||||
];
|
||||
extraModules = [
|
||||
inputs.stylix.nixosModules.stylix
|
||||
inputs.sops-nix.nixosModules.sops
|
||||
];
|
||||
};
|
||||
|
||||
# Lenovo yoga 7 pro
|
||||
nyx = {
|
||||
hostModules = [
|
||||
./hosts/yoga-7-pro
|
||||
];
|
||||
userModules = [
|
||||
./users/remy_yoga
|
||||
inputs.nix-flatpak.homeManagerModules.nix-flatpak
|
||||
inputs.dankMaterialShell.homeModules.dankMaterialShell.default
|
||||
|
||||
];
|
||||
extraModules = [
|
||||
inputs.stylix.nixosModules.stylix
|
||||
inputs.sops-nix.nixosModules.sops
|
||||
{ nixpkgs.overlays = [ inputs.nix4vscode.overlays.default ]; }
|
||||
];
|
||||
};
|
||||
};
|
||||
in
|
||||
{
|
||||
# For each entry in `systems` create a nixosConfiguration
|
||||
nixosConfigurations = lib.mapAttrs (_name: cfg:
|
||||
nixpkgs.lib.nixosSystem {
|
||||
inherit system;
|
||||
specialArgs = { inherit inputs pkgs-unstable; };
|
||||
modules =
|
||||
cfg.hostModules ++
|
||||
cfg.extraModules ++
|
||||
[ home-manager.nixosModules.home-manager {
|
||||
# Common home-manager flags
|
||||
home-manager = {
|
||||
backupFileExtension = ".backup";
|
||||
useGlobalPkgs = true;
|
||||
useUserPackages = true;
|
||||
extraSpecialArgs = { inherit inputs pkgs-unstable; };
|
||||
};
|
||||
|
||||
## NixOS configurations are the main output of this flake
|
||||
# HP Spectre x360 2018
|
||||
nixosConfigurations.Nixtre = nixpkgs.lib.nixosSystem {
|
||||
system = "x86_64-linux";
|
||||
specialArgs = { inherit inputs; };
|
||||
# Merge in all the user fragments for this host
|
||||
home-manager.users.remy = lib.mkMerge cfg.userModules;
|
||||
}
|
||||
]
|
||||
;
|
||||
}
|
||||
) systems;
|
||||
|
||||
modules = [
|
||||
./hosts/spectre-x360-2018
|
||||
stylix.nixosModules.stylix
|
||||
home-manager.nixosModules.home-manager
|
||||
{
|
||||
home-manager.useGlobalPkgs = true;
|
||||
home-manager.useUserPackages = true;
|
||||
home-manager.extraSpecialArgs = { inherit inputs; };
|
||||
|
||||
home-manager.users.remy.imports = [
|
||||
./users/remy_spectre
|
||||
inputs.nix-flatpak.homeManagerModules.nix-flatpak
|
||||
];
|
||||
}
|
||||
# ## Useful nix build tools
|
||||
# # iso builder TODO
|
||||
# nixosConfigurations.bcachefs-iso = nixpkgs.lib.nixosSystem {
|
||||
# system = "x86_64-linux";
|
||||
# modules = [
|
||||
# "${nixpkgs}/nixos/modules/installer/cd-dvd/installation-cd-minimal-new-kernel-no-zfs.nix"
|
||||
# ({ lib, pkgs, ... }: {
|
||||
# boot.supportedFilesystems = [ "bcachefs" ];
|
||||
# boot.kernelPackages = lib.mkOverride 0 pkgs.linuxPackages_latest;
|
||||
# })
|
||||
# ];
|
||||
# };
|
||||
|
||||
# devshell for this configuration
|
||||
devShells.x86_64-linux.default = nixpkgs.legacyPackages.x86_64-linux.mkShell {
|
||||
packages = [
|
||||
pkgs.sops
|
||||
];
|
||||
};
|
||||
|
||||
|
||||
nixosConfigurations.nichts = nixpkgs.lib.nixosSystem {
|
||||
system = "x86_64-linux";
|
||||
specialArgs = { inherit inputs; };
|
||||
|
||||
modules = [
|
||||
./hosts/mobile-usb
|
||||
stylix.nixosModules.stylix
|
||||
home-manager.nixosModules.home-manager
|
||||
{
|
||||
home-manager.useGlobalPkgs = true;
|
||||
home-manager.useUserPackages = true;
|
||||
home-manager.extraSpecialArgs = { inherit inputs; };
|
||||
|
||||
home-manager.users.remy.imports = [
|
||||
./users/remy_usb
|
||||
inputs.nix-flatpak.homeManagerModules.nix-flatpak
|
||||
];
|
||||
}
|
||||
];
|
||||
};
|
||||
|
||||
|
||||
nixosConfigurations.nyx = nixpkgs.lib.nixosSystem {
|
||||
system = "x86_64-linux";
|
||||
specialArgs = { inherit inputs; };
|
||||
|
||||
modules = [
|
||||
{
|
||||
nixpkgs.overlays = [
|
||||
inputs.nix-vscode-extensions.overlays.default
|
||||
];
|
||||
}
|
||||
./hosts/yoga-7-pro
|
||||
sops-nix.nixosModules.sops
|
||||
stylix.nixosModules.stylix
|
||||
home-manager.nixosModules.home-manager
|
||||
{
|
||||
home-manager.backupFileExtension = ".backup";
|
||||
home-manager.useGlobalPkgs = true;
|
||||
home-manager.useUserPackages = true;
|
||||
home-manager.extraSpecialArgs = { inherit inputs; };
|
||||
|
||||
home-manager.users.remy.imports = [
|
||||
./users/remy_yoga
|
||||
inputs.nix-flatpak.homeManagerModules.nix-flatpak
|
||||
];
|
||||
}
|
||||
];
|
||||
};
|
||||
|
||||
# nixosConfigurations.raspberry-pi = nixpkgs.lib.nixosSystem {
|
||||
# system = "aarch64-linux";
|
||||
# modules = [
|
||||
# ./hosts/raspberry-pi/configuration.nix
|
||||
# ];
|
||||
# };
|
||||
|
||||
## Home Manager configurations here?
|
||||
|
||||
|
||||
## Useful nix build tools
|
||||
# iso builder TODO
|
||||
nixosConfigurations.bcachefs-iso = nixpkgs.lib.nixosSystem {
|
||||
system = "x86_64-linux";
|
||||
modules = [
|
||||
"${nixpkgs}/nixos/modules/installer/cd-dvd/installation-cd-minimal-new-kernel-no-zfs.nix"
|
||||
({ lib, pkgs, ... }: {
|
||||
boot.supportedFilesystems = [ "bcachefs" ];
|
||||
boot.kernelPackages = lib.mkOverride 0 pkgs.linuxPackages_latest;
|
||||
})
|
||||
];
|
||||
# tell sops where the public ssh key to "seed" the age key from is located
|
||||
SOPS_AGE_SSH_PRIVATE_KEY_FILE = "/home/remy/.ssh/main_key";
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
networking.hostName = "nichts";
|
||||
|
||||
userName = "remy";
|
||||
gnome.enabled = true;
|
||||
gnome.enable = true;
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
@@ -5,17 +5,21 @@
|
||||
{ config, lib, pkgs, ... }:
|
||||
|
||||
{
|
||||
|
||||
boot.loader = {
|
||||
systemd-boot.enable = true;
|
||||
timeout = 0;
|
||||
efi.canTouchEfiVariables = true;
|
||||
};
|
||||
|
||||
# cause it is so inconveniently located
|
||||
services.logind.powerKey = "ignore";
|
||||
services.logind.lidSwitch = "sleep";
|
||||
services.logind.lidSwitchDocked = "ignore";
|
||||
services.logind.settings.Login = {
|
||||
# because it is so inconveniently located
|
||||
HandlePowerKey = "ignore";
|
||||
|
||||
# handled by the dm instead
|
||||
# HandleLidSwitch = "ignore"; # needs to be set because it is not passed to other events
|
||||
HandleLidSwitchDocked = "ignore";
|
||||
};
|
||||
|
||||
|
||||
# requires too many shenanigans so I just install using --no-root-passwd
|
||||
# users.users.root.hashedPassword = "!";
|
||||
|
||||
@@ -26,6 +26,7 @@
|
||||
../../modules/nixos/pipewire.nix
|
||||
../../modules/nixos/podman.nix
|
||||
../../modules/nixos/power.nix
|
||||
../../modules/nixos/sops.nix
|
||||
../../modules/nixos/stylix.nix
|
||||
../../modules/nixos/user.nix
|
||||
|
||||
|
||||
@@ -1,17 +1,16 @@
|
||||
{pkgs, ...}:
|
||||
let
|
||||
baseExtensions = with pkgs.vscode-marketplace; [
|
||||
baseExtensions = pkgs.nix4vscode.forVscode [
|
||||
# QOL
|
||||
mhutchie.git-graph
|
||||
redhat.vscode-yaml
|
||||
# github.copilot
|
||||
# github.copilot-chat
|
||||
"mhutchie.git-graph"
|
||||
"redhat.vscode-yaml"
|
||||
# Nix environment selector
|
||||
arrterian.nix-env-selector
|
||||
continue.continue
|
||||
"arrterian.nix-env-selector"
|
||||
# continue.continue
|
||||
"github.copilot"
|
||||
"github.copilot-chat"
|
||||
];
|
||||
|
||||
|
||||
baseSettings = {
|
||||
# visual
|
||||
"window.titleBarStyle" = "native";
|
||||
@@ -102,21 +101,21 @@ in
|
||||
};
|
||||
|
||||
profiles.development = {
|
||||
extensions = baseExtensions ++ (with pkgs.vscode-marketplace; [
|
||||
extensions = baseExtensions ++ pkgs.nix4vscode.forVscode [
|
||||
# python
|
||||
ms-python.python
|
||||
ms-python.isort
|
||||
ms-python.debugpy
|
||||
ms-python.vscode-pylance
|
||||
"ms-python.python"
|
||||
"ms-python.isort"
|
||||
"ms-python.debugpy"
|
||||
"ms-python.vscode-pylance"
|
||||
|
||||
# nix language
|
||||
jnoortheen.nix-ide
|
||||
"jnoortheen.nix-ide"
|
||||
|
||||
# Flutter and co
|
||||
dart-code.flutter
|
||||
dart-code.dart-code
|
||||
"dart-code.flutter"
|
||||
"dart-code.dart-code"
|
||||
|
||||
]);
|
||||
];
|
||||
|
||||
keybindings = baseKeybindings;
|
||||
|
||||
@@ -125,19 +124,19 @@ in
|
||||
|
||||
|
||||
profiles.science = {
|
||||
extensions = baseExtensions ++ (with pkgs.vscode-marketplace; [
|
||||
extensions = baseExtensions ++ pkgs.nix4vscode.forVscode [
|
||||
# python + jupyter
|
||||
ms-python.python
|
||||
ms-python.isort
|
||||
ms-python.debugpy
|
||||
ms-python.vscode-pylance
|
||||
ms-toolsai.vscode-jupyter-slideshow
|
||||
ms-toolsai.jupyter
|
||||
ms-toolsai.jupyter-hub
|
||||
ms-toolsai.jupyter-renderers
|
||||
"ms-python.python"
|
||||
"ms-python.isort"
|
||||
"ms-python.debugpy"
|
||||
"ms-python.vscode-pylance"
|
||||
"ms-toolsai.vscode-jupyter-slideshow"
|
||||
"ms-toolsai.jupyter"
|
||||
"ms-toolsai.jupyter-hub"
|
||||
"ms-toolsai.jupyter-renderers"
|
||||
# Typst
|
||||
myriad-dreamin.tinymist
|
||||
]);
|
||||
"myriad-dreamin.tinymist"
|
||||
];
|
||||
|
||||
keybindings = baseKeybindings ++ [
|
||||
# run code cell in jupyter
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
createDirectories = true;
|
||||
documents = "${config.home.homeDirectory}/Documents";
|
||||
download = "${config.home.homeDirectory}/Downloads";
|
||||
pictures = "${config.home.homeDirectory}/Pictures";#
|
||||
pictures = "${config.home.homeDirectory}/Pictures";
|
||||
# do not create the following
|
||||
desktop = null;
|
||||
music = null;
|
||||
|
||||
@@ -13,18 +13,12 @@
|
||||
|
||||
programs.fish = {
|
||||
enable = true;
|
||||
# enableCompletion = true;
|
||||
generateCompletions = true;
|
||||
|
||||
plugins = [
|
||||
{
|
||||
name = "fzf-fish";
|
||||
src = pkgs.fetchFromGitHub {
|
||||
owner = "PatrickF1";
|
||||
repo = "fzf.fish";
|
||||
rev = "v10.3";
|
||||
sha256 = "sha256-T8KYLA/r/gOKvAivKRoeqIwE2pINlxFQtZJHpOy9GMM=";
|
||||
};
|
||||
}
|
||||
# add others here
|
||||
{ name = "fzf"; src = pkgs.fishPlugins.fzf-fish.src; }
|
||||
{ name = "z"; src = pkgs.fishPlugins.z.src; }
|
||||
{ name = "pure"; src = pkgs.fishPlugins.pure.src; }
|
||||
];
|
||||
|
||||
functions = {
|
||||
@@ -47,4 +41,5 @@
|
||||
fi
|
||||
'';
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
@@ -1,47 +0,0 @@
|
||||
{pkgs, config, lib, ...}:
|
||||
let
|
||||
hyprctl = "${pkgs.hyprland}/bin/hyprctl";
|
||||
in
|
||||
{
|
||||
config = {
|
||||
services.fusuma = {
|
||||
enable = true;
|
||||
settings = {
|
||||
swipe = {
|
||||
"3" = {
|
||||
up = {
|
||||
command = "exec ${hyprctl} dispatch fullscreen 1";
|
||||
};
|
||||
|
||||
down = {
|
||||
command = "exec ${lib.getExe config.nix-config.launcher}";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
pinch = {
|
||||
"4" = {
|
||||
"in" = {
|
||||
command = "exec ${hyprctl} dispatch togglespecialworkspace magic";
|
||||
};
|
||||
"out" = {
|
||||
command = "exec ${hyprctl} dispatch togglespecialworkspace magic";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
hold = {
|
||||
"5" = {
|
||||
command = "exec ${lib.getExe config.nix-config.launcher}";
|
||||
threshold = 0.1;
|
||||
};
|
||||
};
|
||||
|
||||
threshold = {
|
||||
pinch = 0.1;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -1,9 +1,23 @@
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
let
|
||||
cfg = config.nix-config.hypr;
|
||||
in
|
||||
{
|
||||
options = {
|
||||
nix-config.hypr.enable = lib.mkOption {
|
||||
type = lib.types.bool;
|
||||
default = true;
|
||||
description = "Enable an opinionated hyprland+quickshell setup as a desktop environment.";
|
||||
};
|
||||
};
|
||||
|
||||
imports = [
|
||||
./hyprland
|
||||
./hyprpaper.nix
|
||||
./hyprlock.nix
|
||||
./hypridle.nix
|
||||
./waybar.nix
|
||||
];
|
||||
}
|
||||
|
||||
@@ -9,7 +9,6 @@ in
|
||||
default = [
|
||||
"gnome-keyring-daemon --start --components=secrets"
|
||||
"wl-paste --watch cliphist store"
|
||||
"${lib.getExe pkgs.waybar}"
|
||||
"${lib.getExe pkgs.hypridle}"
|
||||
# TODO - currently broken
|
||||
"${pkgs.owncloud-client}"
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
imports = [
|
||||
./autostart.nix
|
||||
./general.nix
|
||||
./gestures.nix
|
||||
./keybinds.nix
|
||||
./layouts.nix
|
||||
./packages.nix
|
||||
|
||||
@@ -19,7 +19,8 @@ in
|
||||
};
|
||||
|
||||
config = {
|
||||
wayland.windowManager.hyprland = {
|
||||
|
||||
wayland.windowManager.hyprland = lib.mkIf cfg.enable {
|
||||
enable = true;
|
||||
systemd.enable = true;
|
||||
settings = {
|
||||
@@ -28,10 +29,11 @@ in
|
||||
# };
|
||||
general = {
|
||||
resize_on_border = true;
|
||||
gaps_in = 5;
|
||||
gaps_out = 5;
|
||||
gaps_in = 3;
|
||||
gaps_out = 3;
|
||||
border_size = 1;
|
||||
"col.active_border" = "rgb(98971A) rgb(CC241D) 45deg";
|
||||
"col.inactive_border" = "rgba(595959aa)";
|
||||
layout = "master";
|
||||
};
|
||||
|
||||
@@ -54,16 +56,11 @@ in
|
||||
sensitivity = 0.5;
|
||||
};
|
||||
|
||||
gestures = {
|
||||
workspace_swipe = true;
|
||||
workspace_swipe_fingers = 4;
|
||||
workspace_swipe_touch = true;
|
||||
};
|
||||
|
||||
decoration = {
|
||||
rounding = 7;
|
||||
# active_opacity = 0.95;
|
||||
rounding = 10;
|
||||
inactive_opacity = 0.9;
|
||||
dim_inactive = false;
|
||||
dim_strength = 0.1;
|
||||
|
||||
shadow = {
|
||||
enabled = false;
|
||||
@@ -94,6 +91,16 @@ in
|
||||
"float, class:org.gnome.Nautilus"
|
||||
# when there is a single window, deactivate border and gaps
|
||||
# "border_size 0, onworkspace:w[tv1], "
|
||||
|
||||
# File pickers and dialogs
|
||||
"float, title:^(Save As)$"
|
||||
"float, title:^(Open File)$"
|
||||
"size 50% 50%, title:^(Open File)$"
|
||||
"center, title:^(Open File)$"
|
||||
|
||||
# Disable idle when gaming
|
||||
"idleinhibit always, class:^(steam_app_)"
|
||||
"idleinhibit always, class:^(gamescope)$"
|
||||
];
|
||||
};
|
||||
|
||||
|
||||
21
modules/home-manager/hypr/hyprland/gestures.nix
Normal file
21
modules/home-manager/hypr/hyprland/gestures.nix
Normal file
@@ -0,0 +1,21 @@
|
||||
{inputs, pkgs, lib, config, ...}:
|
||||
let
|
||||
cfg = config.nix-config.hypr;
|
||||
in
|
||||
{
|
||||
config = {
|
||||
wayland.windowManager.hyprland = {
|
||||
settings = {
|
||||
gesture = [
|
||||
# 4 finger swipe to switch workspace
|
||||
"4, horizontal, workspace"
|
||||
|
||||
"3, up, fullscreen"
|
||||
"3, down, float"
|
||||
|
||||
"4, vertical, scale: 0.5, special, magic"
|
||||
];
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -1,3 +1,4 @@
|
||||
# Note that some keybindings are delegated to other components, e.g. the quickshell module
|
||||
{inputs, pkgs, lib, config, ...}:
|
||||
let
|
||||
cfg = config.nix-config.hypr;
|
||||
@@ -5,8 +6,6 @@ in
|
||||
{
|
||||
config = {
|
||||
wayland.windowManager.hyprland = {
|
||||
enable = true;
|
||||
systemd.enable = true;
|
||||
settings = {
|
||||
"$mod" = "SUPER";
|
||||
|
||||
@@ -17,14 +16,11 @@ in
|
||||
"$mod, return, exec, kitty"
|
||||
"$mod, b, exec, ${cfg.browser}"
|
||||
"$mod, s, exec, ${cfg.ide}"
|
||||
"$mod, e, exec, nautilus"
|
||||
"$mod, e, exec, ${lib.getExe pkgs.nautilus}"
|
||||
|
||||
# Lock screen
|
||||
"$mod, l, exec, loginctl lock-session"
|
||||
|
||||
# Clipboard management
|
||||
"$mod, V, exec, cliphist list | ${lib.getExe config.nix-config.launcher} --dmenu | cliphist decode | wl-copy"
|
||||
|
||||
# Close window
|
||||
"$mod, Q, killactive,"
|
||||
# Force close window
|
||||
@@ -54,10 +50,10 @@ in
|
||||
"$mod+Ctrl, right, movetoworkspace, +1"
|
||||
|
||||
# Switch workspace
|
||||
"$mod, left, workspace, -1"
|
||||
"$mod, right, workspace, +1"
|
||||
"$mod, mouse_down, workspace, -1"
|
||||
"$mod, mouse_up, workspace, +1"
|
||||
"$mod, left, workspace, e-1"
|
||||
"$mod, right, workspace, e+1"
|
||||
"$mod, mouse_down, workspace, e-1"
|
||||
"$mod, mouse_up, workspace, e+1"
|
||||
|
||||
|
||||
# move to scratch workspace
|
||||
@@ -79,9 +75,6 @@ in
|
||||
", XF86Cut, exec, hyprshot -m region -o ~/Pictures/Screenshots"
|
||||
"Shift, XF86Cut, exec, hyprshot -m window -o ~/Pictures/Screenshots"
|
||||
|
||||
# Power menu
|
||||
", XF86PowerOff, exec, ${lib.getExe config.nix-config.powerMenu}"
|
||||
|
||||
# Other pickers using the same launcher
|
||||
"$mod+Ctrl, space, exec, ${lib.getExe config.nix-config.filePicker}"
|
||||
"$mod, period, exec, ${lib.getExe config.nix-config.emojiPicker}"
|
||||
@@ -89,20 +82,11 @@ in
|
||||
|
||||
# repeatable bindings
|
||||
binde = [
|
||||
# Fn keys
|
||||
", XF86MonBrightnessDown, exec, brightnessctl set 5%-"
|
||||
", XF86MonBrightnessUp, exec, brightnessctl set +5%"
|
||||
", XF86AudioRaiseVolume, exec, wpctl set-volume -l 1 @DEFAULT_AUDIO_SINK@ 5%+"
|
||||
", XF86AudioLowerVolume, exec, wpctl set-volume -l 1 @DEFAULT_AUDIO_SINK@ 5%-"
|
||||
", XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle"
|
||||
|
||||
# Reshape the window in focus
|
||||
"$mod, MINUS, resizeactive, -2% -2%"
|
||||
"$mod, KP_Subtract, resizeactive, -2% -2%"
|
||||
"$mod, PLUS, resizeactive, 2% 2%"
|
||||
"$mod, KP_Add, resizeactive, 2% 2%"
|
||||
|
||||
|
||||
];
|
||||
|
||||
# lock-screen bindings
|
||||
@@ -135,20 +119,17 @@ in
|
||||
"$mod, mouse:273, resizewindow"
|
||||
];
|
||||
|
||||
|
||||
|
||||
};
|
||||
|
||||
extraConfig = ''
|
||||
bind= , XF86AudioMicMute, submap, player_submap
|
||||
|
||||
submap=player_submap
|
||||
bind=, XF86AudioRaiseVolume, exec, notify-send previous; hyprctl dispatch submap reset
|
||||
bind=, XF86AudioLowerVolume, exec, notify-send next; hyprctl dispatch submap reset
|
||||
bind=, XF86AudioMicMute, exec, notify-send pause; hyprctl dispatch submap reset
|
||||
submap=reset
|
||||
'';
|
||||
# extraConfig = ''
|
||||
# bind= , XF86AudioMicMute, submap, player_submap
|
||||
|
||||
# submap=player_submap
|
||||
# bind=, XF86AudioRaiseVolume, exec, notify-send previous; hyprctl dispatch submap reset
|
||||
# bind=, XF86AudioLowerVolume, exec, notify-send next; hyprctl dispatch submap reset
|
||||
# bind=, XF86AudioMicMute, exec, notify-send pause; hyprctl dispatch submap reset
|
||||
# submap=reset
|
||||
# '';
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
@@ -8,35 +8,33 @@ in
|
||||
settings = {
|
||||
|
||||
master = {
|
||||
# TODO - I am not yet happy about the layout + toggle keybinds
|
||||
orientation = "center";
|
||||
# equivalent toalways_center_master = true;
|
||||
slave_count_for_center_master = 0;
|
||||
# new_is_master = false;
|
||||
# allow_small_split = true;
|
||||
# special_scale_factor = 0.80;
|
||||
mfact = 0.34;
|
||||
# no_gaps_when_only = true;
|
||||
|
||||
# default: single app is centered/fullscreen; when more apps are added it splits
|
||||
orientation = "right";
|
||||
# keep center-master behaviour when there is exactly 1 slave (i.e. single app appears fullscreen)
|
||||
slave_count_for_center_master = 1;
|
||||
# only split in two columns
|
||||
mfact = 0.6;
|
||||
inherit_fullscreen = false;
|
||||
# always_center_master = false;
|
||||
# allow a maximum of 3 windows in the master area for 3-column layout
|
||||
};
|
||||
|
||||
#create special workspaces with no gaps
|
||||
workspace = [
|
||||
"w[t1], gapsout:0, gapsin:0"
|
||||
"w[tg1], gapsout:0, gapsin:0"
|
||||
"f[1], gapsout:0, gapsin:0"
|
||||
];
|
||||
# #create special workspaces with no gaps
|
||||
# workspace = [
|
||||
# "w[t1], gapsout:0, gapsin:0"
|
||||
# "w[tg1], gapsout:0, gapsin:0"
|
||||
# "f[1], gapsout:0, gapsin:0"
|
||||
# ];
|
||||
|
||||
# automatically assign windows to workspaces when there is only one window
|
||||
windowrulev2 = [
|
||||
"bordersize 0, floating:0, onworkspace:w[t1]"
|
||||
"rounding 0, floating:0, onworkspace:w[t1]"
|
||||
"bordersize 0, floating:0, onworkspace:w[tg1]"
|
||||
"rounding 0, floating:0, onworkspace:w[tg1]"
|
||||
"bordersize 0, floating:0, onworkspace:f[1]"
|
||||
"rounding 0, floating:0, onworkspace:f[1]"
|
||||
];
|
||||
# # automatically assign windows to workspaces when there is only one window
|
||||
# windowrulev2 = [
|
||||
# "bordersize 0, floating:0, onworkspace:w[t1]"
|
||||
# "rounding 0, floating:0, onworkspace:w[t1]"
|
||||
# "bordersize 0, floating:0, onworkspace:w[tg1]"
|
||||
# "rounding 0, floating:0, onworkspace:w[tg1]"
|
||||
# "bordersize 0, floating:0, onworkspace:f[1]"
|
||||
# "rounding 0, floating:0, onworkspace:f[1]"
|
||||
# ];
|
||||
|
||||
misc = {
|
||||
vfr = false;
|
||||
@@ -45,12 +43,14 @@ in
|
||||
|
||||
# Keybind to toggle between 2 and 3 column master layout
|
||||
bind = [
|
||||
# Toggle master layout between 2 and 3 columns
|
||||
"$mod, m, exec, hyprctl dispatch layoutmsg orientationleft"
|
||||
"$mod, m, exec, hyprctl dispatch layoutmsg mfact exact 0.5"
|
||||
# "SUPER_SHIFT,C,exec,hyprctl dispatch layoutmsg swap_master_count 2 3"
|
||||
];
|
||||
# Toggle master layout between 2 and 3 columns (press $mod + m)
|
||||
"$mod, m, exec, hyprctl dispatch layoutmsg orientationcenter"
|
||||
"$mod, m, exec, hyprctl dispatch layoutmsg mfact exact 0.34"
|
||||
|
||||
# Toggle master layout between 3 and 2 columns (press $mod + Shift + m)
|
||||
"$mod, Shift+m, exec, hyprctl dispatch layoutmsg orientationright"
|
||||
"$mod, Shift+m, exec, hyprctl dispatch layoutmsg mfact exact 0.6"
|
||||
];
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
@@ -9,7 +9,6 @@ in
|
||||
pkgs.nautilus
|
||||
pkgs.gnome-control-center
|
||||
pkgs.gnome-bluetooth # needed by gnome-control-center to manage bluetooth
|
||||
pkgs.brightnessctl
|
||||
pkgs.cliphist
|
||||
pkgs.wl-clipboard
|
||||
pkgs.gcr # Provides org.gnome.keyring.SystemPrompter
|
||||
|
||||
@@ -1,66 +0,0 @@
|
||||
{
|
||||
pkgs,
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
let
|
||||
|
||||
wallpapers = [
|
||||
../../../wallpapers/codioful-formerly-gradienta-lweK7Wme_jo-unsplash.jpg
|
||||
../../../wallpapers/codioful-formerly-gradienta-n2XqPm7Bqhk-unsplash.jpg
|
||||
../../../wallpapers/luke-chesser-eICUFSeirc0-unsplash.jpg
|
||||
../../../wallpapers/luke-chesser-pJadQetzTkI-unsplash.jpg
|
||||
../../../wallpapers/magicpattern-87PP9Zd7MNo-unsplash.jpg
|
||||
];
|
||||
|
||||
monitor = ""; # leave empty to set the wallpaper on all monitors
|
||||
|
||||
wallpaperPicker = pkgs.writeShellScriptBin "wallpaper-picker" ''
|
||||
#!/usr/bin/env bash
|
||||
# use an array of wallpapers to randomly select one
|
||||
wallpapers=(${pkgs.lib.concatStringsSep " " (map (p: "${p}") wallpapers)})
|
||||
# select a random wallpaper from the array
|
||||
index=$((RANDOM % ${toString (builtins.length wallpapers)}))
|
||||
wallpaper="''${wallpapers[index]}"
|
||||
echo "Setting wallpaper to: $wallpaper"
|
||||
|
||||
hyprctl hyprpaper unload all
|
||||
hyprctl hyprpaper reload "${monitor},$wallpaper"
|
||||
'';
|
||||
|
||||
in {
|
||||
home.packages = [wallpaperPicker];
|
||||
|
||||
services.hyprpaper = {
|
||||
enable = true;
|
||||
settings = {
|
||||
ipc = "on";
|
||||
};
|
||||
};
|
||||
|
||||
# systemd.user = {
|
||||
# services.wallpaperRandomizer = {
|
||||
# Install = {WantedBy = ["graphical-session.target"];};
|
||||
|
||||
# Unit = {
|
||||
# Description = "Set random desktop background using hyprpaper";
|
||||
# After = ["graphical-session-pre.target"];
|
||||
# PartOf = ["graphical-session.target"];
|
||||
# };
|
||||
|
||||
# Service = {
|
||||
# Type = "oneshot";
|
||||
# ExecStart = "${wallpaperRandomizer}/bin/wallpaperRandomizer";
|
||||
# IOSchedulingClass = "idle";
|
||||
# };
|
||||
# };
|
||||
|
||||
# timers.wallpaperRandomizer = {
|
||||
# Unit = {Description = "Set random desktop background using hyprpaper on an interval";};
|
||||
|
||||
# Timer = {OnUnitActiveSec = "6h";};
|
||||
|
||||
# Install = {WantedBy = ["timers.target"];};
|
||||
# };
|
||||
# };
|
||||
}
|
||||
@@ -1,331 +0,0 @@
|
||||
{inputs, pkgs, lib, config, ...}:
|
||||
let
|
||||
cfg = config.nix-config.style;
|
||||
in
|
||||
{
|
||||
options.nix-config.waybar = {
|
||||
burninPrevention = lib.mkOption {
|
||||
type = lib.types.bool;
|
||||
default = true;
|
||||
description = "Enable burn-in prevention for Waybar";
|
||||
example = ''
|
||||
burninPrevention = true;
|
||||
'';
|
||||
|
||||
};
|
||||
};
|
||||
|
||||
config = {
|
||||
|
||||
# required to autoload fonts from packages installed via Home Manager
|
||||
fonts.fontconfig.enable = true;
|
||||
|
||||
# waybar requires font-awesome
|
||||
home.packages = [
|
||||
pkgs.pavucontrol
|
||||
];
|
||||
|
||||
# enable waybar
|
||||
programs.waybar.enable = true;
|
||||
programs.waybar = {
|
||||
settings = {
|
||||
|
||||
mainBar = {
|
||||
layer = "top";
|
||||
position = "top";
|
||||
|
||||
margin-top = 5;
|
||||
# margin-bottom = 2;
|
||||
# margin-left = 5;
|
||||
# margin-right = 5;
|
||||
|
||||
# margin between the modules
|
||||
spacing = 2;
|
||||
|
||||
modules-left = [
|
||||
"hyprland/workspaces"
|
||||
"hyprland/window"
|
||||
];
|
||||
|
||||
modules-center = [
|
||||
"clock"
|
||||
"custom/notification"
|
||||
];
|
||||
|
||||
modules-right = [
|
||||
"tray"
|
||||
"privacy"
|
||||
"network"
|
||||
"bluetooth"
|
||||
"wireplumber"
|
||||
"battery"
|
||||
"backlight"
|
||||
"idle_inhibitor"
|
||||
];
|
||||
|
||||
|
||||
# module specific settings
|
||||
"hyprland/workspaces" = {
|
||||
format = "{icon}";
|
||||
format-icons = {
|
||||
active = "●";
|
||||
default = "○";
|
||||
};
|
||||
};
|
||||
"hyprland/window"= {
|
||||
"icon" = true;
|
||||
"separate-outputs" = true;
|
||||
"format" = "{}";
|
||||
"rewrite" = {
|
||||
"(.*) — Mozilla Firefox" = "$1";
|
||||
"(.*) — Zen Browser" = "$1";
|
||||
"(.*) - fish" = "> [$1]";
|
||||
"(.*) - Visual Studio Code" = "$1";
|
||||
};
|
||||
};
|
||||
"clock" = {
|
||||
format = "{:%H:%M}";
|
||||
interval = 1;
|
||||
tooltip-format = "{calendar}";
|
||||
# calendar = {
|
||||
# format = "%Y-%m-%d\n %A\n\n%H:%M";
|
||||
# start-day = 1; # Monday
|
||||
# first-weekday = 1; # Monday
|
||||
# week-number = false;
|
||||
# long-weekdays = true;
|
||||
# hide-if-empty = false;
|
||||
# };
|
||||
};
|
||||
"idle_inhibitor" = {
|
||||
format = "{icon}";
|
||||
format-icons = {
|
||||
activated = "";
|
||||
deactivated = "☕";
|
||||
};
|
||||
tooltip = "true";
|
||||
};
|
||||
"bluetooth" = {
|
||||
format-on = "";
|
||||
format-off = "";
|
||||
format-disabled = "";
|
||||
format-connected-battery = "{device_battery_percentage}% ";
|
||||
format-alt = "{device_alias} ";
|
||||
tooltip-format = "{controller_alias}\t{controller_address}\n\n{num_connections} connected";
|
||||
tooltip-format-connected = "{controller_alias}\t{controller_address}\n\n{num_connections} connected\n\n{device_enumerate}";
|
||||
tooltip-format-enumerate-connected = "{device_alias}\n{device_address}";
|
||||
tooltip-format-enumerate-connected-battery = "{device_alias}\n{device_address}\n{device_battery_percentage}%";
|
||||
on-click-right = "XDG_CURRENT_DESKTOP=GNOME gnome-control-center bluetooth";
|
||||
};
|
||||
"battery" = {
|
||||
interval = 60;
|
||||
states = {
|
||||
good = 80;
|
||||
warning = 30;
|
||||
critical = 10;
|
||||
};
|
||||
format = "{capacity}% {icon}";
|
||||
format-charging = "{capacity}% ";
|
||||
format-plugged = "{capacity}% ";
|
||||
format-icons = [ "" "" "" "" "" "" ];
|
||||
};
|
||||
"backlight" = {
|
||||
# format = "{percent}% {icon}";
|
||||
format = "{icon}";
|
||||
tooltip-format = "{percent}%";
|
||||
format-icons = [ "" "" "" "" "" "" "" "" "" ];
|
||||
};
|
||||
"wireplumber" = {
|
||||
scroll-step = 1;
|
||||
format = "{volume}% {icon}";# {format_source}";
|
||||
format-bluetooth = "{volume}% {icon}";# {format_source}";
|
||||
format-bluetooth-muted = " {icon}";# {format_source}";
|
||||
format-muted = "";# {format_source}";
|
||||
format-alt = "{format_source} {icon}";
|
||||
# format-source = " {volume}%";
|
||||
# format-source-muted = "";
|
||||
format-icons = {
|
||||
headphone = "";
|
||||
hands-free = "";
|
||||
headset = "";
|
||||
phone = "";
|
||||
portable = "";
|
||||
default = [
|
||||
""
|
||||
""
|
||||
""
|
||||
];
|
||||
};
|
||||
on-click = "wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle";
|
||||
on-click-right = "XDG_CURRENT_DESKTOP=GNOME gnome-control-center sound";
|
||||
};
|
||||
"memory" = {
|
||||
interval = 5;
|
||||
format = " {}%";
|
||||
max-length = 10;
|
||||
};
|
||||
"tray" = {
|
||||
spacing = 5;
|
||||
};
|
||||
"custom/notification" = {
|
||||
format = "{icon} {}";
|
||||
format-icons = {
|
||||
notification = "<span foreground='red'><sup></sup></span>";
|
||||
none = "";
|
||||
dnd-notification = "<span foreground='red'><sup></sup></span>";
|
||||
dnd-none = "";
|
||||
inhibited-notification = "<span foreground='red'><sup></sup></span>";
|
||||
inhibited-none = "";
|
||||
dnd-inhibited-notification = "<span foreground='red'><sup></sup></span>";
|
||||
dnd-inhibited-none = "";
|
||||
};
|
||||
return-type = "json";
|
||||
exec-if = "which swaync-client";
|
||||
exec = "swaync-client -swb";
|
||||
on-click = "swaync-client -t -sw";
|
||||
on-click-right = "swaync-client -d -sw";
|
||||
escape = true;
|
||||
};
|
||||
"network" = {
|
||||
format = "";
|
||||
format-ethernet = " {ipaddr}";
|
||||
format-wifi = "{icon}";
|
||||
format-icons = [ "" "" "" "" "" ];
|
||||
format-disconnected = "";
|
||||
tooltip-format = " {ifname} via {gwaddr}";
|
||||
tooltip-format-wifi = ''
|
||||
{essid}({signalStrength}%), {frequency} GHz (Interface: {ifname})
|
||||
IP: {ipaddr} GW: {gwaddr}
|
||||
|
||||
<span color='#a6da95'>{bandwidthUpBits}</span> <span color='#ee99a0'>{bandwidthDownBits}</span> <span color='#c6a0f6'>{bandwidthTotalBits}</span>
|
||||
'';
|
||||
tooltip-format-ethernet = ''
|
||||
{ifname} - {ipaddr}/{cidr}
|
||||
|
||||
<span color='#a6da95'>{bandwidthUpBits}</span> <span color='#ee99a0'>{bandwidthDownBits}</span> <span color='#c6a0f6'>{bandwidthTotalBits}</span>
|
||||
'';
|
||||
tooltip-format-disconnected = "Disconnected";
|
||||
on-click = "XDG_CURRENT_DESKTOP=GNOME gnome-control-center wifi";
|
||||
};
|
||||
"privacy" = {
|
||||
icon-spacing = 4;
|
||||
# icon-size" = 18;
|
||||
transition-duration = 250;
|
||||
modules = [
|
||||
{
|
||||
type = "screenshare";
|
||||
tooltip = true;
|
||||
# tooltip-icon-size = 24
|
||||
}
|
||||
{
|
||||
type = "audio-out";
|
||||
tooltip = true;
|
||||
# tooltip-icon-size = 24
|
||||
}
|
||||
{
|
||||
type = "audio-in";
|
||||
tooltip = true;
|
||||
# tooltip-icon-size = 24
|
||||
}
|
||||
];
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
style = ''
|
||||
* {
|
||||
font-family: "${cfg.monospaceFont}";
|
||||
font-weight: bold;
|
||||
font-size: ${builtins.toString (cfg.fontSizes.desktop + 5)}px;
|
||||
}
|
||||
|
||||
window#waybar {
|
||||
background-color: transparent;
|
||||
}
|
||||
|
||||
.module {
|
||||
background: rgba(0, 0, 0, 0.6);
|
||||
color: white;
|
||||
border-radius: 7px;
|
||||
margin: 1px 3px;
|
||||
padding: 1px 6px;
|
||||
animation: bgFade 3600s infinite alternate, textColorFade 3600s infinite alternate;
|
||||
}
|
||||
|
||||
box.module button:hover {
|
||||
box-shadow: inset 0 -3px #ffffff;
|
||||
}
|
||||
|
||||
/*.modules-left {
|
||||
padding: 3px;
|
||||
}
|
||||
|
||||
.modules-right {
|
||||
padding: 3px;
|
||||
}
|
||||
|
||||
.modules-center {
|
||||
padding: 3px;
|
||||
}*/
|
||||
|
||||
#workspaces button {
|
||||
color: white;
|
||||
background: none;
|
||||
animation: textColorFade 3600s infinite alternate;
|
||||
}
|
||||
|
||||
#battery.warning {
|
||||
background:rgba(240, 165, 0, 0.6);
|
||||
}
|
||||
#battery.critical {
|
||||
background:rgba(255, 0, 0, 0.6);
|
||||
}
|
||||
#battery.charging {
|
||||
background-color:rgba(14, 173, 0, 0.6);
|
||||
}
|
||||
|
||||
|
||||
#privacy {
|
||||
color: #ffffff;
|
||||
background:rgba(240, 165, 0, 0.6);
|
||||
border-radius: 7px;
|
||||
margin: 1px 3px;
|
||||
padding: 1px 6px;
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@keyframes bgFade {
|
||||
0% {
|
||||
background-color: white;
|
||||
}
|
||||
100% {
|
||||
background-color: black;
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes textColorFade {
|
||||
0% {
|
||||
color: black;
|
||||
}
|
||||
/* 45% {
|
||||
color: black;
|
||||
} */
|
||||
60% {
|
||||
color: rgb(29, 38, 96);
|
||||
}
|
||||
/* 55% {
|
||||
color: white;
|
||||
} */
|
||||
100% {
|
||||
color: white;
|
||||
}
|
||||
}
|
||||
|
||||
'';
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
@@ -1,13 +1,25 @@
|
||||
{pkgs, ...}:
|
||||
{
|
||||
home.packages = [
|
||||
pkgs.kubie
|
||||
pkgs.kubectl
|
||||
];
|
||||
|
||||
|
||||
# Add the shell alias
|
||||
programs.fish.shellAliases = {
|
||||
k = "kubectl";
|
||||
};
|
||||
|
||||
# set the kubectl autocompletions for fish
|
||||
# the fish functions are generated by kubectl itself, we do this at compile time and write them a single time to avoid generating them at each shell start
|
||||
# the command is kubectl completion fish
|
||||
# which becomes
|
||||
programs.fish.completions."kubectl" = builtins.readFile "${pkgs.runCommand "kubectl-completion" {} ''
|
||||
${pkgs.kubectl}/bin/kubectl completion fish > $out
|
||||
''}";
|
||||
|
||||
programs.kubeswitch = {
|
||||
enable = true;
|
||||
enableFishIntegration = true;
|
||||
};
|
||||
}
|
||||
|
||||
@@ -1,110 +0,0 @@
|
||||
{ config, pkgs, lib, ... }:
|
||||
let
|
||||
cfg = config.nix-config.style;
|
||||
in
|
||||
{
|
||||
services.swaync = {
|
||||
enable = true;
|
||||
|
||||
settings = {
|
||||
control-center-margin-top = 13;
|
||||
control-center-margin-bottom = 0;
|
||||
control-center-margin-right = 14;
|
||||
control-center-margin-left = 0;
|
||||
notification-2fa-action = true;
|
||||
notification-inline-replies = true;
|
||||
notification-icon-size = 48;
|
||||
notification-body-image-height = 160;
|
||||
notification-body-image-width = 200;
|
||||
notification-window-width = 400;
|
||||
timeout = 6;
|
||||
timeout-low = 3;
|
||||
timeout-critical = 0;
|
||||
|
||||
image-visibility = "when-available";
|
||||
transition-time = 200;
|
||||
hide-on-clear = false;
|
||||
hide-on-action = true;
|
||||
script-fail-notify = true;
|
||||
widgets = [
|
||||
"dnd"
|
||||
"buttons-grid"
|
||||
"mpris"
|
||||
"volume"
|
||||
"backlight"
|
||||
"title"
|
||||
"notifications"
|
||||
];
|
||||
widget-config = {
|
||||
title = {
|
||||
text = "Notifications";
|
||||
clear-all-button = true;
|
||||
button-text = "";
|
||||
};
|
||||
dnd = {
|
||||
text = "Do Not Disturb";
|
||||
};
|
||||
label = {
|
||||
max-lines = 1;
|
||||
text = "Notification";
|
||||
};
|
||||
mpris = {
|
||||
image-size = 50;
|
||||
image-radius = 0;
|
||||
};
|
||||
volume = {
|
||||
label = "";
|
||||
};
|
||||
backlight = {
|
||||
label = "";
|
||||
device = "amdgpu_bl2";
|
||||
};
|
||||
buttons-grid = {
|
||||
actions = [
|
||||
{
|
||||
label = "";
|
||||
command = "wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle";
|
||||
type = "toggle";
|
||||
}
|
||||
{
|
||||
label = "";
|
||||
command = "wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle";
|
||||
type = "toggle";
|
||||
}
|
||||
{
|
||||
label = "";
|
||||
command = "nm-connection-editor";
|
||||
}
|
||||
{
|
||||
label = "";
|
||||
command = "blueman-manager";
|
||||
}
|
||||
{
|
||||
label = "";
|
||||
command = "bash -c $HOME/.config/hypr/scripts/airplaneMode.sh";
|
||||
type = "toggle";
|
||||
}
|
||||
{
|
||||
label = "";
|
||||
command = "shutdown now";
|
||||
}
|
||||
{
|
||||
label = "";
|
||||
command = "hyprlock";
|
||||
}
|
||||
{
|
||||
label = "";
|
||||
command = "~/.config/hypr/scripts/wlogout.sh";
|
||||
}
|
||||
];
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
style = ''
|
||||
* {
|
||||
font-family: "monospace";
|
||||
}
|
||||
'';
|
||||
};
|
||||
}
|
||||
@@ -1,36 +1,59 @@
|
||||
{
|
||||
config,
|
||||
inputs,
|
||||
lib,
|
||||
pkgs,
|
||||
builtins,
|
||||
...
|
||||
}:
|
||||
let
|
||||
cfg = config.nix-config.quickshell;
|
||||
qs = inputs.quickshell.packages.x86_64-linux.default;
|
||||
in
|
||||
{
|
||||
options.nix-config.quickshell.enable = lib.mkEnableOption {
|
||||
name = "quickshell";
|
||||
description = "Whether to enable quickshell.";
|
||||
default = true;
|
||||
programs.dankMaterialShell.enable = true;
|
||||
|
||||
programs.dankMaterialShell = {
|
||||
enableSystemd = true;
|
||||
enableSystemMonitoring = false;
|
||||
enableClipboard = true;
|
||||
enableVPN = true;
|
||||
enableBrightnessControl = true;
|
||||
enableColorPicker = false;
|
||||
enableDynamicTheming = true;
|
||||
enableAudioWavelength = false;
|
||||
enableCalendarEvents = false;
|
||||
enableSystemSound = true;
|
||||
|
||||
# default = {
|
||||
# settings = ''{}'';
|
||||
# session = ''{}'';
|
||||
# };
|
||||
|
||||
# plugins = {};
|
||||
};
|
||||
|
||||
config = lib.mkIf cfg.enable {
|
||||
home.packages = [
|
||||
qs
|
||||
pkgs.qt6.qtimageformats
|
||||
pkgs.qt6.qt5compat
|
||||
pkgs.qt6.qtmultimedia
|
||||
pkgs.qt6.qtdeclarative
|
||||
pkgs.qt6.qtsvg
|
||||
pkgs.qt6.qtwayland
|
||||
pkgs.qt6.qtbase
|
||||
wayland.windowManager.hyprland = {
|
||||
settings = {
|
||||
binde = [
|
||||
# Brightness
|
||||
", XF86MonBrightnessDown, exec, dms ipc call brightness decrement 5 \"\""
|
||||
", XF86MonBrightnessUp, exec, dms ipc call brightness increment 5 \"\""
|
||||
|
||||
];
|
||||
# Audio volume + playback
|
||||
", XF86AudioMute, exec, dms ipc call audio mute"
|
||||
", XF86AudioLowerVolume, exec, dms ipc call audio decrement 5"
|
||||
", XF86AudioRaiseVolume, exec, dms ipc call audio increment 5"
|
||||
|
||||
# add the quickshell config (whole directory) to XDG_CONFIG_HOME
|
||||
# home.file.".config/quickshell/config".source = ./config;
|
||||
"$mod, XF86AudioMute, exec, dms ipc call mpris playPause"
|
||||
"$mod, XF86AudioLowerVolume, exec, dms ipc call mpris previous"
|
||||
"$mod, XF86AudioRaiseVolume, exec, dms ipc call mpris next"
|
||||
# also allow the dedicated media keys to control playback
|
||||
", XF86AudioPlay, exec, dms ipc call mpris playPause"
|
||||
", XF86AudioPrev, exec, dms ipc call mpris previous"
|
||||
", XF86AudioNext, exec, dms ipc call mpris next"
|
||||
|
||||
];
|
||||
|
||||
bind = [
|
||||
", XF86PowerOff, exec, dms ipc call powermenu toggle"
|
||||
# used to be ", XF86PowerOff, exec, ${lib.getExe config.nix-config.powerMenu}"
|
||||
"$mod, V, exec, dms ipc call clipboard toggle"
|
||||
# used to be "$mod, V, exec, cliphist list | ${lib.getExe config.nix-config.launcher} --dmenu | cliphist decode | wl-copy"
|
||||
];
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
0
modules/home-manager/sops.nix
Normal file
0
modules/home-manager/sops.nix
Normal file
@@ -90,7 +90,7 @@ in
|
||||
};
|
||||
|
||||
emoji = {
|
||||
package = pkgs.noto-fonts-emoji;
|
||||
package = pkgs.noto-fonts-color-emoji;
|
||||
name = "Noto Color Emoji";
|
||||
};
|
||||
|
||||
|
||||
11
modules/home-manager/wallpaper.nix
Normal file
11
modules/home-manager/wallpaper.nix
Normal file
@@ -0,0 +1,11 @@
|
||||
# Write an importable nix file that copies a folder from this repo into the store and creates a symlink to a predictible directory in my home file
|
||||
{
|
||||
lib, pkgs, ...
|
||||
}:
|
||||
{
|
||||
# Copy the entire wallpapers directory into the Nix store and symlink it to ~/wallpapers
|
||||
home.file."wallpapers" = {
|
||||
source = ../../wallpapers;
|
||||
target = "Pictures/wallpapers";
|
||||
};
|
||||
}
|
||||
@@ -22,7 +22,7 @@ in
|
||||
defaultSession = "hyprland";
|
||||
};
|
||||
|
||||
services.xserver.displayManager.gdm = {
|
||||
services.displayManager.gdm = {
|
||||
enable = true;
|
||||
wayland = true;
|
||||
};
|
||||
|
||||
@@ -13,6 +13,11 @@ in
|
||||
type = lib.types.str;
|
||||
default = "nixos";
|
||||
};
|
||||
|
||||
nix-config.networking.vpn = lib.mkOption {
|
||||
type = lib.types.bool;
|
||||
default = true;
|
||||
};
|
||||
};
|
||||
|
||||
config = {
|
||||
@@ -30,6 +35,60 @@ in
|
||||
# enable = false;
|
||||
# };
|
||||
|
||||
};
|
||||
# # VPN setup
|
||||
networking.networkmanager.ensureProfiles = {
|
||||
environmentFiles = [ config.sops.secrets.vpnEnvironment.path ];
|
||||
profiles.wg-home = {
|
||||
connection = {
|
||||
id = "wg-home";
|
||||
type = "wireguard";
|
||||
interface-name = "wgh";
|
||||
autoconnect = false;
|
||||
};
|
||||
|
||||
ipv4 = {
|
||||
address = "10.0.0.2/32";
|
||||
method = "manual";
|
||||
};
|
||||
|
||||
wireguard = {
|
||||
listen-port = 51820;
|
||||
private-key = "$HOME_PRIVATE_KEY";
|
||||
};
|
||||
|
||||
"wireguard-peer.y/TBD/c0GkrRtekDkCb8TUnYYil8bSRPIjPDY650pz8=" = {
|
||||
endpoint = "$HOME_ENDPOINT";
|
||||
allowed-ips = "192.168.1.0/16";
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
|
||||
profiles.wg-fritzbox = {
|
||||
connection = {
|
||||
id = "wg-fritzbox";
|
||||
type = "wireguard";
|
||||
interface-name = "wgfb";
|
||||
autoconnect = false;
|
||||
};
|
||||
|
||||
ipv4 = {
|
||||
address = "192.168.178.201/24";
|
||||
dns = "192.168.178.1";
|
||||
method = "manual";
|
||||
};
|
||||
|
||||
wireguard = {
|
||||
listen-port = 51820;
|
||||
private-key = "$FRITZBOX_PRIVATE_KEY";
|
||||
};
|
||||
|
||||
"wireguard-peer.Jf/seKAL7kWm2qX9gf5Ln8FiN7OlPQB3CyRovDIOEHw=" = {
|
||||
endpoint = "$FRITZBOX_ENDPOINT";
|
||||
allowed-ips = "192.168.178.0/24;fd73:ea00:5841::/64";
|
||||
preshared-key = "$FRITZBOX_PRESHARED_KEY";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
@@ -22,38 +22,42 @@
|
||||
|
||||
|
||||
config = {
|
||||
# environment.systemPackages = [
|
||||
# pkgs.power-profiles-daemon
|
||||
# ];
|
||||
services.power-profiles-daemon.enable = true;
|
||||
|
||||
# services.tlp = {
|
||||
# enable = true;
|
||||
# settings = {
|
||||
# # processor chooses frequencies itself but respects the limits set by the user
|
||||
# CPU_DRIVER_OPMODE_ON_AC = "guided";
|
||||
# CPU_DRIVER_OPMODE_ON_BAT = "guided";
|
||||
# # # processor chooses frequencies itself but respects the limits set by the user
|
||||
# # CPU_DRIVER_OPMODE_ON_AC = "guided";
|
||||
# # CPU_DRIVER_OPMODE_ON_BAT = "guided";
|
||||
|
||||
# # governor dictates global behavior of the CPU
|
||||
# CPU_SCALING_GOVERNOR_ON_BAT = "powersave";
|
||||
# CPU_SCALING_GOVERNOR_ON_AC = "performance";
|
||||
# # # governor dictates global behavior of the CPU
|
||||
# # CPU_SCALING_GOVERNOR_ON_BAT = "powersave";
|
||||
# # CPU_SCALING_GOVERNOR_ON_AC = "performance";
|
||||
|
||||
# # energy performance policy (EPP) sets the energy/performance balance
|
||||
# CPU_ENERGY_PERF_POLICY_ON_BAT = "balance_power";
|
||||
# CPU_ENERGY_PERF_POLICY_ON_AC = "performance";
|
||||
# # # energy performance policy (EPP) sets the energy/performance balance
|
||||
# # CPU_ENERGY_PERF_POLICY_ON_BAT = "balance_power";
|
||||
# # CPU_ENERGY_PERF_POLICY_ON_AC = "performance";
|
||||
|
||||
|
||||
# # clock speeds reported by `sudo tlp-stat`
|
||||
# # 623377 [kHz] and 5090910 [kHz]
|
||||
# # # clock speeds reported by `sudo tlp-stat`
|
||||
# # # 623377 [kHz] and 5090910 [kHz]
|
||||
# # CPU_SCALING_MIN_FREQ_ON_AC = 623377;
|
||||
# # CPU_SCALING_MAX_FREQ_ON_AC = 5090910;
|
||||
# # CPU_SCALING_MIN_FREQ_ON_BAT = 0;
|
||||
# # # reduce max frequency on battery to save power
|
||||
# # CPU_SCALING_MAX_FREQ_ON_BAT = 3000000;
|
||||
|
||||
# # Allow the CPU to boost
|
||||
# CPU_BOOST_ON_AC = 1;
|
||||
# CPU_BOOST_ON_BAT = 1;
|
||||
# # # Allow the CPU to boost
|
||||
# # CPU_BOOST_ON_AC = 1;
|
||||
# # CPU_BOOST_ON_BAT = 1;
|
||||
|
||||
|
||||
# RADEON_DPM_PERF_LEVEL_ON_AC = "high";
|
||||
# WIFI_PWR_ON_BAT = "off";
|
||||
# # RADEON_DPM_PERF_LEVEL_ON_AC = "high";
|
||||
# # # WIFI_PWR_ON_BAT = "off";
|
||||
|
||||
# # enable battery charge thresholds on the default battery
|
||||
# STOP_CHARGE_THRESH_BAT0 = 1;
|
||||
@@ -69,15 +73,17 @@
|
||||
AllowSuspendThenHibernate=yes
|
||||
'';
|
||||
|
||||
services.watt = {
|
||||
enable = true;
|
||||
settings = {
|
||||
battery_charge_thresholds = [
|
||||
40
|
||||
80
|
||||
];
|
||||
};
|
||||
};
|
||||
# services.watt = {
|
||||
# enable = true;
|
||||
# settings = {
|
||||
# battery_charge_thresholds = [
|
||||
# 40
|
||||
# 80
|
||||
# ];
|
||||
# };
|
||||
# };
|
||||
|
||||
services.upower.enable = true;
|
||||
|
||||
|
||||
services.irqbalance = {
|
||||
|
||||
12
modules/nixos/sops.nix
Normal file
12
modules/nixos/sops.nix
Normal file
@@ -0,0 +1,12 @@
|
||||
{
|
||||
inputs,
|
||||
...
|
||||
}:
|
||||
{
|
||||
sops.age.sshKeyPaths = [ "/etc/ssh/ssh_host_ed25519_key" ];
|
||||
sops.defaultSopsFile = ./../../secrets/vpn.env;
|
||||
sops.secrets.vpnEnvironment = {
|
||||
sopsFile = ./../../secrets/vpn.env;
|
||||
format = "dotenv";
|
||||
};
|
||||
}
|
||||
2
secrets
2
secrets
Submodule secrets updated: 2aef0ad374...a51d89c420
@@ -12,8 +12,10 @@
|
||||
## Utils relevant to this user only
|
||||
programs.git = {
|
||||
enable = true;
|
||||
userName = "Remy Moll";
|
||||
userEmail = "me@moll.re";
|
||||
settings = {
|
||||
user.name = "Remy Moll";
|
||||
user.email = "me@moll.re";
|
||||
};
|
||||
};
|
||||
|
||||
## XDG configuration
|
||||
@@ -22,6 +24,7 @@
|
||||
mimeApps = {
|
||||
enable = true;
|
||||
defaultApplications = {
|
||||
# TODO
|
||||
"inode/directory" = "org.gnome.Nautilus.desktop";
|
||||
"application/zip" = "org.gnome.FileRoller.desktop";
|
||||
"application/octet-stream" = "org.gnome.GHex.desktop";
|
||||
|
||||
@@ -9,9 +9,9 @@ with lib.hm.gvariant;
|
||||
scale = "1.6";
|
||||
};
|
||||
};
|
||||
quickshell = {
|
||||
enable = true;
|
||||
};
|
||||
# quickshell = {
|
||||
# enable = true;
|
||||
# };
|
||||
};
|
||||
};
|
||||
|
||||
@@ -25,13 +25,11 @@ with lib.hm.gvariant;
|
||||
../../modules/home-manager/documents.nix
|
||||
../../modules/home-manager/fish.nix
|
||||
../../modules/home-manager/flatpaks.nix
|
||||
../../modules/home-manager/fusuma.nix
|
||||
../../modules/home-manager/hypr
|
||||
../../modules/home-manager/keepassxc.nix
|
||||
../../modules/home-manager/kitty.nix
|
||||
../../modules/home-manager/kubectl.nix
|
||||
../../modules/home-manager/launcher.nix
|
||||
../../modules/home-manager/notifications.nix
|
||||
../../modules/home-manager/obsidian.nix
|
||||
../../modules/home-manager/owncloud-client.nix
|
||||
../../modules/home-manager/quickshell
|
||||
@@ -39,7 +37,7 @@ with lib.hm.gvariant;
|
||||
../../modules/home-manager/stylix.nix
|
||||
../../modules/home-manager/thunderbird.nix
|
||||
../../modules/home-manager/uxplay.nix
|
||||
# ../../modules/home-manager/wofi.nix
|
||||
../../modules/home-manager/wallpaper.nix
|
||||
../../modules/home-manager/xdg-portals.nix
|
||||
];
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user