run nixfmt

This commit is contained in:
2025-10-02 10:08:12 +00:00
parent c05cb4d125
commit dd6fe450fb
22 changed files with 529 additions and 442 deletions

View File

@@ -2,30 +2,39 @@
# your system. Help is available in the configuration.nix(5) man page, on # 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`). # https://search.nixos.org/options and in the NixOS manual (`nixos-help`).
{ config, lib, pkgs, ... }: {
config,
lib,
pkgs,
...
}:
{ {
imports = imports = [
[ # Include the results of the hardware scan. # Include the results of the hardware scan.
./hardware-configuration.nix ./hardware-configuration.nix
./modules/greetd/nixos.nix ./modules/greetd/nixos.nix
./modules/stylix/nixos.nix ./modules/stylix/nixos.nix
./modules/steam/nixos.nix ./modules/steam/nixos.nix
./modules/hyprland/nixos.nix ./modules/hyprland/nixos.nix
./disks.nix ./disks.nix
]; ];
# Use the systemd-boot EFI boot loader. # Use the systemd-boot EFI boot loader.
boot.loader.grub.enable = true; boot.loader.grub.enable = true;
boot.loader.grub.device = "nodev"; boot.loader.grub.device = "nodev";
boot.loader.grub.devices = ["/dev/disk/by-id/nvme-CT1000P2SSD8_2221E632CD1F" boot.loader.grub.devices = [
"nodev" "/dev/disk/by-id/nvme-CT1000P2SSD8_2221E632CD1F"
]; "nodev"
];
#boot.loader.efi.canTouchEfiVariables = true; #boot.loader.efi.canTouchEfiVariables = true;
boot.loader.grub.efiSupport = true; boot.loader.grub.efiSupport = true;
boot.loader.grub.efiInstallAsRemovable = 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. networking.hostName = "doloroo-main"; # Define your hostname.
@@ -34,19 +43,19 @@
# Configure network connections interactively with nmcli or nmtui. # Configure network connections interactively with nmcli or nmtui.
networking.networkmanager.enable = true; networking.networkmanager.enable = true;
security.rtkit.enable = true; security.rtkit.enable = true;
sops = { sops = {
defaultSopsFile = ./secrets/users.yaml; defaultSopsFile = ./secrets/users.yaml;
secrets = { secrets = {
root-hashed_password = { root-hashed_password = {
neededForUsers = true; neededForUsers = true;
}; };
doloro-hashed_password = { doloro-hashed_password = {
neededForUsers = true; neededForUsers = true;
}; };
}; };
}; };
# Set your time zone. # Set your time zone.
time.timeZone = "Europe/London"; time.timeZone = "Europe/London";
@@ -72,17 +81,18 @@
}; };
# Load nvidia driver for Xorg and Wayland # Load nvidia driver for Xorg and Wayland
services.xserver.videoDrivers = ["nvidia"]; services.xserver.videoDrivers = [ "nvidia" ];
fileSystems."/mnt/2tb" = { fileSystems."/mnt/2tb" = {
device = "/dev/disk/by-uuid/0f49aec7-4af2-4f4f-b475-3f4fad2b59c2"; device = "/dev/disk/by-uuid/0f49aec7-4af2-4f4f-b475-3f4fad2b59c2";
fsType = "ext4"; fsType = "ext4";
options = [ # If you don't have this options attribute, it'll default to "defaults" options = [
# boot options for fstab. Search up fstab mount options you can use # If you don't have this options attribute, it'll default to "defaults"
"defaults" # boot options for fstab. Search up fstab mount options you can use
"users" # Allows any user to mount and unmount "defaults"
"nofail" # Prevent system from failing if this drive doesn't mount "users" # Allows any user to mount and unmount
"exec" "nofail" # Prevent system from failing if this drive doesn't mount
"exec"
]; ];
}; };
@@ -110,24 +120,24 @@
open = false; open = false;
# Enable the Nvidia settings menu, # Enable the Nvidia settings menu,
# accessible via `nvidia-settings`. # accessible via `nvidia-settings`.
nvidiaSettings = true; nvidiaSettings = true;
# Optionally, you may need to select the appropriate driver version for your specific GPU. # Optionally, you may need to select the appropriate driver version for your specific GPU.
package = config.boot.kernelPackages.nvidiaPackages.latest; package = config.boot.kernelPackages.nvidiaPackages.latest;
}; };
fonts = { fonts = {
enableDefaultPackages = true; enableDefaultPackages = true;
packages = with pkgs; [ packages = with pkgs; [
nerd-fonts.jetbrains-mono nerd-fonts.jetbrains-mono
material-design-icons material-design-icons
material-symbols material-symbols
nerd-fonts.caskaydia-cove nerd-fonts.caskaydia-cove
nerd-fonts.noto nerd-fonts.noto
]; ];
fontDir.enable = true; fontDir.enable = true;
}; };
# Configure keymap in X11 # Configure keymap in X11
# services.xserver.xkb.layout = "us"; # services.xserver.xkb.layout = "us";
@@ -146,7 +156,7 @@
# Enable touchpad support (enabled default in most desktopManager). # Enable touchpad support (enabled default in most desktopManager).
# services.libinput.enable = true; # services.libinput.enable = true;
services.openssh.enable = true; services.openssh.enable = true;
users.users.doloro = { users.users.doloro = {
isNormalUser = true; isNormalUser = true;
extraGroups = [ "wheel" ]; # Enable sudo for the user. extraGroups = [ "wheel" ]; # Enable sudo for the user.
@@ -154,10 +164,10 @@
tree tree
]; ];
}; };
users.mutableUsers = false; users.mutableUsers = false;
users.users.doloro.hashedPasswordFile = config.sops.secrets."doloro-hashed_password".path; 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.hashedPasswordFile = config.sops.secrets."root-hashed_password".path;
users.users.root.initialPassword = "root"; users.users.root.initialPassword = "root";
# programs.firefox.enable = true; # programs.firefox.enable = true;
# List packages installed in system profile. # List packages installed in system profile.
@@ -165,7 +175,7 @@
environment.systemPackages = with pkgs; [ environment.systemPackages = with pkgs; [
vim # Do not forget to add an editor to edit configuration.nix! The Nano editor is also installed by default. vim # Do not forget to add an editor to edit configuration.nix! The Nano editor is also installed by default.
wget wget
killall killall
]; ];
# Some programs need SUID wrappers, can be configured further or are # 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 . # 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? system.stateVersion = "25.11"; # Did you read the comment?
} }

View File

@@ -8,48 +8,54 @@
url = "github:nix-community/home-manager"; url = "github:nix-community/home-manager";
inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs.follows = "nixpkgs";
}; };
hyprland.url = "github:hyprwm/Hyprland"; hyprland.url = "github:hyprwm/Hyprland";
quickshell = { quickshell = {
url = "git+https://git.outfoxxed.me/outfoxxed/quickshell"; url = "git+https://git.outfoxxed.me/outfoxxed/quickshell";
inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs.follows = "nixpkgs";
}; };
sops-nix = { sops-nix = {
url = "github:Mic92/sops-nix"; url = "github:Mic92/sops-nix";
inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs.follows = "nixpkgs";
}; };
disko = { disko = {
url = "github:nix-community/disko/latest"; url = "github:nix-community/disko/latest";
inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs.follows = "nixpkgs";
}; };
stylix = { stylix = {
url = "github:nix-community/stylix"; url = "github:nix-community/stylix";
inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs.follows = "nixpkgs";
}; };
neovim-nightly-overlay.url = "github:nix-community/neovim-nightly-overlay"; neovim-nightly-overlay.url = "github:nix-community/neovim-nightly-overlay";
nixvim = { nixvim = {
url = "github:nix-community/nixvim"; url = "github:nix-community/nixvim";
inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs.follows = "nixpkgs";
}; };
spicetify-nix = { spicetify-nix = {
url = "github:Gerg-L/spicetify-nix"; url = "github:Gerg-L/spicetify-nix";
}; };
nix-warez = { # Blender-bin nix-warez = {
url = "github:edolstra/nix-warez?dir=blender"; # Blender-bin
}; url = "github:edolstra/nix-warez?dir=blender";
}; };
};
outputs = outputs =
inputs@{ nixpkgs, home-manager, ... }: inputs@{ nixpkgs, home-manager, ... }:
let let
system = "x86_64-linux"; system = "x86_64-linux";
pkgs = import nixpkgs { inherit system; config = { allowUnfree = true; }; }; pkgs = import nixpkgs {
overlays = [inputs.neovim-nightly-overlay.overlays.default]; inherit system;
config = {
allowUnfree = true;
};
};
overlays = [ inputs.neovim-nightly-overlay.overlays.default ];
in in
{ {
homeConfigurations."doloro" = home-manager.lib.homeManagerConfiguration { homeConfigurations."doloro" = home-manager.lib.homeManagerConfiguration {
inherit pkgs; inherit pkgs;
extraSpecialArgs = { extraSpecialArgs = {
inherit inputs system; inherit inputs system;
}; };
# Specify your home configuration modules here, for example, # Specify your home configuration modules here, for example,
# the path to your home.nix. # the path to your home.nix.
@@ -58,11 +64,16 @@
# Optionally use extraSpecialArgs # Optionally use extraSpecialArgs
# to pass through arguments to home.nix # to pass through arguments to home.nix
}; };
nixosConfigurations.doloroo-main = nixpkgs.lib.nixosSystem { nixosConfigurations.doloroo-main = nixpkgs.lib.nixosSystem {
specialArgs = { specialArgs = {
inherit inputs system; inherit inputs system;
}; };
modules = [ ./configuration.nix inputs.sops-nix.nixosModules.sops inputs.disko.nixosModules.disko {nixpkgs.overlays = overlays;} ]; modules = [
}; ./configuration.nix
inputs.sops-nix.nixosModules.sops
inputs.disko.nixosModules.disko
{ nixpkgs.overlays = overlays; }
];
};
}; };
} }

View File

@@ -1,14 +1,25 @@
# Do not modify this file! It was generated by nixos-generate-config # Do not modify this file! It was generated by nixos-generate-config
# and may be overwritten by future invocations. Please make changes # and may be overwritten by future invocations. Please make changes
# to /etc/nixos/configuration.nix instead. # to /etc/nixos/configuration.nix instead.
{ config, lib, pkgs, modulesPath, ... }: {
config,
lib,
pkgs,
modulesPath,
...
}:
{ {
imports = imports = [
[ (modulesPath + "/installer/scan/not-detected.nix") (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.initrd.kernelModules = [ ];
boot.kernelModules = [ "kvm-amd" ]; boot.kernelModules = [ "kvm-amd" ];
boot.extraModulePackages = [ ]; boot.extraModulePackages = [ ];

View File

@@ -1,20 +1,26 @@
{ inputs, config, pkgs, fetchFromGitHub, ... }: {
inputs,
config,
pkgs,
fetchFromGitHub,
...
}:
{ {
imports = [ imports = [
./modules/hyprland/home.nix ./modules/hyprland/home.nix
./modules/quickshell/home.nix ./modules/quickshell/home.nix
./modules/chromium/home.nix ./modules/chromium/home.nix
#./modules/neovim/home.nix #./modules/neovim/home.nix
./modules/stylix/home.nix ./modules/stylix/home.nix
./modules/nixvim/home.nix ./modules/nixvim/home.nix
./modules/tmux/home.nix ./modules/tmux/home.nix
./modules/theme/home.nix ./modules/theme/home.nix
./modules/spicetify/home.nix ./modules/spicetify/home.nix
./modules/obs/home.nix ./modules/obs/home.nix
./modules/blender/home.nix ./modules/blender/home.nix
./overlays.nix ./overlays.nix
]; ];
# Home Manager needs a bit of information about you and the paths it should # Home Manager needs a bit of information about you and the paths it should
# manage. # manage.
home.username = "doloro"; home.username = "doloro";
@@ -39,13 +45,13 @@
# environment. # environment.
home.packages = with pkgs; [ home.packages = with pkgs; [
hello hello
vim vim
telegram-desktop telegram-desktop
vesktop vesktop
# spotify # spotify
pavucontrol pavucontrol
lazygit lazygit
btop btop
]; ];
# Home Manager is pretty good at managing dotfiles. The primary way to manage # Home Manager is pretty good at managing dotfiles. The primary way to manage
@@ -86,35 +92,35 @@
dunst = { dunst = {
enable = true; enable = true;
}; };
arrpc = { arrpc = {
enable = true; enable = true;
package = pkgs.arrpc; package = pkgs.arrpc;
}; };
}; };
# {{{{{ TODO Put in different file # {{{{{ TODO Put in different file
systemd.user.services.pw-discordaudio-virtual-device = { systemd.user.services.pw-discordaudio-virtual-device = {
Install = { Install = {
WantedBy = [ "hyprland-session.target" ]; WantedBy = [ "hyprland-session.target" ];
}; };
Service = { Service = {
ExecStart = "${pkgs.writeShellScript "discord_audio_virt_device" '' ExecStart = "${pkgs.writeShellScript "discord_audio_virt_device" ''
#!/run/current-system/sw/bin/bash #!/run/current-system/sw/bin/bash
pw-loopback -m '[ FL FR]' --capture-props='media.class=Audio/Sink node.name=DiscordSink' -n DiscordSink pw-loopback -m '[ FL FR]' --capture-props='media.class=Audio/Sink node.name=DiscordSink' -n DiscordSink
''}"; ''}";
}; };
}; };
systemd.user.services.pw-gameaudio-virtual-device = { systemd.user.services.pw-gameaudio-virtual-device = {
Install = { Install = {
WantedBy = [ "hyprland-session.target" ]; WantedBy = [ "hyprland-session.target" ];
}; };
Service = { Service = {
ExecStart = "${pkgs.writeShellScript "game_audio_virt_device" '' ExecStart = "${pkgs.writeShellScript "game_audio_virt_device" ''
#!/run/current-system/sw/bin/bash #!/run/current-system/sw/bin/bash
pw-loopback -m '[ FL FR]' --capture-props='media.class=Audio/Sink node.name=GameAudioSink' -n GameAudioSink pw-loopback -m '[ FL FR]' --capture-props='media.class=Audio/Sink node.name=GameAudioSink' -n GameAudioSink
''}"; ''}";
}; };
}; };
# }}}}} # }}}}}
# Let Home Manager install and manage itself. # Let Home Manager install and manage itself.
programs.home-manager.enable = true; programs.home-manager.enable = true;
} }

View File

@@ -1,11 +1,18 @@
{ inputs, pkgs, home, system, ... }: {
inputs,
pkgs,
home,
system,
...
}:
let let
blenderPkgs = inputs.nix-warez.packages.${system}; blenderPkgs = inputs.nix-warez.packages.${system};
in { in
# whole blender config including addons is too fat to include here {
home.packages = with pkgs; [ # whole blender config including addons is too fat to include here
blenderPkgs.blender_4_5 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 # 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
} }

View File

@@ -1,19 +1,24 @@
{ inputs, pkgs, system, ... }: {
inputs,
pkgs,
system,
...
}:
let let
in in
{ {
programs.chromium = { programs.chromium = {
enable = true; enable = true;
extensions = [ extensions = [
{ id = "ghmbeldphafepmbegfdlkpapadhbakde"; } # ProtonPass { id = "ghmbeldphafepmbegfdlkpapadhbakde"; } # ProtonPass
#{ id = "cjpalhdlnbpafiamejdnhcphjbkeiagm"; } # Ublok #{ id = "cjpalhdlnbpafiamejdnhcphjbkeiagm"; } # Ublok
{ id = "ddkjiahejlhfcafbddmgiahcphecmpfh"; } # Ublock lite { id = "ddkjiahejlhfcafbddmgiahcphecmpfh"; } # Ublock lite
{ id = "kpmjjdhbcfebfjgdnpjagcndoelnidfj"; } # Control panel for twitter { id = "kpmjjdhbcfebfjgdnpjagcndoelnidfj"; } # Control panel for twitter
{ id = "aighbdamfnndbemigjcbkdklkegkgmpl"; } # Better twitter embeds { id = "aighbdamfnndbemigjcbkdklkegkgmpl"; } # Better twitter embeds
{ id = "enamippconapkdmgfgjchkhakpfinmaj"; } # DeArrow { id = "enamippconapkdmgfgjchkhakpfinmaj"; } # DeArrow
{ id = "bjcnpgekponkjpincbcoflgkdomldlnl"; } # Website Blocker { id = "bjcnpgekponkjpincbcoflgkdomldlnl"; } # Website Blocker
]; ];
package = pkgs.chromium.override { enableWideVine = true; }; package = pkgs.chromium.override { enableWideVine = true; };
}; };
} }

View File

@@ -21,7 +21,7 @@ in
user = "greeter"; user = "greeter";
}; };
}; };
}; };
systemd.services.greetd.serviceConfig = { systemd.services.greetd.serviceConfig = {
Type = "idle"; Type = "idle";
StandardInput = "tty"; StandardInput = "tty";
@@ -32,5 +32,5 @@ in
TTYVHangup = true; TTYVHangup = true;
TTYVTDisallocate = true; TTYVTDisallocate = true;
}; };
}; };
} }

View File

@@ -3,32 +3,33 @@ let
in in
{ {
imports = [ imports = [
./settings.nix ./settings.nix
./runner.nix ./runner.nix
./screenshot.nix ./screenshot.nix
]; ];
wayland.windowManager.hyprland = { wayland.windowManager.hyprland = {
enable = true; enable = true;
# set the flake package # set the flake package
# settings = { }; # settings = { };
systemd.variables = ["--all"]; systemd.variables = [ "--all" ];
package = inputs.hyprland.packages.${pkgs.stdenv.hostPlatform.system}.hyprland; package = inputs.hyprland.packages.${pkgs.stdenv.hostPlatform.system}.hyprland;
portalPackage = inputs.hyprland.packages.${pkgs.stdenv.hostPlatform.system}.xdg-desktop-portal-hyprland; portalPackage =
}; inputs.hyprland.packages.${pkgs.stdenv.hostPlatform.system}.xdg-desktop-portal-hyprland;
};
# todo, split this into its own module; # todo, split this into its own module;
programs.foot = { programs.foot = {
enable = true; enable = true;
settings = { settings = {
main = { main = {
term = "xterm-256color"; term = "xterm-256color";
font = "CaskaydiaCove Nerd Font Mono:size=12"; font = "CaskaydiaCove Nerd Font Mono:size=12";
}; };
mouse = { mouse = {
hide-when-typing = "yes"; hide-when-typing = "yes";
};
}; };
}; };
};
} }

View File

@@ -10,10 +10,10 @@
portalPackage = portalPackage =
inputs.hyprland.packages.${pkgs.stdenv.hostPlatform.system}.xdg-desktop-portal-hyprland; inputs.hyprland.packages.${pkgs.stdenv.hostPlatform.system}.xdg-desktop-portal-hyprland;
}; };
xdg.portal = { xdg.portal = {
enable = true; enable = true;
extraPortals = with pkgs; [ xdg-desktop-portal-gtk ]; extraPortals = with pkgs; [ xdg-desktop-portal-gtk ];
}; };
environment.sessionVariables.NIXOS_OZONE_WL = "1"; environment.sessionVariables.NIXOS_OZONE_WL = "1";
nix.settings = { nix.settings = {
substituters = [ "https://hyprland.cachix.org" ]; substituters = [ "https://hyprland.cachix.org" ];

View File

@@ -1,6 +1,7 @@
{ inputs, pkgs, ... }: { inputs, pkgs, ... }:
let let
in { in
{
programs.wofi.enable = true; programs.wofi.enable = true;
} }

View File

@@ -1,11 +1,12 @@
{ inputs, pkgs, ... }: { inputs, pkgs, ... }:
let let
in { in
{
home.packages = with pkgs; [ home.packages = with pkgs; [
wl-clipboard wl-clipboard
wayfreeze wayfreeze
grim grim
slurp slurp
]; ];
} }

View File

@@ -1,145 +1,152 @@
{ inputs, pkgs, ... }: { inputs, pkgs, ... }:
{ {
wayland.windowManager.hyprland.settings = { wayland.windowManager.hyprland.settings = {
monitor = [ monitor = [
"HDMI-A-1, 1920x1080@60, 0x0, 1" "HDMI-A-1, 1920x1080@60, 0x0, 1"
"DP-3, 1920x1080@144, 1920x0, 1" "DP-3, 1920x1080@144, 1920x0, 1"
]; ];
exec-once = [ exec-once = [
"hyprctl dispatch workspace 2" # shit solution to get quickshell on the right monitor "hyprctl dispatch workspace 2" # shit solution to get quickshell on the right monitor
]; ];
env = [ env = [
"XCURSOR_SIZE,24" "XCURSOR_SIZE,24"
"HYPRCURSOR_SIZE,24" "HYPRCURSOR_SIZE,24"
"LIBVA_DRIVER_NAME,nvidia" "LIBVA_DRIVER_NAME,nvidia"
"__GLX_VENDOR_LIBRARY_NAME,nvidia" "__GLX_VENDOR_LIBRARY_NAME,nvidia"
"WEBKIT_DISABLE_DMABUF_RENDERER,1" # maybe disable if nixos fixes alcom "WEBKIT_DISABLE_DMABUF_RENDERER,1" # maybe disable if nixos fixes alcom
]; ];
general = { general = {
gaps_in = 1; gaps_in = 1;
gaps_out = 1; gaps_out = 1;
border_size = 1; border_size = 1;
# col.active_border = rgba(33ccffee) rgba(00ff99ee) 45deg # col.active_border = rgba(33ccffee) rgba(00ff99ee) 45deg
# col.inactive_border = rgba(595959aa) # col.inactive_border = rgba(595959aa)
resize_on_border = false; resize_on_border = false;
allow_tearing = true; allow_tearing = true;
layout = "dwindle"; layout = "dwindle";
}; };
decoration = { decoration = {
rounding = 0; rounding = 0;
rounding_power = 1; rounding_power = 1;
active_opacity = 1.0; active_opacity = 1.0;
inactive_opacity = 1.0; inactive_opacity = 1.0;
shadow = { shadow = {
enabled = false; enabled = false;
}; };
blur = { blur = {
enabled = false; enabled = false;
}; };
}; };
animations = { animations = {
enabled = true; enabled = true;
bezier = [ bezier = [
"easeOutQuint,0.23,1,0.32,1" "easeOutQuint,0.23,1,0.32,1"
"easeInOutCubic,0.65,0.05,0.36,1" "easeInOutCubic,0.65,0.05,0.36,1"
"linear,0,0,1,1" "linear,0,0,1,1"
"almostLinear,0.5,0.5,0.75,1.0" "almostLinear,0.5,0.5,0.75,1.0"
"quick,0.15,0,0.1,1" "quick,0.15,0,0.1,1"
]; ];
animation = [ animation = [
"global, 1, 10, default" "global, 1, 10, default"
"border, 1, 5.39, easeOutQuint" "border, 1, 5.39, easeOutQuint"
"windows, 1, 2.79, easeOutQuint" "windows, 1, 2.79, easeOutQuint"
"windowsIn, 1, 1.1, easeOutQuint, popin 87%" "windowsIn, 1, 1.1, easeOutQuint, popin 87%"
"windowsOut, 1, 1.49, linear, popin 87%" "windowsOut, 1, 1.49, linear, popin 87%"
"fadeIn, 1, 1.73, almostLinear" "fadeIn, 1, 1.73, almostLinear"
"fadeOut, 1, 1.46, almostLinear" "fadeOut, 1, 1.46, almostLinear"
"fade, 1, 2.03, quick" "fade, 1, 2.03, quick"
"layers, 1, 3.81, easeOutQuint" "layers, 1, 3.81, easeOutQuint"
"layersIn, 1, 4, easeOutQuint, fade" "layersIn, 1, 4, easeOutQuint, fade"
"layersOut, 1, 1.5, linear, fade" "layersOut, 1, 1.5, linear, fade"
"fadeLayersIn, 1, 1.79, almostLinear" "fadeLayersIn, 1, 1.79, almostLinear"
"fadeLayersOut, 1, 1.39, almostLinear" "fadeLayersOut, 1, 1.39, almostLinear"
"workspaces, 1, 1.94, almostLinear, fade" "workspaces, 1, 1.94, almostLinear, fade"
"workspacesIn, 1, 1.21, almostLinear, fade" "workspacesIn, 1, 1.21, almostLinear, fade"
"workspacesOut, 1, 1.94, almostLinear, fade" "workspacesOut, 1, 1.94, almostLinear, fade"
"zoomFactor, 1, 7, quick" "zoomFactor, 1, 7, quick"
]; ];
}; };
dwindle = { dwindle = {
pseudotile = true; pseudotile = true;
preserve_split = true; preserve_split = true;
}; };
# master = { # master = {
# new_status = master; # new_status = master;
# }; # };
misc = { misc = {
force_default_wallpaper = -1; force_default_wallpaper = -1;
disable_hyprland_logo = false; disable_hyprland_logo = false;
enable_anr_dialog = false; enable_anr_dialog = false;
}; };
input = { input = {
kb_layout = "gb"; kb_layout = "gb";
follow_mouse = 2; follow_mouse = 2;
sensitivity = -0.5; sensitivity = -0.5;
}; };
"$mainMod" = "SUPER"; "$mainMod" = "SUPER";
bind = [ bind = [
"$mainMod, Q, exec, foot" "$mainMod, Q, exec, foot"
"$mainMod, C, killactive" "$mainMod, C, killactive"
"$mainMod, M, exit" "$mainMod, M, exit"
"$mainMod, E, exec, $fileManager" "$mainMod, E, exec, $fileManager"
"$mainMod, V, togglefloating," "$mainMod, V, togglefloating,"
"$mainMod, R, exec, wofi --show drun" "$mainMod, R, exec, wofi --show drun"
"$mainMod, P, pseudo, # dwindle" "$mainMod, P, pseudo, # dwindle"
"$mainMod, J, togglesplit, # dwindle" "$mainMod, J, togglesplit, # dwindle"
"$mainMod, left, movefocus, l" "$mainMod, left, movefocus, l"
"$mainMod, right, movefocus, r" "$mainMod, right, movefocus, r"
"$mainMod, up, movefocus, u" "$mainMod, up, movefocus, u"
"$mainMod, down, movefocus, d" "$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, S, exec, "
"$mainMod, mouse_down, workspace, e+1" + ''wayfreeze --after-freeze-cmd 'grim -g "$(slurp -d)" - | wl-copy -t image/png;killall wayfreeze' --hide-cursor''
"$mainMod, mouse_up, workspace, e-1" )
", home, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle" "$mainMod, F, fullscreen"
", end, exec, wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle" "$mainMod, mouse_down, workspace, e+1"
", F8, pass, class:^(com\.obsproject\.Studio)$" "$mainMod, mouse_up, workspace, e-1"
"$mainMod, 0, workspace, 10" ", home, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle"
"$mainMod SHIFT, 0, movetoworkspace, 10" ", end, exec, wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle"
] ++ ( ", F8, pass, class:^(com\.obsproject\.Studio)$"
builtins.concatLists ( "$mainMod, 0, workspace, 10"
builtins.genList(i: let ws = i + 1; in [ "$mainMod SHIFT, 0, movetoworkspace, 10"
"$mainMod, ${toString ws}, workspace, ${toString ws}" ]
"$mainMod SHIFT, ${toString ws}, movetoworkspace, ${toString ws}" ++ (builtins.concatLists (
] builtins.genList (
) 9 i:
) let
); ws = i + 1;
bindm = [ in
"$mainMod, mouse:272, movewindow" [
"$mainMod, mouse:273, resizewindow" "$mainMod, ${toString ws}, workspace, ${toString ws}"
]; "$mainMod SHIFT, ${toString ws}, movetoworkspace, ${toString ws}"
workspace = [ ]
"name:2, monitor:DP-3" ) 9
]; ));
windowrule = [ bindm = [
"suppressevent maximize, class:.*" "$mainMod, mouse:272, movewindow"
"workspace 5, class:^(gamescope)$" "$mainMod, mouse:273, resizewindow"
"fullscreen, class:^(gamescope)$" ];
"immediate, class:^(gamescope)$" workspace = [
"workspace 6 silent, class:^(steam)$" "name:2, monitor:DP-3"
"workspace 8 silent, class:^(vesktop)$" ];
"workspace 8 silent, class:^(org.telegram.desktop)$" windowrule = [
"workspace 10 silent, class:^(com.obsproject.Studio)$" "suppressevent maximize, class:.*"
"workspace 1 silent, initialTitle:^(Discord Popout)$" "workspace 5, class:^(gamescope)$"
]; "fullscreen, class:^(gamescope)$"
windowrulev2 = [ "immediate, class:^(gamescope)$"
"noinitialfocus, class:.*" "workspace 6 silent, class:^(steam)$"
]; "workspace 8 silent, class:^(vesktop)$"
# exec-once = [ "workspace 8 silent, class:^(org.telegram.desktop)$"
# ]; "workspace 10 silent, class:^(com.obsproject.Studio)$"
# we need to auto launch: quickshell, steam, ar_rpc (maybe), vesktop, telegram, qbit, and obs "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
};
} }

View File

@@ -1,12 +1,18 @@
{ inputs, pkgs, config, ... }: {
inputs,
pkgs,
config,
...
}:
let let
in { in
home.packages = [ {
inputs.neovim-nightly-overlay.packages.${pkgs.system}.default home.packages = [
]; inputs.neovim-nightly-overlay.packages.${pkgs.system}.default
xdg.configFile."nvim" = { ];
recursive = true; xdg.configFile."nvim" = {
source = config.lib.file.mkOutOfStoreSymlink "/home/doloro/dotfiles/nvim"; recursive = true;
}; source = config.lib.file.mkOutOfStoreSymlink "/home/doloro/dotfiles/nvim";
};
} }

View File

@@ -1,4 +1,5 @@
{ inputs, pkgs, ... }:{ { inputs, pkgs, ... }:
{
imports = [ imports = [
inputs.nixvim.homeModules.nixvim inputs.nixvim.homeModules.nixvim
]; ];
@@ -20,7 +21,7 @@
vimPlugins.mini-completion vimPlugins.mini-completion
vimPlugins.mini-comment vimPlugins.mini-comment
vimPlugins.melange-nvim vimPlugins.melange-nvim
vimPlugins.telescope-file-browser-nvim vimPlugins.telescope-file-browser-nvim
]; ];
opts = { opts = {
number = true; number = true;

View File

@@ -1,3 +1,4 @@
{ inputs, ... }: { { inputs, ... }:
{
} }

View File

@@ -1,16 +1,17 @@
{ inputs, pkgs, ... }: { { inputs, pkgs, ... }:
programs = { {
obs-studio = { programs = {
enable = true; obs-studio = {
package = ( enable = true;
pkgs.obs-studio.override { package = (
cudaSupport = true; pkgs.obs-studio.override {
} cudaSupport = true;
); }
plugins = with pkgs.obs-studio-plugins; [ );
obs-pipewire-audio-capture plugins = with pkgs.obs-studio-plugins; [
obs-vkcapture obs-pipewire-audio-capture
]; obs-vkcapture
}; ];
}; };
};
} }

View File

@@ -1,24 +1,30 @@
{ inputs, config, pkgs, system, ... }: {
inputs,
config,
pkgs,
system,
...
}:
let let
pkg = inputs.quickshell.packages.${system}.quickshell; pkg = inputs.quickshell.packages.${system}.quickshell;
in in
{ {
xdg.configFile."quickshell" = { xdg.configFile."quickshell" = {
recursive = true; recursive = true;
source = config.lib.file.mkOutOfStoreSymlink "/home/doloro/dotfiles/quickshell/"; source = config.lib.file.mkOutOfStoreSymlink "/home/doloro/dotfiles/quickshell/";
}; };
systemd.user.services.quickshell = { systemd.user.services.quickshell = {
Unit = { Unit = {
Description = "Quickshell daemon"; Description = "Quickshell daemon";
After = [ "hyprland-session.target" ]; After = [ "hyprland-session.target" ];
};
Install = {
WantedBy = [ "default.target" ];
};
Service = {
ExecStart = "${pkg}/bin/quickshell";
Restart = "on-failure";
RestartSec = "5s";
};
}; };
Install = {
WantedBy = [ "default.target" ];
};
Service = {
ExecStart = "${pkg}/bin/quickshell";
Restart = "on-failure";
RestartSec = "5s";
};
};
} }

View File

@@ -1,28 +1,29 @@
{ inputs, pkgs, ... }: { inputs, pkgs, ... }:
let let
spicePkgs = inputs.spicetify-nix.legacyPackages.${pkgs.stdenv.hostPlatform.system}; spicePkgs = inputs.spicetify-nix.legacyPackages.${pkgs.stdenv.hostPlatform.system};
in { in
imports = [ {
inputs.spicetify-nix.homeManagerModules.default imports = [
]; inputs.spicetify-nix.homeManagerModules.default
programs.spicetify = { ];
enable = true; programs.spicetify = {
enable = true;
enabledExtensions = with spicePkgs.extensions; [ enabledExtensions = with spicePkgs.extensions; [
adblock adblock
hidePodcasts hidePodcasts
shuffle # shuffle+ (special characters are sanitized out of extension names) shuffle # shuffle+ (special characters are sanitized out of extension names)
]; ];
enabledCustomApps = with spicePkgs.apps; [ enabledCustomApps = with spicePkgs.apps; [
newReleases newReleases
# ncsVisualizer # ncsVisualizer
]; ];
enabledSnippets = with spicePkgs.snippets; [ enabledSnippets = with spicePkgs.snippets; [
# rotatingCoverart # rotatingCoverart
pointer pointer
]; ];
theme = spicePkgs.themes.catppuccin; theme = spicePkgs.themes.catppuccin;
colorScheme = "mocha"; colorScheme = "mocha";
}; };
} }

View File

@@ -29,8 +29,11 @@
keyutils keyutils
mangohud mangohud
gamemode gamemode
lsof lsof
(gamescope.overrideAttrs { enableWsi = true; NIX_CFLAGS_COMPILE = ["-fno-fast-math"]; }) (gamescope.overrideAttrs {
enableWsi = true;
NIX_CFLAGS_COMPILE = [ "-fno-fast-math" ];
})
]; ];
}; };
}; };

View File

@@ -1,4 +1,5 @@
{ inputs, ... }: { { inputs, ... }:
{
services.dunst = { services.dunst = {
settings = { settings = {
global = { global = {

View File

@@ -1,4 +1,9 @@
{ inputs, pkgs, fetchFromGitHub, ... }: {
inputs,
pkgs,
fetchFromGitHub,
...
}:
{ {
programs.tmux = { programs.tmux = {
enable = true; enable = true;
@@ -7,9 +12,9 @@
minimal-tmux-status minimal-tmux-status
]; ];
extraConfig = '' extraConfig = ''
set-option -g default-terminal "tmux-256color" set-option -g default-terminal "tmux-256color"
set -g status-bg black set -g status-bg black
set -g status-fg white set -g status-fg white
''; '';
}; };
} }

View File

@@ -1,16 +1,19 @@
{ pkgs, lib, ... }: { pkgs, lib, ... }:
let let
arrpc_overlay = (self: super: { arrpc_overlay = (
arrpc = super.arrpc.overrideAttrs (prev: { self: super: {
version = "git"; arrpc = super.arrpc.overrideAttrs (prev: {
src = pkgs.fetchFromGitHub { version = "git";
owner = "Doloro1978"; src = pkgs.fetchFromGitHub {
repo = "arrpc"; owner = "Doloro1978";
tag = "tag3"; repo = "arrpc";
sha256 = "sha256-9Tnw/BmIAA+RPAfhHFv0kenrRdoxJuUw3iRjKykGxdE="; tag = "tag3";
}; sha256 = "sha256-9Tnw/BmIAA+RPAfhHFv0kenrRdoxJuUw3iRjKykGxdE=";
}); };
}); });
in { }
nixpkgs.overlays = [ arrpc_overlay ]; );
in
{
nixpkgs.overlays = [ arrpc_overlay ];
} }