inputs: { pkgs, lib, config, ... }: let # nix-software-center = inputs.nix-software-center.packages.${pkgs.system}.nix-software-center; /* doom-emacs = inputs.nix-doom-emacs.packages.${pkgs.system}.default.override { doomPrivateDir = ./doom.d; }; */ # eww-git = inputs.eww.packages.${pkgs.system}.default; emacs-package = (pkgs.emacsWithPackagesFromUsePackage rec{ package = pkgs.emacs-gtk; /* config = '' (setq standard-indent 2) (load (expand-file-name "~/.quicklisp/slime-helper.el")) (setq inferior-lisp-program "sbcl") (set-face-attribute 'default nil :height 120) (use-package parinfer-rust-mode :hook emacs-lisp-mode) ''; */ config = builtins.readFile ./configs/emacs/init.el; # defaultInitFile = ./configs/emacs/init.el; defaultInitFile = pkgs.writeText "default.el" config; /* '' (setq standard-indent 2) (load (expand-file-name "~/.quicklisp/slime-helper.el")) (setq inferior-lisp-program "sbcl") (set-face-attribute 'default nil :height 120) '';*/ extraEmacsPackages = epkgs: with epkgs; [ use-package nix-mode slime parinfer-rust-mode sly # spacemacs-theme paredit evil magit org mastodon eshell-z bshell eat gruvbox-theme uwu-theme irony hotfuzz vertico marginalia consult corfu bind-key highlight-indent-guides doom-modeline which-key treesit-grammars.with-all-grammars jabber ]; }); helix = inputs.helix.packages.${pkgs.system}.default; nixpkgs-master-pkgs = inputs.nixpkgs-master.legacyPackages.${pkgs.system}; # nixpkgs-master = inputs.nixpkgs-master; nixpkgs-master = import inputs.nixpkgs-master { inherit (config.nixpkgs) config overlays; inherit (pkgs) system; }; hypr-contrib = inputs.hypr-contrib.packages.${pkgs.system}; # nh = inputs.nix-but-gigachad.packages.${pkgs.system}.default; # IT GOT UPSTREAMED WOOO in { imports = [ inputs.hyprland.homeManagerModules.default inputs.nix-index-database.hmModules.nix-index ]; # Allow unfree packages nixpkgs = { overlays = [ (import inputs.emacs-overlay) ]; config = { allowUnfree = true; allowUnfreePredicate = (pkg: true); permittedInsecurePackages = [ "electron-21.4.0" "electron-24.8.6" "electron-25.9.0" ]; packageOverrides = pkgs: { nur = import (builtins.fetchTarball "https://github.com/nix-community/NUR/archive/master.tar.gz") { inherit pkgs; }; }; }; }; /* nixpkgs-master.config = { allowUnfree = true; allowUnfreePredicate = (pkg: true); permittedInsecurePackages = [ "electron-21.4.0" ]; }; */ home = { username = "ultra"; homeDirectory = "/home/ultra/"; stateVersion = "22.11"; packages = with pkgs; [ firefox tor-browser-bundle-bin kate distrobox fish nushell git bat gnupg1 zoom-us google-chrome zoxide starship atuin clang (lib.hiPrio gcc) eza gnumake plasma-browser-integration libsForQt5.bismuth whatsapp-for-linux signal-desktop nodejs onlyoffice-bin drawio xclip steam packagekit # armcord # it has a CVE rnote obsidian gnome-obfuscate microsoft-edge # doom-emacs ripgrep w3m github-cli mc # zellij (nixpkgs-master-pkgs.zellij) lsd tealdeer fd broot fzf bottom hyperfine procs httpie curlie xh du-dust duf virtualbox spotify appimage-run xivlauncher # No longer fails to build! # nixpkgs-master.xivlauncher # It's fixed on unstable, as well as master, but the unstable input doesn't get updated every 5 picoseconds prismlauncher ghostwriter skypeforlinux man-pages ckan cool-retro-term wofi hyprpaper alacritty tofi dunst wl-clipboard polkit-kde-agent grim hypr-contrib.grimblast hypr-contrib.scratchpad kitty waybar /* (eww-git.override { withWayland = true; }) */ eww # (eww.override { withWayland = true; }) notify-desktop libnotify xdg-desktop-portal-hyprland jq libsForQt5.alligator thunderbird nh irssi syncthing # android-studio # literally proprietary bloat, I don't want that garbage on my system. flutter comic-mono screen amfora weechat filezilla fluffychat bitwarden akregator bitwarden # schildichat-desktop # apparently it uses a really old version of electron element-desktop xonsh kiwix htmlq lite heroic steam-run (lutris.override { extraPkgs = pkgs: [ pkgs.wine64Packages.stagingFull ]; }) waypipe electron-mail hydroxide jujutsu gparted xournalpp (lib.hiPrio netcat-gnu) nmap browsh beeper # huge thanks to the true chad that packaged this halloy mtpaint fluent-reader discord f1viewer vlc wineWowPackages.wayland blender vesktop ktailctl caddy floorp mpris-scrobbler sbcl clang-tools #emacs-package dino cinny-desktop (inputs.nix-inst.packages.${pkgs.system}.default) ]; file = { "emacs.d/everblush-theme.el".source = ./configs/emacs/everblush-theme.el; }; }; xdg = { configFile = { "emacs/init.el".source = ./configs/emacs/init.el; "emacs/everblush-theme.el".source = ./configs/emacs/everblush-theme.el; "hypr/hyprland.conf".source = ./configs/hyprland/hyprland.conf; "presets/user/everblush.json".source = ./configs/presets/everblush.json; }; }; programs = { emacs = { enable = true; package = emacs-package; /* extraConfig = '' (setq standard-indent 2) (load (expand-file-name "~/.quicklisp/slime-helper.el")) (setq inferior-lisp-program "sbcl") (set-face-attribute 'default nil :height 120) (use-package parinfer-rust-mode :hook emacs-lisp-mode) ''; */ extraConfig = builtins.readFile ./configs/emacs/init.el; }; home-manager.enable = true; # fish.enable = true; # Helix config helix = { enable = true; package = helix; languages = { language-server = with pkgs; { cpp.command = "${clang-tools}/bin/clangd"; c.command = "${clang-tools}/bin/clangd"; nix.command = "${nixd}/bin/nixd"; }; language = [ { name = "cpp"; scope = "source.cpp"; indent = { tab-width = 4; unit = " "; }; # language-server.command = "clangd"; file-types = [ "cpp" ]; } { name = "c"; scope = "source.c"; indent = { tab-width = 4; unit = " "; }; # language-server.command = "clangd"; file-types = [ "c" ]; } { name = "nix"; scope = "source.nix"; indent = { tab-width = 4; unit = " "; }; # language-server.command = "nil"; file-types = [ "nix" ]; } ]; }; settings = { theme = "everblush"; editor = { line-number = "relative"; mouse = true; cursor-shape = { insert = "bar"; normal = "block"; select = "underline"; }; file-picker.hidden = false; auto-save = true; true-color = true; }; }; }; vscode = { enable = true; package = pkgs.vscodium; mutableExtensionsDir = false; extensions = with pkgs.vscode-extensions; [ enkia.tokyo-night # Tokyo Night theme arcticicestudio.nord-visual-studio-code # Nord theme jnoortheen.nix-ide # Nix stuff # eamodio.gitlens # Giga git, but with some paid stuff kahole.magit # Giga git bmalehorn.vscode-fish # Fish in vscode ] ++ pkgs.vscode-utils.extensionsFromVscodeMarketplace [ { name = "hungry-delete"; publisher = "jasonlhy"; version = "1.7.0"; sha256 = "sha256-TDs6i0/o0j9XFLQvWze4iloa6yRXce/xIqd2CnA5nug="; } ]; userSettings = { nix = { serverPath = "nixd"; enableLanguageServer = true; }; editor = { fontLigatures = true; fontFamily = "JetBrainsMono Nerd Font"; cursorBlinking = "smooth"; cursorSmoothCaretAnimation = "on"; tabSize = 2; accessibilitySupport = "off"; }; workbench = { colorTheme = "Tokyo Night"; }; files = { autoSave = "on"; }; }; }; nix-index-database = { comma = { enable = true; }; }; }; services = { dunst.enable = false; emacs = { enable = true; package = emacs-package; client = { enable = true; arguments = [ "-c" ]; }; }; }; systemd.user = { services = { dunst.Unit = { After = lib.mkForce []; WantedBy = [ "hyprland-session.target" ]; PartOf = lib.mkForce [ "hyprland-session.target" ]; }; }; }; wayland.windowManager.hyprland = { enable = true; package = pkgs.hyprland; extraConfig = builtins.readFile ./configs/hyprland/hyprland.conf; systemdIntegration = true; }; }