Merge branch 'master' of git.bitlab21.com:sam/nixos
This commit is contained in:
commit
ceeb920d5a
|
@ -1,13 +1,11 @@
|
||||||
{
|
{
|
||||||
programs.nixvim.keymaps = [
|
programs.nixvim.keymaps = [
|
||||||
# Switching buffers
|
# Switching buffers
|
||||||
{
|
{
|
||||||
mode = ["n"];
|
mode = ["n"];
|
||||||
action = "<C-w>h";
|
action = "<C-w>h";
|
||||||
key = "<S-h>";
|
key = "<S-h>";
|
||||||
options = {
|
options = {silent = true;};
|
||||||
silent = true;
|
|
||||||
};
|
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
mode = ["n"];
|
mode = ["n"];
|
||||||
|
@ -52,35 +50,6 @@
|
||||||
options = {noremap = true;};
|
options = {noremap = true;};
|
||||||
}
|
}
|
||||||
|
|
||||||
# Telescope Plugin
|
|
||||||
{
|
|
||||||
# find files
|
|
||||||
mode = ["n"];
|
|
||||||
key = "<Leader>ff";
|
|
||||||
action = "<cmd>Telescope find_files<CR>";
|
|
||||||
options = {noremap = true;};
|
|
||||||
}
|
|
||||||
{
|
|
||||||
# live grep
|
|
||||||
mode = ["n"];
|
|
||||||
key = "<Leader>fg";
|
|
||||||
action = "<cmd>Telescope live_grep<CR>";
|
|
||||||
options = {noremap = true;};
|
|
||||||
}
|
|
||||||
{
|
|
||||||
# buffers
|
|
||||||
mode = ["n"];
|
|
||||||
key = "<Leader>fb";
|
|
||||||
action = "<cmd>Telescope buffers<CR>";
|
|
||||||
options = {noremap = true;};
|
|
||||||
}
|
|
||||||
{
|
|
||||||
# help tags
|
|
||||||
mode = ["n"];
|
|
||||||
key = "<Leader>fh";
|
|
||||||
action = "<cmd>Telescope help_tags<CR>";
|
|
||||||
options = {noremap = true;};
|
|
||||||
}
|
|
||||||
# paste over selected text without yanking it
|
# paste over selected text without yanking it
|
||||||
{
|
{
|
||||||
mode = ["v"];
|
mode = ["v"];
|
||||||
|
@ -113,5 +82,33 @@
|
||||||
action = ": resize +1<CR>";
|
action = ": resize +1<CR>";
|
||||||
options = {noremap = true;};
|
options = {noremap = true;};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# indent line in or out
|
||||||
|
{
|
||||||
|
mode = ["v"];
|
||||||
|
key = "<";
|
||||||
|
action = "<gv";
|
||||||
|
options = {noremap = true;};
|
||||||
|
}
|
||||||
|
{
|
||||||
|
mode = ["v"];
|
||||||
|
key = ">";
|
||||||
|
action = ">gv";
|
||||||
|
options = {noremap = true;};
|
||||||
|
}
|
||||||
|
|
||||||
|
# move selected line up or down
|
||||||
|
{
|
||||||
|
mode = ["v"];
|
||||||
|
key = "J";
|
||||||
|
action = ":m '>+1<CR>gv=gv";
|
||||||
|
options = {noremap = true;};
|
||||||
|
}
|
||||||
|
{
|
||||||
|
mode = ["v"];
|
||||||
|
key = "K";
|
||||||
|
action = ":m '<-2<CR>gv=gv";
|
||||||
|
options = {noremap = true;};
|
||||||
|
}
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
|
@ -38,4 +38,16 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
'';
|
'';
|
||||||
|
programs.nixvim.keymaps = [
|
||||||
|
# format document with Conform
|
||||||
|
{
|
||||||
|
mode = ["n"];
|
||||||
|
key = "<leader>cf";
|
||||||
|
action = "<CMD>Format<CR>";
|
||||||
|
options = {
|
||||||
|
silent = true;
|
||||||
|
desc = "Conform auto-format document";
|
||||||
|
};
|
||||||
|
}
|
||||||
|
];
|
||||||
}
|
}
|
||||||
|
|
|
@ -3,6 +3,7 @@
|
||||||
enable = true;
|
enable = true;
|
||||||
keymaps = {
|
keymaps = {
|
||||||
toggleQuickMenu = "<leader>h";
|
toggleQuickMenu = "<leader>h";
|
||||||
|
addFile = "<leader>a";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,5 +1,9 @@
|
||||||
{
|
{
|
||||||
programs.nixvim.plugins.oil = {
|
programs.nixvim.plugins.oil = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
settings = {
|
||||||
|
columns = ["icon"];
|
||||||
|
view_options.show_hidden = true;
|
||||||
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -3,4 +3,48 @@
|
||||||
enable = true;
|
enable = true;
|
||||||
extensions.fzy-native.enable = true;
|
extensions.fzy-native.enable = true;
|
||||||
};
|
};
|
||||||
|
programs.nixvim.keymaps = [
|
||||||
|
{
|
||||||
|
# find files
|
||||||
|
mode = ["n"];
|
||||||
|
key = "<Leader>ff";
|
||||||
|
action = "<cmd>Telescope find_files<CR>";
|
||||||
|
options = {noremap = true;};
|
||||||
|
}
|
||||||
|
{
|
||||||
|
# live grep
|
||||||
|
mode = ["n"];
|
||||||
|
key = "<Leader>fg";
|
||||||
|
action = "<cmd>Telescope live_grep<CR>";
|
||||||
|
options = {noremap = true;};
|
||||||
|
}
|
||||||
|
{
|
||||||
|
# grep string under cursor
|
||||||
|
mode = ["n"];
|
||||||
|
key = "<Leader>fs";
|
||||||
|
action = "<cmd>Telescope string_grep<CR>";
|
||||||
|
options = {noremap = true;};
|
||||||
|
}
|
||||||
|
{
|
||||||
|
# buffers
|
||||||
|
mode = ["n"];
|
||||||
|
key = "<Leader>fb";
|
||||||
|
action = "<cmd>Telescope buffers<CR>";
|
||||||
|
options = {noremap = true;};
|
||||||
|
}
|
||||||
|
{
|
||||||
|
# help tags
|
||||||
|
mode = ["n"];
|
||||||
|
key = "<Leader>fh";
|
||||||
|
action = "<cmd>Telescope help_tags<CR>";
|
||||||
|
options = {noremap = true;};
|
||||||
|
}
|
||||||
|
{
|
||||||
|
# show recently opened files
|
||||||
|
mode = ["n"];
|
||||||
|
key = "<Leader>fo";
|
||||||
|
action = "<cmd>Telescope oldfiles<CR>";
|
||||||
|
options = {noremap = true;};
|
||||||
|
}
|
||||||
|
];
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,13 @@
|
||||||
|
{
|
||||||
|
pkgs,
|
||||||
|
...
|
||||||
|
}: {
|
||||||
|
programs.kodi = {
|
||||||
|
enable = true;
|
||||||
|
package = pkgs.kodi.withPackages (kodiPkgs:
|
||||||
|
with kodiPkgs; [
|
||||||
|
netflix
|
||||||
|
jellycon
|
||||||
|
]);
|
||||||
|
};
|
||||||
|
}
|
|
@ -11,6 +11,7 @@
|
||||||
./common/optional/git.nix
|
./common/optional/git.nix
|
||||||
./common/optional/syncthing.nix
|
./common/optional/syncthing.nix
|
||||||
./common/optional/desktop/cinnamon
|
./common/optional/desktop/cinnamon
|
||||||
|
./common/optional/desktop/common/kodi.nix
|
||||||
|
|
||||||
];
|
];
|
||||||
|
|
||||||
|
|
|
@ -54,6 +54,7 @@ in {
|
||||||
../common/optional/backlight.nix
|
../common/optional/backlight.nix
|
||||||
../common/optional/xmodmap-arrow-remaps.nix
|
../common/optional/xmodmap-arrow-remaps.nix
|
||||||
../common/optional/nix-ld.nix
|
../common/optional/nix-ld.nix
|
||||||
|
../common/optional/gaming.nix
|
||||||
];
|
];
|
||||||
|
|
||||||
boot = {
|
boot = {
|
||||||
|
@ -71,10 +72,12 @@ in {
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
swapDevices = [ {
|
swapDevices = [
|
||||||
device = "/.swapvol/swapfile";
|
{
|
||||||
size = 32*1024;
|
device = "/.swapvol/swapfile";
|
||||||
} ];
|
size = 32 * 1024;
|
||||||
|
}
|
||||||
|
];
|
||||||
|
|
||||||
services = {
|
services = {
|
||||||
libinput.touchpad.accelSpeed = "0.5";
|
libinput.touchpad.accelSpeed = "0.5";
|
||||||
|
@ -82,17 +85,21 @@ in {
|
||||||
xkb.options = "caps:swapescape";
|
xkb.options = "caps:swapescape";
|
||||||
dpi = 196;
|
dpi = 196;
|
||||||
upscaleDefaultCursor = true;
|
upscaleDefaultCursor = true;
|
||||||
# FIXME this doesnt work for some reason
|
# FIXME this doesnt work for some reason
|
||||||
# displayManager.sessionCommands = pkgs.writeShellScriptBin "key-remaps" ''
|
# displayManager.sessionCommands = pkgs.writeShellScriptBin "key-remaps" ''
|
||||||
# ${pkgs.xorg.xmodmap}/bin/xmodmap -e "keycode 64 = Mode_switch"
|
# ${pkgs.xorg.xmodmap}/bin/xmodmap -e "keycode 64 = Mode_switch"
|
||||||
# ${pkgs.xorg.xmodmap}/bin/xmodmap -e "keycode 43 = h H Left H"
|
# ${pkgs.xorg.xmodmap}/bin/xmodmap -e "keycode 43 = h H Left H"
|
||||||
# ${pkgs.xorg.xmodmap}/bin/xmodmap -e "keycode 44 = j J Down J"
|
# ${pkgs.xorg.xmodmap}/bin/xmodmap -e "keycode 44 = j J Down J"
|
||||||
# ${pkgs.xorg.xmodmap}/bin/xmodmap -e "keycode 45 = k K Up K"
|
# ${pkgs.xorg.xmodmap}/bin/xmodmap -e "keycode 45 = k K Up K"
|
||||||
# ${pkgs.xorg.xmodmap}/bin/xmodmap -e "keycode 46 = l L Right L"
|
# ${pkgs.xorg.xmodmap}/bin/xmodmap -e "keycode 46 = l L Right L"
|
||||||
# '';
|
# '';
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
# fix cpu throttling on Lenovo Thinkpad
|
||||||
|
# see: https://github.com/erpalma/throttled
|
||||||
|
services.throttled.enable = true;
|
||||||
|
|
||||||
environment.variables = {
|
environment.variables = {
|
||||||
GDK_SCALE = "2.2";
|
GDK_SCALE = "2.2";
|
||||||
GDK_DPI_SCALE = "0.8";
|
GDK_DPI_SCALE = "0.8";
|
||||||
|
@ -123,6 +130,67 @@ in {
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
|
# nvidia
|
||||||
|
hardware.opengl = {
|
||||||
|
enable = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
services.xserver.videoDrivers = [ "nvidia" ];
|
||||||
|
|
||||||
|
hardware.nvidia = {
|
||||||
|
prime = {
|
||||||
|
offload = {
|
||||||
|
enable = true;
|
||||||
|
enableOffloadCmd = true;
|
||||||
|
};
|
||||||
|
intelBusId = "PCI:0:2:0";
|
||||||
|
nvidiaBusId = "PCI:1:0:0";
|
||||||
|
};
|
||||||
|
nvidiaPersistenced = true;
|
||||||
|
modesetting.enable = true;
|
||||||
|
powerManagement.enable = false;
|
||||||
|
powerManagement.finegrained = false;
|
||||||
|
open = false;
|
||||||
|
nvidiaSettings = true;
|
||||||
|
# FIXME issue with stable nvidia driver and latest linux kernel
|
||||||
|
# use mkDriver to specify newer nvidia driver that is compatible
|
||||||
|
# see: https://github.com/NixOS/nixpkgs/issues/341844#issuecomment-2351075413
|
||||||
|
# and https://discourse.nixos.org/t/builder-for-nvidia-x11-550-78-6-10-drv-failed-with-exit-code-2/49360/32
|
||||||
|
package = config.boot.kernelPackages.nvidiaPackages.mkDriver {
|
||||||
|
version = "555.58.02";
|
||||||
|
sha256_64bit = "sha256-xctt4TPRlOJ6r5S54h5W6PT6/3Zy2R4ASNFPu8TSHKM=";
|
||||||
|
sha256_aarch64 = "sha256-wb20isMrRg8PeQBU96lWJzBMkjfySAUaqt4EgZnhyF8=";
|
||||||
|
openSha256 = "sha256-8hyRiGB+m2hL3c9MDA/Pon+Xl6E788MZ50WrrAGUVuY=";
|
||||||
|
settingsSha256 = "sha256-ZpuVZybW6CFN/gz9rx+UJvQ715FZnAOYfHn5jt5Z2C8=";
|
||||||
|
persistencedSha256 = "sha256-a1D7ZZmcKFWfPjjH1REqPM5j/YLWKnbkP9qfRyIyxAw=";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
# https://bbs.archlinux.org/viewtopic.php?id=297276 for NVreg_EnableGpuFirmware fix
|
||||||
|
# https://discourse.nixos.org/t/how-to-use-nvidia-prime-offload-to-run-the-x-server-on-the-integrated-board/9091/15
|
||||||
|
# for udev rules to disable dGPU when not in use
|
||||||
|
boot.extraModprobeConfig = ''
|
||||||
|
options nvidia NVreg_DynamicPowerManagement=0x02
|
||||||
|
options nvidia NVreg_EnableGpuFirmware=0
|
||||||
|
'';
|
||||||
|
services.udev.extraRules = ''
|
||||||
|
# Remove NVIDIA USB xHCI Host Controller devices, if present
|
||||||
|
ACTION=="add", SUBSYSTEM=="pci", ATTR{vendor}=="0x10de", ATTR{class}=="0x0c0330", ATTR{remove}="1"
|
||||||
|
|
||||||
|
# Remove NVIDIA USB Type-C UCSI devices, if present
|
||||||
|
ACTION=="add", SUBSYSTEM=="pci", ATTR{vendor}=="0x10de", ATTR{class}=="0x0c8000", ATTR{remove}="1"
|
||||||
|
|
||||||
|
# Remove NVIDIA Audio devices, if present
|
||||||
|
ACTION=="add", SUBSYSTEM=="pci", ATTR{vendor}=="0x10de", ATTR{class}=="0x040300", ATTR{remove}="1"
|
||||||
|
|
||||||
|
# Enable runtime PM for NVIDIA VGA/3D controller devices on driver bind
|
||||||
|
ACTION=="bind", SUBSYSTEM=="pci", ATTR{vendor}=="0x10de", ATTR{class}=="0x030000", TEST=="power/control", ATTR{power/control}="auto"
|
||||||
|
ACTION=="bind", SUBSYSTEM=="pci", ATTR{vendor}=="0x10de", ATTR{class}=="0x030200", TEST=="power/control", ATTR{power/control}="auto"
|
||||||
|
|
||||||
|
# Disable runtime PM for NVIDIA VGA/3D controller devices on driver unbind
|
||||||
|
ACTION=="unbind", SUBSYSTEM=="pci", ATTR{vendor}=="0x10de", ATTR{class}=="0x030000", TEST=="power/control", ATTR{power/control}="on"
|
||||||
|
ACTION=="unbind", SUBSYSTEM=="pci", ATTR{vendor}=="0x10de", ATTR{class}=="0x030200", TEST=="power/control", ATTR{power/control}="on"
|
||||||
|
'';
|
||||||
|
|
||||||
networking = {
|
networking = {
|
||||||
hostName = "citadel";
|
hostName = "citadel";
|
||||||
networkmanager.enable = true;
|
networkmanager.enable = true;
|
||||||
|
|
|
@ -49,6 +49,7 @@ in
|
||||||
pkgs.just
|
pkgs.just
|
||||||
pkgs.git
|
pkgs.git
|
||||||
pkgs.vim
|
pkgs.vim
|
||||||
|
pkgs.linuxKernel.packages.linux_zen.cpupower
|
||||||
];
|
];
|
||||||
|
|
||||||
system.stateVersion = "24.05";
|
system.stateVersion = "24.05";
|
||||||
|
|
|
@ -9,7 +9,6 @@
|
||||||
# Steam
|
# Steam
|
||||||
mangohud
|
mangohud
|
||||||
gamemode
|
gamemode
|
||||||
gamescope
|
|
||||||
|
|
||||||
# WINE
|
# WINE
|
||||||
wine
|
wine
|
||||||
|
@ -41,11 +40,9 @@
|
||||||
|
|
||||||
programs.steam = {
|
programs.steam = {
|
||||||
enable = true;
|
enable = true;
|
||||||
gamescopeSession.enable = true;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
programs.gamemode.enable = true;
|
programs.gamemode.enable = true;
|
||||||
programs.gamescope.enable = true;
|
|
||||||
|
|
||||||
nixpkgs.config.packageOverrides = pkgs: {
|
nixpkgs.config.packageOverrides = pkgs: {
|
||||||
steam = pkgs.steam.override {
|
steam = pkgs.steam.override {
|
||||||
|
|
Loading…
Reference in New Issue