commit
61b7f6965b
47 changed files with 1500 additions and 1251 deletions
0
nix/.gitignore
vendored
Normal file
0
nix/.gitignore
vendored
Normal file
|
|
@ -1,5 +1,4 @@
|
|||
{ config, pkgs, ... }:
|
||||
|
||||
{
|
||||
environment.systemPackages = with pkgs; [
|
||||
openssl
|
||||
|
|
@ -23,6 +22,7 @@
|
|||
morewaita-icon-theme
|
||||
kdePackages.breeze-icons
|
||||
gnome.seahorse
|
||||
upower
|
||||
];
|
||||
|
||||
gtk.iconCache.enable = false;
|
||||
|
|
@ -31,17 +31,21 @@
|
|||
cantarell-fonts
|
||||
];
|
||||
|
||||
environment.variables = {
|
||||
NIX_LD_LIBRARY_PATH = pkgs.lib.makeLibraryPath (config.systemd.packages ++ config.environment.systemPackages);
|
||||
PKG_CONFIG_PATH = pkgs.lib.makeLibraryPath (config.systemd.packages ++ config.environment.systemPackages);
|
||||
};
|
||||
nix.settings.experimental-features = "nix-command flakes";
|
||||
programs.fish.enable = true;
|
||||
programs.fish.promptInit = ''
|
||||
${pkgs.any-nix-shell}/bin/any-nix-shell fish --info-right | source
|
||||
'';
|
||||
|
||||
programs.nix-ld.enable = true;
|
||||
programs.nix-ld.libraries = with pkgs; [
|
||||
jdk
|
||||
zlib
|
||||
];
|
||||
virtualisation.docker.enable = true;
|
||||
|
||||
programs.dconf.enable = true;
|
||||
services.upower.enable = true;
|
||||
services.printing.enable = true;
|
||||
services.dbus.enable = true;
|
||||
services.dbus.packages = with pkgs; [
|
||||
|
|
@ -70,4 +74,5 @@
|
|||
};
|
||||
};
|
||||
programs.ssh.startAgent = true;
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
{ pkgs, ... }:
|
||||
{ pkgs, config, ... }:
|
||||
{
|
||||
# Bootloader.
|
||||
boot.loader.systemd-boot.enable = true;
|
||||
|
|
@ -42,33 +42,61 @@
|
|||
DIRENV_LOG_FORMAT = "";
|
||||
};
|
||||
|
||||
nix.settings.trusted-users = [
|
||||
"dashie"
|
||||
];
|
||||
|
||||
# allows user change later on
|
||||
users.mutableUsers = true;
|
||||
users.users.dashie = {
|
||||
isNormalUser = true;
|
||||
description = "dashie";
|
||||
extraGroups = [ "networkmanager" "wheel" "gamemode" ];
|
||||
extraGroups = [ "networkmanager" "wheel" "gamemode" "docker" ];
|
||||
packages = with pkgs; [
|
||||
home-manager
|
||||
xdg-desktop-portal-gtk
|
||||
xdg-desktop-portal-hyprland
|
||||
];
|
||||
# this password will only last for the first login
|
||||
# e.g. login, then change to whatever else, this also ensures no public hash is available
|
||||
password = "firstlogin";
|
||||
};
|
||||
|
||||
nix.settings = {
|
||||
builders-use-substitutes = true;
|
||||
# substituters to use
|
||||
substituters = [
|
||||
"https://anyrun.cachix.org"
|
||||
];
|
||||
|
||||
trusted-public-keys = [
|
||||
"anyrun.cachix.org-1:pqBobmOjI7nKlsUMV25u9QHa9btJK65/C8vnO3p346s="
|
||||
];
|
||||
};
|
||||
|
||||
system.stateVersion = "unstable";
|
||||
boot.initrd.availableKernelModules = [ "nvme" "xhci_pci" "ahci" "usbhid" "usb_storage" "sd_mod" ];
|
||||
|
||||
fileSystems."/" =
|
||||
{
|
||||
device = "/dev/disk/by-label/ROOT";
|
||||
fsType = "btrfs";
|
||||
options = [
|
||||
"noatime"
|
||||
"nodiratime"
|
||||
"discard"
|
||||
];
|
||||
};
|
||||
|
||||
fileSystems."/boot" =
|
||||
{
|
||||
device = "/dev/disk/by-label/BOOT";
|
||||
fsType = "vfat";
|
||||
options = [ "rw" "fmask=0022" "dmask=0022" "noatime" ];
|
||||
};
|
||||
|
||||
fileSystems."/home" =
|
||||
{
|
||||
device = "/dev/disk/by-label/HOME";
|
||||
fsType = "btrfs";
|
||||
options = [
|
||||
"noatime"
|
||||
"nodiratime"
|
||||
"discard"
|
||||
];
|
||||
};
|
||||
|
||||
swapDevices =
|
||||
[{ device = "/dev/disk/by-label/SWAP"; }];
|
||||
|
||||
boot.kernelParams = [
|
||||
"resume=\"PARTLABEL=SWAP\""
|
||||
] ++ config.programs.boot.boot_params;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -9,5 +9,8 @@
|
|||
SUDO_EDITOR = "neovide --no-fork";
|
||||
SCRIPTS = "$HOME/.config/scripts";
|
||||
};
|
||||
environment.sessionVariables.NIXOS_OZONE_WL = "1";
|
||||
environment.sessionVariables = {
|
||||
NIXOS_OZONE_WL = "1";
|
||||
GOPATH = "$HOME/.go";
|
||||
};
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,53 +1,65 @@
|
|||
{ pkgs
|
||||
{ inputs
|
||||
, lib
|
||||
, config
|
||||
, pkgs
|
||||
, ...
|
||||
}: {
|
||||
# greetd display manager
|
||||
services.greetd =
|
||||
let
|
||||
session = {
|
||||
command = "${pkgs.hyprland}/bin/Hyprland --config /home/dashie/.config/hypr/hyprgreet.conf";
|
||||
user = "dashie";
|
||||
};
|
||||
in
|
||||
}:
|
||||
let
|
||||
regreet_override = pkgs.greetd.regreet.overrideAttrs (final: prev: {
|
||||
SESSION_DIRS = "${config.services.xserver.displayManager.sessionData.desktops}/share";
|
||||
});
|
||||
session = {
|
||||
command = "${lib.getExe pkgs.hyprland} --config /etc/greetd/hyprgreet.conf";
|
||||
user = "dashie";
|
||||
};
|
||||
in
|
||||
{
|
||||
imports = [
|
||||
inputs.hyprland.nixosModules.default
|
||||
];
|
||||
|
||||
services.xserver.displayManager.session = [
|
||||
{
|
||||
enable = true;
|
||||
settings = {
|
||||
terminal.vt = 1;
|
||||
default_session = session;
|
||||
initial_session = session;
|
||||
};
|
||||
};
|
||||
programs.regreet = {
|
||||
manage = "desktop";
|
||||
name = "Hyprland";
|
||||
start = ''
|
||||
${lib.getExe pkgs.hyprland} & waitPID=$!
|
||||
'';
|
||||
}
|
||||
];
|
||||
|
||||
# greetd display manager
|
||||
programs.hyprland.enable = true;
|
||||
services.greetd = {
|
||||
enable = true;
|
||||
settings = {
|
||||
|
||||
background = {
|
||||
fit = "Contain";
|
||||
};
|
||||
|
||||
env = {
|
||||
QT_QPA_PLATFORMTHEME = "qt5ct";
|
||||
PATH = "/home/dashie/.cargo/bin:PATH";
|
||||
};
|
||||
|
||||
GTK = {
|
||||
application_prefer_dark_theme = true;
|
||||
cursor_theme_name = "Adwaita";
|
||||
icon_theme_name = "Adwaita";
|
||||
theme_name = "adw-gtk3";
|
||||
|
||||
command = {
|
||||
reboot = [ "systemctl" "reboot" ];
|
||||
|
||||
poweroff = [ "systemctl" "poweroff" ];
|
||||
};
|
||||
};
|
||||
terminal.vt = 1;
|
||||
default_session = session;
|
||||
};
|
||||
};
|
||||
|
||||
environment.etc."greetd/environments".text = ''
|
||||
Hyprland
|
||||
'';
|
||||
|
||||
environment.etc."greetd/hyprgreet.conf".text = ''
|
||||
exec-once=gsettings set org.gnome.desktop.interface color-scheme 'prefer-dark'
|
||||
|
||||
monitor=${config.programs.ironbar.monitor},3440x1440@180,0x0,1
|
||||
monitor=_,disable
|
||||
|
||||
input {
|
||||
force_no_accel = true
|
||||
}
|
||||
|
||||
misc {
|
||||
disable_splash_rendering = true
|
||||
disable_hyprland_logo = true
|
||||
}
|
||||
|
||||
exec-once=regreet --style /home/dashie/.config/gtk-3.0/gtk.css; hyprctl dispatch exit
|
||||
'';
|
||||
|
||||
# unlock GPG keyring on login
|
||||
security.pam.services.greetd.enableGnomeKeyring = true;
|
||||
}
|
||||
|
|
|
|||
388
nix/flake.lock
generated
388
nix/flake.lock
generated
|
|
@ -4,20 +4,14 @@
|
|||
"inputs": {
|
||||
"hyprland": [
|
||||
"hyprland"
|
||||
],
|
||||
"hyprlandPlugins": "hyprlandPlugins",
|
||||
"nixpkgs": [
|
||||
"Hyprspace",
|
||||
"hyprland",
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1713113295,
|
||||
"narHash": "sha256-3oivuUgU2B3zQIuop1lc+VXBOhqCnZMl81pFYdZu1oc=",
|
||||
"lastModified": 1715376791,
|
||||
"narHash": "sha256-QKecFhWAB7sagSE+FXztINDqYqLro2nYp94f+ZtE/f4=",
|
||||
"owner": "KZDKM",
|
||||
"repo": "Hyprspace",
|
||||
"rev": "046533d6fb0244874273254d4008cbdc48621829",
|
||||
"rev": "8049b2794ca19d49320093426677d8c2911e7327",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
|
@ -29,16 +23,14 @@
|
|||
"anyrun": {
|
||||
"inputs": {
|
||||
"flake-parts": "flake-parts",
|
||||
"nixpkgs": [
|
||||
"nixpkgs"
|
||||
]
|
||||
"nixpkgs": "nixpkgs"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1712136515,
|
||||
"narHash": "sha256-LpjQJYC24S5P5XhJsZX6HqsQT1pohcFzM6N42I6qo/U=",
|
||||
"lastModified": 1713259062,
|
||||
"narHash": "sha256-WTO84hUL8IlNuHDK2yOCeJ38EewFzGt5E0kzBjNWxa8=",
|
||||
"owner": "Kirottu",
|
||||
"repo": "anyrun",
|
||||
"rev": "be6728884d543665e7bd137bbef62dc1d04a210b",
|
||||
"rev": "f9d30e34fa4ccb2797c6becec37e8bcff6585d39",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
|
@ -55,11 +47,11 @@
|
|||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1711681752,
|
||||
"narHash": "sha256-LEg6/dmEFxx6Ygti5DO9MOhGNpyB7zdxdWtzv/FCTXk=",
|
||||
"lastModified": 1713979152,
|
||||
"narHash": "sha256-apdecPuh8SOQnkEET/kW/UcfjCRb8JbV5BKjoH+DcP4=",
|
||||
"owner": "ipetkov",
|
||||
"repo": "crane",
|
||||
"rev": "ada0fb4dcce4561acb1eb17c59b7306d9d4a95f3",
|
||||
"rev": "a5eca68a2cf11adb32787fc141cddd29ac8eb79c",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
|
@ -91,7 +83,25 @@
|
|||
},
|
||||
"flake-utils": {
|
||||
"inputs": {
|
||||
"systems": "systems_2"
|
||||
"systems": "systems_4"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1705309234,
|
||||
"narHash": "sha256-uNRRNRKmJyCRC/8y1RqBkqWBLM034y4qN7EprSdmgyA=",
|
||||
"owner": "numtide",
|
||||
"repo": "flake-utils",
|
||||
"rev": "1ef2e671c3b0c19053962c07dbda38332dcebf26",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "numtide",
|
||||
"repo": "flake-utils",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"flake-utils_2": {
|
||||
"inputs": {
|
||||
"systems": "systems_5"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1705309234,
|
||||
|
|
@ -114,11 +124,11 @@
|
|||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1713077896,
|
||||
"narHash": "sha256-Noot8H0EZEAFRQWyGxh9ryvhK96xpIqKbh78X447JWs=",
|
||||
"lastModified": 1715380449,
|
||||
"narHash": "sha256-716+f9Rj3wjSyD1xitCv2FcYbgPz1WIVDj+ZBclH99Y=",
|
||||
"owner": "nix-community",
|
||||
"repo": "home-manager",
|
||||
"rev": "630a0992b3627c64e34f179fab68e3d48c6991c0",
|
||||
"rev": "d7682620185f213df384c363288093b486b2883f",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
|
@ -143,11 +153,11 @@
|
|||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1712434681,
|
||||
"narHash": "sha256-qwmR2p1oc48Bj7gUDvb1oGL19Rjs2PmEmk4ChV01A5o=",
|
||||
"lastModified": 1713612213,
|
||||
"narHash": "sha256-zJboXgWNpNhKyNF8H/3UYzWkx7w00TOCGKi3cwi+tsw=",
|
||||
"owner": "hyprwm",
|
||||
"repo": "hyprcursor",
|
||||
"rev": "818d8c4b69e0997483d60b75f701fe14b561a7a3",
|
||||
"rev": "cab4746180f210a3c1dd3d53e45c510e309e90e1",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
|
@ -159,38 +169,38 @@
|
|||
"hyprland": {
|
||||
"inputs": {
|
||||
"hyprcursor": "hyprcursor",
|
||||
"hyprland-protocols": "hyprland-protocols",
|
||||
"hyprlang": "hyprlang",
|
||||
"nixpkgs": [
|
||||
"nixpkgs"
|
||||
],
|
||||
"hyprwayland-scanner": "hyprwayland-scanner",
|
||||
"nixpkgs": "nixpkgs_2",
|
||||
"systems": "systems",
|
||||
"wlroots": "wlroots",
|
||||
"xdph": "xdph"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1713126795,
|
||||
"narHash": "sha256-IX9N+WMMcdBsxjQFLHjBCwXByMt+0S8sL18dQ2QTzvI=",
|
||||
"owner": "hyprwm",
|
||||
"repo": "Hyprland",
|
||||
"rev": "67f47fbdccd639502a76ccb3552a23df37f19ef8",
|
||||
"type": "github"
|
||||
"lastModified": 1715448710,
|
||||
"narHash": "sha256-ntVaQOHnfejEiqHUY07kWrytdXVlXtg1RLv65T9w2/c=",
|
||||
"ref": "refs/heads/main",
|
||||
"rev": "494b9415a1157279a1e1782ba635fc2ef6a18155",
|
||||
"revCount": 4668,
|
||||
"submodules": true,
|
||||
"type": "git",
|
||||
"url": "https://github.com/hyprwm/Hyprland"
|
||||
},
|
||||
"original": {
|
||||
"owner": "hyprwm",
|
||||
"repo": "Hyprland",
|
||||
"rev": "67f47fbdccd639502a76ccb3552a23df37f19ef8",
|
||||
"type": "github"
|
||||
"submodules": true,
|
||||
"type": "git",
|
||||
"url": "https://github.com/hyprwm/Hyprland"
|
||||
}
|
||||
},
|
||||
"hyprland-protocols": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
"hyprland",
|
||||
"xdph",
|
||||
"nixpkgs"
|
||||
],
|
||||
"systems": [
|
||||
"hyprland",
|
||||
"xdph",
|
||||
"systems"
|
||||
]
|
||||
},
|
||||
|
|
@ -208,33 +218,6 @@
|
|||
"type": "github"
|
||||
}
|
||||
},
|
||||
"hyprlandPlugins": {
|
||||
"inputs": {
|
||||
"hyprland": [
|
||||
"Hyprspace",
|
||||
"hyprland"
|
||||
],
|
||||
"systems": [
|
||||
"Hyprspace",
|
||||
"hyprlandPlugins",
|
||||
"hyprland",
|
||||
"systems"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1712836056,
|
||||
"narHash": "sha256-qf6yev9OlJuQv557ApLQ/5V8pQj0YOO9tyh5j3It1mY=",
|
||||
"owner": "hyprwm",
|
||||
"repo": "hyprland-plugins",
|
||||
"rev": "e9457e08ca3ff16dc5a815be62baf9e18b539197",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "hyprwm",
|
||||
"repo": "hyprland-plugins",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"hyprlang": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
|
|
@ -247,11 +230,11 @@
|
|||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1711671891,
|
||||
"narHash": "sha256-C/Wwsy/RLxHP1axFFl+AnwJRWfd8gxDKKoa8nt8Qk3c=",
|
||||
"lastModified": 1713121246,
|
||||
"narHash": "sha256-502X0Q0fhN6tJK7iEUA8CghONKSatW/Mqj4Wappd++0=",
|
||||
"owner": "hyprwm",
|
||||
"repo": "hyprlang",
|
||||
"rev": "c1402612146ba06606ebf64963a02bc1efe11e74",
|
||||
"rev": "78fcaa27ae9e1d782faa3ff06c8ea55ddce63706",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
|
@ -260,21 +243,86 @@
|
|||
"type": "github"
|
||||
}
|
||||
},
|
||||
"hyprlang_2": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
"hyprlock",
|
||||
"nixpkgs"
|
||||
],
|
||||
"systems": "systems_2"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1713121246,
|
||||
"narHash": "sha256-502X0Q0fhN6tJK7iEUA8CghONKSatW/Mqj4Wappd++0=",
|
||||
"owner": "hyprwm",
|
||||
"repo": "hyprlang",
|
||||
"rev": "78fcaa27ae9e1d782faa3ff06c8ea55ddce63706",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "hyprwm",
|
||||
"repo": "hyprlang",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"hyprlock": {
|
||||
"inputs": {
|
||||
"hyprlang": "hyprlang_2",
|
||||
"nixpkgs": "nixpkgs_3",
|
||||
"systems": "systems_3"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1714843107,
|
||||
"narHash": "sha256-89WxndRGO3CGuWE5XCaHKnsV3IKBRdOWqScp6o8enT4=",
|
||||
"owner": "hyprwm",
|
||||
"repo": "hyprlock",
|
||||
"rev": "c87af3aa1f6e6bd06cffaabcc400bd45e26d565a",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "hyprwm",
|
||||
"repo": "hyprlock",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"hyprwayland-scanner": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
"hyprland",
|
||||
"nixpkgs"
|
||||
],
|
||||
"systems": [
|
||||
"hyprland",
|
||||
"systems"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1715287423,
|
||||
"narHash": "sha256-B7AJIjOyWgVMKhu7DlOnWa0VprdhywUVHuB/j+EwSxM=",
|
||||
"owner": "hyprwm",
|
||||
"repo": "hyprwayland-scanner",
|
||||
"rev": "e2fc1c0eb8b392110588f478cce644348ead7271",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "hyprwm",
|
||||
"repo": "hyprwayland-scanner",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"ironbar": {
|
||||
"inputs": {
|
||||
"crane": "crane",
|
||||
"naersk": "naersk",
|
||||
"nixpkgs": [
|
||||
"nixpkgs"
|
||||
],
|
||||
"nixpkgs": "nixpkgs_5",
|
||||
"rust-overlay": "rust-overlay"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1713218218,
|
||||
"narHash": "sha256-f2GOHnoLe9PeVI0Itvm0RVPxc102ZdHabNDYUxoL/RY=",
|
||||
"lastModified": 1715272723,
|
||||
"narHash": "sha256-/pHq16sUYKOpwtSDDlnQ3M3lBy9abQq39UNSzadFd8w=",
|
||||
"owner": "JakeStanger",
|
||||
"repo": "ironbar",
|
||||
"rev": "3fea6e3254a8cda16b32443d1f8f3282218b07c5",
|
||||
"rev": "386955c1ea07869277b646c203f7b976d83db427",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
|
@ -285,14 +333,14 @@
|
|||
},
|
||||
"naersk": {
|
||||
"inputs": {
|
||||
"nixpkgs": "nixpkgs"
|
||||
"nixpkgs": "nixpkgs_4"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1698420672,
|
||||
"narHash": "sha256-/TdeHMPRjjdJub7p7+w55vyABrsJlt5QkznPYy55vKA=",
|
||||
"lastModified": 1713520724,
|
||||
"narHash": "sha256-CO8MmVDmqZX2FovL75pu5BvwhW+Vugc7Q6ze7Hj8heI=",
|
||||
"owner": "nix-community",
|
||||
"repo": "naersk",
|
||||
"rev": "aeb58d5e8faead8980a807c840232697982d47b9",
|
||||
"rev": "c5037590290c6c7dae2e42e7da1e247e54ed2d49",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
|
@ -318,11 +366,59 @@
|
|||
},
|
||||
"nixpkgs": {
|
||||
"locked": {
|
||||
"lastModified": 1711715736,
|
||||
"narHash": "sha256-9slQ609YqT9bT/MNX9+5k5jltL9zgpn36DpFB7TkttM=",
|
||||
"lastModified": 1696193975,
|
||||
"narHash": "sha256-mnQjUcYgp9Guu3RNVAB2Srr1TqKcPpRXmJf4LJk6KRY=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "807c549feabce7eddbf259dbdcec9e0600a0660d",
|
||||
"rev": "fdd898f8f79e8d2f99ed2ab6b3751811ef683242",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "NixOS",
|
||||
"ref": "nixos-unstable",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs_2": {
|
||||
"locked": {
|
||||
"lastModified": 1715087517,
|
||||
"narHash": "sha256-CLU5Tsg24Ke4+7sH8azHWXKd0CFd4mhLWfhYgUiDBpQ=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "b211b392b8486ee79df6cdfb1157ad2133427a29",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "NixOS",
|
||||
"ref": "nixos-unstable",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs_3": {
|
||||
"locked": {
|
||||
"lastModified": 1715266358,
|
||||
"narHash": "sha256-doPgfj+7FFe9rfzWo1siAV2mVCasW+Bh8I1cToAXEE4=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "f1010e0469db743d14519a1efd37e23f8513d714",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "NixOS",
|
||||
"ref": "nixos-unstable",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs_4": {
|
||||
"locked": {
|
||||
"lastModified": 1714314149,
|
||||
"narHash": "sha256-yNAevSKF4krRWacmLUsLK7D7PlfuY3zF0lYnGYNi9vQ=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "cf8cc1201be8bc71b7cbbbdaf349b22f4f99c7ae",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
|
@ -330,17 +426,50 @@
|
|||
"type": "indirect"
|
||||
}
|
||||
},
|
||||
"nixpkgs_2": {
|
||||
"nixpkgs_5": {
|
||||
"locked": {
|
||||
"lastModified": 1713625742,
|
||||
"narHash": "sha256-8MD2uCuGs0v09S/sLR8xC0gYXk6RFSwWdyqYyTpCnes=",
|
||||
"lastModified": 1714253743,
|
||||
"narHash": "sha256-mdTQw2XlariysyScCv2tTE45QSU9v/ezLcHJ22f0Nxc=",
|
||||
"owner": "nixos",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "141867ab45d3f1dba928d61dea643bd5a98778fb",
|
||||
"rev": "58a1abdbae3217ca6b702f03d3b35125d88a2994",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nixos",
|
||||
"ref": "nixos-unstable",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs_6": {
|
||||
"locked": {
|
||||
"lastModified": 1715266358,
|
||||
"narHash": "sha256-doPgfj+7FFe9rfzWo1siAV2mVCasW+Bh8I1cToAXEE4=",
|
||||
"owner": "NixOs",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "f1010e0469db743d14519a1efd37e23f8513d714",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "NixOs",
|
||||
"ref": "nixos-unstable",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs_7": {
|
||||
"locked": {
|
||||
"lastModified": 1706487304,
|
||||
"narHash": "sha256-LE8lVX28MV2jWJsidW13D2qrHU/RUUONendL2Q/WlJg=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "90f456026d284c22b3e3497be980b2e47d0b28ac",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "NixOS",
|
||||
"ref": "nixpkgs-unstable",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
|
|
@ -351,9 +480,11 @@
|
|||
"anyrun": "anyrun",
|
||||
"home-manager": "home-manager",
|
||||
"hyprland": "hyprland",
|
||||
"hyprlock": "hyprlock",
|
||||
"ironbar": "ironbar",
|
||||
"nix-flatpak": "nix-flatpak",
|
||||
"nixpkgs": "nixpkgs_2"
|
||||
"nixpkgs": "nixpkgs_6",
|
||||
"rust-overlay": "rust-overlay_2"
|
||||
}
|
||||
},
|
||||
"rust-overlay": {
|
||||
|
|
@ -365,11 +496,11 @@
|
|||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1711851236,
|
||||
"narHash": "sha256-EJ03x3N9ihhonAttkaCrqxb0djDq3URCuDpmVPbNZhA=",
|
||||
"lastModified": 1714443211,
|
||||
"narHash": "sha256-lKTA3XqRo4aVgkyTSCtpcALpGXdmkilHTtN00eRg0QU=",
|
||||
"owner": "oxalica",
|
||||
"repo": "rust-overlay",
|
||||
"rev": "f258266af947599e8069df1c2e933189270f143a",
|
||||
"rev": "ce35c36f58f82cee6ec959e0d44c587d64281b6f",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
|
@ -378,6 +509,22 @@
|
|||
"type": "github"
|
||||
}
|
||||
},
|
||||
"rust-overlay_2": {
|
||||
"inputs": {
|
||||
"flake-utils": "flake-utils_2",
|
||||
"nixpkgs": "nixpkgs_7"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1715393623,
|
||||
"narHash": "sha256-nSUFcUqyTQQ/aYFIB05mpCzytcKvfKMy3ZQAe0fP26A=",
|
||||
"type": "tarball",
|
||||
"url": "https://github.com/oxalica/rust-overlay/archive/master.tar.gz"
|
||||
},
|
||||
"original": {
|
||||
"type": "tarball",
|
||||
"url": "https://github.com/oxalica/rust-overlay/archive/master.tar.gz"
|
||||
}
|
||||
},
|
||||
"systems": {
|
||||
"locked": {
|
||||
"lastModified": 1689347949,
|
||||
|
|
@ -394,6 +541,36 @@
|
|||
}
|
||||
},
|
||||
"systems_2": {
|
||||
"locked": {
|
||||
"lastModified": 1689347949,
|
||||
"narHash": "sha256-12tWmuL2zgBgZkdoB6qXZsgJEH9LR3oUgpaQq2RbI80=",
|
||||
"owner": "nix-systems",
|
||||
"repo": "default-linux",
|
||||
"rev": "31732fcf5e8fea42e59c2488ad31a0e651500f68",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nix-systems",
|
||||
"repo": "default-linux",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"systems_3": {
|
||||
"locked": {
|
||||
"lastModified": 1689347949,
|
||||
"narHash": "sha256-12tWmuL2zgBgZkdoB6qXZsgJEH9LR3oUgpaQq2RbI80=",
|
||||
"owner": "nix-systems",
|
||||
"repo": "default-linux",
|
||||
"rev": "31732fcf5e8fea42e59c2488ad31a0e651500f68",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nix-systems",
|
||||
"repo": "default-linux",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"systems_4": {
|
||||
"locked": {
|
||||
"lastModified": 1681028828,
|
||||
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
|
||||
|
|
@ -408,29 +585,24 @@
|
|||
"type": "github"
|
||||
}
|
||||
},
|
||||
"wlroots": {
|
||||
"flake": false,
|
||||
"systems_5": {
|
||||
"locked": {
|
||||
"lastModified": 1713124002,
|
||||
"narHash": "sha256-vPeZCY+sdiGsz4fl3AVVujfyZyQBz6+vZdkUE4hQ+HI=",
|
||||
"owner": "hyprwm",
|
||||
"repo": "wlroots-hyprland",
|
||||
"rev": "611a4f24cd2384378f6e500253983107c6656c64",
|
||||
"lastModified": 1681028828,
|
||||
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
|
||||
"owner": "nix-systems",
|
||||
"repo": "default",
|
||||
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "hyprwm",
|
||||
"repo": "wlroots-hyprland",
|
||||
"rev": "611a4f24cd2384378f6e500253983107c6656c64",
|
||||
"owner": "nix-systems",
|
||||
"repo": "default",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"xdph": {
|
||||
"inputs": {
|
||||
"hyprland-protocols": [
|
||||
"hyprland",
|
||||
"hyprland-protocols"
|
||||
],
|
||||
"hyprland-protocols": "hyprland-protocols",
|
||||
"hyprlang": [
|
||||
"hyprland",
|
||||
"hyprlang"
|
||||
|
|
@ -445,11 +617,11 @@
|
|||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1709299639,
|
||||
"narHash": "sha256-jYqJM5khksLIbqSxCLUUcqEgI+O2LdlSlcMEBs39CAU=",
|
||||
"lastModified": 1714662532,
|
||||
"narHash": "sha256-Pj2xGSYhapYbXL7sk7TTlOtCZcTfPQoL3fPbZeg7L4Y=",
|
||||
"owner": "hyprwm",
|
||||
"repo": "xdg-desktop-portal-hyprland",
|
||||
"rev": "2d2fb547178ec025da643db57d40a971507b82fe",
|
||||
"rev": "1f228ba2f1f254195c0b571302b37482861abee3",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
|
|
|||
|
|
@ -3,27 +3,35 @@
|
|||
|
||||
inputs =
|
||||
{
|
||||
nix-flatpak.url = "github:gmodena/nix-flatpak";
|
||||
nixpkgs.url = "github:nixos/nixpkgs";
|
||||
nixpkgs.url = "github:NixOs/nixpkgs/nixos-unstable";
|
||||
|
||||
nix-flatpak = {
|
||||
url = "github:gmodena/nix-flatpak";
|
||||
};
|
||||
|
||||
home-manager = {
|
||||
url = "github:nix-community/home-manager";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
hyprland = {
|
||||
url = "github:hyprwm/Hyprland/67f47fbdccd639502a76ccb3552a23df37f19ef8";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
|
||||
hyprland.url = "git+https://github.com/hyprwm/Hyprland?submodules=1";
|
||||
|
||||
hyprlock.url = "github:hyprwm/hyprlock";
|
||||
|
||||
Hyprspace = {
|
||||
url = "github:KZDKM/Hyprspace";
|
||||
inputs.hyprland.follows = "hyprland";
|
||||
};
|
||||
|
||||
ironbar = {
|
||||
url = "github:JakeStanger/ironbar";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
|
||||
rust-overlay = {
|
||||
url = "https://github.com/oxalica/rust-overlay/archive/master.tar.gz";
|
||||
};
|
||||
|
||||
anyrun.url = "github:Kirottu/anyrun";
|
||||
anyrun.inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
|
||||
outputs = { ... }@inputs:
|
||||
|
|
@ -35,10 +43,9 @@
|
|||
};
|
||||
overlays = [
|
||||
# because allowing rust nightly is too hard by default....
|
||||
(import (fetchTarball {
|
||||
url = "https://github.com/oxalica/rust-overlay/archive/master.tar.gz";
|
||||
sha256 = "sha256:02p0zzglgi3980iyam46wv8ajr83wj6myjhrjjfv96vkafl6pycg";
|
||||
}))
|
||||
(import
|
||||
inputs.rust-overlay
|
||||
)
|
||||
];
|
||||
};
|
||||
base_imports = [
|
||||
|
|
@ -48,14 +55,15 @@
|
|||
];
|
||||
in
|
||||
{
|
||||
homeConfigurations."marmo" = inputs.home-manager.lib.homeManagerConfiguration {
|
||||
nixosConfigurations."marmo" = inputs.nixpkgs.lib.nixosSystem {
|
||||
specialArgs = {
|
||||
inherit inputs pkgs;
|
||||
mod = ./hardware/overheating/base_config.nix;
|
||||
mod = ./hardware/marmo/base_config.nix;
|
||||
};
|
||||
modules = [
|
||||
./hardware/marmo/default.nix
|
||||
];
|
||||
./programs/gaming/default.nix
|
||||
] ++ base_imports;
|
||||
};
|
||||
nixosConfigurations."overheating" = inputs.nixpkgs.lib.nixosSystem {
|
||||
specialArgs = {
|
||||
|
|
@ -64,7 +72,7 @@
|
|||
};
|
||||
modules = [
|
||||
./hardware/overheating/default.nix
|
||||
];
|
||||
] ++ base_imports;
|
||||
};
|
||||
nixosConfigurations."spaceship" = inputs.nixpkgs.lib.nixosSystem {
|
||||
specialArgs = {
|
||||
|
|
@ -78,4 +86,18 @@
|
|||
] ++ base_imports;
|
||||
};
|
||||
};
|
||||
|
||||
nixConfig = {
|
||||
builders-use-substitutes = true;
|
||||
|
||||
extra-substituters = [
|
||||
"https://hyprland.cachix.org"
|
||||
"https://anyrun.cachix.org"
|
||||
];
|
||||
|
||||
extra-trusted-public-keys = [
|
||||
"hyprland.cachix.org-1:a7pgxzMz7+chwVL3/pzj6jIBMioiJM7ypFP8PwtkuGc="
|
||||
"anyrun.cachix.org-1:pqBobmOjI7nKlsUMV25u9QHa9btJK65/C8vnO3p346s="
|
||||
];
|
||||
};
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1 +1,12 @@
|
|||
{ }
|
||||
{
|
||||
imports = [
|
||||
../../modules
|
||||
];
|
||||
wayland.windowManager.hyprland.settings.monitor = [
|
||||
# default
|
||||
"DP-1,1920x1080@144,0x0,1"
|
||||
# all others
|
||||
",highrr,auto,1"
|
||||
];
|
||||
programs.ironbar.monitor = "DP-1";
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1 +1,15 @@
|
|||
{ }
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
imports = [
|
||||
../../modules/gamemode.nix
|
||||
../../modules/boot_params.nix
|
||||
];
|
||||
boot.kernelPackages = pkgs.linuxPackages_zen;
|
||||
programs.boot.boot_params = [
|
||||
"amdgpu.ppfeaturemask=0xffffffff"
|
||||
];
|
||||
networking.hostName = "marmo";
|
||||
programs.gamemode = {
|
||||
device = 1;
|
||||
};
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1 +1,23 @@
|
|||
{ }
|
||||
{ config, lib, modulesPath, ... }:
|
||||
{
|
||||
imports =
|
||||
[
|
||||
(modulesPath + "/installer/scan/not-detected.nix")
|
||||
];
|
||||
|
||||
boot.initrd.kernelModules = [ ];
|
||||
boot.extraModulePackages = [ ];
|
||||
|
||||
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking
|
||||
# (the default) this is the recommended approach. When using systemd-networkd it's
|
||||
# still possible to use this option, but it's recommended to use it in conjunction
|
||||
# with explicit per-interface declarations with `networking.interfaces.<interface>.useDHCP`.
|
||||
networking.useDHCP = lib.mkDefault true;
|
||||
# networking.interfaces.enp15s0.useDHCP = lib.mkDefault true;
|
||||
# networking.interfaces.wlp16s0.useDHCP = lib.mkDefault true;
|
||||
|
||||
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
|
||||
hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
|
||||
services.fstrim.enable = lib.mkDefault true;
|
||||
nix.settings.auto-optimise-store = true;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -10,4 +10,7 @@
|
|||
",highrr,auto,1"
|
||||
];
|
||||
programs.ironbar.monitor = "eDP-1";
|
||||
programs.ironbar.battery = [
|
||||
{ type = "upower"; class = "memory-usage"; }
|
||||
];
|
||||
}
|
||||
|
|
|
|||
|
|
@ -5,43 +5,10 @@
|
|||
(modulesPath + "/installer/scan/not-detected.nix")
|
||||
];
|
||||
|
||||
boot.initrd.availableKernelModules = [ "nvme" "xhci_pci" "ahci" "usbhid" "usb_storage" "sd_mod" ];
|
||||
boot.initrd.kernelModules = [ ];
|
||||
boot.kernelModules = [ "kvm-amd" ];
|
||||
boot.extraModulePackages = [ ];
|
||||
|
||||
fileSystems."/" =
|
||||
{
|
||||
device = "/dev/disk/by-label/ROOT";
|
||||
fsType = "btrfs";
|
||||
options = [
|
||||
"noatime"
|
||||
"nodiratime"
|
||||
"discard"
|
||||
];
|
||||
};
|
||||
|
||||
fileSystems."/boot" =
|
||||
{
|
||||
device = "/dev/disk/by-label/BOOT";
|
||||
fsType = "vfat";
|
||||
options = [ "rw" "fmask=0022" "dmask=0022" "noatime" ];
|
||||
};
|
||||
|
||||
fileSystems."/home" =
|
||||
{
|
||||
device = "/dev/disk/by-label/HOME";
|
||||
fsType = "btrfs";
|
||||
options = [
|
||||
"noatime"
|
||||
"nodiratime"
|
||||
"discard"
|
||||
];
|
||||
};
|
||||
|
||||
swapDevices =
|
||||
[{ device = "/dev/disk/by-label/SWAP"; }];
|
||||
|
||||
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking
|
||||
# (the default) this is the recommended approach. When using systemd-networkd it's
|
||||
# still possible to use this option, but it's recommended to use it in conjunction
|
||||
|
|
|
|||
|
|
@ -43,5 +43,5 @@
|
|||
wallpaper = HDMI-A-1,/home/dashie/Pictures/backgrounds/shinobu_1200.jpg
|
||||
splash = true
|
||||
'';
|
||||
programs.hyprland.extra_autostart= [ "streamdeck -n" ];
|
||||
programs.hyprland.extra_autostart = [ "streamdeck -n" ];
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,8 +1,35 @@
|
|||
{ pkgs, ... }:
|
||||
{ pkgs, lib, ... }:
|
||||
{
|
||||
boot.kernelPackages = pkgs.linuxPackages_zen;
|
||||
boot.kernelParams = [
|
||||
imports = [
|
||||
../../modules/gamemode.nix
|
||||
../../modules/boot_params.nix
|
||||
../../modules/ironbar_config.nix
|
||||
];
|
||||
boot.kernelPackages = pkgs.linuxPackages_xanmod_latest;
|
||||
programs.boot.boot_params = [
|
||||
"amdgpu.ppfeaturemask=0xffffffff"
|
||||
];
|
||||
networking.hostName = "spaceship";
|
||||
|
||||
programs.gamemode = {
|
||||
device = 0;
|
||||
};
|
||||
users.extraGroups.vboxusers.members = [ "dashie" ];
|
||||
virtualisation.virtualbox.host.enable = true;
|
||||
|
||||
# enable hardware acceleration and rocm
|
||||
hardware.xone.enable = true;
|
||||
hardware.opengl.extraPackages = with pkgs; [
|
||||
libvdpau-va-gl
|
||||
vaapiVdpau
|
||||
rocmPackages.clr.icd
|
||||
rocm-opencl-runtime
|
||||
];
|
||||
hardware.opengl = {
|
||||
enable = true;
|
||||
driSupport = lib.mkDefault true;
|
||||
driSupport32Bit = lib.mkDefault true;
|
||||
};
|
||||
boot.initrd.kernelModules = [ "amdgpu" ];
|
||||
programs.ironbar.monitor = "DP-1";
|
||||
}
|
||||
|
|
|
|||
|
|
@ -5,40 +5,10 @@
|
|||
(modulesPath + "/installer/scan/not-detected.nix")
|
||||
];
|
||||
|
||||
boot.initrd.availableKernelModules = [ "nvme" "xhci_pci" "ahci" "usbhid" "usb_storage" "sd_mod" ];
|
||||
boot.initrd.kernelModules = [ ];
|
||||
boot.kernelModules = [ "kvm-amd" ];
|
||||
boot.extraModulePackages = [ ];
|
||||
|
||||
fileSystems."/" =
|
||||
{
|
||||
device = "/dev/disk/by-label/ROOT";
|
||||
fsType = "btrfs";
|
||||
options = [
|
||||
"noatime"
|
||||
"nodiratime"
|
||||
"discard"
|
||||
];
|
||||
};
|
||||
|
||||
fileSystems."/boot" =
|
||||
{
|
||||
device = "/dev/disk/by-label/BOOT";
|
||||
fsType = "vfat";
|
||||
options = [ "rw" "fmask=0022" "dmask=0022" "noatime" ];
|
||||
};
|
||||
|
||||
fileSystems."/home" =
|
||||
{
|
||||
device = "/dev/disk/by-label/HOME";
|
||||
fsType = "btrfs";
|
||||
options = [
|
||||
"noatime"
|
||||
"nodiratime"
|
||||
"discard"
|
||||
];
|
||||
};
|
||||
|
||||
fileSystems."/drive2" =
|
||||
{
|
||||
device = "/dev/disk/by-label/DRIVE2";
|
||||
|
|
@ -50,10 +20,6 @@
|
|||
];
|
||||
};
|
||||
|
||||
|
||||
swapDevices =
|
||||
[{ device = "/dev/disk/by-label/SWAP"; }];
|
||||
|
||||
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking
|
||||
# (the default) this is the recommended approach. When using systemd-networkd it's
|
||||
# still possible to use this option, but it's recommended to use it in conjunction
|
||||
|
|
|
|||
11
nix/modules/boot_params.nix
Normal file
11
nix/modules/boot_params.nix
Normal file
|
|
@ -0,0 +1,11 @@
|
|||
{ lib, ... }: {
|
||||
options.programs.boot = {
|
||||
boot_params = lib.mkOption {
|
||||
default = [ ];
|
||||
example = [ "resume=something" ];
|
||||
description = ''
|
||||
Boot params
|
||||
'';
|
||||
};
|
||||
};
|
||||
}
|
||||
11
nix/modules/gamemode.nix
Normal file
11
nix/modules/gamemode.nix
Normal file
|
|
@ -0,0 +1,11 @@
|
|||
{ lib, ... }: {
|
||||
options.programs.gamemode = {
|
||||
device = lib.mkOption {
|
||||
default = 0;
|
||||
example = 0;
|
||||
description = ''
|
||||
GPU device number
|
||||
'';
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
@ -8,5 +8,10 @@
|
|||
Extra settings for foo.
|
||||
'';
|
||||
};
|
||||
|
||||
battery = lib.mkOption {
|
||||
default = [];
|
||||
example = [];
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
|
|||
92
nix/override/cambalache.nix
Normal file
92
nix/override/cambalache.nix
Normal file
|
|
@ -0,0 +1,92 @@
|
|||
{ stdenv
|
||||
, lib
|
||||
, pkgs
|
||||
, fetchFromGitLab
|
||||
, nix-update-script
|
||||
}:
|
||||
|
||||
pkgs.python3.pkgs.buildPythonApplication rec {
|
||||
pname = "cambalache";
|
||||
version = "0.90.1";
|
||||
|
||||
format = "other";
|
||||
|
||||
# Did not fetch submodule since it is only for tests we don't run.
|
||||
src = fetchFromGitLab {
|
||||
domain = "gitlab.gnome.org";
|
||||
owner = "jpu";
|
||||
repo = pname;
|
||||
rev = version;
|
||||
sha256 = "sha256-YuRxqrGJvhMMZApD/tQSWkUg/nZnp/xryBJSjXCXO4w=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = with pkgs; [
|
||||
meson
|
||||
ninja
|
||||
pkg-config
|
||||
gobject-introspection # for setup hook
|
||||
desktop-file-utils # for update-desktop-database
|
||||
shared-mime-info # for update-mime-database
|
||||
wrapGAppsHook
|
||||
];
|
||||
|
||||
pythonPath = with pkgs.python3.pkgs; [
|
||||
pygobject3
|
||||
lxml
|
||||
];
|
||||
|
||||
buildInputs = with pkgs; [
|
||||
glib
|
||||
gtk3
|
||||
gtk4
|
||||
gtksourceview4
|
||||
gtksourceview5
|
||||
webkitgtk_4_1
|
||||
webkitgtk_6_0
|
||||
# For extra widgets support.
|
||||
libadwaita
|
||||
libhandy
|
||||
];
|
||||
|
||||
# Prevent double wrapping.
|
||||
dontWrapGApps = true;
|
||||
|
||||
postPatch = ''
|
||||
patchShebangs postinstall.py
|
||||
# those programs are used at runtime not build time
|
||||
# https://gitlab.gnome.org/jpu/cambalache/-/blob/0.12.1/meson.build#L79-80
|
||||
substituteInPlace ./meson.build \
|
||||
--replace "find_program('broadwayd', required: true)" "" \
|
||||
--replace "find_program('gtk4-broadwayd', required: true)" ""
|
||||
'';
|
||||
|
||||
preFixup = ''
|
||||
# Let python wrapper use GNOME flags.
|
||||
makeWrapperArgs+=(
|
||||
# For broadway daemons
|
||||
--prefix PATH : "${lib.makeBinPath [ pkgs.gtk3 pkgs.gtk4 ]}"
|
||||
"''${gappsWrapperArgs[@]}"
|
||||
)
|
||||
'';
|
||||
|
||||
postFixup = ''
|
||||
# Wrap a helper script in an unusual location.
|
||||
wrapPythonProgramsIn "$out/${pkgs.python3.sitePackages}/cambalache/priv/merengue" "$out $pythonPath"
|
||||
'';
|
||||
|
||||
passthru = {
|
||||
updateScript = nix-update-script { };
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://gitlab.gnome.org/jpu/cambalache";
|
||||
description = "RAD tool for GTK 4 and 3 with data model first philosophy";
|
||||
mainProgram = "cambalache";
|
||||
maintainers = teams.gnome.members;
|
||||
license = with licenses; [
|
||||
lgpl21Only # Cambalache
|
||||
gpl2Only # tools
|
||||
];
|
||||
platforms = platforms.unix;
|
||||
};
|
||||
}
|
||||
|
|
@ -32,7 +32,6 @@ rustPlatform.buildRustPackage rec {
|
|||
libadwaita
|
||||
];
|
||||
|
||||
|
||||
postInstall = ''
|
||||
install -D --mode=444 $src/${pname}.desktop $out/share/applications/${pname}.desktop
|
||||
install -D --mode=444 $src/${pname}.svg $out/share/pixmaps/${pname}.svg
|
||||
|
|
|
|||
53
nix/override/reset.nix
Normal file
53
nix/override/reset.nix
Normal file
|
|
@ -0,0 +1,53 @@
|
|||
{ pkgs
|
||||
, lib
|
||||
, fetchFromGitHub
|
||||
}:
|
||||
let
|
||||
toolchain = pkgs.rust-bin.selectLatestNightlyWith (toolchain: toolchain.minimal);
|
||||
rustPlatform = pkgs.makeRustPlatform {
|
||||
cargo = toolchain;
|
||||
rustc = toolchain;
|
||||
};
|
||||
in
|
||||
rustPlatform.buildRustPackage rec {
|
||||
pname = "reset";
|
||||
version = "1.2.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "Xetibo";
|
||||
repo = "ReSet";
|
||||
rev = "${version}";
|
||||
hash = "sha256-6n7IaYQAw0VSkQFO1wXwQjuGbhvheiV6ZJDkpaEIeLU=";
|
||||
};
|
||||
|
||||
cargoHash = "sha256-S3Z2tHQuv17Dvg2VMFDeOvDzyLfIPROcFMsYOoCscqM=";
|
||||
|
||||
nativeBuildInputs = with pkgs;[
|
||||
pkg-config
|
||||
glib
|
||||
wrapGAppsHook4
|
||||
];
|
||||
|
||||
buildInputs = with pkgs;[
|
||||
gtk4
|
||||
libadwaita
|
||||
pulseaudio
|
||||
dbus
|
||||
gdk-pixbuf
|
||||
gnome.adwaita-icon-theme
|
||||
];
|
||||
|
||||
postInstall = ''
|
||||
install -D --mode=444 $src/${pname}.desktop $out/share/applications/${pname}.desktop
|
||||
install -D --mode=444 $src/src/resources/icons/ReSet.svg $out/share/pixmaps/ReSet.svg
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
description = "";
|
||||
homepage = "https://github.com/Xetibo/ReSet";
|
||||
changelog = "https://github.com/Xetibo/ReSet/releases/tag/${version}";
|
||||
license = licenses.gpl3;
|
||||
maintainers = with maintainers; [ DashieTM ];
|
||||
mainProgram = "reset";
|
||||
};
|
||||
}
|
||||
|
|
@ -19,7 +19,7 @@ python3Packages.buildPythonApplication rec {
|
|||
|
||||
patches = [
|
||||
# nixpkgs has a newer pillow version
|
||||
./streamdeck_path.patch
|
||||
./streamdeck.patch
|
||||
];
|
||||
|
||||
desktopItems =
|
||||
|
|
|
|||
|
|
@ -1,8 +1,13 @@
|
|||
diff --git a/pyproject.toml b/pyproject.toml
|
||||
index 54a8c19..f107170 100644
|
||||
index 54a8c19..0b95fb3 100644
|
||||
--- a/pyproject.toml
|
||||
+++ b/pyproject.toml
|
||||
@@ -18,7 +18,7 @@ pillow = "10.2.0"
|
||||
@@ -14,11 +14,11 @@ packages = [
|
||||
[tool.poetry.dependencies]
|
||||
python = ">=3.8,<3.13"
|
||||
streamdeck = "^0.9.5"
|
||||
-pillow = "10.2.0"
|
||||
+pillow = "^10.2.0"
|
||||
pyside6 = "^6.4.2"
|
||||
CairoSVG = "^2.5.2"
|
||||
filetype = "^1.0.10"
|
||||
|
|
@ -7,23 +7,62 @@
|
|||
];
|
||||
|
||||
home.packages = with pkgs; [
|
||||
#basics
|
||||
git
|
||||
gcc
|
||||
meson
|
||||
ninja
|
||||
rustup
|
||||
go
|
||||
nodejs_20
|
||||
deno
|
||||
python3
|
||||
typst
|
||||
neovide
|
||||
tree-sitter
|
||||
dotnet-runtime_8
|
||||
unzip
|
||||
pkg-config
|
||||
sqlite
|
||||
plantuml
|
||||
d-spy
|
||||
|
||||
#editors
|
||||
neovide
|
||||
##fallback
|
||||
vscodium
|
||||
|
||||
#rust
|
||||
rustup
|
||||
|
||||
#python
|
||||
python3
|
||||
python312Packages.python-lsp-server
|
||||
python312Packages.python-lsp-ruff
|
||||
python312Packages.python-lsp-black
|
||||
|
||||
#ts/js
|
||||
nodejs_20
|
||||
deno
|
||||
typescript
|
||||
nodePackages.typescript-language-server
|
||||
nodePackages.prettier
|
||||
|
||||
#go
|
||||
go
|
||||
gopls
|
||||
|
||||
#typst
|
||||
typst
|
||||
typst-lsp
|
||||
typstfmt
|
||||
ltex-ls
|
||||
|
||||
#java
|
||||
gradle
|
||||
maven
|
||||
jdt-language-server
|
||||
adoptopenjdk-jre-bin
|
||||
|
||||
#.!
|
||||
dotnet-sdk_8
|
||||
omnisharp-roslyn
|
||||
csharpier
|
||||
|
||||
#zig
|
||||
zig
|
||||
zls
|
||||
];
|
||||
}
|
||||
|
|
|
|||
|
|
@ -26,8 +26,6 @@ in
|
|||
flatpak
|
||||
networkmanager
|
||||
zoxide
|
||||
pkgs.greetd.greetd
|
||||
pkgs.greetd.regreet
|
||||
fastfetch
|
||||
pkgs.gnome.gnome-keyring
|
||||
dbus
|
||||
|
|
@ -42,11 +40,13 @@ in
|
|||
zenith
|
||||
nh
|
||||
amberol
|
||||
satty
|
||||
pulseaudio
|
||||
playerctl
|
||||
ncspot
|
||||
poppler_utils
|
||||
neofetch
|
||||
brave
|
||||
greetd.regreet
|
||||
(callPackage
|
||||
../override/oxinoti.nix
|
||||
{ })
|
||||
|
|
@ -65,6 +65,12 @@ in
|
|||
(callPackage
|
||||
../override/streamdeck.nix
|
||||
{ })
|
||||
(callPackage
|
||||
../override/reset.nix
|
||||
{ })
|
||||
(callPackage
|
||||
../override/cambalache.nix
|
||||
{ })
|
||||
];
|
||||
|
||||
home.username = "dashie";
|
||||
|
|
|
|||
|
|
@ -2,19 +2,10 @@
|
|||
let
|
||||
base_imports = [
|
||||
inputs.hyprland.homeManagerModules.default
|
||||
inputs.hyprlock.homeManagerModules.default
|
||||
inputs.anyrun.homeManagerModules.default
|
||||
inputs.ironbar.homeManagerModules.default
|
||||
inputs.nix-flatpak.homeManagerModules.nix-flatpak
|
||||
./hyprland/default.nix
|
||||
./flatpak.nix
|
||||
./common.nix
|
||||
./coding.nix
|
||||
./xdg.nix
|
||||
./media.nix
|
||||
./utils.nix
|
||||
./oxi/default.nix
|
||||
./themes/default.nix
|
||||
./individual_configs/default.nix
|
||||
];
|
||||
in
|
||||
{
|
||||
|
|
@ -22,16 +13,30 @@ in
|
|||
xdg.portal = {
|
||||
enable = true;
|
||||
extraPortals = [
|
||||
pkgs.xdg-desktop-portal-hyprland
|
||||
pkgs.xdg-desktop-portal-gtk
|
||||
];
|
||||
};
|
||||
home-manager.useGlobalPkgs = true;
|
||||
home-manager.useUserPackages = true;
|
||||
home-manager.users.dashie.imports = [
|
||||
{
|
||||
_module = { args = { inherit inputs; }; };
|
||||
}
|
||||
mod
|
||||
] ++ base_imports;
|
||||
|
||||
home-manager.users.dashie = {
|
||||
#home-manager overlap -> use flake instead
|
||||
disabledModules = [ "programs/hyprlock.nix" ];
|
||||
imports = [
|
||||
{
|
||||
_module = { args = { inherit inputs; }; };
|
||||
}
|
||||
./hyprland/default.nix
|
||||
./flatpak.nix
|
||||
./common.nix
|
||||
./coding.nix
|
||||
./xdg.nix
|
||||
./media.nix
|
||||
./utils.nix
|
||||
./oxi/default.nix
|
||||
./themes/default.nix
|
||||
./individual_configs/default.nix
|
||||
mod
|
||||
] ++ base_imports;
|
||||
};
|
||||
}
|
||||
|
|
|
|||
|
|
@ -6,12 +6,9 @@
|
|||
}];
|
||||
services.flatpak.uninstallUnmanaged = true;
|
||||
services.flatpak.packages = [
|
||||
# fallback if necessary, but generally avoided as nix is superior :)
|
||||
"com.github.tchx84.Flatseal"
|
||||
"io.github.Foldex.AdwSteamGtk"
|
||||
"org.gnome.dspy"
|
||||
"org.onlyoffice.desktopeditors"
|
||||
"org.gtk.Gtk3theme.adw-gtk3"
|
||||
"com.brave.Browser"
|
||||
];
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1,4 +1,5 @@
|
|||
{ pkgs
|
||||
, config
|
||||
, ...
|
||||
}: {
|
||||
imports = [
|
||||
|
|
@ -11,6 +12,7 @@
|
|||
steam
|
||||
lutris
|
||||
wine
|
||||
adwsteamgtk
|
||||
];
|
||||
|
||||
programs.steam.enable = true;
|
||||
|
|
@ -23,7 +25,7 @@
|
|||
};
|
||||
gpu = {
|
||||
apply_gpu_optimisations = "accept-responsibility";
|
||||
gpu_device = 0;
|
||||
gpu_device = config.programs.gamemode.device;
|
||||
amd_performance_level = "high";
|
||||
};
|
||||
custom = {
|
||||
|
|
|
|||
|
|
@ -30,7 +30,7 @@
|
|||
"$mod SUPER,G,exec,oxicalc"
|
||||
"$mod SUPER,D,exec,oxishut"
|
||||
"$mod SUPER,A,exec,oxipaste"
|
||||
"$mod SUPERSHIFT,L,exec, playerctl -a pause & swaylock -c 000000 & systemctl suspend"
|
||||
"$mod SUPERSHIFT,L,exec, playerctl -a pause & hyprlock & systemctl hibernate"
|
||||
|
||||
# media keys
|
||||
",XF86AudioMute,exec, $HOME/.config/scripts/audio_control.sh mute"
|
||||
|
|
@ -166,6 +166,10 @@
|
|||
disable_splash_rendering = true;
|
||||
disable_hyprland_logo = true;
|
||||
swallow_regex = "^(.*)(kitty)(.*)$";
|
||||
initial_workspace_tracking = 1;
|
||||
};
|
||||
|
||||
cursor = {
|
||||
# conversion seems to be borked right now, i want a smooth bibata :(
|
||||
enable_hyprcursor = false;
|
||||
};
|
||||
|
|
@ -185,7 +189,7 @@
|
|||
"XCURSOR_THEME,Bibata-Modern-Classic"
|
||||
"XCURSOR_SIZE,24"
|
||||
"QT_QPA_PLATFORM,wayland"
|
||||
"QT_QPA_PLATFORMTHEME = \"qt5ct\""
|
||||
"QT_QPA_PLATFORMTHEME,qt5ct"
|
||||
"QT_WAYLAND_FORCE_DPI,96"
|
||||
"QT_AUTO_SCREEN_SCALE_FACTOR,0"
|
||||
"QT_WAYLAND_DISABLE_WINDOWDECORATION,1"
|
||||
|
|
@ -243,15 +247,15 @@
|
|||
"oxinoti"
|
||||
] ++ config.programs.hyprland.extra_autostart;
|
||||
|
||||
plugin = {
|
||||
hyprspace = {
|
||||
bind = [
|
||||
"SUPER, W, overview:toggle, toggle"
|
||||
];
|
||||
};
|
||||
};
|
||||
#plugin = {
|
||||
# hyprspace = {
|
||||
# bind = [
|
||||
# "SUPER, W, overview:toggle, toggle"
|
||||
# ];
|
||||
# };
|
||||
#};
|
||||
};
|
||||
wayland.windowManager.hyprland.plugins = [
|
||||
inputs.Hyprspace.packages.${pkgs.system}.Hyprspace
|
||||
];
|
||||
#wayland.windowManager.hyprland.plugins = [
|
||||
# inputs.Hyprspace.packages.${pkgs.system}.Hyprspace
|
||||
#];
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,4 +1,5 @@
|
|||
{ pkgs
|
||||
{ inputs
|
||||
, pkgs
|
||||
, ...
|
||||
}: {
|
||||
imports = [
|
||||
|
|
@ -6,22 +7,20 @@
|
|||
./config.nix
|
||||
./ironbar.nix
|
||||
./hyprpaper.nix
|
||||
./hyprgreet.nix
|
||||
./hyprlock.nix
|
||||
];
|
||||
|
||||
home.packages = with pkgs; [
|
||||
xorg.xprop
|
||||
grim
|
||||
slurp
|
||||
swappy
|
||||
satty
|
||||
xdg-desktop-portal-gtk
|
||||
xdg-desktop-portal-hyprland
|
||||
hyprpaper
|
||||
# xdg-desktop-portal-hyprland
|
||||
copyq
|
||||
gnome.nautilus
|
||||
gnome.sushi
|
||||
wl-clipboard
|
||||
kooha
|
||||
hyprcursor
|
||||
hyprpaper
|
||||
hyprpicker
|
||||
|
|
|
|||
|
|
@ -1,23 +0,0 @@
|
|||
{
|
||||
xdg.configFile."hypr/hyprgreet.conf" = {
|
||||
text =
|
||||
''
|
||||
exec-once=gsettings set org.gnome.desktop.interface color-scheme 'prefer-dark'
|
||||
|
||||
monitor=DP-1,3440x1440@180,0x0,1
|
||||
monitor=DP-2,disable
|
||||
monitor=HDMI-A-1,disable
|
||||
|
||||
input {
|
||||
force_no_accel = true
|
||||
}
|
||||
|
||||
misc {
|
||||
disable_splash_rendering = true
|
||||
disable_hyprland_logo = true
|
||||
}
|
||||
|
||||
exec-once=regreet --style /home/dashie/.config/gtk-3.0/gtk.css; hyprctl dispatch exit
|
||||
'';
|
||||
};
|
||||
}
|
||||
37
nix/programs/hyprland/hyprlock.nix
Normal file
37
nix/programs/hyprland/hyprlock.nix
Normal file
|
|
@ -0,0 +1,37 @@
|
|||
{ pkgs
|
||||
, inputs
|
||||
, config
|
||||
, ...
|
||||
}:
|
||||
{
|
||||
programs.hyprlock.enable = true;
|
||||
programs.hyprlock = {
|
||||
|
||||
backgrounds = [
|
||||
{
|
||||
monitor = "";
|
||||
path = "";
|
||||
color = "rgba(26, 27, 38, 1.0)";
|
||||
}
|
||||
];
|
||||
|
||||
input-fields = [
|
||||
{
|
||||
monitor = "${config.programs.ironbar.monitor}";
|
||||
|
||||
placeholder_text = "password or something";
|
||||
}
|
||||
];
|
||||
|
||||
labels = [
|
||||
{
|
||||
monitor = "";
|
||||
text = "$TIME";
|
||||
font_size = 50;
|
||||
valign = "center";
|
||||
halign = "center";
|
||||
}
|
||||
];
|
||||
|
||||
};
|
||||
}
|
||||
|
|
@ -142,7 +142,7 @@
|
|||
];
|
||||
config = {
|
||||
monitors."${config.programs.ironbar.monitor}" = {
|
||||
end = [
|
||||
end = config.programs.ironbar.battery ++ [
|
||||
{
|
||||
type = "sys_info";
|
||||
format = [
|
||||
|
|
|
|||
|
|
@ -14,6 +14,7 @@
|
|||
zathura
|
||||
evince
|
||||
libreoffice-fresh
|
||||
onlyoffice-bin
|
||||
pdftk
|
||||
# spotify
|
||||
#ncspot
|
||||
|
|
@ -23,7 +24,9 @@
|
|||
inkscape
|
||||
gimp
|
||||
krita
|
||||
# recording
|
||||
obs-studio
|
||||
];
|
||||
programs.obs-studio.enable = true;
|
||||
programs.obs-studio.plugins = with pkgs; [
|
||||
obs-studio-plugins.obs-vaapi
|
||||
];
|
||||
}
|
||||
|
|
|
|||
|
|
@ -60,12 +60,17 @@
|
|||
nvim-lspconfig
|
||||
nvim-notify
|
||||
nvim-spectre
|
||||
nvim-treesitter
|
||||
nvim-treesitter.withAllGrammars
|
||||
nvim-treesitter-context
|
||||
nvim-treesitter-textobjects
|
||||
nvim-ts-autotag
|
||||
nvim-ts-context-commentstring
|
||||
nvim-web-devicons
|
||||
nvim-jdtls
|
||||
omnisharp-extended-lsp-nvim
|
||||
neotest
|
||||
neotest-java
|
||||
neotest-rust
|
||||
persistence-nvim
|
||||
plenary-nvim
|
||||
telescope-fzf-native-nvim
|
||||
|
|
@ -97,6 +102,18 @@
|
|||
defaults = {
|
||||
lazy = true,
|
||||
},
|
||||
performance = {
|
||||
rtp = {
|
||||
disabled_plugins = {
|
||||
"gzip",
|
||||
"netrw",
|
||||
"tarPlugin",
|
||||
"tohtml",
|
||||
"tutor",
|
||||
"zipPlugin",
|
||||
},
|
||||
},
|
||||
},
|
||||
dev = {
|
||||
-- reuse files from pkgs.vimPlugins.*
|
||||
path = "${lazyPath}",
|
||||
|
|
@ -107,8 +124,6 @@
|
|||
spec = {
|
||||
{ "LazyVim/LazyVim", import = "lazyvim.plugins" },
|
||||
{ import = "lazyvim.plugins.extras.ui.alpha" },
|
||||
{ import = "plugins" },
|
||||
{ import = "plugins.plugins" },
|
||||
{ import = "lazyvim.plugins.extras.lang.rust" },
|
||||
{ import = "lazyvim.plugins.extras.lang.tailwind" },
|
||||
{ import = "lazyvim.plugins.extras.lang.java" },
|
||||
|
|
@ -127,27 +142,15 @@
|
|||
{ "nvim-telescope/telescope-fzf-native.nvim", enabled = true },
|
||||
-- disable mason.nvim, use programs.neovim.extraPackages
|
||||
{ "williamboman/mason-lspconfig.nvim", enabled = false },
|
||||
{ "williamboman/mason.nvim", enabled = false },
|
||||
-- import/override with your plugins
|
||||
{ import = "plugins" },
|
||||
--{ "williamboman/mason.nvim", enabled = false },
|
||||
-- treesitter handled by xdg.configFile."nvim/parser", put this line at the end of spec to clear ensure_installed
|
||||
{ "nvim-treesitter/nvim-treesitter", opts = { ensure_installed = {} } },
|
||||
{ import = "plugins" },
|
||||
{ import = "plugins.plugins" },
|
||||
},
|
||||
install = { colorscheme = { "tokyonight" } },
|
||||
checker = { enabled = true, notify = false },
|
||||
change_detection = { enabled = true, notify = false },
|
||||
performance = {
|
||||
rtp = {
|
||||
disabled_plugins = {
|
||||
"gzip",
|
||||
"netrw",
|
||||
"tarPlugin",
|
||||
"tohtml",
|
||||
"tutor",
|
||||
"zipPlugin",
|
||||
},
|
||||
},
|
||||
},
|
||||
})
|
||||
'';
|
||||
};
|
||||
|
|
@ -157,14 +160,12 @@
|
|||
let
|
||||
parsers = pkgs.symlinkJoin {
|
||||
name = "treesitter-parsers";
|
||||
paths = (pkgs.vimPlugins.nvim-treesitter.withPlugins (plugins: with plugins; [
|
||||
c
|
||||
lua
|
||||
])).dependencies;
|
||||
paths = (pkgs.vimPlugins.nvim-treesitter.withAllGrammars).dependencies;
|
||||
};
|
||||
in
|
||||
"${parsers}/parser";
|
||||
|
||||
# Normal LazyVim config here, see https://github.com/LazyVim/starter/tree/main/lua
|
||||
xdg.configFile."nvim/lua".source = ./lua;
|
||||
xdg.configFile."nvim/ftplugin".source = ./ftplugin;
|
||||
}
|
||||
|
|
|
|||
5
nix/programs/nvim/ftplugin/java.lua
Normal file
5
nix/programs/nvim/ftplugin/java.lua
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
local config = {
|
||||
cmd = { "jdtls" },
|
||||
root_dir = vim.fs.dirname(vim.fs.find({ "gradlew", ".git", "mvnw" }, { upward = true })[1]),
|
||||
}
|
||||
require("jdtls").start_or_attach(config)
|
||||
16
nix/programs/nvim/lua/config/autocmds.lua
Normal file
16
nix/programs/nvim/lua/config/autocmds.lua
Normal file
|
|
@ -0,0 +1,16 @@
|
|||
-- nvimtree
|
||||
local function open_nvim_tree(data)
|
||||
local directory = vim.fn.isdirectory(data.file) == 1
|
||||
|
||||
if not directory then
|
||||
return
|
||||
end
|
||||
print("FUCK")
|
||||
-- change to the directory
|
||||
vim.cmd.cd(data.file)
|
||||
|
||||
-- open the tree
|
||||
require("nvim-tree.api").tree.open()
|
||||
end
|
||||
|
||||
vim.api.nvim_create_autocmd({ "VimEnter" }, { callback = open_nvim_tree })
|
||||
|
|
@ -1,14 +1,14 @@
|
|||
local Util = require("lazyvim.util")
|
||||
|
||||
local function map(mode, lhs, rhs, opts)
|
||||
local keys = require("lazy.core.handler").handlers.keys
|
||||
---@cast keys LazyKeysHandler
|
||||
-- do not create the map if a lazy keys handler exists
|
||||
if not keys.active[keys.parse({ lhs, mode = mode }).id] then
|
||||
opts = opts or {}
|
||||
opts.silent = opts.silent ~= false
|
||||
vim.keymap.set(mode, lhs, rhs, opts)
|
||||
end
|
||||
local keys = require("lazy.core.handler").handlers.keys
|
||||
---@cast keys LazyKeysHandler
|
||||
-- do not create the map if a lazy keys handler exists
|
||||
if not keys.active[keys.parse({ lhs, mode = mode }).id] then
|
||||
opts = opts or {}
|
||||
opts.silent = opts.silent ~= false
|
||||
vim.keymap.set(mode, lhs, rhs, opts)
|
||||
end
|
||||
end
|
||||
local opts = { noremap = true, silent = true }
|
||||
local term_opts = { silent = true }
|
||||
|
|
@ -32,10 +32,10 @@ map("n", "<leader>do", ':lua require("dap").step_over()<CR>', { desc = "Step ove
|
|||
map("n", "<leader>di", ':lua require("dap").step_into()<CR>', { desc = "Step into" })
|
||||
map("n", "<leader>dc", ':lua require("dap").continue()<CR>', { desc = "Continue" })
|
||||
map("n", "<leader>du", function()
|
||||
require("dapui").toggle()
|
||||
require("dapui").toggle()
|
||||
end, { desc = "Toggle DAP UI" })
|
||||
map("n", "<leader>de", function()
|
||||
require("dapui").eval()
|
||||
require("dapui").eval()
|
||||
end, { desc = "DAP Eval" })
|
||||
|
||||
-- window movement
|
||||
|
|
@ -48,7 +48,7 @@ map("i", "<A-k>", [[<Cmd>wincmd j<CR>]], opts)
|
|||
|
||||
-- toggle terminal
|
||||
local lazyterm = function()
|
||||
Util.terminal(nil, { cwd = Util.root(), esc_esc = false, ctrl_hjkl = false })
|
||||
Util.terminal(nil, { cwd = Util.root(), esc_esc = false, ctrl_hjkl = false })
|
||||
end
|
||||
map("n", "<c-t>", lazyterm, { desc = "Terminal (root dir)" })
|
||||
map("t", "<c-t>", "<cmd>close<cr>", { desc = "Hide Terminal" })
|
||||
|
|
@ -65,70 +65,70 @@ map("n", "<F2>", ":BufferLineCycleNext<CR>", opts)
|
|||
|
||||
-- git
|
||||
map("n", "<leader>gq", function()
|
||||
require("telescope.builtin").git_commits()
|
||||
require("telescope.builtin").git_commits()
|
||||
end, { desc = "Commits" })
|
||||
map("n", "<leader>gw", function()
|
||||
require("telescope.builtin").git_bcommits()
|
||||
require("telescope.builtin").git_bcommits()
|
||||
end, { desc = "Commits in branch" })
|
||||
map("n", "<leader>gb", function()
|
||||
require("telescope.builtin").git_branches()
|
||||
require("telescope.builtin").git_branches()
|
||||
end, { desc = "Branches" })
|
||||
map("n", "<leader>gr", function()
|
||||
require("telescope.builtin").git_status()
|
||||
require("telescope.builtin").git_status()
|
||||
end, { desc = "Git status" })
|
||||
map("n", "<leader>ga", function()
|
||||
require("telescope.builtin").git_stash()
|
||||
require("telescope.builtin").git_stash()
|
||||
end, { desc = "Git stash" })
|
||||
map("n", "<leader>gg", function()
|
||||
Util.terminal({ "gitui" }, { cwd = Util.root() })
|
||||
Util.terminal({ "gitui" }, { cwd = Util.root() })
|
||||
end, { desc = "gitui (root dir)" })
|
||||
map("n", "<leader>gG", function()
|
||||
Util.terminal({ "gitui" })
|
||||
Util.terminal({ "gitui" })
|
||||
end, { desc = "gitui (cwd)" })
|
||||
map("n", "<leader>gB", function()
|
||||
require("gitblame")
|
||||
vim.cmd(":GitBlameToggle")
|
||||
require("gitblame")
|
||||
vim.cmd(":GitBlameToggle")
|
||||
end, { desc = "git blame" })
|
||||
|
||||
-- harpoon man
|
||||
map("n", "<leader>h1", function()
|
||||
require("harpoon.ui").nav_file(1)
|
||||
require("harpoon.ui").nav_file(1)
|
||||
end, { desc = "First Harpoon File" })
|
||||
map("n", "<leader>h2", function()
|
||||
require("harpoon.ui").nav_file(2)
|
||||
require("harpoon.ui").nav_file(2)
|
||||
end, { desc = "Second Harpoon File" })
|
||||
map("n", "<leader>h3", function()
|
||||
require("harpoon.ui").nav_file(3)
|
||||
require("harpoon.ui").nav_file(3)
|
||||
end, { desc = "First Harpoon File" })
|
||||
map("n", "<leader>ha", function()
|
||||
require("harpoon.mark").add_file()
|
||||
require("harpoon.mark").add_file()
|
||||
end, { desc = "First Harpoon File" })
|
||||
map("n", "<leader>hd", function()
|
||||
require("harpoon.mark").remove_file()
|
||||
require("harpoon.mark").remove_file()
|
||||
end, { desc = "First Harpoon File" })
|
||||
map("n", "<leader>hm", ":Telescope harpoon marks<CR>", { noremap = true, silent = true, desc = "Show harpoon marks" })
|
||||
|
||||
-- telescope
|
||||
map("n", "<leader>fb", function()
|
||||
require("telescope").extensions.file_browser.file_browser({})
|
||||
require("telescope").extensions.file_browser.file_browser({})
|
||||
end, { desc = "File Browser" })
|
||||
map("n", "<leader>ff", function()
|
||||
require("telescope.builtin").find_files()
|
||||
require("telescope.builtin").find_files()
|
||||
end, { desc = "Find Files" })
|
||||
map("n", "<leader>fg", function()
|
||||
Live_grep_from_project_git_root()
|
||||
Live_grep_from_project_git_root()
|
||||
end, { desc = "Live Grep (root)" })
|
||||
map("n", "<leader>fG", function()
|
||||
require("telescope.builtin").live_grep()
|
||||
require("telescope.builtin").live_grep()
|
||||
end, { desc = "Live Grep (cwd)" })
|
||||
map("n", "<leader>fh", function()
|
||||
require("telescope.builtin").help_tags()
|
||||
require("telescope.builtin").help_tags()
|
||||
end, { desc = "Help" })
|
||||
map("n", "<leader>fp", function()
|
||||
require("telescope").extensions.project.project({})
|
||||
require("telescope").extensions.project.project({})
|
||||
end, { noremap = true, silent = true, desc = "Projects" })
|
||||
map("n", "<leader>z", function()
|
||||
require("telescope").extensions.zoxide.list({})
|
||||
require("telescope").extensions.zoxide.list({})
|
||||
end, { desc = "Zoxide" })
|
||||
|
||||
-- neoscroll
|
||||
|
|
@ -142,13 +142,13 @@ map("n", "<leader>t", "<cmd>TroubleToggle<CR>", term_opts)
|
|||
|
||||
-- format
|
||||
map({ "n", "v" }, "<F4>", function()
|
||||
Util.format({ force = true })
|
||||
Util.format({ force = true })
|
||||
end, { desc = "Format" })
|
||||
|
||||
-- better yank
|
||||
function Better_yank(opts)
|
||||
local current_line = unpack(vim.api.nvim_win_get_cursor(0))
|
||||
vim.api.nvim_command(current_line .. "," .. (opts.count - (current_line - 1)) .. "y")
|
||||
local current_line = unpack(vim.api.nvim_win_get_cursor(0))
|
||||
vim.api.nvim_command(current_line .. "," .. (opts.count - (current_line - 1)) .. "y")
|
||||
end
|
||||
|
||||
vim.api.nvim_create_user_command("BetterYank", Better_yank, { count = 1 })
|
||||
|
|
@ -156,8 +156,8 @@ map("n", "by", ":BetterYank<CR>", term_opts)
|
|||
|
||||
-- better delete
|
||||
function Better_delete(opts)
|
||||
local current_line = unpack(vim.api.nvim_win_get_cursor(0))
|
||||
vim.api.nvim_command(current_line .. "," .. (opts.count - (current_line - 1)) .. "d")
|
||||
local current_line = unpack(vim.api.nvim_win_get_cursor(0))
|
||||
vim.api.nvim_command(current_line .. "," .. (opts.count - (current_line - 1)) .. "d")
|
||||
end
|
||||
|
||||
vim.api.nvim_create_user_command("BetterDelete", Better_delete, { count = 1 })
|
||||
|
|
@ -165,13 +165,13 @@ map("n", "bd", ":BetterDelete<CR>", term_opts)
|
|||
|
||||
-- neovide zoom
|
||||
local change_scale_factor = function(delta)
|
||||
vim.g.neovide_scale_factor = vim.g.neovide_scale_factor * delta
|
||||
vim.g.neovide_scale_factor = vim.g.neovide_scale_factor * delta
|
||||
end
|
||||
vim.keymap.set("n", "<C-=>", function()
|
||||
change_scale_factor(1.25)
|
||||
change_scale_factor(1.25)
|
||||
end)
|
||||
vim.keymap.set("n", "<C-->", function()
|
||||
change_scale_factor(1 / 1.25)
|
||||
change_scale_factor(1 / 1.25)
|
||||
end)
|
||||
|
||||
-- neovide paste
|
||||
|
|
@ -179,23 +179,24 @@ vim.g.neovide_input_use_logo = 1
|
|||
vim.api.nvim_set_keymap("i", "<C-S-V>", "<ESC>p<CR>I", { noremap = true, silent = true })
|
||||
|
||||
function Get_git_root()
|
||||
local opts = {}
|
||||
local function is_git_repo()
|
||||
vim.fn.system("git rev-parse --is-inside-work-tree")
|
||||
local opts = {}
|
||||
local function is_git_repo()
|
||||
vim.fn.system("git rev-parse --is-inside-work-tree")
|
||||
|
||||
return vim.v.shell_error == 0
|
||||
end
|
||||
if is_git_repo() then
|
||||
local dot_git_path = vim.fn.finddir(".git", ".;")
|
||||
local root = vim.fn.fnamemodify(dot_git_path, ":h")
|
||||
opts = {
|
||||
cwd = root,
|
||||
}
|
||||
end
|
||||
return opts
|
||||
return vim.v.shell_error == 0
|
||||
end
|
||||
if is_git_repo() then
|
||||
local dot_git_path = vim.fn.finddir(".git", ".;")
|
||||
local root = vim.fn.fnamemodify(dot_git_path, ":h")
|
||||
opts = {
|
||||
cwd = root,
|
||||
}
|
||||
end
|
||||
return opts
|
||||
end
|
||||
|
||||
function Live_grep_from_project_git_root()
|
||||
local opts = Get_git_root()
|
||||
require("telescope.builtin").live_grep(opts)
|
||||
local opts = Get_git_root()
|
||||
require("telescope.builtin").live_grep(opts)
|
||||
end
|
||||
|
||||
|
|
|
|||
|
|
@ -2,24 +2,32 @@
|
|||
-- Default options that are always set: https://github.com/LazyVim/LazyVim/blob/main/lua/lazyvim/config/options.lua
|
||||
-- Add any additional options here
|
||||
local options = {
|
||||
fileencoding = "utf-8",
|
||||
number = true,
|
||||
showmode = true,
|
||||
termguicolors = true,
|
||||
spelllang = "en_us",
|
||||
shell = "fish",
|
||||
relativenumber = false,
|
||||
scrolloff = 5,
|
||||
scrolljump = 5,
|
||||
wrap = false,
|
||||
fileencoding = "utf-8",
|
||||
number = true,
|
||||
showmode = true,
|
||||
termguicolors = true,
|
||||
spelllang = "en_us",
|
||||
shell = "fish",
|
||||
relativenumber = false,
|
||||
scrolloff = 5,
|
||||
scrolljump = 5,
|
||||
wrap = false,
|
||||
}
|
||||
vim.filetype.add({
|
||||
extension = {
|
||||
typst = "typst",
|
||||
typ = "typst",
|
||||
},
|
||||
})
|
||||
vim.o.guifont = "JetBrainsMono Nerd Font:h14"
|
||||
vim.g.neovide_refresh_rate_idle = 180
|
||||
vim.g.neovide_refresh_rate_idle = 5
|
||||
vim.g.neovide_hide_mouse_when_typing = true
|
||||
vim.g.mkdp_browser = "/usr/bin/firefox"
|
||||
vim.g.mkdp_auto_start = 1
|
||||
vim.g.loaded_netrw = 1
|
||||
vim.g.loaded_netrwPlugin = 1
|
||||
vim.g.autoformat = false
|
||||
for k, v in pairs(options) do
|
||||
vim.opt[k] = v
|
||||
vim.opt[k] = v
|
||||
end
|
||||
|
|
|
|||
|
|
@ -1,302 +0,0 @@
|
|||
local Util = require("lazyvim.util")
|
||||
|
||||
return {
|
||||
{
|
||||
"LazyVim/LazyVim",
|
||||
opts = {
|
||||
colorscheme = "tokyonight-night",
|
||||
-- colorscheme = "catppuccin-mocha",
|
||||
},
|
||||
},
|
||||
{
|
||||
"nvim-telescope/telescope.nvim",
|
||||
cmd = "Telescope",
|
||||
keys = function()
|
||||
return {}
|
||||
end,
|
||||
opts = {
|
||||
defaults = {
|
||||
layout_strategy = 'flex';
|
||||
layout_config = {
|
||||
flex = {
|
||||
height = 0.95,
|
||||
width = 0.95,
|
||||
flip_columns = 100,
|
||||
vertical = { preview_height = 0.5, preview_cutoff = 5 },
|
||||
horizontal = { preview_width = 0.7, preview_cutoff = 99 },
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
"ThePrimeagen/harpoon",
|
||||
lazy = true,
|
||||
config = function()
|
||||
require("telescope").load_extension("harpoon")
|
||||
end,
|
||||
},
|
||||
{
|
||||
"iamcco/markdown-preview.nvim",
|
||||
lazy = true,
|
||||
event = "FileType markdown",
|
||||
build = "cd app && yarn install",
|
||||
},
|
||||
{
|
||||
"nvim-telescope/telescope-project.nvim",
|
||||
lazy = true,
|
||||
},
|
||||
{
|
||||
"nvim-telescope/telescope-file-browser.nvim",
|
||||
lazy = true,
|
||||
config = function()
|
||||
require("telescope").load_extension("file_browser")
|
||||
end,
|
||||
},
|
||||
{
|
||||
"jvgrootveld/telescope-zoxide",
|
||||
lazy = true,
|
||||
config = function()
|
||||
local z_utils = require("telescope._extensions.zoxide.utils")
|
||||
local t = require("telescope")
|
||||
-- Configure the extension
|
||||
t.setup({
|
||||
extensions = {
|
||||
zoxide = {
|
||||
prompt_title = "[ Queries ]",
|
||||
mappings = {
|
||||
default = {
|
||||
after_action = function(selection)
|
||||
print("Update to (" .. selection.z_score .. ") " .. selection.path)
|
||||
end,
|
||||
},
|
||||
["<C-s>"] = {
|
||||
before_action = function(selection)
|
||||
print("before C-s")
|
||||
end,
|
||||
action = function(selection)
|
||||
vim.cmd("edit " .. selection.path)
|
||||
end,
|
||||
},
|
||||
["<C-q>"] = { action = z_utils.create_basic_command("split") },
|
||||
},
|
||||
},
|
||||
},
|
||||
})
|
||||
|
||||
-- Load the extension
|
||||
t.load_extension("zoxide")
|
||||
end,
|
||||
},
|
||||
{
|
||||
"lervag/vimtex",
|
||||
config = function()
|
||||
vim.cmd("let g:vimtex_quickfix_mode=0")
|
||||
vim.cmd("let g:vimtex_view_general_viewer = 'evince'")
|
||||
vim.cmd("let g:vimtex_compiler_method = 'latexmk'")
|
||||
vim.cmd(
|
||||
"let g:vimtex_compiler_latexmk = {'options': ['-pdf', '-shell-escape', '-file-line-error', '--extra-mem-bot=10000000', '-synctex=1', '-interaction=nonstopmode',],}"
|
||||
)
|
||||
end,
|
||||
},
|
||||
{
|
||||
"rcarriga/nvim-notify",
|
||||
opts = {
|
||||
top_down = false,
|
||||
},
|
||||
},
|
||||
{
|
||||
"jbyuki/instant.nvim",
|
||||
config = function()
|
||||
vim.cmd("let g:instant_username = 'dashie'")
|
||||
end,
|
||||
},
|
||||
{
|
||||
"nvim-treesitter/nvim-treesitter",
|
||||
opts = {
|
||||
textobjects = {
|
||||
select = {
|
||||
enable = true,
|
||||
lookahead = true,
|
||||
keymaps = {
|
||||
-- You can use the capture groups defined in textobjects.scm
|
||||
["af"] = "@function.outer",
|
||||
["if"] = "@function.inner",
|
||||
["ac"] = "@class.outer",
|
||||
["ic"] = "@class.inner",
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
"karb94/neoscroll.nvim",
|
||||
config = function()
|
||||
require("neoscroll").setup()
|
||||
end,
|
||||
},
|
||||
{
|
||||
"kaarmu/typst.vim",
|
||||
lazy = true,
|
||||
event = "FileType typst",
|
||||
},
|
||||
{
|
||||
"folke/which-key.nvim",
|
||||
event = "VeryLazy",
|
||||
opts = {
|
||||
plugins = { spelling = true },
|
||||
defaults = {
|
||||
mode = { "n", "v" },
|
||||
["g"] = { name = "+goto" },
|
||||
["gz"] = { name = "+surround" },
|
||||
["]"] = { name = "+next" },
|
||||
["["] = { name = "+prev" },
|
||||
["<leader><tab>"] = { name = "+tabs" },
|
||||
["<leader>b"] = { name = "+buffer" },
|
||||
["<leader>c"] = { name = "+code" },
|
||||
["<leader>f"] = { name = "+file/find" },
|
||||
["<leader>g"] = { name = "+git" },
|
||||
["<leader>gh"] = { name = "+hunks" },
|
||||
["<leader>q"] = { name = "+quit/session" },
|
||||
["<leader>s"] = { name = "+search" },
|
||||
["<leader>u"] = { name = "+ui" },
|
||||
["<leader>w"] = { name = "+windows" },
|
||||
["<leader>x"] = { name = "+diagnostics/quickfix" },
|
||||
["<leader>h"] = { name = "+harpoon" },
|
||||
["<leader>d"] = { name = "+DAP" },
|
||||
},
|
||||
},
|
||||
config = function(_, opts)
|
||||
local wk = require("which-key")
|
||||
wk.setup(opts)
|
||||
wk.register(opts.defaults)
|
||||
end,
|
||||
},
|
||||
{
|
||||
"f-person/git-blame.nvim",
|
||||
lazy = true,
|
||||
},
|
||||
{
|
||||
"mg979/vim-visual-multi",
|
||||
},
|
||||
{
|
||||
"barreiroleo/ltex_extra.nvim",
|
||||
ft = { "markdown", "tex", "typst", "typ" },
|
||||
lazy = true,
|
||||
},
|
||||
{
|
||||
"smjonas/inc-rename.nvim",
|
||||
lazy = true,
|
||||
event = "BufEnter",
|
||||
config = function()
|
||||
require("inc_rename").setup({
|
||||
cmd_name = "IncRename", -- the name of the command
|
||||
hl_group = "Substitute", -- the highlight group used for highlighting the identifier's new name
|
||||
preview_empty_name = true, -- whether an empty new name should be previewed; if false the command preview will be cancelled instead
|
||||
show_message = true, -- whether to display a `Renamed m instances in n files` message after a rename operation
|
||||
input_buffer_type = nil, -- the type of the external input buffer to use (the only supported value is currently "dressing")
|
||||
post_hook = nil, -- callback to run after renaming, receives the result table (from LSP handler) as an argument
|
||||
})
|
||||
end,
|
||||
},
|
||||
{
|
||||
"nvim-neo-tree/neo-tree.nvim",
|
||||
opts = {
|
||||
window = {
|
||||
position = "right",
|
||||
mappings = {
|
||||
["l"] = "none",
|
||||
},
|
||||
},
|
||||
},
|
||||
keys = {
|
||||
{
|
||||
"<leader>fe",
|
||||
function()
|
||||
require("neo-tree.command").execute({ position = "right", toggle = true, dir = Util.root() })
|
||||
end,
|
||||
desc = "Explorer NeoTree (root dir)",
|
||||
},
|
||||
{
|
||||
"<leader>fE",
|
||||
function()
|
||||
require("neo-tree.command").execute({ position = "right", toggle = true, dir = vim.loop.cwd() })
|
||||
end,
|
||||
desc = "Explorer NeoTree (cwd)",
|
||||
},
|
||||
{ "<A-f>", "<leader>fe", desc = "Explorer NeoTree (root dir)", remap = true },
|
||||
{ "<A-F>", "<leader>fE", desc = "Explorer NeoTree (cwd)", remap = true },
|
||||
},
|
||||
},
|
||||
{
|
||||
"folke/edgy.nvim",
|
||||
opts = {
|
||||
animate = {
|
||||
enabled = false,
|
||||
},
|
||||
left = {},
|
||||
right = {
|
||||
-- Neo-tree filesystem always takes half the screen height
|
||||
{
|
||||
title = "Neo-Tree",
|
||||
ft = "neo-tree",
|
||||
filter = function(buf)
|
||||
return vim.b[buf].neo_tree_source == "filesystem"
|
||||
end,
|
||||
size = { height = 0.5 },
|
||||
},
|
||||
{
|
||||
title = "Neo-Tree Git",
|
||||
ft = "neo-tree",
|
||||
filter = function(buf)
|
||||
return vim.b[buf].neo_tree_source == "git_status"
|
||||
end,
|
||||
pinned = true,
|
||||
open = "Neotree position=right git_status",
|
||||
},
|
||||
{
|
||||
title = "Neo-Tree Buffers",
|
||||
ft = "neo-tree",
|
||||
filter = function(buf)
|
||||
return vim.b[buf].neo_tree_source == "buffers"
|
||||
end,
|
||||
pinned = true,
|
||||
open = "Neotree position=top buffers",
|
||||
},
|
||||
{
|
||||
ft = "Outline",
|
||||
pinned = true,
|
||||
open = "SymbolsOutlineOpen",
|
||||
},
|
||||
-- any other neo-tree windows
|
||||
"neo-tree",
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
"rcarriga/nvim-dap-ui",
|
||||
keys = {
|
||||
{
|
||||
"<leader>dk",
|
||||
function()
|
||||
require("dap").down()
|
||||
end,
|
||||
desc = "Down",
|
||||
},
|
||||
{
|
||||
"<leader>dl",
|
||||
function()
|
||||
require("dap").up()
|
||||
end,
|
||||
desc = "Up",
|
||||
},
|
||||
{
|
||||
"<leader>d;",
|
||||
function()
|
||||
require("dap").run_last()
|
||||
end,
|
||||
desc = "Run Last",
|
||||
},
|
||||
},
|
||||
},
|
||||
}
|
||||
|
|
@ -5,4 +5,5 @@ return {
|
|||
{ { "folke/noice.nvim", enabled = false } },
|
||||
{ { "nvimtools/none-ls.nvim", enabled = false } },
|
||||
{ { "nvimdev/dashboard-nvim", enabled = false } },
|
||||
{ { "nvim-neo-tree/neo-tree.nvim", enabled = false } },
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,162 +1,169 @@
|
|||
return {
|
||||
{
|
||||
"williamboman/mason.nvim",
|
||||
opts = {
|
||||
ensure_installed = {},
|
||||
},
|
||||
},
|
||||
{
|
||||
"neovim/nvim-lspconfig",
|
||||
---@class PluginLspOpts
|
||||
opts = {
|
||||
-- inlay_hints = {
|
||||
-- enabled = true,
|
||||
-- },
|
||||
format_notify = false,
|
||||
-- LSP Server Settings
|
||||
---@type lspconfig.options
|
||||
servers = {
|
||||
rust_analyzer = {
|
||||
mason = false,
|
||||
},
|
||||
marksman = {
|
||||
mason = false,
|
||||
},
|
||||
clangd = {
|
||||
mason = false,
|
||||
},
|
||||
jdtls = {
|
||||
mason = false,
|
||||
},
|
||||
gopls = {
|
||||
mason = false,
|
||||
},
|
||||
pyright = {
|
||||
mason = false,
|
||||
},
|
||||
ruff_lsp = {
|
||||
mason = false,
|
||||
},
|
||||
texlab = {
|
||||
mason = false,
|
||||
},
|
||||
taplo = {
|
||||
keys = {
|
||||
{
|
||||
"K",
|
||||
function()
|
||||
if vim.fn.expand("%:t") == "Cargo.toml" and require("crates").popup_available() then
|
||||
require("crates").show_popup()
|
||||
else
|
||||
vim.lsp.buf.hover()
|
||||
end
|
||||
end,
|
||||
desc = "Show Crate Documentation",
|
||||
},
|
||||
},
|
||||
mason = false,
|
||||
},
|
||||
bashls = {
|
||||
mason = false,
|
||||
},
|
||||
ansiblels = {
|
||||
mason = false,
|
||||
},
|
||||
typst_lsp = {
|
||||
settings = {
|
||||
experimentalFormatterMode = "on",
|
||||
exportPdf = "onSave",
|
||||
},
|
||||
mason = false,
|
||||
},
|
||||
nil_ls = {
|
||||
settings = {
|
||||
["nil"] = {
|
||||
formatting = {
|
||||
command = { "nixpkgs-fmt" },
|
||||
},
|
||||
},
|
||||
},
|
||||
mason = false,
|
||||
},
|
||||
ltex = {
|
||||
settings = {
|
||||
ltex = {
|
||||
checkFrequency = "save",
|
||||
},
|
||||
},
|
||||
filetypes = {
|
||||
"bib",
|
||||
"gitcommit",
|
||||
"markdown",
|
||||
"org",
|
||||
"plaintex",
|
||||
"rst",
|
||||
"rnoweb",
|
||||
"tex",
|
||||
"pandoc",
|
||||
"typst",
|
||||
"typ",
|
||||
},
|
||||
mason = false,
|
||||
},
|
||||
sqlls = {
|
||||
mason = false,
|
||||
},
|
||||
lemminx = {
|
||||
mason = false,
|
||||
},
|
||||
opencl_ls = {
|
||||
mason = false,
|
||||
},
|
||||
yamlls = {
|
||||
mason = false,
|
||||
},
|
||||
lua_ls = {
|
||||
mason = false,
|
||||
{
|
||||
Lua = {
|
||||
workspace = {
|
||||
checkThirdParty = false,
|
||||
},
|
||||
completion = {
|
||||
callSnippet = "Replace",
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
init = function()
|
||||
local keys = require("lazyvim.plugins.lsp.keymaps").get()
|
||||
local my_keys = require("config.lsp-keymap").get()
|
||||
local count = 0
|
||||
for _ in pairs(my_keys) do
|
||||
keys[#keys + 1] = my_keys[count]
|
||||
count = count + 1
|
||||
end
|
||||
end,
|
||||
},
|
||||
{
|
||||
"stevearc/conform.nvim",
|
||||
opts = {
|
||||
keys = {
|
||||
{
|
||||
-- Customize or remove this keymap to your liking
|
||||
"<leader>cF",
|
||||
function()
|
||||
require("conform").format({ async = true, lsp_fallback = true })
|
||||
end,
|
||||
mode = "",
|
||||
desc = "Format buffer",
|
||||
},
|
||||
},
|
||||
formatters_by_ft = {
|
||||
typst = { "typstfmt" },
|
||||
nix = { "nixpkgs-fmt" },
|
||||
lua = { "stylua" },
|
||||
sh = { "shfmt" },
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
"williamboman/mason.nvim",
|
||||
--opts = function()
|
||||
-- return {
|
||||
-- ensure_installed = {},
|
||||
-- }
|
||||
--end,
|
||||
},
|
||||
{
|
||||
"neovim/nvim-lspconfig",
|
||||
---@class PluginLspOpts
|
||||
opts = {
|
||||
-- inlay_hints = {
|
||||
-- enabled = true,
|
||||
-- },
|
||||
format_notify = false,
|
||||
-- LSP Server Settings
|
||||
---@type lspconfig.options
|
||||
servers = {
|
||||
rust_analyzer = {
|
||||
mason = false,
|
||||
},
|
||||
marksman = {
|
||||
mason = false,
|
||||
},
|
||||
clangd = {
|
||||
mason = false,
|
||||
},
|
||||
jdtls = {
|
||||
mason = false,
|
||||
},
|
||||
gopls = {
|
||||
mason = false,
|
||||
},
|
||||
pyright = {
|
||||
mason = false,
|
||||
},
|
||||
ruff_lsp = {
|
||||
mason = false,
|
||||
},
|
||||
texlab = {
|
||||
mason = false,
|
||||
},
|
||||
taplo = {
|
||||
keys = {
|
||||
{
|
||||
"K",
|
||||
function()
|
||||
if vim.fn.expand("%:t") == "Cargo.toml" and require("crates").popup_available() then
|
||||
require("crates").show_popup()
|
||||
else
|
||||
vim.lsp.buf.hover()
|
||||
end
|
||||
end,
|
||||
desc = "Show Crate Documentation",
|
||||
},
|
||||
},
|
||||
mason = false,
|
||||
},
|
||||
bashls = {
|
||||
mason = false,
|
||||
},
|
||||
ansiblels = {
|
||||
mason = false,
|
||||
},
|
||||
omnisharp = {
|
||||
mason = false,
|
||||
cmd = { "OmniSharp" },
|
||||
},
|
||||
typst_lsp = {
|
||||
settings = {
|
||||
experimentalFormatterMode = "on",
|
||||
exportPdf = "onSave",
|
||||
},
|
||||
mason = false,
|
||||
},
|
||||
nil_ls = {
|
||||
settings = {
|
||||
["nil"] = {
|
||||
formatting = {
|
||||
command = { "nixpkgs-fmt" },
|
||||
},
|
||||
},
|
||||
},
|
||||
mason = false,
|
||||
},
|
||||
ltex = {
|
||||
settings = {
|
||||
ltex = {
|
||||
checkFrequency = "save",
|
||||
},
|
||||
},
|
||||
filetypes = {
|
||||
"bib",
|
||||
"gitcommit",
|
||||
"markdown",
|
||||
"org",
|
||||
"plaintex",
|
||||
"rst",
|
||||
"rnoweb",
|
||||
"tex",
|
||||
"pandoc",
|
||||
"typst",
|
||||
"typ",
|
||||
},
|
||||
mason = false,
|
||||
},
|
||||
sqlls = {
|
||||
mason = false,
|
||||
},
|
||||
lemminx = {
|
||||
mason = false,
|
||||
},
|
||||
opencl_ls = {
|
||||
mason = false,
|
||||
},
|
||||
yamlls = {
|
||||
mason = false,
|
||||
},
|
||||
lua_ls = {
|
||||
mason = false,
|
||||
{
|
||||
Lua = {
|
||||
workspace = {
|
||||
checkThirdParty = false,
|
||||
},
|
||||
completion = {
|
||||
callSnippet = "Replace",
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
init = function()
|
||||
local keys = require("lazyvim.plugins.lsp.keymaps").get()
|
||||
local my_keys = require("config.lsp-keymap").get()
|
||||
local count = 0
|
||||
for _ in pairs(my_keys) do
|
||||
keys[#keys + 1] = my_keys[count]
|
||||
count = count + 1
|
||||
end
|
||||
end,
|
||||
},
|
||||
{
|
||||
"stevearc/conform.nvim",
|
||||
opts = {
|
||||
keys = {
|
||||
{
|
||||
-- Customize or remove this keymap to your liking
|
||||
"<leader>cF",
|
||||
function()
|
||||
require("conform").format({ async = true, lsp_fallback = true })
|
||||
end,
|
||||
mode = "",
|
||||
desc = "Format buffer",
|
||||
},
|
||||
},
|
||||
formatters_by_ft = {
|
||||
typst = { "typstfmt" },
|
||||
nix = { "nixpkgs-fmt" },
|
||||
lua = { "stylua" },
|
||||
sh = { "shfmt" },
|
||||
cs = { "dotnet-csharpier" },
|
||||
},
|
||||
},
|
||||
},
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,255 +1,276 @@
|
|||
local Util = require("lazyvim.util")
|
||||
|
||||
return {
|
||||
{
|
||||
"LazyVim/LazyVim",
|
||||
opts = {
|
||||
colorscheme = "tokyonight-night",
|
||||
-- colorscheme = "catppuccin-mocha",
|
||||
},
|
||||
},
|
||||
{
|
||||
"nvim-telescope/telescope.nvim",
|
||||
cmd = "Telescope",
|
||||
keys = function()
|
||||
return {}
|
||||
end,
|
||||
opts = {
|
||||
defaults = {
|
||||
layout_strategy = "flex",
|
||||
layout_config = {
|
||||
flex = {
|
||||
height = 0.95,
|
||||
width = 0.95,
|
||||
flip_columns = 100,
|
||||
},
|
||||
vertical = { preview_height = 0.5, preview_cutoff = 5 },
|
||||
horizontal = { preview_width = 0.7, preview_cutoff = 99 },
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
"nvim-telescope/telescope-project.nvim",
|
||||
lazy = true,
|
||||
},
|
||||
{
|
||||
"nvim-telescope/telescope-file-browser.nvim",
|
||||
lazy = true,
|
||||
config = function()
|
||||
require("telescope").load_extension("file_browser")
|
||||
end,
|
||||
},
|
||||
{
|
||||
"jvgrootveld/telescope-zoxide",
|
||||
lazy = true,
|
||||
config = function()
|
||||
local z_utils = require("telescope._extensions.zoxide.utils")
|
||||
local t = require("telescope")
|
||||
-- Configure the extension
|
||||
t.setup({
|
||||
extensions = {
|
||||
zoxide = {
|
||||
prompt_title = "[ Queries ]",
|
||||
mappings = {
|
||||
default = {
|
||||
after_action = function(selection)
|
||||
print("Update to (" .. selection.z_score .. ") " .. selection.path)
|
||||
end,
|
||||
},
|
||||
["<C-s>"] = {
|
||||
before_action = function(selection)
|
||||
print("before C-s")
|
||||
end,
|
||||
action = function(selection)
|
||||
vim.cmd("edit " .. selection.path)
|
||||
end,
|
||||
},
|
||||
["<C-q>"] = { action = z_utils.create_basic_command("split") },
|
||||
},
|
||||
},
|
||||
},
|
||||
})
|
||||
{
|
||||
"LazyVim/LazyVim",
|
||||
opts = {
|
||||
colorscheme = "tokyonight-night",
|
||||
-- colorscheme = "catppuccin-mocha",
|
||||
},
|
||||
},
|
||||
{
|
||||
"nvim-telescope/telescope.nvim",
|
||||
cmd = "Telescope",
|
||||
keys = function()
|
||||
return {}
|
||||
end,
|
||||
opts = {
|
||||
defaults = {
|
||||
layout_strategy = "flex",
|
||||
layout_config = {
|
||||
flex = {
|
||||
height = 0.95,
|
||||
width = 0.95,
|
||||
flip_columns = 100,
|
||||
},
|
||||
vertical = { preview_height = 0.5, preview_cutoff = 5 },
|
||||
horizontal = { preview_width = 0.7, preview_cutoff = 99 },
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
"nvim-telescope/telescope-project.nvim",
|
||||
lazy = true,
|
||||
},
|
||||
{
|
||||
"nvim-telescope/telescope-file-browser.nvim",
|
||||
lazy = true,
|
||||
config = function()
|
||||
require("telescope").load_extension("file_browser")
|
||||
end,
|
||||
},
|
||||
{
|
||||
"jvgrootveld/telescope-zoxide",
|
||||
lazy = true,
|
||||
config = function()
|
||||
local z_utils = require("telescope._extensions.zoxide.utils")
|
||||
local t = require("telescope")
|
||||
-- Configure the extension
|
||||
t.setup({
|
||||
extensions = {
|
||||
zoxide = {
|
||||
prompt_title = "[ Queries ]",
|
||||
mappings = {
|
||||
default = {
|
||||
after_action = function(selection)
|
||||
print("Update to (" .. selection.z_score .. ") " .. selection.path)
|
||||
end,
|
||||
},
|
||||
["<C-s>"] = {
|
||||
before_action = function(selection)
|
||||
print("before C-s")
|
||||
end,
|
||||
action = function(selection)
|
||||
vim.cmd("edit " .. selection.path)
|
||||
end,
|
||||
},
|
||||
["<C-q>"] = { action = z_utils.create_basic_command("split") },
|
||||
},
|
||||
},
|
||||
},
|
||||
})
|
||||
|
||||
-- Load the extension
|
||||
t.load_extension("zoxide")
|
||||
end,
|
||||
},
|
||||
{
|
||||
"lervag/vimtex",
|
||||
config = function()
|
||||
vim.cmd("let g:vimtex_quickfix_mode=0")
|
||||
vim.cmd("let g:vimtex_view_general_viewer = 'evince'")
|
||||
vim.cmd("let g:vimtex_compiler_method = 'latexmk'")
|
||||
vim.cmd(
|
||||
"let g:vimtex_compiler_latexmk = {'options': ['-pdf', '-shell-escape', '-file-line-error', '--extra-mem-bot=10000000', '-synctex=1', '-interaction=nonstopmode',],}"
|
||||
)
|
||||
end,
|
||||
},
|
||||
{
|
||||
"jbyuki/instant.nvim",
|
||||
config = function()
|
||||
vim.cmd("let g:instant_username = 'dashie'")
|
||||
end,
|
||||
},
|
||||
{
|
||||
"nvim-treesitter/nvim-treesitter",
|
||||
opts = {
|
||||
textobjects = {
|
||||
select = {
|
||||
enable = true,
|
||||
lookahead = true,
|
||||
keymaps = {
|
||||
-- You can use the capture groups defined in textobjects.scm
|
||||
["af"] = "@function.outer",
|
||||
["if"] = "@function.inner",
|
||||
["ac"] = "@class.outer",
|
||||
["ic"] = "@class.inner",
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
"karb94/neoscroll.nvim",
|
||||
config = function()
|
||||
require("neoscroll").setup()
|
||||
end,
|
||||
},
|
||||
{
|
||||
"kaarmu/typst.vim",
|
||||
lazy = true,
|
||||
event = "FileType typst",
|
||||
},
|
||||
{
|
||||
"folke/which-key.nvim",
|
||||
event = "VeryLazy",
|
||||
opts = {
|
||||
plugins = { spelling = true },
|
||||
defaults = {
|
||||
mode = { "n", "v" },
|
||||
["g"] = { name = "+goto" },
|
||||
["gz"] = { name = "+surround" },
|
||||
["]"] = { name = "+next" },
|
||||
["["] = { name = "+prev" },
|
||||
["<leader><tab>"] = { name = "+tabs" },
|
||||
["<leader>b"] = { name = "+buffer" },
|
||||
["<leader>c"] = { name = "+code" },
|
||||
["<leader>f"] = { name = "+file/find" },
|
||||
["<leader>g"] = { name = "+git" },
|
||||
["<leader>gh"] = { name = "+hunks" },
|
||||
["<leader>q"] = { name = "+quit/session" },
|
||||
["<leader>s"] = { name = "+search" },
|
||||
["<leader>u"] = { name = "+ui" },
|
||||
["<leader>w"] = { name = "+windows" },
|
||||
["<leader>x"] = { name = "+diagnostics/quickfix" },
|
||||
["<leader>h"] = { name = "+harpoon" },
|
||||
["<leader>d"] = { name = "+DAP" },
|
||||
},
|
||||
},
|
||||
config = function(_, opts)
|
||||
local wk = require("which-key")
|
||||
wk.setup(opts)
|
||||
wk.register(opts.defaults)
|
||||
end,
|
||||
},
|
||||
{
|
||||
"f-person/git-blame.nvim",
|
||||
lazy = true,
|
||||
},
|
||||
{
|
||||
"mg979/vim-visual-multi",
|
||||
},
|
||||
{
|
||||
"barreiroleo/ltex_extra.nvim",
|
||||
ft = { "markdown", "tex", "typst", "typ" },
|
||||
lazy = true,
|
||||
},
|
||||
{
|
||||
"smjonas/inc-rename.nvim",
|
||||
lazy = true,
|
||||
event = "BufEnter",
|
||||
config = function()
|
||||
require("inc_rename").setup({
|
||||
cmd_name = "IncRename", -- the name of the command
|
||||
hl_group = "Substitute", -- the highlight group used for highlighting the identifier's new name
|
||||
preview_empty_name = true, -- whether an empty new name should be previewed; if false the command preview will be cancelled instead
|
||||
show_message = true, -- whether to display a `Renamed m instances in n files` message after a rename operation
|
||||
input_buffer_type = nil, -- the type of the external input buffer to use (the only supported value is currently "dressing")
|
||||
post_hook = nil, -- callback to run after renaming, receives the result table (from LSP handler) as an argument
|
||||
})
|
||||
end,
|
||||
},
|
||||
{
|
||||
"nvim-neo-tree/neo-tree.nvim",
|
||||
opts = {
|
||||
window = {
|
||||
position = "right",
|
||||
mappings = {
|
||||
["l"] = "none",
|
||||
},
|
||||
},
|
||||
},
|
||||
keys = {
|
||||
{
|
||||
"<leader>fe",
|
||||
function()
|
||||
require("neo-tree.command").execute({ position = "right", toggle = true, dir = Util.root() })
|
||||
end,
|
||||
desc = "Explorer NeoTree (root dir)",
|
||||
},
|
||||
{
|
||||
"<leader>fE",
|
||||
function()
|
||||
require("neo-tree.command").execute({ position = "right", toggle = true, dir = vim.loop.cwd() })
|
||||
end,
|
||||
desc = "Explorer NeoTree (cwd)",
|
||||
},
|
||||
{ "<A-f>", "<leader>fe", desc = "Explorer NeoTree (root dir)", remap = true },
|
||||
{ "<A-F>", "<leader>fE", desc = "Explorer NeoTree (cwd)", remap = true },
|
||||
},
|
||||
},
|
||||
{
|
||||
"rcarriga/nvim-dap-ui",
|
||||
keys = {
|
||||
{
|
||||
"<leader>dk",
|
||||
function()
|
||||
require("dap").down()
|
||||
end,
|
||||
desc = "Down",
|
||||
},
|
||||
{
|
||||
"<leader>dl",
|
||||
function()
|
||||
require("dap").up()
|
||||
end,
|
||||
desc = "Up",
|
||||
},
|
||||
{
|
||||
"<leader>d;",
|
||||
function()
|
||||
require("dap").run_last()
|
||||
end,
|
||||
desc = "Run Last",
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
"DashieTM/test_plugin",
|
||||
lazy = false,
|
||||
opts = {
|
||||
what = 0,
|
||||
},
|
||||
},
|
||||
{
|
||||
"DreamMaoMao/yazi.nvim",
|
||||
dependencies = {
|
||||
"nvim-telescope/telescope.nvim",
|
||||
"nvim-lua/plenary.nvim",
|
||||
},
|
||||
keys = {
|
||||
{ "<leader>fy", "<cmd>Yazi<CR>", desc = "Toggle Yazi" },
|
||||
},
|
||||
},
|
||||
-- Load the extension
|
||||
t.load_extension("zoxide")
|
||||
end,
|
||||
},
|
||||
{
|
||||
"lervag/vimtex",
|
||||
config = function()
|
||||
vim.cmd("let g:vimtex_quickfix_mode=0")
|
||||
vim.cmd("let g:vimtex_view_general_viewer = 'evince'")
|
||||
vim.cmd("let g:vimtex_compiler_method = 'latexmk'")
|
||||
vim.cmd(
|
||||
"let g:vimtex_compiler_latexmk = {'options': ['-pdf', '-shell-escape', '-file-line-error', '--extra-mem-bot=10000000', '-synctex=1', '-interaction=nonstopmode',],}"
|
||||
)
|
||||
end,
|
||||
},
|
||||
{
|
||||
"jbyuki/instant.nvim",
|
||||
config = function()
|
||||
vim.cmd("let g:instant_username = 'dashie'")
|
||||
end,
|
||||
},
|
||||
{
|
||||
"nvim-treesitter/nvim-treesitter",
|
||||
opts = {
|
||||
textobjects = {
|
||||
select = {
|
||||
enable = true,
|
||||
lookahead = true,
|
||||
keymaps = {
|
||||
-- You can use the capture groups defined in textobjects.scm
|
||||
["af"] = "@function.outer",
|
||||
["if"] = "@function.inner",
|
||||
["ac"] = "@class.outer",
|
||||
["ic"] = "@class.inner",
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
"karb94/neoscroll.nvim",
|
||||
config = function()
|
||||
require("neoscroll").setup()
|
||||
end,
|
||||
},
|
||||
{
|
||||
"kaarmu/typst.vim",
|
||||
lazy = true,
|
||||
event = "FileType typst",
|
||||
},
|
||||
{
|
||||
"folke/which-key.nvim",
|
||||
event = "VeryLazy",
|
||||
opts = {
|
||||
plugins = { spelling = true },
|
||||
defaults = {
|
||||
mode = { "n", "v" },
|
||||
["g"] = { name = "+goto" },
|
||||
["gz"] = { name = "+surround" },
|
||||
["]"] = { name = "+next" },
|
||||
["["] = { name = "+prev" },
|
||||
["<leader><tab>"] = { name = "+tabs" },
|
||||
["<leader>b"] = { name = "+buffer" },
|
||||
["<leader>c"] = { name = "+code" },
|
||||
["<leader>f"] = { name = "+file/find" },
|
||||
["<leader>g"] = { name = "+git" },
|
||||
["<leader>gh"] = { name = "+hunks" },
|
||||
["<leader>q"] = { name = "+quit/session" },
|
||||
["<leader>s"] = { name = "+search" },
|
||||
["<leader>u"] = { name = "+ui" },
|
||||
["<leader>w"] = { name = "+windows" },
|
||||
["<leader>x"] = { name = "+diagnostics/quickfix" },
|
||||
["<leader>h"] = { name = "+harpoon" },
|
||||
["<leader>d"] = { name = "+DAP" },
|
||||
},
|
||||
},
|
||||
config = function(_, opts)
|
||||
local wk = require("which-key")
|
||||
wk.setup(opts)
|
||||
wk.register(opts.defaults)
|
||||
end,
|
||||
},
|
||||
{
|
||||
"f-person/git-blame.nvim",
|
||||
lazy = true,
|
||||
},
|
||||
{
|
||||
"mg979/vim-visual-multi",
|
||||
},
|
||||
{
|
||||
"barreiroleo/ltex_extra.nvim",
|
||||
ft = { "markdown", "tex", "typst", "typ" },
|
||||
lazy = true,
|
||||
},
|
||||
{
|
||||
"smjonas/inc-rename.nvim",
|
||||
lazy = true,
|
||||
event = "BufEnter",
|
||||
config = function()
|
||||
require("inc_rename").setup({
|
||||
cmd_name = "IncRename", -- the name of the command
|
||||
hl_group = "Substitute", -- the highlight group used for highlighting the identifier's new name
|
||||
preview_empty_name = true, -- whether an empty new name should be previewed; if false the command preview will be cancelled instead
|
||||
show_message = true, -- whether to display a `Renamed m instances in n files` message after a rename operation
|
||||
input_buffer_type = nil, -- the type of the external input buffer to use (the only supported value is currently "dressing")
|
||||
post_hook = nil, -- callback to run after renaming, receives the result table (from LSP handler) as an argument
|
||||
})
|
||||
end,
|
||||
},
|
||||
{
|
||||
"nvim-tree/nvim-tree.lua",
|
||||
dependencies = { "nvim-tree/nvim-web-devicons" },
|
||||
config = function()
|
||||
require("nvim-tree").setup({
|
||||
renderer = {
|
||||
group_empty = true,
|
||||
},
|
||||
view = {
|
||||
side = "right",
|
||||
},
|
||||
diagnostics = {
|
||||
enable = true,
|
||||
},
|
||||
})
|
||||
end,
|
||||
keys = {
|
||||
{
|
||||
"<leader>fe",
|
||||
function()
|
||||
require("nvim-tree.api").tree.toggle()
|
||||
end,
|
||||
desc = "Explorer NvimTree (root dir)",
|
||||
},
|
||||
{
|
||||
"<leader>fE",
|
||||
function()
|
||||
require("nvim-tree.api").tree.toggle()
|
||||
end,
|
||||
desc = "Explorer NvimTree (cwd)",
|
||||
},
|
||||
{ "<A-f>", "<leader>fe", desc = "Explorer NvimTree (root dir)", remap = true },
|
||||
{ "<A-F>", "<leader>fE", desc = "Explorer NvimTree (cwd)", remap = true },
|
||||
},
|
||||
},
|
||||
{
|
||||
"rcarriga/nvim-dap-ui",
|
||||
keys = {
|
||||
{
|
||||
"<leader>dk",
|
||||
function()
|
||||
require("dap").down()
|
||||
end,
|
||||
desc = "Down",
|
||||
},
|
||||
{
|
||||
"<leader>dl",
|
||||
function()
|
||||
require("dap").up()
|
||||
end,
|
||||
desc = "Up",
|
||||
},
|
||||
{
|
||||
"<leader>d;",
|
||||
function()
|
||||
require("dap").run_last()
|
||||
end,
|
||||
desc = "Run Last",
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
"nvim-neotest/neotest",
|
||||
dependencies = {
|
||||
"rcasia/neotest-java",
|
||||
},
|
||||
opts = {
|
||||
adapters = {
|
||||
["neotest-java"] = {
|
||||
ignore_wrapper = false, -- whether to ignore maven/gradle wrapper
|
||||
junit_jar = "/home/dashie/.local/share/nvim/mason/bin/junit-standalone.jar",
|
||||
-- default: .local/share/nvim/neotest-java/junit-platform-console-standalone-[version].jar
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
"DashieTM/test_plugin",
|
||||
lazy = false,
|
||||
opts = {
|
||||
what = 0,
|
||||
},
|
||||
},
|
||||
{
|
||||
"DreamMaoMao/yazi.nvim",
|
||||
dependencies = {
|
||||
"nvim-telescope/telescope.nvim",
|
||||
"nvim-lua/plenary.nvim",
|
||||
},
|
||||
keys = {
|
||||
{ "<leader>fy", "<cmd>Yazi<CR>", desc = "Toggle Yazi" },
|
||||
},
|
||||
},
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,109 +1,109 @@
|
|||
{
|
||||
# TODO: reenable this again
|
||||
# right now its broken because flatpak...
|
||||
# xdg.configFile."gtk-4.0/gtk.css" = {
|
||||
# text =
|
||||
# ''
|
||||
# /*
|
||||
# Generated with Gradience
|
||||
#
|
||||
# Issues caused by theming should be reported to Gradience repository, and not to upstream
|
||||
#
|
||||
# https://github.com/GradienceTeam/Gradience
|
||||
# */
|
||||
#
|
||||
# @define-color accent_color #a9b1d6;
|
||||
# @define-color accent_bg_color #a9b1d6;
|
||||
# @define-color accent_fg_color rgba(0, 0, 0, 0.87);
|
||||
# @define-color destructive_color #F28B82;
|
||||
# @define-color destructive_bg_color #F28B82;
|
||||
# @define-color destructive_fg_color rgba(0, 0, 0, 0.87);
|
||||
# @define-color success_color #81C995;
|
||||
# @define-color success_bg_color #81C995;
|
||||
# @define-color success_fg_color rgba(0, 0, 0, 0.87);
|
||||
# @define-color warning_color #FDD633;
|
||||
# @define-color warning_bg_color #FDD633;
|
||||
# @define-color warning_fg_color rgba(0, 0, 0, 0.87);
|
||||
# @define-color error_color #F28B82;
|
||||
# @define-color error_bg_color #F28B82;
|
||||
# @define-color error_fg_color rgba(0, 0, 0, 0.87);
|
||||
# @define-color window_bg_color #1a1b26;
|
||||
# @define-color window_fg_color #c0caf5;
|
||||
# @define-color view_bg_color #1a1b26;
|
||||
# @define-color view_fg_color #c0caf5;
|
||||
# @define-color headerbar_bg_color #1a1b26;
|
||||
# @define-color headerbar_fg_color #c0caf5;
|
||||
# @define-color headerbar_border_color rgba(192, 202, 245, 0.12);
|
||||
# @define-color headerbar_backdrop_color @window_bg_color;
|
||||
# @define-color headerbar_shade_color rgba(0, 0, 0, 0.36);
|
||||
# @define-color card_bg_color #1a1b26;
|
||||
# @define-color card_fg_color #c0caf5;
|
||||
# @define-color card_shade_color rgba(0, 0, 0, 0.36);
|
||||
# @define-color dialog_bg_color #1a1b26;
|
||||
# @define-color dialog_fg_color #c0caf5;
|
||||
# @define-color popover_bg_color #1a1b26;
|
||||
# @define-color popover_fg_color #c0caf5;
|
||||
# @define-color shade_color rgba(0, 0, 0, 0.36);
|
||||
# @define-color scrollbar_outline_color rgba(0, 0, 0, 0.5);
|
||||
# @define-color sidebar_bg_color #1a1b26;
|
||||
# @define-color sidebar_fg_color #c0caf5;
|
||||
# @define-color secondary_sidebar_bg_color #1a1b26;
|
||||
# @define-color secondary_sidebar_fg_color #c0caf5;
|
||||
# @define-color sidebar_shade_color rgba(0, 0, 0, 0.36);
|
||||
# @define-color secondary_sidebar_shade_color rgba(0, 0, 0, 0.36);
|
||||
# @define-color thumbnail_bg_color #1a1b26;
|
||||
# @define-color thumbnail_fg_color #c0caf5;
|
||||
# @define-color sidebar_backdrop_color @sidebar_bg_color;
|
||||
# @define-color secondary_sidebar_backdrop_color @sidebar_bg_color;
|
||||
# @define-color blue_1 #99c1f1;
|
||||
# @define-color blue_2 #62a0ea;
|
||||
# @define-color blue_3 #3584e4;
|
||||
# @define-color blue_4 #1c71d8;
|
||||
# @define-color blue_5 #1a5fb4;
|
||||
# @define-color green_1 #8ff0a4;
|
||||
# @define-color green_2 #57e389;
|
||||
# @define-color green_3 #33d17a;
|
||||
# @define-color green_4 #2ec27e;
|
||||
# @define-color green_5 #26a269;
|
||||
# @define-color yellow_1 #f9f06b;
|
||||
# @define-color yellow_2 #f8e45c;
|
||||
# @define-color yellow_3 #f6d32d;
|
||||
# @define-color yellow_4 #f5c211;
|
||||
# @define-color yellow_5 #e5a50a;
|
||||
# @define-color orange_1 #ffbe6f;
|
||||
# @define-color orange_2 #ffa348;
|
||||
# @define-color orange_3 #ff7800;
|
||||
# @define-color orange_4 #e66100;
|
||||
# @define-color orange_5 #c64600;
|
||||
# @define-color red_1 #f66151;
|
||||
# @define-color red_2 #ed333b;
|
||||
# @define-color red_3 #e01b24;
|
||||
# @define-color red_4 #c01c28;
|
||||
# @define-color red_5 #a51d2d;
|
||||
# @define-color purple_1 #dc8add;
|
||||
# @define-color purple_2 #c061cb;
|
||||
# @define-color purple_3 #9141ac;
|
||||
# @define-color purple_4 #813d9c;
|
||||
# @define-color purple_5 #613583;
|
||||
# @define-color brown_1 #cdab8f;
|
||||
# @define-color brown_2 #b5835a;
|
||||
# @define-color brown_3 #986a44;
|
||||
# @define-color brown_4 #865e3c;
|
||||
# @define-color brown_5 #63452c;
|
||||
# @define-color light_1 #ffffff;
|
||||
# @define-color light_2 #f6f5f4;
|
||||
# @define-color light_3 #deddda;
|
||||
# @define-color light_4 #c0bfbc;
|
||||
# @define-color light_5 #9a9996;
|
||||
# @define-color dark_1 #77767b;
|
||||
# @define-color dark_2 #5e5c64;
|
||||
# @define-color dark_3 #3d3846;
|
||||
# @define-color dark_4 #241f31;
|
||||
# @define-color dark_5 #000000;
|
||||
#
|
||||
# .navigation-sidebar {
|
||||
# background-color: #1a1b26;
|
||||
# }
|
||||
# '';
|
||||
# };
|
||||
xdg.configFile."gtk-4.0/gtk.css" = {
|
||||
text =
|
||||
''
|
||||
/*
|
||||
Generated with Gradience
|
||||
|
||||
Issues caused by theming should be reported to Gradience repository, and not to upstream
|
||||
|
||||
https://github.com/GradienceTeam/Gradience
|
||||
*/
|
||||
|
||||
@define-color accent_color #a9b1d6;
|
||||
@define-color accent_bg_color #a9b1d6;
|
||||
@define-color accent_fg_color rgba(0, 0, 0, 0.87);
|
||||
@define-color destructive_color #F28B82;
|
||||
@define-color destructive_bg_color #F28B82;
|
||||
@define-color destructive_fg_color rgba(0, 0, 0, 0.87);
|
||||
@define-color success_color #81C995;
|
||||
@define-color success_bg_color #81C995;
|
||||
@define-color success_fg_color rgba(0, 0, 0, 0.87);
|
||||
@define-color warning_color #FDD633;
|
||||
@define-color warning_bg_color #FDD633;
|
||||
@define-color warning_fg_color rgba(0, 0, 0, 0.87);
|
||||
@define-color error_color #F28B82;
|
||||
@define-color error_bg_color #F28B82;
|
||||
@define-color error_fg_color rgba(0, 0, 0, 0.87);
|
||||
@define-color window_bg_color #1a1b26;
|
||||
@define-color window_fg_color #c0caf5;
|
||||
@define-color view_bg_color #1a1b26;
|
||||
@define-color view_fg_color #c0caf5;
|
||||
@define-color headerbar_bg_color #1a1b26;
|
||||
@define-color headerbar_fg_color #c0caf5;
|
||||
@define-color headerbar_border_color rgba(192, 202, 245, 0.12);
|
||||
@define-color headerbar_backdrop_color @window_bg_color;
|
||||
@define-color headerbar_shade_color rgba(0, 0, 0, 0.36);
|
||||
@define-color card_bg_color #1a1b26;
|
||||
@define-color card_fg_color #c0caf5;
|
||||
@define-color card_shade_color rgba(0, 0, 0, 0.36);
|
||||
@define-color dialog_bg_color #1a1b26;
|
||||
@define-color dialog_fg_color #c0caf5;
|
||||
@define-color popover_bg_color #1a1b26;
|
||||
@define-color popover_fg_color #c0caf5;
|
||||
@define-color shade_color rgba(0, 0, 0, 0.36);
|
||||
@define-color scrollbar_outline_color rgba(0, 0, 0, 0.5);
|
||||
@define-color sidebar_bg_color #1a1b26;
|
||||
@define-color sidebar_fg_color #c0caf5;
|
||||
@define-color secondary_sidebar_bg_color #1a1b26;
|
||||
@define-color secondary_sidebar_fg_color #c0caf5;
|
||||
@define-color sidebar_shade_color rgba(0, 0, 0, 0.36);
|
||||
@define-color secondary_sidebar_shade_color rgba(0, 0, 0, 0.36);
|
||||
@define-color thumbnail_bg_color #1a1b26;
|
||||
@define-color thumbnail_fg_color #c0caf5;
|
||||
@define-color sidebar_backdrop_color @sidebar_bg_color;
|
||||
@define-color secondary_sidebar_backdrop_color @sidebar_bg_color;
|
||||
@define-color blue_1 #99c1f1;
|
||||
@define-color blue_2 #62a0ea;
|
||||
@define-color blue_3 #3584e4;
|
||||
@define-color blue_4 #1c71d8;
|
||||
@define-color blue_5 #1a5fb4;
|
||||
@define-color green_1 #8ff0a4;
|
||||
@define-color green_2 #57e389;
|
||||
@define-color green_3 #33d17a;
|
||||
@define-color green_4 #2ec27e;
|
||||
@define-color green_5 #26a269;
|
||||
@define-color yellow_1 #f9f06b;
|
||||
@define-color yellow_2 #f8e45c;
|
||||
@define-color yellow_3 #f6d32d;
|
||||
@define-color yellow_4 #f5c211;
|
||||
@define-color yellow_5 #e5a50a;
|
||||
@define-color orange_1 #ffbe6f;
|
||||
@define-color orange_2 #ffa348;
|
||||
@define-color orange_3 #ff7800;
|
||||
@define-color orange_4 #e66100;
|
||||
@define-color orange_5 #c64600;
|
||||
@define-color red_1 #f66151;
|
||||
@define-color red_2 #ed333b;
|
||||
@define-color red_3 #e01b24;
|
||||
@define-color red_4 #c01c28;
|
||||
@define-color red_5 #a51d2d;
|
||||
@define-color purple_1 #dc8add;
|
||||
@define-color purple_2 #c061cb;
|
||||
@define-color purple_3 #9141ac;
|
||||
@define-color purple_4 #813d9c;
|
||||
@define-color purple_5 #613583;
|
||||
@define-color brown_1 #cdab8f;
|
||||
@define-color brown_2 #b5835a;
|
||||
@define-color brown_3 #986a44;
|
||||
@define-color brown_4 #865e3c;
|
||||
@define-color brown_5 #63452c;
|
||||
@define-color light_1 #ffffff;
|
||||
@define-color light_2 #f6f5f4;
|
||||
@define-color light_3 #deddda;
|
||||
@define-color light_4 #c0bfbc;
|
||||
@define-color light_5 #9a9996;
|
||||
@define-color dark_1 #77767b;
|
||||
@define-color dark_2 #5e5c64;
|
||||
@define-color dark_3 #3d3846;
|
||||
@define-color dark_4 #241f31;
|
||||
@define-color dark_5 #000000;
|
||||
|
||||
.navigation-sidebar {
|
||||
background-color: #1a1b26;
|
||||
}
|
||||
'';
|
||||
};
|
||||
}
|
||||
|
|
|
|||
|
|
@ -24,9 +24,6 @@ in
|
|||
xdg.configFile."qt5ct/qss/tab.qss" = {
|
||||
text = "${qss}";
|
||||
};
|
||||
xdg.configFile."qt6ct/qss/tab.qss" = {
|
||||
text = "${qss}";
|
||||
};
|
||||
xdg.configFile."qt5ct/qt5ct.conf" = {
|
||||
text =
|
||||
''
|
||||
|
|
|
|||
|
|
@ -3,7 +3,6 @@
|
|||
}:
|
||||
{
|
||||
home.packages = with pkgs; [
|
||||
rustdesk
|
||||
keepassxc
|
||||
nheko
|
||||
kdeconnect
|
||||
|
|
|
|||
|
|
@ -1,7 +1,5 @@
|
|||
|
||||
ncspot() {
|
||||
notify-send "$1"
|
||||
notify-send "$2"
|
||||
NUM=$(pactl list clients short | rg "ncspot" | awk -F 'PipeWire' ' { print $1 } ' | tr -d ' \t\n')
|
||||
CHANGE=$(pactl list sink-inputs short | rg "$NUM" | awk -F ' ' ' { print $1 }' | tr -d ' \t\n')
|
||||
pactl set-sink-input-volume "$CHANGE" "$1"
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue