diff options
Diffstat (limited to 'modules')
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 Binary files differnew file mode 100644 index 0000000..4601318 --- /dev/null +++ b/modules/home-manager/hypr/camdenyards.jpg 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 + ]; + }; +} |
