diff --git a/flake.lock b/flake.lock index a61b038..ae197b3 100644 --- a/flake.lock +++ b/flake.lock @@ -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" diff --git a/flake.nix b/flake.nix index 5b6126e..5edb6e6 100644 --- a/flake.nix +++ b/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 + ]; + + }; + }; }; } diff --git a/hosts/Lillie/default.nix b/hosts/Lillie/default.nix new file mode 100644 index 0000000..81f90fb --- /dev/null +++ b/hosts/Lillie/default.nix @@ -0,0 +1,7 @@ +{ ... }: +{ + imports = [ + ./hardware-configuration.nix + ./disko.nix + ]; +} diff --git a/hosts/Lillie/disko.nix b/hosts/Lillie/disko.nix new file mode 100644 index 0000000..86bc1b2 --- /dev/null +++ b/hosts/Lillie/disko.nix @@ -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"; + }; + }; + }; + }; + }; + }; + }; + }; + }; +} diff --git a/hosts/common/default.nix b/hosts/common/default.nix index ac51384..9670844 100644 --- a/hosts/common/default.nix +++ b/hosts/common/default.nix @@ -14,5 +14,6 @@ }; console.keyMap = "de"; nix.settings.experimental-features = [ "nix-command" "flakes" ]; + nixpkgs.config.allowUnfree = true; system.stateVersion = "23.11"; } diff --git a/users/willifan/Lillie/default.nix b/users/willifan/Lillie/default.nix new file mode 100644 index 0000000..1c4f482 --- /dev/null +++ b/users/willifan/Lillie/default.nix @@ -0,0 +1,4 @@ +{ ... }: +{ + +} diff --git a/users/willifan/common/default.nix b/users/willifan/common/default.nix index bb63c10..50f47b4 100644 --- a/users/willifan/common/default.nix +++ b/users/willifan/common/default.nix @@ -4,6 +4,7 @@ ./nixvim ./shell ./theme + ./tmux ./utils ./envvar.nix diff --git a/users/willifan/common/nixvim/TODO.md b/users/willifan/common/nixvim/TODO.md index 3b11825..33bb237 100644 --- a/users/willifan/common/nixvim/TODO.md +++ b/users/willifan/common/nixvim/TODO.md @@ -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 diff --git a/users/willifan/common/nixvim/autopairs.nix b/users/willifan/common/nixvim/autopairs.nix new file mode 100644 index 0000000..6f6b905 --- /dev/null +++ b/users/willifan/common/nixvim/autopairs.nix @@ -0,0 +1,9 @@ +{ ... }: +{ + programs.nixvim.plugins.nvim-autopairs = { + enable = true; + settings = { + disable_filetype = ["TelescopePrompt" "vim"]; + }; + }; +} diff --git a/users/willifan/common/nixvim/cmp.nix b/users/willifan/common/nixvim/cmp.nix new file mode 100644 index 0000000..764f074 --- /dev/null +++ b/users/willifan/common/nixvim/cmp.nix @@ -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 + }; + +} diff --git a/users/willifan/common/nixvim/default.nix b/users/willifan/common/nixvim/default.nix index 77ff57c..3699c19 100644 --- a/users/willifan/common/nixvim/default.nix +++ b/users/willifan/common/nixvim/default.nix @@ -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 diff --git a/users/willifan/common/nixvim/settings.nix b/users/willifan/common/nixvim/settings.nix new file mode 100644 index 0000000..21b15f8 --- /dev/null +++ b/users/willifan/common/nixvim/settings.nix @@ -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 + 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 = " "; + }; + }; + }; + }; + +} diff --git a/users/willifan/common/nixvim/toggleterm.nix b/users/willifan/common/nixvim/toggleterm.nix deleted file mode 100644 index 47ba41f..0000000 --- a/users/willifan/common/nixvim/toggleterm.nix +++ /dev/null @@ -1,11 +0,0 @@ -{ ... }: -{ - programs.nixvim.plugins = { - toggleterm = { - enable = true; - settings = { - size = 10; - }; - }; - }; -} diff --git a/users/willifan/common/tmux/default.nix b/users/willifan/common/tmux/default.nix new file mode 100644 index 0000000..c92063e --- /dev/null +++ b/users/willifan/common/tmux/default.nix @@ -0,0 +1,10 @@ +{ ... }: +{ + + home-manager.users.willifan = { + programs.tmux = { + enable = true; + }; + }; + +} diff --git a/users/willifan/desktop/hyprland/common/hyprland.nix b/users/willifan/desktop/hyprland/common/hyprland.nix index 53080fc..db06e41 100644 --- a/users/willifan/desktop/hyprland/common/hyprland.nix +++ b/users/willifan/desktop/hyprland/common/hyprland.nix @@ -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''