Merge branch 'main' of ktiu.net:omniflake

This commit is contained in:
Till 2024-01-13 01:21:26 +01:00
commit 169b9c5b71
14 changed files with 111 additions and 24 deletions

18
flake.lock generated
View file

@ -7,11 +7,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1702814335, "lastModified": 1704498488,
"narHash": "sha256-Qck7BAMi3eydzT1WFOzp/SgECetyPpOn1dLgmxH2ebQ=", "narHash": "sha256-yINKdShHrtjdiJhov+q0s3Y3B830ujRoSbHduUNyKag=",
"owner": "nix-community", "owner": "nix-community",
"repo": "home-manager", "repo": "home-manager",
"rev": "e4dba0bd01956170667458be7b45f68170a63651", "rev": "51e44a13acea71b36245e8bd8c7db53e0a3e61ee",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -22,11 +22,11 @@
}, },
"nixpkgs": { "nixpkgs": {
"locked": { "locked": {
"lastModified": 1702780907, "lastModified": 1704420045,
"narHash": "sha256-blbrBBXjjZt6OKTcYX1jpe9SRof2P9ZYWPzq22tzXAA=", "narHash": "sha256-C36QmoJd5tdQ5R9MC1jM7fBkZW9zBUqbUCsgwS6j4QU=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "1e2e384c5b7c50dbf8e9c441a9e58d85f408b01f", "rev": "c1be43e8e837b8dbee2b3665a007e761680f0c3d",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -38,11 +38,11 @@
}, },
"nur": { "nur": {
"locked": { "locked": {
"lastModified": 1702902799, "lastModified": 1704710672,
"narHash": "sha256-KNTIeQ6gDVoX3QSW0tWgCVjvmJ3JO+FT8XwRxL9dZN0=", "narHash": "sha256-4lkd1XPxxr00kz+DXY0il6TG0pvK5Go3xkgISX1Gnks=",
"owner": "nix-community", "owner": "nix-community",
"repo": "nur", "repo": "nur",
"rev": "4561fa27240f2b30aeb1bfdc27162a32b77b0b8d", "rev": "6b35830e8b50fd1c6cf096f74a76cb9c5e0793cc",
"type": "github" "type": "github"
}, },
"original": { "original": {

View file

@ -18,9 +18,10 @@
networking.hostName = "nova"; networking.hostName = "nova";
} }
./system ./system
./system/hardware-nova.nix
./system/gnome.nix ./system/gnome.nix
./system/btrbk.nix ./system/btrbk.nix
./system/hardware-nova.nix ./system/yubikey.nix
./system/alt.nix ./system/alt.nix
]; ];
}; };

View file

@ -45,6 +45,7 @@
./desktop ./desktop
./firefox.nix ./firefox.nix
./foot.nix ./foot.nix
./tmux
]; ];
programs.nix-index = { programs.nix-index = {

View file

@ -110,6 +110,7 @@
nodejs nodejs
android-studio android-studio
netlify-cli netlify-cli
appimage-run
# secrets # secrets
libsecret libsecret
@ -118,17 +119,18 @@
]; ];
imports = [ imports = [
./desktop
./alias.nix ./alias.nix
./nvim
./foot.nix
./fish.nix
./firefox.nix
./calendars.nix ./calendars.nix
./desktop
./firefox.nix
./fish.nix
./foot.nix
./mail ./mail
./tex.nix ./nvim
./openconnect.nix ./openconnect.nix
./R.nix ./r.nix
./tex.nix
./tmux
]; ];
programs.nix-index = { programs.nix-index = {

View file

@ -48,6 +48,7 @@
ublock-origin ublock-origin
linkhints linkhints
keepassxc-browser keepassxc-browser
libredirect
]; ];
search = { search = {
force = true; force = true;

View file

@ -5,7 +5,7 @@
enable = true; enable = true;
settings = { settings = {
main = { main = {
shell = "${pkgs.fish}/bin/fish -c 'tmux attach || tmux'"; shell = "${pkgs.fish}/bin/fish -c 'tmux attach'";
pad = "22x22"; pad = "22x22";
font = "JetBrains Mono:size=14"; font = "JetBrains Mono:size=14";
initial-window-mode = "maximized"; initial-window-mode = "maximized";

55
home/tmux/default.nix Normal file
View file

@ -0,0 +1,55 @@
{ config, pkgs, ... }:
{
programs.tmux = {
enable = true;
escapeTime = 0;
mouse = true;
newSession = true;
shell = "${pkgs.fish}/bin/fish";
extraConfig = ''
# Key bindings
bind C-l next-window
bind C-h previous-window
bind C-b last-window
bind n new-window
bind C-n new-window -c '#{pane_current_path}'
bind v split-window -h
bind C-v split-window -hc '#{pane_current_path}'
bind s split-window -v
bind C-s split-window -vc '#{pane_current_path}'
bind h select-pane -L
bind j select-pane -D
bind k select-pane -U
bind l select-pane -R
bind c command-prompt -I "#{b:pane_current_path}" "rename-window '%%'"
bind C-c command-prompt -I "#{b:pane_current_path}" "rename-window '%%'"
# Layouts
bind f source-file ~/.config/tmux/nnn.conf
bind R source-file ~/.config/tmux/rloft.conf
bind J source-file ~/.config/tmux/jekyll.conf
# Unbind
unbind p
unbind '"'
unbind %
# Eye candy
# set-option -g status-position top
set-option -g status-right ""
set-option -g status-left ""
set-option -g status-justify "centre"
set-option -g status-style fg=brightmagenta
set-option -g pane-border-style fg=brightwhite
set-option -g pane-active-border-style fg=magenta
set-option -g window-status-current-style fg=magenta
# Some more specifics
set-option -g focus-events on
'';
};
xdg.configFile."tmux/nnn.conf".source = ./nnn.conf;
xdg.configFile."tmux/rloft.conf".source = ./rloft.conf;
xdg.configFile."tmux/jekyll.conf".source = ./jekyll.conf;
}

6
home/tmux/jekyll.conf Normal file
View file

@ -0,0 +1,6 @@
split-window -c '#{pane_current_path}' -h nix-shell
send-keys "jekyll serve" Enter
resize-pane -x 40%
split-pane -c '#{pane_current_path}' "git status; fish"
select-pane -L
rename-window "jekyll"

2
home/tmux/nnn.conf Normal file
View file

@ -0,0 +1,2 @@
new-window -c '#{pane_current_path}' nnn
rename-window 'nnn'

2
home/tmux/rloft.conf Normal file
View file

@ -0,0 +1,2 @@
split-window -c '#{pane_current_path}' -h R -q --no-save --no-restore
select-pane -l

View file

@ -2,13 +2,13 @@
{ {
users.users.alt = { users.users.alt = {
isNormalUser = true; home = "/home/alt";
description = "Alt"; isSystemUser = true;
group = "users";
description = "Backup profile";
extraGroups = [ extraGroups = [
"networkmanager" "networkmanager"
]; ];
shell = pkgs.fish; shell = pkgs.fish;
}; };
services.xserver.displayManager.gdm.settings.greeter.IncludeAll = false;
services.xserver.displayManager.gdm.settings.greeter.Exclude = "alt";
} }

View file

@ -94,8 +94,6 @@
mullvad-vpn.enable = true; mullvad-vpn.enable = true;
}; };
services.udev.packages = [ pkgs.yubikey-personalization ];
virtualisation.libvirtd.enable = true; virtualisation.libvirtd.enable = true;
programs.dconf.enable = true; programs.dconf.enable = true;

19
system/yubikey.nix Normal file
View file

@ -0,0 +1,19 @@
{ config, pkgs, ... }:
{
services.udev = {
packages = [ pkgs.yubikey-personalization ];
extraRules = ''
ACTION=="remove",\
ENV{ID_BUS}=="usb",\
ENV{ID_MODEL_ID}=="0407",\
ENV{ID_VENDOR_ID}=="1050",\
ENV{ID_VENDOR}=="Yubico",\
RUN+="${pkgs.systemd}/bin/loginctl lock-sessions"
'';
};
security.pam.services = {
login.u2fAuth = true;
sudo.u2fAuth = true;
};
}