nvim added

This commit is contained in:
sadanslargehole 2024-05-03 18:49:17 -04:00
parent f915112ce5
commit c3c790052f
No known key found for this signature in database
GPG key ID: B2E2F4A5161A7800
9 changed files with 210 additions and 150 deletions

3
.gitmodules vendored Normal file
View file

@ -0,0 +1,3 @@
[submodule "dotfiles/nvim"]
path = dotfiles/nvim
url = git@github.com:sadanslargehole/nvim.git

View file

@ -7,7 +7,8 @@
{ {
imports = imports =
[ # Include the results of the hardware scan. [
# Include the results of the hardware scan.
./hardware-configuration.nix ./hardware-configuration.nix
]; ];
@ -16,16 +17,16 @@
boot.loader.grub.efiSupport = true; boot.loader.grub.efiSupport = true;
boot.loader.grub.useOSProber = true; boot.loader.grub.useOSProber = true;
boot.loader.grub.efiInstallAsRemovable = true; boot.loader.grub.efiInstallAsRemovable = true;
boot.kernelModules = ["i2c_dev"]; boot.kernelModules = [ "i2c_dev" ];
hardware.bluetooth.enable = true; hardware.bluetooth.enable = true;
networking.hostName = "nix-desktop-evo4b5"; # Define your hostname. networking.hostName = "nix-desktop-evo4b5"; # Define your hostname.
# Pick only one of the below networking options. # Pick only one of the below networking options.
# networking.wireless.enable = true; # Enables wireless support via wpa_supplicant. # networking.wireless.enable = true; # Enables wireless support via wpa_supplicant.
networking.networkmanager.enable = true; # Easiest to use and most distros use this by default. networking.networkmanager.enable = true; # Easiest to use and most distros use this by default.
# Set your time zone. # Set your time zone.
time.timeZone = "America/New_York"; time.timeZone = "America/New_York";
# Select internationalisation properties. # Select internationalisation properties.
# i18n.defaultLocale = "en_US.UTF-8"; # i18n.defaultLocale = "en_US.UTF-8";
@ -34,16 +35,16 @@ hardware.bluetooth.enable = true;
# keyMap = "us"; # keyMap = "us";
# useXkbConfig = true; # use xkb.options in tty. # useXkbConfig = true; # use xkb.options in tty.
# }; # };
services.xserver = { services.xserver = {
enable = true; enable = true;
displayManager.sddm = { displayManager.sddm = {
enable = true; enable = true;
}; };
desktopManager.plasma6.enable = true; desktopManager.plasma6.enable = true;
}; };
# Enable the X11 windowing system. # Enable the X11 windowing system.
# servives.desktopManager.plasma6.enable = true; # servives.desktopManager.plasma6.enable = true;
# services.desktopManager.plasma6.enable = true; # services.desktopManager.plasma6.enable = true;
@ -53,14 +54,14 @@ services.xserver = {
# Enable CUPS to print documents. # Enable CUPS to print documents.
services.printing.enable = true; services.printing.enable = true;
nix.settings.experimental-features = ["nix-command" "flakes"]; nix.settings.experimental-features = [ "nix-command" "flakes" ];
# Enable sound. # Enable sound.
sound.enable = true; sound.enable = true;
services.pipewire = { services.pipewire = {
enable = true; enable = true;
alsa.enable = true; alsa.enable = true;
alsa.support32Bit = true; alsa.support32Bit = true;
pulse.enable = true; pulse.enable = true;
}; };
# hardware.pulseaudio.enable = true; # hardware.pulseaudio.enable = true;
@ -71,38 +72,41 @@ services.xserver = {
users.users.meyer = { users.users.meyer = {
isNormalUser = true; isNormalUser = true;
extraGroups = [ extraGroups = [
"wheel" # Enable sudo for the user. "wheel" # Enable sudo for the user.
"audio" "sound" "video" "audio"
"networkmanager" "sound"
"input" "tty" "video"
"networkmanager"
"input"
"tty"
]; ];
shell = pkgs.zsh; shell = pkgs.zsh;
}; };
programs.zsh.enable = true; programs.zsh.enable = true;
programs.steam.enable = true; programs.steam.enable = true;
programs.steam.extraCompatPackages = with pkgs; [ programs.steam.extraCompatPackages = with pkgs; [
proton-ge-bin proton-ge-bin
]; ];
nixpkgs.config.allowUnfree = true; nixpkgs.config.allowUnfree = true;
home-manager = { home-manager = {
extraSpecialArgs = {inherit inputs;}; extraSpecialArgs = { inherit inputs; };
users = { users = {
"meyer" = import ./home.nix; "meyer" = import ./home.nix;
}; };
}; };
# networking.nameservers = ["10.0.0.97" "1.1.1.1"]; # networking.nameservers = ["10.0.0.97" "1.1.1.1"];
networking.nameservers = ["10.0.0.97"]; networking.nameservers = [ "10.0.0.97" ];
# List packages installed in system profile. To search, run: # List packages installed in system profile. To search, run:
# $ nix search wget # $ nix search wget
environment.systemPackages = with pkgs; [ environment.systemPackages = with pkgs; [
ddcutil ddcutil
i2c-tools i2c-tools
# python311 # python311
# python311Packages.evdev # python311Packages.evdev
# python311Packages.xlib # python311Packages.xlib
@ -120,18 +124,18 @@ networking.nameservers = ["10.0.0.97"];
libnotify libnotify
file file
]; ];
#LD fix #LD fix
programs.nix-ld.enable = true; programs.nix-ld.enable = true;
programs.nix-ld.libraries = with pkgs; [ programs.nix-ld.libraries = with pkgs; [
pkgs.curlWithGnuTls pkgs.curlWithGnuTls
]; ];
programs.ssh.startAgent = true; programs.ssh.startAgent = true;
programs.ssh.askPassword = pkgs.lib.mkForce "${pkgs.ksshaskpass.out}/bin/ksshaskpass"; programs.ssh.askPassword = pkgs.lib.mkForce "${pkgs.ksshaskpass.out}/bin/ksshaskpass";
programs.gnupg.agent = { programs.gnupg.agent = {
enable = true; enable = true;
pinentryPackage = pkgs.pinentry-gnome3; pinentryPackage = pkgs.pinentry-gnome3;
}; };
# Some programs need SUID wrappers, can be configured further or are # Some programs need SUID wrappers, can be configured further or are
# started in user sessions. # started in user sessions.
# programs.mtr.enable = true; # programs.mtr.enable = true;

View file

@ -5,7 +5,8 @@
{ {
imports = imports =
[ (modulesPath + "/installer/scan/not-detected.nix") [
(modulesPath + "/installer/scan/not-detected.nix")
]; ];
boot.initrd.availableKernelModules = [ "xhci_pci" "ahci" "nvme" "usbhid" "usb_storage" "sd_mod" ]; boot.initrd.availableKernelModules = [ "xhci_pci" "ahci" "nvme" "usbhid" "usb_storage" "sd_mod" ];
@ -14,19 +15,20 @@
boot.extraModulePackages = [ ]; boot.extraModulePackages = [ ];
fileSystems."/" = fileSystems."/" =
{ device = "/dev/disk/by-uuid/789aab6a-3f46-4023-9aab-0569bb06bcde"; {
device = "/dev/disk/by-uuid/789aab6a-3f46-4023-9aab-0569bb06bcde";
fsType = "ext4"; fsType = "ext4";
}; };
fileSystems."/boot" = fileSystems."/boot" =
{ device = "/dev/disk/by-uuid/FA5C-26B6"; {
device = "/dev/disk/by-uuid/FA5C-26B6";
fsType = "vfat"; fsType = "vfat";
options = [ "fmask=0077" "dmask=0077" ]; options = [ "fmask=0077" "dmask=0077" ];
}; };
swapDevices = swapDevices =
[ { device = "/dev/disk/by-uuid/8d59260c-90c4-440e-8ac6-f0135e90451f"; } [{ device = "/dev/disk/by-uuid/8d59260c-90c4-440e-8ac6-f0135e90451f"; }];
];
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking # 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 # (the default) this is the recommended approach. When using systemd-networkd it's

View file

@ -1,14 +1,14 @@
{ config, pkgs, inputs, ... }: { config, pkgs, inputs, ... }:
let let
cpkg = import ../../customPackages {inherit pkgs;}; cpkg = import ../../customPackages { inherit pkgs; };
in in
{ {
programs.zsh.enable = true; programs.zsh.enable = true;
programs.zsh.oh-my-zsh.enable = true; programs.zsh.oh-my-zsh.enable = true;
programs.zsh.initExtra = "source ${pkgs.zsh-powerlevel10k}/share/zsh-powerlevel10k/powerlevel10k.zsh-theme" + "\n" + "source ${pkgs.zsh-syntax-highlighting}/share/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh" + "\n" + "[[ ! -f ~/.p10k.zsh ]] || source ~/.p10k.zsh"; programs.zsh.initExtra = "source ${pkgs.zsh-powerlevel10k}/share/zsh-powerlevel10k/powerlevel10k.zsh-theme" + "\n" + "source ${pkgs.zsh-syntax-highlighting}/share/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh" + "\n" + "[[ ! -f ~/.p10k.zsh ]] || source ~/.p10k.zsh";
nixpkgs.config.allowUnfreePredicate = (pkg: true); nixpkgs.config.allowUnfreePredicate = (pkg: true);
# 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
# nixpkg.config.allowUnfree = true; # nixpkg.config.allowUnfree = true;
# manage. # manage.
@ -25,7 +25,7 @@ programs.zsh.initExtra = "source ${pkgs.zsh-powerlevel10k}/share/zsh-powerlevel1
# The home.packages option allows you to install Nix packages into your # The home.packages option allows you to install Nix packages into your
# environment. # environment.
home.packages = with pkgs;[ home.packages = with pkgs;[
obs-studio obs-studio
tokyo-night-gtk tokyo-night-gtk
linuxHeaders linuxHeaders
#NODE #NODE
@ -37,15 +37,15 @@ programs.zsh.initExtra = "source ${pkgs.zsh-powerlevel10k}/share/zsh-powerlevel1
zsh-syntax-highlighting zsh-syntax-highlighting
hello hello
gh gh
(prismlauncher.override { (prismlauncher.override {
jdks = [ jdks = [
jdk8 jdk8
jdk17 jdk17
jdk19 jdk19
]; ];
}) })
ksshaskpass ksshaskpass
libsForQt5.kinit libsForQt5.kinit
fzf fzf
#C AND CXX START #C AND CXX START
glib glib
@ -53,9 +53,9 @@ jdk19
#C AND CXX END #C AND CXX END
#PYTHONSTART #PYTHONSTART
(python39.withPackages(ps: with ps;[ (python39.withPackages (ps: with ps;[
evdev evdev
xlib xlib
])) ]))
# python311Packages.evdev # python311Packages.evdev
# python311Packages.xlib # python311Packages.xlib
@ -90,38 +90,38 @@ jdk19
# echo "Hello, ${config.home.username}!" # echo "Hello, ${config.home.username}!"
# '') # '')
(pkgs.writeShellScriptBin "installVencord" '' (pkgs.writeShellScriptBin "installVencord" ''
set -e set -e
set -x set -x
out=$(mktemp) out=$(mktemp)
# trap 'rm -f "$out"' EXIT # trap 'rm -f "$out"' EXIT
curl -sS https://github.com/Vendicated/VencordInstaller/releases/latest/download/VencordInstallerCli-Linux \ curl -sS https://github.com/Vendicated/VencordInstaller/releases/latest/download/VencordInstallerCli-Linux \
--output "$out" \ --output "$out" \
--location --location
chmod +x "$out" chmod +x "$out"
sudo NIX_LD_LIBRARY_PATH=$NIX_LD_LIBRARY_PATH NIX_LD=$NIX_LD $out -location "${pkgs.discord}/opt/Discord" sudo NIX_LD_LIBRARY_PATH=$NIX_LD_LIBRARY_PATH NIX_LD=$NIX_LD $out -location "${pkgs.discord}/opt/Discord"
'') '')
]; ];
# 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
# plain files is through 'home.file'. # plain files is through 'home.file'.
home.file = { home.file = {
kitty = { kitty = {
recursive = true; recursive = true;
source = ../../dotfiles/kitty; source = ../../dotfiles/kitty;
target = "./.config/kitty"; target = "./.config/kitty";
}; };
gh = { gh = {
recursive = true; recursive = true;
source = config.lib.file.mkOutOfStoreSymlink "${config.home.homeDirectory}/nixos/dotfiles/gh"; source = config.lib.file.mkOutOfStoreSymlink "${config.home.homeDirectory}/nixos/dotfiles/gh";
target = "./.config/gh"; target = "./.config/gh";
}; };
btop = { btop = {
recursive = true; recursive = true;
source = ../../dotfiles/btop; source = ../../dotfiles/btop;
target = "./.config/btop"; target = "./.config/btop";
}; };
# "testconfigfile".source = ../../dotfiles/testconfigfile; # "testconfigfile".source = ../../dotfiles/testconfigfile;
# ".gitconfig".source = ../../dotfiles/.gitconfig; # ".gitconfig".source = ../../dotfiles/.gitconfig;
# # Building this configuration will create a copy of 'dotfiles/screenrc' in # # Building this configuration will create a copy of 'dotfiles/screenrc' in
# # the Nix store. Activating the configuration will then make '~/.screenrc' a # # the Nix store. Activating the configuration will then make '~/.screenrc' a
@ -151,20 +151,20 @@ jdk19
# /etc/profiles/per-user/meyer/etc/profile.d/hm-session-vars.sh # /etc/profiles/per-user/meyer/etc/profile.d/hm-session-vars.sh
# #
home.shellAliases = { home.shellAliases = {
paste = "xsel -ob"; paste = "xsel -ob";
copt = "xsel -ib"; copt = "xsel -ib";
}; };
home.sessionPath = [ home.sessionPath = [
"$HOME/.local/bin" "$HOME/.local/bin"
]; ];
home.sessionVariables = { home.sessionVariables = {
EDITOR = "nvim"; EDITOR = "nvim";
MANPAGER = "nvim +Man!"; MANPAGER = "nvim +Man!";
MANWIDTH = "999"; MANWIDTH = "999";
SSH_ASKPASS_REQUIRE="prefer"; SSH_ASKPASS_REQUIRE = "prefer";
PRISMA_QUERY_ENGINE_BINARY="${pkgs.prisma-engines}/bin/query-engine"; PRISMA_QUERY_ENGINE_BINARY = "${pkgs.prisma-engines}/bin/query-engine";
PRISMA_SCHEMA_ENGINE_BINARY="${pkgs.prisma-engines}/bin/schema-engine"; PRISMA_SCHEMA_ENGINE_BINARY = "${pkgs.prisma-engines}/bin/schema-engine";
PRISMA_QUERY_ENGINE_LIBRARY="${pkgs.prisma-engines}/lib/libquery_engine.node"; PRISMA_QUERY_ENGINE_LIBRARY = "${pkgs.prisma-engines}/lib/libquery_engine.node";
}; };
# Let Home Manager install and manage itself. # Let Home Manager install and manage itself.

View file

@ -1,6 +1,6 @@
{pkgs}:rec{ { pkgs }: rec{
# discord = nixpkgs.callPackage ./discord { }; # discord = nixpkgs.callPackage ./discord { };
discord = pkgs.callPackage ./discord/default.nix {}; discord = pkgs.callPackage ./discord/default.nix { };
vesktop = pkgs.callPackage ./vesktop/default.nix {inherit vencord;}; vesktop = pkgs.callPackage ./vesktop/default.nix { inherit vencord; };
vencord = pkgs.callPackage ./vencord/default.nix {}; vencord = pkgs.callPackage ./vencord/default.nix { };
} }

View file

@ -103,4 +103,4 @@ let
} }
); );
in in
packages.${branch} packages.${branch}

View file

@ -1,17 +1,67 @@
{ pname, version, src, meta, binaryName, desktopName, autoPatchelfHook { pname
, makeDesktopItem, lib, stdenv, wrapGAppsHook, makeShellWrapper, alsa-lib, at-spi2-atk , version
, at-spi2-core, atk, cairo, cups, dbus, expat, fontconfig, freetype, gdk-pixbuf , src
, glib, gtk3, libcxx, libdrm, libglvnd, libnotify, libpulseaudio, libuuid, libX11 , meta
, libXScrnSaver, libXcomposite, libXcursor, libXdamage, libXext, libXfixes , binaryName
, libXi, libXrandr, libXrender, libXtst, libxcb, libxshmfence, mesa, nspr, nss , desktopName
, pango, systemd, libappindicator-gtk3, libdbusmenu, writeScript, python3, runCommand , autoPatchelfHook
, makeDesktopItem
, lib
, stdenv
, wrapGAppsHook
, makeShellWrapper
, alsa-lib
, at-spi2-atk
, at-spi2-core
, atk
, cairo
, cups
, dbus
, expat
, fontconfig
, freetype
, gdk-pixbuf
, glib
, gtk3
, libcxx
, libdrm
, libglvnd
, libnotify
, libpulseaudio
, libuuid
, libX11
, libXScrnSaver
, libXcomposite
, libXcursor
, libXdamage
, libXext
, libXfixes
, libXi
, libXrandr
, libXrender
, libXtst
, libxcb
, libxshmfence
, mesa
, nspr
, nss
, pango
, systemd
, libappindicator-gtk3
, libdbusmenu
, writeScript
, python3
, runCommand
, libunity , libunity
, speechd , speechd
, wayland , wayland
, branch , branch
, withOpenASAR ? false, openasar , withOpenASAR ? false
, withVencord ? true, vencord , openasar
, withTTS ? true }: , withVencord ? true
, vencord
, withTTS ? true
}:
let let
disableBreakingUpdates = runCommand "disable-breaking-updates.py" disableBreakingUpdates = runCommand "disable-breaking-updates.py"
@ -130,22 +180,22 @@ stdenv.mkDerivation rec {
patchelf --set-interpreter ${stdenv.cc.bintools.dynamicLinker} \ patchelf --set-interpreter ${stdenv.cc.bintools.dynamicLinker} \
$out/opt/vencordInstaller $out/opt/vencordInstaller
VENCORD_USER_DATA_DIR="/home/meyer/.config/Vencord/dist" $out/opt/vencordInstaller -location $out/opt/Discord -install VENCORD_USER_DATA_DIR="/home/meyer/.config/Vencord/dist" $out/opt/vencordInstaller -location $out/opt/Discord -install
runHook postInstall runHook postInstall
''; '';
postInstall = postInstall =
'' ''
# set -x # set -x
# set -e # set -e
# #
# cp "${./installer}" $out/bin/vencordInstaller # cp "${./installer}" $out/bin/vencordInstaller
# #
# chmod +x $out/bin/vencordInstaller # chmod +x $out/bin/vencordInstaller
# patchelf --set-interpreter ${stdenv.cc.bintools.dynamicLinker} \ # patchelf --set-interpreter ${stdenv.cc.bintools.dynamicLinker} \
# $out/bin/vencordInstaller # $out/bin/vencordInstaller
# $out/bin/vencordInstaller -location $out/opt/Discord -install # $out/bin/vencordInstaller -location $out/opt/Discord -install
''; '';
desktopItem = makeDesktopItem { desktopItem = makeDesktopItem {
name = pname; name = pname;

1
dotfiles/nvim Submodule

@ -0,0 +1 @@
Subproject commit e8190de318225a7f00b45bcddf97db5fb8e135b3

View file

@ -9,31 +9,31 @@
inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs.follows = "nixpkgs";
}; };
}; };
outputs = { self, nixpkgs, ... }@inputs: outputs = { self, nixpkgs, ... }@inputs:
# let # let
# boxes = [ # boxes = [
# "default" # "default"
# ]; # ];
# forAllSystems = nixpkgs.lib.genAttrs boxes; # forAllSystems = nixpkgs.lib.genAttrs boxes;
# in # in
{ {
nixosConfigurations = { nixosConfigurations = {
default = nixpkgs.lib.nixosSystem { default = nixpkgs.lib.nixosSystem {
specialArgs = {inherit inputs;}; specialArgs = { inherit inputs; };
modules = [ modules = [
./boxes/desktop/configuration.nix ./boxes/desktop/configuration.nix
inputs.home-manager.nixosModules.default inputs.home-manager.nixosModules.default
]; ];
};
};
# nixosConfigurations.default = nixpkgs.lib.nixosSystem {
# specialArgs = {inherit inputs;};
# modules = [
# ./boxes/desktop/configuration.nix
# inputs.home-manager.nixosModules.default
# ];
# };
# cpkg = forAllSystems(system: import ./customPackages);
}; };
};
# nixosConfigurations.default = nixpkgs.lib.nixosSystem {
# specialArgs = {inherit inputs;};
# modules = [
# ./boxes/desktop/configuration.nix
# inputs.home-manager.nixosModules.default
# ];
# };
# cpkg = forAllSystems(system: import ./customPackages);
};
} }