diff --git a/assets/sddm-background.png b/assets/sddm-background.png new file mode 100644 index 0000000..62aa705 Binary files /dev/null and b/assets/sddm-background.png differ diff --git a/assets/user-icon.png b/assets/user-icon.png new file mode 100644 index 0000000..7422509 Binary files /dev/null and b/assets/user-icon.png differ diff --git a/configuration.nix b/configuration.nix index 8f881c2..a118294 100755 --- a/configuration.nix +++ b/configuration.nix @@ -8,7 +8,8 @@ imports = [ ./hardware-configuration.nix ./system/nvidia.nix - ./system/de/gdm.nix + # ./system/de/gdm.nix + ./system/de/sddm.nix ./system/de/hypr/hyprland.nix ./system/nfs.nix ./system/fonts.nix @@ -90,6 +91,13 @@ "wheel" ]; }; + # Set up my user icon + environment.etc."avatars/javi.png".source = ./assets/user-icon.png; + system.activationScripts.avatar = '' + mkdir -p /var/lib/AccountsService/icons + ln -sf /etc/avatars/javi.png /var/lib/AccountsService/icons/javi + ''; + # Allow unfree packages nixpkgs.config.allowUnfree = true; @@ -97,7 +105,6 @@ # $ nix search wget environment.systemPackages = with pkgs; [ brave - neovim git openssh pkgs.ntfs3g diff --git a/flake.lock b/flake.lock index b33171b..6e4cfe5 100755 --- a/flake.lock +++ b/flake.lock @@ -83,7 +83,81 @@ "type": "github" } }, + "flake-compat": { + "flake": false, + "locked": { + "lastModified": 1747046372, + "narHash": "sha256-CIVLLkVgvHYbgI2UpXvIIBJ12HWgX+fjA8Xf8PUmqCY=", + "owner": "edolstra", + "repo": "flake-compat", + "rev": "9100a0f413b0c601e0533d1d94ffd501ce2e7885", + "type": "github" + }, + "original": { + "owner": "edolstra", + "repo": "flake-compat", + "type": "github" + } + }, + "flake-compat_2": { + "flake": false, + "locked": { + "lastModified": 1747046372, + "narHash": "sha256-CIVLLkVgvHYbgI2UpXvIIBJ12HWgX+fjA8Xf8PUmqCY=", + "owner": "edolstra", + "repo": "flake-compat", + "rev": "9100a0f413b0c601e0533d1d94ffd501ce2e7885", + "type": "github" + }, + "original": { + "owner": "edolstra", + "repo": "flake-compat", + "type": "github" + } + }, "flake-parts": { + "inputs": { + "nixpkgs-lib": [ + "neovim-nightly-overlay", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1754487366, + "narHash": "sha256-pHYj8gUBapuUzKV/kN/tR3Zvqc7o6gdFB9XKXIp1SQ8=", + "owner": "hercules-ci", + "repo": "flake-parts", + "rev": "af66ad14b28a127c5c0f3bbb298218fc63528a18", + "type": "github" + }, + "original": { + "owner": "hercules-ci", + "repo": "flake-parts", + "type": "github" + } + }, + "flake-parts_2": { + "inputs": { + "nixpkgs-lib": [ + "neovim-nightly-overlay", + "hercules-ci-effects", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1751413152, + "narHash": "sha256-Tyw1RjYEsp5scoigs1384gIg6e0GoBVjms4aXFfRssQ=", + "owner": "hercules-ci", + "repo": "flake-parts", + "rev": "77826244401ea9de6e3bac47c2db46005e1f30b5", + "type": "github" + }, + "original": { + "id": "flake-parts", + "type": "indirect" + } + }, + "flake-parts_3": { "inputs": { "nixpkgs-lib": [ "stylix", @@ -120,6 +194,51 @@ "type": "github" } }, + "git-hooks": { + "inputs": { + "flake-compat": "flake-compat_2", + "gitignore": "gitignore", + "nixpkgs": [ + "neovim-nightly-overlay", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1754416808, + "narHash": "sha256-c6yg0EQ9xVESx6HGDOCMcyRSjaTpNJP10ef+6fRcofA=", + "owner": "cachix", + "repo": "git-hooks.nix", + "rev": "9c52372878df6911f9afc1e2a1391f55e4dfc864", + "type": "github" + }, + "original": { + "owner": "cachix", + "repo": "git-hooks.nix", + "type": "github" + } + }, + "gitignore": { + "inputs": { + "nixpkgs": [ + "neovim-nightly-overlay", + "git-hooks", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1709087332, + "narHash": "sha256-HG2cCnktfHsKV0s4XW83gU3F57gaTljL9KNSuG6bnQs=", + "owner": "hercules-ci", + "repo": "gitignore.nix", + "rev": "637db329424fd7e46cf4185293b9cc8c88c95394", + "type": "github" + }, + "original": { + "owner": "hercules-ci", + "repo": "gitignore.nix", + "type": "github" + } + }, "gnome-shell": { "flake": false, "locked": { @@ -137,6 +256,28 @@ "type": "github" } }, + "hercules-ci-effects": { + "inputs": { + "flake-parts": "flake-parts_2", + "nixpkgs": [ + "neovim-nightly-overlay", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1752595130, + "narHash": "sha256-CNBgr4OZSuklGtNOa9CnTNo9+Xceqn/EDAC1Tc43fH8=", + "owner": "hercules-ci", + "repo": "hercules-ci-effects", + "rev": "5f2e09654b2e70ba643e41609d9f9b6640f22113", + "type": "github" + }, + "original": { + "owner": "hercules-ci", + "repo": "hercules-ci-effects", + "type": "github" + } + }, "home-manager": { "inputs": { "nixpkgs": [ @@ -175,6 +316,46 @@ "url": "https://gitgud.foo/thegrind/hypr-shell.git" } }, + "neovim-nightly-overlay": { + "inputs": { + "flake-compat": "flake-compat", + "flake-parts": "flake-parts", + "git-hooks": "git-hooks", + "hercules-ci-effects": "hercules-ci-effects", + "neovim-src": "neovim-src", + "nixpkgs": "nixpkgs_2", + "treefmt-nix": "treefmt-nix" + }, + "locked": { + "lastModified": 1755033072, + "narHash": "sha256-KQ5qgugljc44XtEVmGzRdBwTDIqARCM3b/9dRsEBZIk=", + "owner": "nix-community", + "repo": "neovim-nightly-overlay", + "rev": "3cf910c2727eed304b8aabcfddc109e0c0371bfb", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "neovim-nightly-overlay", + "type": "github" + } + }, + "neovim-src": { + "flake": false, + "locked": { + "lastModified": 1754951943, + "narHash": "sha256-jDrRkJQ+iDDAZn+8bi6lxumSNUwgdyFgJVTzVwz1lIM=", + "owner": "neovim", + "repo": "neovim", + "rev": "a26cdcb20e68f38f636b14a03c3f9657f5c74f67", + "type": "github" + }, + "original": { + "owner": "neovim", + "repo": "neovim", + "type": "github" + } + }, "nixpkgs": { "locked": { "lastModified": 1754725699, @@ -192,6 +373,22 @@ } }, "nixpkgs_2": { + "locked": { + "lastModified": 1754800730, + "narHash": "sha256-HfVZCXic9XLBgybP0318ym3cDnGwBs/+H5MgxFVYF4I=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "641d909c4a7538f1539da9240dedb1755c907e40", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixpkgs-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_3": { "locked": { "lastModified": 1754498491, "narHash": "sha256-erbiH2agUTD0Z30xcVSFcDHzkRvkRXOQ3lb887bcVrs=", @@ -236,7 +433,8 @@ "inputs": { "home-manager": "home-manager", "hyprshell": "hyprshell", - "nixpkgs": "nixpkgs_2", + "neovim-nightly-overlay": "neovim-nightly-overlay", + "nixpkgs": "nixpkgs_3", "stylix": "stylix" } }, @@ -247,7 +445,7 @@ "base16-helix": "base16-helix", "base16-vim": "base16-vim", "firefox-gnome-theme": "firefox-gnome-theme", - "flake-parts": "flake-parts", + "flake-parts": "flake-parts_3", "gnome-shell": "gnome-shell", "nixpkgs": [ "nixpkgs" @@ -369,6 +567,27 @@ "repo": "base16-zed", "type": "github" } + }, + "treefmt-nix": { + "inputs": { + "nixpkgs": [ + "neovim-nightly-overlay", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1754847726, + "narHash": "sha256-2vX8QjO5lRsDbNYvN9hVHXLU6oMl+V/PsmIiJREG4rE=", + "owner": "numtide", + "repo": "treefmt-nix", + "rev": "7d81f6fb2e19bf84f1c65135d1060d829fae2408", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "treefmt-nix", + "type": "github" + } } }, "root": "root", diff --git a/flake.nix b/flake.nix index 7138bb1..d4c5160 100755 --- a/flake.nix +++ b/flake.nix @@ -12,6 +12,7 @@ url = "github:danth/stylix"; inputs.nixpkgs.follows = "nixpkgs"; }; + neovim-nightly-overlay.url = "github:nix-community/neovim-nightly-overlay"; }; outputs = @@ -23,6 +24,9 @@ let system = "x86_64-linux"; pkgs = nixpkgs.legacyPackages.${system}; + overlays = [ + inputs.neovim-nightly-overlay.overlays.default + ]; in { nixosConfigurations.default = nixpkgs.lib.nixosSystem { diff --git a/home.nix b/home.nix index f840ae5..56786c6 100755 --- a/home.nix +++ b/home.nix @@ -13,6 +13,7 @@ ./home/git.nix ./home/hyprland.nix ./home/util/darkmode.nix + ./home/neovim.nix ]; nixpkgs.config.allowUnfree = true; # Home Manager needs a bit of information about you and the paths it should @@ -46,7 +47,6 @@ # Dev tools jetbrains.datagrip vscode - neovim nixfmt # Nix formatting pkgs.libsForQt5.full # QML formatting (for working on quickshell) diff --git a/home/hyprland.nix b/home/hyprland.nix index a9b3834..e77d97a 100644 --- a/home/hyprland.nix +++ b/home/hyprland.nix @@ -32,6 +32,9 @@ # Desktop env hyprpanel + + # Utility + wl-clipboard ]; # Important for certain apps working diff --git a/home/neovim.nix b/home/neovim.nix new file mode 100644 index 0000000..6cd5da6 --- /dev/null +++ b/home/neovim.nix @@ -0,0 +1,13 @@ +# neovim.nix +{ + config, + pkgs, + inputs, + ... +}: + +{ + home.packages = [ + inputs.neovim-nightly-overlay.packages.${pkgs.system}.default + ]; +} diff --git a/home/shell.nix b/home/shell.nix index 015609e..12ab9cc 100755 --- a/home/shell.nix +++ b/home/shell.nix @@ -51,7 +51,7 @@ home = "cd ~"; projects = "cd ~/projects"; co = "code ."; - clipboard = "xclip -selection clipboard"; + clipboard = "wl-copy"; # Jigsaw jig = "vendor/bin/jigsaw"; diff --git a/home/starship.nix b/home/starship.nix index f2010cc..64900fd 100755 --- a/home/starship.nix +++ b/home/starship.nix @@ -14,171 +14,31 @@ enableBashIntegration = true; enableZshIntegration = true; - # settings = { - # # Main prompt format - # format = '' - # $username$hostname$directory$git_branch$git_status$nodejs$php$go$python$docker_context$nix_shell - # $character - # ''; - # - # # Right side format - # right_format = "$cmd_duration$time"; - # - # # Character (prompt indicator) - # character = { - # success_symbol = "[❯](bold green)"; - # error_symbol = "[❯](bold red)"; - # vicmd_symbol = "[❮](bold yellow)"; - # }; - # - # # Directory - # directory = { - # style = "bold cyan"; - # truncation_length = 3; - # truncate_to_repo = false; - # format = "[$path]($style)[$lock_symbol]($lock_style) "; - # }; - # - # # Git branch - # git_branch = { - # style = "bold purple"; - # format = "on [$symbol$branch]($style) "; - # symbol = " "; - # }; - # - # # Git status - # git_status = { - # style = "red"; - # ahead = "⇡\${count}"; - # diverged = "⇕⇡\${ahead_count}⇣\${behind_count}"; - # behind = "⇣\${count}"; - # conflicted = "="; - # deleted = "✘"; - # modified = "!"; - # renamed = "»"; - # staged = "+"; - # stashed = "$"; - # untracked = "?"; - # format = "([$all_status$ahead_behind]($style))"; - # }; - # - # # Username - # username = { - # style_user = "bold yellow"; - # style_root = "bold red"; - # format = "[$user]($style) "; - # disabled = false; - # show_always = false; - # }; - # - # # Hostname - # hostname = { - # ssh_only = false; - # format = "[@$hostname]($style) "; - # style = "bold green"; - # disabled = true; - # }; - # - # # Language versions - # nodejs = { - # style = "bold green"; - # format = "via [$symbol($version)]($style) "; - # symbol = " "; - # detect_extensions = ["js" "mjs" "cjs" "ts" "tsx" "vue"]; - # detect_files = ["package.json" "package-lock.json" "yarn.lock"]; - # }; - # - # php = { - # style = "bold blue"; - # format = "via [$symbol($version)]($style) "; - # symbol = " "; - # detect_extensions = ["php"]; - # detect_files = ["composer.json" "composer.lock"]; - # }; - # - # go = { - # style = "bold cyan"; - # format = "via [$symbol($version)]($style) "; - # symbol = " "; - # detect_extensions = ["go"]; - # detect_files = ["go.mod" "go.sum"]; - # }; - # - # python = { - # style = "bold yellow"; - # format = "via [$symbol$pyenv_prefix($version)]($style) "; - # symbol = " "; - # detect_extensions = ["py"]; - # detect_files = ["requirements.txt" "pyproject.toml" "Pipfile"]; - # }; - # - # # Docker - # docker_context = { - # style = "blue bold"; - # format = "via [$symbol$context]($style) "; - # symbol = " "; - # only_with_files = true; - # detect_files = ["docker-compose.yml" "docker-compose.yaml" "Dockerfile"]; - # }; - # - # # Nix shell - # nix_shell = { - # style = "bold blue"; - # format = "via [$symbol$state( \\($name\\))]($style) "; - # symbol = "❄️ "; - # impure_msg = "[impure shell](bold red)"; - # pure_msg = "[pure shell](bold green)"; - # unknown_msg = "[unknown shell](bold yellow)"; - # }; - # - # # Command duration - # cmd_duration = { - # min_time = 2000; - # style = "bold yellow"; - # format = "took [$duration]($style) "; - # }; - # - # # Time - # time = { - # disabled = false; - # style = "bold white"; - # format = "[$time]($style)"; - # time_format = "%T"; - # utc_time_offset = "local"; - # }; - # - # # Status - # status = { - # style = "bg:blue"; - # symbol = "🔴"; - # format = "[\\[$symbol $common_meaning$signal_name$maybe_int\\]]($style) "; - # map_symbol = true; - # disabled = false; - # }; - # - # # Memory usage - # memory_usage = { - # disabled = false; - # threshold = 70; - # style = "bold dimmed white"; - # format = "via $symbol[${ram}( | ${swap})]($style) "; - # symbol = " "; - # }; - # - # # Package version - # package = { - # disabled = false; - # style = "208 bold"; - # format = "is [$symbol$version]($style) "; - # symbol = "📦 "; - # }; - # - # # AWS - # aws = { - # style = "bold orange"; - # format = "on [$symbol($profile)(\\($region\\))(\\[$duration\\])]($style) "; - # symbol = "☁️ "; - # }; - # }; + settings = { + character = { + success_symbol = "[Ǽ ❯](bold green)"; + error_symbol = "[Ǿ ❯](bold red)"; + }; + + directory = { + truncation_length = 9; + }; + + php = { + format = "[$symbol($version )]($style)"; + }; + + golang = { + format = "[$symbol($version )]($style)"; + }; + + nodejs = { + format = "[$symbol($version )]($style)"; + }; + + bun = { + format = "[$symbol($version )]($style)"; + }; + }; }; } diff --git a/system/de/sddm.nix b/system/de/sddm.nix index b7d79b0..37f14e5 100644 --- a/system/de/sddm.nix +++ b/system/de/sddm.nix @@ -4,12 +4,46 @@ inputs, ... }: +let + basePath = "/home/javi/Documents/wallpapers"; + wallpaper = "Fantasy-Mountain.png"; +in { - services.xserver = { + environment.etc."sddm-wallpaper.png".source = ../../assets/sddm-background.png; + environment.systemPackages = with pkgs; [ + (sddm-chili-theme.override { + themeConfig = { + background = "/etc/sddm-wallpaper.png"; + ScreenWidth = "3440"; + ScreenHeight = "1440"; + recursiveBlurLoops = 1; + recursiveBlurRadius = 10; + }; + }) + libsForQt5.qt5.qtgraphicaleffects + papirus-icon-theme + ]; + + programs.dconf.enable = true; + environment.etc."gtk-3.0/settings.ini".text = '' + [Settings] + gtk-icon-theme-name=Papirus + gtk-theme-name=Adwaita + gtk-cursor-theme-name=Adwaita + ''; + + services.displayManager.sddm = { enable = true; - displayManager.sddm = { - enable = true; - wayland.enable = true; - }; + wayland.enable = true; + theme = "chili"; + autoNumlock = true; + package = pkgs.libsForQt5.sddm; + extraPackages = with pkgs.libsForQt5.qt5; [ + qtgraphicaleffects + qtquickcontrols2 + qtquickcontrols + qtsvg + qtdeclarative # QtQuick core + ]; }; }