h002 being weird, but it is working tty now
This commit is contained in:
parent
aa3653e8c2
commit
1ec7eadcb8
11 changed files with 293 additions and 20 deletions
|
@ -4,18 +4,20 @@
|
||||||
[
|
[
|
||||||
(settings.hostsDir + "/_common/components/neovim.nix")
|
(settings.hostsDir + "/_common/components/neovim.nix")
|
||||||
# Common components this machine uses
|
# Common components this machine uses
|
||||||
(settings.hostsDir + "/_common/components/systemd_boot.nix")
|
|
||||||
(settings.hostsDir + "/_common/components/ssh.nix")
|
(settings.hostsDir + "/_common/components/ssh.nix")
|
||||||
(settings.hostsDir + "/_common/components/caps_to_escape_in_tty.nix")
|
(settings.hostsDir + "/_common/components/caps_to_escape_in_tty.nix")
|
||||||
(settings.hostsDir + "/_common/components/font_jetbrainsmono.nix")
|
# (settings.hostsDir + "/_common/components/font_jetbrainsmono.nix")
|
||||||
(settings.hostsDir + "/_common/components/home_manager.nix")
|
(settings.hostsDir + "/_common/components/home_manager.nix")
|
||||||
(settings.hostsDir + "/_common/components/gnome_xorg.nix")
|
# (settings.hostsDir + "/_common/components/gnome_xorg.nix")
|
||||||
(settings.hostsDir + "/_common/components/docker.nix")
|
(settings.hostsDir + "/_common/components/docker.nix")
|
||||||
# Users this machine has
|
# Users this machine has
|
||||||
|
|
||||||
(settings.usersDir + "/root/configuration.nix")
|
(settings.usersDir + "/root/configuration.nix")
|
||||||
(settings.usersDir + "/josh/configuration.nix")
|
(settings.usersDir + "/luser/configuration.nix")
|
||||||
];
|
];
|
||||||
|
|
||||||
|
boot.loader.grub = { enable = true; device = "/dev/sdb" ; };
|
||||||
|
|
||||||
# machine specific configuration
|
# machine specific configuration
|
||||||
# ==============================
|
# ==============================
|
||||||
hardware.enableAllFirmware = true;
|
hardware.enableAllFirmware = true;
|
||||||
|
@ -35,27 +37,27 @@
|
||||||
# nvidia gfx https://nixos.wiki/wiki/Nvidia
|
# nvidia gfx https://nixos.wiki/wiki/Nvidia
|
||||||
# =========
|
# =========
|
||||||
# Enable OpenGL
|
# Enable OpenGL
|
||||||
hardware.opengl = {
|
#hardware.opengl = {
|
||||||
enable = true;
|
# enable = true;
|
||||||
driSupport = true;
|
# driSupport = true;
|
||||||
driSupport32Bit = true;
|
# driSupport32Bit = true;
|
||||||
};
|
#};
|
||||||
|
|
||||||
# Load nvidia driver for Xorg and Wayland
|
# Load nvidia driver for Xorg and Wayland
|
||||||
services.xserver.videoDrivers = [ "nvidia" ];
|
#services.xserver.videoDrivers = [ "nvidia" ];
|
||||||
hardware.nvidia = {
|
#hardware.nvidia = {
|
||||||
# Modesetting is required.
|
# Modesetting is required.
|
||||||
modesetting.enable = true;
|
# modesetting.enable = true;
|
||||||
|
|
||||||
# Nvidia power management. Experimental, and can cause sleep/suspend to fail.
|
# Nvidia power management. Experimental, and can cause sleep/suspend to fail.
|
||||||
# Enable this if you have graphical corruption issues or application crashes after waking
|
# Enable this if you have graphical corruption issues or application crashes after waking
|
||||||
# up from sleep. This fixes it by saving the entire VRAM memory to /tmp/ instead
|
# up from sleep. This fixes it by saving the entire VRAM memory to /tmp/ instead
|
||||||
# of just the bare essentials.
|
# of just the bare essentials.
|
||||||
powerManagement.enable = false;
|
# powerManagement.enable = false;
|
||||||
|
|
||||||
# Fine-grained power management. Turns off GPU when not in use.
|
# Fine-grained power management. Turns off GPU when not in use.
|
||||||
# Experimental and only works on modern Nvidia GPUs (Turing or newer).
|
# Experimental and only works on modern Nvidia GPUs (Turing or newer).
|
||||||
powerManagement.finegrained = false;
|
# powerManagement.finegrained = false;
|
||||||
|
|
||||||
# Use the NVidia open source kernel module (not to be confused with the
|
# Use the NVidia open source kernel module (not to be confused with the
|
||||||
# independent third-party "nouveau" open source driver).
|
# independent third-party "nouveau" open source driver).
|
||||||
|
@ -64,13 +66,13 @@
|
||||||
# https://github.com/NVIDIA/open-gpu-kernel-modules#compatible-gpus
|
# https://github.com/NVIDIA/open-gpu-kernel-modules#compatible-gpus
|
||||||
# Only available from driver 515.43.04+
|
# Only available from driver 515.43.04+
|
||||||
# Currently alpha-quality/buggy, so false is currently the recommended setting.
|
# Currently alpha-quality/buggy, so false is currently the recommended setting.
|
||||||
open = false;
|
# open = false;
|
||||||
|
|
||||||
# Enable the Nvidia settings menu,
|
# Enable the Nvidia settings menu,
|
||||||
# accessible via `nvidia-settings`.
|
# accessible via `nvidia-settings`.
|
||||||
nvidiaSettings = true;
|
# nvidiaSettings = true;
|
||||||
|
|
||||||
# Optionally, you may need to select the appropriate driver version for your specific GPU.
|
# Optionally, you may need to select the appropriate driver version for your specific GPU.
|
||||||
package = config.boot.kernelPackages.nvidiaPackages.stable;
|
# package = config.boot.kernelPackages.nvidiaPackages.stable;
|
||||||
};
|
# };
|
||||||
}
|
}
|
||||||
|
|
37
hosts/h002/hardware-configuration.nix
Normal file
37
hosts/h002/hardware-configuration.nix
Normal file
|
@ -0,0 +1,37 @@
|
||||||
|
# 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 = [ "ehci_pci" "ahci" "xhci_pci" "firewire_ohci" "usb_storage" "usbhid" "sd_mod" "sr_mod" ];
|
||||||
|
boot.initrd.kernelModules = [ ];
|
||||||
|
boot.kernelModules = [ "kvm-intel" ];
|
||||||
|
boot.extraModulePackages = [ ];
|
||||||
|
|
||||||
|
fileSystems."/" =
|
||||||
|
{ device = "/dev/disk/by-label/NIXROOT";
|
||||||
|
fsType = "ext4";
|
||||||
|
};
|
||||||
|
|
||||||
|
fileSystems."/boot" =
|
||||||
|
{ device = "/dev/disk/by-label/NIXBOOT";
|
||||||
|
fsType = "vfat";
|
||||||
|
};
|
||||||
|
|
||||||
|
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.eno1.useDHCP = lib.mkDefault true;
|
||||||
|
|
||||||
|
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
|
||||||
|
hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
|
||||||
|
}
|
14
users/_common/components/home_manager/atuin.nix
Normal file
14
users/_common/components/home_manager/atuin.nix
Normal file
|
@ -0,0 +1,14 @@
|
||||||
|
{ ... }:
|
||||||
|
{
|
||||||
|
programs.atuin = {
|
||||||
|
enable = true;
|
||||||
|
enableZshIntegration = true;
|
||||||
|
flags = [ "--disable-up-arrow" ];
|
||||||
|
settings = {
|
||||||
|
workspaces = true;
|
||||||
|
exit-mode = "return-query";
|
||||||
|
enter_accept = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
44
users/_common/components/home_manager/starship.nix
Normal file
44
users/_common/components/home_manager/starship.nix
Normal file
|
@ -0,0 +1,44 @@
|
||||||
|
{ ... }:
|
||||||
|
{
|
||||||
|
programs.starship = {
|
||||||
|
enable = true;
|
||||||
|
enableZshIntegration = true;
|
||||||
|
settings = {
|
||||||
|
add_newline = false;
|
||||||
|
palette = "catppuccin_coal";
|
||||||
|
palettes.catppuccin_coal = {
|
||||||
|
# Same as catppuccin mocha for these
|
||||||
|
rosewater = "#f5e0dc";
|
||||||
|
flamingo = "#f2cdcd";
|
||||||
|
pink = "#f5c2e7";
|
||||||
|
mauve = "#cba6f7";
|
||||||
|
red = "#f38ba8";
|
||||||
|
maroon = "#eba0ac";
|
||||||
|
peach = "#fab387";
|
||||||
|
yellow = "#f9e2af";
|
||||||
|
green = "#a6e3a1";
|
||||||
|
teal = "#94e2d5";
|
||||||
|
sky = "#89dceb";
|
||||||
|
sapphire = "#74c7ec";
|
||||||
|
blue = "#89b4fa";
|
||||||
|
lavender = "#b4befe";
|
||||||
|
# Coal variant: https://gist.github.com/RingOfStorms/b2ff0c4e37f5be9f985c72c3ec9a3e62
|
||||||
|
text = "#e0e0e0";
|
||||||
|
subtext1 = "#cccccc";
|
||||||
|
subtext0 = "#b8b8b8";
|
||||||
|
overlay2 = "#a3a3a3";
|
||||||
|
overlay1 = "#8c8c8c";
|
||||||
|
overlay0 = "#787878";
|
||||||
|
surface2 = "#636363";
|
||||||
|
surface1 = "#4f4f4f";
|
||||||
|
surface0 = "#3b3b3b";
|
||||||
|
base = "#262626";
|
||||||
|
mantle = "#1f1f1f";
|
||||||
|
crust = "#171717";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
62
users/_common/components/home_manager/tmux/tmux-reset.conf
Normal file
62
users/_common/components/home_manager/tmux/tmux-reset.conf
Normal file
|
@ -0,0 +1,62 @@
|
||||||
|
# Reset everything then add what we want exactly
|
||||||
|
unbind-key -a
|
||||||
|
bind C-Space send-prefix
|
||||||
|
|
||||||
|
# Windows
|
||||||
|
bind -r p previous-window
|
||||||
|
bind -r n next-window
|
||||||
|
bind -r & kill-window
|
||||||
|
bind -r c new-window -c "#{pane_current_path}"
|
||||||
|
bind ',' command-prompt "rename-window %%"
|
||||||
|
bind "\|" split-window -h -c "#{pane_current_path}"
|
||||||
|
bind "\\" split-window -v -c "#{pane_current_path}"
|
||||||
|
bind w choose-tree -Zw
|
||||||
|
bind -r 1 select-window -t:1
|
||||||
|
bind -r 2 select-window -t:2
|
||||||
|
bind -r 3 select-window -t:3
|
||||||
|
bind -r 4 select-window -t:4
|
||||||
|
bind -r 5 select-window -t:5
|
||||||
|
bind -r 6 select-window -t:6
|
||||||
|
bind -r 7 select-window -t:7
|
||||||
|
bind -r 8 select-window -t:8
|
||||||
|
bind -r 9 select-window -t:9
|
||||||
|
# custom
|
||||||
|
bind m command-prompt -p "Swap with window index:" "swap-window -t '%%'"
|
||||||
|
bind -r [ swap-window -t -1 \; previous-window
|
||||||
|
bind -r ] swap-window -t +1 \; next-window
|
||||||
|
|
||||||
|
|
||||||
|
# Panes
|
||||||
|
bind ! break-pane
|
||||||
|
bind -r left select-pane -L
|
||||||
|
bind -r down select-pane -D
|
||||||
|
bind -r up select-pane -U
|
||||||
|
bind -r right select-pane -R
|
||||||
|
bind -r x kill-pane
|
||||||
|
bind -r space resize-pane -Z
|
||||||
|
bind S select-layout tiled
|
||||||
|
bind -r h select-pane -L
|
||||||
|
bind -r j select-pane -D
|
||||||
|
bind -r k select-pane -U
|
||||||
|
bind -r l select-pane -R
|
||||||
|
|
||||||
|
|
||||||
|
# Sessions
|
||||||
|
bind $ command-prompt "rename-session %%"
|
||||||
|
bind -r ) switch-client -n
|
||||||
|
bind -r ( switch-client -p
|
||||||
|
# custom
|
||||||
|
bind C command-prompt -p "session name:" "new-session -s '%%'"
|
||||||
|
|
||||||
|
# Tmux util
|
||||||
|
bind : command-prompt
|
||||||
|
bind C-D detach
|
||||||
|
|
||||||
|
# ==========
|
||||||
|
# My options
|
||||||
|
set-option -g terminal-overrides ',xterm-256color:RGB'
|
||||||
|
set -g detach-on-destroy off
|
||||||
|
set -g renumber-windows on
|
||||||
|
set -g status-position top
|
||||||
|
set -sg escape-time 0
|
||||||
|
|
66
users/_common/components/home_manager/tmux/tmux.nix
Normal file
66
users/_common/components/home_manager/tmux/tmux.nix
Normal file
|
@ -0,0 +1,66 @@
|
||||||
|
{ settings, lib, pkgs, ... } @ args:
|
||||||
|
let
|
||||||
|
tmux = pkgs.tmuxPlugins;
|
||||||
|
in
|
||||||
|
{
|
||||||
|
# home manager doesn't give us an option to add tmux extra config at the top so we do it ourselves here.
|
||||||
|
xdg.configFile."tmux/tmux.conf".text = lib.mkBefore (builtins.readFile ./tmux-reset.conf);
|
||||||
|
|
||||||
|
programs.tmux = {
|
||||||
|
enable = true;
|
||||||
|
|
||||||
|
# Revisit this later, permission denied to make anything in `/run` as my user...
|
||||||
|
secureSocket = false;
|
||||||
|
|
||||||
|
# default is B switch to space for easier dual hand use
|
||||||
|
shortcut = "Space";
|
||||||
|
prefix = "C-Space";
|
||||||
|
baseIndex = 1;
|
||||||
|
mouse = true;
|
||||||
|
keyMode = "vi";
|
||||||
|
shell = "${pkgs.zsh}/bin/zsh";
|
||||||
|
terminal = "screen-256color";
|
||||||
|
aggressiveResize = true;
|
||||||
|
sensibleOnTop = false;
|
||||||
|
|
||||||
|
plugins = [
|
||||||
|
{
|
||||||
|
plugin = tmux.catppuccin.overrideAttrs (_: {
|
||||||
|
src = pkgs.fetchFromGitHub {
|
||||||
|
owner = "ringofstorms";
|
||||||
|
repo = "tmux-catppuccin-coal";
|
||||||
|
rev = "e6d7c658e2d11798912ca1ed4e3626e3e1fad3fc";
|
||||||
|
sha256 = "sha256-M1XAeCz/lqgjZ7CnWCykJxZCDk+WVoawwHrR9SEO9ns=";
|
||||||
|
};
|
||||||
|
});
|
||||||
|
extraConfig = ''
|
||||||
|
set -g @catppuccin_flavour 'mocha'
|
||||||
|
set -g @catppuccin_window_left_separator ""
|
||||||
|
set -g @catppuccin_window_right_separator " "
|
||||||
|
set -g @catppuccin_window_middle_separator " █"
|
||||||
|
set -g @catppuccin_window_number_position "right"
|
||||||
|
set -g @catppuccin_window_default_fill "number"
|
||||||
|
set -g @catppuccin_window_default_text "#W"
|
||||||
|
set -g @catppuccin_window_current_fill "number"
|
||||||
|
set -g @catppuccin_window_current_text "#W#{?window_zoomed_flag,(),}"
|
||||||
|
set -g @catppuccin_status_modules_right "directory application date_time"
|
||||||
|
set -g @catppuccin_status_modules_left "session"
|
||||||
|
set -g @catppuccin_status_left_separator " "
|
||||||
|
set -g @catppuccin_status_right_separator " "
|
||||||
|
set -g @catppuccin_status_right_separator_inverse "no"
|
||||||
|
set -g @catppuccin_status_fill "icon"
|
||||||
|
set -g @catppuccin_status_connect_separator "no"
|
||||||
|
set -g @catppuccin_directory_text "#{b:pane_current_path}"
|
||||||
|
set -g @catppuccin_date_time_text "%H:%M"
|
||||||
|
'';
|
||||||
|
}
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
|
home.shellAliases = {
|
||||||
|
t = "tmux";
|
||||||
|
tat = "tmux ls 2>/dev/null && tmux attach-session -t \"$(tmux ls | head -n1 | cut -d: -f1)\" || tmux new-session";
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
|
9
users/_common/components/home_manager/zoxide.nix
Normal file
9
users/_common/components/home_manager/zoxide.nix
Normal file
|
@ -0,0 +1,9 @@
|
||||||
|
{ ... }:
|
||||||
|
{
|
||||||
|
programs.zoxide = {
|
||||||
|
enable = true;
|
||||||
|
enableZshIntegration = true;
|
||||||
|
options = [ "--cmd cd" ];
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
29
users/_common/components/home_manager/zsh.nix
Normal file
29
users/_common/components/home_manager/zsh.nix
Normal file
|
@ -0,0 +1,29 @@
|
||||||
|
{ ... }:
|
||||||
|
{
|
||||||
|
programs.zsh = {
|
||||||
|
enable = true;
|
||||||
|
autosuggestion.enable = true;
|
||||||
|
|
||||||
|
shellAliases = { };
|
||||||
|
|
||||||
|
defaultKeymap = "emacs";
|
||||||
|
|
||||||
|
initExtra = ''
|
||||||
|
# Make home/end and ctrl + left/right nav how I expect them to like in bash
|
||||||
|
bindkey "\e[1~" beginning-of-line
|
||||||
|
bindkey "\e[4~" end-of-line
|
||||||
|
bindkey '^[[1;5D' emacs-backward-word
|
||||||
|
bindkey '^[[1;5C' emacs-forward-word
|
||||||
|
|
||||||
|
# Auto completion/suggestions/and case insensitivity
|
||||||
|
autoload -Uz compinit && compinit
|
||||||
|
setopt correct
|
||||||
|
setopt extendedglob
|
||||||
|
setopt nocaseglob
|
||||||
|
zstyle ':completion:*' matcher-list 'm:{a-zA-Z}={A-Za-z}' # Case insensitive tab completion
|
||||||
|
zstyle ':completion:*' list-colors "''${(s.:.)LS_COLORS}" # Colored completion (different colors for dirs/files/etc)
|
||||||
|
zstyle ':completion:*' rehash true # automatically find new executables in path
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
0
users/_common/components/readme.md
Normal file
0
users/_common/components/readme.md
Normal file
|
@ -7,10 +7,8 @@
|
||||||
shell = pkgs.zsh;
|
shell = pkgs.zsh;
|
||||||
};
|
};
|
||||||
|
|
||||||
# TODO how to do this from home manager file instead
|
|
||||||
environment.pathsToLink = [ "/share/zsh" ];
|
environment.pathsToLink = [ "/share/zsh" ];
|
||||||
programs.zsh = {
|
programs.zsh = {
|
||||||
enable = true;
|
enable = true;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
12
users/luser/home_manager/common.nix
Normal file
12
users/luser/home_manager/common.nix
Normal file
|
@ -0,0 +1,12 @@
|
||||||
|
{ lib, ylib, settings, ... }:
|
||||||
|
{
|
||||||
|
imports = [
|
||||||
|
(settings.usersDir + "/_common/components/home_manager/tmux/tmux.nix")
|
||||||
|
(settings.usersDir + "/_common/components/home_manager/atuin.nix")
|
||||||
|
(settings.usersDir + "/_common/components/home_manager/starship.nix")
|
||||||
|
(settings.usersDir + "/_common/components/home_manager/zoxide.nix")
|
||||||
|
(settings.usersDir + "/_common/components/home_manager/zsh.nix")
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue