Compare commits

..

1 commit
main ... master

Author SHA1 Message Date
RoastedCheese
25e30dd976
waybar -> wabar 2024-04-07 16:51:03 +02:00
223 changed files with 4498 additions and 7944 deletions

View file

@ -1,6 +0,0 @@
[*.nix]
indent_style = space
indent_size = 4
max_line_length = 79
charset = utf-8
trim_trailing_whitespace = true

3
.gitmodules vendored Normal file
View file

@ -0,0 +1,3 @@
[submodule "hosts/chmura/jacekpoz.pl/themes/risotto"]
path = hosts/chmura/jacekpoz.pl/themes/risotto
url = https://github.com/jacekpoz/risotto.git

View file

@ -2,7 +2,7 @@
a modular flake containing configurations for most of my machines
I try to keep this COMPLICATED so other people can NOT learn from my config >:-)
I try to keep this simple so other people can learn from my config :-)
## directory structure
```
@ -10,45 +10,36 @@ niksos/
├───hosts/ (machine specific configuration)
│ ├───chmura/ [HP t620 PLUS Quad Core TC]
│ ├───del/ [Dell Latitude 7320 Detachable]
│ ├───hape/ [HP EliteBook 840 G2]
│ ├───niks/ [ASUS ROG Strix G513QY]
│ ├───work/ [undisclosed model, might change]
│ └───common/ (shared configs)
│ ├───core/ (imported on all hosts)
│ ├───desktop/ (imported on all desktops)
│ ├───server/ (imported on all servers)
│ └───optional/ (imported in a host's `profile.nix`)
├───modules/ (custom modules you can enable under `poz`)
│ ├───hape/ [I'll type in the model here some day]
│ └───niks/ [ASUS ROG Strix G513QY]
├───modules/ (custom modules you can enable under `myOptions`)
├───options/ (unconditional modules imported in `hosts/*/profile.nix`)
│ ├───common/ (options shared between most or all systems)
│ ├───desktop/ (desktop specific options + tablet / mobile)
│ └───server/ (server specific options)
└───secrets/ (agenix secrets)
```
## cool flakes
flakes I ~~stole~~ took inspiration from
https://github.com/NotAShelf/nyx (goated)
https://git.notashelf.dev/NotAShelf/nyx
<br>
https://github.com/n3oney/nixus
<br>
https://github.com/sioodmy/dotfiles
<br>
https://github.com/AlephNought0/Faery
https://github.com/RadovanSk/Faery/
<br>
https://git.outfoxxed.me/outfoxxed/nixnew
<br>
https://github.com/fufexan/dotfiles
https://git.outfoxxed.me/outfoxxed/server-config
<br>
https://github.com/raidenovich/OuterHeaven
https://github.com/fufexan/dotfiles/
<br>
https://github.com/ardishco-the-great/nixcfg/
<br>
https://github.com/roastedcheese/nicks
<br>
https://github.com/EmergentMind/nix-config
## other nix resources
cool stuff that helped me write this config
https://kokada.dev/blog/an-unordered-list-of-hidden-gems-inside-nixos/
<br>
https://unmovedcentre.com/posts/anatomy-of-a-nixos-config/
## license
public domain steal all you want just don't copy paste the whole flake and say you made it thanks :-)

3452
flake.lock

File diff suppressed because it is too large Load diff

View file

@ -15,22 +15,13 @@
inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
hyprland = {
type = "git";
url = "https://github.com/hyprwm/Hyprland";
submodules = true;
};
hyprland.url = "github:hyprwm/Hyprland";
hyprlock = {
url = "github:hyprwm/hyprlock";
inputs.nixpkgs.follows = "nixpkgs";
};
hypridle = {
url = "github:hyprwm/hypridle";
inputs.nixpkgs.follows = "nixpkgs";
};
hyprcontrib.url = "github:hyprwm/contrib";
hyprland-plugins = {
@ -39,19 +30,12 @@
};
split-monitor-workspaces = {
url = "github:Duckonaut/split-monitor-workspaces";
url = "github:bivsk/split-monitor-workspaces/bivsk";
inputs.hyprland.follows = "hyprland";
};
iio-hyprland.url = "github:JeanSchoeller/iio-hyprland";
shadower.url = "github:n3oney/shadower";
woomer = {
url = "github:coffeeispower/woomer";
inputs.nixpkgs.follows = "nixpkgs";
};
home-manager = {
url = "github:nix-community/home-manager";
inputs.nixpkgs.follows = "nixpkgs";
@ -59,6 +43,11 @@
conduit.url = "gitlab:famedly/conduit/next";
nix-gaming = {
url = "github:NotAShelf/nix-gaming";
inputs.nixpkgs.follows = "nixpkgs";
};
nur.url = "github:nix-community/NUR";
fenix = {
@ -71,11 +60,20 @@
inputs.nixpkgs.follows = "nixpkgs";
};
firefox-nightly = {
url = "github:colemickens/flake-firefox-nightly";
inputs.nixpkgs.follows = "nixpkgs";
};
nixpkgs-wayland.url = "github:nix-community/nixpkgs-wayland";
anyrun = {
url = "github:Kirottu/anyrun";
inputs.nixpkgs.follows = "nixpkgs";
};
neovim-nightly-overlay.url = "github:nix-community/neovim-nightly-overlay";
helix.url = "github:helix-editor/helix";
agenix.url = "github:ryantm/agenix";
@ -93,30 +91,15 @@
};
};
nvf = {
url = "github:NotAShelf/nvf";
nixvim = {
url = "github:nix-community/nixvim";
inputs.nixpkgs.follows = "nixpkgs";
};
waybar.url = "github:Alexays/Waybar";
ags.url = "github:Aylur/ags";
quickshell = {
url = "git+https://git.outfoxxed.me/outfoxxed/quickshell";
inputs.nixpkgs.follows = "nixpkgs";
};
wabar.url = "github:Alexays/Waybar";
pozsite = {
url = "git+ssh://jacekpoz/poz/pozsite.git";
inputs.nixpkgs.follows = "nixpkgs";
};
nix-minecraft.url = "github:Infinidoge/nix-minecraft";
work-secrets.url = "git+ssh://jacekpoz/work/work-secrets";
nix-webring = {
url = "git+https://git.jacekpoz.pl/poz/nixwebr.ing";
inputs.nixpkgs.follows = "nixpkgs";
};
impurity.url = "github:outfoxxed/impurity.nix";
};
}

View file

@ -1,12 +1,9 @@
{
config,
lib,
pkgs,
...
}: let
inherit (lib.meta) getExe';
in {
age.secrets.anki-user-credentials.file = ../../../secrets/anki-user-credentials.age;
}: {
age.secrets.anki-user-credentials.file = ../../secrets/anki-user-credentials.age;
systemd.services.anki-sync-server = {
description = "Selfhosted Anki sync server.";
@ -17,7 +14,7 @@ in {
Type = "simple";
DynamicUser = true;
StateDirectory = "anki-sync-server";
ExecStart = "${getExe' pkgs.anki-bin "anki"} --syncserver";
ExecStart = "${pkgs.anki-bin}/bin/anki --syncserver";
Environment = ''SYNC_BASE="/var/lib/anki-sync-server" SYNC_HOST="127.0.0.1" SYNC_PORT="27701"'';
EnvironmentFile = config.age.secrets.anki-user-credentials.path;
Restart = "always";

View file

@ -1,20 +1,11 @@
{
config,
inputs,
lib,
pkgs,
...
}: let
port = 6167;
in {
nix.settings = {
substituters = [
"https://attic.conduit.rs/conduit"
];
trusted-public-keys = [
"conduit:ddcaWZiWm0l0IXZlO8FERRdWvEufwmd0Negl1P+c0Ns="
];
};
environment.systemPackages = [ pkgs.mautrix-discord ];
}: with lib; {
environment.systemPackages = with pkgs; [ mautrix-discord ];
services.matrix-conduit = {
enable = true;
@ -24,9 +15,10 @@ in {
address = "127.0.0.1";
server_name = "jacekpoz.pl";
database_backend = "rocksdb";
inherit port;
enable_lightning_bolt = false;
max_request_size = 104857600;
port = 6167;
max_request_size = 100000000;
conduit_cache_capacity_modifier = 4.0;
rocksdb_max_open_files = 20;
allow_check_for_updates = false;
allow_registration = false;
};
@ -35,7 +27,7 @@ in {
services.caddy = {
enable = true;
virtualHosts."m.jacekpoz.pl".extraConfig = ''
reverse_proxy /_matrix/* 127.0.0.1:${toString port}
reverse_proxy /_matrix/* 127.0.0.1:6167
'';
virtualHosts."jacekpoz.pl".extraConfig = ''
header /.well-known/matrix/* Content-Type application/json

View file

@ -2,46 +2,53 @@
config,
...
}: let
inherit (config.poz.other.system) username;
username = config.myOptions.other.system.username;
in {
nixpkgs = {
# fuck broadcom
config.allowUnfree = true;
};
boot.loader = {
systemd-boot.enable = true;
efi.canTouchEfiVariables = true;
};
time.timeZone = "Europe/Warsaw";
nix.settings = {
experimental-features = [
"flakes"
"nix-command"
];
trusted-users = [
"root"
username
];
};
users.users.${username} = {
extraGroups = [ "docker" ];
};
services.caddy = let
services.caddy = let
redirToFlake = ''
redir https://git.jacekpoz.pl/poz/niksos
'';
redirToQmkFork = ''
redir https://git.jacekpoz.pl/poz/qmk_firmware/src/branch/master/keyboards/lily58/keymaps/poz
redir https://git.jacekpoz.pl/jacekpoz/niksos
'';
in {
enable = true;
virtualHosts = {
"test.jacekpoz.pl".extraConfig = ''
reverse_proxy * localhost:3001
'';
virtualHosts."test.jacekpoz.pl".extraConfig = ''
reverse_proxy * localhost:3001
'';
virtualHosts."f.jacekpoz.pl".extraConfig = ''
root * /srv
file_server
'';
"f.jacekpoz.pl".extraConfig = ''
root * /srv/files
file_server
'';
"flake.jacekpoz.pl".extraConfig = redirToFlake;
"flake.jpoz.pl".extraConfig = redirToFlake;
"qmk.jacekpoz.pl".extraConfig = redirToQmkFork;
"qmk.jpoz.pl".extraConfig = redirToQmkFork;
"nsfw.jacekpoz.pl".extraConfig = ''
redir https://trollface.pl
'';
};
virtualHosts."flake.jacekpoz.pl".extraConfig = redirToFlake;
virtualHosts."flake.jpoz.pl".extraConfig = redirToFlake;
};
powerManagement.cpuFreqGovernor = "performance";
virtualisation = {
podman = {
enable = true;
@ -50,32 +57,34 @@ in {
oci-containers.backend = "podman";
};
networking.firewall.allowedTCPPorts = [ 80 443 ];
networking.firewall.allowedUDPPorts = [ 80 443 ];
networking.firewall.allowedTCPPorts = [ 80 443 22 ];
poz = {
other.home-manager.enable = true;
myOptions = {
other = {
system = {
hostname = "chmura";
username = "chmura";
};
home-manager.enable = true;
};
programs = {
agenix.enable = true;
git = {
enable = true;
userName = "jacekpoz";
userEmail = "jacekpoz@cock.li";
signingKey = "0EEE6B0C9A8CC06820E59C3894E812A8B12AAE3C";
defaultBranch = "master";
};
starship.enable = true;
zsh.enable = true;
btop.enable = true;
neovim = {
enable = true;
enableLsp = false;
};
neovim.enable = true;
helix.enable = true;
};
services = {
ssh = {
agent.enable = false;
daemon = {
enable = true;
ports = [ 7312 22 ];
};
daemon.enable = true;
};
syncthing.enable = true;
};

View file

@ -1,13 +1,23 @@
_: {
imports = [
./services
./trollface.pl
#./minecraft
./anki-sync-server.nix
./conduit.nix
./configuration.nix
#./discord-autodelete.nix
./firefox-syncserver.nix
./forgejo.nix
#./freshrss.nix
#./grafana.nix
./hardware-configuration.nix
./i2pd.nix
./jacekpoz.pl.nix
./nixwebr.ing.nix
./ntfy-sh.nix
./owncast.nix
./profile.nix
./programs.nix
./system.nix
#./stalwart.nix
./trollface.pl
#./qbittorrent.nix
];
}

View file

@ -7,7 +7,7 @@
uid = 989;
gid = 5638;
in {
age.secrets.discord-autodelete-config.file = ../../../secrets/discord-autodelete-config.age;
age.secrets.discord-autodelete-config.file = ../../secrets/discord-autodelete-config.age;
users = {
users.${service-name} = {
@ -31,7 +31,7 @@ in {
services.dbus.enable = true;
environment.systemPackages = [ pkgs.dbus ];
environment.systemPackages = with pkgs; [ dbus ];
systemd.tmpfiles.rules = [
"d /var/lib/${service-name} 0700 ${service-name} ${toString gid}"

View file

@ -0,0 +1,33 @@
{
config,
pkgs,
...
}: let
domain = "ffsync.jacekpoz.pl";
in {
age.secrets.firefox-syncserver-secrets.file = ../../secrets/firefox-syncserver-secrets.age;
services.firefox-syncserver = {
enable = true;
logLevel = "warn";
singleNode = {
enable = true;
capacity = 100;
hostname = domain;
url = "https://${domain}";
};
settings = {
port = 6583;
};
secrets = config.age.secrets.firefox-syncserver-secrets.path;
};
services.mysql.package = pkgs.mariadb;
services.caddy = {
enable = true;
virtualHosts.${domain}.extraConfig = ''
reverse_proxy * localhost:6583
'';
};
}

34
hosts/chmura/forgejo.nix Normal file
View file

@ -0,0 +1,34 @@
{
config,
...
}: {
services.forgejo = {
enable = true;
lfs.enable = true;
database.type = "postgres";
dump = {
enable = true;
type = "tar.xz";
};
settings = {
DEFAULT = {
APP_NAME = "fuck it we code";
};
server = rec {
DOMAIN = "git.jacekpoz.pl";
HTTP_PORT = 1849;
PROTOCOL = "http";
SSH_PORT = 8236;
ROOT_URL = "${PROTOCOL}://${DOMAIN}/";
};
};
};
services.caddy = {
enable = true;
virtualHosts."git.jacekpoz.pl".extraConfig = ''
reverse_proxy * localhost:${toString config.services.forgejo.settings.server.HTTP_PORT}
'';
};
}

View file

@ -1,82 +1,16 @@
{
inputs,
lib,
pkgs,
...
}: let
inherit (lib.attrsets) attrValues;
inherit (lib.meta) getExe';
systemctl = getExe' pkgs.systemd "systemctl";
port = 4827;
sitePath = "/srv/web/jacekpoz.pl";
in {
}: {
services.caddy = {
enable = true;
virtualHosts = {
"jacekpoz.pl".extraConfig = ''
reverse_proxy localhost:${toString port}
'';
"jpoz.pl".extraConfig = ''
redir / https://jacekpoz.pl
redir /git https://jacekpoz.pl/posts/git-workflow.html
'';
"jacek.poziem.ski".extraConfig = ''
redir https://jacekpoz.pl
'';
};
};
users.groups.site = {};
users.users.site = {
isSystemUser = true;
group = "site";
};
systemd = {
services = {
pozback = {
description = "The backend for jacekpoz.pl";
after = ["network.target"];
wantedBy = ["multi-user.target"];
serviceConfig = {
Type = "simple";
ExecStart = "${inputs.pozsite.packages.${pkgs.system}.pozback}/bin/back";
Restart = "on-failure";
Environment = ''POZ_PORT="${toString port}" POZ_DIR="${sitePath}"'';
User = "site";
Group = "site";
};
path = attrValues {
inherit (pkgs)
fastfetch
colorized-logs
;
};
};
pozback-watcher = {
description = "Restarter for the backend";
after = ["network.target"];
wantedBy = ["multi-user.target"];
serviceConfig = {
Type = "oneshot";
ExecStart = "${systemctl} restart pozback.service";
};
};
};
paths.pozback-watcher = {
wantedBy = ["multi-user.target"];
pathConfig = {
PathModified = sitePath;
Unit = "pozback-watcher.service";
};
};
virtualHosts."jacekpoz.pl".extraConfig = ''
root * ${ pkgs.callPackage ./jacekpoz.pl { } }
file_server
'';
virtualHosts."jpoz.pl".extraConfig = ''
redir / https://jacekpoz.pl
redir /git https://jacekpoz.pl/posts/git-workflow
'';
};
}

View file

@ -0,0 +1,5 @@
+++
title = '{{ replace .File.ContentBaseName "-" " " | title }}'
date = {{ .Date }}
draft = true
+++

View file

@ -0,0 +1 @@
piss blob

View file

@ -0,0 +1,9 @@
+++
title = 'About'
date = 2023-11-12T23:23:47+01:00
draft = false
+++
hello :-)
I like foss and stuff

View file

@ -0,0 +1,115 @@
+++
title = 'My git workflow'
date = 2023-11-12T19:10:04+01:00
draft = false
+++
## TL;DR (if you use nix)
[git module](https://codeberg.org/jacekpoz/niksos/src/branch/master/modules/cli/git.nix) (uses home-manager) and [the config](https://codeberg.org/jacekpoz/niksos/src/branch/master/hosts/niks/configuration.nix#L323-L330)
[ssh module](https://codeberg.org/jacekpoz/niksos/src/branch/master/modules/services/ssh.nix) and [the config](https://codeberg.org/jacekpoz/niksos/src/branch/master/hosts/niks/configuration.nix#L434-L472)
---
Over the past few months I helped a few people learn git so I decided to put this together instead of explaining my workflow each time.
Hopefully this can serve as a simple git guide to get started quickly or as a reference to come back to if you forget something.
I don't use any git wrappers, the cli is enough for me. If you know of a good one let me know, I might try it and add it here.
---
I aliased `git` to `g` in my [zsh config](https://codeberg.org/jacekpoz/niksos/src/branch/master/modules/cli/zsh.nix#L31), which is what I use in all the examples below.
First the basics:
- `g init` initializes the repo in `.`; make sure you create a new one for your repo,
- `g clone forge:username/repo` will download that repository into `./repo`,
- `g remote add origin forge:username/repo` is how you connect the local repo to your preferred git forge (more in [remotes](#remotes)),
- `g add .` adds all the changes you made so far (more in [adding](#adding)),
- `g commit -m "commit message"` creates a commit with whatever you added prior (more in [commits](#commits)),
- `g push` pushes all the commits to the forge (it ignores added but uncommited changes),
- `g status` shows you the current status (added files, unpushed commites, etc.) and handy commands on how to change it.
If you run all these right now you'll get an error akin to this:
```
user@example.com: Permission denied (publickey).
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
```
which means you need to generate and setup an ssh key.
## SSH key
`ssh-keygen -t ed25519 -f ~/.ssh/<keyfile>` is what I usually do. Some people might recommend making a single key for all git forges, I keep them separate, you do you.
After running the above you'll be asked to enter a passphrase or leave it empty for no passphrase. I recommend **always** setting a strong passphrase (could be generated with [KeePassXC](https://keepassxc.org)) and adding it to a password manager like the aforementioned. Copying and pasting that passphrase isn't a big deal, having your unlocked key stolen is.
After doing that you'll have 2 files, `~/.ssh/<keyfile>` (the private key) and `~/.ssh/<keyfile>.pub` (the public key). As the name suggests, **DO NOT** share the first one with anyone, it must be kept secure. If that leaks and isn't protected by a password, or the password is cracked, whoever has the file can modify the git history as you.
Now you want to add your public key to your preferred git forge. Here's how to do that on [github](https://docs.github.com/en/authentication/connecting-to-github-with-ssh/adding-a-new-ssh-key-to-your-github-account), [gitlab](https://docs.gitlab.com/ee/user/ssh.html#add-an-ssh-key-to-your-gitlab-account) and [codeberg](https://docs.codeberg.org/security/ssh-key/#add-the-ssh-key-to-codeberg) (which should work for all forgejo instances). All of these instructions are pretty similar and you should be able to figure it out after the first time.
What we need to do now is tell git which ssh key to use when connecting to our preferred forge.
## Remotes
On my machine I alias all the remotes in my ssh config which both makes them shorter and allows me to add the ssh key to that forge. The nix config is at the top but if you don't use nix this is what you add for each remote to either `/etc/ssh/ssh_config` or (preferably) `~/.ssh/config`:
```
Host example
HostName git.example.com
User git
IdentityFile /path/to/private_key
```
For an example, this is what I'd do for codeberg:
```
Host codeberg
HostName codeberg.org
User git
IdentityFile ~/.ssh/codeberg
```
and change my git remote: `g remote set-url origin codeberg:nickname/repo` (if you added it already).
Now you should finally be able to push your changes! That wasn't so bad, was it? This workflow might not be ideal to you but it's simple and convenient enough for me and I think it should be alright for new users.
The purpose of this post isn't to be a general git guide, it's a reference I (and hopefully others) can go back to. For a general git guide that goes much more in depth than this I can't recommend the [official git book](https://git-scm.com/book/en/v2) enough. This post covers a very small part of the second chapter of that book. If you also want a (maybe not so quick) reference for various git subcommands check their manpages, e.g. `man git-add` for `g add`.
Now, if all you want to do is push a few commits to a repo, this should be enough and you can stop reading. If you want to learn interactive adding, reverting your changes, signing your commits with a GPG key and more, read on!
## Adding
`g add` accepts a [glob pattern](https://en.wikipedia.org/wiki/Glob_(programming)#Unix-like) meaning that you can e.g. `g add *.c` to add all files ending with `.c` in the current directory. Passing a single file name of course also works.
`g add -p` gives you access to the interactive mode, which displays hunks (a part of the changes) that you can add `y`, discard `n`, split `s` or manually edit `e` into smaller hunks. It also accepts a glob pattern, just like the normal `g add`. The interactive mode might offer more functionality but I found these 4 options to be enough for almost anything.
## Commits
`g commit` without any flags will let you edit the commit message in your editor of choice. It can be set with either `g config --global core.editor "my_editor"` or with the environment variable `GIT_EDITOR`. If you're on nix and use home-manager check my git module.
`g log` gives you all commits in the current repo. Each commit description starts with something like `commit b155c8912bb2347e030e723a2b37f1a60cb0fe15`. That big mess of characters is the commit hash, its identifier which you will use to refer to that commit. Usually you can type the first few characters of that hash and it should also work. When in doubt use your shell's autocompletion (most likely using the tab key). `g log` has *a lot* of flags, either read its manpage or toy around with the help of autocompletion.
If you want to see the state of your repo at a specific commit use `g checkout`.
Now that we know how to view and refer to a specific commit, we can learn how to revert the changes made in that commit. The terminology on this one is really confusing, I have to check it almost every time I need to revert a commit:
- `g reset --hard commit_hash` will remove that commit and **remove all the changes in that commit locally** — to get them back you have to rewrite them by hand; most of the time not necessary,
- `g revert commit_hash` will create a revert commit — the exact opposite of the one you're reverting, bringing you back to the state before it,
- `g reset --soft commit_hash` will remove that commit but keep its changes, allowing you to make further changes, add and commit them again; in practice this is the one I use the most.
To ammend further changes to the last commit you can add the changes and use `g commit --ammend`. It's probably a faster equivalent to `g reset --soft`, I just happen to have learned the former first and got used to it.
If you want to sign your commits with a GPG key, verifying that you're actually their author, you want to make git aware of your public key. To do that, run `g config --global user.signingkey my_public_gpg_key` and install a pinentry frontend. I use the qt one and can recommend it. If you have no idea what I'm talking about, skip this section. This isn't necessary and your contributions most likely won't be rejected because your commits aren't signed.
---
If you got stuck on some part, find this too hard or have any suggestions for this post, feel free to contact me. All my public contact information is on the sidebar at the top of all pages, I'd be more than happy to help you out. :-)

View file

@ -0,0 +1,31 @@
{
pkgs ? import <nixpkgs> {},
...
}: let
risotto-src = pkgs.fetchFromGitHub {
owner = "jacekpoz";
repo = "risotto";
rev = "7c8cdd97cca30c49f0c13cf2e049f43b39b49d75";
hash = "sha256-CX4aLTY1Z6E0QoRQIUOmfhG1gGCCnLqwBiLjhVMSpY8=";
};
in pkgs.stdenv.mkDerivation {
name = "jacekpoz.pl";
version = "0.1";
src = ./.;
buildInputs = with pkgs; [
hugo
];
dontConfigure = true;
buildPhase = ''
cp -r $src/* .
cp -r ${risotto-src} ./themes/risotto
${pkgs.hugo}/bin/hugo
'';
installPhase = ''
mkdir -p $out
cp -r ./public/* $out/
'';
}

View file

@ -0,0 +1,40 @@
baseURL = "https://jacekpoz.pl/"
theme = "risotto"
languageCode = "en-us"
title = "jacekpoz"
author = "jacekpoz"
copyright = "© 2023 by jacekpoz"
[params]
[params.theme]
palette = "tokyo-night-dark"
[params.about]
title = "jacekpoz"
description = "piss blob"
logo = "jacekpoz.svg"
[[params.socialLinks]]
logo = "email.svg"
title = "Email"
url = "mailto:jacekpoz@cock.li"
[[params.socialLinks]]
logo = "matrix.svg"
title = "Matrix"
url = "https://matrix.to/#/@jacekpoz:jacekpoz.pl"
[menu]
[[menu.main]]
identifier = "posts"
name = "posts"
url = "/posts/"
weight = 1
[[menu.main]]
identifier = "about"
name = "about"
url = "/about"
weight = 2

View file

@ -0,0 +1,7 @@
<?xml version="1.0" encoding="windows-1252"?>
<!-- Uploaded to: SVG Repo, www.svgrepo.com, Generator: SVG Repo Mixer Tools -->
<svg fill="#ffffff" height="32px" width="32px" version="1.1" id="Capa_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 75.294 75.294" xml:space="preserve">
<g>
<path d="M66.097,12.089h-56.9C4.126,12.089,0,16.215,0,21.286v32.722c0,5.071,4.126,9.197,9.197,9.197h56.9 c5.071,0,9.197-4.126,9.197-9.197V21.287C75.295,16.215,71.169,12.089,66.097,12.089z M61.603,18.089L37.647,33.523L13.691,18.089 H61.603z M66.097,57.206h-56.9C7.434,57.206,6,55.771,6,54.009V21.457l29.796,19.16c0.04,0.025,0.083,0.042,0.124,0.065 c0.043,0.024,0.087,0.047,0.131,0.069c0.231,0.119,0.469,0.215,0.712,0.278c0.025,0.007,0.05,0.01,0.075,0.016 c0.267,0.063,0.537,0.102,0.807,0.102c0.001,0,0.002,0,0.002,0c0.002,0,0.003,0,0.004,0c0.27,0,0.54-0.038,0.807-0.102 c0.025-0.006,0.05-0.009,0.075-0.016c0.243-0.063,0.48-0.159,0.712-0.278c0.044-0.022,0.088-0.045,0.131-0.069 c0.041-0.023,0.084-0.04,0.124-0.065l29.796-19.16v32.551C69.295,55.771,67.86,57.206,66.097,57.206z"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 34 KiB

View file

@ -67,25 +67,21 @@
d="m11.7761 19.853c0-.9427-.7636-1.7063-1.7064-1.7063-1.04251 0-2.37002 0-3.41258 0-.94274 0-1.70631.7636-1.70631 1.7063 0 .9428.76357 1.7064 1.70631 1.7064h3.41258c.9428 0 1.7064-.7636 1.7064-1.7064z"
fill="#ed6b44"
id="path99" />
<!-- left eye -->
<!--<path
<path
d="m 6.498,18.9998 c 1.0178,0 1.9938,-0.4044 2.7139,-1.1236 0.7192,-0.72 1.1236,-1.696 1.1236,-2.7139 0,-0.2841 0,-0.5707 0,-0.8548 0,-2.1201 -1.7191,-3.8392 -3.8392,-3.8392 -8e-4,0 -8e-4,0 -0.0017,0 -1.01781,0 -1.99382,0.4044 -2.71389,1.1236 -0.71921,0.72 -1.12361,1.696 -1.12361,2.7139 v 0.8548 c 0,2.1201 1.71912,3.8392 3.8392,3.8392 z"
fill="#ffffff"
id="path101" />-->
<!-- left pupil -->
<!--<path
id="path101" />
<path
d="m 5.21658,14.7256 c 0,-0.9376 0.76017,-1.6978 1.69782,-1.6978 h 0.017 c 0.9376,0 1.6978,0.7602 1.6978,1.6978 v 0.0026 c 0,0.9376 -0.7602,1.6978 -1.6978,1.6978 -0.0059,0 -0.0111,0 -0.017,0 -0.93765,0 -1.69782,-0.7602 -1.69782,-1.6978 0,-9e-4 0,-0.0017 0,-0.0026 z"
fill="#000000"
id="path103" />-->
<!-- right eye -->
<!--<path
id="path103" />
<path
d="m 25.5857,18.9998 c -1.0178,0 -1.9939,-0.4044 -2.7139,-1.1236 -0.7192,-0.72 -1.1236,-1.696 -1.1236,-2.7139 0,-0.2849 0,-0.5716 0,-0.8565 0,-1.0179 0.4044,-1.9939 1.1236,-2.7139 0.72,-0.7192 1.6961,-1.1236 2.7139,-1.1236 h 0.0034 c 1.0178,0 1.9938,0.4044 2.7139,1.1236 0.7192,0.72 1.1236,1.696 1.1236,2.7139 v 0.8548 c 0,2.1201 -1.7191,3.8392 -3.8392,3.8392 -9e-4,0 -9e-4,0 -0.0017,0 z"
fill="#ffffff"
id="path105" />-->
<!-- right pupil -->
<!--<path
id="path105" />
<path
d="m 26.8671,14.7256 c 0,-0.9376 -0.7602,-1.6978 -1.6978,-1.6978 -0.006,0 -0.0111,0 -0.017,0 -0.9377,0 -1.6978,0.7602 -1.6978,1.6978 v 0.0026 c 0,0.9376 0.7601,1.6978 1.6978,1.6978 h 0.017 c 0.9376,0 1.6978,-0.7602 1.6978,-1.6978 0,-9e-4 0,-0.0017 0,-0.0026 z"
fill="#000000"-->
fill="#000000"
id="path107" />
</g>
</g>

Before

Width:  |  Height:  |  Size: 4.3 KiB

After

Width:  |  Height:  |  Size: 4.2 KiB

View file

@ -0,0 +1,52 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Generator: Adobe Illustrator 19.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg
version="1.1"
id="Layer_1"
x="0px"
y="0px"
width="32px"
height="32px"
viewBox="0 0 520 520"
style="enable-background:new 0 0 520 520;"
xml:space="preserve"
sodipodi:docname="matrix.svg"
inkscape:version="1.2.2 (b0a8486541, 2022-12-01)"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg"><defs
id="defs123" /><sodipodi:namedview
id="namedview121"
pagecolor="#505050"
bordercolor="#ffffff"
borderopacity="1"
inkscape:showpageshadow="0"
inkscape:pageopacity="0"
inkscape:pagecheckerboard="1"
inkscape:deskcolor="#505050"
showgrid="false"
inkscape:zoom="1.3965359"
inkscape:cx="187.60706"
inkscape:cy="338.33717"
inkscape:window-width="2560"
inkscape:window-height="1404"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="1"
inkscape:current-layer="Layer_1"
showguides="false" />
<path
d="M13.7,11.9v496.2h35.7V520H0V0h49.4v11.9H13.7z"
id="path114"
style="stroke-width:15;stroke-dasharray:none;stroke:#ffffff;stroke-opacity:1;fill:#ffffff;fill-opacity:1" />
<path
d="M166.3,169.2v25.1h0.7c6.7-9.6,14.8-17,24.2-22.2c9.4-5.3,20.3-7.9,32.5-7.9c11.7,0,22.4,2.3,32.1,6.8 c9.7,4.5,17,12.6,22.1,24c5.5-8.1,13-15.3,22.4-21.5c9.4-6.2,20.6-9.3,33.5-9.3c9.8,0,18.9,1.2,27.3,3.6c8.4,2.4,15.5,6.2,21.5,11.5 c6,5.3,10.6,12.1,14,20.6c3.3,8.5,5,18.7,5,30.7v124.1h-50.9V249.6c0-6.2-0.2-12.1-0.7-17.6c-0.5-5.5-1.8-10.3-3.9-14.3 c-2.2-4.1-5.3-7.3-9.5-9.7c-4.2-2.4-9.9-3.6-17-3.6c-7.2,0-13,1.4-17.4,4.1c-4.4,2.8-7.9,6.3-10.4,10.8c-2.5,4.4-4.2,9.4-5,15.1 c-0.8,5.6-1.3,11.3-1.3,17v103.3h-50.9v-104c0-5.5-0.1-10.9-0.4-16.3c-0.2-5.4-1.3-10.3-3.1-14.9c-1.8-4.5-4.8-8.2-9-10.9 c-4.2-2.7-10.3-4.1-18.5-4.1c-2.4,0-5.6,0.5-9.5,1.6c-3.9,1.1-7.8,3.1-11.5,6.1c-3.7,3-6.9,7.3-9.5,12.9c-2.6,5.6-3.9,13-3.9,22.1 v107.6h-50.9V169.2H166.3z"
id="path116"
style="stroke-width:1;stroke-dasharray:none;fill:#ffffff;fill-opacity:1" />
<path
d="M506.3,508.1V11.9h-35.7V0H520v520h-49.4v-11.9H506.3z"
id="path118"
style="stroke-width:15;stroke-dasharray:none;stroke:#ffffff;stroke-opacity:1;fill:#ffffff;fill-opacity:1" />
</svg>

After

Width:  |  Height:  |  Size: 2.4 KiB

@ -0,0 +1 @@
Subproject commit 7c8cdd97cca30c49f0c13cf2e049f43b39b49d75

View file

@ -0,0 +1,42 @@
{
pkgs,
...
}: {
services.minecraft-server = {
enable = false;
package = pkgs.purpur;
eula = true;
declarative = true;
jvmOpts = "";
serverProperties = {
server-ip = "192.168.15.17";
server-port = 2137;
difficulty = 3;
gamemode = 0;
enable-command-block = false;
hide-online-players = true;
level-name = "swiat";
max-players = 2;
online-mode = true;
snooper-enabled = false;
spawn-protection = 0;
view-distance = 12;
white-list = true;
enforce-whitelist = true;
};
whitelist = {
jacekpoz = "8cc45dd9-0145-4068-be30-038a3844ebd0";
krizej = "c456cd5a-489d-4c6e-9613-aa9735fe2843";
};
};
services.caddy = {
enable = true;
virtualHosts."mc.jacekpoz.pl".extraConfig = ''
reverse_proxy * localhost:2137
'';
};
networking.firewall.allowedTCPPorts = [ 2137 ];
networking.firewall.allowedUDPPorts = [ 2137 ];
}

View file

@ -1,67 +0,0 @@
{
inputs,
lib,
pkgs,
...
}: let
inherit (lib.meta) getExe';
systemctl = getExe' pkgs.systemd "systemctl";
port = 5932;
sitePath = "/srv/web/nixwebr.ing";
in {
services.caddy = {
enable = true;
virtualHosts = {
"nixwebr.ing".extraConfig = ''
reverse_proxy localhost:${toString port}
'';
};
};
users.groups.nixwebring = {};
users.users.nixwebring = {
isSystemUser = true;
group = "nixwebring";
};
systemd = {
services = {
nix-webring-server = {
description = "The backend for nixwebr.ing";
after = ["network.target"];
wantedBy = ["multi-user.target"];
serviceConfig = {
Type = "simple";
ExecStart = "${inputs.nix-webring.packages.${pkgs.system}.server}/bin/nix-webring-server";
Restart = "on-failure";
Environment = ''NIX_WEBRING_PORT="${toString port}" NIX_WEBRING_DIR="${sitePath}"'';
User = "nixwebring";
Group = "nixwebring";
};
};
nix-webring-server-watcher = {
description = "Restarter for the backend";
after = ["network.target"];
wantedBy = ["multi-user.target"];
serviceConfig = {
Type = "oneshot";
ExecStart = "${systemctl} restart nix-webring-server.service";
};
};
};
paths.nix-webring-server-watcher = {
wantedBy = ["multi-user.target"];
pathConfig = {
PathModified = sitePath;
Unit = "nix-webring-server-watcher.service";
};
};
};
}

View file

@ -15,6 +15,6 @@
'';
};
networking.firewall.allowedTCPPorts = [ 80 443 ]
networking.firewall.allowedTCPPorts = [ 80 443 ]
++ [ config.services.owncast.rtmp-port ];
}

View file

@ -1,10 +1,5 @@
{
lib,
...
}: let
inherit (lib.lists) map;
inherit (lib.path) append;
in {
imports = map (append ../common/optional) [
_: {
imports = [
../../options/common/btrfs-scrub.nix
];
}

View file

@ -1,46 +1,49 @@
{
config,
lib,
pkgs,
...
}: let
inherit (config.poz.other.system) username;
inherit (lib.attrsets) attrValues;
username = config.myOptions.other.system.username;
in {
home-manager.users.${username} = {
home.packages = attrValues {
inherit (pkgs)
eza
ripgrep
unzip
trash-cli
dig
xdg-ninja
gnupg
age
fd
asciinema
asciinema-agg
du-dust
file
magic-wormhole
uutils-coreutils
imagemagick
psmisc
jq
fq
progress
parallel
p7zip
xxd
lshw
tree
smartmontools
curl
fastfetch
wireguard-tools
;
};
home.packages = with pkgs; [
git
eza
ripgrep
unzip
trash-cli
dig
xdg-ninja
gnupg
age
fd
asciinema
asciinema-agg
du-dust
file
git-annex
croc
uutils-coreutils
imagemagick
psmisc
nnn
jq
fq
gnumake
gdb
tea
codeberg-cli
progress
parallel
p7zip
xxd
lshw
tree
smartmontools
curl
fastfetch
wireguard-tools
];
};
}

View file

@ -1,4 +1,6 @@
_: {
{
...
}: {
services.restic = {
server = {
enable = true;

View file

@ -1,19 +0,0 @@
_: {
imports = [
./anki-sync-server.nix
./conduit.nix
#./discord-autodelete.nix
./firefox-syncserver.nix
./forgejo.nix
#./freshrss.nix
#./grafana.nix
./i2pd.nix
#./minecraft.nix
./ntfy-sh.nix
./owncast.nix
./plausible.nix
#./stalwart.nix
./sudo-parental-control.nix
#./qbittorrent.nix
];
}

View file

@ -1,35 +0,0 @@
{
config,
pkgs,
...
}: let
domain = "ffsync.jacekpoz.pl";
in {
age.secrets.firefox-syncserver-secrets.file = ../../../secrets/firefox-syncserver-secrets.age;
services = {
firefox-syncserver = {
enable = true;
logLevel = "warn";
singleNode = {
enable = true;
capacity = 100;
hostname = domain;
url = "https://${domain}";
};
settings = {
port = 6583;
};
secrets = config.age.secrets.firefox-syncserver-secrets.path;
};
mysql.package = pkgs.mariadb;
caddy = {
enable = true;
virtualHosts.${domain}.extraConfig = ''
reverse_proxy * localhost:6583
'';
};
};
}

View file

@ -1,98 +0,0 @@
{
config,
lib,
pkgs,
...
}: let
inherit (lib.attrsets) attrValues;
srv = config.services.forgejo.settings.server;
in {
age.secrets.forgejo-runner-token.file = ../../../secrets/forgejo-runner-token.age;
services = {
forgejo = {
enable = true;
package = pkgs.forgejo;
lfs.enable = true;
database.type = "postgres";
dump = {
enable = true;
type = "tar.xz";
};
settings = {
DEFAULT = {
APP_NAME = "fuck it we code";
};
server = {
DOMAIN = "git.jacekpoz.pl";
HTTP_PORT = 1849;
ROOT_URL = "https://${srv.DOMAIN}/";
# START_SSH_SERVER = true;
# SSH_PORT = 8236;
# SSH_LISTEN_PORT = 8236;
};
service = {
DISABLE_REGISTRATION = true;
};
actions = {
ENABLED = true;
DEFAULT_ACTIONS_URL = "https://code.forgejo.org";
};
federation = {
ENABLED = true;
};
};
};
gitea-actions-runner = {
package = pkgs.forgejo-runner;
instances = {
chmura = {
enable = true;
name = config.networking.hostName;
url = "http://localhost:${toString srv.HTTP_PORT}";
tokenFile = config.age.secrets.forgejo-runner-token.path;
labels = [
"native:host"
];
hostPackages = attrValues {
inherit (pkgs)
nix
nodejs
git
bash
fd
ripgrep
;
};
settings = {
log.level = "info";
runner = {
file = ".runner";
capacity = 2;
timeout = "3h";
insecure = false;
fetch_timeout = "5s";
fetch_interval = "2s";
};
};
};
};
};
};
systemd.services.gitea-runner-chmura.serviceConfig = {
ReadWritePaths = "/srv/web";
};
# networking.firewall.allowedTCPPorts = [ srv.SSH_PORT ];
services.caddy = {
enable = true;
virtualHosts."git.jacekpoz.pl".extraConfig = ''
reverse_proxy * localhost:${toString srv.HTTP_PORT}
'';
};
}

View file

@ -1,74 +0,0 @@
{
config,
inputs,
pkgs,
...
}: let
inherit (config.poz.other.system) username;
in {
imports = [ inputs.nix-minecraft.nixosModules.minecraft-servers ];
nixpkgs.overlays = [ inputs.nix-minecraft.overlay ];
users.users.${username} = {
extraGroups = [ "minecraft" ];
};
services.minecraft-servers = {
enable = true;
eula = true;
dataDir = "/var/lib/minecraft";
servers.celestynow = {
enable = true;
autoStart = true;
openFirewall = true;
enableReload = true;
serverProperties = {
server-ip = "127.0.0.1";
server-port = 25565;
difficulty = 3;
gamemode = 0;
enable-command-block = true;
hide-online-players = true;
level-name = "swiat";
motd = "dupa";
max-players = 4;
online-mode = false;
snooper-enabled = false;
spawn-protection = 0;
view-distance = 12;
# white-list = true;
# enforce-whitelist = true;
};
# whitelist = {
# jacekpoz = "8cc45dd9-0145-4068-be30-038a3844ebd0";
# emo_mruczek = "e62cfed1-4758-488e-ac91-b623a87e0ac9";
# };
package = pkgs.vanillaServers.vanilla-1_21;
jvmOpts = "-Xms6144M -Xmx8192M";
# symlinks = {
# mods = pkgs.linkFarmFromDrvs "mods" (builtins.attrValues {
# Create-Fabric = pkgs.fetchurl {
# url = "https://cdn.modrinth.com/data/Xbc0uyRg/versions/h2HgGyvA/create-fabric-0.5.1-f-build.1417%2Bmc1.20.1.jar";
# sha512 = "bc8e3afc219ecf9d475f4b56f421024f76fc20bce941a2c956ecca1e8905b39d946a124aca48cb391a0a60314d68fd5413c8c12d0ad1f605159b10611595878f";
# };
# Fabric-Api = pkgs.fetchurl {
# url = "https://cdn.modrinth.com/data/P7dR8mSH/versions/YG53rBmj/fabric-api-0.92.0%2B1.20.1.jar";
# sha512 = "53ce4cb2bb5579cef37154c928837731f3ae0a3821dd2fb4c4401d22d411f8605855e8854a03e65ea4f949dfa0e500ac1661a2e69219883770c6099b0b28e4fa";
# };
# });
# };
};
};
# services.caddy = {
# enable = true;
# virtualHosts."mc.jacekpoz.pl:2137".extraConfig = ''
# reverse_proxy * localhost:25565
# '';
# };
networking.firewall.allowedTCPPorts = [ 25565 ];
}

View file

@ -1,35 +0,0 @@
{
config,
...
}: let
domain = "plausible.jacekpoz.pl";
in {
age.secrets = {
plausible-admin-password.file = ../../../secrets/plausible-admin-password.age;
plausible-secret-keybase.file = ../../../secrets/plausible-secret-keybase.age;
};
services.plausible = {
enable = true;
adminUser = {
activate = true;
name = "afsdjh";
email = "jacekpoz@proton.me";
passwordFile = config.age.secrets.plausible-admin-password.path;
};
server = {
baseUrl = "https://${domain}";
port = 3987;
secretKeybaseFile = config.age.secrets.plausible-secret-keybase.path;
};
};
services.caddy = {
enable = true;
virtualHosts.${domain}.extraConfig = ''
reverse_proxy * localhost:${toString config.services.plausible.server.port}
'';
};
}

View file

@ -1,8 +0,0 @@
_: {
services.caddy = {
enable = true;
virtualHosts."sudo-parental-control.jacekpoz.pl".extraConfig = ''
reverse_proxy localhost:8000
'';
};
}

View file

@ -53,5 +53,5 @@ _: {
reverse_proxy * localhost:9902
}
'';
};
};
}

View file

@ -1,7 +0,0 @@
_: {
poz.other.system = {
hostname = "chmura";
username = "chmura";
platform = "x86_64-linux";
};
}

View file

@ -1,4 +1,4 @@
_: {
_ : {
services.caddy = {
enable = true;
virtualHosts."trollface.pl".extraConfig = ''

View file

@ -1,12 +1,12 @@
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8" />
<meta property="og:image" content="/trollface.png" />
<link rel="icon" type="image/x-icon" href="/favicon.ico" />
<meta charset="utf-8">
<meta property="og:image" content="/trollface.png">
<link rel="icon" type="image/x-icon" href="/favicon.ico">
<title>trolled !!!</title>
</head>
<body>
<img src="./trollface.png" />
<img src="./trollface.png">
</body>
</html>

View file

@ -1,12 +0,0 @@
_: {
# no idea where to put this
# the rest of them are moved to their respective modules
nix.settings = {
substituters = [
"https://nix-community.cachix.org"
];
trusted-public-keys = [
"nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs="
];
};
}

View file

@ -1,9 +0,0 @@
{
lib,
pkgs,
...
}: let
inherit (lib.meta) getExe;
in {
environment.binsh = getExe pkgs.dash;
}

View file

@ -1,6 +0,0 @@
_: {
services.dbus = {
enable = true;
implementation = "broker";
};
}

View file

@ -1,21 +0,0 @@
_: {
imports = [
./binary-caches.nix
./dash.nix
./dbus.nix
./disable-nano.nix
./disk.nix
./docs.nix
./fs-hardening.nix
./nix.nix
./oomd.nix
./permit-olm.nix
./pin-registry.nix
./preserve-system.nix
./sudo-insults.nix
./switch-ng.nix
./systemd-boot.nix
./timezone.nix
./unfree.nix
];
}

View file

@ -1,4 +0,0 @@
_: {
# neovim supremacy
programs.nano.enable = false;
}

View file

@ -1,12 +0,0 @@
_: {
services = {
btrfs.autoScrub = {
enable = true;
interval = "weekly";
};
fstrim = {
enable = true;
interval = "weekly";
};
};
}

View file

@ -1,3 +0,0 @@
_: {
fileSystems."/boot".options = [ "nodev" "nosuid" "noexec" ];
}

View file

@ -1,22 +0,0 @@
{
config,
pkgs,
...
}: {
nix = {
package = pkgs.nixVersions.latest;
settings = {
experimental-features = [
"flakes"
"nix-command"
];
trusted-users = [
"root"
config.poz.other.system.username
];
auto-optimise-store = true;
keep-outputs = true;
keep-derivations = true;
};
};
}

View file

@ -1,5 +0,0 @@
_: {
nixpkgs.config.permittedInsecurePackages = [
"olm-3.2.16"
];
}

View file

@ -1,9 +0,0 @@
{
inputs,
lib,
...
}: let
inherit (lib.attrsets) mapAttrs;
in {
nix.registry = mapAttrs (_: v: { flake = v; }) inputs;
}

View file

@ -1,6 +0,0 @@
{
pkgs,
...
}: {
security.sudo.package = pkgs.sudo.override { withInsults = true; };
}

View file

@ -1,6 +0,0 @@
_: {
system.switch = {
enable = false;
enableNg = true;
};
}

View file

@ -1,3 +0,0 @@
_: {
time.timeZone = "Europe/Warsaw";
}

View file

@ -1,3 +0,0 @@
_: {
nixpkgs.config.allowUnfree = true;
}

View file

@ -1,11 +0,0 @@
{
lib,
pkgs,
...
}: let
inherit (lib.meta) getExe;
in {
environment.sessionVariables = {
CHROME_EXECUTABLE = getExe pkgs.ungoogled-chromium;
};
}

View file

@ -1,10 +0,0 @@
_: {
imports = [
./bluetooth.nix
./chrome-executable.nix
./fonts.nix
./kernel.nix
./malloc-perturb.nix
./noisetorch.nix
];
}

View file

@ -1,22 +0,0 @@
{
lib,
pkgs,
...
}: let
inherit (lib.attrsets) attrValues;
in {
fonts.packages = attrValues {
inherit (pkgs)
material-design-icons
noto-fonts
noto-fonts-cjk-sans
noto-fonts-cjk-serif
noto-fonts-emoji
corefonts
vistafonts
;
nerdfonts = pkgs.nerdfonts.override {
fonts = [ "JetBrainsMono" ];
};
};
}

View file

@ -1,6 +0,0 @@
{
pkgs,
...
}: {
boot.kernelPackages = pkgs.linuxPackages_xanmod_latest;
}

View file

@ -1,5 +0,0 @@
_: {
environment.sessionVariables = {
MALLOC_PERTURB_ = /*sh*/"$(($(head -200 /dev/urandom | cksum | cut -f1 -d ' ') % 255 + 1))";
};
}

View file

@ -1,3 +0,0 @@
_: {
programs.noisetorch.enable = true;
}

View file

@ -1,12 +0,0 @@
{
config,
...
}: let
inherit (config.poz.other.system) username;
in {
programs.adb.enable = true;
users.users.${username} = {
extraGroups = [ "adbusers" ];
};
}

View file

@ -1,16 +0,0 @@
{
config,
...
}: {
hardware.cpu.amd.updateMicrocode = true;
boot = {
# https://github.com/NixOS/nixos-hardware/blob/master/common/cpu/amd/pstate.nix
kernelParams = [ "amd_pstate=active" ];
# https://github.com/NixOS/nixos-hardware/blob/master/common/cpu/amd/zenpower.nix
blacklistedKernelModules = [ "k10temp" ];
extraModulePackages = [ config.boot.kernelPackages.zenpower ];
kernelModules = [ "zenpower" ];
};
}

View file

@ -1,5 +0,0 @@
_: {
hardware.cpu.intel.updateMicrocode = true;
services.thermald.enable = true;
}

View file

@ -1,11 +0,0 @@
{
config,
...
}: {
services.xserver.videoDrivers = [ "displaylink" "modesetting" ];
boot = {
extraModulePackages = [ config.boot.kernelPackages.evdi ];
kernelModules = [ "evdi" ];
};
}

View file

@ -1,41 +0,0 @@
{
config,
lib,
pkgs,
...
}: let
inherit (config.poz.other.system) username;
inherit (lib.attrsets) attrValues;
inherit (lib.meta) getExe;
in {
environment.systemPackages = attrValues {
inherit (pkgs)
gns3-gui
gns3-server
dynamips
xterm
inetutils
vpcs
;
};
users.users.${username} = {
extraGroups = [ "ubridge" ];
};
# services.gns3-server = {
# enable = true;
# ubridge.enable = true;
# };
users.groups.ubridge = {};
security.wrappers.ubridge = {
source = getExe pkgs.ubridge;
capabilities = "cap_net_admin,cap_net_raw=ep";
owner = "root";
group = "ubridge";
permissions = "u=rwx,g=rx,o=rx";
};
}

View file

@ -1,42 +0,0 @@
{
lib,
pkgs,
...
}: let
inherit (lib.attrsets) attrValues;
in {
# https://github.com/NixOS/nixos-hardware/blob/master/common/gpu/amd/default.nix
services.xserver.videoDrivers = [ "modesetting" ];
hardware = {
amdgpu = {
initrd.enable = true;
opencl.enable = true;
};
graphics = {
enable = true;
enable32Bit = true;
extraPackages = attrValues {
inherit (pkgs)
mesa
libdrm
libva
vaapiVdpau
libvdpau-va-gl
;
};
extraPackages32 = attrValues {
inherit (pkgs.driversi686Linux)
mesa
libvdpau-va-gl
;
};
};
};
boot.initrd.kernelModules = [ "amdgpu" ];
environment.sessionVariables = {
AMD_VULKAN_ICD = "RADV";
};
}

View file

@ -1,34 +0,0 @@
{
lib,
pkgs,
...
}: let
inherit (lib.attrsets) attrValues;
in {
# https://github.com/NixOS/nixos-hardware/blob/master/common/gpu/intel/default.nix
boot.initrd.kernelModules = [ "i915" ];
hardware.graphics = {
enable = true;
enable32Bit = true;
extraPackages = attrValues {
inherit (pkgs)
mesa
libdrm
libva
vaapiVdpau
libvdpau-va-gl
intel-vaapi-driver
intel-media-driver
;
};
extraPackages32 = attrValues {
inherit (pkgs.driversi686Linux)
mesa
libvdpau-va-gl
intel-vaapi-driver
intel-media-driver
;
};
};
}

View file

@ -1,36 +0,0 @@
{
config,
inputs,
lib,
pkgs,
...
}: let
inherit (lib.meta) getExe getExe';
asusctl = getExe' config.services.asusd.package "asusctl";
supergfxctl = getExe' config.services.asusd.package "supergfxctl";
cpupower = getExe config.boot.kernelPackages.cpupower;
hyprctl = getExe' inputs.hyprland.packages.${pkgs.system}.hyprland "hyprctl";
inherit (pkgs) writeShellScript;
in {
services.udev.extraRules = let
power_supply = writeShellScript "on_power_supply" ''
${asusctl} profile -P Performance
#${supergfxctl} -m Hybrid
${cpupower} frequency-set -g performance
${hyprctl} keyword decoration:blur:enabled true
${hyprctl} keyword animations:enabled true
'';
battery = writeShellScript "on_battery" ''
${asusctl} profile -P Quiet
#${supergfxctl} -m Integrated
${cpupower} frequency-set -g powersave
${hyprctl} keyword decoration:blur:enabled false
${hyprctl} keyword animations:enabled false
'';
in ''
SUBSYSTEM=="power_supply",ENV{POWER_SUPPLY_ONLINE}=="1",RUN+="${power_supply}"
SUBSYSTEM=="power_supply",ENV{POWER_SUPPLY_ONLINE}=="0",RUN+="${battery}"
'';
}

View file

@ -1,3 +0,0 @@
_: {
hardware.keyboard.qmk.enable = true;
}

View file

@ -1,19 +0,0 @@
{
config,
lib,
pkgs,
...
}: let
inherit (config.poz.other.system) username;
inherit (lib.attrsets) attrValues;
in {
programs.steam.enable = true;
home-manager.users.${username} = {
home.packages = attrValues {
inherit (pkgs.steamPackages) steamcmd;
inherit (pkgs) steam-tui;
};
};
}

View file

@ -1,24 +0,0 @@
{
inputs,
lib,
pkgs,
...
}: let
inherit (lib.meta) getExe getExe';
mpc = getExe pkgs.mpc-cli;
sleep = getExe' pkgs.coreutils-full "sleep";
hyprctl = getExe' inputs.hyprland.packages.${pkgs.system}.hyprland "hyprctl";
in {
powerManagement = {
enable = true;
powerDownCommands = ''
${mpc} pause
${sleep} 1
'';
powerUpCommands = ''
${hyprctl} dispatch dpms off HDMI-A-1
${hyprctl} dispatch dpms on HDMI-A-1
'';
};
}

View file

@ -1,18 +0,0 @@
{
config,
pkgs,
...
}: let
inherit (config.poz.other.system) username;
in {
boot = {
extraModulePackages = [ config.boot.kernelPackages.v4l2loopback ];
kernelModules = [ "v4l2loopback" ];
};
environment.systemPackages = [ pkgs.v4l-utils ];
users.users.${username} = {
extraGroups = [ "video" ];
};
}

View file

@ -1,3 +0,0 @@
_: {
virtualisation.waydroid.enable = true;
}

View file

@ -1,5 +0,0 @@
_: {
environment.sessionVariables = {
NIXOS_OZONE_WL = "1";
};
}

View file

@ -1,14 +0,0 @@
{
config,
pkgs,
...
}: {
programs.wireshark = {
enable = true;
package = pkgs.wireshark;
};
users.users.${config.poz.other.system.username} = {
extraGroups = [ "wireshark" ];
};
}

View file

@ -1,27 +0,0 @@
{
# config,
pkgs,
...
}: {
# }: let
# # inherit (config.poz.other.system) username;
# in {
security.pam = {
services = {
login.u2fAuth = true;
sudo.u2fAuth = true;
};
};
services.udev = {
packages = [ pkgs.yubikey-personalization ];
};
# age.secrets.yubikey-u2f-keys.file = ../../secrets/yubikey-u2f-keys.age;
# environment.etc."Yubico/u2f_keys".source = config.age.secrets.yubikey-u2f-keys.path;
# home-manager.users.${username} = {
# xdg.configFile."Yubico/u2f_keys".source = /etc/Yubico/u2f_keys;
# };
}

View file

@ -4,44 +4,66 @@
}: let
inherit (inputs) self;
inherit (self) lib;
inherit (lib.attrsets) listToAttrs;
inherit (lib.path) append;
createHost' = extraModules: hostDir: lib.nixosSystem {
system = null;
in {
niks = lib.nixosSystem {
system = "x86_64-linux";
specialArgs = {
inherit lib inputs self;
};
modules = [
hostDir
./niks
../modules
./common/core
] ++ extraModules;
inputs.home-manager.nixosModules.home-manager
inputs.agenix.nixosModules.default
{
imports = [ inputs.impurity.nixosModules.impurity ];
impurity.configRoot = self;
}
];
};
niks-impure = self.nixosConfigurations.niks.extendModules { modules = [ { impurity.enable = true; } ]; };
del = lib.nixosSystem {
system = "x86_64-linux";
specialArgs = {
inherit lib inputs self;
};
modules = [
./del
../modules
inputs.home-manager.nixosModules.home-manager
inputs.agenix.nixosModules.default
{
imports = [ inputs.impurity.nixosModules.impurity ];
impurity.configRoot = self;
}
];
};
createHost = createHost' [];
createDesktop = createHost' [ ./common/desktop ];
createServer = createHost' [];
del-impure = self.nixosConfigurations.niks.extendModules { modules = [ { impurity.enable = true; } ]; };
createHosts = hosts: listToAttrs (map (host: let
createFn = {
desktop = createDesktop;
server = createServer;
generic = createHost;
}."${host.type}";
path' = append host.dir "system.nix";
cfg = (import path') {
inherit inputs;
#hape = lib.nixosSystem {
# system = "x86_64-linux";
# specialArgs = {
# inherit lib inputs self;
# };
# modules = [
# ./hape
# ../modules
# inputs.home-manager.nixosModules.home-manager
# ];
#};
chmura = lib.nixosSystem {
system = "x86_64-linux";
specialArgs = {
inherit lib inputs self;
};
in {
name = cfg.poz.other.system.hostname;
value = createFn host.dir;
}) hosts);
in createHosts [
{ dir = ./niks; type = "desktop"; }
{ dir = ./del; type = "desktop"; }
{ dir = ./hape; type = "desktop"; }
{ dir = ./chmura; type = "server"; }
{ dir = ./work; type = "desktop"; }
]
modules = [
./chmura
../modules
inputs.home-manager.nixosModules.home-manager
inputs.agenix.nixosModules.default
];
};
}

View file

@ -1,45 +1,83 @@
{
config,
inputs,
lib,
pkgs,
...
}: let
inherit (lib.meta) getExe getExe';
inherit (lib.modules) mkForce;
}: {
nixpkgs.config.allowUnfree = true;
inherit (config.poz.other.system) username;
in {
nix.settings = {
max-jobs = 2;
cores = 3;
boot = {
kernelPackages = pkgs.linuxPackages_xanmod_latest;
extraModulePackages = with config.boot.kernelPackages; [ v4l2loopback ];
kernelModules = [ "v4l2loopback" ];
kernelParams = [
"video=eDP-1:2560x1440@165"
];
};
swapDevices = [
{
device = "/var/lib/swapfile";
size = 48 * 1024;
}
];
time.timeZone = "Europe/Warsaw";
programs = {
kdeconnect.enable = true;
nix = {
settings = {
max-jobs = 2;
cores = 3;
substituters = [
"https://nix-community.cachix.org"
"https://nixpkgs-wayland.cachix.org"
"https://viperml.cachix.org"
];
trusted-public-keys = [
"nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs="
"nixpkgs-wayland.cachix.org-1:3lwxaILxMRkVhehr5StQprHdEo4IrE8sRho9R9HOLYA="
"viperml.cachix.org-1:qZhKBMTfmcLL+OG6fj/hzsMEedgKvZVFRRAhq7j8Vh8="
];
};
};
programs.dconf.enable = true;
security.sudo.package = pkgs.sudo.override { withInsults = true; };
security.polkit.enable = true;
users.users.${config.myOptions.other.system.username} = {
extraGroups = [ "video" "wireshark" ];
};
environment.sessionVariables = {
CHROME_EXECUTABLE = "${pkgs.ungoogled-chromium}/bin/chromium";
};
hardware = {
sensor.iio.enable = true;
# ipu6 = {
# enable = true;
# platform = "ipu6";
# };
ipu6 = {
enable = true;
platform = "ipu6";
};
opengl = {
enable = true;
driSupport = true;
driSupport32Bit = true;
extraPackages = with pkgs; [
mesa
libdrm
libva
vaapiVdpau
libvdpau-va-gl
];
extraPackages32 = with pkgs; [
driversi686Linux.mesa
driversi686Linux.vaapiVdpau
driversi686Linux.libvdpau-va-gl
];
};
};
services = {
pcscd.enable = true;
udisks2.enable = true;
dbus.enable = true;
fwupd = {
enable = true;
@ -54,16 +92,37 @@ in {
driver = pkgs.libfprint-2-tod1-goodix;
};
};
smartd.enable = true;
flatpak.enable = true;
};
services.journald = {
extraConfig = ''
SystemMaxUse=100M
'';
};
services.udev = {
packages = with pkgs; [
yubikey-personalization
];
};
programs.wireshark = {
enable = true;
package = pkgs.wireshark;
};
# this makes usb devices autosuspend
#powerManagement.powertop.enable = true;
programs.kdeconnect.enable = true;
programs.noisetorch.enable = true;
virtualisation.waydroid.enable = true;
# https://github.com/NixOS/nixpkgs/issues/270809
systemd.services.ModemManager = {
enable = mkForce true;
enable = lib.mkForce true;
path = [ pkgs.libqmi ];
wantedBy = [ "multi-user.target" "network.target" ];
};
@ -94,95 +153,130 @@ in {
};
};
poz = {
myOptions = {
other = {
system = {
hostname = "del";
username = "jacek";
};
home-manager = {
enable = true;
enableDirenv = true;
};
networking.enable = true;
};
programs = {
agenix.enable = true;
nh = let
home = config.home-manager.users.${username}.home.homeDirectory;
in {
git = {
enable = true;
flake = "${home}/niksos";
userName = "jacekpoz";
userEmail = "jacekpoz@cock.li";
signingKey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIHXD1EM4mQz99vJhmZX1r7kwMd8yewogOuoTUuv1xWZB";
defaultBranch = "master";
};
starship.enable = true;
zsh = {
enable = true;
extraAliases = {
u = "nh os switch -H del";
#u = "nh os switch \"/home/jacek/niksos\" -H niks -- --use-remote-sudo";
#us = "NIX_SSHOPTS='-t' nh os switch \"/home/jacek/niksos\" -H chmura -- --use-remote-sudo --target-host chmura";
u = "nixos-rebuild switch --flake \"/home/jacek/niksos#del\" -L --use-remote-sudo";
us = "NIX_SSHOPTS='-t' nixos-rebuild switch --flake \"/home/jacek/niksos#chmura\" -L --use-remote-sudo --target-host chmura";
# TODO use this when nh supports it
#us = "NIX_SSHOPTS='-t' nh os switch -H chmura -- --store ssh-ng://chmura";
};
profiling = false;
};
zoxide.enable = true;
anyrun.enable = true;
armcord.enable = true;
vesktop.enable = true;
btop.enable = true;
foot.enable = true;
mpv.enable = true;
neovim = {
firefox = {
enable = true;
enableLsp = true;
};
zathura.enable = true;
hypr = {
land = {
enable = true;
extraSettings = let
hmCfg = config.home-manager.users.${username};
swww = getExe pkgs.swww;
# https://www.reddit.com/r/NixOS/comments/166r8n7/anime_nix_wallpaper_i_created/
nix_wallpaper = pkgs.fetchurl {
url = "https://i.ibb.co/vZ5JF95/nix-Wallpaper.png";
hash = "sha256-BqOBvRFXFrX/QLI70OLAIcpbbiUH/jUMK97yqCfY+mI=";
};
poz_layer = ./poz.png;
out_dir = "${hmCfg.xdg.dataHome}/hypr";
out_path = "${out_dir}/nix.png";
iio-hyprland = getExe inputs.iio-hyprland.packages.${pkgs.system}.default;
mkdir = getExe' pkgs.coreutils-full "mkdir";
sleep = getExe' pkgs.coreutils-full "sleep";
wvkbd = getExe pkgs.wvkbd;
imagemagick = getExe pkgs.imagemagick;
in {
exec-once = [
"${iio-hyprland}"
"${wvkbd} --hidden -L 500"
"${mkdir} -p ${out_dir}"
"${imagemagick} ${nix_wallpaper} ${poz_layer} -layers flatten ${out_path}"
];
exec = [
# wait a bit then set the wallpapers
"${sleep} 0.5 && ${swww} img -o eDP-1 ${out_path}"
];
defaultSearchEngine = "NotASearx";
searchEngines = {
"NotASearx" = {
url = "https://search.notashelf.dev/search?q={searchTerms}";
faviconUrl = "https://search.notashelf.dev/favicon.ico";
aliases = [ "!sx" ];
};
"NixOS Packages" = {
url = "https://search.nixos.org/packages?channel=unstable&query={searchTerms}";
faviconPath = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg";
aliases = [ "!np" ];
};
"NixOS Options" = {
url = "https://search.nixos.org/options?channel=unstable&query={searchTerms}";
faviconPath = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg";
aliases = [ "!no" ];
};
"NixOS Wiki" = {
url = "https://nixos.wiki/index.php?search={searchTerms}";
faviconPath = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg";
aliases = [ "!nw" ];
};
"Home Manger Option Search" = {
url = "https://mipmip.github.io/home-manager-option-search?query={searchTerms}";
faviconPath = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg";
aliases = [ "!hm" ];
};
"Arch Wiki" = {
url = "https://wiki.archlinux.org/index.php?search={searchTerms}";
faviconUrl = "https://archlinux.org/favicon.ico";
aliases = [ "!aw" ];
};
"Gentoo Wiki" = {
url = "https://wiki.gentoo.org/index.php?search={searchTerms}";
faviconUrl = "https://www.gentoo.org/favicon.ico";
aliases = [ "!gw" ];
};
"Debian Wiki" = {
url = "https://wiki.debian.org/FrontPage?action=fullsearch&value={searchTerms}";
faviconUrl = "https://www.debian.org/favicon.ico";
aliases = [ "!dw" ];
};
};
lock.enable = true;
idle.enable = true;
};
foot.enable = true;
mpv.enable = true;
osu = {
enable = false;
enableStable = false;
};
neovim.enable = true;
zathura.enable = true;
hypr = {
land.enable = true;
lock.enable = true;
};
helix.enable = false;
newsboat.enable = true;
quickshell = {
};
themes = {
cursor = {
enable = true;
enabledConfigs = [
"powermenu"
"poz"
];
package = pkgs.bibata-cursors;
name = "Bibata-Modern-Classic";
size = 24;
};
gtk = {
enable = true;
package = pkgs.catppuccin-gtk;
name = "Catppuccin-Mocha-Standard-Green-Dark";
variant = "mocha";
accentColour = "green";
iconTheme = {
name = "Papirus-Dark";
package = pkgs.catppuccin-papirus-folders;
};
};
qt = {
enable = true;
package = pkgs.catppuccin-kde;
name = "Catppuccin-Mocha-Dark";
variant = "mocha";
accentColour = "green";
};
};
services = {
dunst.enable = true;
mpd.enable = true;
greetd = {
enable = true;
greeter = "gtkgreet";
@ -194,6 +288,69 @@ in {
"shutdown now"
];
};
ssh = {
daemon.enable = false;
agent = {
enable = true;
hostAliases = rec {
github = {
hostName = "github.com";
publicKey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIBjhNPiKUGyAdhI6jXQsDVj5jqklIh+gVEoCGZEEaC62";
};
codeberg = {
hostName = "codeberg.org";
publicKey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAILZReNUB66x+SkVx0hlbA1lyfEBMpT8IvQ6LPRn52oBl";
};
gitlab = {
hostName = "gitlab.com";
publicKey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIA/4XLNm1/ea2jtLj2AvPWMigA/xo9mLbRUGurVthiqm";
};
aur = {
hostName = "aur.archlinux.org";
publicKey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIPrCofD7GLXfASLMdYFnnMxs77Ys0nu9PsCo6IKVB6Wd";
user = "aur";
};
jacekpoz = {
hostName = "git.jacekpoz.pl";
publicKey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIJSxvSM0y5Z958VrgU9JNCYS4oZmV4nNXP3hIrw6zr8R";
user = "forgejo";
};
chmura = {
hostName = "192.168.15.2";
publicKey = "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDZLEWp9DsF9znp3W6uqP23yMFd8QQs0CmNKTKTanbfRYOqRWw0Jpuryxg7rTU8ioRM5L4zpIqu/v+pt9x76UsWTlFqjk9S35M1g0Kb2QN3czMJj5uA4jtFh47H8+hfBHm2RelPCcJCSmkR9gDa3XcrxlcC642yU4LTObHeHZg0yUDhUwKS8AdybxkPlmXPZ+UPEphq0CIBxU9mnieQMbQtMFnjEnNMDZJnP4BUF/XuWeHwh8yBttlL+hS37aI3hQYwGd5zdkSD9RWha10Nandlmt6+io6KYQgJxRK0c27i2jO7cmEMOz0h/ZnwHpTtRD9ifDTXuWN9l8+prAxsbC9pBsiDHqZ9ESHq7DzvqIeeyrQT0iHDoOPfB2PPCFJZlkFiM7hsWwkMc5Jaol9SjjH1a+B/+BvNGAQDWt1JIZzwE6T9RVQdGph6GMDS4o3gW3Hd8hyVdFhwD5xTJ567SntqsJdhzGH9HU5ybya3MG0WTWw3dLI0aMv/eAWSRx+7ZPE=";
user = "chmura";
};
chmura2 = chmura // { hostName = "jacekpoz.pl"; };
malina = {
hostName = "192.168.15.3";
publicKey = "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQCJWWnBdRFQjMxSGxjPQe/jk7sAHOEb4CAY9mY105bnNcoBz0DORvK+4Ha4TIDELubKbzasDTU/Vi7tunjbiFinbOP94OTVoc9xphfxa3eQ0GrIo0icLk0A2IbAqC32m9f93AvPseZib/9PJTIpZMQcklwllKfxg3WYBglVXLmu4+epPRfk3YR6TOP77guxT8MF9zdFrlRz8Ugcytrez2evOyva2YLdsadlke3cTVLypBFB5fJ2dfDSrYzsTEgDQB9o65Kpuqp/k+hvzdZLxDjC+vec1sUWiD9nPAHOPBKsbo9UqZtp5in4+vf8iaMVGZrjAHvz3NBze7uRZGdLLm7ACfuqq1J+cyGVCFOaxk1g0e5rNqFjMnLwKrF0UaAxmKkDNnkJQnWDCY63V+Q1PkfPWRSd5oNVZnHmyukosKlmR6n2/WqQsGrQpg0oDFh8MHupJ2sCKisAR6nvm1R9HmffdlMSBEjyx1V6j2onsGX5P+lsoODoIQGz1GV6JGBU/Qc=";
user = "malina";
};
outfoxxed = {
hostName = "git.outfoxxed.me";
publicKey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIGqsfan2BERiFSgXEv6KCTbzpKmtkq4gNd2409ZuKbgh";
};
kik_haslo = {
hostName = "156.17.7.16";
publicKey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIJAC03lGubkSRl02cX1TJ3ItkcozS8aocEHeysv/WY4v";
port = 10002;
user = "auth";
};
kik_oceny = {
hostName = "156.17.7.45";
publicKey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIJAC03lGubkSRl02cX1TJ3ItkcozS8aocEHeysv/WY4v";
port = 19999;
user = "view";
};
tramwaj = {
hostName = "asi.pwr.wroc.pl";
publicKey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAINnqXeczgwYduhAd3LT16qTor8CcU1b8J+YyUwKhkxqD";
port = 2137;
user = "poz";
};
};
};
};
pipewire.enable = true;
syncthing.enable = true;
};

View file

@ -1,15 +1,9 @@
_: {
imports = [
./quickshell
./configuration.nix
./firefox.nix
./git.nix
./hardware-configuration.nix
./profile.nix
./programs.nix
./ssh.nix
./system.nix
./themes.nix
./waybar.nix
./wabar.nix
];
}

View file

@ -1,51 +0,0 @@
{
pkgs,
...
}: {
poz.programs.firefox = {
enable = true;
defaultSearchEngine = "NotASearx";
searchEngines = {
"NotASearx" = {
url = "https://search.notashelf.dev/search?q={searchTerms}";
faviconUrl = "https://search.notashelf.dev/favicon.ico";
aliases = [ "@sx" ];
};
"NixOS Packages" = {
url = "https://search.nixos.org/packages?channel=unstable&query={searchTerms}";
faviconPath = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg";
aliases = [ "@np" ];
};
"NixOS Options" = {
url = "https://search.nixos.org/options?channel=unstable&query={searchTerms}";
faviconPath = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg";
aliases = [ "@no" ];
};
"NixOS Wiki" = {
url = "https://wiki.nixos.org/w/index.php?search={searchTerms}";
faviconPath = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg";
aliases = [ "@nw" ];
};
"Home Manager Option Search" = {
url = "https://home-manager-options.extranix.com/?release=master&query={searchTerms}";
faviconPath = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg";
aliases = [ "@hm" ];
};
"Arch Wiki" = {
url = "https://wiki.archlinux.org/index.php?search={searchTerms}";
faviconUrl = "https://archlinux.org/favicon.ico";
aliases = [ "@aw" ];
};
"Gentoo Wiki" = {
url = "https://wiki.gentoo.org/index.php?search={searchTerms}";
faviconUrl = "https://www.gentoo.org/favicon.ico";
aliases = [ "@gw" ];
};
"Debian Wiki" = {
url = "https://wiki.debian.org/FrontPage?action=fullsearch&value={searchTerms}";
faviconUrl = "https://www.debian.org/favicon.ico";
aliases = [ "@dw" ];
};
};
};
}

View file

@ -1,8 +0,0 @@
_: {
poz.programs.git = {
enable = true;
userName = "jacekpoz";
userEmail = "jacekpoz@proton.me";
signingKey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIHXD1EM4mQz99vJhmZX1r7kwMd8yewogOuoTUuv1xWZB";
};
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 324 KiB

View file

@ -1,23 +1,20 @@
{
lib,
...
}: let
inherit (lib.lists) map;
inherit (lib.path) append;
in {
imports = map (append ../common/optional) [
"adb.nix"
"cpu/intel.nix"
"gpu/intel.nix"
"mullvad-vpn.nix"
"opentabletdriver.nix"
"power-supply.nix"
"qmk.nix"
"steam.nix"
"suspend.nix"
"v4l2.nix"
"wayland.nix"
"wireshark.nix"
"yubikey.nix"
_: {
imports = [
../../options/boot/systemd-boot.nix
../../options/common/btrfs-scrub.nix
../../options/common/docs.nix
../../options/common/networking.nix
../../options/common/nix.nix
../../options/common/oomd.nix
../../options/common/pin-registry.nix
../../options/common/preserve-system.nix
../../options/desktop/bluetooth.nix
../../options/desktop/dev/malloc-perturb.nix
../../options/desktop/fonts.nix
../../options/desktop/mullvad-vpn.nix
../../options/desktop/opentabletdriver.nix
../../options/desktop/power-supply.nix
../../options/desktop/random-mac.nix
../../options/desktop/suspend.nix
];
}

View file

@ -1,127 +1,218 @@
{
config,
lib,
inputs,
pkgs,
...
}: let
inherit (config.poz.other.system) username;
inherit (lib.attrsets) attrValues;
username = config.myOptions.other.system.username;
in {
home-manager.users.${username} = {
home.packages = attrValues {
inherit (pkgs)
keepassxc
eza
ripgrep
signal-desktop-beta
element-desktop
obs-studio
heroic
ungoogled-chromium
tor-browser-bundle-bin
mullvad-browser
thunderbird
gimp
easyeffects
libreoffice-fresh
prismlauncher
qbittorrent
zellij
caprine-bin
trash-cli
xdg-utils
pamixer
brightnessctl
dig
imv
pcmanfm
xdg-ninja
gnupg
age
rage
fd
udisks
ffmpeg_6-full
yt-dlp
filelight
asciinema
asciinema-agg
du-dust
appimage-run
file
fastfetch
uutils-coreutils
anki
alsa-utils
ezquake
imagemagick
psmisc
mesa-demos
#aseprite-unfree
jq
fq
progress
parallel
p7zip
xxd
mpc-cli
playerctl
xdg-user-dirs
lshw
tree
exiv2
krita
usbutils
kiwix
inkscape
gomuks
twitch-tui
ytfzf
mat2
simplex-chat-desktop
libsixel
lsix
qmk
enigma
superTuxKart
solaar
httpie
mangohud
nix-index
heaptrack
magic-wormhole
modemmanager
usb-modeswitch
usb-modeswitch-data
mobile-broadband-provider-info
modem-manager-gui
webcamoid
fswebcam
pciutils
rnote
inxi
pcsc-tools
libnfc
nix-tree
duf
bat
hw-probe
zed-editor
osu-lazer-bin
delta
scrcpy
godot_4
libnotify
radicle-node
;
inherit (pkgs.libsForQt5)
kdenlive
;
inherit (config.boot.kernelPackages)
cpupower
perf
;
};
home.packages = let
hyprcontrib = inputs.hyprcontrib.packages.${pkgs.system};
shadower = inputs.shadower.packages.${pkgs.system};
fenix = inputs.fenix.packages.${pkgs.system};
nixpkgs-wayland = inputs.nixpkgs-wayland.packages.${pkgs.system};
agenix = inputs.agenix.packages.${pkgs.system};
nh = inputs.nh.packages.${pkgs.system};
in with pkgs; [
git
librewolf-wayland
keepassxc
eza
ripgrep
libnotify
rofi-wayland
rofi-calc
session-desktop
signal-desktop-beta
element-desktop
obs-studio
heroic
steam
ungoogled-chromium
amdgpu_top
tor-browser-bundle-bin
mullvad-browser
thunderbird
telegram-desktop
livecaptions
gimp
helvum
ddccontrol
ddccontrol-db
bluez
blueman
easyeffects
lbry
libreoffice-fresh
minetest
airshipper
#onionshare-gui
prismlauncher
qbittorrent
ventoy-full
zellij
nodejs
unzip
cmake
gcc
nixpkgs-wayland.sway-unwrapped
caprine-bin
libsForQt5.kdenlive
telegram-desktop
waypipe
trash-cli
bibata-cursors
nixpkgs-wayland.swww
opentabletdriver
networkmanagerapplet
nixpkgs-wayland.wl-clipboard
nixpkgs-wayland.wlsunset
xdg-utils
hyprpicker
hyprcontrib.hyprprop
hyprcontrib.grimblast
shadower.shadower
pamixer
brightnessctl
dig
swappy
nixpkgs-wayland.imv
pcmanfm
xdg-ninja
auto-cpufreq
gnupg
pinentry-qt
age
rage
fd
udisks
ffmpeg_6-full
ghc
ghcid
cabal-install
yt-dlp
filelight
(fenix.complete.withComponents [
"cargo"
"clippy"
"rust-src"
"rustc"
"rustfmt"
])
wayland
showmethekey
polkit
libsForQt5.polkit-kde-agent
asciinema
asciinema-agg
du-dust
appimage-run
file
virt-manager
weechat
flowblade
fastfetch
git-annex
gamemode
croc
uutils-coreutils
anki
alsa-utils
speechd
espeak
ezquake
imagemagick
weston
pavucontrol
psmisc
mesa-demos
nnn
#aseprite-unfree
jq
fq
gnumake
gdb
tea
codeberg-cli
progress
parallel
p7zip
xxd
tldr
mpc-cli
playerctl
xdg-user-dirs
meson
wiki-tui
lshw
tree
ydotool
piper
smartmontools
agenix.default
nh.default
exiv2
krita
mypaint
logseq
gamescope
vitetris
gtetrinet
config.boot.kernelPackages.cpupower
config.boot.kernelPackages.perf
usbutils
libsForQt5.dolphin
kiwix
inkscape
gomuks
nushell
twitch-tui
hugo
ytfzf
mat2
simplex-chat-desktop
libsixel
lsix
ollama
qmk
python3
wev
enigma
via
vial
rustdesk
superTuxKart
solaar
glfw-wayland-minecraft
httpie
mangohud
nix-index
xdg-ninja
heaptrack
modemmanager
usb-modeswitch
usb-modeswitch-data
mobile-broadband-provider-info
modem-manager-gui
webcamoid
fswebcam
asciicam
v4l-utils
osu-lazer-bin
pciutils
wvkbd
clickclack
rnote
rot8
inxi
pcsc-tools
libnfc
nix-tree
duf
bat
subversion
hashcat
];
};
}

View file

@ -1,12 +0,0 @@
_: {
poz.programs.quickshell = {
enable = true;
enabledConfigs = [
"powermenu"
"poz"
];
extraConfigs = {
# bar = ./bar;
};
};
}

View file

@ -1,74 +0,0 @@
_: {
poz.services.ssh = {
daemon.enable = false;
agent = {
enable = true;
hostAliases = let
chmura = {
hostName = "192.168.15.2";
publicKey = "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDZLEWp9DsF9znp3W6uqP23yMFd8QQs0CmNKTKTanbfRYOqRWw0Jpuryxg7rTU8ioRM5L4zpIqu/v+pt9x76UsWTlFqjk9S35M1g0Kb2QN3czMJj5uA4jtFh47H8+hfBHm2RelPCcJCSmkR9gDa3XcrxlcC642yU4LTObHeHZg0yUDhUwKS8AdybxkPlmXPZ+UPEphq0CIBxU9mnieQMbQtMFnjEnNMDZJnP4BUF/XuWeHwh8yBttlL+hS37aI3hQYwGd5zdkSD9RWha10Nandlmt6+io6KYQgJxRK0c27i2jO7cmEMOz0h/ZnwHpTtRD9ifDTXuWN9l8+prAxsbC9pBsiDHqZ9ESHq7DzvqIeeyrQT0iHDoOPfB2PPCFJZlkFiM7hsWwkMc5Jaol9SjjH1a+B/+BvNGAQDWt1JIZzwE6T9RVQdGph6GMDS4o3gW3Hd8hyVdFhwD5xTJ567SntqsJdhzGH9HU5ybya3MG0WTWw3dLI0aMv/eAWSRx+7ZPE=";
port = 7312;
user = "chmura";
};
_chmura = chmura // { hostName = "jacekpoz.pl"; };
in {
github = {
hostName = "github.com";
publicKey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIBjhNPiKUGyAdhI6jXQsDVj5jqklIh+gVEoCGZEEaC62";
};
codeberg = {
hostName = "codeberg.org";
publicKey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAILZReNUB66x+SkVx0hlbA1lyfEBMpT8IvQ6LPRn52oBl";
};
gitlab = {
hostName = "gitlab.com";
publicKey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIA/4XLNm1/ea2jtLj2AvPWMigA/xo9mLbRUGurVthiqm";
};
aur = {
hostName = "aur.archlinux.org";
publicKey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIPrCofD7GLXfASLMdYFnnMxs77Ys0nu9PsCo6IKVB6Wd";
user = "aur";
};
jacekpoz = {
hostName = "git.jacekpoz.pl";
publicKey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIJSxvSM0y5Z958VrgU9JNCYS4oZmV4nNXP3hIrw6zr8R";
user = "forgejo";
};
inherit chmura _chmura;
malina = {
hostName = "192.168.15.3";
publicKey = "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQCJWWnBdRFQjMxSGxjPQe/jk7sAHOEb4CAY9mY105bnNcoBz0DORvK+4Ha4TIDELubKbzasDTU/Vi7tunjbiFinbOP94OTVoc9xphfxa3eQ0GrIo0icLk0A2IbAqC32m9f93AvPseZib/9PJTIpZMQcklwllKfxg3WYBglVXLmu4+epPRfk3YR6TOP77guxT8MF9zdFrlRz8Ugcytrez2evOyva2YLdsadlke3cTVLypBFB5fJ2dfDSrYzsTEgDQB9o65Kpuqp/k+hvzdZLxDjC+vec1sUWiD9nPAHOPBKsbo9UqZtp5in4+vf8iaMVGZrjAHvz3NBze7uRZGdLLm7ACfuqq1J+cyGVCFOaxk1g0e5rNqFjMnLwKrF0UaAxmKkDNnkJQnWDCY63V+Q1PkfPWRSd5oNVZnHmyukosKlmR6n2/WqQsGrQpg0oDFh8MHupJ2sCKisAR6nvm1R9HmffdlMSBEjyx1V6j2onsGX5P+lsoODoIQGz1GV6JGBU/Qc=";
user = "malina";
};
outfoxxed = {
hostName = "git.outfoxxed.me";
publicKey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIGqsfan2BERiFSgXEv6KCTbzpKmtkq4gNd2409ZuKbgh";
};
kik_haslo = {
hostName = "156.17.7.16";
publicKey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIJAC03lGubkSRl02cX1TJ3ItkcozS8aocEHeysv/WY4v";
port = 10002;
user = "auth";
};
kik_oceny = {
hostName = "156.17.7.45";
publicKey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIJAC03lGubkSRl02cX1TJ3ItkcozS8aocEHeysv/WY4v";
port = 19999;
user = "view";
};
tramwaj = {
hostName = "asi.pwr.wroc.pl";
publicKey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAINnqXeczgwYduhAd3LT16qTor8CcU1b8J+YyUwKhkxqD";
port = 2137;
user = "poz";
};
mikrus = {
hostName = "maluch2.mikr.us";
publicKey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIM3VA0UdRQYXRVIw539tUrN/eTZdgh+WX3Yf7wOvjIg8";
port = 10471;
user = "root";
};
};
};
};
}

View file

@ -1,17 +0,0 @@
_: {
poz.other = {
system = {
hostname = "del";
username = "jacek";
platform = "x86_64-linux";
};
hardware.monitors = {
eDP-1 = {
resolution = { w = 1920; h = 1280; };
refreshRate = 60;
position = { x = 0; y = 0; };
scale = 1.0;
};
};
};
}

View file

@ -1,31 +0,0 @@
{
pkgs,
...
}: {
poz.themes = {
cursor = {
enable = true;
package = pkgs.bibata-cursors;
name = "Bibata-Modern-Classic";
size = 24;
};
gtk = {
enable = true;
package = pkgs.catppuccin-gtk;
name = "catppuccin-mocha-green-standard+normal";
variant = "mocha";
accentColour = "green";
iconTheme = {
name = "Papirus-Dark";
package = pkgs.catppuccin-papirus-folders;
};
};
qt = {
enable = true;
package = pkgs.catppuccin-kde;
name = "Catppuccin-Mocha-Dark";
variant = "mocha";
accentColour = "green";
};
};
}

View file

@ -1,31 +1,15 @@
{
config,
inputs,
lib,
pkgs,
...
}: let
inherit (config.poz.other.system) username;
inherit (lib.meta) getExe getExe';
iio-hyprland = getExe inputs.iio-hyprland.packages.${pkgs.system}.default;
wpctl = getExe' pkgs.wireplumber "wpctl";
brightnessctl = getExe pkgs.brightnessctl;
inherit (inputs.hyprland.packages.${pkgs.system}) hyprland;
hyprctl = getExe' hyprland "hyprctl";
rg = getExe pkgs.ripgrep;
wc = getExe' pkgs.coreutils-full "wc";
kill = getExe' pkgs.util-linux "kill";
pkill = getExe' pkgs.procps "pkill";
pidof = getExe' pkgs.procps "pidof";
asusctl = getExe' config.services.asusd.package "asusctl";
sed = getExe pkgs.gnused;
username = config.myOptions.other.system.username;
in {
home-manager.users.${username} = {
programs.waybar = {
enable = true;
package = inputs.waybar.packages.${pkgs.system}.waybar;
package = inputs.wabar.packages.${pkgs.system}.waybar;
settings.mainBar = {
gtk-layer-shell = true;
layer = "top";
@ -41,7 +25,7 @@ in {
format-icons = {
default = ["󰕿" "󰖀" "󰕾"];
};
on-click = "${wpctl} set-mute @DEFAULT_AUDIO_SINK@ toggle";
on-click = "${pkgs.wireplumber}/bin/wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle";
};
"hyprland/workspaces" = {
sort-by-name = true;
@ -92,8 +76,8 @@ in {
format-icons = [ "󰃚" "󰃛" "󰃜" "󰃝" "󰃞" "󰃟" "󰃠" ];
#on-scroll-up = "~/Scripts/bright.sh s +1%";
#on-scroll-down = "~/Scripts/bright.sh s 1%-";
on-scroll-up = "${brightnessctl} set +1%";
on-scroll-down = "${brightnessctl} set 1%-";
on-scroll-up = "${pkgs.brightnessctl}/bin/brightnessctl set +1%";
on-scroll-down = "${pkgs.brightnessctl}/bin/brightnessctl set 1%-";
smooth-scrolling-threshold = 1;
};
battery = {
@ -153,11 +137,11 @@ in {
"custom/launcher" = {
format = " ";
on-click = "~/.config/rofi/launchers/type-2/launcher.sh";
on-click-right = "${pkill} rofi";
on-click-right = "pkill rofi";
};
"custom/power" = {
format = "󰐥";
on-click = "quickshell -c powermenu";
on-click = "~/.config/rofi/powermenu/type-2/powermenu.sh";
};
"hyprland/window" = {
format = "{}";
@ -203,28 +187,28 @@ in {
};
};
"custom/power_profile" = {
exec = "${asusctl} profile -p | ${sed} s:'Active profile is'::";
exec = "asusctl profile -p | sed s:'Active profile is'::";
interval = 30;
format = "󰈐{}";
format-alt-click = "click-right";
format-alt = "󰈐";
on-click = "${asusctl} profile -n; ${pkill} -SIGRTMIN+8 waybar";
on-click = "asusctl profile -n; pkill -SIGRTMIN+8 waybar";
signal = 8;
};
"custom/xwayland" = {
exec = "${hyprctl} clients | ${rg} -e 'xwayland: [1]' | ${wc} -l";
exec = "${inputs.hyprland.packages.${pkgs.system}.hyprland}/bin/hyprctl clients | ${pkgs.ripgrep}/bin/rg -e 'xwayland: [1]' | ${pkgs.coreutils-full}/bin/wc -l";
interval = 1;
format = "X {}";
};
"custom/rot" = {
exec = "${pidof} iio-hyprland > /dev/null; if [ $? -eq '0' ]; then echo -n '󰿆'; else echo -n '󰌾'; fi";
exec = "${pkgs.procps}/bin/pidof rot8 > /dev/null; if [ $? -eq '0' ]; then echo -n '󰿆'; else echo -n '󰌾'; fi";
interval = 1;
on-click = "${pkill} iio-hyprland || ${iio-hyprland} & disown";
on-click = "${pkgs.procps}/bin/pkill rot8 || rot8 --threshold 0.75 & disown";
format = "󰑤 {}";
};
"custom/wvkbd" = {
# RTMIN
on-click = "${kill} -s 34 $(${pidof} wvkbd-mobintl)";
on-click = "${pkgs.util-linux}/bin/kill -s 34 $(${pkgs.procps}/bin/pidof wvkbd-mobintl)";
format = "󰌌";
};
mpd = {
@ -349,7 +333,7 @@ in {
.modules-right > widget:first-child > #workspaces {
margin-right: 0;
}
#pulseaudio {
margin-top: 3px;
margin-bottom: 3px;
@ -526,7 +510,7 @@ in {
background: @mantle;
color: @green;
}
#custom-rot {
margin-top: 3px;
margin-bottom: 3px;
@ -563,3 +547,4 @@ in {
};
};
}

View file

@ -1,61 +1,230 @@
{
config,
pkgs,
lib,
inputs,
...
}: {
services = {
pcscd.enable = true;
udisks2.enable = true;
}: let
username = config.myOptions.other.system.username;
in {
nixpkgs = {
config.allowUnfree = true;
overlays = [
inputs.nur.overlay
inputs.neovim-nightly-overlay.overlay
];
};
poz = {
other = {
home-manager = {
boot = {
loader = {
systemd-boot = {
enable = true;
enableDirenv = true;
};
networking.enable = true;
};
programs = {
agenix.enable = true;
nh = let
inherit (config.poz.other.system) username;
home = config.home-manager.users.${username}.home.homeDirectory;
in {
enable = true;
flake = "${home}/niksos";
};
starship.enable = true;
zsh = {
enable = true;
extraAliases = {
u = "nh os switch -H hape";
us = "NIX_SSHOPTS='-t' nixos-rebuild switch --flake \"/home/jacek/niksos#chmura\" -L --use-remote-sudo --target-host chmura";
# TODO use this when nh supports it
#us = "NIX_SSHOPTS='-t' nh os switch -H chmura -- --store ssh-ng://chmura";
};
profiling = false;
};
zoxide.enable = true;
anyrun.enable = true;
btop.enable = true;
foot.enable = true;
mpv.enable = true;
neovim.enable = true;
zathura.enable = true;
hypr = {
land.enable = true;
lock.enable = true;
idle.enable = true;
};
quickshell = {
enable = true;
enabledConfigs = [
"powermenu"
"poz"
];
memtest86.enable = true;
};
};
kernelPackages = pkgs.linuxPackages_zen;
};
documentation = {
enable = true;
dev.enable = true;
doc.enable = true;
info.enable = true;
man = {
enable = true;
generateCaches = true;
man-db.enable = false;
mandoc.enable = true;
};
nixos = {
includeAllModules = true;
};
};
networking = {
networkmanager.enable = true;
firewall.checkReversePath = "loose";
};
# don't wait for network to boot faster
# https://old.reddit.com/r/NixOS/comments/vdz86j/how_to_remove_boot_dependency_on_network_for_a
systemd = {
targets.network-online.wantedBy = lib.mkForce []; # default is [ "multi-user.target" ]
services.NetworkManager-wait-online.wantedBy = lib.mkForce []; # default is [ "network-online.target" ]
};
systemd.oomd = {
enable = true;
enableUserServices = true;
};
time.timeZone = "Europe/Warsaw";
nix = {
settings = {
experimental-features = [
"flakes"
"nix-command"
];
substituters = [
"https://hyprland.cachix.org"
"https://anyrun.cachix.org"
"https://nix-community.cachix.org"
"https://nixpkgs-wayland.cachix.org"
"https://helix.cachix.org"
"https://viperml.cachix.org"
];
trusted-public-keys = [
"hyprland.cachix.org-1:a7pgxzMz7+chwVL3/pzj6jIBMioiJM7ypFP8PwtkuGc="
"anyrun.cachix.org-1:pqBobmOjI7nKlsUMV25u9QHa9btJK65/C8vnO3p346s="
"nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs="
"nixpkgs-wayland.cachix.org-1:3lwxaILxMRkVhehr5StQprHdEo4IrE8sRho9R9HOLYA="
"helix.cachix.org-1:ejp9KQpR1FBI2onstMQ34yogDm4OgU2ru6lIwPvuCVs="
"viperml.cachix.org-1:qZhKBMTfmcLL+OG6fj/hzsMEedgKvZVFRRAhq7j8Vh8="
];
keep-outputs = true;
keep-derivations = true;
};
};
programs.dconf.enable = true;
security.sudo.package = pkgs.sudo.override { withInsults = true; };
security.polkit.enable = true;
fonts.packages = with pkgs; [
material-design-icons
(nerdfonts.override { fonts = [
"JetBrainsMono"
"Iosevka"
]; })
noto-fonts
noto-fonts-cjk-sans
noto-fonts-cjk-serif
noto-fonts-emoji
];
users.users.${username} = {
extraGroups = [ "networkmanager" "libvirtd" ];
shell = pkgs.zsh;
};
programs.zsh.enable = true;
environment = {
shells = [ pkgs.zsh ];
pathsToLink = [ "/share/zsh" ];
enableAllTerminfo = true;
sessionVariables = {
TERM = "foot";
EDITOR = "${pkgs.neovim}/bin/nvim";
GTK_IM_MODULE = "fcitx";
QT_IM_MODULE = "fcitx";
XMODIFIERS = "@im=fcitx";
LIBSEAT_BACKEND = "logind";
QT_QPA_PLATFORMTHEME = "qt5ct";
GOPATH = "\$HOME/.local/share/go";
XDG_CURRENT_DESKTOP = "Hyprland";
XDG_SESSION_TYPE = "wayland";
XDG_SESSION_DESKTOP = "Hyprland";
QT_QPA_PLATFORM = "wayland";
MOZ_ENABLE_WAYLAND = "1";
MOZ_DRM_DEVICE = "/dev/dri/card0";
SDL_VIDEODRIVER = "wayland";
_JAVA_AWT_WM_NONEREPARENTING = "1";
CLUTTER_BACKEND = "wayland";
GDK_BACKEND = "wayland";
XCURSOR_THEME = "Bibata-Modern-Classic";
XCURSOR_SIZE = "24";
XDG_DATA_HOME = "\$HOME/.local/share";
XDG_CONFIG_HOME = "\$HOME/.config";
XDG_STATE_HOME = "\$HOME/.local/state";
XDG_CACHE_HOME = "\$HOME/.cache";
HISTFILE = "\${XDG_STATE_HOME}/bash/history";
CARGO_HOME = "\${XDG_DATA_HOME}/cargo";
GTK2_RC_FILES = "\${XDG_CONFIG_HOME}/gtk-2.0/gtkrc";
CHROME_EXECUTABLE = "${pkgs.ungoogled-chromium}/bin/chromium";
NIXOS_OZONE_WL = "1";
};
systemPackages = with pkgs; [
man-pages
man-pages-posix
];
};
services = {
blueman.enable = true;
mullvad-vpn.enable = true;
pcscd.enable = true;
udev.packages = [ pkgs.yubikey-personalization ];
udisks2.enable = true;
dbus.enable = true;
};
programs.gnupg.agent = {
enable = true;
pinentryFlavor = "qt";
enableSSHSupport = true;
};
hardware = {
opentabletdriver = {
enable = true;
daemon.enable = true;
};
bluetooth.enable = true;
opengl = {
enable = true;
driSupport = true;
driSupport32Bit = true;
};
};
xdg.portal = {
enable = true;
extraPortals = with pkgs; [
inputs.hyprland.packages.${pkgs.system}.xdg-desktop-portal-hyprland
xdg-desktop-portal-gtk
];
};
services.btrfs = {
autoScrub = {
enable = true;
interval = "weekly";
};
};
services.psd = {
enable = true;
resyncTimer = "30m";
};
services.journald = {
extraConfig = ''
SystemMaxUse=100M
'';
};
myOptions = {
services = {
dunst.enable = true;
greetd = {

View file

@ -2,10 +2,6 @@ _: {
imports = [
./configuration.nix
./hardware-configuration.nix
./firefox.nix
./profile.nix
./programs.nix
./system.nix
./themes.nix
./home-manager.nix
];
}

View file

@ -1,51 +0,0 @@
{
pkgs,
...
}: {
poz.programs.firefox = {
enable = true;
defaultSearchEngine = "NotASearx";
searchEngines = {
"NotASearx" = {
url = "https://search.notashelf.dev/search?q={searchTerms}";
faviconUrl = "https://search.notashelf.dev/favicon.ico";
aliases = [ "@sx" ];
};
"NixOS Packages" = {
url = "https://search.nixos.org/packages?channel=unstable&query={searchTerms}";
faviconPath = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg";
aliases = [ "@np" ];
};
"NixOS Options" = {
url = "https://search.nixos.org/options?channel=unstable&query={searchTerms}";
faviconPath = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg";
aliases = [ "@no" ];
};
"NixOS Wiki" = {
url = "https://wiki.nixos.org/w/index.php?search={searchTerms}";
faviconPath = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg";
aliases = [ "@nw" ];
};
"Home Manager Option Search" = {
url = "https://home-manager-options.extranix.com/?release=master&query={searchTerms}";
faviconPath = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg";
aliases = [ "@hm" ];
};
"Arch Wiki" = {
url = "https://wiki.archlinux.org/index.php?search={searchTerms}";
faviconUrl = "https://archlinux.org/favicon.ico";
aliases = [ "@aw" ];
};
"Gentoo Wiki" = {
url = "https://wiki.gentoo.org/index.php?search={searchTerms}";
faviconUrl = "https://www.gentoo.org/favicon.ico";
aliases = [ "@gw" ];
};
"Debian Wiki" = {
url = "https://wiki.debian.org/FrontPage?action=fullsearch&value={searchTerms}";
faviconUrl = "https://www.debian.org/favicon.ico";
aliases = [ "@dw" ];
};
};
};
}

152
hosts/hape/home-manager.nix Normal file
View file

@ -0,0 +1,152 @@
{
config,
inputs,
lib,
pkgs,
self,
...
}: let
username = config.myOptions.other.system.username;
in {
home-manager = {
useUserPackages = true;
useGlobalPkgs = true;
extraSpecialArgs = {inherit inputs self;};
users.${username} = {
programs = {
home-manager.enable = true;
direnv = {
enable = true;
nix-direnv.enable = true;
};
};
home = {
inherit username;
homeDirectory = "/home/${username}";
packages = let
hyprcontrib = inputs.hyprcontrib.packages.${pkgs.system};
shadower = inputs.shadower.packages.${pkgs.system};
fenix = inputs.fenix.packages.${pkgs.system};
nixpkgs-wayland = inputs.nixpkgs-wayland.packages.${pkgs.system};
agenix = inputs.agenix.packages.${pkgs.system};
nh = inputs.nh.packages.${pkgs.system};
in with pkgs; [
git
librewolf-wayland
keepassxc
eza
ripgrep
libnotify
rofi-wayland
rofi-calc
session-desktop
signal-desktop-beta
schildichat-desktop
obs-studio
heroic
steam
ungoogled-chromium
amdgpu_top
tor-browser-bundle-bin
mullvad-browser
thunderbird
livecaptions
gimp
helvum
bluez
blueman
easyeffects
libreoffice-fresh
onionshare-gui
qbittorrent
zathura
zellij
unzip
nixpkgs-wayland.sway-unwrapped
caprine-bin
waypipe
trash-cli
bibata-cursors
nixpkgs-wayland.swww
networkmanagerapplet
nixpkgs-wayland.wl-clipboard
nixpkgs-wayland.wlsunset
xdg-utils
hyprpicker
hyprcontrib.hyprprop
hyprcontrib.grimblast
shadower.shadower
pamixer
brightnessctl
dig
swappy
nixpkgs-wayland.imv
pcmanfm
xdg-ninja
auto-cpufreq
gnupg
pinentry-qt
age
rage
fd
udisks
ffmpeg
yt-dlp
filelight
(fenix.complete.withComponents [
"cargo"
"clippy"
"rust-src"
"rustc"
"rustfmt"
])
wayland
showmethekey
polkit
libsForQt5.polkit-kde-agent
asciinema
asciinema-agg
du-dust
mullvad-vpn
appimage-run
file
hyfetch
git-annex
gamemode
croc
linuxKernel.packages.linux_xanmod_latest.cpupower
alsa-utils
speechd
arcanPackages.espeak
imagemagick
pavucontrol
psmisc
mesa-demos
nnn
jq
fq
tea
codeberg-cli
progress
parallel
p7zip
xxd
mpc-cli
playerctl
xdg-user-dirs
wiki-tui
lshw
tree
ydotool
agenix.default
nh.default
exiv2
gamescope
];
stateVersion = lib.mkDefault "23.11";
};
};
};
}

View file

@ -1,23 +0,0 @@
{
lib,
...
}: let
inherit (lib.lists) map;
inherit (lib.path) append;
in {
imports = map (append ../common/optional) [
"adb.nix"
"asusd.nix"
"cpu/intel.nix"
"gpu/intel.nix"
"mullvad-vpn.nix"
"opentabletdriver.nix"
"power-supply.nix"
"qmk.nix"
"suspend.nix"
"v4l2.nix"
"wayland.nix"
"wireshark.nix"
"yubikey.nix"
];
}

View file

@ -1,81 +0,0 @@
{
config,
lib,
pkgs,
...
}: let
inherit (config.poz.other.system) username;
inherit (lib.attrsets) attrValues;
in {
home-manager.users.${username} = {
home.packages = attrValues {
inherit (pkgs)
keepassxc
eza
ripgrep
signal-desktop-beta
element-desktop
obs-studio
heroic
ungoogled-chromium
tor-browser-bundle-bin
mullvad-browser
thunderbird
gimp
easyeffects
libreoffice-fresh
qbittorrent
zellij
unzip
caprine-bin
trash-cli
networkmanagerapplet
xdg-utils
pamixer
brightnessctl
dig
imv
pcmanfm
xdg-ninja
gnupg
age
rage
fd
udisks
ffmpeg_6-full
yt-dlp
filelight
asciinema
asciinema-agg
du-dust
appimage-run
file
fastfetch
magic-wormhole
alsa-utils
imagemagick
psmisc
mesa-demos
jq
fq
progress
parallel
p7zip
xxd
mpc-cli
playerctl
xdg-user-dirs
lshw
tree
exiv2
libnotify
radicle-node
;
inherit (config.boot.kernelPackages)
cpupower
perf
;
};
};
}

Some files were not shown because too many files have changed in this diff Show more