diff --git a/nix/configuration.nix b/nix/configuration.nix index 1a11c34..9c59867 100644 --- a/nix/configuration.nix +++ b/nix/configuration.nix @@ -2,30 +2,39 @@ # your system. Help is available in the configuration.nix(5) man page, on # https://search.nixos.org/options and in the NixOS manual (`nixos-help`). -{ config, lib, pkgs, ... }: +{ + config, + lib, + pkgs, + ... +}: { - imports = - [ # Include the results of the hardware scan. - ./hardware-configuration.nix - ./modules/greetd/nixos.nix - ./modules/stylix/nixos.nix - ./modules/steam/nixos.nix - ./modules/hyprland/nixos.nix - ./disks.nix - ]; + imports = [ + # Include the results of the hardware scan. + ./hardware-configuration.nix + ./modules/greetd/nixos.nix + ./modules/stylix/nixos.nix + ./modules/steam/nixos.nix + ./modules/hyprland/nixos.nix + ./disks.nix + ]; # Use the systemd-boot EFI boot loader. boot.loader.grub.enable = true; boot.loader.grub.device = "nodev"; - boot.loader.grub.devices = ["/dev/disk/by-id/nvme-CT1000P2SSD8_2221E632CD1F" - "nodev" -]; + boot.loader.grub.devices = [ + "/dev/disk/by-id/nvme-CT1000P2SSD8_2221E632CD1F" + "nodev" + ]; #boot.loader.efi.canTouchEfiVariables = true; boot.loader.grub.efiSupport = true; boot.loader.grub.efiInstallAsRemovable = true; - nix.settings.experimental-features = ["flakes" "nix-command"]; + nix.settings.experimental-features = [ + "flakes" + "nix-command" + ]; networking.hostName = "doloroo-main"; # Define your hostname. @@ -34,19 +43,19 @@ # Configure network connections interactively with nmcli or nmtui. networking.networkmanager.enable = true; - security.rtkit.enable = true; + security.rtkit.enable = true; - sops = { - defaultSopsFile = ./secrets/users.yaml; - secrets = { - root-hashed_password = { - neededForUsers = true; - }; - doloro-hashed_password = { - neededForUsers = true; - }; - }; - }; + sops = { + defaultSopsFile = ./secrets/users.yaml; + secrets = { + root-hashed_password = { + neededForUsers = true; + }; + doloro-hashed_password = { + neededForUsers = true; + }; + }; + }; # Set your time zone. time.timeZone = "Europe/London"; @@ -72,17 +81,18 @@ }; # Load nvidia driver for Xorg and Wayland - services.xserver.videoDrivers = ["nvidia"]; + services.xserver.videoDrivers = [ "nvidia" ]; fileSystems."/mnt/2tb" = { - device = "/dev/disk/by-uuid/0f49aec7-4af2-4f4f-b475-3f4fad2b59c2"; - fsType = "ext4"; - options = [ # If you don't have this options attribute, it'll default to "defaults" - # boot options for fstab. Search up fstab mount options you can use - "defaults" - "users" # Allows any user to mount and unmount - "nofail" # Prevent system from failing if this drive doesn't mount - "exec" + device = "/dev/disk/by-uuid/0f49aec7-4af2-4f4f-b475-3f4fad2b59c2"; + fsType = "ext4"; + options = [ + # If you don't have this options attribute, it'll default to "defaults" + # boot options for fstab. Search up fstab mount options you can use + "defaults" + "users" # Allows any user to mount and unmount + "nofail" # Prevent system from failing if this drive doesn't mount + "exec" ]; }; @@ -93,7 +103,7 @@ # Nvidia power management. Experimental, and can cause sleep/suspend to fail. # Enable this if you have graphical corruption issues or application crashes after waking - # up from sleep. This fixes it by saving the entire VRAM memory to /tmp/ instead + # up from sleep. This fixes it by saving the entire VRAM memory to /tmp/ instead # of just the bare essentials. powerManagement.enable = false; @@ -103,31 +113,31 @@ # Use the NVidia open source kernel module (not to be confused with the # independent third-party "nouveau" open source driver). - # Support is limited to the Turing and later architectures. Full list of - # supported GPUs is at: - # https://github.com/NVIDIA/open-gpu-kernel-modules#compatible-gpus + # Support is limited to the Turing and later architectures. Full list of + # supported GPUs is at: + # https://github.com/NVIDIA/open-gpu-kernel-modules#compatible-gpus # Only available from driver 515.43.04+ open = false; # Enable the Nvidia settings menu, - # accessible via `nvidia-settings`. + # accessible via `nvidia-settings`. nvidiaSettings = true; # Optionally, you may need to select the appropriate driver version for your specific GPU. package = config.boot.kernelPackages.nvidiaPackages.latest; }; - fonts = { - enableDefaultPackages = true; - packages = with pkgs; [ - nerd-fonts.jetbrains-mono - material-design-icons - material-symbols - nerd-fonts.caskaydia-cove - nerd-fonts.noto - ]; - fontDir.enable = true; - }; + fonts = { + enableDefaultPackages = true; + packages = with pkgs; [ + nerd-fonts.jetbrains-mono + material-design-icons + material-symbols + nerd-fonts.caskaydia-cove + nerd-fonts.noto + ]; + fontDir.enable = true; + }; # Configure keymap in X11 # services.xserver.xkb.layout = "us"; @@ -146,7 +156,7 @@ # Enable touchpad support (enabled default in most desktopManager). # services.libinput.enable = true; - services.openssh.enable = true; + services.openssh.enable = true; users.users.doloro = { isNormalUser = true; extraGroups = [ "wheel" ]; # Enable ‘sudo’ for the user. @@ -154,10 +164,10 @@ tree ]; }; - users.mutableUsers = false; - users.users.doloro.hashedPasswordFile = config.sops.secrets."doloro-hashed_password".path; - # users.users.root.hashedPasswordFile = config.sops.secrets."root-hashed_password".path; - users.users.root.initialPassword = "root"; + users.mutableUsers = false; + users.users.doloro.hashedPasswordFile = config.sops.secrets."doloro-hashed_password".path; + # users.users.root.hashedPasswordFile = config.sops.secrets."root-hashed_password".path; + users.users.root.initialPassword = "root"; # programs.firefox.enable = true; # List packages installed in system profile. @@ -165,7 +175,7 @@ environment.systemPackages = with pkgs; [ vim # Do not forget to add an editor to edit configuration.nix! The Nano editor is also installed by default. wget - killall + killall ]; # Some programs need SUID wrappers, can be configured further or are @@ -211,4 +221,3 @@ # For more information, see `man configuration.nix` or https://nixos.org/manual/nixos/stable/options#opt-system.stateVersion . system.stateVersion = "25.11"; # Did you read the comment? } - diff --git a/nix/flake.nix b/nix/flake.nix index 4ac44d5..fe02aa9 100644 --- a/nix/flake.nix +++ b/nix/flake.nix @@ -8,48 +8,54 @@ url = "github:nix-community/home-manager"; inputs.nixpkgs.follows = "nixpkgs"; }; - hyprland.url = "github:hyprwm/Hyprland"; - quickshell = { - url = "git+https://git.outfoxxed.me/outfoxxed/quickshell"; - inputs.nixpkgs.follows = "nixpkgs"; - }; - sops-nix = { + hyprland.url = "github:hyprwm/Hyprland"; + quickshell = { + url = "git+https://git.outfoxxed.me/outfoxxed/quickshell"; + inputs.nixpkgs.follows = "nixpkgs"; + }; + sops-nix = { url = "github:Mic92/sops-nix"; inputs.nixpkgs.follows = "nixpkgs"; }; - disko = { - url = "github:nix-community/disko/latest"; - inputs.nixpkgs.follows = "nixpkgs"; - }; + disko = { + url = "github:nix-community/disko/latest"; + inputs.nixpkgs.follows = "nixpkgs"; + }; stylix = { url = "github:nix-community/stylix"; inputs.nixpkgs.follows = "nixpkgs"; }; neovim-nightly-overlay.url = "github:nix-community/neovim-nightly-overlay"; nixvim = { - url = "github:nix-community/nixvim"; - inputs.nixpkgs.follows = "nixpkgs"; + url = "github:nix-community/nixvim"; + inputs.nixpkgs.follows = "nixpkgs"; }; - spicetify-nix = { - url = "github:Gerg-L/spicetify-nix"; - }; - nix-warez = { # Blender-bin - url = "github:edolstra/nix-warez?dir=blender"; - }; -}; + spicetify-nix = { + url = "github:Gerg-L/spicetify-nix"; + }; + nix-warez = { + # Blender-bin + url = "github:edolstra/nix-warez?dir=blender"; + }; + }; outputs = inputs@{ nixpkgs, home-manager, ... }: let system = "x86_64-linux"; - pkgs = import nixpkgs { inherit system; config = { allowUnfree = true; }; }; - overlays = [inputs.neovim-nightly-overlay.overlays.default]; + pkgs = import nixpkgs { + inherit system; + config = { + allowUnfree = true; + }; + }; + overlays = [ inputs.neovim-nightly-overlay.overlays.default ]; in { homeConfigurations."doloro" = home-manager.lib.homeManagerConfiguration { inherit pkgs; - extraSpecialArgs = { - inherit inputs system; - }; + extraSpecialArgs = { + inherit inputs system; + }; # Specify your home configuration modules here, for example, # the path to your home.nix. @@ -58,11 +64,16 @@ # Optionally use extraSpecialArgs # to pass through arguments to home.nix }; - nixosConfigurations.doloroo-main = nixpkgs.lib.nixosSystem { - specialArgs = { - inherit inputs system; - }; - modules = [ ./configuration.nix inputs.sops-nix.nixosModules.sops inputs.disko.nixosModules.disko {nixpkgs.overlays = overlays;} ]; - }; + nixosConfigurations.doloroo-main = nixpkgs.lib.nixosSystem { + specialArgs = { + inherit inputs system; + }; + modules = [ + ./configuration.nix + inputs.sops-nix.nixosModules.sops + inputs.disko.nixosModules.disko + { nixpkgs.overlays = overlays; } + ]; + }; }; } diff --git a/nix/hardware-configuration.nix b/nix/hardware-configuration.nix index dd3fd25..72accb5 100644 --- a/nix/hardware-configuration.nix +++ b/nix/hardware-configuration.nix @@ -1,14 +1,25 @@ # Do not modify this file! It was generated by ‘nixos-generate-config’ # and may be overwritten by future invocations. Please make changes # to /etc/nixos/configuration.nix instead. -{ config, lib, pkgs, modulesPath, ... }: +{ + config, + lib, + pkgs, + modulesPath, + ... +}: { - imports = - [ (modulesPath + "/installer/scan/not-detected.nix") - ]; + imports = [ + (modulesPath + "/installer/scan/not-detected.nix") + ]; - boot.initrd.availableKernelModules = [ "nvme" "xhci_pci" "ahci" "usbhid" ]; + boot.initrd.availableKernelModules = [ + "nvme" + "xhci_pci" + "ahci" + "usbhid" + ]; boot.initrd.kernelModules = [ ]; boot.kernelModules = [ "kvm-amd" ]; boot.extraModulePackages = [ ]; diff --git a/nix/home.nix b/nix/home.nix index 070d2f6..42682c3 100644 --- a/nix/home.nix +++ b/nix/home.nix @@ -1,25 +1,31 @@ -{ inputs, config, pkgs, fetchFromGitHub, ... }: +{ + inputs, + config, + pkgs, + fetchFromGitHub, + ... +}: { - imports = [ - ./modules/hyprland/home.nix - ./modules/quickshell/home.nix - ./modules/chromium/home.nix - #./modules/neovim/home.nix - ./modules/stylix/home.nix - ./modules/nixvim/home.nix - ./modules/tmux/home.nix - ./modules/theme/home.nix - ./modules/spicetify/home.nix - ./modules/obs/home.nix - ./modules/blender/home.nix - ./overlays.nix - ]; + imports = [ + ./modules/hyprland/home.nix + ./modules/quickshell/home.nix + ./modules/chromium/home.nix + #./modules/neovim/home.nix + ./modules/stylix/home.nix + ./modules/nixvim/home.nix + ./modules/tmux/home.nix + ./modules/theme/home.nix + ./modules/spicetify/home.nix + ./modules/obs/home.nix + ./modules/blender/home.nix + ./overlays.nix + ]; # Home Manager needs a bit of information about you and the paths it should # manage. home.username = "doloro"; home.homeDirectory = "/home/doloro"; - + programs.git = { enable = true; userName = "Doloro1978"; @@ -39,13 +45,13 @@ # environment. home.packages = with pkgs; [ hello - vim - telegram-desktop - vesktop - # spotify - pavucontrol - lazygit - btop + vim + telegram-desktop + vesktop + # spotify + pavucontrol + lazygit + btop ]; # Home Manager is pretty good at managing dotfiles. The primary way to manage @@ -86,35 +92,35 @@ dunst = { enable = true; }; - arrpc = { - enable = true; - package = pkgs.arrpc; - }; + arrpc = { + enable = true; + package = pkgs.arrpc; + }; }; - # {{{{{ TODO Put in different file - systemd.user.services.pw-discordaudio-virtual-device = { - Install = { - WantedBy = [ "hyprland-session.target" ]; - }; - Service = { - ExecStart = "${pkgs.writeShellScript "discord_audio_virt_device" '' - #!/run/current-system/sw/bin/bash - pw-loopback -m '[ FL FR]' --capture-props='media.class=Audio/Sink node.name=DiscordSink' -n DiscordSink - ''}"; - }; - }; - systemd.user.services.pw-gameaudio-virtual-device = { - Install = { - WantedBy = [ "hyprland-session.target" ]; - }; - Service = { - ExecStart = "${pkgs.writeShellScript "game_audio_virt_device" '' - #!/run/current-system/sw/bin/bash - pw-loopback -m '[ FL FR]' --capture-props='media.class=Audio/Sink node.name=GameAudioSink' -n GameAudioSink - ''}"; - }; - }; - # }}}}} + # {{{{{ TODO Put in different file + systemd.user.services.pw-discordaudio-virtual-device = { + Install = { + WantedBy = [ "hyprland-session.target" ]; + }; + Service = { + ExecStart = "${pkgs.writeShellScript "discord_audio_virt_device" '' + #!/run/current-system/sw/bin/bash + pw-loopback -m '[ FL FR]' --capture-props='media.class=Audio/Sink node.name=DiscordSink' -n DiscordSink + ''}"; + }; + }; + systemd.user.services.pw-gameaudio-virtual-device = { + Install = { + WantedBy = [ "hyprland-session.target" ]; + }; + Service = { + ExecStart = "${pkgs.writeShellScript "game_audio_virt_device" '' + #!/run/current-system/sw/bin/bash + pw-loopback -m '[ FL FR]' --capture-props='media.class=Audio/Sink node.name=GameAudioSink' -n GameAudioSink + ''}"; + }; + }; + # }}}}} # Let Home Manager install and manage itself. programs.home-manager.enable = true; } diff --git a/nix/modules/blender/home.nix b/nix/modules/blender/home.nix index 7a39280..760d65f 100644 --- a/nix/modules/blender/home.nix +++ b/nix/modules/blender/home.nix @@ -1,11 +1,18 @@ -{ inputs, pkgs, home, system, ... }: -let - blenderPkgs = inputs.nix-warez.packages.${system}; -in { - # whole blender config including addons is too fat to include here - home.packages = with pkgs; [ - blenderPkgs.blender_4_5 - ]; - # nix'ing a blender config is most likely not possible - # could probs install blender addons through nix since they are fat fat mega fat to install TODO +{ + inputs, + pkgs, + home, + system, + ... +}: +let + blenderPkgs = inputs.nix-warez.packages.${system}; +in +{ + # whole blender config including addons is too fat to include here + home.packages = with pkgs; [ + blenderPkgs.blender_4_5 + ]; + # nix'ing a blender config is most likely not possible + # could probs install blender addons through nix since they are fat fat mega fat to install TODO } diff --git a/nix/modules/chromium/home.nix b/nix/modules/chromium/home.nix index 78efe40..53e0e96 100644 --- a/nix/modules/chromium/home.nix +++ b/nix/modules/chromium/home.nix @@ -1,19 +1,24 @@ -{ inputs, pkgs, system, ... }: -let +{ + inputs, + pkgs, + system, + ... +}: +let in { - programs.chromium = { - enable = true; - extensions = [ - { id = "ghmbeldphafepmbegfdlkpapadhbakde"; } # ProtonPass - #{ id = "cjpalhdlnbpafiamejdnhcphjbkeiagm"; } # Ublok - { id = "ddkjiahejlhfcafbddmgiahcphecmpfh"; } # Ublock lite - { id = "kpmjjdhbcfebfjgdnpjagcndoelnidfj"; } # Control panel for twitter - { id = "aighbdamfnndbemigjcbkdklkegkgmpl"; } # Better twitter embeds - { id = "enamippconapkdmgfgjchkhakpfinmaj"; } # DeArrow - { id = "bjcnpgekponkjpincbcoflgkdomldlnl"; } # Website Blocker - ]; - package = pkgs.chromium.override { enableWideVine = true; }; - }; + programs.chromium = { + enable = true; + extensions = [ + { id = "ghmbeldphafepmbegfdlkpapadhbakde"; } # ProtonPass + #{ id = "cjpalhdlnbpafiamejdnhcphjbkeiagm"; } # Ublok + { id = "ddkjiahejlhfcafbddmgiahcphecmpfh"; } # Ublock lite + { id = "kpmjjdhbcfebfjgdnpjagcndoelnidfj"; } # Control panel for twitter + { id = "aighbdamfnndbemigjcbkdklkegkgmpl"; } # Better twitter embeds + { id = "enamippconapkdmgfgjchkhakpfinmaj"; } # DeArrow + { id = "bjcnpgekponkjpincbcoflgkdomldlnl"; } # Website Blocker + ]; + package = pkgs.chromium.override { enableWideVine = true; }; + }; } diff --git a/nix/modules/greetd/nixos.nix b/nix/modules/greetd/nixos.nix index f6ec6a1..2459194 100644 --- a/nix/modules/greetd/nixos.nix +++ b/nix/modules/greetd/nixos.nix @@ -12,7 +12,7 @@ in options.modules.greetd = { enable = lib.mkEnableOption "Greetd configuration module"; }; - config = { + config = { services.greetd = { enable = true; settings = { @@ -21,7 +21,7 @@ in user = "greeter"; }; }; - }; + }; systemd.services.greetd.serviceConfig = { Type = "idle"; StandardInput = "tty"; @@ -32,5 +32,5 @@ in TTYVHangup = true; TTYVTDisallocate = true; }; - }; + }; } diff --git a/nix/modules/hyprland/home.nix b/nix/modules/hyprland/home.nix index 73d8ce8..26a9e11 100644 --- a/nix/modules/hyprland/home.nix +++ b/nix/modules/hyprland/home.nix @@ -1,34 +1,35 @@ { inputs, pkgs, ... }: -let +let in { - imports = [ - ./settings.nix - ./runner.nix - ./screenshot.nix - ]; - wayland.windowManager.hyprland = { - enable = true; - # set the flake package - # settings = { }; - systemd.variables = ["--all"]; - package = inputs.hyprland.packages.${pkgs.stdenv.hostPlatform.system}.hyprland; - portalPackage = inputs.hyprland.packages.${pkgs.stdenv.hostPlatform.system}.xdg-desktop-portal-hyprland; - }; + imports = [ + ./settings.nix + ./runner.nix + ./screenshot.nix + ]; + wayland.windowManager.hyprland = { + enable = true; + # set the flake package + # settings = { }; + systemd.variables = [ "--all" ]; + package = inputs.hyprland.packages.${pkgs.stdenv.hostPlatform.system}.hyprland; + portalPackage = + inputs.hyprland.packages.${pkgs.stdenv.hostPlatform.system}.xdg-desktop-portal-hyprland; + }; # todo, split this into its own module; programs.foot = { enable = true; settings = { - main = { - term = "xterm-256color"; + main = { + term = "xterm-256color"; - font = "CaskaydiaCove Nerd Font Mono:size=12"; + font = "CaskaydiaCove Nerd Font Mono:size=12"; + }; + + mouse = { + hide-when-typing = "yes"; + }; }; - - mouse = { - hide-when-typing = "yes"; - }; - }; }; } diff --git a/nix/modules/hyprland/nixos.nix b/nix/modules/hyprland/nixos.nix index 79c732d..89cc6d6 100644 --- a/nix/modules/hyprland/nixos.nix +++ b/nix/modules/hyprland/nixos.nix @@ -10,10 +10,10 @@ portalPackage = inputs.hyprland.packages.${pkgs.stdenv.hostPlatform.system}.xdg-desktop-portal-hyprland; }; - xdg.portal = { - enable = true; - extraPortals = with pkgs; [ xdg-desktop-portal-gtk ]; - }; + xdg.portal = { + enable = true; + extraPortals = with pkgs; [ xdg-desktop-portal-gtk ]; + }; environment.sessionVariables.NIXOS_OZONE_WL = "1"; nix.settings = { substituters = [ "https://hyprland.cachix.org" ]; diff --git a/nix/modules/hyprland/runner.nix b/nix/modules/hyprland/runner.nix index 890a487..dc6ce95 100644 --- a/nix/modules/hyprland/runner.nix +++ b/nix/modules/hyprland/runner.nix @@ -1,6 +1,7 @@ -{ inputs, pkgs, ... }: +{ inputs, pkgs, ... }: let -in { +in +{ programs.wofi.enable = true; } diff --git a/nix/modules/hyprland/screenshot.nix b/nix/modules/hyprland/screenshot.nix index 61cd6a0..2a4c01c 100644 --- a/nix/modules/hyprland/screenshot.nix +++ b/nix/modules/hyprland/screenshot.nix @@ -1,11 +1,12 @@ -{ inputs, pkgs, ... }: +{ inputs, pkgs, ... }: let -in { +in +{ home.packages = with pkgs; [ - wl-clipboard - wayfreeze - grim - slurp - ]; + wl-clipboard + wayfreeze + grim + slurp + ]; } diff --git a/nix/modules/hyprland/settings.nix b/nix/modules/hyprland/settings.nix index 15f3f31..aa5bce0 100644 --- a/nix/modules/hyprland/settings.nix +++ b/nix/modules/hyprland/settings.nix @@ -1,145 +1,152 @@ { inputs, pkgs, ... }: { - wayland.windowManager.hyprland.settings = { - monitor = [ - "HDMI-A-1, 1920x1080@60, 0x0, 1" - "DP-3, 1920x1080@144, 1920x0, 1" - ]; - exec-once = [ - "hyprctl dispatch workspace 2" # shit solution to get quickshell on the right monitor - ]; - env = [ - "XCURSOR_SIZE,24" - "HYPRCURSOR_SIZE,24" - "LIBVA_DRIVER_NAME,nvidia" - "__GLX_VENDOR_LIBRARY_NAME,nvidia" - "WEBKIT_DISABLE_DMABUF_RENDERER,1" # maybe disable if nixos fixes alcom - ]; - general = { - gaps_in = 1; - gaps_out = 1; - border_size = 1; - # col.active_border = rgba(33ccffee) rgba(00ff99ee) 45deg - # col.inactive_border = rgba(595959aa) - resize_on_border = false; - allow_tearing = true; - layout = "dwindle"; - }; - decoration = { - rounding = 0; - rounding_power = 1; - active_opacity = 1.0; - inactive_opacity = 1.0; + wayland.windowManager.hyprland.settings = { + monitor = [ + "HDMI-A-1, 1920x1080@60, 0x0, 1" + "DP-3, 1920x1080@144, 1920x0, 1" + ]; + exec-once = [ + "hyprctl dispatch workspace 2" # shit solution to get quickshell on the right monitor + ]; + env = [ + "XCURSOR_SIZE,24" + "HYPRCURSOR_SIZE,24" + "LIBVA_DRIVER_NAME,nvidia" + "__GLX_VENDOR_LIBRARY_NAME,nvidia" + "WEBKIT_DISABLE_DMABUF_RENDERER,1" # maybe disable if nixos fixes alcom + ]; + general = { + gaps_in = 1; + gaps_out = 1; + border_size = 1; + # col.active_border = rgba(33ccffee) rgba(00ff99ee) 45deg + # col.inactive_border = rgba(595959aa) + resize_on_border = false; + allow_tearing = true; + layout = "dwindle"; + }; + decoration = { + rounding = 0; + rounding_power = 1; + active_opacity = 1.0; + inactive_opacity = 1.0; - shadow = { - enabled = false; - }; + shadow = { + enabled = false; + }; - blur = { - enabled = false; - }; - }; - animations = { - enabled = true; - bezier = [ - "easeOutQuint,0.23,1,0.32,1" - "easeInOutCubic,0.65,0.05,0.36,1" - "linear,0,0,1,1" - "almostLinear,0.5,0.5,0.75,1.0" - "quick,0.15,0,0.1,1" - ]; - animation = [ - "global, 1, 10, default" - "border, 1, 5.39, easeOutQuint" - "windows, 1, 2.79, easeOutQuint" - "windowsIn, 1, 1.1, easeOutQuint, popin 87%" - "windowsOut, 1, 1.49, linear, popin 87%" - "fadeIn, 1, 1.73, almostLinear" - "fadeOut, 1, 1.46, almostLinear" - "fade, 1, 2.03, quick" - "layers, 1, 3.81, easeOutQuint" - "layersIn, 1, 4, easeOutQuint, fade" - "layersOut, 1, 1.5, linear, fade" - "fadeLayersIn, 1, 1.79, almostLinear" - "fadeLayersOut, 1, 1.39, almostLinear" - "workspaces, 1, 1.94, almostLinear, fade" - "workspacesIn, 1, 1.21, almostLinear, fade" - "workspacesOut, 1, 1.94, almostLinear, fade" - "zoomFactor, 1, 7, quick" - ]; - }; - dwindle = { - pseudotile = true; - preserve_split = true; - }; - # master = { - # new_status = master; - # }; - misc = { - force_default_wallpaper = -1; - disable_hyprland_logo = false; - enable_anr_dialog = false; - }; - input = { - kb_layout = "gb"; - follow_mouse = 2; - sensitivity = -0.5; - }; - "$mainMod" = "SUPER"; - bind = [ - "$mainMod, Q, exec, foot" - "$mainMod, C, killactive" - "$mainMod, M, exit" - "$mainMod, E, exec, $fileManager" - "$mainMod, V, togglefloating," - "$mainMod, R, exec, wofi --show drun" - "$mainMod, P, pseudo, # dwindle" - "$mainMod, J, togglesplit, # dwindle" - "$mainMod, left, movefocus, l" - "$mainMod, right, movefocus, r" - "$mainMod, up, movefocus, u" - "$mainMod, down, movefocus, d" - ("$mainMod, S, exec, " + ''wayfreeze --after-freeze-cmd 'grim -g "$(slurp -d)" - | wl-copy -t image/png;killall wayfreeze' --hide-cursor'') - "$mainMod, F, fullscreen" - "$mainMod, mouse_down, workspace, e+1" - "$mainMod, mouse_up, workspace, e-1" - ", home, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle" - ", end, exec, wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle" - ", F8, pass, class:^(com\.obsproject\.Studio)$" - "$mainMod, 0, workspace, 10" - "$mainMod SHIFT, 0, movetoworkspace, 10" - ] ++ ( - builtins.concatLists ( - builtins.genList(i: let ws = i + 1; in [ - "$mainMod, ${toString ws}, workspace, ${toString ws}" - "$mainMod SHIFT, ${toString ws}, movetoworkspace, ${toString ws}" - ] - ) 9 - ) - ); - bindm = [ - "$mainMod, mouse:272, movewindow" - "$mainMod, mouse:273, resizewindow" - ]; - workspace = [ - "name:2, monitor:DP-3" - ]; - windowrule = [ - "suppressevent maximize, class:.*" - "workspace 5, class:^(gamescope)$" - "fullscreen, class:^(gamescope)$" - "immediate, class:^(gamescope)$" - "workspace 6 silent, class:^(steam)$" - "workspace 8 silent, class:^(vesktop)$" - "workspace 8 silent, class:^(org.telegram.desktop)$" - "workspace 10 silent, class:^(com.obsproject.Studio)$" - "workspace 1 silent, initialTitle:^(Discord Popout)$" - ]; - windowrulev2 = [ - "noinitialfocus, class:.*" - ]; - # exec-once = [ - # ]; - # we need to auto launch: quickshell, steam, ar_rpc (maybe), vesktop, telegram, qbit, and obs - }; + blur = { + enabled = false; + }; + }; + animations = { + enabled = true; + bezier = [ + "easeOutQuint,0.23,1,0.32,1" + "easeInOutCubic,0.65,0.05,0.36,1" + "linear,0,0,1,1" + "almostLinear,0.5,0.5,0.75,1.0" + "quick,0.15,0,0.1,1" + ]; + animation = [ + "global, 1, 10, default" + "border, 1, 5.39, easeOutQuint" + "windows, 1, 2.79, easeOutQuint" + "windowsIn, 1, 1.1, easeOutQuint, popin 87%" + "windowsOut, 1, 1.49, linear, popin 87%" + "fadeIn, 1, 1.73, almostLinear" + "fadeOut, 1, 1.46, almostLinear" + "fade, 1, 2.03, quick" + "layers, 1, 3.81, easeOutQuint" + "layersIn, 1, 4, easeOutQuint, fade" + "layersOut, 1, 1.5, linear, fade" + "fadeLayersIn, 1, 1.79, almostLinear" + "fadeLayersOut, 1, 1.39, almostLinear" + "workspaces, 1, 1.94, almostLinear, fade" + "workspacesIn, 1, 1.21, almostLinear, fade" + "workspacesOut, 1, 1.94, almostLinear, fade" + "zoomFactor, 1, 7, quick" + ]; + }; + dwindle = { + pseudotile = true; + preserve_split = true; + }; + # master = { + # new_status = master; + # }; + misc = { + force_default_wallpaper = -1; + disable_hyprland_logo = false; + enable_anr_dialog = false; + }; + input = { + kb_layout = "gb"; + follow_mouse = 2; + sensitivity = -0.5; + }; + "$mainMod" = "SUPER"; + bind = [ + "$mainMod, Q, exec, foot" + "$mainMod, C, killactive" + "$mainMod, M, exit" + "$mainMod, E, exec, $fileManager" + "$mainMod, V, togglefloating," + "$mainMod, R, exec, wofi --show drun" + "$mainMod, P, pseudo, # dwindle" + "$mainMod, J, togglesplit, # dwindle" + "$mainMod, left, movefocus, l" + "$mainMod, right, movefocus, r" + "$mainMod, up, movefocus, u" + "$mainMod, down, movefocus, d" + ( + "$mainMod, S, exec, " + + ''wayfreeze --after-freeze-cmd 'grim -g "$(slurp -d)" - | wl-copy -t image/png;killall wayfreeze' --hide-cursor'' + ) + "$mainMod, F, fullscreen" + "$mainMod, mouse_down, workspace, e+1" + "$mainMod, mouse_up, workspace, e-1" + ", home, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle" + ", end, exec, wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle" + ", F8, pass, class:^(com\.obsproject\.Studio)$" + "$mainMod, 0, workspace, 10" + "$mainMod SHIFT, 0, movetoworkspace, 10" + ] + ++ (builtins.concatLists ( + builtins.genList ( + i: + let + ws = i + 1; + in + [ + "$mainMod, ${toString ws}, workspace, ${toString ws}" + "$mainMod SHIFT, ${toString ws}, movetoworkspace, ${toString ws}" + ] + ) 9 + )); + bindm = [ + "$mainMod, mouse:272, movewindow" + "$mainMod, mouse:273, resizewindow" + ]; + workspace = [ + "name:2, monitor:DP-3" + ]; + windowrule = [ + "suppressevent maximize, class:.*" + "workspace 5, class:^(gamescope)$" + "fullscreen, class:^(gamescope)$" + "immediate, class:^(gamescope)$" + "workspace 6 silent, class:^(steam)$" + "workspace 8 silent, class:^(vesktop)$" + "workspace 8 silent, class:^(org.telegram.desktop)$" + "workspace 10 silent, class:^(com.obsproject.Studio)$" + "workspace 1 silent, initialTitle:^(Discord Popout)$" + ]; + windowrulev2 = [ + "noinitialfocus, class:.*" + ]; + # exec-once = [ + # ]; + # we need to auto launch: quickshell, steam, ar_rpc (maybe), vesktop, telegram, qbit, and obs + }; } diff --git a/nix/modules/neovim/home.nix b/nix/modules/neovim/home.nix index a4f63d1..8517b56 100644 --- a/nix/modules/neovim/home.nix +++ b/nix/modules/neovim/home.nix @@ -1,12 +1,18 @@ -{ inputs, pkgs, config, ... }: -let +{ + inputs, + pkgs, + config, + ... +}: +let -in { - home.packages = [ - inputs.neovim-nightly-overlay.packages.${pkgs.system}.default - ]; - xdg.configFile."nvim" = { - recursive = true; - source = config.lib.file.mkOutOfStoreSymlink "/home/doloro/dotfiles/nvim"; - }; +in +{ + home.packages = [ + inputs.neovim-nightly-overlay.packages.${pkgs.system}.default + ]; + xdg.configFile."nvim" = { + recursive = true; + source = config.lib.file.mkOutOfStoreSymlink "/home/doloro/dotfiles/nvim"; + }; } diff --git a/nix/modules/nixvim/home.nix b/nix/modules/nixvim/home.nix index 4c8b2c7..1e0df27 100644 --- a/nix/modules/nixvim/home.nix +++ b/nix/modules/nixvim/home.nix @@ -1,7 +1,8 @@ -{ inputs, pkgs, ... }:{ +{ inputs, pkgs, ... }: +{ imports = [ inputs.nixvim.homeModules.nixvim - ]; + ]; programs.nixvim = { enable = true; defaultEditor = true; @@ -20,7 +21,7 @@ vimPlugins.mini-completion vimPlugins.mini-comment vimPlugins.melange-nvim - vimPlugins.telescope-file-browser-nvim + vimPlugins.telescope-file-browser-nvim ]; opts = { number = true; diff --git a/nix/modules/nixvim/plugins/mini/notify.nix b/nix/modules/nixvim/plugins/mini/notify.nix index 1d5862c..f0cb62c 100644 --- a/nix/modules/nixvim/plugins/mini/notify.nix +++ b/nix/modules/nixvim/plugins/mini/notify.nix @@ -1,3 +1,4 @@ -{ inputs, ... }: { - +{ inputs, ... }: +{ + } diff --git a/nix/modules/obs/home.nix b/nix/modules/obs/home.nix index 497e0df..e008b49 100644 --- a/nix/modules/obs/home.nix +++ b/nix/modules/obs/home.nix @@ -1,16 +1,17 @@ -{ inputs, pkgs, ... }: { - programs = { - obs-studio = { - enable = true; - package = ( - pkgs.obs-studio.override { - cudaSupport = true; - } - ); - plugins = with pkgs.obs-studio-plugins; [ - obs-pipewire-audio-capture - obs-vkcapture - ]; - }; -}; +{ inputs, pkgs, ... }: +{ + programs = { + obs-studio = { + enable = true; + package = ( + pkgs.obs-studio.override { + cudaSupport = true; + } + ); + plugins = with pkgs.obs-studio-plugins; [ + obs-pipewire-audio-capture + obs-vkcapture + ]; + }; + }; } diff --git a/nix/modules/quickshell/home.nix b/nix/modules/quickshell/home.nix index 0bb6e95..6bce8e1 100644 --- a/nix/modules/quickshell/home.nix +++ b/nix/modules/quickshell/home.nix @@ -1,24 +1,30 @@ -{ inputs, config, pkgs, system, ... }: -let - pkg = inputs.quickshell.packages.${system}.quickshell; +{ + inputs, + config, + pkgs, + system, + ... +}: +let + pkg = inputs.quickshell.packages.${system}.quickshell; in { - xdg.configFile."quickshell" = { - recursive = true; - source = config.lib.file.mkOutOfStoreSymlink "/home/doloro/dotfiles/quickshell/"; - }; - systemd.user.services.quickshell = { - Unit = { - Description = "Quickshell daemon"; - After = [ "hyprland-session.target" ]; - }; - Install = { - WantedBy = [ "default.target" ]; - }; - Service = { - ExecStart = "${pkg}/bin/quickshell"; - Restart = "on-failure"; - RestartSec = "5s"; - }; + xdg.configFile."quickshell" = { + recursive = true; + source = config.lib.file.mkOutOfStoreSymlink "/home/doloro/dotfiles/quickshell/"; + }; + systemd.user.services.quickshell = { + Unit = { + Description = "Quickshell daemon"; + After = [ "hyprland-session.target" ]; }; + Install = { + WantedBy = [ "default.target" ]; + }; + Service = { + ExecStart = "${pkg}/bin/quickshell"; + Restart = "on-failure"; + RestartSec = "5s"; + }; + }; } diff --git a/nix/modules/spicetify/home.nix b/nix/modules/spicetify/home.nix index ac76ea9..efa4967 100644 --- a/nix/modules/spicetify/home.nix +++ b/nix/modules/spicetify/home.nix @@ -1,28 +1,29 @@ -{ inputs, pkgs, ... }: +{ inputs, pkgs, ... }: let - spicePkgs = inputs.spicetify-nix.legacyPackages.${pkgs.stdenv.hostPlatform.system}; -in { - imports = [ - inputs.spicetify-nix.homeManagerModules.default - ]; - programs.spicetify = { - enable = true; + spicePkgs = inputs.spicetify-nix.legacyPackages.${pkgs.stdenv.hostPlatform.system}; +in +{ + imports = [ + inputs.spicetify-nix.homeManagerModules.default + ]; + programs.spicetify = { + enable = true; - enabledExtensions = with spicePkgs.extensions; [ - adblock - hidePodcasts - shuffle # shuffle+ (special characters are sanitized out of extension names) - ]; - enabledCustomApps = with spicePkgs.apps; [ - newReleases - # ncsVisualizer - ]; - enabledSnippets = with spicePkgs.snippets; [ - # rotatingCoverart - pointer - ]; + enabledExtensions = with spicePkgs.extensions; [ + adblock + hidePodcasts + shuffle # shuffle+ (special characters are sanitized out of extension names) + ]; + enabledCustomApps = with spicePkgs.apps; [ + newReleases + # ncsVisualizer + ]; + enabledSnippets = with spicePkgs.snippets; [ + # rotatingCoverart + pointer + ]; - theme = spicePkgs.themes.catppuccin; - colorScheme = "mocha"; - }; + theme = spicePkgs.themes.catppuccin; + colorScheme = "mocha"; + }; } diff --git a/nix/modules/steam/nixos.nix b/nix/modules/steam/nixos.nix index 7761ffd..8a8c948 100644 --- a/nix/modules/steam/nixos.nix +++ b/nix/modules/steam/nixos.nix @@ -29,8 +29,11 @@ keyutils mangohud gamemode - lsof - (gamescope.overrideAttrs { enableWsi = true; NIX_CFLAGS_COMPILE = ["-fno-fast-math"]; }) + lsof + (gamescope.overrideAttrs { + enableWsi = true; + NIX_CFLAGS_COMPILE = [ "-fno-fast-math" ]; + }) ]; }; }; diff --git a/nix/modules/theme/home.nix b/nix/modules/theme/home.nix index 00425d4..c1abb98 100644 --- a/nix/modules/theme/home.nix +++ b/nix/modules/theme/home.nix @@ -1,4 +1,5 @@ -{ inputs, ... }: { +{ inputs, ... }: +{ services.dunst = { settings = { global = { diff --git a/nix/modules/tmux/home.nix b/nix/modules/tmux/home.nix index 1d0a70c..4a7ad4f 100644 --- a/nix/modules/tmux/home.nix +++ b/nix/modules/tmux/home.nix @@ -1,4 +1,9 @@ -{ inputs, pkgs, fetchFromGitHub, ... }: +{ + inputs, + pkgs, + fetchFromGitHub, + ... +}: { programs.tmux = { enable = true; @@ -7,9 +12,9 @@ minimal-tmux-status ]; extraConfig = '' -set-option -g default-terminal "tmux-256color" -set -g status-bg black -set -g status-fg white + set-option -g default-terminal "tmux-256color" + set -g status-bg black + set -g status-fg white ''; }; } diff --git a/nix/overlays.nix b/nix/overlays.nix index c1deb8b..13e5d81 100644 --- a/nix/overlays.nix +++ b/nix/overlays.nix @@ -1,16 +1,19 @@ { pkgs, lib, ... }: -let - arrpc_overlay = (self: super: { - arrpc = super.arrpc.overrideAttrs (prev: { - version = "git"; - src = pkgs.fetchFromGitHub { - owner = "Doloro1978"; - repo = "arrpc"; - tag = "tag3"; - sha256 = "sha256-9Tnw/BmIAA+RPAfhHFv0kenrRdoxJuUw3iRjKykGxdE="; - }; - }); - }); -in { - nixpkgs.overlays = [ arrpc_overlay ]; +let + arrpc_overlay = ( + self: super: { + arrpc = super.arrpc.overrideAttrs (prev: { + version = "git"; + src = pkgs.fetchFromGitHub { + owner = "Doloro1978"; + repo = "arrpc"; + tag = "tag3"; + sha256 = "sha256-9Tnw/BmIAA+RPAfhHFv0kenrRdoxJuUw3iRjKykGxdE="; + }; + }); + } + ); +in +{ + nixpkgs.overlays = [ arrpc_overlay ]; }