1
0
Fork 0
mirror of https://git.sr.ht/~neverness/ultima synced 2024-12-26 12:53:52 +00:00
This commit is contained in:
neverness 2024-12-06 21:57:22 +09:00
parent 3fb0238d90
commit 581d4201df
24 changed files with 369 additions and 170 deletions

View file

@ -165,11 +165,11 @@
},
"locked": {
"dir": "pkgs/firefox-addons",
"lastModified": 1733390410,
"narHash": "sha256-bM3FIksaYkRloRh3y6GzuUrsJB7EizYtzeCgyftQ9rc=",
"lastModified": 1733457807,
"narHash": "sha256-o1x17M0MOTXnX26Q1vuKPOIrgHEdBgCXLNd0Jsnt6oc=",
"owner": "rycee",
"repo": "nur-expressions",
"rev": "5f39164f253794b0101d596b7d4a7a0253f4b762",
"rev": "a2c15a4676b2d3d3adc3a2dc8045b5af28dc5b65",
"type": "gitlab"
},
"original": {
@ -554,11 +554,11 @@
"xdph": "xdph"
},
"locked": {
"lastModified": 1733369810,
"narHash": "sha256-veg37osP0Nmby/Bt7mdqD6k+Co3wO4jwnth0B2Z7vHU=",
"lastModified": 1733427350,
"narHash": "sha256-sasR3Jo4Rdo/3MJWCFzAgmhQ8s8VZ0c9+yxiW7GX8QY=",
"owner": "hyprwm",
"repo": "Hyprland",
"rev": "ceef4fb3a5efe1617790f56e2701846a21c2533d",
"rev": "a7a6eedc2139564abc1fe09feee1ff32b53e1081",
"type": "github"
},
"original": {
@ -750,6 +750,38 @@
"type": "github"
}
},
"nixpkgsMaster": {
"locked": {
"lastModified": 1733469320,
"narHash": "sha256-/W06c3jeUgeoivwE9MTVAPbNUX1HazSYAZmZfUExFoQ=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "10f4a9ab7541ca6a76f8a98a7cd5fae70a425f7e",
"type": "github"
},
"original": {
"owner": "nixos",
"ref": "master",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgsStable": {
"locked": {
"lastModified": 1733469350,
"narHash": "sha256-GgHsM5jm8s/F8pD+S09BXXoBrHy20x0hUJU7SpkFQow=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "7314c6b5c5d5fbb83d07db52787a4510d15d222c",
"type": "github"
},
"original": {
"owner": "nixos",
"ref": "release-24.11",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs_2": {
"locked": {
"lastModified": 1732758367,
@ -828,11 +860,11 @@
},
"nur": {
"locked": {
"lastModified": 1733396819,
"narHash": "sha256-AEBmhobRo6PcvaZn9oEfjsQ/NElKBIBj8Va7sivSyzw=",
"lastModified": 1733467284,
"narHash": "sha256-pzSHveN18sSTTrjE5KU2si3h7XEOawOMLcasgGPjRK8=",
"owner": "nix-community",
"repo": "NUR",
"rev": "e6098b0360b6436634f3604c134e99b608a8c252",
"rev": "8e6e9b8e2d04f0eea11dfa701f790bee797295b1",
"type": "github"
},
"original": {
@ -915,6 +947,8 @@
"home-manager": "home-manager",
"hyprland": "hyprland",
"nixpkgs": "nixpkgs_3",
"nixpkgsMaster": "nixpkgsMaster",
"nixpkgsStable": "nixpkgsStable",
"nur": "nur",
"parts": "parts",
"phani": "phani",
@ -952,11 +986,11 @@
]
},
"locked": {
"lastModified": 1733372233,
"narHash": "sha256-nEpd7QFcjHXop4Km9ldh1fXq0K10/u7kPlchPXl44/g=",
"lastModified": 1733458623,
"narHash": "sha256-52PZbQysGpULrOehi4+807Qj3jSa3fXGJw0wuRxQfvo=",
"owner": "Gerg-L",
"repo": "spicetify-nix",
"rev": "8a832957847b643f758263293ccca6e801614a1c",
"rev": "ebe9e466f8eb5b1ae3079d9c44cb4d8a56f8e5c2",
"type": "github"
},
"original": {
@ -982,11 +1016,11 @@
"tinted-tmux": "tinted-tmux"
},
"locked": {
"lastModified": 1733262405,
"narHash": "sha256-/AT315It87ll6mlZLYcmfoe6Uogx9MjPBCCZZZTq8xY=",
"lastModified": 1733427445,
"narHash": "sha256-E854RAbAX+DZHDo4HIk2nkqpIvvoAm+P7oDx7TmhWk8=",
"owner": "danth",
"repo": "stylix",
"rev": "ffba1f1bab63ea49541f812c72a4fcf305461d67",
"rev": "eb918dbffa24c4dae497f3ce3173660f948d5237",
"type": "github"
},
"original": {
@ -1147,11 +1181,11 @@
},
"locked": {
"dir": "packaging/nix",
"lastModified": 1733037609,
"narHash": "sha256-HkS24indfMaQbVZ+9GY5BHc+rqPvh8htF0rWYhvgPKI=",
"lastModified": 1733450594,
"narHash": "sha256-UlWmVUocOgkT/OpqXwcfFFRQSH28jncpWRqFNGVuh6I=",
"ref": "refs/heads/main",
"rev": "e559e2e50999093c3e837d33886f9e14e34ead0a",
"revCount": 863,
"rev": "1c3dd941402a782dc9d3582ba6aaac00f5e498e0",
"revCount": 864,
"submodules": true,
"type": "git",
"url": "https://github.com/Open-Wine-Components/umu-launcher/?dir=packaging/nix"

View file

@ -1,6 +1,8 @@
{
inputs = {
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable"; # UNSTABLE
nixpkgsStable.url = "github:nixos/nixpkgs/release-24.11"; # 24.11
nixpkgsMaster.url = "github:nixos/nixpkgs/master"; # MASTER
nur.url = "github:nix-community/NUR"; # NUR
hardware.url = "github:NixOS/nixos-hardware/master"; # HARDWARE

View file

@ -10,7 +10,7 @@
fzf = True;
git = True;
helix = True;
joshuto = True;
joshuto = False;
legendary = True;
micro = False;
rmpc = False;
@ -19,7 +19,8 @@
zoxide = True;
};
gui = { # GUI PROGRAMS
floorp = True;
floorp = False;
minecraft = True // { cli = True; };
mpv = True;
obs = True;
qbittorrent = True;
@ -30,13 +31,13 @@
custom = {
anicli = True;
mabel = False;
rustmission = True;
torque = True;
rustmission = False;
torque = False;
};
};
shells = { # SHELLS
fish = True;
nushell = True;
nushell = False;
tmux = False;
zsh = False;
starship = True;
@ -47,10 +48,10 @@
stylix = True // {
theme = "paradise";
image = "train";
cursor = with config.lib.stylix.colors; {
bg = "#${base0E}";
ol = "#${base00}";
ac = "#${base0E}";
cursor = with config.lib.stylix.colors.withHashtag; {
bg = "${base0E}";
ol = "${base00}";
ac = "${base0E}";
};
};
};
@ -71,7 +72,7 @@
};
misc = { # MISC MODULES
dconf = True;
xdg = True;
xdg.mime = True;
};
};
}

View file

@ -2,7 +2,6 @@
imports = with inputs; [ nur.hmModules.nur ];
module.programs = {
gui.pkgs = with pkgs; [
foot
nemo # GUI FM
nemo-fileroller # ADDON
file-roller # ARCHIVER
@ -17,12 +16,6 @@
bottles # LAUNCH GAMES WITHOUT STEAM
mindustry-wayland # MINDUSTRY LETSSS GOOOOO
(prismlauncher.override {
gamemodeSupport = true;
controllerSupport = true;
textToSpeechSupport = false;
jdks = [ temurin-jre-bin-21 temurin-jre-bin-17 temurin-jre-bin-8 ];
}) # MINECRAFT IS MY LIFE
inputs.zen.packages."${system}".specific # COOL BROWSER
];

View file

@ -2,6 +2,7 @@
imports = [ ./parts ../../modules/nixos ];
module = {
themes.stylix = True // { theme = "paradise"; };
base = True;
# HARDWARE MODULES
hardware = {
amd = True // { amdvlk = False; };
@ -9,7 +10,6 @@
boot = True // { plymouth = True; };
network = True;
security = True;
sound = True;
};
# SERVICES MODULES
services = {
@ -20,9 +20,10 @@
gvfs = True;
polkit = True;
printing = False;
tailscale = True;
tailscale = False;
tlp = False;
transmission = True;
transmission = False;
zapret = True;
zram = True // { algo = "zstd"; };
};
# PROGRAMS MODULES
@ -31,7 +32,7 @@
hyprland = True;
sway = False;
steam = True;
hamachi = True;
hamachi = False // { gui = False; };
torrserver = True;
};
misc = {
@ -44,7 +45,6 @@
terraria = False;
users = True // { shell = "fish"; };
variables = True;
nix = True;
};
};

View file

@ -2,14 +2,12 @@
with lib;
let
cfg = config.module.misc.xdg;
hmdir = config.home.homeDirectory;
let hmdir = config.home.homeDirectory;
in {
options = { module.misc.xdg = { enable = mkEnableOption ""; }; };
options = { module.misc.xdg = { mime.enable = mkEnableOption ""; }; };
imports = [ ./mimeApps.nix ];
config = mkIf cfg.enable {
config = {
xdg = {
mime = True;
portal = True // {

View file

@ -1,5 +1,14 @@
{
imports =
[ ./floorp ./mpv ./obs ./qbittorrent ./spotify ./swayimg ./zed ./pkgs.nix ];
imports = [
./floorp
./minecraft
./mpv
./obs
./qbittorrent
./spotify
./swayimg
./zed
./pkgs.nix
];
}

View file

@ -0,0 +1,33 @@
{ pkgs, lib, config, ... }:
with lib;
let
cfg = config.module.programs.gui.minecraft;
jre = with pkgs; [ temurin-jre-bin-21 temurin-jre-bin-17 temurin-jre-bin-8 ];
in {
options = {
module.programs.gui.minecraft = {
enable = mkEnableOption "";
cli.enable = mkEnableOption "";
};
};
config = mkMerge [
(mkIf cfg.enable { # BEST MINECRAFT LACUNHER
home.packages = with pkgs;
[
(prismlauncher.override {
gamemodeSupport = true;
controllerSupport = true;
textToSpeechSupport = false;
jdks = jre;
})
];
})
(mkIf cfg.cli.enable { # CLI LAUNCER
home.packages = with pkgs; [ portablemc ferium ];
})
];
}

View file

@ -0,0 +1,53 @@
{ lib, stdenv, python3Packages, fetchFromGitHub, fetchurl, installShellFiles
, libX11, libXext, libXcursor, libXrandr, libXxf86vm, libpulseaudio, libGL, glfw
, openal, udev, flite, java ? [ ] }:
let
runtimeLibs = [
libX11
libXext
libXcursor
libXrandr
libXxf86vm
libpulseaudio
libGL
glfw
openal
(lib.getLib stdenv.cc.cc)
udev
] ++ lib.optional flite;
patch = fetchurl {
url =
"https://raw.githubusercontent.com/NixOS/nixpkgs/refs/heads/nixos-unstable/pkgs/by-name/po/portablemc/use-builtin-java.patch";
hash = "";
};
in python3Packages.buildPythonApplication rec {
pname = "portablemc";
version = "4.4.0";
pyproject = true;
disabled = python3Packages.pythonOlder "3.8";
src = fetchFromGitHub {
owner = "mindstorm38";
repo = "portablemc";
rev = "refs/tags/v${version}";
hash = "sha256-JDosvjbpoDC+xJ15ejcMJd+jA09RLR+whVZblMu+ljk=";
};
patches = [ patch ];
nativeBuildInputs = [ installShellFiles ];
build-system = [ python3Packages.poetry-core ];
dependencies = [ python3Packages.certifi ];
postInstall = ''
installShellCompletion --cmd portablemc \
--bash <($out/bin/portablemc show completion bash) \
--zsh <($out/bin/portablemc show completion zsh)
'';
preFixup = ''
makeWrapperArgs+=(
--prefix LD_LIBRARY_PATH : ${lib.makeLibraryPath runtimeLibs}
--prefix PATH : ${lib.makeBinPath [ java ]}
)
'';
meta = {
mainProgram = "portablemc";
maintainers = with lib.maintainers; [ tomasajt uwugda ];
};
}

View file

@ -0,0 +1,48 @@
{
programs.mpv.bindings = {
WHEEL_UP = "add volume 2";
WHEEL_DOWN = "add volume -2";
"Shift+WHEEL_UP" = "add volume 5";
"Shift+WHEEL_DOWN" = "add volume -5";
RIGHT = "seek 5";
l = "seek 5";
"д" = "seek 5";
LEFT = "seek -5";
h = "seek -5";
"р" = "seek -5";
UP = "add volume 2";
k = "add volume 2";
"л" = "add volume 2";
DOWN = "add volume -2";
j = "add volume -2";
"о" = "add volume -2";
"Shift+RIGHT" = "seek 10";
"Shift+LEFT" = "seek -10";
"Shift+UP" = "add volume 5";
"Shift+DOWN" = "add volume -5";
q = "quit";
"й" = "quit";
Q = "quit-watch-later";
SPACE = "cycle pause";
p = "cycle pause";
"з" = "cycle pause";
m = "cycle mute";
"ь" = "cycle mute";
o = "show-progress";
"щ" = "show-progress";
f = "cycle fullscreen";
"а" = "cycle fullscreen";
ESC = "set fullscreen no";
};
}

View file

@ -6,6 +6,7 @@ let cfg = config.module.programs.gui.mpv;
in {
options = { module.programs.gui.mpv = { enable = mkEnableOption ""; }; };
imports = [ ./bindings.nix ./osc.nix ];
config = mkIf cfg.enable {
programs.mpv = True // {
scripts = with pkgs.mpvScripts; [ thumbnail sponsorblock-minimal ];
@ -30,62 +31,16 @@ in {
config = {
fs = "yes";
osc = "no";
glsl-shaders =
"${pkgs.anime4k}/Anime4K_Clamp_Highlights.glsl:${pkgs.anime4k}/Anime4K_Restore_CNN_VL.glsl:${pkgs.anime4k}/Anime4K_Upscale_CNN_x2_VL.glsl:${pkgs.anime4k}/Anime4K_AutoDownscalePre_x2.glsl:${pkgs.anime4k}/Anime4K_AutoDownscalePre_x4.glsl:${pkgs.anime4k}/Anime4K_Upscale_CNN_x2_M.glsl";
glsl-shaders = with pkgs;
"${anime4k}/Anime4K_Clamp_Highlights.glsl:${anime4k}/Anime4K_Restore_CNN_VL.glsl:${anime4k}/Anime4K_Upscale_CNN_x2_VL.glsl:${anime4k}/Anime4K_AutoDownscalePre_x2.glsl:${anime4k}/Anime4K_AutoDownscalePre_x4.glsl:${anime4k}/Anime4K_Upscale_CNN_x2_M.glsl";
};
bindings = {
WHEEL_UP = "add volume 2";
WHEEL_DOWN = "add volume -2";
"Shift+WHEEL_UP" = "add volume 5";
"Shift+WHEEL_DOWN" = "add volume -5";
RIGHT = "seek 5";
l = "seek 5";
"д" = "seek 5";
LEFT = "seek -5";
h = "seek -5";
"р" = "seek -5";
UP = "add volume 2";
k = "add volume 2";
"л" = "add volume 2";
DOWN = "add volume -2";
j = "add volume -2";
"о" = "add volume -2";
"Shift+RIGHT" = "seek 10";
"Shift+LEFT" = "seek -10";
"Shift+UP" = "add volume 5";
"Shift+DOWN" = "add volume -5";
q = "quit";
"й" = "quit";
Q = "quit-watch-later";
SPACE = "cycle pause";
p = "cycle pause";
"з" = "cycle pause";
m = "cycle mute";
"ь" = "cycle mute";
o = "show-progress";
"щ" = "show-progress";
f = "cycle fullscreen";
"а" = "cycle fullscreen";
ESC = "set fullscreen no";
};
extraInput = ''
CTRL+1 no-osd change-list glsl-shaders set "${pkgs.anime4k}/Anime4K_Clamp_Highlights.glsl:${pkgs.anime4k}/Anime4K_Restore_CNN_VL.glsl:${pkgs.anime4k}/Anime4K_Upscale_CNN_x2_VL.glsl:${pkgs.anime4k}/Anime4K_AutoDownscalePre_x2.glsl:${pkgs.anime4k}/Anime4K_AutoDownscalePre_x4.glsl:${pkgs.anime4k}/Anime4K_Upscale_CNN_x2_M.glsl"; show-text "Anime4K: Mode A (HQ)"
CTRL+2 no-osd change-list glsl-shaders set "${pkgs.anime4k}/Anime4K_Clamp_Highlights.glsl:${pkgs.anime4k}/Anime4K_Restore_CNN_Soft_VL.glsl:${pkgs.anime4k}/Anime4K_Upscale_CNN_x2_VL.glsl:${pkgs.anime4k}/Anime4K_AutoDownscalePre_x2.glsl:${pkgs.anime4k}/Anime4K_AutoDownscalePre_x4.glsl:${pkgs.anime4k}/Anime4K_Upscale_CNN_x2_M.glsl"; show-text "Anime4K: Mode B (HQ)"
CTRL+3 no-osd change-list glsl-shaders set "${pkgs.anime4k}/Anime4K_Clamp_Highlights.glsl:${pkgs.anime4k}/Anime4K_Upscale_Denoise_CNN_x2_VL.glsl:${pkgs.anime4k}/Anime4K_AutoDownscalePre_x2.glsl:${pkgs.anime4k}/Anime4K_AutoDownscalePre_x4.glsl:${pkgs.anime4k}/Anime4K_Upscale_CNN_x2_M.glsl"; show-text "Anime4K: Mode C (HQ)"
CTRL+4 no-osd change-list glsl-shaders set "${pkgs.anime4k}/Anime4K_Clamp_Highlights.glsl:${pkgs.anime4k}/Anime4K_Restore_CNN_VL.glsl:${pkgs.anime4k}/Anime4K_Upscale_CNN_x2_VL.glsl:${pkgs.anime4k}/Anime4K_Restore_CNN_M.glsl:${pkgs.anime4k}/Anime4K_AutoDownscalePre_x2.glsl:${pkgs.anime4k}/Anime4K_AutoDownscalePre_x4.glsl:${pkgs.anime4k}/Anime4K_Upscale_CNN_x2_M.glsl"; show-text "Anime4K: Mode A+A (HQ)"
CTRL+5 no-osd change-list glsl-shaders set "${pkgs.anime4k}/Anime4K_Clamp_Highlights.glsl:${pkgs.anime4k}/Anime4K_Restore_CNN_Soft_VL.glsl:${pkgs.anime4k}/Anime4K_Upscale_CNN_x2_VL.glsl:${pkgs.anime4k}/Anime4K_AutoDownscalePre_x2.glsl:${pkgs.anime4k}/Anime4K_AutoDownscalePre_x4.glsl:${pkgs.anime4k}/Anime4K_Restore_CNN_Soft_M.glsl:${pkgs.anime4k}/Anime4K_Upscale_CNN_x2_M.glsl"; show-text "Anime4K: Mode B+B (HQ)"
CTRL+6 no-osd change-list glsl-shaders set "${pkgs.anime4k}/Anime4K_Clamp_Highlights.glsl:${pkgs.anime4k}/Anime4K_Upscale_Denoise_CNN_x2_VL.glsl:${pkgs.anime4k}/Anime4K_AutoDownscalePre_x2.glsl:${pkgs.anime4k}/Anime4K_AutoDownscalePre_x4.glsl:${pkgs.anime4k}/Anime4K_Restore_CNN_M.glsl:${pkgs.anime4k}/Anime4K_Upscale_CNN_x2_M.glsl"; show-text "Anime4K: Mode C+A (HQ)"
extraInput = with pkgs; ''
CTRL+1 no-osd change-list glsl-shaders set "${anime4k}/Anime4K_Clamp_Highlights.glsl:${anime4k}/Anime4K_Restore_CNN_VL.glsl:${anime4k}/Anime4K_Upscale_CNN_x2_VL.glsl:${anime4k}/Anime4K_AutoDownscalePre_x2.glsl:${anime4k}/Anime4K_AutoDownscalePre_x4.glsl:${anime4k}/Anime4K_Upscale_CNN_x2_M.glsl"; show-text "Anime4K: Mode A (HQ)"
CTRL+2 no-osd change-list glsl-shaders set "${anime4k}/Anime4K_Clamp_Highlights.glsl:${anime4k}/Anime4K_Restore_CNN_Soft_VL.glsl:${anime4k}/Anime4K_Upscale_CNN_x2_VL.glsl:${anime4k}/Anime4K_AutoDownscalePre_x2.glsl:${anime4k}/Anime4K_AutoDownscalePre_x4.glsl:${anime4k}/Anime4K_Upscale_CNN_x2_M.glsl"; show-text "Anime4K: Mode B (HQ)"
CTRL+3 no-osd change-list glsl-shaders set "${anime4k}/Anime4K_Clamp_Highlights.glsl:${anime4k}/Anime4K_Upscale_Denoise_CNN_x2_VL.glsl:${anime4k}/Anime4K_AutoDownscalePre_x2.glsl:${anime4k}/Anime4K_AutoDownscalePre_x4.glsl:${anime4k}/Anime4K_Upscale_CNN_x2_M.glsl"; show-text "Anime4K: Mode C (HQ)"
CTRL+4 no-osd change-list glsl-shaders set "${anime4k}/Anime4K_Clamp_Highlights.glsl:${anime4k}/Anime4K_Restore_CNN_VL.glsl:${anime4k}/Anime4K_Upscale_CNN_x2_VL.glsl:${anime4k}/Anime4K_Restore_CNN_M.glsl:${anime4k}/Anime4K_AutoDownscalePre_x2.glsl:${anime4k}/Anime4K_AutoDownscalePre_x4.glsl:${anime4k}/Anime4K_Upscale_CNN_x2_M.glsl"; show-text "Anime4K: Mode A+A (HQ)"
CTRL+5 no-osd change-list glsl-shaders set "${anime4k}/Anime4K_Clamp_Highlights.glsl:${anime4k}/Anime4K_Restore_CNN_Soft_VL.glsl:${anime4k}/Anime4K_Upscale_CNN_x2_VL.glsl:${anime4k}/Anime4K_AutoDownscalePre_x2.glsl:${anime4k}/Anime4K_AutoDownscalePre_x4.glsl:${anime4k}/Anime4K_Restore_CNN_Soft_M.glsl:${anime4k}/Anime4K_Upscale_CNN_x2_M.glsl"; show-text "Anime4K: Mode B+B (HQ)"
CTRL+6 no-osd change-list glsl-shaders set "${anime4k}/Anime4K_Clamp_Highlights.glsl:${anime4k}/Anime4K_Upscale_Denoise_CNN_x2_VL.glsl:${anime4k}/Anime4K_AutoDownscalePre_x2.glsl:${anime4k}/Anime4K_AutoDownscalePre_x4.glsl:${anime4k}/Anime4K_Restore_CNN_M.glsl:${anime4k}/Anime4K_Upscale_CNN_x2_M.glsl"; show-text "Anime4K: Mode C+A (HQ)"
CTRL+0 no-osd change-list glsl-shaders clr ""; show-text "GLSL shaders cleared"
'';

View file

@ -0,0 +1,19 @@
{ config, ... }:
with config.lib.stylix.colors.withHashtag; {
xdg.configFile."mpv/script-opts/osc.conf".text = ''
layout=bottombar
seekbarstyle=bar
boxalpha=0
fadeduration=120
background_color=${base00}
timecode_color=${base04}
title_color=${base06}
time_pos_color=${base06}
time_pos_outline_color=${base06}
buttons_color=${base06}
top_buttons_color=${base06}
small_buttonsL_color=${base06}
small_buttonsR_color=${base06}
held_element_color=${base06}
'';
}

View file

@ -38,7 +38,7 @@ in {
};
font = lib.mkForce {
size = 12;
name = "JetBrainsMono NerdFont";
name = "JetBrainsMono Nerd Font";
package = (pkgs.callPackage ../nerdfonts/default.nix {
fonts = [ "JetBrainsMono" ];
});

View file

@ -53,7 +53,7 @@ in {
};
fonts = let
font = {
name = "JetBrainsMono NerdFont";
name = "JetBrainsMono Nerd Font";
package = (pkgs.callPackage ../nerdfonts/default.nix {
fonts = [ "JetBrainsMono" ];
});
@ -61,6 +61,7 @@ in {
in {
serif = font;
monospace = font;
emoji = font;
sizes = {
desktop = 10;
popups = 10;

View file

@ -0,0 +1,30 @@
{ pkgs, lib, config, hostName, userName, True, False, ... }:
with lib;
let cfg = config.module.base;
in {
options = { module.base = { enable = mkEnableOption ""; }; };
config = mkIf cfg.enable {
module.hardware.sound = True; # PIPEWIRE
services.getty.autologinUser = userName; # AUTOLOGIN
boot = { # BOOT
kernelPackages = with pkgs; linuxPackages_zen;
initrd.systemd = True;
loader = {
systemd-boot = True // { configurationLimit = 4; };
timeout = 0;
};
};
networking = { # NETWORKING
hostName = hostName;
useDHCP = mkDefault true;
};
security = { # SUDO RS
sudo = False;
sudo-rs = True;
};
};
}

View file

@ -1 +1 @@
{ imports = [ ./hardware ./misc ./programs ./services ./theme ]; }
{ imports = [ ./base ./hardware ./misc ./programs ./services ./theme ]; }

View file

@ -16,7 +16,6 @@ in {
(mkIf cfg.enable {
boot = { # ITSELF LOL
tmp.cleanOnBoot = true;
kernelPackages = pkgs.linuxPackages_zen;
kernelModules = [ "kvm-amd" ];
consoleLogLevel = 0;
kernelParams = [
@ -34,13 +33,8 @@ in {
"rd.systemd.show_status=false"
"psmouse.synaptics_intertouch=0"
];
loader = { # SYSTEMD BOOT AS DEFAULT
systemd-boot = True // { configurationLimit = 4; };
efi.canTouchEfiVariables = true;
timeout = 0; # TIMEOUT FOR LAUNCH
};
loader.efi.canTouchEfiVariables = true;
initrd = { # IDK
systemd = True;
compressor = "zstd";
compressorArgs = [ "-9" ];
verbose = false;

View file

@ -1,4 +1,4 @@
{ pkgs, lib, config, hostName, True, False, ... }:
{ pkgs, lib, config, True, False, ... }:
with lib;
@ -13,7 +13,6 @@ in {
pptp
];
networking = { # FOR NETWORK
hostName = hostName;
nameservers = [ "::1" "127.0.0.1" "1.1.1.1" "1.0.0.1" ];
resolvconf.dnsSingleRequest = true;
networkmanager = True // {
@ -24,8 +23,6 @@ in {
backend = "iwd";
};
};
useDHCP = mkDefault true;
nftables = True;
};
services = {
resolved = True;

View file

@ -7,25 +7,22 @@ in {
options = { module.hardware.security = { enable = mkEnableOption ""; }; };
config = mkIf cfg.enable {
security = {
sudo = False;
sudo-rs = True // { # TOP
execWheelOnly = true;
wheelNeedsPassword = true;
extraRules = [{
users = [ userName ];
commands = with pkgs; [
{
command = "${light}/bin/light";
options = [ "NOPASSWD" ];
}
{
command = "${uutils-coreutils-noprefix}/bin/tee";
options = [ "NOPASSWD" ];
}
];
}];
};
security.sudo-rs = {
execWheelOnly = true;
wheelNeedsPassword = true;
extraRules = [{
users = [ userName ];
commands = with pkgs; [
{
command = "${light}/bin/light";
options = [ "NOPASSWD" ];
}
{
command = "${uutils-coreutils-noprefix}/bin/tee";
options = [ "NOPASSWD" ];
}
];
}];
};
};
}

View file

@ -1,33 +1,24 @@
{ pkgs, lib, config, userName, ... }:
with lib;
let cfg = config.module.misc.nix;
in {
options = { module.misc.nix = { enable = mkEnableOption ""; }; };
config = mkIf cfg.enable {
nix = {
package = pkgs.nix;
settings = {
warn-dirty = false;
experimental-features = [ "nix-command" "flakes" ];
substituters = [
"https://hyprland.cachix.org" # HYPRLAND
];
trusted-public-keys = [
"hyprland.cachix.org-1:a7pgxzMz7+chwVL3/pzj6jIBMioiJM7ypFP8PwtkuGc=" # HYPRLAND
];
trusted-users = [ "${userName}" "@wheel" ];
};
{ pkgs, lib, userName, ... }: {
nix = {
package = pkgs.nix;
settings = {
warn-dirty = false;
experimental-features = [ "nix-command" "flakes" ];
trusted-users = [ "${userName}" "@wheel" ];
substituters = [
"https://hyprland.cachix.org" # HYPRLAND
];
trusted-public-keys = [
"hyprland.cachix.org-1:a7pgxzMz7+chwVL3/pzj6jIBMioiJM7ypFP8PwtkuGc=" # HYPRLAND
];
};
};
nixpkgs = {
hostPlatform = lib.mkDefault "x86_64-linux";
config = { # NIXPKGS SETS
allowBroken = true;
allowUnfree = true;
};
nixpkgs = {
hostPlatform = lib.mkDefault "x86_64-linux";
config = { # NIXPKGS SETS
allowBroken = true;
allowUnfree = true;
};
};
}

View file

@ -26,7 +26,7 @@ in {
programs = {
nano = False;
light = True;
git = True // { package = pkgs.gitMinimal; };
git = True // { package = mkDefault pkgs.gitMinimal; };
nh = True // { flake = flakeDir; };
};
})
@ -40,7 +40,8 @@ in {
(mkIf cfg.sway.enable {
programs.sway = True // { package = pkgs.swayfx; };
})
(mkIf cfg.hamachi.enable { programs.haguichi = True; })
(mkIf cfg.hamachi.enable { services.logmein-hamachi = True; })
(mkIf cfg.hamachi.gui.enable { programs.haguichi = True; })
(mkIf cfg.steam.enable {
environment.systemPackages = with pkgs; [ protonup-qt ];
hardware.xone = True;

View file

@ -10,6 +10,7 @@
./tailscale
./tlp
./transmission
./zapret
./zram
];
}

View file

@ -7,10 +7,7 @@ in {
options = { module.services.getty = { enable = mkEnableOption ""; }; };
config = mkIf cfg.enable {
services.getty = {
autologinUser = userName;
greetingLine = "Good day my lord ahhhh ${userName}";
};
services.getty.greetingLine = "Good day my lord ahhhh ${userName}";
};
}

View file

@ -0,0 +1,45 @@
{ lib, config, True, ... }:
with lib;
let cfg = config.module.services.zapret;
in {
options = { module.services.zapret = { enable = mkEnableOption ""; }; };
config = mkIf cfg.enable {
services.zapret = True // {
params =
[ "--dpi-desync=fake" "--dpi-desync-ttl=8" "-dpi-desync-repeats=15" ];
httpMode = "full";
udpSupport = true;
udpPorts = [ "50000:50099" ];
whitelist = [
"animego.org"
"github.io"
"proton.me"
"youtube.com"
"googlevideo.com"
"ytimg.com"
"youtu.be"
"rutracker.org"
"rutracker.cc"
"rutrk.org"
"t-ru.org"
"medium.com"
"dis.gd"
"discord.co"
"discord.com"
"discord.dev"
"discord.gg"
"discord.gift"
"discord.media"
"discord.new"
"discordapp.com"
"discordapp.net"
"discordcdn.com"
"discordstatus.com"
];
};
};
}