Compare commits

...

10 Commits

8 changed files with 311 additions and 531 deletions

View File

@@ -8,24 +8,59 @@ To use the modules, add the following flake input to your flake:
```nix
dotfiles-modules = {
url = "gitlab:quirinecker/dotfiles-modules";
url = "github:quirinecker/dotfiles-modules";
inputs.nixpkgs.follows = "nixpkgs";
};
```
Then import the modules in your home-manager configuration:
In case you want to update the input flakes this flake imports yourself (recommended), then you would need to declare the inputs yourself
and make this flake follow those inputs:
```nix
dotfiles-modules = {
url = "github:quirinecker/dotfiles-modules";
inputs.nixpkgs.follows = "nixpkgs";
inputs.zen-browser.follows = "zen-browser";
inputs.walker.follows = "walker";
};
zen-browser = {
url = "github:0xc000022070/zen-browser-flake";
inputs.nixpkgs.follows = "nixpkgs";
};
walker = {
url = "github:abenz1267/walker";
inputs.nixpkgs.follows = "nixpkgs";
};
```
Then import the modules in your home-manager configuration or add it to the modules of the home configuration:
```nix
imports = [
inputs.dotfiles-modules.homemanager.default_apps
inputs.dotfiles-modules.homeManager
]
```
or
```nix
homeConfigurations.<username> = home-manager.lib.homeManagerConfiguration {
...
modules = [
inputs.dotfiles-modules.homeManager
];
};
```
**Note:** If you are new to NixOS, i might add a template repository for the modules which should be simmilar to my own homemanager config.
## Modules
There will be a link to the documentation for each module. This repository is still work in progress
The docs for the individual mdoules can be found [here](options.md).
## Development

View File

@@ -20,8 +20,27 @@
)
];
};
replaceNixPathWithRelative =
p:
let
match = builtins.match "^/nix/store/[^/]+/(.*)$" p;
in
if match != null then
"https://gitlab.com/quirinecker/dotfiles-modules/" + builtins.elemAt match 0
else
p;
transformOptions =
o:
let
declarations = o.declarations;
mappedDeclarations = builtins.map (d: replaceNixPathWithRelative d) declarations;
in
o // { declarations = mappedDeclarations; };
in
pkgs.nixosOptionsDoc {
inherit (eval) options;
options = eval.options;
transformOptions = o: transformOptions o;
};
}

View File

@@ -1,494 +0,0 @@
## _module\.args
Additional arguments passed to each module in addition to ones
like ` lib `, ` config `,
and ` pkgs `, ` modulesPath `\.
This option is also available to all submodules\. Submodules do not
inherit args from their parent module, nor do they provide args to
their parent module or sibling submodules\. The sole exception to
this is the argument ` name ` which is provided by
parent modules to a submodule and contains the attribute name
the submodule is bound to, or a unique generated name if it is
not bound to an attribute\.
Some arguments are already passed by default, of which the
following *cannot* be changed with this option:
- ` lib `: The nixpkgs library\.
- ` config `: The results of all options after merging the values from all modules together\.
- ` options `: The options declared in all modules\.
- ` specialArgs `: The ` specialArgs ` argument passed to ` evalModules `\.
- All attributes of ` specialArgs `
Whereas option values can generally depend on other option values
thanks to laziness, this does not apply to ` imports `, which
must be computed statically before anything else\.
For this reason, callers of the module system can provide ` specialArgs `
which are available during import resolution\.
For NixOS, ` specialArgs ` includes
` modulesPath `, which allows you to import
extra modules from the nixpkgs package tree without having to
somehow make the module aware of the location of the
` nixpkgs ` or NixOS directories\.
```
{ modulesPath, ... }: {
imports = [
(modulesPath + "/profiles/minimal.nix")
];
}
```
For NixOS, the default value for this option includes at least this argument:
- ` pkgs `: The nixpkgs package set according to
the ` nixpkgs.pkgs ` option\.
*Type:*
lazy attribute set of raw value
*Declared by:*
- [\<nixpkgs/lib/modules\.nix>](https://github.com/NixOS/nixpkgs/blob//lib/modules.nix)
## modules\.default_apps\.enable
Whether to enable default_apps\.
*Type:*
boolean
*Default:*
` false `
*Example:*
` true `
*Declared by:*
- [/nix/store/a661xl77ba24lv1j80jyijjvk1h6h1vz-source/homemanager/default_apps\.nix](file:///nix/store/a661xl77ba24lv1j80jyijjvk1h6h1vz-source/homemanager/default_apps.nix)
## modules\.editorconfig\.enable
Whether to enable enables editorconfig\.
*Type:*
boolean
*Default:*
` false `
*Example:*
` true `
*Declared by:*
- [/nix/store/a661xl77ba24lv1j80jyijjvk1h6h1vz-source/homemanager/editorconfig\.nix](file:///nix/store/a661xl77ba24lv1j80jyijjvk1h6h1vz-source/homemanager/editorconfig.nix)
## modules\.fish\.enable
Whether to enable fish\.
*Type:*
boolean
*Default:*
` false `
*Example:*
` true `
*Declared by:*
- [/nix/store/a661xl77ba24lv1j80jyijjvk1h6h1vz-source/homemanager/fish\.nix](file:///nix/store/a661xl77ba24lv1j80jyijjvk1h6h1vz-source/homemanager/fish.nix)
## modules\.hyprland\.enable
Whether to enable hyprland\.
*Type:*
boolean
*Default:*
` false `
*Example:*
` true `
*Declared by:*
- [/nix/store/a661xl77ba24lv1j80jyijjvk1h6h1vz-source/homemanager/hyprland\.nix](file:///nix/store/a661xl77ba24lv1j80jyijjvk1h6h1vz-source/homemanager/hyprland.nix)
## modules\.hyprpanel\.enable
Whether to enable hyprpanel\.
*Type:*
boolean
*Default:*
` false `
*Example:*
` true `
*Declared by:*
- [/nix/store/a661xl77ba24lv1j80jyijjvk1h6h1vz-source/homemanager/hyprpanel\.nix](file:///nix/store/a661xl77ba24lv1j80jyijjvk1h6h1vz-source/homemanager/hyprpanel.nix)
## modules\.hyprpanel\.avatar\.image
avatar image
*Type:*
absolute path
*Default:*
` "" `
*Declared by:*
- [/nix/store/a661xl77ba24lv1j80jyijjvk1h6h1vz-source/homemanager/hyprpanel\.nix](file:///nix/store/a661xl77ba24lv1j80jyijjvk1h6h1vz-source/homemanager/hyprpanel.nix)
## modules\.hyprpanel\.avatar\.name
Username to be displayed
*Type:*
string
*Default:*
` "John Doe" `
*Declared by:*
- [/nix/store/a661xl77ba24lv1j80jyijjvk1h6h1vz-source/homemanager/hyprpanel\.nix](file:///nix/store/a661xl77ba24lv1j80jyijjvk1h6h1vz-source/homemanager/hyprpanel.nix)
## modules\.neovim\.enable
Whether to enable neovim\.
*Type:*
boolean
*Default:*
` false `
*Example:*
` true `
*Declared by:*
- [/nix/store/a661xl77ba24lv1j80jyijjvk1h6h1vz-source/homemanager/neovim\.nix](file:///nix/store/a661xl77ba24lv1j80jyijjvk1h6h1vz-source/homemanager/neovim.nix)
## modules\.nushell\.enable
Whether to enable nushell\.
*Type:*
boolean
*Default:*
` false `
*Example:*
` true `
*Declared by:*
- [/nix/store/a661xl77ba24lv1j80jyijjvk1h6h1vz-source/homemanager/nushell\.nix](file:///nix/store/a661xl77ba24lv1j80jyijjvk1h6h1vz-source/homemanager/nushell.nix)
## modules\.starship\.enable
Whether to enable enables starship\.
*Type:*
boolean
*Default:*
` false `
*Example:*
` true `
*Declared by:*
- [/nix/store/a661xl77ba24lv1j80jyijjvk1h6h1vz-source/homemanager/starship\.nix](file:///nix/store/a661xl77ba24lv1j80jyijjvk1h6h1vz-source/homemanager/starship.nix)
## modules\.terminalEmulators\.ghostty\.enable
Whether to enable ghostty\.
*Type:*
boolean
*Default:*
` false `
*Example:*
` true `
*Declared by:*
- [/nix/store/a661xl77ba24lv1j80jyijjvk1h6h1vz-source/homemanager/terminal_emulators/ghostty\.nix](file:///nix/store/a661xl77ba24lv1j80jyijjvk1h6h1vz-source/homemanager/terminal_emulators/ghostty.nix)
## modules\.terminalEmulators\.kitty\.enable
Whether to enable kitty\.
*Type:*
boolean
*Default:*
` false `
*Example:*
` true `
*Declared by:*
- [/nix/store/a661xl77ba24lv1j80jyijjvk1h6h1vz-source/homemanager/terminal_emulators/kitty\.nix](file:///nix/store/a661xl77ba24lv1j80jyijjvk1h6h1vz-source/homemanager/terminal_emulators/kitty.nix)
## modules\.terminalEmulators\.wezterm\.enable
Whether to enable kitty\.
*Type:*
boolean
*Default:*
` false `
*Example:*
` true `
*Declared by:*
- [/nix/store/a661xl77ba24lv1j80jyijjvk1h6h1vz-source/homemanager/terminal_emulators/wezterm\.nix](file:///nix/store/a661xl77ba24lv1j80jyijjvk1h6h1vz-source/homemanager/terminal_emulators/wezterm.nix)
## modules\.theme\.enable
Whether to enable theme\.
*Type:*
boolean
*Default:*
` false `
*Example:*
` true `
*Declared by:*
- [/nix/store/a661xl77ba24lv1j80jyijjvk1h6h1vz-source/homemanager/theme\.nix](file:///nix/store/a661xl77ba24lv1j80jyijjvk1h6h1vz-source/homemanager/theme.nix)
## modules\.tmux\.enable
Whether to enable tmux\.
*Type:*
boolean
*Default:*
` false `
*Example:*
` true `
*Declared by:*
- [/nix/store/a661xl77ba24lv1j80jyijjvk1h6h1vz-source/homemanager/tmux\.nix](file:///nix/store/a661xl77ba24lv1j80jyijjvk1h6h1vz-source/homemanager/tmux.nix)
## modules\.utilities\.enable
Whether to enable utilities\.
*Type:*
boolean
*Default:*
` false `
*Example:*
` true `
*Declared by:*
- [/nix/store/a661xl77ba24lv1j80jyijjvk1h6h1vz-source/homemanager/utilities\.nix](file:///nix/store/a661xl77ba24lv1j80jyijjvk1h6h1vz-source/homemanager/utilities.nix)
## modules\.walker\.enable
Whether to enable walker\.
*Type:*
boolean
*Default:*
` false `
*Example:*
` true `
*Declared by:*
- [/nix/store/a661xl77ba24lv1j80jyijjvk1h6h1vz-source/homemanager/walker\.nix](file:///nix/store/a661xl77ba24lv1j80jyijjvk1h6h1vz-source/homemanager/walker.nix)

86
flake.lock generated
View File

@@ -25,27 +25,25 @@
"type": "github"
}
},
"home-manager": {
"flake-utils": {
"inputs": {
"nixpkgs": [
"nixpkgs"
]
"systems": "systems"
},
"locked": {
"lastModified": 1760462439,
"narHash": "sha256-bks3rTsKGlqehk4l7rViIg2lBnUsY6we22O+ecRZB/c=",
"owner": "nix-community",
"repo": "home-manager",
"rev": "990e5ce6791ff1f497a61280a82eb66e3789e0e9",
"lastModified": 1731533236,
"narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=",
"owner": "numtide",
"repo": "flake-utils",
"rev": "11707dc2f618dd54ca8739b309ec4fc024de578b",
"type": "github"
},
"original": {
"owner": "nix-community",
"repo": "home-manager",
"owner": "numtide",
"repo": "flake-utils",
"type": "github"
}
},
"home-manager_2": {
"home-manager": {
"inputs": {
"nixpkgs": [
"zen-browser",
@@ -66,6 +64,28 @@
"type": "github"
}
},
"nix-options-doc": {
"inputs": {
"flake-utils": "flake-utils",
"nixpkgs": [
"nixpkgs"
],
"rust-overlay": "rust-overlay"
},
"locked": {
"lastModified": 1742115705,
"narHash": "sha256-RfXwJPWBoWswIU68+y/XZfTWtFHd/fK14bKvOlRmfPo=",
"owner": "Thunderbottom",
"repo": "nix-options-doc",
"rev": "2caa4b5756a8666d65d70122f413e295f56886e7",
"type": "github"
},
"original": {
"owner": "Thunderbottom",
"repo": "nix-options-doc",
"type": "github"
}
},
"nixpkgs": {
"locked": {
"lastModified": 1760284886,
@@ -84,13 +104,49 @@
},
"root": {
"inputs": {
"home-manager": "home-manager",
"nix-options-doc": "nix-options-doc",
"nixpkgs": "nixpkgs",
"walker": "walker",
"zen-browser": "zen-browser"
}
},
"rust-overlay": {
"inputs": {
"nixpkgs": [
"nix-options-doc",
"nixpkgs"
]
},
"locked": {
"lastModified": 1740796337,
"narHash": "sha256-FuoXrXZPoJEZQ3PF7t85tEpfBVID9JQIOnVKMNfTAb0=",
"owner": "oxalica",
"repo": "rust-overlay",
"rev": "bbac9527bc6b28b6330b13043d0e76eac11720dc",
"type": "github"
},
"original": {
"owner": "oxalica",
"repo": "rust-overlay",
"type": "github"
}
},
"systems": {
"locked": {
"lastModified": 1681028828,
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
"owner": "nix-systems",
"repo": "default",
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
"type": "github"
},
"original": {
"owner": "nix-systems",
"repo": "default",
"type": "github"
}
},
"systems_2": {
"locked": {
"lastModified": 1689347949,
"narHash": "sha256-12tWmuL2zgBgZkdoB6qXZsgJEH9LR3oUgpaQq2RbI80=",
@@ -111,7 +167,7 @@
"nixpkgs": [
"nixpkgs"
],
"systems": "systems"
"systems": "systems_2"
},
"locked": {
"lastModified": 1760434150,
@@ -129,7 +185,7 @@
},
"zen-browser": {
"inputs": {
"home-manager": "home-manager_2",
"home-manager": "home-manager",
"nixpkgs": [
"nixpkgs"
]

View File

@@ -16,11 +16,10 @@
inputs.nixpkgs.follows = "nixpkgs";
};
home-manager = {
url = "github:nix-community/home-manager";
nix-options-doc = {
url = "github:Thunderbottom/nix-options-doc";
inputs.nixpkgs.follows = "nixpkgs";
};
};
outputs =
@@ -50,21 +49,19 @@
];
externalModules = [
inputs.walker.homeModules.default
inputs.walker.homeManagerModules.default
inputs.zen-browser.homeModules.beta
];
docsUtil = import ./docs.nix;
docs = docsUtil.buildDocs {
inherit pkgs inputs modules;
};
in
{
homeManager = {
imports = modules ++ externalModules;
};
docs = docs.optionsCommonMark;
docs = pkgs.runCommand "docs" { } ''
${
inputs.nix-options-doc.outputs.packages."${system}".default
}/bin/nix-options-doc --path ${./.} --out $out --follow-symlinks
'';
};
}

View File

@@ -33,7 +33,7 @@ $menu = walker
### AUTOSTART ###
#################
exec-once = nextcloud --background
exec-once = nextcloud --background && steam -silent
exec-once = exec "$POOLKIT_AGENT"
exec-once = hyprpanel & hyprpaper & hypridle & elephant & walker --gapplication-service
exec-once = gsettings set org.gnome.desktop.interface cursor-theme 'Bibata-Modern-Classic'

View File

@@ -20,11 +20,6 @@
flake = "${config.home.homeDirectory}/.config/dotfiles";
};
services.nextcloud-client = {
enable = true;
startInBackground = true;
package = pkgs.nextcloud-client;
};
home.packages = [
# note taking
@@ -49,6 +44,7 @@
# others
pkgs.libreoffice-qt
pkgs.gimp
pkgs.nextcloud-client
# language interpreters / compilers
pkgs.bun

171
options.md Normal file
View File

@@ -0,0 +1,171 @@
# NixOS Module Options
## [`options.modules.walker.enable`](homemanager/walker.nix#L9)
walker
**Type:** `boolean`
**Default:** `false`
**Example:** `true`
## [`options.modules.fish.enable`](homemanager/fish.nix#L12)
fish
**Type:** `boolean`
**Default:** `false`
**Example:** `true`
## [`options.modules.hyprpanel.enable`](homemanager/hyprpanel.nix#L8)
hyprpanel
**Type:** `boolean`
**Default:** `false`
**Example:** `true`
## [`options.modules.hyprpanel.avatar.image`](homemanager/hyprpanel.nix#L9)
avatar image
**Type:** `lib.types.path`
**Default:** `""`
## [`options.modules.hyprpanel.avatar.name`](homemanager/hyprpanel.nix#L15)
Username to be displayed
**Type:** `lib.types.str`
**Default:** `"John Doe"`
## [`options.modules.theme.enable`](homemanager/theme.nix#L9)
theme
**Type:** `boolean`
**Default:** `false`
**Example:** `true`
## [`options.modules.default_apps.enable`](homemanager/default_apps.nix#L11)
default_apps
**Type:** `boolean`
**Default:** `false`
**Example:** `true`
## [`options.modules.editorconfig.enable`](homemanager/editorconfig.nix#L4)
enables editorconfig
**Type:** `boolean`
**Default:** `false`
**Example:** `true`
## [`options.modules.utilities.enable`](homemanager/utilities.nix#L9)
utilities
**Type:** `boolean`
**Default:** `false`
**Example:** `true`
## [`options.modules.terminalEmulators.kitty.enable`](homemanager/terminal_emulators/kitty.nix#L4)
kitty
**Type:** `boolean`
**Default:** `false`
**Example:** `true`
## [`options.modules.terminalEmulators.ghostty.enable`](homemanager/terminal_emulators/ghostty.nix#L12)
ghostty
**Type:** `boolean`
**Default:** `false`
**Example:** `true`
## [`options.modules.terminalEmulators.wezterm.enable`](homemanager/terminal_emulators/wezterm.nix#L7)
kitty
**Type:** `boolean`
**Default:** `false`
**Example:** `true`
## [`options.modules.nushell.enable`](homemanager/nushell.nix#L8)
nushell
**Type:** `boolean`
**Default:** `false`
**Example:** `true`
## [`options.modules.neovim.enable`](homemanager/neovim.nix#L22)
neovim
**Type:** `boolean`
**Default:** `false`
**Example:** `true`
## [`options.modules.hyprland.enable`](homemanager/hyprland.nix#L12)
hyprland
**Type:** `boolean`
**Default:** `false`
**Example:** `true`
## [`options.modules.tmux.enable`](homemanager/tmux.nix#L12)
tmux
**Type:** `boolean`
**Default:** `false`
**Example:** `true`
## [`options.modules.starship.enable`](homemanager/starship.nix#L16)
enables starship
**Type:** `boolean`
**Default:** `false`
**Example:** `true`
---
*Generated with [nix-options-doc](https://github.com/Thunderbottom/nix-options-doc)*