mirror of
https://github.com/FabricSoul/nixos-configs.git
synced 2026-02-03 22:26:24 -05:00
Compare commits
8 commits
75ab739fff
...
a24608fc43
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
a24608fc43 | ||
|
|
331b726809 | ||
|
|
5414520b55 | ||
|
|
88b599c244 | ||
|
|
a07659f1d4 | ||
|
|
813906ee3f | ||
|
|
a28cc71ef2 | ||
|
|
b785372e53 |
11 changed files with 216 additions and 27 deletions
|
|
@ -57,15 +57,15 @@
|
||||||
left down rght
|
left down rght
|
||||||
)
|
)
|
||||||
(defalias
|
(defalias
|
||||||
a (tap-hold 200 a lalt)
|
a (tap-hold 150 a lalt)
|
||||||
o (tap-hold 200 o lmet)
|
o (tap-hold 150 o lmet)
|
||||||
e (tap-hold 200 e lsft)
|
e (tap-hold 150 e lsft)
|
||||||
u (tap-hold 200 u lctl)
|
u (tap-hold 150 u lctl)
|
||||||
h (tap-hold 200 h lctl)
|
h (tap-hold 150 h lctl)
|
||||||
t (tap-hold 200 t lsft)
|
t (tap-hold 150 t lsft)
|
||||||
n (tap-hold 200 n lmet)
|
n (tap-hold 150 n lmet)
|
||||||
s (tap-hold 200 s lalt)
|
s (tap-hold 150 s lalt)
|
||||||
spc (tap-hold 200 spc (layer-toggle num))
|
spc (tap-hold 150 spc (layer-toggle num))
|
||||||
bspc (tap-hold 200 bspc (layer-toggle symbol))
|
bspc (tap-hold 150 bspc (layer-toggle symbol))
|
||||||
tab (tap-hold 200 tab (layer-toggle arrow))
|
tab (tap-hold 150 tab (layer-toggle arrow))
|
||||||
)
|
)
|
||||||
|
|
|
||||||
6
files/scripts/gopass.sh
Executable file
6
files/scripts/gopass.sh
Executable file
|
|
@ -0,0 +1,6 @@
|
||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
selection=$(gopass list -f | wmenu -p "Search:" -l 10)
|
||||||
|
if [ -n "$selection" ]; then
|
||||||
|
gopass show -c "$selection"
|
||||||
|
fi
|
||||||
26
flake.lock
generated
26
flake.lock
generated
|
|
@ -5,11 +5,11 @@
|
||||||
"nixpkgs": "nixpkgs"
|
"nixpkgs": "nixpkgs"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1754696903,
|
"lastModified": 1754939243,
|
||||||
"narHash": "sha256-H+qoDZddFhYq8lT2E3NahF7wiDJLMYE6Pe0E6izz+cg=",
|
"narHash": "sha256-5fHK2rNNiz1VHxv6ogUyOIlxGWQ0p8YaGYngjTJTFEs=",
|
||||||
"ref": "refs/heads/main",
|
"ref": "refs/heads/main",
|
||||||
"rev": "3ac2d7261d747ee5cf6721a570993fdcd2300726",
|
"rev": "d54aabb31ae9697656862f7abeefccc0ef00b8ba",
|
||||||
"revCount": 1335,
|
"revCount": 1339,
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://codeberg.org/FabricSoul/dwl"
|
"url": "https://codeberg.org/FabricSoul/dwl"
|
||||||
},
|
},
|
||||||
|
|
@ -104,11 +104,11 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1754613544,
|
"lastModified": 1754924470,
|
||||||
"narHash": "sha256-ueR1mGX4I4DWfDRRxxMphbKDNisDeMPMusN72VV1+cc=",
|
"narHash": "sha256-asI/or9AcUMydwzodCgpHGytnMSNUlciw3uaycpXm4E=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "home-manager",
|
"repo": "home-manager",
|
||||||
"rev": "cc2fa2331aebf9661d22bb507d362b39852ac73f",
|
"rev": "67393957c27b4e4c6c48a60108a201413ced7800",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|
@ -164,11 +164,11 @@
|
||||||
},
|
},
|
||||||
"nixpkgs_2": {
|
"nixpkgs_2": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1754651824,
|
"lastModified": 1754800730,
|
||||||
"narHash": "sha256-aB7ft6njy9EJfuW+rdToNChfRrHNRw/yTg5cSEnG+HI=",
|
"narHash": "sha256-HfVZCXic9XLBgybP0318ym3cDnGwBs/+H5MgxFVYF4I=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "b069b7c1e2fe1a3a24221428558bf44128d3d5c8",
|
"rev": "641d909c4a7538f1539da9240dedb1755c907e40",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|
@ -204,11 +204,11 @@
|
||||||
"systems": "systems_2"
|
"systems": "systems_2"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1754682350,
|
"lastModified": 1754921951,
|
||||||
"narHash": "sha256-4Dgf0cA/ZJtj9eTzG0yNMRBcd5fll3hhWx2WdwltAP8=",
|
"narHash": "sha256-KY+/livAp6l3fI8SdNa+CLN/AA4Z038yL/pQL2PaW7g=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "nixvim",
|
"repo": "nixvim",
|
||||||
"rev": "832de87d40f9a40430372552ab0b583680187cf3",
|
"rev": "7b53322d75a1c66f84fb145e4b5f0f411d9edc6b",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|
|
||||||
|
|
@ -16,6 +16,8 @@
|
||||||
./programs/zsh.nix
|
./programs/zsh.nix
|
||||||
./programs/ssh.nix
|
./programs/ssh.nix
|
||||||
./programs/yazi.nix
|
./programs/yazi.nix
|
||||||
|
./programs/neomutt.nix
|
||||||
|
./programs/gpg.nix
|
||||||
|
|
||||||
# Import desktop configurations
|
# Import desktop configurations
|
||||||
# ./desktop/hyprland.nix
|
# ./desktop/hyprland.nix
|
||||||
|
|
@ -68,6 +70,7 @@
|
||||||
fd
|
fd
|
||||||
lsd
|
lsd
|
||||||
brightnessctl
|
brightnessctl
|
||||||
|
neomutt
|
||||||
|
|
||||||
nerd-fonts.fira-mono
|
nerd-fonts.fira-mono
|
||||||
|
|
||||||
|
|
@ -114,6 +117,11 @@
|
||||||
openssl
|
openssl
|
||||||
psmisc
|
psmisc
|
||||||
air
|
air
|
||||||
|
w3m
|
||||||
|
gopass
|
||||||
|
pinentry
|
||||||
|
gnupg
|
||||||
|
dig
|
||||||
];
|
];
|
||||||
|
|
||||||
# Enable home-manager
|
# Enable home-manager
|
||||||
|
|
|
||||||
136
home/fabric/desktop/river.nix
Normal file
136
home/fabric/desktop/river.nix
Normal file
|
|
@ -0,0 +1,136 @@
|
||||||
|
{...}: {
|
||||||
|
wayland.windowManager.river = {
|
||||||
|
enable = true;
|
||||||
|
extraConfig = ''
|
||||||
|
# This file is executed by river at startup
|
||||||
|
|
||||||
|
# Set rivertile as the default layout generator
|
||||||
|
riverctl default-layout rivertile
|
||||||
|
# Start the rivertile layout generator process
|
||||||
|
rivertile -view-padding 0 -outer-padding 0 &
|
||||||
|
|
||||||
|
# Set gaps similar to your Hyprland config
|
||||||
|
# Your config: gaps_out = "0, 440, 0, 440" (top, right, bottom, left)
|
||||||
|
# This command sets the padding around the edge of the layout area.
|
||||||
|
# rivertile has -outer-padding-top, -outer-padding-right, etc.
|
||||||
|
riverctl send-layout-cmd rivertile "outer-padding-right 440"
|
||||||
|
riverctl send-layout-cmd rivertile "outer-padding-left 440"
|
||||||
|
# Your config: gaps_in = 0
|
||||||
|
riverctl send-layout-cmd rivertile "view-padding 0"
|
||||||
|
|
||||||
|
# --- Autostart Applications (exec-once) ---
|
||||||
|
riverctl spawn "fcitx5"
|
||||||
|
riverctl spawn "wlsunset -l 43.6 -L -79.3"
|
||||||
|
|
||||||
|
# --- Input Settings ---
|
||||||
|
# repeat_delay = 300; repeat_rate = 50;
|
||||||
|
riverctl set-repeat 50 300
|
||||||
|
|
||||||
|
# --- Variables ---
|
||||||
|
# River does not have shell-like variables in its config,
|
||||||
|
# so we define them here for clarity if this were a script.
|
||||||
|
# In this Nix string, we will just use the values directly.
|
||||||
|
# mainMod="Mod4" (Super key)
|
||||||
|
# terminal="kitty"
|
||||||
|
# browser="firefox"
|
||||||
|
# fileManager="dolphin"
|
||||||
|
# menu="wofi --show drun"
|
||||||
|
|
||||||
|
# --- Key Mappings (bind) ---
|
||||||
|
# $mainMod, T, exec, $terminal
|
||||||
|
riverctl map normal Mod4 T spawn 'kitty'
|
||||||
|
|
||||||
|
# $mainMod, B, exec, $browser
|
||||||
|
riverctl map normal Mod4 B spawn 'firefox'
|
||||||
|
|
||||||
|
# $mainMod, S, exec, sh -c "grim -g '$(slurp -d)' - | wl-copy"
|
||||||
|
riverctl map normal Mod4 S spawn 'grim -g "$(slurp -d)" - | wl-copy'
|
||||||
|
|
||||||
|
# $mainMod, Q, killactive
|
||||||
|
riverctl map normal Mod4 Q close
|
||||||
|
|
||||||
|
# $mainMod, M, exit
|
||||||
|
riverctl map normal Mod4 M exit
|
||||||
|
|
||||||
|
# $mainMod, E, exec, $fileManager
|
||||||
|
riverctl map normal Mod4 E spawn 'dolphin'
|
||||||
|
|
||||||
|
# $mainMod, V, togglefloating
|
||||||
|
riverctl map normal Mod4 V toggle-float
|
||||||
|
|
||||||
|
# $mainMod, SPACE, exec, $menu
|
||||||
|
riverctl map normal Mod4 Space spawn 'wofi --show drun'
|
||||||
|
|
||||||
|
# --- Focus Movement ---
|
||||||
|
# $mainMod, H, movefocus, l
|
||||||
|
riverctl map normal Mod4 H focus-view left
|
||||||
|
# $mainMod, L, movefocus, r
|
||||||
|
riverctl map normal Mod4 L focus-view right
|
||||||
|
# $mainMod, K, movefocus, u
|
||||||
|
riverctl map normal Mod4 K focus-view up
|
||||||
|
# $mainMod, J, movefocus, d
|
||||||
|
riverctl map normal Mod4 J focus-view down
|
||||||
|
|
||||||
|
# --- Switch Tags (Workspaces) ---
|
||||||
|
# Tags are a bitmask: tag 1 = 1, tag 2 = 2, tag 3 = 4, tag n = 1 << (n-1)
|
||||||
|
riverctl map normal Mod4 1 set-focused-tags 1
|
||||||
|
riverctl map normal Mod4 2 set-focused-tags 2
|
||||||
|
riverctl map normal Mod4 3 set-focused-tags 4
|
||||||
|
riverctl map normal Mod4 4 set-focused-tags 8
|
||||||
|
riverctl map normal Mod4 5 set-focused-tags 16
|
||||||
|
riverctl map normal Mod4 6 set-focused-tags 32
|
||||||
|
riverctl map normal Mod4 7 set-focused-tags 64
|
||||||
|
riverctl map normal Mod4 8 set-focused-tags 128
|
||||||
|
riverctl map normal Mod4 9 set-focused-tags 256
|
||||||
|
riverctl map normal Mod4 0 set-focused-tags 512
|
||||||
|
|
||||||
|
# --- Move Window to Tag (movetoworkspace) ---
|
||||||
|
riverctl map normal Mod4+Shift 1 set-view-tags 1
|
||||||
|
riverctl map normal Mod4+Shift 2 set-view-tags 2
|
||||||
|
riverctl map normal Mod4+Shift 3 set-view-tags 4
|
||||||
|
riverctl map normal Mod4+Shift 4 set-view-tags 8
|
||||||
|
riverctl map normal Mod4+Shift 5 set-view-tags 16
|
||||||
|
riverctl map normal Mod4+Shift 6 set-view-tags 32
|
||||||
|
riverctl map normal Mod4+Shift 7 set-view-tags 64
|
||||||
|
riverctl map normal Mod4+Shift 8 set-view-tags 128
|
||||||
|
riverctl map normal Mod4+Shift 9 set-view-tags 256
|
||||||
|
riverctl map normal Mod4+Shift 0 set-view-tags 512
|
||||||
|
|
||||||
|
# --- Mouse Bindings (bindm) ---
|
||||||
|
# Super + Left Mouse to move
|
||||||
|
riverctl map-pointer normal Mod4 BTN_LEFT move-view
|
||||||
|
# Super + Right Mouse to resize
|
||||||
|
riverctl map-pointer normal Mod4 BTN_RIGHT resize-view
|
||||||
|
|
||||||
|
# --- Window Rules (windowrule) ---
|
||||||
|
# River uses app-id (for class) and title. Tags are set with a bitmask.
|
||||||
|
# workspace 1 silent,initialTitle:^EVE$ -> tags 1
|
||||||
|
riverctl rule-add -title 'EVE' tags 1
|
||||||
|
# tile, initialTitle:^EVE$ -> This is default, but we can be explicit with no-float
|
||||||
|
riverctl rule-add -title 'EVE' no-float
|
||||||
|
|
||||||
|
# workspace 6 silent,class:^QQ$ -> tags 32
|
||||||
|
riverctl rule-add -app-id 'QQ' tags 32
|
||||||
|
|
||||||
|
# float, title:^图片查看器$
|
||||||
|
riverctl rule-add -title '图片查看器' float
|
||||||
|
|
||||||
|
# workspace 6 silent,class:^(discord)$ -> tags 32
|
||||||
|
riverctl rule-add -app-id 'discord' tags 32
|
||||||
|
|
||||||
|
# workspace 4 silent,class:^(kitty)$ -> tags 8
|
||||||
|
riverctl rule-add -app-id 'kitty' tags 8
|
||||||
|
|
||||||
|
# workspace 5 silent,class:^(firefox)$ -> tags 16
|
||||||
|
riverctl rule-add -app-id 'firefox' tags 16
|
||||||
|
|
||||||
|
# Note on Monitor config:
|
||||||
|
# River itself doesn't manage output resolutions and refresh rates.
|
||||||
|
# This should be handled by another utility like kanshi, or by manually
|
||||||
|
# running wlr-randr commands in your startup script. Your NixOS setup
|
||||||
|
# might already handle this through services.wayland.wdisplays.enable or similar.
|
||||||
|
riverctl spawn "wlr-randr --output DP-3 --mode 3440x1440@144Hz"
|
||||||
|
riverctl spawn "wlr-randr --output DP-5 --mode 3440x1440@144Hz"
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
}
|
||||||
12
home/fabric/programs/gpg.nix
Normal file
12
home/fabric/programs/gpg.nix
Normal file
|
|
@ -0,0 +1,12 @@
|
||||||
|
{...}: {
|
||||||
|
services.gpg-agent = {
|
||||||
|
enable = true;
|
||||||
|
enableZshIntegration = true;
|
||||||
|
extraConfig = ''
|
||||||
|
pinentry-program /home/fabric/.nix-profile/bin/pinentry-curses
|
||||||
|
allow-loopback-pinentry
|
||||||
|
default-cache-ttl 86400
|
||||||
|
max-cache-ttl 31536000
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
}
|
||||||
10
home/fabric/programs/neomutt.nix
Normal file
10
home/fabric/programs/neomutt.nix
Normal file
|
|
@ -0,0 +1,10 @@
|
||||||
|
{pkgs, ...}: {
|
||||||
|
programs = {
|
||||||
|
neomutt = {
|
||||||
|
enable = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
home.packages = with pkgs; [
|
||||||
|
msmtp
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
@ -23,6 +23,9 @@
|
||||||
export PATH=$PATH:(go env GOPATH)/bin
|
export PATH=$PATH:(go env GOPATH)/bin
|
||||||
export PATH="/home/fabric/.cargo/bin:$PATH"
|
export PATH="/home/fabric/.cargo/bin:$PATH"
|
||||||
export PATH="/home/fabric/.config/emacs/bin:$PATH"
|
export PATH="/home/fabric/.config/emacs/bin:$PATH"
|
||||||
|
export GPG_TTY=$(tty)
|
||||||
|
export GPG_AGENT_INFO=
|
||||||
|
export GPGPINENTRYMODE=loopback
|
||||||
GOPATH=$HOME/go
|
GOPATH=$HOME/go
|
||||||
PATH=$PATH:/usr/local/go/bin:$GOPATH/bin
|
PATH=$PATH:/usr/local/go/bin:$GOPATH/bin
|
||||||
PATH="$HOME/.govm/shim:$PATH"
|
PATH="$HOME/.govm/shim:$PATH"
|
||||||
|
|
@ -44,6 +47,7 @@
|
||||||
fi
|
fi
|
||||||
rm -f -- "$tmp"
|
rm -f -- "$tmp"
|
||||||
}
|
}
|
||||||
|
gpg --pinentry-mode=loopback --quiet --decrypt /home/fabric/.local/share/gopass/stores/root/websites/codeberg.org/FabricSoul.gpg >/dev/null
|
||||||
'';
|
'';
|
||||||
prezto = {
|
prezto = {
|
||||||
tmux = {
|
tmux = {
|
||||||
|
|
|
||||||
|
|
@ -22,8 +22,8 @@
|
||||||
environment.systemPackages = with pkgs; [
|
environment.systemPackages = with pkgs; [
|
||||||
vim
|
vim
|
||||||
git
|
git
|
||||||
greetd.greetd
|
greetd
|
||||||
greetd.tuigreet
|
tuigreet
|
||||||
zsh
|
zsh
|
||||||
home-manager
|
home-manager
|
||||||
findutils
|
findutils
|
||||||
|
|
@ -38,7 +38,7 @@
|
||||||
enable = true;
|
enable = true;
|
||||||
settings = {
|
settings = {
|
||||||
default_session = {
|
default_session = {
|
||||||
command = "''${pkgs.greetd.tuigreet}/bin/tuigreet --time";
|
command = "''${pkgs.tuigreet}/bin/tuigreet --time";
|
||||||
user = "fabric";
|
user = "fabric";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -3,4 +3,16 @@
|
||||||
enable = true;
|
enable = true;
|
||||||
openFirewall = true;
|
openFirewall = true;
|
||||||
};
|
};
|
||||||
|
services.jellyfin = {
|
||||||
|
enable = true;
|
||||||
|
openFirewall = true;
|
||||||
|
};
|
||||||
|
services.navidrome = {
|
||||||
|
enable = true;
|
||||||
|
openFirewall = true;
|
||||||
|
settings = {
|
||||||
|
MusicFolder = "/nas/music";
|
||||||
|
Address = "0.0.0.0";
|
||||||
|
};
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -13,6 +13,7 @@
|
||||||
../common/global
|
../common/global
|
||||||
../common/optional/fcitx5.nix
|
../common/optional/fcitx5.nix
|
||||||
../common/optional/bluetooth.nix
|
../common/optional/bluetooth.nix
|
||||||
|
../common/optional/steam.nix
|
||||||
|
|
||||||
../common/optional/kmonad.nix
|
../common/optional/kmonad.nix
|
||||||
../common/optional/auto-cpufreq.nix
|
../common/optional/auto-cpufreq.nix
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue