Compare commits
1 Commits
main
...
b3574e2248
| Author | SHA1 | Date | |
|---|---|---|---|
| b3574e2248 |
@@ -1,8 +0,0 @@
|
||||
{
|
||||
"tabWidth": 2,
|
||||
"printWidth": 90,
|
||||
"useTabs": false,
|
||||
"proseWrap": "always",
|
||||
"endOfLine": "lf",
|
||||
"embeddedLanguageFormatting": "auto"
|
||||
}
|
||||
251
CONTRIBUTING.md
@@ -1,251 +0,0 @@
|
||||
# CONTRIBUTING
|
||||
|
||||
## Tldr
|
||||
|
||||
**Do's**
|
||||
|
||||
- Be concise
|
||||
- Follow the [Formatting Rules](#formatting-rules) to the best of your ability
|
||||
- Segment larger changes into managable, reviewable commits
|
||||
- Leave a trail of your development so I can tell you put some effort in (doesnt really
|
||||
apply to smaller commits)
|
||||
- Write your own code
|
||||
- Leave some way of crediting your work
|
||||
- Disclose the capacity in which you used AI. Most of the time, anything more than making
|
||||
examples or helping you understand the codebase will be disallowed. As little AI code
|
||||
should make it to production as possible
|
||||
|
||||
**Dont's**
|
||||
|
||||
- Report upstream issues to me (ie an issue with the app itself, not my config)
|
||||
- Make major structural changes
|
||||
- Submit chore commits such as updating the flake, I can do that myself
|
||||
- Add new hosts for no reason, make your own flake and import the modules you want for
|
||||
your host
|
||||
- Majorly change existing hosts for your own preference
|
||||
- Ask AI to fix your issues and expect me to merge changes
|
||||
- Delete existing modules. Executive decisions like that will be made at my disgression,
|
||||
and will be done as non-destructively as possible, such as moving those modules to a
|
||||
"deprecated" branch in the future.
|
||||
|
||||
## General format
|
||||
|
||||
All emails regarding this repo (or another) should have a subject prepended with the
|
||||
following:
|
||||
|
||||
```text
|
||||
[GIT] [voidarc/nixos] (request type)
|
||||
```
|
||||
|
||||
The content of the second set of brackets should be replaced with the specific submodule
|
||||
or repo that is being referred to. For example, in the case of a quickshell bug, it should
|
||||
contain `voidarc/quickshell`.
|
||||
|
||||
In general, for most requests, I also implore you to include a github username (or
|
||||
equivalent, codeberg, gitlab, etc.) so that I have a frame of reference for you as a
|
||||
person, and also so that you can be credited in any resulting commits. Depending on
|
||||
scenario, this requirement can be waived, or substituted for a reddit account or
|
||||
something.
|
||||
|
||||
The third set of brackets pertains to the subject proper, and should only reasonably
|
||||
contain `issue`, `patch` or `feature`. If you believe that your request does not fit into
|
||||
any of those categories, then feel free to do whatever you want within reason.
|
||||
|
||||
## Issues
|
||||
|
||||
Issues are restricted to bugs or otherwise not fixed problems in the code. If it is an
|
||||
upstream bug, ie one not caused by my specific config, please don't send me a complaint
|
||||
about it, refer to the source app. The subject for an issue should be formatted as such:
|
||||
|
||||
```Text
|
||||
(prefix) (module type) (specific module) - (description of issue)
|
||||
```
|
||||
|
||||
The prefix shoud be formatted as above. In the case of an issue pertaining to another
|
||||
repo, the module type and module name may be omitted, unless it is an issue with the
|
||||
dendritic module implementation, in which case the repo in the subject should be this one.
|
||||
|
||||
The module type should match the repo's folder structure, being one of `feature`,
|
||||
`system`, `attr/attribute` or `host`. Self explanitory. Doesn't have to be an exact match.
|
||||
|
||||
The specific module should be the name of the module itself, not just the directory that
|
||||
contains it, due to the fact that some directories and files contain multiple modules. In
|
||||
the case of a file containing both a package and a module, favour the module that
|
||||
implements the package, and not the package itself (`self.nixosModules` rather than
|
||||
`self'.packages`).
|
||||
|
||||
The description should follow standard conventions, as you would report on other
|
||||
platforms. Don't make it stupidly long, common sense required.
|
||||
|
||||
The body of the email should be reminiscent of a github issue, and contain the following
|
||||
items in roughly the presented order:
|
||||
|
||||
- Clear description of the issue (and why it's an issue in the first place, and not
|
||||
personal preference)
|
||||
- Step by step instructions on how to replicate the given issue
|
||||
- Step by step instructions detailing what you believe the behaviour should be
|
||||
- Any attempts to fix the issue, or references to suspected code that may be causing the
|
||||
issue
|
||||
|
||||
If you have attempted to fix the issue, or altered the code, please refer to the next
|
||||
section
|
||||
|
||||
## Patches / Contributions (Pull requests)
|
||||
|
||||
Patches are for altered code that you would like me to review and possibly add to the
|
||||
codebase. Most of the time, these should be for issues that you have encountered using the
|
||||
repo, not new features entirely. If a patch doesn't fit an issue, is mostly or fully AI
|
||||
generated, or otherwise doesnt fit the repo, it will be rejected.
|
||||
|
||||
The format here is similar, but with a few key differences. The type of request should
|
||||
obviously be patch, and the rest should be identical to the previous type, containing
|
||||
module type, name, and a short description of the issue.
|
||||
|
||||
The body should also follow similar beats, having a breakdown of the issue and detailing
|
||||
the intended behaviour. Beyond the detailing portion, there are some other specific things
|
||||
that are required for issues in particular.
|
||||
|
||||
- A description of whatever alterations have been made to the code
|
||||
- Some form of username so that, in the event of a merge, you can be credited properly
|
||||
- A disclosure of how much or little AI was used in the creation of the patch. For
|
||||
completeness, even if no AI is used, please include "No AI was used" anyway, it is not
|
||||
implied.
|
||||
|
||||
A git patch file should be attatched to the email, not a link to a github repo or
|
||||
something else. Any "patch" email with no attatchments will probably not be looked at any
|
||||
further than the issue section. For patches, please refer to the
|
||||
[Formatting Rules](#formatting-rules)
|
||||
|
||||
Both issues and patches are on a first come first serve basis. Because there is no public
|
||||
forum (I'm sure as hell not maintaining one), if someone submits an issue or patch, even
|
||||
if someone else independantly discovered the bug, the first person will most likely be
|
||||
credited for that issue.
|
||||
|
||||
If you have previously opened an issue, and wish to make a patch for the same issue, reply
|
||||
to the initial issue email, and prefix the subject with `PATCH:` instead of the usual
|
||||
`RE:` or whatever your email client chooses to prepend. The rest of the subject should
|
||||
remain the same. The email should then contain the patch-specific sections, found above.
|
||||
Don't bother re-iterating the issue.
|
||||
|
||||
## Feature Requests
|
||||
|
||||
Feature requests are for anything that doesn't already exist or doesnt otherwise fall into
|
||||
the previous categories. These are more freeform, and could come in the form of a useful
|
||||
app, a better way of managing something, or a better replacement for something that is
|
||||
already in the repo. Most importantly, this is NOT somewhere to shill an app you
|
||||
vibe-coded. Any AI generated apps will be rejected out of principle.
|
||||
|
||||
Headers should follow this structure, but, again, this is lenient:
|
||||
|
||||
```text
|
||||
(prefix) - (Feature type) - (App name): (description)
|
||||
```
|
||||
|
||||
The feature type, as before, should be one of the given folders in the repo. Generally,
|
||||
this will be a `feature` for a new app, but could be `system` for a new driver or
|
||||
`attribute` for a new collection of packages. If it is more general than any of those
|
||||
categories, or smaller in scope than an entire feature, use the feature type `other`, and
|
||||
detail what you are requesting (other should be used if you are just requesting a singular
|
||||
package be added to the system, for example).
|
||||
|
||||
Instead of following a fixed structure for the body, it is up to you to make a case for
|
||||
whatever you are suggesting. Whatever that entails is up to you. It could be use cases, it
|
||||
could be reasons it is better than whatever I am using. Be as verbose or as minimal as you
|
||||
wish, but keep in mind that the better your argument is, the more likely I am to accept
|
||||
your contribution. Again, if you wish, you can leave a username so that you can be
|
||||
correctly credited if I decide to include whatever you suggested.
|
||||
|
||||
If you are suggesting a new feature, app or otherwise, you may also choose to make a basic
|
||||
or full module implementing that feature, and then attach that to the email in the form of
|
||||
a patch. Refer to the [Formatting Rules](#formatting-rules) for further instruction on how
|
||||
to write your code.
|
||||
|
||||
Please also leave references for whatever it is you're suggesting, not just the name of
|
||||
the app. This could come in the form of documentation, a homepage, or the link for its
|
||||
github. In general, if an app has none of these things, or is closed source in any
|
||||
capacity, it will not be accepted.
|
||||
|
||||
## Formatting rules
|
||||
|
||||
Formatting in this repo should attempt to be standard to whatever I am using. For ease of
|
||||
use, either refer to or use my nvim config (`#nvim` output for this repo, refer to the
|
||||
README for how to run it). This prevents ugly git histories with commits specifically for
|
||||
formatting etc.
|
||||
|
||||
### General rules
|
||||
|
||||
When submitting a patch, there should be no merge conflicts with the current HEAD at the
|
||||
time of creation. It is a good rule of thumb to pull from remote before making a patch,
|
||||
incase behaviour changes.
|
||||
|
||||
If there are commits pushed between the time you send a patch and the time it is reviewed,
|
||||
any resulting merge conflicts are not your fault, and therefore will not be treated as
|
||||
such. Don't resubmit the same patch because there are new commits on remote, when patches
|
||||
are reviewed they are inserted at the point at which they were created, not on top of
|
||||
newer commits.
|
||||
|
||||
#### Branches
|
||||
|
||||
All patches should be mergable to the main branch, ie not have a patch for the `feature-x`
|
||||
branch or some nonsense. I do not have your git history, and therefore don't have whatever
|
||||
branch you created on my machine. In general, most changes should be restricted to one
|
||||
commit, so that crediting is easy.
|
||||
|
||||
If a change is more than one or two commits, make a new branch, make the changes that you
|
||||
want, then merge to the latest head before submitting a patch. When merging back to main,
|
||||
please use a merge commit instead of fast forwarding or clobbering the branch. This makes
|
||||
it easy to see who made what changes in the git history, and keeps blame easy to read.
|
||||
This merge commit will be where your credit goes. If you submit a patch that contains a
|
||||
load of commits on the main branch, the chances I accept the patch are very low.
|
||||
|
||||
### Code
|
||||
|
||||
There are many types of code in this repo, so if there is any confusion, either refer to
|
||||
the config that I am using in nvim, or send me an email asking me how to handle it.
|
||||
|
||||
#### Nix
|
||||
|
||||
For starters, all nix code should be formatted with
|
||||
[Alejandra](https://github.com/kamadorueda/alejandra). If you choose to format your code
|
||||
with nix-fmt or something else, chances are I won't refuse it, but I will overwrite your
|
||||
commits with a formatted version. To format the entire repo properly, run the following
|
||||
command:
|
||||
|
||||
```bash
|
||||
nix-shell -p alejandra --run "alejandra ."
|
||||
```
|
||||
|
||||
This will recursively check and format all `.nix` files in the repo, which is what I want.
|
||||
|
||||
As a secondary requirement, try to follow the already set out conventions that are on
|
||||
display in this repo, as well as the conventions of dendritic nix. A few examples:
|
||||
|
||||
- All top level objects should be merged into one unless there is a good reason for it
|
||||
- The first item in a module should be the module definition (`flake.nixosModules.xyz`)
|
||||
- All modules should be portable unless there is a good reason for it
|
||||
- Modules should reference eachother through `self.nixosModules` instead of relative
|
||||
paths, which should be avoided in most scenarios
|
||||
- In general, if a package is available in nixpkgs, an input need not be added. This rule
|
||||
differs case-by-case due to versioning differences.
|
||||
|
||||
#### Markdown
|
||||
|
||||
All markdown files should be formatted using prettier, with the settings provided in this
|
||||
repo. For reference, the rules are:
|
||||
|
||||
- 90 characters maximum, excluding code blocks
|
||||
- word wrapping
|
||||
- tab width of 2, as well as replacing spaces with tabs
|
||||
|
||||
#### Other languages
|
||||
|
||||
For one-off config languages (think `kitty.conf`), no formatting is needed. Whitespace can
|
||||
be added at the programmer's disgression.
|
||||
|
||||
For standard structured languages, such as json, yaml or toml, if there is an available
|
||||
prettier formatter, then it should be used. In general, tabwidth should be 2 and spaces
|
||||
should be used across the board. Don't use some esoteric formatter just to be special.
|
||||
|
||||
For actual programming languages, like qml or lua, either use the provided formatter, such
|
||||
as `qmlformat`, with the settings configured, or refer to my nvim config (in this case I
|
||||
use `stylua` with the default settings)
|
||||
163
README.md
@@ -1,163 +0,0 @@
|
||||
# The Void
|
||||
|
||||
_An opinionated dendritic nix configuration_
|
||||
|
||||
## Screenshots
|
||||
|
||||

|
||||
|
||||

|
||||
|
||||
## Get Started
|
||||
|
||||
No cloning required
|
||||
|
||||
```bash
|
||||
# Run any app (replace appname with the one you want)
|
||||
nix run "git+https://git.voidarc.co.uk/voidarc/nixos.git#appname"
|
||||
|
||||
# Build configuration (HACKSTATION or mobile02)
|
||||
sudo nixos-rebuild switch --impure --flake "git+https://git.voidarc.co.uk/voidarc/nixos.git#mobile02"
|
||||
```
|
||||
|
||||
[More Information on Configs](#nixos-configurations)
|
||||
|
||||
[More Information on Binaries](#binaries)
|
||||
|
||||
## The Concept
|
||||
|
||||
I have been trying to get consistent, across device experiences from the second that I
|
||||
started using linux. I tried my best with arch, but I foolishly believed that just
|
||||
remembering what packages I installed would be enough. Then I started managing my dotfiles
|
||||
with GNU stow, but that only allowed for a single host per repo. I moved over to doot, and
|
||||
simultaneously nixos.
|
||||
|
||||
I believed a dotfiles manager was my endgame. The final evolution, but it was far from
|
||||
ideal. I had to manage a mess of dotfiles, submodules and nix packages that were
|
||||
completely uncoupled from the apps that used them. Hyprland just assumed that I had all of
|
||||
my apps installed, assumed that otter-launcher's config existed. Just by forgetting an app
|
||||
or a toml file, I had the potential to brick my entire setup.
|
||||
|
||||
This is no longer the case.
|
||||
|
||||
The solution is similar to that of safely typed languages, like rust. Rust, instead of
|
||||
having optional parameters like typescript, requires that a variable be passed to a
|
||||
function, regardless of whether it contains anything. This leads to what is essentially a
|
||||
fixed dependancy tree, where there are no points of failiure, only allowing for logic
|
||||
errors and such. The same methodology can be applied to nix, using flake parts and wrapper
|
||||
scripts.
|
||||
|
||||
Instead of defining the packages beside the app, and its config, you can use the config to
|
||||
define the required binaries. By wrapping a config that contains a nix variable, ie a
|
||||
binary, that binary is intrinsically linked to that config, and will therefore always be
|
||||
installed. No more dependancy issues, and because the configs are defined within nix too,
|
||||
no more potential for missing config files. Dotfile managers are no more, long live
|
||||
dotfile managers. Any app with a `--config` flag can now be fully versioned and self
|
||||
contained within one repo, config and all, accessible on any machine with nix.
|
||||
|
||||
One command for a truly reproducible, fully contained, configured system. This is the
|
||||
endgame.
|
||||
|
||||
### Mandatory thing on AI
|
||||
|
||||
I am not completely against AI. However, asking an agent to write a load of code and then
|
||||
posting it to reddit as if you made it yourself is disingenuous and (in my opinion) at
|
||||
least slightly morally incorrect. Many a time I have seen a cool project on a subreddit
|
||||
just for it to turn out to be ai generated garbage that I refuse to use out of principle.
|
||||
|
||||
I would go out on a limb and say that 99% of this codebase was written with no AI
|
||||
assistance. Every config, every module, every obscure fix for a bug that only exists
|
||||
because I'm using a dendritic pattern instead of being normal was programmed by hand by a
|
||||
real human (yours truly). I'm not saying I had no assistance at all, there are sections
|
||||
that are verbatim copied from the wiki of whatever app or language that I was using, but
|
||||
by and large, no AI code has made it into this repo.
|
||||
|
||||
There may be commits somewhere saying that opencode refactored something, or that it
|
||||
solved some obscure bug I was having, but after having those changes implemented for me, I
|
||||
took it upon myself to understand what actually happened, in order to make maintaining
|
||||
this config as easy as possible in the future.
|
||||
|
||||
This repo is not temporary. I daily drive this, and I intend to for many years to come.
|
||||
Going forward, I will keep to the same standard of only using AI as a last resort, and
|
||||
when needs must, only implementing and commiting changes that I fully understand and
|
||||
could've eventually come to myself. Sometimes, at the end of a long coding session, a man
|
||||
gets lazy. I could spend another 45 minutes fixing some quickshell update order bug, or I
|
||||
could get deepseek to do it. In the end, it was a 5 line fix that, in hindsight, was
|
||||
pretty obvious (lol).
|
||||
|
||||
## Usage
|
||||
|
||||
Usage is similar to any other flake, with everything in the module directory being an
|
||||
output.
|
||||
|
||||
The folder structure is simply defined:
|
||||
|
||||
```
|
||||
modules/
|
||||
|- features/ - all available apps, every subfolder contains a seperate wrapped binary
|
||||
|- attrs/ - attributes composed of other modules, no new features defined
|
||||
|- system/ - basic system modules, no binaries. Should not be run standalone. (Think network and audio config)
|
||||
|- hosts/ - available presets for machines. Output names match subfolder names, eg #HACKSTATION, and hostnames
|
||||
```
|
||||
|
||||
### Nixos Configurations
|
||||
|
||||
Due to the host module referencing `/etc/nixos/hardware-configuration.nix`, so that it is
|
||||
seperated from the repo, all rebuild commands will need `--impure`, unless you copy your
|
||||
configuration into the repo.
|
||||
|
||||
HACKSTATION contains all features available (near enough), with mobile02 being a lighter
|
||||
version of the system, looking the same visually, but with less bloat, only really having
|
||||
firefox and a terminal.
|
||||
|
||||
It is recommended to clone the repo beforehand, but the system can be built directly from
|
||||
remote. When cloning the repo, in order to properly evaluate the `vinix` and `nrs` shell
|
||||
aliases, the config should be built from the directory you cloned it to, not from another
|
||||
directory. When building from remote, or in any other scenario in which the `$PWD`
|
||||
environment variable is not available, the zsh module will throw and evaluation warning,
|
||||
but the build will not be hindered.
|
||||
|
||||
```bash
|
||||
# The following commands will only work if your hostname is already
|
||||
# HACKSTATION or mobile02, if it is not, see next code block
|
||||
|
||||
# Local Clone, . is the directory containing flake.nix
|
||||
sudo nixos-rebuild switch --impure --flake .
|
||||
|
||||
# Build from remote
|
||||
sudo nixos-rebuild switch --impure --flake "git+https://git.voidarc.co.uk/voidarc/nixos.git"
|
||||
```
|
||||
|
||||
Both of these commands can be appended with a desired hostname in order to build that
|
||||
configuration.
|
||||
|
||||
```bash
|
||||
# Example of building mobile02 from a local repo
|
||||
sudo nixos-rebuild switch --impure --flake .#mobile02
|
||||
```
|
||||
|
||||
There is no default output, so if the current hostname doesn't match a host, you will get
|
||||
an error. Building this config should be non destructive to any existing dotfiles, but
|
||||
will remove all users (not home directories) from the system other than `user01`, who's
|
||||
default password is `qwer`. No, that isn't my usual password.
|
||||
|
||||
### Binaries
|
||||
|
||||
Any binary can be run with the same base command:
|
||||
|
||||
```bash
|
||||
nix run "git+https://git.voidarc.co.uk/voidarc/nixos.git#appname"
|
||||
```
|
||||
|
||||
`appname` can be substituted for the name of any folder in the `modules/features` dir, ie
|
||||
`kitty` or `otter-launcher`. Most if not all modules in a subdirectory will have a module
|
||||
name corresponding to that directory. This only applies for `default.nix` files, so files
|
||||
that have different names are not expected to follow this convention, even if there is not
|
||||
a `default.nix` in that directory.
|
||||
|
||||
## Issues and contributing
|
||||
|
||||
Because this is a private git server, there is no inline way to submit issues,
|
||||
contributions, or feature ideas. If you should wish, you may send such requests to
|
||||
<admin@voidarc.co.uk>, with the format found in [CONTRIBUTING.md]( CONTRIBUTING.md ). Failure to follow the
|
||||
format found there will most likely result in your email being ignored.
|
||||
|
Before Width: | Height: | Size: 1.3 MiB |
|
Before Width: | Height: | Size: 1.7 MiB |
524
flake.lock
generated
@@ -24,11 +24,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1789630322,
|
||||
"narHash": "sha256-jiUl3+k9K+BASO4hvKFhlCMUpHPPoy2q5uZMl3pzOF0=",
|
||||
"lastModified": 1782073106,
|
||||
"narHash": "sha256-dnS5SaZlPqR1E0dPXaPc+lFkBwLUbAgbwsVMk7uA6dY=",
|
||||
"owner": "hyprwm",
|
||||
"repo": "aquamarine",
|
||||
"rev": "f31c47a1b9d300847d8fc3108ad959448103dfc1",
|
||||
"rev": "6d6e2384f381def4ea4ea81543cba4bbdac72457",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -37,24 +37,6 @@
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"beaker-src": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1780436704,
|
||||
"narHash": "sha256-3aMH1YblnpiXKdkQVMRLmMZ5/8G7vB4HAfLg7+izyHg=",
|
||||
"ref": "refs/heads/master",
|
||||
"rev": "360d6271e1a20d128430e52637d5d35f4c706ca5",
|
||||
"revCount": 34,
|
||||
"shallow": false,
|
||||
"type": "git",
|
||||
"url": "https://git.bwaaa.monster/beaker"
|
||||
},
|
||||
"original": {
|
||||
"shallow": false,
|
||||
"type": "git",
|
||||
"url": "https://git.bwaaa.monster/beaker"
|
||||
}
|
||||
},
|
||||
"crane": {
|
||||
"locked": {
|
||||
"lastModified": 1781825982,
|
||||
@@ -70,40 +52,6 @@
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"crane_2": {
|
||||
"locked": {
|
||||
"lastModified": 1781825982,
|
||||
"narHash": "sha256-SlXKwIRIhrOSAcTjCB3ftPLzJWZStQIPS7J1FlZPnKk=",
|
||||
"owner": "ipetkov",
|
||||
"repo": "crane",
|
||||
"rev": "469fd08d0bcf6926321fa973c6777fbc87785dd7",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "ipetkov",
|
||||
"repo": "crane",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"davinci": {
|
||||
"inputs": {
|
||||
"nixpkgs": "nixpkgs",
|
||||
"nixpkgs-pinned": "nixpkgs-pinned"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1790349619,
|
||||
"narHash": "sha256-cU4QbXhq5LKLUdrlDEVLIm/onZma++w0esx64Hrsi3U=",
|
||||
"ref": "refs/heads/main",
|
||||
"rev": "4a5b823e81a15c36834c7c2a9f0e18b6added29e",
|
||||
"revCount": 7,
|
||||
"type": "git",
|
||||
"url": "https://git.voidarc.co.uk/voidarc/nixos.davinci"
|
||||
},
|
||||
"original": {
|
||||
"type": "git",
|
||||
"url": "https://git.voidarc.co.uk/voidarc/nixos.davinci"
|
||||
}
|
||||
},
|
||||
"flake-compat": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
@@ -125,11 +73,11 @@
|
||||
"nixpkgs-lib": "nixpkgs-lib"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1788450739,
|
||||
"narHash": "sha256-glZLQlzIn1fXH6PazR2iUmTo7kzzyYSshrWhLS9TqCU=",
|
||||
"lastModified": 1782949081,
|
||||
"narHash": "sha256-vp6Y/Grm98ESt6ceOkWiHWyZRDV3J1RID4w+6NWK9yA=",
|
||||
"owner": "hercules-ci",
|
||||
"repo": "flake-parts",
|
||||
"rev": "31729ca8cbdb4fa927b34e5f4353e6a83f39e993",
|
||||
"rev": "17c9d6cdfc60c64f4ee8d306f9bc0b4ccb51481e",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -192,21 +140,26 @@
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"flake-utils_2": {
|
||||
"gitignore": {
|
||||
"inputs": {
|
||||
"systems": "systems_8"
|
||||
"nixpkgs": [
|
||||
"hyprland",
|
||||
"hyprland",
|
||||
"pre-commit-hooks",
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1731533236,
|
||||
"narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=",
|
||||
"owner": "numtide",
|
||||
"repo": "flake-utils",
|
||||
"rev": "11707dc2f618dd54ca8739b309ec4fc024de578b",
|
||||
"lastModified": 1709087332,
|
||||
"narHash": "sha256-HG2cCnktfHsKV0s4XW83gU3F57gaTljL9KNSuG6bnQs=",
|
||||
"owner": "hercules-ci",
|
||||
"repo": "gitignore.nix",
|
||||
"rev": "637db329424fd7e46cf4185293b9cc8c88c95394",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "numtide",
|
||||
"repo": "flake-utils",
|
||||
"owner": "hercules-ci",
|
||||
"repo": "gitignore.nix",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
@@ -218,11 +171,11 @@
|
||||
"utils": "utils"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1790439891,
|
||||
"narHash": "sha256-muUR0v2/4NqyvRjIcya890SwlX3qVukepZV7CnmtgFs=",
|
||||
"lastModified": 1783347374,
|
||||
"narHash": "sha256-kdizmVOka0IACJaTeEgftxCeGxdwuT0ba1/9QPGDWgw=",
|
||||
"owner": "voidarclabs",
|
||||
"repo": "gotify-desktop",
|
||||
"rev": "f8fd3ca612611ae648bf7355399a3c8374488c25",
|
||||
"rev": "b4f62aab117238ce72c19809d19fcfee2b67f5d2",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -293,11 +246,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1786464181,
|
||||
"narHash": "sha256-2alOMkLjXANh7unkZnYnCF2K2rApZaOLMoQ3o+VX2CY=",
|
||||
"lastModified": 1776511930,
|
||||
"narHash": "sha256-fCpwFiTW0rT7oKJqr3cqHMnkwypSwQKpbtUEtxdkgrM=",
|
||||
"owner": "hyprwm",
|
||||
"repo": "hyprcursor",
|
||||
"rev": "e4ed7c08123df5af460a0a70961380cbfb872f76",
|
||||
"rev": "39435900785d0c560c6ae8777d29f28617d031ef",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -325,11 +278,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1786464367,
|
||||
"narHash": "sha256-k58p4wbzIXWyRWrW84pP8tD+iaZSSYiiM+fr0Auk4oU=",
|
||||
"lastModified": 1782566056,
|
||||
"narHash": "sha256-haEZcHzYrePnjFOYSWTbxm/Nrla0aPslJfmvdCvqtVc=",
|
||||
"owner": "hyprwm",
|
||||
"repo": "hyprgraphics",
|
||||
"rev": "7c895c44e3ca6d28ed68ddd80ec02b02b925e7fc",
|
||||
"rev": "c6e7b9f673f4360bc813d3dc75028f75ee88d3f8",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -338,32 +291,6 @@
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"hyprgrass": {
|
||||
"inputs": {
|
||||
"hyprland": [
|
||||
"hyprland",
|
||||
"hyprland"
|
||||
],
|
||||
"nixpkgs": [
|
||||
"hyprgrass",
|
||||
"hyprland",
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1789324148,
|
||||
"narHash": "sha256-hUJXbEdceQ+cn8RIrD7KDUdc4clFiXDL/z9hHHtGAJM=",
|
||||
"owner": "horriblename",
|
||||
"repo": "hyprgrass",
|
||||
"rev": "f524680fad86d63018dec3c35be61fe55bde2dcd",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "horriblename",
|
||||
"repo": "hyprgrass",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"hyprland": {
|
||||
"inputs": {
|
||||
"hyprland": "hyprland_2",
|
||||
@@ -376,11 +303,11 @@
|
||||
"wshowkeys": "wshowkeys"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1790264545,
|
||||
"narHash": "sha256-ombw2VPUqYkLlAvX9FrTS07WL21IsjB4n+CsHwUjH00=",
|
||||
"lastModified": 1783179784,
|
||||
"narHash": "sha256-9qyKPHXc2fK6oZxCXLV9q0WdyNYdgCpfiAouRf+ELrc=",
|
||||
"ref": "refs/heads/main",
|
||||
"rev": "22a5e42c7c8c5437253f9cbd3df5b449fb6d7c8e",
|
||||
"revCount": 86,
|
||||
"rev": "bdd6ec3efa05c1130002808d4c2c4552bb20587a",
|
||||
"revCount": 37,
|
||||
"type": "git",
|
||||
"url": "https://git.voidarc.co.uk/voidarc/hypr"
|
||||
},
|
||||
@@ -429,11 +356,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1786464504,
|
||||
"narHash": "sha256-7sHwM86KILQyHDHDuE2SDBlQ2jvZ0EW3hY7sW009/cg=",
|
||||
"lastModified": 1782563850,
|
||||
"narHash": "sha256-rs/EzgrgPHbCtJjFZN4aR1HYldH/0NtGAempWVpWQTs=",
|
||||
"owner": "hyprwm",
|
||||
"repo": "hyprland-guiutils",
|
||||
"rev": "4c30cf3097ea963c0e250749ee0c59f8b08816d6",
|
||||
"rev": "5ba080ee036c30cb2485f2647ff8a61f7aa08178",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -456,11 +383,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1789475883,
|
||||
"narHash": "sha256-YRFLrPESYitsDYqQKquOFg8OWNI7tHKwPnTrTZWXxWY=",
|
||||
"lastModified": 1772460177,
|
||||
"narHash": "sha256-/6G/MsPvtn7bc4Y32pserBT/Z4SUUdBd4XYJpOEKVR4=",
|
||||
"owner": "hyprwm",
|
||||
"repo": "hyprland-protocols",
|
||||
"rev": "cc9a8fd253bdc00f48a967ecf4828211ef08751f",
|
||||
"rev": "1cb6db5fd6bb8aee419f4457402fa18293ace917",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -480,17 +407,17 @@
|
||||
"hyprutils": "hyprutils",
|
||||
"hyprwayland-scanner": "hyprwayland-scanner",
|
||||
"hyprwire": "hyprwire",
|
||||
"nixpkgs": "nixpkgs_2",
|
||||
"nixpkgs": "nixpkgs",
|
||||
"pre-commit-hooks": "pre-commit-hooks",
|
||||
"systems": "systems_2",
|
||||
"xdph": "xdph"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1789814244,
|
||||
"narHash": "sha256-X8GK0kUU8WAPD4072wafvbcRRtYWiFCSA5Iyz9mr6KU=",
|
||||
"lastModified": 1783110106,
|
||||
"narHash": "sha256-PRnnFkTfQ+sQHSrcWw0512zEMNp5/1WHJeVuDf6FmxI=",
|
||||
"owner": "hyprwm",
|
||||
"repo": "Hyprland",
|
||||
"rev": "5fbb2a7acce2d6f155d18cf5b590fc553a8e7abc",
|
||||
"rev": "14fa1fd0273973b7a40966b4fa9e081d6bf67dae",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -518,11 +445,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1786464129,
|
||||
"narHash": "sha256-339AkTlpMYSIvFuG0rnR+8Yg4/AZKeJalshJavlnKfg=",
|
||||
"lastModified": 1777320127,
|
||||
"narHash": "sha256-Qu+Wf2Bp5qUjyn2YpZNq8a7JyzTGowhT1knrwE38a9U=",
|
||||
"owner": "hyprwm",
|
||||
"repo": "hyprlang",
|
||||
"rev": "9508458be316a0d70d37ebed1ab725ccd10411ff",
|
||||
"rev": "090117506ddc3d7f26e650ff344d378c2ec329cc",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -577,11 +504,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1785930473,
|
||||
"narHash": "sha256-DitTu625BhEYpZjtjxtGpjrEJwPwW+X/+jJvhSZNSJM=",
|
||||
"lastModified": 1782554491,
|
||||
"narHash": "sha256-+p3MlyN/nqRefcf2IckPlGRUn9+hielqpS9XClbLleM=",
|
||||
"owner": "hyprwm",
|
||||
"repo": "hyprtoolkit",
|
||||
"rev": "af515b69dfbe366dc7873aa1475cb2f4db3ebad7",
|
||||
"rev": "bdba25ced39ea39ab004a8f31593ba0b0ff1ca35",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -604,11 +531,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1788619883,
|
||||
"narHash": "sha256-dpmeFq5vPvSOsi30ZchOLjltAZEuVBucDvGKs3IZYf4=",
|
||||
"lastModified": 1783002634,
|
||||
"narHash": "sha256-xGqHIUK0wIZoW7SiMalwvO6uGOO/VrlQwoRobpE7dDI=",
|
||||
"owner": "hyprwm",
|
||||
"repo": "hyprutils",
|
||||
"rev": "a21e87b878e72ee5dfd375899e8b2ad0d0c4c0e1",
|
||||
"rev": "41fb809557abd29a57151b6e1aaeabd05f9437e1",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -631,11 +558,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1786464033,
|
||||
"narHash": "sha256-QM8Qe4/L8lpdVN4bgwahmi+jyyc4fisseDMe4afcDxA=",
|
||||
"lastModified": 1777159683,
|
||||
"narHash": "sha256-Jxixw6wZphUp+nHYxOKUYSckL17QMBx2d5Zp0rJHr1g=",
|
||||
"owner": "hyprwm",
|
||||
"repo": "hyprwayland-scanner",
|
||||
"rev": "62e62c1ca23da17612c6890d4ad2064f575643db",
|
||||
"rev": "b8632713a6beaf28b56f2a7b0ab2fb7088dbb404",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -663,11 +590,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1786464294,
|
||||
"narHash": "sha256-ZQsZ2WvBdkboCIyh8LStDPdAIARmxzn0XMNxxoOhjPE=",
|
||||
"lastModified": 1778410714,
|
||||
"narHash": "sha256-o6RzFj4nJXaPRY7EM01siuCQeT41RfwwmcmFQqwFJJg=",
|
||||
"owner": "hyprwm",
|
||||
"repo": "hyprwire",
|
||||
"rev": "4ce7cd6b6128c1ac41caf23c58a30a26b327f9dd",
|
||||
"rev": "85148a8e612808cf5ddb25d0b3c5840f3498a7dc",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -678,11 +605,11 @@
|
||||
},
|
||||
"import-tree": {
|
||||
"locked": {
|
||||
"lastModified": 1788467110,
|
||||
"narHash": "sha256-ljEMTXP/rH0tOvDzc9gzwww6KcHRPRnEHzd9lK48V7s=",
|
||||
"lastModified": 1778781969,
|
||||
"narHash": "sha256-Jjuz5CmSkur8KvLDoGa+vylEp+RkQtv4mt/qcMznpH0=",
|
||||
"owner": "vic",
|
||||
"repo": "import-tree",
|
||||
"rev": "eb1b52eaecc57f7c136d07ae8a93e724dfecac46",
|
||||
"rev": "d321337efd0f23a9eb14a42adb7b2c29313ab274",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -693,27 +620,27 @@
|
||||
},
|
||||
"nixpkgs": {
|
||||
"locked": {
|
||||
"lastModified": 1790113641,
|
||||
"narHash": "sha256-D2aaQetafdpHxbwA4ldAxs51UX0b11pXL+JL/5L8VrM=",
|
||||
"lastModified": 1782467914,
|
||||
"narHash": "sha256-pGvFkM8N0xEkIIXDe5YYfbEAvHrk4IxBrjB/x8OomhE=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "1bc55b9def8165e82073919945c3239903fe4dc2",
|
||||
"rev": "e73de5be04e0eff4190a1432b946d469c794e7b4",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "NixOS",
|
||||
"ref": "nixos-26.05",
|
||||
"ref": "nixos-unstable",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs-lib": {
|
||||
"locked": {
|
||||
"lastModified": 1788057806,
|
||||
"narHash": "sha256-DTQSMxzDWmT0zhguthvegnVkn7CFqGCv4IHCzk5ZUpM=",
|
||||
"lastModified": 1782614948,
|
||||
"narHash": "sha256-ePjCwr1sNm9NYUqywL7QfK3JnlS015msC+eBu2zKlp8=",
|
||||
"owner": "nix-community",
|
||||
"repo": "nixpkgs.lib",
|
||||
"rev": "596e2e3940e09b2abbeb03f75fa1828c57fcd72c",
|
||||
"rev": "db3f255737b94216eb71cce308e2912cf6bc2d7c",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -752,71 +679,7 @@
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs-pinned": {
|
||||
"locked": {
|
||||
"lastModified": 1772567409,
|
||||
"narHash": "sha256-qspxGige37s/66q9sptyG5VA/l2IOmMMZVJ4Xhta2wU=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "e4ec59bc1152b09a4843702e4a49381194f065a2",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "e4ec59bc1152b09a4843702e4a49381194f065a2",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs-unstable": {
|
||||
"locked": {
|
||||
"lastModified": 1789546076,
|
||||
"narHash": "sha256-zVxLZiSnmaaPLwnhj7pwmqe3axBg/C6nG5JZsJMh2g4=",
|
||||
"owner": "nixos",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "b1b875982b17dabde9b4a37f3e229e74913e6db3",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nixos",
|
||||
"ref": "nixos-unstable",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs_10": {
|
||||
"locked": {
|
||||
"lastModified": 1781577229,
|
||||
"narHash": "sha256-lrp67w8AulE9Ks53n27I45ADSzbOCn4H+CNW1Ck8B+8=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "567a49d1913ce81ac6e9582e3553dd90a955875f",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "NixOS",
|
||||
"ref": "nixos-unstable",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs_2": {
|
||||
"locked": {
|
||||
"lastModified": 1789684949,
|
||||
"narHash": "sha256-ZKhUe/2IJUq1JhKxKMu8rbkgSGmPP2ZCqlIPn40aGCM=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "e554fab72f81915600f3f449b786fd9af40439a5",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "NixOS",
|
||||
"ref": "nixos-unstable",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs_3": {
|
||||
"locked": {
|
||||
"lastModified": 1782175435,
|
||||
"narHash": "sha256-EMzXKmnOtBQ2MnvpiNOm7E+kOMvdPrIKaeg52Tip2Uk=",
|
||||
@@ -832,13 +695,13 @@
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs_4": {
|
||||
"nixpkgs_3": {
|
||||
"locked": {
|
||||
"lastModified": 1787498568,
|
||||
"narHash": "sha256-9i/VTdusq/+NM/tz+J1Re+ojkMB8MBf0QshnYfzHz30=",
|
||||
"lastModified": 1773734432,
|
||||
"narHash": "sha256-IF5ppUWh6gHGHYDbtVUyhwy/i7D261P7fWD1bPefOsw=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "56c02bc00adcf003215cc4bd996d6efaf4cff188",
|
||||
"rev": "cda48547b432e8d3b18b4180ba07473762ec8558",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -848,13 +711,13 @@
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs_5": {
|
||||
"nixpkgs_4": {
|
||||
"locked": {
|
||||
"lastModified": 1789542786,
|
||||
"narHash": "sha256-ajQuqcxnj6RYnwCjA/9FTCnrdR2+BDzstE8UembXf60=",
|
||||
"lastModified": 1783148766,
|
||||
"narHash": "sha256-uslt2pqShTIXDdAHRHv2QkYLsVdY8Oqwz0EA48/RSM8=",
|
||||
"owner": "nixos",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "4c7870105e7f1fdf9c48688c8d7efc21abf0688a",
|
||||
"rev": "a50de1b7d8a586adc18d2395c19de7d6058e6030",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -864,13 +727,13 @@
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs_6": {
|
||||
"nixpkgs_5": {
|
||||
"locked": {
|
||||
"lastModified": 1787070829,
|
||||
"narHash": "sha256-vXNVDVtvfiQuXthP0NHPFdNvvMTkGpx0UP8oddIWbNk=",
|
||||
"lastModified": 1782467914,
|
||||
"narHash": "sha256-pGvFkM8N0xEkIIXDe5YYfbEAvHrk4IxBrjB/x8OomhE=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "0ae2bc1419c3f345984c2629e72e7a631820fa4d",
|
||||
"rev": "e73de5be04e0eff4190a1432b946d469c794e7b4",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -880,13 +743,13 @@
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs_7": {
|
||||
"nixpkgs_6": {
|
||||
"locked": {
|
||||
"lastModified": 1786719841,
|
||||
"narHash": "sha256-QcpQOT0NQEFkI77t+YXPZqDJc35iIodG7zinieOwFUg=",
|
||||
"lastModified": 1780336545,
|
||||
"narHash": "sha256-vhVhuXzFrIOfcssC/9hDHx7MHzDKjF3keHuREOQqQiQ=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "8be7bd0c83f12e2e3bbba07c9044d6fed9e66f7f",
|
||||
"rev": "4df1b885d76a54e1aa1a318f8d16fd6005b6401f",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -896,7 +759,7 @@
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs_8": {
|
||||
"nixpkgs_7": {
|
||||
"locked": {
|
||||
"lastModified": 1783224372,
|
||||
"narHash": "sha256-8i/87eeoqiGE4yOTjwSA3Eh/ziJRQEmd/unYU+K27sk=",
|
||||
@@ -912,13 +775,13 @@
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs_9": {
|
||||
"nixpkgs_8": {
|
||||
"locked": {
|
||||
"lastModified": 1788431191,
|
||||
"narHash": "sha256-MFClkboDeW56feBCAeAV3Z3J2quGSZFlAOXQ4JjIlIA=",
|
||||
"lastModified": 1780336545,
|
||||
"narHash": "sha256-vhVhuXzFrIOfcssC/9hDHx7MHzDKjF3keHuREOQqQiQ=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "9b9402b959a2276982ddd5ad3652a38b97f7c40b",
|
||||
"rev": "4df1b885d76a54e1aa1a318f8d16fd6005b6401f",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -930,15 +793,15 @@
|
||||
},
|
||||
"nvim": {
|
||||
"inputs": {
|
||||
"nixpkgs": "nixpkgs_6",
|
||||
"nixpkgs": "nixpkgs_5",
|
||||
"wrappers": "wrappers_2"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1787153199,
|
||||
"narHash": "sha256-FpLklQh5O31LY0GejnphNaGI/GZpuRltF9eZbAKlWkk=",
|
||||
"lastModified": 1783352922,
|
||||
"narHash": "sha256-59Kea6PaeTM6ZBEAWzdPnuLlij2emLd21JsPnobR3B0=",
|
||||
"ref": "refs/heads/main",
|
||||
"rev": "759a8455709d9c098a0201fb581801d41b270b29",
|
||||
"revCount": 105,
|
||||
"rev": "970da906087f0691932418db8757803d64f60c28",
|
||||
"revCount": 94,
|
||||
"type": "git",
|
||||
"url": "https://git.voidarc.co.uk/voidarc/nvim"
|
||||
},
|
||||
@@ -947,27 +810,6 @@
|
||||
"url": "https://git.voidarc.co.uk/voidarc/nvim"
|
||||
}
|
||||
},
|
||||
"omnisearch": {
|
||||
"inputs": {
|
||||
"beaker-src": "beaker-src",
|
||||
"nixpkgs": [
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1780508528,
|
||||
"narHash": "sha256-0OkItQH4D8KcS+mIxgrzGHTHMl7Eb6ZHzTN3UmZbtWI=",
|
||||
"ref": "refs/heads/master",
|
||||
"rev": "e48c6366d07e0357afa379dff7b73328589164e5",
|
||||
"revCount": 131,
|
||||
"type": "git",
|
||||
"url": "https://git.voidarc.co.uk/voidarc/omnisearch"
|
||||
},
|
||||
"original": {
|
||||
"type": "git",
|
||||
"url": "https://git.voidarc.co.uk/voidarc/omnisearch"
|
||||
}
|
||||
},
|
||||
"otter-launcher": {
|
||||
"inputs": {
|
||||
"flake-parts": "flake-parts_2",
|
||||
@@ -979,11 +821,11 @@
|
||||
"systems": "systems_3"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1789817313,
|
||||
"narHash": "sha256-ylVsprB4GxLJMvYQUFtMOz8x8D1Mp7FPudbn89wCasU=",
|
||||
"lastModified": 1783145565,
|
||||
"narHash": "sha256-czL1P2nQV3JrbV6J2b3jXnWcz+Kbz+xhaXKk3+wdnF0=",
|
||||
"owner": "kuokuo123",
|
||||
"repo": "otter-launcher",
|
||||
"rev": "d764523df810d2b601222009393e886495100fb8",
|
||||
"rev": "2e35ce8c7ba6f5e4d98bf4c9073f5fa91143744d",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -1002,11 +844,11 @@
|
||||
"systems": "systems_6"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1789296134,
|
||||
"narHash": "sha256-PDe/T14bM7mXQM3gwwdgMHKW8Nsfpbqto9FxsL85Jdc=",
|
||||
"lastModified": 1783339207,
|
||||
"narHash": "sha256-ZO2WzXNEM9XKuReixgQuP1G+5nrihYWajugBCIjjPkE=",
|
||||
"owner": "kuokuo123",
|
||||
"repo": "otter-launcher",
|
||||
"rev": "9d82c9770f0cad7006e3930a48343a59105c55e6",
|
||||
"rev": "d101421377473a190701d53cbe28b8244edad728",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -1018,6 +860,7 @@
|
||||
"pre-commit-hooks": {
|
||||
"inputs": {
|
||||
"flake-compat": "flake-compat",
|
||||
"gitignore": "gitignore",
|
||||
"nixpkgs": [
|
||||
"hyprland",
|
||||
"hyprland",
|
||||
@@ -1025,11 +868,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1789514889,
|
||||
"narHash": "sha256-PFD1nxptCXJyJoiYO1gf/5Vv43yqGpHtMC6LUhl9/pQ=",
|
||||
"lastModified": 1781733627,
|
||||
"narHash": "sha256-U3yTuGBnmXvXoQI3qkpfEDsn9RovQPAjN7ndRco+3u0=",
|
||||
"owner": "cachix",
|
||||
"repo": "git-hooks.nix",
|
||||
"rev": "59f4ca0d063a1a3ec722c88b51a33004862e5379",
|
||||
"rev": "3bbec39bc90eadfa031e6f3b77272f3f60803e39",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -1038,53 +881,29 @@
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"quickshell": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1790440634,
|
||||
"narHash": "sha256-5kU5Ryam1gIyt7mfDqtHYk+bUYmuDh00HpeUGzZqz0k=",
|
||||
"ref": "refs/heads/main",
|
||||
"rev": "297f3fe688c8039262796e8b56c975d9398c2a12",
|
||||
"revCount": 93,
|
||||
"type": "git",
|
||||
"url": "https://git.voidarc.co.uk/voidarc/quickshell"
|
||||
},
|
||||
"original": {
|
||||
"type": "git",
|
||||
"url": "https://git.voidarc.co.uk/voidarc/quickshell"
|
||||
}
|
||||
},
|
||||
"root": {
|
||||
"inputs": {
|
||||
"davinci": "davinci",
|
||||
"flake-parts": "flake-parts",
|
||||
"gotify-desktop": "gotify-desktop",
|
||||
"hyprgrass": "hyprgrass",
|
||||
"hyprland": "hyprland",
|
||||
"import-tree": "import-tree",
|
||||
"nixpkgs": "nixpkgs_5",
|
||||
"nixpkgs-unstable": "nixpkgs-unstable",
|
||||
"nixpkgs": "nixpkgs_4",
|
||||
"nvim": "nvim",
|
||||
"omnisearch": "omnisearch",
|
||||
"otter-launcher": "otter-launcher_2",
|
||||
"quickshell": "quickshell",
|
||||
"sls-steam": "sls-steam",
|
||||
"sops-nix": "sops-nix",
|
||||
"woomer": "woomer_2",
|
||||
"wrappers": "wrappers_3",
|
||||
"wshowkeys": "wshowkeys_2"
|
||||
"wrappers": "wrappers_3"
|
||||
}
|
||||
},
|
||||
"sls-steam": {
|
||||
"inputs": {
|
||||
"nixpkgs": "nixpkgs_8"
|
||||
"nixpkgs": "nixpkgs_7"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1788435466,
|
||||
"narHash": "sha256-A6izbjMpkQpQxQDFHx5SXw5/1gwTTzO0Vz+1sjPTGdw=",
|
||||
"lastModified": 1783322884,
|
||||
"narHash": "sha256-BmYEQewp9fCTP6KFGnYh2dh6EjMj62FfJQTrksSSN3c=",
|
||||
"owner": "AceSLS",
|
||||
"repo": "SLSsteam",
|
||||
"rev": "71021ad32e47ad4382717f63c53d2d06d44be3bd",
|
||||
"rev": "8ef40a2bdc662331f215775e525e1b010a2ffba3",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -1093,26 +912,6 @@
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"sops-nix": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1790247521,
|
||||
"narHash": "sha256-TNfgoHsqsYYvaJImlWctfRkh4PseTagzegU1Dgdbehw=",
|
||||
"owner": "Mic92",
|
||||
"repo": "sops-nix",
|
||||
"rev": "2bd00bd9bb35fe6d114888c8f1c2e946c541dd8f",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "Mic92",
|
||||
"repo": "sops-nix",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"systems": {
|
||||
"locked": {
|
||||
"lastModified": 1681028828,
|
||||
@@ -1203,36 +1002,6 @@
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"systems_7": {
|
||||
"locked": {
|
||||
"lastModified": 1681028828,
|
||||
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
|
||||
"owner": "nix-systems",
|
||||
"repo": "default",
|
||||
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nix-systems",
|
||||
"repo": "default",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"systems_8": {
|
||||
"locked": {
|
||||
"lastModified": 1681028828,
|
||||
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
|
||||
"owner": "nix-systems",
|
||||
"repo": "default",
|
||||
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nix-systems",
|
||||
"repo": "default",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"utils": {
|
||||
"inputs": {
|
||||
"systems": "systems"
|
||||
@@ -1254,7 +1023,7 @@
|
||||
"woomer": {
|
||||
"inputs": {
|
||||
"crane": "crane",
|
||||
"nixpkgs": "nixpkgs_3",
|
||||
"nixpkgs": "nixpkgs_2",
|
||||
"systems": "systems_4"
|
||||
},
|
||||
"locked": {
|
||||
@@ -1271,38 +1040,16 @@
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"woomer_2": {
|
||||
"inputs": {
|
||||
"crane": "crane_2",
|
||||
"nixpkgs": [
|
||||
"nixpkgs"
|
||||
],
|
||||
"systems": "systems_7"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1787575546,
|
||||
"narHash": "sha256-IHHEp8Hv4p+Cm+u4cmQnpRAUSeGaCAEp07uFRRzEgjk=",
|
||||
"owner": "voidarclabs",
|
||||
"repo": "woomer",
|
||||
"rev": "ca331daf3bda84e9079e629a69d84920a917ff4f",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "voidarclabs",
|
||||
"repo": "woomer",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"wrappers": {
|
||||
"inputs": {
|
||||
"nixpkgs": "nixpkgs_4"
|
||||
"nixpkgs": "nixpkgs_3"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1789546006,
|
||||
"narHash": "sha256-hv8Y2AcOGuCoI/5fVjPZzCAOygTbL9wvvY9HKXvvLEk=",
|
||||
"lastModified": 1782375095,
|
||||
"narHash": "sha256-bRepNpAluz2i0IIk7Tmzw/4BkyOrwABvc66NEgXPEhA=",
|
||||
"owner": "lassulus",
|
||||
"repo": "wrappers",
|
||||
"rev": "e6676c0f59edd80dc1afb6a00047f5578095e4cb",
|
||||
"rev": "cd780e92c0fa66c2e721e1d91894f3db13b9f2b4",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -1313,14 +1060,14 @@
|
||||
},
|
||||
"wrappers_2": {
|
||||
"inputs": {
|
||||
"nixpkgs": "nixpkgs_7"
|
||||
"nixpkgs": "nixpkgs_6"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1786998037,
|
||||
"narHash": "sha256-QJ8QmuqmiOiHCT0HidqwlRpejNfCVcizLmLtzRWHWeQ=",
|
||||
"lastModified": 1782135443,
|
||||
"narHash": "sha256-vAmbArdCyjqpVW+37aCy/PMBOLIqukUXLQuEKLwUhA4=",
|
||||
"owner": "BirdeeHub",
|
||||
"repo": "nix-wrapper-modules",
|
||||
"rev": "780954265c11444ed0c9e164115360f4f5d24d0b",
|
||||
"rev": "6e7f66fa2cdf4d63162580b438f7fcf87c28a46f",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -1331,14 +1078,14 @@
|
||||
},
|
||||
"wrappers_3": {
|
||||
"inputs": {
|
||||
"nixpkgs": "nixpkgs_9"
|
||||
"nixpkgs": "nixpkgs_8"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1788981141,
|
||||
"narHash": "sha256-7xWS16u13YGlRNKWaAPzRbEyh4OLOXJe31k7h4AnXNU=",
|
||||
"lastModified": 1782135443,
|
||||
"narHash": "sha256-vAmbArdCyjqpVW+37aCy/PMBOLIqukUXLQuEKLwUhA4=",
|
||||
"owner": "BirdeeHub",
|
||||
"repo": "nix-wrapper-modules",
|
||||
"rev": "1db3c116a6aa61823f8d8f3c47c306846428fc54",
|
||||
"rev": "6e7f66fa2cdf4d63162580b438f7fcf87c28a46f",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -1369,25 +1116,6 @@
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"wshowkeys_2": {
|
||||
"inputs": {
|
||||
"flake-utils": "flake-utils_2",
|
||||
"nixpkgs": "nixpkgs_10"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1785224811,
|
||||
"narHash": "sha256-8upkB3179A8wP5Hph0EanE0VuIxe7VsmsqzcRaOq5y0=",
|
||||
"owner": "DreamMaoMao",
|
||||
"repo": "wshowkeys",
|
||||
"rev": "35d70762ab9af4ea301853e79b3b925d5fe9e920",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "DreamMaoMao",
|
||||
"repo": "wshowkeys",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"xdph": {
|
||||
"inputs": {
|
||||
"hyprland-protocols": [
|
||||
@@ -1422,11 +1150,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1788025068,
|
||||
"narHash": "sha256-TBqronrrc/F2Ry/E37d/1TLldDLJDFNSwvJjgk+cXzU=",
|
||||
"lastModified": 1782311043,
|
||||
"narHash": "sha256-07zLc2M3/ax+JsjxGTft17/Joua41LHE9/9AC/F9zeU=",
|
||||
"owner": "hyprwm",
|
||||
"repo": "xdg-desktop-portal-hyprland",
|
||||
"rev": "ba31964ee42b56bcb0d3b78a64ead5d8a1c3c6f6",
|
||||
"rev": "882ad01e195ce201b07c618bbee44a0cad8b9e5a",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
||||
25
flake.nix
@@ -4,7 +4,6 @@
|
||||
inputs = {
|
||||
# System
|
||||
nixpkgs.url = "github:nixos/nixpkgs/nixos-26.05";
|
||||
nixpkgs-unstable.url = "github:nixos/nixpkgs/nixos-unstable";
|
||||
|
||||
# Apps
|
||||
nvim.url = "git+https://git.voidarc.co.uk/voidarc/nvim";
|
||||
@@ -12,10 +11,6 @@
|
||||
url = "git+https://git.voidarc.co.uk/voidarc/hypr";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
hyprgrass = {
|
||||
url = "github:horriblename/hyprgrass";
|
||||
inputs.hyprland.follows = "hyprland/hyprland";
|
||||
};
|
||||
otter-launcher = {
|
||||
url = "github:kuokuo123/otter-launcher";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
@@ -25,26 +20,6 @@
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
sls-steam.url = "github:AceSLS/SLSsteam";
|
||||
davinci.url = "git+https://git.voidarc.co.uk/voidarc/nixos.davinci";
|
||||
quickshell = {
|
||||
url = "git+https://git.voidarc.co.uk/voidarc/quickshell";
|
||||
flake = false;
|
||||
};
|
||||
omnisearch = {
|
||||
url = "git+https://git.voidarc.co.uk/voidarc/omnisearch";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
woomer = {
|
||||
url = "github:voidarclabs/woomer";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
wshowkeys.url = "github:DreamMaoMao/wshowkeys";
|
||||
|
||||
# Secrets and stuff
|
||||
sops-nix = {
|
||||
url = "github:Mic92/sops-nix";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
|
||||
# Flake parts
|
||||
flake-parts.url = "github:hercules-ci/flake-parts";
|
||||
|
||||
@@ -1,18 +0,0 @@
|
||||
{
|
||||
self,
|
||||
moduleWithSystem,
|
||||
...
|
||||
}: {
|
||||
flake.nixosModules.bottles = moduleWithSystem ({pkgs, ...}: {
|
||||
environment.systemPackages = with pkgs; [
|
||||
(bottles.override {
|
||||
removeWarningPopup = true;
|
||||
})
|
||||
wineWow64Packages.stable
|
||||
winetricks
|
||||
wine
|
||||
wine64
|
||||
freetype
|
||||
];
|
||||
});
|
||||
}
|
||||
@@ -1,19 +0,0 @@
|
||||
{
|
||||
self,
|
||||
moduleWithSystem,
|
||||
...
|
||||
}: {
|
||||
flake.nixosModules.development = moduleWithSystem ({pkgs, ...}: let
|
||||
modules = with self.nixosModules; [
|
||||
git
|
||||
nvim
|
||||
];
|
||||
in {
|
||||
imports = modules;
|
||||
environment.systemPackages = with pkgs; [
|
||||
opencode
|
||||
devenv
|
||||
jellyfin-tui
|
||||
];
|
||||
});
|
||||
}
|
||||
@@ -1,18 +0,0 @@
|
||||
{
|
||||
self,
|
||||
moduleWithSystem,
|
||||
...
|
||||
}: {
|
||||
flake.nixosModules.gaming = moduleWithSystem ({pkgs, unstablePkgs, ...}: let
|
||||
modules = with self.nixosModules; [
|
||||
steam
|
||||
];
|
||||
in {
|
||||
imports = modules;
|
||||
environment.systemPackages = with pkgs; [
|
||||
prismlauncher
|
||||
] ++ (with unstablePkgs; [
|
||||
bs-manager
|
||||
]);
|
||||
});
|
||||
}
|
||||
@@ -1,11 +0,0 @@
|
||||
{moduleWithSystem, ...}: {
|
||||
flake.nixosModules.music = moduleWithSystem ({pkgs, unfreePkgs, ...}: {
|
||||
environment.systemPackages = with pkgs; [
|
||||
ardour
|
||||
unfreePkgs.vital
|
||||
distrho-ports
|
||||
cardinal
|
||||
calf
|
||||
];
|
||||
});
|
||||
}
|
||||
@@ -1,16 +0,0 @@
|
||||
{
|
||||
self,
|
||||
moduleWithSystem,
|
||||
...
|
||||
}: {
|
||||
flake.nixosModules.youtube = moduleWithSystem ({...}: let
|
||||
modules = with self.nixosModules; [
|
||||
obs-studio
|
||||
wshowkeys
|
||||
woomer
|
||||
mumble
|
||||
];
|
||||
in {
|
||||
imports = modules;
|
||||
});
|
||||
}
|
||||
@@ -1,22 +1,18 @@
|
||||
{
|
||||
self,
|
||||
moduleWithSystem,
|
||||
inputs,
|
||||
...
|
||||
}: {
|
||||
flake.nixosModules.name = moduleWithSystem ({
|
||||
flake.nixosModules.name = {
|
||||
pkgs,
|
||||
self',
|
||||
inputs',
|
||||
lib,
|
||||
...
|
||||
}: let
|
||||
modules = with self.nixosModules; [];
|
||||
in {
|
||||
imports = modules;
|
||||
}: {
|
||||
programs.name = {
|
||||
enable = true;
|
||||
package = self'.packages.hello;
|
||||
package = self.packages.${pkgs.stdenv.hostPlatform.system}.hello;
|
||||
};
|
||||
};
|
||||
});
|
||||
perSystem = {
|
||||
pkgs,
|
||||
lib,
|
||||
|
||||
@@ -1,14 +0,0 @@
|
||||
{
|
||||
moduleWithSystem,
|
||||
self,
|
||||
...
|
||||
}: {
|
||||
flake.nixosModules.davinci = moduleWithSystem ({self', ...}: {
|
||||
environment.systemPackages = with self'.packages; [
|
||||
davinci-resolve
|
||||
];
|
||||
});
|
||||
perSystem = {inputs', ...}: {
|
||||
packages.davinci-resolve = inputs'.davinci.packages.default;
|
||||
};
|
||||
}
|
||||
@@ -1,27 +0,0 @@
|
||||
{moduleWithSystem, ...}: {
|
||||
flake.nixosModules.distcc = moduleWithSystem ({unstablePkgs, ...}: {
|
||||
services.distccd = {
|
||||
enable = true;
|
||||
allowedClients = ["192.168.1.0/24"];
|
||||
};
|
||||
systemd.services.distccd = {
|
||||
serviceConfig = {
|
||||
Environment = [
|
||||
"\"PATH=/run/wrappers/bin:/run/current-system/sw/bin:/usr/bin:/bin\""
|
||||
"DISTCCD_PATH=/run/current-system/sw/bin:/run/wrappers/bin:/usr/bin:/bin"
|
||||
];
|
||||
};
|
||||
};
|
||||
environment.systemPackages = let
|
||||
pkgs = unstablePkgs;
|
||||
lib = pkgs.lib;
|
||||
in [
|
||||
(pkgs.writeShellScriptBin "x86_64-pc-linux-gnu-gcc" ''
|
||||
exec ${lib.getExe pkgs.gcc15} "$@"
|
||||
'')
|
||||
(pkgs.writeShellScriptBin "x86_64-pc-linux-gnu-g++" ''
|
||||
exec ${lib.getExe' pkgs.gcc15 "g++"} "$@"
|
||||
'')
|
||||
];
|
||||
});
|
||||
}
|
||||
@@ -1,40 +0,0 @@
|
||||
{
|
||||
self,
|
||||
inputs,
|
||||
...
|
||||
}: {
|
||||
flake.nixosModules.git = {
|
||||
pkgs,
|
||||
lib,
|
||||
...
|
||||
}: {
|
||||
programs.git = {
|
||||
enable = true;
|
||||
package = self.packages.${pkgs.stdenv.hostPlatform.system}.git;
|
||||
};
|
||||
programs.gnupg.agent = {
|
||||
enable = true;
|
||||
pinentryPackage = pkgs.pinentry-all;
|
||||
};
|
||||
};
|
||||
perSystem = {
|
||||
pkgs,
|
||||
lib,
|
||||
self',
|
||||
...
|
||||
}: {
|
||||
packages.git = inputs.wrappers.wrappers.git.wrap {
|
||||
inherit pkgs;
|
||||
runtimePkgs = with pkgs; [
|
||||
git-secret
|
||||
];
|
||||
settings = {
|
||||
user = {
|
||||
email = "admin@voidarc.co.uk";
|
||||
name = "voidarc";
|
||||
};
|
||||
credential.helper = "store";
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -1,31 +1,42 @@
|
||||
{
|
||||
self,
|
||||
inputs,
|
||||
moduleWithSystem,
|
||||
...
|
||||
}: {
|
||||
flake.nixosModules.gotify-desktop = moduleWithSystem ({self', ...}: {
|
||||
environment.systemPackages = with self'.packages; [
|
||||
gotify-desktop
|
||||
flake.nixosModules.gotify-desktop = {
|
||||
pkgs,
|
||||
lib,
|
||||
...
|
||||
}: {
|
||||
environment.systemPackages = [
|
||||
self.packages.${pkgs.stdenv.hostPlatform.system}.gotify-desktop
|
||||
];
|
||||
});
|
||||
};
|
||||
perSystem = {
|
||||
pkgs,
|
||||
inputs',
|
||||
lib,
|
||||
self',
|
||||
...
|
||||
}: {
|
||||
packages = {
|
||||
gotify-desktop = let
|
||||
# Requires gpg keyring cert in order to get api key
|
||||
config-file = pkgs.writeText "config.toml" ''
|
||||
[gotify]
|
||||
url = "wss://ntfy.voidarc.co.uk:443"
|
||||
token = { command = "cat /run/secrets/gotify-desktop-key"}
|
||||
token = { command = "${pkgs.gnupg}/bin/gpg --quiet --batch --decrypt ${./gotify-key.secret}" }
|
||||
[notification]
|
||||
min_priority = 1
|
||||
'';
|
||||
in
|
||||
inputs.wrappers.lib.wrapPackage ({...}: {
|
||||
inputs.wrappers.lib.wrapPackage ({
|
||||
config,
|
||||
wlib,
|
||||
lib,
|
||||
...
|
||||
}: {
|
||||
inherit pkgs;
|
||||
package = inputs'.gotify-desktop.packages.default;
|
||||
package = inputs.gotify-desktop.packages.${pkgs.stdenv.hostPlatform.system}.default;
|
||||
flags = {
|
||||
"-c" = config-file;
|
||||
};
|
||||
|
||||
73
modules/features/hypr/default.nix
Normal file
@@ -0,0 +1,73 @@
|
||||
{
|
||||
self,
|
||||
inputs,
|
||||
...
|
||||
}: {
|
||||
flake.nixosModules.hyprland = {
|
||||
pkgs,
|
||||
lib,
|
||||
...
|
||||
}: let
|
||||
modules = with self.nixosModules; [
|
||||
audio
|
||||
gtkTheme
|
||||
];
|
||||
in {
|
||||
imports = modules;
|
||||
programs.hyprland = {
|
||||
enable = true;
|
||||
package = self.packages.${pkgs.stdenv.hostPlatform.system}.hyprland;
|
||||
};
|
||||
services.xserver.enable = true;
|
||||
security.polkit.enable = true;
|
||||
environment.systemPackages = with pkgs; [
|
||||
hyprlock
|
||||
];
|
||||
};
|
||||
perSystem = {
|
||||
pkgs,
|
||||
lib,
|
||||
self',
|
||||
...
|
||||
}: {
|
||||
packages = {
|
||||
hyprland = inputs.hyprland.packages.${pkgs.stdenv.hostPlatform.system}.default.override {
|
||||
runtimePackages =
|
||||
inputs.hyprland.lib.defaultRuntimePkgs.${pkgs.stdenv.hostPlatform.system}
|
||||
// {
|
||||
wpaperd = self'.packages.wpaperd;
|
||||
kitty = self'.packages.kitty;
|
||||
gotify-desktop = self'.packages.gotify-desktop;
|
||||
otter-launcher = self'.packages.otter-launcher;
|
||||
};
|
||||
};
|
||||
wpaperd = let
|
||||
config-file = builtins.toFile "config.toml" ''
|
||||
[any]
|
||||
path = "${./wallpapers}"
|
||||
|
||||
[HDMI-A-1]
|
||||
path = "${./wallpapers/topo1.png}"
|
||||
|
||||
[DP-1]
|
||||
path = "${./wallpapers/topo2.png}"
|
||||
|
||||
[DP-2]
|
||||
path = "${./wallpapers/topo3.png}"
|
||||
'';
|
||||
in
|
||||
inputs.wrappers.lib.wrapPackage ({
|
||||
config,
|
||||
wlib,
|
||||
lib,
|
||||
...
|
||||
}: {
|
||||
inherit pkgs;
|
||||
package = pkgs.wpaperd;
|
||||
flags = {
|
||||
"--config" = config-file;
|
||||
};
|
||||
});
|
||||
};
|
||||
};
|
||||
}
|
||||
|
Before Width: | Height: | Size: 227 KiB After Width: | Height: | Size: 227 KiB |
|
Before Width: | Height: | Size: 72 KiB After Width: | Height: | Size: 72 KiB |
|
Before Width: | Height: | Size: 1.9 MiB After Width: | Height: | Size: 1.9 MiB |
|
Before Width: | Height: | Size: 250 KiB After Width: | Height: | Size: 250 KiB |
|
Before Width: | Height: | Size: 1.3 MiB After Width: | Height: | Size: 1.3 MiB |
|
Before Width: | Height: | Size: 653 KiB After Width: | Height: | Size: 653 KiB |
|
Before Width: | Height: | Size: 6.9 MiB After Width: | Height: | Size: 6.9 MiB |
|
Before Width: | Height: | Size: 406 KiB After Width: | Height: | Size: 406 KiB |
|
Before Width: | Height: | Size: 551 KiB After Width: | Height: | Size: 551 KiB |
|
Before Width: | Height: | Size: 8.7 MiB After Width: | Height: | Size: 8.7 MiB |
|
Before Width: | Height: | Size: 310 KiB After Width: | Height: | Size: 310 KiB |
|
Before Width: | Height: | Size: 1.6 MiB After Width: | Height: | Size: 1.6 MiB |
|
Before Width: | Height: | Size: 1.6 MiB After Width: | Height: | Size: 1.6 MiB |
|
Before Width: | Height: | Size: 1.7 MiB After Width: | Height: | Size: 1.7 MiB |
|
Before Width: | Height: | Size: 2.9 MiB After Width: | Height: | Size: 2.9 MiB |
|
Before Width: | Height: | Size: 22 KiB After Width: | Height: | Size: 22 KiB |
BIN
modules/features/hypr/wallpapers/unused/wide_lines2.png.unused
Normal file
|
After Width: | Height: | Size: 5.4 KiB |
|
Before Width: | Height: | Size: 286 KiB After Width: | Height: | Size: 286 KiB |
0
modules/features/wpaperd/wallpapers/wallpaper-sun.jpg → modules/features/hypr/wallpapers/wallpaper-sun.jpg
Normal file → Executable file
|
Before Width: | Height: | Size: 592 KiB After Width: | Height: | Size: 592 KiB |
|
Before Width: | Height: | Size: 194 KiB After Width: | Height: | Size: 194 KiB |
@@ -1,116 +0,0 @@
|
||||
{
|
||||
moduleWithSystem,
|
||||
self,
|
||||
inputs,
|
||||
...
|
||||
}: {
|
||||
flake.nixosModules.hyprland = moduleWithSystem ({
|
||||
self',
|
||||
pkgs,
|
||||
inputs',
|
||||
flakeLocation,
|
||||
...
|
||||
}: {config, ...}: let
|
||||
modules = with self.nixosModules; [
|
||||
audio
|
||||
systemTheme
|
||||
quickshell
|
||||
];
|
||||
|
||||
runtimePkgs = self'.packages.hyprland.passthru.runtimePackages;
|
||||
lib = pkgs.lib;
|
||||
|
||||
runtimeTarget = name: pkg:
|
||||
if config.security.wrappers ? ${name}
|
||||
then "/run/wrappers/bin/${name}"
|
||||
else lib.getExe pkg;
|
||||
in {
|
||||
imports = modules;
|
||||
|
||||
options = {
|
||||
tabletSupport = lib.mkOption {
|
||||
type = lib.types.bool;
|
||||
default = false;
|
||||
description = "Enable tablet support across all modules";
|
||||
};
|
||||
};
|
||||
|
||||
config = {
|
||||
programs.hyprland = {
|
||||
enable = true;
|
||||
package = self'.packages.hyprland;
|
||||
};
|
||||
|
||||
services.displayManager.defaultSession = "hyprland";
|
||||
services.xserver.enable = true;
|
||||
services.seatd.enable = true;
|
||||
security.polkit.enable = true;
|
||||
|
||||
environment.systemPackages = with pkgs; [
|
||||
gsettings-desktop-schemas
|
||||
glib
|
||||
];
|
||||
|
||||
system.activationScripts.hyprRuntimeEnv = lib.stringAfter ["specialfs"] ''
|
||||
mkdir -p /run/hypr-runtime-env/bin
|
||||
${lib.concatStringsSep "\n" (lib.mapAttrsToList (name: pkg: ''
|
||||
ln -sfn ${runtimeTarget name pkg} /run/hypr-runtime-env/bin/${name}
|
||||
'')
|
||||
runtimePkgs)}
|
||||
'';
|
||||
|
||||
system.activationScripts.hyprConfig = let
|
||||
hyprgrassPath = "${inputs'.hyprgrass.packages.default}/lib/libhyprgrass.so";
|
||||
pluginFile = pkgs.writeText "plugins.lua" ''
|
||||
hl.on("hyprland.start", function ()
|
||||
${lib.optionalString config.tabletSupport ''
|
||||
hl.exec_cmd("hyprctl plugin load ${hyprgrassPath}")
|
||||
''}
|
||||
end)
|
||||
'';
|
||||
# Easy way to get nix runtime info (ie the directory the config is at)
|
||||
# into hyprland to run commands and stuff
|
||||
runtimeFile = pkgs.writeText "runtime.lua" ''
|
||||
hl.on("hyprland.start", function ()
|
||||
${lib.optionalString (flakeLocation != "") ''
|
||||
hl.exec_cmd( 'curl -X POST -H "Content-Type: application/json" -d "{\"ref\":\"$(git -C ${flakeLocation} rev-parse HEAD)\", \"status\":\"$(git -C ${flakeLocation} diff --quiet && echo "clean" || echo "dirty")\"}" https://n8n.voidarc.co.uk/webhook/config-checker' )
|
||||
''}
|
||||
end)
|
||||
'';
|
||||
in
|
||||
lib.stringAfter ["specialfs"] ''
|
||||
mkdir -p /run/hypr/config
|
||||
rm -rf /run/hypr/config/*
|
||||
ln -sfn ${inputs'.hyprland.packages.repo-files}/* /run/hypr/config
|
||||
ln -sfn ${pluginFile} /run/hypr/config/plugins.lua
|
||||
ln -sfn ${runtimeFile} /run/hypr/config/runtime.lua
|
||||
'';
|
||||
};
|
||||
});
|
||||
perSystem = {
|
||||
self',
|
||||
system,
|
||||
inputs',
|
||||
...
|
||||
}: {
|
||||
packages = {
|
||||
hyprland = inputs'.hyprland.packages.default.override {
|
||||
flags."--config" = "/run/hypr/config/hyprland.lua";
|
||||
env."MODULES_ROOT" = "/run/hypr/config/modules";
|
||||
env."HYPRLAND_ROOT" = "/run/hypr/config";
|
||||
runtimePackages =
|
||||
inputs.hyprland.lib.defaultRuntimePkgs.${system}
|
||||
// {
|
||||
wpaperd = self'.packages.wpaperd;
|
||||
kitty = self'.packages.kitty;
|
||||
gotify-desktop = self'.packages.gotify-desktop;
|
||||
otter-launcher = self'.packages.otter-launcher;
|
||||
hyprlock = self'.packages.hyprlock;
|
||||
quickshell = self'.packages.quickshell;
|
||||
wshowkeys = self'.packages.wshowkeys;
|
||||
way-edges = self'.packages.way-edges;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
|
Before Width: | Height: | Size: 3.5 KiB |
@@ -1,129 +0,0 @@
|
||||
{
|
||||
inputs,
|
||||
moduleWithSystem,
|
||||
...
|
||||
}: {
|
||||
flake.nixosModules.hyprlock = moduleWithSystem ({self', ...}: {
|
||||
environment.systemPackages = with self'.packages; [
|
||||
hyprock
|
||||
];
|
||||
});
|
||||
perSystem = {pkgs, ...}: {
|
||||
packages.hyprlock = inputs.wrappers.wrappers.hyprlock.wrap {
|
||||
inherit pkgs;
|
||||
"hyprlock.conf".content = ''
|
||||
source = ${./mocha.conf}
|
||||
|
||||
$accent = $mauve
|
||||
$accentAlpha = $mauveAlpha
|
||||
$font = FiraMono Nerd Font
|
||||
|
||||
# GENERAL
|
||||
general {
|
||||
hide_cursor = true
|
||||
}
|
||||
|
||||
# BACKGROUND
|
||||
background {
|
||||
monitor =
|
||||
path = screenshot
|
||||
blur_passes = 3
|
||||
color = rgba(0, 0, 0, 0)
|
||||
}
|
||||
|
||||
|
||||
# LAYOUT
|
||||
label {
|
||||
monitor =
|
||||
text = Layout: $LAYOUT
|
||||
color = $text
|
||||
font_size = 25
|
||||
font_family = $font
|
||||
position = 30, -30
|
||||
halign = left
|
||||
valign = top
|
||||
}
|
||||
|
||||
# TIME
|
||||
label {
|
||||
monitor =
|
||||
text = $TIME
|
||||
color = $text
|
||||
font_size = 90
|
||||
font_family = $font
|
||||
position = -30, 0
|
||||
halign = right
|
||||
valign = top
|
||||
}
|
||||
|
||||
# DATE
|
||||
label {
|
||||
monitor =
|
||||
text = cmd[update:43200000] date +"%A, %d %B %Y"
|
||||
color = $text
|
||||
font_size = 25
|
||||
font_family = $font
|
||||
position = -30, -150
|
||||
halign = right
|
||||
valign = top
|
||||
}
|
||||
|
||||
# FINGERPRINT
|
||||
{
|
||||
monitor = "";
|
||||
text = "$FPRINTPROMPT";
|
||||
color = "$text";
|
||||
font_size = 14;
|
||||
font_family = $font;
|
||||
position = "0, -107";
|
||||
halign = "center";
|
||||
valign = "center";
|
||||
}
|
||||
|
||||
image {
|
||||
path = ${./cat.png}
|
||||
size = 240
|
||||
border_color = transparent
|
||||
rounding = 0
|
||||
position = 0, 7px
|
||||
}
|
||||
|
||||
# USER AVATAR
|
||||
image {
|
||||
monitor =
|
||||
path = $HOME/.face
|
||||
size = 100
|
||||
border_color = $accent
|
||||
position = 0, 75
|
||||
halign = center
|
||||
valign = center
|
||||
}
|
||||
|
||||
# INPUT FIELD
|
||||
input-field {
|
||||
monitor =
|
||||
size = 300, 60
|
||||
outline_thickness = 4
|
||||
dots_size = 0.2
|
||||
dots_spacing = 0.2
|
||||
dots_center = true
|
||||
outer_color = $accent
|
||||
inner_color = $surface0
|
||||
font_color = $text
|
||||
fade_on_empty = false
|
||||
placeholder_text = <span foreground="##$textAlpha"><i> Logged in as </i><span foreground="##$accentAlpha">$USER</span></span>
|
||||
hide_input = false
|
||||
check_color = $accent
|
||||
fail_color = $red
|
||||
fail_text = <i>$FAIL <b>($ATTEMPTS)</b></i>
|
||||
capslock_color = $yellow
|
||||
position = 0, -47
|
||||
halign = center
|
||||
valign = center
|
||||
}
|
||||
|
||||
|
||||
'';
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -1,79 +0,0 @@
|
||||
|
||||
$rosewater = rgb(f5e0dc)
|
||||
$rosewaterAlpha = f5e0dc
|
||||
|
||||
$flamingo = rgb(f2cdcd)
|
||||
$flamingoAlpha = f2cdcd
|
||||
|
||||
$pink = rgb(f5c2e7)
|
||||
$pinkAlpha = f5c2e7
|
||||
|
||||
$mauve = rgb(cba6f7)
|
||||
$mauveAlpha = cba6f7
|
||||
|
||||
$red = rgb(f38ba8)
|
||||
$redAlpha = f38ba8
|
||||
|
||||
$maroon = rgb(eba0ac)
|
||||
$maroonAlpha = eba0ac
|
||||
|
||||
$peach = rgb(fab387)
|
||||
$peachAlpha = fab387
|
||||
|
||||
$yellow = rgb(f9e2af)
|
||||
$yellowAlpha = f9e2af
|
||||
|
||||
$green = rgb(a6e3a1)
|
||||
$greenAlpha = a6e3a1
|
||||
|
||||
$teal = rgb(94e2d5)
|
||||
$tealAlpha = 94e2d5
|
||||
|
||||
$sky = rgb(89dceb)
|
||||
$skyAlpha = 89dceb
|
||||
|
||||
$sapphire = rgb(74c7ec)
|
||||
$sapphireAlpha = 74c7ec
|
||||
|
||||
$blue = rgb(89b4fa)
|
||||
$blueAlpha = 89b4fa
|
||||
|
||||
$lavender = rgb(b4befe)
|
||||
$lavenderAlpha = b4befe
|
||||
|
||||
$text = rgb(cdd6f4)
|
||||
$textAlpha = cdd6f4
|
||||
|
||||
$subtext1 = rgb(bac2de)
|
||||
$subtext1Alpha = bac2de
|
||||
|
||||
$subtext0 = rgb(a6adc8)
|
||||
$subtext0Alpha = a6adc8
|
||||
|
||||
$overlay2 = rgb(9399b2)
|
||||
$overlay2Alpha = 9399b2
|
||||
|
||||
$overlay1 = rgb(7f849c)
|
||||
$overlay1Alpha = 7f849c
|
||||
|
||||
$overlay0 = rgb(6c7086)
|
||||
$overlay0Alpha = 6c7086
|
||||
|
||||
$surface2 = rgb(585b70)
|
||||
$surface2Alpha = 585b70
|
||||
|
||||
$surface1 = rgb(45475a)
|
||||
$surface1Alpha = 45475a
|
||||
|
||||
$surface0 = rgb(313244)
|
||||
$surface0Alpha = 313244
|
||||
|
||||
$base = rgb(1e1e2e)
|
||||
$baseAlpha = 1e1e2eee
|
||||
|
||||
$mantle = rgb(181825)
|
||||
$mantleAlpha = 181825
|
||||
|
||||
$crust = rgb(11111b)
|
||||
$crustAlpha = 11111b
|
||||
|
||||
@@ -1,71 +0,0 @@
|
||||
set $mod Mod1
|
||||
set $term kitty
|
||||
set $menu dmenu_run
|
||||
|
||||
exec --no-startup-id xrandr --output HDMI-1 --mode 1920x1080 --rate 60 --pos -1920x0 --output DP-1 --mode 1920x1080 --rate 60 --pos 0x0 --output DP-2 --mode 1920x1080 --rate 60 --pos 1920x0
|
||||
|
||||
font pango:FiraMono Nerd Font 10
|
||||
|
||||
workspace 1 output DP-1
|
||||
workspace 2 output HDMI-A-1
|
||||
workspace 3 output DP-2
|
||||
|
||||
# Window functions
|
||||
bindsym $mod+BackSpace kill
|
||||
bindsym $mod+b fullscreen toggle
|
||||
|
||||
# Apps
|
||||
bindsym $mod+Return exec --no-startup-id $term
|
||||
bindsym $mod+d exec --no-startup-id $menu
|
||||
bindsym $mod+f exec --no-startup-id firefox
|
||||
bindsym $mod+s exec --no-startup-id nemo
|
||||
|
||||
# Focus windows
|
||||
bindsym $mod+k focus up
|
||||
bindsym $mod+j focus down
|
||||
bindsym $mod+h focus left
|
||||
bindsym $mod+l focus right
|
||||
|
||||
# Move windows
|
||||
bindsym $mod+Shift+h move left
|
||||
bindsym $mod+Shift+l move right
|
||||
bindsym $mod+Shift+k move up
|
||||
bindsym $mod+Shift+j move down
|
||||
|
||||
# Workspaces
|
||||
bindsym $mod+q workspace number 1
|
||||
bindsym $mod+w workspace number 2
|
||||
bindsym $mod+e workspace number 3
|
||||
bindsym $mod+r workspace number 4
|
||||
bindsym $mod+t workspace number 5
|
||||
bindsym $mod+y workspace number 6
|
||||
bindsym $mod+u workspace number 7
|
||||
bindsym $mod+i workspace number 8
|
||||
bindsym $mod+o workspace number 9
|
||||
bindsym $mod+p workspace number 10
|
||||
|
||||
# Move container to workspace
|
||||
bindsym $mod+Shift+q move container to workspace number 1
|
||||
bindsym $mod+Shift+w move container to workspace number 2
|
||||
bindsym $mod+Shift+e move container to workspace number 3
|
||||
bindsym $mod+Shift+r move container to workspace number 4
|
||||
bindsym $mod+Shift+t move container to workspace number 5
|
||||
bindsym $mod+Shift+y move container to workspace number 6
|
||||
bindsym $mod+Shift+u move container to workspace number 7
|
||||
bindsym $mod+Shift+i move container to workspace number 8
|
||||
bindsym $mod+Shift+o move container to workspace number 9
|
||||
bindsym $mod+Shift+p move container to workspace number 10
|
||||
|
||||
# Logout menu
|
||||
bindsym $mod+Shift+a exec "i3-nagbar -t warning -m 'You pressed the exit shortcut. Do you really want to exit i3? This will end your X session.' -B 'Yes, exit i3' 'i3-msg exit'"
|
||||
|
||||
# Reload
|
||||
bindsym $mod+Shift+m reload
|
||||
|
||||
# Drag windows with titlebar
|
||||
tiling_drag modifier titlebar
|
||||
|
||||
# Bar
|
||||
bar {
|
||||
status_command i3status
|
||||
}
|
||||
@@ -1,52 +0,0 @@
|
||||
{
|
||||
inputs,
|
||||
moduleWithSystem,
|
||||
...
|
||||
}: {
|
||||
flake.nixosModules.i3 = moduleWithSystem ({
|
||||
pkgs,
|
||||
self',
|
||||
...
|
||||
}: {
|
||||
services.xserver = {
|
||||
enable = true;
|
||||
|
||||
desktopManager = {
|
||||
xterm.enable = false;
|
||||
};
|
||||
|
||||
windowManager.i3 = {
|
||||
enable = true;
|
||||
package = self'.packages.i3;
|
||||
extraPackages = with pkgs; [
|
||||
dmenu
|
||||
i3status
|
||||
xinit
|
||||
];
|
||||
};
|
||||
};
|
||||
});
|
||||
perSystem = {
|
||||
pkgs,
|
||||
lib,
|
||||
self',
|
||||
...
|
||||
}: {
|
||||
packages.i3 = lib.warn "i3 is no longer maintained and therefore marked as deprecated" inputs.wrappers.lib.wrapPackage ({...}: {
|
||||
inherit pkgs;
|
||||
package = pkgs.i3;
|
||||
runtimePkgs = with pkgs;
|
||||
[
|
||||
xrandr
|
||||
firefox
|
||||
]
|
||||
++ (with self'.packages; [
|
||||
kitty
|
||||
nemo
|
||||
]);
|
||||
flags = {
|
||||
"-c" = ./config;
|
||||
};
|
||||
});
|
||||
};
|
||||
}
|
||||
@@ -1,16 +1,23 @@
|
||||
{
|
||||
self,
|
||||
inputs,
|
||||
moduleWithSystem,
|
||||
...
|
||||
}: {
|
||||
flake.nixosModules.kitty = moduleWithSystem (
|
||||
{self'}: {
|
||||
environment.systemPackages = with self'.packages; [
|
||||
kitty
|
||||
flake.nixosModules.kitty = {
|
||||
pkgs,
|
||||
lib,
|
||||
...
|
||||
}: {
|
||||
environment.systemPackages = [
|
||||
self.packages.${pkgs.stdenv.hostPlatform.system}.kitty
|
||||
];
|
||||
}
|
||||
);
|
||||
perSystem = {pkgs, ...}: {
|
||||
};
|
||||
perSystem = {
|
||||
pkgs,
|
||||
lib,
|
||||
self',
|
||||
...
|
||||
}: {
|
||||
packages.kitty = let
|
||||
fira-mono = pkgs.nerd-fonts.fira-mono;
|
||||
fontsConf = pkgs.makeFontsConf {
|
||||
@@ -23,14 +30,12 @@
|
||||
"FONTCONFIG_FILE" = "${fontsConf}";
|
||||
};
|
||||
font = {
|
||||
name = "FiraMono Nerd Font Mono";
|
||||
name = "FiraMono Nerd Font";
|
||||
size = 11;
|
||||
};
|
||||
settings = {
|
||||
font_size = 11;
|
||||
scrollbar = "never";
|
||||
pixel_scroll = false;
|
||||
window_padding_width = 9;
|
||||
window_padding_width = 10;
|
||||
background_opacity = 0.50;
|
||||
confirm_os_window_close = 0;
|
||||
enable_audio_bell = false;
|
||||
|
||||
@@ -1,51 +0,0 @@
|
||||
{
|
||||
self,
|
||||
inputs,
|
||||
...
|
||||
}: {
|
||||
flake.nixosModules.lazygit = {
|
||||
pkgs,
|
||||
lib,
|
||||
...
|
||||
}: {
|
||||
environment.systemPackages = with pkgs; [
|
||||
self.packages.${pkgs.stdenv.hostPlatform.system}.lazygit
|
||||
];
|
||||
};
|
||||
perSystem = {
|
||||
pkgs,
|
||||
lib,
|
||||
self',
|
||||
...
|
||||
}: let
|
||||
config-file = pkgs.writeText "config.yml" ''
|
||||
gui:
|
||||
nerdFontsVersion: "3"
|
||||
|
||||
customCommands:
|
||||
- key: 'p'
|
||||
context: 'global'
|
||||
command: 'git pull --recurse-submodules'
|
||||
loadingText: 'Pulling with submodules'
|
||||
output: 'log'
|
||||
- key: '<c-p>'
|
||||
context: 'global'
|
||||
command: 'git pull'
|
||||
loadingText: 'Pulling remote repo'
|
||||
output: 'log'
|
||||
'';
|
||||
in {
|
||||
packages.lazygit = inputs.wrappers.lib.wrapPackage ({
|
||||
config,
|
||||
wlib,
|
||||
lib,
|
||||
...
|
||||
}: {
|
||||
inherit pkgs;
|
||||
package = pkgs.lazygit;
|
||||
flags = {
|
||||
"--use-config-file" = config-file;
|
||||
};
|
||||
});
|
||||
};
|
||||
}
|
||||
@@ -1,11 +1,24 @@
|
||||
{moduleWithSystem, ...}: {
|
||||
flake.nixosModules.nvim = moduleWithSystem ({self', ...}: {
|
||||
programs.neovim = {
|
||||
{
|
||||
self,
|
||||
inputs,
|
||||
...
|
||||
}: {
|
||||
flake.nixosModules.nvim = {
|
||||
pkgs,
|
||||
lib,
|
||||
...
|
||||
}: {
|
||||
programs.nvim = {
|
||||
enable = true;
|
||||
package = self'.packages.nvim;
|
||||
package = self.packages.${pkgs.stdenv.hostPlatform.system}.nvim;
|
||||
};
|
||||
});
|
||||
perSystem = {inputs', ...}: {
|
||||
packages.nvim = inputs'.nvim.packages.default;
|
||||
};
|
||||
perSystem = {
|
||||
pkgs,
|
||||
lib,
|
||||
self',
|
||||
...
|
||||
}: {
|
||||
packages.nvim = inputs.nvim.packages.${pkgs.stdenv.hostPlatform.system}.default;
|
||||
};
|
||||
}
|
||||
|
||||
@@ -1,8 +0,0 @@
|
||||
{moduleWithSystem, ...}: {
|
||||
flake.nixosModules.obs-studio = moduleWithSystem ({...}: {
|
||||
programs.obs-studio = {
|
||||
enable = true;
|
||||
enableVirtualCamera = true;
|
||||
};
|
||||
});
|
||||
}
|
||||
@@ -1,14 +0,0 @@
|
||||
{
|
||||
moduleWithSystem,
|
||||
inputs,
|
||||
...
|
||||
}: {
|
||||
flake.nixosModules.omnisearch = moduleWithSystem ({...}: let
|
||||
modules = [
|
||||
inputs.omnisearch.nixosModules.default
|
||||
];
|
||||
in {
|
||||
imports = modules;
|
||||
services.omnisearch.enable = true;
|
||||
});
|
||||
}
|
||||
@@ -14,20 +14,14 @@ delay_startup = 0 # sometimes the otter runs too fast even before the terminal w
|
||||
[interface]
|
||||
# use three quotes to write longer codes
|
||||
header = """
|
||||
\x1b[1;38;2;203;166;247m$USER@nixos\x1b[0m
|
||||
\u001B[1;36m$USER@nixos\u001B[0m
|
||||
"""
|
||||
header_cmd = '' # run a command and print stdout above the header
|
||||
header_cmd = "" # run a command and print stdout above the header
|
||||
header_cmd_trimmed_lines = 0 # remove trailing lines from header_cmd output, in case of some programs appending excessive empty lines
|
||||
place_holder = "execute" # at the input field
|
||||
suggestion_mode = "list" # available options: list, hint
|
||||
separator = """
|
||||
$( \
|
||||
text=" "; \
|
||||
printf "\u001B[0;90m$text \
|
||||
$(printf -v line '%*s' \"$(( COLUMNS - $(printf "$text" | wc -m) - 3 ))\" ''; printf '%s' \"${line// /─}\")" \
|
||||
)"""
|
||||
footer = "" # add a line after suggestion list
|
||||
suggestion_lines = 7 # 0 to disable suggestions and tab completion
|
||||
suggestion_lines = 8 # 0 to disable suggestions and tab completion
|
||||
list_prefix = " "
|
||||
selection_prefix = "\u001B[31;1m "
|
||||
prefix_padding = 3 # format prefixes to have a uniformed width
|
||||
|
||||
@@ -1,40 +1,45 @@
|
||||
{
|
||||
self,
|
||||
inputs,
|
||||
moduleWithSystem,
|
||||
...
|
||||
}: {
|
||||
flake.nixosModules.otter-launcher = moduleWithSystem ({self', ...}: {
|
||||
flake.nixosModules.otter-launcher = {
|
||||
pkgs,
|
||||
lib,
|
||||
...
|
||||
}: {
|
||||
environment.systemPackages = [
|
||||
self'.packages.otter-launcher
|
||||
self.packages.${pkgs.stdenv.hostPlatform.system}.otter-launcher
|
||||
];
|
||||
});
|
||||
};
|
||||
perSystem = {
|
||||
pkgs,
|
||||
lib,
|
||||
self',
|
||||
inputs',
|
||||
...
|
||||
}: {
|
||||
packages = {
|
||||
otter-launcher = let
|
||||
extra-config = ''
|
||||
[overlay]
|
||||
overlay_cmd = "${lib.getExe pkgs.kitty} +kitten icat --fit height --align left --no-trailing-newline ${./cat.png}"
|
||||
overlay_trimmed_lines = 0
|
||||
overlay_cmd = """
|
||||
${lib.getExe pkgs.chafa} -s 20x20 ${./cat.png}
|
||||
"""
|
||||
# overlay_trimmed_lines = 1
|
||||
'';
|
||||
final-config = pkgs.writeText "config.toml" ''
|
||||
${extra-config}
|
||||
|
||||
${builtins.readFile ./config.toml}
|
||||
${extra-config}
|
||||
'';
|
||||
in
|
||||
inputs.wrappers.lib.wrapPackage ({...}: {
|
||||
inputs.wrappers.lib.wrapPackage ({
|
||||
config,
|
||||
wlib,
|
||||
lib,
|
||||
...
|
||||
}: {
|
||||
inherit pkgs;
|
||||
package = inputs'.otter-launcher.packages.default;
|
||||
runtimePkgs = with pkgs; [
|
||||
fsel
|
||||
bluetui
|
||||
];
|
||||
package = inputs.otter-launcher.packages.${pkgs.stdenv.hostPlatform.system}.default;
|
||||
flags = {
|
||||
"-c" = final-config;
|
||||
};
|
||||
|
||||
@@ -1,32 +0,0 @@
|
||||
{
|
||||
moduleWithSystem,
|
||||
inputs,
|
||||
...
|
||||
}: {
|
||||
flake.nixosModules.quickshell = moduleWithSystem ({
|
||||
self',
|
||||
pkgs,
|
||||
...
|
||||
}: {config, ...}: {
|
||||
environment.systemPackages = with self'.packages;
|
||||
[
|
||||
quickshell
|
||||
]
|
||||
++ (
|
||||
if config.tabletSupport == true
|
||||
then
|
||||
# If on tablet enable on screen keyboard
|
||||
(with pkgs; [
|
||||
wvkbd
|
||||
])
|
||||
else []
|
||||
);
|
||||
});
|
||||
perSystem = {pkgs, ...}: {
|
||||
packages.quickshell = inputs.wrappers.wrappers.quickshell.wrap {
|
||||
inherit pkgs;
|
||||
configDir = inputs.quickshell;
|
||||
configFile = "${inputs.quickshell}/shell.qml";
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -7,7 +7,12 @@
|
||||
pkgs,
|
||||
lib,
|
||||
...
|
||||
}: {
|
||||
}: let
|
||||
modules = with self.nixosModules; [
|
||||
sddm
|
||||
];
|
||||
in {
|
||||
imports = modules;
|
||||
services.displayManager = {
|
||||
autoLogin.enable = true;
|
||||
autoLogin.user = "user01";
|
||||
|
||||
@@ -1,24 +0,0 @@
|
||||
{inputs, ...}: {
|
||||
flake.nixosModules.sops = {config, ...}: {
|
||||
imports = [inputs.sops-nix.nixosModules.sops];
|
||||
|
||||
sops = {
|
||||
age.keyFile = "/etc/sops/age/keys.txt";
|
||||
defaultSopsFile = ./secrets.yaml;
|
||||
|
||||
secrets = {
|
||||
gotify-desktop-key = {
|
||||
# Make readable
|
||||
mode = "0444";
|
||||
};
|
||||
};
|
||||
templates = {
|
||||
"gotify-desktop-key".content = config.sops.placeholder.gotify-desktop-key;
|
||||
};
|
||||
};
|
||||
# Make the secrets dir readable to normal users
|
||||
systemd.tmpfiles.rules = [
|
||||
"d /run/secrets 0755 root root -"
|
||||
];
|
||||
};
|
||||
}
|
||||
@@ -1,18 +0,0 @@
|
||||
gotify-desktop-key: ENC[AES256_GCM,data:kMCJfkrf5jKAgjX9hT9S,iv:T/zDp94522MeW6V3874JgyaQCx5H1qY+DsZOoPBaC1w=,tag:Csu+9imWiMBYXaE0uXzMsg==,type:str]
|
||||
matrix-recovery-key: ENC[AES256_GCM,data:JssA1EJwxV3ZFXazKOhy0hF08x8qvQ1rzcy0vd3ko3mLvpTDMK5iHGfFf9xO4oK7cZFHGoSsXqaGzTs=,iv:TpBJzYulg8L8Yl7NpZl3u81U7hmxll4CYQ8XdbBOrSY=,tag:eP0Ubmx26e3wjzVbYO4Vmw==,type:str]
|
||||
matrix-cinny-key: ENC[AES256_GCM,data:1vfnRIFTIpLcySHi8Q5PGx3whxNATQxoWMqkDAfbMvIUWDVQcQBW6sHnllyB4364V1LMmq2JANqqyJM=,iv:DpEo993W8UgnJ/aeEyOpcgoNBiSdmBEoWPECB7BJr/Y=,tag:tZfAsGsppkC31vFbjWlvog==,type:str]
|
||||
sops:
|
||||
age:
|
||||
- enc: |
|
||||
-----BEGIN AGE ENCRYPTED FILE-----
|
||||
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBKR3ZQTzVxWWFFam91Y1V0
|
||||
VGdnSkZFcmJ6RG1JOHp3R1puY2ZRazkxbmlZCjYyek5QOWEzaWg2bnpXc0ZrNks0
|
||||
QUl2Nk45R1h6WjFTSWlveUF5RHlRcEUKLS0tIE5mYmQ1aWpvNGNjYzJrUW9DSXpm
|
||||
MS8ralY4WDI1YjhNSmRWYWxYL3VkbDAKQuLvaHiUXkwiaOif10vrl3LFh/4mKQUV
|
||||
Y3HJ9Jr3DAyokEzN7S/S1v50coM1bE4d74SS/V1uIw0nYdZRUGrZww==
|
||||
-----END AGE ENCRYPTED FILE-----
|
||||
recipient: age1rg4rsns375z2zj4tv8cyqtjl504fw8tprlmj2w057dz6ztttjstsgjvkvy
|
||||
lastmodified: "2026-10-04T19:47:26Z"
|
||||
mac: ENC[AES256_GCM,data:0OMarmjmNE5CziZqJbsB96K4u9QgnrB5FkuM3ILgxsxjb6UQLpqjql/th0KIDDAgyVFy9K5KwtocBYeLfuhYkLuj6i8EtlBAyi4KG+WCgy4LF+st8iaTxPy/Xn5yLxbp15DURXPuXrvDs1kpCqFWvfAXAABx/GyHUnYNwpmUytk=,iv:2O3NnZrvwN6CxFcdV/FDBurgRbthshDQ7tpbeHQAlCc=,tag:CzZV/PS26ngz5f4lGs9hzA==,type:str]
|
||||
unencrypted_suffix: _unencrypted
|
||||
version: 3.13.3
|
||||
@@ -1,14 +1,16 @@
|
||||
{moduleWithSystem, ...}: {
|
||||
flake.nixosModules.steam = moduleWithSystem ({
|
||||
{
|
||||
self,
|
||||
inputs,
|
||||
...
|
||||
}: {
|
||||
flake.nixosModules.steam = {
|
||||
pkgs,
|
||||
unfreePkgs,
|
||||
inputs',
|
||||
lib,
|
||||
...
|
||||
}: {
|
||||
# If buying isn't owning than piracy isn't stealing
|
||||
environment.systemPackages = [
|
||||
inputs'.sls-steam.packages.default
|
||||
inputs.sls-steam.packages.${pkgs.stdenv.hostPlatform.system}.wrapped
|
||||
];
|
||||
programs.steam = {
|
||||
enable = true;
|
||||
@@ -16,15 +18,15 @@
|
||||
extraCompatPackages = with pkgs; [
|
||||
proton-ge-bin
|
||||
];
|
||||
package = unfreePkgs.steam.override {
|
||||
package = pkgs.steam.override {
|
||||
extraEnv = {
|
||||
LD_AUDIT = "${
|
||||
inputs'.sls-steam.packages.sls-steam
|
||||
inputs.sls-steam.packages.${pkgs.stdenv.hostPlatform.system}.sls-steam
|
||||
}/library-inject.so:${
|
||||
inputs'.sls-steam.packages.sls-steam
|
||||
inputs.sls-steam.packages.${pkgs.stdenv.hostPlatform.system}.sls-steam
|
||||
}/SLSsteam.so";
|
||||
};
|
||||
};
|
||||
};
|
||||
});
|
||||
};
|
||||
}
|
||||
|
||||
@@ -1,11 +0,0 @@
|
||||
{
|
||||
self,
|
||||
moduleWithSystem,
|
||||
...
|
||||
}: {
|
||||
flake.nixosModules.tailscale = moduleWithSystem ({...}: {
|
||||
services.tailscale = {
|
||||
enable = true;
|
||||
};
|
||||
});
|
||||
}
|
||||
15
modules/features/unbound/default.nix
Normal file
@@ -0,0 +1,15 @@
|
||||
{
|
||||
self,
|
||||
inputs,
|
||||
...
|
||||
}: {
|
||||
flake.nixosModules.unbound = {
|
||||
pkgs,
|
||||
lib,
|
||||
...
|
||||
}: {
|
||||
services.unbound = {
|
||||
enable = true;
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -1,60 +0,0 @@
|
||||
{
|
||||
"allow-trailing-commas": true,
|
||||
"widgets": [
|
||||
{
|
||||
"type": "slider",
|
||||
"edge": "right",
|
||||
"position": "top",
|
||||
"thickness": 30,
|
||||
"length": "25%",
|
||||
"margins": {
|
||||
"top": "50%"
|
||||
},
|
||||
"border-width": 4,
|
||||
"border-color": "#cba6f7ff",
|
||||
"fg-color": "#cba6f7bb",
|
||||
"bg-color": "#31324466",
|
||||
"fg-text-color": "#11111bff",
|
||||
"bg-text-color": "#bac2dedd",
|
||||
"transition-duration": 100,
|
||||
"redraw-only-on-internal-update": true,
|
||||
"radius": 10, // corner radius
|
||||
"obtuse-angle": 90, // in degrees(90~180). controls how much curve the widget has
|
||||
"scroll-unit": 0.005,
|
||||
"pinnable": false,
|
||||
"preset": {
|
||||
"type": "speaker",
|
||||
"animation-curve": "Linear", // mute animation
|
||||
"mute-text-color": "#f38ba8ff",
|
||||
"mute-color": "#f38ba8bb",
|
||||
},
|
||||
},
|
||||
{
|
||||
"type": "slider",
|
||||
"edge": "right",
|
||||
"position": "top",
|
||||
"thickness": 30,
|
||||
"length": "25%",
|
||||
"margins": {
|
||||
"top": "25%"
|
||||
},
|
||||
"border-width": 4,
|
||||
"border-color": "#f9e2afff",
|
||||
"fg-color": "#f9e2afbb",
|
||||
"bg-color": "#31324466",
|
||||
"fg-text-color": "#11111bff",
|
||||
"bg-text-color": "#bac2dedd",
|
||||
"transition-duration": 100,
|
||||
"redraw-only-on-internal-update": true,
|
||||
"radius": 10, // corner radius
|
||||
"obtuse-angle": 90, // in degrees(90~180). controls how much curve the widget has
|
||||
"scroll-unit": 0.005,
|
||||
"pinnable": false,
|
||||
"preset": {
|
||||
"type": "backlight",
|
||||
"device": "intel_backlight", // this is the name of the device. Find it under `/sys/class/backlight/` It should be something like `nvidia_0`, `intel_0`, etc.
|
||||
},
|
||||
},
|
||||
]
|
||||
}
|
||||
|
||||
@@ -1,20 +0,0 @@
|
||||
{
|
||||
inputs,
|
||||
moduleWithSystem,
|
||||
...
|
||||
}: {
|
||||
flake.nixosModules.way-edges = moduleWithSystem ({self', ...}: {
|
||||
environment.systemPackages = with self'.packages; [
|
||||
way-edges
|
||||
];
|
||||
});
|
||||
perSystem = {pkgs, ...}: {
|
||||
packages.way-edges = inputs.wrappers.lib.wrapPackage ({...}: {
|
||||
inherit pkgs;
|
||||
package = pkgs.way-edges;
|
||||
flags = {
|
||||
"--config-path" = ./config.jsonc;
|
||||
};
|
||||
});
|
||||
};
|
||||
}
|
||||
@@ -1,42 +0,0 @@
|
||||
{
|
||||
moduleWithSystem,
|
||||
inputs,
|
||||
...
|
||||
}: {
|
||||
flake.nixosModules.waybar = moduleWithSystem ({self', ...}: {
|
||||
environment.systemPackages = with self'.packages; [
|
||||
waybar
|
||||
];
|
||||
});
|
||||
perSystem = {pkgs, lib, ...}: {
|
||||
packages.waybar = lib.warn "Waybar is deprecated and no longer maintained. Please use pacakges.quickshell instead" inputs.wrappers.wrappers.waybar.wrap {
|
||||
inherit pkgs;
|
||||
"style.css".path = ./style.css;
|
||||
configFile.content = ''
|
||||
{
|
||||
"include": [
|
||||
"${./modules.jsonc}"
|
||||
],
|
||||
"height": 20,
|
||||
"margin": "3 6",
|
||||
"reload_style_on_change": true,
|
||||
"position": "top",
|
||||
"modules-left": [
|
||||
"custom/logo",
|
||||
"hyprland/workspaces"
|
||||
],
|
||||
"modules-center": [
|
||||
"mpris"
|
||||
],
|
||||
"modules-right": [
|
||||
"network",
|
||||
"bluetooth",
|
||||
"custom/notifs",
|
||||
"battery",
|
||||
"clock"
|
||||
]
|
||||
}
|
||||
'';
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -1,78 +0,0 @@
|
||||
{
|
||||
"custom/logo": {
|
||||
"format": ""
|
||||
},
|
||||
"mpris": {
|
||||
"format": "{status_icon} {title} - {artist}",
|
||||
"title-len": 50,
|
||||
"artist-len": 20,
|
||||
"status-icons": {
|
||||
"playing": "",
|
||||
"paused": ""
|
||||
}
|
||||
},
|
||||
"network": {
|
||||
"format": "",
|
||||
"format-ethernet": "",
|
||||
"format-wifi": "{icon}",
|
||||
"format-icons": [
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
""
|
||||
],
|
||||
"format-alt": "{ipaddr} / {gwaddr}",
|
||||
"tooltip-format": "{ifname} - {essid}"
|
||||
},
|
||||
"bluetooth": {
|
||||
"format": "",
|
||||
"format-connected": "",
|
||||
"tooltip-format": "{status} - {device_alias}",
|
||||
"on-click": "kitty --class otter --title otter-launcher -e sh -c 'sleep 0.05 && otter-launcher bl'"
|
||||
},
|
||||
"battery": {
|
||||
"format": "{icon} {capacity}%",
|
||||
"format-plugged": " {capacity}%",
|
||||
"format-charging": " {capacity}%",
|
||||
"states": {
|
||||
"warning": 30,
|
||||
"critical": 15
|
||||
},
|
||||
"format-icons": [
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
""
|
||||
]
|
||||
},
|
||||
"custom/notifs": {
|
||||
"format": "",
|
||||
"on-click": "kitty --class otter --title otter-launcher -e sh -c 'sleep 0.05 && otter-launcher dunst'"
|
||||
},
|
||||
"memory": {
|
||||
"format": " {percentage}%",
|
||||
"tooltip-format": "{used:0.1f}GiB, {swapUsed:0.1f}GiB Swap"
|
||||
},
|
||||
"cpu": {
|
||||
"format": " {usage}%"
|
||||
},
|
||||
"clock": {
|
||||
"interval": 1,
|
||||
"format": "{:%T}",
|
||||
"tooltip-format": "<tt><small>{calendar}</small></tt>",
|
||||
"calendar": {
|
||||
"mode" : "year",
|
||||
"mode-mon-col" : 3,
|
||||
"weeks-pos" : "right",
|
||||
"on-scroll" : 1,
|
||||
"format": {
|
||||
"months": "<span color='#89b4fa'><b>{}</b></span>",
|
||||
"days": "<span color='#eba0ac'><b>{}</b></span>",
|
||||
"weeks": "<span color='#a6e3a1'><b>W{}</b></span>",
|
||||
"weekdays": "<span color='#fab387'><b>{}</b></span>",
|
||||
"today": "<span color='#cba6f7'><b><u>{}</u></b></span>"
|
||||
}
|
||||
},
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,158 +0,0 @@
|
||||
* {
|
||||
font-family: "Fira Mono Nerd Font Propo";
|
||||
font-size: 16px;
|
||||
font-weight: bold;
|
||||
min-height: 16px;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
window#waybar {
|
||||
background: transparent;
|
||||
}
|
||||
|
||||
.module {
|
||||
background-color: rgba(30, 30, 46, 0.8);
|
||||
margin: 0 3px;
|
||||
padding: 0 9px;
|
||||
border-radius: 7px;
|
||||
}
|
||||
|
||||
#custom-logo {
|
||||
background-color: #cba6f7;
|
||||
color: #1e1e2e;
|
||||
font-size: 21px;
|
||||
}
|
||||
|
||||
#workspaces {
|
||||
padding: 3px 4px;
|
||||
}
|
||||
|
||||
#workspaces button {
|
||||
background-color: #585b70;
|
||||
margin: 0 2px;
|
||||
padding: 0 2px;
|
||||
border-radius: 2px;
|
||||
}
|
||||
|
||||
#workspaces button:first-child {
|
||||
border-radius: 5px 2px 2px 5px;
|
||||
margin: 0;
|
||||
margin-right: 2px;
|
||||
}
|
||||
|
||||
#workspaces button:last-child {
|
||||
border-radius: 2px 5px 5px 4px;
|
||||
margin: 0;
|
||||
margin-left: 2px;
|
||||
}
|
||||
|
||||
#workspaces button:only-child {
|
||||
border-radius: 5px;
|
||||
padding: 0 12px;
|
||||
margin: 0 1px;
|
||||
}
|
||||
|
||||
#workspaces button.active {
|
||||
background-color: #b4befe;
|
||||
color: #313244;
|
||||
}
|
||||
|
||||
#mpris {
|
||||
font-size: 14px;
|
||||
transition:
|
||||
color 0.5s,
|
||||
background-color 0.5s;
|
||||
}
|
||||
|
||||
#mpris.paused {
|
||||
color: #f2cdcd;
|
||||
}
|
||||
|
||||
#mpris.playing {
|
||||
color: rgba(30, 30, 46, 0.8);
|
||||
background-color: #ca9ee6;
|
||||
}
|
||||
|
||||
#network {
|
||||
background-color: #f38ba8;
|
||||
color: #1e1e2e;
|
||||
}
|
||||
|
||||
#bluetooth {
|
||||
background-color: #fab387;
|
||||
color: #1e1e2e;
|
||||
}
|
||||
|
||||
#custom-notifs {
|
||||
background-color: #f9e2af;
|
||||
color: #1e1e2e;
|
||||
}
|
||||
|
||||
#battery {
|
||||
background-color: #a6e3a1;
|
||||
color: #1e1e2e;
|
||||
transition:
|
||||
color 0.5s,
|
||||
background-color 0.5s,
|
||||
linear-gradient 0.4s;
|
||||
}
|
||||
|
||||
#battery.warning {
|
||||
color: #1e1e2e;
|
||||
background: #f38ba8;
|
||||
background: linear-gradient(
|
||||
135deg,
|
||||
rgba(243, 139, 168, 1) 0%,
|
||||
rgba(166, 218, 149, 1) 65%,
|
||||
rgba(166, 218, 149, 1) 100%
|
||||
);
|
||||
}
|
||||
|
||||
#battery.charging {
|
||||
background-color: #40a02b;
|
||||
background: #cba6f7;
|
||||
background: linear-gradient(
|
||||
135deg,
|
||||
rgba(203, 166, 247, 1) 0%,
|
||||
rgba(166, 218, 149, 1) 65%,
|
||||
rgba(166, 218, 149, 1) 100%
|
||||
);
|
||||
}
|
||||
|
||||
#battery.plugged {
|
||||
background-color: #40a02b;
|
||||
background: #cba6f7;
|
||||
background: linear-gradient(
|
||||
135deg,
|
||||
rgba(203, 166, 247, 1) 0%,
|
||||
rgba(166, 218, 149, 1) 65%,
|
||||
rgba(166, 218, 149, 1) 100%
|
||||
);
|
||||
}
|
||||
|
||||
#battery.critical {
|
||||
color: #f38ba8;
|
||||
}
|
||||
|
||||
#memory {
|
||||
padding-right: 3px;
|
||||
border-radius: 7px 0 0 7px;
|
||||
margin-right: 0;
|
||||
background-color: #89dceb;
|
||||
color: #1e1e2e;
|
||||
}
|
||||
|
||||
#cpu {
|
||||
padding-left: 3px;
|
||||
border-radius: 0 7px 7px 0;
|
||||
margin-left: 0;
|
||||
background-color: #89dceb;
|
||||
color: #1e1e2e;
|
||||
}
|
||||
|
||||
#clock {
|
||||
background-color: #89b4fa;
|
||||
color: #1e1e2e;
|
||||
}
|
||||
|
||||
@@ -1,22 +0,0 @@
|
||||
{
|
||||
inputs,
|
||||
moduleWithSystem,
|
||||
...
|
||||
}: {
|
||||
flake.nixosModules.wlogout = moduleWithSystem ({self', ...}: {
|
||||
environment.systemPackages = with self'.packages; [
|
||||
wlogout
|
||||
];
|
||||
});
|
||||
perSystem = {pkgs, ...}: {
|
||||
packages.wlogout = inputs.wrappers.lib.wrapPackage ({...}: {
|
||||
inherit pkgs;
|
||||
package = pkgs.wlogout;
|
||||
flags = {
|
||||
"--css" = ./style.css;
|
||||
"--layout" = ./layout;
|
||||
"--buttons-per-row" = "5";
|
||||
};
|
||||
});
|
||||
};
|
||||
}
|
||||
|
Before Width: | Height: | Size: 5.1 KiB |
|
Before Width: | Height: | Size: 3.9 KiB |
|
Before Width: | Height: | Size: 7.0 KiB |
|
Before Width: | Height: | Size: 5.6 KiB |
|
Before Width: | Height: | Size: 4.5 KiB |
@@ -1,30 +0,0 @@
|
||||
{
|
||||
"label" : "lock",
|
||||
"action" : "hyprlock",
|
||||
"text" : "Lock",
|
||||
"keybind" : "l"
|
||||
}
|
||||
{
|
||||
"label" : "logout",
|
||||
"action" : "hyprctl dispatch 'hl.dsp.exit()'" ,
|
||||
"text" : "Logout",
|
||||
"keybind" : "e"
|
||||
}
|
||||
{
|
||||
"label" : "shutdown",
|
||||
"action" : "systemctl poweroff",
|
||||
"text" : "Shutdown",
|
||||
"keybind" : "s"
|
||||
}
|
||||
{
|
||||
"label" : "suspend",
|
||||
"action" : "systemctl suspend",
|
||||
"text" : "Sleep",
|
||||
"keybind" : "u"
|
||||
}
|
||||
{
|
||||
"label" : "reboot",
|
||||
"action" : "systemctl reboot",
|
||||
"text" : "Reboot",
|
||||
"keybind" : "r"
|
||||
}
|
||||
@@ -1,73 +0,0 @@
|
||||
* {
|
||||
background-image: none;
|
||||
box-shadow: none;
|
||||
}
|
||||
|
||||
window {
|
||||
background-color: rgba(12, 12, 12, 0.05);
|
||||
}
|
||||
|
||||
button {
|
||||
border-radius: 0;
|
||||
border-color: #cba6f7;
|
||||
text-decoration-color: #ffffff;
|
||||
color: #FFFFFF;
|
||||
background-color: #313244;
|
||||
border-style: solid none;
|
||||
border-width: 4px;
|
||||
background-repeat: no-repeat;
|
||||
background-position: 50% 30%;
|
||||
background-size: 75%;
|
||||
}
|
||||
|
||||
button:first-child {
|
||||
border-top-left-radius: 10px;
|
||||
border-bottom-left-radius: 10px;
|
||||
}
|
||||
|
||||
button:last-child {
|
||||
border-top-right-radius: 10px;
|
||||
border-bottom-right-radius: 10px;
|
||||
}
|
||||
|
||||
#lock {
|
||||
border-left-style: solid;
|
||||
background-image: image(url("./icons/lock.png"));
|
||||
}
|
||||
|
||||
#logout {
|
||||
background-image: image(url("./icons/exit.png"));
|
||||
}
|
||||
|
||||
#suspend {
|
||||
background-image: image(url("./icons/slwwp.png"));
|
||||
}
|
||||
|
||||
#shutdown {
|
||||
background-image: image(url("./icons/power.png"));
|
||||
}
|
||||
|
||||
#reboot {
|
||||
border-right-style: solid;
|
||||
background-image: image(url("./icons/reload.png"));
|
||||
}
|
||||
|
||||
#lock:focus {
|
||||
background-color: #f38ba8;
|
||||
}
|
||||
|
||||
#logout:focus {
|
||||
background-color: #fab387;
|
||||
}
|
||||
|
||||
#shutdown:focus {
|
||||
background-color: #a6e3a1;
|
||||
}
|
||||
|
||||
#suspend:focus {
|
||||
background-color: #f9e2af;
|
||||
}
|
||||
|
||||
#reboot:focus {
|
||||
background-color: #cba6f7;
|
||||
}
|
||||
@@ -1,26 +0,0 @@
|
||||
{
|
||||
inputs,
|
||||
moduleWithSystem,
|
||||
...
|
||||
}: {
|
||||
flake.nixosModules.woomer = moduleWithSystem ({self', ...}: {
|
||||
environment.systemPackages = with self'.packages; [
|
||||
woomer
|
||||
];
|
||||
});
|
||||
perSystem = {
|
||||
pkgs,
|
||||
inputs',
|
||||
...
|
||||
}: {
|
||||
packages.woomer = inputs.wrappers.lib.wrapPackage ({...}: {
|
||||
inherit pkgs;
|
||||
package = inputs'.woomer.packages.default;
|
||||
flags = {
|
||||
"--monitor" = "DP-1";
|
||||
"--output" = "DP-1";
|
||||
"--radius" = "2";
|
||||
};
|
||||
});
|
||||
};
|
||||
}
|
||||
@@ -1,35 +0,0 @@
|
||||
{
|
||||
moduleWithSystem,
|
||||
inputs,
|
||||
...
|
||||
}: {
|
||||
flake.nixosModules.wpaperd = moduleWithSystem ({self', ...}: {
|
||||
environment.systemPackages = with self'.packages; [
|
||||
wpaperd
|
||||
];
|
||||
});
|
||||
perSystem = {pkgs, ...}: {
|
||||
packages.wpaperd = let
|
||||
config-file = builtins.toFile "config.toml" ''
|
||||
[any]
|
||||
path = "${./wallpapers}"
|
||||
|
||||
[HDMI-A-1]
|
||||
path = "${./wallpapers/topo1.png}"
|
||||
|
||||
[DP-1]
|
||||
path = "${./wallpapers/topo2.png}"
|
||||
|
||||
[DP-2]
|
||||
path = "${./wallpapers/topo3.png}"
|
||||
'';
|
||||
in
|
||||
inputs.wrappers.lib.wrapPackage ({...}: {
|
||||
inherit pkgs;
|
||||
package = pkgs.wpaperd;
|
||||
flags = {
|
||||
"--config" = config-file;
|
||||
};
|
||||
});
|
||||
};
|
||||
}
|
||||
|
Before Width: | Height: | Size: 102 KiB |
|
Before Width: | Height: | Size: 199 KiB |
@@ -1,17 +0,0 @@
|
||||
{moduleWithSystem, ...}: {
|
||||
flake.nixosModules.wshowkeys = moduleWithSystem ({
|
||||
self',
|
||||
pkgs,
|
||||
...
|
||||
}: let
|
||||
lib = pkgs.lib;
|
||||
in {
|
||||
programs.wshowkeys = {
|
||||
enable = true;
|
||||
package = self'.packages.wshowkeys;
|
||||
};
|
||||
});
|
||||
perSystem = {inputs', ...}: {
|
||||
packages.wshowkeys = inputs'.wshowkeys.packages.default;
|
||||
};
|
||||
}
|
||||
@@ -17,11 +17,6 @@ final_space = true
|
||||
alignment = 'left'
|
||||
newline = true
|
||||
|
||||
[[blocks.segments]] # Hostname
|
||||
type = 'text'
|
||||
style = 'plain'
|
||||
template = '{{ if .Env.SSH_CLIENT }}<green> {{.HostName}}</> <#7f849c>|</> {{ end }}'
|
||||
|
||||
[[blocks.segments]]
|
||||
type = 'text'
|
||||
style = 'plain'
|
||||
|
||||
@@ -1,16 +1,16 @@
|
||||
{
|
||||
self,
|
||||
inputs,
|
||||
moduleWithSystem,
|
||||
...
|
||||
}: {
|
||||
flake.nixosModules.zsh = moduleWithSystem ({
|
||||
flake.nixosModules.zsh = {
|
||||
pkgs,
|
||||
self',
|
||||
lib,
|
||||
...
|
||||
}: {
|
||||
nixpkgs.overlays = [
|
||||
(final: prev: {
|
||||
zsh = self'.packages.zsh;
|
||||
zsh = self.packages.${pkgs.stdenv.hostPlatform.system}.zsh;
|
||||
})
|
||||
];
|
||||
programs.zsh = {
|
||||
@@ -22,86 +22,41 @@
|
||||
histSize = 10000;
|
||||
};
|
||||
users.defaultUserShell = pkgs.zsh;
|
||||
});
|
||||
};
|
||||
perSystem = {
|
||||
pkgs,
|
||||
self',
|
||||
lib,
|
||||
flakeLocation,
|
||||
self',
|
||||
...
|
||||
}: {
|
||||
packages = {
|
||||
zsh = lib.warnIf (flakeLocation == "") "Flake Location is undefined. Are you building in the right directory?"
|
||||
inputs.wrappers.wrappers.zsh.wrap {
|
||||
zsh = inputs.wrappers.wrappers.zsh.wrap {
|
||||
inherit pkgs;
|
||||
runtimePkgs = [pkgs.carapace pkgs.devenv pkgs.fzf];
|
||||
runtimePkgs = [pkgs.carapace];
|
||||
zshAliases = {
|
||||
ls = "${lib.getExe pkgs.lsd} -l";
|
||||
v = lib.getExe self'.packages.nvim;
|
||||
cat = lib.getExe pkgs.bat;
|
||||
lg = lib.getExe pkgs.lazygit;
|
||||
devenv = lib.getExe pkgs.devenv;
|
||||
carapace = lib.getExe pkgs.carapace;
|
||||
man = "man -P \"${lib.getExe pkgs.bat} -p\"";
|
||||
nsh = "nix-shell -p";
|
||||
nrs =
|
||||
if flakeLocation != ""
|
||||
then "( cd ${flakeLocation} && sudo nixos-rebuild switch --impure --flake . )"
|
||||
else "echo 'Flake location not specified. Did you build with --impure?'";
|
||||
vinix =
|
||||
if flakeLocation != ""
|
||||
then "nvim --cmd 'cd ${flakeLocation}'"
|
||||
else "echo 'Flake location not specified. Did you build with --impure?'";
|
||||
};
|
||||
zshrc.content = ''
|
||||
source ${./devenv.zsh}
|
||||
|
||||
if (( ''${+terminfo[smkx]} )) && (( ''${+terminfo[rmkx]} )); then
|
||||
function zle-line-init() { echoti smkx }
|
||||
function zle-line-finish() { echoti rmkx }
|
||||
zle -N zle-line-init
|
||||
zle -N zle-line-finish
|
||||
fi
|
||||
|
||||
autoload -U compinit && compinit
|
||||
export CARAPACE_BRIDGES='zsh,fish,bash,inshellisense' # optional
|
||||
zstyle ':completion:*' format $'\e[2;37mCompleting %d\e[m'
|
||||
source <(${lib.getExe pkgs.carapace} _carapace)
|
||||
zstyle ':completion:*' matcher-list 'm:{[:lower:]}={[:upper:]}' 'r:|[._-]=* r:|=*' 'l:|=* r:|=*'
|
||||
|
||||
autoload -U select-word-style
|
||||
select-word-style bash
|
||||
|
||||
autoload -U up-line-or-beginning-search down-line-or-beginning-search
|
||||
zle -N up-line-or-beginning-search
|
||||
zle -N down-line-or-beginning-search
|
||||
bindkey "^[OA" up-line-or-beginning-search
|
||||
bindkey "^[OB" down-line-or-beginning-search
|
||||
|
||||
bindkey "^[[1;5C" forward-word
|
||||
bindkey "^[[1;5D" backward-word
|
||||
bindkey "^[[3;5~" kill-word
|
||||
bindkey "^H" backward-kill-word
|
||||
|
||||
source <(${lib.getExe pkgs.fzf} --zsh)
|
||||
|
||||
setopt NO_CASE_GLOB
|
||||
|
||||
if command -v ${lib.getExe pkgs.nix-your-shell} > /dev/null; then
|
||||
${lib.getExe pkgs.nix-your-shell} -- zsh | source /dev/stdin
|
||||
fi
|
||||
|
||||
export EDITOR=nvim
|
||||
|
||||
eval "$(${lib.getExe self'.packages.ohMyPosh} init zsh)"
|
||||
|
||||
eval "$(${lib.getExe pkgs.devenv} hook zsh)"
|
||||
eval "$(${lib.getExe self.packages.${pkgs.host.stdenv.hostPlatform.system}.ohMyPosh} init zsh)"
|
||||
|
||||
typeset -ag precmd_functions
|
||||
if (( ! ''${precmd_functions[(I)__devenv_reload_apply]} )); then
|
||||
precmd_functions+=(__devenv_reload_apply)
|
||||
fi
|
||||
if (( ! ''${precmd_functions[(I)__devenv_restore_path]} )); then
|
||||
precmd_functions+=(__devenv_restore_path)
|
||||
fi
|
||||
${lib.getExe pkgs.any-nix-shell} zsh --info-right | source /dev/stdin
|
||||
'';
|
||||
};
|
||||
ohMyPosh = inputs.wrappers.wrappers.oh-my-posh.wrap {
|
||||
|
||||
@@ -1,82 +0,0 @@
|
||||
__devenv_reload_apply() {
|
||||
if [ -n "$DEVENV_RELOAD_FILE" ] && [ -f "$DEVENV_RELOAD_FILE" ]; then
|
||||
local output
|
||||
output=$(DEVENV_RELOAD_FILE="$DEVENV_RELOAD_FILE" bash <<'RELOAD_BASH' 2>/dev/null
|
||||
__devenv_ignored_var() {
|
||||
case "$1" in
|
||||
_*|PWD|OLDPWD|SHLVL|SHELL|SHELLOPTS|BASHOPTS|BASH_*|HISTCMD|HISTFILE)
|
||||
return 0 ;;
|
||||
PS1|PS2|PS3|PS4|PROMPT|PROMPT_COMMAND|PROMPT_DIRTRIM)
|
||||
return 0 ;;
|
||||
COMP_*|READLINE_*|MAILCHECK|COLUMNS|LINES|RANDOM|SECONDS|LINENO|EPOCHSECONDS|EPOCHREALTIME|SRANDOM)
|
||||
return 0 ;;
|
||||
STARSHIP_*|__fish*|DIRENV_*|nix_saved_*)
|
||||
return 0 ;;
|
||||
*) return 1 ;;
|
||||
esac
|
||||
}
|
||||
__devenv_capture_env() { declare -p -x 2>/dev/null | LC_ALL=C sort; }
|
||||
__devenv_serialize_diff() { gzip -c | base64 -w0; }
|
||||
__devenv_deserialize_diff() { echo "$1" | base64 -d | gzip -d 2>/dev/null; }
|
||||
__devenv_compute_diff() {
|
||||
local before_file="$1" after_file diff_content
|
||||
after_file=$(mktemp); diff_content=$(mktemp)
|
||||
__devenv_capture_env > "$after_file"
|
||||
local -A before_vars after_vars
|
||||
while IFS= read -r line; do
|
||||
[[ "$line" != declare\ -x\ * ]] && continue
|
||||
local vardef="${line#declare -x }" var="${vardef%%=*}"
|
||||
[[ -z "$var" ]] && continue
|
||||
__devenv_ignored_var "$var" && continue
|
||||
before_vars["$var"]="$line"
|
||||
done < "$before_file"
|
||||
while IFS= read -r line; do
|
||||
[[ "$line" != declare\ -x\ * ]] && continue
|
||||
local vardef="${line#declare -x }" var="${vardef%%=*}"
|
||||
[[ -z "$var" ]] && continue
|
||||
__devenv_ignored_var "$var" && continue
|
||||
after_vars["$var"]="$line"
|
||||
done < "$after_file"
|
||||
for var in "${!before_vars[@]}"; do
|
||||
[[ "${after_vars[$var]}" != "${before_vars[$var]}" ]] && echo "P:${before_vars[$var]}" >> "$diff_content"
|
||||
done
|
||||
for var in "${!after_vars[@]}"; do
|
||||
if [[ -z "${before_vars[$var]+x}" ]]; then echo "N:$var" >> "$diff_content"
|
||||
elif [[ "${after_vars[$var]}" != "${before_vars[$var]}" ]]; then echo "N:$var" >> "$diff_content"; fi
|
||||
done
|
||||
_DEVENV_DIFF=$(__devenv_serialize_diff < "$diff_content"); export _DEVENV_DIFF
|
||||
rm -f "$after_file" "$diff_content"
|
||||
}
|
||||
__devenv_apply_reverse_diff() {
|
||||
[[ -z "$_DEVENV_DIFF" ]] && return
|
||||
local -A prev_vars
|
||||
local diff_content; diff_content=$(__devenv_deserialize_diff "$_DEVENV_DIFF")
|
||||
while IFS= read -r line; do
|
||||
if [[ "$line" == P:declare\ * ]]; then
|
||||
local decl="${line#P:}" var="${decl#declare -x }"; var="${var%%=*}"
|
||||
prev_vars["$var"]=1; eval "export ${decl#declare -x }" 2>/dev/null
|
||||
fi
|
||||
done <<< "$diff_content"
|
||||
while IFS= read -r line; do
|
||||
if [[ "$line" == N:* ]]; then
|
||||
local var="${line#N:}"
|
||||
[[ -z "${prev_vars[$var]+x}" ]] && unset "$var"
|
||||
fi
|
||||
done <<< "$diff_content"
|
||||
}
|
||||
__devenv_apply_reverse_diff
|
||||
_before=$(mktemp); __devenv_capture_env > "$_before"
|
||||
if { : >/dev/tty; } 2>/dev/null; then _devenv_reload_out=/dev/tty; else _devenv_reload_out=/dev/null; fi
|
||||
source "$DEVENV_RELOAD_FILE" >"$_devenv_reload_out" 2>"$_devenv_reload_out"
|
||||
rm -f "$DEVENV_RELOAD_FILE"; unset _devenv_reload_out
|
||||
__devenv_compute_diff "$_before"; rm -f "$_before"
|
||||
export -p
|
||||
RELOAD_BASH
|
||||
)
|
||||
if [ -n "$output" ]; then eval "$output"; fi
|
||||
_DEVENV_PATH="$PATH"
|
||||
fi
|
||||
}
|
||||
__devenv_restore_path() {
|
||||
[ -n "$_DEVENV_PATH" ] && export PATH="$_DEVENV_PATH"
|
||||
}
|
||||
@@ -7,15 +7,6 @@
|
||||
modules = with self.nixosModules; [
|
||||
desktop
|
||||
hackstationConfiguration
|
||||
amdDrivers
|
||||
youtube
|
||||
distcc
|
||||
development
|
||||
bottles
|
||||
gaming
|
||||
davinci
|
||||
sddm-autologin
|
||||
nix-ld
|
||||
];
|
||||
};
|
||||
}
|
||||
|
||||
@@ -1,16 +1,9 @@
|
||||
{...}: {
|
||||
{
|
||||
self,
|
||||
inputs,
|
||||
...
|
||||
}: {
|
||||
flake.nixosModules.hackstationConfiguration = {pkgs, ...}: {
|
||||
virtualisation.docker = {
|
||||
enable = true;
|
||||
};
|
||||
networking = {
|
||||
interfaces.enp5s0.wakeOnLan.enable = true;
|
||||
hostName = "HACKSTATION";
|
||||
};
|
||||
environment.systemPackages = with pkgs; [
|
||||
tor-browser
|
||||
tor
|
||||
cinny-desktop
|
||||
];
|
||||
networking.hostName = "HACKSTATION";
|
||||
};
|
||||
}
|
||||
|
||||
@@ -1,16 +0,0 @@
|
||||
{
|
||||
self,
|
||||
inputs,
|
||||
...
|
||||
}: {
|
||||
flake.nixosConfigurations.mobile02 = inputs.nixpkgs.lib.nixosSystem {
|
||||
modules = with self.nixosModules; [
|
||||
desktop
|
||||
mobile02Configuration
|
||||
intelDrivers
|
||||
development
|
||||
upower
|
||||
music
|
||||
];
|
||||
};
|
||||
}
|
||||
@@ -1,11 +0,0 @@
|
||||
{
|
||||
self,
|
||||
inputs,
|
||||
...
|
||||
}: {
|
||||
flake.nixosModules.mobile02Configuration = {...}: {
|
||||
networking = {
|
||||
hostName = "mobile02";
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -1,20 +0,0 @@
|
||||
{
|
||||
self,
|
||||
inputs,
|
||||
...
|
||||
}: {
|
||||
flake.nixosConfigurations.mobile03 = inputs.nixpkgs.lib.nixosSystem {
|
||||
modules = with self.nixosModules; [
|
||||
desktop
|
||||
mobile03Configuration
|
||||
intelDrivers
|
||||
development
|
||||
thinkpadFanControl
|
||||
upower
|
||||
distcc
|
||||
({...}: {
|
||||
tabletSupport = true;
|
||||
})
|
||||
];
|
||||
};
|
||||
}
|
||||
@@ -1,11 +0,0 @@
|
||||
{
|
||||
self,
|
||||
inputs,
|
||||
...
|
||||
}: {
|
||||
flake.nixosModules.mobile03Configuration = {...}: {
|
||||
networking = {
|
||||
hostName = "mobile03";
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -8,25 +8,14 @@
|
||||
lib,
|
||||
...
|
||||
}: {
|
||||
environment.systemPackages = with pkgs; [
|
||||
playerctl
|
||||
pavucontrol
|
||||
pulseaudioFull
|
||||
pipewire
|
||||
pipewire.jack
|
||||
];
|
||||
services.pulseaudio.enable = false;
|
||||
security.rtkit.enable = true;
|
||||
|
||||
nixpkgs.config.pulseaudio = true;
|
||||
|
||||
services.pipewire = {
|
||||
enable = true;
|
||||
alsa.enable = true;
|
||||
alsa.support32Bit = true;
|
||||
pulse.enable = true;
|
||||
jack.enable = true;
|
||||
wireplumber.enable = true;
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
@@ -1,5 +1,13 @@
|
||||
{self, ...}: {
|
||||
flake.nixosModules.core = {pkgs, ...}: let
|
||||
{
|
||||
self,
|
||||
inputs,
|
||||
...
|
||||
}: {
|
||||
flake.nixosModules.core = {
|
||||
pkgs,
|
||||
lib,
|
||||
...
|
||||
}: let
|
||||
modules = with self.nixosModules; [
|
||||
user
|
||||
bootloader
|
||||
@@ -13,28 +21,5 @@
|
||||
/etc/nixos/hardware-configuration.nix
|
||||
]
|
||||
++ modules;
|
||||
|
||||
services = {
|
||||
openssh = {
|
||||
enable = true;
|
||||
settings = {
|
||||
PermitRootLogin = "yes";
|
||||
};
|
||||
};
|
||||
avahi.enable = true;
|
||||
};
|
||||
environment.systemPackages = with pkgs; [
|
||||
vim
|
||||
unzip
|
||||
p7zip-rar
|
||||
usbutils
|
||||
lsof
|
||||
gvfs
|
||||
libnotify
|
||||
python315
|
||||
curlWithGnuTls
|
||||
wget
|
||||
];
|
||||
system.stateVersion = "25.05";
|
||||
};
|
||||
}
|
||||
|
||||
@@ -1,18 +1,13 @@
|
||||
{inputs, ...}: {
|
||||
perSystem = {system, ...}: {
|
||||
_module.args = {
|
||||
unfreePkgs = import inputs.nixpkgs {
|
||||
inherit system;
|
||||
config.allowUnfree = true;
|
||||
};
|
||||
unstablePkgs = import inputs.nixpkgs-unstable {
|
||||
inherit system;
|
||||
};
|
||||
# Make flakeLocation universally addressable
|
||||
flakeLocation = builtins.getEnv "PWD";
|
||||
};
|
||||
};
|
||||
flake.nixosModules.nix = {...}: {
|
||||
{
|
||||
self,
|
||||
inputs,
|
||||
...
|
||||
}: {
|
||||
flake.nixosModules.nix = {
|
||||
pkgs,
|
||||
lib,
|
||||
...
|
||||
}: {
|
||||
nix = {
|
||||
registry = {
|
||||
voidarc = {
|
||||
@@ -28,7 +23,6 @@
|
||||
};
|
||||
settings = {
|
||||
cores = 6;
|
||||
trusted-users = ["root" "user01"];
|
||||
download-buffer-size = 524288000;
|
||||
experimental-features = [
|
||||
"nix-command"
|
||||
|
||||
@@ -20,12 +20,7 @@
|
||||
description = "user01";
|
||||
extraGroups = [
|
||||
"root"
|
||||
"seat"
|
||||
"audio"
|
||||
"video"
|
||||
"wheel"
|
||||
"plugdev"
|
||||
"networkmanager"
|
||||
];
|
||||
};
|
||||
};
|
||||
|
||||
@@ -1,22 +1,20 @@
|
||||
{
|
||||
self,
|
||||
moduleWithSystem,
|
||||
inputs,
|
||||
...
|
||||
}: {
|
||||
flake.nixosModules.desktop = moduleWithSystem ({pkgs, ...}: let
|
||||
flake.nixosModules.desktop = {
|
||||
pkgs,
|
||||
lib,
|
||||
...
|
||||
}: let
|
||||
modules = with self.nixosModules; [
|
||||
core
|
||||
hyprland
|
||||
sddm
|
||||
network
|
||||
omnisearch
|
||||
tailscale
|
||||
sops
|
||||
];
|
||||
in {
|
||||
imports = modules;
|
||||
environment.systemPackages = with pkgs; [
|
||||
mpv
|
||||
];
|
||||
});
|
||||
};
|
||||
}
|
||||
|
||||
@@ -1,11 +1,13 @@
|
||||
{...}: {
|
||||
flake.nixosModules.amdDrivers = {pkgs, ...}: {
|
||||
environment.systemPackages = with pkgs; [
|
||||
mesa
|
||||
rocmPackages.rocm-smi
|
||||
rocmPackages.rocminfo
|
||||
vulkan-tools
|
||||
];
|
||||
{
|
||||
self,
|
||||
inputs,
|
||||
...
|
||||
}: {
|
||||
flake.nixosModules.amdDrivers = {
|
||||
pkgs,
|
||||
lib,
|
||||
...
|
||||
}: {
|
||||
hardware = {
|
||||
graphics = {
|
||||
enable = true;
|
||||
|
||||
@@ -8,24 +8,11 @@
|
||||
lib,
|
||||
...
|
||||
}: {
|
||||
environment.systemPackages = with pkgs; [
|
||||
mesa
|
||||
vulkan-tools
|
||||
];
|
||||
|
||||
environment.sessionVariables = {
|
||||
LIBVA_DRIVER_NAME = "iHD";
|
||||
};
|
||||
|
||||
boot.initrd.kernelModules = ["i915"];
|
||||
services.xserver.videoDrivers = ["modesetting"];
|
||||
|
||||
hardware.graphics = {
|
||||
enable = true;
|
||||
extraPackages = with pkgs; [
|
||||
intel-media-driver
|
||||
vpl-gpu-rt
|
||||
intel-compute-runtime
|
||||
intel-vaapi-driver
|
||||
libva-vdpau-driver
|
||||
];
|
||||
};
|
||||
};
|
||||
|
||||
@@ -1,27 +0,0 @@
|
||||
{
|
||||
self,
|
||||
moduleWithSystem,
|
||||
...
|
||||
}: {
|
||||
flake.nixosModules.thinkpadFanControl = moduleWithSystem ({inputs', ...}: {
|
||||
# Enable fan control for the thinkpad module (why is this not the default??)
|
||||
boot.extraModprobeConfig = ''
|
||||
options thinkpad_acpi fan_control=1
|
||||
'';
|
||||
|
||||
services.thinkfan = {
|
||||
enable = true;
|
||||
|
||||
extraArgs = ["-s" "5"];
|
||||
|
||||
levels = [
|
||||
[0 0 55]
|
||||
[1 50 60]
|
||||
[3 58 68]
|
||||
[5 65 75]
|
||||
[7 73 85]
|
||||
["level disengaged" 82 32767]
|
||||
];
|
||||
};
|
||||
});
|
||||
}
|
||||
@@ -1,11 +0,0 @@
|
||||
{...}: {
|
||||
flake.nixosModules.upower = {pkgs, ...}: {
|
||||
environment.systemPackages = with pkgs; [
|
||||
upower
|
||||
];
|
||||
services = {
|
||||
upower.enable = true;
|
||||
power-profiles-daemon.enable = true;
|
||||
};
|
||||
};
|
||||
}
|
||||
82
modules/system/gtk/default.nix
Normal file
@@ -0,0 +1,82 @@
|
||||
{
|
||||
self,
|
||||
inputs,
|
||||
...
|
||||
}: {
|
||||
perSystem = {
|
||||
pkgs,
|
||||
system,
|
||||
...
|
||||
}: {
|
||||
packages.catppuccinGtkMochaMauve = pkgs.catppuccin-gtk.override {
|
||||
variant = "mocha";
|
||||
accents = ["mauve"];
|
||||
size = "standard";
|
||||
tweaks = ["rimless"];
|
||||
};
|
||||
};
|
||||
|
||||
flake.nixosModules.gtkTheme = {
|
||||
config,
|
||||
pkgs,
|
||||
lib,
|
||||
...
|
||||
}: let
|
||||
catppuccinGtk = pkgs.catppuccin-gtk.override {
|
||||
variant = "mocha";
|
||||
accents = ["mauve"];
|
||||
size = "standard";
|
||||
tweaks = ["rimless"];
|
||||
};
|
||||
|
||||
gtkThemeName = "Catppuccin-Mocha-Standard-Mauve-Dark";
|
||||
|
||||
gtkSettingsCommon = ''
|
||||
gtk-application-prefer-dark-theme = true
|
||||
gtk-theme-name = ${gtkThemeName}
|
||||
gtk-icon-theme-name = Catppuccin-Mocha-Mauve
|
||||
gtk-font-name = FiraMono Nerd Font 11
|
||||
gtk-cursor-theme-name = Bibata-Modern-Ice
|
||||
gtk-cursor-theme-size = 20
|
||||
'';
|
||||
in {
|
||||
fonts.packages = [pkgs.nerd-fonts.fira-mono];
|
||||
|
||||
environment.systemPackages = with pkgs; [
|
||||
catppuccinGtk
|
||||
bibata-cursors
|
||||
catppuccin-icons
|
||||
];
|
||||
|
||||
environment.etc = {
|
||||
"gtk-3.0/settings.ini".source = pkgs.writeText "gtk3-settings.ini" ''
|
||||
[Settings]
|
||||
${gtkSettingsCommon}
|
||||
'';
|
||||
|
||||
"gtk-4.0/settings.ini".source = pkgs.writeText "gtk4-settings.ini" ''
|
||||
[Settings]
|
||||
${gtkSettingsCommon}
|
||||
'';
|
||||
};
|
||||
|
||||
environment.variables = {
|
||||
XCURSOR_THEME = "Bibata-Modern-Ice";
|
||||
XCURSOR_SIZE = "20";
|
||||
};
|
||||
|
||||
programs.dconf.profiles.user.databases = [
|
||||
{
|
||||
lockAll = false;
|
||||
settings = {
|
||||
"org/gnome/desktop/interface" = {
|
||||
gtk-theme = gtkThemeName;
|
||||
icon-theme = "Catppuccin-Mocha-Mauve";
|
||||
cursor-theme = "Bibata-Modern-Ice";
|
||||
font-name = "FiraMono Nerd Font 11";
|
||||
};
|
||||
};
|
||||
}
|
||||
];
|
||||
};
|
||||
}
|
||||
@@ -1,5 +1,13 @@
|
||||
{moduleWithSystem, ...}: {
|
||||
flake.nixosModules.network = moduleWithSystem ({...}: {config, ...}: {
|
||||
{
|
||||
self,
|
||||
inputs,
|
||||
...
|
||||
}: {
|
||||
flake.nixosModules.networking = {
|
||||
pkgs,
|
||||
lib,
|
||||
...
|
||||
}: {
|
||||
networking = {
|
||||
networkmanager = {
|
||||
enable = true;
|
||||
@@ -9,16 +17,11 @@
|
||||
"1.1.1.1"
|
||||
"8.8.8.8"
|
||||
];
|
||||
firewall.enable = false;
|
||||
};
|
||||
services.unbound = {
|
||||
enable = true;
|
||||
};
|
||||
programs.nm-applet.enable =
|
||||
if config.tabletSupport == true
|
||||
then true
|
||||
else false;
|
||||
|
||||
systemd.services.NetworkManager-wait-online.enable = false;
|
||||
});
|
||||
};
|
||||
}
|
||||
|
||||
22
modules/system/network/wake-on-lan.nix
Normal file
@@ -0,0 +1,22 @@
|
||||
{
|
||||
self,
|
||||
inputs,
|
||||
...
|
||||
}: {
|
||||
flake.nixosModules.networking = {
|
||||
pkgs,
|
||||
lib,
|
||||
...
|
||||
}: let
|
||||
modules = with self.nixosModules; [
|
||||
networking
|
||||
];
|
||||
in {
|
||||
imports = modules;
|
||||
networking = {
|
||||
# Just for hackstation, replace enp5s0 with primary interface
|
||||
interfaces.enp5s0.wakeOnLan.enable = true;
|
||||
firewall.enable = false;
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -1,15 +0,0 @@
|
||||
{moduleWithSystem, ...}: {
|
||||
flake.nixosModules.nix-ld = moduleWithSystem ({pkgs, ...}: {
|
||||
programs = {
|
||||
nix-ld = {
|
||||
enable = true;
|
||||
libraries = with pkgs; [
|
||||
util-linux
|
||||
stdenv.cc.cc
|
||||
zlib
|
||||
libusb1
|
||||
];
|
||||
};
|
||||
};
|
||||
});
|
||||
}
|
||||
@@ -1,36 +0,0 @@
|
||||
{
|
||||
self,
|
||||
inputs,
|
||||
...
|
||||
}: {
|
||||
flake.nixosModules.bibataCursors = {
|
||||
pkgs,
|
||||
lib,
|
||||
...
|
||||
}: let
|
||||
in {
|
||||
fonts.packages = with pkgs.nerd-fonts; [
|
||||
fira-mono
|
||||
];
|
||||
environment.systemPackages = with pkgs; [
|
||||
bibata-cursors
|
||||
];
|
||||
|
||||
environment.variables = {
|
||||
XCURSOR_THEME = "Bibata-Modern-Ice";
|
||||
XCURSOR_SIZE = "20";
|
||||
};
|
||||
|
||||
programs.dconf.profiles.user.databases = [
|
||||
{
|
||||
lockAll = false;
|
||||
settings = {
|
||||
"org/gnome/desktop/interface" = {
|
||||
cursor-theme = "Bibata-Modern-Ice";
|
||||
font-name = "FiraMono Nerd Font 11";
|
||||
};
|
||||
};
|
||||
}
|
||||
];
|
||||
};
|
||||
}
|
||||
@@ -1,19 +0,0 @@
|
||||
{
|
||||
self,
|
||||
inputs,
|
||||
...
|
||||
}: {
|
||||
flake.nixosModules.systemTheme = {
|
||||
config,
|
||||
pkgs,
|
||||
lib,
|
||||
...
|
||||
}: let
|
||||
modules = with self.nixosModules; [
|
||||
bibataCursors
|
||||
catppuccinGtk
|
||||
];
|
||||
in {
|
||||
imports = modules;
|
||||
};
|
||||
}
|
||||