1
0
Fork 0
mirror of https://git.sr.ht/~neverness/ultima synced 2024-12-29 02:03:54 +00:00
This commit is contained in:
neverness 2024-12-03 23:20:37 +09:00
parent cd2562bf0b
commit 75e6963dcf
64 changed files with 1000 additions and 649 deletions

View file

@ -227,6 +227,22 @@
"type": "github" "type": "github"
} }
}, },
"flake-compat_4": {
"flake": false,
"locked": {
"lastModified": 1650374568,
"narHash": "sha256-Z+s0J8/r907g149rllvwhb4pKi8Wam5ij0st8PwAh+E=",
"owner": "edolstra",
"repo": "flake-compat",
"rev": "b4a34015c698c7793d592d66adbab377907a2be8",
"type": "github"
},
"original": {
"owner": "edolstra",
"repo": "flake-compat",
"type": "github"
}
},
"flake-parts": { "flake-parts": {
"inputs": { "inputs": {
"nixpkgs-lib": "nixpkgs-lib" "nixpkgs-lib": "nixpkgs-lib"
@ -245,6 +261,28 @@
"type": "github" "type": "github"
} }
}, },
"flake-parts_2": {
"inputs": {
"nixpkgs-lib": [
"phani",
"nix-update",
"nixpkgs"
]
},
"locked": {
"lastModified": 1730504689,
"narHash": "sha256-hgmguH29K2fvs9szpq2r3pz2/8cJd2LPS+b4tfNFCwE=",
"owner": "hercules-ci",
"repo": "flake-parts",
"rev": "506278e768c2a08bec68eb62932193e341f55c90",
"type": "github"
},
"original": {
"owner": "hercules-ci",
"repo": "flake-parts",
"type": "github"
}
},
"flake-utils": { "flake-utils": {
"locked": { "locked": {
"lastModified": 1629284811, "lastModified": 1629284811,
@ -281,6 +319,36 @@
"type": "github" "type": "github"
} }
}, },
"flake-utils_3": {
"locked": {
"lastModified": 1659877975,
"narHash": "sha256-zllb8aq3YO3h8B/U0/J1WBgAL8EX5yWf5pMj3G0NAmc=",
"owner": "numtide",
"repo": "flake-utils",
"rev": "c0e246b9b83f637f4681389ecabcb2681b4f3af0",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "flake-utils",
"type": "github"
}
},
"flake-utils_4": {
"locked": {
"lastModified": 1656928814,
"narHash": "sha256-RIFfgBuKz6Hp89yRr7+NR5tzIAbn52h8vT6vXkYjZoM=",
"owner": "numtide",
"repo": "flake-utils",
"rev": "7e2a3b3dfd9af950a856d66b0a7d01e3c18aa249",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "flake-utils",
"type": "github"
}
},
"fromYaml": { "fromYaml": {
"flake": false, "flake": false,
"locked": { "locked": {
@ -573,6 +641,29 @@
"type": "github" "type": "github"
} }
}, },
"nix-update": {
"inputs": {
"flake-parts": "flake-parts_2",
"nixpkgs": [
"phani",
"nixpkgs"
],
"treefmt-nix": "treefmt-nix"
},
"locked": {
"lastModified": 1731961060,
"narHash": "sha256-5KhS3RxeVDHKjsxT3hHtl0hHcwlSHl2fYFYLonobpLg=",
"owner": "Mic92",
"repo": "nix-update",
"rev": "48d803aa20d0cb91a02f0dcfcccdfe6fbb305b0e",
"type": "github"
},
"original": {
"owner": "Mic92",
"repo": "nix-update",
"type": "github"
}
},
"nixpkgs": { "nixpkgs": {
"locked": { "locked": {
"lastModified": 1731890469, "lastModified": 1731890469,
@ -677,6 +768,34 @@
"type": "github" "type": "github"
} }
}, },
"nixpkgs_5": {
"locked": {
"lastModified": 0,
"narHash": "sha256-IigrKK3vYRpUu+HEjPL/phrfh7Ox881er1UEsZvw9Q4=",
"path": "/nix/store/0sxsfzswhjck7f4sbsvznz285s4i7y64-source",
"type": "path"
},
"original": {
"id": "nixpkgs",
"type": "indirect"
}
},
"nixpkgs_6": {
"locked": {
"lastModified": 1659102345,
"narHash": "sha256-Vbzlz254EMZvn28BhpN8JOi5EuKqnHZ3ujFYgFcSGvk=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "11b60e4f80d87794a2a4a8a256391b37c59a1ea7",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixpkgs-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"nur": { "nur": {
"locked": { "locked": {
"lastModified": 1731494868, "lastModified": 1731494868,
@ -692,26 +811,6 @@
"type": "github" "type": "github"
} }
}, },
"nypkgs": {
"inputs": {
"nixpkgs": [
"nixpkgs"
]
},
"locked": {
"lastModified": 1726657437,
"narHash": "sha256-eBeVOFceQkYfWHAwdQ+aM8vLAbsuuWUgek2f6dFBTl0=",
"owner": "yunfachi",
"repo": "nypkgs",
"rev": "698ab4159dc38affee2fc5886468af139de8d95e",
"type": "github"
},
"original": {
"owner": "yunfachi",
"repo": "nypkgs",
"type": "github"
}
},
"parts": { "parts": {
"inputs": { "inputs": {
"nixpkgs-lib": "nixpkgs-lib_2" "nixpkgs-lib": "nixpkgs-lib_2"
@ -730,6 +829,27 @@
"type": "github" "type": "github"
} }
}, },
"phani": {
"inputs": {
"nix-update": "nix-update",
"nixpkgs": [
"nixpkgs"
]
},
"locked": {
"lastModified": 1733031174,
"narHash": "sha256-JuABhfC13YDmgm6YiRpb4TCIqGpNNWDKvf7EglwDEjw=",
"owner": "phanirithvij",
"repo": "nur-packages",
"rev": "5d916acadc2686fdd450a9bdce7dfc86b83d451c",
"type": "github"
},
"original": {
"owner": "phanirithvij",
"repo": "nur-packages",
"type": "github"
}
},
"pre-commit-hooks": { "pre-commit-hooks": {
"inputs": { "inputs": {
"flake-compat": "flake-compat", "flake-compat": "flake-compat",
@ -766,14 +886,34 @@
"hyprland": "hyprland", "hyprland": "hyprland",
"nixpkgs": "nixpkgs_3", "nixpkgs": "nixpkgs_3",
"nur": "nur", "nur": "nur",
"nypkgs": "nypkgs",
"parts": "parts", "parts": "parts",
"phani": "phani",
"spicetify": "spicetify", "spicetify": "spicetify",
"stylix": "stylix", "stylix": "stylix",
"tgt": "tgt", "tgt": "tgt",
"transg": "transg",
"zen": "zen" "zen": "zen"
} }
}, },
"rust-overlay": {
"inputs": {
"flake-utils": "flake-utils_4",
"nixpkgs": "nixpkgs_6"
},
"locked": {
"lastModified": 1661742009,
"narHash": "sha256-lE6pbjo2INiJc0CTooWStINmGcu0LjdbtQ1TTs1lqPY=",
"owner": "oxalica",
"repo": "rust-overlay",
"rev": "4b3816ebc3cfcaf29e3dd0f0dc2924c5cb639c51",
"type": "github"
},
"original": {
"owner": "oxalica",
"repo": "rust-overlay",
"type": "github"
}
},
"spicetify": { "spicetify": {
"inputs": { "inputs": {
"flake-compat": "flake-compat_2", "flake-compat": "flake-compat_2",
@ -925,6 +1065,49 @@
"type": "github" "type": "github"
} }
}, },
"transg": {
"inputs": {
"flake-compat": "flake-compat_4",
"flake-utils": "flake-utils_3",
"nixpkgs": "nixpkgs_5",
"rust-overlay": "rust-overlay"
},
"locked": {
"lastModified": 1729978562,
"narHash": "sha256-EqTc7XNxzp5MPGfLPp1lzzQu2XVkEaC+WGwJrBI2azk=",
"owner": "PanAeon",
"repo": "transg-tui",
"rev": "ec5c53de8b3dbead7171c73bf269b164aef74255",
"type": "github"
},
"original": {
"owner": "PanAeon",
"repo": "transg-tui",
"type": "github"
}
},
"treefmt-nix": {
"inputs": {
"nixpkgs": [
"phani",
"nix-update",
"nixpkgs"
]
},
"locked": {
"lastModified": 1730321837,
"narHash": "sha256-vK+a09qq19QNu2MlLcvN4qcRctJbqWkX7ahgPZ/+maI=",
"owner": "numtide",
"repo": "treefmt-nix",
"rev": "746901bb8dba96d154b66492a29f5db0693dbfcc",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "treefmt-nix",
"type": "github"
}
},
"umu": { "umu": {
"inputs": { "inputs": {
"nixpkgs": [ "nixpkgs": [
@ -998,11 +1181,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1731689537, "lastModified": 1732835488,
"narHash": "sha256-0wN39XFD5bVcNANh9uLoQYyKbp9r6xX+oON1qI+L9iI=", "narHash": "sha256-r1nomBVEMO4I0y3pMfqLletQxKak5xfpk9DhlO1AsuI=",
"owner": "ch4og", "owner": "ch4og",
"repo": "zen-browser-flake", "repo": "zen-browser-flake",
"rev": "064be844324965da1d596a541fdd831efe4a3a32", "rev": "d8fbf602685f5cf2a6475eaf20595a6dc6628891",
"type": "github" "type": "github"
}, },
"original": { "original": {

View file

@ -6,6 +6,7 @@
hardware.url = "github:NixOS/nixos-hardware/master"; # HARDWARE hardware.url = "github:NixOS/nixos-hardware/master"; # HARDWARE
parts.url = "github:hercules-ci/flake-parts"; # PARTS parts.url = "github:hercules-ci/flake-parts"; # PARTS
gaming.url = "github:fufexan/nix-gaming"; # GAMING gaming.url = "github:fufexan/nix-gaming"; # GAMING
transg.url = "github:PanAeon/transg-tui"; # TRANSG
hyprland.url = "github:hyprwm/Hyprland"; # HYPRLAND hyprland.url = "github:hyprwm/Hyprland"; # HYPRLAND
stylix.url = "github:danth/stylix"; # STYLIX stylix.url = "github:danth/stylix"; # STYLIX
@ -13,15 +14,11 @@
url = "github:nix-community/home-manager"; url = "github:nix-community/home-manager";
inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs.follows = "nixpkgs";
}; };
nypkgs = { disko = { # DECLARATIVE DISK PART
url = "github:yunfachi/nypkgs";
inputs.nixpkgs.follows = "nixpkgs";
};
disko = {
url = "github:nix-community/disko"; url = "github:nix-community/disko";
inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs.follows = "nixpkgs";
}; };
zen = { zen = { # COOL BROWSER
url = "github:ch4og/zen-browser-flake"; url = "github:ch4og/zen-browser-flake";
inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs.follows = "nixpkgs";
}; };
@ -29,7 +26,7 @@
url = "github:Gerg-L/spicetify-nix"; url = "github:Gerg-L/spicetify-nix";
inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs.follows = "nixpkgs";
}; };
tgt = { tgt = { # TUI TELEGRAM
url = "github:FedericoBruzzone/tgt"; url = "github:FedericoBruzzone/tgt";
inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs.follows = "nixpkgs";
}; };
@ -37,7 +34,11 @@
url = "gitlab:rycee/nur-expressions?dir=pkgs/firefox-addons"; url = "gitlab:rycee/nur-expressions?dir=pkgs/firefox-addons";
inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs.follows = "nixpkgs";
}; };
cursors = { phani = { # ONLY FOR QBITUI LOL
url = "github:phanirithvij/nur-packages";
inputs.nixpkgs.follows = "nixpkgs";
};
cursors = { # COLORIZE CUSRSOR
url = "github:LilleAila/nix-cursors"; url = "github:LilleAila/nix-cursors";
inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs.follows = "nixpkgs";
}; };

View file

@ -1,13 +1,13 @@
{ self, inputs, ... }: { self, inputs, ... }:
let let
builder = import ../libx/builder.nix { builder = import ../libx/builder.nix {
inherit self inputs userName hostName flakeDir wm; inherit self inputs userName hostName flakeDir dev;
}; };
hostName = "jetpure"; hostName = "jetpure";
userName = "nixzoid"; userName = "nixzoid";
flakeDir = "/persist/flake"; flakeDir = "/persist/flake";
wm = { dev = {
sh = "Hyprland"; hdd = "/mnt/HDD";
bar = "hyprland"; ssd = "/mnt/SSD";
}; };
in { flake = builder.flake; } in { flake = builder.flake; }

View file

@ -1,20 +1,17 @@
{ config, sec, flakeDir, True, False, ... }: { { config, True, False, ... }: {
imports = [ ./parts ../../modules/home ]; imports = [ ./parts ../../modules/home ];
module = { module = {
programs = { # PROGRAMS programs = { # PROGRAMS
cli = { # CLI PROGRAMS cli = { # CLI PROGRAMS
anicli = True;
bat = True; bat = True;
cava = True; cava = True;
eza = True; eza = True;
fetch = True; fetch = True;
fzf = True; fzf = True;
git = True // { git = True;
name = sec.git.name;
email = sec.git.email;
path = flakeDir;
};
helix = True; helix = True;
joshuto = True;
legendary = True;
micro = False; micro = False;
rmpc = False; rmpc = False;
top = True; top = True;
@ -31,20 +28,22 @@
thunderbird = False; thunderbird = False;
zed = False; zed = False;
}; };
custom = {
anicli = True;
mabel = False;
rustmission = True;
torque = True;
};
}; };
shells = { # SHELLS shells = { # SHELLS
alias = True;
fish = True; fish = True;
nushell = True; nushell = True;
tmux = False; tmux = False;
zsh = False; zsh = False;
starship = True; starship = True;
var = True;
}; };
themes = { # THEMING ENV themes = { # THEMING ENV
gtk = True // { # GTK APPS gtk = True // { icon = "adwaita"; }; # GTK APPS
icon = "adwaita";
};
qt = True; # QT APPS qt = True; # QT APPS
stylix = True // { stylix = True // {
theme = "paradise"; theme = "paradise";
@ -72,11 +71,7 @@
}; };
}; };
misc = { # MISC MODULES misc = { # MISC MODULES
home-manager = True;
markdown = False;
minimal = True;
dconf = True; dconf = True;
nix = True;
xdg = True; xdg = True;
}; };
}; };

View file

@ -1,52 +1,53 @@
{ pkgs, inputs, config, ... }: { { pkgs, inputs, config, ... }: {
imports = [ inputs.nur.hmModules.nur ]; imports = with inputs; [ nur.hmModules.nur ];
module.programs = { module.programs = {
gui.pkgs = with pkgs; [ gui.pkgs = with pkgs; [
nemo nemo # GUI FM
nemo-fileroller nemo-fileroller # ADDON
file-roller file-roller # ARCHIVER
_64gram _64gram # TG GUI
onlyoffice-bin onlyoffice-bin # OFFICE
qbittorrent-enhanced qbittorrent-enhanced # QTORRENT
filezilla # FTP CLIENT
popsicle popsicle # ISO WRITER
ventoy ventoy # FUCK
bottles bottles # LAUNCH GAMES WITHOUT STEAM
mindustry-wayland mindustry-wayland # MINDUSTRY LETSSS GOOOOO
(prismlauncher.override { (prismlauncher.override {
gamemodeSupport = true; gamemodeSupport = true;
controllerSupport = true; controllerSupport = true;
jdks = [ temurin-jre-bin-21 temurin-jre-bin-17 temurin-jre-bin-8 ]; jdks = [ temurin-jre-bin-21 temurin-jre-bin-17 temurin-jre-bin-8 ];
}) }) # MINECRAFT IS MY LIFE
inputs.zen.packages."${system}".specific inputs.zen.packages."${system}".specific # COOL BROWSER
]; ];
cli.pkgs = with pkgs; [ cli.pkgs = with pkgs; [
nurl nurl # FETCHER
nix-tree nix-tree # JUST COOL
simple-mtpfs btop # CPU RAM AND PROCESSES TOP
nvtopPackages.amd # GPU TOP
btop trashy # TRASH
nvtopPackages.amd tenki # CLOCK
trashy imagemagick # CONVERT IMG
tenki jpegoptim # LOW SIZE JPEG
optipng # LOW SIZE PNG
lutgen # COLORIZE IMG
imagemagick wyvern # GOG
jpegoptim tuir # REDDIT TUI
optipng glicol-cli # WRITE MUSIC FROM TERMINAL
lutgen
wyvern wineWow64Packages.staging # SIMPLE LAUNCHER
legendary-gl config.nur.repos.rycee.mozilla-addons-to-nix # ADDONS TO NIX
eidolon inputs.tgt.packages.${system}.default # TG TUI
inputs.transg.packages.${system}.default # TRANSMISSION TUI
wineWow64Packages.staging inputs.phani.packages.${system}.qbittorrentui # QBITUI
config.nur.repos.rycee.mozilla-addons-to-nix
inputs.tgt.packages.${system}.default
]; ];
}; };
} }

View file

@ -1,16 +1,16 @@
{ pkgs, config, False, ... }: { config, False, ... }:
let let
m = config.wayland.windowManager.sway.config.modifier; m = config.wayland.windowManager.sway.config.modifier;
x = "exec"; x = "exec";
in { in {
module.wm.sway = { module.wm.sway = {
bars = False; bars = False;
programs = with pkgs; { programs = {
"${m}+b" = "${x} ${floorp}/bin/floorp"; "${m}+b" = "${x} floorp";
"${m}+v" = "${x} ${_64gram}/bin/telegram-desktop"; "${m}+v" = "${x} telegram-desktop";
"${m}+n" = "${x} ${kitty}/bin/kitty -T Explorer ${yazi}/bin/yazi"; "${m}+n" = "${x} kitty -T Explorer yazi";
"${m}+u" = "${x} ${onlyoffice-bin}/bin/onlyoffice-desktopeditors"; "${m}+u" = "${x} onlyoffice-desktopeditors";
"${m}+i" = "${x} ${libreoffice}/lib/libreoffice/program/soffice.bin"; "${m}+i" = "${x} libreoffice";
}; };
}; };
} }

View file

@ -0,0 +1,16 @@
~gate: speed 2.0
>> seq 60 _60 _~a 48;
~a: choose 48 48 48 72 0 0 0
~amp: ~gate >> envperc 0.001 0.1;
~pit: ~gate
>> mul ##Math.pow(2, (60-69)/12) * 440#
// mix js to get 261.63
~lead: saw ~pit >> mul ~amp >> lpf ~mod 5.0
>> meta `
output = input.map(|x|x*0.1);
output
` // rhai script, same as "mul 0.1"
~mod: sin 0.2 >> mul 1300 >> add 1500;
out: ~lead >> add ~drum >> plate 0.1 // optional semicolon
~drum: speed 4.0 >> seq 60 >> sp \808bd;
// live drag and drop your sample ^^^

View file

@ -15,12 +15,14 @@
services = { services = {
autocpu = False; autocpu = False;
dbus = True; dbus = True;
deluge = False;
getty = True; getty = True;
gvfs = True; gvfs = True;
polkit = True; polkit = True;
printing = False; printing = False;
tailscale = True; tailscale = True;
tlp = False; tlp = False;
transmission = True;
zram = True // { algo = "zstd"; }; zram = True // { algo = "zstd"; };
}; };
# PROGRAMS MODULES # PROGRAMS MODULES
@ -29,6 +31,7 @@
hyprland = True; hyprland = True;
sway = False; sway = False;
steam = True; steam = True;
hamachi = True;
torrserver = True; torrserver = True;
}; };
misc = { misc = {
@ -38,9 +41,9 @@
power = False; power = False;
protonmail = False; protonmail = False;
system76 = False; system76 = False;
terraria = False;
users = True // { shell = "fish"; }; users = True // { shell = "fish"; };
variables = True; variables = True;
zapret = False;
nix = True; nix = True;
}; };
}; };

View file

@ -1,4 +1,4 @@
{ self, inputs, hostName, userName, flakeDir, wm, ... }: { { self, inputs, hostName, userName, flakeDir, dev, ... }: {
flake = let flake = let
pkgs = inputs.nixpkgs.legacyPackages.x86_64-linux; pkgs = inputs.nixpkgs.legacyPackages.x86_64-linux;
sec = import ./secrets.nix; sec = import ./secrets.nix;
@ -12,7 +12,7 @@
# SYSINFO # SYSINFO
stateVersion = "24.05"; # IDK stateVersion = "24.05"; # IDK
platform = "x86_64-linux"; platform = "x86_64-linux";
inherit self inputs hostName userName flakeDir sec wm; inherit self inputs hostName userName flakeDir sec dev;
}; };
in with inputs; { in with inputs; {
nixosConfigurations.${hostName} = nixpkgs.lib.nixosSystem { nixosConfigurations.${hostName} = nixpkgs.lib.nixosSystem {

View file

@ -1,4 +1,2 @@
{ { imports = [ ./home-manager ./minimal ./xdg ./dconf.nix ./nix.nix ]; }
imports = [ ./home-manager ./markdown ./minimal ./xdg ./dconf.nix ./nix.nix ];
}

View file

@ -1,18 +1,9 @@
{ lib, config, userName, stateVersion ? null, True, ... }: { userName, stateVersion ? null, True, ... }: {
programs.home-manager = True;
with lib; home = {
username = userName;
let cfg = config.module.misc.home-manager; homeDirectory = "/home/${userName}";
in { stateVersion = stateVersion;
options = { module.misc.home-manager = { enable = mkEnableOption ""; }; };
config = mkIf cfg.enable {
programs.home-manager = True;
home = {
username = userName;
homeDirectory = "/home/${userName}";
stateVersion = stateVersion;
};
}; };
} }

View file

@ -1,166 +0,0 @@
{ pkgs, lib, config, ... }:
with lib;
let cfg = config.module.misc.markdown;
in {
options = { module.misc.markdown = { enable = mkEnableOption ""; }; };
config = mkIf cfg.enable {
home = {
packages = with pkgs; [
# VIEWERS
glow
# PRESENTATION
slides # VERY SIMPLE
presenterm # WITH IMAGES AND OTHER STUFF
# TOOLS
graph-easy # CREATE GRAPHS
];
};
xdg.configFile."mdtheme.json".text = with config.lib.stylix.colors; ''
{
"document": { "color": "#${base06}", "margin": 2 },
"block_quote": { "indent": 1, "indent_token": " " },
"list": { "level_indent": 2, "margin": 4 },
"paragraph": {
"color": "#${base06}",
"background_color": "#${base00}",
"margin": 2
},
"heading": {
"block_suffix": "\n",
"color": "#${base0E}",
"bold": true
},
"h1": {
"prefix": " ",
"suffix": " ",
"color": "#${base00}",
"background_color": "#${base08}",
"bold": true
},
"h2": {
"prefix": " ",
"suffix": " ",
"color": "#${base00}",
"background_color": "#${base09}",
"bold": true,
"margin": 2
},
"h3": {
"prefix": " ",
"suffix": " ",
"color": "#${base00}",
"background_color": "#${base0B}",
"bold": true,
"margin": 2
},
"h4": {
"prefix": " ",
"suffix": " ",
"color": "#${base00}",
"background_color": "#${base0C}",
"bold": true,
"margin": 2
},
"h5": {
"prefix": " ",
"suffix": " ",
"color": "#${base00}",
"background_color": "#${base0D}",
"bold": true,
"margin": 2
},
"h6": {
"prefix": " ",
"suffix": " ",
"color": "#${base00}",
"background_color": "#${base0E}",
"bold": true,
"margin": 2
},
"text": {},
"strikethrough": { "crossed_out": true },
"emph": { "italic": true },
"strong": { "bold": true },
"hr": {
"color": "#${base0D}",
"format": "---"
},
"item": {
"block_prefix": " "
},
"enumeration": {
"block_prefix": ". "
},
"task": {
"ticked": "[] ",
"unticked": "[] "
},
"link": {
"color": "30",
"underline": true
},
"link_text": {
"color": "#${base0B}",
"bold": true
},
"image": {
"color": "#${base08}",
"underline": true
},
"image_text": {
"color": "#${base09}",
"format": "{{.text}} "
},
"code": { "color": "#${base0D}" },
"code_block": {
"color": "#${base0E}",
"block_prefix": " ",
"margin": 4,
"chroma": {
"text": { "color": "#${base06}" },
"error": { "color": "#${base00}", "background_color": "#${base08}" },
"comment": { "color": "#${base02}" },
"comment_preproc": { "color": "#${base03}" },
"keyword": { "color": "#${base09}" },
"keyword_reserved": { "color": "#${base09}" },
"keyword_namespace": { "color": "#${base09}" },
"keyword_type": { "color": "#${base09}" },
"operator": { "color": "#${base0B}" },
"punctuation": { "color": "#${base0C}" },
"name": { "color": "#${base08}" },
"name_builtin": { "color": "#${base08}" },
"name_tag": { "color": "#${base08}" },
"name_attribute": { "color": "#${base08}" },
"name_class": { "color": "#${base08}", "underline": true, "bold": true },
"name_constant": {},
"name_decorator": { "color": "#${base08}" },
"name_exception": {},
"name_function": { "color": "#${base08}" },
"name_other": {},
"literal": {},
"literal_number": { "color": "#${base0D}" },
"literal_date": {},
"literal_string": { "color": "#${base0D}" },
"literal_string_escape": { "color": "#${base0D}" },
"generic_deleted": { "color": "#${base0E}" },
"generic_emph": { "italic": true },
"generic_inserted": { "color": "#${base0E}" },
"generic_strong": { "bold": true },
"generic_subheading": { "color": "#${base0E}" },
"background": { "background_color": "#${base0E}" }
}
},
"table": {},
"definition_list": {},
"definition_term": {},
"definition_description": { "block_prefix": "\n🠶 " },
"html_block": {},
"html_span": {}
}
'';
};
}

View file

@ -1,19 +1,10 @@
{ lib, config, False, ... }: { False, ... }: {
news.display = "silent";
with lib; programs.man = False;
manual = {
let cfg = config.module.misc.minimal; html = False;
in { json = False;
options = { module.misc.minimal = { enable = mkEnableOption ""; }; }; manpages = False;
config = mkIf cfg.enable {
news.display = "silent";
programs.man = False;
manual = {
html = False;
json = False;
manpages = False;
};
}; };
} }

View file

@ -1,37 +1,28 @@
{ pkgs, lib, config, userName, False, ... }: { pkgs, userName, False, ... }: {
nix = {
with lib; package = pkgs.nix;
settings = {
let cfg = config.module.misc.nix; warn-dirty = false;
in { extra-experimental-features = [ "nix-command" "flakes" ];
options = { module.misc.nix = { enable = mkEnableOption ""; }; }; builders-use-substitutes = true;
auto-optimise-store = true;
config = mkIf cfg.enable { extra-substituters = [
nix = { "https://nix-gaming.cachix.org" # NIX GAMING
package = pkgs.nix; "https://hyprland.cachix.org" # HYPRLAND
settings = { ];
warn-dirty = false; extra-trusted-public-keys = [
extra-experimental-features = [ "nix-command" "flakes" ]; "nix-gaming.cachix.org-1:nbjlureqMbRAxR1gJ/f3hxemL9svXaZF/Ees8vCUUs4=" # NIX GAMING
builders-use-substitutes = true; "hyprland.cachix.org-1:a7pgxzMz7+chwVL3/pzj6jIBMioiJM7ypFP8PwtkuGc=" # HYPRLAND
auto-optimise-store = true; ];
extra-substituters = [ trusted-users = [ "${userName}" "@wheel" ];
"https://nix-gaming.cachix.org" # NIX GAMING
"https://hyprland.cachix.org" # HYPRLAND
];
extra-trusted-public-keys = [
"nix-gaming.cachix.org-1:nbjlureqMbRAxR1gJ/f3hxemL9svXaZF/Ees8vCUUs4=" # NIX GAMING
"hyprland.cachix.org-1:a7pgxzMz7+chwVL3/pzj6jIBMioiJM7ypFP8PwtkuGc=" # HYPRLAND
];
trusted-users = [ "${userName}" "@wheel" ];
};
};
nixpkgs.config.allowUnfree = true;
news.display = "silent";
manual = {
manpages = False;
json = False;
html = False;
}; };
}; };
nixpkgs.config.allowUnfree = true;
news.display = "silent";
manual = {
manpages = False;
json = False;
html = False;
};
} }

View file

@ -1,4 +1,4 @@
{ pkgs, lib, config, True, ... }: { pkgs, lib, config, flakeDir, True, ... }:
with lib; with lib;
@ -14,10 +14,7 @@ in {
mime = True; mime = True;
portal = True // { portal = True // {
config.common.default = "gtk"; config.common.default = "gtk";
extraPortals = with pkgs; [ extraPortals = with pkgs; [ xdg-desktop-portal-gtk ];
xdg-desktop-portal-hyprland
xdg-desktop-portal-gtk
];
}; };
userDirs = True // { userDirs = True // {
createDirectories = true; createDirectories = true;
@ -29,6 +26,7 @@ in {
publicShare = "${hmdir}/"; publicShare = "${hmdir}/";
templates = "${hmdir}/"; templates = "${hmdir}/";
videos = "${hmdir}/Videos"; videos = "${hmdir}/Videos";
extraConfig = { XDG_FLAKE_DIR = flakeDir; };
}; };
}; };
}; };

View file

@ -112,6 +112,7 @@ in {
"x-scheme-handler/about" = "zen.${ds}"; "x-scheme-handler/about" = "zen.${ds}";
"x-scheme-handler/unknown" = "zen.${ds}"; "x-scheme-handler/unknown" = "zen.${ds}";
# OTHER # OTHER
"x-scheme-handler/spotify" = "spotify.${ds}";
}; };
}; };
} }

View file

@ -1,6 +1,5 @@
{ {
imports = [ imports = [
./anicli
./bat ./bat
./cava ./cava
./eza ./eza
@ -8,6 +7,8 @@
./fzf ./fzf
./git ./git
./helix ./helix
./joshuto
./legendary
./micro ./micro
./rmpc ./rmpc
./top ./top

View file

@ -1,4 +1,4 @@
{ pkgs, lib, config, flakeDir, True, False, ... }: { pkgs, lib, config, sec, flakeDir, True, False, ... }:
with lib; with lib;
@ -16,10 +16,6 @@ in {
options = { options = {
module.programs.cli.git = { module.programs.cli.git = {
enable = mkEnableOption ""; enable = mkEnableOption "";
path = mkOption {
default = null;
type = types.str;
};
name = mkOption { name = mkOption {
default = null; default = null;
type = types.str; type = types.str;
@ -34,8 +30,8 @@ in {
config = mkIf cfg.enable { config = mkIf cfg.enable {
programs.git = True // { programs.git = True // {
package = pkgs.gitMinimal; package = pkgs.gitMinimal;
userName = cfg.name; userName = sec.git.name;
userEmail = cfg.email; userEmail = sec.git.email;
extraConfig = { extraConfig = {
color.ui = true; color.ui = true;
init.defaultBranch = "main"; init.defaultBranch = "main";

View file

@ -6,7 +6,7 @@ let cfg = config.module.programs.cli.helix;
in { in {
options = { module.programs.cli.helix = { enable = mkEnableOption ""; }; }; options = { module.programs.cli.helix = { enable = mkEnableOption ""; }; };
imports = [ ./sets.nix ./binds.nix ./langs.nix ./theme.nix ]; imports = [ ./settings.nix ./binds.nix ./languages.nix ./theme.nix ];
config = config =
mkIf cfg.enable { programs.helix = True // { defaultEditor = true; }; }; mkIf cfg.enable { programs.helix = True // { defaultEditor = true; }; };
} }

View file

@ -17,16 +17,10 @@ in {
indent = indent; indent = indent;
inherit auto-format; inherit auto-format;
} }
{ # FISH LSP
name = "fish";
language-servers = [ "fish_indent" ];
inherit auto-format;
formatter.command = "${fish}/bin/fish_indent";
indent = indent;
}
{ # HTML { # HTML
name = "html"; name = "html";
language-servers = [ "vscode-html-language-server" ]; language-servers = [ "vscode-html" ];
indent = indent;
inherit auto-format; inherit auto-format;
formatter = { formatter = {
command = "${prettier}/bin/prettier"; command = "${prettier}/bin/prettier";
@ -35,7 +29,8 @@ in {
} }
{ # JSON { # JSON
name = "json"; name = "json";
language-servers = [ "vscode-json-language-server" ]; language-servers = [ "vscode-json" ];
indent = indent;
inherit auto-format; inherit auto-format;
formatter = { formatter = {
command = "${prettier}/bin/prettier"; command = "${prettier}/bin/prettier";
@ -44,7 +39,8 @@ in {
} }
{ # JSON { # JSON
name = "jsonc"; name = "jsonc";
language-servers = [ "vscode-json-language-server" ]; language-servers = [ "vscode-json" ];
indent = indent;
inherit auto-format; inherit auto-format;
formatter = { formatter = {
command = "${prettier}/bin/prettier"; command = "${prettier}/bin/prettier";
@ -53,7 +49,8 @@ in {
} }
{ # CSS { # CSS
name = "css"; name = "css";
language-servers = [ "vscode-css-language-server" ]; language-servers = [ "vscode-css" ];
indent = indent;
inherit auto-format; inherit auto-format;
formatter = { formatter = {
command = "${prettier}/bin/prettier"; command = "${prettier}/bin/prettier";
@ -63,40 +60,62 @@ in {
{ # MARKDOWN { # MARKDOWN
name = "markdown"; name = "markdown";
language-servers = [ "marksman" ]; language-servers = [ "marksman" ];
indent = indent;
inherit auto-format; inherit auto-format;
formatter = { formatter = {
command = "${prettier}/bin/prettier"; command = "${prettier}/bin/prettier";
args = [ "--use-tabs" "--parser" "markdown" ]; args = [ "--use-tabs" "--parser" "markdown" ];
}; };
} }
{ # TYPESCRIP { # TYPESCRIPT
name = "typescript"; name = "typescript";
language-servers = [ "typescript" ]; language-servers = [ "typescript" ];
indent = indent;
inherit auto-format; inherit auto-format;
formatter = { formatter = {
command = "${prettier}/bin/prettier"; command = "${prettier}/bin/prettier";
args = [ "--use-tabs" "--parser" "typescript" ]; args = [ "--use-tabs" "--parser" "typescript" ];
}; };
} }
{ # PYTHON
name = "python";
language-servers = [ "pylsp" "ruff" ];
shebangs = [ "${python39}/bin/python" ];
file-types = [ "py" "pyi" "py3" "pyw" ".pythonstartup" ".pythonrc" ];
roots = [ "." "pyproject.toml" "pyrightconfig.json" ];
comment-token = "#";
scope = "source.python";
injection-regex = "python";
indent = indent;
inherit auto-format;
formatter = {
command = "${ruff}/bin/ruff";
args = [ "format" "-" ];
};
}
]; ];
language-server = let vscode = vscode-langservers-extracted; language-server = let
vscode = vscode-langservers-extracted;
typescript = typescript-language-server;
in { in {
nixd = { command = "${nixd}/bin/nixd"; }; nixd.command = "${nixd}/bin/nixd";
fish_indent = { command = "${fish}/bin/fish_indent"; }; vscode-html.command = "${vscode}/bin/vscode-html-language-server";
vscode-html-language-server = { vscode-json.command = "${vscode}/bin/vscode-json-language-server";
command = "${vscode}/bin/vscode-html-language-server"; vscode-css.command = "${vscode}/bin/vscode-css-language-server";
}; marksman.command = "${marksman}/bin/marksman";
vscode-json-language-server = { typescript.command = "${typescript}/bin/typescript-language-server";
command = "${vscode}/bin/vscode-json-language-server"; pyright = {
}; command = "${pyright}/bin/pyright-langserver";
vscode-css-language-server = { args = [ "--stdio" ];
command = "${vscode}/bin/vscode-css-language-server"; config = {
}; reportMissingTypeStubs = false;
marksman = { command = "${marksman}/bin/marksman"; }; python.analysis = {
typescript = { typeCheckingMode = "basic";
command = autoImportCompletions = true;
"${typescript-language-server}/bin/typescript-language-server"; };
};
}; };
ruff.command = "${ruff-lsp}/bin/ruff-lsp";
}; };
}; };
extraPackages = with pkgs; [ extraPackages = with pkgs; [

View file

@ -0,0 +1,12 @@
{ lib, config, True, ... }:
with lib;
let cfg = config.module.programs.cli.joshuto;
in {
options = { module.programs.cli.joshuto = { enable = mkEnableOption ""; }; };
imports = [ ./mimetype.nix ./settings.nix ./theme.nix ];
config = mkIf cfg.enable { programs.joshuto = True; };
}

View file

@ -0,0 +1,125 @@
{
programs.joshuto.mimetype = {
class = {
audio_default = [{
command = "mpv";
args = [ "--" ];
}];
image_default = [{
command = "swayimg";
args = [ "-f --" ];
}];
video_default = [{
command = "mpv";
args = [ "--" ];
fork = true;
silent = true;
}];
text_default = [
{ command = "hx"; }
{
command = "bat";
args = [ "--paging=always" ];
}
];
};
video = { "inherit" = "video_default"; };
text = { "inherit" = "text_default"; };
extensions = {
# AUDIO
aac."inherit" = "audio_default";
ac3."inherit" = "audio_default";
aiff."inherit" = "audio_default";
ape."inherit" = "audio_default";
dts."inherit" = "audio_default";
flac."inherit" = "audio_default";
m4a."inherit" = "audio_default";
mp3."inherit" = "audio_default";
oga."inherit" = "audio_default";
ogg."inherit" = "audio_default";
opus."inherit" = "audio_default";
wav."inherit" = "audio_default";
wv."inherit" = "audio_default";
# VIDEO
avi."inherit" = "video_default";
av1."inherit" = "video_default";
flv."inherit" = "video_default";
mkv."inherit" = "video_default";
m4v."inherit" = "video_default";
mov."inherit" = "video_default";
mp4."inherit" = "video_default";
ts."inherit" = "video_default";
webm."inherit" = "video_default";
wmv."inherit" = "video_default";
# TEXT
bib."inherit" = "text_default";
build."inherit" = "text_default";
c."inherit" = "text_default";
cfg."inherit" = "text_default";
cmake."inherit" = "text_default";
conf."inherit" = "text_default";
cpp."inherit" = "text_default";
css."inherit" = "text_default";
csv."inherit" = "text_default";
cu."inherit" = "text_default";
desktop."inherit" = "text_default";
ebuild."inherit" = "text_default";
eex."inherit" = "text_default";
env."inherit" = "text_default";
ex."inherit" = "text_default";
exs."inherit" = "text_default";
go."inherit" = "text_default";
gpl."inherit" = "text_default";
h."inherit" = "text_default";
hpp."inherit" = "text_default";
hs."inherit" = "text_default";
ini."inherit" = "text_default";
ipynb."inherit" = "text_default";
java."inherit" = "text_default";
jl."inherit" = "text_default";
js."inherit" = "text_default";
json."inherit" = "text_default";
jsonc."inherit" = "text_default";
kdl."inherit" = "text_default";
kt."inherit" = "text_default";
kvconfig."inherit" = "text_default";
lock."inherit" = "text_default";
log."inherit" = "text_default";
lua."inherit" = "text_default";
md."inherit" = "text_default";
micro."inherit" = "text_default";
ninja."inherit" = "text_default";
nix."inherit" = "text_default";
norg."inherit" = "text_default";
org."inherit" = "text_default";
po."inherit" = "text_default";
pot."inherit" = "text_default";
py."inherit" = "text_default";
qmd."inherit" = "text_default";
rasi."inherit" = "text_default";
rkt."inherit" = "text_default";
rktd."inherit" = "text_default";
rproj."inherit" = "text_default";
rs."inherit" = "text_default";
rstheme."inherit" = "text_default";
scm."inherit" = "text_default";
scss."inherit" = "text_default";
service."inherit" = "text_default";
sh."inherit" = "text_default";
socket."inherit" = "text_default";
sql."inherit" = "text_default";
srt."inherit" = "text_default";
svelte."inherit" = "text_default";
toml."inherit" = "text_default";
tsx."inherit" = "text_default";
txt."inherit" = "text_default";
vim."inherit" = "text_default";
xml."inherit" = "text_default";
yaml."inherit" = "text_default";
yml."inherit" = "text_default";
};
};
}

View file

@ -0,0 +1,20 @@
{
programs.joshuto.settings = {
mouse_support = false;
xdg_open = false;
xdg_open_fork = false;
use_trash = true;
focus_on_create = true;
max_preview_size = "2 GB";
zoxide_update = true;
display = {
collapse_preview = true;
column_ratio = [ 1 3 4 ];
show_borders = true;
show_icons = true;
tilde_in_titlebar = true;
sort = { directories_first = true; };
};
tab = { home_page = "inherit"; };
};
}

View file

@ -0,0 +1,17 @@
{ config, ... }: {
programs.joshuto.theme = with config.lib.stylix.colors; {
lscolors_enabled = true;
tabs.styles = {
active = {
bg = "${base00}";
fg = "${base0E}";
bold = true;
};
inactive = {
bg = "${base00}";
fg = "${base03}";
bold = false;
};
};
};
}

View file

@ -0,0 +1,27 @@
{ pkgs, lib, config, ... }:
with lib;
let cfg = config.module.programs.cli.legendary;
in {
options = {
module.programs.cli.legendary = { enable = mkEnableOption ""; };
};
config = mkIf cfg.enable {
home.packages = with pkgs; [ legendary-gl ];
xdg.configFile."legendary/config.ini".text = ''
[Legendary]
log_level = debug
max_memory = 2048
max_workers = 8
install_dir = ${dev.hdd}/Games[LITE]
locale = en-US
disable_https = false
disable_update_check = false
disable_update_notice = false
disable_auto_aliasing = false
'';
};
}

View file

@ -1,32 +0,0 @@
{ lib, config, True, ... }:
with lib;
let cfg = config.module.programs.cli.zellij;
in {
options = { module.programs.cli.zellij = { enable = mkEnableOption ""; }; };
config = mkIf cfg.enable {
programs.zellij = True // {
settings = {
pane_frames = true;
default_layout = "compact";
mouse_mode = false;
themes.base16 = with config.lib.stylix.colors; {
fg = "#${base06}";
bg = "#${base00}";
black = "#${base01}";
red = "#${base08}";
green = "#${base0B}";
yellow = "#${base09}";
blue = "#${base0D}";
magenta = "#${base0E}";
cyan = "#${base0C}";
white = "#${base0F}";
orange = "#${base09}";
};
};
};
};
}

View file

@ -2,9 +2,11 @@
with lib; with lib;
let cfg = config.module.programs.cli.anicli; let cfg = config.module.programs.custom.anicli;
in { in {
options = { module.programs.cli.anicli = { enable = mkEnableOption ""; }; }; options = {
module.programs.custom.anicli = { enable = mkEnableOption ""; };
};
config = mkIf cfg.enable { config = mkIf cfg.enable {
home.packages = [ (pkgs.callPackage ./anicli-ru.nix { }) ]; home.packages = [ (pkgs.callPackage ./anicli-ru.nix { }) ];

View file

@ -0,0 +1,12 @@
{ pkgs, lib, config, ... }:
with lib;
let cfg = config.module.programs.custom.ctree;
in {
options = { module.programs.custom.ctree = { enable = mkEnableOption ""; }; };
config =
mkIf cfg.enable { home.packages = [ (pkgs.callPackage ./pkg.nix { }) ]; };
}

View file

@ -0,0 +1,23 @@
{ lib, stdenv, fetchurl }:
stdenv.mkDerivation rec {
pname = "ctree";
version = "1.0.4";
src = fetchurl {
url =
"https://github.com/gleich/ctree/releases/download/v${version}/ctree_${version}_linux_amd64.tar.gz";
hash = "sha256-2gD6ESzpz9sMJx1iRL438lP4QR/PVCZ5vMqfkpG3e0E=";
};
# installPhase = ''
# mkdir -p $out/bin
# cp foo $out/bin
# '';
meta = with lib; {
homepage = "https://github.com/gleich/ctree";
maintainers = with maintainers; [ azikx ];
mainProgram = "ctree";
};
}

View file

@ -0,0 +1 @@
{ imports = [ ./anicli ./ctree ./mabel ./rustmission ./torque ]; }

View file

@ -0,0 +1,12 @@
{ pkgs, lib, config, ... }:
with lib;
let cfg = config.module.programs.custom.mabel;
in {
options = { module.programs.custom.mabel = { enable = mkEnableOption ""; }; };
config =
mkIf cfg.enable { home.packages = [ (pkgs.callPackage ./pkg.nix { }) ]; };
}

View file

@ -0,0 +1,22 @@
{ lib, buildGoModule, fetchFromGitHub, }:
buildGoModule rec {
pname = "mabel";
version = "0.1.7";
src = fetchFromGitHub {
owner = "smmr-software";
repo = "mabel";
rev = "v${version}";
hash = "sha256-KqZGwicWCi+9TLF4AwD3zL/Kz5C2a9iXAtcQYaswpWo=";
};
vendorHash = "sha256-xWOPiSX2cEmekd2k96O81qn3ygW1nU1MU4qL+JJN0AE=";
meta = with lib; {
homepage = "https://github.com/smmr-software/mabel";
changelog =
"https://github.com/smmr-software/mabel/releases/tag/v${version}";
maintainers = with maintainers; [ uwugda ];
mainProgram = "mabel";
};
}

View file

@ -0,0 +1,55 @@
[general]
auto_hide = true
accent_color = "LightRed"
beginner_mode = false
headers_hide = false
[connection]
url = "http://127.0.0.1:9091/transmission/rpc" # REQUIRED!
torrents_refresh = 5
stats_refresh = 5
free_space_refresh = 10
# username = "CHANGE_ME"
# password = "CHANGE_ME"
[torrents_tab]
# Available fields:
# Id, Name, SizeWhenDone, Progress, Eta, DownloadRate, UploadRate, DownloadDir,
# Padding, UploadRatio, UploadedEver, AddedDate, ActivityDate, PeersConnected
# SmallStatus, Category, CategoryIcon
headers = ["Name", "SizeWhenDone", "Progress", "Eta", "DownloadRate", "UploadRate"]
default_sort = "Progress"
default_sort_reverse = true
category_icon_insert_into_name = true
[search_tab]
# If you uncomment this, providers won't be automatically added in future
# versions of Rustmission.
# providers = ["Knaben", "Nyaa"]
[icons]
# Ascii alternatives # Defaults
# upload = "↑" # ""
# download = "↓" # ""
# arrow_left = "←" # ""
# arrow_right = "→" # ""
# arrow_up = "↑" # ""
# arrow_down = "↓" # ""
# triangle_right = "▶" # "▶"
# triangle_down = "▼" # "▼"
# file = "∷" # ""
# disk = "[D]" # "󰋊"
# help = "[?]" # "󰘥"
# success = "✔" # ""
# failure = "✖" # ""
# searching = "⟳" # ""
# verifying = "⟳" # "󰑓"
# loading = "⌛" # "󱥸"
# pause = "‖" # "󰏤"
# idle = "○" # "󱗼"
# magnifying_glass = "[o]" # ""
# provider_disabled = "⛔" # "󰪎"
# provider_category_general = "[G]" # ""
# provider_category_anime = "[A]" # "󰎁"
# sort_ascending = "↓" # "󰒼"
# sort_descending = "↑" # "󰒽""

View file

@ -0,0 +1,16 @@
{ pkgs, lib, config, ... }:
with lib;
let cfg = config.module.programs.custom.rustmission;
in {
options = {
module.programs.custom.rustmission = { enable = mkEnableOption ""; };
};
config = mkIf cfg.enable {
home.packages = with pkgs; [ rustmission ];
xdg.configFile = { "rustmission/config.toml".source = ./config.toml; };
};
}

View file

@ -0,0 +1,14 @@
{ pkgs, lib, config, ... }:
with lib;
let cfg = config.module.programs.custom.torque;
in {
options = {
module.programs.custom.torque = { enable = mkEnableOption ""; };
};
config =
mkIf cfg.enable { home.packages = [ (pkgs.callPackage ./pkg.nix { }) ]; };
}

View file

@ -0,0 +1,17 @@
{ stdenv, fetchurl }:
stdenv.mkDerivation {
name = "torque";
dontUnpack = true;
src = fetchurl {
url =
"https://raw.githubusercontent.com/dylanaraps/torque/refs/heads/master/torque";
sha256 = "sha256-4PoO7Vn1/Lu2uB3UttH1PJbSMBq/dE+oJl8OoQ4YQC4=";
};
installPhase = ''
mkdir -p $out/bin
cp $src $out/bin/torque
chmod +x $out/bin/torque
'';
}

View file

@ -1 +1 @@
{ imports = [ ./cli ./gui ]; } { imports = [ ./cli ./custom ./gui ]; }

View file

@ -6,7 +6,6 @@ let cfg = config.module.shells.alias;
in { in {
options = { options = {
module.shells.alias = { module.shells.alias = {
enable = mkEnableOption "";
alias = mkOption { alias = mkOption {
type = with types; attrsOf str; type = with types; attrsOf str;
default = null; default = null;
@ -14,7 +13,7 @@ in {
}; };
}; };
config = mkIf cfg.enable { config = {
home = { shellAliases = cfg.alias; }; home = { shellAliases = cfg.alias; };
xdg.configFile."lutgen/paradise".text = xdg.configFile."lutgen/paradise".text =
"151515 1F1F1F 2E2E2E 424242 BBB6B6 E8E3E3 E8E3E3 E8E3E3 B66467 D9BC8C D9BC8C 8C977D 8AA6A2 8DA3B9 A988B0 BBB6B6"; "151515 1F1F1F 2E2E2E 424242 BBB6B6 E8E3E3 E8E3E3 E8E3E3 B66467 D9BC8C D9BC8C 8C977D 8AA6A2 8DA3B9 A988B0 BBB6B6";

View file

@ -1,4 +1,4 @@
{ lib, config, userName, True, ... }: { pkgs, lib, config, userName, True, ... }:
with lib; with lib;
@ -8,9 +8,10 @@ let
in { in {
options = { module.shells.fish = { enable = mkEnableOption ""; }; }; options = { module.shells.fish = { enable = mkEnableOption ""; }; };
imports = [ ./misc ./colors.nix ./functions.nix ./plugins.nix ]; imports = [ ./misc ./colors.nix ./plugins.nix ];
config = mkIf cfg.enable { config = mkIf cfg.enable {
programs.fish = True // { programs.fish = True // {
package = pkgs.fish;
preferAbbrs = true; preferAbbrs = true;
shellAbbrs = abbrs; shellAbbrs = abbrs;
interactiveShellInit = '' interactiveShellInit = ''
@ -38,6 +39,8 @@ in {
set -g tide_pwd_color_dirs blue set -g tide_pwd_color_dirs blue
set -g tide_pwd_color_anchors blue set -g tide_pwd_color_anchors blue
set -g tide_git_color_branch -o green set -g tide_git_color_branch -o green
[ "$(tty)" = "/dev/tty1" ] && exec Hyprland # LAUNCH WM
''; '';
}; };
}; };

View file

@ -1,4 +1,4 @@
{ ... }: { { flakeDir, ... }: {
programs.fish.functions = { programs.fish.functions = {
clone.body = '' clone.body = ''
echo "cd ~/git/" echo "cd ~/git/"
@ -7,16 +7,21 @@
''; '';
# NIX # NIX
rebuild.body = '' rebuild.body = ''
git add ~/.flake/. git add --all ${flakeDir}/.
for ARG in $argv for ARG in $argv
if [ $ARG = home ] if [ $ARG = home ]
command home-manager switch --flake ~/.flake command nh home switch
return $status return $status
else if [ $ARG = host ] else if [ $ARG = host ]
command sudo nixos-rebuild switch --flake ~/.flake command sudo nh os switch
return $status return $status
else else
command echo "Select 'home' or 'host'" else if [ $ARG = both ]
command nh home switch
command sudo nh os switch
return $status
else
command echo "Select 'home' or 'host' os 'both'"
end end
end end
''; '';

View file

@ -1,31 +1,22 @@
{ lib, config, ... }: { ... }: {
home.sessionVariables = {
TERM = "kitty";
TERMINAL = "kitty";
with lib; FILE_MANAGER = "yazi";
let cfg = config.module.shells.var; MICRO_TRUECOLOR = "1";
in { MOZ_ENABLE_WAYLAND = "1";
options = { module.shells.var = { enable = mkEnableOption ""; }; }; RANGER_LOAD_DEFAULT_RC = "false";
config = mkIf cfg.enable { # FFF FILE MANAGER
home.sessionVariables = { FFF_HIDDEN = "1";
TERM = "kitty"; FFF_LS_COLORS = "1";
TERMINAL = "kitty"; FFF_COL1 = "1";
FFF_COL2 = "0";
FILE_MANAGER = "yazi"; FFF_COL3 = "2";
FFF_COL4 = "6";
MICRO_TRUECOLOR = "1"; FFF_COL5 = "7";
MOZ_ENABLE_WAYLAND = "1";
RANGER_LOAD_DEFAULT_RC = "false";
# FFF FILE MANAGER
FFF_HIDDEN = "1";
FFF_LS_COLORS = "1";
FFF_COL1 = "1";
FFF_COL2 = "0";
FFF_COL3 = "2";
FFF_COL4 = "6";
FFF_COL5 = "7";
};
}; };
} }

View file

@ -1,4 +1,4 @@
{ pkgs, lib, config, True, wm, ... }: { pkgs, lib, config, True, ... }:
with lib; with lib;
@ -66,7 +66,6 @@ in {
${settings.default} ${settings.default}
# BINDINGS # BINDINGS
${builtins.readFile ./keymap} ${builtins.readFile ./keymap}
[ "$(tty)" = "/dev/tty1" ] && exec ${wm.sh} # LAUNCH WM
''; '';
}; };
}; };

View file

@ -7,7 +7,7 @@
inactive_colors=#ffe8e3e3, #ff1f1f1f, #ff1f1f1f, #ff151515, #ff424242, #ff6e738d, #ffe8e3e3, #ffe8e3e3, #ffe8e3e3, #ff151515, #ff1f1f1f, #ff151515, #ff2e2e2e, #ffbbb6b6, #ff8c977d, #ffed8796, #ff151515, #ffe8e3e3, #ff181926, #ffe8e3e3, #80151515 inactive_colors=#ffe8e3e3, #ff1f1f1f, #ff1f1f1f, #ff151515, #ff424242, #ff6e738d, #ffe8e3e3, #ffe8e3e3, #ffe8e3e3, #ff151515, #ff1f1f1f, #ff151515, #ff2e2e2e, #ffbbb6b6, #ff8c977d, #ffed8796, #ff151515, #ffe8e3e3, #ff181926, #ffe8e3e3, #80151515
''; '';
in { in {
"qt5ct/colors/paradise.conf".text = "${colors}"; "qt5ct/colors/paradise.conf".text = colors;
"qt6ct/colors/paradise.conf".text = "${colors}"; "qt6ct/colors/paradise.conf".text = colors;
}; };
} }

View file

@ -40,23 +40,15 @@ in {
True // { True // {
autoEnable = false; autoEnable = false;
image = "${wal}/wallpapers/paradise/${cfg.image}.jpg"; image = "${wal}/wallpapers/paradise/${cfg.image}.jpg";
cursor = let cursor = with inputs.cursors; {
size = 24; size = 16;
custom = with inputs.cursors; { name = "GoogleDot-Custom";
inherit size; package = packages.${pkgs.system}.google-cursor.override {
name = "GoogleDot-Custom"; background_color = cfg.cursor.bg;
package = packages.${pkgs.system}.google-cursor.override { outline_color = cfg.cursor.ol;
background_color = cfg.cursor.bg; accent_color = cfg.cursor.ac;
outline_color = cfg.cursor.ol;
accent_color = cfg.cursor.ac;
};
}; };
google = with pkgs; { };
inherit size;
name = "GoogleDot-Black";
package = google-cursor;
};
in google;
fonts = let fonts = let
jet = { jet = {
name = "JetBrainsMono NerdFont"; name = "JetBrainsMono NerdFont";

View file

@ -3,8 +3,6 @@ let
cfg = config.module.wm.hyprland; cfg = config.module.wm.hyprland;
mic = mic =
"fixf4=$(cat /sys/class/leds/platform::micmute/brightness); echo $((1-fixf4)) | doas tee /sys/class/leds/platform::micmute/brightness; wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle"; "fixf4=$(cat /sys/class/leds/platform::micmute/brightness); echo $((1-fixf4)) | doas tee /sys/class/leds/platform::micmute/brightness; wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle";
aud = "alsa_output.pci-0000_2b_00.1.hdmi-stereo.monitor";
vid = "$(xdg-user-dir VIDEOS)/$(date +'vid_%d-%m-%y|%H:%M:%S.mp4')";
workspaces = (builtins.concatLists (builtins.genList (i: workspaces = (builtins.concatLists (builtins.genList (i:
let ws = i + 1; let ws = i + 1;
in [ in [
@ -30,7 +28,7 @@ in {
"$mu" = "mouse_up"; "$mu" = "mouse_up";
"$ex" = "exec"; "$ex" = "exec";
bind = with cfg; # KEYBOARD bind = # KEYBOARD
[ # MENU [ # MENU
"$m, $tb, exec, ${pkgs.nwg-drawer}/bin/nwg-drawer -ovl -nocats -nofs -d -c 5 -mb -49" "$m, $tb, exec, ${pkgs.nwg-drawer}/bin/nwg-drawer -ovl -nocats -nofs -d -c 5 -mb -49"
@ -62,7 +60,7 @@ in {
"$m, $nx, workspace, e+1" "$m, $nx, workspace, e+1"
"$m, $pr, workspace, e-1" "$m, $pr, workspace, e-1"
] ++ workspaces ++ programs; ] ++ workspaces ++ cfg.programs;
# HOLDING BUTTONS # HOLDING BUTTONS
binde = let binde = let
@ -120,8 +118,8 @@ in {
", XF86AudioLowerVolume, $ex, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-" ", XF86AudioLowerVolume, $ex, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-"
# LIGHT # LIGHT
", XF86MonBrightnessDown, $ex, doas light -U 10" ", XF86MonBrightnessDown, $ex, sudo light -U 10"
", XF86MonBrightnessUp, $ex, doas light -A 10" ", XF86MonBrightnessUp, $ex, sudo light -A 10"
]; ];
bindm = [ # MOUSE bindm = [ # MOUSE
@ -130,14 +128,5 @@ in {
"$m $s, mouse:273, resizewindow 1" "$m $s, mouse:273, resizewindow 1"
]; ];
}; };
# SELECT AREA FOR VIDEO RECORD
xdg.configFile."hypr/wfrec" = {
executable = true;
text = with config.lib.stylix.colors; ''
#!/usr/bin/env bash
${pkgs.wf-recorder}/bin/wf-recorder -a ${aud} -f ${vid} -g "$(${pkgs.slurp}/bin/slurp -b '${base00}CC' -c '${base0F}FF' -B '${base02}CC' -w '3')"
'';
};
} }

View file

@ -1,42 +1,44 @@
{ config, ... }: { config, ... }: {
let
cl = "class:^";
tl = "title:^";
it = "initialTitle:^";
in {
wayland.windowManager.hyprland.settings = with config.lib.stylix.colors; { wayland.windowManager.hyprland.settings = with config.lib.stylix.colors; {
windowrulev2 = [ layerrule = [ "noanim, notifications" ];
# WORKSPACE RULES windowrulev2 = let
cl = "class:^";
tt = "title:^";
il = "initialClass:^";
it = "initialTitle:^";
in [
"workspace 2 silent, ${cl}(firefox)$" "workspace 2 silent, ${cl}(firefox)$"
"workspace 2 silent, ${cl}(floorp)$" "workspace 2 silent, ${cl}(floorp)$"
"workspace 2 silent, ${cl}(zen-alpha)$" "workspace 2 silent, ${cl}(zen-alpha)$"
"workspace 3 silent, ${cl}(Spotify)$" "workspace 3 silent, ${cl}(spotify)$"
"workspace 3 silent, ${tl}(Spotify Free)$" "workspace 3 silent, ${il}(spotify)$"
"workspace 3 silent, ${it}(Spotify Free)$" "workspace 3 silent, ${tt}(Spotify Free)$"
"workspace 3 silent, ${it}(Spotify)$"
"workspace 4 silent, ${cl}(com.ayugram)$" "workspace 4 silent, ${cl}(com.ayugram)$"
"workspace 4 silent, ${cl}(io.github.tdesktop_x64.TDesktop)$" "workspace 4 silent, ${cl}(io.github.tdesktop_x64.TDesktop)$"
"workspace 4 silent, ${cl}(vesktop)$" "workspace 4 silent, ${cl}(vesktop)$"
"workspace 5 silent, ${cl}(obsidian)$" "workspace 5 silent, ${cl}(obsidian)$"
"workspace 6 silent, ${cl}(anicli)$" "workspace 6 silent, ${cl}(anicli)$"
"workspace 9 silent, ${cl}(org.qbittorrent.qBittorrent)$"
# TERMINAL RULES # TERMINAL RULES
"float, ${cl}(termfloat)$" "float, ${cl}(termfloat)$"
"size 650 430, ${cl}(termfloat)$"
"move center, ${cl}(termfloat)$" "move center, ${cl}(termfloat)$"
"size 650 430, ${cl}(termfloat)$"
# FILE MANAGER # FILE MANAGER
"float, ${cl}(tfm)$" "float, ${cl}(tfm)$"
"size 800 350, ${cl}(tfm)$"
"move center, ${cl}(tfm)$" "move center, ${cl}(tfm)$"
"size 800 350, ${cl}(tfm)$"
# AYUGRAM # AYUGRAM
"minsize 540 680, ${cl}(com.ayugram)$" "minsize 540 680, ${cl}(com.ayugram)$" # SELF
"float, ${tl}(Media viewer)$" "float, ${tt}(Media viewer)$" # VIEWER
"noanim, ${tl}(Media viewer)$" "noanim, ${tt}(Media viewer)$"
"fullscreen, ${tl}(Media viewer)$" "fullscreen, ${tt}(Media viewer)$"
"size 670 540, ${tl}(Media viewer)$" "size 670 540, ${tt}(Media viewer)$"
"float, ${tl}(Choose Files)$" "float, ${tt}(Choose Files)$" # CHOOSER
"size 650 450, ${tl}(Choose Files)$" "size 650 450, ${tt}(Choose Files)$"
# XDG # XDG
"float, ${cl}(xdg-desktop-portal-gtk)$" "float, ${cl}(xdg-desktop-portal-gtk)$"
@ -51,10 +53,14 @@ in {
"bordercolor rgb(${base08}) rgb(${base09}) 45deg, ${cl}(anicliru)$" "bordercolor rgb(${base08}) rgb(${base09}) 45deg, ${cl}(anicliru)$"
# KOMIKKU # KOMIKKU
"size 700 980, ${cl}(info.febvre.Komikku)$"
"pseudo, ${cl}(info.febvre.Komikku)$" "pseudo, ${cl}(info.febvre.Komikku)$"
"size 700 980, ${cl}(info.febvre.Komikku)$"
# TORRENT
"float, ${cl}(org.qbittorrent.qBittorrent)$"
"pseudo, ${cl}(org.qbittorrent.qBittorrent)$"
"size 1020 740, ${cl}(org.qbittorrent.qBittorrent)$"
]; ];
layerrule = [ "noanim, notifications" ];
}; };
} }

View file

@ -1,4 +1,4 @@
{ lib, config, True, wm, ... }: { lib, config, True, ... }:
with lib; with lib;
@ -12,7 +12,20 @@ in {
True // { True // {
settings = { settings = {
# BAR AT BOTTOM # BAR AT BOTTOM
mainBar = let tooltip = false; mainBar = let
Tool = { tooltip = false; };
wm_icons = {
"1" = "";
"2" = "";
"3" = "";
"4" = "";
"5" = "";
"6" = "";
"7" = "";
"8" = "";
"9" = "";
"10" = "";
};
in { in {
layer = "top"; layer = "top";
position = "bottom"; position = "bottom";
@ -26,9 +39,9 @@ in {
"custom/separatorL" "custom/separatorL"
"network" "network"
"custom/separatorL" "custom/separatorL"
"${wm.bar}/language" "hyprland/language"
]; ];
modules-center = [ "${wm.bar}/workspaces" ]; modules-center = [ "hyprland/workspaces" ];
modules-right = [ modules-right = [
"tray" "tray"
"custom/separatorR" "custom/separatorR"
@ -40,18 +53,15 @@ in {
]; ];
# LEFT MODULES # LEFT MODULES
"custom/launcher" = { "custom/launcher" = Tool // {
inherit tooltip;
format = "<span color='#${base0C}' font='17'></span> {}"; format = "<span color='#${base0C}' font='17'></span> {}";
on-click = "nwg-drawer -ovl -nocats -nofs -d -c 7 -mb -49"; on-click = "nwg-drawer -ovl -nocats -nofs -d -c 7 -mb -49";
}; };
"custom/separatorL" = { "custom/separatorL" = Tool // {
inherit tooltip;
format = "|"; format = "|";
interval = 1; interval = 1;
}; };
"pulseaudio" = { "pulseaudio" = Tool // {
inherit tooltip;
format = "{icon} {volume}%"; format = "{icon} {volume}%";
format-icons = { format-icons = {
default = [ "" " " " " ]; default = [ "" " " " " ];
@ -63,16 +73,14 @@ in {
on-click = "wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle"; on-click = "wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle";
on-click-right = "wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle"; on-click-right = "wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle";
}; };
"backlight" = { "backlight" = Tool // {
inherit tooltip;
device = "intel_backlight"; device = "intel_backlight";
format = "{icon}{percent}%"; format = "{icon}{percent}%";
format-icons = format-icons =
[ "󱩎 " "󱩏 " "󱩐 " "󱩑 " "󱩒 " "󱩓 " "󱩔 " "󱩕 " "󱩖 " "󰛨 " ]; [ "󱩎 " "󱩏 " "󱩐 " "󱩑 " "󱩒 " "󱩓 " "󱩔 " "󱩕 " "󱩖 " "󰛨 " ];
scroll-step = 1; scroll-step = 1;
}; };
"network" = { "network" = Tool // {
inherit tooltip;
format-icons = [ "󰤯" "󰤟" "󰤢" "󰤥" "󰤨" ]; format-icons = [ "󰤯" "󰤟" "󰤢" "󰤥" "󰤨" ];
format-wifi = "{icon} CON"; format-wifi = "{icon} CON";
format-ethernet = "󰈀 ETH"; format-ethernet = "󰈀 ETH";
@ -80,15 +88,13 @@ in {
on-click = "kitty nmtui"; on-click = "kitty nmtui";
interval = 5; interval = 5;
}; };
"${wm.bar}/language" = { "hyprland/language" = Tool // {
inherit tooltip;
format = "󰌌 {}"; format = "󰌌 {}";
format-en = "EN"; format-en = "EN";
format-ru = "RU"; format-ru = "RU";
keyboard-name = "at-translated-set-2-keyboard"; keyboard-name = "at-translated-set-2-keyboard";
}; };
"cava" = { "cava" = Tool // {
inherit tooltip;
framerate = 24; framerate = 24;
autosens = 1; autosens = 1;
bars = 12; bars = 12;
@ -98,42 +104,18 @@ in {
}; };
# CENTER MODULES # CENTER MODULES
"hyprland/workspaces" = { "hyprland/workspaces" = Tool // {
inherit tooltip;
disable-scroll = false; disable-scroll = false;
on-click = "activate"; on-click = "activate";
format = "{icon}"; format = "{icon}";
format-icons = { format-icons = wm_icons;
"1" = "";
"2" = "";
"3" = "";
"4" = "";
"5" = "";
"6" = "";
"7" = "";
"8" = "";
"9" = "";
"10" = "";
};
persistent-workspaces = { "*" = [ 1 2 3 4 5 6 7 8 9 10 ]; }; persistent-workspaces = { "*" = [ 1 2 3 4 5 6 7 8 9 10 ]; };
}; };
"sway/workspaces" = { "sway/workspaces" = Tool // {
inherit tooltip;
disable-scroll = false; disable-scroll = false;
on-click = "activate"; on-click = "activate";
format = "{icon}"; format = "{icon}";
format-icons = { format-icons = wm_icons;
"1" = "";
"2" = "";
"3" = "";
"4" = "";
"5" = "";
"6" = "";
"7" = "";
"8" = "";
"9" = "";
"10" = "";
};
persistent-workspaces = { persistent-workspaces = {
"1" = [ ]; "1" = [ ];
"2" = [ ]; "2" = [ ];
@ -146,31 +128,26 @@ in {
}; };
# RIGHT MODULES # RIGHT MODULES
"custom/separatorR" = { "custom/separatorR" = Tool // {
inherit tooltip;
format = "|"; format = "|";
interval = 1; interval = 1;
}; };
"tray" = { "tray" = Tool // {
inherit tooltip;
icon-size = 18; icon-size = 18;
show-passive-items = true; show-passive-items = true;
spacing = 8; spacing = 8;
}; };
"disk" = { "disk" = Tool // {
inherit tooltip;
format = "{used} of {total} 󰋊"; format = "{used} of {total} 󰋊";
interval = 30; interval = 30;
path = "/"; path = "/";
unit = "GB"; unit = "GB";
}; };
"clock#time" = { "clock#time" = Tool // {
inherit tooltip;
format = "{:%H:%M} "; format = "{:%H:%M} ";
interval = 1; interval = 1;
}; };
"battery" = { "battery" = Tool // {
inherit tooltip;
format = "{capacity}% {icon}"; format = "{capacity}% {icon}";
format-alt = "{time} {icon}"; format-alt = "{time} {icon}";
format-charging = "{capacity}% 󱐋"; format-charging = "{capacity}% 󱐋";

View file

@ -19,13 +19,12 @@ in {
imports = [ ./binds.nix ./sets.nix ]; imports = [ ./binds.nix ./sets.nix ];
config = mkIf cfg.enable { config = mkIf cfg.enable {
wayland.windowManager.sway = with pkgs; wayland.windowManager.sway = True // {
True // { package = pkgs.swayfx;
package = swayfx; checkConfig = false;
checkConfig = false; xwayland = true;
xwayland = true; systemd = True;
systemd = True; };
};
}; };
} }

View file

@ -1,4 +1,4 @@
{ pkgs, lib, config, True, ... }: { lib, config, True, False, ... }:
with lib; with lib;
@ -13,7 +13,7 @@ in {
initrd = True; initrd = True;
amdvlk = True // { amdvlk = True // {
support32Bit = True; support32Bit = True;
supportExperimental = True; supportExperimental = False;
}; };
}; };
cpu.amd = { # OPTIMIZATION FOR CPU cpu.amd = { # OPTIMIZATION FOR CPU

View file

@ -14,8 +14,9 @@ in {
]; ];
networking = { # FOR NETWORK networking = { # FOR NETWORK
hostName = hostName; hostName = hostName;
nameservers = [ "::1" "127.0.0.1" "1.1.1.1" "1.0.0.1" ];
resolvconf.dnsSingleRequest = true;
networkmanager = True // { networkmanager = True // {
insertNameservers = [ "1.1.1.1" "1.0.0.1" ];
dns = "systemd-resolved"; dns = "systemd-resolved";
wifi = { wifi = {
powersave = true; powersave = true;

View file

@ -6,9 +6,9 @@
./power ./power
./protonmail ./protonmail
./system76 ./system76
./terraria
./users ./users
./variables ./variables
./zapret
./nix.nix ./nix.nix
]; ];
} }

View file

@ -0,0 +1,19 @@
{ lib, config, True, ... }:
with lib;
let cfg = config.module.misc.terraria;
in {
options = { module.misc.terraria = { enable = mkEnableOption ""; }; };
config = mkIf cfg.enable {
services.terraria = True // {
password = "1234";
port = 7777;
openFirewall = true;
messageOfTheDay = "You are gay's";
autoCreatedWorldSize = "large";
};
};
}

View file

@ -1,10 +1,8 @@
{ pkgs, lib, config, userName, wm, True, ... }: { pkgs, lib, config, userName, True, ... }:
with lib; with lib;
let let cfg = config.module.misc.users;
cfg = config.module.misc.users;
grp = [ "video" "audio" "networkmanager" "wheel" "docker" "libvirtd" ];
in { in {
options = { options = {
module.misc.users = { module.misc.users = {
@ -18,18 +16,35 @@ in {
config = mkIf cfg.enable { config = mkIf cfg.enable {
programs.${cfg.shell} = True; programs.${cfg.shell} = True;
environment.loginShellInit = '' users = let
[ "$(tty)" = "/dev/tty1" ] && exec ${wm.sh} # LAUNCH WM grp = [
''; "video"
users = { # USERS SETS "audio"
"networkmanager"
"wheel"
"docker"
"libvirtd"
"terraria"
"transmission"
];
in { # USERS SETS
defaultUserShell = pkgs.${cfg.shell}; defaultUserShell = pkgs.${cfg.shell};
groups.${userName} = { }; groups = {
users.${userName} = { ${userName} = { };
uid = 1000; tpws = { };
home = "/home/${userName}"; };
createHome = true; users = {
isNormalUser = true; ${userName} = {
extraGroups = grp; uid = 1000;
home = "/home/${userName}";
createHome = true;
isNormalUser = true;
extraGroups = grp;
};
tpws = {
isSystemUser = true;
group = "tpws";
};
}; };
}; };
}; };

View file

@ -1,57 +0,0 @@
{ pkgs, lib, config, ... }:
with lib;
let cfg = config.module.misc.zapret;
in {
options = { module.misc.zapret = { enable = mkEnableOption ""; }; };
config = mkIf cfg.enable {
systemd = {
services = {
zapret = {
wantedBy = [ "multi-user.target" ];
requires = [ "network.target" ];
path = with pkgs; [ iptables nftables zapret ipset curl gawk ];
serviceConfig = {
Type = "forking";
Restart = "no";
TimeoutSec = "30sec";
IgnoreSIGPIPE = "no";
KillMode = "none";
GuessMainPID = "no";
ExecStart = "${pkgs.zapret}/bin/zapret start";
ExecStop = "${pkgs.zapret}/bin/zapret stop";
EnvironmentFile = pkgs.writeText "zapret-environment" ''
FWTYPE="iptables"
SET_MAXELEM=522288
IPSET_OPT="hashsize 262144 maxelem $SET_MAXELEM"
AUTOHOSTLIST_RETRANS_THRESHOLD=3
AUTOHOSTLIST_FAIL_THRESHOLD=3
AUTOHOSTLIST_FAIL_TIME=60
AUTOHOSTLIST_DEBUGLOG=0
MDIG_THREADS=30
GZIP_LISTS=1
MODE=nfqws
MODE_HTTP=1
MODE_HTTP_KEEPALIVE=0
MODE_HTTPS=1
MODE_QUIC=0
MODE_FILTER=none
DESYNC_MARK=0x40000000
DESYNC_MARK_POSTNAT=0x20000000
NFQWS_OPT_DESYNC="--dpi-desync=fake,split2 --dpi-desync-ttl=3"
TPWS_OPT="--hostspell=HOST --split-http-req=method --split-pos=3 --oob"
FLOWOFFLOAD=donttouch
INIT_APPLY_FW=1
DISABLE_IPV6=0
'';
};
};
};
};
};
}

View file

@ -11,6 +11,7 @@ in {
sway.enable = mkEnableOption ""; sway.enable = mkEnableOption "";
steam.enable = mkEnableOption ""; steam.enable = mkEnableOption "";
torrserver.enable = mkEnableOption ""; torrserver.enable = mkEnableOption "";
hamachi.enable = mkEnableOption "";
pkgs = mkOption { pkgs = mkOption {
type = types.listOf types.package; type = types.listOf types.package;
default = null; default = null;
@ -27,12 +28,12 @@ in {
}; };
programs = { programs = {
light = True; light = True;
nano = False;
git = True // { package = pkgs.gitMinimal; }; git = True // { package = pkgs.gitMinimal; };
nh = True // { nh = True // {
flake = flakeDir; flake = flakeDir;
clean = True // { extraArgs = "--keep-since 3d --keep 3"; }; clean = True // { extraArgs = "--keep-since 3d --keep 3"; };
}; };
nano = False;
}; };
}) })
(mkIf cfg.hyprland.enable { (mkIf cfg.hyprland.enable {
@ -49,10 +50,14 @@ in {
programs = { sway = True // { package = pkgs.swayfx; }; }; programs = { sway = True // { package = pkgs.swayfx; }; };
}) })
(mkIf cfg.steam.enable { (mkIf cfg.steam.enable {
environment.systemPackages = with pkgs; [ protonup-qt ];
hardware.xone = True; hardware.xone = True;
programs = { programs = {
gamescope = True; gamescope = True;
gamemode = True;
steam = True // { # GAMING steam = True // { # GAMING
gamescopeSession = True;
extraCompatPackages = with pkgs; [ proton-ge-bin ];
package = pkgs.steam.override { package = pkgs.steam.override {
extraEnv = { extraEnv = {
MANGOHUD = true; MANGOHUD = true;
@ -60,10 +65,10 @@ in {
RADV_TEX_ANISO = 16; RADV_TEX_ANISO = 16;
}; };
}; };
extraCompatPackages = with pkgs; [ proton-ge-bin ];
}; };
}; };
}) })
(mkIf cfg.hamachi.enable { programs.haguichi = True; })
]; ];
} }

View file

@ -2,12 +2,14 @@
imports = [ imports = [
./autocpu ./autocpu
./dbus ./dbus
./deluge
./getty ./getty
./gvfs ./gvfs
./polkit ./polkit
./printing ./printing
./tailscale ./tailscale
./tlp ./tlp
./transmission
./zram ./zram
]; ];
} }

View file

@ -0,0 +1,17 @@
{ pkgs, lib, config, userName, True, ... }:
with lib;
let cfg = config.module.services.deluge;
in {
options = { module.services.deluge = { enable = mkEnableOption ""; }; };
config = mkIf cfg.enable {
services.deluge = True // {
package = pkgs.deluged;
dataDir = "/home/${userName}/Torrents";
web = True // { openFirewall = true; };
};
};
}

View file

@ -8,20 +8,19 @@ in {
config = mkIf cfg.enable { config = mkIf cfg.enable {
security.polkit = True; security.polkit = True;
# systemd = { environment.systemPackages = [ pkgs.soteria ];
# user.services.polkitGui = { systemd.user.services.polkit-soteria = {
# wantedBy = [ "graphical-session.target" ]; wantedBy = [ "graphical-session.target" ];
# wants = [ "graphical-session.target" ]; wants = [ "graphical-session.target" ];
# after = [ "graphical-session.target" ]; after = [ "graphical-session.target" ];
# serviceConfig = { script = lib.getExe pkgs.soteria;
# Type = "simple"; serviceConfig = {
# ExecStart = "${pkgs.soteria}/bin/soteria"; Type = "simple";
# Restart = "on-failure"; Restart = "on-failure";
# RestartSec = 1; RestartSec = 1;
# TimeoutStopSec = 10; TimeoutStopSec = 10;
# }; };
# }; };
# };
}; };
} }

View file

@ -0,0 +1,28 @@
{ lib, config, True, ... }:
with lib;
let cfg = config.module.services.transmission;
in {
options = { module.services.transmission = { enable = mkEnableOption ""; }; };
config = mkIf cfg.enable {
systemd.services.transmission.serviceConfig.UMask = lib.mkForce "0037";
services.transmission = True // {
home = "/var/lib/transmission";
downloadDirPermissions = "777";
performanceNetParameters = true;
openRPCPort = true;
openPeerPorts = true;
settings = let home = config.services.transmission.home;
in {
peer-limit-per-torrent = 5;
upload-slots-per-torrent = 2;
download-dir = "${home}/Completed";
incomplete-dir = "${home}/.incompleted";
};
};
};
}