From c1da805aaddf03b35b9c1f92b75f1dfeba8286a9 Mon Sep 17 00:00:00 2001 From: Nico Date: Mon, 5 May 2025 20:09:34 +0200 Subject: [PATCH] neovim update; removed unused files; dont now what else. whoops --- ,a | 223 ------ configuration.nix | 17 +- configuration.nix~ | 263 ------- flake.lock | 24 +- flake.nix~ | 34 - home-nico.nix | 4 +- home-nico.nix~ | 27 - packages/default.nix | 5 +- packages/hyprland/colors.conf | 80 +- packages/hyprland/hyprland.conf | 4 +- packages/hyprland/keybinds.conf | 61 +- packages/hyprland/rules.conf | 170 ++-- packages/hyprland/setup.conf | 19 +- packages/hyprland/startup.conf | 4 +- packages/hyprland/theme.conf | 2 +- packages/kitty/default.nix | 1 + packages/nvim/default.nix | 21 +- packages/nvim/init.lua | 189 +++-- packages/nvim/lua/config/lazy.lua | 1 + packages/nvim/lua/plugins/autopair.lua | 7 + packages/nvim/lua/plugins/blink-cmp.lua | 48 ++ packages/nvim/lua/plugins/code-action.lua | 11 + packages/nvim/lua/plugins/lazygit.lua | 21 + packages/nvim/lua/plugins/love.lua | 10 + packages/nvim/lua/plugins/lsp.lua | 75 +- packages/nvim/lua/plugins/mason.lua | 37 + packages/nvim/lua/plugins/mini-animate.lua | 1 + packages/nvim/lua/plugins/nio.lua | 1 + packages/nvim/lua/plugins/tabby.lua | 8 + packages/nvim/lua/plugins/tabout.lua | 42 + .../lua/plugins/tiny-inline-diagnostic.lua | 9 + packages/nvim/lua/plugins/toggleterm.lua | 4 + packages/nvim/lua/plugins/treesitter.lua | 2 +- packages/nvim/lua/plugins/vim-suda.lua | 3 + packages/nvim/nvim/plugins/autopair.lua | 7 + packages/nvim/nvim/plugins/blankline.lua | 7 + packages/nvim/nvim/plugins/blink-cmp.lua | 46 ++ packages/nvim/nvim/plugins/code-action.lua | 11 + packages/nvim/nvim/plugins/comment.lua | 8 + packages/nvim/nvim/plugins/dap.lua | 1 + packages/nvim/nvim/plugins/lazygit.lua | 21 + packages/nvim/nvim/plugins/love.lua | 11 + packages/nvim/nvim/plugins/mini-animate.lua | 1 + packages/nvim/nvim/plugins/nio.nvim | 1 + packages/nvim/nvim/plugins/rustaceanvim.lua | 5 + packages/nvim/nvim/plugins/tabby.lua | 8 + packages/nvim/nvim/plugins/tabout.lua | 45 ++ packages/nvim/nvim/plugins/toggleterm.lua | 6 + packages/nvim/nvim/plugins/trouble.lua | 37 + packages/nvim/nvim/plugins/whichkey.lua | 18 + packages/swaync/default.nix | 725 ++++++++++++++++++ packages/waybar/config | 38 +- packages/waybar/config~ | 2 +- packages/waybar/style.css | 7 +- packages/waybar/style.css~ | 7 - 55 files changed, 1626 insertions(+), 814 deletions(-) delete mode 100644 ,a delete mode 100644 configuration.nix~ delete mode 100644 flake.nix~ delete mode 100644 home-nico.nix~ create mode 100644 packages/nvim/lua/plugins/autopair.lua create mode 100644 packages/nvim/lua/plugins/blink-cmp.lua create mode 100644 packages/nvim/lua/plugins/code-action.lua create mode 100644 packages/nvim/lua/plugins/lazygit.lua create mode 100644 packages/nvim/lua/plugins/love.lua create mode 100644 packages/nvim/lua/plugins/mason.lua create mode 100644 packages/nvim/lua/plugins/mini-animate.lua create mode 100644 packages/nvim/lua/plugins/nio.lua create mode 100644 packages/nvim/lua/plugins/tabby.lua create mode 100644 packages/nvim/lua/plugins/tabout.lua create mode 100644 packages/nvim/lua/plugins/tiny-inline-diagnostic.lua create mode 100644 packages/nvim/lua/plugins/toggleterm.lua create mode 100644 packages/nvim/lua/plugins/vim-suda.lua create mode 100644 packages/nvim/nvim/plugins/autopair.lua create mode 100644 packages/nvim/nvim/plugins/blankline.lua create mode 100644 packages/nvim/nvim/plugins/blink-cmp.lua create mode 100644 packages/nvim/nvim/plugins/code-action.lua create mode 100644 packages/nvim/nvim/plugins/comment.lua create mode 100644 packages/nvim/nvim/plugins/dap.lua create mode 100644 packages/nvim/nvim/plugins/lazygit.lua create mode 100644 packages/nvim/nvim/plugins/love.lua create mode 100644 packages/nvim/nvim/plugins/mini-animate.lua create mode 100644 packages/nvim/nvim/plugins/nio.nvim create mode 100644 packages/nvim/nvim/plugins/rustaceanvim.lua create mode 100644 packages/nvim/nvim/plugins/tabby.lua create mode 100644 packages/nvim/nvim/plugins/tabout.lua create mode 100644 packages/nvim/nvim/plugins/toggleterm.lua create mode 100644 packages/nvim/nvim/plugins/trouble.lua create mode 100644 packages/nvim/nvim/plugins/whichkey.lua create mode 100644 packages/swaync/default.nix diff --git a/,a b/,a deleted file mode 100644 index 59af4f6..0000000 --- a/,a +++ /dev/null @@ -1,223 +0,0 @@ -# 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 c2143e5..355172f 100644 --- a/configuration.nix +++ b/configuration.nix @@ -22,16 +22,17 @@ }; # hyprland -# programs.hyprland = { -# enable = true; -# xwayland.enable = true; - # }; + programs.hyprland = { + enable = true; + xwayland.enable = true; + }; boot.supportedFilesystems = [ "ntfs" ]; nix.settings.experimental-features = [ "nix-command" "flakes" ]; security.polkit.enable = true; + nix.settings.trusted-users = [ "root" "n" ]; # Bootloader. @@ -133,6 +134,8 @@ programs.zsh.enable = true; # programs.nushell.enable = true; + programs.adb.enable = true; + # Define a user account. Don't forget to set a password with ‘passwd’. users.users.n = { isNormalUser = true; @@ -141,7 +144,7 @@ packages = with pkgs; [ obsidian ]; - shell = pkgs.nushell; + shell = pkgs.zsh; }; @@ -161,9 +164,9 @@ environment.systemPackages = with pkgs; [ - inputs.nixStable.legacyPackages.${pkgs.system}.heroic - + inputs.nixStable.legacyPackages.${pkgs.system}.heroic + pkgs.devenv pkgs.vim pkgs.wget pkgs.git diff --git a/configuration.nix~ b/configuration.nix~ deleted file mode 100644 index e1e3479..0000000 --- a/configuration.nix~ +++ /dev/null @@ -1,263 +0,0 @@ -# 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; - # }; - - boot.supportedFilesystems = [ "ntfs" ]; - - 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.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; - - - # 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.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 = { - variant = ""; - layout = "de"; - }; - }; - - # Configure console keymap - console.keyMap = "de"; - - # Enable CUPS to print documents. - services.printing.enable = true; - - # Enable sound with pipewire. - 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; - - # 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 - ]; - shell = pkgs.nushell; - }; - - - - # 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 - - environment.systemPackages = with pkgs; [ - - 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 - - ]; - - services.gnome.gnome-keyring.enable = true; - - programs.sway = { - enable = true; - wrapperFeatures.gtk = true; - }; - - - #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; - # }; - - # 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/flake.lock b/flake.lock index 72a0027..7bb1e29 100644 --- a/flake.lock +++ b/flake.lock @@ -83,11 +83,11 @@ ] }, "locked": { - "lastModified": 1741955947, - "narHash": "sha256-2lbURKclgKqBNm7hVRtWh0A7NrdsibD0EaWhahUVhhY=", + "lastModified": 1743948087, + "narHash": "sha256-B6cIi2ScgVSROPPlTti6len+TdR0K25B9R3oKvbw3M8=", "owner": "nix-community", "repo": "home-manager", - "rev": "4e12151c9e014e2449e0beca2c0e9534b96a26b4", + "rev": "ef3b2a6b602c3f1a80c6897d6de3ee62339a3eb7", "type": "github" }, "original": { @@ -139,11 +139,11 @@ }, "nixStable": { "locked": { - "lastModified": 1741862977, - "narHash": "sha256-prZ0M8vE/ghRGGZcflvxCu40ObKaB+ikn74/xQoNrGQ=", + "lastModified": 1743813633, + "narHash": "sha256-BgkBz4NpV6Kg8XF7cmHDHRVGZYnKbvG0Y4p+jElwxaM=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "cdd2ef009676ac92b715ff26630164bb88fec4e0", + "rev": "7819a0d29d1dd2bc331bec4b327f0776359b1fa6", "type": "github" }, "original": { @@ -186,11 +186,11 @@ }, "nixpkgs_2": { "locked": { - "lastModified": 1741851582, - "narHash": "sha256-cPfs8qMccim2RBgtKGF+x9IBCduRvd/N5F4nYpU0TVE=", + "lastModified": 1743827369, + "narHash": "sha256-rpqepOZ8Eo1zg+KJeWoq1HAOgoMCDloqv5r2EAa9TSA=", "owner": "nixos", "repo": "nixpkgs", - "rev": "6607cf789e541e7873d40d3a8f7815ea92204f32", + "rev": "42a1c966be226125b48c384171c44c651c236c22", "type": "github" }, "original": { @@ -226,11 +226,11 @@ "systems": "systems_2" }, "locked": { - "lastModified": 1743301931, - "narHash": "sha256-gex4W+Fyn6RB8x9/y+VWY1EG6RItmlW1HJjAj3mWqKc=", + "lastModified": 1743917753, + "narHash": "sha256-rtMPRr5aqspypIdCfU8KjuKGlFkBEYnC5sv/sjZW2AQ=", "owner": "notashelf", "repo": "nvf", - "rev": "05489d95b69b4c81e9b9a66a23f6e0cb1c8edb3d", + "rev": "585dfca7ca75c8190bd1596f3ebc6fde6751c7a5", "type": "github" }, "original": { diff --git a/flake.nix~ b/flake.nix~ deleted file mode 100644 index bddc8fb..0000000 --- a/flake.nix~ +++ /dev/null @@ -1,34 +0,0 @@ -{ - 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/home-nico.nix b/home-nico.nix index 8c9298b..5a3ac1e 100644 --- a/home-nico.nix +++ b/home-nico.nix @@ -16,11 +16,13 @@ }; home.packages = with pkgs; [ - brave + floorp +# freetube ]; home.stateVersion = "24.05"; + programs.home-manager.enable = true; } diff --git a/home-nico.nix~ b/home-nico.nix~ deleted file mode 100644 index 34fa1bf..0000000 --- a/home-nico.nix~ +++ /dev/null @@ -1,27 +0,0 @@ -{ config, pkgs, inputs, ... }: - -{ - home.username = "n"; - home.homeDirectory = "/home/n"; - - imports = [ - ./packages - ]; - - nixpkgs = { - config = { - allowUnfree = true; - allowUnfreePredicate = (_: true); - }; - }; - - home.packages = with pkgs; [ - brave - go - ]; - - home.stateVersion = "24.05"; - - programs.home-manager.enable = true; - -} diff --git a/packages/default.nix b/packages/default.nix index d664cd0..a1206c3 100644 --- a/packages/default.nix +++ b/packages/default.nix @@ -4,6 +4,7 @@ # ./ags ./other ./sway + ./swaync ./waybar ./wpaperd ./nvim @@ -11,9 +12,9 @@ ./kitty ./rofi ./alacritty - ./mako + # ./mako # ./qutebrowser -# ./hyprland + ./hyprland # ./vscode ]; } diff --git a/packages/hyprland/colors.conf b/packages/hyprland/colors.conf index b435106..8ccb56a 100644 --- a/packages/hyprland/colors.conf +++ b/packages/hyprland/colors.conf @@ -1,2 +1,78 @@ -$borderActive = 0xffb072d1 -$borderInactive = 0xff292a37 + +$rosewater = rgb(f5e0dc) +$rosewaterAlpha = f5e0dc + +$flamingo = rgb(f2cdcd) +$flamingoAlpha = f2cdcd + +$pink = rgb(f5c2e7) +$pinkAlpha = f5c2e7 + +$mauve = rgb(cba6f7) +$mauveAlpha = cba6f7 + +$red = rgb(f38ba8) +$redAlpha = f38ba8 + +$maroon = rgb(eba0ac) +$maroonAlpha = eba0ac + +$peach = rgb(fab387) +$peachAlpha = fab387 + +$yellow = rgb(f9e2af) +$yellowAlpha = f9e2af + +$green = rgb(a6e3a1) +$greenAlpha = a6e3a1 + +$teal = rgb(94e2d5) +$tealAlpha = 94e2d5 + +$sky = rgb(89dceb) +$skyAlpha = 89dceb + +$sapphire = rgb(74c7ec) +$sapphireAlpha = 74c7ec + +$blue = rgb(89b4fa) +$blueAlpha = 89b4fa + +$lavender = rgb(b4befe) +$lavenderAlpha = b4befe + +$text = rgb(cdd6f4) +$textAlpha = cdd6f4 + +$subtext1 = rgb(bac2de) +$subtext1Alpha = bac2de + +$subtext0 = rgb(a6adc8) +$subtext0Alpha = a6adc8 + +$overlay2 = rgb(9399b2) +$overlay2Alpha = 9399b2 + +$overlay1 = rgb(7f849c) +$overlay1Alpha = 7f849c + +$overlay0 = rgb(6c7086) +$overlay0Alpha = 6c7086 + +$surface2 = rgb(585b70) +$surface2Alpha = 585b70 + +$surface1 = rgb(45475a) +$surface1Alpha = 45475a + +$surface0 = rgb(313244) +$surface0Alpha = 313244 + +$base = rgb(1e1e2e) +$baseAlpha = 1e1e2e + +$mantle = rgb(181825) +$mantleAlpha = 181825 + +$crust = rgb(11111b) +$crustAlpha = 11111b diff --git a/packages/hyprland/hyprland.conf b/packages/hyprland/hyprland.conf index fffc7ac..a51f8c4 100644 --- a/packages/hyprland/hyprland.conf +++ b/packages/hyprland/hyprland.conf @@ -3,10 +3,10 @@ monitor=eDP-1,preferred,0x0,1 -source = ~/.config/hypr/startup.conf +source = ~/.config/hypr/colors.conf source = ~/.config/hypr/setup.conf source = ~/.config/hypr/rules.conf source = ~/.config/hypr/keybinds.conf -source = ~/.config/hypr/colors.conf source = ~/.config/hypr/theme.conf +source = ~/.config/hypr/startup.conf diff --git a/packages/hyprland/keybinds.conf b/packages/hyprland/keybinds.conf index 9d1fbe5..acfdfbd 100644 --- a/packages/hyprland/keybinds.conf +++ b/packages/hyprland/keybinds.conf @@ -1,25 +1,33 @@ $mainMod = SUPER # Example binds, see https://wiki.hyprland.org/Configuring/Binds/ for more -bind = $mainMod, RETURN, exec, kitty -bind = $mainMod, Q, exec, brave +bind = $mainMod, RETURN, exec, alacritty +bind = $mainMod, B, exec, floorp bind = SUPER, BackSpace, killactive, -bind = SUPER_SHIFT, P, exec, sudo shutdown now -bind = SUPER_SHIFT, R, exec, sudo reboot now -bind = $mainMod, M, exec, hyprctl dispatch exit +bind = SUPER_SHIFT, P, exec, rofi -show power-menu -modi power-menu:rofi-power-menu +bind = $mainMod, M, exec, rofi -show drun +bind = $mainMod, M, exec, rofi -show power-menu -modi power-menu:rofi-power-menurofi -show drun +bind = $mainMod, V, exec, cliphist list | rofi -dmenu | cliphist decode | wl-copy #bind = $mainMod, E, exec, dolphin -bind = $mainMod, V, togglefloating, +bind = $mainMod, Space, togglefloating, +bind = $mainMod, S, exec, rofi-screenshot, + # bind = $mainMod, R, exec, rofi -show drun #bind = $mainMod, P, pseudo, # dwindle -bind = $mainMod, J, togglesplit, # dwindle +#bind = $mainMod, J, togglesplit, # dwindle bind = $mainMod, F, fullscreen,1 bind = SUPER_SHIFT, F, fullscreen,0 -# Move focus with mainMod + arrow keys -bind = $mainMod, left, movefocus, l -bind = $mainMod, right, movefocus, r -bind = $mainMod, up, movefocus, u -bind = $mainMod, down, movefocus, d +# Move focus with mainMod + hjkl keys +bind = $mainMod, H, movefocus, l +bind = $mainMod, L, movefocus, r +bind = $mainMod, K, movefocus, u +bind = $mainMod, J, movefocus, d +# Move windows with mainMod + hjkl keys +bind = SUPER_SHIFT, H, movewindow, l +bind = SUPER_SHIFT, J, movewindow, d +bind = SUPER_SHIFT, K, movewindow, u +bind = SUPER_SHIFT, L, movewindow, r # Switch workspaces with mainMod + [0-9] bind = $mainMod, 1, workspace, 1 @@ -53,3 +61,32 @@ bind = $mainMod, mouse_up, workspace, e-1 # Move/resize windows with mainMod + LMB/RMB and dragging bindm = $mainMod, mouse:272, movewindow bindm = $mainMod, mouse:273, resizewindow + + +# Mediakeys +bind = , XF86AudioRaiseVolume, exec, pactl set-sink-volume @DEFAULT_SINK@ +1% +bind = , XF86AudioLowerVolume, exec, pactl set-sink-volume @DEFAULT_SINK@ -1% +bind = , XF86AudioMute, exec, pactl set-sink-mute @DEFAULT_SINK@ toggle +bind = , XF86MonBrightnessDown, exec, light -U 10 +bind = , XF86MonBrightnessUp, exec, light -A 10 + + +# will switch to a submap called resize +bind = $mainMod, R, submap, resize + +# will start a submap called "resize" +submap = resize + +# sets repeatable binds for resizing the active window +binde = , L, resizeactive, 10 0 +binde = , H, resizeactive, -10 0 +binde = , K, resizeactive, 0 -10 +binde = , J, resizeactive, 0 10 + +# use reset to go back to the global submap +bind = , escape, submap, reset + +# will reset the submap, which will return to the global submap +submap = reset + +# keybinds further down will be global again... diff --git a/packages/hyprland/rules.conf b/packages/hyprland/rules.conf index a3f2fa5..291575c 100644 --- a/packages/hyprland/rules.conf +++ b/packages/hyprland/rules.conf @@ -1,78 +1,106 @@ -# ######## Window rules ######## -windowrule = noblur,.* -# windowrule = opacity 0.89 override 0.89 override, .* # Applies transparency to EVERY WINDOW -windowrule = float, ^(blueberry.py)$ -windowrule = float, ^(steam)$ -windowrule = float, ^(guifetch)$ # FlafyDev/guifetch -windowrulev2 = tile, class:(dev.warp.Warp) -windowrulev2 = float, title:^([Pp]icture[-\s]?[Ii]n[-\s]?[Pp]icture)(.*)$ -windowrule = center, title:^(Open File)(.*)$ -windowrule = center, title:^(Select a File)(.*)$ -windowrule = center, title:^(Choose wallpaper)(.*)$ -windowrule = center, title:^(Open Folder)(.*)$ -windowrule = center, title:^(Save As)(.*)$ -windowrule = center, title:^(Library)(.*)$ -windowrule = center, title:^(File Upload)(.*)$ -# Dialogs -windowrule=float,title:^(Open File)(.*)$ -windowrule=float,title:^(Select a File)(.*)$ -windowrule=float,title:^(Choose wallpaper)(.*)$ -windowrule=float,title:^(Open Folder)(.*)$ -windowrule=float,title:^(Save As)(.*)$ -windowrule=float,title:^(Library)(.*)$ -windowrule=float,title:^(File Upload)(.*)$ +# █░█░█ █ █▄░█ █▀▄ █▀█ █░█░█   █▀█ █░█ █░░ █▀▀ █▀ +# ▀▄▀▄▀ █ █░▀█ █▄▀ █▄█ ▀▄▀▄▀   █▀▄ █▄█ █▄▄ ██▄ ▄█ -# Tearing -windowrule=immediate,.*\.exe -windowrulev2=immediate,class:(steam_app) +# See https://wiki.hyprland.org/Configuring/Window-Rules/ -# No shadow for tiled windows -windowrulev2 = noshadow,floating:0 +windowrulev2 = opacity 0.90 0.90,class:^(firefox)$ +windowrulev2 = opacity 0.90 0.90,class:^(Google-chrome)$ +windowrulev2 = opacity 0.90 0.90,class:^(Brave-browser)$ +windowrulev2 = opacity 0.80 0.80,class:^(code-oss)$ +windowrulev2 = opacity 0.80 0.80,class:^([Cc]ode)$ +windowrulev2 = opacity 0.80 0.80,class:^(code-url-handler)$ +windowrulev2 = opacity 0.80 0.80,class:^(code-insiders-url-handler)$ +windowrulev2 = opacity 0.80 0.80,class:^(kitty)$ +windowrulev2 = opacity 0.80 0.80,class:^(org.kde.dolphin)$ +windowrulev2 = opacity 0.80 0.80,class:^(org.kde.ark)$ +windowrulev2 = opacity 0.80 0.80,class:^(nwg-look)$ +windowrulev2 = opacity 0.80 0.80,class:^(qt5ct)$ +windowrulev2 = opacity 0.80 0.80,class:^(qt6ct)$ +windowrulev2 = opacity 0.80 0.80,class:^(kvantummanager)$ +windowrulev2 = opacity 0.80 0.70,class:^(org.pulseaudio.pavucontrol)$ +windowrulev2 = opacity 0.80 0.70,class:^(blueman-manager)$ +windowrulev2 = opacity 0.80 0.70,class:^(nm-applet)$ +windowrulev2 = opacity 0.80 0.70,class:^(nm-connection-editor)$ +windowrulev2 = opacity 0.80 0.70,class:^(org.kde.polkit-kde-authentication-agent-1)$ +windowrulev2 = opacity 0.80 0.70,class:^(polkit-gnome-authentication-agent-1)$ +windowrulev2 = opacity 0.80 0.70,class:^(org.freedesktop.impl.portal.desktop.gtk)$ +windowrulev2 = opacity 0.80 0.70,class:^(org.freedesktop.impl.portal.desktop.hyprland)$ +windowrulev2 = opacity 0.70 0.70,class:^([Ss]team)$ +windowrulev2 = opacity 0.70 0.70,class:^(steamwebhelper)$ +windowrulev2 = opacity 0.70 0.70,class:^([Ss]potify)$ +windowrulev2 = opacity 0.70 0.70,initialTitle:^(Spotify Free)$ +windowrulev2 = opacity 0.70 0.70,initialTitle:^(Spotify Premium)$ -# ######## Layer rules ######## -layerrule = xray 1, .* -# layerrule = noanim, .* -layerrule = noanim, walker -layerrule = noanim, selection -layerrule = noanim, overview -layerrule = noanim, anyrun -layerrule = noanim, indicator.* -layerrule = noanim, osk -layerrule = noanim, hyprpicker -layerrule = blur, shell:* -layerrule = ignorealpha 0.6, shell:* +windowrulev2 = opacity 0.90 0.90,class:^(com.github.rafostar.Clapper)$ # Clapper-Gtk +windowrulev2 = opacity 0.80 0.80,class:^(com.github.tchx84.Flatseal)$ # Flatseal-Gtk +windowrulev2 = opacity 0.80 0.80,class:^(hu.kramo.Cartridges)$ # Cartridges-Gtk +windowrulev2 = opacity 0.80 0.80,class:^(com.obsproject.Studio)$ # Obs-Qt +windowrulev2 = opacity 0.80 0.80,class:^(gnome-boxes)$ # Boxes-Gtk +windowrulev2 = opacity 0.80 0.80,class:^(vesktop)$ # Vesktop +windowrulev2 = opacity 0.80 0.80,class:^(discord)$ # Discord-Electron +windowrulev2 = opacity 0.80 0.80,class:^(WebCord)$ # WebCord-Electron +windowrulev2 = opacity 0.80 0.80,class:^(ArmCord)$ # ArmCord-Electron +windowrulev2 = opacity 0.80 0.80,class:^(app.drey.Warp)$ # Warp-Gtk +windowrulev2 = opacity 0.80 0.80,class:^(net.davidotek.pupgui2)$ # ProtonUp-Qt +windowrulev2 = opacity 0.80 0.80,class:^(yad)$ # Protontricks-Gtk +windowrulev2 = opacity 0.80 0.80,class:^(Signal)$ # Signal-Gtk +windowrulev2 = opacity 0.80 0.80,class:^(io.github.alainm23.planify)$ # planify-Gtk +windowrulev2 = opacity 0.80 0.80,class:^(io.gitlab.theevilskeleton.Upscaler)$ # Upscaler-Gtk +windowrulev2 = opacity 0.80 0.80,class:^(com.github.unrud.VideoDownloader)$ # VideoDownloader-Gtk +windowrulev2 = opacity 0.80 0.80,class:^(io.gitlab.adhami3310.Impression)$ # Impression-Gtk +windowrulev2 = opacity 0.80 0.80,class:^(io.missioncenter.MissionCenter)$ # MissionCenter-Gtk +windowrulev2 = opacity 0.80 0.80,class:^(io.github.flattool.Warehouse)$ # Warehouse-Gtk -layerrule = noanim, noanim -layerrule = blur, gtk-layer-shell -layerrule = ignorezero, gtk-layer-shell -layerrule = blur, launcher -layerrule = ignorealpha 0.5, launcher -layerrule = blur, notifications -layerrule = ignorealpha 0.69, notifications +windowrulev2 = float,class:^(org.kde.dolphin)$,title:^(Progress Dialog — Dolphin)$ +windowrulev2 = float,class:^(org.kde.dolphin)$,title:^(Copying — Dolphin)$ +windowrulev2 = float,title:^(About Mozilla Firefox)$ +windowrulev2 = float,class:^(firefox)$,title:^(Picture-in-Picture)$ +windowrulev2 = float,class:^(firefox)$,title:^(Library)$ +windowrulev2 = float,class:^(kitty)$,title:^(top)$ +windowrulev2 = float,class:^(kitty)$,title:^(btop)$ +windowrulev2 = float,class:^(kitty)$,title:^(htop)$ +windowrulev2 = float,class:^(vlc)$ +windowrulev2 = float,class:^(kvantummanager)$ +windowrulev2 = float,class:^(qt5ct)$ +windowrulev2 = float,class:^(qt6ct)$ +windowrulev2 = float,class:^(nwg-look)$ +windowrulev2 = float,class:^(org.kde.ark)$ +windowrulev2 = float,class:^(org.pulseaudio.pavucontrol)$ +windowrulev2 = float,class:^(blueman-manager)$ +windowrulev2 = float,class:^(nm-applet)$ +windowrulev2 = float,class:^(nm-connection-editor)$ +windowrulev2 = float,class:^(org.kde.polkit-kde-authentication-agent-1)$ -# ags -layerrule = animation slide top, sideleft.* -layerrule = animation slide top, sideright.* -layerrule = blur, session +windowrulev2 = float,class:^(Signal)$ # Signal-Gtk +windowrulev2 = float,class:^(com.github.rafostar.Clapper)$ # Clapper-Gtk +windowrulev2 = float,class:^(app.drey.Warp)$ # Warp-Gtk +windowrulev2 = float,class:^(net.davidotek.pupgui2)$ # ProtonUp-Qt +windowrulev2 = float,class:^(yad)$ # Protontricks-Gtk +windowrulev2 = float,class:^(eog)$ # Imageviewer-Gtk +windowrulev2 = float,class:^(io.github.alainm23.planify)$ # planify-Gtk +windowrulev2 = float,class:^(io.gitlab.theevilskeleton.Upscaler)$ # Upscaler-Gtk +windowrulev2 = float,class:^(com.github.unrud.VideoDownloader)$ # VideoDownloader-Gkk +windowrulev2 = float,class:^(io.gitlab.adhami3310.Impression)$ # Impression-Gtk +windowrulev2 = float,class:^(io.missioncenter.MissionCenter)$ # MissionCenter-Gtk -layerrule = blur, bar -layerrule = ignorealpha 0.6, bar -layerrule = blur, corner.* -layerrule = ignorealpha 0.6, corner.* -layerrule = blur, dock -layerrule = ignorealpha 0.6, dock -layerrule = blur, indicator.* -layerrule = ignorealpha 0.6, indicator.* -layerrule = blur, overview -layerrule = ignorealpha 0.6, overview -layerrule = blur, cheatsheet -layerrule = ignorealpha 0.6, cheatsheet -layerrule = blur, sideright -layerrule = ignorealpha 0.6, sideright -layerrule = blur, sideleft -layerrule = ignorealpha 0.6, sideleft -layerrule = blur, indicator* -layerrule = ignorealpha 0.6, indicator* -layerrule = blur, osk -layerrule = ignorealpha 0.6, osk +# common modals +windowrule = float,title:^(Open)$ +windowrule = float,title:^(Choose Files)$ +windowrule = float,title:^(Save As)$ +windowrule = float,title:^(Confirm to replace files)$ +windowrule = float,title:^(File Operation Progress)$ +windowrulev2 = float,class:^(xdg-desktop-portal-gtk)$ + +# █░░ ▄▀█ █▄█ █▀▀ █▀█   █▀█ █░█ █░░ █▀▀ █▀ +# █▄▄ █▀█ ░█░ ██▄ █▀▄   █▀▄ █▄█ █▄▄ ██▄ ▄█ + +layerrule = blur,rofi +layerrule = ignorezero,rofi +layerrule = blur,notifications +layerrule = ignorezero,notifications +layerrule = blur,swaync-notification-window +layerrule = ignorezero,swaync-notification-window +layerrule = blur,swaync-control-center +layerrule = ignorezero,swaync-control-center +layerrule = blur,logout_dialog diff --git a/packages/hyprland/setup.conf b/packages/hyprland/setup.conf index 56bf83f..f9ce243 100644 --- a/packages/hyprland/setup.conf +++ b/packages/hyprland/setup.conf @@ -1,9 +1,6 @@ -input { - kb_layout = de - kb_variant = - kb_model = - kb_options = - kb_rules = + input { + kb_layout = us,de + kb_options=grp:alt_shift_toggle follow_mouse = 1 @@ -18,8 +15,8 @@ general { gaps_in=6 gaps_out=12 border_size=4 - col.active_border=$borderActive - col.inactive_border=$borderInactive + col.active_border=$mauve + col.inactive_border=$base } misc { @@ -36,9 +33,9 @@ decoration { enabled = true xray = true } - drop_shadow=true - shadow_range=4 - col.shadow=0x66000000 +# drop_shadow=true +# shadow_range=4 +# col.shadow=0x66000000 } animations { diff --git a/packages/hyprland/startup.conf b/packages/hyprland/startup.conf index fd9927e..cbe6268 100644 --- a/packages/hyprland/startup.conf +++ b/packages/hyprland/startup.conf @@ -1 +1,3 @@ -exec-once=asztal +exec-once=waybar +exec-once=swaync +exec-once=wl-paste --watch cliphist store diff --git a/packages/hyprland/theme.conf b/packages/hyprland/theme.conf index 147413f..0b00215 100644 --- a/packages/hyprland/theme.conf +++ b/packages/hyprland/theme.conf @@ -22,7 +22,7 @@ group { decoration { rounding = 10 - drop_shadow = false +# drop_shadow = false blur { enabled = yes diff --git a/packages/kitty/default.nix b/packages/kitty/default.nix index 0150fc0..9865de2 100644 --- a/packages/kitty/default.nix +++ b/packages/kitty/default.nix @@ -45,6 +45,7 @@ programs.zsh = { syntaxHighlighting.enable = true; initExtra = '' eval "$(starship init zsh)" + export PATH=$PATH:$HOME/Documents/Shells/flutter/flutter/bin ''; diff --git a/packages/nvim/default.nix b/packages/nvim/default.nix index 6cf851a..238d44d 100644 --- a/packages/nvim/default.nix +++ b/packages/nvim/default.nix @@ -6,6 +6,8 @@ nil ripgrep lldb + lazygit + gcc ]; programs.neovim = { @@ -16,7 +18,6 @@ programs.neovim = { programs.neovim.plugins = [ pkgs.vimPlugins.lazy-nvim - pkgs.vimPlugins.nvim-lspconfig ]; home.file = @@ -24,8 +25,11 @@ programs.neovim.plugins = [ { ".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/flutter.lua".source = ./lua/plugins/flutter.lua; +# ".config/nvim/lua/plugins/coq.lua".source = ./lua/plugins/coq.lua; + ".config/nvim/lua/plugins/blink-cmp.lua".source = ./lua/plugins/blink-cmp.lua; + ".config/nvim/lua/plugins/lsp.lua".source = ./lua/plugins/lsp.lua; +# ".config/nvim/lua/plugins/mason.lua".source = ./lua/plugins/mason.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; @@ -38,6 +42,17 @@ programs.neovim.plugins = [ ".config/nvim/lua/plugins/dap.lua".source = ./lua/plugins/dap.lua; ".config/nvim/lua/plugins/blankline.lua".source = ./lua/plugins/blankline.lua; ".config/nvim/lua/plugins/rustaceanvim.lua".source = ./lua/plugins/rustaceanvim.lua; + ".config/nvim/lua/plugins/lazygit.lua".source = ./lua/plugins/lazygit.lua; + ".config/nvim/lua/plugins/toggleterm.lua".source = ./lua/plugins/toggleterm.lua; + ".config/nvim/lua/plugins/love.lua".source = ./lua/plugins/love.lua; + ".config/nvim/lua/plugins/code-action.lua".source = ./lua/plugins/code-action.lua; + ".config/nvim/lua/plugins/tabby.lua".source = ./lua/plugins/tabby.lua; + ".config/nvim/lua/plugins/tabout.lua".source = ./lua/plugins/tabout.lua; + ".config/nvim/lua/plugins/autopair.lua".source = ./lua/plugins/autopair.lua; + ".config/nvim/lua/plugins/mini-animate.lua".source = ./lua/plugins/mini-animate.lua; + ".config/nvim/lua/plugins/vim-suda.lua".source = ./lua/plugins/vim-suda.lua; + ".config/nvim/lua/plugins/tiny-inline-diagnostic.lua".source = ./lua/plugins/tiny-inline-diagnostic.lua; + } ]; } diff --git a/packages/nvim/init.lua b/packages/nvim/init.lua index 1a05e1c..1fa326d 100644 --- a/packages/nvim/init.lua +++ b/packages/nvim/init.lua @@ -31,11 +31,20 @@ vim.keymap.set('n', '', ':resize +2', opts) vim.keymap.set('n', '', ':vertical resize -2', opts) vim.keymap.set('n', '', ':vertical resize +2', opts) - vim.keymap.set('i', 'jk', '', opts) +vim.keymap.set('n', 'gd', vim.lsp.buf.definition, bufopts) + +-- jump to definition +vim.keymap.set('n', 'gd', vim.lsp.buf.definition, bufopts) + +-- code actions +vim.keymap.set("n", "ca", function() + require("tiny-code-action").code_action() +end, { noremap = true, silent = true }) -- Lazy require("config.lazy") + -- require("flutter-tools").setup {} -- use defaults require("catppuccin").setup({ integrations = { @@ -51,7 +60,6 @@ require("catppuccin").setup({ } }) - -- css colors vim.opt.termguicolors = true require('nvim-highlight-colors').setup({}) @@ -59,69 +67,109 @@ 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-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, -} ]] - - - -- Plugin setups require('lualine').setup() require("dapui").setup() require("ibl").setup() +require("telescope").load_extension("flutter") +require("toggleterm").setup{} +require("mini.animate").setup() +require("tiny-inline-diagnostic").setup() --- -- Debugger +require("tabby").setup({ + preset = 'tab_only' +}) + +-- alternatively you can override the default configs +require("flutter-tools").setup { + ui = { + -- the border type to use for all floating windows, the same options/formats + -- used for ":h nvim_open_win" e.g. "single" | "shadow" | {} + border = "rounded", + -- This determines whether notifications are show with `vim.notify` or with the plugin's custom UI + -- please note that this option is eventually going to be deprecated and users will need to + -- depend on plugins like `nvim-notify` instead. + notification_style = 'plugin' + }, + decorations = { + statusline = { + -- set to true to be able use the 'flutter_tools_decorations.app_version' in your statusline + -- this will show the current version of the flutter app from the pubspec.yaml file + app_version = false, + -- set to true to be able use the 'flutter_tools_decorations.device' in your statusline + -- this will show the currently running device if an application was started with a specific + -- device + device = true, + -- set to true to be able use the 'flutter_tools_decorations.project_config' in your statusline + -- this will show the currently selected project configuration + project_config = false, + } + }, + debugger = { -- integrate with nvim dap + install dart code debugger + enabled = true, + -- if empty dap will not stop on any exceptions, otherwise it will stop on those specified + -- see |:help dap.set_exception_breakpoints()| for more info + exception_breakpoints = { "uncaught" }, + -- Whether to call toString() on objects in debug views like hovers and the + -- variables list. + -- Invoking toString() has a performance cost and may introduce side-effects, + -- although users may expected this functionality. null is treated like false. + evaluate_to_string_in_debug_views = true, + }, + flutter_lookup_cmd = nil, -- example "dirname $(which flutter)" or "asdf where flutter" + root_patterns = { ".git", "pubspec.yaml" }, -- patterns to find the root of your flutter project + fvm = false, -- takes priority over path, uses /.fvm/flutter_sdk if enabled + widget_guides = { + enabled = true, + }, + closing_tags = { + highlight = "ErrorMsg", -- highlight for the closing tag + prefix = ">", -- character to use for close tag e.g. > Widget + priority = 10, -- priority of virtual text in current line + -- consider to configure this when there is a possibility of multiple virtual text items in one line + -- see `priority` option in |:help nvim_buf_set_extmark| for more info + enabled = true -- set to false to disable + }, + dev_log = { + enabled = true, + filter = nil, -- optional callback to filter the log + -- takes a log_line as string argument; returns a boolean or nil; + -- the log_line is only added to the output if the function returns true + notify_errors = false, -- if there is an error whilst running then notify the user + open_cmd = "15split", -- command to use to open the log buffer + focus_on_open = true, -- focus on the newly opened log window + }, + dev_tools = { + autostart = false, -- autostart devtools server if not detected + auto_open_browser = false, -- Automatically opens devtools in the browser + }, + outline = { + open_cmd = "30vnew", -- command to use to open the outline buffer + auto_open = false -- if true this will open the outline automatically when it is first populated + }, + lsp = { + color = { -- show the derived colours for dart variables + enabled = true, -- whether or not to highlight color variables at all, only supported on flutter >= 2.10 + background = true, -- highlight the background + background_color = nil, -- required, when background is transparent (i.e. background_color = { r = 19, g = 17, b = 24},) + foreground = false, -- highlight the foreground + virtual_text = true, -- show the highlight using virtual text + virtual_text_str = "■", -- the virtual text character to highlight + }, + -- see the link below for details on each option: + -- https://github.com/dart-lang/sdk/blob/master/pkg/analysis_server/tool/lsp_spec/README.md#client-workspace-configuration + settings = { + showTodos = true, + completeFunctionCalls = true, + renameFilesWithClasses = "prompt", -- "always" + enableSnippets = true, + updateImportsOnRename = true, -- Whether to update imports and other directives when files are renamed. Required for `FlutterRename` command. + } + } +} + + +------------- -- Debugger local dap, dapui = require("dap"), require("dapui") dap.listeners.before.attach.dapui_config = function() dapui.open() @@ -145,6 +193,7 @@ dap.adapters.lldb = { dap.configurations.c = dap.configurations.cpp dap.configurations.rust = dap.configurations.cpp + -------------------------------------------- local builtin = require('telescope.builtin') -- Telescope binds @@ -152,16 +201,26 @@ vim.keymap.set('n', 'ff', builtin.find_files, { desc = 'Telescope find f vim.keymap.set('n', 'fg', builtin.live_grep, { desc = 'Telescope live grep' }) vim.keymap.set('n', 'fb', ":Telescope file_browser", { desc = 'Telescope file_browser' }) vim.keymap.set('n', 'fh', builtin.help_tags, { desc = 'Telescope help tags' }) - +vim.keymap.set('n', 'fl', ": Telescope flutter commands", { desc = "Open Telescope flutter" }) +vim.keymap.set('n', 'fl', ":Telescope flutter commands", { desc = "Open Telescope flutter" }) -- Dap binds vim.keymap.set('n', 'do', dapui.open, { desc = "Open debug overlay" }) vim.keymap.set('n', 'dc', dapui.close, { desc = "Close debug overlay" }) -vim.keymap.set('n', '', dap.toggle_breakpoint, { desc = "Close debug overlay" }) -vim.keymap.set('n', '', dap.continue, { desc = "Close debug overlay" }) -vim.keymap.set('n', '', dap.step_over, { desc = "Close debug overlay" }) -vim.keymap.set('n', '', dap.step_into, { desc = "Close debug overlay" }) +vim.keymap.set('n', '', dap.toggle_breakpoint, { desc = "Toggle breakpoint" }) +vim.keymap.set('n', '', dap.continue, { desc = "dap Continue" }) +vim.keymap.set('n', '', dap.step_over, { desc = "dap step over" }) +vim.keymap.set('n', '', dap.step_into, { desc = "dap step into" }) +-- toggleterm binds +vim.keymap.set('n', 'tf', ':ToggleTerm direction=float ', { desc = "Open floating terminal" }) +vim.keymap.set('n', 'tt', ':ToggleTerm direction=tab size=50 ', { desc = "Open terminal in new tab" }) +vim.keymap.set('n', 'tv', ':ToggleTerm direction=vertical ', { desc = "Open terminal vertical" }) +vim.keymap.set('n', 'ts', ':ToggleTerm direction=vertical ', { desc = "select open terminal" }) +-- code actions +vim.keymap.set("n", "ca", function() + require("tiny-code-action").code_action() +end, { desc = "Show code actions", noremap = true, silent = true }) diff --git a/packages/nvim/lua/config/lazy.lua b/packages/nvim/lua/config/lazy.lua index f5ee74c..c9c445b 100644 --- a/packages/nvim/lua/config/lazy.lua +++ b/packages/nvim/lua/config/lazy.lua @@ -21,6 +21,7 @@ vim.opt.rtp:prepend(lazypath) vim.g.mapleader = " " vim.g.maplocalleader = "\\" + -- Setup lazy.nvim require("lazy").setup({ spec = { diff --git a/packages/nvim/lua/plugins/autopair.lua b/packages/nvim/lua/plugins/autopair.lua new file mode 100644 index 0000000..2db00d8 --- /dev/null +++ b/packages/nvim/lua/plugins/autopair.lua @@ -0,0 +1,7 @@ +return { + 'windwp/nvim-autopairs', + event = "InsertEnter", + config = true + -- use opts = {} for passing setup options + -- this is equivalent to setup({}) function +} diff --git a/packages/nvim/lua/plugins/blink-cmp.lua b/packages/nvim/lua/plugins/blink-cmp.lua new file mode 100644 index 0000000..3399a47 --- /dev/null +++ b/packages/nvim/lua/plugins/blink-cmp.lua @@ -0,0 +1,48 @@ +return { + 'saghen/blink.cmp', + -- optional: provides snippets for the snippet source + dependencies = { 'rafamadriz/friendly-snippets' }, + + -- use a release tag to download pre-built binaries + version = '1.*', + -- AND/OR build from source, requires nightly: https://rust-lang.github.io/rustup/concepts/channels.html#working-with-nightly-rust + -- build = 'cargo build --release', + -- If you use nix, you can build from source using latest nightly rust with: + -- build = 'nix run .#build-plugin', + + ---@module 'blink.cmp' + ---@type blink.cmp.Config + opts = { + -- See :h blink-cmp-config-keymap for defining your own keymap + keymap = { + preset = 'enter', + -- map tap to cycle through + [''] = { 'select_prev', 'fallback' }, + [''] = { 'select_next', 'fallback' }, + }, + + + appearance = { + -- 'mono' (default) for 'Nerd Font Mono' or 'normal' for 'Nerd Font' + -- Adjusts spacing to ensure icons are aligned + nerd_font_variant = 'mono' + }, + + -- (Default) Only show the documentation popup when manually triggered + completion = { documentation = { auto_show = false } }, + + -- Default list of enabled providers defined so that you can extend it + -- elsewhere in your config, without redefining it, due to `opts_extend` + sources = { + default = { 'lsp', 'path', 'snippets', 'buffer' }, + }, + + -- (Default) Rust fuzzy matcher for typo resistance and significantly better performance + -- You may use a lua implementation instead by using `implementation = "lua"` or fallback to the lua implementation, + -- when the Rust fuzzy matcher is not available, by using `implementation = "prefer_rust"` + -- + -- See the fuzzy documentation for more information + fuzzy = { implementation = "prefer_rust_with_warning" } + }, + opts_extend = { "sources.default" } +} diff --git a/packages/nvim/lua/plugins/code-action.lua b/packages/nvim/lua/plugins/code-action.lua new file mode 100644 index 0000000..b4e3416 --- /dev/null +++ b/packages/nvim/lua/plugins/code-action.lua @@ -0,0 +1,11 @@ +return { + "rachartier/tiny-code-action.nvim", + dependencies = { + {"nvim-lua/plenary.nvim"}, + {"nvim-telescope/telescope.nvim"}, + }, + event = "LspAttach", + config = function() + require('tiny-code-action').setup() + end +} diff --git a/packages/nvim/lua/plugins/lazygit.lua b/packages/nvim/lua/plugins/lazygit.lua new file mode 100644 index 0000000..c7cb122 --- /dev/null +++ b/packages/nvim/lua/plugins/lazygit.lua @@ -0,0 +1,21 @@ +-- nvim v0.8.0 +return { + "kdheepak/lazygit.nvim", + lazy = true, + cmd = { + "LazyGit", + "LazyGitConfig", + "LazyGitCurrentFile", + "LazyGitFilter", + "LazyGitFilterCurrentFile", + }, + -- optional for floating window border decoration + dependencies = { + "nvim-lua/plenary.nvim", + }, + -- setting the keybinding for LazyGit with 'keys' is recommended in + -- order to load the plugin when the command is run for the first time + keys = { + { "lg", "LazyGit", desc = "LazyGit" } + } +} diff --git a/packages/nvim/lua/plugins/love.lua b/packages/nvim/lua/plugins/love.lua new file mode 100644 index 0000000..38d1e05 --- /dev/null +++ b/packages/nvim/lua/plugins/love.lua @@ -0,0 +1,10 @@ +return { + "S1M0N38/love2d.nvim", + cmd = "LoveRun", + opts = { }, + keys = { + { "v", ft = "lua", desc = "LÖVE" }, + { "vv", "LoveRun", ft = "lua", desc = "Run LÖVE" }, + { "vs", "LoveStop", ft = "lua", desc = "Stop LÖVE" }, + }, +} diff --git a/packages/nvim/lua/plugins/lsp.lua b/packages/nvim/lua/plugins/lsp.lua index dfeed66..9fb572d 100644 --- a/packages/nvim/lua/plugins/lsp.lua +++ b/packages/nvim/lua/plugins/lsp.lua @@ -1,53 +1,30 @@ -local on_attach = function(_, bufnr) +return { + 'neovim/nvim-lspconfig', + dependencies = { 'saghen/blink.cmp' }, - local bufmap = function(keys, func) - vim.keymap.set('n', keys, func, { buffer = bufnr }) + -- example using `opts` for defining servers + opts = { + servers = { + lua_ls = {}, + nil_ls = {}, + rust_analyzer = {} + } + }, + config = function(_, opts) + local lspconfig = require('lspconfig') + for server, config in pairs(opts.servers) do + -- passing config.capabilities to blink.cmp merges with the capabilities in your + -- `opts[server].capabilities, if you've defined it + config.capabilities = require('blink.cmp').get_lsp_capabilities(config.capabilities) + lspconfig[server].setup(config) + end 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 }, - }, - } + -- -- example calling setup directly for each LSP + -- config = function() + -- local capabilities = require('blink.cmp').get_lsp_capabilities() + -- local lspconfig = require('lspconfig') + -- + -- lspconfig['lua_ls'].setup({ capabilities = capabilities }) + -- end } - -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/mason.lua b/packages/nvim/lua/plugins/mason.lua new file mode 100644 index 0000000..73457d4 --- /dev/null +++ b/packages/nvim/lua/plugins/mason.lua @@ -0,0 +1,37 @@ +return { + + "williamboman/mason.nvim", + cmd = "Mason", + keys = { { "cm", "Mason", desc = "Mason" } }, + build = ":MasonUpdate", + opts_extend = { "ensure_installed" }, + opts = { + ensure_installed = { + "stylua", + "shfmt", + }, + }, + ---@param opts MasonSettings | {ensure_installed: string[]} + config = function(_, opts) + require("mason").setup(opts) + local mr = require("mason-registry") + mr:on("package:install:success", function() + vim.defer_fn(function() + -- trigger FileType event to possibly load this newly installed LSP server + require("lazy.core.handler.event").trigger({ + event = "FileType", + buf = vim.api.nvim_get_current_buf(), + }) + end, 100) + end) + + mr.refresh(function() + for _, tool in ipairs(opts.ensure_installed) do + local p = mr.get_package(tool) + if not p:is_installed() then + p:install() + end + end + end) + end, +} diff --git a/packages/nvim/lua/plugins/mini-animate.lua b/packages/nvim/lua/plugins/mini-animate.lua new file mode 100644 index 0000000..f7e1d28 --- /dev/null +++ b/packages/nvim/lua/plugins/mini-animate.lua @@ -0,0 +1 @@ +return { 'echasnovski/mini.animate', version = false } diff --git a/packages/nvim/lua/plugins/nio.lua b/packages/nvim/lua/plugins/nio.lua new file mode 100644 index 0000000..a8f5d15 --- /dev/null +++ b/packages/nvim/lua/plugins/nio.lua @@ -0,0 +1 @@ +return { "nvim-neotest/nvim-nio" } diff --git a/packages/nvim/lua/plugins/tabby.lua b/packages/nvim/lua/plugins/tabby.lua new file mode 100644 index 0000000..b3a0981 --- /dev/null +++ b/packages/nvim/lua/plugins/tabby.lua @@ -0,0 +1,8 @@ +return { + 'nanozuki/tabby.nvim', + -- event = 'VimEnter', -- if you want lazy load, see below + dependencies = 'nvim-tree/nvim-web-devicons', + config = function() + -- configs... + end, +} diff --git a/packages/nvim/lua/plugins/tabout.lua b/packages/nvim/lua/plugins/tabout.lua new file mode 100644 index 0000000..79571a1 --- /dev/null +++ b/packages/nvim/lua/plugins/tabout.lua @@ -0,0 +1,42 @@ +return { + { + 'abecodes/tabout.nvim', + lazy = false, + config = function() + require('tabout').setup { + tabkey = '', -- key to trigger tabout, set to an empty string to disable + backwards_tabkey = '', -- key to trigger backwards tabout, set to an empty string to disable + act_as_tab = true, -- shift content if tab out is not possible + act_as_shift_tab = false, -- reverse shift content if tab out is not possible (if your keyboard/terminal supports ) + default_tab = '', -- shift default action (only at the beginning of a line, otherwise is used) + default_shift_tab = '', -- reverse shift default action, + enable_backwards = true, -- well ... + completion = false, -- if the tabkey is used in a completion pum + tabouts = { + { open = "'", close = "'" }, + { open = '"', close = '"' }, + { open = '`', close = '`' }, + { open = '(', close = ')' }, + { open = '[', close = ']' }, + { open = '{', close = '}' } + }, + ignore_beginning = true, --[[ if the cursor is at the beginning of a filled element it will rather tab out than shift the content ]] + exclude = {} -- tabout will ignore these filetypes + } + end, + dependencies = { -- These are optional + "L3MON4D3/LuaSnip", + }, + opt = true, -- Set this to true if the plugin is optional + event = 'InsertCharPre', -- Set the event to 'InsertCharPre' for better compatibility + priority = 1000, + }, + { + "L3MON4D3/LuaSnip", + keys = function() + -- Disable default tab keybinding in LuaSnip + return {} + end, + }, +} + diff --git a/packages/nvim/lua/plugins/tiny-inline-diagnostic.lua b/packages/nvim/lua/plugins/tiny-inline-diagnostic.lua new file mode 100644 index 0000000..f8670ae --- /dev/null +++ b/packages/nvim/lua/plugins/tiny-inline-diagnostic.lua @@ -0,0 +1,9 @@ +return { + "rachartier/tiny-inline-diagnostic.nvim", + event = "VeryLazy", -- Or `LspAttach` + priority = 1000, -- needs to be loaded in first + config = function() + require('tiny-inline-diagnostic').setup() + vim.diagnostic.config({ virtual_text = false }) -- Only if needed in your configuration, if you already have native LSP diagnostics + end +} diff --git a/packages/nvim/lua/plugins/toggleterm.lua b/packages/nvim/lua/plugins/toggleterm.lua new file mode 100644 index 0000000..698b229 --- /dev/null +++ b/packages/nvim/lua/plugins/toggleterm.lua @@ -0,0 +1,4 @@ +return { + -- amongst your other plugins + {'akinsho/toggleterm.nvim', version = "*", config = true} +} diff --git a/packages/nvim/lua/plugins/treesitter.lua b/packages/nvim/lua/plugins/treesitter.lua index a2f9998..37d04fa 100644 --- a/packages/nvim/lua/plugins/treesitter.lua +++ b/packages/nvim/lua/plugins/treesitter.lua @@ -6,7 +6,7 @@ return { local configs = require("nvim-treesitter.configs") configs.setup({ - ensure_installed = { "c", "lua", "html", "dart" }, + ensure_installed = { "c", "lua", "html", "dart", "nix" }, sync_install = false, highlight = { enable = true }, indent = { enable = true }, diff --git a/packages/nvim/lua/plugins/vim-suda.lua b/packages/nvim/lua/plugins/vim-suda.lua new file mode 100644 index 0000000..ecb555b --- /dev/null +++ b/packages/nvim/lua/plugins/vim-suda.lua @@ -0,0 +1,3 @@ +return { + "lambdalisue/vim-suda" +} diff --git a/packages/nvim/nvim/plugins/autopair.lua b/packages/nvim/nvim/plugins/autopair.lua new file mode 100644 index 0000000..2db00d8 --- /dev/null +++ b/packages/nvim/nvim/plugins/autopair.lua @@ -0,0 +1,7 @@ +return { + 'windwp/nvim-autopairs', + event = "InsertEnter", + config = true + -- use opts = {} for passing setup options + -- this is equivalent to setup({}) function +} diff --git a/packages/nvim/nvim/plugins/blankline.lua b/packages/nvim/nvim/plugins/blankline.lua new file mode 100644 index 0000000..a1e1bc9 --- /dev/null +++ b/packages/nvim/nvim/plugins/blankline.lua @@ -0,0 +1,7 @@ +return { + "lukas-reineke/indent-blankline.nvim", + main = "ibl", + ---@module "ibl" + ---@type ibl.config + opts = {}, +} diff --git a/packages/nvim/nvim/plugins/blink-cmp.lua b/packages/nvim/nvim/plugins/blink-cmp.lua new file mode 100644 index 0000000..8b44248 --- /dev/null +++ b/packages/nvim/nvim/plugins/blink-cmp.lua @@ -0,0 +1,46 @@ +return { + 'saghen/blink.cmp', + -- optional: provides snippets for the snippet source + dependencies = { 'rafamadriz/friendly-snippets' }, + + -- use a release tag to download pre-built binaries + version = '1.*', + opts = { + -- 'default' (recommended) for mappings similar to built-in completions (C-y to accept) + -- 'super-tab' for mappings similar to vscode (tab to accept) + -- 'enter' for enter to accept + -- 'none' for no mappings + -- + -- All presets have the following mappings: + -- C-space: Open menu or open docs if already open + -- C-n/C-p or Up/Down: Select next/previous item + -- C-e: Hide menu + -- C-k: Toggle signature help (if signature.enabled = true) + -- + -- See :h blink-cmp-config-keymap for defining your own keymap + keymap = { preset = 'enter' }, + + appearance = { + -- 'mono' (default) for 'Nerd Font Mono' or 'normal' for 'Nerd Font' + -- Adjusts spacing to ensure icons are aligned + nerd_font_variant = 'mono' + }, + + -- (Default) Only show the documentation popup when manually triggered + completion = { documentation = { auto_show = false } }, + + -- Default list of enabled providers defined so that you can extend it + -- elsewhere in your config, without redefining it, due to `opts_extend` + sources = { + default = { 'lsp', 'path', 'snippets', 'buffer' }, + }, + + -- (Default) Rust fuzzy matcher for typo resistance and significantly better performance + -- You may use a lua implementation instead by using `implementation = "lua"` or fallback to the lua implementation, + -- when the Rust fuzzy matcher is not available, by using `implementation = "prefer_rust"` + -- + -- See the fuzzy documentation for more information + fuzzy = { implementation = "prefer_rust_with_warning" } + }, + opts_extend = { "sources.default" } +} diff --git a/packages/nvim/nvim/plugins/code-action.lua b/packages/nvim/nvim/plugins/code-action.lua new file mode 100644 index 0000000..b4e3416 --- /dev/null +++ b/packages/nvim/nvim/plugins/code-action.lua @@ -0,0 +1,11 @@ +return { + "rachartier/tiny-code-action.nvim", + dependencies = { + {"nvim-lua/plenary.nvim"}, + {"nvim-telescope/telescope.nvim"}, + }, + event = "LspAttach", + config = function() + require('tiny-code-action').setup() + end +} diff --git a/packages/nvim/nvim/plugins/comment.lua b/packages/nvim/nvim/plugins/comment.lua new file mode 100644 index 0000000..51f52c9 --- /dev/null +++ b/packages/nvim/nvim/plugins/comment.lua @@ -0,0 +1,8 @@ +-- add this to your lua/plugins.lua, lua/plugins/init.lua, or the file you keep your other plugins: +return { + 'numToStr/Comment.nvim', + opts = { + -- add any options here + } +} + diff --git a/packages/nvim/nvim/plugins/dap.lua b/packages/nvim/nvim/plugins/dap.lua new file mode 100644 index 0000000..4be4d3f --- /dev/null +++ b/packages/nvim/nvim/plugins/dap.lua @@ -0,0 +1 @@ +return { "rcarriga/nvim-dap-ui", dependencies = {"mfussenegger/nvim-dap", "nvim-neotest/nvim-nio"} } diff --git a/packages/nvim/nvim/plugins/lazygit.lua b/packages/nvim/nvim/plugins/lazygit.lua new file mode 100644 index 0000000..c7cb122 --- /dev/null +++ b/packages/nvim/nvim/plugins/lazygit.lua @@ -0,0 +1,21 @@ +-- nvim v0.8.0 +return { + "kdheepak/lazygit.nvim", + lazy = true, + cmd = { + "LazyGit", + "LazyGitConfig", + "LazyGitCurrentFile", + "LazyGitFilter", + "LazyGitFilterCurrentFile", + }, + -- optional for floating window border decoration + dependencies = { + "nvim-lua/plenary.nvim", + }, + -- setting the keybinding for LazyGit with 'keys' is recommended in + -- order to load the plugin when the command is run for the first time + keys = { + { "lg", "LazyGit", desc = "LazyGit" } + } +} diff --git a/packages/nvim/nvim/plugins/love.lua b/packages/nvim/nvim/plugins/love.lua new file mode 100644 index 0000000..530b68b --- /dev/null +++ b/packages/nvim/nvim/plugins/love.lua @@ -0,0 +1,11 @@ +-- using lazy.nvim +return { + "S1M0N38/love2d.nvim", + cmd = "LoveRun", + opts = { }, + keys = { + { "v", ft = "lua", desc = "LÖVE" }, + { "vv", "LoveRun", ft = "lua", desc = "Run LÖVE" }, + { "vs", "LoveStop", ft = "lua", desc = "Stop LÖVE" }, + }, +} diff --git a/packages/nvim/nvim/plugins/mini-animate.lua b/packages/nvim/nvim/plugins/mini-animate.lua new file mode 100644 index 0000000..df709de --- /dev/null +++ b/packages/nvim/nvim/plugins/mini-animate.lua @@ -0,0 +1 @@ +return { 'echasnovski/mini.animate', version = '*' } diff --git a/packages/nvim/nvim/plugins/nio.nvim b/packages/nvim/nvim/plugins/nio.nvim new file mode 100644 index 0000000..a8f5d15 --- /dev/null +++ b/packages/nvim/nvim/plugins/nio.nvim @@ -0,0 +1 @@ +return { "nvim-neotest/nvim-nio" } diff --git a/packages/nvim/nvim/plugins/rustaceanvim.lua b/packages/nvim/nvim/plugins/rustaceanvim.lua new file mode 100644 index 0000000..eb83332 --- /dev/null +++ b/packages/nvim/nvim/plugins/rustaceanvim.lua @@ -0,0 +1,5 @@ +return { + 'mrcjkb/rustaceanvim', + version = '^6', -- Recommended + lazy = false, -- This plugin is already lazy +} diff --git a/packages/nvim/nvim/plugins/tabby.lua b/packages/nvim/nvim/plugins/tabby.lua new file mode 100644 index 0000000..b3a0981 --- /dev/null +++ b/packages/nvim/nvim/plugins/tabby.lua @@ -0,0 +1,8 @@ +return { + 'nanozuki/tabby.nvim', + -- event = 'VimEnter', -- if you want lazy load, see below + dependencies = 'nvim-tree/nvim-web-devicons', + config = function() + -- configs... + end, +} diff --git a/packages/nvim/nvim/plugins/tabout.lua b/packages/nvim/nvim/plugins/tabout.lua new file mode 100644 index 0000000..8c3fc18 --- /dev/null +++ b/packages/nvim/nvim/plugins/tabout.lua @@ -0,0 +1,45 @@ +-- Lua +return { + { + 'abecodes/tabout.nvim', + lazy = false, + config = function() + require('tabout').setup { + tabkey = '', -- key to trigger tabout, set to an empty string to disable + backwards_tabkey = '', -- key to trigger backwards tabout, set to an empty string to disable + act_as_tab = true, -- shift content if tab out is not possible + act_as_shift_tab = false, -- reverse shift content if tab out is not possible (if your keyboard/terminal supports ) + default_tab = '', -- shift default action (only at the beginning of a line, otherwise is used) + default_shift_tab = '', -- reverse shift default action, + enable_backwards = true, -- well ... + completion = false, -- if the tabkey is used in a completion pum + tabouts = { + { open = "'", close = "'" }, + { open = '"', close = '"' }, + { open = '`', close = '`' }, + { open = '(', close = ')' }, + { open = '[', close = ']' }, + { open = '{', close = '}' } + }, + ignore_beginning = true, --[[ if the cursor is at the beginning of a filled element it will rather tab out than shift the content ]] + exclude = {} -- tabout will ignore these filetypes + } + end, + dependencies = { -- These are optional + "nvim-treesitter/nvim-treesitter", + "L3MON4D3/LuaSnip", + "hrsh7th/nvim-cmp" + }, + opt = true, -- Set this to true if the plugin is optional + event = 'InsertCharPre', -- Set the event to 'InsertCharPre' for better compatibility + priority = 1000, + }, + { + "L3MON4D3/LuaSnip", + keys = function() + -- Disable default tab keybinding in LuaSnip + return {} + end, + }, +} + diff --git a/packages/nvim/nvim/plugins/toggleterm.lua b/packages/nvim/nvim/plugins/toggleterm.lua new file mode 100644 index 0000000..0b8f7ab --- /dev/null +++ b/packages/nvim/nvim/plugins/toggleterm.lua @@ -0,0 +1,6 @@ +return { + -- amongst your other plugins + {'akinsho/toggleterm.nvim', version = "*", config = true} + -- or + {'akinsho/toggleterm.nvim', version = "*", opts = {--[[ things you want to change go here]]}} +} diff --git a/packages/nvim/nvim/plugins/trouble.lua b/packages/nvim/nvim/plugins/trouble.lua new file mode 100644 index 0000000..3741f30 --- /dev/null +++ b/packages/nvim/nvim/plugins/trouble.lua @@ -0,0 +1,37 @@ +return { + "folke/trouble.nvim", + opts = {}, -- for default options, refer to the configuration section for custom setup. + cmd = "Trouble", + keys = { + { + "xx", + "Trouble diagnostics toggle", + desc = "Diagnostics (Trouble)", + }, + { + "xX", + "Trouble diagnostics toggle filter.buf=0", + desc = "Buffer Diagnostics (Trouble)", + }, + { + "cs", + "Trouble symbols toggle focus=false", + desc = "Symbols (Trouble)", + }, + { + "cl", + "Trouble lsp toggle focus=false win.position=right", + desc = "LSP Definitions / references / ... (Trouble)", + }, + { + "xL", + "Trouble loclist toggle", + desc = "Location List (Trouble)", + }, + { + "xQ", + "Trouble qflist toggle", + desc = "Quickfix List (Trouble)", + }, + }, +} diff --git a/packages/nvim/nvim/plugins/whichkey.lua b/packages/nvim/nvim/plugins/whichkey.lua new file mode 100644 index 0000000..9fadb97 --- /dev/null +++ b/packages/nvim/nvim/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)", + }, + }, +} diff --git a/packages/swaync/default.nix b/packages/swaync/default.nix new file mode 100644 index 0000000..ad85b31 --- /dev/null +++ b/packages/swaync/default.nix @@ -0,0 +1,725 @@ +{...}: { +#  use later + services.swaync = { + enable = true; + settings = { + "$schema" = "/etc/xdg/swaync/configSchema.json"; + positionX = "right"; + positionY = "top"; + cssPriority = "user"; + control-center-margin-top = 22; + control-center-margin-bottom = 2; + control-center-margin-right = 1; + control-center-margin-left = 0; + notification-icon-size = 64; + notification-body-image-height = 128; + notification-body-image-width = 200; + timeout = 6; + timeout-low = 3; + timeout-critical = 0; + fit-to-screen = false; + control-center-width = 400; + control-center-height = 915; + notification-window-width = 375; + keyboard-shortcuts = true; + image-visibility = "when-available"; + transition-time = 200; + hide-on-clear = false; + hide-on-action = true; + script-fail-notify = true; + widgets = [ + "title" + "dnd" + "menubar#desktop" + "volume" + "mpris" + "notifications" + ]; + widget-config = { + title = { + text = " Quick settings"; + clear-all-button = true; + button-text = ""; + }; + "menubar#desktop" = { + "menu#screenshot" = { + label = "\t󰄀 Screenshot\t"; + position = "left"; + actions = [ + { + label = "Whole screen"; + command = "sh -c 'swaync-client -cp; sleep 1; grimblast copysave output \"/tmp/screenshot.png\"; swappy -f \"/tmp/screenshot.png\"'"; + } + { + label = "Whole window / Select region"; + command = "sh -c 'swaync-client -cp; grimblast copysave area \"/tmp/screenshot.png\"; swappy -f \"/tmp/screenshot.png\"'"; + } + ]; + }; + "menu#power" = { + label = "\t Power Menu\t "; + position = "left"; + actions = [ + { + label = " Logout"; + command = "hyprctl dispatch exit 0"; + } + { + label = " Shut down"; + command = "systemctl poweroff"; + } + { + label = "󰤄 Suspend"; + command = "systemctl suspend"; + } + { + label = " Reboot"; + command = "systemctl reboot"; + } + ]; + }; + }; + volume = { + label = ""; + expand-button-label = ""; + collapse-button-label = ""; + show-per-app = true; + show-per-app-icon = true; + show-per-app-label = true; + }; + dnd = { + text = " Do Not Disturb"; + }; + mpris = { + image-size = 96; + image-radius = 4; + }; + label = { + text = "Notifications"; + clear-all-button = true; + button-text = ""; + }; + }; + scripts = { + example-script = { + exec = "echo 'Do something...'"; + urgency = "Normal"; + }; + }; + notification-visibility = { + spotify = { + state = "enabled"; + urgency = "Low"; + app-name = "Spotify"; + }; + }; + }; + style = '' + @define-color shadow rgba(0, 0, 0, 0.25); + /* + * + * Catppuccin Mocha palette + * Maintainer: rubyowo + * + */ + + @define-color base #1E1D2E; + @define-color mantle #181825; + @define-color crust #11111b; + + @define-color text #cdd6f4; + @define-color subtext0 #a6adc8; + @define-color subtext1 #bac2de; + + @define-color surface0 #313244; + @define-color surface1 #45475a; + @define-color surface2 #585b70; + + @define-color overlay0 #6c7086; + @define-color overlay1 #7f849c; + @define-color overlay2 #9399b2; + + @define-color blue #89b4fa; + @define-color lavender #b4befe; + @define-color sapphire #74c7ec; + @define-color sky #89dceb; + @define-color teal #94e2d5; + @define-color green #a6e3a1; + @define-color yellow #f9e2af; + @define-color peach #fab387; + @define-color maroon #eba0ac; + @define-color red #f38ba8; + @define-color mauve #cba6f7; + @define-color pink #f5c2e7; + @define-color flamingo #f2cdcd; + @define-color rosewater #f5e0dc; + + @define-color base_lighter #1e1e2e; + @define-color mauve_lighter #caa6f7; + + * { + font-family: "Product Sans"; + background-clip: border-box; + } + + /* #notifications_box { */ + /* border: solid 4px red; */ + /* } */ + + label { +color: @text; + } + + .notification { +border: none; + box-shadow: none; + /* margin: 0px; */ + /* margin: -15px -10px -15px -10px; */ + border-radius: 4px; +background: inherit; + /* background: @theme_bg_color; */ + /* background: shade(alpha(@borders, 2.55), 0.25); */ + } + + .notification button { +background: transparent; + border-radius: 0px; +border: none; +margin: 0px; +padding: 0px; + } + + .notification button:hover { + /* background: @surface0; */ +background: @insensitive_bg_color; + } + + .notification-content { + min-height: 64px; +margin: 10px; +padding: 0px; + border-radius: 0px; + } + + .close-button { +background: transparent; +color: transparent; + } + + .notification-default-action, + .notification-action { +background: transparent; +border: none; + } + + + .notification-default-action { + border-radius: 4px; + } + + /* When alternative actions are visible */ + .notification-default-action:not(:only-child) { + border-bottom-left-radius: 0px; + border-bottom-right-radius: 0px; + } + + .notification-action { + border-radius: 0px; +padding: 2px; +color: @text; + /* color: @theme_text_color; */ + } + + /* add bottom border radius to eliminate clipping */ + .notification-action:first-child { + border-bottom-left-radius: 4px; + } + + .notification-action:last-child { + border-bottom-right-radius: 4px; + } + + /*** Notification ***/ + /* Notification header */ + .summary { +color: @text; + /* color: @theme_text_color; */ + font-size: 14px; +padding: 0px; + } + + .time { +color: @subtext0; + /* color: alpha(@theme_text_color, 0.9); */ + font-size: 12px; + text-shadow: none; +margin: 0px 0px 0px 0px; +padding: 2px 0px; + } + + .body { + font-size: 14px; + font-weight: 500; +color: @subtext1; + /* color: alpha(@text, 0.9); */ + /* color: alpha(@theme_text_color, 0.9); */ + text-shadow: none; +margin: 0px 0px 0px 0px; + } + + .body-image { + border-radius: 4px; + } + + /* The "Notifications" and "Do Not Disturb" text widget */ + .top-action-title { +color: @text; + /* color: @theme_text_color; */ + text-shadow: none; + } + + /* Control center */ + + .control-center { +background: alpha(@crust, .80); + border-radius: 15px; +border: 0px solid @selected; + box-shadow: 0 0 10px 0 rgba(0,0,0,.80); +margin: 10px; +padding: 4px; + } + + /* .right.overlay-indicator { */ + /* border: solid 5px red; */ + /* } */ + + .control-center-list { + /* background: @base; */ +background: alpha(@crust, .80); + min-height: 5px; + /* border: 1px solid @surface1; */ + border-top: none; + border-radius: 0px 0px 4px 4px; + } + + .control-center-list-placeholder, + .notification-group-icon, + .notification-group { + /* opacity: 1.0; */ + /* opacity: 0; */ +color: alpha(@theme_text_color, 0.50); + } + + .notification-group { + /* unset the annoying focus thingie */ +opacity: 0; + box-shadow: none; + /* selectable: no; */ + } + + .notification-group > box { +all: unset; +background: transparent; + /* background: alpha(currentColor, 0.072); */ +padding: 4px; +margin: 0px; + /* margin: 0px -5px; */ +border: none; + border-radius: 4px; + box-shadow: none; + } + + .notification-row { +outline: none; +transition: all 1s ease; +background: alpha(@mantle, .80); + /* background: @theme_bg_color; */ +border: 0px solid @crust; +margin: 10px 5px 0px 5px; + border-radius: 14px; + /* box-shadow: 0px 0px 4px black; */ + /* background: alpha(currentColor, 0.05); */ + } + + .notification-row:focus, + .notification-row:hover { + box-shadow: none; + } + + .control-center-list > row, + .control-center-list > row:focus, + .control-center-list > row:hover { +background: transparent; +border: none; +margin: 0px; +padding: 5px 10px 5px 10px; + box-shadow: none; + } + + .control-center-list > row:last-child { +padding: 5px 10px 10px 10px; + } + + + /* Window behind control center and on all other monitors */ + .blank-window { +background: transparent; + } + + /*** Widgets ***/ + + /* Title widget */ + .widget-title { +margin: 0px; +background: transparent; + /* background: @theme_bg_color; */ + border-radius: 4px 4px 0px 0px; + /* border: 1px solid @surface1; */ + border-bottom: none; + } + + .widget-title > label { +margin: 18px 10px; + font-size: 20px; + font-weight: 500; + } + + .widget-title > button { + font-weight: 700; +padding: 7px 3px; + margin-right: 10px; +background: transparent; +color: @text; + /* color: @theme_text_color; */ +border: none; + border-radius: 4px; + } + .widget-title > button:hover { +background: @base; + /* background: alpha(currentColor, 0.1); */ + } + + /* Label widget */ + .widget-label { +margin: 0px; +padding: 0px; + min-height: 5px; +background: alpha(@mantle, .80); + /* background: @theme_bg_color; */ + border-radius: 0px 0px 4px 4px; + /* border: 1px solid @surface1; */ + border-top: none; + } + .widget-label > label { + font-size: 15px; + font-weight: 400; + } + + /* Menubar */ + .widget-menubar { +background: transparent; + /* background: @theme_bg_color; */ + /* border: 1px solid @surface1; */ + border-top: none; + border-bottom: none; + } + .widget-menubar > box > box { +margin: 5px 10px 5px 10px; + min-height: 40px; + border-radius: 4px; +background: transparent; + } + .widget-menubar > box > box > button { +background: alpha(@mantle, .80); + /* background: alpha(currentColor, 0.05); */ + min-width: 185px; + min-height: 50px; + margin-right: 10px; + font-size: 14px; +padding: 0px; + } + .widget-menubar > box > box > button:nth-child(2) { + margin-right: 0px; + } + .widget-menubar button:focus { + box-shadow: none; + } + .widget-menubar button:focus:hover { +background: @base; + /* background: alpha(currentColor,0.1); */ + box-shadow: none; + } + + .widget-menubar > box > revealer > box { +margin: 5px 10px 5px 10px; +background: alpha(@mantle, .80); + /* background: alpha(currentColor, 0.05); */ + border-radius: 4px; + } + .widget-menubar > box > revealer > box > button { +background: transparent; + min-height: 50px; +padding: 0px; +margin: 5px; + } + + /* Buttons grid */ + .widget-buttons-grid { + /* background-color: @theme_bg_color; */ +background: transparent; + /* border: 1px solid @surface1; */ + border-top: none; + border-bottom: none; + font-size: 14px; + font-weight: 500; +margin: 0px; +padding: 5px; + border-radius: 0px; + } + + .widget-buttons-grid > flowbox > flowboxchild { +background: alpha(@mantle, .80); + /* background: alpha(currentColor, 0.05); */ + border-radius: 4px; + min-height: 50px; + min-width: 85px; +margin: 5px; +padding: 0px; + } + + .widget-buttons-grid > flowbox > flowboxchild > button { +background: transparent; + border-radius: 4px; +margin: 0px; +border: none; + box-shadow: none; + } + + + .widget-buttons-grid > flowbox > flowboxchild > button:hover { +background: alpha(@mantle, .80); + /* background: alpha(currentColor, 0.1); */ + } + + /* Mpris widget */ + .widget-mpris { +padding: 8px; + padding-bottom: 15px; + margin-bottom: -33px; + } + .widget-mpris > box { +padding: 0px; +margin: -5px 0px -10px 0px; +padding: 0px; + border-radius: 4px; + /* background: alpha(currentColor, 0.05); */ +background: alpha(@mantle, .80); + } + .widget-mpris > box > button:nth-child(1), + .widget-mpris > box > button:nth-child(3) { + margin-bottom: 0px; + } + .widget-mpris > box > button:nth-child(1) { + margin-left: -25px; + margin-right: -25px; +opacity: 0; + } + .widget-mpris > box > button:nth-child(3) { + margin-left: -25px; + margin-right: -25px; +opacity: 0; + } + + .widget-mpris-album-art { +all: unset; + } + + /* Player button box */ + .widget-mpris > box > carousel > widget > box > box:nth-child(2) { +margin: 5px 0px -5px 90px; + } + + /* Player buttons */ + .widget-mpris > box > carousel > widget > box > box:nth-child(2) > button { + border-radius: 4px; + } + .widget-mpris > box > carousel > widget > box > box:nth-child(2) > button:hover { +background: alpha(currentColor, 0.1); + } + carouselindicatordots { +opacity: 0; + } + + .widget-mpris-title { +color: #eeeeee; + font-weight: bold; + font-size: 1.25rem; + text-shadow: 0px 0px 5px rgba(0, 0, 0, 0.5); + } + .widget-mpris-subtitle { +color: #eeeeee; + font-size: 1rem; + text-shadow: 0px 0px 3px rgba(0, 0, 0, 1); + } + + .widget-mpris-player { + border-radius: 0px; +margin: 0px; + } + .widget-mpris-player > box > image { +margin: 0px 0px -48px 0px; + } + + .notification-group > box.vertical { + /* border: solid 5px red; */ + margin-top: 3px + } + + /* Backlight and volume widgets */ + .widget-backlight, + .widget-volume { +background: transparent; + /* background-color: @crust; */ + /* background-color: @theme_bg_color; */ + /* border: 1px solid @surface1; */ + border-top: none; + border-bottom: none; font-size: 13px; + font-weight: 600; + border-radius: 0px; +margin: 0px; +padding: 0px; + } + .widget-volume > box { +background: alpha(@mantle, .80); + /* background: alpha(currentColor, 0.05); */ + border-radius: 4px; +margin: 5px 10px 5px 10px; + min-height: 50px; + } + .widget-volume > box > label { + min-width: 50px; +padding: 0px; + } + .widget-volume > box > button { + min-width: 50px; + box-shadow: none; +padding: 0px; + } + .widget-volume > box > button:hover { + /* background: alpha(currentColor, 0.05); */ +background: @surface0; + } + .widget-volume > revealer > list { +background: alpha(@mantle, .80); + /* background: alpha(currentColor, 0.05); */ + border-radius: 4px; + margin-top: 5px; +padding: 0px; + } + .widget-volume > revealer > list > row { + padding-left: 10px; + min-height: 40px; +background: transparent; + } + .widget-volume > revealer > list > row:hover { +background: transparent; + box-shadow: none; + border-radius: 4px; + } + .widget-backlight > scale { +background: alpha(@mantle, .80); + /* background: alpha(currentColor, 0.05); */ + border-radius: 0px 4px 4px 0px; +margin: 5px 10px 5px 0px; +padding: 0px 10px 0px 0px; + min-height: 50px; + } + .widget-backlight > label { +background: @surface0; + /* background: alpha(currentColor, 0.05); */ +margin: 5px 0px 5px 10px; + border-radius: 4px 0px 0px 4px; +padding: 0px; + min-height: 50px; + min-width: 50px; + } + + /* DND widget */ + .widget-dnd { +margin: 6px; + font-size: 1.2rem; + } + + .widget-dnd > switch { +background: alpha(@mantle, .80); + font-size: initial; + border-radius: 8px; + box-shadow: none; +padding: 2px; + } + + .widget-dnd > switch:hover { +background: alpha(@mauve_lighter, .80); + } + + .widget-dnd > switch:checked { +background: @mauve; + } + + .widget-dnd > switch:checked:hover { +background: alpha(@mauve_lighter, .80); + } + + .widget-dnd > switch slider { +background: alpha(@mauve_lighter, .80); + border-radius: 6px; + } + + /* Toggles */ + .toggle:checked { +background: @surface1; + /* background: @theme_selected_bg_color; */ + } + /*.toggle:not(:checked) { +color: rgba(128, 128, 128, 0.5); +}*/ +.toggle:checked:hover { +background: @surface2; + /* background: alpha(@theme_selected_bg_color, 0.75); */ +} + +/* Sliders */ +scale { +padding: 0px; +margin: 0px 10px 0px 10px; +} + +scale trough { + border-radius: 4px; +background: @surface0; + /* background: alpha(currentColor, 0.1); */ +} + +scale highlight { + border-radius: 5px; + min-height: 10px; + margin-right: -5px; +} + +scale slider { +margin: -10px; + min-width: 10px; + min-height: 10px; +background: transparent; + box-shadow: none; +padding: 0px; +} +scale slider:hover { +} + +.right.overlay-indicator { +all: unset; +} +''; +}; +} diff --git a/packages/waybar/config b/packages/waybar/config index cfe5fa0..d738d0a 100644 --- a/packages/waybar/config +++ b/packages/waybar/config @@ -1,29 +1,24 @@ { "layer": "bottom", "position": "top", - "height": 35, + "height": 38, "spacing": 0, - "modules-left": ["clock", "sway/workspaces","sway/mode"], - "modules-center": ["sway/window"], - "modules-right": ["network", "battery", "cpu", "memory", "custom/keyboard-layout", "pulseaudio", "tray"], + "modules-left": ["clock", "hyprland/workspaces", "hyprland/submap"], + "modules-center": [ ], + "modules-right": ["network", "battery", "cpu", "memory", "custom/keyboard-layout", "custom/notification", "pulseaudio", "tray"], "custom/keyboard-layout": { "interval": 1, - "exec": "swaymsg -t get_inputs | jq -r '.[] | select(.type == \"keyboard\") | .xkb_active_layout_name'" + "exec": "hyprctl devices -j | jq -r '.keyboards[] | .active_keymap' | head -n1 | cut -c1-2 | tr 'a-z' 'A-Z'" +}, + +"custom/notification": { + "on-click": "swaync-client -t", + "format": "♥" }, - "cpu": { - "interval": 5, - "format": "CPU: {usage}% {avg_frequency} GHz" - }, - - "memory": { - "interval": 5, - "format": "RAM: {used} GiB" - }, - - "battery": { + "battery": { "bat": "BAT0", "states": { "good": 90, @@ -37,6 +32,17 @@ "format-icons": ["", "", "" , "", ""] }, + "cpu": { + "interval": 5, + "format": "CPU: {usage}% {avg_frequency} GHz" + }, + + "memory": { + "interval": 5, + "format": "RAM: {used} GiB" + }, + + "pulseaudio": { "format": "{icon} {volume}%", "format-muted": " Muted", diff --git a/packages/waybar/config~ b/packages/waybar/config~ index 825703c..cfe5fa0 100644 --- a/packages/waybar/config~ +++ b/packages/waybar/config~ @@ -9,7 +9,7 @@ "custom/keyboard-layout": { "interval": 1, - "exec":"swaymsg -t get_inputs --raw | jq -r '.[] | .xkb_active_layout_name'" + "exec": "swaymsg -t get_inputs | jq -r '.[] | select(.type == \"keyboard\") | .xkb_active_layout_name'" }, diff --git a/packages/waybar/style.css b/packages/waybar/style.css index f34e5ad..eedb129 100644 --- a/packages/waybar/style.css +++ b/packages/waybar/style.css @@ -22,6 +22,8 @@ window#waybar { #network, #pulseaudio, #custom-keyboard-layout, +#custom-notification, +#tray, #battery{ background: rgba(10,10,10,100); opacity: 0.8; @@ -38,7 +40,7 @@ window#waybar { margin-left: 6px; } -#workspaces button.focused{ +#workspaces button.active{ background: @mauve; color: @base; opacity: 0.8; @@ -64,12 +66,11 @@ window#waybar { border-radius: 10px 0px 0px 10px; } -#pulseaudio{ +#tray{ border-radius: 0px 10px 10px 0px; margin-right: 5px } - #workspaces{ border-radius: 0px 10px 10px 0px; } diff --git a/packages/waybar/style.css~ b/packages/waybar/style.css~ index 341a7f2..282c3d9 100644 --- a/packages/waybar/style.css~ +++ b/packages/waybar/style.css~ @@ -21,7 +21,6 @@ window#waybar { #memory, #network, #pulseaudio, -#custom-keyboard-layout, #battery{ background: rgba(10,10,10,100); opacity: 0.8; @@ -69,12 +68,6 @@ window#waybar { margin-right: 5px } -#custom-keyboard-layout{ - border-radius: 0px 10px 10px 0px; - color: @mauve; -} - - #workspaces{ border-radius: 0px 10px 10px 0px; }