Compare commits
19 Commits
ec9f987c14
...
master
| Author | SHA1 | Date | |
|---|---|---|---|
| 0edd66d61a | |||
| 2f7ae02b36 | |||
| f7e26a9793 | |||
| 47cd19b701 | |||
| f0c2a38366 | |||
| b2b4e434fd | |||
| a442183047 | |||
| eb6019b131 | |||
| 423e136895 | |||
|
|
fe40f11559 | ||
| c45ec8d9cd | |||
|
|
f073bda700 | ||
|
|
af5ca69e02 | ||
| c22a16c4ea | |||
| 92d70ee2fc | |||
|
|
ebe65dc108 | ||
| 4a8274bd59 | |||
|
|
e7275b4c37 | ||
|
|
088c99e2cb |
@@ -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 = {
|
||||||
|
users = {
|
||||||
|
root = {
|
||||||
|
openssh = {
|
||||||
|
authorizedKeys = {
|
||||||
|
keys = [
|
||||||
|
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIDwjTCq2GXRuqVXf1CeyntkOIFYNu0+tW1lurW8PNtK1 zastian00@gmail.com"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
qt = {
|
mrfluffy = {
|
||||||
enable = true;
|
isNormalUser = true;
|
||||||
# style = "gtk2";
|
shell = pkgs.zsh;
|
||||||
platformTheme = "qt5ct";
|
createHome = true;
|
||||||
};
|
extraGroups = [
|
||||||
|
"wheel"
|
||||||
|
"networkmanager"
|
||||||
|
"video"
|
||||||
|
"render"
|
||||||
|
"docker"
|
||||||
|
"libvirt"
|
||||||
|
"input"
|
||||||
|
"seat"
|
||||||
|
"dialout"
|
||||||
|
];
|
||||||
|
packages = with pkgs; [ ];
|
||||||
|
};
|
||||||
|
|
||||||
xdg.menus.enable = true;
|
work = {
|
||||||
|
isNormalUser = true;
|
||||||
# Work around Dolphin menu oddities: force Plasma menu definition
|
shell = pkgs.zsh;
|
||||||
environment.etc."/xdg/menus/applications.menu".text =
|
createHome = true;
|
||||||
builtins.readFile "${pkgs.kdePackages.plasma-workspace}/etc/xdg/menus/plasma-applications.menu";
|
extraGroups = [
|
||||||
|
"wheel"
|
||||||
# Niri (via overlay)
|
"networkmanager"
|
||||||
#nixpkgs.overlays = [ inputs.niri.overlays.niri ];
|
"video"
|
||||||
#programs.niri = {
|
"render"
|
||||||
# enable = useNiri;
|
"docker"
|
||||||
# package = pkgs.niri-stable; # Only needed if not provided by the overlay
|
"libvirt"
|
||||||
#};
|
"input"
|
||||||
|
"seat"
|
||||||
# Hyprland
|
"dialout"
|
||||||
programs.hyprland = {
|
];
|
||||||
enable = useHypr;
|
packages = with pkgs; [ ];
|
||||||
package = inputs.hyprland.packages.${pkgs.system}.hyprland;
|
};
|
||||||
};
|
game = {
|
||||||
|
isNormalUser = true;
|
||||||
# X11 base (kept enabled for keymap + DM if needed)
|
description = "Dedicated gaming user (auto-login in Steam specialisation)";
|
||||||
services.xserver = {
|
shell = pkgs.bash;
|
||||||
enable = true;
|
createHome = true;
|
||||||
xkb = {
|
password = ""; # no password
|
||||||
layout = "ie";
|
extraGroups = [
|
||||||
variant = "";
|
"wheel"
|
||||||
|
"video"
|
||||||
|
"render"
|
||||||
|
"input"
|
||||||
|
"seat"
|
||||||
|
"networkmanager"
|
||||||
|
"dialout"
|
||||||
|
];
|
||||||
|
home = "/home/game";
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
groups.libvirtd.members = [
|
||||||
|
"mrfluffy"
|
||||||
|
"work"
|
||||||
|
];
|
||||||
|
|
||||||
# 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";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
##############################################################################
|
##############################################################################
|
||||||
# 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
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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";
|
||||||
|
|||||||
26
dots/dankMeterialShell.nix
Normal file
26
dots/dankMeterialShell.nix
Normal 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
|
||||||
|
#};
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -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 @@
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -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;
|
||||||
|
|
||||||
@@ -227,8 +232,8 @@ in
|
|||||||
# See https://wiki.hyprland.org/Configuring/Master-Layout/ for more
|
# See https://wiki.hyprland.org/Configuring/Master-Layout/ for more
|
||||||
master = {
|
master = {
|
||||||
new_status = "master";
|
new_status = "master";
|
||||||
mfact = 0.5;
|
mfact = 0.5;
|
||||||
new_on_top = true;
|
new_on_top = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
##########################################################################
|
##########################################################################
|
||||||
@@ -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 = [
|
||||||
|
|||||||
@@ -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;
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -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" ];
|
||||||
|
|||||||
@@ -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";
|
||||||
|
|||||||
697
flake.lock
generated
697
flake.lock
generated
File diff suppressed because it is too large
Load Diff
27
flake.nix
27
flake.nix
@@ -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
|
||||||
|
|||||||
@@ -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 [
|
||||||
|
(lib.mkIf (systemName == "pc") {
|
||||||
|
device = "/dev/disk/by-uuid/54188f21-d525-4681-a9d4-b798363eef17";
|
||||||
|
fsType = "ext4";
|
||||||
|
})
|
||||||
|
];
|
||||||
|
|
||||||
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 it’s not the home share
|
#fileSystems."/server" = lib.mkIf (systemName == "pc") { # or remove the mkIf if you want it on both
|
||||||
fsType = "cifs";
|
# device = "//192.168.1.8/mrfluffy"; # adjust the share name if it’s not the home share
|
||||||
options = let
|
# fsType = "cifs";
|
||||||
# Separate credentials from the Nix store (very important for security)
|
# options = let
|
||||||
credFile = "/etc/nixos/smb-credentials-mrfluffy";
|
# # Separate credentials from the Nix store (very important for security)
|
||||||
in [
|
# credFile = "/etc/nixos/smb-credentials-mrfluffy";
|
||||||
# Basic recommended options
|
# in [
|
||||||
"credentials=${credFile}"
|
# # Basic recommended options
|
||||||
"gid=users" # make files belong to the "users" group (or your preferred group)
|
# "credentials=${credFile}"
|
||||||
"uid=1000" # replace with your user’s UID, or use "uid=${config.users.users.yourname.uid}"
|
# "gid=users" # make files belong to the "users" group (or your preferred group)
|
||||||
"file_mode=0664"
|
# "uid=1000" # replace with your user’s UID, or use "uid=${config.users.users.yourname.uid}"
|
||||||
"dir_mode=0775"
|
# "file_mode=0664"
|
||||||
"nofail" # ← this makes the mount OPTIONAL (boot continues if unreachable)
|
# "dir_mode=0775"
|
||||||
"noauto" # don’t mount automatically at boot (optional, combine with x-systemd.automount)
|
# "nofail" # ← this makes the mount OPTIONAL (boot continues if unreachable)
|
||||||
"x-systemd.automount" # creates a systemd automount unit → mounts on first access
|
# "noauto" # don’t mount automatically at boot (optional, combine with x-systemd.automount)
|
||||||
"x-systemd.mount-timeout=15" # don’t wait forever
|
# "x-systemd.automount" # creates a systemd automount unit → mounts on first access
|
||||||
"vers=3.0" # force SMB3 if the server supports it (recommended)
|
# "x-systemd.mount-timeout=15" # don’t wait forever
|
||||||
# "iocharset=utf8" # usually not needed with modern servers
|
# "vers=3.0" # force SMB3 if the server supports it (recommended)
|
||||||
# "cache=loose" # improves performance for some workloads
|
# # "iocharset=utf8" # usually not needed with modern servers
|
||||||
];
|
# # "cache=loose" # improves performance for some workloads
|
||||||
};
|
# ];
|
||||||
|
#};
|
||||||
|
|
||||||
swapDevices =
|
swapDevices =
|
||||||
[ ]
|
[ ]
|
||||||
|
|||||||
101
home/game.nix
Executable file
101
home/game.nix
Executable 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;
|
||||||
|
}
|
||||||
@@ -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
|
||||||
@@ -196,7 +204,7 @@ 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
|
||||||
@@ -239,17 +249,21 @@ in
|
|||||||
gamemode
|
gamemode
|
||||||
goverlay
|
goverlay
|
||||||
(pkgs.heroic.override {
|
(pkgs.heroic.override {
|
||||||
extraPkgs = pkgs: [ pkgs.gamescope ]; # pulls in the real package
|
extraPkgs = pkgs: [ pkgs.gamescope ]; # pulls in the real package
|
||||||
})
|
})
|
||||||
prismlauncher
|
prismlauncher
|
||||||
protonup-qt
|
protonup-qt
|
||||||
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
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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)
|
||||||
|
|||||||
@@ -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") {
|
||||||
|
|||||||
@@ -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;
|
||||||
|
|||||||
@@ -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" ]; })
|
||||||
|
|||||||
@@ -8,22 +8,28 @@
|
|||||||
|
|
||||||
let
|
let
|
||||||
isLaptop = systemName == "laptop";
|
isLaptop = systemName == "laptop";
|
||||||
isPc = systemName == "pc";
|
isPc = systemName == "pc";
|
||||||
|
|
||||||
initrdBaseModules = [ "btusb" ];
|
initrdBaseModules = [ "btusb" ];
|
||||||
initrdLPModules = [ "kvm" ]; # for laptop & pc
|
initrdLPModules = [ "kvm" ]; # for laptop & pc
|
||||||
|
|
||||||
kernelBaseModules = [ "v4l2loopback" ];
|
kernelBaseModules = [ "v4l2loopback" ];
|
||||||
|
|
||||||
kernelBaseParams = [ ];
|
kernelBaseParams = [ ];
|
||||||
kernelLPParams = [ "ipv6e=1" ]; # for laptop & pc
|
kernelLPParams = [ "ipv6e=1" ]; # for laptop & pc
|
||||||
kernelLaptopOnly = [ "i915.force_probe=46a6" ];
|
kernelLaptopOnly = [ "i915.force_probe=46a6" ];
|
||||||
kernelPcOnly = [ "video=2560x1440x32" ];
|
kernelPcOnly = [ "video=2560x1440x32" ];
|
||||||
in
|
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;
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -33,7 +39,7 @@ in
|
|||||||
];
|
];
|
||||||
|
|
||||||
kernelPackages = pkgs.linuxPackages_latest;
|
kernelPackages = pkgs.linuxPackages_latest;
|
||||||
kernelModules = kernelBaseModules;
|
kernelModules = kernelBaseModules;
|
||||||
|
|
||||||
extraModulePackages = [
|
extraModulePackages = [
|
||||||
pkgs.linuxPackages_latest.v4l2loopback
|
pkgs.linuxPackages_latest.v4l2loopback
|
||||||
@@ -42,17 +48,12 @@ in
|
|||||||
kernelParams = lib.mkMerge [
|
kernelParams = lib.mkMerge [
|
||||||
(lib.mkIf (isLaptop || isPc) kernelLPParams)
|
(lib.mkIf (isLaptop || isPc) kernelLPParams)
|
||||||
(lib.mkIf isLaptop kernelLaptopOnly)
|
(lib.mkIf isLaptop kernelLaptopOnly)
|
||||||
(lib.mkIf isPc kernelPcOnly)
|
(lib.mkIf isPc kernelPcOnly)
|
||||||
];
|
];
|
||||||
|
|
||||||
extraModprobeConfig = ''
|
extraModprobeConfig = ''
|
||||||
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";
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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;
|
||||||
};
|
};
|
||||||
})
|
|
||||||
];
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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,24 +192,26 @@
|
|||||||
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 =
|
||||||
script = pkgs.writeShellScript "steam-run-url-service.sh" ''
|
let
|
||||||
#!/usr/bin/env bash
|
script = pkgs.writeShellScript "steam-run-url-service.sh" ''
|
||||||
FIFO="/run/user/$(id --user)/steam-run-url.fifo"
|
#!/usr/bin/env bash
|
||||||
if [ ! -p "$FIFO" ]; then
|
FIFO="/run/user/$(id --user)/steam-run-url.fifo"
|
||||||
mkfifo "$FIFO"
|
if [ ! -p "$FIFO" ]; then
|
||||||
fi
|
mkfifo "$FIFO"
|
||||||
while true; do
|
|
||||||
if read line <"$FIFO"; then
|
|
||||||
steam_env=();
|
|
||||||
if [ "$XDG_SESSION_DESKTOP" = "sway" ] || [ "$XDG_SESSION_DESKTOP" = "Hyprland" ] || [ "$DESKTOP_SESSION" = "sway" ] || [ "$DESKTOP_SESSION" = "Hyprland" ]; then
|
|
||||||
steam_env+=("QT_QPA_PLATFORM=wayland");
|
|
||||||
fi
|
|
||||||
steam "$line"
|
|
||||||
fi
|
fi
|
||||||
done
|
while true; do
|
||||||
'';
|
if read line <"$FIFO"; then
|
||||||
in "${script}";
|
steam_env=();
|
||||||
|
if [ "$XDG_SESSION_DESKTOP" = "sway" ] || [ "$XDG_SESSION_DESKTOP" = "Hyprland" ] || [ "$DESKTOP_SESSION" = "sway" ] || [ "$DESKTOP_SESSION" = "Hyprland" ]; then
|
||||||
|
steam_env+=("QT_QPA_PLATFORM=wayland");
|
||||||
|
fi
|
||||||
|
steam "$line"
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
'';
|
||||||
|
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 = ''
|
||||||
|
|||||||
116
system/specialisation/main-system.nix
Normal file
116
system/specialisation/main-system.nix
Normal 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;
|
||||||
|
};
|
||||||
|
|
||||||
|
}
|
||||||
144
system/specialisation/steam.nix
Normal file
144
system/specialisation/steam.nix
Normal 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 it’s 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;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user