mirror of
https://github.com/moons-14/dotfiles.git
synced 2026-10-06 22:04:10 +09:00
delete
This commit is contained in:
@@ -1,71 +0,0 @@
|
|||||||
name: nix-build-and-cache
|
|
||||||
|
|
||||||
on:
|
|
||||||
pull_request:
|
|
||||||
paths:
|
|
||||||
- "flake.nix"
|
|
||||||
- "flake.lock"
|
|
||||||
- "hosts/**"
|
|
||||||
- "modules/**"
|
|
||||||
- "profiles/**"
|
|
||||||
- "overlays/**"
|
|
||||||
- ".github/workflows/nix-cache.yml"
|
|
||||||
push:
|
|
||||||
branches:
|
|
||||||
- main
|
|
||||||
paths:
|
|
||||||
- "flake.nix"
|
|
||||||
- "flake.lock"
|
|
||||||
- "hosts/**"
|
|
||||||
- "modules/**"
|
|
||||||
- "profiles/**"
|
|
||||||
- "overlays/**"
|
|
||||||
- ".github/workflows/nix-cache.yml"
|
|
||||||
workflow_dispatch:
|
|
||||||
|
|
||||||
concurrency:
|
|
||||||
group: nix-${{ github.ref }}
|
|
||||||
cancel-in-progress: true
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
build:
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
strategy:
|
|
||||||
fail-fast: false
|
|
||||||
matrix:
|
|
||||||
host:
|
|
||||||
- x1g9
|
|
||||||
- x1g13-wsl
|
|
||||||
- x1g13
|
|
||||||
- monitor
|
|
||||||
- dev-1
|
|
||||||
- service-1
|
|
||||||
|
|
||||||
steps:
|
|
||||||
- name: Checkout
|
|
||||||
uses: actions/checkout@v6
|
|
||||||
|
|
||||||
- name: Install Nix
|
|
||||||
uses: cachix/install-nix-action@v31
|
|
||||||
with:
|
|
||||||
github_access_token: ${{ secrets.GITHUB_TOKEN }}
|
|
||||||
extra_nix_config: |
|
|
||||||
accept-flake-config = true
|
|
||||||
|
|
||||||
- name: Setup Cachix for PR
|
|
||||||
if: github.event_name == 'pull_request'
|
|
||||||
uses: cachix/cachix-action@v17
|
|
||||||
with:
|
|
||||||
name: moons-dotfiles
|
|
||||||
skipPush: true
|
|
||||||
|
|
||||||
- name: Setup Cachix for main push
|
|
||||||
if: github.event_name == 'push' && github.ref == 'refs/heads/main'
|
|
||||||
uses: cachix/cachix-action@v17
|
|
||||||
with:
|
|
||||||
name: moons-dotfiles
|
|
||||||
authToken: "${{ secrets.CACHIX_AUTH_TOKEN }}"
|
|
||||||
|
|
||||||
- name: Build host
|
|
||||||
run: |
|
|
||||||
nix build -L .#nixosConfigurations.${{ matrix.host }}.config.system.build.toplevel
|
|
||||||
-18
@@ -1,19 +1 @@
|
|||||||
/*
|
|
||||||
|
|
||||||
!.gitignore
|
|
||||||
!README.md
|
|
||||||
!LICENSE
|
|
||||||
|
|
||||||
!/flake.nix
|
|
||||||
!/flake.lock
|
|
||||||
|
|
||||||
!/hosts/
|
|
||||||
!/modules/
|
|
||||||
!/home-manager/
|
|
||||||
!/shells/
|
|
||||||
!/images/
|
|
||||||
!/profiles/
|
|
||||||
!/overlays/
|
|
||||||
|
|
||||||
!renovate.json
|
|
||||||
!.github/
|
|
||||||
|
|||||||
@@ -1,189 +0,0 @@
|
|||||||
# dotfiles
|
|
||||||
|
|
||||||
NixOS + Home Manager configuration for moons. This repository uses Nix flakes to
|
|
||||||
manage multiple NixOS hosts and project-specific development shells.
|
|
||||||
|
|
||||||
This is a personal configuration. It assumes the `moons` user, `ja_JP.UTF-8`
|
|
||||||
locale, and `Asia/Tokyo` timezone.
|
|
||||||
|
|
||||||
## Features
|
|
||||||
|
|
||||||
- NixOS 25.11 based flake configuration
|
|
||||||
- Home Manager integrated as a NixOS module
|
|
||||||
- Wayland GUI profile with Niri, Hyprland, greetd, and Noctalia
|
|
||||||
- Home Manager modules for zsh, git, btop, zellij, direnv, NixVim, fcitx5, and more
|
|
||||||
- Separate hosts for ThinkPad X1 Carbon Gen 9 / Gen 13, WSL, and server machines
|
|
||||||
- `nix develop` shells for Next.js, Jupyter, and Rust projects
|
|
||||||
- GitHub Actions + Cachix build cache for host builds
|
|
||||||
- Renovate maintenance for flake inputs and the lock file
|
|
||||||
|
|
||||||
## Hosts
|
|
||||||
|
|
||||||
The following hosts are defined in `flake.nix` under `nixosConfigurations`.
|
|
||||||
|
|
||||||
| Host | Profile | Notes |
|
|
||||||
| --- | --- | --- |
|
|
||||||
| `x1g9` | `laptop` | ThinkPad X1 9th gen, using `nixos-hardware` and the Intel driver module |
|
|
||||||
| `x1g13` | `laptop` | ThinkPad X1 13th gen, using the Intel driver module and Lanzaboote secure boot |
|
|
||||||
| `x1g13-wsl` | `cli` | NixOS-WSL with `moons` as the default user |
|
|
||||||
| `monitor` | `cli-server` | Server host |
|
|
||||||
| `dev-1` | `cli-server` | Server host |
|
|
||||||
| `service-1` | `cli-server` | Server host with Immich / Cloudreve NFS mounts |
|
|
||||||
|
|
||||||
## Profiles
|
|
||||||
|
|
||||||
Profiles live in `profiles/` and are selected per host from `flake.nix`.
|
|
||||||
|
|
||||||
| Profile | Role |
|
|
||||||
| --- | --- |
|
|
||||||
| `cli-minimal` | Minimal profile with no extra imports. Shared NixOS and Home Manager modules are still always applied |
|
|
||||||
| `cli` | CLI profile extending `cli-minimal` |
|
|
||||||
| `cli-server` | Server profile extending `cli` |
|
|
||||||
| `gui` | GUI profile extending `cli` with Niri, Hyprland, greetd, Noctalia, KDE/GUI support, and GUI Home Manager modules |
|
|
||||||
| `laptop` | Laptop profile extending `gui` with fingerprint, power, and camera modules |
|
|
||||||
|
|
||||||
## Directory Layout
|
|
||||||
|
|
||||||
```text
|
|
||||||
.
|
|
||||||
|-- flake.nix # inputs, host definitions, devShells
|
|
||||||
|-- flake.lock # locked flake inputs
|
|
||||||
|-- hosts/ # host-specific NixOS settings
|
|
||||||
| `-- <host>/
|
|
||||||
| |-- default.nix
|
|
||||||
| `-- hardware-configuration.nix
|
|
||||||
|-- profiles/ # reusable host profiles
|
|
||||||
|-- modules/
|
|
||||||
| |-- core/ # NixOS modules
|
|
||||||
| |-- drivers/ # hardware / driver modules
|
|
||||||
| `-- home/ # Home Manager modules
|
|
||||||
|-- overlays/ # package overlays
|
|
||||||
|-- shells/ # nix develop environments
|
|
||||||
|-- images/ # managed image assets
|
|
||||||
|-- renovate.json # Renovate config
|
|
||||||
`-- .github/workflows/ # CI builds and Cachix integration
|
|
||||||
```
|
|
||||||
|
|
||||||
## System Usage
|
|
||||||
|
|
||||||
Rebuild the current machine by selecting the matching `#<host>` output.
|
|
||||||
|
|
||||||
```sh
|
|
||||||
sudo nixos-rebuild switch --flake .#x1g13
|
|
||||||
```
|
|
||||||
|
|
||||||
Switch on the next boot instead:
|
|
||||||
|
|
||||||
```sh
|
|
||||||
sudo nixos-rebuild boot --flake .#x1g13
|
|
||||||
```
|
|
||||||
|
|
||||||
Build a system closure in the same form used by CI:
|
|
||||||
|
|
||||||
```sh
|
|
||||||
nix build -L .#nixosConfigurations.x1g13.config.system.build.toplevel
|
|
||||||
```
|
|
||||||
|
|
||||||
List available hosts and development shells:
|
|
||||||
|
|
||||||
```sh
|
|
||||||
nix flake show
|
|
||||||
```
|
|
||||||
|
|
||||||
## Development Shells
|
|
||||||
|
|
||||||
`devShells.x86_64-linux` provides the following shells.
|
|
||||||
|
|
||||||
| Shell | Command | Main tools |
|
|
||||||
| --- | --- | --- |
|
|
||||||
| `next-web` | `nix develop .#next-web` | Node.js 24, pnpm, Vercel CLI, Prisma, OpenSSL, jq, ngrok |
|
|
||||||
| `jupyter` | `nix develop .#jupyter` | Python 3.12, JupyterLab, NumPy, pandas, matplotlib, scipy, scikit-learn |
|
|
||||||
| `rust` | `nix develop .#rust` | rustup, clang, LLVM/binutils, pkg-config |
|
|
||||||
|
|
||||||
To use a shell through direnv, add an `.envrc` to the target project.
|
|
||||||
|
|
||||||
```sh
|
|
||||||
use flake ~/dotfiles#next-web
|
|
||||||
```
|
|
||||||
|
|
||||||
## Adding A Host
|
|
||||||
|
|
||||||
1. Create `hosts/<host>/hardware-configuration.nix`.
|
|
||||||
For an existing NixOS install, use the output from `sudo nixos-generate-config`.
|
|
||||||
2. Create `hosts/<host>/default.nix` and import hardware modules or host-specific settings.
|
|
||||||
3. Add a `mkSystem` entry to `nixosConfigurations` in `flake.nix` and choose a `profile`.
|
|
||||||
4. Check the build with `nix build -L .#nixosConfigurations.<host>.config.system.build.toplevel`.
|
|
||||||
5. Run `sudo nixos-rebuild switch --flake .#<host>` on the target host.
|
|
||||||
|
|
||||||
## Common Modules
|
|
||||||
|
|
||||||
### NixOS
|
|
||||||
|
|
||||||
`modules/core/default.nix` imports boot, Cachix, environment, fonts, GC, hardware,
|
|
||||||
i18n, network, packages, services, SSH, system, user, and xserver modules.
|
|
||||||
|
|
||||||
Main settings include:
|
|
||||||
|
|
||||||
- flakes / nix-command enabled
|
|
||||||
- `moons` user and Home Manager integration
|
|
||||||
- zsh, Docker, Tailscale, PipeWire, adb, Java 25, Python, Bun, Claude Code, Codex, and more
|
|
||||||
- NetworkManager, fixed nameservers, and JP Wi-Fi regulatory domain
|
|
||||||
- OpenSSH server with password login and root login disabled
|
|
||||||
- Cachix caches for `moons-dotfiles` and `vicinae`
|
|
||||||
|
|
||||||
### Home Manager
|
|
||||||
|
|
||||||
`modules/home/default.nix` imports btop, git, fcitx5, SSH, NixVim, zsh, direnv,
|
|
||||||
zellij, and Claude configuration.
|
|
||||||
|
|
||||||
The GUI profile additionally manages Niri, VS Code, Google Chrome, Vicinae,
|
|
||||||
Noctalia, Ghostty, wallpaper, lock screen, Discord, Nautilus, GTK, and Zoom.
|
|
||||||
|
|
||||||
NixVim is split into modules for LSP, formatters, completion, git integration,
|
|
||||||
UI plugins, editor plugins, options, keymaps, and autocmds.
|
|
||||||
|
|
||||||
## Manual Steps
|
|
||||||
|
|
||||||
The following setup is not fully declarative or needs host-specific manual work.
|
|
||||||
|
|
||||||
- Register an SSH public key with GitHub.
|
|
||||||
- Enroll fingerprints on laptop hosts.
|
|
||||||
|
|
||||||
```sh
|
|
||||||
fprintd-enroll
|
|
||||||
```
|
|
||||||
|
|
||||||
- `x1g13` uses Lanzaboote / sbctl for secure boot. The PKI bundle is read from
|
|
||||||
`/var/lib/sbctl`.
|
|
||||||
- Log in to services that require authentication, such as Tailscale and 1Password.
|
|
||||||
|
|
||||||
## Maintenance
|
|
||||||
|
|
||||||
Update all flake inputs:
|
|
||||||
|
|
||||||
```sh
|
|
||||||
nix flake update
|
|
||||||
```
|
|
||||||
|
|
||||||
Update a single input:
|
|
||||||
|
|
||||||
```sh
|
|
||||||
nix flake lock --update-input nixpkgs
|
|
||||||
```
|
|
||||||
|
|
||||||
GitHub Actions builds all hosts when `flake.nix`, `flake.lock`, `hosts/**`,
|
|
||||||
`modules/**`, `profiles/**`, or `overlays/**` changes. Pushes to `main` upload
|
|
||||||
to the `moons-dotfiles` Cachix cache.
|
|
||||||
|
|
||||||
Renovate enables Nix lock file maintenance and has a separate package rule for
|
|
||||||
`llm-agents`.
|
|
||||||
|
|
||||||
## Inspired
|
|
||||||
|
|
||||||
- [Zaney/zaneyos](https://gitlab.com/Zaney/zaneyos)
|
|
||||||
- [fa0311/.zshrc](https://gist.github.com/fa0311/d37d53ff39c73c54c883379e8e3732df)
|
|
||||||
- [AsianLovesLinux/Niri](https://github.com/AsianLovesLinux/Niri)
|
|
||||||
- [natsukium/dotfiles](https://github.com/natsukium/dotfiles)
|
|
||||||
- [dracula](https://github.com/dracula)
|
|
||||||
- [akazdayo/nix-configs](https://github.com/akazdayo/nix-configs)
|
|
||||||
- [yutakobayashidev/dotnix](https://github.com/yutakobayashidev/dotnix)
|
|
||||||
Generated
-1197
File diff suppressed because it is too large
Load Diff
@@ -1,142 +0,0 @@
|
|||||||
{
|
|
||||||
description = "moons nix configurations and development shells";
|
|
||||||
|
|
||||||
inputs = {
|
|
||||||
nixpkgs.url = "github:NixOS/nixpkgs/nixos-25.11";
|
|
||||||
nixpkgs-unstable.url = "github:NixOS/nixpkgs/nixpkgs-unstable";
|
|
||||||
nixos-hardware.url = "github:NixOS/nixos-hardware/master";
|
|
||||||
nixos-wsl.url = "github:nix-community/NixOS-WSL";
|
|
||||||
home-manager = {
|
|
||||||
url = "github:nix-community/home-manager/release-25.11";
|
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
|
||||||
};
|
|
||||||
|
|
||||||
vicinae.url = "github:vicinaehq/vicinae";
|
|
||||||
vicinae-extensions = {
|
|
||||||
url = "github:vicinaehq/extensions";
|
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
|
||||||
};
|
|
||||||
|
|
||||||
ghostty.url = "github:ghostty-org/ghostty";
|
|
||||||
niri-flake.url = "github:sodiboo/niri-flake";
|
|
||||||
|
|
||||||
quickshell = {
|
|
||||||
url = "github:outfoxxed/quickshell";
|
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
|
||||||
};
|
|
||||||
noctalia = {
|
|
||||||
url = "github:noctalia-dev/noctalia-shell";
|
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
|
||||||
inputs.quickshell.follows = "quickshell";
|
|
||||||
};
|
|
||||||
stylix = {
|
|
||||||
url = "github:nix-community/stylix";
|
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
|
||||||
};
|
|
||||||
lanzaboote = {
|
|
||||||
url = "github:nix-community/lanzaboote";
|
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
|
||||||
};
|
|
||||||
|
|
||||||
nixvim = {
|
|
||||||
url = "github:nix-community/nixvim/nixos-25.11";
|
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
outputs = inputs @ {
|
|
||||||
self,
|
|
||||||
nixpkgs,
|
|
||||||
nixpkgs-unstable,
|
|
||||||
nixos-hardware,
|
|
||||||
home-manager,
|
|
||||||
...
|
|
||||||
}: let
|
|
||||||
mkSystem = {
|
|
||||||
host,
|
|
||||||
system,
|
|
||||||
profile,
|
|
||||||
extraModules ? [],
|
|
||||||
}:
|
|
||||||
nixpkgs.lib.nixosSystem {
|
|
||||||
inherit system;
|
|
||||||
specialArgs = {
|
|
||||||
inherit inputs;
|
|
||||||
inherit host;
|
|
||||||
inherit profile;
|
|
||||||
};
|
|
||||||
modules =
|
|
||||||
[
|
|
||||||
./overlays
|
|
||||||
./modules/core
|
|
||||||
./profiles/${profile}.nix
|
|
||||||
./hosts/${host}
|
|
||||||
]
|
|
||||||
++ extraModules;
|
|
||||||
};
|
|
||||||
in {
|
|
||||||
nixosConfigurations = {
|
|
||||||
x1g9 = mkSystem {
|
|
||||||
host = "x1g9";
|
|
||||||
system = "x86_64-linux";
|
|
||||||
profile = "laptop";
|
|
||||||
extraModules = [];
|
|
||||||
};
|
|
||||||
x1g13-wsl = mkSystem {
|
|
||||||
host = "x1g13-wsl";
|
|
||||||
system = "x86_64-linux";
|
|
||||||
profile = "cli";
|
|
||||||
extraModules = [];
|
|
||||||
};
|
|
||||||
x1g13 = mkSystem {
|
|
||||||
host = "x1g13";
|
|
||||||
system = "x86_64-linux";
|
|
||||||
profile = "laptop";
|
|
||||||
extraModules = [];
|
|
||||||
};
|
|
||||||
monitor = mkSystem {
|
|
||||||
host = "monitor";
|
|
||||||
system = "x86_64-linux";
|
|
||||||
profile = "cli-server";
|
|
||||||
extraModules = [];
|
|
||||||
};
|
|
||||||
dev-1 = mkSystem {
|
|
||||||
host = "dev-1";
|
|
||||||
system = "x86_64-linux";
|
|
||||||
profile = "cli-server";
|
|
||||||
extraModules = [];
|
|
||||||
};
|
|
||||||
service-1 = mkSystem {
|
|
||||||
host = "service-1";
|
|
||||||
system = "x86_64-linux";
|
|
||||||
profile = "cli-server";
|
|
||||||
extraModules = [];
|
|
||||||
};
|
|
||||||
ops = mkSystem {
|
|
||||||
host = "ops";
|
|
||||||
system = "x86_64-linux";
|
|
||||||
profile = "cli-server";
|
|
||||||
extraModules = [];
|
|
||||||
};
|
|
||||||
nix-test = mkSystem {
|
|
||||||
host = "nix-test";
|
|
||||||
system = "x86_64-linux";
|
|
||||||
profile = "cli-server";
|
|
||||||
extraModules = [];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
devShells = {
|
|
||||||
x86_64-linux = let
|
|
||||||
pkgs = import nixpkgs {
|
|
||||||
system = "x86_64-linux";
|
|
||||||
config.allowUnfreePredicate = pkg: builtins.elem (nixpkgs.lib.getName pkg) ["ngrok"];
|
|
||||||
};
|
|
||||||
in {
|
|
||||||
next-web = import ./shells/next-web.nix {inherit pkgs;};
|
|
||||||
jupyter = import ./shells/jupyter.nix {inherit pkgs;};
|
|
||||||
rust = import ./shells/rust/default.nix {inherit pkgs;};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,12 +0,0 @@
|
|||||||
# Edit this configuration file to define what should be installed on
|
|
||||||
# your system. Help is available in the configuration.nix(5) man page
|
|
||||||
# and in the NixOS manual (accessible by running ‘nixos-help’).
|
|
||||||
|
|
||||||
{ ... }:
|
|
||||||
|
|
||||||
{
|
|
||||||
imports =
|
|
||||||
[
|
|
||||||
./hardware-configuration.nix
|
|
||||||
];
|
|
||||||
}
|
|
||||||
@@ -1,37 +0,0 @@
|
|||||||
# Do not modify this file! It was generated by ‘nixos-generate-config’
|
|
||||||
# and may be overwritten by future invocations. Please make changes
|
|
||||||
# to /etc/nixos/configuration.nix instead.
|
|
||||||
{ config, lib, pkgs, modulesPath, ... }:
|
|
||||||
|
|
||||||
{
|
|
||||||
imports =
|
|
||||||
[ (modulesPath + "/profiles/qemu-guest.nix")
|
|
||||||
];
|
|
||||||
|
|
||||||
boot.initrd.availableKernelModules = [ "ata_piix" "uhci_hcd" "virtio_pci" "virtio_scsi" "sd_mod" "sr_mod" ];
|
|
||||||
boot.initrd.kernelModules = [ ];
|
|
||||||
boot.kernelModules = [ ];
|
|
||||||
boot.extraModulePackages = [ ];
|
|
||||||
|
|
||||||
fileSystems."/" =
|
|
||||||
{ device = "/dev/disk/by-uuid/53d2fe07-d84b-4cda-9428-45a3361d6b11";
|
|
||||||
fsType = "ext4";
|
|
||||||
};
|
|
||||||
|
|
||||||
fileSystems."/boot" =
|
|
||||||
{ device = "/dev/disk/by-uuid/72E9-E469";
|
|
||||||
fsType = "vfat";
|
|
||||||
options = [ "fmask=0022" "dmask=0022" ];
|
|
||||||
};
|
|
||||||
|
|
||||||
swapDevices = [ ];
|
|
||||||
|
|
||||||
# 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.ens18.useDHCP = lib.mkDefault true;
|
|
||||||
|
|
||||||
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
|
|
||||||
}
|
|
||||||
@@ -1,12 +0,0 @@
|
|||||||
# Edit this configuration file to define what should be installed on
|
|
||||||
# your system. Help is available in the configuration.nix(5) man page
|
|
||||||
# and in the NixOS manual (accessible by running ‘nixos-help’).
|
|
||||||
|
|
||||||
{ ... }:
|
|
||||||
|
|
||||||
{
|
|
||||||
imports =
|
|
||||||
[
|
|
||||||
./hardware-configuration.nix
|
|
||||||
];
|
|
||||||
}
|
|
||||||
@@ -1,37 +0,0 @@
|
|||||||
# Do not modify this file! It was generated by ‘nixos-generate-config’
|
|
||||||
# and may be overwritten by future invocations. Please make changes
|
|
||||||
# to /etc/nixos/configuration.nix instead.
|
|
||||||
{ config, lib, pkgs, modulesPath, ... }:
|
|
||||||
|
|
||||||
{
|
|
||||||
imports =
|
|
||||||
[ (modulesPath + "/profiles/qemu-guest.nix")
|
|
||||||
];
|
|
||||||
|
|
||||||
boot.initrd.availableKernelModules = [ "ata_piix" "uhci_hcd" "virtio_pci" "virtio_scsi" "sd_mod" "sr_mod" ];
|
|
||||||
boot.initrd.kernelModules = [ ];
|
|
||||||
boot.kernelModules = [ ];
|
|
||||||
boot.extraModulePackages = [ ];
|
|
||||||
|
|
||||||
fileSystems."/" =
|
|
||||||
{ device = "/dev/disk/by-uuid/770de3b2-eb30-4ccd-b7a6-13e7655b1d5c";
|
|
||||||
fsType = "ext4";
|
|
||||||
};
|
|
||||||
|
|
||||||
fileSystems."/boot" =
|
|
||||||
{ device = "/dev/disk/by-uuid/1308-E5E7";
|
|
||||||
fsType = "vfat";
|
|
||||||
options = [ "fmask=0077" "dmask=0077" ];
|
|
||||||
};
|
|
||||||
|
|
||||||
swapDevices = [ ];
|
|
||||||
|
|
||||||
# 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.ens18.useDHCP = lib.mkDefault true;
|
|
||||||
|
|
||||||
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
|
|
||||||
}
|
|
||||||
@@ -1,12 +0,0 @@
|
|||||||
# Edit this configuration file to define what should be installed on
|
|
||||||
# your system. Help is available in the configuration.nix(5) man page
|
|
||||||
# and in the NixOS manual (accessible by running ‘nixos-help’).
|
|
||||||
|
|
||||||
{ ... }:
|
|
||||||
|
|
||||||
{
|
|
||||||
imports =
|
|
||||||
[
|
|
||||||
./hardware-configuration.nix
|
|
||||||
];
|
|
||||||
}
|
|
||||||
@@ -1,30 +0,0 @@
|
|||||||
# Do not modify this file! It was generated by ‘nixos-generate-config’
|
|
||||||
# and may be overwritten by future invocations. Please make changes
|
|
||||||
# to /etc/nixos/configuration.nix instead.
|
|
||||||
{ config, lib, pkgs, modulesPath, ... }:
|
|
||||||
|
|
||||||
{
|
|
||||||
imports =
|
|
||||||
[ (modulesPath + "/profiles/qemu-guest.nix")
|
|
||||||
];
|
|
||||||
|
|
||||||
boot.initrd.availableKernelModules = [ "ata_piix" "uhci_hcd" "virtio_pci" "virtio_scsi" "sd_mod" "sr_mod" ];
|
|
||||||
boot.initrd.kernelModules = [ ];
|
|
||||||
boot.kernelModules = [ ];
|
|
||||||
boot.extraModulePackages = [ ];
|
|
||||||
|
|
||||||
fileSystems."/" =
|
|
||||||
{ device = "/dev/disk/by-uuid/8f0eaec6-5dc9-4821-aa8d-fb6809b5a5bf";
|
|
||||||
fsType = "ext4";
|
|
||||||
};
|
|
||||||
|
|
||||||
fileSystems."/boot" =
|
|
||||||
{ device = "/dev/disk/by-uuid/201C-961B";
|
|
||||||
fsType = "vfat";
|
|
||||||
options = [ "fmask=0077" "dmask=0077" ];
|
|
||||||
};
|
|
||||||
|
|
||||||
swapDevices = [ ];
|
|
||||||
|
|
||||||
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
|
|
||||||
}
|
|
||||||
@@ -1,45 +0,0 @@
|
|||||||
# Edit this configuration file to define what should be installed on
|
|
||||||
# your system. Help is available in the configuration.nix(5) man page
|
|
||||||
# and in the NixOS manual (accessible by running ‘nixos-help’).
|
|
||||||
{...}: {
|
|
||||||
imports = [
|
|
||||||
./hardware-configuration.nix
|
|
||||||
];
|
|
||||||
|
|
||||||
services.qemuGuest.enable = true;
|
|
||||||
|
|
||||||
networking = {
|
|
||||||
useDHCP = false;
|
|
||||||
|
|
||||||
interfaces = {
|
|
||||||
ens18 = {
|
|
||||||
useDHCP = false;
|
|
||||||
ipv4.addresses = [
|
|
||||||
{
|
|
||||||
address = "10.50.128.20";
|
|
||||||
prefixLength = 24;
|
|
||||||
}
|
|
||||||
];
|
|
||||||
};
|
|
||||||
|
|
||||||
ens19 = {
|
|
||||||
useDHCP = false;
|
|
||||||
ipv4.addresses = [
|
|
||||||
{
|
|
||||||
address = "10.50.7.101";
|
|
||||||
prefixLength = 24;
|
|
||||||
}
|
|
||||||
];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
defaultGateway = {
|
|
||||||
address = "10.50.128.1";
|
|
||||||
interface = "ens18";
|
|
||||||
};
|
|
||||||
|
|
||||||
nameservers = [
|
|
||||||
"1.1.1.1"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,30 +0,0 @@
|
|||||||
# Do not modify this file! It was generated by ‘nixos-generate-config’
|
|
||||||
# and may be overwritten by future invocations. Please make changes
|
|
||||||
# to /etc/nixos/configuration.nix instead.
|
|
||||||
{ config, lib, pkgs, modulesPath, ... }:
|
|
||||||
|
|
||||||
{
|
|
||||||
imports =
|
|
||||||
[ (modulesPath + "/profiles/qemu-guest.nix")
|
|
||||||
];
|
|
||||||
|
|
||||||
boot.initrd.availableKernelModules = [ "ata_piix" "uhci_hcd" "virtio_pci" "virtio_scsi" "sd_mod" "sr_mod" ];
|
|
||||||
boot.initrd.kernelModules = [ ];
|
|
||||||
boot.kernelModules = [ ];
|
|
||||||
boot.extraModulePackages = [ ];
|
|
||||||
|
|
||||||
fileSystems."/" =
|
|
||||||
{ device = "/dev/disk/by-uuid/69fa2193-1e4f-438a-8898-5de8a3f36e5b";
|
|
||||||
fsType = "ext4";
|
|
||||||
};
|
|
||||||
|
|
||||||
fileSystems."/boot" =
|
|
||||||
{ device = "/dev/disk/by-uuid/D09B-4277";
|
|
||||||
fsType = "vfat";
|
|
||||||
options = [ "fmask=0077" "dmask=0077" ];
|
|
||||||
};
|
|
||||||
|
|
||||||
swapDevices = [ ];
|
|
||||||
|
|
||||||
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
|
|
||||||
}
|
|
||||||
@@ -1,43 +0,0 @@
|
|||||||
# Edit this configuration file to define what should be installed on
|
|
||||||
# your system. Help is available in the configuration.nix(5) man page
|
|
||||||
# and in the NixOS manual (accessible by running ‘nixos-help’).
|
|
||||||
|
|
||||||
{ ... }:
|
|
||||||
|
|
||||||
{
|
|
||||||
imports = [
|
|
||||||
./hardware-configuration.nix
|
|
||||||
];
|
|
||||||
|
|
||||||
fileSystems."/mnt/immich-nfs" = {
|
|
||||||
device = "unas.moons14.com:/var/nfs/shared/immich";
|
|
||||||
fsType = "nfs";
|
|
||||||
options = [
|
|
||||||
"nfsvers=3"
|
|
||||||
"hard"
|
|
||||||
"timeo=600"
|
|
||||||
"retrans=2"
|
|
||||||
"noatime"
|
|
||||||
"_netdev"
|
|
||||||
"nofail"
|
|
||||||
"x-systemd.requires=network-online.target"
|
|
||||||
"x-systemd.after=network-online.target"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
|
|
||||||
fileSystems."/mnt/cloudreve-nfs" = {
|
|
||||||
device = "unas.moons14.com:/var/nfs/shared/cloudreve";
|
|
||||||
fsType = "nfs";
|
|
||||||
options = [
|
|
||||||
"nfsvers=3"
|
|
||||||
"hard"
|
|
||||||
"timeo=600"
|
|
||||||
"retrans=2"
|
|
||||||
"noatime"
|
|
||||||
"_netdev"
|
|
||||||
"nofail"
|
|
||||||
"x-systemd.requires=network-online.target"
|
|
||||||
"x-systemd.after=network-online.target"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,37 +0,0 @@
|
|||||||
# Do not modify this file! It was generated by ‘nixos-generate-config’
|
|
||||||
# and may be overwritten by future invocations. Please make changes
|
|
||||||
# to /etc/nixos/configuration.nix instead.
|
|
||||||
{ config, lib, pkgs, modulesPath, ... }:
|
|
||||||
|
|
||||||
{
|
|
||||||
imports =
|
|
||||||
[ (modulesPath + "/profiles/qemu-guest.nix")
|
|
||||||
];
|
|
||||||
|
|
||||||
boot.initrd.availableKernelModules = [ "ata_piix" "uhci_hcd" "virtio_pci" "virtio_scsi" "sd_mod" "sr_mod" ];
|
|
||||||
boot.initrd.kernelModules = [ ];
|
|
||||||
boot.kernelModules = [ ];
|
|
||||||
boot.extraModulePackages = [ ];
|
|
||||||
|
|
||||||
fileSystems."/" =
|
|
||||||
{ device = "/dev/disk/by-uuid/d9f05715-e68a-4d69-bf46-bd903b0782f0";
|
|
||||||
fsType = "ext4";
|
|
||||||
};
|
|
||||||
|
|
||||||
fileSystems."/boot" =
|
|
||||||
{ device = "/dev/disk/by-uuid/1772-FC70";
|
|
||||||
fsType = "vfat";
|
|
||||||
options = [ "fmask=0077" "dmask=0077" ];
|
|
||||||
};
|
|
||||||
|
|
||||||
swapDevices = [ ];
|
|
||||||
|
|
||||||
# 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.ens18.useDHCP = lib.mkDefault true;
|
|
||||||
|
|
||||||
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
|
|
||||||
}
|
|
||||||
@@ -1,18 +0,0 @@
|
|||||||
# Edit this configuration file to define what should be installed on
|
|
||||||
# your system. Help is available in the configuration.nix(5) man page
|
|
||||||
# and in the NixOS manual (accessible by running ‘nixos-help’).
|
|
||||||
|
|
||||||
{ lib, inputs, ... }:
|
|
||||||
|
|
||||||
{
|
|
||||||
imports =
|
|
||||||
[
|
|
||||||
inputs.nixos-wsl.nixosModules.wsl
|
|
||||||
];
|
|
||||||
|
|
||||||
wsl.enable = true;
|
|
||||||
wsl.defaultUser = "moons";
|
|
||||||
|
|
||||||
boot.loader.systemd-boot.enable = lib.mkForce false;
|
|
||||||
boot.loader.grub.enable = lib.mkForce false;
|
|
||||||
}
|
|
||||||
@@ -1,15 +0,0 @@
|
|||||||
# Edit this configuration file to define what should be installed on
|
|
||||||
# your system. Help is available in the configuration.nix(5) man page
|
|
||||||
# and in the NixOS manual (accessible by running ‘nixos-help’).
|
|
||||||
|
|
||||||
{ inputs, ... }:
|
|
||||||
|
|
||||||
{
|
|
||||||
imports =
|
|
||||||
[
|
|
||||||
inputs.nixos-hardware.nixosModules.lenovo-thinkpad-x1-13th-gen
|
|
||||||
./../../modules/drivers/intel-drivers.nix
|
|
||||||
./../../modules/core/secure-boot.nix
|
|
||||||
./hardware-configuration.nix
|
|
||||||
];
|
|
||||||
}
|
|
||||||
@@ -1,38 +0,0 @@
|
|||||||
# Do not modify this file! It was generated by ‘nixos-generate-config’
|
|
||||||
# and may be overwritten by future invocations. Please make changes
|
|
||||||
# to /etc/nixos/configuration.nix instead.
|
|
||||||
{ config, lib, pkgs, modulesPath, ... }:
|
|
||||||
|
|
||||||
{
|
|
||||||
imports =
|
|
||||||
[ (modulesPath + "/installer/scan/not-detected.nix")
|
|
||||||
];
|
|
||||||
|
|
||||||
boot.initrd.availableKernelModules = [ "xhci_pci" "thunderbolt" "nvme" "usb_storage" "sd_mod" ];
|
|
||||||
boot.initrd.kernelModules = [ ];
|
|
||||||
boot.kernelModules = [ "kvm-intel" ];
|
|
||||||
boot.extraModulePackages = [ ];
|
|
||||||
|
|
||||||
fileSystems."/" =
|
|
||||||
{ device = "/dev/disk/by-uuid/29b4b68d-c25e-48b1-beb3-30f63ac2f491";
|
|
||||||
fsType = "ext4";
|
|
||||||
};
|
|
||||||
|
|
||||||
fileSystems."/boot" =
|
|
||||||
{ device = "/dev/disk/by-uuid/EA69-77EE";
|
|
||||||
fsType = "vfat";
|
|
||||||
options = [ "fmask=0077" "dmask=0077" ];
|
|
||||||
};
|
|
||||||
|
|
||||||
swapDevices = [ ];
|
|
||||||
|
|
||||||
# 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.wlp0s20f3.useDHCP = lib.mkDefault true;
|
|
||||||
|
|
||||||
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
|
|
||||||
hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
|
|
||||||
}
|
|
||||||
@@ -1,14 +0,0 @@
|
|||||||
# Edit this configuration file to define what should be installed on
|
|
||||||
# your system. Help is available in the configuration.nix(5) man page
|
|
||||||
# and in the NixOS manual (accessible by running ‘nixos-help’).
|
|
||||||
|
|
||||||
{ inputs, ... }:
|
|
||||||
|
|
||||||
{
|
|
||||||
imports =
|
|
||||||
[
|
|
||||||
inputs.nixos-hardware.nixosModules.lenovo-thinkpad-x1-9th-gen
|
|
||||||
./../../modules/drivers/intel-drivers.nix
|
|
||||||
./hardware-configuration.nix
|
|
||||||
];
|
|
||||||
}
|
|
||||||
@@ -1,38 +0,0 @@
|
|||||||
# Do not modify this file! It was generated by ‘nixos-generate-config’
|
|
||||||
# and may be overwritten by future invocations. Please make changes
|
|
||||||
# to /etc/nixos/configuration.nix instead.
|
|
||||||
{ config, lib, pkgs, modulesPath, ... }:
|
|
||||||
|
|
||||||
{
|
|
||||||
imports =
|
|
||||||
[ (modulesPath + "/installer/scan/not-detected.nix")
|
|
||||||
];
|
|
||||||
|
|
||||||
boot.initrd.availableKernelModules = [ "xhci_pci" "thunderbolt" "nvme" "usb_storage" "sd_mod" ];
|
|
||||||
boot.initrd.kernelModules = [ ];
|
|
||||||
boot.kernelModules = [ ];
|
|
||||||
boot.extraModulePackages = [ ];
|
|
||||||
|
|
||||||
fileSystems."/" =
|
|
||||||
{ device = "/dev/disk/by-uuid/16b29578-6836-414b-a5e1-863bc21c5fc3";
|
|
||||||
fsType = "ext4";
|
|
||||||
};
|
|
||||||
|
|
||||||
fileSystems."/boot" =
|
|
||||||
{ device = "/dev/disk/by-uuid/209A-C8C9";
|
|
||||||
fsType = "vfat";
|
|
||||||
options = [ "fmask=0077" "dmask=0077" ];
|
|
||||||
};
|
|
||||||
|
|
||||||
swapDevices = [ ];
|
|
||||||
|
|
||||||
# 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.wlp0s20f3.useDHCP = lib.mkDefault true;
|
|
||||||
|
|
||||||
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
|
|
||||||
hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
|
|
||||||
}
|
|
||||||
Binary file not shown.
|
Before Width: | Height: | Size: 42 KiB |
@@ -1,11 +0,0 @@
|
|||||||
{ pkgs, ... }:
|
|
||||||
{
|
|
||||||
boot.loader = {
|
|
||||||
systemd-boot.enable = true;
|
|
||||||
systemd-boot.configurationLimit = 8;
|
|
||||||
efi.canTouchEfiVariables = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
boot.supportedFilesystems = [ "nfs" ];
|
|
||||||
boot.kernelPackages = pkgs.linuxPackages_latest;
|
|
||||||
}
|
|
||||||
@@ -1,12 +0,0 @@
|
|||||||
-----BEGIN CERTIFICATE-----
|
|
||||||
MIIBszCCAVqgAwIBAgIRAPCAxajuCEmnXKploQS+KAkwCgYIKoZIzj0EAwIwODEW
|
|
||||||
MBQGA1UEChMNTW9vbnMgSG9tZSBDQTEeMBwGA1UEAxMVTW9vbnMgSG9tZSBDQSBS
|
|
||||||
b290IENBMB4XDTI1MTIwNjE4MDgwN1oXDTM1MTIwNDE4MDgwN1owODEWMBQGA1UE
|
|
||||||
ChMNTW9vbnMgSG9tZSBDQTEeMBwGA1UEAxMVTW9vbnMgSG9tZSBDQSBSb290IENB
|
|
||||||
MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEDw2M0NQMju2zN5ZXwsYaTieWggId
|
|
||||||
XmRSXjOHW4/pBEI11xk1GkMFbeVmppr1cbcNmbB+fmxoFa+oKguhFDSsdaNFMEMw
|
|
||||||
DgYDVR0PAQH/BAQDAgEGMBIGA1UdEwEB/wQIMAYBAf8CAQEwHQYDVR0OBBYEFGuC
|
|
||||||
UGL5CxdamFfBVC8xH306Wo6xMAoGCCqGSM49BAMCA0cAMEQCIBqWCNWBuwhWDYoi
|
|
||||||
fpqOqz2HSChOsKCIAgfTJlUUgSlSAiALekUJ+4M+L4/vP4GpkrSovuQ7JOMXV44+
|
|
||||||
30Pcx4AoJg==
|
|
||||||
-----END CERTIFICATE-----
|
|
||||||
@@ -1,15 +0,0 @@
|
|||||||
{...}: {
|
|
||||||
nix.settings = {
|
|
||||||
extra-substituters = [
|
|
||||||
"https://moons-dotfiles.cachix.org"
|
|
||||||
"https://noctalia.cachix.org"
|
|
||||||
"https://vicinae.cachix.org"
|
|
||||||
];
|
|
||||||
|
|
||||||
extra-trusted-public-keys = [
|
|
||||||
"moons-dotfiles.cachix.org-1:WHoroKiNScG2/dpxHHL1I0qVmvuQhJbEAP+DS2j9Rr0="
|
|
||||||
"noctalia.cachix.org-1:pCOR47nnMEo5thcxNDtzWpOxNFQsBRglJzxWPp3dkU4="
|
|
||||||
"vicinae.cachix.org-1:1kDrfienkGHPYbkpNj1mWTr7Fm1+zcenzgTizIcI3oc="
|
|
||||||
];
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,21 +0,0 @@
|
|||||||
{ pkgs, ... }:
|
|
||||||
{
|
|
||||||
boot.kernelModules = [ "uvcvideo" ];
|
|
||||||
|
|
||||||
environment.systemPackages = with pkgs; [
|
|
||||||
v4l-utils
|
|
||||||
(ffmpeg-full)
|
|
||||||
];
|
|
||||||
|
|
||||||
services.pipewire = {
|
|
||||||
enable = true;
|
|
||||||
alsa.enable = true;
|
|
||||||
pulse.enable = true;
|
|
||||||
};
|
|
||||||
security.rtkit.enable = true;
|
|
||||||
|
|
||||||
xdg.portal = {
|
|
||||||
enable = true;
|
|
||||||
extraPortals = [ pkgs.xdg-desktop-portal-gtk ];
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,18 +0,0 @@
|
|||||||
{...}: {
|
|
||||||
imports = [
|
|
||||||
./boot.nix
|
|
||||||
./cachix.nix
|
|
||||||
./environment.nix
|
|
||||||
./fonts.nix
|
|
||||||
./gc.nix
|
|
||||||
./hardware.nix
|
|
||||||
./i18n.nix
|
|
||||||
./network.nix
|
|
||||||
./packages.nix
|
|
||||||
./services.nix
|
|
||||||
./ssh.nix
|
|
||||||
./system.nix
|
|
||||||
./user.nix
|
|
||||||
./xserver.nix
|
|
||||||
];
|
|
||||||
}
|
|
||||||
@@ -1,9 +0,0 @@
|
|||||||
{ ... }:
|
|
||||||
{
|
|
||||||
environment.sessionVariables = {
|
|
||||||
ELECTRON_OZONE_PLATFORM_HINT = "wayland";
|
|
||||||
QT_QPA_PLATFORM = "wayland;xcb";
|
|
||||||
NIXOS_OZONE_WL = "1";
|
|
||||||
};
|
|
||||||
environment.variables.EDITOR = "nvim";
|
|
||||||
}
|
|
||||||
@@ -1,21 +0,0 @@
|
|||||||
{ ... }:
|
|
||||||
{
|
|
||||||
services.fprintd.enable = true;
|
|
||||||
|
|
||||||
# Add fingerprint command
|
|
||||||
# fprintd-enroll
|
|
||||||
# List fingerprints
|
|
||||||
# fprintd-list $USER
|
|
||||||
# Test fingerprint authentication
|
|
||||||
# fprintd-verify
|
|
||||||
|
|
||||||
security.pam.services = {
|
|
||||||
login.fprintAuth = true;
|
|
||||||
|
|
||||||
# sudo
|
|
||||||
sudo.fprintAuth = true;
|
|
||||||
|
|
||||||
# greetd (tuigreet / ReGreet)
|
|
||||||
greetd.fprintAuth = true;
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,29 +0,0 @@
|
|||||||
{ pkgs, ... }:
|
|
||||||
{
|
|
||||||
fonts = {
|
|
||||||
packages = with pkgs; [
|
|
||||||
noto-fonts
|
|
||||||
noto-fonts-cjk-sans
|
|
||||||
noto-fonts-color-emoji
|
|
||||||
terminus_font
|
|
||||||
cantarell-fonts
|
|
||||||
font-awesome
|
|
||||||
nerd-fonts.blex-mono
|
|
||||||
];
|
|
||||||
|
|
||||||
fontDir.enable = true;
|
|
||||||
fontconfig = {
|
|
||||||
defaultFonts = {
|
|
||||||
serif = [
|
|
||||||
"Noto Serif CJK JP"
|
|
||||||
"Noto Color Emoji"
|
|
||||||
];
|
|
||||||
sansSerif =[
|
|
||||||
"Noto Sans CJK JP"
|
|
||||||
"Noto Clor Emoji"
|
|
||||||
];
|
|
||||||
emoji = ["Noto Color Emoji"];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,11 +0,0 @@
|
|||||||
{ ... }:
|
|
||||||
{
|
|
||||||
nix.gc = {
|
|
||||||
automatic = true;
|
|
||||||
dates = "daily";
|
|
||||||
options = "--delete-older-than 7d";
|
|
||||||
};
|
|
||||||
|
|
||||||
nix.settings.auto-optimise-store = true;
|
|
||||||
nix.optimise.automatic = true;
|
|
||||||
}
|
|
||||||
@@ -1,11 +0,0 @@
|
|||||||
{ pkgs, username, ... }: {
|
|
||||||
services.greetd = {
|
|
||||||
enable = true;
|
|
||||||
settings = {
|
|
||||||
default_session = {
|
|
||||||
user = "greeter";
|
|
||||||
command = "${pkgs.tuigreet}/bin/tuigreet --time --remember --cmd niri-session";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,8 +0,0 @@
|
|||||||
{ pkgs, ... }:
|
|
||||||
{
|
|
||||||
environment.systemPackages = with pkgs; [
|
|
||||||
slack
|
|
||||||
insomnia
|
|
||||||
obsidian
|
|
||||||
];
|
|
||||||
}
|
|
||||||
@@ -1,15 +0,0 @@
|
|||||||
{ pkgs, ... }:
|
|
||||||
{
|
|
||||||
hardware = {
|
|
||||||
sane = {
|
|
||||||
enable = true;
|
|
||||||
extraBackends = [ pkgs.sane-airscan ];
|
|
||||||
disabledDefaultBackends = [ "escl" ];
|
|
||||||
};
|
|
||||||
graphics.enable = true;
|
|
||||||
enableRedistributableFirmware = true;
|
|
||||||
keyboard.qmk.enable = true;
|
|
||||||
bluetooth.enable = true;
|
|
||||||
bluetooth.powerOnBoot = true;
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,10 +0,0 @@
|
|||||||
{ ... }:
|
|
||||||
{
|
|
||||||
programs = {
|
|
||||||
hyprland = {
|
|
||||||
enable = true;
|
|
||||||
withUWSM = false;
|
|
||||||
};
|
|
||||||
hyprlock.enable = true;
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,32 +0,0 @@
|
|||||||
{ pkgs, ... }:
|
|
||||||
{
|
|
||||||
i18n.inputMethod = {
|
|
||||||
enable = true;
|
|
||||||
type = "fcitx5";
|
|
||||||
fcitx5 = {
|
|
||||||
addons = with pkgs; [
|
|
||||||
fcitx5-mozc
|
|
||||||
fcitx5-gtk
|
|
||||||
qt6Packages.fcitx5-configtool
|
|
||||||
];
|
|
||||||
settings.inputMethod = {
|
|
||||||
GroupOrder = {
|
|
||||||
"0" = "Default";
|
|
||||||
};
|
|
||||||
"Groups/0" = {
|
|
||||||
Name = "Default";
|
|
||||||
"Default Layout" = "keyboard-jp";
|
|
||||||
DefaultIM = "mozc";
|
|
||||||
};
|
|
||||||
"Groups/0/Items/0" = {
|
|
||||||
Name = "keyboard-jp";
|
|
||||||
Layout = "";
|
|
||||||
};
|
|
||||||
"Groups/0/Items/1" = {
|
|
||||||
Name = "mozc";
|
|
||||||
Layout = "";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,6 +0,0 @@
|
|||||||
{...}: {
|
|
||||||
programs.kdeconnect = {
|
|
||||||
enable = true;
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
@@ -1,39 +0,0 @@
|
|||||||
{
|
|
||||||
host,
|
|
||||||
pkgs,
|
|
||||||
...
|
|
||||||
}: {
|
|
||||||
networking = {
|
|
||||||
hostName = "${host}";
|
|
||||||
nameservers = [
|
|
||||||
"1.1.1.1"
|
|
||||||
"1.0.0.1"
|
|
||||||
];
|
|
||||||
|
|
||||||
networkmanager = {
|
|
||||||
enable = true;
|
|
||||||
dns = "none";
|
|
||||||
wifi.powersave = false;
|
|
||||||
wifi.backend = "wpa_supplicant";
|
|
||||||
settings = {
|
|
||||||
"device"."wifi.scan-rand-mac-address" = "no";
|
|
||||||
"connection"."wifi.cloned-mac-address" = "permanent";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
wireless.iwd.enable = false;
|
|
||||||
};
|
|
||||||
|
|
||||||
boot.extraModprobeConfig = ''
|
|
||||||
options cfg80211 ieee80211_regdom=JP
|
|
||||||
options iwlwifi power_save=0
|
|
||||||
options iwlwifi uapsd_disable=1
|
|
||||||
'';
|
|
||||||
|
|
||||||
services.resolved.enable = false;
|
|
||||||
|
|
||||||
environment.systemPackages = [pkgs.networkmanagerapplet];
|
|
||||||
programs.nm-applet.enable = true;
|
|
||||||
|
|
||||||
security.pki.certificateFiles = [./ca/root_ca.crt];
|
|
||||||
}
|
|
||||||
@@ -1,6 +0,0 @@
|
|||||||
{ pkgs, ... }:
|
|
||||||
{
|
|
||||||
programs.niri = {
|
|
||||||
enable = true;
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,6 +0,0 @@
|
|||||||
{ pkgs, inputs, ... }:
|
|
||||||
{
|
|
||||||
environment.systemPackages = with pkgs; [
|
|
||||||
inputs.noctalia.packages.${system}.default
|
|
||||||
];
|
|
||||||
}
|
|
||||||
@@ -1,68 +0,0 @@
|
|||||||
{
|
|
||||||
pkgs,
|
|
||||||
inputs,
|
|
||||||
...
|
|
||||||
}: let
|
|
||||||
unstable = import inputs.nixpkgs-unstable {
|
|
||||||
system = pkgs.system;
|
|
||||||
config = {
|
|
||||||
allowUnfree = true;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
in {
|
|
||||||
programs = {
|
|
||||||
xwayland.enable = true;
|
|
||||||
dconf.enable = true;
|
|
||||||
seahorse.enable = true;
|
|
||||||
fuse.userAllowOther = true;
|
|
||||||
adb.enable = true;
|
|
||||||
gnupg.agent = {
|
|
||||||
enable = true;
|
|
||||||
enableSSHSupport = false;
|
|
||||||
};
|
|
||||||
zsh = {
|
|
||||||
enable = true;
|
|
||||||
};
|
|
||||||
java.enable = true;
|
|
||||||
java.package = pkgs.jdk25;
|
|
||||||
};
|
|
||||||
|
|
||||||
nixpkgs.config.allowUnfree = true;
|
|
||||||
|
|
||||||
environment.systemPackages = with pkgs; [
|
|
||||||
tuigreet # The Login Manager (Sometimes Referred To As Display Manager)
|
|
||||||
htop
|
|
||||||
btop # Simple Terminal Based System Monitor
|
|
||||||
unrar # Tool For Handling .rar Files
|
|
||||||
unzip # Tool For Handling .zip Files
|
|
||||||
uwsm # Universal Wayland Session Manager (optional must be enabled)
|
|
||||||
wget # Tool For Fetching Files With Links
|
|
||||||
curl # Tool For Fetching Files With Links
|
|
||||||
alacritty # A GPU Accelerated Terminal Emulator
|
|
||||||
fuzzel # A Simple And Lightweight Application Launcher
|
|
||||||
git # Version Control System
|
|
||||||
tailscale # Zero-Config VPN
|
|
||||||
unstable.msedit # Microsoft Editor
|
|
||||||
nil # Nix Language Server
|
|
||||||
docker # Containerization Platform
|
|
||||||
unstable._1password-cli
|
|
||||||
unstable._1password-gui
|
|
||||||
unstable.ghostty
|
|
||||||
tio
|
|
||||||
sbctl
|
|
||||||
xwayland-satellite
|
|
||||||
slurp
|
|
||||||
grim
|
|
||||||
wf-recorder
|
|
||||||
sqlite # Vscode Raycast Extension Dependency
|
|
||||||
oxker # Docker TUI Tool
|
|
||||||
jdk25
|
|
||||||
maven
|
|
||||||
gradle
|
|
||||||
python312
|
|
||||||
uv
|
|
||||||
bun
|
|
||||||
unstable.claude-code
|
|
||||||
unstable.codex
|
|
||||||
];
|
|
||||||
}
|
|
||||||
@@ -1,14 +0,0 @@
|
|||||||
{...}: {
|
|
||||||
boot.kernelParams = [
|
|
||||||
"mem_sleep_default=deep"
|
|
||||||
];
|
|
||||||
|
|
||||||
powerManagement = {
|
|
||||||
enable = true;
|
|
||||||
powertop.enable = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
services.power-profiles-daemon.enable = true;
|
|
||||||
services.tlp.enable = false;
|
|
||||||
services.upower.enable = true;
|
|
||||||
}
|
|
||||||
@@ -1,17 +0,0 @@
|
|||||||
{ inputs, pkgs, lib, ... }:
|
|
||||||
{
|
|
||||||
imports = [
|
|
||||||
inputs.lanzaboote.nixosModules.lanzaboote
|
|
||||||
];
|
|
||||||
|
|
||||||
boot.loader = {
|
|
||||||
systemd-boot.enable = lib.mkForce false;
|
|
||||||
efi.canTouchEfiVariables = true;
|
|
||||||
efi.efiSysMountPoint = "/boot";
|
|
||||||
};
|
|
||||||
|
|
||||||
boot.lanzaboote = {
|
|
||||||
enable = true;
|
|
||||||
pkiBundle = "/var/lib/sbctl";
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,76 +0,0 @@
|
|||||||
{pkgs, ...}: {
|
|
||||||
services = {
|
|
||||||
blueman.enable = true; # Bluetooth Support
|
|
||||||
tumbler.enable = true; # Image/video preview
|
|
||||||
|
|
||||||
fwupd.enable = true;
|
|
||||||
|
|
||||||
gnome.gnome-keyring.enable = true;
|
|
||||||
|
|
||||||
upower.enable = true;
|
|
||||||
|
|
||||||
tailscale = {
|
|
||||||
enable = true;
|
|
||||||
extraUpFlags = [
|
|
||||||
"--accept-dns=false"
|
|
||||||
"--accept-routes"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
|
|
||||||
pipewire = {
|
|
||||||
enable = true;
|
|
||||||
alsa.enable = true;
|
|
||||||
alsa.support32Bit = true;
|
|
||||||
pulse.enable = true;
|
|
||||||
jack.enable = true;
|
|
||||||
wireplumber.enable = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
logind = {
|
|
||||||
settings.Login = {
|
|
||||||
HandleLidSwitch = "suspend";
|
|
||||||
HandleLidSwitchDocked = "ignore";
|
|
||||||
HandleLidSwitchExternalPower = "suspend";
|
|
||||||
LidSwitchIgnoreInhibited = "no";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
rpcbind.enable = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
virtualisation.docker = {
|
|
||||||
enable = true;
|
|
||||||
autoPrune = {
|
|
||||||
enable = true;
|
|
||||||
dates = "weekly";
|
|
||||||
};
|
|
||||||
daemon.settings = {
|
|
||||||
ipv6 = true;
|
|
||||||
"fixed-cidr-v6" = "fd00:30::/64";
|
|
||||||
ip6tables = true;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
programs.nix-ld.enable = true;
|
|
||||||
security.rtkit.enable = true;
|
|
||||||
|
|
||||||
xdg.portal = {
|
|
||||||
enable = true;
|
|
||||||
wlr.enable = true;
|
|
||||||
extraPortals = [
|
|
||||||
pkgs.xdg-desktop-portal-wlr
|
|
||||||
pkgs.xdg-desktop-portal-gtk
|
|
||||||
];
|
|
||||||
xdgOpenUsePortal = true;
|
|
||||||
config = {
|
|
||||||
common.default = [
|
|
||||||
"wlr"
|
|
||||||
"gtk"
|
|
||||||
];
|
|
||||||
niri.default = [
|
|
||||||
"wlr"
|
|
||||||
"gtk"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,24 +0,0 @@
|
|||||||
{ pkgs, ... }:
|
|
||||||
{
|
|
||||||
|
|
||||||
services.openssh = {
|
|
||||||
enable = true;
|
|
||||||
openFirewall = true;
|
|
||||||
|
|
||||||
settings = {
|
|
||||||
PermitRootLogin = "no";
|
|
||||||
PasswordAuthentication = false;
|
|
||||||
KbdInteractiveAuthentication = false;
|
|
||||||
PubkeyAuthentication = "yes";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
users.users.moons = {
|
|
||||||
|
|
||||||
openssh.authorizedKeys.keys = [
|
|
||||||
"sk-ssh-ed25519@openssh.com AAAAGnNrLXNzaC1lZDI1NTE5QG9wZW5zc2guY29tAAAAIKhxDkucmeCor6CKoXAua7DgDSzuXrZOtpdkyzQxz5+aAAAABHNzaDo= moons@moons14.com"
|
|
||||||
"sk-ssh-ed25519@openssh.com AAAAGnNrLXNzaC1lZDI1NTE5QG9wZW5zc2guY29tAAAAIN6hZJyng/5LgFKPjR6uZAd/00UkO0vN0uQOoIvfSELdAAAABHNzaDo= moons@moons14.com"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
|
|
||||||
}
|
|
||||||
@@ -1,30 +0,0 @@
|
|||||||
{...}: {
|
|
||||||
nix = {
|
|
||||||
settings = {
|
|
||||||
experimental-features = ["nix-command" "flakes"];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
# Localization settings
|
|
||||||
time.timeZone = "Asia/Tokyo";
|
|
||||||
i18n.defaultLocale = "ja_JP.UTF-8";
|
|
||||||
i18n.extraLocaleSettings = {
|
|
||||||
LC_ADDRESS = "ja_JP.UTF-8";
|
|
||||||
LC_IDENTIFICATION = "ja_JP.UTF-8";
|
|
||||||
LC_MEASUREMENT = "ja_JP.UTF-8";
|
|
||||||
LC_MONETARY = "ja_JP.UTF-8";
|
|
||||||
LC_NAME = "ja_JP.UTF-8";
|
|
||||||
LC_NUMERIC = "ja_JP.UTF-8";
|
|
||||||
LC_PAPER = "ja_JP.UTF-8";
|
|
||||||
LC_TELEPHONE = "ja_JP.UTF-8";
|
|
||||||
LC_TIME = "ja_JP.UTF-8";
|
|
||||||
};
|
|
||||||
|
|
||||||
environment.variables = {
|
|
||||||
NIXOS_OZONE_WL = "1";
|
|
||||||
};
|
|
||||||
|
|
||||||
console.keyMap = "jp106";
|
|
||||||
system.stateVersion = "25.11";
|
|
||||||
}
|
|
||||||
|
|
||||||
@@ -1,38 +0,0 @@
|
|||||||
{ pkgs, inputs, username, host, profile, ...}:
|
|
||||||
{
|
|
||||||
imports = [ inputs.home-manager.nixosModules.home-manager ];
|
|
||||||
home-manager = {
|
|
||||||
useUserPackages = true;
|
|
||||||
useGlobalPkgs = false;
|
|
||||||
backupFileExtension = "backup";
|
|
||||||
extraSpecialArgs = { inherit inputs username host profile; };
|
|
||||||
users.moons = {
|
|
||||||
imports = [ ./../home ];
|
|
||||||
home = {
|
|
||||||
username = "moons";
|
|
||||||
homeDirectory = "/home/moons";
|
|
||||||
stateVersion = "25.11";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
users.mutableUsers = true;
|
|
||||||
users.users.moons = {
|
|
||||||
isNormalUser = true;
|
|
||||||
description = "moons-14";
|
|
||||||
extraGroups = [
|
|
||||||
"adbusers"
|
|
||||||
"docker" #access to docker as non-root
|
|
||||||
"libvirtd" #Virt manager/QEMU access
|
|
||||||
"lp"
|
|
||||||
"networkmanager"
|
|
||||||
"scanner"
|
|
||||||
"wheel" #subdo access
|
|
||||||
"vboxusers" #Virtual Box
|
|
||||||
"dialout" #Serial Port Access
|
|
||||||
];
|
|
||||||
shell = pkgs.zsh;
|
|
||||||
ignoreShellProgramCheck = true;
|
|
||||||
};
|
|
||||||
nix.settings.allowed-users = [ "moons" ];
|
|
||||||
nix.settings.trusted-users = [ "root" "moons" ];
|
|
||||||
}
|
|
||||||
@@ -1,13 +0,0 @@
|
|||||||
{ ... }:
|
|
||||||
{
|
|
||||||
services = {
|
|
||||||
xserver = {
|
|
||||||
enable = true;
|
|
||||||
xkb = {
|
|
||||||
layout = "jp";
|
|
||||||
variant = "";
|
|
||||||
options = "ctrl:nocaps";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,21 +0,0 @@
|
|||||||
{ lib, pkgs, config, ... }:
|
|
||||||
with lib; let
|
|
||||||
cfg = config.drivers.intel;
|
|
||||||
in
|
|
||||||
{
|
|
||||||
options.drivers.intel = {
|
|
||||||
enable = mkEnableOption "Enable Intel Graphics Drivers";
|
|
||||||
};
|
|
||||||
|
|
||||||
config = mkIf cfg.enable {
|
|
||||||
# OpenGL
|
|
||||||
hardware.graphics = {
|
|
||||||
extraPackages = with pkgs; [
|
|
||||||
intel-media-driver
|
|
||||||
vaapiIntel
|
|
||||||
vaapiVdpau
|
|
||||||
libvdpau-va-gl
|
|
||||||
];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,7 +0,0 @@
|
|||||||
{ ... }:
|
|
||||||
{
|
|
||||||
home.file.".face" = {
|
|
||||||
recursive = true;
|
|
||||||
source = ./../../images/avatar.jpg;
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,26 +0,0 @@
|
|||||||
{ pkgs, ... }:
|
|
||||||
|
|
||||||
{
|
|
||||||
nixpkgs.config.allowUnfree = true;
|
|
||||||
|
|
||||||
home.packages = with pkgs; [
|
|
||||||
google-chrome
|
|
||||||
];
|
|
||||||
|
|
||||||
xdg.desktopEntries."google-chrome" = {
|
|
||||||
name = "Google Chrome";
|
|
||||||
genericName = "Web Browser";
|
|
||||||
exec = "${pkgs.google-chrome}/bin/google-chrome-stable --enable-features=TouchpadOverscrollHistoryNavigation %U";
|
|
||||||
terminal = false;
|
|
||||||
icon = "google-chrome";
|
|
||||||
categories = [ "Network" "WebBrowser" ];
|
|
||||||
startupNotify = true;
|
|
||||||
type = "Application";
|
|
||||||
};
|
|
||||||
|
|
||||||
xdg.mimeApps.defaultApplications = {
|
|
||||||
"text/html" = "google-chrome.desktop";
|
|
||||||
"x-scheme-handler/http" = "google-chrome.desktop";
|
|
||||||
"x-scheme-handler/https" = "google-chrome.desktop";
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,12 +0,0 @@
|
|||||||
{ ... }:
|
|
||||||
{
|
|
||||||
programs = {
|
|
||||||
btop = {
|
|
||||||
enable = true;
|
|
||||||
settings.color_theme = "dracula";
|
|
||||||
themes = {
|
|
||||||
dracula = builtins.readFile ./dracula.theme;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,89 +0,0 @@
|
|||||||
#Bashtop theme with nord palette (https://www.nordtheme.com)
|
|
||||||
#by Justin Zobel <[email protected]>
|
|
||||||
|
|
||||||
# Colors should be in 6 or 2 character hexadecimal or single spaced rgb decimal: "#RRGGBB", "#BW" or "0-255 0-255 0-255"
|
|
||||||
# example for white: "#ffffff", "#ff" or "255 255 255".
|
|
||||||
|
|
||||||
# All graphs and meters can be gradients
|
|
||||||
# For single color graphs leave "mid" and "end" variable empty.
|
|
||||||
# Use "start" and "end" variables for two color gradient
|
|
||||||
# Use "start", "mid" and "end" for three color gradient
|
|
||||||
|
|
||||||
# Main background, empty for terminal default, need to be empty if you want transparent background
|
|
||||||
theme[main_bg]="#282A36"
|
|
||||||
|
|
||||||
# Main text color
|
|
||||||
theme[main_fg]="#BD93F9"
|
|
||||||
|
|
||||||
# Title color for boxes
|
|
||||||
theme[title]="#f8f8f2"
|
|
||||||
|
|
||||||
# Higlight color for keyboard shortcuts
|
|
||||||
theme[hi_fg]="#ff79c6"
|
|
||||||
|
|
||||||
# Background color of selected item in processes box
|
|
||||||
theme[selected_bg]="#44475A"
|
|
||||||
|
|
||||||
# Foreground color of selected item in processes box
|
|
||||||
theme[selected_fg]="#ECEFF4"
|
|
||||||
|
|
||||||
# Color of inactive/disabled text
|
|
||||||
theme[inactive_fg]="#6272a4"
|
|
||||||
|
|
||||||
# Misc colors for processes box including mini cpu graphs, details memory graph and details status text
|
|
||||||
theme[proc_misc]="#BD93F9"
|
|
||||||
|
|
||||||
# Cpu box outline color
|
|
||||||
theme[cpu_box]="#ff79c6"
|
|
||||||
|
|
||||||
# Memory/disks box outline color
|
|
||||||
theme[mem_box]="#ff79c6"
|
|
||||||
|
|
||||||
# Net up/down box outline color
|
|
||||||
theme[net_box]="#ff79c6"
|
|
||||||
|
|
||||||
# Processes box outline color
|
|
||||||
theme[proc_box]="#ff79c6"
|
|
||||||
|
|
||||||
# Box divider line and small boxes line color
|
|
||||||
theme[div_line]="#ff79c6"
|
|
||||||
|
|
||||||
# Temperature graph colors
|
|
||||||
theme[temp_start]="#bd93f9"
|
|
||||||
theme[temp_mid]="#bd93f9"
|
|
||||||
theme[temp_end]="#bd93f9"
|
|
||||||
|
|
||||||
# CPU graph colors
|
|
||||||
theme[cpu_start]="#bd93f9"
|
|
||||||
theme[cpu_mid]="#bd93f9"
|
|
||||||
theme[cpu_end]="#bd93f9"
|
|
||||||
|
|
||||||
# Mem/Disk free meter
|
|
||||||
theme[free_start]="#bd93f9"
|
|
||||||
theme[free_mid]="#bd93f9"
|
|
||||||
theme[free_end]="#bd93f9"
|
|
||||||
|
|
||||||
# Mem/Disk cached meter
|
|
||||||
theme[cached_start]="#bd93f9"
|
|
||||||
theme[cached_mid]="#bd93f9"
|
|
||||||
theme[cached_end]="#bd93f9"
|
|
||||||
|
|
||||||
# Mem/Disk available meter
|
|
||||||
theme[available_start]="#bd93f9"
|
|
||||||
theme[available_mid]="#bd93f9"
|
|
||||||
theme[available_end]="#bd93f9"
|
|
||||||
|
|
||||||
# Mem/Disk used meter
|
|
||||||
theme[used_start]="#bd93f9"
|
|
||||||
theme[used_mid]="#bd93f9"
|
|
||||||
theme[used_end]="#bd93f9"
|
|
||||||
|
|
||||||
# Download graph colors
|
|
||||||
theme[download_start]="#bd93f9"
|
|
||||||
theme[download_mid]="#bd93f9"
|
|
||||||
theme[download_end]="#bd93f9"
|
|
||||||
|
|
||||||
# Upload graph colors
|
|
||||||
theme[upload_start]="#bd93f9"
|
|
||||||
theme[upload_mid]="#bd93f9"
|
|
||||||
theme[upload_end]="#bd93f9"
|
|
||||||
@@ -1,9 +0,0 @@
|
|||||||
{...}: {
|
|
||||||
home.file.".claude/settings.json".text = builtins.toJSON {
|
|
||||||
statusLine = {
|
|
||||||
type = "command";
|
|
||||||
command = "bun x ccusage statusline --no-offline";
|
|
||||||
padding = 0;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,13 +0,0 @@
|
|||||||
{...}: {
|
|
||||||
imports = [
|
|
||||||
./btop
|
|
||||||
./git.nix
|
|
||||||
./fcitx5
|
|
||||||
./ssh.nix
|
|
||||||
./nixvim
|
|
||||||
./zsh.nix
|
|
||||||
./environment.nix
|
|
||||||
./zellij.nix
|
|
||||||
./claude.nix
|
|
||||||
];
|
|
||||||
}
|
|
||||||
@@ -1,6 +0,0 @@
|
|||||||
{ ... }:
|
|
||||||
{
|
|
||||||
programs.vesktop = {
|
|
||||||
enable = true;
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,7 +0,0 @@
|
|||||||
{
|
|
||||||
# use project directory: `echo 'use flake ~/dotfiles#next-web' > .envrc`
|
|
||||||
programs.direnv = {
|
|
||||||
enable = true;
|
|
||||||
nix-direnv.enable = true;
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,70 +0,0 @@
|
|||||||
[Hotkey]
|
|
||||||
# トリガーキーを押すたびに切り替える
|
|
||||||
EnumerateWithTriggerKeys=False
|
|
||||||
# 一時的に第1入力メソッドに切り替える
|
|
||||||
AltTriggerKeys=
|
|
||||||
# 切り替え時は第1入力メソッドをスキップする
|
|
||||||
EnumerateSkipFirst=False
|
|
||||||
# Time limit in milliseconds for triggering modifier key shortcuts
|
|
||||||
ModifierOnlyKeyTimeout=250
|
|
||||||
|
|
||||||
[Hotkey/TriggerKeys]
|
|
||||||
1=Zenkaku_Hankaku
|
|
||||||
|
|
||||||
[Hotkey/ActivateKeys]
|
|
||||||
0=Henkan
|
|
||||||
|
|
||||||
[Hotkey/DeactivateKeys]
|
|
||||||
0=Muhenkan
|
|
||||||
|
|
||||||
[Hotkey/PrevPage]
|
|
||||||
0=Up
|
|
||||||
|
|
||||||
[Hotkey/NextPage]
|
|
||||||
0=Down
|
|
||||||
|
|
||||||
[Hotkey/PrevCandidate]
|
|
||||||
0=Shift+Tab
|
|
||||||
|
|
||||||
[Hotkey/NextCandidate]
|
|
||||||
0=Tab
|
|
||||||
|
|
||||||
[Hotkey/TogglePreedit]
|
|
||||||
0=Control+Alt+P
|
|
||||||
|
|
||||||
[Behavior]
|
|
||||||
# デフォルトで有効にする
|
|
||||||
ActiveByDefault=False
|
|
||||||
# フォーカス時に状態をリセット
|
|
||||||
resetStateWhenFocusIn=No
|
|
||||||
# 入力状態を共有する
|
|
||||||
ShareInputState=No
|
|
||||||
# アプリケーションにプリエディットを表示する
|
|
||||||
PreeditEnabledByDefault=True
|
|
||||||
# 入力メソッドを切り替える際に入力メソッドの情報を表示する
|
|
||||||
ShowInputMethodInformation=True
|
|
||||||
# フォーカスを変更する際に入力メソッドの情報を表示する
|
|
||||||
showInputMethodInformationWhenFocusIn=False
|
|
||||||
# 入力メソッドの情報をコンパクトに表示する
|
|
||||||
CompactInputMethodInformation=True
|
|
||||||
# 第1入力メソッドの情報を表示する
|
|
||||||
ShowFirstInputMethodInformation=True
|
|
||||||
# デフォルトのページサイズ
|
|
||||||
DefaultPageSize=5
|
|
||||||
# XKB オプションより優先する
|
|
||||||
OverrideXkbOption=False
|
|
||||||
# カスタム XKB オプション
|
|
||||||
CustomXkbOption=
|
|
||||||
# Force Enabled Addons
|
|
||||||
EnabledAddons=
|
|
||||||
# Force Disabled Addons
|
|
||||||
DisabledAddons=
|
|
||||||
# Preload input method to be used by default
|
|
||||||
PreloadInputMethod=True
|
|
||||||
# パスワード欄に入力メソッドを許可する
|
|
||||||
AllowInputMethodForPassword=False
|
|
||||||
# パスワード入力時にプリエディットテキストを表示する
|
|
||||||
ShowPreeditForPassword=False
|
|
||||||
# ユーザーデータを保存する間隔(分)
|
|
||||||
AutoSavePeriod=30
|
|
||||||
|
|
||||||
@@ -1,7 +0,0 @@
|
|||||||
{ ... }:
|
|
||||||
{
|
|
||||||
home.file.".config/fcitx5/config" = {
|
|
||||||
recursive = true;
|
|
||||||
source = ./config;
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,30 +0,0 @@
|
|||||||
theme = dracula
|
|
||||||
background-blur-radius = 20
|
|
||||||
background-opacity = 0.9
|
|
||||||
font-family = BlexMono Nerd Font Mono
|
|
||||||
mouse-hide-while-typing = true
|
|
||||||
window-decoration = true
|
|
||||||
|
|
||||||
|
|
||||||
# keybind
|
|
||||||
|
|
||||||
# Copy/Paste
|
|
||||||
keybind = ctrl+shift+c=copy_to_clipboard
|
|
||||||
keybind = ctrl+shift+v=paste_from_clipboard
|
|
||||||
|
|
||||||
# create new tab
|
|
||||||
keybind = ctrl+shift+t=new_tab
|
|
||||||
|
|
||||||
# move tabs
|
|
||||||
keybind = ctrl+alt+left_bracket=previous_tab
|
|
||||||
keybind = ctrl+alt+right_bracket=next_tab
|
|
||||||
|
|
||||||
# close tab
|
|
||||||
keybind = ctrl+alt+q=close_window
|
|
||||||
|
|
||||||
# font size
|
|
||||||
keybind = ctrl+shift+semicolon=increase_font_size:1
|
|
||||||
keybind = ctrl+shift+minus=increase_font_size:1
|
|
||||||
|
|
||||||
|
|
||||||
shell-integration-features = ssh-terminfo,ssh-env
|
|
||||||
@@ -1,13 +0,0 @@
|
|||||||
{ ... }:
|
|
||||||
{
|
|
||||||
|
|
||||||
home.file.".config/ghostty/config" = {
|
|
||||||
recursive = true;
|
|
||||||
source = ./config;
|
|
||||||
};
|
|
||||||
|
|
||||||
home.file.".config/ghostty/themes/dracula" = {
|
|
||||||
recursive = true;
|
|
||||||
source = ./dracula.theme;
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,44 +0,0 @@
|
|||||||
# MIT License
|
|
||||||
#
|
|
||||||
# Copyright (c) 2023 Dracula Theme
|
|
||||||
#
|
|
||||||
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
||||||
# of this software and associated documentation files (the "Software"), to deal
|
|
||||||
# in the Software without restriction, including without limitation the rights
|
|
||||||
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
||||||
# copies of the Software, and to permit persons to whom the Software is
|
|
||||||
# furnished to do so, subject to the following conditions:
|
|
||||||
#
|
|
||||||
# The above copyright notice and this permission notice shall be included in all
|
|
||||||
# copies or substantial portions of the Software.
|
|
||||||
#
|
|
||||||
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
||||||
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
||||||
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
||||||
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
||||||
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
||||||
# SOFTWARE.
|
|
||||||
|
|
||||||
palette = 0=#21222c
|
|
||||||
palette = 1=#ff5555
|
|
||||||
palette = 2=#50fa7b
|
|
||||||
palette = 3=#f1fa8c
|
|
||||||
palette = 4=#bd93f9
|
|
||||||
palette = 5=#ff79c6
|
|
||||||
palette = 6=#8be9fd
|
|
||||||
palette = 7=#f8f8f2
|
|
||||||
palette = 8=#6272a4
|
|
||||||
palette = 9=#ff6e6e
|
|
||||||
palette = 10=#69ff94
|
|
||||||
palette = 11=#ffffa5
|
|
||||||
palette = 12=#d6acff
|
|
||||||
palette = 13=#ff92df
|
|
||||||
palette = 14=#a4ffff
|
|
||||||
palette = 15=#ffffff
|
|
||||||
background = #282a36
|
|
||||||
foreground = #f8f8f2
|
|
||||||
cursor-color = #f8f8f2
|
|
||||||
cursor-text = #282a36
|
|
||||||
selection-foreground = #f8f8f2
|
|
||||||
selection-background = #44475a
|
|
||||||
@@ -1,32 +0,0 @@
|
|||||||
{ host, ... }:
|
|
||||||
{
|
|
||||||
programs.git = {
|
|
||||||
enable = true;
|
|
||||||
ignores = [
|
|
||||||
".direnv/"
|
|
||||||
".envrc"
|
|
||||||
"!.envrc.example"
|
|
||||||
];
|
|
||||||
|
|
||||||
settings = {
|
|
||||||
user.name = "moons-14";
|
|
||||||
user.email = "moons@moons14.com";
|
|
||||||
push.default = "simple";
|
|
||||||
credential.helper = "cache --timeout=7200";
|
|
||||||
init.defaultBranch = "main";
|
|
||||||
log.decorate = "full";
|
|
||||||
log.date = "iso";
|
|
||||||
merge.conflictStyle = "diff3";
|
|
||||||
alias = {
|
|
||||||
br = "branch --sort=-committerdate";
|
|
||||||
co = "checkout";
|
|
||||||
df = "diff";
|
|
||||||
com = "commit -a";
|
|
||||||
gs = "stash";
|
|
||||||
gp = "pull";
|
|
||||||
lg = "log --graph --pretty=format:'%Cred%h%Creset - %C(yellow)%d%Creset %s %C(green)(%cr)%C(bold blue) <%an>%Creset' --abbrev-commit";
|
|
||||||
st = "status";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,18 +0,0 @@
|
|||||||
{ pkgs, ... }:
|
|
||||||
{
|
|
||||||
gtk = {
|
|
||||||
enable = true;
|
|
||||||
theme = {
|
|
||||||
name = "Dracula";
|
|
||||||
package = pkgs.dracula-theme;
|
|
||||||
};
|
|
||||||
cursorTheme = {
|
|
||||||
package = pkgs.adwaita-icon-theme;
|
|
||||||
name = "Adwaita";
|
|
||||||
};
|
|
||||||
iconTheme = {
|
|
||||||
package = pkgs.papirus-icon-theme;
|
|
||||||
name = "Papirus-Dark";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,34 +0,0 @@
|
|||||||
{ pkgs, lib, inputs, ... }:
|
|
||||||
|
|
||||||
let
|
|
||||||
noctaliaPkg = inputs.noctalia.packages.${pkgs.system}.default;
|
|
||||||
noctaliaExe = lib.getExe noctaliaPkg;
|
|
||||||
|
|
||||||
lockCmd = "${pkgs.bash}/bin/bash -lc '${noctaliaExe} ipc call lockScreen lock'";
|
|
||||||
lockAndSuspendCmd = "${pkgs.bash}/bin/bash -lc '${noctaliaExe} ipc call sessionMenu lockAndSuspend'";
|
|
||||||
|
|
||||||
dpmsOff = "${pkgs.niri}/bin/niri msg action power-off-monitors";
|
|
||||||
dpmsOn = "${pkgs.niri}/bin/niri msg action power-on-monitors";
|
|
||||||
in
|
|
||||||
{
|
|
||||||
services.swayidle = {
|
|
||||||
enable = true;
|
|
||||||
systemdTarget = "graphical-session.target";
|
|
||||||
|
|
||||||
timeouts = [
|
|
||||||
{ timeout = 300; command = lockAndSuspendCmd; }
|
|
||||||
];
|
|
||||||
|
|
||||||
events = [
|
|
||||||
{ event = "lock"; command = lockCmd; }
|
|
||||||
{ event = "before-sleep"; command = lockCmd; }
|
|
||||||
{ event = "after-resume"; command = dpmsOn; }
|
|
||||||
];
|
|
||||||
};
|
|
||||||
|
|
||||||
systemd.user.services.swayidle = {
|
|
||||||
Service = {
|
|
||||||
PassEnvironment = [ "WAYLAND_DISPLAY" "XDG_RUNTIME_DIR" "DBUS_SESSION_BUS_ADDRESS" ];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,9 +0,0 @@
|
|||||||
{ pkgs, ... }:
|
|
||||||
{
|
|
||||||
home.packages = with pkgs; [
|
|
||||||
nautilus
|
|
||||||
gvfs sushi
|
|
||||||
];
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
@@ -1,147 +0,0 @@
|
|||||||
{
|
|
||||||
inputs,
|
|
||||||
pkgs,
|
|
||||||
...
|
|
||||||
}: let
|
|
||||||
defaultKeyBind = import ./defaultKeyBind.nix;
|
|
||||||
in {
|
|
||||||
imports = [inputs.niri-flake.homeModules.niri];
|
|
||||||
programs.niri.package = pkgs.niri;
|
|
||||||
|
|
||||||
programs.niri.settings = {
|
|
||||||
input.touchpad = {
|
|
||||||
natural-scroll = true;
|
|
||||||
scroll-factor = 4.0;
|
|
||||||
scroll-method = "two-finger";
|
|
||||||
click-method = "clickfinger";
|
|
||||||
drag = true;
|
|
||||||
drag-lock = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
spawn-at-startup = [
|
|
||||||
{command = ["noctalia-shell"];}
|
|
||||||
];
|
|
||||||
|
|
||||||
outputs."eDP-1".scale = 1;
|
|
||||||
cursor.size = 16;
|
|
||||||
|
|
||||||
# Doracura color
|
|
||||||
layout = {
|
|
||||||
focus-ring = {
|
|
||||||
active.color = "#bd93f9";
|
|
||||||
inactive.color = "#6272a4";
|
|
||||||
};
|
|
||||||
border = {
|
|
||||||
active.color = "#ffc87f";
|
|
||||||
inactive.color = "#505050";
|
|
||||||
urgent.color = "#9b0000";
|
|
||||||
};
|
|
||||||
shadow = {
|
|
||||||
color = "#0007";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
binds =
|
|
||||||
defaultKeyBind
|
|
||||||
// {
|
|
||||||
"Mod+T" = {
|
|
||||||
action.spawn = "ghostty";
|
|
||||||
hotkey-overlay.title = "Open a Terminal: ghostty";
|
|
||||||
};
|
|
||||||
"Mod+D" = {
|
|
||||||
action.spawn = [
|
|
||||||
"vicinae"
|
|
||||||
"toggle"
|
|
||||||
];
|
|
||||||
hotkey-overlay.title = "Run an Application: vicinae";
|
|
||||||
};
|
|
||||||
"Mod+Space" = {
|
|
||||||
action.spawn = [
|
|
||||||
"vicinae"
|
|
||||||
"toggle"
|
|
||||||
];
|
|
||||||
hotkey-overlay.title = "Run an Application: vicinae";
|
|
||||||
};
|
|
||||||
"Mod+E" = {
|
|
||||||
action.spawn = [
|
|
||||||
"nautilus"
|
|
||||||
"--new-window"
|
|
||||||
];
|
|
||||||
hotkey-overlay.title = "Open File Manager: nautilus";
|
|
||||||
};
|
|
||||||
"Mod+L" = {
|
|
||||||
action.spawn = [
|
|
||||||
"noctalia-shell"
|
|
||||||
"ipc"
|
|
||||||
"call"
|
|
||||||
"sessionMenu"
|
|
||||||
"lockAndSuspend"
|
|
||||||
];
|
|
||||||
hotkey-overlay.title = "Lock the Screen: noctalia";
|
|
||||||
};
|
|
||||||
"Mod+V" = {
|
|
||||||
action.spawn = [
|
|
||||||
"vicinae"
|
|
||||||
"vicinae://extensions/vicinae/clipboard/history"
|
|
||||||
];
|
|
||||||
hotkey-overlay.title = "Clipboard History";
|
|
||||||
};
|
|
||||||
|
|
||||||
"XF86AudioRaiseVolume" = {
|
|
||||||
action.spawn = [
|
|
||||||
"noctalia-shell"
|
|
||||||
"ipc"
|
|
||||||
"call"
|
|
||||||
"volume"
|
|
||||||
"increase"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
"XF86AudioLowerVolume" = {
|
|
||||||
action.spawn = [
|
|
||||||
"noctalia-shell"
|
|
||||||
"ipc"
|
|
||||||
"call"
|
|
||||||
"volume"
|
|
||||||
"decrease"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
"XF86AudioMute" = {
|
|
||||||
action.spawn = [
|
|
||||||
"noctalia-shell"
|
|
||||||
"ipc"
|
|
||||||
"call"
|
|
||||||
"volume"
|
|
||||||
"muteOutput"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
"XF86AudioMicMute" = {
|
|
||||||
action.spawn = [
|
|
||||||
"noctalia-shell"
|
|
||||||
"ipc"
|
|
||||||
"call"
|
|
||||||
"volume"
|
|
||||||
"muteInput"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
|
|
||||||
"XF86MonBrightnessUp" = {
|
|
||||||
action.spawn = [
|
|
||||||
"noctalia-shell"
|
|
||||||
"ipc"
|
|
||||||
"call"
|
|
||||||
"brightness"
|
|
||||||
"increase"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
"XF86MonBrightnessDown" = {
|
|
||||||
action.spawn = [
|
|
||||||
"noctalia-shell"
|
|
||||||
"ipc"
|
|
||||||
"call"
|
|
||||||
"brightness"
|
|
||||||
"decrease"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,240 +0,0 @@
|
|||||||
{
|
|
||||||
# https://github.com/sodiboo/niri-flake/issues/483
|
|
||||||
|
|
||||||
# Keys consist of modifiers separated by + signs, followed by an XKB key name
|
|
||||||
# in the end. To find an XKB name for a particular key, you may use a program
|
|
||||||
# like wev.
|
|
||||||
#
|
|
||||||
# "Mod" is a special modifier equal to Super when running on a TTY, and to Alt
|
|
||||||
# when running as a winit window.
|
|
||||||
#
|
|
||||||
# Most actions that you can bind here can also be invoked programmatically with
|
|
||||||
# `niri msg action do-something`.
|
|
||||||
|
|
||||||
# Mod-Shift-/, which is usually the same as Mod-?,
|
|
||||||
# shows a list of important hotkeys.
|
|
||||||
"Mod+Shift+Slash".action.show-hotkey-overlay = {};
|
|
||||||
|
|
||||||
# You can also use a shell. Do this if you need pipes, multiple commands, etc.
|
|
||||||
# Note: the entire command goes as a single argument in the end.
|
|
||||||
# Mod+T { spawn "bash" "-c" "notify-send hello && exec alacritty"; }
|
|
||||||
|
|
||||||
# Example volume keys mappings for PipeWire & WirePlumber.
|
|
||||||
# The allow-when-locked=true property makes them work even when the session is locked.
|
|
||||||
"XF86AudioRaiseVolume" = {
|
|
||||||
allow-when-locked = true;
|
|
||||||
action.spawn = [ "wpctl" "set-volume" "@DEFAULT_AUDIO_SINK@" "0.1+" ];
|
|
||||||
};
|
|
||||||
"XF86AudioLowerVolume" = {
|
|
||||||
allow-when-locked = true;
|
|
||||||
action.spawn = ["wpctl" "set-volume" "@DEFAULT_AUDIO_SINK@" "0.1-"];
|
|
||||||
};
|
|
||||||
"XF86AudioMute" = {
|
|
||||||
allow-when-locked = true;
|
|
||||||
action.spawn = [ "wpctl" "set-mute" "@DEFAULT_AUDIO_SINK@" "toggle" ];
|
|
||||||
};
|
|
||||||
"XF86AudioMicMute" = {
|
|
||||||
allow-when-locked = true;
|
|
||||||
action.spawn = [ "wpctl" "set-mute" "@DEFAULT_AUDIO_SOURCE@" "toggle" ];
|
|
||||||
};
|
|
||||||
|
|
||||||
"Mod+Q".action.close-window = {};
|
|
||||||
|
|
||||||
"Mod+Left".action.focus-column-left = {};
|
|
||||||
"Mod+Down".action.focus-window-down = {};
|
|
||||||
"Mod+Up".action.focus-window-up = {};
|
|
||||||
"Mod+Right".action.focus-column-right = {};
|
|
||||||
"Mod+H".action.focus-column-left = {};
|
|
||||||
"Mod+J".action.focus-window-down = {};
|
|
||||||
"Mod+K".action.focus-window-up = {};
|
|
||||||
"Mod+L".action.focus-column-right = {};
|
|
||||||
|
|
||||||
"Mod+Ctrl+Left".action.move-column-left = {};
|
|
||||||
"Mod+Ctrl+Down".action.move-window-down = {};
|
|
||||||
"Mod+Ctrl+Up".action.move-window-up = {};
|
|
||||||
"Mod+Ctrl+Right".action.move-column-right = {};
|
|
||||||
"Mod+Ctrl+H".action.move-column-left = {};
|
|
||||||
"Mod+Ctrl+J".action.move-window-down = {};
|
|
||||||
"Mod+Ctrl+K".action.move-window-up = {};
|
|
||||||
"Mod+Ctrl+L".action.move-column-right = {};
|
|
||||||
|
|
||||||
# Alternative commands that move across workspaces when reaching
|
|
||||||
# the first or last window in a column.
|
|
||||||
# Mod+J { focus-window-or-workspace-down; }
|
|
||||||
# Mod+K { focus-window-or-workspace-up; }
|
|
||||||
# Mod+Ctrl+J { move-window-down-or-to-workspace-down; }
|
|
||||||
# Mod+Ctrl+K { move-window-up-or-to-workspace-up; }
|
|
||||||
|
|
||||||
"Mod+Home".action.focus-column-first = {};
|
|
||||||
"Mod+End".action.focus-column-last = {};
|
|
||||||
"Mod+Ctrl+Home".action.move-column-to-first = {};
|
|
||||||
"Mod+Ctrl+End".action.move-column-to-last = {};
|
|
||||||
|
|
||||||
"Mod+Shift+Left".action.focus-monitor-left = {};
|
|
||||||
"Mod+Shift+Down".action.focus-monitor-down = {};
|
|
||||||
"Mod+Shift+Up".action.focus-monitor-up = {};
|
|
||||||
"Mod+Shift+Right".action.focus-monitor-right = {};
|
|
||||||
"Mod+Shift+H".action.focus-monitor-left = {};
|
|
||||||
"Mod+Shift+J".action.focus-monitor-down = {};
|
|
||||||
"Mod+Shift+K".action.focus-monitor-up = {};
|
|
||||||
"Mod+Shift+L".action.focus-monitor-right = {};
|
|
||||||
|
|
||||||
"Mod+Shift+Ctrl+Left".action.move-column-to-monitor-left = {};
|
|
||||||
"Mod+Shift+Ctrl+Down".action.move-column-to-monitor-down = {};
|
|
||||||
"Mod+Shift+Ctrl+Up".action.move-column-to-monitor-up = {};
|
|
||||||
"Mod+Shift+Ctrl+Right".action.move-column-to-monitor-right = {};
|
|
||||||
"Mod+Shift+Ctrl+H".action.move-column-to-monitor-left = {};
|
|
||||||
"Mod+Shift+Ctrl+J".action.move-column-to-monitor-down = {};
|
|
||||||
"Mod+Shift+Ctrl+K".action.move-column-to-monitor-up = {};
|
|
||||||
"Mod+Shift+Ctrl+L".action.move-column-to-monitor-right = {};
|
|
||||||
|
|
||||||
# Alternatively, there are commands to move just a single window:
|
|
||||||
# Mod+Shift+Ctrl+Left { move-window-to-monitor-left; }
|
|
||||||
# ...
|
|
||||||
|
|
||||||
# And you can also move a whole workspace to another monitor:
|
|
||||||
# Mod+Shift+Ctrl+Left { move-workspace-to-monitor-left; }
|
|
||||||
# ...
|
|
||||||
|
|
||||||
"Mod+Page_Down".action.focus-workspace-down = {};
|
|
||||||
"Mod+Page_Up".action.focus-workspace-up = {};
|
|
||||||
"Mod+U".action.focus-workspace-down = {};
|
|
||||||
"Mod+I".action.focus-workspace-up = {};
|
|
||||||
"Mod+Ctrl+Page_Down".action.move-column-to-workspace-down = {};
|
|
||||||
"Mod+Ctrl+Page_Up".action.move-column-to-workspace-up = {};
|
|
||||||
"Mod+Ctrl+U".action.move-column-to-workspace-down = {};
|
|
||||||
"Mod+Ctrl+I".action.move-column-to-workspace-up = {};
|
|
||||||
|
|
||||||
# Alternatively, there are commands to move just a single window:
|
|
||||||
# Mod+Ctrl+Page_Down { move-window-to-workspace-down; }
|
|
||||||
# ...
|
|
||||||
|
|
||||||
"Mod+Shift+Page_Down".action.move-workspace-down = {};
|
|
||||||
"Mod+Shift+Page_Up".action.move-workspace-up = {};
|
|
||||||
"Mod+Shift+U".action.move-workspace-down = {};
|
|
||||||
"Mod+Shift+I".action.move-workspace-up = {};
|
|
||||||
|
|
||||||
# You can bind mouse wheel scroll ticks using the following syntax.
|
|
||||||
# These binds will change direction based on the natural-scroll setting.
|
|
||||||
#
|
|
||||||
# To avoid scrolling through workspaces really fast, you can use
|
|
||||||
# the cooldown-ms property. The bind will be rate-limited to this value.
|
|
||||||
# You can set a cooldown on any bind, but it's most useful for the wheel.
|
|
||||||
"Mod+WheelScrollDown" = {
|
|
||||||
cooldown-ms = 150;
|
|
||||||
action.focus-workspace-down = {};
|
|
||||||
};
|
|
||||||
"Mod+WheelScrollUp" = {
|
|
||||||
cooldown-ms = 150;
|
|
||||||
action.focus-workspace-up = {};
|
|
||||||
};
|
|
||||||
"Mod+Ctrl+WheelScrollDown" = {
|
|
||||||
cooldown-ms = 150;
|
|
||||||
action.move-column-to-workspace-down = {};
|
|
||||||
};
|
|
||||||
"Mod+Ctrl+WheelScrollUp" = {
|
|
||||||
cooldown-ms = 150;
|
|
||||||
action.move-column-to-workspace-up = {};
|
|
||||||
};
|
|
||||||
|
|
||||||
"Mod+WheelScrollRight".action.focus-column-right = {};
|
|
||||||
"Mod+WheelScrollLeft".action.focus-column-left = {};
|
|
||||||
"Mod+Ctrl+WheelScrollRight".action.move-column-right = {};
|
|
||||||
"Mod+Ctrl+WheelScrollLeft".action.move-column-left = {};
|
|
||||||
|
|
||||||
# Usually scrolling up and down with Shift in applications results in
|
|
||||||
# horizontal scrolling; these binds replicate that.
|
|
||||||
"Mod+Shift+WheelScrollDown".action.focus-column-right = {};
|
|
||||||
"Mod+Shift+WheelScrollUp".action.focus-column-left = {};
|
|
||||||
"Mod+Ctrl+Shift+WheelScrollDown".action.move-column-right = {};
|
|
||||||
"Mod+Ctrl+Shift+WheelScrollUp".action.move-column-left = {};
|
|
||||||
|
|
||||||
# Similarly, you can bind touchpad scroll "ticks".
|
|
||||||
# Touchpad scrolling is continuous, so for these binds it is split into
|
|
||||||
# discrete intervals.
|
|
||||||
# These binds are also affected by touchpad's natural-scroll, so these
|
|
||||||
# example binds are "inverted", since we have natural-scroll enabled for
|
|
||||||
# touchpads by default.
|
|
||||||
# Mod+TouchpadScrollDown { spawn "wpctl" "set-volume" "@DEFAULT_AUDIO_SINK@" "0.02+"; }
|
|
||||||
# Mod+TouchpadScrollUp { spawn "wpctl" "set-volume" "@DEFAULT_AUDIO_SINK@" "0.02-"; }
|
|
||||||
|
|
||||||
# You can refer to workspaces by index. However, keep in mind that
|
|
||||||
# niri is a dynamic workspace system, so these commands are kind of
|
|
||||||
# "best effort". Trying to refer to a workspace index bigger than
|
|
||||||
# the current workspace count will instead refer to the bottommost
|
|
||||||
# (empty) workspace.
|
|
||||||
#
|
|
||||||
# For example, with 2 workspaces + 1 empty, indices 3, 4, 5 and so on
|
|
||||||
# will all refer to the 3rd workspace.
|
|
||||||
"Mod+1".action.focus-workspace = 1;
|
|
||||||
"Mod+2".action.focus-workspace = 2;
|
|
||||||
"Mod+3".action.focus-workspace = 3;
|
|
||||||
"Mod+4".action.focus-workspace = 4;
|
|
||||||
"Mod+5".action.focus-workspace = 5;
|
|
||||||
"Mod+6".action.focus-workspace = 6;
|
|
||||||
"Mod+7".action.focus-workspace = 7;
|
|
||||||
"Mod+8".action.focus-workspace = 8;
|
|
||||||
"Mod+9".action.focus-workspace = 9;
|
|
||||||
"Mod+Ctrl+1".action.move-column-to-workspace = 1;
|
|
||||||
"Mod+Ctrl+2".action.move-column-to-workspace = 2;
|
|
||||||
"Mod+Ctrl+3".action.move-column-to-workspace = 3;
|
|
||||||
"Mod+Ctrl+4".action.move-column-to-workspace = 4;
|
|
||||||
"Mod+Ctrl+5".action.move-column-to-workspace = 5;
|
|
||||||
"Mod+Ctrl+6".action.move-column-to-workspace = 6;
|
|
||||||
"Mod+Ctrl+7".action.move-column-to-workspace = 7;
|
|
||||||
"Mod+Ctrl+8".action.move-column-to-workspace = 8;
|
|
||||||
"Mod+Ctrl+9".action.move-column-to-workspace = 9;
|
|
||||||
|
|
||||||
# Alternatively, there are commands to move just a single window:
|
|
||||||
# Mod+Ctrl+1 { move-window-to-workspace 1; }
|
|
||||||
|
|
||||||
# Switches focus between the current and the previous workspace.
|
|
||||||
# Mod+Tab { focus-workspace-previous; }
|
|
||||||
|
|
||||||
"Mod+Comma".action.consume-window-into-column = {};
|
|
||||||
"Mod+Period".action.expel-window-from-column = {};
|
|
||||||
|
|
||||||
# There are also commands that consume or expel a single window to the side.
|
|
||||||
# Mod+BracketLeft { consume-or-expel-window-left; }
|
|
||||||
# Mod+BracketRight { consume-or-expel-window-right; }
|
|
||||||
|
|
||||||
"Mod+R".action.switch-preset-column-width = {};
|
|
||||||
"Mod+Shift+R".action.reset-window-height = {};
|
|
||||||
"Mod+F".action.maximize-column = {};
|
|
||||||
"Mod+Shift+F".action.fullscreen-window = {};
|
|
||||||
"Mod+C".action.center-column = {};
|
|
||||||
|
|
||||||
# Finer width adjustments.
|
|
||||||
# This command can also:
|
|
||||||
# * set width in pixels: "1000"
|
|
||||||
# * adjust width in pixels: "-5" or "+5"
|
|
||||||
# * set width as a percentage of screen width: "25%"
|
|
||||||
# * adjust width as a percentage of screen width: "-10%" or "+10%"
|
|
||||||
# Pixel sizes use logical, or scaled, pixels. I.e. on an output with scale 2.0,
|
|
||||||
# set-column-width "100" will make the column occupy 200 physical screen pixels.
|
|
||||||
"Mod+Minus".action.set-column-width = "-10%";
|
|
||||||
"Mod+Equal".action.set-column-width = "+10%";
|
|
||||||
|
|
||||||
# Finer height adjustments when in column with other windows.
|
|
||||||
"Mod+Shift+Minus".action.set-window-height = "-10%";
|
|
||||||
"Mod+Shift+Equal".action.set-window-height = "+10%";
|
|
||||||
|
|
||||||
# Actions to switch layouts.
|
|
||||||
# Note: if you uncomment these, make sure you do NOT have
|
|
||||||
# a matching layout switch hotkey configured in xkb options above.
|
|
||||||
# Having both at once on the same hotkey will break the switching,
|
|
||||||
# since it will switch twice upon pressing the hotkey (once by xkb, once by niri).
|
|
||||||
# Mod+Space { switch-layout "next"; }
|
|
||||||
# Mod+Shift+Space { switch-layout "prev"; }
|
|
||||||
|
|
||||||
"Print".action.screenshot = {};
|
|
||||||
"Ctrl+Print".action.screenshot-screen = {};
|
|
||||||
"Alt+Print".action.screenshot-window = {};
|
|
||||||
|
|
||||||
# The quit action will show a confirmation dialog to avoid accidental exits.
|
|
||||||
"Mod+Shift+E".action.quit = {};
|
|
||||||
|
|
||||||
# Powers off the monitors. To> turn them back on, do any input like
|
|
||||||
# moving the mouse or pressing any other key.
|
|
||||||
"Mod+Shift+P".action.power-off-monitors = {};
|
|
||||||
}
|
|
||||||
@@ -1,8 +0,0 @@
|
|||||||
{...}: {
|
|
||||||
programs.nixvim.autoCmd = [
|
|
||||||
{
|
|
||||||
event = "TextYankPost";
|
|
||||||
callback.__raw = "function() vim.highlight.on_yank() end";
|
|
||||||
}
|
|
||||||
];
|
|
||||||
}
|
|
||||||
@@ -1,6 +0,0 @@
|
|||||||
{...}: {
|
|
||||||
programs.nixvim.colorschemes.catppuccin = {
|
|
||||||
enable = true;
|
|
||||||
settings.transparent_background = true;
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,45 +0,0 @@
|
|||||||
{
|
|
||||||
pkgs,
|
|
||||||
inputs,
|
|
||||||
...
|
|
||||||
}: {
|
|
||||||
imports = [
|
|
||||||
inputs.nixvim.homeModules.nixvim
|
|
||||||
./options.nix
|
|
||||||
./autocmds.nix
|
|
||||||
./keymaps.nix
|
|
||||||
./language.nix
|
|
||||||
./colorscheme.nix
|
|
||||||
./lsp.nix
|
|
||||||
./plugins
|
|
||||||
];
|
|
||||||
|
|
||||||
programs.nixvim = {
|
|
||||||
enable = true;
|
|
||||||
vimAlias = true;
|
|
||||||
viAlias = true;
|
|
||||||
withNodeJs = true;
|
|
||||||
|
|
||||||
extraPackages = with pkgs; [
|
|
||||||
git
|
|
||||||
ripgrep
|
|
||||||
fd
|
|
||||||
nodejs
|
|
||||||
zellij
|
|
||||||
|
|
||||||
# LSP / formatter / misc
|
|
||||||
vtsls
|
|
||||||
vscode-langservers-extracted
|
|
||||||
tailwindcss-language-server
|
|
||||||
prettierd
|
|
||||||
prettier
|
|
||||||
biome
|
|
||||||
stylua
|
|
||||||
shfmt
|
|
||||||
alejandra
|
|
||||||
lua-language-server
|
|
||||||
nixd
|
|
||||||
];
|
|
||||||
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,174 +0,0 @@
|
|||||||
{...}: let
|
|
||||||
mk = key: action: desc: {
|
|
||||||
mode = "n";
|
|
||||||
inherit key action;
|
|
||||||
options = {
|
|
||||||
silent = true;
|
|
||||||
inherit desc;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
mkRaw = key: raw: desc: {
|
|
||||||
mode = "n";
|
|
||||||
inherit key;
|
|
||||||
action.__raw = raw;
|
|
||||||
options = {
|
|
||||||
silent = true;
|
|
||||||
inherit desc;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
mkExpr = key: raw: desc: {
|
|
||||||
mode = "n";
|
|
||||||
inherit key;
|
|
||||||
action.__raw = raw;
|
|
||||||
options = {
|
|
||||||
silent = true;
|
|
||||||
expr = true;
|
|
||||||
inherit desc;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
in {
|
|
||||||
programs.nixvim = {
|
|
||||||
opts = {
|
|
||||||
# ジャンプ履歴をスタック寄りに扱う
|
|
||||||
jumpoptions = "stack";
|
|
||||||
|
|
||||||
# 既に開いているバッファや直前のウィンドウを優先して再利用
|
|
||||||
switchbuf = "useopen,uselast";
|
|
||||||
};
|
|
||||||
|
|
||||||
keymaps = [
|
|
||||||
# Search
|
|
||||||
(mk "<Esc>" "<cmd>nohlsearch<CR>" "検索ハイライトを解除")
|
|
||||||
|
|
||||||
# Screen line movement
|
|
||||||
(mkExpr "j" "function() return vim.v.count == 0 and 'gj' or 'j' end" "下へ移動(画面行優先)")
|
|
||||||
(mkExpr "k" "function() return vim.v.count == 0 and 'gk' or 'k' end" "上へ移動(画面行優先)")
|
|
||||||
|
|
||||||
# LSP: hover / direct jump
|
|
||||||
(mkRaw "K" "vim.lsp.buf.hover" "シンボル情報を表示")
|
|
||||||
(mkRaw "gd" "vim.lsp.buf.definition" "定義へジャンプ")
|
|
||||||
(mkRaw "grr" "vim.lsp.buf.references" "参照一覧を開く")
|
|
||||||
(mkRaw "gri" "vim.lsp.buf.implementation" "実装一覧を開く")
|
|
||||||
(mkRaw "grt" "vim.lsp.buf.type_definition" "型定義一覧を開く")
|
|
||||||
(mkRaw "grn" "vim.lsp.buf.rename" "シンボル名を一括変換")
|
|
||||||
(mkRaw "gra" "vim.lsp.buf.code_action" "コードアクション")
|
|
||||||
(mkRaw "gO" "vim.lsp.buf.document_symbol" "現在ファイルのシンボル一覧")
|
|
||||||
|
|
||||||
# Glance: preview / peek
|
|
||||||
(mk "gD" "<cmd>Glance definitions<CR>" "定義をプレビュー")
|
|
||||||
(mk "gR" "<cmd>Glance references<CR>" "参照をプレビュー")
|
|
||||||
(mk "gM" "<cmd>Glance implementations<CR>" "実装をプレビュー")
|
|
||||||
(mk "gY" "<cmd>Glance type_definitions<CR>" "型定義をプレビュー")
|
|
||||||
(mk "g." "<cmd>Glance resume<CR>" "直前のGlanceを再開")
|
|
||||||
|
|
||||||
# Convenience aliases
|
|
||||||
(mkRaw "<leader>rn" "vim.lsp.buf.rename" "シンボル名を一括変換")
|
|
||||||
(mkRaw "<leader>cf" "function() require('conform').format({ timeout_ms = 1000, lsp_format = 'fallback' }) end" "コードをフォーマット")
|
|
||||||
(mkRaw "<leader>ca" "vim.lsp.buf.code_action" "コードアクション")
|
|
||||||
|
|
||||||
# Diagnostics
|
|
||||||
(mkRaw "]d" "vim.diagnostic.goto_next" "次の診断へ移動")
|
|
||||||
(mkRaw "[d" "vim.diagnostic.goto_prev" "前の診断へ移動")
|
|
||||||
(mkRaw "<leader>dl" "vim.diagnostic.open_float" "診断の詳細を表示")
|
|
||||||
|
|
||||||
# File tree
|
|
||||||
(mk "<leader>e" "<cmd>Neotree toggle left<CR>" "ファイルツリー")
|
|
||||||
|
|
||||||
# Terminal
|
|
||||||
(mk "<leader>tt" "<cmd>ToggleTerm direction=float<CR>" "ターミナル")
|
|
||||||
|
|
||||||
# Trouble
|
|
||||||
(mk "<leader>xx" "<cmd>Trouble diagnostics toggle<CR>" "診断一覧")
|
|
||||||
(mk "<leader>xq" "<cmd>Trouble qflist toggle<CR>" "Quickfix一覧")
|
|
||||||
(mk "<leader>xl" "<cmd>Trouble loclist toggle<CR>" "Location List一覧")
|
|
||||||
(mk "<leader>xs" "<cmd>Trouble symbols toggle<CR>" "シンボル一覧")
|
|
||||||
(mk "<leader>xw" "<cmd>Trouble lsp toggle<CR>" "LSP一覧")
|
|
||||||
|
|
||||||
# Quickfix / Location list navigation
|
|
||||||
(mk "]q" "<cmd>cnext<CR>" "次のQuickfixへ")
|
|
||||||
(mk "[q" "<cmd>cprev<CR>" "前のQuickfixへ")
|
|
||||||
(mk "]l" "<cmd>lnext<CR>" "次のLocation Listへ")
|
|
||||||
(mk "[l" "<cmd>lprev<CR>" "前のLocation Listへ")
|
|
||||||
|
|
||||||
# Window navigation
|
|
||||||
(mk "<C-h>" "<C-w>h" "左のウィンドウへ")
|
|
||||||
(mk "<C-j>" "<C-w>j" "下のウィンドウへ")
|
|
||||||
(mk "<C-k>" "<C-w>k" "上のウィンドウへ")
|
|
||||||
(mk "<C-l>" "<C-w>l" "右のウィンドウへ")
|
|
||||||
(mk "<C-Left>" "<C-w>h" "左のウィンドウへ")
|
|
||||||
(mk "<C-Down>" "<C-w>j" "下のウィンドウへ")
|
|
||||||
(mk "<C-Up>" "<C-w>k" "上のウィンドウへ")
|
|
||||||
(mk "<C-Right>" "<C-w>l" "右のウィンドウへ")
|
|
||||||
|
|
||||||
# Alternate file / previous file
|
|
||||||
(mk "<leader><leader>" "<C-^>" "直前のファイルへ戻る")
|
|
||||||
(mk "<leader>w-" "<C-w><C-^>" "直前のファイルをsplitで開く")
|
|
||||||
|
|
||||||
# Buffer Bar
|
|
||||||
(mk "[b" "<Cmd>BufferPrevious<CR>" "前のバッファーに移動")
|
|
||||||
(mk "]b" "<Cmd>BufferNext<CR>" "次のバッファーに移動")
|
|
||||||
(mk "<leader>bc" "<Cmd>BufferClose<CR>" "バッファーを閉じる")
|
|
||||||
|
|
||||||
# Git Conflict
|
|
||||||
(mk "<leader>gco" "<cmd>GitConflictChooseOurs<CR>" "現在のブランチを選択")
|
|
||||||
(mk "<leader>gct" "<cmd>GitConflictChooseTheirs<CR>" "相手のブランチを選択")
|
|
||||||
(mk "<leader>gcb" "<cmd>GitConflictChooseBoth<CR>" "両方を選択")
|
|
||||||
(mk "<leader>gcx" "<cmd>GitConflictListQf<CR>" "コンフリクト一覧")
|
|
||||||
(mk "]x" "<cmd>GitConflictNextConflict<CR>" "次のコンフリクト")
|
|
||||||
(mk "[x" "<cmd>GitConflictPrevConflict<CR>" "前のコンフリクト")
|
|
||||||
|
|
||||||
# Git
|
|
||||||
(mk "<leader>gl" "<cmd>LazyGit<CR>" "LazyGitを開く")
|
|
||||||
(mk "<leader>gd" "<cmd>DiffviewOpen<CR>" "差分を開く")
|
|
||||||
(mk "<leader>gH" "<cmd>DiffviewFileHistory<CR>" "リポジトリ履歴")
|
|
||||||
(mk "<leader>gh" "<cmd>DiffviewFileHistory %<CR>" "現在ファイルの履歴")
|
|
||||||
(mk "<leader>gq" "<cmd>DiffviewClose<CR>" "差分を閉じる")
|
|
||||||
|
|
||||||
# Markview
|
|
||||||
(mk "<leader>mp" "<cmd>Markview splitToggle<CR>" "Markdownプレビュー")
|
|
||||||
|
|
||||||
# Zen Mode
|
|
||||||
(mk "<leader>zz" "<cmd>ZenMode<CR>" "Zen Modeを開く/閉じる")
|
|
||||||
|
|
||||||
# UFO (folding)
|
|
||||||
(mkRaw "zR" "require('ufo').openAllFolds" "全て展開")
|
|
||||||
(mkRaw "zM" "require('ufo').closeAllFolds" "全て折りたたむ")
|
|
||||||
|
|
||||||
# Dropbar
|
|
||||||
(mkRaw "<leader>dp" "function() require('dropbar.api').pick() end" "dropbarでナビゲート")
|
|
||||||
|
|
||||||
# Snacks
|
|
||||||
(mkRaw "<leader>sd" "function() Snacks.dim.toggle() end" "Dimモードをトグル")
|
|
||||||
|
|
||||||
# Flash
|
|
||||||
(mkRaw "s" "function() require('flash').jump() end" "Flashジャンプ")
|
|
||||||
(mkRaw "S" "function() require('flash').treesitter() end" "Flashツリーシッタ選択")
|
|
||||||
|
|
||||||
# Todo Comments
|
|
||||||
(mk "]t" "<cmd>TodoNext<CR>" "次のTODO")
|
|
||||||
(mk "[t" "<cmd>TodoPrev<CR>" "前のTODO")
|
|
||||||
(mkRaw "<leader>ft" "function() Snacks.picker.todo_comments() end" "TODO一覧")
|
|
||||||
|
|
||||||
# Spectre
|
|
||||||
(mkRaw "<leader>sr" "function() require('spectre').toggle() end" "検索・置換")
|
|
||||||
|
|
||||||
# Snacks Picker: generic
|
|
||||||
(mkRaw "<leader>ff" "function() Snacks.picker.files() end" "ファイルを探す")
|
|
||||||
(mkRaw "<leader>fg" "function() Snacks.picker.grep() end" "文字列を全文検索")
|
|
||||||
(mkRaw "<leader>fb" "function() Snacks.picker.buffers() end" "開いているバッファを探す")
|
|
||||||
(mkRaw "<leader>fh" "function() Snacks.picker.help() end" "ヘルプ項目を探す")
|
|
||||||
(mkRaw "<leader>fk" "function() Snacks.picker.keymaps() end" "キーマップを探す")
|
|
||||||
(mkRaw "<leader>fc" "function() Snacks.picker.commands() end" "コマンドを探す")
|
|
||||||
|
|
||||||
# Snacks Picker: code navigation
|
|
||||||
(mkRaw "<leader>fs" "function() Snacks.picker.lsp_symbols() end" "現在ファイルのシンボルを探す")
|
|
||||||
(mkRaw "<leader>fS" "function() Snacks.picker.lsp_workspace_symbols() end" "ワークスペース全体のシンボルを探す")
|
|
||||||
(mkRaw "<leader>fr" "function() Snacks.picker.registers() end" "レジスタを探す")
|
|
||||||
(mkRaw "<leader>fj" "function() Snacks.picker.jumps() end" "ジャンプ履歴を探す")
|
|
||||||
(mkRaw "<leader>fq" "function() Snacks.picker.qflist() end" "Quickfixを探す")
|
|
||||||
(mkRaw "<leader>fl" "function() Snacks.picker.loclist() end" "Location Listを探す")
|
|
||||||
];
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,13 +0,0 @@
|
|||||||
{...}: {
|
|
||||||
programs.nixvim = {
|
|
||||||
env = {
|
|
||||||
LANG = "ja_JP.UTF-8";
|
|
||||||
LC_MESSAGES = "ja_JP.UTF-8";
|
|
||||||
};
|
|
||||||
|
|
||||||
extraConfigLua = ''
|
|
||||||
vim.cmd.language("ja_JP.utf8")
|
|
||||||
vim.opt.helplang = { "ja", "en" }
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,65 +0,0 @@
|
|||||||
{...}: {
|
|
||||||
programs.nixvim = {
|
|
||||||
plugins.lsp = {
|
|
||||||
enable = true;
|
|
||||||
|
|
||||||
servers = {
|
|
||||||
# TypeScript / JavaScript
|
|
||||||
vtsls = {
|
|
||||||
enable = true;
|
|
||||||
packageFallback = true;
|
|
||||||
rootMarkers = [
|
|
||||||
"pnpm-workspace.yaml"
|
|
||||||
"package.json"
|
|
||||||
"tsconfig.json"
|
|
||||||
"jsconfig.json"
|
|
||||||
".git"
|
|
||||||
];
|
|
||||||
extraOptions.settings.typescript.locale = "ja";
|
|
||||||
};
|
|
||||||
|
|
||||||
# Biome for lint / format
|
|
||||||
biome = {
|
|
||||||
enable = true;
|
|
||||||
packageFallback = true;
|
|
||||||
rootMarkers = [
|
|
||||||
"biome.json"
|
|
||||||
"biome.jsonc"
|
|
||||||
"package.json"
|
|
||||||
"pnpm-workspace.yaml"
|
|
||||||
".git"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
|
|
||||||
# Frontend / config languages
|
|
||||||
tailwindcss.enable = true;
|
|
||||||
cssls.enable = true;
|
|
||||||
jsonls.enable = true;
|
|
||||||
yamlls.enable = true;
|
|
||||||
lua_ls.enable = true;
|
|
||||||
nixd.enable = true;
|
|
||||||
|
|
||||||
# Other languages
|
|
||||||
rust_analyzer = {
|
|
||||||
enable = true;
|
|
||||||
installCargo = true;
|
|
||||||
installRustc = true;
|
|
||||||
};
|
|
||||||
svelte.enable = true;
|
|
||||||
ty.enable = true;
|
|
||||||
ruff.enable = true;
|
|
||||||
astro.enable = true;
|
|
||||||
gopls.enable = true;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
# Diagnostic UI
|
|
||||||
diagnostic.settings = {
|
|
||||||
virtual_text = true;
|
|
||||||
float = {
|
|
||||||
border = "rounded";
|
|
||||||
source = true;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,50 +0,0 @@
|
|||||||
{...}: {
|
|
||||||
programs.nixvim = {
|
|
||||||
opts = {
|
|
||||||
# display
|
|
||||||
number = true;
|
|
||||||
relativenumber = true;
|
|
||||||
signcolumn = "yes";
|
|
||||||
termguicolors = true;
|
|
||||||
|
|
||||||
# action
|
|
||||||
mouse = "a";
|
|
||||||
clipboard = "unnamedplus";
|
|
||||||
updatetime = 200;
|
|
||||||
timeoutlen = 300;
|
|
||||||
undofile = true;
|
|
||||||
|
|
||||||
# display
|
|
||||||
wrap = false;
|
|
||||||
scrolloff = 8;
|
|
||||||
|
|
||||||
# search
|
|
||||||
ignorecase = true;
|
|
||||||
smartcase = true;
|
|
||||||
|
|
||||||
# window split
|
|
||||||
splitright = true;
|
|
||||||
splitbelow = true;
|
|
||||||
|
|
||||||
# indent
|
|
||||||
tabstop = 2;
|
|
||||||
shiftwidth = 2;
|
|
||||||
expandtab = true;
|
|
||||||
|
|
||||||
# file encoding
|
|
||||||
encoding = "utf-8";
|
|
||||||
fileencoding = "utf-8";
|
|
||||||
fileencodings = "utf-8,sjis,euc-jp,iso-2022-jp";
|
|
||||||
|
|
||||||
# invisible characters
|
|
||||||
list = true;
|
|
||||||
listchars = "tab:»-,trail:-,extends:»,precedes:«,nbsp:%";
|
|
||||||
};
|
|
||||||
|
|
||||||
globals = {
|
|
||||||
mapleader = " ";
|
|
||||||
maplocalleader = " ";
|
|
||||||
clipboard = "osc52";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,6 +0,0 @@
|
|||||||
{...}: {
|
|
||||||
imports = [
|
|
||||||
./ui
|
|
||||||
./editor
|
|
||||||
];
|
|
||||||
}
|
|
||||||
@@ -1,3 +0,0 @@
|
|||||||
{...}: {
|
|
||||||
programs.nixvim.plugins.nvim-autopairs.enable = true;
|
|
||||||
}
|
|
||||||
@@ -1,47 +0,0 @@
|
|||||||
{...}: {
|
|
||||||
programs.nixvim.plugins.blink-cmp = {
|
|
||||||
enable = true;
|
|
||||||
setupLspCapabilities = true;
|
|
||||||
|
|
||||||
settings = {
|
|
||||||
keymap = {
|
|
||||||
preset = "enter";
|
|
||||||
|
|
||||||
"<C-Space>" = ["show"];
|
|
||||||
"<C-d>" = ["scroll_documentation_up"];
|
|
||||||
"<C-e>" = ["hide"];
|
|
||||||
"<C-f>" = ["scroll_documentation_down"];
|
|
||||||
|
|
||||||
"<Tab>" = [
|
|
||||||
"accept"
|
|
||||||
{
|
|
||||||
__raw = ''
|
|
||||||
function()
|
|
||||||
local ok, copilot = pcall(require, "copilot.suggestion")
|
|
||||||
if ok and copilot.is_visible() then
|
|
||||||
copilot.accept()
|
|
||||||
return true
|
|
||||||
end
|
|
||||||
end
|
|
||||||
'';
|
|
||||||
}
|
|
||||||
"fallback"
|
|
||||||
];
|
|
||||||
"<S-Tab>" = ["select_prev" "fallback"];
|
|
||||||
"<C-n>" = ["select_next" "fallback"];
|
|
||||||
"<C-p>" = ["select_prev" "fallback"];
|
|
||||||
};
|
|
||||||
|
|
||||||
completion.list.selection = {
|
|
||||||
preselect = true;
|
|
||||||
auto_insert = false;
|
|
||||||
};
|
|
||||||
|
|
||||||
sources.default = [
|
|
||||||
"lsp"
|
|
||||||
"path"
|
|
||||||
"buffer"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,3 +0,0 @@
|
|||||||
{...}: {
|
|
||||||
programs.nixvim.plugins.comment.enable = true;
|
|
||||||
}
|
|
||||||
@@ -1,24 +0,0 @@
|
|||||||
{...}: {
|
|
||||||
programs.nixvim.plugins."conform-nvim" = {
|
|
||||||
enable = true;
|
|
||||||
settings = {
|
|
||||||
formatters_by_ft = {
|
|
||||||
javascript.__raw = ''{ "biome", "prettierd", "prettier", stop_after_first = true }'';
|
|
||||||
javascriptreact.__raw = ''{ "biome", "prettierd", "prettier", stop_after_first = true }'';
|
|
||||||
typescript.__raw = ''{ "biome", "prettierd", "prettier", stop_after_first = true }'';
|
|
||||||
typescriptreact.__raw = ''{ "biome", "prettierd", "prettier", stop_after_first = true }'';
|
|
||||||
json.__raw = ''{ "biome", "prettierd", "prettier", stop_after_first = true }'';
|
|
||||||
yaml.__raw = ''{ "prettierd", "prettier", stop_after_first = true }'';
|
|
||||||
markdown.__raw = ''{ "prettierd", "prettier", stop_after_first = true }'';
|
|
||||||
lua = ["stylua"];
|
|
||||||
nix = ["alejandra"];
|
|
||||||
sh = ["shfmt"];
|
|
||||||
};
|
|
||||||
format_on_save.__raw = ''
|
|
||||||
function(_)
|
|
||||||
return { timeout_ms = 1000, lsp_format = "fallback" }
|
|
||||||
end
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,11 +0,0 @@
|
|||||||
{...}: {
|
|
||||||
programs.nixvim.plugins.copilot-lua = {
|
|
||||||
enable = true;
|
|
||||||
settings = {
|
|
||||||
suggestion = {
|
|
||||||
auto_trigger = true;
|
|
||||||
keymap.enabled = false;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,22 +0,0 @@
|
|||||||
{...}: {
|
|
||||||
imports = [
|
|
||||||
./snacks.nix
|
|
||||||
./treesitter.nix
|
|
||||||
./blink-cmp.nix
|
|
||||||
./gitsigns.nix
|
|
||||||
./comment.nix
|
|
||||||
./autopairs.nix
|
|
||||||
./lsp-signature.nix
|
|
||||||
./copilot.nix
|
|
||||||
./trouble.nix
|
|
||||||
./conform.nix
|
|
||||||
./surround.nix
|
|
||||||
./git.nix
|
|
||||||
./git-conflict.nix
|
|
||||||
./glance.nix
|
|
||||||
./flash.nix
|
|
||||||
./todo-comments.nix
|
|
||||||
./spectre.nix
|
|
||||||
./wakatime.nix
|
|
||||||
];
|
|
||||||
}
|
|
||||||
@@ -1,8 +0,0 @@
|
|||||||
{ pkgs, ... }: {
|
|
||||||
programs.nixvim = {
|
|
||||||
extraPlugins = [ pkgs.vimPlugins.flash-nvim ];
|
|
||||||
extraConfigLua = ''
|
|
||||||
require("flash").setup()
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,8 +0,0 @@
|
|||||||
{ pkgs, ... }: {
|
|
||||||
programs.nixvim = {
|
|
||||||
extraPlugins = [ pkgs.vimPlugins.git-conflict-nvim ];
|
|
||||||
extraConfigLua = ''
|
|
||||||
require("git-conflict").setup()
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,10 +0,0 @@
|
|||||||
{ pkgs, ... }: {
|
|
||||||
programs.nixvim = {
|
|
||||||
extraPackages = [ pkgs.lazygit ];
|
|
||||||
|
|
||||||
plugins = {
|
|
||||||
lazygit.enable = true;
|
|
||||||
diffview.enable = true;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,15 +0,0 @@
|
|||||||
{...}: {
|
|
||||||
# git change view
|
|
||||||
programs.nixvim.plugins.gitsigns = {
|
|
||||||
enable = true;
|
|
||||||
settings = {
|
|
||||||
signs = {
|
|
||||||
add = {text = "+";};
|
|
||||||
change = {text = "~";};
|
|
||||||
delete = {text = "_";};
|
|
||||||
topdelete = {text = "‾";};
|
|
||||||
changedelete = {text = "~";};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,8 +0,0 @@
|
|||||||
{ pkgs, ... }: {
|
|
||||||
programs.nixvim = {
|
|
||||||
extraPlugins = [ pkgs.vimPlugins.glance-nvim ];
|
|
||||||
extraConfigLua = ''
|
|
||||||
require("glance").setup()
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,11 +0,0 @@
|
|||||||
{...}: {
|
|
||||||
programs.nixvim.plugins.lsp-signature = {
|
|
||||||
enable = true;
|
|
||||||
settings = {
|
|
||||||
hint_enable = true;
|
|
||||||
hint_prefix = " ";
|
|
||||||
floating_window = true;
|
|
||||||
bind = true;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,31 +0,0 @@
|
|||||||
{pkgs, ...}: {
|
|
||||||
programs.nixvim = {
|
|
||||||
extraPlugins = [pkgs.vimPlugins.snacks-nvim];
|
|
||||||
|
|
||||||
extraConfigLua = ''
|
|
||||||
require("snacks").setup({
|
|
||||||
picker = {
|
|
||||||
enabled = true,
|
|
||||||
|
|
||||||
actions = require("trouble.sources.snacks").actions,
|
|
||||||
|
|
||||||
win = {
|
|
||||||
input = {
|
|
||||||
keys = {
|
|
||||||
["<C-t>"] = {
|
|
||||||
"trouble_open",
|
|
||||||
mode = { "n", "i" },
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
|
|
||||||
notifier = { enabled = true },
|
|
||||||
words = { enabled = true },
|
|
||||||
scroll = { enabled = true },
|
|
||||||
dim = { enabled = true },
|
|
||||||
})
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,9 +0,0 @@
|
|||||||
{ pkgs, ... }: {
|
|
||||||
programs.nixvim = {
|
|
||||||
extraPackages = [ pkgs.ripgrep ];
|
|
||||||
extraPlugins = [ pkgs.vimPlugins.nvim-spectre ];
|
|
||||||
extraConfigLua = ''
|
|
||||||
require("spectre").setup()
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,3 +0,0 @@
|
|||||||
{...}: {
|
|
||||||
programs.nixvim.plugins.nvim-surround.enable = true;
|
|
||||||
}
|
|
||||||
@@ -1,8 +0,0 @@
|
|||||||
{ pkgs, ... }: {
|
|
||||||
programs.nixvim = {
|
|
||||||
extraPlugins = [ pkgs.vimPlugins.todo-comments-nvim ];
|
|
||||||
extraConfigLua = ''
|
|
||||||
require("todo-comments").setup()
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,16 +0,0 @@
|
|||||||
{ pkgs, ... }: {
|
|
||||||
programs.nixvim = {
|
|
||||||
plugins.treesitter = {
|
|
||||||
enable = true;
|
|
||||||
settings = {
|
|
||||||
highlight.enable = true;
|
|
||||||
indent.enable = true;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
extraPlugins = [ pkgs.vimPlugins.nvim-ts-autotag ];
|
|
||||||
extraConfigLua = ''
|
|
||||||
require("nvim-ts-autotag").setup()
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,3 +0,0 @@
|
|||||||
{...}: {
|
|
||||||
programs.nixvim.plugins.trouble.enable = true;
|
|
||||||
}
|
|
||||||
@@ -1,3 +0,0 @@
|
|||||||
{ pkgs, ... }: {
|
|
||||||
programs.nixvim.extraPlugins = [ pkgs.vimPlugins.vim-wakatime ];
|
|
||||||
}
|
|
||||||
@@ -1,26 +0,0 @@
|
|||||||
{...}: {
|
|
||||||
programs.nixvim.plugins.barbar = {
|
|
||||||
enable = true;
|
|
||||||
settings = {
|
|
||||||
animation = false;
|
|
||||||
auto_hide = 1;
|
|
||||||
tabpages = true;
|
|
||||||
clickable = true;
|
|
||||||
focus_on_close = "left";
|
|
||||||
|
|
||||||
icons = {
|
|
||||||
button = "";
|
|
||||||
separator = {
|
|
||||||
left = "▎";
|
|
||||||
right = "";
|
|
||||||
};
|
|
||||||
separator_at_end = false;
|
|
||||||
filetype.enabled = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
sidebar_filetypes = {
|
|
||||||
neo-tree = true;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,20 +0,0 @@
|
|||||||
{...}: {
|
|
||||||
programs.nixvim.plugins.indent-blankline = {
|
|
||||||
enable = true;
|
|
||||||
settings = {
|
|
||||||
scope = {
|
|
||||||
enabled = true;
|
|
||||||
show_start = true;
|
|
||||||
show_end = true;
|
|
||||||
};
|
|
||||||
exclude = {
|
|
||||||
filetypes = [
|
|
||||||
"help"
|
|
||||||
"neo-tree"
|
|
||||||
"toggleterm"
|
|
||||||
"lazy"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,23 +0,0 @@
|
|||||||
{...}: {
|
|
||||||
programs.nixvim.plugins.colorizer = {
|
|
||||||
enable = true;
|
|
||||||
|
|
||||||
settings = {
|
|
||||||
filetypes = ["*" "!markdown"];
|
|
||||||
user_commands = true;
|
|
||||||
|
|
||||||
options = {
|
|
||||||
parsers = {
|
|
||||||
css = true;
|
|
||||||
tailwind = {
|
|
||||||
enable = true;
|
|
||||||
lsp = true;
|
|
||||||
update_names = true;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
display.mode = "background";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,19 +0,0 @@
|
|||||||
{...}: {
|
|
||||||
imports = [
|
|
||||||
./lualine.nix
|
|
||||||
./neo-tree.nix
|
|
||||||
./blankline.nix
|
|
||||||
./which-key.nix
|
|
||||||
./web-devicons.nix
|
|
||||||
./toggleterm.nix
|
|
||||||
./treesitter.nix
|
|
||||||
./barbar.nix
|
|
||||||
./lightbulb.nix
|
|
||||||
./colorizer.nix
|
|
||||||
./dropbar.nix
|
|
||||||
./scrollbar.nix
|
|
||||||
./ufo.nix
|
|
||||||
./zen-mode.nix
|
|
||||||
./markview.nix
|
|
||||||
];
|
|
||||||
}
|
|
||||||
@@ -1,3 +0,0 @@
|
|||||||
{...}: {
|
|
||||||
programs.nixvim.plugins.dropbar.enable = true;
|
|
||||||
}
|
|
||||||
@@ -1,6 +0,0 @@
|
|||||||
{...}: {
|
|
||||||
programs.nixvim.plugins.nvim-lightbulb = {
|
|
||||||
enable = true;
|
|
||||||
settings.autocmd.enabled = true;
|
|
||||||
};
|
|
||||||
}
|
|
||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user