Compare commits
173 Commits
north
...
94559de7ae
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
94559de7ae | ||
|
|
89fa46aa6d | ||
|
|
e4d0326a74 | ||
|
|
8525adecf4 | ||
|
|
c381580cca | ||
|
|
aea641cd9c | ||
|
|
2179dbf1d8 | ||
|
|
6f5f70f439 | ||
|
|
d40175d4a5 | ||
|
|
34eba60193 | ||
|
|
57230a32c3 | ||
|
|
d9146432e4 | ||
|
|
447e6edd56 | ||
|
|
aa58ca79bb | ||
|
|
a2692f6837 | ||
|
|
c031de7fec | ||
|
|
918342fdf3 | ||
|
|
d8f623f1a0 | ||
|
|
6a4460d089 | ||
|
|
e61954442f | ||
|
|
f5aa965369 | ||
|
|
eb812dc9e0 | ||
|
|
6d4d118685 | ||
|
|
94a78942f8 | ||
|
|
5c2437cee1 | ||
|
|
fa8875c0ee | ||
|
|
2040ce3ea0 | ||
|
|
d9822a7a91 | ||
|
|
d2e0b9d2d3 | ||
|
|
ccdd036935 | ||
|
|
5d36be3804 | ||
|
|
2640b00b05 | ||
|
|
9087100c42 | ||
|
|
5c9a92c68e | ||
|
|
1fd894a3b3 | ||
|
|
09316011ab | ||
|
|
fdce6c3d57 | ||
|
|
1be03c39ad | ||
|
|
a0c098ea1f | ||
|
|
9a4e3d7a78 | ||
|
|
1005cc522d | ||
|
|
729e7e5f0e | ||
|
|
79cbdc9f69 | ||
|
|
c6ca7c95f4 | ||
|
|
e878158b71 | ||
|
|
ed5f0784d1 | ||
|
|
051648954a | ||
|
|
f5538e69a5 | ||
|
|
a82660b049 | ||
|
|
f828268b14 | ||
|
|
02c7814ce4 | ||
|
|
e36ffd828b | ||
|
|
219a19a3a8 | ||
|
|
683913e0fe | ||
|
|
837e64c377 | ||
|
|
f8497f5538 | ||
|
|
9c2a69aa03 | ||
|
|
a8c3a12089 | ||
|
|
b8199c24ef | ||
|
|
971cea5418 | ||
|
|
d12b9ddf2f | ||
|
|
e4ec830aaa | ||
|
|
ebb1da3fc2 | ||
|
|
80e06b3f49 | ||
|
|
605381b553 | ||
|
|
298d31e21a | ||
|
|
947b824796 | ||
|
|
edbe4e7f66 | ||
|
|
dbccb827ad | ||
|
|
f5af726382 | ||
|
|
e95332cedb | ||
|
|
6a7d8fe4be | ||
|
|
37eb70db63 | ||
|
|
77e9aa4ddd | ||
|
|
e26ac7cbe2 | ||
|
|
66221229ca | ||
|
|
9b36c29009 | ||
|
|
55587f35f6 | ||
|
|
966f9d67fc | ||
|
|
2e1c0f495b | ||
|
|
ab4c26c178 | ||
|
|
91a5a6def8 | ||
|
|
104d1334df | ||
|
|
c19c270775 | ||
|
|
c5c41087b5 | ||
|
|
924f48b15a | ||
|
|
6abff56bbd | ||
|
|
5f9c6dd0a3 | ||
|
|
c426029a25 | ||
|
|
1790336aa5 | ||
|
|
06a630319d | ||
|
|
1814068cfe | ||
|
|
096f31d81a | ||
|
|
148bd4c481 | ||
|
|
f9d4921726 | ||
|
|
169d6eda11 | ||
|
|
97f33c7b8d | ||
|
|
340c514a99 | ||
|
|
b3d3c983c2 | ||
|
|
3a30fc2131 | ||
|
|
abd5b60ffa | ||
|
|
e3e52fb656 | ||
|
|
115a6d3c83 | ||
|
|
14df46a631 | ||
|
|
0c92fcd686 | ||
|
|
085d593ce1 | ||
|
|
fb082f76ed | ||
|
|
89ed2c0748 | ||
|
|
a32d8ad3ce | ||
|
|
d93ae4a78b | ||
|
|
8f3b04c191 | ||
|
|
8b96d1205b | ||
|
|
dbeb5524a0 | ||
|
|
2b873c8b81 | ||
|
|
2fcdf32944 | ||
|
|
24bb3136cf | ||
|
|
f32d77f7ff | ||
|
|
c6f7d73f89 | ||
|
|
1e3112b590 | ||
|
|
7639bed3fe | ||
|
|
d46530edd8 | ||
|
|
5ed4edc375 | ||
|
|
f422551ac3 | ||
|
|
5a40c8e1f9 | ||
|
|
b6d1b38ad9 | ||
|
|
f5016976ab | ||
|
|
059abbf549 | ||
|
|
dfaf24c9e1 | ||
|
|
a1d34a70c8 | ||
|
|
ea61c7e30d | ||
|
|
4ab26fbc08 | ||
|
|
6ab9da1b0c | ||
|
|
7ed29be1e6 | ||
|
|
e076123fa7 | ||
|
|
9d9d36dda8 | ||
|
|
c6d0205f8b | ||
|
|
96828bacd0 | ||
|
|
c16d439731 | ||
|
|
c8e0c2c832 | ||
|
|
19e7f2dd3a | ||
|
|
cfb112429d | ||
|
|
c0ff63e427 | ||
|
|
b7bf1f1bd7 | ||
|
|
9ad191f37c | ||
|
|
c61e6c9980 | ||
|
|
d626a5bd7d | ||
|
|
5eda39414a | ||
|
|
cbe9371e66 | ||
|
|
a10b22b9e3 | ||
|
|
fd3ca3a1d3 | ||
|
|
f2589a350d | ||
|
|
f24b4ae320 | ||
|
|
689ef45935 | ||
|
|
2492c5bd80 | ||
|
|
c9c6423bb3 | ||
|
|
d7cc5f77d7 | ||
|
|
3cfcbc1e2a | ||
|
|
69e2bed0ce | ||
|
|
13264dfa24 | ||
|
|
c1f24f2dc2 | ||
|
|
20f8ea51c6 | ||
|
|
52d81b9175 | ||
|
|
befa7fe91e | ||
|
|
4eead91953 | ||
|
|
ce84d681e0 | ||
|
|
5d1d2c49e5 | ||
|
|
73b0e338fc | ||
|
|
4b42af4523 | ||
|
|
1e0af7a61b | ||
|
|
ad784f41f9 | ||
|
|
ad885f7675 | ||
|
|
97ef1500ab | ||
|
|
d29a12094a |
21
LICENSE
Normal file
@@ -0,0 +1,21 @@
|
||||
MIT License
|
||||
|
||||
Copyright (c) 2024 Lennart J. Kurzweg
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
||||
46
README.md
Normal file
@@ -0,0 +1,46 @@
|
||||
# ❄️ NixOS Dotfiles
|
||||
|
||||

|
||||
|
||||
## Information
|
||||
|
||||
- Using stable + unstable via flakes
|
||||
- Multi-host config (Desktop, Laptop, Server)
|
||||
- Using home-manager for home-configuration
|
||||
- Using sops-nix with GPG + git-crypt for secrets
|
||||
|
||||
## Features:
|
||||
- The WM Hyperland extended to more or less full a DE with
|
||||
- automounting
|
||||
- notifications
|
||||
- a bar
|
||||
- gesture control
|
||||
- runner
|
||||
- ...
|
||||
- Virtualization support
|
||||
- docker
|
||||
- virt-manager
|
||||
- Multilingual typing with Fcitx5
|
||||
- Fully functioning Nvidia/Nvidia Prime support
|
||||
- Fully customized editor `helix`
|
||||
- Locally running LLM-server with tools written around it
|
||||
- Fully themed ("riced") via a custom, intentionally semi-automatic, adaptive system responding to wallpaper color
|
||||
- as can be seen in `flake-modules/rice.nix`
|
||||
- Next-Gen shell experience with
|
||||
- fish
|
||||
- starship
|
||||
- zoxide
|
||||
- yazi
|
||||
- direnv
|
||||
- lazygit + lazydocker
|
||||
|
||||
## Thanks to
|
||||
- [LibrePhoenix](https://www.youtube.com/@librephoenix) for getting me started
|
||||
- [VimJoyer](https://www.youtube.com/@vimjoyer) for making quick NixOS tutorials on many topics
|
||||
- Everyone that talks about NixOS in NixOS-forums and rooms instead of politics
|
||||
- [Everyone that put up their code on Github](https://github.com/search?type=code&auto_enroll=true&q=language%3Anix) for me to reference
|
||||
|
||||
## Licensing
|
||||
- The code found in this Repository is Licensed under the MIT-license
|
||||
- I've decided against the GPLv3, since I am not going to sue anyone over this, but
|
||||
- I encourage everyone to open source their work for anyone to at least reference
|
||||
83
configuration.nix
Executable file → Normal file
@@ -1,34 +1,53 @@
|
||||
{ pkgs, pkgs-unstable, lib, inputs, allowed, nvidia, ... }:
|
||||
{ pkgs, inputs, host, ... }:
|
||||
{
|
||||
imports = [
|
||||
imports = ([
|
||||
inputs.sops-nix.nixosModules.sops
|
||||
./system-modules/adb.nix
|
||||
./system-modules/auto-mount.nix
|
||||
./system-modules/hardware-configuration.nix
|
||||
./system-modules/fuse.nix
|
||||
./system-modules/games.nix
|
||||
./system-modules/nvidia.nix
|
||||
./system-modules/users.nix
|
||||
./system-modules/sound.nix
|
||||
./system-modules/fonts.nix
|
||||
./system-modules/boot.nix
|
||||
./system-modules/boot.nix
|
||||
./system-modules/gc.nix
|
||||
./system-modules/boot.nix
|
||||
./system-modules/dm.nix
|
||||
./system-modules/networking.nix
|
||||
# ./system-modules/virtualisation.nix
|
||||
./system-modules/sshd.nix
|
||||
./system-modules/gpg.nix
|
||||
./system-modules/sops.nix
|
||||
./system-modules/syncthing.nix
|
||||
./system-modules/hsmw.nix # old
|
||||
./system-modules/docker.nix
|
||||
./system-modules/fcitx5.nix
|
||||
./system-modules/fonts.nix
|
||||
./system-modules/fuse.nix
|
||||
./system-modules/gc.nix
|
||||
./system-modules/gpg.nix
|
||||
./system-modules/hardware-configuration.nix
|
||||
./system-modules/health_reminder.nix
|
||||
./system-modules/ydotool.nix
|
||||
./system-modules/ollama.nix
|
||||
./system-modules/nx2site.nix
|
||||
./system-modules/hsmw.nix
|
||||
./system-modules/kanata.nix
|
||||
./system-modules/kodi.nix
|
||||
./system-modules/networking.nix
|
||||
./system-modules/nixd.nix
|
||||
./system-modules/nvidia.nix
|
||||
./system-modules/ollama.nix
|
||||
./system-modules/qmk.nix
|
||||
];
|
||||
|
||||
|
||||
|
||||
./system-modules/sops.nix
|
||||
./system-modules/sound.nix
|
||||
./system-modules/sshd.nix
|
||||
./system-modules/syncthing.nix
|
||||
./system-modules/users.nix
|
||||
./system-modules/virtualisation.nix
|
||||
./system-modules/ydotool.nix
|
||||
]) ++ (if (host == "NxACE") then [
|
||||
./system-modules/nx2site.nix
|
||||
./system-modules/postgres.nix
|
||||
./system-modules/nx2site/proxy.nix
|
||||
./system-modules/nx2site/gitea.nix
|
||||
./system-modules/nx2site/radicale.nix
|
||||
# ./system-modules/nx2site/nextcloud.nix
|
||||
./system-modules/nx2site/vaultwarden.nix
|
||||
./system-modules/nx2site/paperless.nix
|
||||
] else []);
|
||||
|
||||
# Set your time zone.
|
||||
time.timeZone = "Europe/Berlin";
|
||||
@@ -56,41 +75,35 @@
|
||||
services.libinput.enable = true;
|
||||
hardware.uinput.enable = true;
|
||||
|
||||
hardware.bluetooth.enable = true; # enables support for Bluetooth
|
||||
hardware.bluetooth.powerOnBoot = true; #
|
||||
hardware.bluetooth = {
|
||||
enable = true;
|
||||
powerOnBoot = true;
|
||||
package = pkgs.bluez5-experimental;
|
||||
settings.Policy.AutoEnable = "true";
|
||||
settings.General.Enable = "Source,Sink,Media,Socket";
|
||||
};
|
||||
services.blueman.enable = true;
|
||||
|
||||
# nixpkgs.config.allowUnfree = true;
|
||||
nixpkgs.config = {
|
||||
# allowUnfree = true;
|
||||
# allowUnfreePredicate = (pkg: true);
|
||||
allowUnfreePredicate = let
|
||||
string-list = allowed.unfree-packages ++ (if nvidia.enable == true then nvidia.unfree else []);
|
||||
in pkg: builtins.elem (lib.getName pkg) string-list;
|
||||
cudaSupport = nvidia.enable;
|
||||
enableParallelBuildingByDefault = true;
|
||||
};
|
||||
|
||||
# List packages installed in system profile. To search, run:
|
||||
# $ nix search wget
|
||||
environment.systemPackages = with pkgs; ([
|
||||
git
|
||||
lazygit # home-manager module is bugged
|
||||
git-crypt
|
||||
lazygit # home-manager module is bugged
|
||||
wget
|
||||
curl
|
||||
curlHTTP3
|
||||
zip
|
||||
unzip
|
||||
p7zip
|
||||
unar
|
||||
nano
|
||||
micro
|
||||
htop
|
||||
direnv
|
||||
openssl
|
||||
blueman
|
||||
dmidecode
|
||||
file
|
||||
parallel
|
||||
# ]) ++ (with pkgs-unstable; [
|
||||
# # sendme
|
||||
]);
|
||||
@@ -107,7 +120,9 @@
|
||||
xwayland.enable = true;
|
||||
};
|
||||
|
||||
system.stateVersion = "24.05";
|
||||
system.stateVersion = "24.11";
|
||||
|
||||
nixpkgs.config.allowUnfree = true;
|
||||
|
||||
nix.settings.experimental-features = [ "nix-command" "flakes" ];
|
||||
|
||||
|
||||
43
flake-modules/allowed.nix
Normal file
@@ -0,0 +1,43 @@
|
||||
|
||||
{
|
||||
unfree = [
|
||||
"discord"
|
||||
"spotify"
|
||||
"obsidian"
|
||||
"zoom-us"
|
||||
"zoom"
|
||||
|
||||
# since the predicate ist to be set in the flake and not in a module
|
||||
# it is impossible to make the list dynamic and respect nvidia.enable
|
||||
"nvidia-x11"
|
||||
"nvidia-settings"
|
||||
"nvidia-persistenced"
|
||||
"cudatoolkit"
|
||||
"cuda-merged"
|
||||
"cuda_cuobjdump"
|
||||
"cuda_gdb"
|
||||
"cuda_nvcc"
|
||||
"cuda_nvdisasm"
|
||||
"cuda_nvprune"
|
||||
"cuda_cccl"
|
||||
"cuda_cudart"
|
||||
"cuda_cupti"
|
||||
"cuda_cuxxfilt"
|
||||
"cuda_nvml_dev"
|
||||
"cuda_nvrtc"
|
||||
"cuda_nvtx"
|
||||
"cuda_profiler_api"
|
||||
"cuda_sanitizer_api"
|
||||
"libcublas"
|
||||
"libcufft"
|
||||
"libcurand"
|
||||
"libcusolver"
|
||||
"libnvjitlink"
|
||||
"libcusparse"
|
||||
"libnpp"
|
||||
];
|
||||
|
||||
inecure = [
|
||||
# "electron-25.9.0"
|
||||
];
|
||||
}
|
||||
13
flake-modules/colors.json
Normal file
@@ -0,0 +1,13 @@
|
||||
{
|
||||
"base": {
|
||||
"foreground": "#eedce2",
|
||||
"background": "#221016"
|
||||
},
|
||||
"to_alter": {
|
||||
"accent": "#ac5271",
|
||||
"secondary": "#f20c5b",
|
||||
"tertiary": "#d5a287",
|
||||
"special": "#51ac8d",
|
||||
"weird": "#0cf2a3"
|
||||
}
|
||||
}
|
||||
4
flake-modules/nvidia.nix
Normal file
@@ -0,0 +1,4 @@
|
||||
{
|
||||
enable = false;
|
||||
prime = false;
|
||||
}
|
||||
61
flake-modules/rice.nix
Normal file
@@ -0,0 +1,61 @@
|
||||
pkgs: rec {
|
||||
|
||||
lib = import ../nxlib/ricelib.nix pkgs.lib;
|
||||
|
||||
transparency = 0.9;
|
||||
rounding = 3;
|
||||
gap-size = 5;
|
||||
border-width = 2;
|
||||
color = let
|
||||
dark = (-0.5);
|
||||
bright = (0.5);
|
||||
alter-set = let f = lib.alter-luminace-hex; in color-name: color-value: { base = color-value; dark = f color-value dark; bright = f color-value bright; };
|
||||
alter = let f = lib.alter-luminace-hex; in color-value: { base = color-value; dark = f color-value dark; bright = f color-value bright; };
|
||||
# ccolor = builtins.mapAttrs alter-set (builtins.fromJSON (builtins.readFile ./colors.json));
|
||||
ccolor = builtins.mapAttrs alter-set {
|
||||
black = "#111111"; # "#111111" "#001100";
|
||||
white = "#dddddd"; # "#dddddd" "#66dd66";
|
||||
blue = "#4444dd"; # "#3333dd" "#003300";
|
||||
cyan = "#44dddd"; # "#11dddd" "#00dd55";
|
||||
green = "#44dd44"; # "#11dd11" "#11dd11";
|
||||
magenta = "#dd44dd"; # "#dd11dd" "#005500";
|
||||
red = "#dd4444"; # "#dd1111" "#00aa00";
|
||||
yellow = "#dddd44"; # "#dddd11" "#ffff00";
|
||||
};
|
||||
facolor = builtins.mapAttrs alter-set (builtins.fromJSON (builtins.readFile ./colors.json)).to_alter;
|
||||
fbcolor = (builtins.fromJSON (builtins.readFile ./colors.json)).base;
|
||||
fcolor = facolor // fbcolor;
|
||||
xcolor = with ccolor; with fcolor; {
|
||||
background = "#000000";
|
||||
# foreground = "#dddddd";
|
||||
# accent = blue;
|
||||
# secondary = cyan;
|
||||
# tertiary = magenta;
|
||||
# special = yellow;
|
||||
# weird = green;
|
||||
positive = alter "#00dd00";
|
||||
negative = alter "#dd0000";
|
||||
border = accent.base;
|
||||
border2 = secondary.base;
|
||||
};
|
||||
in ccolor // fcolor // xcolor;
|
||||
font = {
|
||||
code = {
|
||||
name = "JetBrainsMono Nerd Font";
|
||||
package = (pkgs.nerdfonts.override { fonts = [ "JetBrainsMono" ]; });
|
||||
# name = "CascadiaCove-NF";
|
||||
# package = (pkgs.nerdfonts.override { fonts = [ "CascadiaCode" ]; });
|
||||
};
|
||||
base = {
|
||||
# name = "NewComputerModern08";
|
||||
# package = pkgs.newcomputermodern;
|
||||
name = "Atkinson Hyperlegible";
|
||||
package = pkgs.atkinson-hyperlegible;
|
||||
};
|
||||
};
|
||||
cursor = {
|
||||
name = "Bibata-Original-Classic";
|
||||
package = pkgs.bibata-cursors;
|
||||
size = 24;
|
||||
};
|
||||
}
|
||||
723
flake.lock
generated
Executable file → Normal file
291
flake.nix
Executable file → Normal file
@@ -2,244 +2,71 @@
|
||||
description = "Multisystem NixOS Flake of Lennart J. Kurzweg";
|
||||
|
||||
inputs = {
|
||||
nixpkgs.url = "nixpkgs/nixos-24.05";
|
||||
nixpkgs-unstable.url = "nixpkgs/nixos-unstable";
|
||||
home-manager = {
|
||||
url = "github:nix-community/home-manager/release-24.05";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
sops-nix = {
|
||||
url = "github:Mic92/sops-nix";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
nixpkgs = { url = "nixpkgs/nixos-24.11"; };
|
||||
nixpkgs-unstable = { url = "nixpkgs/nixos-unstable"; };
|
||||
nixpkgs-latest = { url = "github:nixos/nixpkgs?ref=master"; };
|
||||
home-manager = { url = "github:nix-community/home-manager/release-24.11"; inputs.nixpkgs.follows = "nixpkgs"; };
|
||||
sops-nix = { url = "github:Mic92/sops-nix"; inputs.nixpkgs.follows = "nixpkgs"; };
|
||||
lanzaboote = { url = "github:nix-community/lanzaboote/v0.3.0"; };
|
||||
|
||||
hyprland = {
|
||||
url = "git+https://github.com/hyprwm/Hyprland?submodules=1";
|
||||
# url = "github:hyprwm/Hyprland";
|
||||
# inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
hyprland-plugins = {
|
||||
url = "github:hyprwm/hyprland-plugins";
|
||||
inputs.hyprland.follows = "hyprland";
|
||||
};
|
||||
Hyprspace = {
|
||||
url = "github:KZDKM/Hyprspace";
|
||||
inputs.hyprland.follows = "hyprland";
|
||||
};
|
||||
hyprswitch.url = "github:h3rmt/hyprswitch/release";
|
||||
hyprland = { url = "git+https://github.com/hyprwm/Hyprland?submodules=1"; };
|
||||
hyprland-plugins = { url = "github:hyprwm/hyprland-plugins"; inputs.hyprland.follows = "hyprland"; };
|
||||
Hyprspace = { url = "github:KZDKM/Hyprspace"; inputs.hyprland.follows = "hyprland"; };
|
||||
hyprswitch = { url = "github:h3rmt/hyprswitch/release"; };
|
||||
|
||||
lanzaboote = {
|
||||
url = "github:nix-community/lanzaboote/v0.3.0";
|
||||
# inputs.nixpkgs.follows = "nixpkgs-unstable";
|
||||
};
|
||||
#arion = {
|
||||
# url = "github:hercules-ci/arion";
|
||||
# inputs.nixpkgs.follows = "nixpkgs";
|
||||
#};
|
||||
firefox-addons = {
|
||||
url = "gitlab:rycee/nur-expressions?dir=pkgs/firefox-addons";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
# yazi.url = "github:sxyazi/yazi";
|
||||
yazi.url = "github:sxyazi/yazi";
|
||||
yazi-plugins = { url = "github:lordkekz/nix-yazi-plugins"; inputs.nixpkgs.follows = "nixpkgs"; };
|
||||
zen-browser.url = "github:MarceColl/zen-browser-flake";
|
||||
ghostty.url = "github:ghostty-org/ghostty";
|
||||
};
|
||||
|
||||
outputs = { self, nixpkgs, nixpkgs-unstable, home-manager, ... }@inputs:
|
||||
let
|
||||
system = "x86_64-linux";
|
||||
pkgs-config = {
|
||||
allowUnfree = true;
|
||||
# cudaSupport = nvidia.enable;
|
||||
# enableParallelBuildingByDefault = true;
|
||||
};
|
||||
pkgs = import nixpkgs {
|
||||
system = system;
|
||||
config = pkgs-config;
|
||||
};
|
||||
pkgs-unstable = import nixpkgs-unstable {
|
||||
system = system;
|
||||
config = pkgs-config;
|
||||
};
|
||||
outputs = { self, nixpkgs, nixpkgs-unstable, nixpkgs-latest, home-manager, ... }@inputs: let
|
||||
system = "x86_64-linux";
|
||||
user = "nx2";
|
||||
domain = "nx2.site";
|
||||
|
||||
user = "nx2";
|
||||
config = { allowUnfree = true; allowUnfreePredicate = pkg: builtins.elem (pkgs.lib.getName pkg) (import ./flake-modules/allowed.nix).unfree; };
|
||||
|
||||
pkgs = import nixpkgs { inherit system config; };
|
||||
pkgs-unstable = import nixpkgs-unstable { inherit system config; };
|
||||
pkgs-latest = import nixpkgs-latest { inherit system config; };
|
||||
|
||||
nvidia = {
|
||||
enable = true;
|
||||
prime = true;
|
||||
# unfree = if enable then [
|
||||
unfree = [
|
||||
"cuda_cccl"
|
||||
"cuda_cudart"
|
||||
"cuda_cuobjdump"
|
||||
"cuda_cupti"
|
||||
"cuda_cuxxfilt"
|
||||
"cuda_gdb"
|
||||
"cuda-merged"
|
||||
"cuda_nvcc"
|
||||
"cuda_nvdisasm"
|
||||
"cuda_nvml_dev"
|
||||
"cuda_nvprune"
|
||||
"cuda_nvrtc"
|
||||
"cuda_nvtx"
|
||||
"cuda_profiler_api"
|
||||
"cuda_sanitizer_api"
|
||||
"cudatoolkit"
|
||||
"libcublas"
|
||||
"libcufft"
|
||||
"libcurand"
|
||||
"libcusolver"
|
||||
"libcusparse"
|
||||
"libnpp"
|
||||
"libnvjitlink"
|
||||
"nviaia-x11"
|
||||
"nvidia-persistenced"
|
||||
"nvidia-settings"
|
||||
"nvidia-x11"
|
||||
];
|
||||
# ] else [];
|
||||
};
|
||||
allowed = {
|
||||
unfree-packages = [
|
||||
"discord"
|
||||
"obsidian"
|
||||
"spotify"
|
||||
"zoom"
|
||||
"zoom-us"
|
||||
] ++ nvidia.unfree;
|
||||
|
||||
inecure-packages = [
|
||||
"electron-25.9.0"
|
||||
];
|
||||
};
|
||||
|
||||
secrets = import ./git-crypt/secrets.nix;
|
||||
|
||||
rice = rec {
|
||||
lib = import ./nxlib/ricelib.nix { lib = nixpkgs.lib; };
|
||||
transparency = 0.8;
|
||||
rounding = 10;
|
||||
gap-size = 10;
|
||||
border-width = 3;
|
||||
color =
|
||||
let
|
||||
dark = (-0.5);
|
||||
bright = (0.5);
|
||||
alter-set = let f = rice.lib.alter-luminace-hex; in color-name: color-value: { base = color-value; dark = f color-value dark; bright = f color-value bright; };
|
||||
alter = let f = rice.lib.alter-luminace-hex; in color-value: { base = color-value; dark = f color-value dark; bright = f color-value bright; };
|
||||
ccolor = builtins.mapAttrs alter-set {
|
||||
black = "#000022"; # "#111111" "#001100";
|
||||
white = "#ddddff"; # "#dddddd" "#66dd66";
|
||||
blue = "#4422ff"; # "#3333dd" "#003300";
|
||||
cyan = "#11dddd"; # "#11dddd" "#00dd55";
|
||||
green = "#11dd44"; # "#11dd11" "#11dd11";
|
||||
magenta = "#6622dd"; # "#dd11dd" "#005500";
|
||||
red = "#dd1166"; # "#dd1111" "#00aa00";
|
||||
yellow = "#dd6611"; # "#dddd11" "#ffff00";
|
||||
};
|
||||
xcolor = with ccolor; rec {
|
||||
background = black.dark;
|
||||
foreground = white.base;
|
||||
border = cyan.base;
|
||||
border2 = blue.base;
|
||||
accent = blue;
|
||||
secondary = cyan;
|
||||
tertiary = magenta;
|
||||
special = yellow;
|
||||
weird = green;
|
||||
positive = alter "#00dd00";
|
||||
negative = alter "#dd0000";
|
||||
};
|
||||
# ccolor = builtins.mapAttrs alter-set {
|
||||
# black = "#112200";
|
||||
# white = "#ddffdd";
|
||||
# blue = "#779944";
|
||||
# cyan = "#11ffcc";
|
||||
# green = "#00ff00";
|
||||
# magenta = "#449999";
|
||||
# red = "#dd2200";
|
||||
# yellow = "#ffff11";
|
||||
# };
|
||||
# xcolor = with ccolor; rec {
|
||||
# background = black.dark; # black.dark;
|
||||
# foreground = white.base; # white.base;
|
||||
# border = accent.base; # cyan.base;
|
||||
# border2 = yellow.base; # blue.base;
|
||||
# accent = green; # blue;
|
||||
# secondary = red; # cyan;
|
||||
# tertiary = yellow; # magenta;
|
||||
# special = blue; # yellow;
|
||||
# weird = magenta; # green;
|
||||
# positive = alter "#00dd00"; # alter "#00dd00";
|
||||
# negative = alter "#dd0000"; # alter "#dd0000";
|
||||
# };
|
||||
in ccolor // xcolor;
|
||||
font = {
|
||||
code = {
|
||||
name = "JetBrainsMono-NF";
|
||||
name2 = "JetBrainsMono Nerd Font";
|
||||
package = (pkgs.nerdfonts.override { fonts = [ "JetBrainsMono" ]; });
|
||||
# name = "CascadiaCove-NF";
|
||||
# package = (pkgs.nerdfonts.override { fonts = [ "CascadiaCode" ]; });
|
||||
};
|
||||
base = {
|
||||
# name = "NewComputerModern08";
|
||||
# package = pkgs.newcomputermodern;
|
||||
name = "Atkinson Hyperlegible";
|
||||
package = pkgs.atkinson-hyperlegible;
|
||||
};
|
||||
};
|
||||
cursor = {
|
||||
name = "Bibata-Original-Classic";
|
||||
package = pkgs.bibata-cursors;
|
||||
size = 24;
|
||||
};
|
||||
};
|
||||
in
|
||||
{
|
||||
nixosConfigurations = {
|
||||
NxXPS = let host = "NxXPS"; in nixpkgs.lib.nixosSystem {
|
||||
inherit system;
|
||||
modules = [ ./configuration.nix ];
|
||||
specialArgs = { inherit inputs user host pkgs-unstable allowed secrets rice nvidia; };
|
||||
};
|
||||
NxNORTH = let host = "NxNORTH"; in nixpkgs.lib.nixosSystem {
|
||||
inherit system;
|
||||
modules = [ ./configuration.nix ];
|
||||
specialArgs = { inherit inputs user host pkgs-unstable allowed secrets rice nvidia; };
|
||||
};
|
||||
NxACE = let host = "NxACE"; nvidia.enable = false; in nixpkgs.lib.nixosSystem {
|
||||
inherit system;
|
||||
modules = [ ./configuration.nix ];
|
||||
specialArgs = { inherit inputs user host pkgs-unstable allowed secrets rice nvidia; };
|
||||
};
|
||||
};
|
||||
|
||||
homeConfigurations = {
|
||||
"${user}@NxXPS" = let host = "NxXPS"; in home-manager.lib.homeManagerConfiguration {
|
||||
inherit pkgs;
|
||||
modules = [ ./home.nix ];
|
||||
extraSpecialArgs = { inherit inputs system user host allowed secrets pkgs-unstable rice nvidia; };
|
||||
};
|
||||
"${user}@NxNORTH" = let host = "NxNORTH"; in home-manager.lib.homeManagerConfiguration {
|
||||
inherit pkgs;
|
||||
modules = [ ./home.nix ];
|
||||
extraSpecialArgs = { inherit inputs system user host allowed secrets pkgs-unstable rice nvidia; };
|
||||
};
|
||||
"${user}@NxACE" = let host = "NxACE"; nvidia.enable = false; in home-manager.lib.homeManagerConfiguration {
|
||||
inherit pkgs;
|
||||
modules = [ ./home.nix ];
|
||||
extraSpecialArgs = { inherit inputs system user host allowed secrets pkgs-unstable rice nvidia; };
|
||||
};
|
||||
"tv@NxACE" =
|
||||
let
|
||||
host = "NxACE";
|
||||
user = "tv";
|
||||
nvidia.enable = pkgs.kib.mkForce false;
|
||||
in
|
||||
home-manager.lib.homeManagerConfiguration {
|
||||
inherit pkgs;
|
||||
modules = [ ./home.nix ];
|
||||
extraSpecialArgs = { inherit inputs system user host allowed secrets pkgs-unstable rice nvidia; };
|
||||
};
|
||||
nvidia-set = import ./flake-modules/nvidia.nix;
|
||||
secrets = import ./git-crypt/secrets.nix;
|
||||
rice = import ./flake-modules/rice.nix pkgs;
|
||||
in {
|
||||
nixosConfigurations = let
|
||||
make-nixos-system = host: nixpkgs.lib.nixosSystem {
|
||||
inherit system;
|
||||
modules = [ ./configuration.nix ];
|
||||
specialArgs = let
|
||||
nvidia = nvidia-set // {
|
||||
enable = if (host == "NxXPS" || host == "NxNORTH") then true else false;
|
||||
prime = if (host == "NxXPS") then true else false;
|
||||
};
|
||||
in { inherit inputs user host domain pkgs-unstable pkgs-latest secrets rice nvidia; };
|
||||
};
|
||||
in {
|
||||
NxXPS = make-nixos-system "NxXPS";
|
||||
NxNORTH = make-nixos-system "NxNORTH";
|
||||
NxACE = make-nixos-system "NxACE";
|
||||
};
|
||||
|
||||
homeConfigurations = let
|
||||
make-home-configuration = host: user: home-manager.lib.homeManagerConfiguration {
|
||||
inherit pkgs;
|
||||
modules = [ ./home.nix ];
|
||||
extraSpecialArgs = let
|
||||
nvidia = nvidia-set // {
|
||||
enable = if (host == "NxXPS" || host == "NxNORTH") then true else false;
|
||||
prime = if (host == "NxXPS") then true else false;
|
||||
};
|
||||
in { inherit inputs system user host domain pkgs-unstable pkgs-latest rice secrets nvidia; };
|
||||
};
|
||||
in {
|
||||
"${user}@NxXPS" = make-home-configuration "NxXPS" user;
|
||||
"${user}@NxNORTH" = make-home-configuration "NxNORTH" user;
|
||||
"${user}@NxACE" = make-home-configuration "NxACE" user;
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
@@ -1,92 +0,0 @@
|
||||
# vim:set ft=gtkrc ts=2 sw=2 sts=2 ai et:
|
||||
#
|
||||
# This file, unlike hacks.rc, contains legitimate cases we need to handle, e.g.
|
||||
# custom widgets, programs giving us a chance to alter their UI to fit more with
|
||||
# the theme or stuff that is supposed to look different, like panels.
|
||||
|
||||
# TODO: This could really look nicer
|
||||
style "gimp_spin_scale" {
|
||||
# Spin background
|
||||
bg[NORMAL] = @base_color
|
||||
|
||||
engine "pixmap" {
|
||||
image {
|
||||
function = BOX
|
||||
state = NORMAL
|
||||
detail = "spinbutton_up"
|
||||
overlay_file = "assets/pan-up-alt.png"
|
||||
overlay_stretch = FALSE
|
||||
}
|
||||
|
||||
image {
|
||||
function = BOX
|
||||
state = PRELIGHT
|
||||
detail = "spinbutton_up"
|
||||
overlay_file = "assets/pan-up.png"
|
||||
overlay_stretch = FALSE
|
||||
}
|
||||
|
||||
image {
|
||||
function = BOX
|
||||
state = ACTIVE
|
||||
detail = "spinbutton_up"
|
||||
overlay_file = "assets/pan-up.png"
|
||||
overlay_stretch = FALSE
|
||||
}
|
||||
|
||||
image {
|
||||
function = BOX
|
||||
state = INSENSITIVE
|
||||
detail = "spinbutton_up"
|
||||
overlay_file = "assets/pan-up-alt-disabled.png"
|
||||
overlay_stretch = FALSE
|
||||
}
|
||||
|
||||
image {
|
||||
function = BOX
|
||||
state = NORMAL
|
||||
detail = "spinbutton_down"
|
||||
overlay_file = "assets/pan-down-alt.png"
|
||||
overlay_stretch = FALSE
|
||||
}
|
||||
|
||||
image {
|
||||
function = BOX
|
||||
state = PRELIGHT
|
||||
detail = "spinbutton_down"
|
||||
overlay_file = "assets/pan-down.png"
|
||||
overlay_stretch = FALSE
|
||||
}
|
||||
|
||||
image {
|
||||
function = BOX
|
||||
state = ACTIVE
|
||||
detail = "spinbutton_down"
|
||||
overlay_file = "assets/pan-down.png"
|
||||
overlay_stretch = FALSE
|
||||
}
|
||||
|
||||
image {
|
||||
function = BOX
|
||||
state = INSENSITIVE
|
||||
detail = "spinbutton_down"
|
||||
overlay_file = "assets/pan-down-alt-disabled.png"
|
||||
overlay_stretch = FALSE
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
style "chrome_gtk_frame" {
|
||||
ChromeGtkFrame::frame-color = @titlebar_bg_color
|
||||
ChromeGtkFrame::inactive-frame-color = @titlebar_bg_color
|
||||
ChromeGtkFrame::incognito-frame-color = @titlebar_bg_color
|
||||
ChromeGtkFrame::incognito-inactive-frame-color = @titlebar_bg_color
|
||||
|
||||
ChromeGtkFrame::frame-gradient-size = 0
|
||||
}
|
||||
|
||||
# Disable spin button assets for GimpSpinScale
|
||||
class "GimpSpinScale" style "gimp_spin_scale"
|
||||
|
||||
# Chromium lets us define some colours and settings for better integration
|
||||
class "ChromeGtkFrame" style "chrome_gtk_frame"
|
||||
|
Before Width: | Height: | Size: 126 B |
|
Before Width: | Height: | Size: 267 B |
|
Before Width: | Height: | Size: 229 B |
|
Before Width: | Height: | Size: 252 B |
|
Before Width: | Height: | Size: 239 B |
|
Before Width: | Height: | Size: 522 B |
|
Before Width: | Height: | Size: 495 B |
|
Before Width: | Height: | Size: 522 B |
|
Before Width: | Height: | Size: 512 B |
|
Before Width: | Height: | Size: 445 B |
|
Before Width: | Height: | Size: 407 B |
|
Before Width: | Height: | Size: 445 B |
|
Before Width: | Height: | Size: 439 B |
|
Before Width: | Height: | Size: 298 B |
|
Before Width: | Height: | Size: 267 B |
|
Before Width: | Height: | Size: 291 B |
|
Before Width: | Height: | Size: 292 B |
|
Before Width: | Height: | Size: 322 B |
|
Before Width: | Height: | Size: 209 B |
|
Before Width: | Height: | Size: 282 B |
|
Before Width: | Height: | Size: 216 B |
|
Before Width: | Height: | Size: 333 B |
|
Before Width: | Height: | Size: 207 B |
|
Before Width: | Height: | Size: 292 B |
|
Before Width: | Height: | Size: 217 B |
|
Before Width: | Height: | Size: 416 B |
|
Before Width: | Height: | Size: 136 B |
|
Before Width: | Height: | Size: 136 B |
|
Before Width: | Height: | Size: 229 B |
|
Before Width: | Height: | Size: 347 B |
|
Before Width: | Height: | Size: 239 B |
|
Before Width: | Height: | Size: 267 B |
|
Before Width: | Height: | Size: 195 B |
|
Before Width: | Height: | Size: 252 B |
|
Before Width: | Height: | Size: 195 B |
|
Before Width: | Height: | Size: 221 B |
|
Before Width: | Height: | Size: 143 B |
|
Before Width: | Height: | Size: 147 B |
|
Before Width: | Height: | Size: 147 B |
|
Before Width: | Height: | Size: 170 B |
|
Before Width: | Height: | Size: 183 B |
|
Before Width: | Height: | Size: 178 B |
|
Before Width: | Height: | Size: 166 B |
|
Before Width: | Height: | Size: 173 B |
|
Before Width: | Height: | Size: 172 B |
|
Before Width: | Height: | Size: 432 B |
|
Before Width: | Height: | Size: 461 B |
|
Before Width: | Height: | Size: 338 B |
|
Before Width: | Height: | Size: 363 B |
|
Before Width: | Height: | Size: 232 B |
|
Before Width: | Height: | Size: 255 B |
|
Before Width: | Height: | Size: 365 B |
|
Before Width: | Height: | Size: 398 B |
|
Before Width: | Height: | Size: 338 B |
|
Before Width: | Height: | Size: 363 B |
|
Before Width: | Height: | Size: 232 B |
|
Before Width: | Height: | Size: 255 B |
|
Before Width: | Height: | Size: 182 B |
|
Before Width: | Height: | Size: 190 B |
|
Before Width: | Height: | Size: 181 B |
|
Before Width: | Height: | Size: 165 B |
|
Before Width: | Height: | Size: 185 B |
|
Before Width: | Height: | Size: 194 B |
|
Before Width: | Height: | Size: 185 B |
|
Before Width: | Height: | Size: 190 B |
|
Before Width: | Height: | Size: 180 B |
|
Before Width: | Height: | Size: 187 B |
|
Before Width: | Height: | Size: 189 B |
|
Before Width: | Height: | Size: 187 B |
|
Before Width: | Height: | Size: 192 B |
|
Before Width: | Height: | Size: 181 B |
|
Before Width: | Height: | Size: 182 B |
|
Before Width: | Height: | Size: 182 B |
|
Before Width: | Height: | Size: 182 B |
|
Before Width: | Height: | Size: 161 B |
|
Before Width: | Height: | Size: 136 B |
|
Before Width: | Height: | Size: 136 B |
|
Before Width: | Height: | Size: 478 B |
|
Before Width: | Height: | Size: 437 B |
|
Before Width: | Height: | Size: 478 B |
|
Before Width: | Height: | Size: 473 B |
|
Before Width: | Height: | Size: 445 B |
|
Before Width: | Height: | Size: 407 B |
|
Before Width: | Height: | Size: 445 B |
|
Before Width: | Height: | Size: 439 B |
|
Before Width: | Height: | Size: 298 B |
|
Before Width: | Height: | Size: 267 B |
|
Before Width: | Height: | Size: 291 B |
|
Before Width: | Height: | Size: 292 B |