Compare commits

...
10 Commits
7 changed files with 78 additions and 34 deletions
Generated
+12 -12
View File
@@ -28,11 +28,11 @@
]
},
"locked": {
"lastModified": 1784546264,
"narHash": "sha256-jxVr5EHMYAOkFvS2k0abIvt6NqyshyWmiHHzV17sT2g=",
"lastModified": 1785958398,
"narHash": "sha256-5r/JgsoNMTx+qIh83WkxpujEKBR7PF5ssnh5vYCuSAw=",
"owner": "nix-community",
"repo": "home-manager",
"rev": "e3dea8e4792b09a6c0eb5836b0284ad05b1acba0",
"rev": "a7c70cc290290f373f50cd820403833d250459ac",
"type": "github"
},
"original": {
@@ -43,11 +43,11 @@
},
"nixpkgs": {
"locked": {
"lastModified": 1784497964,
"narHash": "sha256-vlHUuqAcbcH2RKmHbPiuQzbv1pnzzavXnI62RD0bqCU=",
"lastModified": 1785967620,
"narHash": "sha256-IItrdb7Puk05RqOBWZYFC5X6Wl1sJmCfh5MWVHw5iMM=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "241313f4e8e508cb9b13278c2b0fa25b9ca27163",
"rev": "b7c2ada94fe99c15b0dbcf4d11fd7850b957a436",
"type": "github"
},
"original": {
@@ -66,11 +66,11 @@
"systems": "systems"
},
"locked": {
"lastModified": 1784057377,
"narHash": "sha256-yycNej5//EsRbV10moBoh+/63vXEwZD1ZFEiRm6C9rQ=",
"lastModified": 1785763201,
"narHash": "sha256-wA373y/B9orM3HatLu9oS+Ke5lmdZyBl/bdjd2gLMq4=",
"owner": "nix-community",
"repo": "nixvim",
"rev": "07180a087e4a00720dc0731cbcd8dec796974381",
"rev": "c7be49306b23a952c0151cf4bbeacd944ed82f2a",
"type": "github"
},
"original": {
@@ -86,11 +86,11 @@
]
},
"locked": {
"lastModified": 1784556533,
"narHash": "sha256-tlcP2x7d+ldS3BypTcInqrsOhi6BPuSSTeubfBMmm8Y=",
"lastModified": 1786013897,
"narHash": "sha256-u14Iaus6ROW6IWQUNGZ/IZJ3TcIUs1ngxn5sUMNnwMM=",
"owner": "noctalia-dev",
"repo": "noctalia-shell",
"rev": "815635cf7dc810616c9e6ecf4b9b4f4c54e69905",
"rev": "0247e4c5e5268f8c2a5658b60b97cb5f2eca7766",
"type": "github"
},
"original": {
+2
View File
@@ -2,6 +2,7 @@
{
imports = [
../../modules/nixos/appimage.nix
../../modules/nixos/astro.nix
../../modules/nixos/audio.nix
../../modules/nixos/bootloader.nix
@@ -25,6 +26,7 @@
../../modules/nixos/steam.nix
../../modules/nixos/thunar.nix
../../modules/nixos/users.nix
../../modules/nixos/vial.nix
];
# set hostname
+2
View File
@@ -2,6 +2,7 @@
{
imports = [
../../modules/nixos/appimage.nix
../../modules/nixos/astro.nix
../../modules/nixos/audio.nix
../../modules/nixos/bootloader.nix
@@ -21,6 +22,7 @@
../../modules/nixos/settings.nix
../../modules/nixos/steam.nix
../../modules/nixos/users.nix
../../modules/nixos/vial.nix
];
# set hostname
+16 -22
View File
@@ -5,7 +5,7 @@ let
#
# Written as escapes rather than literal glyphs. These are Private Use Area
# codepoints: they render only with a patched font, they survive copy/paste
# badly, and when they get stripped the loss is invisible -- the config still
# badly, and when they get stripped the loss is invisible, the config still
# parses, the status bar just quietly loses its separators. Nix has no \u
# escape of its own, but fromJSON does.
sep = builtins.fromJSON ''
@@ -19,28 +19,27 @@ let
in
{
programs.tmux = {
# defaults
enable = true;
prefix = "C-a";
keyMode = "vi";
mouse = true;
# tmux-256color gives truecolor, italics and undercurl in nvim.
# screen-256color has none of them. No terminfo gymnastics needed here --
# unlike macOS, NixOS ships a current ncurses that has the entry.
terminal = "tmux-256color";
# Default is 500ms. That is the lag you feel leaving insert mode in nvim,
# Default is 500ms. Causes lag you feel when leaving insert mode in nvim,
# because tmux is waiting to see whether Esc starts an escape sequence.
escapeTime = 10;
# nvim autoread / :checktime react to focus. home-manager defaults to false.
# nvim autoread / :checktime react to focus.
focusEvents = true;
# Default is 2000.
# History limit.
historyLimit = 50000;
# Window numbers matching the number row. Behaviour change, so opt in.
# baseIndex = 1;
# Window numbers matching the number row.
baseIndex = 1;
extraConfig = ''
# Status keys
@@ -49,16 +48,15 @@ in
# Tell tmux the outer terminal can do 24-bit colour (tmux >= 3.2).
set -sa terminal-features ",*:RGB"
# --- Shift+Enter / extended keys -----------------------------------
# Still the open topic; uncommenting these makes tmux forward CSI-u
# sequences unconditionally. Needs tmux >= 3.5 for the format option,
# and a `tmux kill-server` afterwards -- a config reload is not enough.
#set -s extended-keys always
#set -s extended-keys-format csi-u
#set -as terminal-features '*:extkeys'
# Shift+Enter / extended keys
# These make tmux forward CSI-u sequences unconditionally.
# Needs tmux >= 3.5 for the format option,
set -s extended-keys always
set -s extended-keys-format csi-u
set -as terminal-features '*:extkeys'
# Status bar options
set -g status-interval 5 # was 1; the clock only has minute resolution
set -g status-interval 5
set -g status-justify left
# Clock mode
@@ -69,11 +67,9 @@ in
set -g status-fg white
# Key bindings
# Reload configuration. tmux.conf is a read-only symlink into the nix
# store, so this only picks up changes after `home-manager switch`.
bind r source-file ~/.config/tmux/tmux.conf \; display-message "tmux.conf reloaded"
# Panel split and selection -- new panes/windows inherit the cwd
# Panel split and selection, new panes/windows inherit the cwd
unbind %
unbind '"'
bind v split-window -v -c "#{pane_current_path}"
@@ -88,7 +84,7 @@ in
bind k select-pane -U
bind l select-pane -R
# Resize panes -- -r makes them repeatable, hold instead of re-prefixing
# Resize panes
bind -r H resize-pane -L 5
bind -r J resize-pane -D 5
bind -r K resize-pane -U 5
@@ -96,7 +92,6 @@ in
# Wayland clipboard integration
# Copy selection to both clipboard (Ctrl+V / Shift+Insert) and primary (middle-click)
# v/C-v added: you had no way to *start* a selection from the keyboard.
bind -T copy-mode-vi v send-keys -X begin-selection
bind -T copy-mode-vi C-v send-keys -X rectangle-toggle
bind -T copy-mode-vi y send-keys -X copy-pipe-and-cancel "wl-copy && wl-copy --primary"
@@ -107,7 +102,6 @@ in
#set -g set-clipboard on
# Kill commands
# Drop the `confirm-before -p "..."` part for the old single keystroke.
bind q confirm-before -p "kill window #W? (y/n)" kill-window
bind Q confirm-before -p "kill session #S? (y/n)" kill-session
+19
View File
@@ -0,0 +1,19 @@
{ config, lib, pkgs, ... }:
{
# AppImages ship a squashfs payload that the bundled runtime mounts through
# libfuse.so.2 at startup. nix-ld resolves the ELF interpreter but not that
# dlopen, so running one directly dies with "dlopen(): error loading
# libfuse.so.2". appimage-run sidesteps the mount entirely: it unpacks the
# image and runs the payload inside an FHS sandbox, which the bundled Qt and
# electron style binaries need anyway.
#
# Used for the BitBox02 wallet AppImage, downloaded fresh from
# https://bitbox.swiss/download/ rather than installed from nixpkgs.
programs.appimage = {
enable = true;
# register AppImages with binfmt_misc so ./Something.AppImage runs as-is,
# no appimage-run prefix to remember.
binfmt = true;
};
}
+1
View File
@@ -35,6 +35,7 @@
tree
unzip
usbutils
vial
vim
wget
which
+26
View File
@@ -0,0 +1,26 @@
{ config, lib, pkgs, ... }:
{
# Vial-capable keyboards (lily58 pro r2g) expose a second, non-keyboard raw
# HID interface that vial.rocks drives over WebHID. Its /dev/hidraw* node is
# root-only by default, so neither chromium nor the native app can open it.
#
# This has to ship as a numbered rules file rather than via
# services.udev.extraRules: extraRules lands in 99-local.rules, but the
# builtin that turns TAG+="uaccess" into an actual ACL is invoked from
# systemd's 73-seat-late.rules. A tag set at 99 is set too late to be seen,
# so the device ends up correctly tagged and still unreadable. 60- sorts
# safely ahead of 73.
services.udev.packages = [
(pkgs.writeTextFile {
name = "vial-udev-rules";
destination = "/lib/udev/rules.d/60-vial.rules";
# Vial firmware advertises itself through a magic USB serial, so this
# matches any vial board rather than just the lily58. uaccess hands the
# device to whoever owns the active seat, no group membership needed.
text = ''
KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{serial}=="*vial:f64c2b3c*", TAG+="uaccess"
'';
})
];
}