Compare commits

..
90 Commits
Author SHA1 Message Date
Chest a176fbc62d New install 2025-07-18 16:40:42 +03:00
Chest b27399db29 flake: update aagl 2025-07-02 15:15:52 +03:00
Chest a98c3f84ce feat: F disk 2025-07-02 15:15:52 +03:00
Sweetbread 7069a9e1f0 yazi: do not preload .crdownload 2025-06-26 19:50:54 +03:00
Sweetbread 86a972fd61 hyprland: add media app binds 2025-06-25 17:25:12 +03:00
Sweetbread d793b0e635 hyprland: add media binds 2025-06-24 23:30:29 +03:00
Sweetbread 1f034a5ebc pkgs: add texstudio 2025-06-09 16:28:02 +03:00
Sweetbread b96b2986f0 system: update 2025-06-08 02:53:46 +03:00
Sweetbread 4570dfb4b4 chore: something... 2025-06-08 01:18:25 +03:00
Sweetbread 88efa96ac7 pkgs: remove libreoffice for chest 2025-05-21 17:02:09 +03:00
Sweetbread 48ce8bdf9d system: update 2025-05-05 17:21:43 +03:00
Sweetbread 724633d928 system: change channels 2025-05-05 16:46:17 +03:00
Sweetbread 7eedb9098a pkgs(chest): turn off some packages 2025-05-03 23:27:53 +03:00
Sweetbread 6432eb6171 style: decrease gaps 2025-04-22 11:49:15 +03:00
Sweetbread 4b7d0a0980 system: update nixpkgs-fixed 2025-04-22 00:33:22 +03:00
Sweetbread de77adcfcb style: ags 2025-04-22 00:33:22 +03:00
Sweetbread 16f84aaa04 system: update 2025-04-22 00:33:22 +03:00
Sweetbread 24f013c765 refactor: move utils to a separate file 2025-04-18 02:52:44 +03:00
Sweetbread a84a509cf8 pkgs: add krita and gimp 2025-04-18 02:46:26 +03:00
Sweetbread df54654750 fix: wallpapers 2025-04-18 02:46:26 +03:00
Chest cddf52d5d3 add binwalk 2025-04-16 00:21:35 +03:00
Chest 01c5f62314 aagl 2025-04-16 00:21:35 +03:00
Sweetbread 3279001345 Remove hyprlock 2025-04-16 00:20:20 +03:00
Sweetbread 2ea3557973 feat: add intel graphics config 2025-04-13 19:38:10 +03:00
Sweetbread 9cdd54c6e8 feat: add dependencies to host in home-manager 2025-04-13 18:22:04 +03:00
Sweetbread 28bf565203 pkgs: add pinentry 2025-04-12 00:20:59 +03:00
Sweetbread b1df12ae65 fix(ags): set margins 2025-04-11 23:49:16 +03:00
Chest 5912338271 host: Impreza 2025-04-11 23:49:16 +03:00
Sweetbread a5d2aad596 fix: change nick 2025-04-09 17:30:37 +03:00
Sweetbread 56add43822 feat: yggdrasil 2025-04-09 17:30:37 +03:00
Sweetbread d524383340 style: cursor 2025-04-09 17:30:37 +03:00
Sweetbread 51566b7224 style: font 2025-04-09 17:30:37 +03:00
Sweetbread 2d322ab1f2 system: update 2025-04-09 17:30:37 +03:00
Sweetbread 8c39e606e3 feat(yazi): add d drive shortcut 2025-04-03 23:39:04 +03:00
Sweetbread d275bc88b2 feat: add my custom dns server 2025-04-03 23:39:04 +03:00
Sweetbread 3acbf43b4e feat: add pulsemixer 2025-04-03 23:39:04 +03:00
Sweetbread 729fe36326 fix: brightness setting 2025-04-03 23:39:04 +03:00
Sweetbread 530be0cf44 feat: kitty to ghostty 2025-04-03 23:39:04 +03:00
Sweetbread 6105e157c7 pkgs: add some utils 2025-04-03 23:39:04 +03:00
Sweetbread 4b0e3a61e9 feat(ags): add battery bar 2025-04-03 23:39:04 +03:00
Sweetbread 680b3cd3d6 fix(ags): wifi widget 2025-04-03 23:39:04 +03:00
Sweetbread 830336ee06 feat: postgres 2025-04-03 23:39:04 +03:00
Sweetbread 01bc1610bf system: Update 2025-03-13 15:11:27 +03:00
Sweetbread d26818f47a git: Change mail 2025-03-12 20:52:32 +03:00
Sweetbread ca50e2af2b pkgs: Add prismlauncher 2025-03-10 16:42:31 +03:00
Sweetbread 0cc88081d1 system: Update 2025-03-01 22:41:11 +03:00
Chest dee91dd001 Add pkgs 2025-03-01 22:22:27 +03:00
Sweetbread 510e179b78 system: Update 2025-02-13 23:53:19 +03:00
Sweetbread ea39ab9992 perf: Home-manager to module
feat: Optionise config
2025-02-13 23:53:19 +03:00
Sweetbread f2c215460b fix(helix): No end newline 2025-01-31 19:45:16 +03:00
Sweetbread 96d83ec1b4 pkgs: Add trashy 2025-01-27 13:57:18 +03:00
Sweetbread a3f6c55b93 style: Change opacity and wallpaper 2025-01-27 13:55:48 +03:00
Sweetbread 879ea3474a system: Update 2025-01-27 13:55:48 +03:00
Sweetbread 41cf1a5894 pkgs: litecli 2025-01-27 13:55:48 +03:00
Sweetbread b294b8c8ee feat(zsh): lg alias 2025-01-27 13:55:48 +03:00
Sweetbread e677754de3 style: Reduce gap 2025-01-25 20:00:59 +03:00
Sweetbread 4f11c8139f wip: console
Font changes to default after reload
2025-01-25 19:38:13 +03:00
Sweetbread e46c205fe3 ags: To derivation 2025-01-25 19:38:13 +03:00
Sweetbread 290b694877 pkgs: Udiskie 2025-01-25 19:38:13 +03:00
Sweetbread 8ad47d16eb system: Update 2025-01-25 19:38:13 +03:00
Sweetbread e3f8430193 pkgs: Remove extra packages 2025-01-25 19:38:13 +03:00
Sweetbread 46d4249637 style: Btop 2025-01-25 19:38:13 +03:00
Sweetbread 8c1f94d05a feat(devshell): Add pkgs for helix and switching to zsh 2025-01-25 19:38:13 +03:00
Sweetbread bac068cf69 fix(starship): Remove extra space 2025-01-25 19:38:13 +03:00
Sweetbread 6cbc8b393d pkgs: Update aagl 2025-01-25 19:38:13 +03:00
Sweetbread ac3eee4bb0 pkgs: git-lfs 2025-01-25 19:38:13 +03:00
Sweetbread 045f44e2d2 pkgs: To 24.11 2025-01-25 19:38:13 +03:00
Sweetbread a198789a17 ags: Add keyboard layout widget 2025-01-25 19:38:13 +03:00
Sweetbread 7fa285f0cc docs: Change screenshot 2025-01-25 19:38:13 +03:00
Sweetbread bebf7e8b6d pkgs: Add Pycharm to chest 2025-01-25 19:38:13 +03:00
Sweetbread 6f2c1bed14 ags: style 2025-01-25 19:38:13 +03:00
Sweetbread dfa96985d6 pkgs: Remove dev packages 2025-01-25 19:38:13 +03:00
Sweetbread 2a6196cc70 fix: Show GPU stats in BTop 2025-01-25 19:38:13 +03:00
Sweetbread 23a0e060ef grub: Add theme 2025-01-25 19:38:13 +03:00
Sweetbread 040923c626 fix: Bootloader 2025-01-25 19:38:13 +03:00
Sweetbread 2c3de69e72 fix: Icons 2025-01-25 19:38:13 +03:00
Sweetbread 8ea1207bb9 feat: ags 2025-01-10 22:15:02 +03:00
Sweetbread 21fe030dc7 pkgs: New utils 2024-12-28 20:00:44 +03:00
Sweetbread f6950c7e78 system: Update 2024-12-28 20:00:44 +03:00
Sweetbread f76b88cf4b vpn: Update 2024-12-28 20:00:44 +03:00
Sweetbread 6e5568e330 pkgs: Add rtorrent 2024-12-28 20:00:44 +03:00
Sweetbread 1308aae228 syncthing: New device 2024-12-28 20:00:44 +03:00
Sweetbread ded07cb14a pkgs: Add aseprite 2024-12-28 20:00:44 +03:00
Sweetbread 81ab925d88 pkgs: Add libreoffice 2024-12-28 20:00:44 +03:00
Sweetbread e909e76c9e develop: Add Rust 2024-12-28 20:00:44 +03:00
Sweetbread 3fc9f416f9 feat: Drag and Drop in yazi 2024-12-28 20:00:44 +03:00
Sweetbread c3672ea118 system: Update 2024-12-28 20:00:44 +03:00
Sweetbread 1dee7a5769 vpn: Update 2024-12-28 20:00:44 +03:00
Sweetbread e0a0721dea pkgs: Flakify AAGL 2024-12-28 20:00:44 +03:00
Sweetbread 5cad49555e pkgs: Syncthing 2024-12-28 20:00:44 +03:00
129 changed files with 1248 additions and 3859 deletions

No files matched your search

Regular → Executable
View File
File mode changed.
Regular → Executable
+1 -1
View File
@@ -5,7 +5,7 @@ creation_rules:
key_groups: key_groups:
- age: - age:
- *primary - *primary
- path_regex: host/(Rias|Senko|Inaho|Eclipse)/secrets/.+$ - path_regex: host/(Rias|Senko|Eclipse)/secrets/.+$
key_groups: key_groups:
- age: - age:
- *primary - *primary
Regular → Executable
View File
File mode changed.
Regular → Executable
+7 -42
View File
@@ -1,47 +1,12 @@
# ❄️ My NixOS Config # ❄️ My NixOS Config
This configuration is based on [&'s config](https://github.com/Andrey0189/nixos-config) ```bash
git clone https://github.com/Andrey0189/nixos-config
## Users mv nixos-config $HOME/nix # Config is supposed to be in the ~/nix directory
- [Sweetbread](./user/sweetbread) cd $HOME/nix
- [Chest](./user/chest) sudo nixos-rebuild switch --flake .
home-manager switch --flake .
## Hosts
- [Rias](./host/Rias)
- [Senko](./host/Senko)
- [Eclipse](./host/Eclipse)
- [Impreza](./host/Impreza)
## How does this work?
The [flake](./flake.nix) file is the starting point. While installing/rebuilding
the correct `host` is chosen, which includes `./host/${host}/configuration.nix`.
It includes 2 (actually, more, but hey!) files:
- [`./host/modules/common.nix`](./host/modules/common.nix): Common setting
for all hosts (I don't say)
- [`./user/common.nix`](./user/common.nix): Common settings for all users (you
got the idea) and setup of [home-manager](https://github.com/nix-community/home-manager)
It allows me to remove duplications and add multiple users to one host
Example with Rias:
``` ```
./host/Rias/configuration.nix Enjoy!
./host/Rias/modules/*
./host/modules/gpu/nvidia.nix
./host/modules/common.nix
./host/Rias/hardware-configuration.nix
./modules/host.nix
./modules/host/*
./host/modules/packages.nix
./user/common.nix
./user/sweetbread/home.nix
./user/sweetbread/modules/*
./modules/user.nix
./modules/user/*
```
## Programs
Most of programs are defined in [user modules](./modules/user)
![Screenshot](./screenshot.png) ![Screenshot](./screenshot.png)
Executable
+41
View File
@@ -0,0 +1,41 @@
{
disko.devices = {
disk = {
my-disk = {
device = "/dev/sdb";
type = "disk";
content = {
type = "gpt";
partitions = {
ESP = {
type = "EF00";
size = "256M";
content = {
type = "filesystem";
format = "vfat";
mountpoint = "/boot";
};
};
swap = {
size = "8G";
content = {
type = "swap";
resumeDevice = true;
};
};
root = {
size = "100%";
content = {
type = "filesystem";
format = "ext4";
mountpoint = "/";
};
};
};
};
};
};
};
}
-60
View File
@@ -1,60 +0,0 @@
{ lib
, pkgs
, mumble ? pkgs.mumble
}:
let
# PipeWire 1.4.0 removed client-rt.conf, changing how clients negotiate
# realtime scheduling. Mumble never adapted, so its PipeWire data-loop
# thread stalls mid-negotiation and its own RT watchdog SIGKILLs the
# whole process almost immediately on every launch (confirmed via
# bpftrace: signal_generate shows Mumble's own "data-loop.0" thread
# sending itself SIGKILL). Reproduced identically on both the packaged
# 1.5.915 (Qt5) and a from-source 1.6.870 RC (Qt6) build, so it's the
# shared PipeWire client integration at fault, not Mumble's UI stack.
#
# Upstream: https://github.com/mumble-voip/mumble/issues/6780
# Bisected there to PipeWire 1.2.7 (last known-good) vs 1.4.1+ (broken).
#
# Fix: give Mumble an old, compatible libpipewire-0.3.so to dlopen at
# runtime. The system's actual PipeWire daemon is untouched (still
# whatever version NixOS ships) - only the client library Mumble talks
# through is pinned back.
pipewireGoodPkgs = import (fetchTarball {
url = "https://channels.nixos.org/nixos-24.11/nixexprs.tar.xz";
sha256 = "189lwv8l10bm9fnksfkzy05pm86gmziy9z3bdn13zc8d636ylchj"; # nix-prefetch-url --unpack https://channels.nixos.org/nixos-24.11/nixexprs.tar.xz
}) { inherit (pkgs) system; };
pipewireGood = pipewireGoodPkgs.pipewire;
# Mumble's own build is Qt5-based; QT_PLUGIN_PATH isn't set by its
# wrapper for the platform/sql plugins mumble actually needs when we
# bypass that wrapper below, so it has to be supplied explicitly.
qt5PluginPath = lib.makeSearchPath "lib/qt-${pkgs.qt5.qtbase.version}/plugins" [
pkgs.qt5.qtbase.bin
pkgs.qt5.qtsvg.bin
pkgs.qt5.qtwayland.bin
];
in
pkgs.symlinkJoin {
name = "mumble-pipewire-fixed-${mumble.version}";
paths = [ mumble ];
nativeBuildInputs = [ pkgs.makeWrapper ];
# mumble's own wrapper always prepends its own (broken, too-new)
# PipeWire path in front of anything we set, so wrapping it a second
# time can't win that ordering fight. Instead we skip straight to the
# real unwrapped binary and set env ourselves.
postBuild = ''
rm -f $out/bin/mumble
makeWrapper ${mumble}/bin/.mumble-wrapped $out/bin/mumble \
--prefix LD_LIBRARY_PATH : "${pipewireGood}/lib" \
--set QT_PLUGIN_PATH "${qt5PluginPath}"
'';
meta = mumble.meta // {
description = mumble.meta.description
+ " (patched: pinned PipeWire client lib to 1.2.7 to work around SIGKILL-on-launch with PipeWire >=1.4.0, see mumble#6780)";
};
}
Generated Regular → Executable
+422 -464
View File
File diff suppressed because it is too large. Load diff
Regular → Executable
+88 -78
View File
@@ -3,108 +3,118 @@
nixConfig = { nixConfig = {
extra-substituters = [ extra-substituters = [
"https://nix.lair.moe/main"
"https://nix-community.cachix.org" "https://nix-community.cachix.org"
# "https://cache.garnix.io"
"https://hyprland.cachix.org" "https://hyprland.cachix.org"
"https://ezkea.cachix.org" "https://ezkea.cachix.org"
"https://yazi.cachix.org" "https://risdeveau.cachix.org"
]; ];
extra-trusted-public-keys = [ extra-trusted-public-keys = [
"main:tR2gNhCBJHKAlVgohPNHBhGnWL55tB8SxXmMWJe5lo8="
"nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=" "nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs="
# "cache.garnix.io:CTFPyKSLcx5RMJKfLo5EEPUObbA78b0YQ2DTCJXqr9g="
"hyprland.cachix.org-1:a7pgxzMz7+chwVL3/pzj6jIBMioiJM7ypFP8PwtkuGc=" "hyprland.cachix.org-1:a7pgxzMz7+chwVL3/pzj6jIBMioiJM7ypFP8PwtkuGc="
"ezkea.cachix.org-1:ioBmUbJTZIKsHmWWXPe1FSFbeVe+afhfgqgTSNd34eI=" "ezkea.cachix.org-1:ioBmUbJTZIKsHmWWXPe1FSFbeVe+afhfgqgTSNd34eI="
"yazi.cachix.org-1:Dcdz63NZKfvUCbDGngQDAZq6kOroIrFoyO064uvLh8k=" "risdeveau.cachix.org-1:TsoFSVeLl7iKtUYGX7qsvKPjf2vbNLfLC5v3SAdU8r0="
]; ];
}; };
inputs = { inputs = {
aagl = { aagl.url = "github:ezKEa/aagl-gtk-on-nix";
url = "github:ezKEa/aagl-gtk-on-nix"; nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
inputs.nixpkgs.follows = "nixpkgs"; nixpkgs-stable.url = "github:nixos/nixpkgs/nixos-25.05";
}; nixpkgs-fixed.url = "github:nixos/nixpkgs/26d499fc9f1d567283d5d56fcf367edd815dba1d";
sops-nix.url = "github:Mic92/sops-nix";
stylix.url = "github:danth/stylix";
ags.url = "github:Aylur/ags";
ayugram-desktop.url = "github:/ayugram-port/ayugram-desktop/release?submodules=1";
ags = { hyprland.url = "github:hyprwm/Hyprland";
url = "github:Aylur/ags/3ed9737bdbc8fc7a7c7ceef2165c9109f336bff6"; hyprland-plugins = {
inputs.nixpkgs.follows = "nixpkgs"; url = "github:hyprwm/hyprland-plugins";
}; inputs.hyprland.follows = "hyprland";
disko = {
url = "github:nix-community/disko";
inputs.nixpkgs.follows = "nixpkgs";
};
helix-steel = {
url = "github:mattwparas/helix/steel-event-system";
inputs.nixpkgs.follows = "nixpkgs";
}; };
home-manager = { home-manager = {
url = "github:nix-community/home-manager"; url = "github:nix-community/home-manager";
inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs.follows = "nixpkgs";
}; };
hyprland = {
url = "github:hyprwm/Hyprland/v0.56.1";
# inputs.nixpkgs.follows = "nixpkgs";
}; };
hyprland-plugins = { outputs = { self, nixpkgs, nixpkgs-stable, nixpkgs-fixed, home-manager, ... }@inputs: let
url = "github:hyprwm/hyprland-plugins";
inputs = {
hyprland.follows = "hyprland";
# nixpkgs.follows = "nixpkgs";
};
};
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
nixpkgs-pinned.url = "github:nixos/nixpkgs/ec942ba042dad5ef097e2ef3a3effc034241f011";
nixpkgs-stable.url = "github:nixos/nixpkgs/nixos-26.05";
sops-nix = {
url = "github:Mic92/sops-nix";
inputs.nixpkgs.follows = "nixpkgs";
};
stylix = {
url = "github:danth/stylix";
inputs.nixpkgs.follows = "nixpkgs";
};
waybar = {
url = "github:Alexays/Waybar";
inputs.nixpkgs.follows = "nixpkgs";
};
yazi = {
url = "github:sxyazi/yazi";
inputs.nixpkgs.follows = "nixpkgs";
};
yazi-plugins = {
url = "github:yazi-rs/plugins";
flake = false;
};
};
outputs = { self, nixpkgs, nixpkgs-stable, nixpkgs-pinned, home-manager, ... }@inputs: let
system = "x86_64-linux"; system = "x86_64-linux";
config = { allowUnfree = true; };
mkHost = hostname: nixpkgs.lib.nixosSystem {
specialArgs = {
inherit inputs;
pkgs-stable = import nixpkgs-stable { inherit system config; };
pkgs-pinned = import nixpkgs-pinned { inherit system config; };
};
modules = [ ./host/${hostname}/configuration.nix ];
};
in { in {
nixosConfigurations = { nixosConfigurations = {
Rias = mkHost "Rias"; Rias = nixpkgs-stable.lib.nixosSystem {
Senko = mkHost "Senko"; specialArgs = {
Eclipse = mkHost "Eclipse"; pkgs-unstable = import nixpkgs {
Impreza = mkHost "Impreza"; inherit system;
Inaho = mkHost "Inaho"; config.allowUnfree = true;
};
pkgs-fixed = import nixpkgs-fixed {
inherit system;
config.allowUnfree = true;
};
inherit inputs system;
};
modules = [ ./host/Rias/configuration.nix ];
};
Senko = nixpkgs-stable.lib.nixosSystem {
specialArgs = {
pkgs-unstable = import nixpkgs {
inherit system;
config.allowUnfree = true;
};
pkgs-fixed = import nixpkgs-fixed {
inherit system;
config.allowUnfree = true;
};
inherit inputs system;
};
modules = [ ./host/Senko/configuration.nix ];
};
Eclipse = nixpkgs-stable.lib.nixosSystem {
specialArgs = {
pkgs-unstable = import nixpkgs {
inherit system;
config.allowUnfree = true;
};
pkgs-fixed = import nixpkgs-fixed {
inherit system;
config.allowUnfree = true;
};
inherit inputs system;
};
modules = [ ./host/Eclipse/configuration.nix ];
};
Impreza = nixpkgs-stable.lib.nixosSystem {
specialArgs = {
pkgs-unstable = import nixpkgs {
inherit system;
config.allowUnfree = true;
};
pkgs-fixed = import nixpkgs-fixed {
inherit system;
config.allowUnfree = true;
};
inherit inputs system;
};
modules = [ ./host/Impreza/configuration.nix ];
};
};
devShells."${system}".default = let
pkgs = import nixpkgs { inherit system; };
in pkgs.mkShell {
shellHook = "zsh";
packages = with pkgs; [
cargo
rustc
rust-analyzer
lldb
];
}; };
}; };
} }
Regular → Executable
+6 -6
View File
@@ -1,4 +1,6 @@
{ config, pkgs, pkgs-stable, pkgs-pinned, lib, inputs, ... }: { { config, pkgs, pkgs-unstable, pkgs-fixed, lib, inputs, ...}: let
laptop = false;
in {
imports = [ imports = [
./secrets/secrets.nix ./secrets/secrets.nix
./modules/aagl.nix ./modules/aagl.nix
@@ -15,17 +17,15 @@
(import ../../user/common.nix { (import ../../user/common.nix {
inherit config; inherit config;
inherit pkgs; inherit pkgs;
inherit pkgs-stable; inherit pkgs-unstable;
inherit pkgs-pinned; inherit pkgs-fixed;
inherit lib; inherit lib;
inherit inputs; inherit inputs;
inherit laptop;
name = "chest"; name = "chest";
}) })
]; ];
nixpkgs.config.allowBroken = true; nixpkgs.config.allowBroken = true;
programs.gamemode.enable = true; programs.gamemode.enable = true;
services.printing.enable = true;
virtualisation.virtualbox.host.enable = true;
users.extraGroups.vboxusers.members = [ "chest" ];
} }
+2 -4
View File
@@ -27,13 +27,13 @@
fileSystems."/mnt/D" = { fileSystems."/mnt/D" = {
device = "/dev/disk/by-uuid/E030A4DF30A4BDC2"; device = "/dev/disk/by-uuid/E030A4DF30A4BDC2";
fsType = "ntfs"; fsType = "ntfs";
options = ["umask=0022" "gid=100" "uid=1000" "nofail" ]; options = ["umask=0022" "gid=100" "uid=1002" "nofail" ];
}; };
fileSystems."/mnt/F" = { fileSystems."/mnt/F" = {
device = "/dev/disk/by-uuid/1C6278FC2848E1EF"; device = "/dev/disk/by-uuid/1C6278FC2848E1EF";
fsType = "ntfs"; fsType = "ntfs";
options = ["umask=0022" "gid=100" "uid=1000" "nofail" ]; options = ["umask=0022" "gid=100" "uid=1002" "nofail" ];
}; };
swapDevices = [ ]; swapDevices = [ ];
@@ -47,6 +47,4 @@
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware; hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
boot.loader.grub.useOSProber = true;
} }
Regular → Executable
-2
View File
@@ -2,8 +2,6 @@
imports = [ inputs.aagl.nixosModules.default ]; imports = [ inputs.aagl.nixosModules.default ];
nix.settings = inputs.aagl.nixConfig; # Set up Cachix nix.settings = inputs.aagl.nixConfig; # Set up Cachix
programs.honkers-railway-launcher.enable = true; programs.honkers-railway-launcher.enable = true;
programs.sleepy-launcher.enable = true;
programs.anime-game-launcher.enable = true;
networking.hosts."0.0.0.0" = [ networking.hosts."0.0.0.0" = [
"overseauspider.yuanshen.com" "overseauspider.yuanshen.com"
"log-upload-os.hoyoverse.com" "log-upload-os.hoyoverse.com"
Regular → Executable
View File
File mode changed.
-40
View File
@@ -1,40 +0,0 @@
{ pkgs, lib, ... }:
let
hyprLua = import ../../../modules/user/hyprland/lua.nix { inherit lib; };
wallpaper = pkgs.fetchurl {
name = "miku_wallpaper.jpg";
url = "https://c.lair.moe/pub/miku_wallpaper.jpeg?raw";
hash = "sha256-inK4X5KzQk5FHwDw2DYy43nm7XtXlC6I0S1PkYUv+3w=";
};
in {
wayland.windowManager.hyprland.settings = {
monitor = [
{
output = "DP-3";
mode = "1920x1080@165";
position = "0x0";
scale = 1;
}
{
output = "HDMI-A-1";
mode = "preferred";
position = "-1080x0";
scale = 1;
transform = 1;
}
];
workspace_rule = [
{ workspace = "1"; monitor = "DP-3"; default = true; }
{ workspace = "10"; monitor = "HDMI-A-1"; default = true; }
];
on = [
(hyprLua.onStart [
"hyprctl dispatch 'hl.dsp.focus({ workspace = 1 })'"
"${lib.getExe pkgs.swww} img -o HDMI-A-1 ${wallpaper}"
"${lib.getExe pkgs.linux-wallpaperengine} ~/.local/share/wpe/wallpaper --assets-dir ~/.local/share/wpe/assets --screen-root DP-3 --noautomute"
])
];
};
}
Regular → Executable
View File
File mode changed.
Regular → Executable
View File
File mode changed.
Regular → Executable
+11 -5
View File
@@ -1,14 +1,20 @@
{ {
"data": "ENC[AES256_GCM,data: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 truncated "data": "ENC[AES256_GCM,data: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 truncated
"sops": { "sops": {
"kms": null,
"gcp_kms": null,
"azure_kv": null,
"hc_vault": null,
"age": [ "age": [
{ {
"recipient": "age1j3uuyax673fvl5x4dveupq3dylngnrq0e5uy7fmclsexkfd25vysk646wk", "recipient": "age1j3uuyax673fvl5x4dveupq3dylngnrq0e5uy7fmclsexkfd25vysk646wk",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBPRUJmYnplYlphSVJHUm96\nckhJa2xmeVB4UE5oK3UyRU40dm1vNkV5L0hBCm1LVGt5SEQxVXhlOURvbTN2c1JZ\nMU1TYXBuVmNMc2lMRlBqODg2ZklRb2sKLS0tIDltSkgxeGZBUko4UFhBdFZJUTgv\nUUZmdXUySFVqTGdnY29UcGN3d1VaZFEKLeVk/iuQeblOLY49QU8nILR+Uzchwd4z\nChqX+lGaVjMZnnNztrMT8DjFTkSUZ7pyYR6EYDQ785kWOv5ibqM0iw==\n-----END AGE ENCRYPTED FILE-----\n" "enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB0Qzg2bGx2eDExZ0F2VWxp\nb1BET1BBRE9UcUM5cGRGdTd1U0w1TStNa1RVCnpYK0E4Y1I0ejJKeXlRQnZWUTZt\nNUhFajA1YnhDYjA4SmxRUVlIVzFuUkEKLS0tIDNxSnZDN3BXUDVPcDRhbDF5Z1d0\nYmxvM1N4RlFhcCtQdWNxdUlaeTkwUkUKUrm1CalGhI39U7VFhv+QM5AkXDLyJVLW\nga4G9umSUxNsEboXRkLn6bmzvfZRn21z8uq/ZlrldbDk02p7zUNkyQ==\n-----END AGE ENCRYPTED FILE-----\n"
} }
], ],
"lastmodified": "2026-05-14T20:20:05Z", "lastmodified": "2024-12-26T15:53:41Z",
"mac": "ENC[AES256_GCM,data:HWdhOY15VcrZY4LLKgOLpU4YyQxSvzI5BAXSI9qRCSBa5V4aQOJueu5FjVoBCdATyvo4sE44WzBawYelEDHSx1v9STqZ7jUBdTOp9JsJN4mAtOjgFbLdNeYvP0enXEXC2fJtmspIbCsTE1CWOGvu33jwOhlsTfusrMJSZaFE54I=,iv:5l7/8Ma7d/Ou8URsXsjfi+i1QEq8EiVrsJaV1jJD3Tg=,tag:F7v4z5vmsQ6L1uQgHKAjIw==,type:str]", "mac": "ENC[AES256_GCM,data:b+EuQLffrp+X+fVw80dUe4EQEsyZoUnX40J3/d5XGj7txweQNZZfIFt9RzoG+t3W12dr/o2R87xfMawuTPXvDoAYbfkLrQu7bv9MT7VGgmreBtdDiEm4c3MPxuYnBWOh+nkoMZOXXzC4/wcbZ1NnWlqp0gt/hJYVad/GgrhtPK0=,iv:rRljq/VV0oYacbQxh5psv3x3gCAmvVR9drsuAFXrtB8=,tag:L4M4Cnsl6bunhQxoYYX8+g==,type:str]",
"version": "3.12.2" "pgp": null,
"unencrypted_suffix": "_unencrypted",
"version": "3.9.2"
} }
} }
Regular → Executable
+7 -5
View File
@@ -1,4 +1,6 @@
{ config, pkgs, pkgs-stable, pkgs-pinned, lib, inputs, ... }: { { config, pkgs, pkgs-unstable, pkgs-fixed, lib, inputs, ...}: let
laptop = true;
in {
imports = [ imports = [
./secrets/secrets.nix ./secrets/secrets.nix
./modules/grub.nix ./modules/grub.nix
@@ -13,17 +15,17 @@
(import ../../user/common.nix { (import ../../user/common.nix {
inherit config; inherit config;
inherit pkgs; inherit pkgs;
inherit pkgs-stable; inherit pkgs-unstable;
inherit pkgs-pinned; inherit pkgs-fixed;
inherit lib; inherit lib;
inherit inputs; inherit inputs;
inherit laptop;
name = "chest"; name = "chest";
}) })
]; ];
nix.settings.cores = 3;
nixpkgs.config.allowBroken = true; nixpkgs.config.allowBroken = true;
programs.gamemode.enable = true; programs.gamemode.enable = true;
hardware.bluetooth.enable = true; hardware.bluetooth.enable = true;
host.laptop = true; host.laptop = laptop;
} }
+7 -9
View File
@@ -13,19 +13,19 @@
boot.kernelModules = [ "kvm-intel" ]; boot.kernelModules = [ "kvm-intel" ];
boot.extraModulePackages = [ ]; boot.extraModulePackages = [ ];
fileSystems."/" = { fileSystems."/" =
device = "/dev/disk/by-label/NixOS"; { device = "/dev/disk/by-uuid/31247de4-e9c0-4690-8bce-8380377b6872";
fsType = "ext4"; fsType = "ext4";
}; };
fileSystems."/boot" = { fileSystems."/boot" =
device = "/dev/disk/by-label/EFI"; { device = "/dev/disk/by-uuid/328A-299C";
fsType = "vfat"; fsType = "vfat";
options = [ "fmask=0022" "dmask=0022" "nofail" ]; options = [ "fmask=0022" "dmask=0022" ];
}; };
fileSystems."/mnt/Windows" = { fileSystems."/mnt/Windows" =
device = "/dev/disk/by-label/Windows"; { device = "/dev/disk/by-uuid/84E48B00E48AF428";
fsType = "ntfs"; fsType = "ntfs";
options = [ "umask=0022" "gid=100" "uid=1000" "nofail" ]; options = [ "umask=0022" "gid=100" "uid=1000" "nofail" ];
}; };
@@ -41,6 +41,4 @@
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware; hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
boot.loader.grub.useOSProber = true;
} }
Regular → Executable
View File
File mode changed.
-15
View File
@@ -1,15 +0,0 @@
{ pkgs, lib, ... }:
let
hyprLua = import ../../../modules/user/hyprland/lua.nix { inherit lib; };
wallpaper = pkgs.fetchurl {
name = "miku_wallpaper.jpg";
url = "https://c.lair.moe/pub/miku_wallpaper.jpeg?raw";
hash = "sha256-inK4X5KzQk5FHwDw2DYy43nm7XtXlC6I0S1PkYUv+3w=";
};
in {
wayland.windowManager.hyprland.settings.on = [
(hyprLua.onStart [
"${lib.getExe pkgs.swww} img -o eDP-1 ${wallpaper}"
])
];
}
-49
View File
@@ -1,49 +0,0 @@
ThinkPad T480
CPU: Intel i5-8350U
RAM: 16GB planned (8GB stock + 8GB SO-DIMM)
SSD: 256GB NVMe stock; disko assumes `/dev/nvme0n1`
## Installation notes
This host uses `disko` with GPT + unencrypted EFI System Partition + LUKS + Btrfs subvolumes.
Before formatting, verify the target disk:
```bash
lsblk
```
If the internal drive is not `/dev/nvme0n1`, edit `host/Inaho/disko.nix` first.
For a 2.5" SATA SSD/HDD it will usually be `/dev/sda`.
Then partition, format and mount:
```bash
sudo nix --experimental-features "nix-command flakes" run github:nix-community/disko/latest -- \
--mode destroy,format,mount ./host/Inaho/disko.nix
```
This destroys the selected disk.
After that install the host:
```bash
sudo nixos-install --flake .#Inaho
```
The flake contains a new `disko` input. If `flake.lock` has not been updated yet, run:
```bash
nix flake lock --update-input disko
```
## After first boot
Update firmware, especially BIOS/UEFI and Thunderbolt, when batteries are installed and charged:
```bash
sudo fwupdmgr refresh
sudo fwupdmgr get-updates
sudo fwupdmgr update
```
-42
View File
@@ -1,42 +0,0 @@
{ config, pkgs, pkgs-stable, pkgs-pinned, lib, inputs, ... }: {
imports = [
inputs.disko.nixosModules.disko
./disko.nix
./secrets/secrets.nix
./modules/grub.nix
./modules/syncthing.nix
../modules/thinkpad.nix
../modules/gpu/intel.nix
(import ../modules/common.nix {
inherit lib;
inherit inputs;
hostname = "Inaho";
})
(import ../../user/common.nix {
inherit config;
inherit pkgs;
inherit pkgs-stable;
inherit pkgs-pinned;
inherit lib;
inherit inputs;
name = "sweetbread";
fullname = "Sweet Bread";
})
];
hardware.bluetooth.enable = true;
host.laptop = true;
hardware.usb-modeswitch.enable = true;
networking.modemmanager.enable = true;
programs.steam = {
enable = true;
gamescopeSession.enable = true;
};
environment.systemPackages = with pkgs; [
pkgs-stable.bottles
];
}
-85
View File
@@ -1,85 +0,0 @@
{ lib, ... }:
let
# Verify with `lsblk` before running disko. For the stock T480 NVMe setup
# this is usually correct; for a 2.5" SATA SSD/HDD change it to /dev/sda.
disk = "/dev/sda";
btrfsMountOptions = [
"compress=zstd"
"noatime"
"ssd"
"discard=async"
];
in {
disko.devices = {
disk = {
main = {
type = "disk";
device = disk;
content = {
type = "gpt";
partitions = {
ESP = {
priority = 1;
name = "ESP";
start = "1M";
size = "512M";
type = "EF00";
content = {
type = "filesystem";
format = "vfat";
mountpoint = "/boot";
mountOptions = [ "umask=0077" ];
};
};
luks = {
priority = 2;
name = "cryptsystem";
size = "100%";
content = {
type = "luks";
name = "crypted";
settings = {
# Allows fstrim/discard through LUKS for SSDs.
allowDiscards = true;
};
content = {
type = "btrfs";
extraArgs = [ "-f" "-L" "NixOS" ];
subvolumes = {
"/root" = {
mountpoint = "/";
mountOptions = btrfsMountOptions;
};
"/home" = {
mountpoint = "/home";
mountOptions = btrfsMountOptions;
};
"/nix" = {
mountpoint = "/nix";
mountOptions = btrfsMountOptions;
};
"/log" = {
mountpoint = "/var/log";
mountOptions = btrfsMountOptions;
};
"/swap" = {
mountpoint = "/.swapvol";
swap.swapfile.size = "16G";
};
};
};
};
};
};
};
};
};
};
}
-22
View File
@@ -1,22 +0,0 @@
# Do not modify this file! It was generated by ‘nixos-generate-config’
# and may be overwritten by future invocations. Please make changes
# to /etc/nixos/configuration.nix instead.
{ config, lib, pkgs, modulesPath, ... }:
{
imports = [ (modulesPath + "/installer/scan/not-detected.nix") ];
# File systems and swap are declared in ./disko.nix.
# If you regenerate this file after installation, use:
# nixos-generate-config --no-filesystems --root /mnt
boot.initrd.availableKernelModules = [ "xhci_pci" "ahci" "nvme" "usb_storage" "usbhid" "sd_mod" "rtsx_pci_sdmmc" ];
boot.initrd.kernelModules = [ ];
boot.kernelModules = [ "kvm-intel" "thinkpad_acpi" ];
boot.extraModulePackages = [ ];
networking.useDHCP = lib.mkDefault true;
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
}
-13
View File
@@ -1,13 +0,0 @@
{ pkgs, ... }: let
theme = pkgs.fetchFromGitHub {
owner = "Patato777";
repo = "dotfiles";
rev = "cc363921707807d7ad3e36b462f0df793a0fe18a";
hash = "sha256-fpXGFNrzbV6K9hoZRX4tGieTLzhpPeGm6wn8CF4OGow=";
};
in {
boot.loader.grub = {
gfxmodeEfi = "1920x1080";
theme = "${theme}/grub/themes/virtuaverse";
};
}
-10
View File
@@ -1,10 +0,0 @@
{
wayland.windowManager.hyprland.settings.monitor = [
{
output = "eDP-1";
mode = "1920x1080@60";
position = "0x0";
scale = 1;
}
];
}
-39
View File
@@ -1,39 +0,0 @@
{ config, ... }: {
services.syncthing = {
enable = true;
openDefaultPorts = true;
user = "sweetbread";
dataDir = "/home/sweetbread/.config/syncthing";
key = config.sops.secrets.syncthing_key.path;
cert = config.sops.secrets.syncthing_cert.path;
settings = {
devices = {
Rias.id = "EC5AGVN-2RKJDHN-NOSB7PQ-IRYCEEW-NPPDUGX-6QGSLUU-YIT5ZZZ-RVPTHQ6";
Akeno.id = "QDW3WJX-J7ETS4R-32CUAIY-EGNM2RD-ZEHOUW2-CHOEOUG-USZOWTR-HHQS2QX";
Koneko.id = "PJFWQRY-ZFUBGDR-NV7KVBL-UBDQ4HT-KPTYP34-MUDFPJU-4EZUHTT-ZLYRMAB";
};
folders = {
"Music" = {
path = "/home/sweetbread/Music";
devices = [ "Rias" "Akeno" "Koneko" ];
};
"Obsidian" = {
path = "/home/sweetbread/Documents/Obsidian";
devices = [ "Rias" "Akeno" "Koneko" ];
};
"Documents" = {
path = "/home/sweetbread/Documents";
devices = [ "Rias" ];
};
};
};
};
systemd.services.syncthing.environment.STNODEFAULTFOLDER = "true";
}
-20
View File
@@ -1,20 +0,0 @@
{
sops = {
age.keyFile = "/root/age.key";
secrets = {
vpn_bolt = {
format = "binary";
sopsFile = ../../Rias/secrets/vpn_bolt.db;
};
syncthing_cert = {
format = "binary";
sopsFile = ./syncthing_cert.pem;
};
syncthing_key = {
format = "binary";
sopsFile = ./syncthing_key.pem;
};
};
};
}
-14
View File
@@ -1,14 +0,0 @@
{
"data": "ENC[AES256_GCM,data:rMr83F9VyGV5dp2XqXGAh3X2sCczUb0chH/2Hn9N9tijfRsOLGqHuy/zy29aOHR0PJ4euTU3bhmxWrBV/7oTnnEfI7DFF0vX4eBDaK8BzwAzrzXHYJOAgcwuYSqEEyWiLvTGABuLhTEto9kIMLxVIssa679s7zQSRwemVJSA3fEdtYD0BLAiO/ZtiAEmitgEt4EBRp9DhJPqlh2YfMmP6DpkDSy0hk+S+0NZg7eyrp7fivldiLzjsYDwCsugFcZQtWOqLMHY0kYhou8c2CKXu8UyqVVx24DyWfBfD1TH2pOk1ZsXFsxhFFKp5wcsfi0xDF1BG4hANcHVa6pR6y5JxNzh53xaH3NuvNJFEQSGJw5fNMuCrDnkYLDpU3xezzjvvxI01y7i2A00zsLli1fc9HA67ZlP1OBzsI7FyMgZlnOXQpbqnkj+kZdYAdOTjjMzQvrPusVS3RvqvcWj1qZtnHa1ZGmWh7xG0J10lQB4uDmTSxWoUUi7VmLXTC16HQNMySd8GbFmD/4Nj+/SxDShgsiug7L4hICjPC8Isosy99tE2wRXpjmMYUdlD7zu/vyEMxVPhkWnJyZZPXG+DjGBc/Diaw4ufYNxUs4yIRDceMArirubt/sN/eUoGOBGVWxvGm0/olTott7Yr+YKRSrDyWo9SWCz1qgz/ydpXm+xE7bPtbj9eAObZwneB/0tZTyo8o1WKd9yUST89m91EMQ31R97yCBwDW19VftWVCZH2w+QHNunih4ZUNiALQS745T2petbvc63iNiZswu0l3qoVM8x3y1RhAPLbsZpwQWSca307iDfBTB6uVW4HwLtL30=,iv:ajC3mjCYKUqS7XGIN64NiJoG6wHMvGdcHhazSO860ms=,tag:31fWG7m2neW2Pft9TjmBGg==,type:str]",
"sops": {
"age": [
{
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBuQUNTSDVIeDRuMmtTWXZD\nU0x4OVJrUStFeW5QV0pOZ2hEZnJZQ09UbW5RCmwxbjhuWis1Q3BCTGtOdS8zNE0w\nL0pDK3dBY1hxZ2dCNG96RlA0dkNWVWMKLS0tIHFld2hUdm11dk5hT2ZtRXpId0VG\nRDM0L05jS0lGcnJBYWVNWElIazdlaUEKugvBGcCzYTZL6aC6mI6GCzhiPFYql75z\nSBfalDmqSVU2k1IBqsNHIYSxzOXwUiGS3MSHJUCf7M2y9X3dHJGeyw==\n-----END AGE ENCRYPTED FILE-----\n",
"recipient": "age1j3uuyax673fvl5x4dveupq3dylngnrq0e5uy7fmclsexkfd25vysk646wk"
}
],
"lastmodified": "2026-07-21T20:27:59Z",
"mac": "ENC[AES256_GCM,data:lYZH1f3TyvcgqWI9hVOP3l2xImRh+LL0volXVUYSdGBnQTsAJfzMdsol/SsETwNNn+KrANC3ucO0/MXOWDK7ZPJ5Oq9R+OQnM8LK9/5mNfbzgodTw0RaH8FsrrtBCtHn3H2rlrBoPFEArblWKOh0G9iyrmufT09OREGt/G0tE5o=,iv:vmB1CY3sVajvLS8zAS/0I+NgnAOStbUkzQdw6XY45y4=,tag:mZP/eZVn+DJq+OT1ghtOkQ==,type:str]",
"version": "3.13.2"
}
}
-14
View File
@@ -1,14 +0,0 @@
{
"data": "ENC[AES256_GCM,data:2nMwCxU1y0zE5VtnmEf3lT4XyI9e8dokPkipo3TXpxuRJZ9OXCOb0n4pHb4Xx9OlDgAeW2UX70cR1Wtj7QPQx9h/HYZTmUeIP4rvlTPhaxs/2F33ud1lPKceV2DK2q8G/EvPLnlCcLWMvy6BVsqBlNmjAzNonWI=,iv:7H0o0i3zp7K2demt1O2Pw4BNt+2q4PhHBw1K/jC7OH4=,tag:Bx82eo5kQqwlb6egYmopgQ==,type:str]",
"sops": {
"age": [
{
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSA2Vzl3M3pFblY5SmRQRUtI\nNWFCbWZJQTJTOWFHdTd1YkJEbXFGOFhBTUNNClBKdWhGdmh3Q2dUNkpMUUU3Zmdq\nUFd1M2twNW1KRGErRHUvc1BLY2pMT3MKLS0tIElVZ0RVVFQrb1FuYnJ0OU44RWZK\nbnpJZnFLR3kzV3VRaytQRDMrYkg5S2sKkr97EwJmtcIsRYH4di+tadTWnWzuCDa9\ngY+CKCVEPUgD1AXSgCwCP2AVd/zaKUbm6d6UA2QzZyqGsRim56WFsQ==\n-----END AGE ENCRYPTED FILE-----\n",
"recipient": "age1j3uuyax673fvl5x4dveupq3dylngnrq0e5uy7fmclsexkfd25vysk646wk"
}
],
"lastmodified": "2026-07-21T20:28:23Z",
"mac": "ENC[AES256_GCM,data:ohYjzIYDilW7lsmZFZXpF629yevO2p8laA7Zl0+NCvZ8dB4nthLUePsnLTYCrEo5ADbboM5Cka11FiYbmB1IMR4mEdRwTN37EsQtyYLZbZ+j4XPsuXO0UT0NmWWiFNJlQEWfTVbhaZRDQXcPpVvm+6qQfRub018/0C59oWpmbyA=,iv:SX1QDDUWZyxE0zODAImcGGHJI7KGKYx9/6Q9F+9SVCQ=,tag:AExTZIfAKTCeU9c3Qj+IUw==,type:str]",
"version": "3.13.2"
}
}
-7
View File
@@ -1,7 +0,0 @@
My desktop
- **CPU:** Intel i5-10600KF
- **GPU:** NVidia GeForce RTX 3060 Ti
- **RAM:** 32GB
- **SSD:** 512GB
- **HDD:** 1TB
Regular → Executable
+7 -8
View File
@@ -1,9 +1,11 @@
{ config, pkgs, pkgs-stable, pkgs-pinned, lib, inputs, ... }: { { config, pkgs, pkgs-unstable, pkgs-fixed, lib, inputs, ...}: let
laptop = false;
in {
imports = [ imports = [
./secrets/secrets.nix ./secrets/secrets.nix
./modules/grub.nix ./modules/grub.nix
./modules/syncthing.nix ./modules/syncthing.nix
./modules/rgb.nix ../../modules/host/adb.nix
../modules/gpu/nvidia.nix ../modules/gpu/nvidia.nix
(import ../modules/common.nix { (import ../modules/common.nix {
@@ -15,10 +17,11 @@
(import ../../user/common.nix { (import ../../user/common.nix {
inherit config; inherit config;
inherit pkgs; inherit pkgs;
inherit pkgs-stable; inherit pkgs-unstable;
inherit pkgs-pinned; inherit pkgs-fixed;
inherit lib; inherit lib;
inherit inputs; inherit inputs;
inherit laptop;
name = "sweetbread"; name = "sweetbread";
fullname = "Sweet Bread"; fullname = "Sweet Bread";
}) })
@@ -26,8 +29,4 @@
programs.gamemode.enable = true; programs.gamemode.enable = true;
services.printing.enable = true; services.printing.enable = true;
hardware.opentabletdriver.enable = true;
environment.systemPackages = [ pkgs.android-tools ];
users.users.sweetbread.extraGroups = [ "kvm" ];
} }
+3 -7
View File
@@ -11,10 +11,6 @@
boot.kernelModules = [ "kvm-intel" ]; boot.kernelModules = [ "kvm-intel" ];
boot.extraModulePackages = [ ]; boot.extraModulePackages = [ ];
environment.etc.crypttab.text = ''
storage UUID=9327148b-788a-4c23-ac73-28464ffabe1b none luks
'';
fileSystems."/" = { fileSystems."/" = {
device = "/dev/disk/by-label/NixOS"; device = "/dev/disk/by-label/NixOS";
fsType = "ext4"; fsType = "ext4";
@@ -27,9 +23,9 @@
}; };
fileSystems."/mnt/D" = { fileSystems."/mnt/D" = {
device = "/dev/mapper/storage"; device = "/dev/disk/by-label/Data";
fsType = "ext4"; fsType = "ntfs";
options = [ "noatime" "nofail" ]; options = ["umask=0022" "gid=100" "uid=1000" "nofail" ];
}; };
swapDevices = [ ]; swapDevices = [ ];
Regular → Executable
View File
File mode changed.
-50
View File
@@ -1,50 +0,0 @@
{ pkgs, lib, ... }:
let
hyprLua = import ../../../modules/user/hyprland/lua.nix { inherit lib; };
monitor-switcher = pkgs.writers.writeBashBin "monitor_switcher" /*bash*/ ''
MODE=$1
case $MODE in
"tv")
hyprctl eval 'hl.monitor({ output = "DP-3", mode = "1920x1080@60", position = "3840x0", scale = 1 })'
hyprctl eval 'hl.monitor({ output = "HDMI-A-1", mode = "3840x2160@60", position = "0x0", scale = 1 })'
notify-send "TV mode"
;;
"mirror")
hyprctl eval 'hl.monitor({ output = "HDMI-A-1", mode = "3840x2160@60", position = "0x0", scale = 1 })'
hyprctl eval 'hl.monitor({ output = "DP-3", mode = "preferred", position = "auto", scale = 1, mirror = "HDMI-A-1" })'
notify-send "TV-only mode"
;;
"display"|*)
hyprctl eval 'hl.monitor({ output = "HDMI-A-1", disabled = true })'
hyprctl eval 'hl.monitor({ output = "DP-3", mode = "3440x1440@165", position = "0x0", scale = 1 })'
notify-send "Display mode"
;;
esac
'';
in {
wayland.windowManager.hyprland.settings = {
monitor = [
{
output = "DP-3";
mode = "3440x1440@165";
position = "auto-right";
scale = 1;
}
{
output = "HDMI-A-1";
disabled = true;
}
];
bind = [
(hyprLua.bind "XF86Calculator" (hyprLua.exec "ghostty --title=pulsemixer -e pulsemixer"))
(hyprLua.bind "SUPER + F1" (hyprLua.exec "${lib.getExe monitor-switcher} tv"))
(hyprLua.bind "SUPER + F2" (hyprLua.exec "${lib.getExe monitor-switcher} mirror"))
(hyprLua.bind "SUPER + F3" (hyprLua.exec "${lib.getExe monitor-switcher}"))
];
};
}
-17
View File
@@ -1,17 +0,0 @@
{ pkgs, ... }:{
services.hardware.openrgb = {
enable = true;
package = pkgs.openrgb-with-all-plugins;
};
environment.systemPackages = with pkgs; [
openrgb-with-all-plugins
i2c-tools
pciutils
];
hardware.i2c.enable = true;
boot.kernelModules = [ "i2c-dev" ];
users.groups.i2c.members = [ "sweetbread" ];
}
Regular → Executable
+3 -14
View File
@@ -11,9 +11,8 @@
settings = { settings = {
devices = { devices = {
Akeno.id = "QDW3WJX-J7ETS4R-32CUAIY-EGNM2RD-ZEHOUW2-CHOEOUG-USZOWTR-HHQS2QX"; Akeno = { id = "QDW3WJX-J7ETS4R-32CUAIY-EGNM2RD-ZEHOUW2-CHOEOUG-USZOWTR-HHQS2QX"; };
Koneko.id = "PJFWQRY-ZFUBGDR-NV7KVBL-UBDQ4HT-KPTYP34-MUDFPJU-4EZUHTT-ZLYRMAB"; Koneko = { id = "PJFWQRY-ZFUBGDR-NV7KVBL-UBDQ4HT-KPTYP34-MUDFPJU-4EZUHTT-ZLYRMAB"; };
Inaho.id = "GEHWQFQ-MPIMQ7R-QEWSOEB-BIZAHSZ-5YOFATK-KDIXFMV-JX3OF6G-ZPNZMA4";
}; };
folders = { folders = {
@@ -34,17 +33,7 @@
"Music" = { "Music" = {
path = "/home/sweetbread/Music"; path = "/home/sweetbread/Music";
devices = [ "Akeno" "Koneko" "Inaho" ]; devices = [ "Akeno" "Koneko" ];
};
"Obsidian" = {
path = "/mnt/D/Obsidian";
devices = [ "Koneko" "Inaho" ];
};
"Documents" = {
path = "/home/sweetbread/Documents";
devices = [ "Inaho" ];
}; };
}; };
}; };
Regular → Executable
View File
File mode changed.
View File
File mode changed.
View File
File mode changed.
Regular → Executable
+11 -5
View File
@@ -1,14 +1,20 @@
{ {
"data": "ENC[AES256_GCM,data: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 truncated "data": "ENC[AES256_GCM,data:wg0kEpg1Z2slaZ7RZwKsiIaNYKbzTGysUfw441Ldhx3J0wYtT3JZYCZ2FeFamX186OPMGZMZWq4jTjNLRCjy/PlKM6MiytDg5t6wcEDn1ud7p7O9LcNjXxO9UUrSw8cpdFnv545cgxn7QfhQrMXEpqcnBUrNPcIxXMVNdCY8kc47Cl+B/1OFPrHJJqCCYIFhCmQ47/9hNDLnKojSaO95S1neWUyPG/3gOxB13G17CALGVAVdN800DPtluyf9ERM+2OJ2njx9qynYQwPuNBUDD9Eek4r+PWNK4jYIBS3KHAt73b2ZB8OR1lViHkZ3gy8Def+wPU/cPL/XCM1/jKABG0nQWOQRVa4nXOLhJkYwhqjWJYUdgrZODoZ/d2S/j9feddzCZD+AlwWhycrlAFH2VY9ra/wjU1bOuUJNqqrf5S5gT9B52kA7FYrNTfWjtiZOPauuEzJJpq/pO3lTtWFvCOWRty8po65sZk7AYBYiHtxvkAnt/ito8V9BijEBxxBFx5eOOD7ydjHJjQA/BzwGGMbVA778sWmpB3ypvBmLYcY5nrmhyYakEpCRkWkvMqNwmh8DEovTxixFogp9g0+YioUcaSw5kpBg2EiezMZGNnhsJD7XvmR/UTPZ1yhqp8+hQXDOJVn6jeSIL7TNNRN67VXOHIzeKBwHF+WbNT36qC80nAh6KP/fYrkHxVa73C0PMJuaq/+0hT82CX/VghVAhYaMth9TnfjFDmc3j2DT4ypnFilDeGWccWAvwHRpGtcny1bh+anQscqR4RC0BQb4LYTwDGjNpolQZ9AQVImnDU2mpoIMYzckb+LbHlu0UCFBIRE0O32gOqztHrPXNiEArqbOXSgq8ExOfKQ6o2MCcDi5WtC6RcEDNCFL6mVu4MEAux3dL99VPxw4ubHVqKAj/kGRwoWABdNjnr/7/vkWZYOZ7eSw3FEmrlQucwygYGZXYwM0mrUTP42hV09svYP7DhSDxwWfZO3PMSTBDhKhDwFLMh6+PR8jnMOAT9UjTn+C+c4yUoG1rVy6B3lUVkBmROleMWhFNkwzUZrBLotWKPBfkYcFJOt72uqXXh3KIC7fqG0j3aC7uvd18dEg0JfUiTexAZfJlXmjYvOP09MdaMKSwwz45A/dTgiIGCGxW2yWY+Vj57mLnOo9/BHt09v2+W6aj9w8izQFPJ1BduAon/yeWScmQY1881VOkpFgn97WLVjK7XCyZX1z33FpPfYFWO50eME5sYw6Vtg5A0JuckutD66ZLLjkAwh/6XouKyyI2nUNId40Rb3FLFR7OalQ5VNFuu9UKDkHrUbe59KKqJm6XT4sfTVIYD3+UV6LE0UQwU/EAIcBisHWH8+X82lqaPPJsfG788jCn7ThODcuqcunxrl9aGVCa28o9Ip4b83p6aZGrQU5mB9DR3xxfRpH1Y8Was3X3IEe4JmT++N5t5/OhNhFNodCDgAnm4rh3LYbCncI9BhZyvlqo7AWriVbvhQaM5GHOyk/PfE5PucOxy0KnuMIQdNYMEGXWeCraZd68peHZRbxNuaXXob+PWef45/pDCMVuIRTxDK41P/Xqb5/ayum+yNa2ZuTQVFzZEMC/V28T+FVGFwEUdKRcPm2sqFp52tbvVz1mclQmr14Dp56NgGurgMd5pveI00uZp0FRL9sRm8oi0fs5Q/pAJQFdVgibaVYrc2GfLQEEwPYCUVgRkvkcfTpZc7CGJKx0ZcG4A+G3sXWIX7f/+na9CvAA6nsNeOtk6QNUJx7qdKgPvWj0BjAgoyYYcExaFHbrVZg1UO7uSSo97BgxqH5w6UQk+pzrQ6vl4ovuQ8b5eY2rgIC+N2oh6oKQCQf+GIagI5Sli8Wxg5lrPD7tHuS76goqVho1i3MQUQ9GBdL0RVUIIeGWNQaMiY/o3b2eGssyXDlCxrSF+g6kfruaZeNFKCbsVBY/zrqBmSa4qwInCIrPyzWl5kachFAkPhvKMWqOrEm7wq9H+0G0gaE0PSi1CPP20clkZbuDni1V1dpgdpeGTc5c091tJa1E5ROknilvQxKVd4C4bxeHKJmbogpsrwBmgpOsJ+E6ADyrFdatMOXt7C2Vr6B6Gw2in+h60zrXOmMt2qUiGURZWYyQeu6Z3qZJ73qEfaRPl/oRmhop3gct/t47eGBNcr0Czf/KQpVDKI+P7rbl5WZKEktNCKzdgF9ykms+cAfhpoU/HzsiPBiVS2GSBncNNfKhV2R/JSLDI88X48VMbaQP9qh/wtQzz0ne0jRSEUTSYl93Jl92VUMmGdyMtpl0uh6P2v+XqRD5uYrvNUfp8uuQJicYFfk4vsU3u8Qp/44ZDgsAm+Us2pMKmBfeOv/RXXZbFsyxMjoD8BS1wC79ptK8Jrb3+Vpi/2K2LR6zrOO/Q62M/rWaYiGAIjWRsF0Unv3iEup25ZcOjuwOI9LnvJbE4sVUIhURxeD3TXtKzLLVSTVUZxTH2VKTfQIkJ4/DXQYgS2uG8EuyXSnZKi9j1jUlDLPoX31H5M8xSKyWgnR92b35hJg5/KEy56Pdp8l14Z/fd9FZn2+xOSN5QzwpJmsaDkHPhR2LT3j86CUXiSFCT2xGxqpeXDoIU3mY+pELAkQkT3L+S9YbGSAM7xUReSGJlRc2GYRvxC7rIp+RZ9II8caqN6C6SO/fmeeWug0eQ1LOq3bKiSCt48/Ks9HZFTGvspgDnqPYG5MmEYa7DNvpn2Wc4eAvjyf/0M1KEuvDpTzRMcxJfBusIU3QYHycabZRHPRQQUoMqGU3KzQIZ1ZbgJJuFebtceCbQZ8w3YXHaf4SYzkbBvjoRXayxe9MmZggoI2kmO7cHJybOcSIrpcQ4Z9wFX0gShhgTX/rqCyBkk8T5yW04ZcOn8eA/QYudeP/C+6fU0GHdzDELMpX1GXnfU7tA881dryWQoMFDdGd8GsWXsfhJeK7MYPDTa3VNz2YEn2IuDHtTZviqANreGstyLTYaqg/MOxZ3bohPBpMTYX2Bxnk94jFPMSK8m1ilx9m/X71Y9z41fsivvJ2BXR5KqldxP167rL7wBgtdkMjpcH3wHEzXbjT1Hp/EJq+E2qHEBz9YxYqB/Q0RxHTn/TuwH+3T6vWfQ32u8TxfWftKuZzqZ3yZ2cKQWJfn+hOUTzemv+T+3/BI7OdIuwq5yt1cKiJqYWcpn/LXwiLGLy3hAvPQ/s6VQ1GA1WdBDgg8HmU8jtOYQiGTDVcyjnCQNmDkqkqdyNHarbhOaIwfSrsr4ZVceD1LxQq3UYXtynxk0wSxYJSSvfCVlru/KuTF1Zav918g4+6ZOCKKo90fb5LZfSSk9O5rl1+wK308udNpTJd2E5gtjZ10cI5EJyhEdkw2mzo7qVWJZ9xN2dcHRObzwn+ULbavXfExu/P5F2CKnaquKThhnbqOZSJvYWTKg73aGooSpb/pu9dt4togQLPJ8lRwcSsiva+BTlIBIJJN5+Febilem5tCyuBimrsXCimoblEmod7NjRMUdAssLDpQM2+NyQfB/dePMDqxoyTSxMOPW45DTIieK85+tuaMorL//DVt4ulwlYXmBjWett6DjuaPSiN8vs0vsZc5mXTqcTE9qAy61ZRKODqFd/tEgNUSCZERjjmceZJKNhgCcohmvySLV2vCU+cloBwFDTuYlrmT0EcEZQcijYzNraPCIHYbHr229ijqhCQ5vj3I1MJsTGiKVfYuFkTngzTXUKYF7nTngNLKHLDbDsAfe23AVGjpNAXo3viBsAB6Nby+oq0d+l8cGgd7nCUzarmljETG3IJJbw9fiUxeKFxSOCbZ/PK/M3L9TjHLbVZu+wp6BjPdPkXxUHuvmxRVr7rl7ANks+pTiTT+S3sMQY2Pvpkf4aCLNvbdoaST8H6Co2wERY+/2m3GzQnNXrotFLQKfnLaAEj7Ko0kdNDd1Z+YJS+Gngzux3nah8U0Wh3t108uqCCbxAB56acijzT4GNzl7/ps8/v4iY307NC9D+ctY3kBb/XywWFOmAOLroJUIBvHuV0X4QaRd+VbWaN8JO9NUyyFL53WbKtsCeROKawnUW/PcgpyWWLRoEeFSroq0Ysogzy6SNpvjMk8KoknOyjhdxQzK+iF2nJkhhgRzQ1p9hajbTOApDHmi0upEIEb4c5Dtgs4g6Dr5lX4AoeDKJNiR0HgCuUOVE8ao4HDZI+QaVDf4zKJd6kyybZXUU9msJk18HOO9FIolsNKJYiJVkG5ZHOHks1X896owsq7VBwaf3k3bVAvVPE5KrkIwPCSPcfUxZhaaqIX0TfpGqeNhPHw9y3uWhIBbnd6i5nO61lT8PMhIJka+MbrxRSCVtK+S326pHaUZuL3Bj62eAi0tCvUv/5aqhdZhGCjnwnc/u/OOTNqJZ/BWag4kBE6zNbdhtUPy7tD4zHaFCVf6/Xce/831g2Kd6wvKtFiE9p6ZywoYJq5bJNJq6Zb2XK/LK8cgk4sGuWmGprDCZRo/UkE9e34bALV0pBIrfQbzjBbNXT8f39l3CWIJrheN57T16hlT+T4tbDWTBo5EOxoKtvWVdU5ioeptRGF5vw7icbGCmH2VN+arjFmSFK57M9OuBKWM0laQ00W5EzYUhwAZEQwpeOjZxLC4z1l5nGygpf+cy6mGWYAGXW0HG3d59YjIRC+6Ym2HQosR08s+KR20Fobj/aRSQND8cAeAbrzNv2mxmwglRR8hDGbu6NKU3FgXhNkxddP74ulPrGus+iQmpG+OaXQHs2B9YrkolHUeHfswh94cD8TwnbGjwQw2XkrCcm35rsDhGjieo1C3WMIVoYX2oL8JGmCNxSvEBKEjz8lTc3Qc4O9m4ByoW+XK1blYjkIqDwVGbEECtJLIf1fo7NyIE39akmAC808o/alZ6b7lFrQEgr/Sm1GYBHrzj4q+m595LxsPlTrZ6OMw7hJQL0hfWF4f0giQVm2MAu+a3+8gPc+OQ4V9jdtCWJDH7nfKWdLine truncated
"sops": { "sops": {
"kms": null,
"gcp_kms": null,
"azure_kv": null,
"hc_vault": null,
"age": [ "age": [
{ {
"recipient": "age1j3uuyax673fvl5x4dveupq3dylngnrq0e5uy7fmclsexkfd25vysk646wk", "recipient": "age1j3uuyax673fvl5x4dveupq3dylngnrq0e5uy7fmclsexkfd25vysk646wk",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBPbnBXd2Z6OTVaNm1qWEt6\nOXFVMlhDVDhOcVRYUXZWSWFGdUI2bVRucGo4CnMxQ2F5T05naFU4WVR6UUc0M21a\nYTNrTU1PV3RuNnIrVW4vZWNoMEVVQTgKLS0tICt0cGZXRk9xKzNQVG9OQTVZWkFR\ndHFqQmt4MG1rWDZRVkxmSHB4RmNnVFUKM1VqUSRY985F38tfQQvpKF4MvpBBsE3t\n9VAPz0y7Dstla47gyfihpN1KhAsyi1dv3CcsM21xgmKaAMyD0IUWGw==\n-----END AGE ENCRYPTED FILE-----\n" "enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBqVGtodkV5NCtmUVl0M2pI\nUVVqcTVabklVcnM4em9BeHRtcHk1dGdWbVZnClMwbVZzQUY3QnE3bUhDUS9NWWZy\nakN3amJFZzE0emRBN0V2YllLSUhRVWsKLS0tIE1Xa2NDZ3pzRnVhQTd5amlnTGkr\na2w1YmdiV05taTFJQ05UMkVIL2xOaVEKMvP6WdAA2PbdNLFHIloETe1AiLieCchT\nhBvrcZEwiKoFRGmiRp/FYgFp5ut0E6j5pYsdh0NC55FTpNrha6h5EQ==\n-----END AGE ENCRYPTED FILE-----\n"
} }
], ],
"lastmodified": "2026-04-08T13:22:56Z", "lastmodified": "2025-05-20T16:06:31Z",
"mac": "ENC[AES256_GCM,data:netm/xUuZIRD1KbxO2ob7PQvAzaH310myeNeY31+QQvBzhk+gwEtCkAkYxnXeS1nNAJjMxNafEZi58ewW0EOg8NO/ZgpDLnQySLxPszLC8Is2nVEwvpFCxoHbI8YSKgBwQxG9z9d+vFY6dClN1Jhc/32HCMNIjXWu0+nJ/uinCA=,iv:lP7vZPcqsHhLiKYhB+oCzyl2OcqDhaZy2/c78TQHmNA=,tag:BKWmaCGbZ6UP9xD2NzYsBA==,type:str]", "mac": "ENC[AES256_GCM,data:DtPiNA0beGbafzLfYa1vWqQ3rBQWIqwR4CaEe2Lpt4yOa/0xRVP99+SgvdwKgs4NFk7kUqAb9fIdmduxaG3D6G4sw//Mv9D5O5eNehEKg+d6mW6gR+XNDDYcK7EQbwklpHNd9C5dG8formSC3QMtz5WgXLvHh2lV3rMUVuIqKSg=,iv:Oto51PTF7vfJ8VdWJ/BSp8VEH3R5n4gTm/J0iUw41X8=,tag:yrrzdVA2IWt6cV6l0DKo/A==,type:str]",
"version": "3.12.2" "pgp": null,
"unencrypted_suffix": "_unencrypted",
"version": "3.9.4"
} }
} }
-1
View File
@@ -1 +0,0 @@
My laptop `HP Pavilion 15-cb012ur`
Regular → Executable
+7 -5
View File
@@ -1,4 +1,6 @@
{ config, pkgs, pkgs-stable, pkgs-pinned, lib, inputs, ... }: { { config, pkgs, pkgs-unstable, pkgs-fixed, lib, inputs, ...}: let
laptop = true;
in {
imports = [ imports = [
./secrets/secrets.nix ./secrets/secrets.nix
./modules/grub.nix ./modules/grub.nix
@@ -13,18 +15,18 @@
(import ../../user/common.nix { (import ../../user/common.nix {
inherit config; inherit config;
inherit pkgs; inherit pkgs;
inherit pkgs-stable; inherit pkgs-unstable;
inherit pkgs-pinned; inherit pkgs-fixed;
inherit lib; inherit lib;
inherit inputs; inherit inputs;
inherit laptop;
name = "sweetbread"; name = "sweetbread";
fullname = "Sweet Bread"; fullname = "Sweet Bread";
}) })
]; ];
hardware.bluetooth.enable = true; hardware.bluetooth.enable = true;
host.laptop = true; host.laptop = laptop;
host.nvidia.prime.enable = true;
environment.systemPackages = [ pkgs.dbgate ]; environment.systemPackages = [ pkgs.dbgate ];
} }
+1 -1
View File
@@ -17,7 +17,7 @@
}; };
fileSystems."/boot" = { fileSystems."/boot" = {
device = "/dev/disk/by-partlabel/EFI"; device = "/dev/disk/by-uuid/D706-818C";
fsType = "vfat"; fsType = "vfat";
options = [ "fmask=0022" "dmask=0022" "nofail" ]; options = [ "fmask=0022" "dmask=0022" "nofail" ];
}; };
Regular → Executable
View File
File mode changed.
-10
View File
@@ -1,10 +0,0 @@
{
wayland.windowManager.hyprland.settings.monitor = [
{
output = "eDP-1";
mode = "1920x1080@60";
position = "0x0";
scale = 1;
}
];
}
Regular → Executable
+1 -1
View File
@@ -4,7 +4,7 @@
secrets = { secrets = {
vpn_bolt = { vpn_bolt = {
format = "binary"; format = "binary";
sopsFile = ../../Rias/secrets/vpn_bolt.db; sopsFile = ./vpn_bolt.db;
}; };
}; };
}; };
+1
View File
@@ -0,0 +1 @@
../../Rias/secrets/vpn_bolt.db
Regular → Executable
+2 -23
View File
@@ -7,35 +7,14 @@
]; ];
options = { options = {
host = { host.laptop = lib.mkEnableOption "laptop mode";
laptop = lib.mkEnableOption "laptop mode";
nvidia.prime = {
enable = lib.mkEnableOption "NVIDIA PRIME offload for hybrid graphics";
intelBusId = lib.mkOption {
type = lib.types.str;
default = "PCI:0:2:0";
description = "Intel/iGPU Bus ID used by NVIDIA PRIME.";
};
nvidiaBusId = lib.mkOption {
type = lib.types.str;
default = "PCI:1:0:0";
description = "NVIDIA dGPU Bus ID used by NVIDIA PRIME.";
};
};
};
}; };
config = { config = {
nix.settings = {
keep-going = true;
extra-substituters = [ "https://nix.lair.moe/main" ];
extra-trusted-public-keys = [ "main:tR2gNhCBJHKAlVgohPNHBhGnWL55tB8SxXmMWJe5lo8=" ];
experimental-features = [ "nix-command" "flakes" ];
};
networking.hostName = hostname; networking.hostName = hostname;
time.timeZone = lib.mkDefault "Europe/Moscow"; time.timeZone = lib.mkDefault "Europe/Moscow";
i18n.defaultLocale = lib.mkDefault "ru_RU.UTF-8"; i18n.defaultLocale = lib.mkDefault "ru_RU.UTF-8";
nix.settings.experimental-features = [ "nix-command" "flakes" ];
system.stateVersion = "23.05"; system.stateVersion = "23.05";
}; };
} }
Regular → Executable
+6 -6
View File
@@ -1,22 +1,22 @@
{ config, pkgs-stable, ... }: { config, pkgs, ... }:
{ {
hardware.graphics = { hardware.graphics = {
enable = true; enable = true;
extraPackages = with pkgs-stable; [ extraPackages = with pkgs; [
intel-media-driver intel-media-driver
intel-compute-runtime intel-compute-runtime
libvdpau-va-gl libvdpau-va-gl
]; ];
extraPackages32 = with pkgs-stable.pkgsi686Linux; [ extraPackages32 = with pkgs.pkgsi686Linux; [
intel-media-driver intel-media-driver
]; ];
}; };
nixpkgs.config.packageOverrides = pkgs-stable: { nixpkgs.config.packageOverrides = pkgs: {
vaapiIntel = pkgs-stable.vaapiIntel.override { enableHybridCodec = true; }; vaapiIntel = pkgs.vaapiIntel.override { enableHybridCodec = true; };
}; };
environment.systemPackages = with pkgs-stable; [ environment.systemPackages = with pkgs; [
intel-gpu-tools intel-gpu-tools
libva-utils libva-utils
clinfo clinfo
Regular → Executable
+7 -41
View File
@@ -1,27 +1,11 @@
{ config, pkgs-stable, lib, ... }: let { config, pkgs, lib, ... }: {
primeCfg = config.host.nvidia.prime; services.xserver.videoDrivers = [ "nvidia" ];
isPrimeOffload = primeCfg.enable;
in {
boot = {
kernelParams = [ "nvidia-drm.modeset=1" ];
initrd.kernelModules = lib.optionals isPrimeOffload [ "i915" ];
};
services.xserver.videoDrivers =
if isPrimeOffload
then [ "modesetting" "nvidia" ]
else [ "nvidia" ];
hardware = { hardware = {
graphics = { graphics = {
enable = true; enable = true;
enable32Bit = true; enable32Bit = true;
extraPackages = with pkgs-stable; [ extraPackages = with pkgs; [nvidia-vaapi-driver intel-media-driver];
# nvidia-vaapi-driver extraPackages32 = with pkgs.pkgsi686Linux; [nvidia-vaapi-driver intel-media-driver];
intel-media-driver
libvdpau-va-gl
];
extraPackages32 = with pkgs-stable.pkgsi686Linux; [ nvidia-vaapi-driver intel-media-driver ];
}; };
nvidia = { nvidia = {
@@ -34,28 +18,10 @@ in {
nvidiaSettings = true; nvidiaSettings = true;
package = config.boot.kernelPackages.nvidiaPackages.stable; package = config.boot.kernelPackages.nvidiaPackages.stable;
prime = lib.optionalAttrs isPrimeOffload { prime = lib.optionalAttrs config.host.laptop {
offload = { intelBusId = "PCI:0:2:0";
enable = true; nvidiaBusId = "PCI:1:0:0";
enableOffloadCmd = true;
};
intelBusId = primeCfg.intelBusId;
nvidiaBusId = primeCfg.nvidiaBusId;
}; };
}; };
}; };
environment.sessionVariables = {
__GL_VRR_ALLOWED = 1;
ELECTRON_OZONE_PLATFORM_HINT = "auto";
NIXOS_OZONE_WL = 1;
} // lib.optionalAttrs isPrimeOffload {
LIBVA_DRIVER_NAME = "iHD";
} // lib.optionalAttrs (!isPrimeOffload) {
WLR_NO_HARDWARE_CURSORS = 1;
WLR_DRM_NO_ATOMIC = 1;
GBM_BACKEND = "nvidia-drm";
LIBVA_DRIVER_NAME = "nvidia";
__GLX_VENDOR_LIBRARY_NAME = "nvidia";
};
} }
Regular → Executable
+4 -4
View File
@@ -1,7 +1,7 @@
{ pkgs, inputs, ... }: { { pkgs-unstable, inputs, ... }: {
nixpkgs.config.allowUnfree = true; nixpkgs.config.allowUnfree = true;
environment.systemPackages = with pkgs; [ environment.systemPackages = with pkgs-unstable; [
file file
tree tree
wget wget
@@ -15,12 +15,12 @@
ncdu ncdu
tldr tldr
helix helix
pinentry-gnome3 pinentry
]; ];
fonts = { fonts = {
enableDefaultPackages = false; enableDefaultPackages = false;
packages = with pkgs; [ packages = with pkgs-unstable; [
jetbrains-mono # Best mono font jetbrains-mono # Best mono font
noto-fonts-cjk-sans # Japanese noto-fonts-cjk-sans # Japanese
powerline-symbols # Console decoration powerline-symbols # Console decoration
-83
View File
@@ -1,83 +0,0 @@
{ config, lib, pkgs, ... }: {
# T480-specific hardware defaults.
hardware = {
enableRedistributableFirmware = true;
trackpoint = {
enable = true;
emulateWheel = true;
};
};
boot = {
supportedFilesystems = [ "btrfs" ];
initrd.availableKernelModules = [
"nvme"
"ahci"
"xhci_pci"
"usb_storage"
"usbhid"
"sd_mod"
"rtsx_pci_sdmmc"
];
kernelModules = [ "kvm-intel" "thinkpad_acpi" ];
kernelParams = [
# Prefer S3/deep sleep when BIOS exposes it. If suspend behaves worse,
# remove this and use the BIOS sleep setting instead.
"mem_sleep_default=deep"
];
};
powerManagement.enable = true;
services = {
# Firmware updates for BIOS/UEFI, Thunderbolt, SSDs where LVFS supports it.
fwupd.enable = true;
# Helps Intel laptops keep sane thermal behaviour under load.
thermald.enable = true;
# Fingerprint reader support. If fprintd does not detect the reader,
# leaving this enabled is harmless; login can still use a password.
fprintd.enable = true;
logind.settings.Login = {
HandleLidSwitch = "suspend-then-hibernate";
HandleLidSwitchExternalPower = "suspend-then-hibernate";
HandlePowerKey = "poweroff";
};
tlp.settings = {
# Preserve batteries when the laptop is usually on AC.
# Raise STOP_* to 100 if maximum autonomy matters more than battery wear.
START_CHARGE_THRESH_BAT0 = 70;
STOP_CHARGE_THRESH_BAT0 = 95;
START_CHARGE_THRESH_BAT1 = 70;
STOP_CHARGE_THRESH_BAT1 = 85;
RESTORE_THRESHOLDS_ON_BAT = 1;
# NVMe/SATA SSD power saving without making the system too sluggish.
AHCI_RUNTIME_PM_ON_AC = "on";
AHCI_RUNTIME_PM_ON_BAT = "auto";
SATA_LINKPWR_ON_AC = "med_power_with_dipm";
SATA_LINKPWR_ON_BAT = "med_power_with_dipm";
# Usually safe on ThinkPads; disable if some USB device randomly disconnects.
USB_AUTOSUSPEND = 1;
};
};
networking.networkmanager.wifi.powersave = true;
environment.systemPackages = with pkgs; [
acpi
lm_sensors
pciutils
powertop
smartmontools
usbutils
nvme-cli
];
}
Regular → Executable
+4 -33
View File
@@ -1,4 +1,4 @@
{ pkgs, ... }: { {
imports = [ imports = [
./host/bluetooth.nix ./host/bluetooth.nix
./host/bootloader.nix ./host/bootloader.nix
@@ -8,47 +8,18 @@
./host/gamemode.nix ./host/gamemode.nix
./host/gpg.nix ./host/gpg.nix
./host/laptop.nix ./host/laptop.nix
./host/network.nix
./host/printing.nix ./host/printing.nix
./host/shutdown-on-lan.nix ./host/shutdown-on-lan.nix
./host/sound.nix ./host/sound.nix
./host/virtmanager.nix ./host/virtmanager.nix
./host/vpn.nix ./host/vpn.nix
./host/network.nix
./host/yggdrasil.nix ./host/yggdrasil.nix
./host/mtp.nix
]; ];
programs = { programs.hyprland.enable = true;
dconf.enable = true;
hyprland.enable = true;
};
xdg.portal = {
enable = true;
xdgOpenUsePortal = true;
extraPortals = with pkgs; [
xdg-desktop-portal-hyprland
xdg-desktop-portal-gtk
xdg-desktop-portal-termfilechooser
];
config = {
common = {
default = [ "hyprland" "gtk" ];
"org.freedesktop.impl.portal.FileChooser" = [ "termfilechooser" "gtk" ];
"org.freedesktop.impl.portal.Settings" = [ "gtk" ];
};
hyprland = {
default = [ "hyprland" "gtk" ];
"org.freedesktop.impl.portal.FileChooser" = [ "termfilechooser" "gtk" ];
"org.freedesktop.impl.portal.Settings" = [ "gtk" ];
};
};
};
services = { services = {
udisks2.enable = true;
fstrim.enable = true; fstrim.enable = true;
upower.enable = true; upower.enable = true;
}; };
+4
View File
@@ -0,0 +1,4 @@
{
programs.adb.enable = true;
users.users.sweetbread.extraGroups = ["adbusers"]; # FIXME: check users
}
Regular → Executable
View File
File mode changed.
Regular → Executable
+1
View File
@@ -11,6 +11,7 @@
enable = true; enable = true;
efiSupport = true; efiSupport = true;
device = "nodev"; device = "nodev";
useOSProber = true;
}; };
}; };
consoleLogLevel = 0; consoleLogLevel = 0;
Regular → Executable
+2 -2
View File
@@ -1,6 +1,6 @@
{ { pkgs, ... }: {
console = { console = {
font = "LatArCyrHeb-19"; font = "${pkgs.kbd}/share/consolefonts/LatArCyrHeb-19.psfu.gz";
colors = [ colors = [
"16161E" "16161E"
"1A1B26" "1A1B26"
Regular → Executable
View File
File mode changed.
Regular → Executable
+3 -10
View File
@@ -1,15 +1,8 @@
{ lib, ... }: { {
environment.variables = { environment.variables = {
EDITOR = "hx"; EDITOR = "hx";
RANGER_LOAD_DEFAULT_RC = "FALSE"; RANGER_LOAD_DEFAULT_RC = "FALSE";
# GTK/Electron apps do not consistently use the portal picker unless this QT_QPA_PLATFORMTHEME = "qt5ct";
# variable is present in the graphical session environment. GSETTINGS_BACKEND = "keyfile";
GTK_USE_PORTAL = "1";
# Qt/Telegram-like apps otherwise keep using their own picker. This makes
# them ask xdg-desktop-portal for file/folder selection.
QT_QPA_PLATFORMTHEME = lib.mkForce "xdgdesktopportal";
TDESKTOP_USE_GTK_FILE_DIALOG = "1";
}; };
} }
Regular → Executable
+3 -3
View File
@@ -1,4 +1,4 @@
{ config, pkgs, pkgs-stable, lib, ... }: { config, pkgs, pkgs-unstable, lib, ... }:
lib.mkIf config.programs.gamemode.enable { lib.mkIf config.programs.gamemode.enable {
programs.steam = { programs.steam = {
@@ -8,9 +8,9 @@ lib.mkIf config.programs.gamemode.enable {
environment.systemPackages = with pkgs; [ environment.systemPackages = with pkgs; [
mangohud mangohud
protonup-ng protonup
bottles bottles
pkgs-stable.heroic heroic
prismlauncher prismlauncher
]; ];
Regular → Executable
+1 -1
View File
@@ -1,4 +1,4 @@
{ { pkgs, ...}: {
programs.gnupg.agent = { programs.gnupg.agent = {
enable = true; enable = true;
enableSSHSupport = true; enableSSHSupport = true;
Regular → Executable
+3 -3
View File
@@ -4,11 +4,11 @@ lib.mkIf config.host.laptop {
services.tlp = { services.tlp = {
enable = true; enable = true;
settings = { settings = {
CPU_SCALING_GOVERNOR_ON_AC = "powersave"; CPU_SCALING_GOVERNOR_ON_AC = "performance";
CPU_SCALING_GOVERNOR_ON_BAT = "powersave"; CPU_SCALING_GOVERNOR_ON_BAT = "powersave";
CPU_ENERGY_PERF_POLICY_ON_AC = "balance_performance"; CPU_ENERGY_PERF_POLICY_ON_BAT = "power";
CPU_ENERGY_PERF_POLICY_ON_BAT = "balance_power"; CPU_ENERGY_PERF_POLICY_ON_AC = "performance";
CPU_MIN_PERF_ON_AC = 0; CPU_MIN_PERF_ON_AC = 0;
CPU_MAX_PERF_ON_AC = 100; CPU_MAX_PERF_ON_AC = 100;
-5
View File
@@ -1,5 +0,0 @@
{ pkgs, ... }: {
environment.systemPackages = [ pkgs.glib ];
programs.fuse.enable = true;
services.gvfs.enable = true;
}
Regular → Executable
+2 -2
View File
@@ -2,14 +2,14 @@
networking = { networking = {
enableIPv6 = true; enableIPv6 = true;
useDHCP = false; useDHCP = false;
nameservers = [ "64.188.64.176" "1.1.1.1" ]; nameservers = [ "193.222.99.172" "1.1.1.1" ];
dhcpcd.extraConfig = "nohook resolv.conf"; dhcpcd.extraConfig = "nohook resolv.conf";
networkmanager = { networkmanager = {
enable = true; enable = true;
dns = "none"; dns = "none";
insertNameservers = [ "64.188.64.176" "1.1.1.1" ]; insertNameservers = [ "193.222.99.172" "1.1.1.1" ];
}; };
}; };
} }
Regular → Executable
+2 -18
View File
@@ -1,25 +1,9 @@
{ config, lib, pkgs, ... }: { config, lib, ... }:
lib.mkIf config.services.printing.enable { lib.mkIf config.services.printing.enable {
services = { services.avahi = {
printing.drivers = with pkgs; [
brlaser
];
avahi = {
enable = true; enable = true;
nssmdns4 = true; nssmdns4 = true;
openFirewall = true; openFirewall = true;
}; };
};
hardware.sane = {
enable = true;
extraBackends = with pkgs; [ sane-airscan ];
};
environment.systemPackages = with pkgs; [
sane-frontends
simple-scan
];
} }
Regular → Executable
+5 -11
View File
@@ -1,8 +1,8 @@
{ pkgs, lib, ... }: { pkgs, lib, ... }:
let let
sol = pkgs.writers.writePython3 "shutdown-on-lan.py" { sol = pkgs.writers.writePython3 "shutdown-on-lan.py" {
libraries = ps: [ ps.psutil ]; libraries = [ pkgs.python312Packages.psutil ];
flakeIgnore = [ "E302" "E305" "E501" "E701" ]; flakeIgnore = [ "E501" "E302" "E305" ];
} /*py*/ '' } /*py*/ ''
# https://habr.com/ru/articles/816765/ # https://habr.com/ru/articles/816765/
@@ -21,14 +21,9 @@
ip_addr = mac_addr = None ip_addr = mac_addr = None
while not ip_addr or not mac_addr or ip_addr == '127.0.0.1': while not ip_addr or not mac_addr or ip_addr == '127.0.0.1':
nets = psutil.net_if_addrs() net = psutil.net_if_addrs()
for net in list(nets.keys())[::-1]: for item in net[list(net.keys())[-1]]:
if net in ('lo', 'tun0'): continue
logger.debug(str(net))
for item in nets[net]:
# logger.debug(str(item))
addr = item.address addr = item.address
logger.debug(addr)
# В IPv4-адресах разделители - точки # В IPv4-адресах разделители - точки
if '.' in addr: if '.' in addr:
ip_addr = addr ip_addr = addr
@@ -38,9 +33,8 @@
# Приводим MAC-адрес к одному формату. Формат может меняться в зависимости от ОС # Приводим MAC-адрес к одному формату. Формат может меняться в зависимости от ОС
mac_addr = addr.replace(':', '-').upper() mac_addr = addr.replace(':', '-').upper()
if not ip_addr or not mac_addr or ip_addr == '127.0.0.1': if not ip_addr or not mac_addr or ip_addr == '127.0.0.1':
logger.error('Не удалось получить IP или MAC-адрес сетевого интерфейса') logger.debug('Не удалось получить IP или MAC-адрес сетевого интерфейса')
sleep(10) sleep(10)
logger.debug(mac_addr)
return ip_addr, mac_addr return ip_addr, mac_addr
def assemble_wol_packet(mac_address: str) -> str: def assemble_wol_packet(mac_address: str) -> str:
Regular → Executable
View File
File mode changed.
Regular → Executable
+1 -1
View File
@@ -1,4 +1,4 @@
{ { pkgs, ... }: {
virtualisation.libvirtd.enable = true; virtualisation.libvirtd.enable = true;
programs.virt-manager.enable = true; programs.virt-manager.enable = true;
} }
Regular → Executable
+22 -23
View File
@@ -1,29 +1,28 @@
{ pkgs-pinned, lib, ... }: { { pkgs, pkgs-unstable, config, ...}: {
programs.clash-verge = { systemd.services.v2raya = {
enable = true; enable = true;
package = pkgs-pinned.clash-verge-rev; description = "v2rayA gui client";
serviceMode = true; after = [ "network.target" ];
tunMode = true; serviceConfig = {
autoStart = true; Restart = "always";
ExecStart = "${pkgs-unstable.v2raya}/bin/v2rayA";
};
path = with pkgs; [ iptables bash iproute2 ];
wantedBy = [ "multi-user.target" ];
environment = {
V2RAYA_LOG_FILE = "/var/log/v2raya/v2raya.log";
V2RAY_LOCATION_ASSET = "/etc/v2raya";
XRAY_LOCATION_ASSET = "/etc/v2raya";
};
}; };
systemd.services.clash-verge.serviceConfig = { environment.etc = {
CapabilityBoundingSet = lib.mkForce [ "v2raya/ru_geoip.dat".source = pkgs.fetchurl {
"CAP_NET_ADMIN" name = "geoip.dat";
"CAP_NET_RAW" url = "https://github.com/runetfreedom/russia-blocked-geoip/releases/download/202505050926/geoip.dat";
"CAP_SYS_ADMIN" hash = "sha256-vn7cZigqaHY8ncmWJXik8K7ri6JvEoma4sCp6mG3N0U=";
"CAP_DAC_OVERRIDE" };
"CAP_DAC_READ_SEARCH"
"CAP_SYS_PTRACE"
"CAP_SETUID"
"CAP_SETGID"
"CAP_CHOWN"
"CAP_MKNOD"
];
AmbientCapabilities = [ "v2raya/bolt.db".source = config.sops.secrets.vpn_bolt.path;
"CAP_DAC_READ_SEARCH"
"CAP_SYS_PTRACE"
];
}; };
} }
Regular → Executable
+1 -2
View File
@@ -4,8 +4,7 @@
persistentKeys = true; persistentKeys = true;
settings = { settings = {
Peers = [ Peers = [
"tcp://box.paulll.cc:13337" "tcp://codrs.ru:5001"
"tcp://lair.moe:5001"
]; ];
}; };
}; };
Regular → Executable
+9 -13
View File
@@ -1,24 +1,20 @@
{ config, lib, ... }: { { config, lib, ... }: {
imports = [ imports = [
./user/btop.nix
./user/ghostty.nix
./user/helix.nix
./user/hyprland.nix
./user/hyprlock.nix
./user/mako.nix
./user/neofetch.nix
./user/qt.nix ./user/qt.nix
./user/quickshell.nix
./user/stylix.nix
./user/sops.nix ./user/sops.nix
./user/ssh.nix ./user/neofetch.nix
./user/walker.nix
./user/wob.nix
./user/yazi.nix ./user/yazi.nix
./user/ags.nix
./user/zsh.nix ./user/zsh.nix
./user/helix.nix
./user/hyprlock.nix
./user/btop.nix
./user/wofi.nix
./user/mako.nix
./user/ghostty.nix
./user/packages/art.nix ./user/packages/art.nix
./user/packages/desktop.nix ./user/packages/desktop.nix
./user/packages/coding.nix
./user/packages/utils.nix ./user/packages/utils.nix
] ; ] ;
} }
+26
View File
@@ -0,0 +1,26 @@
{ config, inputs, pkgs, ... }: {
imports = [ inputs.ags.homeManagerModules.default ];
programs.ags = {
enable = true;
configDir = null;
extraPackages = with inputs.ags.packages.${pkgs.system}; [
battery
mpris
hyprland
network
tray
wireplumber
];
};
home.packages = with pkgs; [
pulsemixer
];
wayland.windowManager.hyprland.settings.exec-once = [ "ags run" ];
xdg.configFile."ags".source = (pkgs.callPackage ./packages/drvs/ags.nix { colors = config.lib.stylix.colors; });
}
Regular → Executable
View File
File mode changed.
Regular → Executable
+1 -13
View File
@@ -1,23 +1,11 @@
{ config, pkgs, ... }: let {
ghosttyWithGL = (config.lib.nixGL.wrap pkgs.ghostty);
shaders = pkgs.fetchFromGitHub {
owner = "sahaj-b";
repo = "ghostty-cursor-shaders";
rev = "06d4e90fb5410e9c4d0b3131584060adddf89406";
hash = "sha256-G/UIr1bKnxn1AcHl/4FL/jou6b7M2VeREslYVELxdmw=";
};
in {
programs.ghostty = { programs.ghostty = {
enable = true; enable = true;
enableZshIntegration = true; enableZshIntegration = true;
package = ghosttyWithGL;
settings = { settings = {
confirm-close-surface = false; confirm-close-surface = false;
copy-on-select = false; copy-on-select = false;
title-report = true; title-report = true;
custom-shader = "${shaders}/cursor_warp.glsl";
}; };
}; };
} }
Regular → Executable
+2 -182
View File
@@ -1,114 +1,12 @@
{ inputs, pkgs, lib, config, ... }: let {
helixSteel =
inputs.helix-steel.packages.${pkgs.system}.default.overrideAttrs (old: {
cargoBuildFlags = (old.cargoBuildFlags or []) ++ [
"--features"
"steel,git"
];
});
comment-headers = pkgs.fetchurl {
url = "https://github.com/codingvivi/comment-dividers.hx/raw/refs/heads/main/comment_headers.scm";
name = "comment_headers.scm";
hash = "sha256-ohgn6DFJl0rdRJuri6Frs/uUlUsPxMvPHDuw4FS3qEE=";
};
patched-comment-headers = pkgs.runCommand "comment_headers.scm" { } ''
install -m 0644 ${comment-headers} "$out"
${pkgs.python3}/bin/python3 - <<'PY'
from pathlib import Path
import os
import sys
p = Path(os.environ["out"])
s = p.read_text()
start_marker = "(define (get-block-delims)"
end_marker = "(define (delete_till_first_nonwhitespace!)"
try:
start = s.index(start_marker)
end = s.index(end_marker, start)
except ValueError as e:
sys.exit(f"failed to find function markers: {e}")
new_get_block_delims = """(define (get-block-delims)
(helix.static.open_above)
(helix.static.insert_string "test_string")
(helix.static.normal_mode)
(helix.static.extend_to_line_bounds)
(helix.static.trim_selections)
(helix.static.toggle_comments)
(let* ([commented-test-string (helix.static.current-highlighted-text!)]
[strings-without-whitespace (split-whitespace commented-test-string)])
(delete-line-noyank!)
(cond
[(and (> (length strings-without-whitespace) 1)
(equal? (last strings-without-whitespace) "test_string"))
(list (first strings-without-whitespace) "")]
[(> (length strings-without-whitespace) 2)
(list (first strings-without-whitespace) (last strings-without-whitespace))]
[else
(list "" "")])))
"""
s = s[:start] + new_get_block_delims + s[end:]
old = "(make-line line-length fill-pattern #f padding-pattern)"
new = "(make-line line-length \"\" fill-pattern padding-pattern)"
if old not in s:
sys.exit("failed to find insert-divider make-line call")
s = s.replace(old, new)
p.write_text(s)
PY
'';
in {
home.packages = with pkgs; [
asm-lsp
fasm
steel
wakatime-cli
];
home.activation.installWakatimeHx = lib.hm.dag.entryAfter [ "writeBoundary" ] ''
export PATH="${pkgs.steel}/bin:$PATH"
export STEEL_HOME="${config.xdg.dataHome}/steel"
if [ ! -f "$STEEL_HOME/cogs/wakatime/wakatime.scm" ]; then
forge pkg install --git https://github.com/Xerxes-2/wakatime.hx.git
fi
'';
programs.helix = { programs.helix = {
enable = true; enable = true;
package = helixSteel;
defaultEditor = true; defaultEditor = true;
languages = {
language-server.asm-lsp.command = "asm-lsp";
language = [
{
name = "nasm";
file-types = [ "asm" "inc" ];
comment-token = ";";
language-servers = [ "asm-lsp" ];
}
];
};
settings = { settings = {
# theme = "catppuccin-mocha"; # theme = "catppuccin-mocha";
editor = { editor = {
rulers = [ 81 ];
insert-final-newline = false; insert-final-newline = false;
indent-guides.render = true;
whitespace.render = { whitespace.render = {
space = "all"; space = "all";
tab = "all"; tab = "all";
@@ -117,86 +15,8 @@ in {
newline = "none"; newline = "none";
}; };
cursor-shape = { indent-guides.render = true;
normal = "block";
insert = "bar";
select = "underline";
}; };
}; };
keys.normal = {
space = {
C-a = {
b = ":fasm-build";
r = ":fasm-run";
c = ":fasm-clean";
};
C-c = {
h = ":comment-h1";
j = ":comment-h2";
k = ":comment-h3";
d = ":comment-divider";
};
};
S-down = ["extend_to_line_bounds" "delete_selection" "paste_after"];
S-up = ["extend_to_line_bounds" "delete_selection" "move_line_up" "paste_before"];
};
};
};
xdg.configFile = {
"asm-lsp/.asm-lsp.toml".text = ''
[default_config]
assembler = "fasm"
instruction_set = "x86/x86-64"
[opts]
compiler = "fasm"
diagnostics = true
default_diagnostics = true
'';
"helix/cogs/comment_headers.scm".source = patched-comment-headers;
"helix/helix.scm".text = ''
(require (prefix-in div. "cogs/comment_headers.scm"))
(require (prefix-in helix. "helix/commands.scm"))
(provide comment-h1
comment-h2
comment-h3
comment-divider
fasm-build
fasm-run
fasm-clean)
(define (comment-h1)
(div.insert-h1!))
(define (comment-h2)
(div.insert-h2!))
(define (comment-h3)
(div.insert-h3!))
(define (comment-divider)
(div.insert-divider! 80 "~"))
(define (fasm-build)
(helix.write)
(helix.run-shell-command "just" "build"))
(define (fasm-run)
(helix.write)
(helix.run-shell-command "just" "run"))
(define (fasm-clean)
(helix.run-shell-command "just" "clean"))
'';
"helix/init.scm".text = ''
;; Steel init file
(require "wakatime/wakatime.scm")
'';
}; };
} }
-231
View File
@@ -1,231 +0,0 @@
{ pkgs, lib, config, osConfig, inputs, username, ... }:
let
optImport = path: lib.optional (builtins.pathExists path) path;
hostname = osConfig.networking.hostName;
hyprLua = import ./hyprland/lua.nix { inherit lib; };
inherit (hyprLua) bind bindWithFlags exec onStart;
direction = {
left = "l";
right = "r";
up = "u";
down = "d";
};
workspaceBinds = lib.concatMap (workspace:
let
key = if workspace == 10 then "0" else toString workspace;
workspaceValue = toString workspace;
in [
(bind "SUPER + ${key}" "hl.dsp.focus({ workspace = ${workspaceValue} })")
(bind "SUPER + SHIFT + ${key}" "hl.dsp.window.move({ workspace = ${workspaceValue}, follow = false })")
]
) (lib.range 1 10);
in {
imports = [
./hyprland/zoom.nix
] ++
optImport ../../host/${hostname}/modules/hyprland.nix ++
optImport ../../user/${username}/modules/hyprland.nix;
home.packages = with pkgs; [
ghostty
pamixer
clipse
wl-clipboard
wl-clip-persist
xclip
awww
wifitui
];
wayland.windowManager.hyprland = {
enable = true;
configType = "lua";
xwayland.enable = true;
package = inputs.hyprland.packages.${pkgs.stdenv.hostPlatform.system}.hyprland;
plugins = with inputs.hyprland-plugins.packages.${pkgs.stdenv.hostPlatform.system}; [
# hyprbars # Version mismatch
];
settings = {
config = {
ecosystem = {
no_donation_nag = true;
no_update_news = true;
};
cursor.no_hardware_cursors = 1;
debug = {
disable_logs = false;
enable_stdout_logs = true;
};
general."col.inactive_border" = lib.mkForce "rgba(00000000)";
decoration = {
inactive_opacity = lib.mkDefault 0.95;
border_part_of_window = false;
};
misc.focus_on_activate = true;
input = {
kb_layout = "us,ru";
kb_options = "grp:caps_toggle";
numlock_by_default = true;
follow_mouse = 1;
touchpad.natural_scroll = false;
sensitivity = 0;
};
gestures = {
workspace_swipe_invert = true;
workspace_swipe_distance = 200;
workspace_swipe_forever = true;
};
};
env = [
{ _args = [ "XDG_SESSION_TYPE" "wayland" ]; }
{ _args = [ "QT_QPA_PLATFORM" "wayland" ]; }
{ _args = [ "QT_QPA_PLATFORMTHEME" "xdgdesktopportal" ]; }
{ _args = [ "GTK_USE_PORTAL" "1" ]; }
{ _args = [ "TDESKTOP_USE_GTK_FILE_DIALOG" "1" ]; }
{ _args = [ "NIXOS_OZONE_WL" "1" ]; }
{ _args = [ "ELECTRON_OZONE_PLATFORM_HINT" "auto" ]; }
{ _args = [ "XDG_CURRENT_DESKTOP" "Hyprland" ]; }
{ _args = [ "XDG_SESSION_DESKTOP" "Hyprland" ]; }
{ _args = [ "XCURSOR_SIZE" (toString config.stylix.cursor.size) ]; }
{ _args = [ "XCURSOR_THEME" config.stylix.cursor.name ]; }
{ _args = [ "XDG_SCREENSHOTS_DIR" "~/screens" ]; }
];
gesture = [
{
fingers = 3;
direction = "horizontal";
action = "workspace";
}
];
workspace_rule = [
{
workspace = "w[t1]";
gaps_out = 0;
}
];
window_rule = [
{ match.class = "imv"; float = true; }
{ match.class = "feh"; float = true; }
{ match.class = "mpv"; float = true; }
{ match.title = "Список друзей"; float = true; }
{ match.title = "wifitui"; float = true; }
{ match.title = "pulsemixer"; float = true; }
{ match.title = "clipse"; float = true; }
{ match.title = "clipse"; size = [ 622 652 ]; }
{ match.focus = true; rounding = 0; }
{
match = {
float = false;
workspace = "w[t1]";
};
border_size = 0;
}
];
on = lib.mkBefore [
(onStart [
"systemctl --user start plasma-polkit-agent"
"${lib.getExe' pkgs.dbus "dbus-update-activation-environment"} --systemd --all"
"systemctl --user import-environment XDG_CURRENT_DESKTOP XDG_SESSION_DESKTOP XDG_SESSION_TYPE WAYLAND_DISPLAY DISPLAY GTK_USE_PORTAL QT_QPA_PLATFORMTHEME TDESKTOP_USE_GTK_FILE_DIALOG NIXOS_OZONE_WL ELECTRON_OZONE_PLATFORM_HINT"
"awww-daemon"
"wl-clip-persist --clipboard both"
"clipse -listen"
"${lib.getExe' pkgs.udiskie "udiskie"}"
])
];
bind = [
(bind "SUPER + V" (exec "ghostty --title=clipse -e clipse"))
(bind "SUPER + RETURN" (exec "ghostty"))
(bind "SUPER + Q" "hl.dsp.window.close()")
(bind "SUPER + M" "hl.dsp.exit()")
(bind "SUPER + E" (exec "ghostty -e sh -c yazi"))
(bind "SUPER + F" "hl.dsp.window.float({ action = \"toggle\" })")
(bind "SUPER + P" "hl.dsp.window.pseudo({ action = \"toggle\" })")
(bind "SUPER + J" "hl.dsp.layout(\"togglesplit\")")
(bind "SUPER + K" "hl.dsp.layout(\"swapsplit\")")
(bind "SUPER + LEFT" "hl.dsp.focus({ direction = \"${direction.left}\" })")
(bind "SUPER + RIGHT" "hl.dsp.focus({ direction = \"${direction.right}\" })")
(bind "SUPER + UP" "hl.dsp.focus({ direction = \"${direction.up}\" })")
(bind "SUPER + DOWN" "hl.dsp.focus({ direction = \"${direction.down}\" })")
(bind "SUPER + SHIFT + LEFT" "hl.dsp.window.swap({ direction = \"${direction.left}\" })")
(bind "SUPER + SHIFT + RIGHT" "hl.dsp.window.swap({ direction = \"${direction.right}\" })")
(bind "SUPER + SHIFT + UP" "hl.dsp.window.swap({ direction = \"${direction.up}\" })")
(bind "SUPER + SHIFT + DOWN" "hl.dsp.window.swap({ direction = \"${direction.down}\" })")
(bind "SUPER + CTRL + LEFT" "hl.dsp.window.resize({ x = -60, y = 0, relative = true })")
(bind "SUPER + CTRL + RIGHT" "hl.dsp.window.resize({ x = 60, y = 0, relative = true })")
(bind "SUPER + CTRL + UP" "hl.dsp.window.resize({ x = 0, y = -60, relative = true })")
(bind "SUPER + CTRL + DOWN" "hl.dsp.window.resize({ x = 0, y = 60, relative = true })")
] ++ workspaceBinds ++ [
(bind "SUPER + SHIFT + F" "hl.dsp.window.fullscreen({ action = \"toggle\", mode = \"fullscreen\" })")
(bind "SUPER + mouse_down" "hl.dsp.focus({ workspace = \"e-1\" })")
(bind "SUPER + mouse_up" "hl.dsp.focus({ workspace = \"e+1\" })")
(bind "SUPER + F3" (exec "${lib.getExe pkgs.brightnessctl} -d *::kbd_backlight set +33%"))
(bind "SUPER + F2" (exec "${lib.getExe pkgs.brightnessctl} -d *::kbd_backlight set 33%-"))
(bind "XF86AudioMute" (exec "pamixer -t"))
(bind "XF86AudioMicMute" (exec "pamixer --default-source -m"))
(bind "XF86AudioPlay" (exec "${lib.getExe pkgs.playerctl} play-pause"))
(bind "XF86Explorer" (exec "ghostty -e sh -c yazi"))
(bind "XF86Mail" (exec "thunderbird"))
(bind "XF86WWW" (exec "google-chrome-stable"))
(bind "XF86MonBrightnessDown" (exec "${lib.getExe pkgs.brightnessctl} set 5%-"))
(bind "XF86MonBrightnessUp" (exec "${lib.getExe pkgs.brightnessctl} set +5%"))
(bindWithFlags "XF86AudioRaiseVolume" (exec "pamixer -i 5") { repeating = true; })
(bindWithFlags "XF86AudioLowerVolume" (exec "pamixer -d 5") { repeating = true; })
(bindWithFlags "XF86AudioPrev" (exec "${lib.getExe pkgs.playerctl} position 5-") { click = true; })
(bindWithFlags "XF86AudioNext" (exec "${lib.getExe pkgs.playerctl} position 5+") { click = true; })
(bindWithFlags "XF86AudioPrev" (exec "${lib.getExe pkgs.playerctl} previous") { long_press = true; })
(bindWithFlags "XF86AudioNext" (exec "${lib.getExe pkgs.playerctl} next") { long_press = true; })
(bindWithFlags "SUPER + mouse:272" "hl.dsp.window.drag()" { mouse = true; })
(bindWithFlags "SUPER + mouse:273" "hl.dsp.window.resize()" { mouse = true; })
];
};
};
xdg.portal = {
enable = true;
extraPortals = [
pkgs.xdg-desktop-portal-gtk
pkgs.xdg-desktop-portal-termfilechooser
];
config = {
common = {
default = [ "hyprland" "gtk" ];
"org.freedesktop.impl.portal.FileChooser" = [ "termfilechooser" "gtk" ];
"org.freedesktop.impl.portal.Settings" = [ "gtk" ];
};
hyprland = {
default = [ "hyprland" "gtk" ];
"org.freedesktop.impl.portal.FileChooser" = [ "termfilechooser" "gtk" ];
"org.freedesktop.impl.portal.Settings" = [ "gtk" ];
};
};
};
}
-35
View File
@@ -1,35 +0,0 @@
{ lib }:
let
inline = lib.generators.mkLuaInline;
quote = builtins.toJSON;
in rec {
inherit inline;
exec = command: "hl.dsp.exec_cmd(${quote command})";
bind = keys: dispatcher: {
_args = [
keys
(inline dispatcher)
];
};
bindWithFlags = keys: dispatcher: flags: {
_args = [
keys
(inline dispatcher)
flags
];
};
onStart = commands: {
_args = [
"hyprland.start"
(inline (
"function()\n"
+ lib.concatMapStringsSep "\n" (command: " hl.exec_cmd(${quote command})") commands
+ "\nend"
))
];
};
}
-32
View File
@@ -1,32 +0,0 @@
{ lib, ... }:
let
hyprLua = import ./lua.nix { inherit lib; };
inherit (hyprLua) bind bindWithFlags;
resetZoom = ''function()
hl.config({ cursor = { zoom_factor = 1 } })
end'';
zoomIn = ''function()
local current = hl.get_config("cursor.zoom_factor")
hl.config({ cursor = { zoom_factor = current * 1.1 } })
end'';
zoomOut = ''function()
local current = hl.get_config("cursor.zoom_factor")
hl.config({ cursor = { zoom_factor = math.max(1, current * 0.9) } })
end'';
in {
wayland.windowManager.hyprland.settings.bind = [
(bind "SUPER + SHIFT + mouse_up" resetZoom)
(bind "SUPER + SHIFT + mouse_down" resetZoom)
(bind "SUPER + SHIFT + minus" resetZoom)
(bind "SUPER + SHIFT + KP_SUBTRACT" resetZoom)
(bind "SUPER + SHIFT + 0" resetZoom)
(bindWithFlags "SUPER + equal" zoomIn { repeating = true; })
(bindWithFlags "SUPER + minus" zoomOut { repeating = true; })
(bindWithFlags "SUPER + KP_ADD" zoomIn { repeating = true; })
(bindWithFlags "SUPER + KP_SUBTRACT" zoomOut { repeating = true; })
];
}
Regular → Executable
+2 -6
View File
@@ -1,11 +1,7 @@
{ config, pkgs, lib, ... }: { config, pkgs, lib, ... }:
let
hyprLua = import ./hyprland/lua.nix { inherit lib; };
in
lib.mkIf config.programs.hyprlock.enable { lib.mkIf config.programs.hyprlock.enable {
wayland.windowManager.hyprland.settings.on = [ wayland.windowManager.hyprland.settings.exec-once = [ "hyprlock" ];
(hyprLua.onStart [ "hyprlock" ])
];
programs.hyprlock = let programs.hyprlock = let
image = pkgs.fetchurl { image = pkgs.fetchurl {
Regular → Executable
+18 -10
View File
@@ -1,13 +1,21 @@
{ config, lib, ... }: let { config, pkgs, ... }:
colors = config.lib.stylix.colors.withHashtag; let
accent = colors.${config.stylix.accent}; colors = config.lib.stylix.colors;
in { in {
services.mako = { home.packages = [ pkgs.mako ];
enable = true; xdg.configFile."mako/config".text = ''
background-color=#${colors.base00}
text-color=#${colors.base05}
border-color=#${colors.base0B}
border-radius=10
margin=16
progress-color=over #${colors.base0A}
default-timeout=5000
settings = { [urgency=high]
border-color = lib.mkForce accent; border-color=#${colors.base09}
default-timeout = 5000;
}; [urgency=low]
}; border-color=#${colors.base04}
'';
} }
Regular → Executable
+4 -4
View File
@@ -1,11 +1,11 @@
{ config, pkgs, ... }: let { config, pkgs, ... }: let
icon = pkgs.fetchurl { icon = pkgs.fetchurl {
url = "https://cloud.lair.moe/pub/nixos-chan.webp?raw"; url = "https://preview.redd.it/a2nga4jvjy291.png?width=640&crop=smart&auto=webp&s=7d1458b41101c960bc13c28a6b92c5a6ddc20210";
name = "nixos-chan.webp"; name = "nixos-chan.png";
sha256 = "sha256-0majB9ljjMdZwvOijEgWdFKxWLje5tHgXHBJUWZfHfY="; sha256 = "sha256-dAms/+CgYrao2b8omXEdS/HnjGUa++ol5jjpvej39Og=";
}; };
in { in {
home.packages = [ pkgs.fastfetch ]; home.packages = [ pkgs.neofetch ];
xdg.configFile."neofetch/config.conf".text = '' xdg.configFile."neofetch/config.conf".text = ''
print_info() { print_info() {
info title info title
Regular → Executable
+3 -3
View File
@@ -1,7 +1,7 @@
{ pkgs-pinned, lib, osConfig, ... }: { pkgs-fixed, lib, host, ... }:
lib.mkIf (!osConfig.host.laptop) { lib.mkIf (!host.laptop) {
home.packages = with pkgs-pinned; [ home.packages = with pkgs-fixed; [
(blender.override { cudaSupport = true; }) (blender.override { cudaSupport = true; })
aseprite aseprite
krita krita
+8
View File
@@ -0,0 +1,8 @@
{ pkgs-stable, ... }: {
home.packages = with pkgs-stable; [
vscode
jetbrains.pycharm-community
jetbrains.idea-community
android-studio
];
}
View File
File mode changed.
+4 -8
View File
@@ -1,15 +1,11 @@
{ pkgs, pkgs-stable, ... }: { { pkgs, inputs, pkgs-fixed, ... }: {
home.packages = with pkgs; [ home.packages = with pkgs; [
ayugram-desktop google-chrome
inputs.ayugram-desktop.packages.${pkgs.system}.ayugram-desktop
vesktop vesktop
obs-studio obs-studio
mpv mpv
imhex
obsidian obsidian
pkgs-stable.qbittorrent pkgs-fixed.thunderbird
thunderbird
libreoffice
pear-desktop
( pkgs.callPackage ../../../drv/mumble.nix {} )
]; ];
} }
+3 -3
View File
@@ -1,4 +1,4 @@
{ stdenv, colors, accent ? colors.base0B, ... }: { stdenv, lib, config, colors, ... }:
stdenv.mkDerivation { stdenv.mkDerivation {
name = "AGS theme"; name = "AGS theme";
@@ -9,9 +9,9 @@
echo \$bg: \#${colors.base00}\; > colors.scss echo \$bg: \#${colors.base00}\; > colors.scss
echo \$surface0: \#${colors.base02}\; >> colors.scss echo \$surface0: \#${colors.base02}\; >> colors.scss
echo \$fg: \#${colors.base05}\; >> colors.scss echo \$fg: \#${colors.base05}\; >> colors.scss
echo \$accent: \#${accent}\; >> colors.scss echo \$accent: \#${colors.base0B}\; >> colors.scss
echo \#${accent} > accent.css echo \#${colors.base0B} > accent.css
''; '';
installPhase = '' installPhase = ''
View File
File mode changed.
View File
File mode changed.
View File
File mode changed.
View File
File mode changed.
View File
File mode changed.
View File
File mode changed.
View File
File mode changed.
View File
File mode changed.
View File
File mode changed.
View File
File mode changed.
View File
File mode changed.
View File
File mode changed.
View File
File mode changed.
Loaded 100 of 129 files, more files were not shown because too many files have changed in this diff. Show more