From 63888160ec5444e8a71b426ae96d9b660aa9b438 Mon Sep 17 00:00:00 2001 From: KaitoTLex Date: Tue, 3 Sep 2024 18:05:41 -0700 Subject: [PATCH] I NEED TECH SUPPORT --- configuration.nix | 164 ++++++++++++++++++ flake.lock | 337 +++++++++++++++++++++++++++++++++++++ flake.nix | 51 ++++++ hardware-configuration.nix | 44 +++++ home.nix | 335 ++++++++++++++++++++++++++++++++++++ nixvim.nix | 37 ++++ spicetify.nix | 24 +++ 7 files changed, 992 insertions(+) create mode 100644 configuration.nix create mode 100644 flake.lock create mode 100644 flake.nix create mode 100644 hardware-configuration.nix create mode 100644 home.nix create mode 100644 nixvim.nix create mode 100644 spicetify.nix diff --git a/configuration.nix b/configuration.nix new file mode 100644 index 0000000..d30733d --- /dev/null +++ b/configuration.nix @@ -0,0 +1,164 @@ +# Edit this configuration file to define what should be installed on +# your system. Help is available in the configuration.nix(5) man page +# and in the NixOS manual (accessible by running ‘nixos-help’). +{ + config, + pkgs, + ... +}: +let + nixvim = import (builtins.fetchGit { + url = "https://github.com/nix-community/nixvim"; + }); +in +{ + imports = [ + # Include the results of the hardware scan. + ./hardware-configuration.nix + nixvim.nixosModules.nixvim + ]; + + # Bootloader. + boot.loader.systemd-boot.enable = true; + boot.loader.efi.canTouchEfiVariables = true; + virtualisation.waydroid.enable = true; + networking.hostName = "nixos"; # Define your hostname. + # networking.wireless.enable = true; # Enables wireless support via wpa_supplicant. + + # Configure network proxy if necessary + # networking.proxy.default = "http://user:password@proxy:port/"; + # networking.proxy.noProxy = "127.0.0.1,localhost,internal.domain"; + + # Enable networking + networking.networkmanager.enable = true; + + # Set your time zone. + time.timeZone = "America/Los_Angeles"; + + # Select internationalisation properties. + i18n.defaultLocale = "en_US.UTF-8"; + + i18n.extraLocaleSettings = { + LC_ADDRESS = "en_US.UTF-8"; + LC_IDENTIFICATION = "en_US.UTF-8"; + LC_MEASUREMENT = "en_US.UTF-8"; + LC_MONETARY = "en_US.UTF-8"; + LC_NAME = "en_US.UTF-8"; + LC_NUMERIC = "en_US.UTF-8"; + LC_PAPER = "en_US.UTF-8"; + LC_TELEPHONE = "en_US.UTF-8"; + LC_TIME = "en_US.UTF-8"; + }; + # Enable the X11 windowing system. + # You can disable this if you're only using the Wayland session. + services.xserver.enable = true; + + # Enable the KDE Plasma Desktop Environment. + services.displayManager.sddm.enable = true; + services.desktopManager.plasma6.enable = true; + + # Configure keymap in X11 + services.xserver.xkb = { + layout = "us"; + variant = ""; + }; + + # Enable CUPS to print documents. + services.printing.enable = true; + # Fingerprint Driver + services.fprintd.enable = true; + security.pam.services.login.fprintAuth = true; + + # Enable sound with pipewire. + hardware.pulseaudio.enable = false; + security.rtkit.enable = true; + services.pipewire = { + enable = true; + alsa.enable = true; + alsa.support32Bit = true; + pulse.enable = true; + # If you want to use JACK applications, uncomment this + #jack.enable = true; + + # use the example session manager (no others are packaged yet so this is enabled by default, + # no need to redefine it in your config for now) + #media-session.enable = true; + }; + + hardware.bluetooth.enable = true; # enables support for Bluetooth + hardware.bluetooth.powerOnBoot = true; # powers up the default Bluetooth controller on boot + # Enable touchpad support (enabled default in most desktopManager). + # services.xserver.libinput.enable = true; + + # Define a user account. Don't forget to set a password with ‘passwd’. + users.users.kaitotlex = { + isNormalUser = true; + description = "KaitoTLex"; + extraGroups = ["networkmanager" "wheel"]; + packages = with pkgs; [ + kdePackages.kate + # thunderbird + ]; + }; + + # Install firefox. + programs.firefox.enable = true; + + # Allow unfree packages + nixpkgs.config.allowUnfree = true; + + # List packages installed in system profile. To search, run: + # $ nix search wget + environment.systemPackages = with pkgs; [ + pkgs.fprintd + # vim # Do not forget to add an editor to edit configuration.nix! The Nano editor is also installed by default. + # wget + ]; + + fonts = { + enableDefaultPackages = true; + fontconfig = { + defaultFonts = { + serif = ["Noto Serif"]; + sansSerif = ["Noto Sans"]; + }; + }; + packages = with pkgs; [ + noto-fonts + noto-fonts-cjk + noto-fonts-emoji + (nerdfonts.override {fonts = ["CascadiaCode"];}) + ]; + }; + + programs.fish.enable = true; + programs.nixvim.enable = true; + users.users.kaitotlex.shell = pkgs.fish; + + # Some programs need SUID wrappers, can be configured further or are + # started in user sessions. + # programs.mtr.enable = true; + # programs.gnupg.agent = { + # enable = true; + # enableSSHSupport = true; + # }; + + # List services that you want to enable: + + # Enable the OpenSSH daemon. + # services.openssh.enable = true; + + # Open ports in the firewall. + # networking.firewall.allowedTCPPorts = [ ... ]; + # networking.firewall.allowedUDPPorts = [ ... ]; + # Or disable the firewall altogether. + # networking.firewall.enable = false; + + # This value determines the NixOS release from which the default + # settings for stateful data, like file locations and database versions + # on your system were taken. It‘s perfectly fine and recommended to leave + # this value at the release version of the first install of this system. + # Before changing this value read the documentation for this option + # (e.g. man configuration.nix or on https://nixos.org/nixos/options.html). + system.stateVersion = "24.11"; # Did you read the comment? +} diff --git a/flake.lock b/flake.lock new file mode 100644 index 0000000..0ea297b --- /dev/null +++ b/flake.lock @@ -0,0 +1,337 @@ +{ + "nodes": { + "devshell": { + "inputs": { + "nixpkgs": [ + "nixvim", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1722113426, + "narHash": "sha256-Yo/3loq572A8Su6aY5GP56knpuKYRvM2a1meP9oJZCw=", + "owner": "numtide", + "repo": "devshell", + "rev": "67cce7359e4cd3c45296fb4aaf6a19e2a9c757ae", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "devshell", + "type": "github" + } + }, + "flake-compat": { + "locked": { + "lastModified": 1696426674, + "narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=", + "rev": "0f9255e01c2351cc7d116c072cb317785dd33b33", + "revCount": 57, + "type": "tarball", + "url": "https://api.flakehub.com/f/pinned/edolstra/flake-compat/1.0.1/018afb31-abd1-7bff-a5e4-cff7e18efb7a/source.tar.gz" + }, + "original": { + "type": "tarball", + "url": "https://flakehub.com/f/edolstra/flake-compat/1.tar.gz" + } + }, + "flake-compat_2": { + "flake": false, + "locked": { + "lastModified": 1696426674, + "narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=", + "owner": "edolstra", + "repo": "flake-compat", + "rev": "0f9255e01c2351cc7d116c072cb317785dd33b33", + "type": "github" + }, + "original": { + "owner": "edolstra", + "repo": "flake-compat", + "type": "github" + } + }, + "flake-parts": { + "inputs": { + "nixpkgs-lib": [ + "nixvim", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1722555600, + "narHash": "sha256-XOQkdLafnb/p9ij77byFQjDf5m5QYl9b2REiVClC+x4=", + "owner": "hercules-ci", + "repo": "flake-parts", + "rev": "8471fe90ad337a8074e957b69ca4d0089218391d", + "type": "github" + }, + "original": { + "owner": "hercules-ci", + "repo": "flake-parts", + "type": "github" + } + }, + "flake-utils": { + "inputs": { + "systems": "systems" + }, + "locked": { + "lastModified": 1710146030, + "narHash": "sha256-SZ5L6eA7HJ/nmkzGG7/ISclqe6oZdOZTNoesiInkXPQ=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "b1d9ab70662946ef0850d488da1c9019f3a9752a", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "git-hooks": { + "inputs": { + "flake-compat": [ + "nixvim", + "flake-compat" + ], + "gitignore": "gitignore", + "nixpkgs": [ + "nixvim", + "nixpkgs" + ], + "nixpkgs-stable": [ + "nixvim", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1724857454, + "narHash": "sha256-Qyl9Q4QMTLZnnBb/8OuQ9LSkzWjBU1T5l5zIzTxkkhk=", + "owner": "cachix", + "repo": "git-hooks.nix", + "rev": "4509ca64f1084e73bc7a721b20c669a8d4c5ebe6", + "type": "github" + }, + "original": { + "owner": "cachix", + "repo": "git-hooks.nix", + "type": "github" + } + }, + "gitignore": { + "inputs": { + "nixpkgs": [ + "nixvim", + "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" + } + }, + "home-manager": { + "inputs": { + "nixpkgs": [ + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1723986931, + "narHash": "sha256-Fy+KEvDQ+Hc8lJAV3t6leXhZJ2ncU5/esxkgt3b8DEY=", + "owner": "nix-community", + "repo": "home-manager", + "rev": "2598861031b78aadb4da7269df7ca9ddfc3e1671", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "home-manager", + "type": "github" + } + }, + "home-manager_2": { + "inputs": { + "nixpkgs": [ + "nixvim", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1724435763, + "narHash": "sha256-UNky3lJNGQtUEXT2OY8gMxejakSWPTfWKvpFkpFlAfM=", + "owner": "nix-community", + "repo": "home-manager", + "rev": "c2cd2a52e02f1dfa1c88f95abeb89298d46023be", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "home-manager", + "type": "github" + } + }, + "nix-darwin": { + "inputs": { + "nixpkgs": [ + "nixvim", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1724561770, + "narHash": "sha256-zv8C9RNa86CIpyHwPIVO/k+5TfM8ZbjGwOOpTe1grls=", + "owner": "lnl7", + "repo": "nix-darwin", + "rev": "ac5694a0b855a981e81b4d9f14052e3ff46ca39e", + "type": "github" + }, + "original": { + "owner": "lnl7", + "repo": "nix-darwin", + "type": "github" + } + }, + "nixpkgs": { + "locked": { + "lastModified": 0, + "narHash": "sha256-Z/ELQhrSd7bMzTO8r7NZgi9g5emh+aRKoCdaAv5fiO0=", + "path": "/nix/store/j8pbrsb3nybdap3hhg9kw0ffqd4rlbx6-source", + "type": "path" + }, + "original": { + "id": "nixpkgs", + "type": "indirect" + } + }, + "nixvim": { + "inputs": { + "devshell": "devshell", + "flake-compat": "flake-compat", + "flake-parts": "flake-parts", + "git-hooks": "git-hooks", + "home-manager": "home-manager_2", + "nix-darwin": "nix-darwin", + "nixpkgs": [ + "nixpkgs" + ], + "nuschtosSearch": "nuschtosSearch", + "treefmt-nix": "treefmt-nix" + }, + "locked": { + "lastModified": 1725223906, + "narHash": "sha256-f6wliEr+oLzKxgJxgkf1bCebmDosq2l8RujIueQK3Qk=", + "owner": "nix-community", + "repo": "nixvim", + "rev": "2b30ee87031fb40f0f894de00c23ea41714d940e", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "nixvim", + "type": "github" + } + }, + "nuschtosSearch": { + "inputs": { + "flake-utils": "flake-utils", + "nixpkgs": [ + "nixvim", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1724584782, + "narHash": "sha256-7FfHv7b1jwMPSu9SPY9hdxStk8E6EeSwzqdvV69U4BM=", + "owner": "NuschtOS", + "repo": "search", + "rev": "5a08d691de30b6fc28d58ce71a5e420f2694e087", + "type": "github" + }, + "original": { + "owner": "NuschtOS", + "repo": "search", + "type": "github" + } + }, + "root": { + "inputs": { + "home-manager": "home-manager", + "nixpkgs": "nixpkgs", + "nixvim": "nixvim", + "spicetify": "spicetify" + } + }, + "spicetify": { + "inputs": { + "flake-compat": "flake-compat_2", + "nixpkgs": [ + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1724818600, + "narHash": "sha256-7i8zqLTds2bXs6n/2ucSJdmKTzhajCktQ2WWFOVW3x0=", + "owner": "Gerg-L", + "repo": "spicetify-nix", + "rev": "c8050c21e2e61efe0ac2d423eac9062c62bb6633", + "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" + } + }, + "treefmt-nix": { + "inputs": { + "nixpkgs": [ + "nixvim", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1724833132, + "narHash": "sha256-F4djBvyNRAXGusJiNYInqR6zIMI3rvlp6WiKwsRISos=", + "owner": "numtide", + "repo": "treefmt-nix", + "rev": "3ffd842a5f50f435d3e603312eefa4790db46af5", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "treefmt-nix", + "type": "github" + } + } + }, + "root": "root", + "version": 7 +} diff --git a/flake.nix b/flake.nix new file mode 100644 index 0000000..def6007 --- /dev/null +++ b/flake.nix @@ -0,0 +1,51 @@ +{ + description = "System configuration flake."; + + inputs = { + home-manager = { + url = "github:nix-community/home-manager"; + inputs.nixpkgs.follows = "nixpkgs"; + }; + spicetify = { + url = "github:Gerg-L/spicetify-nix"; + inputs.nixpkgs.follows = "nixpkgs"; + }; + nixvim = { + url = "github:nix-community/nixvim"; + inputs.nixpkgs.follows = "nixpkgs"; + }; +}; + + outputs = { + self, + nixpkgs, + home-manager, + ... + } @ inputs: { + formatter."x86_64-linux" = nixpkgs.legacyPackages.x86_64-linux.alejandra; + nixosConfigurations.nixos = nixpkgs.lib.nixosSystem { + specialArgs = {inherit inputs;}; + system = "x86_64-linux"; + modules = [ + ./configuration.nix + + home-manager.nixosModules.home-manager + { + home-manager = { + useGlobalPkgs = true; + useUserPackages = true; + extraSpecialArgs = {inherit inputs;}; + users.kaitotlex = { + imports = [ + ./home.nix + ./spicetify.nix + inputs.nixvim.homeManagerModules.nixvim + #./nixvim.nix + ]; + }; + }; + } + ]; + }; + }; +} diff --git a/hardware-configuration.nix b/hardware-configuration.nix new file mode 100644 index 0000000..4c5240d --- /dev/null +++ b/hardware-configuration.nix @@ -0,0 +1,44 @@ +# 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, + ... +}: { + imports = [ + (modulesPath + "/installer/scan/not-detected.nix") + ]; + + boot.initrd.availableKernelModules = ["xhci_pci" "thunderbolt" "nvme" "usb_storage" "sd_mod" "rtsx_pci_sdmmc"]; + boot.initrd.kernelModules = []; + boot.kernelModules = ["kvm-intel"]; + boot.extraModulePackages = []; + + fileSystems."/" = { + device = "/dev/disk/by-uuid/de53d520-7b49-4353-b88c-b599f8f50fbb"; + fsType = "ext4"; + }; + + boot.initrd.luks.devices."luks-1910bfb7-9cc4-4aff-88cb-8644012531d2".device = "/dev/disk/by-uuid/1910bfb7-9cc4-4aff-88cb-8644012531d2"; + + fileSystems."/boot" = { + device = "/dev/disk/by-uuid/C5E5-09F1"; + fsType = "vfat"; + options = ["fmask=0077" "dmask=0077"]; + }; + + swapDevices = []; + + # Enables DHCP on each ethernet and wireless interface. In case of scripted networking + # (the default) this is the recommended approach. When using systemd-networkd it's + # still possible to use this option, but it's recommended to use it in conjunction + # with explicit per-interface declarations with `networking.interfaces..useDHCP`. + networking.useDHCP = lib.mkDefault true; + # networking.interfaces.wlp89s0.useDHCP = lib.mkDefault true; + + nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; + hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware; +} diff --git a/home.nix b/home.nix new file mode 100644 index 0000000..19c52c7 --- /dev/null +++ b/home.nix @@ -0,0 +1,335 @@ +{ + config, + pkgs, + inputs, + ... +}: +let + nixvim = import (builtins.fetchGit { + url = "https://github.com/nix-community/nixvim"; + # If you are not running an unstable channel of nixpkgs, select the corresponding branch of nixvim. + # ref = "nixos-24.05"; + }); +in +{ + home.username = "kaitotlex"; + home.homeDirectory = "/home/kaitotlex"; + + # link the configuration file in current directory to the specified location in home directory + # home.file.".config/i3/wallpaper.jpg".source = ./wallpaper.jpg; + + # link all files in `./scripts` to `~/.config/i3/scripts` + # home.file.".config/i3/scripts" = { + # source = ./scripts; + # recursive = true; # link recursively + # executable = true; # make all files executable + # }; + + # encode the file content in nix configuration file directly + # home.file.".xxx".text = '' + # xxx + # ''; + + # Packages that should be installed to the user profile. + home.packages = with pkgs; [ + # here is some command line tools I use frequently + # feel free to add your own or remove some of them + firefox-devedition + neofetch + polychromatic + openrazer-daemon + wineWowPackages.waylandFull + wget + + notion-app-enhanced + # archives + zip + xz + unzip + p7zip + + # utils + ripgrep # recursively searches directories for a regex pattern + jq # A lightweight and flexible command-line JSON processor + yq-go # yaml processor https://github.com/mikefarah/yq + eza # A modern replacement for ‘ls’ + fzf # A command-line fuzzy finder + emacs # full featured everything + + # networking tools + mtr # A network diagnostic tool + iperf3 + dnsutils # `dig` + `nslookup` + ldns # replacement of `dig`, it provide the command `drill` + aria2 # A lightweight multi-protocol & multi-source command-line download utility + socat # replacement of openbsd-netcat + nmap # A utility for network discovery and security auditing + ipcalc # it is a calculator for the IPv4/v6 addresses + + # misc + cowsay + file + which + tree + gnused + gnutar + gawk + zstd + gnupg + python3 + rustc + arduino-cli + jdk + + # nix related + # + # it provides the command `nom` works just like `nix` + # with more details log output + nix-output-monitor + # productivity + hugo # static site generator + glow # markdown previewer in terminal + obsidian #markdown previewer + thunderbird-unwrapped # Full Feature Email Client + + # LaTeX stuff + texliveFull + texlivePackages.pdflatexpicscale + texlivePackages.babel + texlivePackages.csquotes + texlivePackages.biblatex + texlivePackages.geometry + texlivePackages.times + texlivePackages.hyperref + texlivePackages.setspace + texlivePackages.fancyhdr + texlivePackages.biblatex + texlivePackages.csquotes + texlivePackages.csquotes-de + texlivePackages.collection-latexextra + + #ViM config + + btop # replacement of htop/nmon + iotop # io monitoring + iftop # network monitoring + + waydroid + + # system call monitoring + strace # system call monitoring + ltrace # library call monitoring + lsof # list open files + + #Rice + kanagawa-gtk-theme + kanagawa-icon-theme + + + # system tools + sysstat + lm_sensors # for `sensors` command + ethtool + pciutils # lspci + usbutils # lsusb + + # messaging apps + vesktop + signal-desktop + gh + +]; + + + services.dunst.enable = true; + + # basic configuration of git, please change to your own + programs.git = { + enable = true; + userName = "KaitoTLex"; + userEmail = "warrenlin1688@gmail.com"; + delta.enable = true; + extraConfig = { + init.defaultBranch = "main"; + }; + }; + + programs.lazygit.enable = true; + + programs.zoxide = { + enable = true; + enableBashIntegration = true; + enableFishIntegration = true; + }; + + programs.kitty = { + enable = true; + theme = "Tokyo Night"; + font.name = "CaskaydiaCove Nerd Font"; + settings = { + font_size = 12; + window_padding_width = "8 8 0"; + confirm_os_window_close = -1; + shell_integration = "enabled"; + }; + }; + + programs.waybar = { + enable = true; + settings = { + mainBar = { + layer = "top"; + position = "top"; + height = 30; + output = [ + "DP-1" + "HDMI-A-1" + ]; + modules-left = ["hyprland/workspaces" "sway/submap" "wlr/taskbar"]; + modules-center = ["hyprland/window" "custom/hello-from-waybar"]; + modules-right = ["mpd" "custom/mymodule#with-css-id" "temperature"]; + + "hyprland/workspaces" = { + disable-scroll = true; + all-outputs = true; + }; + "custom/hello-from-waybar" = { + format = "hello {}"; + max-length = 40; + interval = "once"; + exec = pkgs.writeShellScript "hello-from-waybar" '' + echo "from within waybar" + ''; + }; + }; + }; + }; + + programs.oh-my-posh = { + enable = true; + # enableZshIntegration = true; + enableFishIntegration = true; + enableBashIntegration = true; + useTheme = "gruvbox"; + }; + + programs.bash = { + enable = true; + }; + programs.fish = { + enable = true; + shellAliases = { + rebuild = "sudo nixos-rebuild switch"; + ls = "eza -l --icons=auto"; + }; + functions = { + update-nixos = { + description = "Update the system flake and attempt to build and switch to the new configuration."; + body = '' + cd /etc/nixos + nix flake update + sudo nixos-rebuild switch + ''; + }; + }; + interactiveShellInit = '' + fish_vi_key_bindings + set -g fish_greeting + oh-my-posh disable notice + ''; + plugins = [ + { + name = "autopair"; + src = pkgs.fetchFromGitHub { + owner = "jorgebucaran"; + repo = "autopair.fish"; + rev = "4d1752ff5b39819ab58d7337c69220342e9de0e2"; + hash = "sha256-qt3t1iKRRNuiLWiVoiAYOu+9E7jsyECyIqZJ/oRIT1A="; + }; + } + { + name = "fzf"; + src = pkgs.fetchFromGitHub { + owner = "PatrickF1"; + repo = "fzf.fish"; + rev = "8920367cf85eee5218cc25a11e209d46e2591e7a"; + hash = "sha256-T8KYLA/r/gOKvAivKRoeqIwE2pINlxFQtZJHpOy9GMM="; + }; + } + { + name = "sponge"; + src = pkgs.fetchFromGitHub { + owner = "meaningful-ooo"; + repo = "sponge"; + rev = "384299545104d5256648cee9d8b117aaa9a6d7be"; + hash = "sha256-MdcZUDRtNJdiyo2l9o5ma7nAX84xEJbGFhAVhK+Zm1w="; + }; + } + { + name = "done"; + src = pkgs.fetchFromGitHub { + owner = "franciscolourenco"; + repo = "done"; + rev = "eb32ade85c0f2c68cbfcff3036756bbf27a4f366"; + hash = "sha256-DMIRKRAVOn7YEnuAtz4hIxrU93ULxNoQhW6juxCoh4o="; + }; + } + ]; + }; + + programs.fd.enable = true; + + programs.btop = { + enable = true; + settings = { + color_theme = "tokyo-night"; + vim_keys = true; + theme_background = false; + }; + }; + + programs.eza = { + enable = true; + enableFishIntegration = true; + enableBashIntegration = true; + }; + + programs.fzf.enable = true; + + programs.neovim ={ + enable = true; + defaultEditor = true; + }; + #viAlias = true; + #vimAlias = true; + #extraPackages= [ + #]; + #plugins = [ + #pkgs.vimPlugins.vim-latex-live-preview + #pkgs.vimPlugins.vimsence + #pkgs.vimPlugins.telescope-zoxide + #{ + #plugin = pkgs.vimPlugins.vimtex; + #config = "let g:vimtex_enabled =1"; + #} + #pkgs.vimPlugins.mason-tool-installer-nvim + #pkgs.vimPlugins.mason-lspconfig-nvim + #pkgs.vimPlugins.kanagawa-nvim + #]; + + + + # This value determines the home Manager release that your + # configuration is compatible with. This helps avoid breakage + # when a new home Manager release introduces backwards + # incompatible changes. + home.stateVersion = "24.05"; + # + # You can update home Manager without changing this value. See + # the home Manager release notes for a list of state version + # changes in each release. + + # Let home Manager install and manage itself. + programs.home-manager.enable = true; + +} diff --git a/nixvim.nix b/nixvim.nix new file mode 100644 index 0000000..cbbac23 --- /dev/null +++ b/nixvim.nix @@ -0,0 +1,37 @@ +{pkgs, lib, ...}: +{ + + options.enable = lib.mkEnableOpton "nixvim"; + + Plugins = with pkgs.vimPlugins; [ + fzf-lua + rose-pine + ]; + + keymaps = [ + { + key = "ss"; + mode = "n"; + action = ":lua require('nvim-possession').list()"; + options = {desc = "[s]ession: [s]elect";}; + } + { + key = "sn"; + mode = "n"; + action = ":lua require('nvim-possession').new()"; + options = {desc = "[s]ession: [n]ew";}; + } + { + key = "su"; + mode = "n"; + action = ":lua require('nvim-possession').update()"; + options = {desc = "[s]ession: [u]pdate";}; + } + { + key = "sd"; + mode = "n"; + action = ":lua require('nvim-possession').delete()"; + options = {desc = "[s]ession: [d]elete";}; + } + ]; +} diff --git a/spicetify.nix b/spicetify.nix new file mode 100644 index 0000000..ca1dddc --- /dev/null +++ b/spicetify.nix @@ -0,0 +1,24 @@ +{ + inputs, + pkgs, + ... +}: let + spicepkgs = inputs.spicetify.legacyPackages.${pkgs.system}; +in { + imports = [ + inputs.spicetify.homeManagerModules.default + ]; + + programs.spicetify = { + enable = true; + theme = spicepkgs.themes.dribbblish; + colorScheme = "rosepine"; + enabledExtensions = with spicepkgs.extensions; [ + lastfm + fullAppDisplayMod + ]; + enabledCustomApps = with spicepkgs.apps; [ + lyricsPlus + ]; + }; +}