summaryrefslogtreecommitdiff
path: root/modules
diff options
context:
space:
mode:
Diffstat (limited to 'modules')
-rw-r--r--modules/home-manager/default.nix71
-rw-r--r--modules/home-manager/fastfetch-logo.txt17
-rw-r--r--modules/home-manager/fastfetch.nix61
-rw-r--r--modules/home-manager/fish.nix18
-rw-r--r--modules/home-manager/gaming.nix37
-rw-r--r--modules/home-manager/git.nix11
-rw-r--r--modules/home-manager/hypr/autostart.nix14
-rw-r--r--modules/home-manager/hypr/binds.nix93
-rw-r--r--modules/home-manager/hypr/camdenyards.jpgbin0 -> 2850041 bytes
-rw-r--r--modules/home-manager/hypr/decoration.nix28
-rw-r--r--modules/home-manager/hypr/default.nix140
-rw-r--r--modules/home-manager/hypr/hypridle.nix26
-rw-r--r--modules/home-manager/hypr/hyprlock.nix46
-rw-r--r--modules/home-manager/hypr/hyprpaper.nix22
-rw-r--r--modules/home-manager/hypr/input.nix38
-rw-r--r--modules/home-manager/hypr/pyprland.toml12
-rw-r--r--modules/home-manager/hypr/rofi-hyprland.nix23
-rw-r--r--modules/home-manager/hypr/swaync.nix13
-rw-r--r--modules/home-manager/hypr/waybar-hyprland.nix44
-rw-r--r--modules/home-manager/kitty.nix27
-rw-r--r--modules/home-manager/lazygit.nix13
-rw-r--r--modules/home-manager/nvf.nix115
-rw-r--r--modules/home-manager/obs.nix12
-rw-r--r--modules/home-manager/rbw.nix19
-rw-r--r--modules/home-manager/spicetify.nix27
-rw-r--r--modules/home-manager/spotify-player.nix7
-rw-r--r--modules/home-manager/vscodium.nix47
-rw-r--r--modules/home-manager/yazi.nix42
-rw-r--r--modules/home-manager/zen-browser.nix41
-rw-r--r--modules/nixos/bluetooth.nix9
-rw-r--r--modules/nixos/default.nix66
-rw-r--r--modules/nixos/flatpak.nix13
-rw-r--r--modules/nixos/gaming.nix19
-rw-r--r--modules/nixos/greetd.nix18
-rw-r--r--modules/nixos/nix-ld.nix32
-rw-r--r--modules/nixos/nordvpn.nix7
-rw-r--r--modules/nixos/pipewire.nix10
-rw-r--r--modules/nixos/steam.nix19
-rw-r--r--modules/nixos/thunar.nix17
-rw-r--r--modules/nixos/xdg-portal.nix19
40 files changed, 1293 insertions, 0 deletions
diff --git a/modules/home-manager/default.nix b/modules/home-manager/default.nix
new file mode 100644
index 0000000..c9d8268
--- /dev/null
+++ b/modules/home-manager/default.nix
@@ -0,0 +1,71 @@
+{ pkgs, lib, config, inputs, ... }:
+
+{
+ imports = [
+ ./hypr
+ ./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
+ wineWowPackages.stable
+ winetricks
+ motrix
+ flashprint
+ gvfs
+ brave
+ hyprpicker
+ glances
+ discord
+ openvpn
+ qbittorrent
+ zoom-us
+ obsidian
+ cryptomator
+ networkmanagerapplet
+ libreoffice
+ gimp3
+ vlc
+ ungoogled-chromium
+ audacity
+ ];
+
+ home.sessionVariables = {
+ EDITOR = "vi";
+ VISUAL = "vi";
+ };
+
+ xdg.configFile."mimeapps.list".force = true;
+
+ xdg.mimeApps = {
+ enable = true;
+
+ defaultApplications = {
+ "application/pdf" = "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/modules/home-manager/fastfetch-logo.txt b/modules/home-manager/fastfetch-logo.txt
new file mode 100644
index 0000000..b3bc376
--- /dev/null
+++ b/modules/home-manager/fastfetch-logo.txt
@@ -0,0 +1,17 @@
+ * *
+ * * *
+ * * * * *
+ * * * * *
+ * * * * * * *
+ * * * * * .# * *
+ * * * #. .# * *
+ * "#. #: #" * * *
+ * * * "#. ##" *
+ * "###
+ "##
+ ##.
+ .##:
+ :###
+ ;###
+ ,####.
+/\/\/\/\/\/.######.\/\/\/\/\
diff --git a/modules/home-manager/fastfetch.nix b/modules/home-manager/fastfetch.nix
new file mode 100644
index 0000000..74f0820
--- /dev/null
+++ b/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/modules/home-manager/fish.nix b/modules/home-manager/fish.nix
new file mode 100644
index 0000000..e38d149
--- /dev/null
+++ b/modules/home-manager/fish.nix
@@ -0,0 +1,18 @@
+{ pkgs, ... }:
+
+{
+ programs.fish = {
+ enable = true;
+
+ shellInit = ''
+ function fish_greeting
+ fastfetch
+ end
+ '';
+
+ plugins = [
+ { name = "grc"; src = pkgs.fishPlugins.grc; }
+ { name = "bang-bang"; src = pkgs.fishPlugins.bang-bang; }
+ ];
+ };
+}
diff --git a/modules/home-manager/gaming.nix b/modules/home-manager/gaming.nix
new file mode 100644
index 0000000..09eff6b
--- /dev/null
+++ b/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.wineWowPackages; [
+ stable
+ ];
+ extraPackages = with pkgs; [
+ gamemode
+ umu-launcher
+ winetricks
+ mangohud
+ gamescope
+ ];
+ protonPackages = with pkgs; [
+ proton-ge-bin
+ ];
+ };
+ };
+} \ No newline at end of file
diff --git a/modules/home-manager/git.nix b/modules/home-manager/git.nix
new file mode 100644
index 0000000..7216282
--- /dev/null
+++ b/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/modules/home-manager/hypr/autostart.nix b/modules/home-manager/hypr/autostart.nix
new file mode 100644
index 0000000..048afcc
--- /dev/null
+++ b/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/modules/home-manager/hypr/binds.nix b/modules/home-manager/hypr/binds.nix
new file mode 100644
index 0000000..8d2d772
--- /dev/null
+++ b/modules/home-manager/hypr/binds.nix
@@ -0,0 +1,93 @@
+{ 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, 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=spotify_player,spotify previous"
+ ", XF86AudioNext, exec, playerctl --player=spotify_player,spotify next"
+ ", XF86AudioPause, exec, playerctl --player=spotify_player,spotify play-pause"
+ ", XF86AudioPlay, exec, playerctl --player=spotify_player,spotify play-pause"
+ "$mod, XF86AudioPrev, exec, playerctl --player=spotify_player,spotify loop none"
+ "$mod, XF86AudioPause, exec, playerctl --player=spotify_player,spotify loop playlist"
+ "$mod, XF86AudioPlay, exec, playerctl --player=spotify_player,spotify loop playlist"
+ "$mod, XF86AudioNext, exec, playerctl --player=spotify_player,spotify loop track"
+ "$mod, XF86AudioStop, exec, playerctl --player=spotify_player,spotify 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/modules/home-manager/hypr/camdenyards.jpg b/modules/home-manager/hypr/camdenyards.jpg
new file mode 100644
index 0000000..4601318
--- /dev/null
+++ b/modules/home-manager/hypr/camdenyards.jpg
Binary files differ
diff --git a/modules/home-manager/hypr/decoration.nix b/modules/home-manager/hypr/decoration.nix
new file mode 100644
index 0000000..e928a51
--- /dev/null
+++ b/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"
+ ];
+
+ windowrulev2 = [
+ "bordersize 0, floating:0, onworkspace:w[tv1]"
+ "rounding 0, floating:0, onworkspace:w[tv1]"
+ "bordersize 0, floating:0, onworkspace:f[1]"
+ "rounding 0, floating:0, onworkspace:f[1]"
+ ];
+
+ };
+ };
+}
diff --git a/modules/home-manager/hypr/default.nix b/modules/home-manager/hypr/default.nix
new file mode 100644
index 0000000..2ec9301
--- /dev/null
+++ b/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/modules/home-manager/hypr/hypridle.nix b/modules/home-manager/hypr/hypridle.nix
new file mode 100644
index 0000000..3f575a0
--- /dev/null
+++ b/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/modules/home-manager/hypr/hyprlock.nix b/modules/home-manager/hypr/hyprlock.nix
new file mode 100644
index 0000000..dfaee43
--- /dev/null
+++ b/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 = true;
+ hide_cursor = false;
+ no_fade_in = true;
+ };
+
+ background = [
+ {
+ path = "screenshot";
+ # path = ~/.config/hypr/wallpaper_effects/.wallpaper_current;
+ blur_passes = 4;
+ blur_size = 7;
+ }
+ ];
+
+ input-field = [
+ {
+ size = "200, 50";
+ position = "0, 0";
+ fade_on_empty = false;
+ 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/modules/home-manager/hypr/hyprpaper.nix b/modules/home-manager/hypr/hyprpaper.nix
new file mode 100644
index 0000000..f24f4c8
--- /dev/null
+++ b/modules/home-manager/hypr/hyprpaper.nix
@@ -0,0 +1,22 @@
+{ pkgs, lib, config, ... }:
+
+{
+ config = lib.mkIf config.hyprland.enable {
+ home.packages = [
+ pkgs.hyprpaper
+ pkgs.waypaper
+ ];
+
+ services.hyprpaper = {
+ enable = true;
+
+ settings = {
+ ipc = "on";
+ splash = false;
+
+ preload = [ "~/nixosconf/modules/home-manager/hypr/camdenyards.jpg" ];
+ wallpaper = [ ", ~/nixosconf/modules/home-manager/hypr/camdenyards.jpg" ];
+ };
+ };
+ };
+} \ No newline at end of file
diff --git a/modules/home-manager/hypr/input.nix b/modules/home-manager/hypr/input.nix
new file mode 100644
index 0000000..09fdb3e
--- /dev/null
+++ b/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/modules/home-manager/hypr/pyprland.toml b/modules/home-manager/hypr/pyprland.toml
new file mode 100644
index 0000000..62227e9
--- /dev/null
+++ b/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/modules/home-manager/hypr/rofi-hyprland.nix b/modules/home-manager/hypr/rofi-hyprland.nix
new file mode 100644
index 0000000..e3644f9
--- /dev/null
+++ b/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/modules/home-manager/hypr/swaync.nix b/modules/home-manager/hypr/swaync.nix
new file mode 100644
index 0000000..dc857a7
--- /dev/null
+++ b/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/modules/home-manager/hypr/waybar-hyprland.nix b/modules/home-manager/hypr/waybar-hyprland.nix
new file mode 100644
index 0000000..bd0196b
--- /dev/null
+++ b/modules/home-manager/hypr/waybar-hyprland.nix
@@ -0,0 +1,44 @@
+{ config, lib, ... }:
+
+{
+ programs.waybar = {
+ enable = true;
+
+ settings = {
+ mainBar = {
+ layer = "top";
+ position = "top";
+ height = 15;
+
+ modules-left = [ "hyprland/workspaces" ];
+ modules-center = [ "hyprland/window" ];
+ modules-right = [ "pulseaudio" "battery" "clock" ];
+
+ "hyprland/window" = {
+ on-click = "rofi -show window";
+ };
+ };
+ };
+
+ style = ''
+ *{
+ border: none;
+ border-radius: 0;
+ font-family: "JetBrains Mono"
+ }
+
+ window#waybar {
+ background: #141617;
+ color: #D4BE98;
+ }
+
+ label.module {
+ padding: 0 10px;
+ }
+
+ #workspaces button {
+ color: #D4BE98;
+ }
+ '';
+ };
+}
diff --git a/modules/home-manager/kitty.nix b/modules/home-manager/kitty.nix
new file mode 100644
index 0000000..b7d9f0b
--- /dev/null
+++ b/modules/home-manager/kitty.nix
@@ -0,0 +1,27 @@
+{ pkgs, ... }:
+
+{
+ imports = [
+ ./fish.nix
+ ];
+
+ 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/modules/home-manager/lazygit.nix b/modules/home-manager/lazygit.nix
new file mode 100644
index 0000000..e2f9018
--- /dev/null
+++ b/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/modules/home-manager/nvf.nix b/modules/home-manager/nvf.nix
new file mode 100644
index 0000000..0172a25
--- /dev/null
+++ b/modules/home-manager/nvf.nix
@@ -0,0 +1,115 @@
+{ pkgs, ... }:
+
+{
+ programs.nvf = {
+ enable = true;
+
+ settings.vim = {
+ viAlias = true;
+ vimAlias = true;
+
+ lineNumberMode = "relNumber";
+
+ options = {
+ tabstop = 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;
+ 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/modules/home-manager/obs.nix b/modules/home-manager/obs.nix
new file mode 100644
index 0000000..8798b54
--- /dev/null
+++ b/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/modules/home-manager/rbw.nix b/modules/home-manager/rbw.nix
new file mode 100644
index 0000000..50ca563
--- /dev/null
+++ b/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/modules/home-manager/spicetify.nix b/modules/home-manager/spicetify.nix
new file mode 100644
index 0000000..2181827
--- /dev/null
+++ b/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/modules/home-manager/spotify-player.nix b/modules/home-manager/spotify-player.nix
new file mode 100644
index 0000000..0af16d8
--- /dev/null
+++ b/modules/home-manager/spotify-player.nix
@@ -0,0 +1,7 @@
+{
+ programs.spotify-player = {
+ enable = true;
+
+
+ };
+}
diff --git a/modules/home-manager/vscodium.nix b/modules/home-manager/vscodium.nix
new file mode 100644
index 0000000..2ea2baf
--- /dev/null
+++ b/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/modules/home-manager/yazi.nix b/modules/home-manager/yazi.nix
new file mode 100644
index 0000000..3088c1f
--- /dev/null
+++ b/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/modules/home-manager/zen-browser.nix b/modules/home-manager/zen-browser.nix
new file mode 100644
index 0000000..46b3992
--- /dev/null
+++ b/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/modules/nixos/bluetooth.nix b/modules/nixos/bluetooth.nix
new file mode 100644
index 0000000..0d60d4d
--- /dev/null
+++ b/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/modules/nixos/default.nix b/modules/nixos/default.nix
new file mode 100644
index 0000000..3bf9ac6
--- /dev/null
+++ b/modules/nixos/default.nix
@@ -0,0 +1,66 @@
+{ pkgs, lib, config, ... }:
+
+{
+ imports = [
+ ./pipewire.nix
+ ./flatpak.nix
+ ./greetd.nix
+ ./xdg-portal.nix
+ ./bluetooth.nix
+ ./thunar.nix
+ ./gaming.nix
+ ./nix-ld.nix
+ ./nordvpn.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
+ ];
+
+ 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;
+}
diff --git a/modules/nixos/flatpak.nix b/modules/nixos/flatpak.nix
new file mode 100644
index 0000000..c5f065a
--- /dev/null
+++ b/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/modules/nixos/gaming.nix b/modules/nixos/gaming.nix
new file mode 100644
index 0000000..085dd43
--- /dev/null
+++ b/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/modules/nixos/greetd.nix b/modules/nixos/greetd.nix
new file mode 100644
index 0000000..97980cb
--- /dev/null
+++ b/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 Hyprland";
+ };
+ };
+ };
+} \ No newline at end of file
diff --git a/modules/nixos/nix-ld.nix b/modules/nixos/nix-ld.nix
new file mode 100644
index 0000000..f35d2ec
--- /dev/null
+++ b/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/modules/nixos/nordvpn.nix b/modules/nixos/nordvpn.nix
new file mode 100644
index 0000000..ae99d98
--- /dev/null
+++ b/modules/nixos/nordvpn.nix
@@ -0,0 +1,7 @@
+{
+ chaotic.nordvpn.enable = true;
+ networking.firewall.checkReversePath = false;
+ networking.firewall.allowedTCPPorts = [ 443 ];
+ networking.firewall.allowedUDPPorts = [ 1194 ];
+}
+
diff --git a/modules/nixos/pipewire.nix b/modules/nixos/pipewire.nix
new file mode 100644
index 0000000..5eac9eb
--- /dev/null
+++ b/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/modules/nixos/steam.nix b/modules/nixos/steam.nix
new file mode 100644
index 0000000..ed2619e
--- /dev/null
+++ b/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/modules/nixos/thunar.nix b/modules/nixos/thunar.nix
new file mode 100644
index 0000000..168387f
--- /dev/null
+++ b/modules/nixos/thunar.nix
@@ -0,0 +1,17 @@
+{ pkgs, ... }:
+
+{
+ programs.thunar = {
+ enable = true;
+
+ plugins = with pkgs.xfce; [
+ thunar-archive-plugin
+ thunar-media-tags-plugin
+ thunar-volman
+ ];
+ };
+
+ programs.xfconf.enable = true;
+ services.gvfs.enable = true;
+ services.tumbler.enable = true;
+} \ No newline at end of file
diff --git a/modules/nixos/xdg-portal.nix b/modules/nixos/xdg-portal.nix
new file mode 100644
index 0000000..7883eec
--- /dev/null
+++ b/modules/nixos/xdg-portal.nix
@@ -0,0 +1,19 @@
+{ pkgs, ... }:
+
+{
+ xdg.portal = {
+ enable = true;
+
+ config.common.default = "*";
+ # config = {
+ # common = {
+ # default = [ "hyprland" ];
+ # };
+ # };
+
+ extraPortals = with pkgs; [
+ xdg-desktop-portal-hyprland
+ xdg-desktop-portal-gtk
+ ];
+ };
+}