From 75e6963dcf4b44de5e8c430895a1cbd896b276d6 Mon Sep 17 00:00:00 2001 From: neverness Date: Tue, 3 Dec 2024 23:20:37 +0900 Subject: [PATCH] update --- flake.lock | 231 ++++++++++++++++-- flake.nix | 17 +- jetpure/default.nix | 8 +- jetpure/home/default.nix | 27 +- jetpure/home/parts/pkgs.nix | 63 ++--- jetpure/home/parts/sway.nix | 14 +- jetpure/home/parts/test.glicol | 16 ++ jetpure/host/default.nix | 5 +- libx/builder.nix | 4 +- modules/home/misc/default.nix | 4 +- modules/home/misc/home-manager/default.nix | 21 +- modules/home/misc/markdown/default.nix | 166 ------------- modules/home/misc/minimal/default.nix | 23 +- modules/home/misc/nix.nix | 57 ++--- modules/home/misc/xdg/default.nix | 8 +- modules/home/misc/xdg/mimeApps.nix | 1 + modules/home/programs/cli/default.nix | 3 +- modules/home/programs/cli/git/default.nix | 10 +- modules/home/programs/cli/helix/default.nix | 2 +- .../cli/helix/{langs.nix => languages.nix} | 75 +++--- .../cli/helix/{sets.nix => settings.nix} | 0 modules/home/programs/cli/joshuto/default.nix | 12 + .../home/programs/cli/joshuto/mimetype.nix | 125 ++++++++++ .../home/programs/cli/joshuto/settings.nix | 20 ++ modules/home/programs/cli/joshuto/theme.nix | 17 ++ .../home/programs/cli/legendary/default.nix | 27 ++ modules/home/programs/cli/zellij/default.nix | 32 --- .../{cli => custom}/anicli/anicli-api.nix | 0 .../{cli => custom}/anicli/anicli-ru.nix | 0 .../{cli => custom}/anicli/chompjs.nix | 0 .../{cli => custom}/anicli/default.nix | 6 +- .../{cli => custom}/anicli/eggella.nix | 0 .../home/programs/custom/ctree/default.nix | 12 + modules/home/programs/custom/ctree/pkg.nix | 23 ++ modules/home/programs/custom/default.nix | 1 + .../home/programs/custom/mabel/default.nix | 12 + modules/home/programs/custom/mabel/pkg.nix | 22 ++ .../programs/custom/rustmission/config.toml | 55 +++++ .../programs/custom/rustmission/default.nix | 16 ++ .../home/programs/custom/torque/default.nix | 14 ++ modules/home/programs/custom/torque/pkg.nix | 17 ++ modules/home/programs/default.nix | 2 +- modules/home/shells/alias.nix | 3 +- modules/home/shells/fish/default.nix | 7 +- modules/home/shells/fish/functions.nix | 15 +- modules/home/shells/var.nix | 41 ++-- modules/home/shells/zsh/default.nix | 3 +- modules/home/themes/qt/color.nix | 4 +- modules/home/themes/stylix/default.nix | 24 +- modules/home/wm/hyprland/binds.nix | 19 +- modules/home/wm/hyprland/rules.nix | 50 ++-- modules/home/wm/misc/waybar/default.nix | 89 +++---- modules/home/wm/sway/default.nix | 13 +- modules/nixos/hardware/amd/default.nix | 4 +- modules/nixos/hardware/network/default.nix | 3 +- modules/nixos/misc/default.nix | 2 +- modules/nixos/misc/terraria/default.nix | 19 ++ modules/nixos/misc/users/default.nix | 45 ++-- modules/nixos/misc/zapret/default.nix | 57 ----- modules/nixos/programs/default.nix | 9 +- modules/nixos/services/default.nix | 2 + modules/nixos/services/deluge/default.nix | 17 ++ modules/nixos/services/polkit/default.nix | 27 +- .../nixos/services/transmission/default.nix | 28 +++ 64 files changed, 1000 insertions(+), 649 deletions(-) create mode 100644 jetpure/home/parts/test.glicol delete mode 100644 modules/home/misc/markdown/default.nix rename modules/home/programs/cli/helix/{langs.nix => languages.nix} (54%) rename modules/home/programs/cli/helix/{sets.nix => settings.nix} (100%) create mode 100644 modules/home/programs/cli/joshuto/default.nix create mode 100644 modules/home/programs/cli/joshuto/mimetype.nix create mode 100644 modules/home/programs/cli/joshuto/settings.nix create mode 100644 modules/home/programs/cli/joshuto/theme.nix create mode 100644 modules/home/programs/cli/legendary/default.nix delete mode 100644 modules/home/programs/cli/zellij/default.nix rename modules/home/programs/{cli => custom}/anicli/anicli-api.nix (100%) rename modules/home/programs/{cli => custom}/anicli/anicli-ru.nix (100%) rename modules/home/programs/{cli => custom}/anicli/chompjs.nix (100%) rename modules/home/programs/{cli => custom}/anicli/default.nix (51%) rename modules/home/programs/{cli => custom}/anicli/eggella.nix (100%) create mode 100644 modules/home/programs/custom/ctree/default.nix create mode 100644 modules/home/programs/custom/ctree/pkg.nix create mode 100644 modules/home/programs/custom/default.nix create mode 100644 modules/home/programs/custom/mabel/default.nix create mode 100644 modules/home/programs/custom/mabel/pkg.nix create mode 100644 modules/home/programs/custom/rustmission/config.toml create mode 100644 modules/home/programs/custom/rustmission/default.nix create mode 100644 modules/home/programs/custom/torque/default.nix create mode 100644 modules/home/programs/custom/torque/pkg.nix create mode 100644 modules/nixos/misc/terraria/default.nix delete mode 100644 modules/nixos/misc/zapret/default.nix create mode 100644 modules/nixos/services/deluge/default.nix create mode 100644 modules/nixos/services/transmission/default.nix diff --git a/flake.lock b/flake.lock index 0409fb7..064bdbe 100644 --- a/flake.lock +++ b/flake.lock @@ -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": { diff --git a/flake.nix b/flake.nix index f2496cf..b5d8210 100644 --- a/flake.nix +++ b/flake.nix @@ -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"; }; diff --git a/jetpure/default.nix b/jetpure/default.nix index fa88357..50e5192 100644 --- a/jetpure/default.nix +++ b/jetpure/default.nix @@ -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; } diff --git a/jetpure/home/default.nix b/jetpure/home/default.nix index 1133ad7..b31bae4 100644 --- a/jetpure/home/default.nix +++ b/jetpure/home/default.nix @@ -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; }; }; diff --git a/jetpure/home/parts/pkgs.nix b/jetpure/home/parts/pkgs.nix index fae61b8..88e8c1c 100644 --- a/jetpure/home/parts/pkgs.nix +++ b/jetpure/home/parts/pkgs.nix @@ -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 ]; }; } diff --git a/jetpure/home/parts/sway.nix b/jetpure/home/parts/sway.nix index 4c9a0dc..72a0d36 100644 --- a/jetpure/home/parts/sway.nix +++ b/jetpure/home/parts/sway.nix @@ -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"; }; }; } diff --git a/jetpure/home/parts/test.glicol b/jetpure/home/parts/test.glicol new file mode 100644 index 0000000..47de1be --- /dev/null +++ b/jetpure/home/parts/test.glicol @@ -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 ^^^ diff --git a/jetpure/host/default.nix b/jetpure/host/default.nix index a78c3ef..5ec03ee 100644 --- a/jetpure/host/default.nix +++ b/jetpure/host/default.nix @@ -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; }; }; diff --git a/libx/builder.nix b/libx/builder.nix index 6263288..5006585 100644 --- a/libx/builder.nix +++ b/libx/builder.nix @@ -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 { diff --git a/modules/home/misc/default.nix b/modules/home/misc/default.nix index 9773abd..82d0023 100644 --- a/modules/home/misc/default.nix +++ b/modules/home/misc/default.nix @@ -1,4 +1,2 @@ -{ - imports = [ ./home-manager ./markdown ./minimal ./xdg ./dconf.nix ./nix.nix ]; -} +{ imports = [ ./home-manager ./minimal ./xdg ./dconf.nix ./nix.nix ]; } diff --git a/modules/home/misc/home-manager/default.nix b/modules/home/misc/home-manager/default.nix index 16e6c2b..f7d7d1a 100644 --- a/modules/home/misc/home-manager/default.nix +++ b/modules/home/misc/home-manager/default.nix @@ -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; }; } diff --git a/modules/home/misc/markdown/default.nix b/modules/home/misc/markdown/default.nix deleted file mode 100644 index fc482a9..0000000 --- a/modules/home/misc/markdown/default.nix +++ /dev/null @@ -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": {} - } - ''; - }; -} - diff --git a/modules/home/misc/minimal/default.nix b/modules/home/misc/minimal/default.nix index 8eb0c2d..322cf6a 100644 --- a/modules/home/misc/minimal/default.nix +++ b/modules/home/misc/minimal/default.nix @@ -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; }; } diff --git a/modules/home/misc/nix.nix b/modules/home/misc/nix.nix index 3c15d4e..a6d1a15 100644 --- a/modules/home/misc/nix.nix +++ b/modules/home/misc/nix.nix @@ -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; + }; } diff --git a/modules/home/misc/xdg/default.nix b/modules/home/misc/xdg/default.nix index 17a56ef..043acdf 100644 --- a/modules/home/misc/xdg/default.nix +++ b/modules/home/misc/xdg/default.nix @@ -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; }; }; }; }; diff --git a/modules/home/misc/xdg/mimeApps.nix b/modules/home/misc/xdg/mimeApps.nix index 9e064b5..ae19c92 100644 --- a/modules/home/misc/xdg/mimeApps.nix +++ b/modules/home/misc/xdg/mimeApps.nix @@ -112,6 +112,7 @@ in { "x-scheme-handler/about" = "zen.${ds}"; "x-scheme-handler/unknown" = "zen.${ds}"; # OTHER + "x-scheme-handler/spotify" = "spotify.${ds}"; }; }; } diff --git a/modules/home/programs/cli/default.nix b/modules/home/programs/cli/default.nix index b6b46e2..a7d262d 100644 --- a/modules/home/programs/cli/default.nix +++ b/modules/home/programs/cli/default.nix @@ -1,6 +1,5 @@ { imports = [ - ./anicli ./bat ./cava ./eza @@ -8,6 +7,8 @@ ./fzf ./git ./helix + ./joshuto + ./legendary ./micro ./rmpc ./top diff --git a/modules/home/programs/cli/git/default.nix b/modules/home/programs/cli/git/default.nix index 27fa251..8280b09 100644 --- a/modules/home/programs/cli/git/default.nix +++ b/modules/home/programs/cli/git/default.nix @@ -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"; diff --git a/modules/home/programs/cli/helix/default.nix b/modules/home/programs/cli/helix/default.nix index 91b5528..2702d2d 100644 --- a/modules/home/programs/cli/helix/default.nix +++ b/modules/home/programs/cli/helix/default.nix @@ -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; }; }; } diff --git a/modules/home/programs/cli/helix/langs.nix b/modules/home/programs/cli/helix/languages.nix similarity index 54% rename from modules/home/programs/cli/helix/langs.nix rename to modules/home/programs/cli/helix/languages.nix index 80a4b10..cec37dd 100644 --- a/modules/home/programs/cli/helix/langs.nix +++ b/modules/home/programs/cli/helix/languages.nix @@ -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; [ diff --git a/modules/home/programs/cli/helix/sets.nix b/modules/home/programs/cli/helix/settings.nix similarity index 100% rename from modules/home/programs/cli/helix/sets.nix rename to modules/home/programs/cli/helix/settings.nix diff --git a/modules/home/programs/cli/joshuto/default.nix b/modules/home/programs/cli/joshuto/default.nix new file mode 100644 index 0000000..add1fd3 --- /dev/null +++ b/modules/home/programs/cli/joshuto/default.nix @@ -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; }; +} + diff --git a/modules/home/programs/cli/joshuto/mimetype.nix b/modules/home/programs/cli/joshuto/mimetype.nix new file mode 100644 index 0000000..978f6ac --- /dev/null +++ b/modules/home/programs/cli/joshuto/mimetype.nix @@ -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"; + }; + }; +} diff --git a/modules/home/programs/cli/joshuto/settings.nix b/modules/home/programs/cli/joshuto/settings.nix new file mode 100644 index 0000000..87708dc --- /dev/null +++ b/modules/home/programs/cli/joshuto/settings.nix @@ -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"; }; + }; +} diff --git a/modules/home/programs/cli/joshuto/theme.nix b/modules/home/programs/cli/joshuto/theme.nix new file mode 100644 index 0000000..8d6b0ca --- /dev/null +++ b/modules/home/programs/cli/joshuto/theme.nix @@ -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; + }; + }; + }; +} diff --git a/modules/home/programs/cli/legendary/default.nix b/modules/home/programs/cli/legendary/default.nix new file mode 100644 index 0000000..b25efb4 --- /dev/null +++ b/modules/home/programs/cli/legendary/default.nix @@ -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 + ''; + }; +} + diff --git a/modules/home/programs/cli/zellij/default.nix b/modules/home/programs/cli/zellij/default.nix deleted file mode 100644 index ce751f0..0000000 --- a/modules/home/programs/cli/zellij/default.nix +++ /dev/null @@ -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}"; - }; - }; - }; - }; -} - diff --git a/modules/home/programs/cli/anicli/anicli-api.nix b/modules/home/programs/custom/anicli/anicli-api.nix similarity index 100% rename from modules/home/programs/cli/anicli/anicli-api.nix rename to modules/home/programs/custom/anicli/anicli-api.nix diff --git a/modules/home/programs/cli/anicli/anicli-ru.nix b/modules/home/programs/custom/anicli/anicli-ru.nix similarity index 100% rename from modules/home/programs/cli/anicli/anicli-ru.nix rename to modules/home/programs/custom/anicli/anicli-ru.nix diff --git a/modules/home/programs/cli/anicli/chompjs.nix b/modules/home/programs/custom/anicli/chompjs.nix similarity index 100% rename from modules/home/programs/cli/anicli/chompjs.nix rename to modules/home/programs/custom/anicli/chompjs.nix diff --git a/modules/home/programs/cli/anicli/default.nix b/modules/home/programs/custom/anicli/default.nix similarity index 51% rename from modules/home/programs/cli/anicli/default.nix rename to modules/home/programs/custom/anicli/default.nix index 3b1536a..1e2b5b0 100644 --- a/modules/home/programs/cli/anicli/default.nix +++ b/modules/home/programs/custom/anicli/default.nix @@ -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 { }) ]; diff --git a/modules/home/programs/cli/anicli/eggella.nix b/modules/home/programs/custom/anicli/eggella.nix similarity index 100% rename from modules/home/programs/cli/anicli/eggella.nix rename to modules/home/programs/custom/anicli/eggella.nix diff --git a/modules/home/programs/custom/ctree/default.nix b/modules/home/programs/custom/ctree/default.nix new file mode 100644 index 0000000..08cc597 --- /dev/null +++ b/modules/home/programs/custom/ctree/default.nix @@ -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 { }) ]; }; +} + diff --git a/modules/home/programs/custom/ctree/pkg.nix b/modules/home/programs/custom/ctree/pkg.nix new file mode 100644 index 0000000..d7e979c --- /dev/null +++ b/modules/home/programs/custom/ctree/pkg.nix @@ -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"; + }; +} diff --git a/modules/home/programs/custom/default.nix b/modules/home/programs/custom/default.nix new file mode 100644 index 0000000..1d0129f --- /dev/null +++ b/modules/home/programs/custom/default.nix @@ -0,0 +1 @@ +{ imports = [ ./anicli ./ctree ./mabel ./rustmission ./torque ]; } diff --git a/modules/home/programs/custom/mabel/default.nix b/modules/home/programs/custom/mabel/default.nix new file mode 100644 index 0000000..ed6f9e9 --- /dev/null +++ b/modules/home/programs/custom/mabel/default.nix @@ -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 { }) ]; }; +} + diff --git a/modules/home/programs/custom/mabel/pkg.nix b/modules/home/programs/custom/mabel/pkg.nix new file mode 100644 index 0000000..83ba15f --- /dev/null +++ b/modules/home/programs/custom/mabel/pkg.nix @@ -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"; + }; +} diff --git a/modules/home/programs/custom/rustmission/config.toml b/modules/home/programs/custom/rustmission/config.toml new file mode 100644 index 0000000..b0129f5 --- /dev/null +++ b/modules/home/programs/custom/rustmission/config.toml @@ -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 = "↑" # "󰒽"" diff --git a/modules/home/programs/custom/rustmission/default.nix b/modules/home/programs/custom/rustmission/default.nix new file mode 100644 index 0000000..36bfb12 --- /dev/null +++ b/modules/home/programs/custom/rustmission/default.nix @@ -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; }; + }; +} + diff --git a/modules/home/programs/custom/torque/default.nix b/modules/home/programs/custom/torque/default.nix new file mode 100644 index 0000000..31ceecd --- /dev/null +++ b/modules/home/programs/custom/torque/default.nix @@ -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 { }) ]; }; +} + diff --git a/modules/home/programs/custom/torque/pkg.nix b/modules/home/programs/custom/torque/pkg.nix new file mode 100644 index 0000000..e5a3618 --- /dev/null +++ b/modules/home/programs/custom/torque/pkg.nix @@ -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 + ''; +} diff --git a/modules/home/programs/default.nix b/modules/home/programs/default.nix index a27a310..f9b9ba1 100644 --- a/modules/home/programs/default.nix +++ b/modules/home/programs/default.nix @@ -1 +1 @@ -{ imports = [ ./cli ./gui ]; } +{ imports = [ ./cli ./custom ./gui ]; } diff --git a/modules/home/shells/alias.nix b/modules/home/shells/alias.nix index 64f12b2..3b1c38e 100644 --- a/modules/home/shells/alias.nix +++ b/modules/home/shells/alias.nix @@ -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"; diff --git a/modules/home/shells/fish/default.nix b/modules/home/shells/fish/default.nix index e04cec1..1235daa 100644 --- a/modules/home/shells/fish/default.nix +++ b/modules/home/shells/fish/default.nix @@ -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 ''; }; }; diff --git a/modules/home/shells/fish/functions.nix b/modules/home/shells/fish/functions.nix index 897fc29..d9a926a 100644 --- a/modules/home/shells/fish/functions.nix +++ b/modules/home/shells/fish/functions.nix @@ -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 ''; diff --git a/modules/home/shells/var.nix b/modules/home/shells/var.nix index 55d0190..a700956 100644 --- a/modules/home/shells/var.nix +++ b/modules/home/shells/var.nix @@ -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"; }; } diff --git a/modules/home/shells/zsh/default.nix b/modules/home/shells/zsh/default.nix index 3f23945..10d8930 100644 --- a/modules/home/shells/zsh/default.nix +++ b/modules/home/shells/zsh/default.nix @@ -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 ''; }; }; diff --git a/modules/home/themes/qt/color.nix b/modules/home/themes/qt/color.nix index 68ef201..83403df 100644 --- a/modules/home/themes/qt/color.nix +++ b/modules/home/themes/qt/color.nix @@ -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; }; } diff --git a/modules/home/themes/stylix/default.nix b/modules/home/themes/stylix/default.nix index a8962c9..ca7a301 100644 --- a/modules/home/themes/stylix/default.nix +++ b/modules/home/themes/stylix/default.nix @@ -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"; diff --git a/modules/home/wm/hyprland/binds.nix b/modules/home/wm/hyprland/binds.nix index fd29b10..c957b62 100644 --- a/modules/home/wm/hyprland/binds.nix +++ b/modules/home/wm/hyprland/binds.nix @@ -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')" - ''; - }; } diff --git a/modules/home/wm/hyprland/rules.nix b/modules/home/wm/hyprland/rules.nix index e7cb78b..cb56e75 100644 --- a/modules/home/wm/hyprland/rules.nix +++ b/modules/home/wm/hyprland/rules.nix @@ -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" ]; }; } diff --git a/modules/home/wm/misc/waybar/default.nix b/modules/home/wm/misc/waybar/default.nix index 881bb6d..ce95f53 100644 --- a/modules/home/wm/misc/waybar/default.nix +++ b/modules/home/wm/misc/waybar/default.nix @@ -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 = " {}"; 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}% 󱐋"; diff --git a/modules/home/wm/sway/default.nix b/modules/home/wm/sway/default.nix index ea2e59b..a47597e 100644 --- a/modules/home/wm/sway/default.nix +++ b/modules/home/wm/sway/default.nix @@ -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; + }; }; } diff --git a/modules/nixos/hardware/amd/default.nix b/modules/nixos/hardware/amd/default.nix index 1e8f17b..bef24d4 100644 --- a/modules/nixos/hardware/amd/default.nix +++ b/modules/nixos/hardware/amd/default.nix @@ -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 diff --git a/modules/nixos/hardware/network/default.nix b/modules/nixos/hardware/network/default.nix index 2fa697a..4a048f3 100644 --- a/modules/nixos/hardware/network/default.nix +++ b/modules/nixos/hardware/network/default.nix @@ -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; diff --git a/modules/nixos/misc/default.nix b/modules/nixos/misc/default.nix index 80ac7cf..1043f9e 100644 --- a/modules/nixos/misc/default.nix +++ b/modules/nixos/misc/default.nix @@ -6,9 +6,9 @@ ./power ./protonmail ./system76 + ./terraria ./users ./variables - ./zapret ./nix.nix ]; } diff --git a/modules/nixos/misc/terraria/default.nix b/modules/nixos/misc/terraria/default.nix new file mode 100644 index 0000000..d6f376d --- /dev/null +++ b/modules/nixos/misc/terraria/default.nix @@ -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"; + }; + }; +} + diff --git a/modules/nixos/misc/users/default.nix b/modules/nixos/misc/users/default.nix index 3faedfe..aa47ea5 100644 --- a/modules/nixos/misc/users/default.nix +++ b/modules/nixos/misc/users/default.nix @@ -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"; + }; }; }; }; diff --git a/modules/nixos/misc/zapret/default.nix b/modules/nixos/misc/zapret/default.nix deleted file mode 100644 index 8e0c3b0..0000000 --- a/modules/nixos/misc/zapret/default.nix +++ /dev/null @@ -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 - ''; - }; - }; - }; - }; - }; -} - diff --git a/modules/nixos/programs/default.nix b/modules/nixos/programs/default.nix index 6be28ce..5f35632 100644 --- a/modules/nixos/programs/default.nix +++ b/modules/nixos/programs/default.nix @@ -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; }) ]; } diff --git a/modules/nixos/services/default.nix b/modules/nixos/services/default.nix index 9a350b3..7bf9717 100644 --- a/modules/nixos/services/default.nix +++ b/modules/nixos/services/default.nix @@ -2,12 +2,14 @@ imports = [ ./autocpu ./dbus + ./deluge ./getty ./gvfs ./polkit ./printing ./tailscale ./tlp + ./transmission ./zram ]; } diff --git a/modules/nixos/services/deluge/default.nix b/modules/nixos/services/deluge/default.nix new file mode 100644 index 0000000..3228496 --- /dev/null +++ b/modules/nixos/services/deluge/default.nix @@ -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; }; + }; + }; +} + diff --git a/modules/nixos/services/polkit/default.nix b/modules/nixos/services/polkit/default.nix index 013bbad..df707fd 100644 --- a/modules/nixos/services/polkit/default.nix +++ b/modules/nixos/services/polkit/default.nix @@ -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; + }; + }; }; } diff --git a/modules/nixos/services/transmission/default.nix b/modules/nixos/services/transmission/default.nix new file mode 100644 index 0000000..5dc3dae --- /dev/null +++ b/modules/nixos/services/transmission/default.nix @@ -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"; + }; + }; + }; +} +