diff --git a/,a b/,a new file mode 100644 index 0000000..59af4f6 --- /dev/null +++ b/,a @@ -0,0 +1,223 @@ +# 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, inputs, ... }: + +{ + imports = + [ # Include the results of the hardware scan. + ./hardware-configuration.nix + inputs.home-manager.nixosModules.default + ]; + + + # home manager + home-manager = { + extraSpecialArgs = { inherit inputs; }; + users = { + "n" = import ./home-nico.nix; + }; + }; + + # hyprland +# programs.hyprland = { +# enable = true; +# xwayland.enable = true; +# }; + + nix.settings.experimental-features = [ "nix-command" "flakes" ]; + + security.polkit.enable = true; + + + # Bootloader. + boot.loader.systemd-boot.enable = true; + boot.loader.efi.canTouchEfiVariables = true; + + networking.hostName = "nico-nixos-laptop"; # 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; + hardware.bluetooth.enable = true; + services.blueman.enable = true; + + # Set your time zone. + time.timeZone = "Europe/Berlin"; + + # Select internationalisation properties. + i18n.defaultLocale = "en_US.UTF-8"; + + i18n.extraLocaleSettings = { + LC_ADDRESS = "de_DE.UTF-8"; + LC_IDENTIFICATION = "de_DE.UTF-8"; + LC_MEASUREMENT = "de_DE.UTF-8"; + LC_MONETARY = "de_DE.UTF-8"; + LC_NAME = "de_DE.UTF-8"; + LC_NUMERIC = "de_DE.UTF-8"; + LC_PAPER = "de_DE.UTF-8"; + LC_TELEPHONE = "de_DE.UTF-8"; + LC_TIME = "de_DE.UTF-8"; + }; + + # Enable the X11 windowing system. + services.xserver.enable = true; + + # Enable the XFCE Desktop Environment. + services.displayManager.sddm.enable = true; + services.xserver.desktopManager.xfce.enable = true; + + + # Configure keymap in X11 + services.xserver = { + xkb = { + variant = ""; + layout = "de"; + }; + }; + + # Configure console keymap + console.keyMap = "de"; + + # Enable CUPS to print documents. + services.printing.enable = 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; + }; + + # Enable touchpad support (enabled default in most desktopManager). + services.libinput.enable = true; + + programs.light.enable = true; + + programs.zsh.enable = true; +# programs.nushell.enable = true; + + # Define a user account. Don't forget to set a password with ‘passwd’. + users.users.n = { + isNormalUser = true; + description = "n"; + extraGroups = [ "networkmanager" "wheel" "video" "adbusers" "input" ]; + packages = with pkgs; [ + obsidian + heroic + ]; + shell = pkgs.nushell; + }; + + + + # 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; [ + vim + wget + git + kitty + tree + nodejs + anki-bin + unzip + bitwarden-cli + + + # nvim + gnumake + python312Packages.pip + python312 + cargo + ripgrep + gcc + + # sway + networkmanagerapplet + wl-clipboard # wl-copy and wl-paste for copy/paste from stdin / stdout + go + cliphist + mako # notification system developed by swaywm maintainer + waybar # bar + pulseaudio # audiocontrols + brightnessctl # brightness controls + wpaperd # wallpaper manager + ]; + + services.gnome.gnome-keyring.enable = true; + + programs.sway = { + enable = true; + wrapperFeatures.gtk = true; + }; + + + #fonts +fonts.packages = with pkgs; [ + iosevka +# (nerdfonts.override { fonts = [ "JetBrainsMono" "UbuntuMono" ]; }) + pkgs.nerd-fonts.JetBrainsMono + pkgs.nerd-fonts.UbuntuMono +]; + + + # 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; + + networking.firewall = { + enable = true; + allowedTCPPortRanges = [ + { from = 1714; to = 1764; } # KDE Connect + ]; + allowedUDPPortRanges = [ + { from = 1714; to = 1764; } # KDE Connect + ]; + }; + + + # 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.05"; # Did you read the comment? + +} diff --git a/configuration.nix b/configuration.nix index c567820..c2143e5 100644 --- a/configuration.nix +++ b/configuration.nix @@ -1,19 +1,23 @@ -# 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’). +# 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, inputs, ... }: -{ imports = +{ + imports = [ # Include the results of the hardware scan. ./hardware-configuration.nix inputs.home-manager.nixosModules.default - ]; + + ]; + # home manager home-manager = { extraSpecialArgs = { inherit inputs; }; users = { - "nico" = import ./home-nico.nix; + "n" = import ./home-nico.nix; }; }; @@ -21,81 +25,38 @@ # programs.hyprland = { # enable = true; # xwayland.enable = true; -# }; + # }; - # Bootloader. -# boot.loader.grub.enable = true; boot.loader.grub.device = "/dev/sda"; boot.loader.grub.useOSProber = true; + boot.supportedFilesystems = [ "ntfs" ]; -boot.supportedFilesystems = [ "zfs" ]; -boot.zfs.forceImportRoot = false; -networking.hostId = "8425e349"; - - - -# Boot loader config for configuration.nix: -boot.loader.grub.useOSProber = true; - boot.loader.grub = { - enable = true; - zfsSupport = true; - efiSupport = true; - efiInstallAsRemovable = true; - mirroredBoots = [ - { devices = [ "nodev"]; path = "/boot"; } - ]; - }; - - fileSystems."/" = - { device = "zpool/root"; - fsType = "zfs"; - }; - - fileSystems."/nix" = - { device = "zpool/nix"; - fsType = "zfs"; - }; - - fileSystems."/home" = - { device = "zpool/home"; - fsType = "zfs"; - }; - - fileSystems."/boot" = - { device = "/dev/disk/by-uuid/49CB-AECA"; - fsType = "vfat"; - }; - - fileSystems."/mnt/win" = - { - device = "/dev/disk/by-uuid/7420123C201205B0"; - fsType = "ntfs"; - }; - - - swapDevices = [ ]; - - # Flakes nix.settings.experimental-features = [ "nix-command" "flakes" ]; - networking.hostName = "nico-nixos"; # Define your hostname. - networking.enableIPv6 = false; - # networking.wireless.enable = true; # Enables wireless support via wpa_supplicant. + security.polkit.enable = true; - # Configure network proxy if necessary networking.proxy.default = - # "http://user:password@proxy:port/"; networking.proxy.noProxy = - # "127.0.0.1,localhost,internal.domain"; + + # Bootloader. + boot.loader.systemd-boot.enable = true; + boot.loader.efi.canTouchEfiVariables = true; + + networking.hostName = "nico-nixos-laptop"; # Define your hostname. + networking.enableIPv6 = false; +# 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; + hardware.bluetooth.enable = true; + services.blueman.enable = true; + + services.resolved = { + enable = true; + }; + + services.mullvad-vpn.enable = true; - # VM - virtualisation.virtualbox.host.enable = true; - virtualisation.virtualbox.host.enableExtensionPack = true; -# virtualisation.virtualbox.host.enableKvm = true; -# virtualisation.virtualbox.host.addNetworkInterface = false; - users.extraGroups.vboxusers.members = [ "nico" ]; - # virtualisation.virtualbox.guest.enable = true; - # virtualisation.virtualbox.guest.dragAndDrop = true; -# virtualisation.docker.enable = true; # Set your time zone. time.timeZone = "Europe/Berlin"; @@ -103,107 +64,148 @@ boot.loader.grub.useOSProber = true; # 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"; + i18n.extraLocaleSettings = { + LC_ADDRESS = "de_DE.UTF-8"; + LC_IDENTIFICATION = "de_DE.UTF-8"; + LC_MEASUREMENT = "de_DE.UTF-8"; + LC_MONETARY = "de_DE.UTF-8"; + LC_NAME = "de_DE.UTF-8"; + LC_NUMERIC = "de_DE.UTF-8"; + LC_PAPER = "de_DE.UTF-8"; + LC_TELEPHONE = "de_DE.UTF-8"; + LC_TIME = "de_DE.UTF-8"; }; - # Enable the X11 windowing system. You can disable this if you're only using the Wayland session. + + # Enable the X11 windowing system. services.xserver.enable = true; - # Enable the KDE Plasma Desktop Environment. + # Enable the XFCE Desktop Environment. services.displayManager.sddm.enable = true; - services.desktopManager.plasma6.enable = true; + services.desktopManager.plasma6.enable = true; + + environment.plasma6.excludePackages = with pkgs.kdePackages; [ + konsole + ]; + + + + virtualisation.virtualbox.host.enable = true; + users.extraGroups.vboxusers.members = [ "n" ]; + virtualisation.virtualbox.host.enableExtensionPack = true; + # Configure keymap in X11 - services.xserver = { xkb.layout = "us"; xkb.variant = ""; + services.xserver = { + xkb = { + variant = ""; + layout = "de"; + }; }; # Configure console keymap - console.keyMap = "us"; + console.keyMap = "de"; # Enable CUPS to print documents. services.printing.enable = true; # Enable sound with pipewire. - services.pulseaudio.enable = true; - security.rtkit.enable = true; - services.pipewire = { - enable = false; - alsa.enable = true; - alsa.support32Bit = true; + services.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; + # 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) + # 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; }; - # Enable touchpad support (enabled default in most desktopManager). services.xserver.libinput.enable - # = true; + # Enable touchpad support (enabled default in most desktopManager). + services.libinput.enable = true; + + programs.light.enable = true; + + programs.zsh.enable = true; +# programs.nushell.enable = true; # Define a user account. Don't forget to set a password with ‘passwd’. - users.users.nico = { isNormalUser = true; description = "nico"; extraGroups = [ "networkmanager" - "wheel" "adbusers" "docker"]; packages = with pkgs; [ - obsidian - musescore - mullvad-vpn + users.users.n = { + isNormalUser = true; + description = "n"; + extraGroups = [ "networkmanager" "wheel" "video" "adbusers" "input" ]; + packages = with pkgs; [ + obsidian ]; + shell = pkgs.nushell; }; - users.defaultUserShell = pkgs.nushell; - environment.shells = with pkgs; [ zsh nushell ]; - programs.zsh.enable = true; + # Install firefox. programs.firefox.enable = true; + services.flatpak.enable = true; + # Allow unfree packages nixpkgs.config.allowUnfree = true; +# nixpkgs.config.allowBroken = true; - # List packages installed in system profile. To search, run: $ nix search wget + # List packages installed in system profile. To search, run: + # $ nix search wget + environment.systemPackages = with pkgs; [ - vim # Do not forget to add an editor to edit configuration.nix! The Nano editor is also installed - wget - git - kitty - tree - nodejs - gparted - heroic - wineWowPackages.stable - spotify - sshfs - # sway - networkmanager - networkmanagerapplet - wl-clipboard # wl-copy and wl-paste for copy/paste from stdin / stdout - mako # notification system developed by swaywm maintainer - waybar # bar - pulseaudio - pavucontrol - brightnessctl # brightness controls - wpaperd # wallpaper manager + inputs.nixStable.legacyPackages.${pkgs.system}.heroic + + + pkgs.vim + pkgs.wget + pkgs.git +# pkgs.kitty + pkgs.tree + pkgs.nodejs + pkgs.anki-bin + pkgs.unzip + pkgs.mullvad-vpn +# pkgs.butterfly + pkgs.btop +# pkgs.cura +# bitwarden-cli + + + # nvim + pkgs.gnumake + pkgs.python312Packages.pip + pkgs.python312 + pkgs.cargo + pkgs.rustup + pkgs.rust-analyzer + pkgs.ripgrep + pkgs.gcc + pkgs.lua-language-server + pkgs.nil + + # sway + pkgs.networkmanagerapplet + pkgs.wl-clipboard # wl-copy and wl-paste for copy/paste from stdin / stdout + pkgs.go + pkgs.cliphist + pkgs.mako # notification system developed by swaywm maintainer + pkgs.waybar # bar + pkgs.pulseaudio # audiocontrols + pkgs.brightnessctl # brightness controls + pkgs.wpaperd # wallpaper manager + pkgs.onboard + ]; -fonts.packages = with pkgs; [ -# iosevka - # (nerdfonts.override { fonts = [ "JetBrainsMono" "UbuntuMono" ]; }) - nerd-fonts.jetbrains-mono - nerd-fonts.ubuntu-mono -]; - -hardware.amdgpu.opencl.enable = true; - - programs.steam = { - enable = true; - }; - - - services.gnome.gnome-keyring.enable = true; + services.gnome.gnome-keyring.enable = true; programs.sway = { enable = true; @@ -211,23 +213,32 @@ hardware.amdgpu.opencl.enable = true; }; -# programs.hyprland = { -# enable = true; -# package = inputs.hyprland.packages.${pkgs.stdenv.hostPlatform.system}.hyprland; -# }; + #fonts +fonts.packages = with pkgs; [ + #iosevka +# (nerdfonts.override { fonts = [ "JetBrainsMono" "UbuntuMono" ]; }) + nerd-fonts.jetbrains-mono + nerd-fonts.ubuntu-mono +]; - # 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; + # 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; + # Enable the OpenSSH daemon. + # services.openssh.enable = true; - # Open ports in the firewall. networking.firewall.allowedTCPPorts = [ ... ]; - # networking.firewall.allowedUDPPorts = [ ... ]; Or disable the firewall altogether. + # Open ports in the firewall. + # networking.firewall.allowedTCPPorts = [ ... ]; + # networking.firewall.allowedUDPPorts = [ ... ]; + # Or disable the firewall altogether. # networking.firewall.enable = false; networking.firewall = { @@ -241,11 +252,12 @@ hardware.amdgpu.opencl.enable = true; }; - # 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). + # 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.05"; # Did you read the comment? } diff --git a/configuration.nix~ b/configuration.nix~ index cd57385..e1e3479 100644 --- a/configuration.nix~ +++ b/configuration.nix~ @@ -1,19 +1,23 @@ -# 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’). +# 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, inputs, ... }: -{ imports = +{ + imports = [ # Include the results of the hardware scan. ./hardware-configuration.nix inputs.home-manager.nixosModules.default - ]; + + ]; + # home manager home-manager = { extraSpecialArgs = { inherit inputs; }; users = { - "nico" = import ./home-nico.nix; + "n" = import ./home-nico.nix; }; }; @@ -21,81 +25,38 @@ # programs.hyprland = { # enable = true; # xwayland.enable = true; -# }; + # }; - # Bootloader. -# boot.loader.grub.enable = true; boot.loader.grub.device = "/dev/sda"; boot.loader.grub.useOSProber = true; + boot.supportedFilesystems = [ "ntfs" ]; -boot.supportedFilesystems = [ "zfs" ]; -boot.zfs.forceImportRoot = false; -networking.hostId = "8425e349"; - - - -# Boot loader config for configuration.nix: -boot.loader.grub.useOSProber = true; - boot.loader.grub = { - enable = true; - zfsSupport = true; - efiSupport = true; - efiInstallAsRemovable = true; - mirroredBoots = [ - { devices = [ "nodev"]; path = "/boot"; } - ]; - }; - - fileSystems."/" = - { device = "zpool/root"; - fsType = "zfs"; - }; - - fileSystems."/nix" = - { device = "zpool/nix"; - fsType = "zfs"; - }; - - fileSystems."/home" = - { device = "zpool/home"; - fsType = "zfs"; - }; - - fileSystems."/boot" = - { device = "/dev/disk/by-uuid/49CB-AECA"; - fsType = "vfat"; - }; - -# fileSystems."/mnt" = -# { -# device = "/dev/disk/by-label/HDD"; -# fsType = "ext4"; -# }; - - - swapDevices = [ ]; - - # Flakes nix.settings.experimental-features = [ "nix-command" "flakes" ]; - networking.hostName = "nico-nixos"; # Define your hostname. - networking.enableIPv6 = false; - # networking.wireless.enable = true; # Enables wireless support via wpa_supplicant. + security.polkit.enable = true; - # Configure network proxy if necessary networking.proxy.default = - # "http://user:password@proxy:port/"; networking.proxy.noProxy = - # "127.0.0.1,localhost,internal.domain"; + + # Bootloader. + boot.loader.systemd-boot.enable = true; + boot.loader.efi.canTouchEfiVariables = true; + + networking.hostName = "nico-nixos-laptop"; # Define your hostname. + networking.enableIPv6 = false; +# 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; + hardware.bluetooth.enable = true; + services.blueman.enable = true; + + services.resolved = { + enable = true; + }; + + services.mullvad-vpn.enable = true; - # VM - virtualisation.virtualbox.host.enable = true; - virtualisation.virtualbox.host.enableExtensionPack = true; -# virtualisation.virtualbox.host.enableKvm = true; -# virtualisation.virtualbox.host.addNetworkInterface = false; - users.extraGroups.vboxusers.members = [ "nico" ]; - # virtualisation.virtualbox.guest.enable = true; - # virtualisation.virtualbox.guest.dragAndDrop = true; -# virtualisation.docker.enable = true; # Set your time zone. time.timeZone = "Europe/Berlin"; @@ -103,107 +64,148 @@ boot.loader.grub.useOSProber = true; # 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"; + i18n.extraLocaleSettings = { + LC_ADDRESS = "de_DE.UTF-8"; + LC_IDENTIFICATION = "de_DE.UTF-8"; + LC_MEASUREMENT = "de_DE.UTF-8"; + LC_MONETARY = "de_DE.UTF-8"; + LC_NAME = "de_DE.UTF-8"; + LC_NUMERIC = "de_DE.UTF-8"; + LC_PAPER = "de_DE.UTF-8"; + LC_TELEPHONE = "de_DE.UTF-8"; + LC_TIME = "de_DE.UTF-8"; }; - # Enable the X11 windowing system. You can disable this if you're only using the Wayland session. + + # Enable the X11 windowing system. services.xserver.enable = true; - # Enable the KDE Plasma Desktop Environment. + # Enable the XFCE Desktop Environment. services.displayManager.sddm.enable = true; - services.desktopManager.plasma6.enable = true; + services.desktopManager.plasma6.enable = true; + + environment.plasma6.excludePackages = with pkgs.kdePackages; [ + konsole + ]; + + + + virtualisation.virtualbox.host.enable = true; + users.extraGroups.vboxusers.members = [ "n" ]; + virtualisation.virtualbox.host.enableExtensionPack = true; + # Configure keymap in X11 - services.xserver = { xkb.layout = "us"; xkb.variant = ""; + services.xserver = { + xkb = { + variant = ""; + layout = "de"; + }; }; # Configure console keymap - console.keyMap = "us"; + console.keyMap = "de"; # Enable CUPS to print documents. services.printing.enable = true; # Enable sound with pipewire. - services.pulseaudio.enable = true; - security.rtkit.enable = true; - services.pipewire = { - enable = false; - alsa.enable = true; - alsa.support32Bit = true; + services.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; + # 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) + # 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; }; - # Enable touchpad support (enabled default in most desktopManager). services.xserver.libinput.enable - # = true; + # Enable touchpad support (enabled default in most desktopManager). + services.libinput.enable = true; + + programs.light.enable = true; + + programs.zsh.enable = true; +# programs.nushell.enable = true; # Define a user account. Don't forget to set a password with ‘passwd’. - users.users.nico = { isNormalUser = true; description = "nico"; extraGroups = [ "networkmanager" - "wheel" "adbusers" "docker"]; packages = with pkgs; [ - obsidian - musescore - mullvad-vpn + users.users.n = { + isNormalUser = true; + description = "n"; + extraGroups = [ "networkmanager" "wheel" "video" "adbusers" "input" ]; + packages = with pkgs; [ + obsidian ]; + shell = pkgs.nushell; }; - users.defaultUserShell = pkgs.nushell; - environment.shells = with pkgs; [ zsh nushell ]; - programs.zsh.enable = true; + # Install firefox. programs.firefox.enable = true; + services.flatpak.enable = true; + # Allow unfree packages nixpkgs.config.allowUnfree = true; +# nixpkgs.config.allowBroken = true; - # List packages installed in system profile. To search, run: $ nix search wget + # List packages installed in system profile. To search, run: + # $ nix search wget + environment.systemPackages = with pkgs; [ - vim # Do not forget to add an editor to edit configuration.nix! The Nano editor is also installed - wget - git - kitty - tree - nodejs - gparted - heroic - wineWowPackages.stable - spotify - sshfs - # sway - networkmanager - networkmanagerapplet - wl-clipboard # wl-copy and wl-paste for copy/paste from stdin / stdout - mako # notification system developed by swaywm maintainer - waybar # bar - pulseaudio - pavucontrol - brightnessctl # brightness controls - wpaperd # wallpaper manager + inputs.nixStable.legacyPackages.${pkgs.system}.heroic + + + pkgs.vim + pkgs.wget + pkgs.git +# pkgs.kitty + pkgs.tree + pkgs.nodejs + pkgs.anki-bin + pkgs.unzip + pkgs.mullvad-vpn +# pkgs.butterfly + pkgs.btop +# pkgs.cura +# bitwarden-cli + + + # nvim + pkgs.gnumake + pkgs.python312Packages.pip + pkgs.python312 + pkgs.cargo + pkgs.rustup + pkgs.ripgrep + pkgs.gcc + pkgs.lua-language-server + pkgs.nil + pkgs.rust-analyzer + + # sway + pkgs.networkmanagerapplet + pkgs.wl-clipboard # wl-copy and wl-paste for copy/paste from stdin / stdout + pkgs.go + pkgs.cliphist + pkgs.mako # notification system developed by swaywm maintainer + pkgs.waybar # bar + pkgs.pulseaudio # audiocontrols + pkgs.brightnessctl # brightness controls + pkgs.wpaperd # wallpaper manager + pkgs.onboard + ]; -fonts.packages = with pkgs; [ -# iosevka - # (nerdfonts.override { fonts = [ "JetBrainsMono" "UbuntuMono" ]; }) - nerd-fonts.jetbrains-mono - nerd-fonts.ubuntu-mono -]; - -hardware.amdgpu.opencl.enable = true; - - programs.steam = { - enable = true; - }; - - - services.gnome.gnome-keyring.enable = true; + services.gnome.gnome-keyring.enable = true; programs.sway = { enable = true; @@ -211,23 +213,32 @@ hardware.amdgpu.opencl.enable = true; }; -# programs.hyprland = { -# enable = true; -# package = inputs.hyprland.packages.${pkgs.stdenv.hostPlatform.system}.hyprland; -# }; + #fonts +fonts.packages = with pkgs; [ + #iosevka +# (nerdfonts.override { fonts = [ "JetBrainsMono" "UbuntuMono" ]; }) + nerd-fonts.jetbrains-mono + nerd-fonts.ubuntu-mono +]; - # 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; + # 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; + # Enable the OpenSSH daemon. + # services.openssh.enable = true; - # Open ports in the firewall. networking.firewall.allowedTCPPorts = [ ... ]; - # networking.firewall.allowedUDPPorts = [ ... ]; Or disable the firewall altogether. + # Open ports in the firewall. + # networking.firewall.allowedTCPPorts = [ ... ]; + # networking.firewall.allowedUDPPorts = [ ... ]; + # Or disable the firewall altogether. # networking.firewall.enable = false; networking.firewall = { @@ -241,11 +252,12 @@ hardware.amdgpu.opencl.enable = true; }; - # 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). + # 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.05"; # Did you read the comment? } diff --git a/flake.lock b/flake.lock index 504f4a0..72a0027 100644 --- a/flake.lock +++ b/flake.lock @@ -40,6 +40,42 @@ "type": "github" } }, + "flake-parts": { + "inputs": { + "nixpkgs-lib": "nixpkgs-lib" + }, + "locked": { + "lastModified": 1741352980, + "narHash": "sha256-+u2UunDA4Cl5Fci3m7S643HzKmIDAe+fiXrLqYsR2fs=", + "owner": "hercules-ci", + "repo": "flake-parts", + "rev": "f4330d22f1c5d2ba72d3d22df5597d123fdb60a9", + "type": "github" + }, + "original": { + "owner": "hercules-ci", + "repo": "flake-parts", + "type": "github" + } + }, + "flake-utils": { + "inputs": { + "systems": "systems" + }, + "locked": { + "lastModified": 1731533236, + "narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "11707dc2f618dd54ca8739b309ec4fc024de578b", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, "home-manager": { "inputs": { "nixpkgs": [ @@ -47,11 +83,11 @@ ] }, "locked": { - "lastModified": 1742411397, - "narHash": "sha256-qsFtK4H/IxBHoUD7aWDL+emAfh++E42gRMaGskT3irs=", + "lastModified": 1741955947, + "narHash": "sha256-2lbURKclgKqBNm7hVRtWh0A7NrdsibD0EaWhahUVhhY=", "owner": "nix-community", "repo": "home-manager", - "rev": "27a72d991305cfd9b15018a6e7eb3db93a32bc60", + "rev": "4e12151c9e014e2449e0beca2c0e9534b96a26b4", "type": "github" }, "original": { @@ -60,6 +96,63 @@ "type": "github" } }, + "mnw": { + "locked": { + "lastModified": 1742255973, + "narHash": "sha256-XfEGVKatTgEMMOVb4SNp1LYLQOSzzrFTDMVDTZFyMVE=", + "owner": "Gerg-L", + "repo": "mnw", + "rev": "b982dbd5e6d55d4438832b3567c09bc2a129649d", + "type": "github" + }, + "original": { + "owner": "Gerg-L", + "repo": "mnw", + "type": "github" + } + }, + "nil": { + "inputs": { + "flake-utils": [ + "nvf", + "flake-utils" + ], + "nixpkgs": [ + "nvf", + "nixpkgs" + ], + "rust-overlay": "rust-overlay" + }, + "locked": { + "lastModified": 1741118843, + "narHash": "sha256-ggXU3RHv6NgWw+vc+HO4/9n0GPufhTIUjVuLci8Za8c=", + "owner": "oxalica", + "repo": "nil", + "rev": "577d160da311cc7f5042038456a0713e9863d09e", + "type": "github" + }, + "original": { + "owner": "oxalica", + "repo": "nil", + "type": "github" + } + }, + "nixStable": { + "locked": { + "lastModified": 1741862977, + "narHash": "sha256-prZ0M8vE/ghRGGZcflvxCu40ObKaB+ikn74/xQoNrGQ=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "cdd2ef009676ac92b715ff26630164bb88fec4e0", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-24.11", + "repo": "nixpkgs", + "type": "github" + } + }, "nixpkgs": { "locked": { "lastModified": 1737469691, @@ -76,13 +169,28 @@ "type": "github" } }, + "nixpkgs-lib": { + "locked": { + "lastModified": 1740877520, + "narHash": "sha256-oiwv/ZK/2FhGxrCkQkB83i7GnWXPPLzoqFHpDD3uYpk=", + "owner": "nix-community", + "repo": "nixpkgs.lib", + "rev": "147dee35aab2193b174e4c0868bd80ead5ce755c", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "nixpkgs.lib", + "type": "github" + } + }, "nixpkgs_2": { "locked": { - "lastModified": 1742288794, - "narHash": "sha256-Txwa5uO+qpQXrNG4eumPSD+hHzzYi/CdaM80M9XRLCo=", + "lastModified": 1741851582, + "narHash": "sha256-cPfs8qMccim2RBgtKGF+x9IBCduRvd/N5F4nYpU0TVE=", "owner": "nixos", "repo": "nixpkgs", - "rev": "b6eaf97c6960d97350c584de1b6dcff03c9daf42", + "rev": "6607cf789e541e7873d40d3a8f7815ea92204f32", "type": "github" }, "original": { @@ -92,11 +200,104 @@ "type": "github" } }, + "nixpkgs_3": { + "locked": { + "lastModified": 1743076231, + "narHash": "sha256-yQugdVfi316qUfqzN8JMaA2vixl+45GxNm4oUfXlbgw=", + "owner": "nixos", + "repo": "nixpkgs", + "rev": "6c5963357f3c1c840201eda129a99d455074db04", + "type": "github" + }, + "original": { + "owner": "nixos", + "ref": "nixpkgs-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nvf": { + "inputs": { + "flake-parts": "flake-parts", + "flake-utils": "flake-utils", + "mnw": "mnw", + "nil": "nil", + "nixpkgs": "nixpkgs_3", + "systems": "systems_2" + }, + "locked": { + "lastModified": 1743301931, + "narHash": "sha256-gex4W+Fyn6RB8x9/y+VWY1EG6RItmlW1HJjAj3mWqKc=", + "owner": "notashelf", + "repo": "nvf", + "rev": "05489d95b69b4c81e9b9a66a23f6e0cb1c8edb3d", + "type": "github" + }, + "original": { + "owner": "notashelf", + "repo": "nvf", + "type": "github" + } + }, "root": { "inputs": { "ags": "ags", "home-manager": "home-manager", - "nixpkgs": "nixpkgs_2" + "nixStable": "nixStable", + "nixpkgs": "nixpkgs_2", + "nvf": "nvf" + } + }, + "rust-overlay": { + "inputs": { + "nixpkgs": [ + "nvf", + "nil", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1741055476, + "narHash": "sha256-52vwEV0oS2lCnx3c/alOFGglujZTLmObit7K8VblnS8=", + "owner": "oxalica", + "repo": "rust-overlay", + "rev": "aefb7017d710f150970299685e8d8b549d653649", + "type": "github" + }, + "original": { + "owner": "oxalica", + "repo": "rust-overlay", + "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" + } + }, + "systems_2": { + "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 deaab76..e259d34 100644 --- a/flake.nix +++ b/flake.nix @@ -3,6 +3,7 @@ inputs = { nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable"; + nixStable.url = "github:NixOS/nixpkgs/nixos-24.11"; home-manager = { url = "github:nix-community/home-manager"; @@ -10,9 +11,12 @@ }; ags.url = "github:Aylur/ags"; + + nvf.url = "github:notashelf/nvf"; + }; - outputs = { self, nixpkgs, ... }@inputs: + outputs = { self, nixpkgs, nvf, ... }@inputs: let system = "x86_64-linux"; in { nixosConfigurations.my-nixos = nixpkgs.lib.nixosSystem { @@ -22,6 +26,7 @@ }; modules = [ ./configuration.nix +# nvf.homeManagerModules.default inputs.home-manager.nixosModules.default ]; }; diff --git a/flake.nix~ b/flake.nix~ new file mode 100644 index 0000000..bddc8fb --- /dev/null +++ b/flake.nix~ @@ -0,0 +1,34 @@ +{ + description = "Nixos config flake"; + + inputs = { + nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable"; + nixStable.url = "github:NixOS/nixpkgs/nixos-24.11"; + + home-manager = { + url = "github:nix-community/home-manager"; + inputs.nixpkgs.follows = "nixpkgs"; + }; + + ags.url = "github:Aylur/ags"; + + nvf.url = "github:notashelf/nvf"; + + }; + + outputs = { self, nixpkgs, nvf, ... }@inputs: + let system = "x86_64-linux"; in + { + nixosConfigurations.my-nixos = nixpkgs.lib.nixosSystem { + inherit system; + specialArgs = { + inherit inputs; + }; + modules = [ + ./configuration.nix + nvf.homeManagerModules.default + inputs.home-manager.nixosModules.default + ]; + }; + }; +} diff --git a/hardware-configuration.nix b/hardware-configuration.nix index 1055885..d294671 100644 --- a/hardware-configuration.nix +++ b/hardware-configuration.nix @@ -8,28 +8,18 @@ [ (modulesPath + "/installer/scan/not-detected.nix") ]; - boot.initrd.availableKernelModules = [ "nvme" "xhci_pci" "ahci" "usbhid" "usb_storage" "sd_mod" ]; + boot.initrd.availableKernelModules = [ "xhci_pci" "ahci" "usb_storage" "sd_mod" "rtsx_pci_sdmmc" ]; boot.initrd.kernelModules = [ ]; - boot.kernelModules = [ "kvm-amd" ]; + boot.kernelModules = [ "kvm-intel" ]; boot.extraModulePackages = [ ]; fileSystems."/" = - { device = "zpool/root"; - fsType = "zfs"; - }; - - fileSystems."/home" = - { device = "zpool/home"; - fsType = "zfs"; - }; - - fileSystems."/nix" = - { device = "zpool/nix"; - fsType = "zfs"; + { device = "/dev/disk/by-uuid/1d64861a-3d30-4b76-8a19-9a68618ddf3a"; + fsType = "ext4"; }; fileSystems."/boot" = - { device = "/dev/disk/by-uuid/49CB-AECA"; + { device = "/dev/disk/by-uuid/580D-111D"; fsType = "vfat"; options = [ "fmask=0022" "dmask=0022" ]; }; @@ -41,8 +31,9 @@ # 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.enp4s0.useDHCP = lib.mkDefault true; + # networking.interfaces.enp0s31f6.useDHCP = lib.mkDefault true; + # networking.interfaces.wlp4s0.useDHCP = lib.mkDefault true; nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; - hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware; + hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware; } diff --git a/home-nico.nix b/home-nico.nix index 18345d1..8c9298b 100644 --- a/home-nico.nix +++ b/home-nico.nix @@ -1,8 +1,8 @@ { config, pkgs, inputs, ... }: { - home.username = "nico"; - home.homeDirectory = "/home/nico"; + home.username = "n"; + home.homeDirectory = "/home/n"; imports = [ ./packages @@ -24,4 +24,3 @@ programs.home-manager.enable = true; } - diff --git a/packages/alacritty/alacritty.toml b/packages/alacritty/alacritty.toml new file mode 100644 index 0000000..859693f --- /dev/null +++ b/packages/alacritty/alacritty.toml @@ -0,0 +1,3 @@ +general.import = [ + "/etc/nixos/packages/alacritty/catppuccin-mocha.toml" +] \ No newline at end of file diff --git a/packages/alacritty/alacritty.toml~ b/packages/alacritty/alacritty.toml~ new file mode 100644 index 0000000..4d2f567 --- /dev/null +++ b/packages/alacritty/alacritty.toml~ @@ -0,0 +1,3 @@ +general.import = [ + "~/.config/alacritty/catppuccin-mocha.toml" +] \ No newline at end of file diff --git a/packages/alacritty/catppuccin-mocha.toml b/packages/alacritty/catppuccin-mocha.toml new file mode 100644 index 0000000..7762dcd --- /dev/null +++ b/packages/alacritty/catppuccin-mocha.toml @@ -0,0 +1,65 @@ +[colors.primary] +background = "#1e1e2e" +foreground = "#cdd6f4" +dim_foreground = "#7f849c" +bright_foreground = "#cdd6f4" + +[colors.cursor] +text = "#1e1e2e" +cursor = "#f5e0dc" + +[colors.vi_mode_cursor] +text = "#1e1e2e" +cursor = "#b4befe" + +[colors.search.matches] +foreground = "#1e1e2e" +background = "#a6adc8" + +[colors.search.focused_match] +foreground = "#1e1e2e" +background = "#a6e3a1" + +[colors.footer_bar] +foreground = "#1e1e2e" +background = "#a6adc8" + +[colors.hints.start] +foreground = "#1e1e2e" +background = "#f9e2af" + +[colors.hints.end] +foreground = "#1e1e2e" +background = "#a6adc8" + +[colors.selection] +text = "#1e1e2e" +background = "#f5e0dc" + +[colors.normal] +black = "#45475a" +red = "#f38ba8" +green = "#a6e3a1" +yellow = "#f9e2af" +blue = "#89b4fa" +magenta = "#f5c2e7" +cyan = "#94e2d5" +white = "#bac2de" + +[colors.bright] +black = "#585b70" +red = "#f38ba8" +green = "#a6e3a1" +yellow = "#f9e2af" +blue = "#89b4fa" +magenta = "#f5c2e7" +cyan = "#94e2d5" +white = "#a6adc8" + +[[colors.indexed_colors]] +index = 16 +color = "#fab387" + +[[colors.indexed_colors]] +index = 17 +color = "#f5e0dc" diff --git a/packages/alacritty/default.nix b/packages/alacritty/default.nix new file mode 100644 index 0000000..395f2be --- /dev/null +++ b/packages/alacritty/default.nix @@ -0,0 +1,12 @@ +{pkgs, config, lib, ...}: +{ + home.packages = with pkgs; [ + alacritty + ]; + + home.file = { + ".config/alacritty/alacritty.toml" = { + source = "/etc/nixos/packages/alacritty/alacritty.toml"; + }; + }; +} diff --git a/packages/alacritty/default.nix~ b/packages/alacritty/default.nix~ new file mode 100644 index 0000000..d82f1d9 --- /dev/null +++ b/packages/alacritty/default.nix~ @@ -0,0 +1,13 @@ +{pkgs, config, lib, ...}: +{ + home.packages = with pkgs; [ + alacritty + alacritty-theme + ]; + + home.file = { + ".config/alacritty/alacritty.toml" = { + source = "/etc/nixos/packages/alacritty/alacritty.toml"; + }; + }; +} diff --git a/packages/default.nix b/packages/default.nix index 2af188b..d664cd0 100644 --- a/packages/default.nix +++ b/packages/default.nix @@ -10,7 +10,9 @@ ./emacs ./kitty ./rofi - ./tmux + ./alacritty + ./mako +# ./qutebrowser # ./hyprland # ./vscode ]; diff --git a/packages/default.nix~ b/packages/default.nix~ index fc191ba..0dc6c96 100644 --- a/packages/default.nix~ +++ b/packages/default.nix~ @@ -10,6 +10,8 @@ ./emacs ./kitty ./rofi + ./alacritty +# ./qutebrowser # ./hyprland # ./vscode ]; diff --git a/packages/emacs/default.nix~ b/packages/emacs/default.nix~ index fc0e811..5cfbf75 100644 --- a/packages/emacs/default.nix~ +++ b/packages/emacs/default.nix~ @@ -12,6 +12,7 @@ in { (telephone-line-mode 1) (xterm-mouse-mode 1) + (setq evil-want-C-u-scroll t) (menu-bar--display-line-numbers-mode-relative) @@ -232,13 +233,14 @@ in { (setq lsp-keymap-prefix "C-c l") (require 'lsp-mode) - +(evil-set-undo-system 'undo-redo) (flycheck-inline-mode nil) +(global-evil-vimish-fold-mode 1) ''; package = emacsWithPackages (epkgs: (with epkgs.melpaStablePackages; [ - catppuccin-theme ]) - ++ (with epkgs.melpaPackages; [ + ++ (with epkgs.melpaPackages; [ + catppuccin-theme evil nix-mode lsp-treemacs @@ -258,6 +260,7 @@ in { which-key magit format-all + evil-vimish-fold ]) ++ (with epkgs.elpaPackages; [ undo-tree diff --git a/packages/emacs/flutter/flake.nix b/packages/emacs/flutter/flake.nix index 72e72c8..86ec676 100644 --- a/packages/emacs/flutter/flake.nix +++ b/packages/emacs/flutter/flake.nix @@ -1,7 +1,7 @@ { description = "Flutter 3.13.x"; inputs = { - nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable"; + nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable"; flake-utils.url = "github:numtide/flake-utils"; }; outputs = { self, nixpkgs, flake-utils }: @@ -14,46 +14,18 @@ outputs = { self, nixpkgs, flake-utils }: allowUnfree = true; }; }; - buildToolsVersion = "34.0.0"; - androidComposition = pkgs.androidenv.composeAndroidPackages { - buildToolsVersions = [ buildToolsVersion "33.0.1" ]; - platformVersions = [ "34" "33" "28" ]; - abiVersions = [ "armeabi-v7a" "arm64-v8a" ]; - }; - androidSdk = androidComposition.androidsdk; + androidSdk = pkgs.androidenv.androidSdk in { devShell = with pkgs; mkShell rec { - shellHook = '' - nu - exit - ''; - GRADLE_OPTS = "-Dorg.gradle.project.android.aapt2FromMavenOverride=${androidSdk}/libexec/android-sdk/build-tools/33.0.1/aapt2"; - ANDROID_SDK_ROOT = "${androidSdk}/libexec/android-sdk"; buildInputs = [ flutter - androidSdk # The customized SDK that we've made above + androidSdk jdk17 - - (vscode-with-extensions.override { - vscode = vscodium; - vscodeExtensions = with vscode-extensions; [ - vscodevim.vim - dart-code.dart-code - dart-code.flutter - ] ++ pkgs.vscode-utils.extensionsFromVscodeMarketplace[ - { - name = "awesome-flutter-snippets"; - publisher = "nash"; - version = "4.0.1"; - sha256 = "lXdos/xB18h3Z0YfkgEk55G2JvRMYudUUIltugQjylU="; - } - ]; - }) ]; - }; }); } + diff --git a/packages/kitty/default.nix b/packages/kitty/default.nix index 421667d..0150fc0 100644 --- a/packages/kitty/default.nix +++ b/packages/kitty/default.nix @@ -51,7 +51,7 @@ programs.zsh = { shellAliases = { update = "sudo nixos-rebuild switch --flake /etc/nixos/#my-nixos"; emacs = "emacs -nw"; - femacs = "emacs -nw --load /home/n/Documents/Shells/flutter/init.el"; + femacs = "emacs -nw --load /etc/nixos/packages/emacs/flutter/init.el"; pemacs = "emacs -nw --load /home/n/Documents/Shells//python/init.el"; }; zplug = { @@ -71,7 +71,7 @@ programs.zsh = { programs.kitty = { - enable = true; + enable = false; extraConfig = '' diff --git a/packages/kitty/default.nix~ b/packages/kitty/default.nix~ index 5918d8b..fe4836e 100644 --- a/packages/kitty/default.nix~ +++ b/packages/kitty/default.nix~ @@ -5,6 +5,25 @@ ]; + + +programs.nushell = { + enable = true; + extraConfig = '' + $env.config = { + show_banner: false, + edit_mode: vi + } + ''; + shellAliases = { + update = "sudo nixos-rebuild switch --flake /etc/nixos/#my-nixos"; + emacs = "emacs -nw"; + femacs = "emacs -nw --load /etc/nixos/packages/emacs/flutter/init.el"; + pemacs = "emacs -nw --load /home/n/Documents/Shells//python/init.el"; + }; +}; + + programs.starship = { enable = true; @@ -13,6 +32,10 @@ programs.starship = { }; }; +programs.carapace = { + enable = true; + enableNushellIntegration = true; +}; programs.zsh = { @@ -28,7 +51,7 @@ programs.zsh = { shellAliases = { update = "sudo nixos-rebuild switch --flake /etc/nixos/#my-nixos"; emacs = "emacs -nw"; - femacs = "emacs -nw --load /home/n/Documents/Shells/flutter/init.el"; + femacs = "emacs -nw --load /etc/nixos/packages/emacs/flutter/init.el"; pemacs = "emacs -nw --load /home/n/Documents/Shells//python/init.el"; }; zplug = { @@ -60,6 +83,7 @@ programs.kitty = { ## upstream: https://github.com/catppuccin/kitty/blob/main/themes/mocha.conf ## blurb: Soothing pastel theme for the high-spirited! +map ctrl+shift+w no_op # The basic colors diff --git a/packages/mako/config b/packages/mako/config new file mode 100644 index 0000000..1ec1e5d --- /dev/null +++ b/packages/mako/config @@ -0,0 +1,9 @@ +# Colors + +background-color=#1e1e2e +text-color=#cdd6f4 +border-color=#cba6f7 +progress-color=over #313244 + +[urgency=high] +border-color=#fab387 \ No newline at end of file diff --git a/packages/mako/default.nix b/packages/mako/default.nix new file mode 100644 index 0000000..844dd1b --- /dev/null +++ b/packages/mako/default.nix @@ -0,0 +1,12 @@ +{ pkgs, config, lib, ...}: +{ + home.packages = with pkgs; [ + mako + ]; + + home.file = { + ".config/mako/config" = { + source = "/etc/nixos/packages/mako/config" ; + }; + }; +} diff --git a/packages/nvim/default.nix b/packages/nvim/default.nix index 8ff19b7..4d386c3 100644 --- a/packages/nvim/default.nix +++ b/packages/nvim/default.nix @@ -2,7 +2,7 @@ { home.packages = with pkgs; [ - + ]; programs.neovim = { @@ -13,19 +13,24 @@ programs.neovim = { programs.neovim.plugins = [ pkgs.vimPlugins.lazy-nvim + pkgs.vimPlugins.nvim-lspconfig ]; home.file = lib.mkMerge [ { - ".config/nvim/init.lua".source = ./init.lua; + ".config/nvim/init.lua".source = ./init.lua; ".config/nvim/lua/config/lazy.lua".source = ./lua/config/lazy.lua; - ".config/nvim/lua/plugins/flutter.lua".source = ./lua/plugins/flutter.lua; +# ".config/nvim/lua/plugins/flutter.lua".source = ./lua/plugins/flutter.lua; ".config/nvim/lua/plugins/coq.lua".source = ./lua/plugins/coq.lua; ".config/nvim/lua/plugins/treesitter.lua".source = ./lua/plugins/treesitter.lua; ".config/nvim/lua/plugins/catppuccin.lua".source = ./lua/plugins/catppuccin.lua; ".config/nvim/lua/plugins/telescope.lua".source = ./lua/plugins/telescope.lua; ".config/nvim/lua/plugins/highlight-colors.lua".source = ./lua/plugins/highlight-colors.lua; + ".config/nvim/lua/plugins/comment.lua".source = ./lua/plugins/comment.lua; +# ".config/nvim/lua/plugins/lazydev.lua".source = ./lua/plugins/lazydev.lua; + ".config/nvim/lua/plugins/lualine.lua".source = ./lua/plugins/lualine.lua; + ".config/nvim/lua/plugins/whichkey.lua".source = ./lua/plugins/whichkey.lua; } ]; } diff --git a/packages/nvim/default.nix.backup b/packages/nvim/default.nix.backup new file mode 100644 index 0000000..34a3cbc --- /dev/null +++ b/packages/nvim/default.nix.backup @@ -0,0 +1,36 @@ +{ inputs, pkgs, lib, config, ...}: +{ + imports = [ inputs.nvf.homeManagerModules.default ]; + + programs.nvf = { + enable = true; + # your settings need to go into the settings attribute set + # most settings are documented in the appendix + settings = { + vim.viAlias = false; + vim.vimAlias = true; + + vim.theme = { + enable = true; + name = "catppuccin"; + style = "mocha"; + }; + + vim.statusline.lualine.enable = true; + vim.binds.cheatsheet.enable = true; + vim.binds.whichKey.enable = true; + vim.projects.project-nvim.setupOpts.show_hidden = true; + vim.telescope.enable = true; + vim.autocomplete.blink-cmp.enable = true; + + + vim.lsp = { + enable = false; + }; + vim.languages.clang.enable = true; + vim.languages.rust.enable = true; + + + }; + }; +} diff --git a/packages/nvim/default.nix~ b/packages/nvim/default.nix~ new file mode 100644 index 0000000..8ff19b7 --- /dev/null +++ b/packages/nvim/default.nix~ @@ -0,0 +1,31 @@ +{ pkgs, config, lib,... }: +{ + + home.packages = with pkgs; [ + + ]; + +programs.neovim = { + enable = true; + vimAlias = true; +}; + + +programs.neovim.plugins = [ + pkgs.vimPlugins.lazy-nvim +]; + + home.file = + lib.mkMerge [ + { + ".config/nvim/init.lua".source = ./init.lua; + ".config/nvim/lua/config/lazy.lua".source = ./lua/config/lazy.lua; + ".config/nvim/lua/plugins/flutter.lua".source = ./lua/plugins/flutter.lua; + ".config/nvim/lua/plugins/coq.lua".source = ./lua/plugins/coq.lua; + ".config/nvim/lua/plugins/treesitter.lua".source = ./lua/plugins/treesitter.lua; + ".config/nvim/lua/plugins/catppuccin.lua".source = ./lua/plugins/catppuccin.lua; + ".config/nvim/lua/plugins/telescope.lua".source = ./lua/plugins/telescope.lua; + ".config/nvim/lua/plugins/highlight-colors.lua".source = ./lua/plugins/highlight-colors.lua; + } + ]; +} diff --git a/packages/nvim/init.lua b/packages/nvim/init.lua index c720801..a15d968 100644 --- a/packages/nvim/init.lua +++ b/packages/nvim/init.lua @@ -39,7 +39,7 @@ vim.keymap.set('i', 'jk', '', opts) -- Lazy require("config.lazy") -require("flutter-tools").setup {} -- use defaults +-- require("flutter-tools").setup {} -- use defaults require("catppuccin").setup({ integrations = { cmp = false, @@ -54,8 +54,66 @@ require("catppuccin").setup({ } }) + -- css colors vim.opt.termguicolors = true require('nvim-highlight-colors').setup({}) vim.cmd.colorscheme "catppuccin" + + + + +-- lsp +local on_attach = function(_, bufnr) + + local bufmap = function(keys, func) + vim.keymap.set('n', keys, func, { buffer = bufnr }) + end + + bufmap('r', vim.lsp.buf.rename) + bufmap('a', vim.lsp.buf.code_action) + + bufmap('gd', vim.lsp.buf.definition) + bufmap('gD', vim.lsp.buf.declaration) + bufmap('gI', vim.lsp.buf.implementation) + bufmap('D', vim.lsp.buf.type_definition) + + bufmap('gr', require('telescope.builtin').lsp_references) + bufmap('s', require('telescope.builtin').lsp_document_symbols) + bufmap('S', require('telescope.builtin').lsp_dynamic_workspace_symbols) + + bufmap('K', vim.lsp.buf.hover) + + vim.api.nvim_buf_create_user_command(bufnr, 'Format', function(_) + vim.lsp.buf.format() + end, {}) +end + +local capabilities = vim.lsp.protocol.make_client_capabilities() +capabilities = require('coq').lsp_ensure_capabilities(capabilities) + +require('lspconfig').lua_ls.setup { + on_attach = on_attach, + capabilities = capabilities, + root_dir = function() + return vim.loop.cwd() + end, + cmd = { "lua-lsp" }, + settings = { + Lua = { + workspace = { checkThirdParty = false }, + telemetry = { enable = false }, + }, + } +} + +require('lspconfig').nil_ls.setup { + on_attach = on_attach, + capabilities = capabilities, +} + +require('lspconfig').rust_analyzer.setup { + on_attach = on_attach, + capabilities = capabilities, +} diff --git a/packages/nvim/init.lua~ b/packages/nvim/init.lua~ new file mode 100644 index 0000000..6c68a37 --- /dev/null +++ b/packages/nvim/init.lua~ @@ -0,0 +1,113 @@ +-- Tab +vim.opt.tabstop = 2 -- number of visual spaces per TAB +vim.opt.softtabstop = 2 -- number of spacesin tab when editing +vim.opt.shiftwidth = 2 -- insert 4 spaces on a tab +vim.opt.expandtab = true -- tabs are spaces, mainly because of python + +-- UI config +vim.opt.number = true -- show absolute number +vim.opt.relativenumber = true -- add numbers to each line on the left side +vim.opt.splitbelow = true -- open new vertical split bottom +vim.opt.splitright = true -- open new horizontal splits right +-- vim.opt.termguicolors = true -- enabl 24-bit RGB color in the TUI +vim.opt.showmode = false -- we are experienced, wo don't need the "-- INSERT --" mode hint + +-- Searching +vim.opt.incsearch = true -- search as characters are entered +vim.opt.hlsearch = false -- do not highlight matches +vim.opt.ignorecase = true -- ignore case in searches by default +vim.opt.smartcase = true -- but make it case sensitive if an uppercase is entered + +-- -- Keybinds +vim.keymap.set('n', '', 'h', opts) +vim.keymap.set('n', '', 'j', opts) +vim.keymap.set('n', '', 'k', opts) +vim.keymap.set('n', '', 'l', opts) + +-- Resize with arrows +-- delta: 2 lines +vim.keymap.set('n', '', ':resize -2', opts) +vim.keymap.set('n', '', ':resize +2', opts) +vim.keymap.set('n', '', ':vertical resize -2', opts) +vim.keymap.set('n', '', ':vertical resize +2', opts) + +-- Telescope binds +vim.keymap.set("n", "fb", ":Telescope file_browser") + + +vim.keymap.set('i', 'jk', '', opts) + +-- Lazy +require("config.lazy") +-- require("flutter-tools").setup {} -- use defaults +require("catppuccin").setup({ + integrations = { + cmp = false, + gitsigns = true, + nvimtree = true, + treesitter = true, + notify = false, + mini = { + enabled = false, + indentscope_color = "", + }, + } +}) + +-- css colors +vim.opt.termguicolors = true +require('nvim-highlight-colors').setup({}) + +vim.cmd.colorscheme "catppuccin" + + + + +-- lsp +local on_attach = function(_, bufnr) + + local bufmap = function(keys, func) + vim.keymap.set('n', keys, func, { buffer = bufnr }) + end + + bufmap('r', vim.lsp.buf.rename) + bufmap('a', vim.lsp.buf.code_action) + + bufmap('gd', vim.lsp.buf.definition) + bufmap('gD', vim.lsp.buf.declaration) + bufmap('gI', vim.lsp.buf.implementation) + bufmap('D', vim.lsp.buf.type_definition) + + bufmap('gr', require('telescope.builtin').lsp_references) + bufmap('s', require('telescope.builtin').lsp_document_symbols) + bufmap('S', require('telescope.builtin').lsp_dynamic_workspace_symbols) + + bufmap('K', vim.lsp.buf.hover) + + vim.api.nvim_buf_create_user_command(bufnr, 'Format', function(_) + vim.lsp.buf.format() + end, {}) +end + +local capabilities = vim.lsp.protocol.make_client_capabilities() +capabilities = require('coq').lsp_ensure_capabilities(capabilities) + +require('lspconfig').lua_ls.setup { + on_attach = on_attach, + capabilities = capabilities, + root_dir = function() + return vim.loop.cwd() + end, + cmd = { "lua-lsp" }, + settings = { + Lua = { + workspace = { checkThirdParty = false }, + telemetry = { enable = false }, + }, + } +} + +require('lspconfig').nil_ls.setup { + on_attach = on_attach, + capabilities = capabilities, +} diff --git a/packages/nvim/lua/plugins/comment.lua b/packages/nvim/lua/plugins/comment.lua new file mode 100644 index 0000000..1871cef --- /dev/null +++ b/packages/nvim/lua/plugins/comment.lua @@ -0,0 +1,6 @@ +return { + 'numToStr/Comment.nvim', + opts = { + -- add any options here + } +} diff --git a/packages/nvim/lua/plugins/comment.lua~ b/packages/nvim/lua/plugins/comment.lua~ new file mode 100644 index 0000000..e69de29 diff --git a/packages/nvim/lua/plugins/lazydev.lua b/packages/nvim/lua/plugins/lazydev.lua new file mode 100644 index 0000000..efa06f2 --- /dev/null +++ b/packages/nvim/lua/plugins/lazydev.lua @@ -0,0 +1,33 @@ +return { + { + "folke/lazydev.nvim", + ft = "lua", -- only load on lua files + opts = { + library = { + -- See the configuration section for more details + -- Load luvit types when the `vim.uv` word is found + { path = "${3rd}/luv/library", words = { "vim%.uv" } }, + }, + }, + }, + { -- optional blink completion source for require statements and module annotations + "saghen/blink.cmp", + build = 'cargo +nightly build --release', + + opts = { + sources = { + -- add lazydev to your completion providers + default = { "lazydev", "lsp", "path", "snippets", "buffer" }, + providers = { + lazydev = { + name = "LazyDev", + module = "lazydev.integrations.blink", + -- make lazydev completions top priority (see `:h blink.cmp`) + score_offset = 100, + }, + }, + }, + }, + } + -- { "folke/neodev.nvim", enabled = false }, -- make sure to uninstall or disable neodev.nvim +} \ No newline at end of file diff --git a/packages/nvim/lua/plugins/lazydev.lua~ b/packages/nvim/lua/plugins/lazydev.lua~ new file mode 100644 index 0000000..e69de29 diff --git a/packages/nvim/lua/plugins/lsp.lua b/packages/nvim/lua/plugins/lsp.lua new file mode 100644 index 0000000..dfeed66 --- /dev/null +++ b/packages/nvim/lua/plugins/lsp.lua @@ -0,0 +1,53 @@ +local on_attach = function(_, bufnr) + + local bufmap = function(keys, func) + vim.keymap.set('n', keys, func, { buffer = bufnr }) + end + + bufmap('r', vim.lsp.buf.rename) + bufmap('a', vim.lsp.buf.code_action) + + bufmap('gd', vim.lsp.buf.definition) + bufmap('gD', vim.lsp.buf.declaration) + bufmap('gI', vim.lsp.buf.implementation) + bufmap('D', vim.lsp.buf.type_definition) + + bufmap('gr', require('telescope.builtin').lsp_references) + bufmap('s', require('telescope.builtin').lsp_document_symbols) + bufmap('S', require('telescope.builtin').lsp_dynamic_workspace_symbols) + + bufmap('K', vim.lsp.buf.hover) + + vim.api.nvim_buf_create_user_command(bufnr, 'Format', function(_) + vim.lsp.buf.format() + end, {}) +end + +local capabilities = vim.lsp.protocol.make_client_capabilities() +capabilities = require('coq').lsp_capabilities(capabilities) -- COQ spezifische Fähigkeiten + +require('neodev').setup() +require('lspconfig').lua_ls.setup { + on_attach = on_attach, + capabilities = capabilities, + root_dir = function() + return vim.loop.cwd() + end, + cmd = { "lua-language-server" }, + settings = { + Lua = { + workspace = { checkThirdParty = false }, + telemetry = { enable = false }, + }, + } +} + +require('lspconfig').nil_ls.setup { + on_attach = on_attach, + capabilities = capabilities, +} + +require('lspconfig').rust_analyzer.setup { +on_attach = on_attach, +capabilities = capabilities, +} \ No newline at end of file diff --git a/packages/nvim/lua/plugins/lsp.lua~ b/packages/nvim/lua/plugins/lsp.lua~ new file mode 100644 index 0000000..287bf50 --- /dev/null +++ b/packages/nvim/lua/plugins/lsp.lua~ @@ -0,0 +1,13 @@ +return +{ + "neovim/nvim-lspconfig", + opts = function() + local keys = require("lazyvim.plugins.lsp.keymaps").get() + -- change a keymap + keys[#keys + 1] = { "K", "echo 'hello'" } + -- disable a keymap + keys[#keys + 1] = { "K", false } + -- add a keymap + keys[#keys + 1] = { "H", "echo 'hello'" } + end, +} \ No newline at end of file diff --git a/packages/nvim/lua/plugins/lualine.lua b/packages/nvim/lua/plugins/lualine.lua new file mode 100644 index 0000000..58ecd08 --- /dev/null +++ b/packages/nvim/lua/plugins/lualine.lua @@ -0,0 +1,5 @@ +return { + 'nvim-lualine/lualine.nvim', + dependencies = { 'nvim-tree/nvim-web-devicons' } + +} diff --git a/packages/nvim/lua/plugins/lualine.lua~ b/packages/nvim/lua/plugins/lualine.lua~ new file mode 100644 index 0000000..e69de29 diff --git a/packages/nvim/lua/plugins/whichkey.lua b/packages/nvim/lua/plugins/whichkey.lua new file mode 100644 index 0000000..d62b7b7 --- /dev/null +++ b/packages/nvim/lua/plugins/whichkey.lua @@ -0,0 +1,18 @@ +return { + "folke/which-key.nvim", + event = "VeryLazy", + opts = { + -- your configuration comes here + -- or leave it empty to use the default settings + -- refer to the configuration section below + }, + keys = { + { + "?", + function() + require("which-key").show({ global = false }) + end, + desc = "Buffer Local Keymaps (which-key)", + }, + }, +} \ No newline at end of file diff --git a/packages/nvim/lua/plugins/whichkey.lua~ b/packages/nvim/lua/plugins/whichkey.lua~ new file mode 100644 index 0000000..e69de29 diff --git a/packages/nvim/nvim/config/lazy.lua b/packages/nvim/nvim/config/lazy.lua new file mode 100644 index 0000000..f5ee74c --- /dev/null +++ b/packages/nvim/nvim/config/lazy.lua @@ -0,0 +1,35 @@ +-- Bootstrap lazy.nvim +local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim" +if not (vim.uv or vim.loop).fs_stat(lazypath) then + local lazyrepo = "https://github.com/folke/lazy.nvim.git" + local out = vim.fn.system({ "git", "clone", "--filter=blob:none", "--branch=stable", lazyrepo, lazypath }) + if vim.v.shell_error ~= 0 then + vim.api.nvim_echo({ + { "Failed to clone lazy.nvim:\n", "ErrorMsg" }, + { out, "WarningMsg" }, + { "\nPress any key to exit..." }, + }, true, {}) + vim.fn.getchar() + os.exit(1) + end +end +vim.opt.rtp:prepend(lazypath) + +-- Make sure to setup `mapleader` and `maplocalleader` before +-- loading lazy.nvim so that mappings are correct. +-- This is also a good place to setup other settings (vim.opt) +vim.g.mapleader = " " +vim.g.maplocalleader = "\\" + +-- Setup lazy.nvim +require("lazy").setup({ + spec = { + -- import your plugins + { import = "plugins" }, + }, + -- Configure any other settings here. See the documentation for more details. + -- colorscheme that will be used when installing plugins. + install = { colorscheme = { "habamax" } }, + -- automatically check for plugin updates + checker = { enabled = true }, +}) diff --git a/packages/nvim/nvim/options.lua b/packages/nvim/nvim/options.lua new file mode 100644 index 0000000..bac8963 --- /dev/null +++ b/packages/nvim/nvim/options.lua @@ -0,0 +1,18 @@ +vim.g.mapleader = ' ' +vim.g.maplocalleader = ' ' + +vim.o.clipboard = 'unnamedplus' + +vim.o.number = true +-- vim.o.relativenumber = true + +vim.o.signcolumn = 'yes' + +vim.o.tabstop = 4 +vim.o.shiftwidth = 4 + +vim.o.updatetime = 300 + +vim.o.termguicolors = true + +vim.o.mouse = 'a' \ No newline at end of file diff --git a/packages/nvim/nvim/plugins/#treesitter.lua# b/packages/nvim/nvim/plugins/#treesitter.lua# new file mode 100644 index 0000000..ca6416f --- /dev/null +++ b/packages/nvim/nvim/plugins/#treesitter.lua# @@ -0,0 +1,15 @@ + +return { + "nvim-treesitter/nvim-treesitter", + build = ":TSUpdate", + config= function () + local configs = require("nvim-treesitter.configs") + + configs.setup({ + ensure_installed = { "c", "lua", "html", "dart" }, + sync_install = false, + highlight = { enable = true }, + indent = { enable = true }, + }) + end + } diff --git a/packages/nvim/nvim/plugins/catppuccin.lua b/packages/nvim/nvim/plugins/catppuccin.lua new file mode 100644 index 0000000..19df104 --- /dev/null +++ b/packages/nvim/nvim/plugins/catppuccin.lua @@ -0,0 +1 @@ +return { "catppuccin/nvim", name = "catppuccin", priority = 1000 } diff --git a/packages/nvim/nvim/plugins/cmp.lua b/packages/nvim/nvim/plugins/cmp.lua new file mode 100644 index 0000000..f316c1d --- /dev/null +++ b/packages/nvim/nvim/plugins/cmp.lua @@ -0,0 +1,46 @@ +local cmp = require('cmp') +local luasnip = require('luasnip') + +require('luasnip.loaders.from_vscode').lazy_load() +luasnip.config.setup {} + +cmp.setup { + snippet = { + expand = function(args) + luasnip.lsp_expand(args.body) + end, + }, + mapping = cmp.mapping.preset.insert { + [''] = cmp.mapping.select_next_item(), + [''] = cmp.mapping.select_prev_item(), + [''] = cmp.mapping.scroll_docs(-4), + [''] = cmp.mapping.scroll_docs(4), + [''] = cmp.mapping.complete {}, + [''] = cmp.mapping.confirm { + behavior = cmp.ConfirmBehavior.Replace, + select = true, + }, + [''] = cmp.mapping(function(fallback) + if cmp.visible() then + cmp.select_next_item() + elseif luasnip.expand_or_locally_jumpable() then + luasnip.expand_or_jump() + else + fallback() + end + end, { 'i', 's' }), + [''] = cmp.mapping(function(fallback) + if cmp.visible() then + cmp.select_prev_item() + elseif luasnip.locally_jumpable(-1) then + luasnip.jump(-1) + else + fallback() + end + end, { 'i', 's' }), + }, + sources = { + { name = 'nvim_lsp' }, + { name = 'luasnip' }, + }, +} \ No newline at end of file diff --git a/packages/nvim/nvim/plugins/coq.lua b/packages/nvim/nvim/plugins/coq.lua new file mode 100644 index 0000000..0ec3a3e --- /dev/null +++ b/packages/nvim/nvim/plugins/coq.lua @@ -0,0 +1,30 @@ + + return { + "neovim/nvim-lspconfig", -- REQUIRED: for native Neovim LSP integration + lazy = false, -- REQUIRED: tell lazy.nvim to start this plugin at startup + dependencies = { + -- main one + { "ms-jpq/coq_nvim", branch = "coq" }, + + -- 9000+ Snippets + { "ms-jpq/coq.artifacts", branch = "artifacts" }, + + -- lua & third party sources -- See https://github.com/ms-jpq/coq.thirdparty + -- Need to **configure separately** + { 'ms-jpq/coq.thirdparty', branch = "3p" } + -- - shell repl + -- - nvim lua api + -- - scientific calculator + -- - comment banner + -- - etc + }, + init = function() + vim.g.coq_settings = { + auto_start = true, -- if you want to start COQ at startup + -- Your COQ settings here + } + end, + config = function() + -- Your LSP settings here + end, +} diff --git a/packages/nvim/nvim/plugins/flutter.lua b/packages/nvim/nvim/plugins/flutter.lua new file mode 100644 index 0000000..97dac7c --- /dev/null +++ b/packages/nvim/nvim/plugins/flutter.lua @@ -0,0 +1,10 @@ +return { + + 'nvim-flutter/flutter-tools.nvim', + lazy = false, + dependencies = { + 'nvim-lua/plenary.nvim', + 'stevearc/dressing.nvim', -- optional for vim.ui.select + }, + config = true, +} diff --git a/packages/nvim/nvim/plugins/highlight-colors.lua b/packages/nvim/nvim/plugins/highlight-colors.lua new file mode 100644 index 0000000..9bf29ee --- /dev/null +++ b/packages/nvim/nvim/plugins/highlight-colors.lua @@ -0,0 +1 @@ +return { "brenoprata10/nvim-highlight-colors", name = "highlight-colotrs" } diff --git a/packages/nvim/nvim/plugins/lazy.lua b/packages/nvim/nvim/plugins/lazy.lua new file mode 100644 index 0000000..978ba09 --- /dev/null +++ b/packages/nvim/nvim/plugins/lazy.lua @@ -0,0 +1,60 @@ +-- Bootstrap lazy.nvim +local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim" +if not (vim.uv or vim.loop).fs_stat(lazypath) then + local lazyrepo = "https://github.com/folke/lazy.nvim.git" + local out = vim.fn.system({ "git", "clone", "--filter=blob:none", "--branch=stable", lazyrepo, lazypath }) + if vim.v.shell_error ~= 0 then + vim.api.nvim_echo({ + { "Failed to clone lazy.nvim:\n", "ErrorMsg" }, + { out, "WarningMsg" }, + { "\nPress any key to exit..." }, + }, true, {}) + vim.fn.getchar() + os.exit(1) + end +end +vim.opt.rtp:prepend(lazypath) + +-- Make sure to setup `mapleader` and `maplocalleader` before +-- loading lazy.nvim so that mappings are correct. +-- This is also a good place to setup other settings (vim.opt) +vim.g.mapleader = " " +vim.g.maplocalleader = "\\" + +-- Setup lazy.nvim +require("lazy").setup({ + spec = { + -- add your plugins here + +{ + 'nvim-lualine/lualine.nvim', + dependencies = { 'nvim-tree/nvim-web-devicons' } +}, + +{ + "folke/which-key.nvim", + event = "VeryLazy", + opts = { + -- your configuration comes here + -- or leave it empty to use the default settings + -- refer to the configuration section below + }, + keys = { + { + "?", + function() + require("which-key").show({ global = false }) + end, + desc = "Buffer Local Keymaps (which-key)", + }, + }, +} + + + }, + -- Configure any other settings here. See the documentation for more details. + -- colorscheme that will be used when installing plugins. + install = { colorscheme = { "catppuccin" } }, + -- automatically check for plugin updates + checker = { enabled = true }, +}) diff --git a/packages/nvim/nvim/plugins/lazy.lua~ b/packages/nvim/nvim/plugins/lazy.lua~ new file mode 100644 index 0000000..b16265d --- /dev/null +++ b/packages/nvim/nvim/plugins/lazy.lua~ @@ -0,0 +1,34 @@ +-- Bootstrap lazy.nvim +local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim" +if not (vim.uv or vim.loop).fs_stat(lazypath) then + local lazyrepo = "https://github.com/folke/lazy.nvim.git" + local out = vim.fn.system({ "git", "clone", "--filter=blob:none", "--branch=stable", lazyrepo, lazypath }) + if vim.v.shell_error ~= 0 then + vim.api.nvim_echo({ + { "Failed to clone lazy.nvim:\n", "ErrorMsg" }, + { out, "WarningMsg" }, + { "\nPress any key to exit..." }, + }, true, {}) + vim.fn.getchar() + os.exit(1) + end +end +vim.opt.rtp:prepend(lazypath) + +-- Make sure to setup `mapleader` and `maplocalleader` before +-- loading lazy.nvim so that mappings are correct. +-- This is also a good place to setup other settings (vim.opt) +vim.g.mapleader = " " +vim.g.maplocalleader = "\\" + +-- Setup lazy.nvim +require("lazy").setup({ + spec = { + -- add your plugins here + }, + -- Configure any other settings here. See the documentation for more details. + -- colorscheme that will be used when installing plugins. +-- install = { colorscheme = { "habamax" } }, + -- automatically check for plugin updates + checker = { enabled = true }, +}) diff --git a/packages/nvim/nvim/plugins/lsp.lua b/packages/nvim/nvim/plugins/lsp.lua new file mode 100644 index 0000000..733b6d5 --- /dev/null +++ b/packages/nvim/nvim/plugins/lsp.lua @@ -0,0 +1,48 @@ +local on_attach = function(_, bufnr) + + local bufmap = function(keys, func) + vim.keymap.set('n', keys, func, { buffer = bufnr }) + end + + bufmap('r', vim.lsp.buf.rename) + bufmap('a', vim.lsp.buf.code_action) + + bufmap('gd', vim.lsp.buf.definition) + bufmap('gD', vim.lsp.buf.declaration) + bufmap('gI', vim.lsp.buf.implementation) + bufmap('D', vim.lsp.buf.type_definition) + + bufmap('gr', require('telescope.builtin').lsp_references) + bufmap('s', require('telescope.builtin').lsp_document_symbols) + bufmap('S', require('telescope.builtin').lsp_dynamic_workspace_symbols) + + bufmap('K', vim.lsp.buf.hover) + + vim.api.nvim_buf_create_user_command(bufnr, 'Format', function(_) + vim.lsp.buf.format() + end, {}) +end + +local capabilities = vim.lsp.protocol.make_client_capabilities() +capabilities = require('cmp_nvim_lsp').default_capabilities(capabilities) + +require('neodev').setup() +require('lspconfig').lua_ls.setup { + on_attach = on_attach, + capabilities = capabilities, + root_dir = function() + return vim.loop.cwd() + end, + cmd = { "lua-language-server" }, + settings = { + Lua = { + workspace = { checkThirdParty = false }, + telemetry = { enable = false }, + }, + } +} + +require('lspconfig').nil_ls.setup { + on_attach = on_attach, + capabilities = capabilities, +} \ No newline at end of file diff --git a/packages/nvim/nvim/plugins/lsp.lua~ b/packages/nvim/nvim/plugins/lsp.lua~ new file mode 100644 index 0000000..bcd32db --- /dev/null +++ b/packages/nvim/nvim/plugins/lsp.lua~ @@ -0,0 +1,48 @@ +local on_attach = function(_, bufnr) + + local bufmap = function(keys, func) + vim.keymap.set('n', keys, func, { buffer = bufnr }) + end + + bufmap('r', vim.lsp.buf.rename) + bufmap('a', vim.lsp.buf.code_action) + + bufmap('gd', vim.lsp.buf.definition) + bufmap('gD', vim.lsp.buf.declaration) + bufmap('gI', vim.lsp.buf.implementation) + bufmap('D', vim.lsp.buf.type_definition) + + bufmap('gr', require('telescope.builtin').lsp_references) + bufmap('s', require('telescope.builtin').lsp_document_symbols) + bufmap('S', require('telescope.builtin').lsp_dynamic_workspace_symbols) + + bufmap('K', vim.lsp.buf.hover) + + vim.api.nvim_buf_create_user_command(bufnr, 'Format', function(_) + vim.lsp.buf.format() + end, {}) +end + +local capabilities = vim.lsp.protocol.make_client_capabilities() +capabilities = require('cmp_nvim_lsp').default_capabilities(capabilities) + +require('neodev').setup() +require('lspconfig').lua_ls.setup { + on_attach = on_attach, + capabilities = capabilities, + root_dir = function() + return vim.loop.cwd() + end, + cmd = { "lua-language-server" }, + settings = { + Lua = { + workspace = { checkThirdParty = false }, + telemetry = { enable = false }, + }, + } +} + +require('lspconfig').rnix.setup { + on_attach = on_attach, + capabilities = capabilities, +} \ No newline at end of file diff --git a/packages/nvim/nvim/plugins/lualine.lua b/packages/nvim/nvim/plugins/lualine.lua new file mode 100644 index 0000000..40eb8a6 --- /dev/null +++ b/packages/nvim/nvim/plugins/lualine.lua @@ -0,0 +1,41 @@ +require('lualine').setup { + options = { + icons_enabled = true, + theme = 'catppuccin', + component_separators = { left = '', right = ''}, + section_separators = { left = '', right = ''}, + disabled_filetypes = { + statusline = {}, + winbar = {}, + }, + ignore_focus = {}, + always_divide_middle = true, + always_show_tabline = true, + globalstatus = false, + refresh = { + statusline = 100, + tabline = 100, + winbar = 100, + } + }, + sections = { + lualine_a = {'mode'}, + lualine_b = {'branch', 'diff', 'diagnostics'}, + lualine_c = {'filename'}, + lualine_x = {'encoding', 'fileformat', 'filetype'}, + lualine_y = {'progress'}, + lualine_z = {'location'} + }, + inactive_sections = { + lualine_a = {}, + lualine_b = {}, + lualine_c = {'filename'}, + lualine_x = {'location'}, + lualine_y = {}, + lualine_z = {} + }, + tabline = {}, + winbar = {}, + inactive_winbar = {}, + extensions = {} +} \ No newline at end of file diff --git a/packages/nvim/nvim/plugins/lualine.lua~ b/packages/nvim/nvim/plugins/lualine.lua~ new file mode 100644 index 0000000..bd5f988 --- /dev/null +++ b/packages/nvim/nvim/plugins/lualine.lua~ @@ -0,0 +1,5 @@ +return { +{ + 'nvim-lualine/lualine.nvim', + dependencies = { 'nvim-tree/nvim-web-devicons' } +}} \ No newline at end of file diff --git a/packages/nvim/nvim/plugins/other.lua b/packages/nvim/nvim/plugins/other.lua new file mode 100644 index 0000000..457d106 --- /dev/null +++ b/packages/nvim/nvim/plugins/other.lua @@ -0,0 +1,8 @@ +-- Lualine +require("lualine").setup({ + icons_enabled = true, + theme = 'catppuccin', +}) + +-- Comment +require("Comment").setup() \ No newline at end of file diff --git a/packages/nvim/nvim/plugins/other.lua~ b/packages/nvim/nvim/plugins/other.lua~ new file mode 100644 index 0000000..7a0bab6 --- /dev/null +++ b/packages/nvim/nvim/plugins/other.lua~ @@ -0,0 +1,7 @@ +-- Lualine +require("lualine").setup({ + icons_enabled = true, +}) + +-- Comment +require("Comment").setup() \ No newline at end of file diff --git a/packages/nvim/nvim/plugins/telescope.lua b/packages/nvim/nvim/plugins/telescope.lua new file mode 100644 index 0000000..cf06b27 --- /dev/null +++ b/packages/nvim/nvim/plugins/telescope.lua @@ -0,0 +1,13 @@ +require('telescope').setup({ + extensions = { + fzf = { + fuzzy = true, -- false will only do exact matching + override_generic_sorter = true, -- override the generic sorter + override_file_sorter = true, -- override the file sorter + case_mode = "smart_case", -- or "ignore_case" or "respect_case" + -- the default case_mode is "smart_case" + } + } +}) + +require('telescope').load_extension('fzf') diff --git a/packages/nvim/nvim/plugins/telescope.lua~ b/packages/nvim/nvim/plugins/telescope.lua~ new file mode 100644 index 0000000..ed8cc88 --- /dev/null +++ b/packages/nvim/nvim/plugins/telescope.lua~ @@ -0,0 +1,4 @@ +return { + "nvim-telescope/telescope-file-browser.nvim", + dependencies = { "nvim-telescope/telescope.nvim", "nvim-lua/plenary.nvim" } +} diff --git a/packages/nvim/nvim/plugins/treesitter.lua b/packages/nvim/nvim/plugins/treesitter.lua new file mode 100644 index 0000000..a2f9998 --- /dev/null +++ b/packages/nvim/nvim/plugins/treesitter.lua @@ -0,0 +1,15 @@ + +return { + "nvim-treesitter/nvim-treesitter", + build = ":TSUpdate", + config = function () + local configs = require("nvim-treesitter.configs") + + configs.setup({ + ensure_installed = { "c", "lua", "html", "dart" }, + sync_install = false, + highlight = { enable = true }, + indent = { enable = true }, + }) + end + } diff --git a/packages/other/#default.nix# b/packages/other/#default.nix# index 7b07773..dbb7648 100644 --- a/packages/other/#default.nix# +++ b/packages/other/#default.nix# @@ -1,3 +1,16 @@ +{ pkgs, config, lib,... }: +{ + home.packages = with pkgs; [ + + ]; + +programs.ranger = { + enable = true; + extraConfig = '' +set preview_images true +set preview_images_method kitty + ''; +}; programs.git = { diff --git a/packages/other/default.nix~ b/packages/other/default.nix~ index e10cad4..316f8a2 100644 --- a/packages/other/default.nix~ +++ b/packages/other/default.nix~ @@ -28,9 +28,7 @@ services.kdeconnect = { indicator = true; }; -programs.obsidian = { - enable = true; -}; +programs.ladybird.enable = true; diff --git a/packages/rofi/default.nix b/packages/rofi/default.nix index cd41a02..06e52d7 100644 --- a/packages/rofi/default.nix +++ b/packages/rofi/default.nix @@ -3,6 +3,7 @@ home.packages = with pkgs; [ rofi-screenshot rofi-power-menu + bitwarden-menu ]; diff --git a/packages/rofi/default.nix~ b/packages/rofi/default.nix~ index 06e52d7..b7601aa 100644 --- a/packages/rofi/default.nix~ +++ b/packages/rofi/default.nix~ @@ -3,6 +3,7 @@ home.packages = with pkgs; [ rofi-screenshot rofi-power-menu + rofi-bluetooth bitwarden-menu ]; diff --git a/packages/sway/default.nix b/packages/sway/default.nix index 0d5506c..e1b5c91 100644 --- a/packages/sway/default.nix +++ b/packages/sway/default.nix @@ -6,26 +6,20 @@ config = rec { modifier = "Mod4"; # Use kitty as default terminal - terminal = "kitty"; + terminal = "alacritty"; bars = [ {command = "waybar";} ]; startup = [ # Launch Firefox on start -# {command = "wpaperd";} + {command = "wpaperd";} + {command = "wl-paste --watch cliphist store";} ]; }; extraConfig = '' -## screens -#output DP-3 scale 0.9 -#output DP-2 pos 0 0 - -workspace 10 output DP-3 -for_window [class="Spotify"] scratchpad show - ## Input configuration input "type:keyboard" { xkb_layout de,us @@ -33,6 +27,23 @@ for_window [class="Spotify"] scratchpad show xkb_options grp:alt_shift_toggle } +input "type:touchpad" { + tap enabled # enables click-on-tap + tap_button_map lrm # tap with 1 finger = left click, 2 fingers = right click, 3 fingers = middle click + dwt enabled # disable (touchpad) while typing + dwtp disabled # disable (touchpad) while track pointing +} + +#touch { +# set along_the_top "20px x 1.0 @ .5 x 0" +# set bottom_half "1.0 x .5 @ 0 x .5" +# set right_half ".5 x 1.0 @ .5 x 0" + +# gesture exec 'rofi -show drun'{ +# down 1 $along_the_top +# horiz +100px < move +# } +#} # Brightness bindsym XF86MonBrightnessDown exec light -U 10 @@ -44,10 +55,10 @@ for_window [class="Spotify"] scratchpad show bindsym XF86AudioMute exec 'pactl set-sink-mute @DEFAULT_SINK@ toggle' # app launcher - bindsym Mod4+m exec 'rofi -show drun' + bindsym Mod4+m exec 'rofi -show drun' bindsym Mod4+Shift+x exec 'rofi -show power-menu -modi power-menu:rofi-power-menu' bindsym Mod4+Print exec 'rofi-screenshot' - + bindsym Mod4+Shift+v exec 'cliphist list | rofi -dmenu | cliphist decode | wl-copy' bindsym Mod4+BackSpace kill # disable window border diff --git a/packages/sway/default.nix~ b/packages/sway/default.nix~ index 35d2387..f85fb9b 100644 --- a/packages/sway/default.nix~ +++ b/packages/sway/default.nix~ @@ -13,26 +13,37 @@ startup = [ # Launch Firefox on start -# {command = "wpaperd";} + {command = "wpaperd";} + {command = "wl-paste --watch cliphist store";} ]; }; extraConfig = '' -## screens -#output DP-3 scale 0.9 -#output DP-2 pos 0 0 - -workspace 10 output DP-3 -for_window [class="Spotify"] scratchpad show - ## Input configuration input "type:keyboard" { - xkb_layout de, us + xkb_layout de,us xkb_variant "nodeadkeys" xkb_options grp:alt_shift_toggle } +input "type:touchpad" { + tap enabled # enables click-on-tap + tap_button_map lrm # tap with 1 finger = left click, 2 fingers = right click, 3 fingers = middle click + dwt enabled # disable (touchpad) while typing + dwtp disabled # disable (touchpad) while track pointing +} + +#touch { +# set along_the_top "20px x 1.0 @ .5 x 0" +# set bottom_half "1.0 x .5 @ 0 x .5" +# set right_half ".5 x 1.0 @ .5 x 0" + +# gesture exec 'rofi -show drun'{ +# down 1 $along_the_top +# horiz +100px < move +# } +#} # Brightness bindsym XF86MonBrightnessDown exec light -U 10 @@ -44,10 +55,10 @@ for_window [class="Spotify"] scratchpad show bindsym XF86AudioMute exec 'pactl set-sink-mute @DEFAULT_SINK@ toggle' # app launcher - bindsym Mod4+m exec 'rofi -show drun' + bindsym Mod4+m exec 'rofi -show drun' bindsym Mod4+Shift+x exec 'rofi -show power-menu -modi power-menu:rofi-power-menu' bindsym Mod4+Print exec 'rofi-screenshot' - + bindsym Mod4+Shift+v exec 'cliphist list | rofi -dmenu | cliphist decode | wl-copy' bindsym Mod4+BackSpace kill # disable window border diff --git a/packages/waybar/config b/packages/waybar/config index e01aaf1..cfe5fa0 100644 --- a/packages/waybar/config +++ b/packages/waybar/config @@ -5,7 +5,7 @@ "spacing": 0, "modules-left": ["clock", "sway/workspaces","sway/mode"], "modules-center": ["sway/window"], - "modules-right": ["network", "cpu", "memory", "custom/keyboard-layout", "pulseaudio", "tray"], + "modules-right": ["network", "battery", "cpu", "memory", "custom/keyboard-layout", "pulseaudio", "tray"], "custom/keyboard-layout": { "interval": 1, @@ -23,6 +23,19 @@ "format": "RAM: {used} GiB" }, + "battery": { + "bat": "BAT0", + "states": { + "good": 90, + "warning": 20, + "critical": 7 + }, + "format": "{icon} {capacity}%", + "format-charging": " {capacity}%", + "format-plugged": " {capacity}%", + "format-alt": "{time} {icon}", + "format-icons": ["", "", "" , "", ""] + }, "pulseaudio": { "format": "{icon} {volume}%", diff --git a/packages/waybar/config~ b/packages/waybar/config~ index cfe5fa0..825703c 100644 --- a/packages/waybar/config~ +++ b/packages/waybar/config~ @@ -9,7 +9,7 @@ "custom/keyboard-layout": { "interval": 1, - "exec": "swaymsg -t get_inputs | jq -r '.[] | select(.type == \"keyboard\") | .xkb_active_layout_name'" + "exec":"swaymsg -t get_inputs --raw | jq -r '.[] | .xkb_active_layout_name'" }, diff --git a/packages/waybar/style.css b/packages/waybar/style.css index bfdbef2..f34e5ad 100644 --- a/packages/waybar/style.css +++ b/packages/waybar/style.css @@ -69,6 +69,7 @@ window#waybar { margin-right: 5px } + #workspaces{ border-radius: 0px 10px 10px 0px; } diff --git a/packages/waybar/style.css~ b/packages/waybar/style.css~ index 282c3d9..341a7f2 100644 --- a/packages/waybar/style.css~ +++ b/packages/waybar/style.css~ @@ -21,6 +21,7 @@ window#waybar { #memory, #network, #pulseaudio, +#custom-keyboard-layout, #battery{ background: rgba(10,10,10,100); opacity: 0.8; @@ -68,6 +69,12 @@ window#waybar { margin-right: 5px } +#custom-keyboard-layout{ + border-radius: 0px 10px 10px 0px; + color: @mauve; +} + + #workspaces{ border-radius: 0px 10px 10px 0px; } diff --git a/push.sh b/push.sh index efb5864..165f190 100755 --- a/push.sh +++ b/push.sh @@ -9,4 +9,4 @@ fi sudo cp -r /etc/nixos/* . git add * git commit -m "$1" -git push origin pc +git push origin laptop