diff --git a/config/hypr/hyprland.conf b/config/hypr/hyprland.conf index f4e4a11..d733010 100644 --- a/config/hypr/hyprland.conf +++ b/config/hypr/hyprland.conf @@ -286,6 +286,7 @@ bindl = , XF86AudioPause, exec, playerctl play-pause bindl = , XF86AudioPlay, exec, playerctl play-pause bindl = , XF86AudioPrev, exec, playerctl previous + ############################## ### WINDOWS AND WORKSPACES ### ############################## @@ -293,11 +294,35 @@ bindl = , XF86AudioPrev, exec, playerctl previous # See https://wiki.hypr.land/Configuring/Window-Rules/ for more # See https://wiki.hypr.land/Configuring/Workspace-Rules/ for workspace rules -# Example windowrule -# windowrule = float,class:^(kitty)$,title:^(kitty)$ +# Example windowrules that are useful -# Ignore maximize requests from apps. You'll probably like this. -windowrule = suppressevent maximize, class:.* +windowrule { + # Ignore maximize requests from all apps. You'll probably like this. + name = suppress-maximize-events + match:class = .* -# Fix some dragging issues with XWayland -windowrule = nofocus,class:^$,title:^$,xwayland:1,floating:1,fullscreen:0,pinned:0 + suppress_event = maximize +} + +windowrule { + # Fix some dragging issues with XWayland + name = fix-xwayland-drags + match:class = ^$ + match:title = ^$ + match:xwayland = true + match:float = true + match:fullscreen = false + match:pin = false + + no_focus = true +} + +# Hyprland-run windowrule +windowrule { + name = move-hyprland-run + + match:class = hyprland-run + + move = 20 monitor_h-120 + float = yes +} diff --git a/config/hypr/hyprpaper.conf b/config/hypr/hyprpaper.conf index a73b826..9dcc679 100644 --- a/config/hypr/hyprpaper.conf +++ b/config/hypr/hyprpaper.conf @@ -1,2 +1,7 @@ preload = /home/xory/wallpaper.png wallpaper = ,/home/xory/wallpaper.png + +wallpaper { + monitor = eDP-2 + path = ~/wallpaper.png +} diff --git a/config/hypr/hyprsunset.conf b/config/hypr/hyprsunset.conf index 937bd95..2f359e5 100644 --- a/config/hypr/hyprsunset.conf +++ b/config/hypr/hyprsunset.conf @@ -11,12 +11,6 @@ profile { gamma = 0.8 } -profile { - time = 24:00 - temperature = 1500 - gamma = 0.7 -} - profile { time = 6:00 identity = true diff --git a/config/nvim/init.lua b/config/nvim/init.lua index 51aa647..925ef68 100644 --- a/config/nvim/init.lua +++ b/config/nvim/init.lua @@ -84,10 +84,9 @@ cmp.setup({ local capabilities = require("cmp_nvim_lsp").default_capabilities() -local lspconfig = require('lspconfig') -local servers = { "rust_analyzer", "pylsp", "biome", "eslint", "ccls" } -for _, lsp in ipairs(servers) do - lspconfig[lsp].setup({ - capabilities = capabilities, - }) -end +vim.lsp.enable("rust_analyzer") +vim.lsp.enable("pylsp") +vim.lsp.enable("biome") +vim.lsp.enable("eslint") +vim.lsp.enable("ccls") + diff --git a/configuration.nix b/configuration.nix index 4c7102d..47f4168 100644 --- a/configuration.nix +++ b/configuration.nix @@ -11,6 +11,16 @@ boot.initrd.systemd.enable = true; boot.loader.efi.canTouchEfiVariables = true; boot.supportedFilesystems = [ "zfs "]; + + boot.kernelParams = [ + "quiet" + "splash" # plymouth stuff + "udev.log_priority=3" + "rd.systemd.show_status=auto" + "boot.shell_on_fail" # good because we're using quiet mode + "net.ifnames=0" # personal opinion + ]; + boot.kernel.sysctl."kernel.sysrq" = 1; # mostly for REISUB boot.initrd.systemd.services.rollback = { description = "Rollback ZFS root"; @@ -25,6 +35,22 @@ }; boot.kernelPackages = pkgs.linuxPackages; + + # Plymouth + boot.plymouth = { + enable = true; + theme = "square"; + themePackages = with pkgs; [ + (adi1090x-plymouth-themes.override { + selected_themes = [ "square" ]; + }) + ]; + }; + + # Silent boot for Plymouth + boot.consoleLogLevel = 3; + boot.initrd.verbose = false; + environment.persistence."/persist" = { enable = true; hideMounts = true; @@ -36,6 +62,7 @@ "/var/lib/ollama-models" "/var/lib/flatpak" "/var/lib/tailscale" + "/var/lib/syncthing" "/etc/NetworkManager/system-connections" "/etc/ssh" ]; diff --git a/flake.lock b/flake.lock index a0a6c6d..518618c 100644 --- a/flake.lock +++ b/flake.lock @@ -102,6 +102,22 @@ "type": "github" } }, + "nixpkgs_2": { + "locked": { + "lastModified": 1766651565, + "narHash": "sha256-QEhk0eXgyIqTpJ/ehZKg9IKS7EtlWxF3N7DXy42zPfU=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "3e2499d5539c16d0d173ba53552a4ff8547f4539", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, "root": { "inputs": { "disko": "disko", @@ -109,7 +125,42 @@ "impermanence": "impermanence", "nixos-hardware": "nixos-hardware", "nixpkgs": "nixpkgs", - "nixpkgs-stable": "nixpkgs-stable" + "nixpkgs-stable": "nixpkgs-stable", + "spicetify-nix": "spicetify-nix" + } + }, + "spicetify-nix": { + "inputs": { + "nixpkgs": "nixpkgs_2", + "systems": "systems" + }, + "locked": { + "lastModified": 1767195736, + "narHash": "sha256-0xvPSbhIGeJzsJXNTkgJ3PjwdVItKm85wzYKA9NmSzI=", + "owner": "Gerg-L", + "repo": "spicetify-nix", + "rev": "465adc0ab6ff0c4b9b1db1c6e7fd7eeb553b3261", + "type": "github" + }, + "original": { + "owner": "Gerg-L", + "repo": "spicetify-nix", + "type": "github" + } + }, + "systems": { + "locked": { + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default", + "type": "github" } } }, diff --git a/flake.nix b/flake.nix index 3d8cef2..c85379c 100644 --- a/flake.nix +++ b/flake.nix @@ -14,6 +14,8 @@ home-manager.inputs.nixpkgs.follows = "nixpkgs"; impermanence.url = "github:nix-community/impermanence"; + + spicetify-nix.url = "github:Gerg-L/spicetify-nix"; }; outputs = diff --git a/home.nix b/home.nix index b08df03..19638ea 100644 --- a/home.nix +++ b/home.nix @@ -1,5 +1,7 @@ { config, pkgs, inputs, ... }: { + + imports = [ inputs.spicetify-nix.homeManagerModules.default ]; home.username = "xory"; home.homeDirectory = "/home/xory"; @@ -89,6 +91,7 @@ enableCompletion = true; shellAliases = { "rebuild" = "sudo nixos-rebuild switch --flake ~/dots"; + "spotify" = "${pkgs.firejail}/bin/firejail ${config.programs.spicetify.spicedSpotify}/bin/spotify"; }; syntaxHighlighting.enable = true; }; @@ -101,21 +104,43 @@ name = "Inconsolata Nerd Font"; package = pkgs.nerd-fonts.inconsolata; }; - settings.background_opacity = 0.8; + settings.background_opacity = 0.95; + settings.window_padding_width = 5; + }; + + programs.spicetify = + let + spicePkgs = inputs.spicetify-nix.legacyPackages.${pkgs.stdenv.hostPlatform.system}; + in + { + enable = true; + + theme = spicePkgs.themes.catppuccin; + colorScheme = "mocha"; + + enabledExtensions = with spicePkgs.extensions; [ + hidePodcasts + shuffle + betterGenres + beautifulLyrics + ]; + + enabledCustomApps = with spicePkgs.apps; [ + newReleases + ncsVisualizer + ]; }; - # TODO: Fix up Neovim - # programs.vscode = { - # enable = true; - # extensions = with pkgs.vscode-extensions; [ - # catppuccin.catppuccin-vsc - # catppuccin.catppuccin-vsc-icons - # dbaeumer.vscode-eslint - # rust-lang.rust-analyzer - # ms-python.python - # biomejs.biome - # ]; - # }; + # firejail + xdg.desktopEntries.spotify = { + name = "Spotify"; + genericName = "Music Player"; + icon = "spotify-client"; + exec = "${pkgs.firejail}/bin/firejail ${config.programs.spicetify.spicedSpotify}/bin/spotify %U"; + terminal = false; + categories = [ "Audio" "Music" "Player" "AudioVideo" ]; + mimeType = [ "x-scheme-handler/spotify" ]; + }; wayland.windowManager.hyprland.enable = true; programs.waybar.enable = true;