Merge pull request #3 from DashieTM/nix

Nix
This commit is contained in:
Dashie 2024-05-12 23:29:50 +02:00 committed by GitHub
commit 61b7f6965b
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
47 changed files with 1500 additions and 1251 deletions

0
nix/.gitignore vendored Normal file
View file

View file

@ -1,5 +1,4 @@
{ config, pkgs, ... }: { config, pkgs, ... }:
{ {
environment.systemPackages = with pkgs; [ environment.systemPackages = with pkgs; [
openssl openssl
@ -23,6 +22,7 @@
morewaita-icon-theme morewaita-icon-theme
kdePackages.breeze-icons kdePackages.breeze-icons
gnome.seahorse gnome.seahorse
upower
]; ];
gtk.iconCache.enable = false; gtk.iconCache.enable = false;
@ -31,17 +31,21 @@
cantarell-fonts 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"; nix.settings.experimental-features = "nix-command flakes";
programs.fish.enable = true; programs.fish.enable = true;
programs.fish.promptInit = '' programs.fish.promptInit = ''
${pkgs.any-nix-shell}/bin/any-nix-shell fish --info-right | source ${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; programs.dconf.enable = true;
services.upower.enable = true;
services.printing.enable = true; services.printing.enable = true;
services.dbus.enable = true; services.dbus.enable = true;
services.dbus.packages = with pkgs; [ services.dbus.packages = with pkgs; [
@ -70,4 +74,5 @@
}; };
}; };
programs.ssh.startAgent = true; programs.ssh.startAgent = true;
} }

View file

@ -1,4 +1,4 @@
{ pkgs, ... }: { pkgs, config, ... }:
{ {
# Bootloader. # Bootloader.
boot.loader.systemd-boot.enable = true; boot.loader.systemd-boot.enable = true;
@ -42,33 +42,61 @@
DIRENV_LOG_FORMAT = ""; DIRENV_LOG_FORMAT = "";
}; };
nix.settings.trusted-users = [
"dashie"
];
# allows user change later on # allows user change later on
users.mutableUsers = true; users.mutableUsers = true;
users.users.dashie = { users.users.dashie = {
isNormalUser = true; isNormalUser = true;
description = "dashie"; description = "dashie";
extraGroups = [ "networkmanager" "wheel" "gamemode" ]; extraGroups = [ "networkmanager" "wheel" "gamemode" "docker" ];
packages = with pkgs; [ packages = with pkgs; [
home-manager home-manager
xdg-desktop-portal-gtk xdg-desktop-portal-gtk
xdg-desktop-portal-hyprland
]; ];
# this password will only last for the first login # 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 # e.g. login, then change to whatever else, this also ensures no public hash is available
password = "firstlogin"; 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"; 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;
} }

View file

@ -9,5 +9,8 @@
SUDO_EDITOR = "neovide --no-fork"; SUDO_EDITOR = "neovide --no-fork";
SCRIPTS = "$HOME/.config/scripts"; SCRIPTS = "$HOME/.config/scripts";
}; };
environment.sessionVariables.NIXOS_OZONE_WL = "1"; environment.sessionVariables = {
NIXOS_OZONE_WL = "1";
GOPATH = "$HOME/.go";
};
} }

View file

@ -1,53 +1,65 @@
{ pkgs { inputs
, lib
, config
, pkgs
, ... , ...
}: { }:
# greetd display manager let
services.greetd = regreet_override = pkgs.greetd.regreet.overrideAttrs (final: prev: {
let SESSION_DIRS = "${config.services.xserver.displayManager.sessionData.desktops}/share";
session = { });
command = "${pkgs.hyprland}/bin/Hyprland --config /home/dashie/.config/hypr/hyprgreet.conf"; session = {
user = "dashie"; command = "${lib.getExe pkgs.hyprland} --config /etc/greetd/hyprgreet.conf";
}; user = "dashie";
in };
in
{
imports = [
inputs.hyprland.nixosModules.default
];
services.xserver.displayManager.session = [
{ {
enable = true; manage = "desktop";
settings = { name = "Hyprland";
terminal.vt = 1; start = ''
default_session = session; ${lib.getExe pkgs.hyprland} & waitPID=$!
initial_session = session; '';
}; }
}; ];
programs.regreet = {
# greetd display manager
programs.hyprland.enable = true;
services.greetd = {
enable = true; enable = true;
settings = { settings = {
terminal.vt = 1;
background = { default_session = session;
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" ];
};
};
}; };
}; };
environment.etc."greetd/environments".text = '' environment.etc."greetd/environments".text = ''
Hyprland 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 # unlock GPG keyring on login
security.pam.services.greetd.enableGnomeKeyring = true; security.pam.services.greetd.enableGnomeKeyring = true;
} }

388
nix/flake.lock generated
View file

@ -4,20 +4,14 @@
"inputs": { "inputs": {
"hyprland": [ "hyprland": [
"hyprland" "hyprland"
],
"hyprlandPlugins": "hyprlandPlugins",
"nixpkgs": [
"Hyprspace",
"hyprland",
"nixpkgs"
] ]
}, },
"locked": { "locked": {
"lastModified": 1713113295, "lastModified": 1715376791,
"narHash": "sha256-3oivuUgU2B3zQIuop1lc+VXBOhqCnZMl81pFYdZu1oc=", "narHash": "sha256-QKecFhWAB7sagSE+FXztINDqYqLro2nYp94f+ZtE/f4=",
"owner": "KZDKM", "owner": "KZDKM",
"repo": "Hyprspace", "repo": "Hyprspace",
"rev": "046533d6fb0244874273254d4008cbdc48621829", "rev": "8049b2794ca19d49320093426677d8c2911e7327",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -29,16 +23,14 @@
"anyrun": { "anyrun": {
"inputs": { "inputs": {
"flake-parts": "flake-parts", "flake-parts": "flake-parts",
"nixpkgs": [ "nixpkgs": "nixpkgs"
"nixpkgs"
]
}, },
"locked": { "locked": {
"lastModified": 1712136515, "lastModified": 1713259062,
"narHash": "sha256-LpjQJYC24S5P5XhJsZX6HqsQT1pohcFzM6N42I6qo/U=", "narHash": "sha256-WTO84hUL8IlNuHDK2yOCeJ38EewFzGt5E0kzBjNWxa8=",
"owner": "Kirottu", "owner": "Kirottu",
"repo": "anyrun", "repo": "anyrun",
"rev": "be6728884d543665e7bd137bbef62dc1d04a210b", "rev": "f9d30e34fa4ccb2797c6becec37e8bcff6585d39",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -55,11 +47,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1711681752, "lastModified": 1713979152,
"narHash": "sha256-LEg6/dmEFxx6Ygti5DO9MOhGNpyB7zdxdWtzv/FCTXk=", "narHash": "sha256-apdecPuh8SOQnkEET/kW/UcfjCRb8JbV5BKjoH+DcP4=",
"owner": "ipetkov", "owner": "ipetkov",
"repo": "crane", "repo": "crane",
"rev": "ada0fb4dcce4561acb1eb17c59b7306d9d4a95f3", "rev": "a5eca68a2cf11adb32787fc141cddd29ac8eb79c",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -91,7 +83,25 @@
}, },
"flake-utils": { "flake-utils": {
"inputs": { "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": { "locked": {
"lastModified": 1705309234, "lastModified": 1705309234,
@ -114,11 +124,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1713077896, "lastModified": 1715380449,
"narHash": "sha256-Noot8H0EZEAFRQWyGxh9ryvhK96xpIqKbh78X447JWs=", "narHash": "sha256-716+f9Rj3wjSyD1xitCv2FcYbgPz1WIVDj+ZBclH99Y=",
"owner": "nix-community", "owner": "nix-community",
"repo": "home-manager", "repo": "home-manager",
"rev": "630a0992b3627c64e34f179fab68e3d48c6991c0", "rev": "d7682620185f213df384c363288093b486b2883f",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -143,11 +153,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1712434681, "lastModified": 1713612213,
"narHash": "sha256-qwmR2p1oc48Bj7gUDvb1oGL19Rjs2PmEmk4ChV01A5o=", "narHash": "sha256-zJboXgWNpNhKyNF8H/3UYzWkx7w00TOCGKi3cwi+tsw=",
"owner": "hyprwm", "owner": "hyprwm",
"repo": "hyprcursor", "repo": "hyprcursor",
"rev": "818d8c4b69e0997483d60b75f701fe14b561a7a3", "rev": "cab4746180f210a3c1dd3d53e45c510e309e90e1",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -159,38 +169,38 @@
"hyprland": { "hyprland": {
"inputs": { "inputs": {
"hyprcursor": "hyprcursor", "hyprcursor": "hyprcursor",
"hyprland-protocols": "hyprland-protocols",
"hyprlang": "hyprlang", "hyprlang": "hyprlang",
"nixpkgs": [ "hyprwayland-scanner": "hyprwayland-scanner",
"nixpkgs" "nixpkgs": "nixpkgs_2",
],
"systems": "systems", "systems": "systems",
"wlroots": "wlroots",
"xdph": "xdph" "xdph": "xdph"
}, },
"locked": { "locked": {
"lastModified": 1713126795, "lastModified": 1715448710,
"narHash": "sha256-IX9N+WMMcdBsxjQFLHjBCwXByMt+0S8sL18dQ2QTzvI=", "narHash": "sha256-ntVaQOHnfejEiqHUY07kWrytdXVlXtg1RLv65T9w2/c=",
"owner": "hyprwm", "ref": "refs/heads/main",
"repo": "Hyprland", "rev": "494b9415a1157279a1e1782ba635fc2ef6a18155",
"rev": "67f47fbdccd639502a76ccb3552a23df37f19ef8", "revCount": 4668,
"type": "github" "submodules": true,
"type": "git",
"url": "https://github.com/hyprwm/Hyprland"
}, },
"original": { "original": {
"owner": "hyprwm", "submodules": true,
"repo": "Hyprland", "type": "git",
"rev": "67f47fbdccd639502a76ccb3552a23df37f19ef8", "url": "https://github.com/hyprwm/Hyprland"
"type": "github"
} }
}, },
"hyprland-protocols": { "hyprland-protocols": {
"inputs": { "inputs": {
"nixpkgs": [ "nixpkgs": [
"hyprland", "hyprland",
"xdph",
"nixpkgs" "nixpkgs"
], ],
"systems": [ "systems": [
"hyprland", "hyprland",
"xdph",
"systems" "systems"
] ]
}, },
@ -208,33 +218,6 @@
"type": "github" "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": { "hyprlang": {
"inputs": { "inputs": {
"nixpkgs": [ "nixpkgs": [
@ -247,11 +230,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1711671891, "lastModified": 1713121246,
"narHash": "sha256-C/Wwsy/RLxHP1axFFl+AnwJRWfd8gxDKKoa8nt8Qk3c=", "narHash": "sha256-502X0Q0fhN6tJK7iEUA8CghONKSatW/Mqj4Wappd++0=",
"owner": "hyprwm", "owner": "hyprwm",
"repo": "hyprlang", "repo": "hyprlang",
"rev": "c1402612146ba06606ebf64963a02bc1efe11e74", "rev": "78fcaa27ae9e1d782faa3ff06c8ea55ddce63706",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -260,21 +243,86 @@
"type": "github" "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": { "ironbar": {
"inputs": { "inputs": {
"crane": "crane", "crane": "crane",
"naersk": "naersk", "naersk": "naersk",
"nixpkgs": [ "nixpkgs": "nixpkgs_5",
"nixpkgs"
],
"rust-overlay": "rust-overlay" "rust-overlay": "rust-overlay"
}, },
"locked": { "locked": {
"lastModified": 1713218218, "lastModified": 1715272723,
"narHash": "sha256-f2GOHnoLe9PeVI0Itvm0RVPxc102ZdHabNDYUxoL/RY=", "narHash": "sha256-/pHq16sUYKOpwtSDDlnQ3M3lBy9abQq39UNSzadFd8w=",
"owner": "JakeStanger", "owner": "JakeStanger",
"repo": "ironbar", "repo": "ironbar",
"rev": "3fea6e3254a8cda16b32443d1f8f3282218b07c5", "rev": "386955c1ea07869277b646c203f7b976d83db427",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -285,14 +333,14 @@
}, },
"naersk": { "naersk": {
"inputs": { "inputs": {
"nixpkgs": "nixpkgs" "nixpkgs": "nixpkgs_4"
}, },
"locked": { "locked": {
"lastModified": 1698420672, "lastModified": 1713520724,
"narHash": "sha256-/TdeHMPRjjdJub7p7+w55vyABrsJlt5QkznPYy55vKA=", "narHash": "sha256-CO8MmVDmqZX2FovL75pu5BvwhW+Vugc7Q6ze7Hj8heI=",
"owner": "nix-community", "owner": "nix-community",
"repo": "naersk", "repo": "naersk",
"rev": "aeb58d5e8faead8980a807c840232697982d47b9", "rev": "c5037590290c6c7dae2e42e7da1e247e54ed2d49",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -318,11 +366,59 @@
}, },
"nixpkgs": { "nixpkgs": {
"locked": { "locked": {
"lastModified": 1711715736, "lastModified": 1696193975,
"narHash": "sha256-9slQ609YqT9bT/MNX9+5k5jltL9zgpn36DpFB7TkttM=", "narHash": "sha256-mnQjUcYgp9Guu3RNVAB2Srr1TqKcPpRXmJf4LJk6KRY=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "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" "type": "github"
}, },
"original": { "original": {
@ -330,17 +426,50 @@
"type": "indirect" "type": "indirect"
} }
}, },
"nixpkgs_2": { "nixpkgs_5": {
"locked": { "locked": {
"lastModified": 1713625742, "lastModified": 1714253743,
"narHash": "sha256-8MD2uCuGs0v09S/sLR8xC0gYXk6RFSwWdyqYyTpCnes=", "narHash": "sha256-mdTQw2XlariysyScCv2tTE45QSU9v/ezLcHJ22f0Nxc=",
"owner": "nixos", "owner": "nixos",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "141867ab45d3f1dba928d61dea643bd5a98778fb", "rev": "58a1abdbae3217ca6b702f03d3b35125d88a2994",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "nixos", "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", "repo": "nixpkgs",
"type": "github" "type": "github"
} }
@ -351,9 +480,11 @@
"anyrun": "anyrun", "anyrun": "anyrun",
"home-manager": "home-manager", "home-manager": "home-manager",
"hyprland": "hyprland", "hyprland": "hyprland",
"hyprlock": "hyprlock",
"ironbar": "ironbar", "ironbar": "ironbar",
"nix-flatpak": "nix-flatpak", "nix-flatpak": "nix-flatpak",
"nixpkgs": "nixpkgs_2" "nixpkgs": "nixpkgs_6",
"rust-overlay": "rust-overlay_2"
} }
}, },
"rust-overlay": { "rust-overlay": {
@ -365,11 +496,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1711851236, "lastModified": 1714443211,
"narHash": "sha256-EJ03x3N9ihhonAttkaCrqxb0djDq3URCuDpmVPbNZhA=", "narHash": "sha256-lKTA3XqRo4aVgkyTSCtpcALpGXdmkilHTtN00eRg0QU=",
"owner": "oxalica", "owner": "oxalica",
"repo": "rust-overlay", "repo": "rust-overlay",
"rev": "f258266af947599e8069df1c2e933189270f143a", "rev": "ce35c36f58f82cee6ec959e0d44c587d64281b6f",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -378,6 +509,22 @@
"type": "github" "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": { "systems": {
"locked": { "locked": {
"lastModified": 1689347949, "lastModified": 1689347949,
@ -394,6 +541,36 @@
} }
}, },
"systems_2": { "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": { "locked": {
"lastModified": 1681028828, "lastModified": 1681028828,
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
@ -408,29 +585,24 @@
"type": "github" "type": "github"
} }
}, },
"wlroots": { "systems_5": {
"flake": false,
"locked": { "locked": {
"lastModified": 1713124002, "lastModified": 1681028828,
"narHash": "sha256-vPeZCY+sdiGsz4fl3AVVujfyZyQBz6+vZdkUE4hQ+HI=", "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
"owner": "hyprwm", "owner": "nix-systems",
"repo": "wlroots-hyprland", "repo": "default",
"rev": "611a4f24cd2384378f6e500253983107c6656c64", "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "hyprwm", "owner": "nix-systems",
"repo": "wlroots-hyprland", "repo": "default",
"rev": "611a4f24cd2384378f6e500253983107c6656c64",
"type": "github" "type": "github"
} }
}, },
"xdph": { "xdph": {
"inputs": { "inputs": {
"hyprland-protocols": [ "hyprland-protocols": "hyprland-protocols",
"hyprland",
"hyprland-protocols"
],
"hyprlang": [ "hyprlang": [
"hyprland", "hyprland",
"hyprlang" "hyprlang"
@ -445,11 +617,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1709299639, "lastModified": 1714662532,
"narHash": "sha256-jYqJM5khksLIbqSxCLUUcqEgI+O2LdlSlcMEBs39CAU=", "narHash": "sha256-Pj2xGSYhapYbXL7sk7TTlOtCZcTfPQoL3fPbZeg7L4Y=",
"owner": "hyprwm", "owner": "hyprwm",
"repo": "xdg-desktop-portal-hyprland", "repo": "xdg-desktop-portal-hyprland",
"rev": "2d2fb547178ec025da643db57d40a971507b82fe", "rev": "1f228ba2f1f254195c0b571302b37482861abee3",
"type": "github" "type": "github"
}, },
"original": { "original": {

View file

@ -3,27 +3,35 @@
inputs = inputs =
{ {
nix-flatpak.url = "github:gmodena/nix-flatpak"; nixpkgs.url = "github:NixOs/nixpkgs/nixos-unstable";
nixpkgs.url = "github:nixos/nixpkgs";
nix-flatpak = {
url = "github:gmodena/nix-flatpak";
};
home-manager = { home-manager = {
url = "github:nix-community/home-manager"; url = "github:nix-community/home-manager";
inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs.follows = "nixpkgs";
}; };
hyprland = {
url = "github:hyprwm/Hyprland/67f47fbdccd639502a76ccb3552a23df37f19ef8"; hyprland.url = "git+https://github.com/hyprwm/Hyprland?submodules=1";
inputs.nixpkgs.follows = "nixpkgs";
}; hyprlock.url = "github:hyprwm/hyprlock";
Hyprspace = { Hyprspace = {
url = "github:KZDKM/Hyprspace"; url = "github:KZDKM/Hyprspace";
inputs.hyprland.follows = "hyprland"; inputs.hyprland.follows = "hyprland";
}; };
ironbar = { ironbar = {
url = "github:JakeStanger/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.url = "github:Kirottu/anyrun";
anyrun.inputs.nixpkgs.follows = "nixpkgs";
}; };
outputs = { ... }@inputs: outputs = { ... }@inputs:
@ -35,10 +43,9 @@
}; };
overlays = [ overlays = [
# because allowing rust nightly is too hard by default.... # because allowing rust nightly is too hard by default....
(import (fetchTarball { (import
url = "https://github.com/oxalica/rust-overlay/archive/master.tar.gz"; inputs.rust-overlay
sha256 = "sha256:02p0zzglgi3980iyam46wv8ajr83wj6myjhrjjfv96vkafl6pycg"; )
}))
]; ];
}; };
base_imports = [ base_imports = [
@ -48,14 +55,15 @@
]; ];
in in
{ {
homeConfigurations."marmo" = inputs.home-manager.lib.homeManagerConfiguration { nixosConfigurations."marmo" = inputs.nixpkgs.lib.nixosSystem {
specialArgs = { specialArgs = {
inherit inputs pkgs; inherit inputs pkgs;
mod = ./hardware/overheating/base_config.nix; mod = ./hardware/marmo/base_config.nix;
}; };
modules = [ modules = [
./hardware/marmo/default.nix ./hardware/marmo/default.nix
]; ./programs/gaming/default.nix
] ++ base_imports;
}; };
nixosConfigurations."overheating" = inputs.nixpkgs.lib.nixosSystem { nixosConfigurations."overheating" = inputs.nixpkgs.lib.nixosSystem {
specialArgs = { specialArgs = {
@ -64,7 +72,7 @@
}; };
modules = [ modules = [
./hardware/overheating/default.nix ./hardware/overheating/default.nix
]; ] ++ base_imports;
}; };
nixosConfigurations."spaceship" = inputs.nixpkgs.lib.nixosSystem { nixosConfigurations."spaceship" = inputs.nixpkgs.lib.nixosSystem {
specialArgs = { specialArgs = {
@ -78,4 +86,18 @@
] ++ base_imports; ] ++ 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="
];
};
} }

View file

@ -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";
}

View file

@ -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;
};
}

View file

@ -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;
}

View file

@ -10,4 +10,7 @@
",highrr,auto,1" ",highrr,auto,1"
]; ];
programs.ironbar.monitor = "eDP-1"; programs.ironbar.monitor = "eDP-1";
programs.ironbar.battery = [
{ type = "upower"; class = "memory-usage"; }
];
} }

View file

@ -5,43 +5,10 @@
(modulesPath + "/installer/scan/not-detected.nix") (modulesPath + "/installer/scan/not-detected.nix")
]; ];
boot.initrd.availableKernelModules = [ "nvme" "xhci_pci" "ahci" "usbhid" "usb_storage" "sd_mod" ];
boot.initrd.kernelModules = [ ]; boot.initrd.kernelModules = [ ];
boot.kernelModules = [ "kvm-amd" ]; boot.kernelModules = [ "kvm-amd" ];
boot.extraModulePackages = [ ]; 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 # Enables DHCP on each ethernet and wireless interface. In case of scripted networking
# (the default) this is the recommended approach. When using systemd-networkd it's # (the default) this is the recommended approach. When using systemd-networkd it's
# still possible to use this option, but it's recommended to use it in conjunction # still possible to use this option, but it's recommended to use it in conjunction

View file

@ -43,5 +43,5 @@
wallpaper = HDMI-A-1,/home/dashie/Pictures/backgrounds/shinobu_1200.jpg wallpaper = HDMI-A-1,/home/dashie/Pictures/backgrounds/shinobu_1200.jpg
splash = true splash = true
''; '';
programs.hyprland.extra_autostart= [ "streamdeck -n" ]; programs.hyprland.extra_autostart = [ "streamdeck -n" ];
} }

View file

@ -1,8 +1,35 @@
{ pkgs, ... }: { pkgs, lib, ... }:
{ {
boot.kernelPackages = pkgs.linuxPackages_zen; imports = [
boot.kernelParams = [ ../../modules/gamemode.nix
../../modules/boot_params.nix
../../modules/ironbar_config.nix
];
boot.kernelPackages = pkgs.linuxPackages_xanmod_latest;
programs.boot.boot_params = [
"amdgpu.ppfeaturemask=0xffffffff" "amdgpu.ppfeaturemask=0xffffffff"
]; ];
networking.hostName = "spaceship"; 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";
} }

View file

@ -5,40 +5,10 @@
(modulesPath + "/installer/scan/not-detected.nix") (modulesPath + "/installer/scan/not-detected.nix")
]; ];
boot.initrd.availableKernelModules = [ "nvme" "xhci_pci" "ahci" "usbhid" "usb_storage" "sd_mod" ];
boot.initrd.kernelModules = [ ]; boot.initrd.kernelModules = [ ];
boot.kernelModules = [ "kvm-amd" ]; boot.kernelModules = [ "kvm-amd" ];
boot.extraModulePackages = [ ]; 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" = fileSystems."/drive2" =
{ {
device = "/dev/disk/by-label/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 # Enables DHCP on each ethernet and wireless interface. In case of scripted networking
# (the default) this is the recommended approach. When using systemd-networkd it's # (the default) this is the recommended approach. When using systemd-networkd it's
# still possible to use this option, but it's recommended to use it in conjunction # still possible to use this option, but it's recommended to use it in conjunction

View 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
View file

@ -0,0 +1,11 @@
{ lib, ... }: {
options.programs.gamemode = {
device = lib.mkOption {
default = 0;
example = 0;
description = ''
GPU device number
'';
};
};
}

View file

@ -8,5 +8,10 @@
Extra settings for foo. Extra settings for foo.
''; '';
}; };
battery = lib.mkOption {
default = [];
example = [];
};
}; };
} }

View 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;
};
}

View file

@ -32,7 +32,6 @@ rustPlatform.buildRustPackage rec {
libadwaita libadwaita
]; ];
postInstall = '' postInstall = ''
install -D --mode=444 $src/${pname}.desktop $out/share/applications/${pname}.desktop install -D --mode=444 $src/${pname}.desktop $out/share/applications/${pname}.desktop
install -D --mode=444 $src/${pname}.svg $out/share/pixmaps/${pname}.svg install -D --mode=444 $src/${pname}.svg $out/share/pixmaps/${pname}.svg

53
nix/override/reset.nix Normal file
View 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";
};
}

View file

@ -19,7 +19,7 @@ python3Packages.buildPythonApplication rec {
patches = [ patches = [
# nixpkgs has a newer pillow version # nixpkgs has a newer pillow version
./streamdeck_path.patch ./streamdeck.patch
]; ];
desktopItems = desktopItems =

View file

@ -1,8 +1,13 @@
diff --git a/pyproject.toml b/pyproject.toml diff --git a/pyproject.toml b/pyproject.toml
index 54a8c19..f107170 100644 index 54a8c19..0b95fb3 100644
--- a/pyproject.toml --- a/pyproject.toml
+++ b/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" pyside6 = "^6.4.2"
CairoSVG = "^2.5.2" CairoSVG = "^2.5.2"
filetype = "^1.0.10" filetype = "^1.0.10"

View file

@ -7,23 +7,62 @@
]; ];
home.packages = with pkgs; [ home.packages = with pkgs; [
#basics
git git
gcc gcc
meson meson
ninja ninja
rustup
go
nodejs_20
deno
python3
typst
neovide
tree-sitter tree-sitter
dotnet-runtime_8
unzip unzip
pkg-config pkg-config
sqlite sqlite
plantuml plantuml
d-spy
#editors
neovide
##fallback
vscodium 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
]; ];
} }

View file

@ -26,8 +26,6 @@ in
flatpak flatpak
networkmanager networkmanager
zoxide zoxide
pkgs.greetd.greetd
pkgs.greetd.regreet
fastfetch fastfetch
pkgs.gnome.gnome-keyring pkgs.gnome.gnome-keyring
dbus dbus
@ -42,11 +40,13 @@ in
zenith zenith
nh nh
amberol amberol
satty
pulseaudio pulseaudio
playerctl playerctl
ncspot ncspot
poppler_utils poppler_utils
neofetch
brave
greetd.regreet
(callPackage (callPackage
../override/oxinoti.nix ../override/oxinoti.nix
{ }) { })
@ -65,6 +65,12 @@ in
(callPackage (callPackage
../override/streamdeck.nix ../override/streamdeck.nix
{ }) { })
(callPackage
../override/reset.nix
{ })
(callPackage
../override/cambalache.nix
{ })
]; ];
home.username = "dashie"; home.username = "dashie";

View file

@ -2,19 +2,10 @@
let let
base_imports = [ base_imports = [
inputs.hyprland.homeManagerModules.default inputs.hyprland.homeManagerModules.default
inputs.hyprlock.homeManagerModules.default
inputs.anyrun.homeManagerModules.default inputs.anyrun.homeManagerModules.default
inputs.ironbar.homeManagerModules.default inputs.ironbar.homeManagerModules.default
inputs.nix-flatpak.homeManagerModules.nix-flatpak 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 in
{ {
@ -22,16 +13,30 @@ in
xdg.portal = { xdg.portal = {
enable = true; enable = true;
extraPortals = [ extraPortals = [
pkgs.xdg-desktop-portal-hyprland
pkgs.xdg-desktop-portal-gtk pkgs.xdg-desktop-portal-gtk
]; ];
}; };
home-manager.useGlobalPkgs = true; home-manager.useGlobalPkgs = true;
home-manager.useUserPackages = true; home-manager.useUserPackages = true;
home-manager.users.dashie.imports = [
{ home-manager.users.dashie = {
_module = { args = { inherit inputs; }; }; #home-manager overlap -> use flake instead
} disabledModules = [ "programs/hyprlock.nix" ];
mod imports = [
] ++ base_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;
};
} }

View file

@ -6,12 +6,9 @@
}]; }];
services.flatpak.uninstallUnmanaged = true; services.flatpak.uninstallUnmanaged = true;
services.flatpak.packages = [ services.flatpak.packages = [
# fallback if necessary, but generally avoided as nix is superior :)
"com.github.tchx84.Flatseal" "com.github.tchx84.Flatseal"
"io.github.Foldex.AdwSteamGtk" "io.github.Foldex.AdwSteamGtk"
"org.gnome.dspy"
"org.onlyoffice.desktopeditors"
"org.gtk.Gtk3theme.adw-gtk3"
"com.brave.Browser"
]; ];
} }

View file

@ -1,4 +1,5 @@
{ pkgs { pkgs
, config
, ... , ...
}: { }: {
imports = [ imports = [
@ -11,6 +12,7 @@
steam steam
lutris lutris
wine wine
adwsteamgtk
]; ];
programs.steam.enable = true; programs.steam.enable = true;
@ -23,7 +25,7 @@
}; };
gpu = { gpu = {
apply_gpu_optimisations = "accept-responsibility"; apply_gpu_optimisations = "accept-responsibility";
gpu_device = 0; gpu_device = config.programs.gamemode.device;
amd_performance_level = "high"; amd_performance_level = "high";
}; };
custom = { custom = {

View file

@ -30,7 +30,7 @@
"$mod SUPER,G,exec,oxicalc" "$mod SUPER,G,exec,oxicalc"
"$mod SUPER,D,exec,oxishut" "$mod SUPER,D,exec,oxishut"
"$mod SUPER,A,exec,oxipaste" "$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 # media keys
",XF86AudioMute,exec, $HOME/.config/scripts/audio_control.sh mute" ",XF86AudioMute,exec, $HOME/.config/scripts/audio_control.sh mute"
@ -166,6 +166,10 @@
disable_splash_rendering = true; disable_splash_rendering = true;
disable_hyprland_logo = true; disable_hyprland_logo = true;
swallow_regex = "^(.*)(kitty)(.*)$"; swallow_regex = "^(.*)(kitty)(.*)$";
initial_workspace_tracking = 1;
};
cursor = {
# conversion seems to be borked right now, i want a smooth bibata :( # conversion seems to be borked right now, i want a smooth bibata :(
enable_hyprcursor = false; enable_hyprcursor = false;
}; };
@ -185,7 +189,7 @@
"XCURSOR_THEME,Bibata-Modern-Classic" "XCURSOR_THEME,Bibata-Modern-Classic"
"XCURSOR_SIZE,24" "XCURSOR_SIZE,24"
"QT_QPA_PLATFORM,wayland" "QT_QPA_PLATFORM,wayland"
"QT_QPA_PLATFORMTHEME = \"qt5ct\"" "QT_QPA_PLATFORMTHEME,qt5ct"
"QT_WAYLAND_FORCE_DPI,96" "QT_WAYLAND_FORCE_DPI,96"
"QT_AUTO_SCREEN_SCALE_FACTOR,0" "QT_AUTO_SCREEN_SCALE_FACTOR,0"
"QT_WAYLAND_DISABLE_WINDOWDECORATION,1" "QT_WAYLAND_DISABLE_WINDOWDECORATION,1"
@ -243,15 +247,15 @@
"oxinoti" "oxinoti"
] ++ config.programs.hyprland.extra_autostart; ] ++ config.programs.hyprland.extra_autostart;
plugin = { #plugin = {
hyprspace = { # hyprspace = {
bind = [ # bind = [
"SUPER, W, overview:toggle, toggle" # "SUPER, W, overview:toggle, toggle"
]; # ];
}; # };
}; #};
}; };
wayland.windowManager.hyprland.plugins = [ #wayland.windowManager.hyprland.plugins = [
inputs.Hyprspace.packages.${pkgs.system}.Hyprspace # inputs.Hyprspace.packages.${pkgs.system}.Hyprspace
]; #];
} }

View file

@ -1,4 +1,5 @@
{ pkgs { inputs
, pkgs
, ... , ...
}: { }: {
imports = [ imports = [
@ -6,22 +7,20 @@
./config.nix ./config.nix
./ironbar.nix ./ironbar.nix
./hyprpaper.nix ./hyprpaper.nix
./hyprgreet.nix ./hyprlock.nix
]; ];
home.packages = with pkgs; [ home.packages = with pkgs; [
xorg.xprop xorg.xprop
grim grim
slurp slurp
swappy satty
xdg-desktop-portal-gtk xdg-desktop-portal-gtk
xdg-desktop-portal-hyprland # xdg-desktop-portal-hyprland
hyprpaper
copyq copyq
gnome.nautilus gnome.nautilus
gnome.sushi gnome.sushi
wl-clipboard wl-clipboard
kooha
hyprcursor hyprcursor
hyprpaper hyprpaper
hyprpicker hyprpicker

View file

@ -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
'';
};
}

View 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";
}
];
};
}

View file

@ -142,7 +142,7 @@
]; ];
config = { config = {
monitors."${config.programs.ironbar.monitor}" = { monitors."${config.programs.ironbar.monitor}" = {
end = [ end = config.programs.ironbar.battery ++ [
{ {
type = "sys_info"; type = "sys_info";
format = [ format = [

View file

@ -14,6 +14,7 @@
zathura zathura
evince evince
libreoffice-fresh libreoffice-fresh
onlyoffice-bin
pdftk pdftk
# spotify # spotify
#ncspot #ncspot
@ -23,7 +24,9 @@
inkscape inkscape
gimp gimp
krita krita
# recording ];
obs-studio programs.obs-studio.enable = true;
programs.obs-studio.plugins = with pkgs; [
obs-studio-plugins.obs-vaapi
]; ];
} }

View file

@ -60,12 +60,17 @@
nvim-lspconfig nvim-lspconfig
nvim-notify nvim-notify
nvim-spectre nvim-spectre
nvim-treesitter nvim-treesitter.withAllGrammars
nvim-treesitter-context nvim-treesitter-context
nvim-treesitter-textobjects nvim-treesitter-textobjects
nvim-ts-autotag nvim-ts-autotag
nvim-ts-context-commentstring nvim-ts-context-commentstring
nvim-web-devicons nvim-web-devicons
nvim-jdtls
omnisharp-extended-lsp-nvim
neotest
neotest-java
neotest-rust
persistence-nvim persistence-nvim
plenary-nvim plenary-nvim
telescope-fzf-native-nvim telescope-fzf-native-nvim
@ -97,6 +102,18 @@
defaults = { defaults = {
lazy = true, lazy = true,
}, },
performance = {
rtp = {
disabled_plugins = {
"gzip",
"netrw",
"tarPlugin",
"tohtml",
"tutor",
"zipPlugin",
},
},
},
dev = { dev = {
-- reuse files from pkgs.vimPlugins.* -- reuse files from pkgs.vimPlugins.*
path = "${lazyPath}", path = "${lazyPath}",
@ -107,8 +124,6 @@
spec = { spec = {
{ "LazyVim/LazyVim", import = "lazyvim.plugins" }, { "LazyVim/LazyVim", import = "lazyvim.plugins" },
{ import = "lazyvim.plugins.extras.ui.alpha" }, { import = "lazyvim.plugins.extras.ui.alpha" },
{ import = "plugins" },
{ import = "plugins.plugins" },
{ import = "lazyvim.plugins.extras.lang.rust" }, { import = "lazyvim.plugins.extras.lang.rust" },
{ import = "lazyvim.plugins.extras.lang.tailwind" }, { import = "lazyvim.plugins.extras.lang.tailwind" },
{ import = "lazyvim.plugins.extras.lang.java" }, { import = "lazyvim.plugins.extras.lang.java" },
@ -127,27 +142,15 @@
{ "nvim-telescope/telescope-fzf-native.nvim", enabled = true }, { "nvim-telescope/telescope-fzf-native.nvim", enabled = true },
-- disable mason.nvim, use programs.neovim.extraPackages -- disable mason.nvim, use programs.neovim.extraPackages
{ "williamboman/mason-lspconfig.nvim", enabled = false }, { "williamboman/mason-lspconfig.nvim", enabled = false },
{ "williamboman/mason.nvim", enabled = false }, --{ "williamboman/mason.nvim", enabled = false },
-- import/override with your plugins
{ import = "plugins" },
-- treesitter handled by xdg.configFile."nvim/parser", put this line at the end of spec to clear ensure_installed -- 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 = {} } }, { "nvim-treesitter/nvim-treesitter", opts = { ensure_installed = {} } },
{ import = "plugins" },
{ import = "plugins.plugins" },
}, },
install = { colorscheme = { "tokyonight" } }, install = { colorscheme = { "tokyonight" } },
checker = { enabled = true, notify = false }, checker = { enabled = true, notify = false },
change_detection = { 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 let
parsers = pkgs.symlinkJoin { parsers = pkgs.symlinkJoin {
name = "treesitter-parsers"; name = "treesitter-parsers";
paths = (pkgs.vimPlugins.nvim-treesitter.withPlugins (plugins: with plugins; [ paths = (pkgs.vimPlugins.nvim-treesitter.withAllGrammars).dependencies;
c
lua
])).dependencies;
}; };
in in
"${parsers}/parser"; "${parsers}/parser";
# Normal LazyVim config here, see https://github.com/LazyVim/starter/tree/main/lua # Normal LazyVim config here, see https://github.com/LazyVim/starter/tree/main/lua
xdg.configFile."nvim/lua".source = ./lua; xdg.configFile."nvim/lua".source = ./lua;
xdg.configFile."nvim/ftplugin".source = ./ftplugin;
} }

View 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)

View 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 })

View file

@ -1,14 +1,14 @@
local Util = require("lazyvim.util") local Util = require("lazyvim.util")
local function map(mode, lhs, rhs, opts) local function map(mode, lhs, rhs, opts)
local keys = require("lazy.core.handler").handlers.keys local keys = require("lazy.core.handler").handlers.keys
---@cast keys LazyKeysHandler ---@cast keys LazyKeysHandler
-- do not create the map if a lazy keys handler exists -- do not create the map if a lazy keys handler exists
if not keys.active[keys.parse({ lhs, mode = mode }).id] then if not keys.active[keys.parse({ lhs, mode = mode }).id] then
opts = opts or {} opts = opts or {}
opts.silent = opts.silent ~= false opts.silent = opts.silent ~= false
vim.keymap.set(mode, lhs, rhs, opts) vim.keymap.set(mode, lhs, rhs, opts)
end end
end end
local opts = { noremap = true, silent = true } local opts = { noremap = true, silent = true }
local term_opts = { 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>di", ':lua require("dap").step_into()<CR>', { desc = "Step into" })
map("n", "<leader>dc", ':lua require("dap").continue()<CR>', { desc = "Continue" }) map("n", "<leader>dc", ':lua require("dap").continue()<CR>', { desc = "Continue" })
map("n", "<leader>du", function() map("n", "<leader>du", function()
require("dapui").toggle() require("dapui").toggle()
end, { desc = "Toggle DAP UI" }) end, { desc = "Toggle DAP UI" })
map("n", "<leader>de", function() map("n", "<leader>de", function()
require("dapui").eval() require("dapui").eval()
end, { desc = "DAP Eval" }) end, { desc = "DAP Eval" })
-- window movement -- window movement
@ -48,7 +48,7 @@ map("i", "<A-k>", [[<Cmd>wincmd j<CR>]], opts)
-- toggle terminal -- toggle terminal
local lazyterm = function() 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 end
map("n", "<c-t>", lazyterm, { desc = "Terminal (root dir)" }) map("n", "<c-t>", lazyterm, { desc = "Terminal (root dir)" })
map("t", "<c-t>", "<cmd>close<cr>", { desc = "Hide Terminal" }) map("t", "<c-t>", "<cmd>close<cr>", { desc = "Hide Terminal" })
@ -65,70 +65,70 @@ map("n", "<F2>", ":BufferLineCycleNext<CR>", opts)
-- git -- git
map("n", "<leader>gq", function() map("n", "<leader>gq", function()
require("telescope.builtin").git_commits() require("telescope.builtin").git_commits()
end, { desc = "Commits" }) end, { desc = "Commits" })
map("n", "<leader>gw", function() map("n", "<leader>gw", function()
require("telescope.builtin").git_bcommits() require("telescope.builtin").git_bcommits()
end, { desc = "Commits in branch" }) end, { desc = "Commits in branch" })
map("n", "<leader>gb", function() map("n", "<leader>gb", function()
require("telescope.builtin").git_branches() require("telescope.builtin").git_branches()
end, { desc = "Branches" }) end, { desc = "Branches" })
map("n", "<leader>gr", function() map("n", "<leader>gr", function()
require("telescope.builtin").git_status() require("telescope.builtin").git_status()
end, { desc = "Git status" }) end, { desc = "Git status" })
map("n", "<leader>ga", function() map("n", "<leader>ga", function()
require("telescope.builtin").git_stash() require("telescope.builtin").git_stash()
end, { desc = "Git stash" }) end, { desc = "Git stash" })
map("n", "<leader>gg", function() map("n", "<leader>gg", function()
Util.terminal({ "gitui" }, { cwd = Util.root() }) Util.terminal({ "gitui" }, { cwd = Util.root() })
end, { desc = "gitui (root dir)" }) end, { desc = "gitui (root dir)" })
map("n", "<leader>gG", function() map("n", "<leader>gG", function()
Util.terminal({ "gitui" }) Util.terminal({ "gitui" })
end, { desc = "gitui (cwd)" }) end, { desc = "gitui (cwd)" })
map("n", "<leader>gB", function() map("n", "<leader>gB", function()
require("gitblame") require("gitblame")
vim.cmd(":GitBlameToggle") vim.cmd(":GitBlameToggle")
end, { desc = "git blame" }) end, { desc = "git blame" })
-- harpoon man -- harpoon man
map("n", "<leader>h1", function() map("n", "<leader>h1", function()
require("harpoon.ui").nav_file(1) require("harpoon.ui").nav_file(1)
end, { desc = "First Harpoon File" }) end, { desc = "First Harpoon File" })
map("n", "<leader>h2", function() map("n", "<leader>h2", function()
require("harpoon.ui").nav_file(2) require("harpoon.ui").nav_file(2)
end, { desc = "Second Harpoon File" }) end, { desc = "Second Harpoon File" })
map("n", "<leader>h3", function() map("n", "<leader>h3", function()
require("harpoon.ui").nav_file(3) require("harpoon.ui").nav_file(3)
end, { desc = "First Harpoon File" }) end, { desc = "First Harpoon File" })
map("n", "<leader>ha", function() map("n", "<leader>ha", function()
require("harpoon.mark").add_file() require("harpoon.mark").add_file()
end, { desc = "First Harpoon File" }) end, { desc = "First Harpoon File" })
map("n", "<leader>hd", function() map("n", "<leader>hd", function()
require("harpoon.mark").remove_file() require("harpoon.mark").remove_file()
end, { desc = "First Harpoon File" }) end, { desc = "First Harpoon File" })
map("n", "<leader>hm", ":Telescope harpoon marks<CR>", { noremap = true, silent = true, desc = "Show harpoon marks" }) map("n", "<leader>hm", ":Telescope harpoon marks<CR>", { noremap = true, silent = true, desc = "Show harpoon marks" })
-- telescope -- telescope
map("n", "<leader>fb", function() map("n", "<leader>fb", function()
require("telescope").extensions.file_browser.file_browser({}) require("telescope").extensions.file_browser.file_browser({})
end, { desc = "File Browser" }) end, { desc = "File Browser" })
map("n", "<leader>ff", function() map("n", "<leader>ff", function()
require("telescope.builtin").find_files() require("telescope.builtin").find_files()
end, { desc = "Find Files" }) end, { desc = "Find Files" })
map("n", "<leader>fg", function() map("n", "<leader>fg", function()
Live_grep_from_project_git_root() Live_grep_from_project_git_root()
end, { desc = "Live Grep (root)" }) end, { desc = "Live Grep (root)" })
map("n", "<leader>fG", function() map("n", "<leader>fG", function()
require("telescope.builtin").live_grep() require("telescope.builtin").live_grep()
end, { desc = "Live Grep (cwd)" }) end, { desc = "Live Grep (cwd)" })
map("n", "<leader>fh", function() map("n", "<leader>fh", function()
require("telescope.builtin").help_tags() require("telescope.builtin").help_tags()
end, { desc = "Help" }) end, { desc = "Help" })
map("n", "<leader>fp", function() map("n", "<leader>fp", function()
require("telescope").extensions.project.project({}) require("telescope").extensions.project.project({})
end, { noremap = true, silent = true, desc = "Projects" }) end, { noremap = true, silent = true, desc = "Projects" })
map("n", "<leader>z", function() map("n", "<leader>z", function()
require("telescope").extensions.zoxide.list({}) require("telescope").extensions.zoxide.list({})
end, { desc = "Zoxide" }) end, { desc = "Zoxide" })
-- neoscroll -- neoscroll
@ -142,13 +142,13 @@ map("n", "<leader>t", "<cmd>TroubleToggle<CR>", term_opts)
-- format -- format
map({ "n", "v" }, "<F4>", function() map({ "n", "v" }, "<F4>", function()
Util.format({ force = true }) Util.format({ force = true })
end, { desc = "Format" }) end, { desc = "Format" })
-- better yank -- better yank
function Better_yank(opts) function Better_yank(opts)
local current_line = unpack(vim.api.nvim_win_get_cursor(0)) local current_line = unpack(vim.api.nvim_win_get_cursor(0))
vim.api.nvim_command(current_line .. "," .. (opts.count - (current_line - 1)) .. "y") vim.api.nvim_command(current_line .. "," .. (opts.count - (current_line - 1)) .. "y")
end end
vim.api.nvim_create_user_command("BetterYank", Better_yank, { count = 1 }) vim.api.nvim_create_user_command("BetterYank", Better_yank, { count = 1 })
@ -156,8 +156,8 @@ map("n", "by", ":BetterYank<CR>", term_opts)
-- better delete -- better delete
function Better_delete(opts) function Better_delete(opts)
local current_line = unpack(vim.api.nvim_win_get_cursor(0)) local current_line = unpack(vim.api.nvim_win_get_cursor(0))
vim.api.nvim_command(current_line .. "," .. (opts.count - (current_line - 1)) .. "d") vim.api.nvim_command(current_line .. "," .. (opts.count - (current_line - 1)) .. "d")
end end
vim.api.nvim_create_user_command("BetterDelete", Better_delete, { count = 1 }) vim.api.nvim_create_user_command("BetterDelete", Better_delete, { count = 1 })
@ -165,13 +165,13 @@ map("n", "bd", ":BetterDelete<CR>", term_opts)
-- neovide zoom -- neovide zoom
local change_scale_factor = function(delta) 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 end
vim.keymap.set("n", "<C-=>", function() vim.keymap.set("n", "<C-=>", function()
change_scale_factor(1.25) change_scale_factor(1.25)
end) end)
vim.keymap.set("n", "<C-->", function() vim.keymap.set("n", "<C-->", function()
change_scale_factor(1 / 1.25) change_scale_factor(1 / 1.25)
end) end)
-- neovide paste -- 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 }) vim.api.nvim_set_keymap("i", "<C-S-V>", "<ESC>p<CR>I", { noremap = true, silent = true })
function Get_git_root() function Get_git_root()
local opts = {} local opts = {}
local function is_git_repo() local function is_git_repo()
vim.fn.system("git rev-parse --is-inside-work-tree") vim.fn.system("git rev-parse --is-inside-work-tree")
return vim.v.shell_error == 0 return vim.v.shell_error == 0
end end
if is_git_repo() then if is_git_repo() then
local dot_git_path = vim.fn.finddir(".git", ".;") local dot_git_path = vim.fn.finddir(".git", ".;")
local root = vim.fn.fnamemodify(dot_git_path, ":h") local root = vim.fn.fnamemodify(dot_git_path, ":h")
opts = { opts = {
cwd = root, cwd = root,
} }
end end
return opts return opts
end end
function Live_grep_from_project_git_root() function Live_grep_from_project_git_root()
local opts = Get_git_root() local opts = Get_git_root()
require("telescope.builtin").live_grep(opts) require("telescope.builtin").live_grep(opts)
end end

View file

@ -2,24 +2,32 @@
-- Default options that are always set: https://github.com/LazyVim/LazyVim/blob/main/lua/lazyvim/config/options.lua -- Default options that are always set: https://github.com/LazyVim/LazyVim/blob/main/lua/lazyvim/config/options.lua
-- Add any additional options here -- Add any additional options here
local options = { local options = {
fileencoding = "utf-8", fileencoding = "utf-8",
number = true, number = true,
showmode = true, showmode = true,
termguicolors = true, termguicolors = true,
spelllang = "en_us", spelllang = "en_us",
shell = "fish", shell = "fish",
relativenumber = false, relativenumber = false,
scrolloff = 5, scrolloff = 5,
scrolljump = 5, scrolljump = 5,
wrap = false, wrap = false,
} }
vim.filetype.add({
extension = {
typst = "typst",
typ = "typst",
},
})
vim.o.guifont = "JetBrainsMono Nerd Font:h14" vim.o.guifont = "JetBrainsMono Nerd Font:h14"
vim.g.neovide_refresh_rate_idle = 180 vim.g.neovide_refresh_rate_idle = 180
vim.g.neovide_refresh_rate_idle = 5 vim.g.neovide_refresh_rate_idle = 5
vim.g.neovide_hide_mouse_when_typing = true vim.g.neovide_hide_mouse_when_typing = true
vim.g.mkdp_browser = "/usr/bin/firefox" vim.g.mkdp_browser = "/usr/bin/firefox"
vim.g.mkdp_auto_start = 1 vim.g.mkdp_auto_start = 1
vim.g.loaded_netrw = 1
vim.g.loaded_netrwPlugin = 1
vim.g.autoformat = false vim.g.autoformat = false
for k, v in pairs(options) do for k, v in pairs(options) do
vim.opt[k] = v vim.opt[k] = v
end end

View file

@ -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",
},
},
},
}

View file

@ -5,4 +5,5 @@ return {
{ { "folke/noice.nvim", enabled = false } }, { { "folke/noice.nvim", enabled = false } },
{ { "nvimtools/none-ls.nvim", enabled = false } }, { { "nvimtools/none-ls.nvim", enabled = false } },
{ { "nvimdev/dashboard-nvim", enabled = false } }, { { "nvimdev/dashboard-nvim", enabled = false } },
{ { "nvim-neo-tree/neo-tree.nvim", enabled = false } },
} }

View file

@ -1,162 +1,169 @@
return { return {
{ {
"williamboman/mason.nvim", "williamboman/mason.nvim",
opts = { --opts = function()
ensure_installed = {}, -- return {
}, -- ensure_installed = {},
}, -- }
{ --end,
"neovim/nvim-lspconfig", },
---@class PluginLspOpts {
opts = { "neovim/nvim-lspconfig",
-- inlay_hints = { ---@class PluginLspOpts
-- enabled = true, opts = {
-- }, -- inlay_hints = {
format_notify = false, -- enabled = true,
-- LSP Server Settings -- },
---@type lspconfig.options format_notify = false,
servers = { -- LSP Server Settings
rust_analyzer = { ---@type lspconfig.options
mason = false, servers = {
}, rust_analyzer = {
marksman = { mason = false,
mason = false, },
}, marksman = {
clangd = { mason = false,
mason = false, },
}, clangd = {
jdtls = { mason = false,
mason = false, },
}, jdtls = {
gopls = { mason = false,
mason = false, },
}, gopls = {
pyright = { mason = false,
mason = false, },
}, pyright = {
ruff_lsp = { mason = false,
mason = false, },
}, ruff_lsp = {
texlab = { mason = false,
mason = false, },
}, texlab = {
taplo = { mason = false,
keys = { },
{ taplo = {
"K", keys = {
function() {
if vim.fn.expand("%:t") == "Cargo.toml" and require("crates").popup_available() then "K",
require("crates").show_popup() function()
else if vim.fn.expand("%:t") == "Cargo.toml" and require("crates").popup_available() then
vim.lsp.buf.hover() require("crates").show_popup()
end else
end, vim.lsp.buf.hover()
desc = "Show Crate Documentation", end
}, end,
}, desc = "Show Crate Documentation",
mason = false, },
}, },
bashls = { mason = false,
mason = false, },
}, bashls = {
ansiblels = { mason = false,
mason = false, },
}, ansiblels = {
typst_lsp = { mason = false,
settings = { },
experimentalFormatterMode = "on", omnisharp = {
exportPdf = "onSave", mason = false,
}, cmd = { "OmniSharp" },
mason = false, },
}, typst_lsp = {
nil_ls = { settings = {
settings = { experimentalFormatterMode = "on",
["nil"] = { exportPdf = "onSave",
formatting = { },
command = { "nixpkgs-fmt" }, mason = false,
}, },
}, nil_ls = {
}, settings = {
mason = false, ["nil"] = {
}, formatting = {
ltex = { command = { "nixpkgs-fmt" },
settings = { },
ltex = { },
checkFrequency = "save", },
}, mason = false,
}, },
filetypes = { ltex = {
"bib", settings = {
"gitcommit", ltex = {
"markdown", checkFrequency = "save",
"org", },
"plaintex", },
"rst", filetypes = {
"rnoweb", "bib",
"tex", "gitcommit",
"pandoc", "markdown",
"typst", "org",
"typ", "plaintex",
}, "rst",
mason = false, "rnoweb",
}, "tex",
sqlls = { "pandoc",
mason = false, "typst",
}, "typ",
lemminx = { },
mason = false, mason = false,
}, },
opencl_ls = { sqlls = {
mason = false, mason = false,
}, },
yamlls = { lemminx = {
mason = false, mason = false,
}, },
lua_ls = { opencl_ls = {
mason = false, mason = false,
{ },
Lua = { yamlls = {
workspace = { mason = false,
checkThirdParty = false, },
}, lua_ls = {
completion = { mason = false,
callSnippet = "Replace", {
}, 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 init = function()
end local keys = require("lazyvim.plugins.lsp.keymaps").get()
end, local my_keys = require("config.lsp-keymap").get()
}, local count = 0
{ for _ in pairs(my_keys) do
"stevearc/conform.nvim", keys[#keys + 1] = my_keys[count]
opts = { count = count + 1
keys = { end
{ end,
-- Customize or remove this keymap to your liking },
"<leader>cF", {
function() "stevearc/conform.nvim",
require("conform").format({ async = true, lsp_fallback = true }) opts = {
end, keys = {
mode = "", {
desc = "Format buffer", -- Customize or remove this keymap to your liking
}, "<leader>cF",
}, function()
formatters_by_ft = { require("conform").format({ async = true, lsp_fallback = true })
typst = { "typstfmt" }, end,
nix = { "nixpkgs-fmt" }, mode = "",
lua = { "stylua" }, desc = "Format buffer",
sh = { "shfmt" }, },
}, },
}, formatters_by_ft = {
}, typst = { "typstfmt" },
nix = { "nixpkgs-fmt" },
lua = { "stylua" },
sh = { "shfmt" },
cs = { "dotnet-csharpier" },
},
},
},
} }

View file

@ -1,255 +1,276 @@
local Util = require("lazyvim.util") local Util = require("lazyvim.util")
return { return {
{ {
"LazyVim/LazyVim", "LazyVim/LazyVim",
opts = { opts = {
colorscheme = "tokyonight-night", colorscheme = "tokyonight-night",
-- colorscheme = "catppuccin-mocha", -- colorscheme = "catppuccin-mocha",
}, },
}, },
{ {
"nvim-telescope/telescope.nvim", "nvim-telescope/telescope.nvim",
cmd = "Telescope", cmd = "Telescope",
keys = function() keys = function()
return {} return {}
end, end,
opts = { opts = {
defaults = { defaults = {
layout_strategy = "flex", layout_strategy = "flex",
layout_config = { layout_config = {
flex = { flex = {
height = 0.95, height = 0.95,
width = 0.95, width = 0.95,
flip_columns = 100, flip_columns = 100,
}, },
vertical = { preview_height = 0.5, preview_cutoff = 5 }, vertical = { preview_height = 0.5, preview_cutoff = 5 },
horizontal = { preview_width = 0.7, preview_cutoff = 99 }, horizontal = { preview_width = 0.7, preview_cutoff = 99 },
}, },
}, },
}, },
}, },
{ {
"nvim-telescope/telescope-project.nvim", "nvim-telescope/telescope-project.nvim",
lazy = true, lazy = true,
}, },
{ {
"nvim-telescope/telescope-file-browser.nvim", "nvim-telescope/telescope-file-browser.nvim",
lazy = true, lazy = true,
config = function() config = function()
require("telescope").load_extension("file_browser") require("telescope").load_extension("file_browser")
end, end,
}, },
{ {
"jvgrootveld/telescope-zoxide", "jvgrootveld/telescope-zoxide",
lazy = true, lazy = true,
config = function() config = function()
local z_utils = require("telescope._extensions.zoxide.utils") local z_utils = require("telescope._extensions.zoxide.utils")
local t = require("telescope") local t = require("telescope")
-- Configure the extension -- Configure the extension
t.setup({ t.setup({
extensions = { extensions = {
zoxide = { zoxide = {
prompt_title = "[ Queries ]", prompt_title = "[ Queries ]",
mappings = { mappings = {
default = { default = {
after_action = function(selection) after_action = function(selection)
print("Update to (" .. selection.z_score .. ") " .. selection.path) print("Update to (" .. selection.z_score .. ") " .. selection.path)
end, end,
}, },
["<C-s>"] = { ["<C-s>"] = {
before_action = function(selection) before_action = function(selection)
print("before C-s") print("before C-s")
end, end,
action = function(selection) action = function(selection)
vim.cmd("edit " .. selection.path) vim.cmd("edit " .. selection.path)
end, end,
}, },
["<C-q>"] = { action = z_utils.create_basic_command("split") }, ["<C-q>"] = { action = z_utils.create_basic_command("split") },
}, },
}, },
}, },
}) })
-- Load the extension -- Load the extension
t.load_extension("zoxide") t.load_extension("zoxide")
end, end,
}, },
{ {
"lervag/vimtex", "lervag/vimtex",
config = function() config = function()
vim.cmd("let g:vimtex_quickfix_mode=0") vim.cmd("let g:vimtex_quickfix_mode=0")
vim.cmd("let g:vimtex_view_general_viewer = 'evince'") vim.cmd("let g:vimtex_view_general_viewer = 'evince'")
vim.cmd("let g:vimtex_compiler_method = 'latexmk'") vim.cmd("let g:vimtex_compiler_method = 'latexmk'")
vim.cmd( vim.cmd(
"let g:vimtex_compiler_latexmk = {'options': ['-pdf', '-shell-escape', '-file-line-error', '--extra-mem-bot=10000000', '-synctex=1', '-interaction=nonstopmode',],}" "let g:vimtex_compiler_latexmk = {'options': ['-pdf', '-shell-escape', '-file-line-error', '--extra-mem-bot=10000000', '-synctex=1', '-interaction=nonstopmode',],}"
) )
end, end,
}, },
{ {
"jbyuki/instant.nvim", "jbyuki/instant.nvim",
config = function() config = function()
vim.cmd("let g:instant_username = 'dashie'") vim.cmd("let g:instant_username = 'dashie'")
end, end,
}, },
{ {
"nvim-treesitter/nvim-treesitter", "nvim-treesitter/nvim-treesitter",
opts = { opts = {
textobjects = { textobjects = {
select = { select = {
enable = true, enable = true,
lookahead = true, lookahead = true,
keymaps = { keymaps = {
-- You can use the capture groups defined in textobjects.scm -- You can use the capture groups defined in textobjects.scm
["af"] = "@function.outer", ["af"] = "@function.outer",
["if"] = "@function.inner", ["if"] = "@function.inner",
["ac"] = "@class.outer", ["ac"] = "@class.outer",
["ic"] = "@class.inner", ["ic"] = "@class.inner",
}, },
}, },
}, },
}, },
}, },
{ {
"karb94/neoscroll.nvim", "karb94/neoscroll.nvim",
config = function() config = function()
require("neoscroll").setup() require("neoscroll").setup()
end, end,
}, },
{ {
"kaarmu/typst.vim", "kaarmu/typst.vim",
lazy = true, lazy = true,
event = "FileType typst", event = "FileType typst",
}, },
{ {
"folke/which-key.nvim", "folke/which-key.nvim",
event = "VeryLazy", event = "VeryLazy",
opts = { opts = {
plugins = { spelling = true }, plugins = { spelling = true },
defaults = { defaults = {
mode = { "n", "v" }, mode = { "n", "v" },
["g"] = { name = "+goto" }, ["g"] = { name = "+goto" },
["gz"] = { name = "+surround" }, ["gz"] = { name = "+surround" },
["]"] = { name = "+next" }, ["]"] = { name = "+next" },
["["] = { name = "+prev" }, ["["] = { name = "+prev" },
["<leader><tab>"] = { name = "+tabs" }, ["<leader><tab>"] = { name = "+tabs" },
["<leader>b"] = { name = "+buffer" }, ["<leader>b"] = { name = "+buffer" },
["<leader>c"] = { name = "+code" }, ["<leader>c"] = { name = "+code" },
["<leader>f"] = { name = "+file/find" }, ["<leader>f"] = { name = "+file/find" },
["<leader>g"] = { name = "+git" }, ["<leader>g"] = { name = "+git" },
["<leader>gh"] = { name = "+hunks" }, ["<leader>gh"] = { name = "+hunks" },
["<leader>q"] = { name = "+quit/session" }, ["<leader>q"] = { name = "+quit/session" },
["<leader>s"] = { name = "+search" }, ["<leader>s"] = { name = "+search" },
["<leader>u"] = { name = "+ui" }, ["<leader>u"] = { name = "+ui" },
["<leader>w"] = { name = "+windows" }, ["<leader>w"] = { name = "+windows" },
["<leader>x"] = { name = "+diagnostics/quickfix" }, ["<leader>x"] = { name = "+diagnostics/quickfix" },
["<leader>h"] = { name = "+harpoon" }, ["<leader>h"] = { name = "+harpoon" },
["<leader>d"] = { name = "+DAP" }, ["<leader>d"] = { name = "+DAP" },
}, },
}, },
config = function(_, opts) config = function(_, opts)
local wk = require("which-key") local wk = require("which-key")
wk.setup(opts) wk.setup(opts)
wk.register(opts.defaults) wk.register(opts.defaults)
end, end,
}, },
{ {
"f-person/git-blame.nvim", "f-person/git-blame.nvim",
lazy = true, lazy = true,
}, },
{ {
"mg979/vim-visual-multi", "mg979/vim-visual-multi",
}, },
{ {
"barreiroleo/ltex_extra.nvim", "barreiroleo/ltex_extra.nvim",
ft = { "markdown", "tex", "typst", "typ" }, ft = { "markdown", "tex", "typst", "typ" },
lazy = true, lazy = true,
}, },
{ {
"smjonas/inc-rename.nvim", "smjonas/inc-rename.nvim",
lazy = true, lazy = true,
event = "BufEnter", event = "BufEnter",
config = function() config = function()
require("inc_rename").setup({ require("inc_rename").setup({
cmd_name = "IncRename", -- the name of the command cmd_name = "IncRename", -- the name of the command
hl_group = "Substitute", -- the highlight group used for highlighting the identifier's new name 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 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 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") 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 post_hook = nil, -- callback to run after renaming, receives the result table (from LSP handler) as an argument
}) })
end, end,
}, },
{ {
"nvim-neo-tree/neo-tree.nvim", "nvim-tree/nvim-tree.lua",
opts = { dependencies = { "nvim-tree/nvim-web-devicons" },
window = { config = function()
position = "right", require("nvim-tree").setup({
mappings = { renderer = {
["l"] = "none", group_empty = true,
}, },
}, view = {
}, side = "right",
keys = { },
{ diagnostics = {
"<leader>fe", enable = true,
function() },
require("neo-tree.command").execute({ position = "right", toggle = true, dir = Util.root() }) })
end, end,
desc = "Explorer NeoTree (root dir)", keys = {
}, {
{ "<leader>fe",
"<leader>fE", function()
function() require("nvim-tree.api").tree.toggle()
require("neo-tree.command").execute({ position = "right", toggle = true, dir = vim.loop.cwd() }) end,
end, desc = "Explorer NvimTree (root dir)",
desc = "Explorer NeoTree (cwd)", },
}, {
{ "<A-f>", "<leader>fe", desc = "Explorer NeoTree (root dir)", remap = true }, "<leader>fE",
{ "<A-F>", "<leader>fE", desc = "Explorer NeoTree (cwd)", remap = true }, function()
}, require("nvim-tree.api").tree.toggle()
}, end,
{ desc = "Explorer NvimTree (cwd)",
"rcarriga/nvim-dap-ui", },
keys = { { "<A-f>", "<leader>fe", desc = "Explorer NvimTree (root dir)", remap = true },
{ { "<A-F>", "<leader>fE", desc = "Explorer NvimTree (cwd)", remap = true },
"<leader>dk", },
function() },
require("dap").down() {
end, "rcarriga/nvim-dap-ui",
desc = "Down", keys = {
}, {
{ "<leader>dk",
"<leader>dl", function()
function() require("dap").down()
require("dap").up() end,
end, desc = "Down",
desc = "Up", },
}, {
{ "<leader>dl",
"<leader>d;", function()
function() require("dap").up()
require("dap").run_last() end,
end, desc = "Up",
desc = "Run Last", },
}, {
}, "<leader>d;",
}, function()
{ require("dap").run_last()
"DashieTM/test_plugin", end,
lazy = false, desc = "Run Last",
opts = { },
what = 0, },
}, },
}, {
{ "nvim-neotest/neotest",
"DreamMaoMao/yazi.nvim", dependencies = {
dependencies = { "rcasia/neotest-java",
"nvim-telescope/telescope.nvim", },
"nvim-lua/plenary.nvim", opts = {
}, adapters = {
keys = { ["neotest-java"] = {
{ "<leader>fy", "<cmd>Yazi<CR>", desc = "Toggle Yazi" }, 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" },
},
},
} }

View file

@ -1,109 +1,109 @@
{ {
# TODO: reenable this again # TODO: reenable this again
# right now its broken because flatpak... # right now its broken because flatpak...
# xdg.configFile."gtk-4.0/gtk.css" = { xdg.configFile."gtk-4.0/gtk.css" = {
# text = text =
# '' ''
# /* /*
# Generated with Gradience Generated with Gradience
#
# Issues caused by theming should be reported to Gradience repository, and not to upstream Issues caused by theming should be reported to Gradience repository, and not to upstream
#
# https://github.com/GradienceTeam/Gradience https://github.com/GradienceTeam/Gradience
# */ */
#
# @define-color accent_color #a9b1d6; @define-color accent_color #a9b1d6;
# @define-color accent_bg_color #a9b1d6; @define-color accent_bg_color #a9b1d6;
# @define-color accent_fg_color rgba(0, 0, 0, 0.87); @define-color accent_fg_color rgba(0, 0, 0, 0.87);
# @define-color destructive_color #F28B82; @define-color destructive_color #F28B82;
# @define-color destructive_bg_color #F28B82; @define-color destructive_bg_color #F28B82;
# @define-color destructive_fg_color rgba(0, 0, 0, 0.87); @define-color destructive_fg_color rgba(0, 0, 0, 0.87);
# @define-color success_color #81C995; @define-color success_color #81C995;
# @define-color success_bg_color #81C995; @define-color success_bg_color #81C995;
# @define-color success_fg_color rgba(0, 0, 0, 0.87); @define-color success_fg_color rgba(0, 0, 0, 0.87);
# @define-color warning_color #FDD633; @define-color warning_color #FDD633;
# @define-color warning_bg_color #FDD633; @define-color warning_bg_color #FDD633;
# @define-color warning_fg_color rgba(0, 0, 0, 0.87); @define-color warning_fg_color rgba(0, 0, 0, 0.87);
# @define-color error_color #F28B82; @define-color error_color #F28B82;
# @define-color error_bg_color #F28B82; @define-color error_bg_color #F28B82;
# @define-color error_fg_color rgba(0, 0, 0, 0.87); @define-color error_fg_color rgba(0, 0, 0, 0.87);
# @define-color window_bg_color #1a1b26; @define-color window_bg_color #1a1b26;
# @define-color window_fg_color #c0caf5; @define-color window_fg_color #c0caf5;
# @define-color view_bg_color #1a1b26; @define-color view_bg_color #1a1b26;
# @define-color view_fg_color #c0caf5; @define-color view_fg_color #c0caf5;
# @define-color headerbar_bg_color #1a1b26; @define-color headerbar_bg_color #1a1b26;
# @define-color headerbar_fg_color #c0caf5; @define-color headerbar_fg_color #c0caf5;
# @define-color headerbar_border_color rgba(192, 202, 245, 0.12); @define-color headerbar_border_color rgba(192, 202, 245, 0.12);
# @define-color headerbar_backdrop_color @window_bg_color; @define-color headerbar_backdrop_color @window_bg_color;
# @define-color headerbar_shade_color rgba(0, 0, 0, 0.36); @define-color headerbar_shade_color rgba(0, 0, 0, 0.36);
# @define-color card_bg_color #1a1b26; @define-color card_bg_color #1a1b26;
# @define-color card_fg_color #c0caf5; @define-color card_fg_color #c0caf5;
# @define-color card_shade_color rgba(0, 0, 0, 0.36); @define-color card_shade_color rgba(0, 0, 0, 0.36);
# @define-color dialog_bg_color #1a1b26; @define-color dialog_bg_color #1a1b26;
# @define-color dialog_fg_color #c0caf5; @define-color dialog_fg_color #c0caf5;
# @define-color popover_bg_color #1a1b26; @define-color popover_bg_color #1a1b26;
# @define-color popover_fg_color #c0caf5; @define-color popover_fg_color #c0caf5;
# @define-color shade_color rgba(0, 0, 0, 0.36); @define-color shade_color rgba(0, 0, 0, 0.36);
# @define-color scrollbar_outline_color rgba(0, 0, 0, 0.5); @define-color scrollbar_outline_color rgba(0, 0, 0, 0.5);
# @define-color sidebar_bg_color #1a1b26; @define-color sidebar_bg_color #1a1b26;
# @define-color sidebar_fg_color #c0caf5; @define-color sidebar_fg_color #c0caf5;
# @define-color secondary_sidebar_bg_color #1a1b26; @define-color secondary_sidebar_bg_color #1a1b26;
# @define-color secondary_sidebar_fg_color #c0caf5; @define-color secondary_sidebar_fg_color #c0caf5;
# @define-color sidebar_shade_color rgba(0, 0, 0, 0.36); @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 secondary_sidebar_shade_color rgba(0, 0, 0, 0.36);
# @define-color thumbnail_bg_color #1a1b26; @define-color thumbnail_bg_color #1a1b26;
# @define-color thumbnail_fg_color #c0caf5; @define-color thumbnail_fg_color #c0caf5;
# @define-color sidebar_backdrop_color @sidebar_bg_color; @define-color sidebar_backdrop_color @sidebar_bg_color;
# @define-color secondary_sidebar_backdrop_color @sidebar_bg_color; @define-color secondary_sidebar_backdrop_color @sidebar_bg_color;
# @define-color blue_1 #99c1f1; @define-color blue_1 #99c1f1;
# @define-color blue_2 #62a0ea; @define-color blue_2 #62a0ea;
# @define-color blue_3 #3584e4; @define-color blue_3 #3584e4;
# @define-color blue_4 #1c71d8; @define-color blue_4 #1c71d8;
# @define-color blue_5 #1a5fb4; @define-color blue_5 #1a5fb4;
# @define-color green_1 #8ff0a4; @define-color green_1 #8ff0a4;
# @define-color green_2 #57e389; @define-color green_2 #57e389;
# @define-color green_3 #33d17a; @define-color green_3 #33d17a;
# @define-color green_4 #2ec27e; @define-color green_4 #2ec27e;
# @define-color green_5 #26a269; @define-color green_5 #26a269;
# @define-color yellow_1 #f9f06b; @define-color yellow_1 #f9f06b;
# @define-color yellow_2 #f8e45c; @define-color yellow_2 #f8e45c;
# @define-color yellow_3 #f6d32d; @define-color yellow_3 #f6d32d;
# @define-color yellow_4 #f5c211; @define-color yellow_4 #f5c211;
# @define-color yellow_5 #e5a50a; @define-color yellow_5 #e5a50a;
# @define-color orange_1 #ffbe6f; @define-color orange_1 #ffbe6f;
# @define-color orange_2 #ffa348; @define-color orange_2 #ffa348;
# @define-color orange_3 #ff7800; @define-color orange_3 #ff7800;
# @define-color orange_4 #e66100; @define-color orange_4 #e66100;
# @define-color orange_5 #c64600; @define-color orange_5 #c64600;
# @define-color red_1 #f66151; @define-color red_1 #f66151;
# @define-color red_2 #ed333b; @define-color red_2 #ed333b;
# @define-color red_3 #e01b24; @define-color red_3 #e01b24;
# @define-color red_4 #c01c28; @define-color red_4 #c01c28;
# @define-color red_5 #a51d2d; @define-color red_5 #a51d2d;
# @define-color purple_1 #dc8add; @define-color purple_1 #dc8add;
# @define-color purple_2 #c061cb; @define-color purple_2 #c061cb;
# @define-color purple_3 #9141ac; @define-color purple_3 #9141ac;
# @define-color purple_4 #813d9c; @define-color purple_4 #813d9c;
# @define-color purple_5 #613583; @define-color purple_5 #613583;
# @define-color brown_1 #cdab8f; @define-color brown_1 #cdab8f;
# @define-color brown_2 #b5835a; @define-color brown_2 #b5835a;
# @define-color brown_3 #986a44; @define-color brown_3 #986a44;
# @define-color brown_4 #865e3c; @define-color brown_4 #865e3c;
# @define-color brown_5 #63452c; @define-color brown_5 #63452c;
# @define-color light_1 #ffffff; @define-color light_1 #ffffff;
# @define-color light_2 #f6f5f4; @define-color light_2 #f6f5f4;
# @define-color light_3 #deddda; @define-color light_3 #deddda;
# @define-color light_4 #c0bfbc; @define-color light_4 #c0bfbc;
# @define-color light_5 #9a9996; @define-color light_5 #9a9996;
# @define-color dark_1 #77767b; @define-color dark_1 #77767b;
# @define-color dark_2 #5e5c64; @define-color dark_2 #5e5c64;
# @define-color dark_3 #3d3846; @define-color dark_3 #3d3846;
# @define-color dark_4 #241f31; @define-color dark_4 #241f31;
# @define-color dark_5 #000000; @define-color dark_5 #000000;
#
# .navigation-sidebar { .navigation-sidebar {
# background-color: #1a1b26; background-color: #1a1b26;
# } }
# ''; '';
# }; };
} }

View file

@ -24,9 +24,6 @@ in
xdg.configFile."qt5ct/qss/tab.qss" = { xdg.configFile."qt5ct/qss/tab.qss" = {
text = "${qss}"; text = "${qss}";
}; };
xdg.configFile."qt6ct/qss/tab.qss" = {
text = "${qss}";
};
xdg.configFile."qt5ct/qt5ct.conf" = { xdg.configFile."qt5ct/qt5ct.conf" = {
text = text =
'' ''

View file

@ -3,7 +3,6 @@
}: }:
{ {
home.packages = with pkgs; [ home.packages = with pkgs; [
rustdesk
keepassxc keepassxc
nheko nheko
kdeconnect kdeconnect

View file

@ -1,7 +1,5 @@
ncspot() { ncspot() {
notify-send "$1"
notify-send "$2"
NUM=$(pactl list clients short | rg "ncspot" | awk -F 'PipeWire' ' { print $1 } ' | tr -d ' \t\n') 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') CHANGE=$(pactl list sink-inputs short | rg "$NUM" | awk -F ' ' ' { print $1 }' | tr -d ' \t\n')
pactl set-sink-input-volume "$CHANGE" "$1" pactl set-sink-input-volume "$CHANGE" "$1"