1
0
Fork 0
mirror of https://git.sr.ht/~neverness/ultima synced 2024-12-27 19:23:52 +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"
}
},
"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": {
"inputs": {
"nixpkgs-lib": "nixpkgs-lib"
@ -245,6 +261,28 @@
"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": {
"locked": {
"lastModified": 1629284811,
@ -281,6 +319,36 @@
"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": {
"flake": false,
"locked": {
@ -573,6 +641,29 @@
"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": {
"locked": {
"lastModified": 1731890469,
@ -677,6 +768,34 @@
"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": {
"locked": {
"lastModified": 1731494868,
@ -692,26 +811,6 @@
"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": {
"inputs": {
"nixpkgs-lib": "nixpkgs-lib_2"
@ -730,6 +829,27 @@
"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": {
"inputs": {
"flake-compat": "flake-compat",
@ -766,14 +886,34 @@
"hyprland": "hyprland",
"nixpkgs": "nixpkgs_3",
"nur": "nur",
"nypkgs": "nypkgs",
"parts": "parts",
"phani": "phani",
"spicetify": "spicetify",
"stylix": "stylix",
"tgt": "tgt",
"transg": "transg",
"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": {
"inputs": {
"flake-compat": "flake-compat_2",
@ -925,6 +1065,49 @@
"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": {
"inputs": {
"nixpkgs": [
@ -998,11 +1181,11 @@
]
},
"locked": {
"lastModified": 1731689537,
"narHash": "sha256-0wN39XFD5bVcNANh9uLoQYyKbp9r6xX+oON1qI+L9iI=",
"lastModified": 1732835488,
"narHash": "sha256-r1nomBVEMO4I0y3pMfqLletQxKak5xfpk9DhlO1AsuI=",
"owner": "ch4og",
"repo": "zen-browser-flake",
"rev": "064be844324965da1d596a541fdd831efe4a3a32",
"rev": "d8fbf602685f5cf2a6475eaf20595a6dc6628891",
"type": "github"
},
"original": {

View file

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

View file

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

View file

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

View file

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

View file

@ -1,16 +1,16 @@
{ pkgs, config, False, ... }:
{ config, False, ... }:
let
m = config.wayland.windowManager.sway.config.modifier;
x = "exec";
in {
module.wm.sway = {
bars = False;
programs = with pkgs; {
"${m}+b" = "${x} ${floorp}/bin/floorp";
"${m}+v" = "${x} ${_64gram}/bin/telegram-desktop";
"${m}+n" = "${x} ${kitty}/bin/kitty -T Explorer ${yazi}/bin/yazi";
"${m}+u" = "${x} ${onlyoffice-bin}/bin/onlyoffice-desktopeditors";
"${m}+i" = "${x} ${libreoffice}/lib/libreoffice/program/soffice.bin";
programs = {
"${m}+b" = "${x} floorp";
"${m}+v" = "${x} telegram-desktop";
"${m}+n" = "${x} kitty -T Explorer yazi";
"${m}+u" = "${x} onlyoffice-desktopeditors";
"${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 = {
autocpu = False;
dbus = True;
deluge = False;
getty = True;
gvfs = True;
polkit = True;
printing = False;
tailscale = True;
tlp = False;
transmission = True;
zram = True // { algo = "zstd"; };
};
# PROGRAMS MODULES
@ -29,6 +31,7 @@
hyprland = True;
sway = False;
steam = True;
hamachi = True;
torrserver = True;
};
misc = {
@ -38,9 +41,9 @@
power = False;
protonmail = False;
system76 = False;
terraria = False;
users = True // { shell = "fish"; };
variables = True;
zapret = False;
nix = True;
};
};

View file

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

View file

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

View file

@ -1,18 +1,9 @@
{ lib, config, userName, stateVersion ? null, True, ... }:
with lib;
let cfg = config.module.misc.home-manager;
in {
options = { module.misc.home-manager = { enable = mkEnableOption ""; }; };
config = mkIf cfg.enable {
programs.home-manager = True;
home = {
username = userName;
homeDirectory = "/home/${userName}";
stateVersion = stateVersion;
};
{ userName, stateVersion ? null, True, ... }: {
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, ... }:
with lib;
let cfg = config.module.misc.minimal;
in {
options = { module.misc.minimal = { enable = mkEnableOption ""; }; };
config = mkIf cfg.enable {
news.display = "silent";
programs.man = False;
manual = {
html = False;
json = False;
manpages = False;
};
{ False, ... }: {
news.display = "silent";
programs.man = False;
manual = {
html = False;
json = False;
manpages = False;
};
}

View file

@ -1,37 +1,28 @@
{ pkgs, lib, config, userName, False, ... }:
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;
extra-experimental-features = [ "nix-command" "flakes" ];
builders-use-substitutes = true;
auto-optimise-store = true;
extra-substituters = [
"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;
{ pkgs, userName, False, ... }: {
nix = {
package = pkgs.nix;
settings = {
warn-dirty = false;
extra-experimental-features = [ "nix-command" "flakes" ];
builders-use-substitutes = true;
auto-optimise-store = true;
extra-substituters = [
"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;
};
}

View file

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

View file

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

View file

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

View file

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

View file

@ -6,7 +6,7 @@ let cfg = config.module.programs.cli.helix;
in {
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 =
mkIf cfg.enable { programs.helix = True // { defaultEditor = true; }; };
}

View file

@ -17,16 +17,10 @@ in {
indent = indent;
inherit auto-format;
}
{ # FISH LSP
name = "fish";
language-servers = [ "fish_indent" ];
inherit auto-format;
formatter.command = "${fish}/bin/fish_indent";
indent = indent;
}
{ # HTML
name = "html";
language-servers = [ "vscode-html-language-server" ];
language-servers = [ "vscode-html" ];
indent = indent;
inherit auto-format;
formatter = {
command = "${prettier}/bin/prettier";
@ -35,7 +29,8 @@ in {
}
{ # JSON
name = "json";
language-servers = [ "vscode-json-language-server" ];
language-servers = [ "vscode-json" ];
indent = indent;
inherit auto-format;
formatter = {
command = "${prettier}/bin/prettier";
@ -44,7 +39,8 @@ in {
}
{ # JSON
name = "jsonc";
language-servers = [ "vscode-json-language-server" ];
language-servers = [ "vscode-json" ];
indent = indent;
inherit auto-format;
formatter = {
command = "${prettier}/bin/prettier";
@ -53,7 +49,8 @@ in {
}
{ # CSS
name = "css";
language-servers = [ "vscode-css-language-server" ];
language-servers = [ "vscode-css" ];
indent = indent;
inherit auto-format;
formatter = {
command = "${prettier}/bin/prettier";
@ -63,40 +60,62 @@ in {
{ # MARKDOWN
name = "markdown";
language-servers = [ "marksman" ];
indent = indent;
inherit auto-format;
formatter = {
command = "${prettier}/bin/prettier";
args = [ "--use-tabs" "--parser" "markdown" ];
};
}
{ # TYPESCRIP
{ # TYPESCRIPT
name = "typescript";
language-servers = [ "typescript" ];
indent = indent;
inherit auto-format;
formatter = {
command = "${prettier}/bin/prettier";
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 {
nixd = { command = "${nixd}/bin/nixd"; };
fish_indent = { command = "${fish}/bin/fish_indent"; };
vscode-html-language-server = {
command = "${vscode}/bin/vscode-html-language-server";
};
vscode-json-language-server = {
command = "${vscode}/bin/vscode-json-language-server";
};
vscode-css-language-server = {
command = "${vscode}/bin/vscode-css-language-server";
};
marksman = { command = "${marksman}/bin/marksman"; };
typescript = {
command =
"${typescript-language-server}/bin/typescript-language-server";
nixd.command = "${nixd}/bin/nixd";
vscode-html.command = "${vscode}/bin/vscode-html-language-server";
vscode-json.command = "${vscode}/bin/vscode-json-language-server";
vscode-css.command = "${vscode}/bin/vscode-css-language-server";
marksman.command = "${marksman}/bin/marksman";
typescript.command = "${typescript}/bin/typescript-language-server";
pyright = {
command = "${pyright}/bin/pyright-langserver";
args = [ "--stdio" ];
config = {
reportMissingTypeStubs = false;
python.analysis = {
typeCheckingMode = "basic";
autoImportCompletions = true;
};
};
};
ruff.command = "${ruff-lsp}/bin/ruff-lsp";
};
};
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;
let cfg = config.module.programs.cli.anicli;
let cfg = config.module.programs.custom.anicli;
in {
options = { module.programs.cli.anicli = { enable = mkEnableOption ""; }; };
options = {
module.programs.custom.anicli = { enable = mkEnableOption ""; };
};
config = mkIf cfg.enable {
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 {
options = {
module.shells.alias = {
enable = mkEnableOption "";
alias = mkOption {
type = with types; attrsOf str;
default = null;
@ -14,7 +13,7 @@ in {
};
};
config = mkIf cfg.enable {
config = {
home = { shellAliases = cfg.alias; };
xdg.configFile."lutgen/paradise".text =
"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;
@ -8,9 +8,10 @@ let
in {
options = { module.shells.fish = { enable = mkEnableOption ""; }; };
imports = [ ./misc ./colors.nix ./functions.nix ./plugins.nix ];
imports = [ ./misc ./colors.nix ./plugins.nix ];
config = mkIf cfg.enable {
programs.fish = True // {
package = pkgs.fish;
preferAbbrs = true;
shellAbbrs = abbrs;
interactiveShellInit = ''
@ -38,6 +39,8 @@ in {
set -g tide_pwd_color_dirs blue
set -g tide_pwd_color_anchors blue
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 = {
clone.body = ''
echo "cd ~/git/"
@ -7,16 +7,21 @@
'';
# NIX
rebuild.body = ''
git add ~/.flake/.
git add --all ${flakeDir}/.
for ARG in $argv
if [ $ARG = home ]
command home-manager switch --flake ~/.flake
command nh home switch
return $status
else if [ $ARG = host ]
command sudo nixos-rebuild switch --flake ~/.flake
command sudo nh os switch
return $status
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
'';

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;
in {
options = { module.shells.var = { enable = mkEnableOption ""; }; };
MICRO_TRUECOLOR = "1";
MOZ_ENABLE_WAYLAND = "1";
RANGER_LOAD_DEFAULT_RC = "false";
config = mkIf cfg.enable {
home.sessionVariables = {
TERM = "kitty";
TERMINAL = "kitty";
FILE_MANAGER = "yazi";
MICRO_TRUECOLOR = "1";
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";
};
# 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;
@ -66,7 +66,6 @@ in {
${settings.default}
# BINDINGS
${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
'';
in {
"qt5ct/colors/paradise.conf".text = "${colors}";
"qt6ct/colors/paradise.conf".text = "${colors}";
"qt5ct/colors/paradise.conf".text = colors;
"qt6ct/colors/paradise.conf".text = colors;
};
}

View file

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

View file

@ -3,8 +3,6 @@ let
cfg = config.module.wm.hyprland;
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";
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:
let ws = i + 1;
in [
@ -30,7 +28,7 @@ in {
"$mu" = "mouse_up";
"$ex" = "exec";
bind = with cfg; # KEYBOARD
bind = # KEYBOARD
[ # MENU
"$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, $pr, workspace, e-1"
] ++ workspaces ++ programs;
] ++ workspaces ++ cfg.programs;
# HOLDING BUTTONS
binde = let
@ -120,8 +118,8 @@ in {
", XF86AudioLowerVolume, $ex, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-"
# LIGHT
", XF86MonBrightnessDown, $ex, doas light -U 10"
", XF86MonBrightnessUp, $ex, doas light -A 10"
", XF86MonBrightnessDown, $ex, sudo light -U 10"
", XF86MonBrightnessUp, $ex, sudo light -A 10"
];
bindm = [ # MOUSE
@ -130,14 +128,5 @@ in {
"$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, ... }:
let
cl = "class:^";
tl = "title:^";
it = "initialTitle:^";
in {
{ config, ... }: {
wayland.windowManager.hyprland.settings = with config.lib.stylix.colors; {
windowrulev2 = [
# WORKSPACE RULES
layerrule = [ "noanim, notifications" ];
windowrulev2 = let
cl = "class:^";
tt = "title:^";
il = "initialClass:^";
it = "initialTitle:^";
in [
"workspace 2 silent, ${cl}(firefox)$"
"workspace 2 silent, ${cl}(floorp)$"
"workspace 2 silent, ${cl}(zen-alpha)$"
"workspace 3 silent, ${cl}(Spotify)$"
"workspace 3 silent, ${tl}(Spotify Free)$"
"workspace 3 silent, ${it}(Spotify Free)$"
"workspace 3 silent, ${cl}(spotify)$"
"workspace 3 silent, ${il}(spotify)$"
"workspace 3 silent, ${tt}(Spotify Free)$"
"workspace 3 silent, ${it}(Spotify)$"
"workspace 4 silent, ${cl}(com.ayugram)$"
"workspace 4 silent, ${cl}(io.github.tdesktop_x64.TDesktop)$"
"workspace 4 silent, ${cl}(vesktop)$"
"workspace 5 silent, ${cl}(obsidian)$"
"workspace 6 silent, ${cl}(anicli)$"
"workspace 9 silent, ${cl}(org.qbittorrent.qBittorrent)$"
# TERMINAL RULES
"float, ${cl}(termfloat)$"
"size 650 430, ${cl}(termfloat)$"
"move center, ${cl}(termfloat)$"
"size 650 430, ${cl}(termfloat)$"
# FILE MANAGER
"float, ${cl}(tfm)$"
"size 800 350, ${cl}(tfm)$"
"move center, ${cl}(tfm)$"
"size 800 350, ${cl}(tfm)$"
# AYUGRAM
"minsize 540 680, ${cl}(com.ayugram)$"
"float, ${tl}(Media viewer)$"
"noanim, ${tl}(Media viewer)$"
"fullscreen, ${tl}(Media viewer)$"
"size 670 540, ${tl}(Media viewer)$"
"float, ${tl}(Choose Files)$"
"size 650 450, ${tl}(Choose Files)$"
"minsize 540 680, ${cl}(com.ayugram)$" # SELF
"float, ${tt}(Media viewer)$" # VIEWER
"noanim, ${tt}(Media viewer)$"
"fullscreen, ${tt}(Media viewer)$"
"size 670 540, ${tt}(Media viewer)$"
"float, ${tt}(Choose Files)$" # CHOOSER
"size 650 450, ${tt}(Choose Files)$"
# XDG
"float, ${cl}(xdg-desktop-portal-gtk)$"
@ -51,10 +53,14 @@ in {
"bordercolor rgb(${base08}) rgb(${base09}) 45deg, ${cl}(anicliru)$"
# KOMIKKU
"size 700 980, ${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;
@ -12,7 +12,20 @@ in {
True // {
settings = {
# 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 {
layer = "top";
position = "bottom";
@ -26,9 +39,9 @@ in {
"custom/separatorL"
"network"
"custom/separatorL"
"${wm.bar}/language"
"hyprland/language"
];
modules-center = [ "${wm.bar}/workspaces" ];
modules-center = [ "hyprland/workspaces" ];
modules-right = [
"tray"
"custom/separatorR"
@ -40,18 +53,15 @@ in {
];
# LEFT MODULES
"custom/launcher" = {
inherit tooltip;
"custom/launcher" = Tool // {
format = "<span color='#${base0C}' font='17'></span> {}";
on-click = "nwg-drawer -ovl -nocats -nofs -d -c 7 -mb -49";
};
"custom/separatorL" = {
inherit tooltip;
"custom/separatorL" = Tool // {
format = "|";
interval = 1;
};
"pulseaudio" = {
inherit tooltip;
"pulseaudio" = Tool // {
format = "{icon} {volume}%";
format-icons = {
default = [ "" " " " " ];
@ -63,16 +73,14 @@ in {
on-click = "wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle";
on-click-right = "wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle";
};
"backlight" = {
inherit tooltip;
"backlight" = Tool // {
device = "intel_backlight";
format = "{icon}{percent}%";
format-icons =
[ "󱩎 " "󱩏 " "󱩐 " "󱩑 " "󱩒 " "󱩓 " "󱩔 " "󱩕 " "󱩖 " "󰛨 " ];
scroll-step = 1;
};
"network" = {
inherit tooltip;
"network" = Tool // {
format-icons = [ "󰤯" "󰤟" "󰤢" "󰤥" "󰤨" ];
format-wifi = "{icon} CON";
format-ethernet = "󰈀 ETH";
@ -80,15 +88,13 @@ in {
on-click = "kitty nmtui";
interval = 5;
};
"${wm.bar}/language" = {
inherit tooltip;
"hyprland/language" = Tool // {
format = "󰌌 {}";
format-en = "EN";
format-ru = "RU";
keyboard-name = "at-translated-set-2-keyboard";
};
"cava" = {
inherit tooltip;
"cava" = Tool // {
framerate = 24;
autosens = 1;
bars = 12;
@ -98,42 +104,18 @@ in {
};
# CENTER MODULES
"hyprland/workspaces" = {
inherit tooltip;
"hyprland/workspaces" = Tool // {
disable-scroll = false;
on-click = "activate";
format = "{icon}";
format-icons = {
"1" = "";
"2" = "";
"3" = "";
"4" = "";
"5" = "";
"6" = "";
"7" = "";
"8" = "";
"9" = "";
"10" = "";
};
format-icons = wm_icons;
persistent-workspaces = { "*" = [ 1 2 3 4 5 6 7 8 9 10 ]; };
};
"sway/workspaces" = {
inherit tooltip;
"sway/workspaces" = Tool // {
disable-scroll = false;
on-click = "activate";
format = "{icon}";
format-icons = {
"1" = "";
"2" = "";
"3" = "";
"4" = "";
"5" = "";
"6" = "";
"7" = "";
"8" = "";
"9" = "";
"10" = "";
};
format-icons = wm_icons;
persistent-workspaces = {
"1" = [ ];
"2" = [ ];
@ -146,31 +128,26 @@ in {
};
# RIGHT MODULES
"custom/separatorR" = {
inherit tooltip;
"custom/separatorR" = Tool // {
format = "|";
interval = 1;
};
"tray" = {
inherit tooltip;
"tray" = Tool // {
icon-size = 18;
show-passive-items = true;
spacing = 8;
};
"disk" = {
inherit tooltip;
"disk" = Tool // {
format = "{used} of {total} 󰋊";
interval = 30;
path = "/";
unit = "GB";
};
"clock#time" = {
inherit tooltip;
"clock#time" = Tool // {
format = "{:%H:%M} ";
interval = 1;
};
"battery" = {
inherit tooltip;
"battery" = Tool // {
format = "{capacity}% {icon}";
format-alt = "{time} {icon}";
format-charging = "{capacity}% 󱐋";

View file

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

View file

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

View file

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

View file

@ -6,9 +6,9 @@
./power
./protonmail
./system76
./terraria
./users
./variables
./zapret
./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;
let
cfg = config.module.misc.users;
grp = [ "video" "audio" "networkmanager" "wheel" "docker" "libvirtd" ];
let cfg = config.module.misc.users;
in {
options = {
module.misc.users = {
@ -18,18 +16,35 @@ in {
config = mkIf cfg.enable {
programs.${cfg.shell} = True;
environment.loginShellInit = ''
[ "$(tty)" = "/dev/tty1" ] && exec ${wm.sh} # LAUNCH WM
'';
users = { # USERS SETS
users = let
grp = [
"video"
"audio"
"networkmanager"
"wheel"
"docker"
"libvirtd"
"terraria"
"transmission"
];
in { # USERS SETS
defaultUserShell = pkgs.${cfg.shell};
groups.${userName} = { };
users.${userName} = {
uid = 1000;
home = "/home/${userName}";
createHome = true;
isNormalUser = true;
extraGroups = grp;
groups = {
${userName} = { };
tpws = { };
};
users = {
${userName} = {
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 "";
steam.enable = mkEnableOption "";
torrserver.enable = mkEnableOption "";
hamachi.enable = mkEnableOption "";
pkgs = mkOption {
type = types.listOf types.package;
default = null;
@ -27,12 +28,12 @@ in {
};
programs = {
light = True;
nano = False;
git = True // { package = pkgs.gitMinimal; };
nh = True // {
flake = flakeDir;
clean = True // { extraArgs = "--keep-since 3d --keep 3"; };
};
nano = False;
};
})
(mkIf cfg.hyprland.enable {
@ -49,10 +50,14 @@ in {
programs = { sway = True // { package = pkgs.swayfx; }; };
})
(mkIf cfg.steam.enable {
environment.systemPackages = with pkgs; [ protonup-qt ];
hardware.xone = True;
programs = {
gamescope = True;
gamemode = True;
steam = True // { # GAMING
gamescopeSession = True;
extraCompatPackages = with pkgs; [ proton-ge-bin ];
package = pkgs.steam.override {
extraEnv = {
MANGOHUD = true;
@ -60,10 +65,10 @@ in {
RADV_TEX_ANISO = 16;
};
};
extraCompatPackages = with pkgs; [ proton-ge-bin ];
};
};
})
(mkIf cfg.hamachi.enable { programs.haguichi = True; })
];
}

View file

@ -2,12 +2,14 @@
imports = [
./autocpu
./dbus
./deluge
./getty
./gvfs
./polkit
./printing
./tailscale
./tlp
./transmission
./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 {
security.polkit = True;
# systemd = {
# user.services.polkitGui = {
# wantedBy = [ "graphical-session.target" ];
# wants = [ "graphical-session.target" ];
# after = [ "graphical-session.target" ];
# serviceConfig = {
# Type = "simple";
# ExecStart = "${pkgs.soteria}/bin/soteria";
# Restart = "on-failure";
# RestartSec = 1;
# TimeoutStopSec = 10;
# };
# };
# };
environment.systemPackages = [ pkgs.soteria ];
systemd.user.services.polkit-soteria = {
wantedBy = [ "graphical-session.target" ];
wants = [ "graphical-session.target" ];
after = [ "graphical-session.target" ];
script = lib.getExe pkgs.soteria;
serviceConfig = {
Type = "simple";
Restart = "on-failure";
RestartSec = 1;
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";
};
};
};
}