Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 12 additions & 0 deletions config/hyprland/hyprland.conf
Original file line number Diff line number Diff line change
Expand Up @@ -295,6 +295,18 @@ bind = $mod SHIFT, down, movewindow, d
bind = $mod SHIFT, left, movetoworkspace, empty
bind = $mod SHIFT, right, movetoworkspace, empty

# Swap windows (vim keys)
bind = $mod ALT, H, swapwindow, l
bind = $mod ALT, L, swapwindow, r
bind = $mod ALT, K, swapwindow, u
bind = $mod ALT, J, swapwindow, d

# Swap windows (arrow keys)
bind = $mod ALT SHIFT, left, swapwindow, l
bind = $mod ALT SHIFT, right, swapwindow, r
bind = $mod ALT SHIFT, up, swapwindow, u
bind = $mod ALT SHIFT, down, swapwindow, d

# Resize windows (arrow keys)
binde = $mod CTRL, left, resizeactive, -20 0
binde = $mod CTRL, right, resizeactive, 20 0
Expand Down
2 changes: 1 addition & 1 deletion config/serena/default.nix
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{ config, ... }:
{
home.file.".serena/serena_config.yml" = {
source = ./serena_config.yml;
text = builtins.readFile ./serena_config.yml;
force = true;
};
}
71 changes: 54 additions & 17 deletions flake.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

11 changes: 10 additions & 1 deletion flake.nix
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,18 @@
description = "Shun Kakinoki's Nix Configuration";

inputs = {
nixpkgs = {
nixpkgs-stable = {
url = "github:NixOS/nixpkgs/nixos-24.11";
};
nixpkgs-unstable = {
url = "github:NixOS/nixpkgs/nixpkgs-unstable";
};
nixpkgs-nightly = {
url = "github:NixOS/nixpkgs/master";
};
Comment on lines +11 to +13

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

security-medium medium

The configuration fetches nixpkgs-nightly directly from the master branch. The master branch is a development branch and can receive frequent, less-vetted updates, including potentially vulnerable or unstable code. While Nix flakes pin dependencies in flake.lock, an update to the flake's inputs will pull the latest commit from master, which could introduce untrusted code. This practice increases the risk of supply chain attacks compared to using tagged releases or more stable channels.

Recommendation: For better security and stability, pin the dependency to a specific, immutable git revision (a commit hash or tag) instead of a floating branch like master. This ensures that you are always using a known, vetted version of the dependency.

nixpkgs = {
follows = "nixpkgs-unstable";
};
home-manager = {
url = "github:nix-community/home-manager";
inputs.nixpkgs.follows = "nixpkgs";
Expand Down
1 change: 1 addition & 0 deletions home-manager/packages/default.nix
Original file line number Diff line number Diff line change
Expand Up @@ -123,6 +123,7 @@ with pkgs;
chromium
clickup
cliphist
code-cursor

Copilot AI Feb 10, 2026

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

code-cursor is only included when (stdenv.isLinux && isDesktop) is true, but the repo’s eval checks appear to run with inputs.host.isDesktop = false by default (lib/host.nix), so this addition likely isn’t exercised by nix flake check. Consider extending the evaluation checks (or adding a desktop test config) so the desktop-only package set is evaluated and failures like missing/renamed attributes are caught in CI.

Copilot uses AI. Check for mistakes.
discord
evince
ffmpeg
Expand Down
2 changes: 2 additions & 0 deletions home-manager/services/code-syncer/default.nix
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,9 @@ in
lib.makeBinPath [
pkgs.bash
pkgs.coreutils
pkgs.code-cursor
pkgs.inotify-tools
pkgs.vscode
]
}";
ExecStart = "${pkgs.bash}/bin/bash ${./sync.sh}";
Expand Down
10 changes: 10 additions & 0 deletions overlays/default.nix
Original file line number Diff line number Diff line change
Expand Up @@ -32,4 +32,14 @@
'';
});
})
(final: prev: {
nightlyPkgs = import inputs.nixpkgs-nightly {
system = prev.system;
config = prev.config;
overlays = [ ];
};
codex = final.nightlyPkgs.codex;
claude-code = final.nightlyPkgs.claude-code;
opencode = final.nightlyPkgs.opencode;
Comment on lines +41 to +43

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

critical

The packages codex and opencode are marked as unfree in nixpkgs. The build will fail on Linux systems because they are not included in the allowUnfreePredicate in lib/nixpkgs-config.nix. Please add them to the list of allowed unfree packages to prevent build failures.

})
Comment on lines +35 to +44

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

This overlay implementation adds nightlyPkgs to the global pkgs namespace, which is likely unintended. Using a let block would make the overlay cleaner and prevent polluting the package set.

Additionally, for consistency with the PR's goal of using nixpkgs-master for AI tools, you should consider also overriding code-cursor (which was added in this PR) to use the version from nixpkgs-nightly.

  (final: prev:
    let
      nightlyPkgs = import inputs.nixpkgs-nightly {
        system = prev.system;
        config = prev.config;
        overlays = [ ];
      };
    in {
      codex = nightlyPkgs.codex;
      claude-code = nightlyPkgs.claude-code;
      opencode = nightlyPkgs.opencode;
      code-cursor = nightlyPkgs.code-cursor;
    })

Comment on lines +35 to +44

Copilot AI Feb 10, 2026

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The overlay exports nightlyPkgs into pkgs and then references it via final.nightlyPkgs.*. If the intent is only to override a few packages, consider keeping the imported nixpkgs set as a local let nightlyPkgs = ...; in { ... } binding and referencing nightlyPkgs.<pkg> directly. This avoids adding a new top-level pkgs.nightlyPkgs attribute (API surface) and reduces coupling to overlay evaluation order (e.g., relying on prev.system).

Suggested change
(final: prev: {
nightlyPkgs = import inputs.nixpkgs-nightly {
system = prev.system;
config = prev.config;
overlays = [ ];
};
codex = final.nightlyPkgs.codex;
claude-code = final.nightlyPkgs.claude-code;
opencode = final.nightlyPkgs.opencode;
})
(final: prev:
let
nightlyPkgs = import inputs.nixpkgs-nightly {
system = prev.system;
config = prev.config;
overlays = [ ];
};
in {
codex = nightlyPkgs.codex;
claude-code = nightlyPkgs.claude-code;
opencode = nightlyPkgs.opencode;
})

Copilot uses AI. Check for mistakes.
]
4 changes: 3 additions & 1 deletion renovate.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
{
"$schema": "https://docs.renovatebot.com/renovate-schema.json",
"repositories": ["shunkakinoki/dotfiles"],
"repositories": [
"shunkakinoki/dotfiles"
],
"extends": [
"config:recommended",
"group:allNonMajor",
Expand Down
Loading