summaryrefslogtreecommitdiff
path: root/unmoved-modules
diff options
context:
space:
mode:
Diffstat (limited to 'unmoved-modules')
-rw-r--r--unmoved-modules/home-manager/default.nix79
-rw-r--r--unmoved-modules/home-manager/fastfetch-logo.txt17
-rw-r--r--unmoved-modules/home-manager/fastfetch.nix61
-rw-r--r--unmoved-modules/home-manager/gaming.nix37
-rw-r--r--unmoved-modules/home-manager/git.nix11
-rw-r--r--unmoved-modules/home-manager/hypr/autostart.nix14
-rw-r--r--unmoved-modules/home-manager/hypr/binds.nix94
-rw-r--r--unmoved-modules/home-manager/hypr/camdenyards.jpgbin0 -> 2850041 bytes
-rw-r--r--unmoved-modules/home-manager/hypr/decoration.nix28
-rw-r--r--unmoved-modules/home-manager/hypr/default.nix140
-rw-r--r--unmoved-modules/home-manager/hypr/hypridle.nix26
-rw-r--r--unmoved-modules/home-manager/hypr/hyprlock.nix46
-rw-r--r--unmoved-modules/home-manager/hypr/hyprpaper.nix26
-rw-r--r--unmoved-modules/home-manager/hypr/input.nix38
-rw-r--r--unmoved-modules/home-manager/hypr/pyprland.toml12
-rw-r--r--unmoved-modules/home-manager/hypr/rofi-hyprland.nix23
-rw-r--r--unmoved-modules/home-manager/hypr/swaync.nix13
-rw-r--r--unmoved-modules/home-manager/hypr/waybar-hyprland.nix128
-rw-r--r--unmoved-modules/home-manager/kitty.nix23
-rw-r--r--unmoved-modules/home-manager/lazygit.nix13
-rw-r--r--unmoved-modules/home-manager/mangowc/default.nix66
-rw-r--r--unmoved-modules/home-manager/nvf.nix116
-rw-r--r--unmoved-modules/home-manager/obs.nix12
-rw-r--r--unmoved-modules/home-manager/rbw.nix19
-rw-r--r--unmoved-modules/home-manager/spicetify.nix27
-rw-r--r--unmoved-modules/home-manager/spotify-player.nix7
-rw-r--r--unmoved-modules/home-manager/vscodium.nix47
-rw-r--r--unmoved-modules/home-manager/yazi.nix42
-rw-r--r--unmoved-modules/home-manager/zen-browser.nix41
-rw-r--r--unmoved-modules/nixos/bluetooth.nix9
-rw-r--r--unmoved-modules/nixos/default.nix81
-rw-r--r--unmoved-modules/nixos/fish.nix13
-rw-r--r--unmoved-modules/nixos/flatpak.nix13
-rw-r--r--unmoved-modules/nixos/gaming.nix19
-rw-r--r--unmoved-modules/nixos/greetd.nix18
-rw-r--r--unmoved-modules/nixos/ly.nix5
-rw-r--r--unmoved-modules/nixos/nas.nix101
-rw-r--r--unmoved-modules/nixos/nix-ld.nix32
-rw-r--r--unmoved-modules/nixos/nordvpn.nix0
-rw-r--r--unmoved-modules/nixos/pipewire.nix10
-rw-r--r--unmoved-modules/nixos/steam.nix19
-rw-r--r--unmoved-modules/nixos/thunar.nix17
-rw-r--r--unmoved-modules/nixos/xdg-portal.nix14
43 files changed, 1557 insertions, 0 deletions
diff --git a/unmoved-modules/home-manager/default.nix b/unmoved-modules/home-manager/default.nix
new file mode 100644
index 0000000..7b91f74
--- /dev/null
+++ b/unmoved-modules/home-manager/default.nix
@@ -0,0 +1,79 @@
+{ pkgs, lib, config, inputs, ... }:
+
+{
+ imports = [
+ ./hypr
+ #./mangowc
+ ./git.nix
+ # ./vscodium.nix
+ ./kitty.nix
+ ./zen-browser.nix
+ ./obs.nix
+ # ./spicetify.nix
+ ./yazi.nix
+ ./fastfetch.nix
+ ./gaming.nix
+ # ./rbw.nix
+ ./nvf.nix
+ ./lazygit.nix
+ ./spotify-player.nix
+ ];
+
+ home.packages = with pkgs; [
+ dconf
+ bitwarden-desktop
+ hyprshot
+ wineWow64Packages.stable
+ winetricks
+ motrix
+ flashprint
+ gvfs
+ brave
+ hyprpicker
+ discord
+ openvpn
+ qbittorrent
+ zoom-us
+ obsidian
+ cryptomator
+ networkmanagerapplet
+ libreoffice
+ gimp3
+ vlc
+ ungoogled-chromium
+ audacity
+ speedtest-cli
+ kid3
+ feishin
+ bluetui
+ btop
+ openjdk
+ thunderbird
+ ];
+
+ home.sessionVariables = {
+ EDITOR = "vi";
+ VISUAL = "vi";
+ };
+
+ xdg.configFile."mimeapps.list".force = true;
+
+ xdg.mimeApps = {
+ enable = true;
+
+ defaultApplications = {
+ "application/pdf" = "zen-twilight.desktop";
+ "application/javascript" = "userapp-kitty vi-DARLE3.desktop";
+ "application/toml" = "userapp-kitty vi-DARLE3.desktop";
+ "application/vnd.microsoft.portable-executable" = "wine-desktop";
+ "application/zip" = "lxqt-archiver.desktop";
+ "inode/directory" = "userapp-kitty yazi-X3BEF3.desktop";
+ "text/html" = "zen-twilight.desktop";
+ "text/plain" = "userapp-kitty vi-DARLE3.desktop";
+ "x-scheme-handler/about" = "zen-twilight.desktop";
+ "x-scheme-handler/http" = "zen-twilight.desktop";
+ "x-scheme-handler/https" = "zen-twilight.desktop";
+ "x-scheme-handler/unknown" = "zen-twilight.desktop";
+ };
+ };
+}
diff --git a/unmoved-modules/home-manager/fastfetch-logo.txt b/unmoved-modules/home-manager/fastfetch-logo.txt
new file mode 100644
index 0000000..b3bc376
--- /dev/null
+++ b/unmoved-modules/home-manager/fastfetch-logo.txt
@@ -0,0 +1,17 @@
+ * *
+ * * *
+ * * * * *
+ * * * * *
+ * * * * * * *
+ * * * * * .# * *
+ * * * #. .# * *
+ * "#. #: #" * * *
+ * * * "#. ##" *
+ * "###
+ "##
+ ##.
+ .##:
+ :###
+ ;###
+ ,####.
+/\/\/\/\/\/.######.\/\/\/\/\
diff --git a/unmoved-modules/home-manager/fastfetch.nix b/unmoved-modules/home-manager/fastfetch.nix
new file mode 100644
index 0000000..74f0820
--- /dev/null
+++ b/unmoved-modules/home-manager/fastfetch.nix
@@ -0,0 +1,61 @@
+{
+ programs.fastfetch = {
+ enable = true;
+
+ settings = {
+ logo = {
+ source = ./fastfetch-logo.txt; # ascii art by Joan G. Stark
+ padding = {
+ right = 2;
+ left = 1;
+ top = 2;
+ };
+ color = {
+ "1" = "bright_green";
+ };
+ };
+
+ display = {
+ color = "bright_green";
+ };
+
+ modules = [
+ "title"
+ "separator"
+ {
+ type = "datetime";
+ key = "Date";
+ format = "{weekday}, {year}-{month-pretty}-{day-in-month}";
+ }
+ {
+ type = "datetime";
+ key = "Time";
+ format = "{hour-pretty}:{minute-pretty}:{second-pretty}, {timezone-name}, UTC{offset-from-utc}";
+ }
+ "uptime"
+ {
+ type = "battery";
+ key = "Battery";
+ format = "{capacity}, {time-formatted} [{status}]";
+ }
+ "separator"
+ "os"
+ "host"
+ "kernel"
+ "packages"
+ "shell"
+ "display"
+ "wm"
+ "separator"
+ "cpu"
+ "gpu"
+ "memory"
+ "swap"
+ "disk"
+ "localip"
+ "break"
+ "colors"
+ ];
+ };
+ };
+} \ No newline at end of file
diff --git a/unmoved-modules/home-manager/gaming.nix b/unmoved-modules/home-manager/gaming.nix
new file mode 100644
index 0000000..3222fc2
--- /dev/null
+++ b/unmoved-modules/home-manager/gaming.nix
@@ -0,0 +1,37 @@
+{ config, pkgs, lib, inputs, ... }:
+
+{
+ options = {
+ gaming.enable = lib.mkEnableOption "enables gaming module";
+ };
+
+ config = lib.mkIf config.gaming.enable {
+ home.packages = [
+ pkgs.prismlauncher
+ pkgs.cemu
+ pkgs.ryubing
+ ];
+
+ programs.lutris = {
+ enable = true;
+ runners = {
+ cemu.package = pkgs.cemu;
+ ryujinx.package = pkgs.ryubing;
+ };
+ steamPackage = pkgs.steam;
+ winePackages = with pkgs.wineWow64Packages; [
+ stable
+ ];
+ extraPackages = with pkgs; [
+ gamemode
+ umu-launcher
+ winetricks
+ mangohud
+ gamescope
+ ];
+ protonPackages = with pkgs; [
+ proton-ge-bin
+ ];
+ };
+ };
+}
diff --git a/unmoved-modules/home-manager/git.nix b/unmoved-modules/home-manager/git.nix
new file mode 100644
index 0000000..7216282
--- /dev/null
+++ b/unmoved-modules/home-manager/git.nix
@@ -0,0 +1,11 @@
+{ config, pkgs, lib, inputs, ... }:
+
+{
+ programs.git = {
+ enable = true;
+ settings = {
+ init.defaultBranch = "main";
+ safe.directory = "/etc/nixos";
+ };
+ };
+}
diff --git a/unmoved-modules/home-manager/hypr/autostart.nix b/unmoved-modules/home-manager/hypr/autostart.nix
new file mode 100644
index 0000000..048afcc
--- /dev/null
+++ b/unmoved-modules/home-manager/hypr/autostart.nix
@@ -0,0 +1,14 @@
+{ config, lib, inputs, ... }:
+
+# very broken, fix later
+
+{
+ config = lib.mkIf config.hyprland.enable {
+ wayland.windowManager.hyprland.settings = {
+ exec-once = [
+ "[workspace 1 silent] zen-browser"
+ "[workspace 7 silent] equibop"
+ ];
+ };
+ };
+}
diff --git a/unmoved-modules/home-manager/hypr/binds.nix b/unmoved-modules/home-manager/hypr/binds.nix
new file mode 100644
index 0000000..00cc3ce
--- /dev/null
+++ b/unmoved-modules/home-manager/hypr/binds.nix
@@ -0,0 +1,94 @@
+{ config, lib, ... }:
+
+{
+ config = lib.mkIf config.hyprland.enable {
+ wayland.windowManager.hyprland.settings.binds = {
+ "$mod" = "SUPER";
+ "$term" = "kitty";
+ "$filem" = "kitty yazi";
+
+ bind = [
+ "$mod SHIFT, K, exec, hyprlock"
+ "$mod, P, exec, hyprpicker"
+ # "$mod, RETURN, exec, pypr toggle kitty"
+
+ "$mod, F1, exec, rofi -show drun"
+ "$mod, F2, exec, $term"
+ "$mod, F3, exec, $filem"
+ "$mod, F4, killactive,"
+ "$mod SHIFT, F4, exec, hyprctl kill"
+
+ "$mod, F, fullscreen"
+ "$mod, T, togglefloating"
+
+ "$mod, 1, workspace, 1"
+ "$mod, 2, workspace, 2"
+ "$mod, 3, workspace, 3"
+ "$mod, 4, workspace, 4"
+ "$mod, 5, workspace, 5"
+ "$mod, 6, workspace, 6"
+ "$mod, 7, workspace, 7"
+ "$mod, 8, workspace, 8"
+ "$mod, 9, workspace, 9"
+ "$mod, 0, workspace, 10"
+
+ "$mod SHIFT, 1, movetoworkspace, 1"
+ "$mod SHIFT, 2, movetoworkspace, 2"
+ "$mod SHIFT, 3, movetoworkspace, 3"
+ "$mod SHIFT, 4, movetoworkspace, 4"
+ "$mod SHIFT, 5, movetoworkspace, 5"
+ "$mod SHIFT, 6, movetoworkspace, 6"
+ "$mod SHIFT, 7, movetoworkspace, 7"
+ "$mod SHIFT, 8, movetoworkspace, 8"
+ "$mod SHIFT, 9, movetoworkspace, 9"
+ "$mod SHIFT, 0, movetoworkspace, 10"
+
+ "$mod, H, movefocus, l"
+ "$mod, J, movefocus, d"
+ "$mod, K, movefocus, u"
+ "$mod, L, movefocus, r"
+
+ "$mod SHIFT, c, exec, xsel -bc"
+
+ "$mod, C, exec, rofi -show calc"
+
+ ", PRINT, exec, hyprshot -m region -o ~/Documents/screenshots"
+ "SHIFT, PRINT, exec, hyprshot -m region --clipboard-only"
+
+ "$mod SHIFT CTRL ALT, L, exec, xdg-open https://linkedin.com" # important bind
+ ];
+
+ bindm = [
+ "$mod, mouse:272, movewindow"
+ "$mod, mouse:273, resizewindow"
+ "$mod SHIFT, mouse:272, resizewindow"
+ ];
+
+ bindl = [
+ ", XF86AudioPrev, exec, playerctl --player=Feishin previous"
+ ", XF86AudioNext, exec, playerctl --player=Feishin next"
+ ", XF86AudioPause, exec, playerctl --player=Feishin play-pause"
+ ", XF86AudioPlay, exec, playerctl --player=Feishin play-pause"
+ "$mod, XF86AudioPrev, exec, playerctl --player=Feishin loop none"
+ "$mod, XF86AudioPause, exec, playerctl --player=Feishin loop playlist"
+ "$mod, XF86AudioPlay, exec, playerctl --player=Feishin loop playlist"
+ "$mod, XF86AudioNext, exec, playerctl --player=Feishin loop track"
+ "$mod, XF86AudioStop, exec, playerctl --player=Feishin shuffle toggle"
+ ", XF86AudioStop, exec, playerctl -a stop"
+
+ "$mod SHIFT, L, exec, hyprctl dispatch dpms toggle"
+ ",switch:Lid Switch, exec, pidof hyprlock || hyprlock"
+
+ "$mod, M, exit,"
+ ];
+
+ bindel = [
+ "$mod,XF86AudioRaiseVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%+"
+ "$mod,XF86AudioLowerVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-"
+ ",XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle"
+ ", XF86MonBrightnessUp, exec, brightnessctl set 10%+"
+ ", XF86MonBrightnessDown, exec, brightnessctl set 10%-"
+ ];
+ };
+ };
+}
diff --git a/unmoved-modules/home-manager/hypr/camdenyards.jpg b/unmoved-modules/home-manager/hypr/camdenyards.jpg
new file mode 100644
index 0000000..4601318
--- /dev/null
+++ b/unmoved-modules/home-manager/hypr/camdenyards.jpg
Binary files differ
diff --git a/unmoved-modules/home-manager/hypr/decoration.nix b/unmoved-modules/home-manager/hypr/decoration.nix
new file mode 100644
index 0000000..e9d5dfe
--- /dev/null
+++ b/unmoved-modules/home-manager/hypr/decoration.nix
@@ -0,0 +1,28 @@
+{ config, lib, inputs, ... }:
+
+{
+ config = lib.mkIf config.hyprland.enable {
+ wayland.windowManager.hyprland.settings = {
+ decoration = {
+ rounding = 0;
+ };
+
+ animations = {
+ enabled = false;
+ };
+
+ workspace = [
+ "w[tv1], gapsout:0, gapsin:0"
+ "f[1], gapsout:0, gapsin:0"
+ ];
+
+ windowrule = [
+ "border_size 0, match:float 0, match:workspace w[tv1]"
+ "rounding 0, match:float 0, match:workspace w[tv1]"
+ "border_size 0, match:float 0, match:workspace f[1]"
+ "rounding 0, match:float 0, match:workspace f[1]"
+ ];
+
+ };
+ };
+}
diff --git a/unmoved-modules/home-manager/hypr/default.nix b/unmoved-modules/home-manager/hypr/default.nix
new file mode 100644
index 0000000..2ec9301
--- /dev/null
+++ b/unmoved-modules/home-manager/hypr/default.nix
@@ -0,0 +1,140 @@
+{ config, pkgs, lib, inputs, ... }:
+
+{
+ options = {
+ hyprland.enable = lib.mkEnableOption "enables hyprland";
+ };
+
+ imports = [
+ ./decoration.nix
+ ./binds.nix
+ ./input.nix
+ ./waybar-hyprland.nix
+ ./hyprlock.nix
+ ./hypridle.nix
+ ./hyprpaper.nix
+ ./rofi-hyprland.nix
+ ];
+
+ config = lib.mkIf config.hyprland.enable {
+ #fixing issues
+
+ xdg.portal = {
+ enable = true;
+
+ config = {
+ common = {
+ default = [ "hyprland" ];
+ };
+ };
+
+ extraPortals = with pkgs; [
+ xdg-desktop-portal-hyprland
+ ];
+ };
+
+ home.packages = with pkgs; [
+ # pyprland
+ ];
+
+ home.file.".config/hypr/pyprland.toml".source = ./pyprland.toml;
+
+ home.sessionVariables.NIXOS_OZONE_WL = "1";
+
+ home.pointerCursor = {
+ gtk.enable = true;
+ # x11.enable = true;
+ package = pkgs.bibata-cursors;
+ name = "Bibata-Modern-Classic";
+ size = 12;
+ };
+
+ gtk = {
+ enable = true;
+
+ theme = {
+ package = pkgs.flat-remix-gtk;
+ name = "Flat-Remix-GTK-Grey-Darkest";
+ };
+
+ iconTheme = {
+ package = pkgs.adwaita-icon-theme;
+ name = "Adwaita";
+ };
+
+ font = {
+ name = "Sans";
+ size = 11;
+ };
+
+ gtk3.extraConfig = {
+ gtk-application-prefer-dark-theme = true;
+ };
+
+ gtk4.extraConfig = {
+ gtk-application-prefer-dark-theme = true;
+ };
+ };
+
+ wayland.windowManager.hyprland.systemd.variables = ["--all"];
+
+ # ok now actually hyprland
+
+ wayland.windowManager.hyprland = {
+ enable = true;
+ xwayland.enable = true;
+
+ settings = {
+ exec-once = [
+ "lxqt-policykit-agent"
+ "waybar"
+ "hyprpaper"
+ "waypaper --restore"
+ # "pypr"
+ ];
+
+ # environment variables
+ env = [
+ "XCURSOR_SIZE,24"
+ "HYPRCURSOR_SIZE,24"
+ ];
+
+ general = {
+ gaps_in = 0;
+ gaps_out = 0;
+
+ border_size = 1;
+
+ # https://wiki.hyprland.org/Configuring/Variables/#variable-types for info about colors
+ "col.active_border" = "rgba(7DAeA3ee) rgba(89B482ee) 45deg";
+ "col.inactive_border" = "rgba(504945ee)";
+
+ # Set to true enable resizing windows by clicking and dragging on borders and gaps
+ resize_on_border = false;
+
+ # Please see https://wiki.hyprland.org/Configuring/Tearing/ before you turn this on
+ allow_tearing = false;
+
+ layout = "dwindle";
+ };
+
+ misc = {
+ force_default_wallpaper = 1;
+ disable_hyprland_logo = false;
+ vfr = true;
+ };
+
+ dwindle = {
+ pseudotile = true;
+ preserve_split = true;
+ };
+ };
+
+ extraConfig = "
+ xwayland {
+ force_zero_scaling = true;
+ }
+ ";
+ };
+ };
+}
diff --git a/unmoved-modules/home-manager/hypr/hypridle.nix b/unmoved-modules/home-manager/hypr/hypridle.nix
new file mode 100644
index 0000000..3f575a0
--- /dev/null
+++ b/unmoved-modules/home-manager/hypr/hypridle.nix
@@ -0,0 +1,26 @@
+{ config, lib, ... }:
+
+{
+ config = lib.mkIf config.hyprland.enable {
+ services.hypridle = {
+ enable = true;
+
+ settings = {
+ general = {
+ lock_cmd = "pidof hyprlock || hyprlock";
+ };
+
+ listener = [
+ {
+ timeout = 300;
+ on-timeout = "hyprlock";
+ }
+ {
+ timeout = 3600;
+ on-timeout = "hyprctl dispatch dpms off";
+ }
+ ];
+ };
+ };
+ };
+} \ No newline at end of file
diff --git a/unmoved-modules/home-manager/hypr/hyprlock.nix b/unmoved-modules/home-manager/hypr/hyprlock.nix
new file mode 100644
index 0000000..675773a
--- /dev/null
+++ b/unmoved-modules/home-manager/hypr/hyprlock.nix
@@ -0,0 +1,46 @@
+{ pkgs, lib, config, ... }:
+
+{
+ config = lib.mkIf config.hyprland.enable {
+ programs.hyprlock = {
+ enable = true;
+
+ settings = {
+ general = {
+ disable_loading_bar = false;
+ hide_cursor = false;
+ no_fade_in = true;
+ };
+
+ background = [
+ {
+ path = "screenshot";
+ # path = ~/.config/hypr/wallpaper_effects/.wallpaper_current;
+ blur_passes = 5;
+ blur_size = 7;
+ }
+ ];
+
+ input-field = [
+ {
+ size = "200, 50";
+ position = "0, 0";
+ fade_on_empty = true;
+ font_color = "rgb(212, 190, 152)";
+ inner_color = "rgb(29, 32, 33)";
+ outer_color = "rgb(125, 174, 163)";
+ outline_thickness = 2;
+ rounding = 0;
+ placeholder_text = "";
+ }
+ ];
+
+ animations = [
+ {
+ enabled = false;
+ }
+ ];
+ };
+ };
+ };
+}
diff --git a/unmoved-modules/home-manager/hypr/hyprpaper.nix b/unmoved-modules/home-manager/hypr/hyprpaper.nix
new file mode 100644
index 0000000..2223e9a
--- /dev/null
+++ b/unmoved-modules/home-manager/hypr/hyprpaper.nix
@@ -0,0 +1,26 @@
+{ pkgs, lib, config, ... }:
+
+{
+ config = lib.mkIf config.hyprland.enable {
+ home.packages = [
+ pkgs.hyprpaper
+ pkgs.waypaper
+ ];
+
+ services.hyprpaper = {
+ enable = true;
+
+ settings = {
+ ipc = "on";
+ splash = false;
+
+ wallpaper = [
+ {
+ monitor = "";
+ path = "~/nixosconf/modules/home-manager/hypr/camdenyards.jpg";
+ }
+ ];
+ };
+ };
+ };
+}
diff --git a/unmoved-modules/home-manager/hypr/input.nix b/unmoved-modules/home-manager/hypr/input.nix
new file mode 100644
index 0000000..09fdb3e
--- /dev/null
+++ b/unmoved-modules/home-manager/hypr/input.nix
@@ -0,0 +1,38 @@
+{ config, lib, ... }:
+
+{
+ config = lib.mkIf config.hyprland.enable {
+ wayland.windowManager.hyprland = {
+ settings = {
+ input = {
+ touchpad = {
+ natural_scroll = true;
+ };
+ accel_profile = "flat";
+ };
+ gesture = [
+ "3, horizontal, workspace,"
+ ];
+
+ device = [
+ { # xanathar touchpad
+ name = "syna32ce:00-06cb:ce17-touchpad";
+ sensitivity = 0;
+ }
+ { # vecna mouse
+ name = "razer-razer-deathadder-v2-x-hyperspeed-1";
+ sensitivity = -0.35;
+ }
+ { # vecna mouse depending on how it's feeling
+ name = "razer-razer-deathadder-v2-x-hyperspeed";
+ sensitivity = -0.35;
+ }
+ { # i can't believe its this finnicky
+ name = "razer-razer-deathadder-v2-x-hyperspeed-mouse";
+ sensitivity = -0.35;
+ }
+ ];
+ };
+ };
+ };
+} \ No newline at end of file
diff --git a/unmoved-modules/home-manager/hypr/pyprland.toml b/unmoved-modules/home-manager/hypr/pyprland.toml
new file mode 100644
index 0000000..62227e9
--- /dev/null
+++ b/unmoved-modules/home-manager/hypr/pyprland.toml
@@ -0,0 +1,12 @@
+[pyprland]
+plugins = [
+ "scratchpads"
+]
+
+[scratchpads.kitty]
+unfocus = "hide"
+command = "kitty --class kitty-dropterm"
+class = "kitty-dropterm"
+size = "75% 60%"
+max_size = "1920px 100%"
+lazy = true \ No newline at end of file
diff --git a/unmoved-modules/home-manager/hypr/rofi-hyprland.nix b/unmoved-modules/home-manager/hypr/rofi-hyprland.nix
new file mode 100644
index 0000000..e3644f9
--- /dev/null
+++ b/unmoved-modules/home-manager/hypr/rofi-hyprland.nix
@@ -0,0 +1,23 @@
+{ pkgs, lib, ... }:
+
+{
+ programs.rofi = {
+ enable = true;
+ package = pkgs.rofi;
+ theme = "gruvbox-dark-hard";
+ font = "JetBrains Mono 13";
+
+ plugins = with pkgs; [
+ rofi-calc
+ # rofi-vpn
+ ];
+ modes = [
+ "calc"
+ "window"
+ # {
+ # name = "vpn";
+ # path = lib.getExe pkgs.rofi-vpn;
+ # }
+ ];
+ };
+}
diff --git a/unmoved-modules/home-manager/hypr/swaync.nix b/unmoved-modules/home-manager/hypr/swaync.nix
new file mode 100644
index 0000000..dc857a7
--- /dev/null
+++ b/unmoved-modules/home-manager/hypr/swaync.nix
@@ -0,0 +1,13 @@
+{ config, lib, ... }:
+
+{
+ config = lib.mkIf config.hyprland.enable {
+ services.swaync = {
+ enable = true;
+
+ settings = {
+
+ };
+ };
+ };
+} \ No newline at end of file
diff --git a/unmoved-modules/home-manager/hypr/waybar-hyprland.nix b/unmoved-modules/home-manager/hypr/waybar-hyprland.nix
new file mode 100644
index 0000000..eed22c6
--- /dev/null
+++ b/unmoved-modules/home-manager/hypr/waybar-hyprland.nix
@@ -0,0 +1,128 @@
+{ pkgs, ... }:
+
+{
+ programs.waybar = {
+ enable = true;
+
+ settings = {
+ mainBar = {
+ layer = "top";
+ position = "top";
+ height = 30;
+
+ modules-left = [ "hyprland/workspaces" "idle_inhibitor" ];
+ modules-center = [ "hyprland/window" ];
+ modules-right = [ "custom/feishin" "pulseaudio" "battery" "clock" ];
+
+ battery = {
+ interval = 60;
+ format = "{capacity}% {icon}";
+ format-charging = "{capacity}% {icon}";
+ format-icons = [" " " " " " " " " "];
+ max-length = 25;
+ };
+
+ clock = {
+ format = "{:%H:%M}";
+ tooltip = true;
+ tooltip-format = "{:%a, %b %d\nDay %j, Week %U\n%Z, UTC%z}";
+ };
+
+ "hyprland/window" = {
+ format = "{initialClass}";
+ on-click = "rofi -show window";
+ max-length = 25;
+ };
+
+ idle_inhibitor = {
+ format = "{icon}";
+ format-icons = {
+ activated = " ";
+ deactivated = " ";
+ };
+ };
+
+ pulseaudio = {
+ format = "{volume}% {icon}";
+ format-bluetooth = "{volume}% {icon}";
+ format-muted = "";
+ format-icons = {
+ default = [" " " "];
+ };
+ };
+
+ "custom/feishin" = {
+ format = "{}";
+ escape = true;
+ exec-if = "pgrep -f 'feishin'";
+ interval = 1;
+ on-click = "playerctl --player=,Feishin play-pause";
+ on-click-right = "playerctl --player=,Feishin loop track";
+ on-double-click-right = "playerctl --player=,Feishin loop playlist";
+ on-click-middle = "playerctl --player=,Feishin shuffle toggle";
+ on-scroll-up = "playerctl --player=,Feishin next";
+ on-scroll-down = "playerctl --player=,Feishin previous";
+ exec = "${pkgs.writeShellScriptBin "feishin-module-script" ''
+ shorten() {
+ if [ ''${#1} -le 24 ]; then
+ printf "%s" "$1"
+ else
+ local truncated="''${1:0:21}"
+ if [ "''${truncated: -1}" = " " ]; then
+ truncated="''${truncated:0:20}"
+ fi
+ printf "%s…" "$truncated"
+ fi
+ }
+
+ player_status=$(playerctl --player=,Feishin status 2> /dev/null)
+ artist="$(shorten "$(playerctl --player=,Feishin metadata artist)")"
+ title="$(shorten "$(playerctl --player=,Feishin metadata title)")"
+ info="$artist - $title"
+
+ if [ "$(playerctl --player=,Feishin shuffle)" = "On" ]; then
+ info="$info  "
+ fi
+
+ if [ "$player_status" != "Playing" ]; then
+ info="$info  "
+ fi
+
+ if [ "$(playerctl --player=,Feishin loop)" = "Track" ]; then
+ info="$info 󱍸 "
+ fi
+
+ echo "$info  "
+ ''}/bin/feishin-module-script";
+ };
+ };
+ };
+
+ style = ''
+ *{
+ border: none;
+ border-radius: 0;
+ font-family: "JetBrains Mono"
+ }
+
+ window#waybar {
+ background: #141617;
+ color: #D4BE98;
+ }
+
+ label.module {
+ padding: 0 15px;
+ }
+
+ #workspaces button {
+ background: #141617;
+ color: #D4BE98;
+ }
+
+ #workspaces button active {
+ background: #D4BE98;
+ color: #141617;
+ }
+ '';
+ };
+}
diff --git a/unmoved-modules/home-manager/kitty.nix b/unmoved-modules/home-manager/kitty.nix
new file mode 100644
index 0000000..1f44982
--- /dev/null
+++ b/unmoved-modules/home-manager/kitty.nix
@@ -0,0 +1,23 @@
+{ pkgs, ... }:
+
+{
+ programs.kitty = {
+ enable = true;
+
+ enableGitIntegration = true;
+ font = {
+ package = pkgs.jetbrains-mono;
+ name = "Jetbrains Mono";
+ size = 10;
+ };
+
+ shellIntegration.enableFishIntegration = true;
+
+ themeFile = "GruvboxMaterialDarkHard";
+
+ settings = {
+ confirm_os_window_close = 0;
+ shell = "${pkgs.fish}/bin/fish";
+ };
+ };
+}
diff --git a/unmoved-modules/home-manager/lazygit.nix b/unmoved-modules/home-manager/lazygit.nix
new file mode 100644
index 0000000..e2f9018
--- /dev/null
+++ b/unmoved-modules/home-manager/lazygit.nix
@@ -0,0 +1,13 @@
+{
+ programs.lazygit = {
+ enable = true;
+ settings = {
+ gui.theme = {
+ #lightTheme = true;
+ #activeBorderColor = [ "blue" "bold" ];
+ #inactiveBorderColor = [ "black" ];
+ #selectedLineBgColor = [ "default" ];
+ };
+ };
+ };
+}
diff --git a/unmoved-modules/home-manager/mangowc/default.nix b/unmoved-modules/home-manager/mangowc/default.nix
new file mode 100644
index 0000000..85f86eb
--- /dev/null
+++ b/unmoved-modules/home-manager/mangowc/default.nix
@@ -0,0 +1,66 @@
+{ pkgs, ... }:
+
+{
+ wayland.windowManager.mango = {
+ enable = true;
+
+ settings = ''
+ animations=1
+ layer_animations=1
+
+ borderpx=1
+ gappih=0
+ gappiv=0
+ gappoh=0
+ gappov=0
+ smartgaps=0
+
+ tagrule=id:1,layout_name=scroller
+ tagrule=id:2,layout_name=tile
+ tagrule=id:3,layout_name=tile
+ tagrule=id:4,layout_name=tile
+ tagrule=id:5,layout_name=tile
+ tagrule=id:6,layout_name=tile
+ tagrule=id:7,layout_name=tile
+ tagrule=id:8,layout_name=tile
+ tagrule=id:9,layout_name=tile
+ tagrule=id:10,layout_name=tile
+
+ bind=Super+Shift,1,tagsilent,1
+ bind=Super+Shift,2,tagsilent,2
+ bind=Super+Shift,3,tagsilent,3
+ bind=Super+Shift,4,tagsilent,4
+ bind=Super+Shift,5,tagsilent,5
+ bind=Super+Shift,6,tagsilent,6
+ bind=Super+Shift,7,tagsilent,7
+ bind=Super+Shift,8,tagsilent,8
+ bind=Super+Shift,9,tagsilent,9
+ bind=Super+Shift,10,tagsilent,10
+
+ bind=Super,F1,spawn,rofi -show drun
+ bind=Super,F2,spawn,kitty
+ bind=Super,F3,spawn_shell,kitty yazi
+ bind=Super,F4,killclient
+ bind=Super,m,quit
+
+ bind=Super,1,view,1
+ bind=Super,2,view,2
+ bind=Super,3,view,3
+ bind=Super,4,view,4
+ bind=Super,5,view,5
+ bind=Super,6,view,6
+ bind=Super,7,view,7
+ bind=Super,8,view,8
+ bind=Super,9,view,9
+ bind=Super,10,view,10
+
+ bind=Super,n,switch_layout
+
+ mousebind=SUPER,btn_left,moveresize,curmove
+ mousebind=SUPER,btn_right,moveresize,curresize
+
+ accel_profile=1
+ accel_speed=-0.35
+ '';
+ };
+}
diff --git a/unmoved-modules/home-manager/nvf.nix b/unmoved-modules/home-manager/nvf.nix
new file mode 100644
index 0000000..7a2980e
--- /dev/null
+++ b/unmoved-modules/home-manager/nvf.nix
@@ -0,0 +1,116 @@
+{ pkgs, lib, ... }:
+
+{
+ programs.nvf = {
+ enable = true;
+
+ settings.vim = {
+ viAlias = true;
+ vimAlias = true;
+
+ lineNumberMode = "relNumber";
+
+ options = {
+ tabstop = lib.mkDefault 2;
+ shiftwidth = 0;
+ termguicolors = true;
+ };
+
+ keymaps = [
+ {
+ key = "<leader>w";
+ mode = "n";
+ silent = true;
+ action = ":w<CR>";
+ }
+ {
+ key = "<leader>x";
+ mode = "n";
+ silent = true;
+ action = ":wq<CR>";
+ }
+ {
+ key = "<leader>ff";
+ mode = "n";
+ silent = true;
+ action = ":Telescope find_files<CR>";
+ }
+ {
+ key = "<C-d>";
+ mode = "n";
+ silent = true;
+ action = "<C-d>zz";
+ }
+ {
+ key = "<C-u>";
+ mode = "n";
+ silent = true;
+ action = "<C-u>zz";
+ }
+ {
+ key = "<leader>n";
+ mode = "n";
+ silent = true;
+ action = ":noh<CR>";
+ }
+ ];
+
+ lsp = {
+ enable = true;
+ servers.nixd.settings.nil.nix.autoArchive = true;
+ };
+
+ languages = {
+ enableTreesitter = true;
+
+ nix.enable = true;
+ clang.enable = true;
+ rust.enable = true;
+ ruby.enable = true;
+ java.enable = true;
+ };
+
+ treesitter = {
+ enable = true;
+ # context.enable = true;
+ highlight.enable = true;
+ };
+
+ telescope.enable = true;
+
+ utility = {
+ motion = {
+ # hop.enable = true;
+ # leap.enable = true;
+ precognition.enable = true;
+ };
+ };
+
+ visuals = {
+ rainbow-delimiters.enable = true;
+ };
+
+ extraPlugins = {
+ gruvbox-material = {
+ package = pkgs.vimPlugins.gruvbox-material;
+ setup = ''
+ vim.o.background = "dark"
+ vim.g.gruvbox_material_background = "hard"
+ vim.cmd("colorscheme gruvbox-material")
+ '';
+ };
+ };
+
+ autocmds = [
+ {
+ event = [ "InsertEnter" ];
+ command = "set norelativenumber";
+ }
+ {
+ event = [ "InsertLeave" ];
+ command = "set relativenumber";
+ }
+ ];
+ };
+ };
+}
diff --git a/unmoved-modules/home-manager/obs.nix b/unmoved-modules/home-manager/obs.nix
new file mode 100644
index 0000000..8798b54
--- /dev/null
+++ b/unmoved-modules/home-manager/obs.nix
@@ -0,0 +1,12 @@
+{ pkgs, ... }:
+
+{
+ programs.obs-studio = {
+ enable = true;
+
+ plugins = with pkgs.obs-studio-plugins; [
+ input-overlay
+ obs-pipewire-audio-capture
+ ];
+ };
+} \ No newline at end of file
diff --git a/unmoved-modules/home-manager/rbw.nix b/unmoved-modules/home-manager/rbw.nix
new file mode 100644
index 0000000..50ca563
--- /dev/null
+++ b/unmoved-modules/home-manager/rbw.nix
@@ -0,0 +1,19 @@
+{ pkgs, ... }:
+
+{
+ programs.rbw = {
+ enable = true;
+ settings = {
+ email = "james.krinsky@gmail.com";
+ pinentry = pkgs.pinentry-qt;
+ base_url = "https://vault.bitwarden.com";
+ identity_url = "https://identity.bitwarden.com";
+ ui_url = "https://vault.bitwarden.com";
+ };
+ };
+
+ home.packages = [
+ pkgs.pinentry-qt
+ pkgs.rofi-rbw
+ ];
+} \ No newline at end of file
diff --git a/unmoved-modules/home-manager/spicetify.nix b/unmoved-modules/home-manager/spicetify.nix
new file mode 100644
index 0000000..4b54e6a
--- /dev/null
+++ b/unmoved-modules/home-manager/spicetify.nix
@@ -0,0 +1,27 @@
+{ pkgs, inputs, ... }:
+
+{
+ imports = [
+ inputs.spicetify.homeManagerModules.default
+ ];
+
+ programs.spicetify =
+ let
+ spicepkgs = inputs.spicetify.legacyPackages.${pkgs.system};
+ in
+ {
+ enable = true;
+ # theme = spicepkgs.themes.sleek;
+ # colorScheme = "Deep";
+
+ enabledExtensions = with spicepkgs.extensions; [
+ shuffle
+ ];
+ enabledCustomApps = with spicepkgs.apps; [
+
+ ];
+ enabledSnippets = with spicepkgs.snippets; [
+
+ ];
+ };
+}
diff --git a/unmoved-modules/home-manager/spotify-player.nix b/unmoved-modules/home-manager/spotify-player.nix
new file mode 100644
index 0000000..0af16d8
--- /dev/null
+++ b/unmoved-modules/home-manager/spotify-player.nix
@@ -0,0 +1,7 @@
+{
+ programs.spotify-player = {
+ enable = true;
+
+
+ };
+}
diff --git a/unmoved-modules/home-manager/vscodium.nix b/unmoved-modules/home-manager/vscodium.nix
new file mode 100644
index 0000000..2ea2baf
--- /dev/null
+++ b/unmoved-modules/home-manager/vscodium.nix
@@ -0,0 +1,47 @@
+{ config, pkgs, lib, inputs, ... }:
+
+{
+ programs.vscode = {
+ enable = true;
+ package = pkgs.vscodium;
+
+ profiles.default = {
+ userSettings = {
+ "workbench.colorTheme" = "Gruvbox Dark Hard";
+ "editor.fontFamily" = "JetBrains Mono";
+ "editor.fontSize" = 12;
+ "editor.fontLigatures" = true;
+ "vim.smartRelativeLine" = true;
+ "editor.lineNumbers" = "relative";
+ "editor.cursorSmoothCaretAnimation" = "on";
+ "editor.wordWrap" = "on";
+ "editor.bracketPairColorization.enabled" = true;
+ };
+
+ extensions = with pkgs.vscode-extensions; [
+ # languages
+ jnoortheen.nix-ide
+ tomoki1207.pdf
+ redhat.vscode-yaml
+ tamasfe.even-better-toml
+ redhat.java
+ rust-lang.rust-analyzer
+ shopify.ruby-lsp
+
+ # functionality extensions
+ wix.vscode-import-cost
+ ms-vscode-remote.remote-ssh
+ ms-vscode-remote.remote-ssh-edit
+ vscodevim.vim
+ alefragnani.project-manager
+ esbenp.prettier-vscode
+
+ # appearance extensions
+ mechatroner.rainbow-csv
+ vscode-icons-team.vscode-icons
+ jdinhlife.gruvbox
+ johnpapa.vscode-peacock
+ ];
+ };
+ };
+} \ No newline at end of file
diff --git a/unmoved-modules/home-manager/yazi.nix b/unmoved-modules/home-manager/yazi.nix
new file mode 100644
index 0000000..3088c1f
--- /dev/null
+++ b/unmoved-modules/home-manager/yazi.nix
@@ -0,0 +1,42 @@
+{ pkgs, ... }:
+
+{
+ programs.yazi = {
+ enable = true;
+ enableFishIntegration = true;
+
+ plugins = {
+ bypass = pkgs.yaziPlugins.bypass;
+ ouch = pkgs.yaziPlugins.ouch;
+ };
+
+ initLua = ''
+ '';
+
+ settings = {
+ mgr = {
+ show_hidden = true;
+
+ prepend_keymap = [
+ {
+ on = ["L"];
+ run = "plugin bypass";
+ }
+ {
+ on = ["H"];
+ run = "plugin bypass reverse";
+ }
+ ];
+ };
+
+ opener = {
+ edit = [
+ {
+ run = ''vi "$@"'';
+ block = true;
+ }
+ ];
+ };
+ };
+ };
+}
diff --git a/unmoved-modules/home-manager/zen-browser.nix b/unmoved-modules/home-manager/zen-browser.nix
new file mode 100644
index 0000000..46b3992
--- /dev/null
+++ b/unmoved-modules/home-manager/zen-browser.nix
@@ -0,0 +1,41 @@
+{ inputs, pkgs, ... }:
+
+{
+ imports = [
+ inputs.zen-browser.homeModules.twilight
+ ];
+
+ programs.zen-browser = {
+ enable = true;
+
+ policies = {
+ Preferences = {
+
+ };
+
+ ExtensionSettings = {
+
+ };
+
+ AutofillAddressEnabled = true;
+ AutofillCreditCardEnabled = false;
+ DisableFeedbackCommands = true;
+ DisableFirefoxStudies = true;
+ DisablePocket = true;
+ DisableTelemetry = true;
+ DontCheckDefaultBrowser = true;
+ NoDefaultBookmarks = true;
+ OfferToSaveLogins = false;
+ EnableTrackingProtection = {
+ Value = true;
+ Locked = true;
+ Cryptomining = true;
+ Fingerprinting = true;
+ };
+ };
+
+ nativeMessagingHosts = [
+ pkgs.firefoxpwa
+ ];
+ };
+} \ No newline at end of file
diff --git a/unmoved-modules/nixos/bluetooth.nix b/unmoved-modules/nixos/bluetooth.nix
new file mode 100644
index 0000000..0d60d4d
--- /dev/null
+++ b/unmoved-modules/nixos/bluetooth.nix
@@ -0,0 +1,9 @@
+{ pkgs, ... }:
+
+{
+ hardware.bluetooth.enable = true;
+ hardware.bluetooth.powerOnBoot = false;
+
+ environment.systemPackages = with pkgs; [
+ ];
+} \ No newline at end of file
diff --git a/unmoved-modules/nixos/default.nix b/unmoved-modules/nixos/default.nix
new file mode 100644
index 0000000..2c7123a
--- /dev/null
+++ b/unmoved-modules/nixos/default.nix
@@ -0,0 +1,81 @@
+{ pkgs, ... }:
+
+{
+ imports = [
+ ./pipewire.nix
+ ./flatpak.nix
+ ./greetd.nix
+ ./xdg-portal.nix
+ ./bluetooth.nix
+ ./thunar.nix
+ ./gaming.nix
+ ./nix-ld.nix
+ # ./nordvpn.nix
+ # ./ly.nix
+ ./nas.nix
+ ./fish.nix
+ ];
+
+ users.users.jck.packages = with pkgs; [
+ pwvucontrol
+ nix-tree
+ lxqt.lxqt-policykit
+ lxqt.lxqt-archiver
+ rsync
+ killall
+ unzip
+ p7zip-rar
+ xsel
+ unar
+ unrar-wrapper
+ brightnessctl
+ ntfs3g
+ ];
+
+ programs.localsend.enable = true;
+
+ fonts.packages = with pkgs; [
+ nerd-fonts.jetbrains-mono
+ jetbrains-mono
+ ];
+
+ fonts.fontconfig.defaultFonts = {
+ monospace = [
+ "JetBrainsMono Nerd Font"
+ ];
+ };
+
+ programs.nh = {
+ enable = true;
+ clean.enable = true;
+ clean.extraArgs = "--keep-since 3d --keep 3";
+ clean.dates = "daily";
+ flake = "/home/jck/nixosconf/";
+ };
+
+ services.printing = {
+ enable = true;
+ drivers = with pkgs; [
+ brlaser
+ gutenprint
+ brgenml1lpr
+ brgenml1cupswrapper
+ # cnijfilter2
+ ];
+ };
+
+ services.avahi = {
+ enable = true;
+ nssmdns4 = true;
+ openFirewall = true;
+ };
+
+ programs.partition-manager.enable = true;
+ services.udisks2.enable = true;
+
+ services.mullvad-vpn.enable = true;
+ services.mullvad-vpn.package = pkgs.mullvad-vpn;
+ services.mullvad-vpn.enableExcludeWrapper = true;
+
+ programs.fish.enable = true;
+}
diff --git a/unmoved-modules/nixos/fish.nix b/unmoved-modules/nixos/fish.nix
new file mode 100644
index 0000000..1b06707
--- /dev/null
+++ b/unmoved-modules/nixos/fish.nix
@@ -0,0 +1,13 @@
+{ pkgs, ... }:
+
+{
+ programs.fish = {
+ enable = true;
+
+ shellInit = ''
+ function fish_greeting
+ fastfetch
+ end
+ '';
+ };
+}
diff --git a/unmoved-modules/nixos/flatpak.nix b/unmoved-modules/nixos/flatpak.nix
new file mode 100644
index 0000000..c5f065a
--- /dev/null
+++ b/unmoved-modules/nixos/flatpak.nix
@@ -0,0 +1,13 @@
+{ config, pkgs, lib, inputs, outputs, ... }:
+
+{
+ services.flatpak = {
+ enable = true;
+
+ packages = [
+ #"org.kde.kwrite"
+ ];
+
+ update.onActivation = true;
+ };
+}
diff --git a/unmoved-modules/nixos/gaming.nix b/unmoved-modules/nixos/gaming.nix
new file mode 100644
index 0000000..085dd43
--- /dev/null
+++ b/unmoved-modules/nixos/gaming.nix
@@ -0,0 +1,19 @@
+{ pkgs, lib, config, ... }:
+
+{
+ options = {
+ gaming.enable = lib.mkEnableOption "enables gaming module";
+ };
+
+ imports = [
+ ./steam.nix
+ ];
+
+ config = lib.mkIf config.gaming.enable {
+ services.flatpak = {
+ packages = [
+ "org.vinegarhq.Sober"
+ ];
+ };
+ };
+} \ No newline at end of file
diff --git a/unmoved-modules/nixos/greetd.nix b/unmoved-modules/nixos/greetd.nix
new file mode 100644
index 0000000..89d100a
--- /dev/null
+++ b/unmoved-modules/nixos/greetd.nix
@@ -0,0 +1,18 @@
+{ config, pkgs, ... }:
+
+{
+ environment.systemPackages = with pkgs; [
+ tuigreet
+ seatd
+ ];
+
+ services.greetd = {
+ enable = true;
+
+ settings = {
+ default_session = {
+ command = "${pkgs.tuigreet}/bin/tuigreet --user-menu -t --asterisks -c start-hyprland";
+ };
+ };
+ };
+}
diff --git a/unmoved-modules/nixos/ly.nix b/unmoved-modules/nixos/ly.nix
new file mode 100644
index 0000000..5affbb0
--- /dev/null
+++ b/unmoved-modules/nixos/ly.nix
@@ -0,0 +1,5 @@
+{
+ services.displayManager.ly = {
+ enable = true;
+ };
+}
diff --git a/unmoved-modules/nixos/nas.nix b/unmoved-modules/nixos/nas.nix
new file mode 100644
index 0000000..9cb2067
--- /dev/null
+++ b/unmoved-modules/nixos/nas.nix
@@ -0,0 +1,101 @@
+{ config, pkgs, lib, ... }:
+
+{
+ options = {
+ client.nas.enable = lib.mkEnableOption "enables nas";
+ };
+
+ config = lib.mkIf config.client.nas.enable {
+ services.tailscale.enable = true;
+ services.tailscale.useRoutingFeatures = "client";
+ services.tailscale.openFirewall = true;
+ services.tailscale.extraUpFlags = [ "--accept-dns=false" ];
+ networking.nftables.enable = true;
+ networking.firewall = {
+ enable = true;
+ trustedInterfaces = [ "tailscale0" ];
+ allowedUDPPorts = [ config.services.tailscale.port ];
+ };
+
+ networking.nftables = {
+ tables = {
+ mullvad_tailscale = {
+ content = ''
+ chain output {
+ type route hook output priority 0; policy accept;
+ ip daddr 100.64.0.0/10 ct mark set 0x00000f41 meta mark set 0x6d6f6c65;
+ }
+ '';
+ family = "inet";
+ };
+ };
+ };
+
+ systemd.services.tailscaled.serviceConfig.Environment = [
+ "TS_DEBUG_FIREWALL_MODE=nftables"
+ ];
+
+ systemd.network.wait-online.enable = false;
+ boot.initrd.systemd.network.wait-online.enable = false;
+
+ boot.supportedFilesystems = [ "nfs" ];
+
+ environment.systemPackages = with pkgs; [
+ nfs-utils
+ ];
+
+ fileSystems."/mnt/data" = {
+ device = "100.64.0.2:/tank/data";
+ fsType = "nfs4";
+
+ options = [
+ "x-systemd.automount"
+ "noauto"
+ "nofail"
+ "_netdev"
+
+ "hard"
+ "noatime"
+
+ "x-systemd.mount-timeout=10"
+ "x-systemd.idle-timeout=600"
+ ];
+ };
+
+ fileSystems."/mnt/backups" = {
+ device = "100.64.0.2:/tank/backups";
+ fsType = "nfs4";
+
+ options = [
+ "x-systemd.automount"
+ "noauto"
+ "nofail"
+ "_netdev"
+
+ "hard"
+ "noatime"
+
+ "x-systemd.mount-timeout=10"
+ "x-systemd.idle-timeout=600"
+ ];
+ };
+
+ fileSystems."/mnt/media" = {
+ device = "100.64.0.2:/tank/media";
+ fsType = "nfs4";
+
+ options = [
+ "x-systemd.automount"
+ "noauto"
+ "nofail"
+ "_netdev"
+
+ "hard"
+ "noatime"
+
+ "x-systemd.mount-timeout=10"
+ "x-systemd.idle-timeout=600"
+ ];
+ };
+ };
+}
diff --git a/unmoved-modules/nixos/nix-ld.nix b/unmoved-modules/nixos/nix-ld.nix
new file mode 100644
index 0000000..f35d2ec
--- /dev/null
+++ b/unmoved-modules/nixos/nix-ld.nix
@@ -0,0 +1,32 @@
+{ pkgs, ... }:
+
+{
+ programs.nix-ld = {
+ enable = true;
+ libraries = with pkgs; [
+ # List by default
+ zlib
+ zstd
+ stdenv.cc.cc
+ curl
+ openssl
+ attr
+ libssh
+ bzip2
+ libxml2
+ acl
+ libsodium
+ util-linux
+ xz
+ systemd
+ glib
+ gtk2
+
+ # other additions
+ jq
+ unzip
+ py7zr
+ # python3Full
+ ];
+ };
+} \ No newline at end of file
diff --git a/unmoved-modules/nixos/nordvpn.nix b/unmoved-modules/nixos/nordvpn.nix
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/unmoved-modules/nixos/nordvpn.nix
diff --git a/unmoved-modules/nixos/pipewire.nix b/unmoved-modules/nixos/pipewire.nix
new file mode 100644
index 0000000..5eac9eb
--- /dev/null
+++ b/unmoved-modules/nixos/pipewire.nix
@@ -0,0 +1,10 @@
+{
+ services.pipewire = {
+ enable = true;
+ alsa.enable = true;
+ alsa.support32Bit = true;
+ jack.enable = true;
+ pulse.enable = true;
+ socketActivation = true;
+ };
+}
diff --git a/unmoved-modules/nixos/steam.nix b/unmoved-modules/nixos/steam.nix
new file mode 100644
index 0000000..ed2619e
--- /dev/null
+++ b/unmoved-modules/nixos/steam.nix
@@ -0,0 +1,19 @@
+{ config, pkgs, lib, inputs, ... }:
+
+{
+ config = lib.mkIf config.gaming.enable {
+ programs.steam = {
+ enable = true;
+ package = pkgs.steam;
+ protontricks.enable = true;
+ extest.enable = true;
+
+ extraCompatPackages = with pkgs; [
+ proton-ge-bin
+ mangohud
+ ];
+ };
+
+ programs.gamemode.enable = true;
+ };
+} \ No newline at end of file
diff --git a/unmoved-modules/nixos/thunar.nix b/unmoved-modules/nixos/thunar.nix
new file mode 100644
index 0000000..a698f63
--- /dev/null
+++ b/unmoved-modules/nixos/thunar.nix
@@ -0,0 +1,17 @@
+{ pkgs, ... }:
+
+{
+ programs.thunar = {
+ enable = true;
+
+ plugins = with pkgs; [
+ thunar-archive-plugin
+ thunar-media-tags-plugin
+ thunar-volman
+ ];
+ };
+
+ programs.xfconf.enable = true;
+ services.gvfs.enable = true;
+ services.tumbler.enable = true;
+}
diff --git a/unmoved-modules/nixos/xdg-portal.nix b/unmoved-modules/nixos/xdg-portal.nix
new file mode 100644
index 0000000..51035a4
--- /dev/null
+++ b/unmoved-modules/nixos/xdg-portal.nix
@@ -0,0 +1,14 @@
+{ pkgs, ... }:
+
+{
+ xdg.portal = {
+ enable = true;
+
+ config.common.default = "*";
+
+ extraPortals = with pkgs; [
+ xdg-desktop-portal-hyprland
+ xdg-desktop-portal-gtk
+ ];
+ };
+}