Compare commits

..

21 Commits

Author SHA1 Message Date
0edd66d61a Giving claude access diving in balls first 2026-01-15 16:48:40 +00:00
2f7ae02b36 flake.lock: Update
Flake lock file updates:

• Updated input 'caelestia-cli':
    'github:caelestia-dots/cli/55590bd9e4c24189c44c1ad1ec7b3b54538fcefb?narHash=sha256-sD6q%2BLrM6vd2i2BrQoowhGARa43zWeR8oPTjzlxq3RU%3D' (2026-01-04)
  → 'github:caelestia-dots/cli/55d75a117540e37263ac450ed7c40cc2212b5e3c?narHash=sha256-9aevqBizkmywn0buASzLCNOwY/Wm6tq9FpaPrRgZ/KQ%3D' (2026-01-07)
• Updated input 'caelestia-cli/nixpkgs':
    'github:nixos/nixpkgs/fb7944c166a3b630f177938e478f0378e64ce108?narHash=sha256-EgE0pxsrW9jp9YFMkHL9JMXxcqi/OoumPJYwf%2BOkucw%3D' (2026-01-02)
  → 'github:nixos/nixpkgs/9f0c42f8bc7151b8e7e5840fb3bd454ad850d8c5?narHash=sha256-UWYqmD7JFBEDBHWYcqE6s6c77pWdcU/i%2BbwD6XxMb8A%3D' (2026-01-05)
• Updated input 'dms':
    'github:AvengeMedia/DankMaterialShell/ab071e12aaf0c42b6e0921b94f96553c4a10bcbf?narHash=sha256-njG0q58Xnx69/V0KCTwBsI514sO/Eq1yF74%2B8hLDU1A%3D' (2026-01-05)
  → 'github:AvengeMedia/DankMaterialShell/3dd21382bad5d43604850e257cfd1b8d35e16fb9?narHash=sha256-4tLYqLiLZqI7xmhNBi5zyGkaAXZJNUtGuxWzA7NJf8A%3D' (2026-01-07)
• Updated input 'home-manager':
    'github:nix-community/home-manager/a65c04965c841eb01ba401f5162f12bc8d52014f?narHash=sha256-N0kK1JqxIjFl7hPAfhkW6C9AO7feYJUWLPyqJO2VuQQ%3D' (2026-01-05)
  → 'github:nix-community/home-manager/c068188a8e5c277f7bc8671557a7568864b57515?narHash=sha256-QICeGwbXfqtaOZmgh6BrSBB72drPuHO3pjuyh%2Bx8eIY%3D' (2026-01-07)
• Updated input 'hyprland':
    'github:hyprwm/Hyprland/9817553c664b0b7f6776671383a6368c74ee8dee?narHash=sha256-M5WVoXwlZpYcEKS23sEQKMzzdqItY/iEWoj3reIBfiE%3D' (2026-01-05)
  → 'github:hyprwm/Hyprland/918e2bb9be0e1d233f9394f1d569137788c43c01?narHash=sha256-BHBiQhlNl%2BLxvp/bBOOTWhxbXYMoVG4xiyv9DE/nuZ4%3D' (2026-01-07)
• Updated input 'hyprland-hyprsplit':
    'github:Duckonaut/split-monitor-workspaces/7b179721fcd272154d2917e9c4a7f9659c6104a2?narHash=sha256-FtitmvggxcZqCEKhYIN66td6JONenoTsuOFVS9pYi5E%3D' (2026-01-04)
  → 'github:Duckonaut/split-monitor-workspaces/764548c3aa22c9f4cb436ec7243d21795eb6ebec?narHash=sha256-yTuyde8TpBR3NhNnOcK4uOGukvMCwrH3otP8E04e9X0%3D' (2026-01-06)
• Updated input 'hyprland-plugins':
    'github:hyprwm/hyprland-plugins/0b356053fa4e6a6f5e857529654ff45eba2859d8?narHash=sha256-502sjmbTK/W8x6DUbJAyiBOABwV1q5Wb5caCMwd6BuI%3D' (2026-01-05)
  → 'github:hyprwm/hyprland-plugins/fef398ed5e4faf59bc43b915e46a75cfe8b16697?narHash=sha256-jObY8O7OI%2B91hoE137APsDxm0235/Yx%2BHhFIip187zM%3D' (2026-01-06)
• Updated input 'jovian':
    'github:Jovian-Experiments/Jovian-NixOS/efd4b22e6fdc6d7fb4e186ae333a4b74e03da440?narHash=sha256-2tL1mRb9uFJThUNfuDm/ehrnPvImL/QDtCxfn71IEz4%3D' (2025-12-30)
  → 'github:Jovian-Experiments/Jovian-NixOS/a81fad3f4a70fdaa779e74b7da2063fa2e358028?narHash=sha256-jXb2kBU6lO6Q6S9zoR/bhVLMjg2hM9EW8gWIwsmkj64%3D' (2026-01-07)
• Updated input 'nixcord':
    'github:kaylorben/nixcord/9748d874957aef2a3f44de2c3fdfe412c62a9063?narHash=sha256-pnfuAPzku7uqNt7Bc0zILNrvmeHd%2B1/iEN5caWJb8x4%3D' (2026-01-05)
  → 'github:kaylorben/nixcord/d9f83906a12678900b2b36c3bdf7329e8efaa0c0?narHash=sha256-uW5BgnDOn41rlKn1JxdN7CU4bbOgZf%2BaxEw8pBVP6RU%3D' (2026-01-07)
• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/3bd884a63dc53ecb0bf43422f4aa4f51d87a04e9?narHash=sha256-bGKKceW7Sr5HsuyDrdUCdx3/NkyvASdst86yx955CCE%3D' (2025-12-24)
  → 'github:nixos/nixpkgs/5912c1772a44e31bf1c63c0390b90501e5026886?narHash=sha256-Mj3d3PfwltLmukFal5i3fFt27L6NiKXdBezC1EBuZs4%3D' (2026-01-07)
• Updated input 'quickshell':
    'git+https://git.outfoxxed.me/outfoxxed/quickshell?ref=refs/heads/master&rev=41828c4180fb921df7992a5405f5ff05d2ac2fff' (2025-12-26)
  → 'git+https://git.outfoxxed.me/outfoxxed/quickshell?ref=refs/heads/master&rev=6742148cf4a8415a9c51fdeb11d8c3ea716c2e14' (2026-01-06)
• Updated input 'vicinae':
    'github:vicinaehq/vicinae/b79669006c4e49e32f2ae889c1294cd62c8071d5?narHash=sha256-L0A4daBtEuponvKr5YM4wn8btDku0Cs2Eu5b%2BEtTgSk%3D' (2026-01-05)
  → 'github:vicinaehq/vicinae/aab965dcf29529c5fab67b9c2fb5f8168f76fa1b?narHash=sha256-OPBgcM2ZzbVEUS6lwRpJo2JBfiRK8TmYVSmZImEW2gA%3D' (2026-01-07)
• Updated input 'zen-browser':
    'github:0xc000022070/zen-browser-flake/350c729b261e6f5529460140a5f0943dd4c5e156?narHash=sha256-6s8hL3YX9zAq2T7qvcwwzaEVwc9MEYbW%2BC2LcAAQfbk%3D' (2026-01-04)
  → 'github:0xc000022070/zen-browser-flake/8b2302d8c10369c9135552cc892da75cff5ddb03?narHash=sha256-5ysv8EuVAgDoYmNuXEUNf7vBzdeRaFxeIlIndv5HMvs%3D' (2026-01-07)
2026-01-07 19:53:11 +00:00
f7e26a9793 pain and suffering 2026-01-06 19:56:41 +00:00
47cd19b701 flake.lock: Update
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/93d0f90099f5f3b9295aae90ccbce4e2d14e1160?narHash=sha256-eDrvOyIt/2GRUyZtKd7pJOLAOdQh8IaSzEdEzsSxYSU%3D' (2025-12-31)
  → 'github:nixos/nixpkgs/fb7944c166a3b630f177938e478f0378e64ce108?narHash=sha256-EgE0pxsrW9jp9YFMkHL9JMXxcqi/OoumPJYwf%2BOkucw%3D' (2026-01-02)
2026-01-04 16:05:55 +00:00
f0c2a38366 dickplays 2025-12-17 22:42:37 +00:00
b2b4e434fd temu fix 2025-12-17 21:37:02 +00:00
a442183047 shfjdshf 2025-12-17 20:46:37 +00:00
eb6019b131 better shell integration 2025-12-17 17:10:25 +00:00
423e136895 theme stuff 2025-12-17 13:00:21 +00:00
zastian-dev
fe40f11559 testing sone shite 2025-12-15 18:06:05 +00:00
c45ec8d9cd cad my dude 2025-12-15 13:53:40 +00:00
zastian-dev
f073bda700 Fuck minor spelling mistake 2025-12-12 12:39:45 +00:00
zastian-dev
af5ca69e02 clean up the house a bit 2025-12-12 12:21:22 +00:00
c22a16c4ea can you now stop making noice nix please stop complaining 2025-12-12 01:38:45 +00:00
92d70ee2fc gay ming it works soooo goood but looks are bad will make clean 2025-12-12 01:38:06 +00:00
zastian-dev
ebe65dc108 stuff IDK 2025-12-11 14:48:22 +00:00
4a8274bd59 setting up the cumsole 2025-12-11 12:14:43 +00:00
zastian-dev
e7275b4c37 reee 2025-12-10 16:37:00 +00:00
zastian-dev
088c99e2cb wgnord shit 2025-12-10 13:52:34 +00:00
ec9f987c14 sheeet the second 2025-12-10 13:51:17 +00:00
854bf14796 shhheeeet 2025-12-10 13:48:15 +00:00
24 changed files with 1091 additions and 788 deletions

View File

@@ -11,29 +11,16 @@
... ...
}: }:
let
oreo = pkgs.callPackage ./personalPKGS/oreo.nix { };
# Window manager toggles
wmAll = window_manager == "all";
useRiver = window_manager == "river" || wmAll;
useNiri = window_manager == "niri" || wmAll;
useHypr = window_manager == "hyprland" || wmAll;
in
{ {
##############################################################################
# Imports
##############################################################################
imports = [ imports = [
./hardware-configuration.nix ./hardware-configuration.nix
./system/hardware.nix
./system/boot.nix ./system/boot.nix
./system/network.nix ./system/network.nix
./system/inputMethods.nix ./system/inputMethods.nix
./system/services.nix ./system/hardware.nix
./system/fonts.nix ./system/fonts.nix
./system/nixOSPkgs.nix
inputs.home-manager.nixosModules.home-manager inputs.home-manager.nixosModules.home-manager
inputs.jovian.nixosModules.default
#inputs.niri.nixosModules.niri #inputs.niri.nixosModules.niri
]; ];
@@ -50,77 +37,89 @@ in
}; };
############################################################################## ##############################################################################
# Desktop / WM # Users
############################################################################## ##############################################################################
programs.river-classic.enable = useRiver; programs.zsh.enable = true;
users = {
qt = { users = {
enable = true; root = {
# style = "gtk2"; openssh = {
platformTheme = "qt5ct"; authorizedKeys = {
keys = [
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIDwjTCq2GXRuqVXf1CeyntkOIFYNu0+tW1lurW8PNtK1 zastian00@gmail.com"
];
}; };
xdg.menus.enable = true;
# Work around Dolphin menu oddities: force Plasma menu definition
environment.etc."/xdg/menus/applications.menu".text =
builtins.readFile "${pkgs.kdePackages.plasma-workspace}/etc/xdg/menus/plasma-applications.menu";
# Niri (via overlay)
#nixpkgs.overlays = [ inputs.niri.overlays.niri ];
#programs.niri = {
# enable = useNiri;
# package = pkgs.niri-stable; # Only needed if not provided by the overlay
#};
# Hyprland
programs.hyprland = {
enable = useHypr;
package = inputs.hyprland.packages.${pkgs.system}.hyprland;
};
# X11 base (kept enabled for keymap + DM if needed)
services.xserver = {
enable = true;
xkb = {
layout = "ie";
variant = "";
};
# displayManager.lightdm = {
# enable = true;
# greeters.gtk = {
# enable = true;
# theme.package = pkgs.amarena-theme;
# theme.name = "amarena";
# cursorTheme.package = oreo.override { colors = [ "oreo_spark_pink_cursors" ]; };
# cursorTheme.name = "oreo_spark_pink_cursors";
# extraConfig = "background=${./assets/Wallpapers/138.png}";
# };
# };
};
# greetd + tuigreet
services.greetd = {
enable = true;
restart = true;
useTextGreeter = true;
settings.default_session = {
command = "${lib.getExe pkgs.tuigreet} --window-padding 1 --time --time-format '%R - %F' --remember --remember-session --asterisks";
user = "greeter";
}; };
}; };
mrfluffy = {
isNormalUser = true;
shell = pkgs.zsh;
createHome = true;
extraGroups = [
"wheel"
"networkmanager"
"video"
"render"
"docker"
"libvirt"
"input"
"seat"
"dialout"
];
packages = with pkgs; [ ];
};
work = {
isNormalUser = true;
shell = pkgs.zsh;
createHome = true;
extraGroups = [
"wheel"
"networkmanager"
"video"
"render"
"docker"
"libvirt"
"input"
"seat"
"dialout"
];
packages = with pkgs; [ ];
};
game = {
isNormalUser = true;
description = "Dedicated gaming user (auto-login in Steam specialisation)";
shell = pkgs.bash;
createHome = true;
password = ""; # no password
extraGroups = [
"wheel"
"video"
"render"
"input"
"seat"
"networkmanager"
"dialout"
];
home = "/home/game";
};
};
groups.libvirtd.members = [
"mrfluffy"
"work"
];
};
############################################################################## ##############################################################################
# Security / PolicyKit / PAM # Home-Manager
############################################################################## ##############################################################################
security = { home-manager = {
rtkit.enable = true; extraSpecialArgs = { inherit inputs window_manager systemName; };
polkit.enable = true; users = {
pam.services = { mrfluffy = import ./home/mrfluffy.nix;
swaylock = { }; work = import ./home/work.nix;
greetd.enableGnomeKeyring = true; game = import ./home/game.nix;
greetd.kwallet.enable = true;
}; };
}; };
@@ -140,7 +139,8 @@ in
# AMD_VULKAN_ICD = "RADV"; # AMD_VULKAN_ICD = "RADV";
# VK_ICD_FILENAMES = "/run/opengl-driver/share/vulkan/icd.d/radeon_icd.x86_64.json"; # VK_ICD_FILENAMES = "/run/opengl-driver/share/vulkan/icd.d/radeon_icd.x86_64.json";
# XDG_CURRENT_DESKTOP = "hyprland"; # XDG_CURRENT_DESKTOP = "hyprland";
# QT_QPA_PLATFORMTHEME = "qt6ct"; #QT_QPA_PLATFORMTHEME = "gtk3";
#QT_QPA_PLATFORMTHEME_QT6 = "gtk3";
}; };
systemPackages = with pkgs; [ systemPackages = with pkgs; [
@@ -150,70 +150,6 @@ in
]; ];
}; };
##############################################################################
# Users
##############################################################################
users = {
users.mrfluffy = {
isNormalUser = true;
shell = pkgs.zsh;
createHome = true;
extraGroups = [
"wheel"
"networkmanager"
"video"
"render"
"docker"
"libvirt"
"input"
];
packages = with pkgs; [ ];
};
users.work = {
isNormalUser = true;
shell = pkgs.zsh;
createHome = true;
extraGroups = [
"wheel"
"networkmanager"
"video"
"render"
"docker"
"libvirt"
"input"
];
packages = with pkgs; [ ];
};
groups.libvirtd.members = [
"mrfluffy"
"work"
];
};
##############################################################################
# Home-Manager
##############################################################################
home-manager = {
extraSpecialArgs = { inherit inputs window_manager systemName; };
users = {
mrfluffy = import ./home/mrfluffy.nix;
work = import ./home/work.nix;
};
};
##############################################################################
# Virtualisation
##############################################################################
virtualisation = {
docker = {
enable = true;
storageDriver = lib.mkIf (systemName == "pc") "btrfs";
};
libvirtd.enable = true;
};
############################################################################## ##############################################################################
# Nixpkgs policy # Nixpkgs policy
############################################################################## ##############################################################################
@@ -222,8 +158,48 @@ in
permittedInsecurePackages = [ ]; permittedInsecurePackages = [ ];
}; };
##############################################################################
# decky
##############################################################################
nixpkgs.overlays = [
inputs.jovian.overlays.default
];
jovian.decky-loader = {
enable = true;
user = "game"; # Run as your gaming user
stateDir = "/home/game/.local/share/decky"; # Store plugins/data in user's home (adjust if preferred)
# Optional: Add extra packages if needed for specific plugins
# extraPackages = with pkgs; [ some-package ];
# extraPythonPackages = ps: with ps; [ some-python-package ];
};
############################################################################## ##############################################################################
# State version # State version
############################################################################## ##############################################################################
system.stateVersion = "24.11"; # Did you read the comment? system.stateVersion = "24.11"; # Did you read the comment?
specialisation = {
"01-steam" = {
configuration = {
imports = [
./system/specialisation/steam.nix
];
};
};
"00-main-system" = {
configuration = {
#boot.loader.systemd-boot.sortKey = lib.mkDefault "00000000000-main";
##############################################################################
# Imports
##############################################################################
imports = [
./system/services.nix
./system/nixOSPkgs.nix
./system/specialisation/main-system.nix
#inputs.niri.nixosModules.niri
];
};
};
};
} }

View File

@@ -8,7 +8,7 @@
{ {
programs = { programs = {
caelestia = { caelestia = {
enable = true; enable = false;
systemd = { systemd = {
enable = true; # if you prefer starting from your compositor enable = true; # if you prefer starting from your compositor
target = "graphical-session.target"; target = "graphical-session.target";

View File

@@ -0,0 +1,26 @@
{
config,
lib,
pkgs,
inputs,
...
}:
{
imports = [
inputs.dms.homeModules.dank-material-shell
];
programs.dank-material-shell = {
enable = true;
systemd = {
enable = true; # if you prefer starting from your compositor
};
#settings = {
# theme = "dark";
# dynamicTheming = true;
# # Add any other settings here
#};
};
}

View File

@@ -10,6 +10,8 @@
settings = { settings = {
main = { main = {
pad = "5x5"; pad = "5x5";
font = "${config.stylix.fonts.monospace.name}:size=${toString config.stylix.fonts.sizes.terminal}";
include = "/home/${config.home.username}/.config/foot/dank-colors.ini";
}; };
colors = { colors = {
alpha = lib.mkForce (0.9); alpha = lib.mkForce (0.9);
@@ -17,4 +19,3 @@
}; };
}; };
} }

View File

@@ -8,18 +8,19 @@
... ...
}: }:
let let
caelestia-cli = inputs.caelestia-cli.packages.${pkgs.system}.caelestia-cli; hypr-package = inputs.hyprland.packages.${pkgs.stdenv.hostPlatform.system}.hyprland;
hypr-package = inputs.hyprland.packages.${pkgs.system}.hyprland; hypr-portal =
hypr-portal = inputs.hyprland.packages.${pkgs.system}.xdg-desktop-portal-hyprland; inputs.hyprland.packages.${pkgs.stdenv.hostPlatform.system}.xdg-desktop-portal-hyprland;
hypr-split = inputs.hyprland-hyprsplit.packages.${pkgs.system}.split-monitor-workspaces; hypr-split =
#hyprscrolling = inputs.hyprland-plugins.packages.${pkgs.system}.hyprscrolling; inputs.hyprland-hyprsplit.packages.${pkgs.stdenv.hostPlatform.system}.split-monitor-workspaces;
#hyprscrolling = inputs.hyprland-plugins.packages.${pkgs.stdenv.hostPlatform.system}.hyprscrolling;
mod = "Alt"; mod = "Alt";
terminal = "footclient"; terminal = "footclient";
fileManager = "dolphin"; fileManager = "thunar";
#runner = "${lib.getExe caelestia-cli} shell drawers toggle launcher"; #runner = "${lib.getExe caelestia-cli} shell drawers toggle launcher";
runner = "vicinae toggle"; runner = "vicinae toggle";
# runner = "anyrun"; # runner = "anyrun";
browser = "zen-beta"; browser = "firefox";
editor = "emacsclient -c"; editor = "emacsclient -c";
in in
{ {
@@ -37,51 +38,53 @@ in
########################################################################## ##########################################################################
# Monitors # Monitors
########################################################################## ##########################################################################
source = [
"./dms/outputs.conf"
#"./dms/cursor.conf"
"./dms/colors.conf"
];
# See https://wiki.hyprland.org/Configuring/Monitors/ # See https://wiki.hyprland.org/Configuring/Monitors/
# monitor = lib.mkMerge [ #monitor = lib.mkMerge [
# (lib.mkIf (systemName == "laptop") [ "eDP-1,1920x1080@59.99700,0x0,1" ]) # #(lib.mkIf (systemName == "laptop") [ "eDP-1,1920x1080@59.99700,0x0,1" ])
# (lib.mkIf (systemName == "pc") [ # (lib.mkIf (systemName == "pc") [
# "DP-2,2560x1440@144,0x0,1" # "HDMI-A-2, disable"
# "DP-1,2560x1440@239.97,2569x0,1"
# #"DP-1,2560x1440@144,1920x0,1,bitdepth,10,cm,hdr"
# ]) # ])
# ]; #];
monitorv2 = #monitorv2 =
[ ] # [ ]
++ lib.optional (systemName == "laptop") { # ++ lib.optional (systemName == "laptop") {
output = "eDP-1"; # output = "eDP-1";
mode = "1920x1080@59.99700"; # mode = "1920x1080@59.99700";
scale = 1; # scale = 1;
position = "0x0"; # position = "0x0";
} # }
++ lib.optional (systemName == "pc") { # ++ lib.optional (systemName == "pc") {
output = "DP-1"; # output = "DP-1";
mode = "2560x1440@239.97"; # mode = "2560x1440@239.97";
position = "2560x0"; # "1440x750"; # Corrected from 2569x0 for seamless alignment # position = "2560x0"; # "1440x750"; # Corrected from 2569x0 for seamless alignment
scale = 1; # scale = 1;
#supports_wide_color = 1; # #supports_wide_color = 1;
bitdepth = 10; # bitdepth = 10;
cm = "hdr"; # cm = "wide";
supports_hdr = true; # supports_hdr = true;
supports_wide_color = true; # supports_wide_color = true;
sdr_min_luminance = 0; # For true black on OLED # sdr_min_luminance = 0; # For true black on OLED
sdr_max_luminance = 275; # Matches typical SDR brightness # sdr_max_luminance = 275; # Matches typical SDR brightness
min_luminance = 0; # min_luminance = 0;
max_luminance = 1000; # HDR peak # max_luminance = 1000; # HDR peak
max_avg_luminance = 400; # Average frame luminance # max_avg_luminance = 400; # Average frame luminance
sdrbrightness = 1.2; # Slight boost to avoid washed out look # sdrbrightness = 1.2; # Slight boost to avoid washed out look
sdrsaturation = 1.0; # sdrsaturation = 1.0;
#transform = 2; # Uncomment if needed # }
} # ++ lib.optional (systemName == "pc") {
++ lib.optional (systemName == "pc") { # output = "DP-2";
output = "DP-2"; # mode = "2560x1440@144";
mode = "2560x1440@144"; # scale = 1;
scale = 1; # position = "0x0";
position = "0x0"; # transform = 0;
transform = 0; # };
};
########################################################################## ##########################################################################
# Autostart # Autostart
@@ -92,7 +95,9 @@ in
exec-once = [ exec-once = [
# "waybar" # "waybar"
# "quickshell" # "quickshell"
"${pkgs.polkit_gnome}/libexec/polkit-gnome-authentication-agent-1" #"${pkgs.polkit_gnome}/libexec/polkit-gnome-authentication-agent-1"
"${pkgs.kdePackages.polkit-kde-agent-1}/libexec/polkit-kde-authentication-agent-1"
"${pkgs.kdePackages.kwallet-pam}/libexec/pam_kwallet_init"
"fcitx5 -d" "fcitx5 -d"
"foot -s" "foot -s"
"systemctl --user import-environment DBUS_SESSION_BUS_ADDRESS WAYLAND_DISPLAY XDG_SESSION_TYPE XDG_CURRENT_DESKTOP XDG_SESSION_DESKTOP QT_QPA_PLATFORMTHEME GTK_THEME" "systemctl --user import-environment DBUS_SESSION_BUS_ADDRESS WAYLAND_DISPLAY XDG_SESSION_TYPE XDG_CURRENT_DESKTOP XDG_SESSION_DESKTOP QT_QPA_PLATFORMTHEME GTK_THEME"
@@ -160,8 +165,8 @@ in
# https://wiki.hyprland.org/Configuring/Variables/#decoration # https://wiki.hyprland.org/Configuring/Variables/#decoration
decoration = { decoration = {
rounding = 10; rounding = 0;
rounding_power = 2; rounding_power = 0;
active_opacity = 1.0; active_opacity = 1.0;
inactive_opacity = 1.0; inactive_opacity = 1.0;
@@ -294,7 +299,8 @@ in
"${mod}, V, togglefloating," "${mod}, V, togglefloating,"
"${mod}, T, fullscreen" "${mod}, T, fullscreen"
# ",Print, exec, grim -g \"$(slurp)\" - | swappy -f -" # ",Print, exec, grim -g \"$(slurp)\" - | swappy -f -"
",Print, exec, ${lib.getExe caelestia-cli} screenshot -r -f" ",Print, exec, dms screenshot"
"${mod}, f1, exec, dms ipc call keybinds toggle hyprland"
# Dwindle # Dwindle
"${mod}, P, pseudo, " "${mod}, P, pseudo, "
@@ -375,8 +381,8 @@ in
# ",XF86MonBrightnessDown, exec, light -U 5" # ",XF86MonBrightnessDown, exec, light -U 5"
# Brightness # Brightness
",XF86MonBrightnessUp, global, caelestia:brightnessUp" ",XF86MonBrightnessUp, global, dms ipc call brightness increment 5"
",XF86MonBrightnessDown, global, caelestia:brightnessDown" ",XF86MonBrightnessDown, global, dms ipc call brightness decrement 5"
]; ];
bindl = [ bindl = [

View File

@@ -10,12 +10,12 @@
enable = true; enable = true;
discord = { discord = {
enable = false; enable = false;
package = pkgs.vencord; #package = pkgs.vencord;
}; };
vesktop = { vesktop = {
enable = true; enable = true;
package = pkgs.vesktop; #package = pkgs.vesktop;
useSystemVencord = false; #useSystemVencord = false;
}; };
config = { config = {
plugins = { plugins = {
@@ -42,9 +42,6 @@
biggerStreamPreview = { biggerStreamPreview = {
enable = true; enable = true;
}; };
clearURLs = {
enable = true;
};
copyFileContents = { copyFileContents = {
enable = true; enable = true;
}; };

View File

@@ -26,7 +26,7 @@
extraPortals = with pkgs; [ extraPortals = with pkgs; [
xdg-desktop-portal-wlr xdg-desktop-portal-wlr
xdg-desktop-portal-gtk xdg-desktop-portal-gtk
inputs.hyprland.packages.${pkgs.system}.xdg-desktop-portal-hyprland inputs.hyprland.packages.${pkgs.stdenv.hostPlatform.system}.xdg-desktop-portal-hyprland
kdePackages.xdg-desktop-portal-kde kdePackages.xdg-desktop-portal-kde
]; ];
}; };
@@ -38,7 +38,7 @@
defaultApplications = defaultApplications =
let let
browser = [ "zen-beta.desktop" ]; browser = [ "firefox.desktop" ];
fileManager = [ "pcmanfm.desktop" ]; fileManager = [ "pcmanfm.desktop" ];
editor = [ "emacs.desktop" ]; editor = [ "emacs.desktop" ];
player = [ "mpv.desktop" ]; player = [ "mpv.desktop" ];

View File

@@ -31,7 +31,7 @@
GNUPGHOME = "$XDG_DATA_HOME/gnupg"; GNUPGHOME = "$XDG_DATA_HOME/gnupg";
GOPATH = "$XDG_DATA_HOME/go"; GOPATH = "$XDG_DATA_HOME/go";
GRADLE_USER_HOME = "$XDG_DATA_HOME/gradle"; GRADLE_USER_HOME = "$XDG_DATA_HOME/gradle";
IPYTHONDIR = "$XDG_CONFIG_HOMEipython"; IPYTHONDIR = "$XDG_CONFIG_HOME/ipython";
JUPYTER_CONFIG_DIR = "$XDG_CONFIG_HOME/jupyter"; JUPYTER_CONFIG_DIR = "$XDG_CONFIG_HOME/jupyter";
LESSHISTFILE = "$XDG_CACHE_HOME/less/history"; LESSHISTFILE = "$XDG_CACHE_HOME/less/history";
NUGET_PACKAGES = "$XDG_CACHE_HOME/NuGetPackages"; NUGET_PACKAGES = "$XDG_CACHE_HOME/NuGetPackages";
@@ -44,9 +44,9 @@
}; };
shellAliases = { shellAliases = {
nix-switch = "sudo nixos-rebuild switch"; ns = "nh os switch --specialisation 00-main-system";
nix-upgrade = "sudo nixos-rebuild switch --upgrade"; nu = "(cd ~/nixos-dots && nix flake update --commit-lock-file) && echo 'flake.lock updated'";
nix-edit = "sudo vim /etc/nixos/configuration.nix"; ne = "emacsclient -c ~/nixos-dots/configuration.nix";
ls = "exa -lag --icons"; ls = "exa -lag --icons";
upload = "~/.config/script/upload.sh"; upload = "~/.config/script/upload.sh";

655
flake.lock generated

File diff suppressed because it is too large Load Diff

View File

@@ -1,6 +1,6 @@
{ {
description = "Nixos config flake"; description = "Nixos config flake";
inputs = { inputs = {
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable"; nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
nix-index-database.url = "github:nix-community/nix-index-database"; nix-index-database.url = "github:nix-community/nix-index-database";
nix-index-database.inputs.nixpkgs.follows = "nixpkgs"; nix-index-database.inputs.nixpkgs.follows = "nixpkgs";
@@ -22,6 +22,14 @@ inputs = {
inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs.follows = "nixpkgs";
}; };
#niri.url = "github:sodiboo/niri-flake"; #niri.url = "github:sodiboo/niri-flake";
dgop = {
url = "github:AvengeMedia/dgop";
inputs.nixpkgs.follows = "nixpkgs";
};
dms = {
url = "github:AvengeMedia/DankMaterialShell";
inputs.nixpkgs.follows = "nixpkgs";
};
caelestia.url = "github:caelestia-dots/shell"; caelestia.url = "github:caelestia-dots/shell";
caelestia-cli.url = "github:caelestia-dots/cli"; caelestia-cli.url = "github:caelestia-dots/cli";
quickshell = { quickshell = {
@@ -51,14 +59,15 @@ inputs = {
url = "github:Duckonaut/split-monitor-workspaces"; url = "github:Duckonaut/split-monitor-workspaces";
inputs.hyprland.follows = "hyprland"; inputs.hyprland.follows = "hyprland";
}; };
hyprlauncher = {
url = "github:hyprwm/hyprlauncher";
inputs.nixpkgs.follows = "nixpkgs";
};
vicinae = { vicinae = {
url = "github:vicinaehq/vicinae"; url = "github:vicinaehq/vicinae";
#inputs.nixpkgs.follows = "nixpkgs"; #inputs.nixpkgs.follows = "nixpkgs";
}; };
# ... your existing inputs ...
jovian = {
url = "github:Jovian-Experiments/Jovian-NixOS";
inputs.nixpkgs.follows = "nixpkgs";
};
}; };
outputs = outputs =
{ {
@@ -68,7 +77,13 @@ inputs = {
}@inputs: }@inputs:
let let
system = "x86_64-linux"; system = "x86_64-linux";
pkgs = nixpkgs.legacyPackages.${system}; #pkgs = nixpkgs.legacyPackages.${system};
pkgs = import nixpkgs {
system = "x86_64-linux"; # or your system
config = {
allowUnfree = true;
};
};
#Avalable options are ["niri" "river" "hyprland" "all"] #Avalable options are ["niri" "river" "hyprland" "all"]
window_manager = "hyprland"; window_manager = "hyprland";
in in

View File

@@ -35,9 +35,14 @@
boot.initrd.kernelModules = [ ]; boot.initrd.kernelModules = [ ];
boot.kernelModules = boot.kernelModules =
[ ] [ ]
++ (lib.optionals (systemName == "pc") [ "kvm-amd" ]) ++ (lib.optionals (systemName == "pc") [ "kvm-amd" "btusb"])
++ (lib.optionals (systemName == "laptop") [ "kvm-intel" ]); ++ (lib.optionals (systemName == "laptop") [ "kvm-intel" ]);
boot.extraModulePackages = [ ]; boot.extraModulePackages = [ ];
boot.kernelParams = [
# Most common working combination in 2024/2025
"btusb.enable_autosuspend=0"
"btusb.reset=1"
];
fileSystems."/" = lib.mkMerge [ fileSystems."/" = lib.mkMerge [
(lib.mkIf (systemName == "pc") { (lib.mkIf (systemName == "pc") {
@@ -71,29 +76,36 @@
fsType = "btrfs"; fsType = "btrfs";
}) })
]; ];
fileSystems."/home/game/Games" = lib.mkMerge [
fileSystems."/server" = lib.mkIf (systemName == "pc") { # or remove the mkIf if you want it on both (lib.mkIf (systemName == "pc") {
device = "//192.168.1.8/mrfluffy"; # adjust the share name if its not the home share device = "/dev/disk/by-uuid/54188f21-d525-4681-a9d4-b798363eef17";
fsType = "cifs"; fsType = "ext4";
options = let })
# Separate credentials from the Nix store (very important for security)
credFile = "/etc/nixos/smb-credentials-mrfluffy";
in [
# Basic recommended options
"credentials=${credFile}"
"gid=users" # make files belong to the "users" group (or your preferred group)
"uid=1000" # replace with your users UID, or use "uid=${config.users.users.yourname.uid}"
"file_mode=0664"
"dir_mode=0775"
"nofail" # ← this makes the mount OPTIONAL (boot continues if unreachable)
"noauto" # dont mount automatically at boot (optional, combine with x-systemd.automount)
"x-systemd.automount" # creates a systemd automount unit → mounts on first access
"x-systemd.mount-timeout=15" # dont wait forever
"vers=3.0" # force SMB3 if the server supports it (recommended)
# "iocharset=utf8" # usually not needed with modern servers
# "cache=loose" # improves performance for some workloads
]; ];
};
#fileSystems."/server" = lib.mkIf (systemName == "pc") { # or remove the mkIf if you want it on both
# device = "//192.168.1.8/mrfluffy"; # adjust the share name if its not the home share
# fsType = "cifs";
# options = let
# # Separate credentials from the Nix store (very important for security)
# credFile = "/etc/nixos/smb-credentials-mrfluffy";
# in [
# # Basic recommended options
# "credentials=${credFile}"
# "gid=users" # make files belong to the "users" group (or your preferred group)
# "uid=1000" # replace with your users UID, or use "uid=${config.users.users.yourname.uid}"
# "file_mode=0664"
# "dir_mode=0775"
# "nofail" # ← this makes the mount OPTIONAL (boot continues if unreachable)
# "noauto" # dont mount automatically at boot (optional, combine with x-systemd.automount)
# "x-systemd.automount" # creates a systemd automount unit → mounts on first access
# "x-systemd.mount-timeout=15" # dont wait forever
# "vers=3.0" # force SMB3 if the server supports it (recommended)
# # "iocharset=utf8" # usually not needed with modern servers
# # "cache=loose" # improves performance for some workloads
# ];
#};
swapDevices = swapDevices =
[ ] [ ]

101
home/game.nix Executable file
View File

@@ -0,0 +1,101 @@
{
config,
pkgs,
inputs,
lib,
window_manager,
...
}:
let
in
{
imports = [
# Core theming & integrations
inputs.nix-colors.homeManagerModules.default
inputs.stylix.homeModules.stylix
inputs.nixcord.homeModules.nixcord
# inputs.niri.homeModules.niri
# Local modules
./sessionVars.nix
./stylix.nix
./homePkgs.nix
./services.nix
# Dots
../dots/foot.nix
../dots/zsh.nix
../dots/xdg.nix
../dots/hyprland.nix
../dots/caelestia.nix
];
# You can find color schemes at: https://github.com/tinted-theming/schemes
colorScheme = inputs.nix-colors.colorSchemes.hardcore;
stylix.base16Scheme.base00 = "141414";
# Home Manager needs a bit of information about you and the paths it should manage.
home.username = "game";
home.homeDirectory = "/home/game";
# This determines compatibility with a specific Home Manager release.
home.stateVersion = "23.11"; # Please read the comment before changing.
# Example GTK block (disabled)
gtk = {
enable = true;
iconTheme = {
name = "Reversal-black-dark";
package = pkgs.reversal-icon-theme.override { allColorVariants = true; };
};
};
home.packages = with pkgs; [
############################
# Wayland / Desktop tools
############################
lswt
swaybg
wlr-randr
############################
# Experimental (inputs)
############################
# inputs.ladybird.packages."${pkgs.stdenv.hostPlatform.system}".ladybird
# ##########################
# Examples (disabled)
# ##########################
# pkgs.hello
# (pkgs.nerdfonts.override { fonts = [ "FantasqueSansMono" ]; })
# (pkgs.writeShellScriptBin "my-hello" ''
# echo "Hello, ${config.home.username}!"
# '')
];
# Dotfiles & static files managed by Home Manager
home.file = {
".config/nixpkgs/config.nix".text = ''
{ allowUnfree = true; }
'';
".config/doom".source = ../dots/doom;
# ".config/quickshell".source = ../dots/shell;
# ".config/kitty".source = ../../universal/dots/kitty;
# ".config/nvim".source = ../../universal/dots/nvim;
"Pictures/Wallpapers".source = ../assets/Wallpapers;
# ".screenrc".source = dotfiles/screenrc;
# ".gradle/gradle.properties".text = ''
# org.gradle.console=verbose
# org.gradle.daemon.idletimeout=3600000
# '';
};
# If you don't manage your shell with Home Manager, remember to source:
# ~/.nix-profile/etc/profile.d/hm-session-vars.sh
# ~/.local/state/nix/profiles/profile/etc/profile.d/hm-session-vars.sh
# /etc/profiles/per-user/mrfluffy/etc/profile.d/hm-session-vars.sh
# Let Home Manager install and manage itself.
programs.home-manager.enable = true;
}

View File

@@ -51,6 +51,7 @@ in
profiles.default = { profiles.default = {
extensions = with pkgs.vscode-extensions; [ extensions = with pkgs.vscode-extensions; [
platformio.platformio-vscode-ide platformio.platformio-vscode-ide
ms-vscode.cpptools
]; ];
# Optional: keep Code from trying to self-update # Optional: keep Code from trying to self-update
@@ -64,13 +65,17 @@ in
# enableUpdateCheck = false; # enableUpdateCheck = false;
# enableExtensionUpdateCheck = false; # enableExtensionUpdateCheck = false;
}; };
};
};
services.vicinae = { services.vicinae = {
enable = true; # default: false enable = true; # default: false
autoStart = true; # default: true systemd = {
useLayerShell = false; enable = true;
environment = {
USE_LAYER_SHELL = 1;
};
};
#package = # specify package to use here. Can be omitted. #package = # specify package to use here. Can be omitted.
# Installing (vicinae) extensions declaratively # Installing (vicinae) extensions declaratively
#settings = { #settings = {
@@ -86,7 +91,7 @@ in
# }; # };
#}; #};
#extensions = [ #extensions = [
# (inputs.vicinae.mkVicinaeExtension.${pkgs.system} { # (inputs.vicinae.mkVicinaeExtension.${pkgs.stdenv.hostPlatform.system} {
# inherit pkgs; # inherit pkgs;
# name = "extension-name"; # name = "extension-name";
# src = pkgs.fetchFromGitHub { # src = pkgs.fetchFromGitHub {
@@ -108,10 +113,12 @@ in
nixpkgs = { nixpkgs = {
config = { config = {
allowUnfree = true; allowUnfree = true;
android_sdk.accept_license = true;
permittedInsecurePackages = [ permittedInsecurePackages = [
"freeimage-unstable-2021-11-01" "freeimage-unstable-2021-11-01"
"qtwebengine-5.15.19" "qtwebengine-5.15.19"
]; ];
rocmSupport = true;
}; };
}; };
@@ -175,6 +182,7 @@ in
brave brave
firefox firefox
ladybird ladybird
wgnord
############################ ############################
# Communication & Sharing # Communication & Sharing
@@ -195,8 +203,8 @@ in
############################ ############################
imv imv
mpv mpv
upscaler #upscaler
youtube-music pear-desktop
libsixel libsixel
############################ ############################
@@ -208,16 +216,18 @@ in
rustc rustc
rustup rustup
zed-editor zed-editor
android-studio-full
claude-code
# Language tooling from inputs # Language tooling from inputs
#inputs.qs-qml.packages.${pkgs.system}.qml-ts-mode #inputs.qs-qml.packages.${pkgs.stdenv.hostPlatform.system}.qml-ts-mode
#inputs.qs-qml.packages.${pkgs.system}.tree-sitter-qmljs #inputs.qs-qml.packages.${pkgs.stdenv.hostPlatform.system}.tree-sitter-qmljs
############################ ############################
# Game Dev / Engines # Game Dev / Engines / Creative
############################ ############################
blender-hip blender
godot_4 godot_4
freecad
############################ ############################
# Emulation # Emulation
@@ -246,10 +256,14 @@ in
wineWowPackages.stable wineWowPackages.stable
mangayomi mangayomi
rink rink
protontricks
abaddon
############################ ############################
# KDE / File Management # KDE / File Management
############################ ############################
kdePackages.qt6ct
kdePackages.baloo # new kdePackages.baloo # new
kdePackages.baloo-widgets # new kdePackages.baloo-widgets # new
kdePackages.dolphin kdePackages.dolphin
@@ -268,16 +282,19 @@ in
hicolor-icon-theme hicolor-icon-theme
qt6.qtsvg qt6.qtsvg
adw-gtk3
pywalfox-native
############################ ############################
# Experimental (inputs) # Experimental (inputs)
############################ ############################
#inputs.ladybird.packages."${pkgs.system}".ladybird #inputs.ladybird.packages."${pkgs.stdenv.hostPlatform.system}".ladybird
inputs.hyprlauncher.packages.${pkgs.system}.default #inputs.hyprlauncher.packages.${pkgs.stdenv.hostPlatform.system}.default
############################ ############################
# Blockchain (inputs) # Blockchain (inputs)
############################ ############################
#inputs.caelestia-cli.packages.${pkgs.system}.caelestia-cli #inputs.caelestia-cli.packages.${pkgs.stdenv.hostPlatform.system}.caelestia-cli
#inputs.caelestia.packages.${pkgs.system}.caelestia-shell #inputs.caelestia.packages.${pkgs.stdenv.hostPlatform.system}.caelestia-shell
]; ];
} }

View File

@@ -34,6 +34,7 @@ in
../dots/hyprland.nix ../dots/hyprland.nix
../dots/hyprpaper.nix ../dots/hyprpaper.nix
../dots/caelestia.nix ../dots/caelestia.nix
../dots/dankMeterialShell.nix
]; ];
# You can find color schemes at: https://github.com/tinted-theming/schemes # You can find color schemes at: https://github.com/tinted-theming/schemes
@@ -48,13 +49,25 @@ in
home.stateVersion = "23.11"; # Please read the comment before changing. home.stateVersion = "23.11"; # Please read the comment before changing.
# Example GTK block (disabled) # Example GTK block (disabled)
# gtk = { gtk = {
# enable = true; enable = true;
# iconTheme = { gtk3 = {
# name = "Dracula"; theme = {
# # package = pkgs.dracula-icon-theme; name = "adw-gtk3";
# }; package = pkgs.adw-gtk3;
};
};
#gtk4 = {
# theme = {
# name = "adw-gtk3";
# package = pkgs.adw-gtk3;
# }; # };
#};
iconTheme = {
name = "Reversal-black-dark";
package = pkgs.reversal-icon-theme.override { allColorVariants = true; };
};
};
home.packages = with pkgs; [ home.packages = with pkgs; [
############################ ############################
@@ -67,7 +80,7 @@ in
############################ ############################
# Experimental (inputs) # Experimental (inputs)
############################ ############################
# inputs.ladybird.packages."${pkgs.system}".ladybird # inputs.ladybird.packages."${pkgs.stdenv.hostPlatform.system}".ladybird
# ########################## # ##########################
# Examples (disabled) # Examples (disabled)

View File

@@ -7,7 +7,7 @@
... ...
}: }:
let let
#quickshellPackage = inputs.caelestia.packages.${pkgs.system}.caelestia-shell; #quickshellPackage = inputs.caelestia.packages.${pkgs.stdenv.hostPlatform.system}.caelestia-shell;
in in
{ {
#systemd.user.services.quickshell = lib.mkIf (window_manager == "hyprland") { #systemd.user.services.quickshell = lib.mkIf (window_manager == "hyprland") {

View File

@@ -21,37 +21,37 @@ in
font-packages.enable = true; font-packages.enable = true;
# fontconfig.enable = true; # fontconfig.enable = true;
gtk = { #gtk = {
enable = true; # enable = true;
flatpakSupport.enable = true; # flatpakSupport.enable = true;
}; #};
kde.enable = true; #kde.enable = true;
qt.enable = true; #qt.enable = true;
vscode.enable = true; #vscode.enable = true;
lazygit.enable = true; lazygit.enable = true;
foot.enable = true; #foot.enable = true;
river.enable = true; river.enable = true;
hyprland.enable = true; #hyprland.enable = true;
waybar.enable = true; waybar.enable = true;
nixcord.enable = true; nixcord.enable = true;
zen-browser = { #zen-browser = {
enable = true; # enable = true;
profileNames = [ "default" ]; # profileNames = [ "default" ];
}; #};
firefox = { #firefox = {
enable = true; # enable = true;
profileNames = [ "default" ]; # profileNames = [ "default" ];
}; #};
}; };
iconTheme = { #iconTheme = {
enable = true; # enable = true;
package = lib.mkForce (pkgs.reversal-icon-theme.override { allColorVariants = true; }); # #package = lib.mkForce (pkgs.reversal-icon-theme.override { allColorVariants = true; });
light = "Reversal-black"; # light = "Reversal-black";
dark = "Reversal-black-dark"; # dark = "Reversal-black-dark";
}; #};
polarity = "dark"; polarity = "dark";
image = ../assets/Wallpapers/001.jpg; image = ../assets/Wallpapers/001.jpg;

View File

@@ -34,6 +34,8 @@ in
../dots/hyprland.nix ../dots/hyprland.nix
../dots/hyprpaper.nix ../dots/hyprpaper.nix
../dots/caelestia.nix ../dots/caelestia.nix
../dots/dankMeterialShell.nix
]; ];
# You can find color schemes at: https://github.com/tinted-theming/schemes # You can find color schemes at: https://github.com/tinted-theming/schemes
@@ -48,13 +50,13 @@ in
home.stateVersion = "23.11"; # Please read the comment before changing. home.stateVersion = "23.11"; # Please read the comment before changing.
# Example GTK block (disabled) # Example GTK block (disabled)
# gtk = { gtk = {
# enable = true; enable = true;
# iconTheme = { iconTheme = {
# name = "Dracula"; name = "Reversal-black-dark";
# # package = pkgs.dracula-icon-theme; package = pkgs.reversal-icon-theme.override { allColorVariants = true; };
# }; };
# }; };
home.packages = with pkgs; [ home.packages = with pkgs; [
############################ ############################
@@ -67,7 +69,6 @@ in
############################ ############################
# Browsers # Browsers
############################ ############################
brave
############################ ############################
# work stuff # work stuff
@@ -76,7 +77,7 @@ in
# swaynotificationcenter # swaynotificationcenter
# inputs.ladybird.packages."${pkgs.system}".ladybird # inputs.ladybird.packages."${pkgs.stdenv.hostPlatform.system}".ladybird
# pkgs.hello # pkgs.hello
# (pkgs.nerdfonts.override { fonts = [ "FantasqueSansMono" ]; }) # (pkgs.nerdfonts.override { fonts = [ "FantasqueSansMono" ]; })

View File

@@ -23,7 +23,13 @@ in
{ {
boot = { boot = {
loader = { loader = {
systemd-boot.enable = true; systemd-boot = {
enable = true;
extraInstallCommands = ''
${lib.getExe pkgs.gnused} -i 's/default .*/default *-specialisation-00-main-system.conf/' /boot/loader/loader.conf
'';
#sortKey = "z-normal";
};
efi.canTouchEfiVariables = true; efi.canTouchEfiVariables = true;
}; };
@@ -49,10 +55,5 @@ in
options v4l2loopback devices=2 video_nr=1,0 card_label="OBS Cam","phone cam" exclusive_caps=1,1 options v4l2loopback devices=2 video_nr=1,0 card_label="OBS Cam","phone cam" exclusive_caps=1,1
''; '';
plymouth = {
enable = false;
themePackages = [ pkgs.plymouth-matrix-theme ];
theme = "matrix";
};
}; };
} }

View File

@@ -33,17 +33,17 @@ in
enable = true; enable = true;
enable32Bit = true; enable32Bit = true;
extraPackages = with pkgs; [ extraPackages = with pkgs; [
rocmPackages.rocm-core #rocmPackages.rocm-core
rocmPackages.rocminfo #rocmPackages.rocminfo
rocmPackages.rocm-runtime #rocmPackages.rocm-runtime
rocmPackages.clr.icd #rocmPackages.clr.icd
rocmPackages.rocm-smi #rocmPackages.rocm-smi
rocmPackages.clr #rocmPackages.clr
#rocmPackages.hipblas ##rocmPackages.hipblas
rocmPackages.rocblas #rocmPackages.rocblas
rocmPackages.rocsolver #rocmPackages.rocsolver
rocmPackages.rocm-comgr #rocmPackages.rocm-comgr
rocmPackages.rocsparse #rocmPackages.rocsparse
# amdvlk # amdvlk
# driversi686Linux.amdvlk # driversi686Linux.amdvlk
# mesa # mesa

View File

@@ -1,37 +1,26 @@
{ config, lib, pkgs, systemName, ... }: { config, lib, pkgs, systemName, ... }:
{ {
console.keyMap = "ie"; # Set console keymap based on systemName
console.keyMap = if systemName == "laptop" then "ie" else "us";
i18n = lib.mkMerge [ # Locale settings
(lib.mkIf (systemName == "laptop") { i18n.defaultLocale =
defaultLocale = "en_IE.UTF-8"; if systemName == "laptop"
extraLocaleSettings = { then "en_IE.UTF-8"
LC_ADDRESS = "en_IE.UTF-8"; else "en_US.UTF-8";
LC_IDENTIFICATION = "en_IE.UTF-8";
LC_MEASUREMENT = "en_IE.UTF-8";
LC_MONETARY = "en_IE.UTF-8";
LC_NAME = "en_IE.UTF-8";
LC_NUMERIC = "en_IE.UTF-8";
LC_PAPER = "en_IE.UTF-8";
LC_TELEPHONE = "en_IE.UTF-8";
LC_TIME = "en_IE.UTF-8";
};
})
(lib.mkIf (systemName == "pc") { i18n.extraLocaleSettings = let
defaultLocale = "en_US.UTF-8"; locale = if systemName == "laptop" then "en_IE.UTF-8" else "en_US.UTF-8";
extraLocaleSettings = { in {
LC_ADDRESS = "en_US.UTF-8"; LC_ADDRESS = locale;
LC_IDENTIFICATION = "en_US.UTF-8"; LC_IDENTIFICATION = locale;
LC_MEASUREMENT = "en_US.UTF-8"; LC_MEASUREMENT = locale;
LC_MONETARY = "en_US.UTF-8"; LC_MONETARY = locale;
LC_NAME = "en_US.UTF-8"; LC_NAME = locale;
LC_NUMERIC = "en_US.UTF-8"; LC_NUMERIC = locale;
LC_PAPER = "en_US.UTF-8"; LC_PAPER = locale;
LC_TELEPHONE = "en_US.UTF-8"; LC_TELEPHONE = locale;
LC_TIME = "en_US.UTF-8"; LC_TIME = locale;
}; };
})
];
} }

View File

@@ -70,6 +70,7 @@ in
# Core programs # Core programs
############################ ############################
programs = { programs = {
dconf.enable = true;
appimage = { appimage = {
enable = true; enable = true;
@@ -84,7 +85,7 @@ in
}; };
gamescope = { gamescope = {
enable = true; enable = true;
capSysNice = true; capSysNice = false;
}; };
nix-index-database = { nix-index-database = {
@@ -111,7 +112,6 @@ in
}; };
virt-manager.enable = true; virt-manager.enable = true;
zsh.enable = true;
corectrl.enable = true; corectrl.enable = true;
opengamepadui = { opengamepadui = {
@@ -124,13 +124,14 @@ in
remotePlay.openFirewall = true; remotePlay.openFirewall = true;
dedicatedServer.openFirewall = true; dedicatedServer.openFirewall = true;
extraCompatPackages = with pkgs; [ gamescope mangohud gamemode ]; extraCompatPackages = with pkgs; [ gamescope mangohud gamemode ];
gamescopeSession.enable = true; gamescopeSession.enable = false;
}; };
# Dynamic linker for foreign binaries # Dynamic linker for foreign binaries
nix-ld = { nix-ld = {
enable = true; enable = true;
libraries = with pkgs; [ libraries = with pkgs; [
gcc15.cc.lib
# add libraries here if needed # add libraries here if needed
# alsa-lib # alsa-lib
# libGL # libGL
@@ -144,9 +145,18 @@ in
# NetworkManager applet # NetworkManager applet
nm-applet = { nm-applet = {
enable = true; enable = false;
indicator = false; indicator = false;
}; };
thunar = {
enable = true;
plugins = with pkgs; [
thunar-archive-plugin
thunar-volman
];
};
xfconf.enable = true;
}; };
############################ ############################
@@ -171,8 +181,8 @@ in
# --- Nix tooling --- # --- Nix tooling ---
nil nil
nixfmt-rfc-style nixfmt
inputs.nix-alien.packages.${pkgs.system}.nix-alien inputs.nix-alien.packages.${pkgs.stdenv.hostPlatform.system}.nix-alien
# --- Wayland / Desktop --- # --- Wayland / Desktop ---
foot foot
@@ -194,7 +204,7 @@ in
# --- Development toolchains --- # --- Development toolchains ---
cmake cmake
gcc gcc15
gnumake gnumake
jdk11 jdk11
ladspaPlugins ladspaPlugins

View File

@@ -1,4 +1,10 @@
{ config, lib, pkgs, systemName, ... }: {
config,
lib,
pkgs,
systemName,
...
}:
{ {
############################################### ###############################################
@@ -54,13 +60,32 @@
"92-low-latency" = { "92-low-latency" = {
"context.properties" = { "context.properties" = {
"default.clock.rate" = 96000; "default.clock.rate" = 96000;
"default.clock.allowed-rates" = [ 44100 48000 96000 ]; "default.clock.allowed-rates" = [
44100
48000
96000
];
}; };
}; };
}; };
}) })
]; ];
###############################################
# nice shit
###############################################
services.ananicy = {
enable = true;
package = pkgs.ananicy-cpp;
rulesProvider = pkgs.ananicy-cpp;
extraRules = [
{
"name" = "gamescope";
"nice" = -20;
}
];
};
services.blueman.enable = true; services.blueman.enable = true;
############################################### ###############################################
@@ -111,7 +136,7 @@
# Sunshine (only on PC) # Sunshine (only on PC)
services.sunshine = lib.mkIf (systemName == "pc") { services.sunshine = lib.mkIf (systemName == "pc") {
enable = true; enable = false;
settings = { settings = {
sunshine_name = "nixos"; sunshine_name = "nixos";
port = 47989; port = 47989;
@@ -145,16 +170,16 @@
# Ollama (only on PC) # Ollama (only on PC)
services.ollama = lib.mkIf (systemName == "pc") { services.ollama = lib.mkIf (systemName == "pc") {
enable = true; enable = true;
package = pkgs.ollama-rocm;
port = 11434; port = 11434;
host = "0.0.0.0"; host = "0.0.0.0";
acceleration = "rocm";
rocmOverrideGfx = "11.0.0"; rocmOverrideGfx = "11.0.0";
environmentVariables = { environmentVariables = {
OLLAMA_DEBUG = "1"; OLLAMA_DEBUG = "1";
OLLAMA_MMAP = "0"; OLLAMA_MMAP = "0";
OLLAMA_NUM_CTX = "40000"; OLLAMA_NUM_CTX = "40000";
OLLAMA_NUM_GPU = "20"; OLLAMA_NUM_GPU = "20";
OLLAMA_FLASH_ATTENTION="true"; OLLAMA_FLASH_ATTENTION = "true";
# HSA_OVERRIDE_GFX_VERSION = "11.0.0"; # HSA_OVERRIDE_GFX_VERSION = "11.0.0";
OLLAMA_KV_CACHE_TYPE = "f16"; OLLAMA_KV_CACHE_TYPE = "f16";
}; };
@@ -167,7 +192,8 @@
description = "Service to launch Steam URLs via FIFO"; description = "Service to launch Steam URLs via FIFO";
wantedBy = [ "default.target" ]; wantedBy = [ "default.target" ];
serviceConfig = { serviceConfig = {
ExecStart = let ExecStart =
let
script = pkgs.writeShellScript "steam-run-url-service.sh" '' script = pkgs.writeShellScript "steam-run-url-service.sh" ''
#!/usr/bin/env bash #!/usr/bin/env bash
FIFO="/run/user/$(id --user)/steam-run-url.fifo" FIFO="/run/user/$(id --user)/steam-run-url.fifo"
@@ -184,7 +210,8 @@
fi fi
done done
''; '';
in "${script}"; in
"${script}";
Restart = "always"; Restart = "always";
}; };
path = [ pkgs.steam ]; path = [ pkgs.steam ];
@@ -216,7 +243,7 @@
pkgs.platformio-core pkgs.platformio-core
pkgs.platformio pkgs.platformio
pkgs.openocd pkgs.openocd
pkgs.brave #pkgs.brave
]; ];
# services.udev.extraRules = '' # services.udev.extraRules = ''

View File

@@ -0,0 +1,116 @@
{
config,
lib,
pkgs,
window_manager,
systemName,
inputs,
...
}:
let
oreo = pkgs.callPackage ./personalPKGS/oreo.nix { };
# Window manager toggles
wmAll = window_manager == "all";
useRiver = window_manager == "river" || wmAll;
useNiri = window_manager == "niri" || wmAll;
useHypr = window_manager == "hyprland" || wmAll;
in
{
# greetd + tuigreet
services.greetd = {
enable = true;
restart = true;
useTextGreeter = true;
settings.default_session = {
command = "${lib.getExe pkgs.tuigreet} --window-padding 1 --time --time-format '%R - %F' --remember --remember-session --asterisks";
user = "greeter";
};
};
#services.displayManager.dms-greeter = {
# enable = true;
# compositor.name = "hyprland"; # Or "hyprland" or "sway"
# configHome = "${config.users.users.mrfluffy.home}";
#};
#services.displayManager.cosmic-greeter.enable = true;
##############################################################################
# Desktop / WM
##############################################################################
programs.river-classic.enable = useRiver;
qt = {
enable = true;
platformTheme = "qt5ct";
};
xdg.menus.enable = true;
# Work around Dolphin menu oddities: force Plasma menu definition
environment.etc."/xdg/menus/applications.menu".text =
builtins.readFile "${pkgs.kdePackages.plasma-workspace}/etc/xdg/menus/plasma-applications.menu";
# Niri (via overlay)
#nixpkgs.overlays = [ inputs.niri.overlays.niri ];
#programs.niri = {
# enable = useNiri;
# package = pkgs.niri-stable; # Only needed if not provided by the overlay
#};
# Hyprland
programs.hyprland = {
enable = useHypr;
package = inputs.hyprland.packages.${pkgs.stdenv.hostPlatform.system}.hyprland;
};
#services.desktopManager.cosmic = {
# enable = true;
#};
# X11 base (kept enabled for keymap + DM if needed)
services.xserver = {
enable = true;
xkb = {
layout = "ie";
variant = "";
};
# displayManager.lightdm = {
# enable = true;
# greeters.gtk = {
# enable = true;
# theme.package = pkgs.amarena-theme;
# theme.name = "amarena";
# cursorTheme.package = oreo.override { colors = [ "oreo_spark_pink_cursors" ]; };
# cursorTheme.name = "oreo_spark_pink_cursors";
# extraConfig = "background=${./assets/Wallpapers/138.png}";
# };
# };
};
##############################################################################
# Security / PolicyKit / PAM
##############################################################################
security = {
rtkit.enable = true;
polkit.enable = true;
pam.services = {
swaylock = { };
greetd.enableGnomeKeyring = true;
greetd.kwallet.enable = true;
};
};
##############################################################################
# Virtualisation
##############################################################################
virtualisation = {
docker = {
enable = true;
storageDriver = lib.mkIf (systemName == "pc") "btrfs";
};
libvirtd.enable = true;
};
}

View File

@@ -0,0 +1,144 @@
{
config,
lib,
pkgs,
...
}:
{
boot = {
kernelModules = lib.mkForce [
"cec"
];
kernelParams = lib.mkForce [
"ipv6e=1"
"quiet"
"splash"
];
plymouth = {
enable = true;
themePackages = [ pkgs.adi1090x-plymouth-themes ];
theme = "abstract_ring_alt";
};
};
# ── HDMI-CEC: Turn on TV when Steam specialisation starts ─────────────────────
services.udev.packages = [ pkgs.libcec ]; # ensures cec-utils is in PATH
services.blueman.enable = true;
services.seatd.enable = true;
# A user service that runs once the graphical session (Steam/GameScope) is ready
systemd.services.cec-tv-control = {
description = "Control TV via HDMI-CEC (turn on early, turn off on shutdown)";
wantedBy = [ "multi-user.target" ];
# Run very early: after modules load and local filesystems are available,
# but before Plymouth boot splash quits and before the display manager
after = [
"systemd-modules-load.service"
"local-fs.target"
"systemd-udev-settle.service"
];
before = [
"plymouth-quit-wait.service"
"greetd.service"
];
# Ensure the /dev/cec* device exists (udev settles early)
requires = [ "systemd-udev-settle.service" ];
serviceConfig = {
Type = "oneshot";
RemainAfterExit = true;
# Turn TV on during boot
ExecStart = toString (
pkgs.writeShellScript "cec-tv-on.sh" ''
sleep 3 # Give CEC time to initialize
${pkgs.libcec}/bin/cec-client -s -d 1 <<EOF
on 0
EOF
sleep 2
${pkgs.libcec}/bin/cec-client -s -d 1 <<EOF
as
EOF
''
);
# Turn TV off on shutdown/reboot (ExecStop runs when the service stops)
ExecStop = toString (
pkgs.writeShellScript "cec-tv-off.sh" ''
${pkgs.libcec}/bin/cec-client -s -d 1 <<EOF
standby 0
EOF
''
);
};
};
# THIS is the important part direct boot into the Gamescope Steam session
services.greetd = {
enable = true;
restart = true;
settings = {
# Tell greetd to auto-start the official gamescope steam session immediately
# HDMI-A-2
default_session = {
command = "${pkgs.gamescope}/bin/gamescope --prefer-output HDMI-A-2 --hdr-enabled --steam --mangoapp -- steam -pipewire-dmabuf -gamepadui -steamos3 > /dev/null 2>&1";
user = "game";
};
};
};
# Auto-login the game user (no password prompt ever)
services.getty.autologinUser = "game";
# Make sure the user service starts automatically
systemd.user.targets.graphical-session = {
# This target already exists, we just ensure its active
unitConfig = {
RefuseManualStart = false;
RefuseManualStop = false;
};
};
environment = {
systemPackages = with pkgs; [
mangohud
gamemode
gamescope-wsi
];
variables = {
#LIBSEAT_BACKEND = "logind";
};
};
jovian.decky-loader = {
enable = true;
user = "game"; # Run as your gaming user
stateDir = "/home/game/.local/share/decky"; # Store plugins/data in user's home (adjust if preferred)
# Optional: Add extra packages if needed for specific plugins
# extraPackages = with pkgs; [ some-package ];
# extraPythonPackages = ps: with ps; [ some-python-package ];
};
programs = {
gamescope = {
enable = true;
capSysNice = true;
};
steam = {
enable = true;
remotePlay.openFirewall = true;
dedicatedServer.openFirewall = true;
extraCompatPackages = with pkgs; [
gamescope
mangohud
gamemode
gamescope-wsi
];
gamescopeSession = {
enable = true;
};
};
};
}