Let there be light!
Honestly, you should be ashamed that this hasn't been source controlled sooner. Tsk tsk tsk.
This commit is contained in:
commit
fd0f029e99
18 changed files with 1087 additions and 0 deletions
1
.gitignore
vendored
Normal file
1
.gitignore
vendored
Normal file
|
|
@ -0,0 +1 @@
|
|||
result
|
||||
21
Makefile
Normal file
21
Makefile
Normal file
|
|
@ -0,0 +1,21 @@
|
|||
all: build
|
||||
|
||||
.PHONY:
|
||||
build:
|
||||
NIXPKGS_ALLOW_UNFREE=1 home-manager build --flake .#dwave --impure
|
||||
|
||||
.PHONY:
|
||||
update:
|
||||
NIXPKGS_ALLOW_UNFREE=1 nix flake update .
|
||||
|
||||
.PHONY:
|
||||
switch: update build
|
||||
NIXPKGS_ALLOW_UNFREE=1 home-manager switch --flake .#dwave --impure -b backup
|
||||
|
||||
.PHONY:
|
||||
install:
|
||||
nix run home-manager/release-23.05 -- init --switch
|
||||
|
||||
.PHONY:
|
||||
clean:
|
||||
sudo rm -rf result
|
||||
175
configuration.nix
Normal file
175
configuration.nix
Normal file
|
|
@ -0,0 +1,175 @@
|
|||
{ config, pkgs, ... }:
|
||||
|
||||
{
|
||||
imports = [ ./hardware-configuration.nix ];
|
||||
|
||||
networking.hostId = "7be305c3";
|
||||
networking.hostName = "sandy";
|
||||
boot.loader.systemd-boot.enable = true;
|
||||
boot.loader.efi.canTouchEfiVariables = true;
|
||||
|
||||
networking.networkmanager.enable = true;
|
||||
time.timeZone = "America/Chicago";
|
||||
|
||||
i18n.defaultLocale = "en_US.UTF-8";
|
||||
i18n.extraLocaleSettings = {
|
||||
LC_ADDRESS = "en_US.UTF-8";
|
||||
LC_IDENTIFICATION = "en_US.UTF-8";
|
||||
LC_MEASUREMENT = "en_US.UTF-8";
|
||||
LC_MONETARY = "en_US.UTF-8";
|
||||
LC_NAME = "en_US.UTF-8";
|
||||
LC_NUMERIC = "en_US.UTF-8";
|
||||
LC_PAPER = "en_US.UTF-8";
|
||||
LC_TELEPHONE = "en_US.UTF-8";
|
||||
LC_TIME = "en_US.UTF-8";
|
||||
};
|
||||
|
||||
nixpkgs.config.allowUnfree = true;
|
||||
|
||||
nix = {
|
||||
package = pkgs.nixFlakes;
|
||||
extraOptions = ''
|
||||
experimental-features = nix-command flakes
|
||||
'';
|
||||
};
|
||||
|
||||
services = {
|
||||
openssh.enable = true;
|
||||
tailscale.enable = true;
|
||||
zfs.autoSnapshot.enable = true;
|
||||
pipewire = {
|
||||
enable = true;
|
||||
alsa.enable = true;
|
||||
alsa.support32Bit = true;
|
||||
pulse.enable = true;
|
||||
};
|
||||
|
||||
hardware.bolt.enable = true;
|
||||
|
||||
xserver = {
|
||||
enable = true;
|
||||
displayManager.lightdm.enable = true;
|
||||
desktopManager.plasma5.enable = true;
|
||||
displayManager.defaultSession = "plasmawayland";
|
||||
displayManager.autoLogin.enable = true;
|
||||
displayManager.autoLogin.user = "hodgson";
|
||||
layout = "us";
|
||||
xkbVariant = "";
|
||||
};
|
||||
|
||||
emacs = {
|
||||
enable = true;
|
||||
install = true;
|
||||
startWithGraphical = true;
|
||||
};
|
||||
|
||||
nscd.enable = true;
|
||||
printing.enable = true;
|
||||
};
|
||||
|
||||
programs.zsh.enable = true;
|
||||
services.avahi = {
|
||||
enable = true;
|
||||
nssmdns = true;
|
||||
openFirewall = true;
|
||||
publish = {
|
||||
enable = true;
|
||||
userServices = true;
|
||||
};
|
||||
};
|
||||
services.printing = {
|
||||
listenAddresses = [ "*:631" ];
|
||||
allowFrom = [ "all" ];
|
||||
browsing = true;
|
||||
defaultShared = true;
|
||||
openFirewall = true;
|
||||
drivers = [ pkgs.epson-escpr2 pkgs.epson-escpr pkgs.epson-201106w pkgs.gutenprint ];
|
||||
};
|
||||
sound.enable = true;
|
||||
hardware.pulseaudio.enable = false;
|
||||
hardware.printers = {
|
||||
|
||||
};
|
||||
|
||||
security = {
|
||||
rtkit.enable = true;
|
||||
sudo.wheelNeedsPassword = false;
|
||||
};
|
||||
|
||||
users.users.nshields = {
|
||||
isNormalUser = true;
|
||||
shell = pkgs.zsh;
|
||||
description = "Nikolai Shields";
|
||||
extraGroups = [ "lp" "docker" "networkmanager" "wheel" "podman" ];
|
||||
openssh.authorizedKeys.keys = [
|
||||
"ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQCpQBfim54pBdMAHJyYrrOpgma5EEE0GxVs92ax+WzJNIoXsuaQUVxQ8adzO7lIxwIrYQKt8uciKmsUJWRMSEKsmo6fgFUD767+d68+oz/IJitUnYHsPYfo0vsQGsiGkGi+goZ9UoLnmmOkbrGcasKrVqyM0zyd9X2cWa2CYnVU3BTa0r6+2cMBnUVI5ZigdaNm9jDiPJMMCYB60YI8A3bGZr6iNvfUSJ9p3ZTUshGzLO7ubJEZdUaa1YVOyZhZNz/u3eiBN9I+F49pV8EOazAFS5XZpkH8qxxl1fKKhNMtpYxx4UolesvfCf19qxf8ElNL2x70GPxhZApZ+IW0Ia2FwGmBYJq82Rd44fUHs+qK81a97auvj+fHCf+7wVLIoKTjg3sbOnVCCOe9/tYbzy/W+Bxbp1mCkvvfCirGX+P8VovbTGliwBAFwFBTNXqxlB363Fu9hmJxVUae1llMba7/FDcydgRsDSw4sNm/1lvyBrd4Fkh5CHfZFh3GGgVBpfXarYovq4TdmyuDEAqOVXJSiBUXhhhb3K40hJfNirgyO4+4C8S2VlpyWNMGGr5vDUzOKK8f1iEWiwItTg+vMTjqikuEaug+V4ZyaJiCI/p9M27+EC6K3VGLxhY4GyyMfzxbaq+08/2fmBv38izF0q7J1xJT0wvAj+bC6caZdYzIAw=="
|
||||
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIMrs3AFRgL4YfA7aMAD7X3O9kihcSCJKY8GiyWYV6Jwx"
|
||||
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIMyMRFu9m1ZSBqq/bAh4Vi2XDhPBkrCnYNddDizTu7Ob"
|
||||
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIA8O6W8B0w4JdCl+1AoHEQ861gVPkPxH0FWU1tM3JVxb"
|
||||
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIE0byzjdB7Um+ODCLNUrupMtAc/pHlznhq38y/gUPKIq"
|
||||
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIOjlyVh1/GW3KTdGnzSDP6oii13NLIk61v6FFKuRcvz/"
|
||||
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAINX5/yQ/mXI/qqWHWd0+lNt6rBnhDA9p5YgMBmfp3Xtk"
|
||||
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIKtQOHXIfltnEVMxgHlxgUNB/o6Bey6vdMWtwSfo+U4q"
|
||||
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIG90xfsjQSCH/nKyXlBujpJshZHb9yWzqDH8fLKKl9T2"
|
||||
];
|
||||
};
|
||||
|
||||
users.users.benson = {
|
||||
isNormalUser = true;
|
||||
shell = pkgs.zsh;
|
||||
description = "Benson Chu";
|
||||
extraGroups = [ "wheel" ];
|
||||
openssh.authorizedKeys.keys = [
|
||||
"ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDvIHZGAD3sLB8SKxXCaJDyuSceX3lMjKKUL2cvciPSPNUXnM3hgtWrL0c4xsWw9tF2NPiANtVXjrFMoE9+j875XbbBXkpTr/HXP2+3Zjo7SgZUW2YNUbY5oPkPc5/m4BAYUGrycQNOmCvEm9hHEdMob3LnmPzImA+GHxYisL0Hi1qRDj5gjLooMOuJdFl22BddxBQk0GsSHnHpSH7Y9OMzmA2oxs7yUaYWP9aE4Ksh7HqDVavHKZDJIjujx7KkJG2a9aAw++tau81O7fJhN5aLmw8OenxNNcyXK94La9z8s7yp2G5rVTnJj6dbCklSeFHO8Oi5D7IdDRK668N9yWL5 benson@ArchLinuvo"
|
||||
];
|
||||
};
|
||||
|
||||
users.users.hodgson = {
|
||||
isNormalUser = true;
|
||||
shell = pkgs.zsh;
|
||||
description = "Peter Hodgson";
|
||||
extraGroups = [ "lp" "wheel" ];
|
||||
openssh.authorizedKeys.keys = [
|
||||
"ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQCpQBfim54pBdMAHJyYrrOpgma5EEE0GxVs92ax+WzJNIoXsuaQUVxQ8adzO7lIxwIrYQKt8uciKmsUJWRMSEKsmo6fgFUD767+d68+oz/IJitUnYHsPYfo0vsQGsiGkGi+goZ9UoLnmmOkbrGcasKrVqyM0zyd9X2cWa2CYnVU3BTa0r6+2cMBnUVI5ZigdaNm9jDiPJMMCYB60YI8A3bGZr6iNvfUSJ9p3ZTUshGzLO7ubJEZdUaa1YVOyZhZNz/u3eiBN9I+F49pV8EOazAFS5XZpkH8qxxl1fKKhNMtpYxx4UolesvfCf19qxf8ElNL2x70GPxhZApZ+IW0Ia2FwGmBYJq82Rd44fUHs+qK81a97auvj+fHCf+7wVLIoKTjg3sbOnVCCOe9/tYbzy/W+Bxbp1mCkvvfCirGX+P8VovbTGliwBAFwFBTNXqxlB363Fu9hmJxVUae1llMba7/FDcydgRsDSw4sNm/1lvyBrd4Fkh5CHfZFh3GGgVBpfXarYovq4TdmyuDEAqOVXJSiBUXhhhb3K40hJfNirgyO4+4C8S2VlpyWNMGGr5vDUzOKK8f1iEWiwItTg+vMTjqikuEaug+V4ZyaJiCI/p9M27+EC6K3VGLxhY4GyyMfzxbaq+08/2fmBv38izF0q7J1xJT0wvAj+bC6caZdYzIAw=="
|
||||
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIMrs3AFRgL4YfA7aMAD7X3O9kihcSCJKY8GiyWYV6Jwx"
|
||||
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIMyMRFu9m1ZSBqq/bAh4Vi2XDhPBkrCnYNddDizTu7Ob"
|
||||
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIA8O6W8B0w4JdCl+1AoHEQ861gVPkPxH0FWU1tM3JVxb"
|
||||
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIE0byzjdB7Um+ODCLNUrupMtAc/pHlznhq38y/gUPKIq"
|
||||
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIOjlyVh1/GW3KTdGnzSDP6oii13NLIk61v6FFKuRcvz/"
|
||||
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAINX5/yQ/mXI/qqWHWd0+lNt6rBnhDA9p5YgMBmfp3Xtk"
|
||||
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIKtQOHXIfltnEVMxgHlxgUNB/o6Bey6vdMWtwSfo+U4q"
|
||||
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIG90xfsjQSCH/nKyXlBujpJshZHb9yWzqDH8fLKKl9T2"
|
||||
];
|
||||
|
||||
};
|
||||
|
||||
environment.systemPackages = with pkgs; [
|
||||
gnome.gnome-tweaks
|
||||
gnome.networkmanager-openconnect
|
||||
google-chrome
|
||||
nss
|
||||
htop
|
||||
sssd
|
||||
nsss
|
||||
vim
|
||||
git
|
||||
curl
|
||||
wget
|
||||
wl-clipboard
|
||||
unscd
|
||||
glibc
|
||||
glib
|
||||
openconnect
|
||||
emacs
|
||||
ispell
|
||||
tmux
|
||||
libsForQt5.plasma-thunderbolt
|
||||
nmap
|
||||
];
|
||||
|
||||
networking.firewall.allowedTCPPorts = [ 22 ];
|
||||
networking.firewall.allowedUDPPorts = [ ];
|
||||
networking.firewall.enable = true;
|
||||
|
||||
system.stateVersion = "23.05"; # Did you read the comment?
|
||||
}
|
||||
66
flake.lock
Normal file
66
flake.lock
Normal file
|
|
@ -0,0 +1,66 @@
|
|||
{
|
||||
"nodes": {
|
||||
"home-manager": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1700814205,
|
||||
"narHash": "sha256-lWqDPKHRbQfi+zNIivf031BUeyciVOtwCwTjyrhDB5g=",
|
||||
"owner": "nix-community",
|
||||
"repo": "home-manager",
|
||||
"rev": "aeb2232d7a32530d3448318790534d196bf9427a",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nix-community",
|
||||
"ref": "release-23.11",
|
||||
"repo": "home-manager",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs": {
|
||||
"locked": {
|
||||
"lastModified": 1701389149,
|
||||
"narHash": "sha256-rU1suTIEd5DGCaAXKW6yHoCfR1mnYjOXQFOaH7M23js=",
|
||||
"owner": "nixos",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "5de0b32be6e85dc1a9404c75131316e4ffbc634c",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nixos",
|
||||
"ref": "nixos-23.11",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"root": {
|
||||
"inputs": {
|
||||
"home-manager": "home-manager",
|
||||
"nixpkgs": "nixpkgs",
|
||||
"unstable": "unstable"
|
||||
}
|
||||
},
|
||||
"unstable": {
|
||||
"locked": {
|
||||
"lastModified": 1701253981,
|
||||
"narHash": "sha256-ztaDIyZ7HrTAfEEUt9AtTDNoCYxUdSd6NrRHaYOIxtk=",
|
||||
"owner": "nixos",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "e92039b55bcd58469325ded85d4f58dd5a4eaf58",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nixos",
|
||||
"ref": "nixos-unstable",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
}
|
||||
},
|
||||
"root": "root",
|
||||
"version": 7
|
||||
}
|
||||
35
flake.nix
Normal file
35
flake.nix
Normal file
|
|
@ -0,0 +1,35 @@
|
|||
{
|
||||
description = "NixOS configuration";
|
||||
|
||||
inputs = {
|
||||
nixpkgs.url = "github:nixos/nixpkgs/nixos-23.11";
|
||||
unstable.url = "github:nixos/nixpkgs/nixos-unstable";
|
||||
home-manager.url = "github:nix-community/home-manager/release-23.11";
|
||||
home-manager.inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
|
||||
outputs = inputs@{ nixpkgs, home-manager, unstable, ... }:
|
||||
let
|
||||
system = "x86_64-linux";
|
||||
pkgs = nixpkgs.legacyPackages.${system};
|
||||
unstablePkgs = unstable.legacyPackages.${system};
|
||||
in {
|
||||
nixosConfigurations = {
|
||||
sandy = nixpkgs.lib.nixosSystem {
|
||||
system = "x86_64-linux";
|
||||
modules = [
|
||||
./configuration.nix
|
||||
home-manager.nixosModules.home-manager
|
||||
{
|
||||
home-manager.useGlobalPkgs = true;
|
||||
home-manager.useUserPackages = true;
|
||||
home-manager.users.nshields = import ./home.nix;
|
||||
home-manager.extraSpecialArgs = {
|
||||
inherit unstablePkgs;
|
||||
};
|
||||
}
|
||||
];
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
53
hardware-configuration.nix
Normal file
53
hardware-configuration.nix
Normal file
|
|
@ -0,0 +1,53 @@
|
|||
# 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 = [ "xhci_pci" "thunderbolt" "nvme" "usb_storage" "sd_mod" ];
|
||||
boot.initrd.kernelModules = [ ];
|
||||
boot.kernelModules = [ "kvm-intel" ];
|
||||
boot.extraModulePackages = [ ];
|
||||
|
||||
fileSystems."/" =
|
||||
{ device = "rpool/root/nixos";
|
||||
fsType = "zfs";
|
||||
};
|
||||
|
||||
fileSystems."/home" =
|
||||
{ device = "rpool/home";
|
||||
fsType = "zfs";
|
||||
};
|
||||
|
||||
fileSystems."/home/hodgson" =
|
||||
{ device = "rpool/home/hodgson";
|
||||
fsType = "zfs";
|
||||
};
|
||||
|
||||
fileSystems."/home/nikolai" =
|
||||
{ device = "rpool/home/nikolai";
|
||||
fsType = "zfs";
|
||||
};
|
||||
|
||||
fileSystems."/boot" =
|
||||
{ device = "/dev/disk/by-uuid/EC2B-C09B";
|
||||
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.wlp170s0.useDHCP = lib.mkDefault true;
|
||||
|
||||
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
|
||||
powerManagement.cpuFreqGovernor = lib.mkDefault "powersave";
|
||||
hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
|
||||
}
|
||||
246
home.nix
Normal file
246
home.nix
Normal file
|
|
@ -0,0 +1,246 @@
|
|||
{ config, pkgs, unstablePkgs, ... }: {
|
||||
targets.genericLinux.enable = true;
|
||||
home = {
|
||||
stateVersion = "23.05";
|
||||
file = {
|
||||
".local/bin" = { source = ./scripts; };
|
||||
};
|
||||
};
|
||||
|
||||
xdg.userDirs = {
|
||||
enable = true;
|
||||
createDirectories = true;
|
||||
extraConfig = {
|
||||
XDG_SRC_DIR = "${config.home.homeDirectory}/Code";
|
||||
XDG_SCRIPTS_DIR = "${config.home.homeDirectory}/.local/bin";
|
||||
};
|
||||
};
|
||||
|
||||
xdg.configFile = {
|
||||
"nvim/lua" = {
|
||||
enable = true;
|
||||
recursive = true;
|
||||
source = ./nvim/lua;
|
||||
};
|
||||
|
||||
"wezterm/" = {
|
||||
enable = true;
|
||||
recursive = true;
|
||||
source = ./wezterm;
|
||||
};
|
||||
};
|
||||
|
||||
xdg.dataFile = {
|
||||
".local" = {
|
||||
enable = true;
|
||||
recursive = true;
|
||||
source = ./scripts;
|
||||
};
|
||||
};
|
||||
|
||||
fonts.fontconfig.enable = true;
|
||||
|
||||
home.packages = with pkgs; [
|
||||
cilium-cli
|
||||
go
|
||||
packer
|
||||
podman
|
||||
podman-compose
|
||||
ansible
|
||||
entr
|
||||
file
|
||||
gnumake
|
||||
gum
|
||||
htop
|
||||
jq
|
||||
k9s
|
||||
krew
|
||||
kubectl
|
||||
kubernetes-helm
|
||||
ovftool
|
||||
nixfmt
|
||||
ranger
|
||||
ripgrep
|
||||
shellcheck
|
||||
shfmt
|
||||
sops
|
||||
sysz
|
||||
tealdeer
|
||||
tmux
|
||||
vault
|
||||
whois
|
||||
zoom-us
|
||||
slack
|
||||
unstablePkgs.awscli2
|
||||
unstablePkgs.clusterctl
|
||||
unstablePkgs.fira-code-nerdfont
|
||||
];
|
||||
|
||||
programs = {
|
||||
home-manager.enable = true;
|
||||
bat.enable = true;
|
||||
|
||||
ssh = { forwardAgent = true; };
|
||||
|
||||
direnv = {
|
||||
enable = true;
|
||||
enableBashIntegration = true;
|
||||
enableZshIntegration = true;
|
||||
};
|
||||
|
||||
fzf = {
|
||||
enable = true;
|
||||
enableZshIntegration = true;
|
||||
};
|
||||
|
||||
bash = {
|
||||
enable = true;
|
||||
sessionVariables = {
|
||||
EDITOR = "nvim";
|
||||
VAULT_ADDR = "https://it-vault.dwavesys.local";
|
||||
PATH = "$PATH:$HOME/.krew/bin:$HOME/.local/bin";
|
||||
};
|
||||
};
|
||||
|
||||
zsh = {
|
||||
enable = true;
|
||||
enableVteIntegration = true;
|
||||
completionInit = "autoload -U compinit && compinit";
|
||||
autocd = true;
|
||||
enableAutosuggestions = true;
|
||||
enableCompletion = true;
|
||||
shellAliases = {
|
||||
la = "ls -la";
|
||||
ip = "ip --color=auto";
|
||||
k = "kubectl";
|
||||
tf = "terraform";
|
||||
};
|
||||
|
||||
sessionVariables = {
|
||||
EDITOR = "nvim";
|
||||
PATH = "$PATH:$HOME/.tfenv/bin:$HOME/.krew/bin:$HOME/.local/bin:/var/lib/flatpak/exports/share:$HOME/.local/share/flatpak/exports/share";
|
||||
};
|
||||
|
||||
oh-my-zsh = {
|
||||
enable = true;
|
||||
theme = "awesomepanda";
|
||||
};
|
||||
|
||||
dirHashes = {
|
||||
Code = "$HOME/Code";
|
||||
work = "$HOME/Code/git.dwavesys.local";
|
||||
#nix = "$HOME/Code/github.com/${githubUser}/nixos-config";
|
||||
dl = "$HOME/Downloads";
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
# TODO: auto-install tpm and run plugin install on first open
|
||||
tmux = {
|
||||
enable = true;
|
||||
extraConfig = builtins.readFile tmux/tmux.conf;
|
||||
};
|
||||
|
||||
neovim = {
|
||||
enable = true;
|
||||
vimAlias = true;
|
||||
viAlias = true;
|
||||
withPython3 = true;
|
||||
extraPackages = with pkgs; [
|
||||
git
|
||||
gopls
|
||||
nodePackages.bash-language-server
|
||||
ripgrep
|
||||
shfmt
|
||||
terraform-ls
|
||||
];
|
||||
|
||||
plugins = with pkgs.vimPlugins; [
|
||||
nvim-treesitter
|
||||
nvim-treesitter-parsers.nix
|
||||
nvim-treesitter-parsers.go
|
||||
nvim-treesitter-parsers.hcl
|
||||
nvim-treesitter-parsers.bash
|
||||
nvim-treesitter-parsers.yaml
|
||||
nvim-treesitter-parsers.terraform
|
||||
nvim-treesitter-parsers.lua
|
||||
nvim-treesitter-parsers.json
|
||||
vimwiki
|
||||
luasnip
|
||||
auto-pairs
|
||||
auto-save-nvim
|
||||
neoformat
|
||||
neomake
|
||||
nerdcommenter
|
||||
nvim-lspconfig
|
||||
papercolor-theme
|
||||
catppuccin-nvim
|
||||
plenary-nvim
|
||||
popup-nvim
|
||||
project-nvim
|
||||
nvim-cmp
|
||||
cmp-nvim-lsp
|
||||
telescope-file-browser-nvim
|
||||
telescope-fzy-native-nvim
|
||||
telescope-nvim
|
||||
undotree
|
||||
vim-fugitive
|
||||
vim-nix
|
||||
telescope-project-nvim
|
||||
];
|
||||
|
||||
extraLuaConfig = builtins.readFile nvim/init.lua;
|
||||
};
|
||||
|
||||
wezterm = {
|
||||
enable = true; # TODO: set to 'graphical' when wezterm is patched for wayland
|
||||
package = unstablePkgs.wezterm;
|
||||
extraConfig = builtins.readFile wezterm/wezterm.lua;
|
||||
};
|
||||
|
||||
chromium = {
|
||||
enable = true;
|
||||
package = pkgs.brave;
|
||||
extensions = [
|
||||
{ id = "dbepggeogbaibhgnhhndojpepiihcmeb"; }
|
||||
{ id = "bfogiafebfohielmmehodmfbbebbbpei"; }
|
||||
{ id = "nngceckbapebfimnlniiiahkandclblb"; }
|
||||
];
|
||||
};
|
||||
|
||||
git = {
|
||||
enable = true;
|
||||
aliases = {
|
||||
co = "checkout";
|
||||
c = "commit";
|
||||
s = "status";
|
||||
ss = "snapshot";
|
||||
sp = "safe-pull";
|
||||
rl = "remote-log";
|
||||
sb = "switch-to-branch";
|
||||
};
|
||||
|
||||
userName = "Nikolai Shields";
|
||||
userEmail = "nshields@dwavesys.com";
|
||||
signing = {
|
||||
key = "~/.ssh/id_ed25519";
|
||||
signByDefault = true;
|
||||
};
|
||||
|
||||
extraConfig = {
|
||||
core = {
|
||||
editor = "nvim";
|
||||
pager = "bat";
|
||||
};
|
||||
|
||||
gpg = {
|
||||
format = "ssh";
|
||||
ssh = { allowedSignersFile = "~/.config/git/allowed_signers"; };
|
||||
};
|
||||
|
||||
init = { defaultBranch = "main"; };
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
94
nvim/init.lua
Executable file
94
nvim/init.lua
Executable file
|
|
@ -0,0 +1,94 @@
|
|||
require("telescope")
|
||||
require("lsp")
|
||||
vim.cmd([[
|
||||
filetype plugin indent on " allow auto-indenting depending on file type
|
||||
filetype plugin on
|
||||
syntax on " syntax highlighting
|
||||
set autoindent " indent a new line the same amount as the line just typed
|
||||
set autochdir
|
||||
set wrap
|
||||
set encoding=UTF-8
|
||||
set cmdheight=1 " Give more space for displaying messages.
|
||||
set colorcolumn=80
|
||||
set cursorline " highlight current cursorline
|
||||
set expandtab
|
||||
set guicursor=
|
||||
set hidden
|
||||
set hlsearch " highlight search
|
||||
set ignorecase " case insensitive
|
||||
set incsearch
|
||||
set incsearch " incremental search
|
||||
set isfname+=@-@
|
||||
set mouse=a " enable mouse click
|
||||
set mouse=v " middle-click paste with
|
||||
set nobackup
|
||||
set nocompatible " disable compatibility to old-time vi
|
||||
set noerrorbells
|
||||
set noswapfile
|
||||
set nowrap
|
||||
set nu
|
||||
set scrolloff=8
|
||||
set shiftwidth=4
|
||||
set shortmess+=c " Don't pass messages to |ins-completion-menu|.
|
||||
set showmatch " show matching
|
||||
set signcolumn=yes
|
||||
set smartindent
|
||||
set tabstop=4
|
||||
set softtabstop=4
|
||||
set termguicolors
|
||||
set ttyfast " Speed up scrolling in Vim
|
||||
set undodir=~/.vim/undodir
|
||||
set undofile
|
||||
set updatetime=50
|
||||
set wildmode=longest,list " get bash-like tab completions
|
||||
set grepprg=rg\ --vimgrep\ --smart-case\ --follow
|
||||
|
||||
" Colors
|
||||
set termguicolors
|
||||
set background=dark
|
||||
colorscheme catppuccin-mocha
|
||||
|
||||
" Navigation
|
||||
let mapleader = " "
|
||||
|
||||
nnoremap <C-j> <C-w>j
|
||||
nnoremap <C-k> <C-w>k
|
||||
nnoremap <C-h> <C-w>h
|
||||
nnoremap <C-l> <C-w>l
|
||||
|
||||
" Quicker quits
|
||||
nnoremap <C-q> <C-w>q
|
||||
|
||||
" Open new split panes to right and bottom, which feels more natural
|
||||
set splitbelow
|
||||
set splitright
|
||||
|
||||
" Quick directory change
|
||||
nnoremap <leader>cd :cd %:p:h<CR>:pwd<CR>
|
||||
|
||||
nnoremap <leader>wq :w<CR>:bd<CR>
|
||||
|
||||
" Run commands that require an interactive shell
|
||||
nnoremap <Leader>r :terminal <Space>
|
||||
|
||||
" Switch between the last two files
|
||||
nnoremap <Leader><Leader> <C-^>
|
||||
|
||||
" Git
|
||||
nnoremap <leader>git :Git<CR>
|
||||
|
||||
" Telescope
|
||||
nnoremap <leader>fs :lua require('telescope.builtin').grep_string({ search = vim.fn.input("Grep For > ")})<CR>
|
||||
nnoremap <C-f> :lua require('telescope.builtin').git_files()<CR>
|
||||
nnoremap <Leader>ff :lua require('telescope.builtin').find_files()<CR>
|
||||
nnoremap <Leader>fb :Telescope file_browser<CR>
|
||||
nnoremap <Leader>fb :Telescope file_browser<CR>
|
||||
noremap <Leader>fp :Telescope project<CR>
|
||||
nnoremap <leader>fw :lua require('telescope.builtin').grep_string { search = vim.fn.expand("<cword>") }<CR>
|
||||
nnoremap <leader>bf :lua require('telescope.builtin').buffers()<CR>
|
||||
nnoremap <leader>nix :lua require('telescope').search_nixos_config()<CR>
|
||||
nnoremap <leader>src :lua require('telescope').search_src()<CR>
|
||||
|
||||
" Undotree
|
||||
nnoremap <leader>pu :UndotreeToggle<CR>
|
||||
]])
|
||||
62
nvim/lua/lsp.lua
Executable file
62
nvim/lua/lsp.lua
Executable file
|
|
@ -0,0 +1,62 @@
|
|||
require'lspconfig'.bashls.setup{}
|
||||
require'lspconfig'.gopls.setup{}
|
||||
require'lspconfig'.terraformls.setup{}
|
||||
|
||||
-- Add additional capabilities supported by nvim-cmp
|
||||
local capabilities = vim.lsp.protocol.make_client_capabilities()
|
||||
capabilities = require('cmp_nvim_lsp').default_capabilities(capabilities)
|
||||
|
||||
local lspconfig = require('lspconfig')
|
||||
|
||||
-- Enable some language servers with the additional completion capabilities offered by nvim-cmp
|
||||
local servers = { 'gopls', 'bashls', 'terraformls' }
|
||||
for _, lsp in ipairs(servers) do
|
||||
lspconfig[lsp].setup {
|
||||
-- on_attach = my_custom_on_attach,
|
||||
capabilities = capabilities,
|
||||
}
|
||||
end
|
||||
|
||||
-- luasnip setup
|
||||
local luasnip = require 'luasnip'
|
||||
|
||||
-- nvim-cmp setup
|
||||
local cmp = require 'cmp'
|
||||
cmp.setup {
|
||||
snippet = {
|
||||
expand = function(args)
|
||||
luasnip.lsp_expand(args.body)
|
||||
end,
|
||||
},
|
||||
mapping = cmp.mapping.preset.insert({
|
||||
['<C-d>'] = cmp.mapping.scroll_docs(-4),
|
||||
['<C-f>'] = cmp.mapping.scroll_docs(4),
|
||||
['<C-Space>'] = cmp.mapping.complete(),
|
||||
['<CR>'] = cmp.mapping.confirm {
|
||||
behavior = cmp.ConfirmBehavior.Replace,
|
||||
select = true,
|
||||
},
|
||||
['<Tab>'] = cmp.mapping(function(fallback)
|
||||
if cmp.visible() then
|
||||
cmp.select_next_item()
|
||||
elseif luasnip.expand_or_jumpable() then
|
||||
luasnip.expand_or_jump()
|
||||
else
|
||||
fallback()
|
||||
end
|
||||
end, { 'i', 's' }),
|
||||
['<S-Tab>'] = cmp.mapping(function(fallback)
|
||||
if cmp.visible() then
|
||||
cmp.select_prev_item()
|
||||
elseif luasnip.jumpable(-1) then
|
||||
luasnip.jump(-1)
|
||||
else
|
||||
fallback()
|
||||
end
|
||||
end, { 'i', 's' }),
|
||||
}),
|
||||
sources = {
|
||||
{ name = 'nvim_lsp' },
|
||||
{ name = 'luasnip' },
|
||||
},
|
||||
}
|
||||
62
nvim/lua/telescope.lua
Executable file
62
nvim/lua/telescope.lua
Executable file
|
|
@ -0,0 +1,62 @@
|
|||
local pickers = require("telescope.pickers")
|
||||
local finders = require("telescope.finders")
|
||||
local previewers = require("telescope.previewers")
|
||||
local action_state = require("telescope.actions.state")
|
||||
local conf = require("telescope.config").values
|
||||
local actions = require("telescope.actions")
|
||||
|
||||
require("telescope").setup({
|
||||
defaults = {
|
||||
file_sorter = require("telescope.sorters").get_fzy_sorter,
|
||||
prompt_prefix = " >",
|
||||
color_devicons = true,
|
||||
file_previewer = require("telescope.previewers").vim_buffer_cat.new,
|
||||
grep_previewer = require("telescope.previewers").vim_buffer_vimgrep.new,
|
||||
qflist_previewer = require("telescope.previewers").vim_buffer_qflist.new,
|
||||
|
||||
mappings = {
|
||||
i = {
|
||||
["<C-x>"] = false,
|
||||
["<C-q>"] = actions.send_to_qflist,
|
||||
},
|
||||
},
|
||||
},
|
||||
pickers = {
|
||||
file_browser = {
|
||||
hidden = true,
|
||||
}
|
||||
},
|
||||
extensions = {
|
||||
fzy_native = {
|
||||
override_generic_sorter = false,
|
||||
override_file_sorter = true,
|
||||
},
|
||||
file_browser = {
|
||||
theme = "ivy",
|
||||
},
|
||||
project = {
|
||||
base_dirs = {
|
||||
{'$HOME/Code/git.dwavesys.local', max_depth = 1},
|
||||
{'$HOME/Code/github.com', max_depth = 2},
|
||||
hidden_files = true,
|
||||
theme = "dropdown",
|
||||
search_by = "title",
|
||||
}
|
||||
},
|
||||
}
|
||||
})
|
||||
|
||||
require("telescope").load_extension("fzy_native")
|
||||
require("telescope").load_extension("file_browser")
|
||||
require("telescope").load_extension("project")
|
||||
|
||||
M.search_nixos_config = function()
|
||||
require("telescope.builtin").find_files({
|
||||
prompt_title = "< nixos config >",
|
||||
cwd = "$HOME/.config/home-manager",
|
||||
hidden = false,
|
||||
})
|
||||
end
|
||||
return M
|
||||
|
||||
|
||||
10
scripts/git-remote-log
Executable file
10
scripts/git-remote-log
Executable file
|
|
@ -0,0 +1,10 @@
|
|||
#!/usr/bin/env sh
|
||||
git fetch
|
||||
remoteBranch=$(git symbolic-ref --short -q HEAD)
|
||||
|
||||
if [ -n "$1" ]
|
||||
then
|
||||
remoteBranch=$1
|
||||
fi
|
||||
echo "Showing logs between $remoteBranch origin/$remoteBranch"
|
||||
git log $remoteBranch..origin/$remoteBranch --oneline
|
||||
2
scripts/git-safe-pull
Executable file
2
scripts/git-safe-pull
Executable file
|
|
@ -0,0 +1,2 @@
|
|||
#!/usr/bin/env sh
|
||||
git snapshot && git restore . && git fetch --all && git pull && git stash pop
|
||||
2
scripts/git-snapshot
Executable file
2
scripts/git-snapshot
Executable file
|
|
@ -0,0 +1,2 @@
|
|||
#!/usr/bin/env sh
|
||||
git stash && git stash apply
|
||||
17
scripts/git-switch-to-branch
Executable file
17
scripts/git-switch-to-branch
Executable file
|
|
@ -0,0 +1,17 @@
|
|||
#!/usr/bin/env sh
|
||||
BRANCH=$1
|
||||
|
||||
if [ -n "$BRANCH" ]
|
||||
then
|
||||
if [ $(git branch -l) | grep $BRANCH]
|
||||
git stash -u
|
||||
git checkout -b "$BRANCH"
|
||||
git stash pop
|
||||
else
|
||||
git stash -u
|
||||
git switch -c "$BRANCH"
|
||||
git stash pop
|
||||
fi
|
||||
else
|
||||
echo "Error: Branch name not specified"
|
||||
fi
|
||||
65
scripts/terraform
Executable file
65
scripts/terraform
Executable file
|
|
@ -0,0 +1,65 @@
|
|||
#!/usr/bin/env bash
|
||||
set -uo pipefail;
|
||||
|
||||
####################################
|
||||
# Ensure we can execute standalone #
|
||||
####################################
|
||||
|
||||
function early_death() {
|
||||
echo "[FATAL] ${0}: ${1}" >&2;
|
||||
exit 1;
|
||||
};
|
||||
|
||||
if [ -z "${TFENV_ROOT:-""}" ]; then
|
||||
# http://stackoverflow.com/questions/1055671/how-can-i-get-the-behavior-of-gnus-readlink-f-on-a-mac
|
||||
readlink_f() {
|
||||
local target_file="${1}";
|
||||
local file_name;
|
||||
|
||||
while [ "${target_file}" != "" ]; do
|
||||
cd "${target_file%/*}" || early_death "Failed to 'cd \$(${target_file%/*})' while trying to determine TFENV_ROOT";
|
||||
file_name="${target_file##*/}" || early_death "Failed to '\"${target_file##*/}\"' while trying to determine TFENV_ROOT";
|
||||
target_file="$(readlink "${file_name}")";
|
||||
done;
|
||||
|
||||
echo "$(pwd -P)/${file_name}";
|
||||
};
|
||||
TFENV_SHIM=$(readlink_f "${0}")
|
||||
TFENV_ROOT="${TFENV_SHIM%/*/*}";
|
||||
[ -n "${TFENV_ROOT}" ] || early_death "Failed to determine TFENV_ROOT";
|
||||
else
|
||||
TFENV_ROOT="${TFENV_ROOT%/}";
|
||||
fi;
|
||||
export TFENV_ROOT;
|
||||
|
||||
if [ -n "${TFENV_HELPERS:-""}" ]; then
|
||||
log 'debug' 'TFENV_HELPERS is set, not sourcing helpers again';
|
||||
else
|
||||
[ "${TFENV_DEBUG:-0}" -gt 0 ] && >&2 echo "[DEBUG] Sourcing helpers from ${TFENV_ROOT}/lib/helpers.sh";
|
||||
if source "${TFENV_ROOT}/lib/helpers.sh"; then
|
||||
log 'debug' 'Helpers sourced successfully';
|
||||
else
|
||||
early_death "Failed to source helpers from ${TFENV_ROOT}/lib/helpers.sh";
|
||||
fi;
|
||||
fi;
|
||||
|
||||
# Ensure libexec and bin are in $PATH
|
||||
for dir in libexec bin; do
|
||||
case ":${PATH}:" in
|
||||
*:${TFENV_ROOT}/${dir}:*) log 'debug' "\$PATH already contains '${TFENV_ROOT}/${dir}', not adding it again";;
|
||||
*)
|
||||
log 'debug' "\$PATH does not contain '${TFENV_ROOT}/${dir}', prepending and exporting it now";
|
||||
export PATH="${TFENV_ROOT}/${dir}:${PATH}";
|
||||
;;
|
||||
esac;
|
||||
done;
|
||||
|
||||
#####################
|
||||
# Begin Script Body #
|
||||
#####################
|
||||
|
||||
log 'debug' "program=\"${0##*/}\"";
|
||||
|
||||
declare tfenv_path="${TFENV_ROOT}/bin/tfenv";
|
||||
|
||||
tfenv-exec "$@";
|
||||
113
scripts/tfenv
Executable file
113
scripts/tfenv
Executable file
|
|
@ -0,0 +1,113 @@
|
|||
#!/usr/bin/env bash
|
||||
set -uo pipefail;
|
||||
|
||||
####################################
|
||||
# Ensure we can execute standalone #
|
||||
####################################
|
||||
|
||||
function early_death() {
|
||||
echo "[FATAL] ${0}: ${1}" >&2;
|
||||
exit 1;
|
||||
};
|
||||
|
||||
if [ -z "${TFENV_ROOT:-""}" ]; then
|
||||
# http://stackoverflow.com/questions/1055671/how-can-i-get-the-behavior-of-gnus-readlink-f-on-a-mac
|
||||
readlink_f() {
|
||||
local target_file="${1}";
|
||||
local file_name;
|
||||
|
||||
while [ "${target_file}" != "" ]; do
|
||||
cd "${target_file%/*}" || early_death "Failed to 'cd \$(${target_file%/*})' while trying to determine TFENV_ROOT";
|
||||
file_name="${target_file##*/}" || early_death "Failed to '\"${target_file##*/}\"' while trying to determine TFENV_ROOT";
|
||||
target_file="$(readlink "${file_name}")";
|
||||
done;
|
||||
|
||||
echo "$(pwd -P)/${file_name}";
|
||||
};
|
||||
TFENV_SHIM=$(readlink_f "${0}")
|
||||
TFENV_ROOT="${TFENV_SHIM%/*/*}";
|
||||
[ -n "${TFENV_ROOT}" ] || early_death "Failed to determine TFENV_ROOT";
|
||||
|
||||
else
|
||||
TFENV_ROOT="${TFENV_ROOT%/}";
|
||||
fi;
|
||||
export TFENV_ROOT;
|
||||
|
||||
if [ -n "${TFENV_HELPERS:-""}" ]; then
|
||||
log 'debug' 'TFENV_HELPERS is set, not sourcing helpers again';
|
||||
else
|
||||
[ "${TFENV_DEBUG:-0}" -gt 0 ] && >&2 echo "[DEBUG] Sourcing helpers from ${TFENV_ROOT}/lib/helpers.sh";
|
||||
if source "${TFENV_ROOT}/lib/helpers.sh"; then
|
||||
log 'debug' 'Helpers sourced successfully';
|
||||
else
|
||||
early_death "Failed to source helpers from ${TFENV_ROOT}/lib/helpers.sh";
|
||||
fi;
|
||||
fi;
|
||||
|
||||
# Ensure libexec and bin are in $PATH
|
||||
for dir in libexec bin; do
|
||||
case ":${PATH}:" in
|
||||
*:${TFENV_ROOT}/${dir}:*) log 'debug' "\$PATH already contains '${TFENV_ROOT}/${dir}', not adding it again";;
|
||||
*)
|
||||
log 'debug' "\$PATH does not contain '${TFENV_ROOT}/${dir}', prepending and exporting it now";
|
||||
export PATH="${TFENV_ROOT}/${dir}:${PATH}";
|
||||
;;
|
||||
esac;
|
||||
done;
|
||||
|
||||
#####################
|
||||
# Begin Script Body #
|
||||
#####################
|
||||
|
||||
declare arg="${1:-""}";
|
||||
|
||||
log 'debug' "Setting TFENV_DIR to ${PWD}";
|
||||
export TFENV_DIR="${PWD}";
|
||||
|
||||
abort() {
|
||||
log 'debug' 'Aborting...';
|
||||
{
|
||||
if [ "${#}" -eq 0 ]; then
|
||||
cat -;
|
||||
else
|
||||
echo "tfenv: ${*}";
|
||||
fi;
|
||||
} >&2;
|
||||
};
|
||||
|
||||
log 'debug' "tfenv argument is: ${arg}";
|
||||
|
||||
case "${arg}" in
|
||||
"")
|
||||
log 'debug' 'No argument provided, dumping version and help and aborting';
|
||||
{
|
||||
tfenv---version;
|
||||
tfenv-help;
|
||||
} | abort && exit 1;
|
||||
exit 1;
|
||||
;;
|
||||
-v | --version )
|
||||
log 'debug' 'tfenv version requested...';
|
||||
exec tfenv---version;
|
||||
;;
|
||||
-h | --help )
|
||||
log 'debug' 'tfenv help requested...';
|
||||
exec tfenv-help;
|
||||
;;
|
||||
*)
|
||||
log 'debug' "Long argument provided: ${arg}";
|
||||
command_path="$(command -v "tfenv-${arg}" || true)";
|
||||
log 'debug' "Resulting command-path: ${command_path}";
|
||||
if [ -z "${command_path}" ]; then
|
||||
{
|
||||
echo "No such command '${arg}'";
|
||||
tfenv-help;
|
||||
} | abort && exit 1;
|
||||
fi;
|
||||
shift 1;
|
||||
log 'debug' "Exec: \"${command_path}\" \"$*\"";
|
||||
exec "${command_path}" "$@";
|
||||
;;
|
||||
esac;
|
||||
|
||||
log 'error' 'This line should not be reachable. Something catastrophic has occurred';
|
||||
55
tmux/tmux.conf
Normal file
55
tmux/tmux.conf
Normal file
|
|
@ -0,0 +1,55 @@
|
|||
set-option -sa terminal-overrides ",xterm*:Tc"
|
||||
set -g mouse on
|
||||
|
||||
unbind C-b
|
||||
set -g prefix C-Space
|
||||
bind C-Space send-prefix
|
||||
|
||||
# Vim style pane selection
|
||||
bind h select-pane -L
|
||||
bind j select-pane -D
|
||||
bind k select-pane -U
|
||||
bind l select-pane -R
|
||||
|
||||
# Start windows and panes at 1, not 0
|
||||
set -g base-index 1
|
||||
set -g pane-base-index 1
|
||||
set-window-option -g pane-base-index 1
|
||||
set-option -g renumber-windows on
|
||||
|
||||
# Use Alt-arrow keys without prefix key to switch panes
|
||||
bind -n M-Left select-pane -L
|
||||
bind -n M-Right select-pane -R
|
||||
bind -n M-Up select-pane -U
|
||||
bind -n M-Down select-pane -D
|
||||
|
||||
# Shift arrow to switch windows
|
||||
bind -n S-Left previous-window
|
||||
bind -n S-Right next-window
|
||||
|
||||
# Shift Alt vim keys to switch windows
|
||||
bind -n M-H previous-window
|
||||
bind -n M-L next-window
|
||||
|
||||
set -g @catppuccin_flavour 'mocha'
|
||||
|
||||
# set vi-mode
|
||||
set-window-option -g mode-keys vi
|
||||
# keybindings
|
||||
set -g set-clipboard on
|
||||
bind-key -T copy-mode-vi v send-keys -X begin-selection
|
||||
bind-key -T copy-mode-vi C-v send-keys -X rectangle-toggle
|
||||
bind-key -T copy-mode-vi y send-keys -X copy-selection-and-cancel
|
||||
|
||||
bind '"' split-window -v -c "#{pane_current_path}"
|
||||
bind % split-window -h -c "#{pane_current_path}"
|
||||
|
||||
set -g @plugin 'tmux-plugins/tpm'
|
||||
set -g @plugin 'tmux-plugins/tmux-sensible'
|
||||
set -g @plugin 'christoomey/vim-tmux-navigator'
|
||||
set -g @plugin 'dreamsofcode-io/catppuccin-tmux'
|
||||
set -g @plugin 'tmux-plugins/tmux-yank'
|
||||
|
||||
run '~/.tmux/plugins/tpm/tpm'
|
||||
|
||||
|
||||
8
wezterm/wezterm.lua
Normal file
8
wezterm/wezterm.lua
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
local wezterm = require 'wezterm'
|
||||
local config = {}
|
||||
|
||||
config.enable_wayland = true
|
||||
font = wezterm.font 'FiraCode Nerd Font'
|
||||
config.hide_tab_bar_if_only_one_tab = true
|
||||
|
||||
return config
|
||||
Loading…
Reference in a new issue