Compare commits
66 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| a11a254251 | |||
| 0e0d02cec6 | |||
| 3a45d3177f | |||
| b6153fde28 | |||
| ca5f879b0e | |||
| 8507ca872b | |||
| 8f4034c84e | |||
| 59f605c9e8 | |||
| 524d6a2fe6 | |||
| d816b19345 | |||
| 660baae27f | |||
| b7780cefd7 | |||
| a82934e467 | |||
| 05969b9ece | |||
| 2baabc74ba | |||
| fbc83d403c | |||
| 745282ca61 | |||
| c9470f7087 | |||
| d291dab003 | |||
| 1ae0886391 | |||
| 381bfc4565 | |||
| 161b7c604a | |||
| 7e4222a072 | |||
| abdd403bf7 | |||
| c5cf2a6a5f | |||
| 10683598db | |||
| 1d89197dbb | |||
| 77405f0207 | |||
| 7c23f42072 | |||
| 4a4744fa64 | |||
| ca87e0893e | |||
| e769dcb8d9 | |||
| a8843ec822 | |||
| 53efc5c590 | |||
| 2eca7bd9ba | |||
| 7b73356276 | |||
| 20c42b2dab | |||
| 4451c7c090 | |||
| 96f134a80e | |||
| 7bdd725a05 | |||
| 1f162ad5ae | |||
| 9e26ae884e | |||
| 1b16d4e0f1 | |||
| 64da91f997 | |||
| 086e302bb8 | |||
| 12a3c826c7 | |||
| 0274d231d1 | |||
| 18ffbe2f65 | |||
| bf693ba79b | |||
| 2d6e1be803 | |||
| 784127e3f2 | |||
| 09c6c2b0b6 | |||
| b910699ef5 | |||
| ae74140a55 | |||
| fd97209ed7 | |||
| 6a80c1e172 | |||
| a35824ebbf | |||
| 73e66342d3 | |||
| 9df8dd1907 | |||
| b3ba7d4f49 | |||
| eda7cceb8b | |||
| 2b2c0ab9db | |||
| e21b45ba8e | |||
| 905b24aae9 | |||
| d52345680e | |||
| d74cd1d489 |
@@ -0,0 +1,30 @@
|
|||||||
|
name: Nix Flake Update
|
||||||
|
|
||||||
|
on:
|
||||||
|
schedule:
|
||||||
|
- cron: "0 3 * * 0"
|
||||||
|
workflow_dispatch: {}
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
update:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
if: github.ref == 'refs/heads/main'
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v4
|
||||||
|
|
||||||
|
- name: Install Nix
|
||||||
|
run: |
|
||||||
|
curl --proto '=https' --tlsv1.2 -sSf -L https://install.determinate.systems/nix | sh -s -- install linux --no-confirm --init none
|
||||||
|
echo "/nix/var/nix/profiles/default/bin" >> "$GITHUB_PATH"
|
||||||
|
|
||||||
|
- name: Update flake inputs
|
||||||
|
run: nix flake update
|
||||||
|
|
||||||
|
- name: Commit and push changes
|
||||||
|
run: |
|
||||||
|
git diff --quiet flake.lock && echo "No changes" && exit 0
|
||||||
|
git config user.name "Gitea Actions"
|
||||||
|
git config user.email "actions@gitea.local"
|
||||||
|
git add flake.lock
|
||||||
|
git commit -m "chore: nix flake update $(date -I)"
|
||||||
|
git push
|
||||||
@@ -0,0 +1,72 @@
|
|||||||
|
# CLAUDE.md
|
||||||
|
|
||||||
|
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
|
||||||
|
|
||||||
|
## Overview
|
||||||
|
|
||||||
|
This is a nixvim configuration repository that provides a standalone Neovim configuration using Nix flakes. The configuration is built using the nixvim framework, which allows declarative Neovim configuration through Nix expressions.
|
||||||
|
|
||||||
|
## Development Commands
|
||||||
|
|
||||||
|
### Testing Configuration
|
||||||
|
```bash
|
||||||
|
# Test the current configuration by running nixvim
|
||||||
|
nix run .
|
||||||
|
|
||||||
|
# Verify configuration is not broken
|
||||||
|
nix flake check .
|
||||||
|
```
|
||||||
|
|
||||||
|
### Installation
|
||||||
|
```bash
|
||||||
|
# Install the configuration to user profile (first time)
|
||||||
|
./install.sh
|
||||||
|
# or manually:
|
||||||
|
nix profile install .
|
||||||
|
|
||||||
|
# Update existing installation
|
||||||
|
./update.sh
|
||||||
|
```
|
||||||
|
|
||||||
|
### Git Workflow Scripts
|
||||||
|
```bash
|
||||||
|
# Switch to dev branch and pull latest changes
|
||||||
|
./pull.sh
|
||||||
|
|
||||||
|
# Commit changes with timestamp, merge to main, and push
|
||||||
|
./push.sh
|
||||||
|
```
|
||||||
|
|
||||||
|
## Architecture
|
||||||
|
|
||||||
|
### Core Structure
|
||||||
|
- **flake.nix**: Main flake definition with nixpkgs, nixvim, and flake-parts inputs
|
||||||
|
- **config/**: Contains all nixvim configuration modules
|
||||||
|
- **default.nix**: Main configuration file with plugins, options, and keymaps
|
||||||
|
- **bufferline.nix**: Example modular configuration for bufferline plugin
|
||||||
|
- **flake.lock**: Dependency lockfile
|
||||||
|
|
||||||
|
### Configuration System
|
||||||
|
The configuration uses nixvim's module system:
|
||||||
|
- Configurations are split into logical modules in the `config/` directory
|
||||||
|
- Each module can be imported in `config/default.nix`
|
||||||
|
- The main configuration includes essential plugins like Telescope, LSP support, Treesitter, and various productivity tools
|
||||||
|
|
||||||
|
### Key Features Enabled
|
||||||
|
- Nord colorscheme with line numbers and relative numbering
|
||||||
|
- Comprehensive plugin suite including Telescope, nvim-tree, fugitive, lazygit
|
||||||
|
- Auto-completion with cmp and all sources enabled
|
||||||
|
- Custom keymap for hop (two-character jump) on 's' key
|
||||||
|
- Tab width set to 2 spaces
|
||||||
|
|
||||||
|
### Branch Strategy
|
||||||
|
- **main**: Stable configuration
|
||||||
|
- **dev**: Development branch for testing changes
|
||||||
|
- Scripts automate switching and merging between branches
|
||||||
|
|
||||||
|
## Adding New Configurations
|
||||||
|
|
||||||
|
1. Create new `.nix` files in the `config/` directory for specific feature sets
|
||||||
|
2. Import them in `config/default.nix` using the imports array
|
||||||
|
3. Test with `nix run .` before committing
|
||||||
|
4. Use the git workflow scripts to maintain the branch structure
|
||||||
@@ -1,17 +1,177 @@
|
|||||||
# Nixvim template
|
# Nixvim Configuration
|
||||||
|
|
||||||
This template gives you a good starting point for configuring nixvim standalone.
|
A standalone Neovim configuration built with [nixvim](https://github.com/nix-community/nixvim) and Nix flakes.
|
||||||
|
|
||||||
|
## Installation
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# First time — install to your Nix profile
|
||||||
|
./install.sh
|
||||||
|
|
||||||
|
# Update an existing installation
|
||||||
|
./update.sh
|
||||||
|
```
|
||||||
|
|
||||||
|
## Testing your configuration
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Try the config without installing
|
||||||
|
nix run .
|
||||||
|
|
||||||
|
# Verify nothing is broken
|
||||||
|
nix flake check .
|
||||||
|
```
|
||||||
|
|
||||||
## Configuring
|
## Configuring
|
||||||
|
|
||||||
To start configuring, just add or modify the nix files in `./config`.
|
Add or modify nix files in `./config`. The main entry point is [`config/default.nix`](./config/default.nix).
|
||||||
If you add a new configuration file, remember to add it to the
|
|
||||||
[`config/default.nix`](./config/default.nix) file
|
|
||||||
|
|
||||||
## Testing your new configuration
|
## Plugin Usage Guide
|
||||||
|
|
||||||
To test your configuration simply run the following command
|
This configuration comes with a curated set of plugins. Here's how to get the most out of each one.
|
||||||
|
|
||||||
```
|
### Navigation
|
||||||
nix run .
|
|
||||||
```
|
#### Telescope — fuzzy finder for everything
|
||||||
|
| Keymap | Action |
|
||||||
|
|---|---|
|
||||||
|
| `<leader>ff` | Find files in the project |
|
||||||
|
| `<leader>fg` | Live grep across all files (uses ripgrep) |
|
||||||
|
| `<leader>fb` | Browse open buffers |
|
||||||
|
| `<leader>fh` | Search help tags |
|
||||||
|
|
||||||
|
Type to filter results, `<CR>` to open, `<C-x>` to open in a split, `<C-v>` for a vertical split.
|
||||||
|
|
||||||
|
#### Hop — jump to any visible position
|
||||||
|
| Keymap | Action |
|
||||||
|
|---|---|
|
||||||
|
| `s` + two characters | Jump to any matching two-character sequence on screen |
|
||||||
|
|
||||||
|
Press `s`, type two characters, then press the hint letter to jump there instantly. Much faster than `f`/`F` or `/search` for medium-distance jumps.
|
||||||
|
|
||||||
|
#### fzf-lua — alternative fuzzy finder
|
||||||
|
| Command | Action |
|
||||||
|
|---|---|
|
||||||
|
| `:FzfLua files` | Find files |
|
||||||
|
| `:FzfLua grep` | Grep project |
|
||||||
|
| `:FzfLua buffers` | Switch buffers |
|
||||||
|
|
||||||
|
Faster than Telescope on very large codebases thanks to the native fzf algorithm.
|
||||||
|
|
||||||
|
### File Management
|
||||||
|
|
||||||
|
#### nvim-tree — sidebar file explorer
|
||||||
|
| Keymap | Action |
|
||||||
|
|---|---|
|
||||||
|
| `<C-n>` or `:NvimTreeToggle` | Toggle the file tree sidebar |
|
||||||
|
| `a` | Create a new file or directory (inside the tree) |
|
||||||
|
| `d` | Delete file (inside the tree) |
|
||||||
|
| `r` | Rename file (inside the tree) |
|
||||||
|
| `<CR>` | Open file or expand folder |
|
||||||
|
|
||||||
|
#### Oil — edit the filesystem like a buffer
|
||||||
|
| Command | Action |
|
||||||
|
|---|---|
|
||||||
|
| `:Oil` | Open the parent directory as an editable buffer |
|
||||||
|
|
||||||
|
Rename files by editing their names, delete by removing lines, create by adding new lines. Save the buffer (`:w`) to apply changes.
|
||||||
|
|
||||||
|
#### Bufferline — tab-style buffer bar
|
||||||
|
| Keymap | Action |
|
||||||
|
|---|---|
|
||||||
|
| `:bnext` / `:bprev` | Cycle through open buffers |
|
||||||
|
| `:bdelete` | Close the current buffer |
|
||||||
|
|
||||||
|
Click on tabs with the mouse or use buffer commands to switch between open files.
|
||||||
|
|
||||||
|
### Git
|
||||||
|
|
||||||
|
#### Fugitive — Git commands inside Neovim
|
||||||
|
| Command | Action |
|
||||||
|
|---|---|
|
||||||
|
| `:Git` | Open interactive git status (stage with `s`, commit with `cc`) |
|
||||||
|
| `:Git blame` | Inline blame annotations for the current file |
|
||||||
|
| `:Git diff` | View diff of current file |
|
||||||
|
| `:Git log` | Browse commit history |
|
||||||
|
| `:Gwrite` | Stage the current file |
|
||||||
|
|
||||||
|
#### Lazygit — full git UI in a floating terminal
|
||||||
|
| Command | Action |
|
||||||
|
|---|---|
|
||||||
|
| `:LazyGit` | Open the lazygit terminal UI |
|
||||||
|
|
||||||
|
A visual interface for staging, committing, branching, rebasing, and more. Navigate with arrow keys, press `?` inside lazygit for help.
|
||||||
|
|
||||||
|
### Editing
|
||||||
|
|
||||||
|
#### Commentary — toggle comments
|
||||||
|
| Keymap | Action |
|
||||||
|
|---|---|
|
||||||
|
| `gcc` | Toggle comment on the current line |
|
||||||
|
| `gc` + motion | Toggle comments over a motion (e.g. `gcap` for a paragraph) |
|
||||||
|
| `gc` in visual mode | Toggle comments on selected lines |
|
||||||
|
|
||||||
|
#### vim-surround — manage surrounding characters
|
||||||
|
| Keymap | Action |
|
||||||
|
|---|---|
|
||||||
|
| `cs"'` | Change surrounding `"` to `'` |
|
||||||
|
| `ds"` | Delete surrounding `"` |
|
||||||
|
| `ysiw]` | Surround the word with `[]` |
|
||||||
|
| `S"` in visual mode | Surround selection with `"` |
|
||||||
|
|
||||||
|
#### cmp — autocompletion
|
||||||
|
Completion popups appear automatically as you type. Use:
|
||||||
|
| Keymap | Action |
|
||||||
|
|---|---|
|
||||||
|
| `<C-n>` / `<C-p>` | Navigate completion items |
|
||||||
|
| `<CR>` | Accept the selected completion |
|
||||||
|
| `<C-e>` | Dismiss the completion menu |
|
||||||
|
|
||||||
|
Sources include buffer words, file paths, LSP, and more (all enabled automatically).
|
||||||
|
|
||||||
|
### UI & Visual Aids
|
||||||
|
|
||||||
|
#### which-key — keybinding discovery
|
||||||
|
Press `<leader>` (or any prefix key) and **wait** — a popup shows all available continuations. Great for learning and remembering mappings you don't use often.
|
||||||
|
|
||||||
|
#### indent-blankline — indentation guides
|
||||||
|
Visible automatically. Vertical lines show indentation levels so you can quickly see code structure and nesting depth.
|
||||||
|
|
||||||
|
#### illuminate — highlight word under cursor
|
||||||
|
Automatic — all occurrences of the word under your cursor are highlighted. Helps you quickly spot where a variable or function is used.
|
||||||
|
|
||||||
|
#### lualine — statusline
|
||||||
|
Always visible at the bottom. Shows the current mode, git branch, filename, file type, cursor position, and diagnostics.
|
||||||
|
|
||||||
|
### Terminal & Environment
|
||||||
|
|
||||||
|
#### toggleterm — embedded terminal
|
||||||
|
| Command | Action |
|
||||||
|
|---|---|
|
||||||
|
| `:ToggleTerm` | Toggle a persistent terminal at the bottom |
|
||||||
|
|
||||||
|
The terminal persists its state between toggles, so running processes stay alive.
|
||||||
|
|
||||||
|
#### direnv — automatic environment loading
|
||||||
|
Automatic — when you open a project with a `.envrc`, Neovim loads the environment variables and nix shell automatically. No action needed.
|
||||||
|
|
||||||
|
### Language Support
|
||||||
|
|
||||||
|
#### Treesitter — syntax-aware highlighting
|
||||||
|
Automatic — provides accurate syntax highlighting, indentation, and code folding for all supported languages. Much better than regex-based highlighting.
|
||||||
|
|
||||||
|
#### Nix — Nix language support
|
||||||
|
Automatic — syntax highlighting, error checking, and formatting for `.nix` files.
|
||||||
|
|
||||||
|
#### OpenSCAD — 3D modeling language support
|
||||||
|
Automatic — syntax highlighting for `.scad` files.
|
||||||
|
|
||||||
|
### AI
|
||||||
|
|
||||||
|
#### CodeCompanion — AI assistant
|
||||||
|
| Command | Action |
|
||||||
|
|---|---|
|
||||||
|
| `:CodeCompanionChat` | Open an AI chat buffer |
|
||||||
|
| `:CodeCompanionActions` | Browse available AI actions |
|
||||||
|
|
||||||
|
Use it for inline code suggestions, explanations, and refactoring help directly inside the editor.
|
||||||
|
|||||||
@@ -1,6 +0,0 @@
|
|||||||
{
|
|
||||||
plugins = {
|
|
||||||
bufferline.enable = true;
|
|
||||||
web-devicons.enable = true;
|
|
||||||
};
|
|
||||||
}
|
|
||||||
+70
-8
@@ -1,55 +1,117 @@
|
|||||||
|
|
||||||
|
{ pkgs, ... }:
|
||||||
{
|
{
|
||||||
# Import all your configuration modules here
|
# Extra packages available in Neovim's PATH
|
||||||
# imports = [ ./bufferline.nix ];
|
extraPackages = with pkgs; [
|
||||||
|
ripgrep # Required by Telescope and fzf-lua for fast file content searching (grep)
|
||||||
|
tree-sitter # Needed for treesitter parser compilation and grammar updates
|
||||||
|
];
|
||||||
|
|
||||||
|
# Use the system clipboard so yanking/pasting works seamlessly with other apps
|
||||||
clipboard.register = "unnamedplus";
|
clipboard.register = "unnamedplus";
|
||||||
|
|
||||||
|
# Nord: a calm, low-contrast arctic color scheme that reduces eye strain during long sessions
|
||||||
colorschemes.nord.enable = true;
|
colorschemes.nord.enable = true;
|
||||||
|
|
||||||
opts = {
|
opts = {
|
||||||
number = true; # Show line numbers
|
number = true; # Show absolute line numbers for quick go-to-line navigation
|
||||||
relativenumber = true; # Show relative line numbers
|
relativenumber = true; # Relative numbers make counted motions (e.g. 5j, 12k) easy to estimate
|
||||||
shiftwidth = 2; # Tab width should be 2
|
shiftwidth = 2; # 2-space indentation keeps Nix and web code compact and readable
|
||||||
};
|
};
|
||||||
|
|
||||||
plugins = {
|
plugins = {
|
||||||
|
# Provides file-type icons used by nvim-tree, lualine, bufferline, and Telescope
|
||||||
web-devicons.enable = true;
|
web-devicons.enable = true;
|
||||||
|
|
||||||
|
# Lightweight and fast statusline showing mode, branch, file info, and diagnostics
|
||||||
lualine.enable = true;
|
lualine.enable = true;
|
||||||
|
|
||||||
|
# Edit the filesystem like a buffer — rename, move, and delete files without leaving Neovim
|
||||||
oil.enable = true;
|
oil.enable = true;
|
||||||
|
|
||||||
|
# Toggle comments with gc/gcc — simple, reliable, and supports every filetype via treesitter
|
||||||
commentary.enable = true;
|
commentary.enable = true;
|
||||||
|
|
||||||
|
# Sidebar file explorer for visual project navigation and file management
|
||||||
nvim-tree.enable = true;
|
nvim-tree.enable = true;
|
||||||
|
|
||||||
|
# Syntax-aware highlighting, indentation, and code folding via incremental parsing
|
||||||
treesitter.enable = true;
|
treesitter.enable = true;
|
||||||
|
|
||||||
|
# Git integration directly in the command line (:Git blame, :Git diff, :Git log, etc.)
|
||||||
fugitive.enable = true;
|
fugitive.enable = true;
|
||||||
|
|
||||||
|
# Quickly add, change, or delete surrounding characters (quotes, brackets, tags)
|
||||||
vim-surround.enable = true;
|
vim-surround.enable = true;
|
||||||
|
|
||||||
|
# Popup that shows available keybindings as you type — great for discovering and remembering mappings
|
||||||
which-key.enable = true;
|
which-key.enable = true;
|
||||||
|
|
||||||
|
# Syntax highlighting and preview support for OpenSCAD 3D modeling files
|
||||||
openscad.enable = true;
|
openscad.enable = true;
|
||||||
|
|
||||||
|
# Full-featured git UI inside a floating terminal — staging, committing, branching made visual
|
||||||
lazygit.enable = true;
|
lazygit.enable = true;
|
||||||
|
|
||||||
|
# Persistent terminal that toggles in/out with a keypress — avoids leaving Neovim for shell tasks
|
||||||
toggleterm.enable = true;
|
toggleterm.enable = true;
|
||||||
|
|
||||||
|
# Visual indentation guides that make nested code structure easy to follow at a glance
|
||||||
indent-blankline.enable = true;
|
indent-blankline.enable = true;
|
||||||
|
|
||||||
|
# Highlights all occurrences of the word under the cursor — helps spot usages instantly
|
||||||
illuminate.enable = true;
|
illuminate.enable = true;
|
||||||
|
|
||||||
|
# Tab-style buffer bar at the top for fast switching between open files
|
||||||
bufferline.enable = true;
|
bufferline.enable = true;
|
||||||
|
|
||||||
|
# Auto-loads .envrc variables so Neovim always has the correct nix-shell / devShell environment
|
||||||
direnv.enable = true;
|
direnv.enable = true;
|
||||||
|
|
||||||
|
# Blazing-fast fuzzy finder alternative to Telescope — useful for very large projects
|
||||||
fzf-lua.enable = true;
|
fzf-lua.enable = true;
|
||||||
|
|
||||||
|
# EasyMotion-style jump-to-anywhere — type a hint and land on any visible position instantly
|
||||||
|
hop.enable = true;
|
||||||
|
|
||||||
|
# AI-powered code assistant providing inline suggestions and chat inside the editor
|
||||||
codecompanion = { enable = true; };
|
codecompanion = { enable = true; };
|
||||||
|
|
||||||
# enable all auto completion
|
# Autocompletion engine with all sources enabled for a batteries-included completion experience
|
||||||
cmp.enable = true;
|
cmp.enable = true;
|
||||||
cmp.autoEnableSources = true;
|
cmp.autoEnableSources = true;
|
||||||
|
|
||||||
# Good old Telescope
|
# Fuzzy file/buffer/grep picker — the Swiss-army knife for navigating any project
|
||||||
telescope = {
|
telescope = {
|
||||||
enable = true;
|
enable = true;
|
||||||
extensions = {
|
extensions = {
|
||||||
|
# Native C fzf algorithm makes Telescope filtering significantly faster on large result sets
|
||||||
fzf-native = {
|
fzf-native = {
|
||||||
enable = true;
|
enable = true;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
# Nix expressions in Neovim
|
# Nix language support — syntax highlighting, error checking, and formatting for .nix files
|
||||||
nix.enable = true;
|
nix.enable = true;
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
keymaps = [
|
||||||
|
{
|
||||||
|
# Remap 's' to hop's two-character search — faster than f/F for reaching distant targets
|
||||||
|
key = "s";
|
||||||
|
action.__raw = ''
|
||||||
|
function()
|
||||||
|
-- type two letters and jump to that bigram anywhere
|
||||||
|
require("hop").hint_char2({
|
||||||
|
current_line_only = false,
|
||||||
|
multi_windows = false, -- set true if you want to hop across all windows
|
||||||
|
})
|
||||||
|
end
|
||||||
|
'';
|
||||||
|
options = { remap = true; };
|
||||||
|
}
|
||||||
|
];
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
Generated
+19
-88
@@ -5,11 +5,11 @@
|
|||||||
"nixpkgs-lib": "nixpkgs-lib"
|
"nixpkgs-lib": "nixpkgs-lib"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1743550720,
|
"lastModified": 1775087534,
|
||||||
"narHash": "sha256-hIshGgKZCgWh6AYJpJmRgFdR3WUbkY04o82X05xqQiY=",
|
"narHash": "sha256-91qqW8lhL7TLwgQWijoGBbiD4t7/q75KTi8NxjVmSmA=",
|
||||||
"owner": "hercules-ci",
|
"owner": "hercules-ci",
|
||||||
"repo": "flake-parts",
|
"repo": "flake-parts",
|
||||||
"rev": "c621e8422220273271f52058f618c94e405bb0f5",
|
"rev": "3107b77cd68437b9a76194f0f7f9c55f2329ca5b",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -26,11 +26,11 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1743550720,
|
"lastModified": 1772408722,
|
||||||
"narHash": "sha256-hIshGgKZCgWh6AYJpJmRgFdR3WUbkY04o82X05xqQiY=",
|
"narHash": "sha256-rHuJtdcOjK7rAHpHphUb1iCvgkU3GpfvicLMwwnfMT0=",
|
||||||
"owner": "hercules-ci",
|
"owner": "hercules-ci",
|
||||||
"repo": "flake-parts",
|
"repo": "flake-parts",
|
||||||
"rev": "c621e8422220273271f52058f618c94e405bb0f5",
|
"rev": "f20dc5d9b8027381c474144ecabc9034d6a839a3",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -39,59 +39,13 @@
|
|||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"flake-utils": {
|
|
||||||
"inputs": {
|
|
||||||
"systems": "systems"
|
|
||||||
},
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1731533236,
|
|
||||||
"narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=",
|
|
||||||
"owner": "numtide",
|
|
||||||
"repo": "flake-utils",
|
|
||||||
"rev": "11707dc2f618dd54ca8739b309ec4fc024de578b",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "numtide",
|
|
||||||
"repo": "flake-utils",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"ixx": {
|
|
||||||
"inputs": {
|
|
||||||
"flake-utils": [
|
|
||||||
"nixvim",
|
|
||||||
"nuschtosSearch",
|
|
||||||
"flake-utils"
|
|
||||||
],
|
|
||||||
"nixpkgs": [
|
|
||||||
"nixvim",
|
|
||||||
"nuschtosSearch",
|
|
||||||
"nixpkgs"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1737371634,
|
|
||||||
"narHash": "sha256-fTVAWzT1UMm1lT+YxHuVPtH+DATrhYfea3B0MxG/cGw=",
|
|
||||||
"owner": "NuschtOS",
|
|
||||||
"repo": "ixx",
|
|
||||||
"rev": "a1176e2a10ce745ff8f63e4af124ece8fe0b1648",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "NuschtOS",
|
|
||||||
"ref": "v0.0.7",
|
|
||||||
"repo": "ixx",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"nixpkgs": {
|
"nixpkgs": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1745377448,
|
"lastModified": 1775888245,
|
||||||
"narHash": "sha256-jhZDfXVKdD7TSEGgzFJQvEEZ2K65UMiqW5YJ2aIqxMA=",
|
"narHash": "sha256-nwASzrRDD1JBEu/o8ekKYEXm/oJW6EMCzCRdrwcLe90=",
|
||||||
"owner": "nixos",
|
"owner": "nixos",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "507b63021ada5fee621b6ca371c4fca9ca46f52c",
|
"rev": "13043924aaa7375ce482ebe2494338e058282925",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -103,11 +57,11 @@
|
|||||||
},
|
},
|
||||||
"nixpkgs-lib": {
|
"nixpkgs-lib": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1743296961,
|
"lastModified": 1774748309,
|
||||||
"narHash": "sha256-b1EdN3cULCqtorQ4QeWgLMrd5ZGOjLSLemfa00heasc=",
|
"narHash": "sha256-+U7gF3qxzwD5TZuANzZPeJTZRHS29OFQgkQ2kiTJBIQ=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "nixpkgs.lib",
|
"repo": "nixpkgs.lib",
|
||||||
"rev": "e4822aea2a6d1cdd36653c134cacfd64c97ff4fa",
|
"rev": "333c4e0545a6da976206c74db8773a1645b5870a",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -118,11 +72,11 @@
|
|||||||
},
|
},
|
||||||
"nixpkgs_2": {
|
"nixpkgs_2": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1745377448,
|
"lastModified": 1774701658,
|
||||||
"narHash": "sha256-jhZDfXVKdD7TSEGgzFJQvEEZ2K65UMiqW5YJ2aIqxMA=",
|
"narHash": "sha256-CIS/4AMUSwUyC8X5g+5JsMRvIUL3YUfewe8K4VrbsSQ=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "507b63021ada5fee621b6ca371c4fca9ca46f52c",
|
"rev": "b63fe7f000adcfa269967eeff72c64cafecbbebe",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -136,14 +90,14 @@
|
|||||||
"inputs": {
|
"inputs": {
|
||||||
"flake-parts": "flake-parts_2",
|
"flake-parts": "flake-parts_2",
|
||||||
"nixpkgs": "nixpkgs_2",
|
"nixpkgs": "nixpkgs_2",
|
||||||
"nuschtosSearch": "nuschtosSearch"
|
"systems": "systems"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1745593478,
|
"lastModified": 1776028177,
|
||||||
"narHash": "sha256-GV0YnG6ZLW+BDsEKS2rjTtKcfTcTbdlVaf0ESQDBsK8=",
|
"narHash": "sha256-RHohvwPl6AdO64pq+Pn60ypqFf0VWNYaXUDurqFQ1Xk=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "nixvim",
|
"repo": "nixvim",
|
||||||
"rev": "b72ba2e4e2af53269a19b99bf684480f3ad4a78f",
|
"rev": "3682e0dde624e8e37b93ad053e567703ac33fd36",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -152,29 +106,6 @@
|
|||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nuschtosSearch": {
|
|
||||||
"inputs": {
|
|
||||||
"flake-utils": "flake-utils",
|
|
||||||
"ixx": "ixx",
|
|
||||||
"nixpkgs": [
|
|
||||||
"nixvim",
|
|
||||||
"nixpkgs"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1745046075,
|
|
||||||
"narHash": "sha256-8v4y6k16Ra/fiecb4DxhsoOGtzLKgKlS+9/XJ9z0T2I=",
|
|
||||||
"owner": "NuschtOS",
|
|
||||||
"repo": "search",
|
|
||||||
"rev": "066afe8643274470f4a294442aadd988356a478f",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "NuschtOS",
|
|
||||||
"repo": "search",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"root": {
|
"root": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"flake-parts": "flake-parts",
|
"flake-parts": "flake-parts",
|
||||||
|
|||||||
Executable
+2
@@ -0,0 +1,2 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
nix profile install .
|
||||||
@@ -0,0 +1,18 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
# Define the branch name
|
||||||
|
BRANCH_NAME="dev"
|
||||||
|
|
||||||
|
if [ ! $(git rev-parse --abbrev-ref HEAD) == $BRANCH_NAME ]; then
|
||||||
|
|
||||||
|
# Fetch the latest changes from the remote
|
||||||
|
git fetch origin
|
||||||
|
|
||||||
|
# If the branch exists, just switch to it
|
||||||
|
git switch $BRANCH_NAME || (git switch -c $BRANCH_NAME && git push -u origin $BRANCH_NAME)
|
||||||
|
|
||||||
|
fi
|
||||||
|
|
||||||
|
# get the latest changes
|
||||||
|
git pull origin $BRANCH_NAME --ff-only
|
||||||
|
|
||||||
@@ -0,0 +1,36 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
set -euo pipefail
|
||||||
|
|
||||||
|
DEV_BRANCH="dev"
|
||||||
|
MAIN_BRANCH="main"
|
||||||
|
|
||||||
|
if ! git rev-parse --verify "$DEV_BRANCH" > /dev/null 2>&1; then
|
||||||
|
echo "Branch $DEV_BRANCH does not exist locally!"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
git switch "$DEV_BRANCH"
|
||||||
|
|
||||||
|
message="$(date --iso-8601=seconds)"
|
||||||
|
echo "$message"
|
||||||
|
|
||||||
|
git add -A
|
||||||
|
if ! git diff --cached --quiet; then
|
||||||
|
git commit -m "$message"
|
||||||
|
else
|
||||||
|
echo "No changes to commit on $DEV_BRANCH."
|
||||||
|
fi
|
||||||
|
|
||||||
|
git fetch origin "$MAIN_BRANCH"
|
||||||
|
git merge --no-edit "origin/$MAIN_BRANCH"
|
||||||
|
|
||||||
|
git push origin "$DEV_BRANCH"
|
||||||
|
|
||||||
|
git switch "$MAIN_BRANCH"
|
||||||
|
git fetch origin "$MAIN_BRANCH"
|
||||||
|
git merge --no-edit "origin/$MAIN_BRANCH"
|
||||||
|
git merge --no-edit "$DEV_BRANCH"
|
||||||
|
git push origin "$MAIN_BRANCH"
|
||||||
|
|
||||||
|
git switch "$DEV_BRANCH"
|
||||||
Reference in New Issue
Block a user