Compare commits
8 commits
7982f05122
...
267b0e1f28
Author | SHA1 | Date | |
---|---|---|---|
|
267b0e1f28 | ||
|
d8df4f3de1 | ||
|
3ef26e3276 | ||
|
01a127a380 | ||
|
98aec6feb6 | ||
|
95710759c9 | ||
|
bde74761f1 | ||
|
b13906a891 |
15 changed files with 277 additions and 52 deletions
17
flake.lock
generated
17
flake.lock
generated
|
@ -396,22 +396,6 @@
|
|||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs-stable": {
|
||||
"locked": {
|
||||
"lastModified": 1728909085,
|
||||
"narHash": "sha256-WLxED18lodtQiayIPDE5zwAfkPJSjHJ35UhZ8h3cJUg=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "c0b1da36f7c34a7146501f684e9ebdf15d2bebf8",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "NixOS",
|
||||
"ref": "nixos-24.05",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs_2": {
|
||||
"locked": {
|
||||
"lastModified": 1725194671,
|
||||
|
@ -484,7 +468,6 @@
|
|||
"home-manager": "home-manager",
|
||||
"nixos-hardware": "nixos-hardware",
|
||||
"nixpkgs": "nixpkgs",
|
||||
"nixpkgs-stable": "nixpkgs-stable",
|
||||
"nixvim": "nixvim",
|
||||
"stylix": "stylix",
|
||||
"zen": "zen"
|
||||
|
|
44
flake.nix
44
flake.nix
|
@ -4,7 +4,6 @@
|
|||
inputs = {
|
||||
|
||||
# NixOS official package source, using the nixos-23.11 branch here
|
||||
nixpkgs-stable.url = "github:NixOS/nixpkgs/nixos-24.05";
|
||||
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
|
||||
nixos-hardware.url = "github:nixos/nixos-hardware";
|
||||
|
||||
|
@ -40,11 +39,9 @@
|
|||
|
||||
};
|
||||
|
||||
outputs = { nixpkgs, nixpkgs-stable, ... }@attrs:
|
||||
outputs = { nixpkgs, ... }@attrs:
|
||||
let
|
||||
lib = nixpkgs.lib;
|
||||
pkgs = import nixpkgs { system = "x86_64-linux"; config = { allowUnfree = true; }; };
|
||||
pkgs-stable = import nixpkgs-stable { system = "x86_64-linux"; config = { allowUnfree = true; }; };
|
||||
in
|
||||
{
|
||||
nixosConfigurations = {
|
||||
|
@ -57,9 +54,7 @@
|
|||
specialArgs = {
|
||||
hostname = "Lenni";
|
||||
type = "desktop";
|
||||
inherit pkgs;
|
||||
inherit pkgs-stable;
|
||||
inherit attrs;
|
||||
inherit attrs;
|
||||
inherit system;
|
||||
};
|
||||
|
||||
|
@ -87,9 +82,7 @@
|
|||
specialArgs = {
|
||||
hostname = "Puenktchen";
|
||||
type = "desktop";
|
||||
inherit pkgs;
|
||||
inherit pkgs-stable;
|
||||
inherit attrs;
|
||||
inherit attrs;
|
||||
inherit system;
|
||||
};
|
||||
|
||||
|
@ -120,9 +113,7 @@
|
|||
specialArgs = {
|
||||
hostname = "Anton";
|
||||
type = "server";
|
||||
inherit pkgs;
|
||||
inherit pkgs-stable;
|
||||
inherit attrs;
|
||||
inherit attrs;
|
||||
inherit system;
|
||||
};
|
||||
|
||||
|
@ -144,6 +135,33 @@
|
|||
|
||||
};
|
||||
|
||||
Lillie = let
|
||||
system = "x86_64-linux";
|
||||
in
|
||||
lib.nixosSystem {
|
||||
|
||||
specialArgs = {
|
||||
hostname = "Lillie";
|
||||
type = "desktop";
|
||||
inherit attrs;
|
||||
inherit system;
|
||||
};
|
||||
|
||||
modules = [
|
||||
attrs.home-manager.nixosModules.home-manager
|
||||
{
|
||||
home-manager.useGlobalPkgs = true;
|
||||
home-manager.useUserPackages = true;
|
||||
}
|
||||
attrs.disko.nixosModules.disko
|
||||
attrs.stylix.nixosModules.stylix
|
||||
attrs.nixvim.nixosModules.nixvim
|
||||
./hosts
|
||||
./users/willifan
|
||||
];
|
||||
|
||||
};
|
||||
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
7
hosts/Lillie/default.nix
Normal file
7
hosts/Lillie/default.nix
Normal file
|
@ -0,0 +1,7 @@
|
|||
{ ... }:
|
||||
{
|
||||
imports = [
|
||||
./hardware-configuration.nix
|
||||
./disko.nix
|
||||
];
|
||||
}
|
56
hosts/Lillie/disko.nix
Normal file
56
hosts/Lillie/disko.nix
Normal file
|
@ -0,0 +1,56 @@
|
|||
{
|
||||
disko.devices = {
|
||||
disk = {
|
||||
nvme0n1 = {
|
||||
type = "disk";
|
||||
device = "/dev/disk/by-id/nvme-CT1000P310SSD2-24314A4587C7";
|
||||
content = {
|
||||
type = "gpt";
|
||||
partitions = {
|
||||
ESP = {
|
||||
priority = 1;
|
||||
name = "ESP";
|
||||
size = "512M";
|
||||
type = "EF00";
|
||||
content = {
|
||||
type = "filesystem";
|
||||
format = "vfat";
|
||||
mountpoint = "/boot";
|
||||
};
|
||||
};
|
||||
root = {
|
||||
size = "100%";
|
||||
content = {
|
||||
type = "btrfs";
|
||||
extraArgs = [ "-f" ]; # Override existing partition
|
||||
# Subvolumes must set a mountpoint in order to be mounted,
|
||||
# unless their parent is mounted
|
||||
subvolumes = {
|
||||
# Subvolume name is different from mountpoint
|
||||
"/rootfs" = {
|
||||
mountOptions = [ "compress=zstd" "noatime" ];
|
||||
mountpoint = "/";
|
||||
};
|
||||
# Subvolume name is the same as the mountpoint
|
||||
"/home" = {
|
||||
mountOptions = [ "compress=zstd" "noatime" ];
|
||||
mountpoint = "/home";
|
||||
};
|
||||
# Parent is not mounted so the mountpoint must be set
|
||||
"/nix" = {
|
||||
mountOptions = [ "compress=zstd" "noatime" ];
|
||||
mountpoint = "/nix";
|
||||
};
|
||||
"/mnt/data" = {
|
||||
mountOptions = [ "compress=zstd" "noatime" ];
|
||||
mountpoint = "/mnt/data";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
|
@ -14,5 +14,6 @@
|
|||
};
|
||||
console.keyMap = "de";
|
||||
nix.settings.experimental-features = [ "nix-command" "flakes" ];
|
||||
nixpkgs.config.allowUnfree = true;
|
||||
system.stateVersion = "23.11";
|
||||
}
|
||||
|
|
4
users/willifan/Lillie/default.nix
Normal file
4
users/willifan/Lillie/default.nix
Normal file
|
@ -0,0 +1,4 @@
|
|||
{ ... }:
|
||||
{
|
||||
|
||||
}
|
|
@ -4,6 +4,7 @@
|
|||
./nixvim
|
||||
./shell
|
||||
./theme
|
||||
./tmux
|
||||
./utils
|
||||
|
||||
./envvar.nix
|
||||
|
|
|
@ -1,13 +1,7 @@
|
|||
# Settings
|
||||
add line numbers
|
||||
change default tab width
|
||||
KEYBINDS
|
||||
|
||||
# Plugins
|
||||
add cmp
|
||||
try out nvimtree
|
||||
add lualine
|
||||
make ToggleTerm not terrible
|
||||
add autopairs
|
||||
indent blankline??
|
||||
todo comments
|
||||
|
|
9
users/willifan/common/nixvim/autopairs.nix
Normal file
9
users/willifan/common/nixvim/autopairs.nix
Normal file
|
@ -0,0 +1,9 @@
|
|||
{ ... }:
|
||||
{
|
||||
programs.nixvim.plugins.nvim-autopairs = {
|
||||
enable = true;
|
||||
settings = {
|
||||
disable_filetype = ["TelescopePrompt" "vim"];
|
||||
};
|
||||
};
|
||||
}
|
50
users/willifan/common/nixvim/cmp.nix
Normal file
50
users/willifan/common/nixvim/cmp.nix
Normal file
|
@ -0,0 +1,50 @@
|
|||
{ ... }:
|
||||
{
|
||||
|
||||
programs.nixvim.plugins = {
|
||||
cmp = {
|
||||
enable = true;
|
||||
settings = {
|
||||
autoEnableSources = true;
|
||||
experimental = {ghost_text = false;};
|
||||
performance = {
|
||||
debounce = 60;
|
||||
fetchingTimeout = 200;
|
||||
maxViewEntries = 30;
|
||||
};
|
||||
snippet = {expand = "luasnip";};
|
||||
formatting = {fields = ["kind" "abbr" "menu"];};
|
||||
sources = [
|
||||
{name = "git";}
|
||||
{name = "nvim_lsp";}
|
||||
{name = "emoji";}
|
||||
{
|
||||
name = "buffer"; # text within current buffer
|
||||
option.get_bufnrs.__raw = "vim.api.nvim_list_bufs";
|
||||
keywordLength = 3;
|
||||
}
|
||||
{name = "copilot";}
|
||||
{
|
||||
name = "path"; # file system paths
|
||||
keywordLength = 3;
|
||||
}
|
||||
{
|
||||
name = "luasnip"; # snippets
|
||||
keywordLength = 3;
|
||||
}
|
||||
];
|
||||
|
||||
window = {
|
||||
completion = {border = "solid";};
|
||||
documentation = {border = "solid";};
|
||||
};
|
||||
};
|
||||
};
|
||||
cmp-nvim-lsp = {enable = true;}; # lsp
|
||||
cmp-buffer = {enable = true;};
|
||||
cmp-path = {enable = true;}; # file system paths
|
||||
cmp_luasnip = {enable = true;}; # snippets
|
||||
cmp-cmdline = {enable = false;}; # autocomplete for cmdline
|
||||
};
|
||||
|
||||
}
|
|
@ -7,13 +7,15 @@
|
|||
};
|
||||
|
||||
imports = [
|
||||
./autopairs.nix
|
||||
./cmp.nix
|
||||
./filetype.nix
|
||||
./gitsigns.nix
|
||||
./illuminate.nix
|
||||
./lsp.nix
|
||||
./navic.nix
|
||||
./neotree.nix
|
||||
./toggleterm.nix
|
||||
./settings.nix
|
||||
./treesitter.nix
|
||||
./whichkey.nix
|
||||
./yazi.nix
|
||||
|
|
101
users/willifan/common/nixvim/settings.nix
Normal file
101
users/willifan/common/nixvim/settings.nix
Normal file
|
@ -0,0 +1,101 @@
|
|||
{ ... }:
|
||||
{
|
||||
|
||||
programs.nixvim = {
|
||||
config = {
|
||||
extraConfigLuaPre =
|
||||
# lua
|
||||
''
|
||||
vim.fn.sign_define("diagnosticsignerror", { text = " ", texthl = "diagnosticerror", linehl = "", numhl = "" })
|
||||
vim.fn.sign_define("diagnosticsignwarn", { text = " ", texthl = "diagnosticwarn", linehl = "", numhl = "" })
|
||||
vim.fn.sign_define("diagnosticsignhint", { text = "", texthl = "diagnostichint", linehl = "", numhl = "" })
|
||||
vim.fn.sign_define("diagnosticsigninfo", { text = " ", texthl = "diagnosticinfo", linehl = "", numhl = "" })
|
||||
'';
|
||||
|
||||
clipboard = {
|
||||
providers.wl-copy.enable = true;
|
||||
};
|
||||
|
||||
opts = {
|
||||
# Show line numbers
|
||||
number = true;
|
||||
|
||||
# Show relative line numbers
|
||||
relativenumber = true;
|
||||
|
||||
# Use the system clipboard
|
||||
clipboard = "unnamedplus";
|
||||
|
||||
# Number of spaces that represent a <TAB>
|
||||
tabstop = 2;
|
||||
softtabstop = 2;
|
||||
|
||||
# Show tabline always
|
||||
showtabline = 2;
|
||||
|
||||
# Use spaces instead of tabs
|
||||
expandtab = true;
|
||||
|
||||
# Enable smart indentation
|
||||
smartindent = true;
|
||||
|
||||
# Number of spaces to use for each step of (auto)indent
|
||||
shiftwidth = 2;
|
||||
|
||||
# Enable break indent
|
||||
breakindent = true;
|
||||
|
||||
# Highlight the screen line of the cursor
|
||||
cursorline = true;
|
||||
|
||||
# Minimum number of screen lines to keep above and below the cursor
|
||||
scrolloff = 8;
|
||||
|
||||
# Enable mouse support
|
||||
mouse = "a";
|
||||
|
||||
# Set folding method to manual
|
||||
foldmethod = "manual";
|
||||
|
||||
# Disable folding by default
|
||||
foldenable = false;
|
||||
|
||||
# Wrap long lines at a character in 'breakat'
|
||||
linebreak = true;
|
||||
|
||||
# Disable spell checking
|
||||
spell = false;
|
||||
|
||||
# Disable swap file creation
|
||||
swapfile = false;
|
||||
|
||||
# Time in milliseconds to wait for a mapped sequence to complete
|
||||
timeoutlen = 300;
|
||||
|
||||
# Enable 24-bit RGB color in the TUI
|
||||
termguicolors = true;
|
||||
|
||||
# Don't show mode in the command line
|
||||
showmode = false;
|
||||
|
||||
# Open new split below the current window
|
||||
splitbelow = true;
|
||||
|
||||
# Keep the screen when splitting
|
||||
splitkeep = "screen";
|
||||
|
||||
# Open new split to the right of the current window
|
||||
splitright = true;
|
||||
|
||||
# Hide command line unless needed
|
||||
cmdheight = 0;
|
||||
|
||||
# Remove EOB
|
||||
fillchars = {
|
||||
eob = " ";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
}
|
|
@ -1,11 +0,0 @@
|
|||
{ ... }:
|
||||
{
|
||||
programs.nixvim.plugins = {
|
||||
toggleterm = {
|
||||
enable = true;
|
||||
settings = {
|
||||
size = 10;
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
10
users/willifan/common/tmux/default.nix
Normal file
10
users/willifan/common/tmux/default.nix
Normal file
|
@ -0,0 +1,10 @@
|
|||
{ ... }:
|
||||
{
|
||||
|
||||
home-manager.users.willifan = {
|
||||
programs.tmux = {
|
||||
enable = true;
|
||||
};
|
||||
};
|
||||
|
||||
}
|
|
@ -163,10 +163,10 @@
|
|||
''$mainMod, F, fullscreen''
|
||||
|
||||
# Move focus with mainMod + arrow keys
|
||||
''$mainMod, left, movefocus, l''
|
||||
''$mainMod, right, movefocus, r''
|
||||
''$mainMod, up, movefocus, u''
|
||||
''$mainMod, down, movefocus, d''
|
||||
''$mainMod, h, movefocus, l''
|
||||
''$mainMod, l, movefocus, r''
|
||||
''$mainMod, k, movefocus, u''
|
||||
''$mainMod, j, movefocus, d''
|
||||
|
||||
'', XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle''
|
||||
'', XF86AudioPrev, exec, playerctl previous''
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue