Compare commits

...

36 Commits

Author SHA1 Message Date
doloro d8f593c9f0 nix flake update 2026-06-09 22:53:37 +01:00
doloro 2359a79c14 meow 2026-06-09 22:27:33 +01:00
doloro 5ba041b778 a bunch of commits i think 2026-06-07 18:45:11 +01:00
doloro d7eec2970b unity fixes 2026-06-04 12:14:38 +01:00
doloro cf18e8c975 nix flake update nikpkgs 2026-05-30 13:25:29 +01:00
doloro 0842e518cc add: unity 2026-05-30 13:23:07 +01:00
doloro 6de7c0ca67 fixed nik-pkgs & added deadlock mod manager 2026-05-29 15:20:51 +01:00
doloro acb6fb1677 fixes 2026-05-28 13:26:03 +01:00
doloro e45cc182ee nix flake update 2026-05-27 11:38:50 +01:00
doloro 86feb4e601 stuff 2026-05-27 10:59:28 +01:00
doloro ff1629ad1f fixes and cleaning 2026-05-26 13:48:21 +01:00
doloro b93c1ad6aa meow 2026-05-25 23:34:30 +01:00
doloro a9e3deea08 added: rpi binary cache 2026-05-25 20:59:33 +01:00
doloro e1b14b3e07 find file 2026-05-25 15:18:43 +01:00
doloro 2a8f29f35f meow 2026-05-25 15:17:56 +01:00
doloro b92586122e uid fix 2026-05-25 15:12:20 +01:00
doloro e72f3c8dd9 wrong place 2026-05-25 15:01:42 +01:00
doloro 3b0d0e45e3 added more modules to wsl 2026-05-25 14:58:31 +01:00
doloro ffdf1c7e69 default user 2026-05-25 14:50:52 +01:00
doloro 02c8529c83 wsl errors fixed 2026-05-25 14:44:52 +01:00
doloro d486fa170b wsl changes 2026-05-25 14:34:06 +01:00
doloro 7d3a5ba4fa wsl init 2026-05-22 15:00:59 +01:00
doloro 6c609e2fa6 fix build 2026-05-21 17:51:10 +01:00
doloro 140f47649c commit 2026-05-21 15:55:43 +01:00
doloro 212af403dc replaces rpi flake with a maintained one 2026-05-20 16:01:36 +01:00
doloro 1e8337e380 server: added docker reg 2026-05-20 11:54:03 +01:00
doloro 6b8e08fb7a meow 2026-05-19 21:33:08 +01:00
doloro 1977e912ee fix: hyprland breaking 2026-05-15 13:38:03 +01:00
doloro d53bba8961 qol: omp disabled for now 2026-05-15 13:19:08 +01:00
doloro 93ef68a998 nix flake update 2026-05-15 13:14:21 +01:00
doloro 74cadc4f69 nvim is cool now 2026-05-15 12:55:55 +01:00
doloro 5e83cc9863 changes to nvim, added podman to user 2026-05-15 11:47:23 +01:00
doloro 0545039d39 add: claude code 2026-05-12 14:00:47 +01:00
doloro 15c48c0ed3 nix flake update 2026-05-09 00:59:27 +01:00
doloro 49624c8bd1 commit 2026-05-09 00:30:24 +01:00
doloro 9b9a34f708 kernal pera changes 2026-04-30 11:36:28 +01:00
37 changed files with 1758 additions and 1108 deletions
+64 -41
View File
@@ -4,8 +4,7 @@
modules, modules,
inputs, inputs,
... ...
}: }: {
{
den.aspects.doloro-desktop = { den.aspects.doloro-desktop = {
includes = [ includes = [
<den/primary-user> <den/primary-user>
@@ -15,7 +14,9 @@
modules.fish modules.fish
modules.tuigreet modules.tuigreet
modules.kitty modules.kitty
modules.nikpkgs
modules.fonts modules.fonts
modules.unity
<modules/hyprland/doloro-settings> <modules/hyprland/doloro-settings>
(modules.obs { (modules.obs {
audio = true; audio = true;
@@ -31,51 +32,73 @@
modules.quickshell modules.quickshell
modules.nix-ld modules.nix-ld
modules.spotify modules.spotify
modules.easyeffects # modules.easyeffects
modules.lavd modules.lavd
modules.ai modules.ai
modules.omp
modules.podman
<modules/ai/ollama-cuda> <modules/ai/ollama-cuda>
]; ];
nixos = nixos = {
{ config, pkgs, ... }: config,
{ pkgs,
users.users.doloro = { ...
shell = pkgs.fish; }: {
hashedPasswordFile = config.sops.secrets."doloro-hashed_password".path; users.users.doloro = {
}; shell = pkgs.fish;
hashedPasswordFile = config.sops.secrets."doloro-hashed_password".path;
extraGroups = ["libvirtd"];
}; };
homeManager = virtualisation.libvirtd.enable = true;
{ home, pkgs, ... }: programs.virt-manager.enable = true;
{ };
wayland.windowManager.hyprland.settings = { homeManager = {
monitor = [ home,
"HDMI-A-1, 1920x1080@60, 0x0, 1" pkgs,
"DP-3, 1920x1080@144, 1920x0, 1" ...
]; }: {
exec-once = [ wayland.windowManager.hyprland.settings = {
"hyprctl dispatch workspace 2" # shit solution to get quickshell on the right monitor monitor = [
]; "HDMI-A-1, 1920x1080@60, 0x0, 1"
workspace = [ "DP-2, 1920x1080@120, 1920x0, 1"
"name:2, monitor:DP-3"
];
input = {
kb_layout = "gb";
follow_mouse = 2;
sensitivity = -0.5;
};
};
home.packages = with pkgs; [
equibop
telegram-desktop
obsidian
# pear-desktop
prismlauncher
deadlock-mod-manager
gamescope
android-studio
]; ];
nixpkgs.config.allowUnfree = true; exec-once = [
programs.home-manager.enable = true; "hyprctl dispatch workspace 2" # shit solution to get quickshell on the right monitor
];
workspace = [
"name:2, monitor:DP-3"
];
input = {
kb_layout = "gb";
follow_mouse = 2;
sensitivity = -0.5;
};
}; };
home.packages = with pkgs; [
equibop
telegram-desktop
obsidian
# pear-desktop
prismlauncher
# deadlock-mod-manager
inputs.nik-pkgs.packages.x86_64-linux.grimorie
gamescope
android-studio
blender
bottles
];
programs.lutris.enable = true;
nixpkgs.overlays = [
# Skipping tests while upstream sorts it out, revert once
# Hydra consistently builds openldap green.
(final: prev: {
openldap = prev.openldap.overrideAttrs (_: {
doCheck = false;
});
})
];
nixpkgs.config.allowUnfree = true;
programs.home-manager.enable = true;
};
}; };
} }
+79 -77
View File
@@ -6,93 +6,95 @@
__findFile, __findFile,
lib, lib,
... ...
}: }: {
{
den.aspects.desktop = { den.aspects.desktop = {
includes = [ includes = [
modules.nix modules.nix
]; ];
nixos = nixos = {
{ pkgs, config, ... }: pkgs,
{ config,
boot.loader.grub.enable = true; ...
boot.loader.grub.device = "nodev"; }: {
boot.loader.grub.devices = [ boot.loader.grub.enable = true;
"/dev/disk/by-id/nvme-CT1000P2SSD8_2221E632CD1F" boot.loader.grub.device = "nodev";
"nodev" boot.loader.grub.devices = [
]; "/dev/disk/by-id/nvme-CT1000P2SSD8_2221E632CD1F"
#boot.loader.efi.canTouchEfiVariables = true; "nodev"
boot.loader.grub.efiSupport = true; ];
boot.loader.grub.efiInstallAsRemovable = true; #boot.loader.efi.canTouchEfiVariables = true;
networking.hostName = "doloroo-main"; # Define your hostname. boot.loader.grub.efiSupport = true;
boot.loader.grub.efiInstallAsRemovable = true;
networking.hostName = "doloroo-main"; # Define your hostname.
boot.kernelPackages = pkgs.linuxPackages_latest; boot.kernelPackages = pkgs.linuxPackages_latest;
boot.initrd.verbose = false; boot.initrd.verbose = false;
boot.kernelParams = [ boot.kernelParams = [
"boot.shell_on_fail" "boot.shell_on_fail"
"rd.systemd.show_status=auto" "rd.systemd.show_status=auto"
]; ];
services.openssh.enable = true; services.openssh.enable = true;
networking.networkmanager.enable = true; networking.networkmanager.enable = true;
networking.firewall.enable = false; networking.firewall.enable = false;
security.rtkit.enable = true; security.rtkit.enable = true;
hardware.graphics = {
enable = true;
};
services.xserver.videoDrivers = [ "nvidia" ];
fileSystems."/mnt/2tb" = {
device = "/dev/disk/by-uuid/0f49aec7-4af2-4f4f-b475-3f4fad2b59c2";
fsType = "ext4";
options = [
# If you don't have this options attribute, it'll default to "defaults"
# boot options for fstab. Search up fstab mount options you can use
"defaults"
"users" # Allows any user to mount and unmount
"nofail" # Prevent system from failing if this drive doesn't mount
"exec"
];
};
services.gnome.gnome-keyring.enable = true;
hardware.nvidia = {
# Modesetting is required.
modesetting.enable = true;
# Nvidia power management. Experimental, and can cause sleep/suspend to fail.
# Enable this if you have graphical corruption issues or application crashes after waking
# up from sleep. This fixes it by saving the entire VRAM memory to /tmp/ instead
# of just the bare essentials.
powerManagement.enable = true;
# Fine-grained power management. Turns off GPU when not in use.
# Experimental and only works on modern Nvidia GPUs (Turing or newer).
powerManagement.finegrained = false;
# prime.offload.enable = true;
# Use the NVidia open source kernel module (not to be confused with the
# independent third-party "nouveau" open source driver).
# Support is limited to the Turing and later architectures. Full list of
# supported GPUs is at:
# https://github.com/NVIDIA/open-gpu-kernel-modules#compatible-gpus
# Only available from driver 515.43.04+
open = true;
# Enable the Nvidia settings menu,
# accessible via `nvidia-settings`.
nvidiaSettings = true;
# Optionally, you may need to select the appropriate driver version for your specific GPU.
package = config.boot.kernelPackages.nvidiaPackages.stable;
};
hardware.graphics = {
enable = true;
}; };
services.xserver.videoDrivers = ["nvidia"];
fileSystems."/mnt/2tb" = {
device = "/dev/disk/by-uuid/0f49aec7-4af2-4f4f-b475-3f4fad2b59c2";
fsType = "ext4";
options = [
# If you don't have this options attribute, it'll default to "defaults"
# boot options for fstab. Search up fstab mount options you can use
"defaults"
"users" # Allows any user to mount and unmount
"nofail" # Prevent system from failing if this drive doesn't mount
"exec"
];
};
services.gnome.gnome-keyring.enable = true;
hardware.nvidia = {
# Modesetting is required.
modesetting.enable = true;
# Nvidia power management. Experimental, and can cause sleep/suspend to fail.
# Enable this if you have graphical corruption issues or application crashes after waking
# up from sleep. This fixes it by saving the entire VRAM memory to /tmp/ instead
# of just the bare essentials.
powerManagement.enable = false;
# Fine-grained power management. Turns off GPU when not in use.
# Experimental and only works on modern Nvidia GPUs (Turing or newer).
powerManagement.finegrained = false;
# prime.offload.enable = true;
# Use the NVidia open source kernel module (not to be confused with the
# independent third-party "nouveau" open source driver).
# Support is limited to the Turing and later architectures. Full list of
# supported GPUs is at:
# https://github.com/NVIDIA/open-gpu-kernel-modules#compatible-gpus
# Only available from driver 515.43.04+
open = false;
# Enable the Nvidia settings menu,
# accessible via `nvidia-settings`.
nvidiaSettings = true;
# Optionally, you may need to select the appropriate driver version for your specific GPU.
package = config.boot.kernelPackages.nvidiaPackages.stable;
};
boot.binfmt.emulatedSystems = [
"aarch64-linux"
];
};
}; };
} }
@@ -21,6 +21,7 @@
modules.stylix modules.stylix
modules.quickshell modules.quickshell
modules.lavd modules.lavd
modules.omp
# modules.podman # modules.podman
# modules.openvivo # modules.openvivo
]; ];
+3 -3
View File
@@ -171,12 +171,12 @@
# "mem_sleep_default=deep" # "mem_sleep_default=deep"
# "i915.fastboot=1" # "i915.fastboot=1"
# "i915.modeset=1" # "i915.modeset=1"
# "ahci.mobile_lpm_policy=1" "ahci.mobile_lpm_policy=1"
# "intel_idle.max_cstate=10" # "intel_idle.max_cstate=10"
"processor.max_cstate=10" "processor.max_cstate=10"
"pci=noaer" "pci=noaer"
# "quiet" "quiet"
# "splash" "splash"
# "idle=halt" # "idle=halt"
]; ];
boot.binfmt.emulatedSystems = [ boot.binfmt.emulatedSystems = [
+19 -19
View File
@@ -3,8 +3,7 @@
modules, modules,
__findFile, __findFile,
... ...
}: }: {
{
den.aspects.doloro-shared = { den.aspects.doloro-shared = {
includes = [ includes = [
modules.nixvim modules.nixvim
@@ -14,23 +13,24 @@
modules.hyfetch modules.hyfetch
modules.ssh modules.ssh
]; ];
homeManager = homeManager = {
{ pkgs, lib, ... }: pkgs,
{ lib,
home = { ...
username = "doloro"; }: {
homeDirectory = "/home/doloro"; home = {
packages = with pkgs; [ username = "doloro";
wl-clipboard homeDirectory = "/home/doloro";
# home-manager packages = with pkgs; [
btop wl-clipboard
]; # home-manager
}; btop
programs.home-manager.enable = true; pavucontrol
}; ];
nixos =
{ lib, ... }:
{
}; };
programs.home-manager.enable = true;
};
nixos = {lib, ...}: {
};
}; };
} }
+34
View File
@@ -0,0 +1,34 @@
{
den,
modules,
__findFile,
...
}: {
den.aspects.doloro-wsl = {
includes = [
<den/primary-user>
den.aspects.doloro-shared
modules.fish
modules.tmux
modules.nix
modules.omp
modules.hyfetch
modules.git
];
nixos = {
config,
pkgs,
...
}: {
users.users.doloro = {
isNormalUser = true;
shell = pkgs.fish;
uid = 1000;
# hashedPasswordFile = config.sops.secrets."doloro-hashed_password".path;
};
};
homeManager = {...}: {
};
};
}
+22
View File
@@ -0,0 +1,22 @@
{
den,
modules,
...
}: {
flake-file.inputs = {
};
den.aspects.wsl = {
includes = [
modules.wsl
modules.tmux
modules.nix
modules.omp
modules.hyfetch
modules.git
];
nixos = {lib, ...}: {
wsl.enable = true;
wsl.defaultUser = "doloro";
};
};
}
+7 -3
View File
@@ -3,14 +3,14 @@
__findFile, __findFile,
modules, modules,
... ...
}: }: {
{
den.aspects.rpi5 = { den.aspects.rpi5 = {
includes = [ includes = [
<modules/raspberry-pi/5> <modules/raspberry-pi/5>
# <modules/services/traefik> # <modules/services/traefik>
<modules/services/caddy> <modules/services/caddy>
<modules/services/home-assistant> <modules/services/home-assistant>
<modules/services/docker-registry>
<modules/services/ddns> <modules/services/ddns>
]; ];
nixos = { nixos = {
@@ -23,7 +23,7 @@
443 443
8080 8080
]; ];
allowedUDPPortRanges = [ ]; allowedUDPPortRanges = [];
}; };
virtualisation.docker.enable = true; virtualisation.docker.enable = true;
@@ -31,6 +31,10 @@
services.openssh.enable = true; services.openssh.enable = true;
nixpkgs.hostPlatform = "aarch64-linux"; nixpkgs.hostPlatform = "aarch64-linux";
nix.gc = {
automatic = true;
};
}; };
}; };
} }
+11 -4
View File
@@ -3,8 +3,7 @@
__findFile, __findFile,
lib, lib,
... ...
}: }: {
{
# Homes # Homes
den.homes.x86_64-linux.doloro-desktop = { den.homes.x86_64-linux.doloro-desktop = {
aspect = "doloro-desktop"; aspect = "doloro-desktop";
@@ -14,6 +13,9 @@
den.homes.aarch64-linux.doloro-laptop = { den.homes.aarch64-linux.doloro-laptop = {
userName = "doloro"; userName = "doloro";
}; };
den.homes.aarch64-linux.doloro-wsl = {
userName = "doloro";
};
# Machines # Machines
den.hosts.x86_64-linux.desktop = { den.hosts.x86_64-linux.desktop = {
users.doloro = { users.doloro = {
@@ -28,13 +30,18 @@
home-manager.enable = true; home-manager.enable = true;
}; };
}; };
den.hosts.aarch64-linux.wsl = {
users.doloro = {
aspect = "doloro-wsl";
home-manager.enable = true;
};
};
den.schema.user.classes = lib.mkDefault [ "homeManager" ]; den.schema.user.classes = lib.mkDefault ["homeManager"];
# Fixes 'The option `flake.homeConfigurations' is defined multiple times while it's expected to be unique.' # Fixes 'The option `flake.homeConfigurations' is defined multiple times while it's expected to be unique.'
flake.options.homeConfigurations = lib.mkOption { flake.options.homeConfigurations = lib.mkOption {
type = lib.types.attrs; type = lib.types.attrs;
description = "Home Manager configurations for users."; description = "Home Manager configurations for users.";
}; };
} }
+4 -1
View File
@@ -13,7 +13,10 @@
homeManager = homeManager =
{ pkgs, ... }: { pkgs, ... }:
{ {
home.packages = [ pkgs.opencode ]; home.packages = [
pkgs.opencode
pkgs.claude-code
];
}; };
}; };
} }
+14
View File
@@ -0,0 +1,14 @@
{
modules,
den,
inputs,
...
}: {
flake-file.inputs = {
omp-nix.url = "git+https://git.molez.org/mandlm/omp-nix?ref=main";
};
modules.omp = {
homeManager = {
};
};
}
+1 -2
View File
@@ -1,5 +1,4 @@
{ modules, ... }: {modules, ...}: {
{
modules.dunst = { modules.dunst = {
homeManager = { homeManager = {
services.dunst = { services.dunst = {
+32 -5
View File
@@ -1,5 +1,12 @@
{ modules, ... }:
{ {
modules,
inputs,
...
}:
{
flake-file.inputs = {
direnv-instant.url = "github:Mic92/direnv-instant";
};
modules.fish = { modules.fish = {
nixos = { nixos = {
programs.fish.enable = true; programs.fish.enable = true;
@@ -7,8 +14,13 @@
homeManager = homeManager =
{ pkgs, ... }: { pkgs, ... }:
{ {
imports = [ inputs.direnv-instant.homeModules.direnv-instant ];
programs.direnv-instant.enable = true;
home.shell.enableFishIntegration = true; home.shell.enableFishIntegration = true;
home.packages = [ pkgs.nix-output-monitor ]; home.packages = [
pkgs.nix-output-monitor
# pkgs.devenv
];
programs = { programs = {
fish = { fish = {
enable = true; enable = true;
@@ -18,9 +30,24 @@
set -g theme_display_user yes set -g theme_display_user yes
set -g fish_color_autosuggestion 6F6578 set -g fish_color_autosuggestion 6F6578
alias nik 'nix' alias nik 'nix'
if not set -q TMUX
set -gx COLORTERM truecolor
end
'';
interactiveShellInit = ''
# direnv-instant registers its hook on both fish_prompt and PWD,
# causing double execution on every cd. Re-register on PWD only.
functions --erase _direnv_hook
function _direnv_hook --on-variable PWD
set -gx DIRENV_INSTANT_SHELL fish
set -gx DIRENV_INSTANT_SHELL_PID $fish_pid
if test "$DIRENV_INSTANT_USE_CACHE" != 0 -a -n "$__DIRENV_INSTANT_ENV_FILE" -a -f "$__DIRENV_INSTANT_ENV_FILE"
source "$__DIRENV_INSTANT_ENV_FILE"
end
direnv-instant start | source
end
''; '';
# alias nos 'sudo echo; sudo nixos-rebuild switch --flake .#${aspect-name} --log-format internal-json -v &| nom --json'
# alias hms 'home-manager switch --flake .#${aspect-name} --log-format internal-json -v &| nom --json'
plugins = [ plugins = [
{ {
name = "bobthefish"; name = "bobthefish";
@@ -42,7 +69,7 @@
}; };
direnv = { direnv = {
enable = true; enable = true;
nix-direnv.enable = true; enableFishIntegration = false;
}; };
}; };
}; };
+5 -5
View File
@@ -11,14 +11,14 @@
localNetworkGameTransfers.openFirewall = true; localNetworkGameTransfers.openFirewall = true;
# Ensure gamescope is inside the steam "fhs" # Ensure gamescope is inside the steam "fhs"
package = pkgs.steam.override { package = pkgs.steam.override {
extraLibraries = pkgs: [ pkgs.xorg.libxcb ]; extraLibraries = pkgs: [ pkgs.libxcb ];
extraPkgs = extraPkgs =
pkgs: with pkgs; [ pkgs: with pkgs; [
attr attr
xorg.libXcursor libxcursor
xorg.libXi libxi
xorg.libXinerama libxinerama
xorg.libXScrnSaver libxscrnsaver
libpng libpng
libpulseaudio libpulseaudio
libvorbis libvorbis
+148 -147
View File
@@ -1,143 +1,144 @@
{ modules, ... }: {modules, ...}: {
{
modules.hyprland = { modules.hyprland = {
provides = { provides = {
doloro-settings = { doloro-settings = {
includes = [ includes = [
modules.dunst modules.dunst
]; ];
homeManager = homeManager = {
{ pkgs, home, ... }: pkgs,
{ home,
home.packages = [ ...
pkgs.hyprcursor }: {
pkgs.wlogout home.packages = [
pkgs.tofi pkgs.hyprcursor
pkgs.killall pkgs.wlogout
pkgs.grim pkgs.tofi
pkgs.slurp pkgs.killall
pkgs.wayclip pkgs.grim
pkgs.slurp
pkgs.wayclip
];
home.pointerCursor = {
enable = true;
name = "rose-pine-hyprcursor";
package = pkgs.rose-pine-hyprcursor;
hyprcursor.enable = true;
};
wayland.windowManager.hyprland.settings = {
env = [
"XCURSOR_THEME,BreezeX-RosePine-Linux"
"XCURSOR_SIZE,24"
"HYPRCURSOR_SIZE,24"
"__GLX_VENDOR_LIBRARY_NAME,nvidia"
"WEBKIT_DISABLE_DMABUF_RENDERER,1" # maybe disable if nixos fixes alcom
]; ];
home.pointerCursor = { general = {
enable = true; gaps_in = 1;
name = "rose-pine-hyprcursor"; gaps_out = 1;
package = pkgs.rose-pine-hyprcursor; border_size = 1;
hyprcursor.enable = true; # "col.active_border" =
# "rgb(${toString base16.rgb."base06".r},${toString base16.rgb."base06".g},${toString base16.rgb."base06".b})";
# "col.inactive_border" =
# "rgb(${toString base16.rgb."base03".r},${toString base16.rgb."base03".g},${toString base16.rgb."base03".b})";
resize_on_border = false;
allow_tearing = true;
layout = "dwindle";
}; };
wayland.windowManager.hyprland.settings = { decoration = {
env = [ rounding = 4;
"XCURSOR_THEME,BreezeX-RosePine-Linux" rounding_power = 1;
"XCURSOR_SIZE,24" active_opacity = 1.0;
"HYPRCURSOR_SIZE,24" inactive_opacity = 1.0;
"__GLX_VENDOR_LIBRARY_NAME,nvidia"
"WEBKIT_DISABLE_DMABUF_RENDERER,1" # maybe disable if nixos fixes alcom
];
general = {
gaps_in = 1;
gaps_out = 1;
border_size = 1;
# "col.active_border" =
# "rgb(${toString base16.rgb."base06".r},${toString base16.rgb."base06".g},${toString base16.rgb."base06".b})";
# "col.inactive_border" =
# "rgb(${toString base16.rgb."base03".r},${toString base16.rgb."base03".g},${toString base16.rgb."base03".b})";
resize_on_border = false;
allow_tearing = true;
layout = "dwindle";
};
decoration = {
rounding = 4;
rounding_power = 1;
active_opacity = 1.0;
inactive_opacity = 1.0;
shadow = { shadow = {
enabled = false; enabled = false;
}; };
blur = { blur = {
enabled = true;
passes = 1;
new_optimizations = true;
ignore_opacity = false;
};
};
cursor = {
no_hardware_cursors = true;
};
animations = {
enabled = true; enabled = true;
bezier = [ passes = 1;
"easeOutQuint,0.23,1,0.32,1" new_optimizations = true;
"easeInOutCubic,0.65,0.05,0.36,1" ignore_opacity = false;
"linear,0,0,1,1"
"almostLinear,0.5,0.5,0.75,1.0"
"quick,0.15,0,0.1,1"
];
animation = [
"global, 1, 10, default"
"border, 1, 5.39, easeOutQuint"
"windows, 1, 2.79, easeOutQuint"
"windowsIn, 1, 1, easeOutQuint, popin 87%"
"windowsOut, 1, 1, linear, popin 87%"
"windowsMove, 1, 1, easeInOutCubic"
"fadeIn, 1, 0.5, almostLinear"
"fadeOut, 1, 0.5, almostLinear"
"fade, 1, 1, quick"
"layers, 1, 3.81, easeOutQuint"
"layersIn, 1, 4, easeOutQuint, fade"
"layersOut, 1, 1.5, linear, fade"
"fadeLayersIn, 1, 1.79, almostLinear"
"fadeLayersOut, 1, 1.39, almostLinear"
"workspaces, 1, 1, almostLinear, slide"
"workspacesIn, 1, 1, easeInOutCubic, slide"
"workspacesOut, 1, 1, easeInOutCubic, slide"
"zoomFactor, 1, 7, quick"
];
}; };
dwindle = { };
pseudotile = true; cursor = {
preserve_split = true; no_hardware_cursors = false;
}; };
# master = { animations = {
# new_status = master; enabled = true;
# }; bezier = [
misc = { "easeOutQuint,0.23,1,0.32,1"
force_default_wallpaper = -1; "easeInOutCubic,0.65,0.05,0.36,1"
disable_hyprland_logo = false; "linear,0,0,1,1"
enable_anr_dialog = false; "almostLinear,0.5,0.5,0.75,1.0"
vfr = true; "quick,0.15,0,0.1,1"
}; ];
"$mainMod" = "SUPER"; animation = [
bind = [ "global, 1, 10, default"
"border, 1, 5.39, easeOutQuint"
"windows, 1, 2.79, easeOutQuint"
"windowsIn, 1, 1, easeOutQuint, popin 87%"
"windowsOut, 1, 1, linear, popin 87%"
"windowsMove, 1, 1, easeInOutCubic"
"fadeIn, 1, 0.5, almostLinear"
"fadeOut, 1, 0.5, almostLinear"
"fade, 1, 1, quick"
"layers, 1, 3.81, easeOutQuint"
"layersIn, 1, 4, easeOutQuint, fade"
"layersOut, 1, 1.5, linear, fade"
"fadeLayersIn, 1, 1.79, almostLinear"
"fadeLayersOut, 1, 1.39, almostLinear"
"workspaces, 1, 1, almostLinear, slide"
"workspacesIn, 1, 1, easeInOutCubic, slide"
"workspacesOut, 1, 1, easeInOutCubic, slide"
"zoomFactor, 1, 7, quick"
];
};
dwindle = {
# pseudotile = true;
preserve_split = true;
};
# master = {
# new_status = master;
# };
misc = {
force_default_wallpaper = -1;
disable_hyprland_logo = false;
enable_anr_dialog = false;
# vfr = true;
};
"$mainMod" = "SUPER";
bind =
[
( (
let let
config = pkgs.writeTextFile { config = pkgs.writeTextFile {
name = "config"; name = "config";
text = '' text = ''
width = 100% width = 100%
height = 100% height = 100%
border-width = 0 border-width = 0
outline-width = 0 outline-width = 0
padding-left = 35% padding-left = 35%
padding-top = 35% padding-top = 35%
result-spacing = 25 result-spacing = 25
num-results = 5 num-results = 5
font = monospace font = monospace
background-color = #000A background-color = #000A
''; '';
}; };
script = pkgs.writeShellScript "mreow" '' script = pkgs.writeShellScript "mreow" ''
exec $(tofi-drun -c ${config}) exec $(tofi-drun -c ${config})
''; '';
in in "$mainMod, R, exec, ${script}"
"$mainMod, R, exec, ${script}"
) )
"$mainMod, C, killactive" "$mainMod, C, killactive"
"$mainMod, M, exec, uwsm stop" "$mainMod, M, exec, uwsm stop"
"$mainMod, Q, exec, kitty" "$mainMod, Q, exec, kitty"
"$mainMod, V, togglefloating," "$mainMod, V, togglefloating,"
"$mainMod, P, pseudo, # dwindle" # "$mainMod, P, pseudo, # dwindle"
"$mainMod, J, togglesplit, # dwindle" # "$mainMod, J, togglesplit, # dwindle"
"$mainMod, left, movefocus, l" "$mainMod, left, movefocus, l"
"$mainMod, right, movefocus, r" "$mainMod, right, movefocus, r"
"$mainMod, up, movefocus, u" "$mainMod, up, movefocus, u"
@@ -146,10 +147,10 @@
( (
let let
script = pkgs.writeShellScript "meow" '' script = pkgs.writeShellScript "meow" ''
fish -c 'grim -g $(slurp) -t png - &| wl-copy -t image/png; killall wayfreeze' fish -c 'grim -g $(slurp) -t png - &| wl-copy -t image/png; killall wayfreeze'
''; '';
in in
"$mainMod, S, exec, " + "wayfreeze --after-freeze-cmd '${script}'" "$mainMod, S, exec, " + "wayfreeze --after-freeze-cmd '${script}'"
) )
"$mainMod, F, fullscreen" "$mainMod, F, fullscreen"
"$mainMod, mouse_down, workspace, e+1" "$mainMod, mouse_down, workspace, e+1"
@@ -162,40 +163,40 @@
] ]
++ (builtins.concatLists ( ++ (builtins.concatLists (
builtins.genList ( builtins.genList (
i: i: let
let
ws = i + 1; ws = i + 1;
in in [
[
"$mainMod, ${toString ws}, workspace, ${toString ws}" "$mainMod, ${toString ws}, workspace, ${toString ws}"
"$mainMod SHIFT, ${toString ws}, movetoworkspace, ${toString ws}" "$mainMod SHIFT, ${toString ws}, movetoworkspace, ${toString ws}"
] ]
) 9 )
9
)); ));
bindm = [ bindm = [
"$mainMod, mouse:272, movewindow" "$mainMod, mouse:272, movewindow"
"$mainMod, mouse:273, resizewindow" "$mainMod, mouse:273, resizewindow"
]; ];
windowrule = [ windowrule = [
"match:class .*, suppress_event maximize" "match:class .*, suppress_event maximize"
"match:class ^(gamescope)$, workspace 5" "match:class ^(gamescope)$, workspace 5"
"match:class ^(gamescope)$, immediate true" "match:class ^(gamescope)$, immediate true"
"match:class ^(steam)$, workspace 6 silent" "match:class ^(gamescope)$, confine_pointer true"
"match:class ^(vesktop)$, workspace 8 silent" "match:class ^(steam)$, workspace 6 silent"
"match:class ^(org.telegram.desktop)$, workspace 8 silent" "match:class ^(vesktop)$, workspace 8 silent"
"match:class ^(com.obsproject.Studio)$, workspace 10 silent" "match:class ^(org.telegram.desktop)$, workspace 8 silent"
"match:initial_title ^(OBS Studio Crash Detected)$, pin true" "match:class ^(com.obsproject.Studio)$, workspace 10 silent"
"match:initial_title ^(Discord Popout)$, workspace 1 silent" "match:initial_title ^(OBS Studio Crash Detected)$, pin true"
]; "match:initial_title ^(Discord Popout)$, workspace 1 silent"
layerrule = [ ];
"match:namespace ^(notifications)$, no_screen_share true" layerrule = [
# "match:namespace ^(quickshell)$, blur true" "match:namespace ^(notifications)$, no_screen_share true"
]; # "match:namespace ^(quickshell)$, blur true"
# exec-once = [ ];
# ]; # exec-once = [
# we need to auto launch: quickshell, steam, ar_rpc (maybe), vesktop, telegram, qbit, and obs # ];
}; # we need to auto launch: quickshell, steam, ar_rpc (maybe), vesktop, telegram, qbit, and obs
}; };
};
}; };
}; };
}; };
+43 -46
View File
@@ -3,59 +3,56 @@
inputs, inputs,
lib, lib,
... ...
}: }: {
{
flake-file.inputs = { flake-file.inputs = {
hyprland.url = "github:hyprwm/Hyprland"; hyprland.url = "github:hyprwm/Hyprland";
}; };
modules.hyprland = { modules.hyprland = {
nixos = nixos = {pkgs, ...}: {
{ pkgs, ... }: imports = [inputs.hyprland.nixosModules.default];
{ environment.systemPackages = with pkgs; [
imports = [ inputs.hyprland.nixosModules.default ]; wayfreeze
environment.systemPackages = with pkgs; [ grim
wayfreeze slurp
grim wlogout
slurp ranger
wlogout ];
ranger programs.xwayland.enable = true;
programs.hyprland = {
enable = true;
# withUWSM = true;
# set the flake package
package = inputs.hyprland.packages.${pkgs.stdenv.hostPlatform.system}.hyprland;
# make sure to also set the portal package, so that they are in sync
portalPackage =
inputs.hyprland.packages.${pkgs.stdenv.hostPlatform.system}.xdg-desktop-portal-hyprland;
};
# gtk.enable = lib.mkForce false;
xdg.portal = {
enable = true;
extraPortals = [
inputs.hyprland.packages.${pkgs.stdenv.hostPlatform.system}.xdg-desktop-portal-hyprland
]; ];
programs.xwayland.enable = true; };
programs.hyprland = { environment.sessionVariables.NIXOS_OZONE_WL = "1";
enable = true; hardware.graphics = {
# withUWSM = true; # package = pkgs-unstable.mesa;
# set the flake package
package = inputs.hyprland.packages.${pkgs.stdenv.hostPlatform.system}.hyprland;
# make sure to also set the portal package, so that they are in sync
portalPackage =
inputs.hyprland.packages.${pkgs.stdenv.hostPlatform.system}.xdg-desktop-portal-hyprland;
};
# gtk.enable = lib.mkForce false;
xdg.portal = {
enable = true;
extraPortals = [
inputs.hyprland.packages.${pkgs.stdenv.hostPlatform.system}.xdg-desktop-portal-hyprland
];
};
environment.sessionVariables.NIXOS_OZONE_WL = "1";
hardware.graphics = {
# package = pkgs-unstable.mesa;
# if you also want 32-bit support (e.g for Steam) # if you also want 32-bit support (e.g for Steam)
# enable32Bit = true; # enable32Bit = true;
# package32 = pkgs-unstable.pkgsi686Linux.mesa; # package32 = pkgs-unstable.pkgsi686Linux.mesa;
};
}; };
homeManager = };
{ pkgs, ... }: homeManager = {pkgs, ...}: {
{ gtk = {
gtk = { enable = true;
enable = true;
};
wayland.windowManager.hyprland = {
enable = true;
systemd.variables = [ "--all" ];
};
}; };
# backupFileExtension = "backupHM";
wayland.windowManager.hyprland = {
enable = true;
systemd.variables = ["--all"];
configType = "hyprlang";
};
};
}; };
} }
+5 -1
View File
@@ -1,5 +1,8 @@
{ den, modules, ... }:
{ {
den,
modules,
...
}: {
modules.kitty = { modules.kitty = {
homeManager = { homeManager = {
programs.kitty = { programs.kitty = {
@@ -12,6 +15,7 @@
sync_to_monitor = "yes"; sync_to_monitor = "yes";
background_opacity = 0.6; background_opacity = 0.6;
cursor_trail = 1; cursor_trail = 1;
auto_reload_config = -1;
}; };
}; };
}; };
+4 -4
View File
@@ -3,17 +3,17 @@
modules, modules,
inputs, inputs,
... ...
}: }: {
{
flake-file.inputs = { flake-file.inputs = {
nik-pkgs = { nik-pkgs = {
url = "git+https://git.scug.io/nikkuss/pkgs.git"; url = "git+https://git.scug.io/nikkuss/pkgs.git";
inputs.nixpkgs.follows = "nixpkgs"; # inputs.nixpkgs.follows = "nixpkgs";
}; };
}; };
modules.nikpkgs = { modules.nikpkgs = {
nixos = { nixos = {
nixpkgs.overlays = [ inputs.nik-pkgs.overlays.default ]; nixpkgs.overlays = [inputs.nik-pkgs.overlays.default];
}; };
# debug = inputs.nik-pkgs;
}; };
} }
+21 -21
View File
@@ -24,19 +24,19 @@
systemd systemd
# My own additions # My own additions
xorg.libXcomposite libxcomposite
xorg.libXtst libxtst
xorg.libXrandr libxrandr
xorg.libXext libxext
xorg.libX11 libx11
xorg.libXfixes libxfixes
libGL libGL
libva libva
pipewire pipewire
xorg.libxcb libxcb
xorg.libXdamage libxdamage
xorg.libxshmfence libxshmfence
xorg.libXxf86vm libxxf86vm
libelf libelf
# Required # Required
@@ -56,13 +56,13 @@
# glibc_multi.bin # Seems to cause issue in ARM # glibc_multi.bin # Seems to cause issue in ARM
# # Without these it silently fails # # Without these it silently fails
xorg.libXinerama libxinerama
xorg.libXcursor libxcursor
xorg.libXrender libxrender
xorg.libXScrnSaver libxscrnsaver
xorg.libXi libxi
xorg.libSM libsm
xorg.libICE libice
gnome2.GConf gnome2.GConf
nspr nspr
nss nss
@@ -88,13 +88,13 @@
# other issue: (Unity:377230): GLib-GIO-CRITICAL **: 21:09:04.706: g_dbus_proxy_call_sync_internal: assertion 'G_IS_DBUS_PROXY (proxy)' failed # other issue: (Unity:377230): GLib-GIO-CRITICAL **: 21:09:04.706: g_dbus_proxy_call_sync_internal: assertion 'G_IS_DBUS_PROXY (proxy)' failed
# Verified games requirements # Verified games requirements
xorg.libXt libxt
xorg.libXmu libxmu
libogg libogg
libvorbis libvorbis
SDL SDL
SDL2_image SDL2_image
glew110 glew_1_10
libidn libidn
tbb tbb
@@ -123,7 +123,7 @@
libgcrypt libgcrypt
libvpx libvpx
librsvg librsvg
xorg.libXft libxft
libvdpau libvdpau
# ... # ...
# Some more libraries that I needed to run programs # Some more libraries that I needed to run programs
+34 -32
View File
@@ -1,36 +1,38 @@
{ ... }: {...}: {
{ flake-file.inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
};
modules.nix = { modules.nix = {
nixos = nixos = {...}: {
{ ... }: nixpkgs.config.allowUnfree = true;
{ nix.settings = {
nixpkgs.config.allowUnfree = true; extra-substituters = [
nix.settings = { "https://hyprland.cachix.org"
substituters = [ "https://nix-community.cachix.org"
"https://hyprland.cachix.org" "https://cache.nixos.org/"
"https://nix-community.cachix.org" "https://attic.scug.io/pkgs"
"https://cache.nixos.org/" "https://cache.nixos-cuda.org"
"https://attic.scug.io/pkgs" "https://niri.cachix.org"
"https://cache.nixos-cuda.org" "https://attic.xuyh0120.win/lantian"
"https://niri.cachix.org" "https://nixos-raspberrypi.cachix.org"
"https://attic.xuyh0120.win/lantian" ];
]; trusted-public-keys = [
trusted-public-keys = [ "hyprland.cachix.org-1:a7pgxzMz7+chwVL3/pzj6jIBMioiJM7ypFP8PwtkuGc="
"hyprland.cachix.org-1:a7pgxzMz7+chwVL3/pzj6jIBMioiJM7ypFP8PwtkuGc=" "nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs="
"nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=" "pkgs:+sRbfiZMMX5R3PuAPtIRz/emowDoGZNpozibrnrAvuc="
"pkgs:+sRbfiZMMX5R3PuAPtIRz/emowDoGZNpozibrnrAvuc=" "cache.nixos-cuda.org:74DUi4Ye579gUqzH4ziL9IyiJBlDpMRn9MBN8oNan9M="
"cache.nixos-cuda.org:74DUi4Ye579gUqzH4ziL9IyiJBlDpMRn9MBN8oNan9M=" "niri.cachix.org-1:Wv0OmO7PsuocRKzfDoJ3mulSl7Z6oezYhGhR+3W2964="
"niri.cachix.org-1:Wv0OmO7PsuocRKzfDoJ3mulSl7Z6oezYhGhR+3W2964=" "lantian:EeAUQ+W+6r7EtwnmYjeVwx5kOGEBpjlBfPlzGlTNvHc="
"lantian:EeAUQ+W+6r7EtwnmYjeVwx5kOGEBpjlBfPlzGlTNvHc=" "nixos-raspberrypi.cachix.org-1:4iMO9LXa8BqhU+Rpg6LQKiGa2lsNh/j2oiYLNOQ5sPI="
]; ];
experimental-features = [ experimental-features = [
"flakes" "flakes"
"nix-command" "nix-command"
]; ];
trusted-users = [ trusted-users = [
"doloro" "doloro"
]; ];
};
}; };
};
}; };
} }
+361 -262
View File
@@ -4,8 +4,7 @@
lib, lib,
inputs, inputs,
... ...
}: }: {
{
# Its in its own folder for future modulizaion efforts # Its in its own folder for future modulizaion efforts
flake-file.inputs = { flake-file.inputs = {
nixvim = { nixvim = {
@@ -15,288 +14,388 @@
}; };
modules = { modules = {
nixvim = { nixvim = {
nixos = nixos = {home-manager, ...}: {
{ home-manager, ... }: };
{ homeManager = {pkgs, ...}: let
tiny-code-action = pkgs.vimUtils.buildVimPlugin {
name = "tiny-code-action.nvim";
src = pkgs.fetchFromGitHub {
owner = "rachartier";
repo = "tiny-code-action.nvim";
rev = "main";
hash = "sha256-UF9zeO5Uujdt2MEwy2d2Lhk6JRnEN4vrEvYslv0/zaA";
};
nvimSkipModules = ["tiny-code-action.previewers.snacks"];
}; };
homeManager = in {
{ pkgs, ... }: imports = [
{ inputs.nixvim.homeModules.nixvim
imports = [ ];
inputs.nixvim.homeModules.nixvim programs.nixvim = {
enable = true;
defaultEditor = true;
nixpkgs = {
config = {
allowUnfree = true;
};
};
colorschemes.gruvbox-material.enable = true;
extraPackages = with pkgs; [
# formatters
nixfmt-rs
rustfmt
# misc
ripgrep
nixd
tree-sitter
rust-analyzer
]; ];
programs.nixvim = { performance.byteCompileLua = {
enable = true; enable = true;
defaultEditor = true; plugins = true;
nixpkgs = { nvimRuntime = true;
config = { luaLib = true;
allowUnfree = true; configs = true;
}; };
}; plugins = {
colorschemes.gruvbox-material.enable = true; todo-comments.enable = true;
extraPackages = with pkgs; [ lsp-status.enable = true;
# formatters transparent.enable = true;
nixfmt which-key.enable = true;
rustfmt snacks.enable = true;
# misc conform-nvim = {
ripgrep
# misc
nixd
tree-sitter
];
performance.byteCompileLua = {
enable = true; enable = true;
plugins = true; settings = {
nvimRuntime = true; formatters_by_ft = {
luaLib = true; nix = ["nixfmt"];
configs = true; rust = ["rustfmt"];
}; "_" = [
plugins = { "squeeze_blanks"
todo-comments.enable = true; "trim_whitespace"
lsp-status.enable = true; "trim_newlines"
transparent.enable = true; ];
which-key.enable = true; };
conform-nvim = { format_on_save = {
enable = true; timeout_ms = 500;
settings = { lsp_format = "fallback";
formatters_by_ft = {
nix = [ "nixfmt" ];
rust = [ "rustfmt" ];
"_" = [
"squeeze_blanks"
"trim_whitespace"
"trim_newlines"
];
};
format_on_save = {
timeout_ms = 500;
lsp_format = "fallback";
};
}; };
}; };
# efmls-configs = { };
# enable = true; # efmls-configs = {
# languages = { # enable = true;
# scss = { # languages = {
# formatter = "prettier"; # scss = {
# linter = "stylelint"; # formatter = "prettier";
# }; # linter = "stylelint";
# }; # };
# }; # };
lsp = { # };
enable = true; lsp = {
servers = { enable = true;
qmlls = { servers = {
enable = true; qmlls = {
config = { enable = true;
cmd = "-E"; config = {
cmd = "-E";
};
};
rust_analyzer = {
enable = true;
installCargo = false;
installRustc = false;
};
nixd = {
enable = true;
settings = {
nixd = {
nixpkgs.expr = "import (builtins.getFlake \"${toString /home/doloro/dotfiles}\").inputs.nixpkgs { }";
options = {
nixos.expr = "(builtins.getFlake \"${toString /home/doloro/dotfiles}\").nixosConfigurations.desktop.options";
home_manager.expr = "(builtins.getFlake \"${toString /home/doloro/dotfiles}\").homeConfigurations.doloro-desktop.options";
};
}; };
}; };
rust_analyzer = {
enable = true;
installCargo = false;
installRustc = false;
};
nixd = {
enable = true;
};
astro = {
enable = true;
};
ts_ls = {
enable = true;
};
cssls.enable = true;
svelte.enable = true;
}; };
}; astro = {
lsp-format = { enable = true;
enable = true;
# lspServersToEnable = [ "qmlls" ];
};
notify = {
enable = true;
settings = {
background_color = "#00000000";
}; };
}; ts_ls = {
mini-cursorword.enable = true; enable = true;
# mini-statusline.enable = true;
lualine = {
enable = true;
settings = {
sections = {
lualine_a = [ "mode" ];
lualine_b = [
"branch"
"diff"
"diagnostics"
];
lualine_c = [ "filename" ];
lualine_x = [
"encoding"
"fileformat"
"filetype"
];
lualine_y = [ "lsp_status" ];
lualine_z = [ "location" ];
};
inactive_sections = {
lualine_a = [ ];
lualine_b = [ ];
lualine_c = [ "filename" ];
lualine_x = [ "location" ];
lualine_y = [ ];
lualine_z = [ ];
};
}; };
cssls.enable = true;
svelte.enable = true;
}; };
web-devicons.enable = true; };
vim-dadbod-completion.enable = true; lsp-format = {
telescope.enable = true; enable = true;
lazygit.enable = true; # lspServersToEnable = [ "qmlls" ];
mini-indentscope = { };
enable = true; notify = {
settings = { enable = true;
draw = { settings = {
delay = 10; background_color = "#00000000";
};
};
}; };
mini-files = { };
enable = true; mini-cursorword.enable = true;
settings = { # mini-statusline.enable = true;
windows = { lualine = {
preview = true; enable = true;
}; settings = {
}; sections = {
}; lualine_a = ["mode"];
trouble.enable = true; lualine_b = [
cmp = { "branch"
enable = true; "diff"
autoEnableSources = true; "diagnostics"
settings = {
sources = [
{ name = "nvim_lsp"; }
{ name = "path"; }
{ name = "buffer"; }
]; ];
mapping = { lualine_c = ["filename"];
"<C-Space>" = "cmp.mapping.complete()"; lualine_x = [
"<C-d>" = "cmp.mapping.scroll_docs(-4)"; "encoding"
"<C-e>" = "cmp.mapping.close()"; "fileformat"
"<C-f>" = "cmp.mapping.scroll_docs(4)"; "filetype"
"<CR>" = "cmp.mapping.confirm({ select = true })"; ];
"<S-Tab>" = "cmp.mapping(cmp.mapping.select_prev_item(), {'i', 's'})"; lualine_y = ["progress"];
"<Tab>" = "cmp.mapping(cmp.mapping.select_next_item(), {'i', 's'})"; lualine_z = ["location"];
};
inactive_sections = {
lualine_a = [];
lualine_b = [];
lualine_c = ["filename"];
lualine_x = ["location"];
lualine_y = [];
lualine_z = [];
};
};
};
web-devicons.enable = true;
vim-dadbod-completion.enable = true;
telescope.enable = true;
lazygit.enable = true;
mini-indentscope = {
enable = true;
settings = {
draw = {
delay = 10;
};
};
};
mini-files = {
enable = true;
settings = {
windows = {
preview = true;
};
};
};
lsp-lines.enable = true;
diaglist = {
enable = true;
settings = {
debug = false;
};
};
cmp = {
enable = true;
autoEnableSources = true;
settings = {
sources = [
{
name = "nvim_lsp";
priority = 100;
}
{
name = "buffer";
priority = 50;
}
{
name = "path";
priority = 40;
}
];
mapping = {
"<C-Space>" = "cmp.mapping.complete()";
"<C-d>" = "cmp.mapping.scroll_docs(-4)";
"<C-e>" = "cmp.mapping.close()";
"<C-f>" = "cmp.mapping.scroll_docs(4)";
"<CR>" = "cmp.mapping.confirm({ select = true })";
"<S-Tab>" = "cmp.mapping(function(fallback) if cmp.visible() then cmp.select_prev_item() else fallback() end end, {'i', 's'})";
"<Tab>" = "cmp.mapping(function(fallback) if cmp.visible() then cmp.select_next_item() else fallback() end end, {'i', 's'})";
};
window = {
completion = {
border = "rounded";
winhighlight = "Normal:Pmenu,FloatBorder:Pmenu,CursorLine:PmenuSel,Search:None";
};
documentation = {
border = "rounded";
winhighlight = "Normal:Pmenu,FloatBorder:Pmenu";
}; };
}; };
}; };
lspkind.enable = true; };
tiny-inline-diagnostic.enable = true; lspkind.enable = true;
# persisted.enable = true; tiny-inline-diagnostic.enable = true;
auto-session = { # tiny-code-action.enable = true;
enable = false; # persisted.enable = true;
settings = { auto-session = {
enabled = true; enable = false;
auto_save = true; settings = {
auto_restore = true; enabled = true;
}; auto_save = true;
}; auto_restore = true;
wakatime.enable = true;
treesitter = {
enable = true;
grammarPackages = with pkgs.vimPlugins.nvim-treesitter.builtGrammars; [
bash
json
lua
make
markdown
rust
nix
regex
toml
vim
vimdoc
xml
yaml
svelte
];
settings = {
highlight.enable = true;
};
}; };
}; };
extraPlugins = with pkgs; [ wakatime.enable = true;
# vimPlugins.mini-completion treesitter = {
vimPlugins.mini-comment enable = true;
vimPlugins.melange-nvim grammarPackages = with pkgs.vimPlugins.nvim-treesitter.builtGrammars; [
vimPlugins.telescope-file-browser-nvim bash
vimPlugins.lsp-progress-nvim css
]; html
opts = { javascript
number = true; json
bg = "dark"; lua
tabstop = 2; make
shiftwidth = 2; markdown
termguicolors = true; rust
nix
regex
toml
tsx
typescript
vim
vimdoc
xml
yaml
svelte
];
settings = {
highlight.enable = true;
indent.enable = false;
};
}; };
globals = {
mapleader = " ";
};
keymaps = [
{
action = "<cmd>Telescope persisted<cr>";
key = "<leader>fs";
options = {
silent = true;
};
}
{
action = "<cmd>Telescope find_files<cr>";
key = "<leader>ff";
options = {
silent = true;
};
}
{
action = "<cmd>:lua MiniFiles.open()<cr>";
key = "<leader>fv";
options = {
silent = true;
};
}
{
action = "<cmd>LazyGit<cr>";
key = "<leader>lg";
options = {
silent = true;
};
}
{
action = "<cmd>Telescope buffers<cr>";
key = "<leader>fb";
options = {
silent = true;
};
}
{
action = "<cmd>Telescope live_grep<cr>";
key = "<leader>fg";
options = {
silent = true;
};
}
{
action = "<cmd>Trouble diagnostics toggle<cr>";
key = "<leader>fd";
options = {
silent = true;
};
}
];
}; };
extraPlugins = with pkgs; [
# vimPlugins.mini-completion
vimPlugins.mini-comment
vimPlugins.melange-nvim
vimPlugins.telescope-file-browser-nvim
vimPlugins.lsp-progress-nvim
vimPlugins.cmp-cmdline
vimPlugins.cmp-nvim-lsp-signature-help
vimPlugins.cord-nvim
tiny-code-action
];
opts = {
number = true;
bg = "dark";
tabstop = 2;
shiftwidth = 2;
termguicolors = true;
};
globals = {
mapleader = " ";
};
extraConfigLua = ''
-- tree-sitter-nix uses (#is-not? local) which the new nvim-treesitter main branch no longer registers
vim.treesitter.query.add_predicate("is-not?", function() return true end, { force = true })
local cmp = require('cmp')
cmp.setup.cmdline(':', {
mapping = cmp.mapping.preset.cmdline(),
sources = cmp.config.sources(
{ { name = 'path' } },
{ { name = 'cmdline' } }
),
window = {
completion = {
border = 'rounded',
},
},
})
cmp.setup.cmdline('/', {
mapping = cmp.mapping.preset.cmdline(),
sources = {
{ name = 'buffer' }
},
window = {
completion = {
border = 'rounded',
},
},
})
require('tiny-code-action').setup({
backend = 'vim',
picker = 'snacks',
resolve_timeout = 100,
notify = {
enabled = true,
on_empty = true,
},
})
'';
keymaps = [
{
action = "<cmd>Telescope persisted<cr>";
key = "<leader>fs";
options = {
silent = true;
};
}
{
action = "<cmd>Telescope find_files<cr>";
key = "<leader>ff";
options = {
silent = true;
};
}
{
action = "<cmd>:lua MiniFiles.open()<cr>";
key = "<leader>fv";
options = {
silent = true;
};
}
{
action = "<cmd>LazyGit<cr>";
key = "<leader>lg";
options = {
silent = true;
};
}
{
action = "<cmd>Telescope buffers<cr>";
key = "<leader>fb";
options = {
silent = true;
};
}
{
action = "<cmd>Telescope live_grep<cr>";
key = "<leader>fg";
options = {
silent = true;
};
}
{
action = "<cmd>DiaglistToggle<cr>";
key = "<leader>fd";
options = {
silent = true;
};
}
{
action = "<cmd>lua require('tiny-code-action').code_action()<cr>";
key = "<leader>ca";
mode = ["n" "x"];
options = {
silent = true;
};
}
];
}; };
};
}; };
}; };
} }
+66 -64
View File
@@ -1,70 +1,72 @@
{ den, modules, ... }:
{ {
den,
modules,
...
}: {
modules.obs = settings: { modules.obs = settings: {
homeManager = homeManager = {
{ pkgs,
pkgs, lib,
lib, config,
config, ...
... }: {
}: programs = {
{ obs-studio = {
programs = { enable = true;
obs-studio = { package = (
enable = true; pkgs.obs-studio.override {
package = ( cudaSupport = true;
pkgs.obs-studio.override { }
cudaSupport = true; );
} plugins = with pkgs.obs-studio-plugins; [
); obs-pipewire-audio-capture
plugins = with pkgs.obs-studio-plugins; [ obs-vkcapture
obs-pipewire-audio-capture obs-vaapi #optional AMD hardware acceleration
obs-vkcapture obs-gstreamer
]; ];
};
};
systemd.user.services =
let
audio-set = lib.mkIf settings.audio {
pw-discordaudio-virtual-device = {
Unit = {
Description = "OBS daemon";
After = [ "hyprland-session.target" ];
};
Install = {
WantedBy = [ "default.target" ];
};
Service = {
ExecStart = "${pkgs.writeShellScript "discord_audio_virt_device" ''
pw-loopback -m '[ FL FR]' --capture-props='media.class=Audio/Sink node.name=DiscordSink' -n DiscordSink
''}";
Restart = "on-failure";
RestartSec = "5s";
};
};
pw-gameaudio-virtual-device = {
Unit = {
Description = "OBS daemon";
After = [ "hyprland-session.target" ];
};
Install = {
WantedBy = [ "default.target" ];
};
Service = {
ExecStart = "${pkgs.writeShellScript "game_audio_virt_device" ''
pw-loopback -m '[ FL FR]' --capture-props='media.class=Audio/Sink node.name=GameAudioSink' -n GameAudioSink
''}";
Restart = "on-failure";
RestartSec = "5s";
};
};
};
in
lib.mergeAttrsList [ audio-set ];
wayland.windowManager.hyprland.settings = {
exec-once = [ "${config.programs.obs-studio.finalPackage}/bin/obs --startreplaybuffer" ];
}; };
}; };
systemd.user.services = let
audio-set = lib.mkIf settings.audio {
pw-discordaudio-virtual-device = {
Unit = {
Description = "OBS daemon";
After = ["hyprland-session.target"];
};
Install = {
WantedBy = ["default.target"];
};
Service = {
ExecStart = "${pkgs.writeShellScript "discord_audio_virt_device" ''
pw-loopback -m '[ FL FR]' --capture-props='media.class=Audio/Sink node.name=DiscordSink' -n DiscordSink
''}";
Restart = "on-failure";
RestartSec = "5s";
};
};
pw-gameaudio-virtual-device = {
Unit = {
Description = "OBS daemon";
After = ["hyprland-session.target"];
};
Install = {
WantedBy = ["default.target"];
};
Service = {
ExecStart = "${pkgs.writeShellScript "game_audio_virt_device" ''
pw-loopback -m '[ FL FR]' --capture-props='media.class=Audio/Sink node.name=GameAudioSink' -n GameAudioSink
''}";
Restart = "on-failure";
RestartSec = "5s";
};
};
};
in
lib.mergeAttrsList [audio-set];
wayland.windowManager.hyprland.settings = {
# exec-once = ["${config.programs.obs-studio.finalPackage}/bin/obs --startreplaybuffer"];
};
};
}; };
} }
@@ -1 +1 @@
/run/user/1000/quickshell/vfs/6e389f6b800776b0595d9d90e42ebd04/.qmlls.ini /run/user/1000/quickshell/vfs/ca6d8e2cdd46bffdf799708f31d409fa/.qmlls.ini
+24 -8
View File
@@ -22,15 +22,31 @@ Rectangle {
id: content id: content
height: 20 height: 20
anchors.centerIn: parent anchors.centerIn: parent
Text { spacing: 4
id: speaker Rectangle {
text: root.defaultSpeaker.audio.muted ? "muted" : "unmuted" implicitWidth: 24
color: Colors.textPrimary implicitHeight: 20
color: "transparent"
Text {
anchors.centerIn: parent
text: root.defaultSpeaker.audio.muted ? "󰖁" : "󰕾"
font.family: "CaskaydiaCove NF"
font.pixelSize: 20
color: Colors.textPrimary
}
} }
Text { Rectangle {
id: mic implicitWidth: 24
text: root.defaultMic.audio.muted ? "muted" : "unmuted" implicitHeight: 20
color: Colors.textPrimary color: "transparent"
radius: 3
Text {
anchors.centerIn: parent
text: root.defaultMic.audio.muted ? "" : ""
font.family: "CaskaydiaCove NFM"
font.pixelSize: 30
color: Colors.textPrimary
}
} }
} }
} }
+48 -23
View File
@@ -4,37 +4,62 @@
modules, modules,
inputs, inputs,
... ...
}: }: {
{
flake-file.inputs = { flake-file.inputs = {
raspberry-pi-nix.url = "github:nix-community/raspberry-pi-nix"; raspberry-pi-nix.url = "github:cmyk/raspberry-pi-nix";
nixos-raspberrypi.url = "github:nvmd/nixos-raspberrypi/main";
nixos-hardware.url = "github:NixOS/nixos-hardware/master";
}; };
modules.raspberry-pi = { modules.raspberry-pi = {
provides = { provides = {
"5" = { "5" = {
nixos = nixos = {pkgs, ...}: {
{ pkgs, ... }: imports = [
let # inputs.nixos-hardware.nixosModules.raspberry-pi-5
rpi-pi = inputs.raspberry-pi-nix; inputs.nixos-raspberrypi.lib.inject-overlays-global
in inputs.nixos-raspberrypi.nixosModules.trusted-nix-caches
{ inputs.nixos-raspberrypi.lib.inject-overlays
imports = [
rpi-pi.nixosModules.raspberry-pi
rpi-pi.nixosModules.sd-image
];
environment.systemPackages = with pkgs; [ inputs.nixos-raspberrypi.nixosModules.raspberry-pi-5.base
libraspberrypi inputs.nixos-raspberrypi.nixosModules.raspberry-pi-5.page-size-16k
]; inputs.nixos-raspberrypi.nixosModules.raspberry-pi-5.display-vc4
inputs.nixos-raspberrypi.nixosModules.raspberry-pi-5.bluetooth
sdImage.compressImage = false; inputs.nixos-raspberrypi.nixosModules.sd-image
raspberry-pi-nix.board = "bcm2712"; # Rpi 5 - 64bit ];
# We need to rebuild kernel for 6.12
# raspberry-pi-nix.kernel-version = "v6_12_17";
raspberry-pi-nix.uboot.enable = false;
hardware.enableRedistributableFirmware = true; environment.systemPackages = with pkgs; [
}; libraspberrypi
];
_module.args = {inherit (inputs) nixos-raspberrypi;};
sdImage.compressImage = false;
boot.loader.raspberry-pi.bootloader = "kernel";
# boot.initrd.systemd.tpm2.enable = false;
# boot.initrd.allowMissingModules = true;
boot.supportedFilesystems.zfs = false;
# hardware.enableRedistributableFirmware = true;
# fileSystems = {
# "/boot/firmware" = {
# device = "/dev/disk/by-uuid/2175-794E";
# fsType = "vfat";
# options = [
# "noatime"
# "noauto"
# "x-systemd.automount"
# "x-systemd.idle-timeout=1min"
# ];
# };
# "/" = {
# device = "/dev/disk/by-uuid/44444444-4444-4444-8888-888888888888";
# fsType = "ext4";
# options = ["noatime"];
# };
# };
};
}; };
}; };
}; };
+10 -10
View File
@@ -3,18 +3,18 @@
__findFile, __findFile,
modules, modules,
... ...
}: }: {
{
# Basic caddy # Basic caddy
modules.services.provides.caddy = { modules.services.provides.caddy = {
nixos = nixos = {config, ...}: {
{ config, ... }: services.caddy = {
{ enable = true;
services.caddy = { email = "doloroo@proton.me";
enable = true; enableReload = true;
email = "doloroo@proton.me"; globalConfig = ''
enableReload = true; acme_ca https://acme-v02.api.letsencrypt.org/directory
}; '';
}; };
};
}; };
} }
+34 -26
View File
@@ -3,35 +3,43 @@
__findFile, __findFile,
modules, modules,
... ...
}: }: {
{
# Basic traefik # Basic traefik
modules.services.provides.ddns = { modules.services.provides.ddns = {
nixos = nixos = {
{ config, pkgs, ... }: config,
let pkgs,
ddnsImg = pkgs.dockerTools.pullImage { ...
imageName = "qmcgaw/ddns-updater"; }: let
imageDigest = "sha256:ee16ab4f6203bf9e5b0925d38a0b4ebf2d9f23771f933cfb2f5a2dbd5f9a2f88"; ddnsImg = pkgs.dockerTools.pullImage {
finalImageName = "qmcgaw/ddns-updater"; imageName = "qmcgaw/ddns-updater";
finalImageTag = "latest"; imageDigest = "sha256:ee16ab4f6203bf9e5b0925d38a0b4ebf2d9f23771f933cfb2f5a2dbd5f9a2f88";
sha256 = "sha256-dMCHkvoFaORmGwbIM9io4Vc9fq+wBks25k2dmnW7naI="; finalImageName = "qmcgaw/ddns-updater";
arch = "arm64"; finalImageTag = "latest";
}; sha256 = "sha256-dMCHkvoFaORmGwbIM9io4Vc9fq+wBks25k2dmnW7naI=";
in arch = "arm64";
{ };
virtualisation.oci-containers.containers = { in {
ddns = { virtualisation.oci-containers.containers = {
image = "qmcgaw/ddns-updater"; ddns = {
imageFile = ddnsImg; image = "qmcgaw/ddns-updater";
volumes = [ imageFile = ddnsImg;
"/data/ddns:/updater/data" volumes = [
"/etc/localtime:/etc/localtime:ro" "/data/ddns:/updater/data"
]; "/etc/localtime:/etc/localtime:ro"
# ports = [ "0.0.0.0:8123:8123" ]; ];
# networks = [ "meow" ]; ports = ["0.0.0.0:8125:8000"];
}; # networks = [ "meow" ];
}; };
}; };
services.caddy = pkgs.lib.mkIf config.services.caddy.enable {
virtualHosts."ddns.h.doloro.co.uk".extraConfig = ''
reverse_proxy :8125
basic_auth {
doloro $2a$14$FH.UkwC0PUsQ7IEV9XLAf.6/11KLsugCbrX/o6dPTx7NBlJWv3aiO
}
'';
};
};
}; };
} }
+49
View File
@@ -0,0 +1,49 @@
{
den,
__findFile,
modules,
...
}: {
# Basic traefik
modules.services.provides.docker-registry = {
nixos = {
config,
pkgs,
...
}: let
registryImg = pkgs.dockerTools.pullImage {
imageName = "registry";
imageDigest = "sha256:85347ed2ecde64161c7a4788a4d7d3dcc9d6f86f7be95834022e3c6a423a945a";
finalImageName = "registry";
finalImageTag = "3";
sha256 = "sha256-rLG0q/MVVz52veqZuZs5W0Qke6FugXkx7fMe3QnE3gU";
arch = "arm64";
};
in {
virtualisation.oci-containers.containers = {
docker-registry = {
image = "registry";
imageFile = registryImg;
volumes = [
"/data/dockerRegistry:/var/lib/registry"
"/run/dbus:/run/dbus:ro"
"/etc/localtime:/etc/localtime:ro"
];
ports = ["0.0.0.0:5000:5000"];
# networks = [ "meow" ];
};
};
networking.firewall = {
allowedTCPPorts = [
5000
];
allowedUDPPortRanges = [];
};
services.caddy = pkgs.lib.mkIf config.services.caddy.enable {
virtualHosts."https://reg.h.doloro.co.uk".extraConfig = ''
reverse_proxy :5000
'';
};
};
};
}
+3 -3
View File
@@ -8,10 +8,10 @@
ssh = { ssh = {
enable = true; enable = true;
enableDefaultConfig = false; enableDefaultConfig = false;
matchBlocks = { settings = {
"*" = { "*" = {
addKeysToAgent = "yes"; AddKeysToAgent = "yes";
identityFile = [ IdentityFile = [
"~/.ssh/id_ed25519" "~/.ssh/id_ed25519"
"~/.ssh/id_gitea_scug" "~/.ssh/id_gitea_scug"
]; ];
+22 -27
View File
@@ -3,8 +3,7 @@
modules, modules,
inputs, inputs,
... ...
}: }: {
{
flake-file.inputs = { flake-file.inputs = {
stylix = { stylix = {
url = "github:nix-community/stylix"; url = "github:nix-community/stylix";
@@ -12,33 +11,29 @@
}; };
}; };
modules.stylix = { modules.stylix = {
homeManager = homeManager = {pkgs, ...}: {
{ pkgs, ... }: imports = [inputs.stylix.homeModules.stylix];
{ # gtk.gtk4.theme = null;
imports = [ inputs.stylix.homeModules.stylix ]; stylix = {
gtk.gtk4.theme = null; enable = true;
stylix = { autoEnable = false;
enable = true; targets.gtk.enable = true;
autoEnable = false; targets.qt.enable = true;
targets.gtk.enable = true; targets.tmux.enable = false;
targets.qt.enable = true; fonts = {
targets.tmux.enable = false; monospace = {
fonts = { name = "CaskaydiaCove Nerd Font Mono";
monospace = { package = pkgs.nerd-fonts.caskaydia-cove;
name = "CaskaydiaCove Nerd Font Mono";
package = pkgs.nerd-fonts.caskaydia-cove;
};
}; };
base16Scheme = "${pkgs.base16-schemes}/share/themes/gruvbox-dark-hard.yaml";
}; };
base16Scheme = "${pkgs.base16-schemes}/share/themes/gruvbox-dark-hard.yaml";
}; };
nixos = };
{ pkgs, ... }: nixos = {pkgs, ...}: {
{ imports = [inputs.stylix.nixosModules.stylix];
imports = [ inputs.stylix.nixosModules.stylix ]; stylix.enable = false;
stylix.enable = false; stylix.autoEnable = false;
stylix.autoEnable = false; stylix.base16Scheme = "${pkgs.base16-schemes}/share/themes/gruvbox-dark-hard.yaml";
stylix.base16Scheme = "${pkgs.base16-schemes}/share/themes/gruvbox-dark-hard.yaml"; };
};
}; };
} }
+20 -18
View File
@@ -1,22 +1,24 @@
{ modules, ... }: {modules, ...}: {
{
modules.tmux = { modules.tmux = {
homeManager = homeManager = {
{ home, pkgs, ... }: home,
{ pkgs,
programs.tmux = { ...
enable = true; }: {
plugins = with pkgs.tmuxPlugins; [ programs.tmux = {
sensible enable = true;
minimal-tmux-status plugins = with pkgs.tmuxPlugins; [
]; sensible
extraConfig = '' minimal-tmux-status
set-option -g default-terminal "xterm-256color" ];
set -a terminal-features "xterm-256color:RGB" extraConfig = ''
set -g status-bg black set-option -g default-terminal "tmux-256color"
set -g status-fg white set -as terminal-features ",xterm-256color:RGB"
''; set -g status-bg black
}; set -g status-fg white
set -g mouse on
'';
}; };
};
}; };
} }
+1 -1
View File
@@ -8,7 +8,7 @@
enable = true; enable = true;
settings = { settings = {
default_session = { default_session = {
command = "${pkgs.greetd.tuigreet}/bin/tuigreet --sessions ${config.services.xserver.displayManager.sessionData.desktops}/share/xsessions:${config.services.xserver.displayManager.sessionData.desktops}/share/wayland-sessions --remember --remember-user-session --greeting 'meow meow meow' --time"; command = "${pkgs.tuigreet}/bin/tuigreet --sessions ${config.services.displayManager.sessionData.desktops}/share/xsessions:${config.services.displayManager.sessionData.desktops}/share/wayland-sessions --remember --remember-user-session --greeting 'meow meow meow' --time";
user = "greeter"; user = "greeter";
}; };
}; };
+11
View File
@@ -0,0 +1,11 @@
{modules, ...}: {
modules.unity = {
homeManager = {pkgs, ...}: {
home.packages = [pkgs.unityhub pkgs.alcom pkgs.unityhub.fhsEnv];
home.file."unityExec" = {
source = "${pkgs.unityhub}/bin/unityhub";
recursive = true;
};
};
};
}
+1
View File
@@ -7,6 +7,7 @@
users.users.${user.userName} = { users.users.${user.userName} = {
extraGroups = [ extraGroups = [
"wheel" "wheel"
"libvirtd"
"networkmanager" "networkmanager"
]; ];
}; };
+15
View File
@@ -0,0 +1,15 @@
{
modules,
den,
inputs,
...
}: {
flake-file.inputs = {
nixos-wsl.url = "github:nix-community/NixOS-WSL";
};
modules.wsl = {
nixos = {
imports = [inputs.nixos-wsl.nixosModules.default];
};
};
}
Generated
+531 -242
View File
File diff suppressed because it is too large Load Diff
+10 -12
View File
@@ -4,11 +4,12 @@
inputs = { inputs = {
den.url = "github:vic/den?ref=8101ec865c0bf4027d40b9fd8951e3e435a86d64"; den.url = "github:vic/den?ref=8101ec865c0bf4027d40b9fd8951e3e435a86d64";
direnv-instant.url = "github:Mic92/direnv-instant";
disko.url = "github:nix-community/disko"; disko.url = "github:nix-community/disko";
flake-file.url = "github:vic/flake-file"; flake-file.url = "github:vic/flake-file";
flake-parts = { flake-parts = {
url = "github:hercules-ci/flake-parts"; url = "github:hercules-ci/flake-parts";
inputs.nixpkgs-lib.follows = "nixpkgs-lib"; inputs.nixpkgs-lib.follows = "nixpkgs";
}; };
font-patcher.url = "github:Doloro1978/nix-nerd-fonts-patcher"; font-patcher.url = "github:Doloro1978/nix-nerd-fonts-patcher";
heliumFlake = { heliumFlake = {
@@ -21,22 +22,19 @@
}; };
hyprland.url = "github:hyprwm/Hyprland"; hyprland.url = "github:hyprwm/Hyprland";
import-tree.url = "github:vic/import-tree"; import-tree.url = "github:vic/import-tree";
nik-pkgs = { nik-pkgs.url = "git+https://git.scug.io/nikkuss/pkgs.git";
url = "git+https://git.scug.io/nikkuss/pkgs.git";
inputs.nixpkgs.follows = "nixpkgs";
};
niri-flake = { niri-flake = {
url = "github:sodiboo/niri-flake"; url = "github:sodiboo/niri-flake";
inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs.follows = "nixpkgs";
}; };
nix-cachyos-kernel.url = "github:xddxdd/nix-cachyos-kernel/release"; nix-cachyos-kernel.url = "github:xddxdd/nix-cachyos-kernel/release";
nixpkgs.url = "https://channels.nixos.org/nixpkgs-unstable/nixexprs.tar.xz"; nixos-hardware.url = "github:NixOS/nixos-hardware/master";
nixpkgs-lib.follows = "nixpkgs"; nixos-raspberrypi.url = "github:nvmd/nixos-raspberrypi/main";
nixvim = { nixos-wsl.url = "github:nix-community/NixOS-WSL";
url = "github:nix-community/nixvim"; nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
inputs.nixpkgs.follows = "nixpkgs"; nixvim.url = "github:nix-community/nixvim";
}; omp-nix.url = "git+https://git.molez.org/mandlm/omp-nix?ref=main";
raspberry-pi-nix.url = "github:nix-community/raspberry-pi-nix"; raspberry-pi-nix.url = "github:cmyk/raspberry-pi-nix";
sops-nix = { sops-nix = {
url = "github:Mic92/sops-nix"; url = "github:Mic92/sops-nix";
inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs.follows = "nixpkgs";