stable
This commit is contained in:
commit
b39e453d49
21 changed files with 2051 additions and 0 deletions
249
flake.lock
Normal file
249
flake.lock
Normal file
|
|
@ -0,0 +1,249 @@
|
||||||
|
{
|
||||||
|
"nodes": {
|
||||||
|
"disko": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs": [
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1739791827,
|
||||||
|
"narHash": "sha256-l6ooDEtfzet9qRQxlb5A+H6eY7VPpdiGMwqX0nqD1xM=",
|
||||||
|
"owner": "nix-community",
|
||||||
|
"repo": "disko",
|
||||||
|
"rev": "af4a580628e98302bb922c01e1169ce08d7bee57",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nix-community",
|
||||||
|
"repo": "disko",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"flake-compat": {
|
||||||
|
"flake": false,
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1733328505,
|
||||||
|
"narHash": "sha256-NeCCThCEP3eCl2l/+27kNNK7QrwZB1IJCrXfrbv5oqU=",
|
||||||
|
"owner": "edolstra",
|
||||||
|
"repo": "flake-compat",
|
||||||
|
"rev": "ff81ac966bb2cae68946d5ed5fc4994f96d0ffec",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "edolstra",
|
||||||
|
"repo": "flake-compat",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"flake-utils": {
|
||||||
|
"inputs": {
|
||||||
|
"systems": "systems"
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1731533236,
|
||||||
|
"narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=",
|
||||||
|
"owner": "numtide",
|
||||||
|
"repo": "flake-utils",
|
||||||
|
"rev": "11707dc2f618dd54ca8739b309ec4fc024de578b",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "numtide",
|
||||||
|
"repo": "flake-utils",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"ghostty": {
|
||||||
|
"inputs": {
|
||||||
|
"flake-compat": "flake-compat",
|
||||||
|
"flake-utils": "flake-utils",
|
||||||
|
"nixpkgs-stable": "nixpkgs-stable",
|
||||||
|
"nixpkgs-unstable": "nixpkgs-unstable",
|
||||||
|
"zig": "zig",
|
||||||
|
"zig2nix": "zig2nix"
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1739813871,
|
||||||
|
"narHash": "sha256-1UAvBHL6haAa8PysB01t83+FBvMgkE4k8BAtOx56yQE=",
|
||||||
|
"owner": "ghostty-org",
|
||||||
|
"repo": "ghostty",
|
||||||
|
"rev": "da32534e8a63423d34d46caa9f60f342ed27235f",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "ghostty-org",
|
||||||
|
"repo": "ghostty",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"home-manager": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs": [
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1739823458,
|
||||||
|
"narHash": "sha256-uHjpcdlWKrZEJxsGdlMRTe4jlMYAnNsjRxPSTrNMFvo=",
|
||||||
|
"owner": "nix-community",
|
||||||
|
"repo": "home-manager",
|
||||||
|
"rev": "6c93eea85daddd0dc8d4a3a687473461f3122961",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nix-community",
|
||||||
|
"repo": "home-manager",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nixpkgs": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1739736696,
|
||||||
|
"narHash": "sha256-zON2GNBkzsIyALlOCFiEBcIjI4w38GYOb+P+R4S8Jsw=",
|
||||||
|
"owner": "nixos",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"rev": "d74a2335ac9c133d6bbec9fc98d91a77f1604c1f",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nixos",
|
||||||
|
"ref": "nixos-unstable",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nixpkgs-stable": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1738255539,
|
||||||
|
"narHash": "sha256-hP2eOqhIO/OILW+3moNWO4GtdJFYCqAe9yJZgvlCoDQ=",
|
||||||
|
"owner": "nixos",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"rev": "c3511a3b53b482aa7547c9d1626fd7310c1de1c5",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nixos",
|
||||||
|
"ref": "release-24.11",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nixpkgs-unstable": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1738136902,
|
||||||
|
"narHash": "sha256-pUvLijVGARw4u793APze3j6mU1Zwdtz7hGkGGkD87qw=",
|
||||||
|
"owner": "nixos",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"rev": "9a5db3142ce450045840cc8d832b13b8a2018e0c",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nixos",
|
||||||
|
"ref": "nixpkgs-unstable",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"root": {
|
||||||
|
"inputs": {
|
||||||
|
"disko": "disko",
|
||||||
|
"ghostty": "ghostty",
|
||||||
|
"home-manager": "home-manager",
|
||||||
|
"nixpkgs": "nixpkgs",
|
||||||
|
"zen-browser": "zen-browser"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"systems": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1681028828,
|
||||||
|
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
|
||||||
|
"owner": "nix-systems",
|
||||||
|
"repo": "default",
|
||||||
|
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nix-systems",
|
||||||
|
"repo": "default",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"zen-browser": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs": [
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1739667343,
|
||||||
|
"narHash": "sha256-fNEz+Yd0t9jXz27qKRMAEBradTwYBeBLOECx+ydG25s=",
|
||||||
|
"owner": "0xc000022070",
|
||||||
|
"repo": "zen-browser-flake",
|
||||||
|
"rev": "8c7f6ca49f87b4e114f775a4dad956ceb6df4220",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "0xc000022070",
|
||||||
|
"repo": "zen-browser-flake",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"zig": {
|
||||||
|
"inputs": {
|
||||||
|
"flake-compat": [
|
||||||
|
"ghostty"
|
||||||
|
],
|
||||||
|
"flake-utils": [
|
||||||
|
"ghostty",
|
||||||
|
"flake-utils"
|
||||||
|
],
|
||||||
|
"nixpkgs": [
|
||||||
|
"ghostty",
|
||||||
|
"nixpkgs-stable"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1738239110,
|
||||||
|
"narHash": "sha256-Y5i9mQ++dyIQr+zEPNy+KIbc5wjPmfllBrag3cHZgcE=",
|
||||||
|
"owner": "mitchellh",
|
||||||
|
"repo": "zig-overlay",
|
||||||
|
"rev": "1a8fb6f3a04724519436355564b95fce5e272504",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "mitchellh",
|
||||||
|
"repo": "zig-overlay",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"zig2nix": {
|
||||||
|
"inputs": {
|
||||||
|
"flake-utils": [
|
||||||
|
"ghostty",
|
||||||
|
"flake-utils"
|
||||||
|
],
|
||||||
|
"nixpkgs": [
|
||||||
|
"ghostty",
|
||||||
|
"nixpkgs-stable"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1738263917,
|
||||||
|
"narHash": "sha256-j/3fwe2pEOquHabP/puljOKwAZFjIE9gXZqA91sC48M=",
|
||||||
|
"owner": "jcollie",
|
||||||
|
"repo": "zig2nix",
|
||||||
|
"rev": "c311d8e77a6ee0d995f40a6e10a89a3a4ab04f9a",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "jcollie",
|
||||||
|
"ref": "c311d8e77a6ee0d995f40a6e10a89a3a4ab04f9a",
|
||||||
|
"repo": "zig2nix",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"root": "root",
|
||||||
|
"version": 7
|
||||||
|
}
|
||||||
65
flake.nix
Normal file
65
flake.nix
Normal file
|
|
@ -0,0 +1,65 @@
|
||||||
|
{
|
||||||
|
description = "Ray's Nix Config";
|
||||||
|
|
||||||
|
inputs = {
|
||||||
|
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
|
||||||
|
disko.url = "github:nix-community/disko";
|
||||||
|
disko.inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
home-manager.url = "github:nix-community/home-manager";
|
||||||
|
home-manager.inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
zen-browser.url = "github:0xc000022070/zen-browser-flake";
|
||||||
|
zen-browser.inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
ghostty.url = "github:ghostty-org/ghostty";
|
||||||
|
};
|
||||||
|
|
||||||
|
outputs = {
|
||||||
|
self,
|
||||||
|
nixpkgs,
|
||||||
|
home-manager,
|
||||||
|
...
|
||||||
|
} @ inputs: let
|
||||||
|
inherit (self) outputs;
|
||||||
|
system = "x86_64-linux";
|
||||||
|
dots = "/home/rayandrew/dotfiles";
|
||||||
|
user = "rayandrew";
|
||||||
|
pkgs = import inputs.nixpkgs {
|
||||||
|
inherit system;
|
||||||
|
config.allowUnfree = true;
|
||||||
|
};
|
||||||
|
lib = nixpkgs.lib;
|
||||||
|
createCommonArgs = system: {
|
||||||
|
inherit
|
||||||
|
self
|
||||||
|
inputs
|
||||||
|
nixpkgs
|
||||||
|
lib
|
||||||
|
pkgs
|
||||||
|
system
|
||||||
|
dots
|
||||||
|
;
|
||||||
|
specialArgs = {
|
||||||
|
inherit self inputs;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
commonArgs = createCommonArgs system;
|
||||||
|
in {
|
||||||
|
nixosConfigurations = import ./hosts commonArgs;
|
||||||
|
# nixosConfigurations = {
|
||||||
|
# pickwick = nixpkgs.lib.nixosSystem {
|
||||||
|
# specialArgs = {inherit inputs outputs system dots user;};
|
||||||
|
# modules = [
|
||||||
|
# ./nixos
|
||||||
|
# # ./nixos/configuration.nix
|
||||||
|
# ./hosts/pickwick
|
||||||
|
# inputs.disko.nixosModules.default
|
||||||
|
# inputs.home-manager.nixosModules.home-manager
|
||||||
|
# (nixpkgs.lib.mkAliasOptionModule [ "hm" ] [
|
||||||
|
# "home-manager"
|
||||||
|
# "users"
|
||||||
|
# user
|
||||||
|
# ])
|
||||||
|
# ];
|
||||||
|
# };
|
||||||
|
# };
|
||||||
|
};
|
||||||
|
}
|
||||||
35
home/default.nix
Normal file
35
home/default.nix
Normal file
|
|
@ -0,0 +1,35 @@
|
||||||
|
{
|
||||||
|
inputs,
|
||||||
|
lib,
|
||||||
|
config,
|
||||||
|
pkgs,
|
||||||
|
system,
|
||||||
|
...
|
||||||
|
}: {
|
||||||
|
imports = [
|
||||||
|
./ssh
|
||||||
|
./git.nix
|
||||||
|
./gui.nix
|
||||||
|
];
|
||||||
|
|
||||||
|
programs.neovim.enable = true;
|
||||||
|
home.packages = with pkgs; [
|
||||||
|
gpclient
|
||||||
|
openconnect
|
||||||
|
emacs
|
||||||
|
fd
|
||||||
|
ripgrep
|
||||||
|
yazi
|
||||||
|
tree
|
||||||
|
gnumake
|
||||||
|
texinfo
|
||||||
|
texlive.combined.scheme-full
|
||||||
|
];
|
||||||
|
|
||||||
|
fonts.fontconfig.enable = true;
|
||||||
|
|
||||||
|
programs.home-manager.enable = true;
|
||||||
|
|
||||||
|
# https://nixos.wiki/wiki/FAQ/When_do_I_update_stateVersion
|
||||||
|
home.stateVersion = "25.05";
|
||||||
|
}
|
||||||
64
home/ghostty.nix
Normal file
64
home/ghostty.nix
Normal file
|
|
@ -0,0 +1,64 @@
|
||||||
|
{
|
||||||
|
config,
|
||||||
|
pkgs,
|
||||||
|
inputs,
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
{
|
||||||
|
options.custom.gui = with lib; {
|
||||||
|
ghostty = {
|
||||||
|
enable = mkEnableOption "Enable ghostty";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
config = lib.mkIf config.custom.gui.ghostty.enable {
|
||||||
|
home.packages = with pkgs; [
|
||||||
|
inputs.ghostty.packages."${system}".default
|
||||||
|
];
|
||||||
|
xdg.configFile."ghostty/config".text = ''
|
||||||
|
gtk-single-instance = false
|
||||||
|
gtk-titlebar = false
|
||||||
|
window-decoration = server
|
||||||
|
# gtk-adwaita = false
|
||||||
|
font-family = Consolas
|
||||||
|
font-size = 11
|
||||||
|
app-notifications = no-clipboard-copy
|
||||||
|
# theme = gruber-darker
|
||||||
|
# font-family = Iosevka Nerd Font Mono
|
||||||
|
# font-size = 13
|
||||||
|
|
||||||
|
# background = #062329
|
||||||
|
background = #072626
|
||||||
|
# foreground = #d1b897
|
||||||
|
foreground = #d3b58d
|
||||||
|
cursor-color = #ffffff
|
||||||
|
# cursor-text = #d1b897
|
||||||
|
cursor-text = #d3b58d
|
||||||
|
# selection-background = #0000ff
|
||||||
|
# selection-foreground = #d1b897
|
||||||
|
selection-background = #0000ff
|
||||||
|
selection-foreground = #d3b58d
|
||||||
|
# palette = 0=#062329
|
||||||
|
palette = 0=#072626
|
||||||
|
# palette = 1=#0b3335
|
||||||
|
# palette = 2=#0000ff
|
||||||
|
palette = 3=#44b340
|
||||||
|
palette = 4=#8cde94
|
||||||
|
# palette = 5=#d1b897
|
||||||
|
palette = 5=#d3b58d
|
||||||
|
palette = 6=#c1d1e3
|
||||||
|
palette = 7=#ffffff
|
||||||
|
palette = 8=#626880
|
||||||
|
palette = 9=#e67172
|
||||||
|
palette = 10=#8ec772
|
||||||
|
palette = 11=#d9ba73
|
||||||
|
palette = 12=#7b9ef0
|
||||||
|
palette = 13=#f2a4db
|
||||||
|
palette = 14=#5abfb5
|
||||||
|
palette = 15=#b5bfe2
|
||||||
|
|
||||||
|
keybind = all:ctrl+shift+period=text:\x1b\x1f\x4c\x23\x1f
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
}
|
||||||
49
home/git.nix
Normal file
49
home/git.nix
Normal file
|
|
@ -0,0 +1,49 @@
|
||||||
|
{
|
||||||
|
lib,
|
||||||
|
pkgs,
|
||||||
|
config,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
let
|
||||||
|
home = config.home.homeDirectory;
|
||||||
|
in
|
||||||
|
{
|
||||||
|
home.packages = with pkgs; [
|
||||||
|
gh
|
||||||
|
];
|
||||||
|
|
||||||
|
programs.git = {
|
||||||
|
enable = true;
|
||||||
|
lfs = {
|
||||||
|
enable = true;
|
||||||
|
};
|
||||||
|
userEmail = "rs@rs.ht";
|
||||||
|
userName = "Ray Andrew";
|
||||||
|
signing = {
|
||||||
|
key = "${home}/.ssh/id_ed25519.pub";
|
||||||
|
signByDefault = true;
|
||||||
|
signer = "";
|
||||||
|
};
|
||||||
|
ignores = [
|
||||||
|
".DS_Store"
|
||||||
|
"*~"
|
||||||
|
"*.swp"
|
||||||
|
];
|
||||||
|
extraConfig = {
|
||||||
|
gpg.format = "ssh";
|
||||||
|
core.editor = "emacs";
|
||||||
|
credential.helper = "store --file ${home}/.git-credentials";
|
||||||
|
pull.rebase = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
# programs.gh = {
|
||||||
|
# enable = true;
|
||||||
|
# settings = {
|
||||||
|
# git_protocol = "ssh";
|
||||||
|
# };
|
||||||
|
# extensions = with pkgs; [
|
||||||
|
# gh-copilot
|
||||||
|
# ];
|
||||||
|
# };
|
||||||
|
}
|
||||||
90
home/gui.nix
Normal file
90
home/gui.nix
Normal file
|
|
@ -0,0 +1,90 @@
|
||||||
|
{
|
||||||
|
lib,
|
||||||
|
pkgs,
|
||||||
|
config,
|
||||||
|
inputs,
|
||||||
|
hm,
|
||||||
|
user,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
|
||||||
|
{
|
||||||
|
imports = [
|
||||||
|
./i3
|
||||||
|
./kitty.nix
|
||||||
|
./ghostty.nix
|
||||||
|
];
|
||||||
|
|
||||||
|
options.custom.gui.default = with lib; {
|
||||||
|
enable = mkEnableOption "Enable Default GUI";
|
||||||
|
};
|
||||||
|
|
||||||
|
config = lib.mkIf config.custom.gui.default.enable {
|
||||||
|
dconf.settings = {
|
||||||
|
"org/gnome/desktop/interface" = {
|
||||||
|
color-scheme = "prefer-dark";
|
||||||
|
show-battery-percentage = true;
|
||||||
|
clock-format = "12h";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
home.packages = with pkgs; [
|
||||||
|
inputs.zen-browser.packages."${system}".twilight
|
||||||
|
# globalprotect-openconnect
|
||||||
|
firefox
|
||||||
|
chromium
|
||||||
|
zoom-us
|
||||||
|
slack
|
||||||
|
teams-for-linux
|
||||||
|
skypeforlinux
|
||||||
|
zotero
|
||||||
|
spotify
|
||||||
|
arandr
|
||||||
|
webex
|
||||||
|
kitty
|
||||||
|
seahorse # gnome keyring
|
||||||
|
xfce.thunar
|
||||||
|
xfce.thunar-volman
|
||||||
|
xclip
|
||||||
|
# fonts
|
||||||
|
vista-fonts
|
||||||
|
nerd-fonts.ubuntu-mono
|
||||||
|
nerd-fonts.iosevka
|
||||||
|
nerd-fonts.fira-code
|
||||||
|
nerd-fonts.sauce-code-pro
|
||||||
|
nerd-fonts.inconsolata
|
||||||
|
nerd-fonts.inconsolata-go
|
||||||
|
nerd-fonts.droid-sans-mono
|
||||||
|
nerd-fonts.space-mono
|
||||||
|
nerd-fonts.dejavu-sans-mono
|
||||||
|
];
|
||||||
|
|
||||||
|
gtk = {
|
||||||
|
enable = true;
|
||||||
|
theme = {
|
||||||
|
name = "Adwaita-dark";
|
||||||
|
package = pkgs.gnome-themes-extra;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
qt = {
|
||||||
|
enable = true;
|
||||||
|
platformTheme.name = "adwaita";
|
||||||
|
style.name = "adwaita-dark";
|
||||||
|
};
|
||||||
|
|
||||||
|
systemd.user.sessionVariables = config.home.sessionVariables;
|
||||||
|
|
||||||
|
services.redshift = {
|
||||||
|
enable = true;
|
||||||
|
# provider = "geoclue2";
|
||||||
|
provider = "manual";
|
||||||
|
# madison
|
||||||
|
latitude = "43.07305000";
|
||||||
|
longitude = "-89.40123000";
|
||||||
|
# chicago
|
||||||
|
# latitude = "41.85003000";
|
||||||
|
# longitude = "-87.65005000";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
163
home/i3/config
Normal file
163
home/i3/config
Normal file
|
|
@ -0,0 +1,163 @@
|
||||||
|
set $mod Mod4
|
||||||
|
# font pango:monospace 8
|
||||||
|
|
||||||
|
# This font is widely installed, provides lots of unicode glyphs, right-to-left
|
||||||
|
# text rendering and scalability on retina/hidpi displays (thanks to pango).
|
||||||
|
font pango:DejaVu Sans Mono 8
|
||||||
|
|
||||||
|
@startup@
|
||||||
|
|
||||||
|
bindsym XF86AudioRaiseVolume exec --no-startup-id @raise_vol@
|
||||||
|
bindsym XF86AudioLowerVolume exec --no-startup-id @lower_vol@
|
||||||
|
bindsym XF86AudioMute exec --no-startup-id @mute_vol@
|
||||||
|
bindsym XF86AudioMicMute exec --no-startup-id @mute_mic@
|
||||||
|
bindsym XF86AudioPlay exec --no-startup-id @media_play@
|
||||||
|
bindsym XF86AudioPause exec --no-startup-id @media_pause@
|
||||||
|
bindsym XF86AudioNext exec --no-startup-id @media_next@
|
||||||
|
bindsym XF86AudioPrev exec --no-startup-id @media_prev@
|
||||||
|
|
||||||
|
floating_modifier $mod
|
||||||
|
tiling_drag modifier titlebar
|
||||||
|
bindsym $mod+Shift+q kill
|
||||||
|
|
||||||
|
bindsym $mod+space exec --no-startup-id dmenu_run
|
||||||
|
|
||||||
|
bindsym $mod+Return exec @term@
|
||||||
|
bindsym $mod+Shift+Return exec @second_term@
|
||||||
|
|
||||||
|
# file manager
|
||||||
|
bindsym $mod+b exec --no-startup-id @fm@
|
||||||
|
|
||||||
|
# screenshot
|
||||||
|
bindsym $mod+o exec --no-startup-id @screenshot@
|
||||||
|
bindsym $mod+Shift+o exec --no-startup-id @screenshot_clipboard@
|
||||||
|
|
||||||
|
# change focus
|
||||||
|
bindsym $mod+h focus left
|
||||||
|
bindsym $mod+j focus down
|
||||||
|
bindsym $mod+k focus up
|
||||||
|
bindsym $mod+l focus right
|
||||||
|
|
||||||
|
# alternatively, you can use the cursor keys:
|
||||||
|
bindsym $mod+Left focus left
|
||||||
|
bindsym $mod+Down focus down
|
||||||
|
bindsym $mod+Up focus up
|
||||||
|
bindsym $mod+Right focus right
|
||||||
|
|
||||||
|
# move focused window
|
||||||
|
bindsym $mod+Shift+h move left
|
||||||
|
bindsym $mod+Shift+j move down
|
||||||
|
bindsym $mod+Shift+k move up
|
||||||
|
bindsym $mod+Shift+l move right
|
||||||
|
|
||||||
|
# alternatively, you can use the cursor keys:
|
||||||
|
bindsym $mod+Shift+Left move left
|
||||||
|
bindsym $mod+Shift+Down move down
|
||||||
|
bindsym $mod+Shift+Up move up
|
||||||
|
bindsym $mod+Shift+Right move right
|
||||||
|
|
||||||
|
# split in horizontal orientation
|
||||||
|
bindsym $mod+v split h
|
||||||
|
|
||||||
|
# split in vertical orientation
|
||||||
|
bindsym $mod+Shift+v split v
|
||||||
|
|
||||||
|
# enter fullscreen mode for the focused container
|
||||||
|
bindsym $mod+f fullscreen toggle
|
||||||
|
|
||||||
|
# change container layout (stacked, tabbed, toggle split)
|
||||||
|
bindsym $mod+s layout stacking
|
||||||
|
bindsym $mod+t layout tabbed
|
||||||
|
bindsym $mod+e layout toggle split
|
||||||
|
|
||||||
|
# toggle tiling / floating
|
||||||
|
bindsym $mod+p floating toggle
|
||||||
|
|
||||||
|
# change focus between tiling / floating windows
|
||||||
|
bindsym $mod+Shift+p focus mode_toggle
|
||||||
|
|
||||||
|
# focus the parent container
|
||||||
|
bindsym $mod+a focus parent
|
||||||
|
|
||||||
|
# focus the child container
|
||||||
|
#bindsym $mod+d focus child
|
||||||
|
|
||||||
|
set $ws1 "1"
|
||||||
|
set $ws2 "2"
|
||||||
|
set $ws3 "3"
|
||||||
|
set $ws4 "4"
|
||||||
|
set $ws5 "5"
|
||||||
|
set $ws6 "6"
|
||||||
|
set $ws7 "7"
|
||||||
|
set $ws8 "8"
|
||||||
|
set $ws9 "9"
|
||||||
|
set $ws10 "10"
|
||||||
|
|
||||||
|
# switch to workspace
|
||||||
|
bindsym $mod+1 workspace number $ws1
|
||||||
|
bindsym $mod+2 workspace number $ws2
|
||||||
|
bindsym $mod+3 workspace number $ws3
|
||||||
|
bindsym $mod+4 workspace number $ws4
|
||||||
|
bindsym $mod+5 workspace number $ws5
|
||||||
|
bindsym $mod+6 workspace number $ws6
|
||||||
|
bindsym $mod+7 workspace number $ws7
|
||||||
|
bindsym $mod+8 workspace number $ws8
|
||||||
|
bindsym $mod+9 workspace number $ws9
|
||||||
|
bindsym $mod+0 workspace number $ws10
|
||||||
|
|
||||||
|
# move focused container to workspace
|
||||||
|
bindsym $mod+Shift+1 move container to workspace number $ws1
|
||||||
|
bindsym $mod+Shift+2 move container to workspace number $ws2
|
||||||
|
bindsym $mod+Shift+3 move container to workspace number $ws3
|
||||||
|
bindsym $mod+Shift+4 move container to workspace number $ws4
|
||||||
|
bindsym $mod+Shift+5 move container to workspace number $ws5
|
||||||
|
bindsym $mod+Shift+6 move container to workspace number $ws6
|
||||||
|
bindsym $mod+Shift+7 move container to workspace number $ws7
|
||||||
|
bindsym $mod+Shift+8 move container to workspace number $ws8
|
||||||
|
bindsym $mod+Shift+9 move container to workspace number $ws9
|
||||||
|
bindsym $mod+Shift+0 move container to workspace number $ws10
|
||||||
|
|
||||||
|
# reload the configuration file
|
||||||
|
bindsym $mod+Shift+c reload
|
||||||
|
bindsym $mod+Shift+r restart
|
||||||
|
bindsym $mod+Shift+e exec "i3-nagbar -t warning -m 'You pressed the exit shortcut. Do you really want to exit i3? This will end your X session.' -B 'Yes, exit i3' 'i3-msg exit'"
|
||||||
|
|
||||||
|
# resize window
|
||||||
|
set $resize " : [h] , [j] , [k] , [l] "
|
||||||
|
mode $resize {
|
||||||
|
bindsym h resize shrink width 10 px or 10 ppt
|
||||||
|
bindsym j resize grow height 10 px or 10 ppt
|
||||||
|
bindsym k resize shrink height 10 px or 10 ppt
|
||||||
|
bindsym l resize grow width 10 px or 10 ppt
|
||||||
|
|
||||||
|
# same bindings, but for the arrow keys
|
||||||
|
bindsym Left resize shrink width 10 px or 10 ppt
|
||||||
|
bindsym Down resize grow height 10 px or 10 ppt
|
||||||
|
bindsym Up resize shrink height 10 px or 10 ppt
|
||||||
|
bindsym Right resize grow width 10 px or 10 ppt
|
||||||
|
|
||||||
|
bindsym Return mode "default"
|
||||||
|
bindsym Escape mode "default"
|
||||||
|
}
|
||||||
|
|
||||||
|
bindsym $mod+r mode $resize
|
||||||
|
|
||||||
|
# power
|
||||||
|
set $power " : Screen [l]ock, [e]xit, [s]uspend, [h]ibernate, [R]eboot, [S]hutdown"
|
||||||
|
mode $power {
|
||||||
|
bindsym l mode "default", exec loginctl lock-session
|
||||||
|
bindsym e mode "default", exec loginctl terminate-session $XDG_SESSION_ID
|
||||||
|
bindsym s mode "default", exec systemctl suspend
|
||||||
|
bindsym h mode "default", exec systemctl hibernate
|
||||||
|
bindsym Shift+r mode "default", exec systemctl reboot
|
||||||
|
bindsym Shift+s mode "default", exec systemctl poweroff
|
||||||
|
|
||||||
|
bindsym Return mode "default"
|
||||||
|
bindsym Escape mode "default"
|
||||||
|
}
|
||||||
|
|
||||||
|
bindsym $mod+Escape mode $power
|
||||||
|
|
||||||
|
bar {
|
||||||
|
status_command i3status
|
||||||
|
}
|
||||||
206
home/i3/default.nix
Normal file
206
home/i3/default.nix
Normal file
|
|
@ -0,0 +1,206 @@
|
||||||
|
{
|
||||||
|
config,
|
||||||
|
lib,
|
||||||
|
pkgs,
|
||||||
|
inputs,
|
||||||
|
system,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
{
|
||||||
|
options.custom.gui = with lib; {
|
||||||
|
i3 = {
|
||||||
|
enable = mkEnableOption "Enable i3";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
config = lib.mkIf config.custom.gui.i3.enable {
|
||||||
|
xdg.configFile."i3status/config".source = pkgs.substituteAll {
|
||||||
|
src = ./i3status.config;
|
||||||
|
};
|
||||||
|
services.picom = {
|
||||||
|
enable = true;
|
||||||
|
};
|
||||||
|
services.dunst = {
|
||||||
|
enable = true;
|
||||||
|
};
|
||||||
|
home.pointerCursor = {
|
||||||
|
package = pkgs.adwaita-icon-theme;
|
||||||
|
name = "Adwaita";
|
||||||
|
size = 32;
|
||||||
|
x11.enable = true;
|
||||||
|
};
|
||||||
|
xsession = {
|
||||||
|
enable = true;
|
||||||
|
scriptPath = ".xsession-hm";
|
||||||
|
initExtra = ''
|
||||||
|
# export GDK_SCALE=2
|
||||||
|
# export GDK_DPI_SCALE=0.5
|
||||||
|
export _JAVA_OPTIONS="-Dsun.java2d.uiScale=2"
|
||||||
|
export QT_AUTO_SCREEN_SCALE_FACTOR=1
|
||||||
|
export QT_DEVICE_PIXEL_RATIO=2
|
||||||
|
# export XCURSOR_SIZE=128
|
||||||
|
# ${pkgs.xorg.xsetroot}/bin/xsetroot -cursor_name ${pkgs.vanilla-dmz}/share/icons/Vanilla-DMZ/cursors/left_ptr 128 &disown
|
||||||
|
if test -e $HOME/.Xresources; then
|
||||||
|
${pkgs.xorg.xrdb}/bin/xrdb -merge $HOME/.Xresources &disown
|
||||||
|
fi
|
||||||
|
echo "Xft.dpi: 192" | ${pkgs.xorg.xrdb}/bin/xrdb -merge
|
||||||
|
'';
|
||||||
|
windowManager.i3 =
|
||||||
|
let
|
||||||
|
modifier = "Mod4";
|
||||||
|
powerManagementMode = " : Screen [l]ock, [e]xit, [s]uspend, [h]ibernate, [R]eboot, [S]hutdown";
|
||||||
|
miscellaneousMode = "D [p]ause, D [c]ontinue";
|
||||||
|
resizeMode = " : [h] , [j] , [k] , [l] ";
|
||||||
|
light = lib.getExe' pkgs.brightnessctl "brightnessctl";
|
||||||
|
pactl = lib.getExe' pkgs.pulseaudio "pactl";
|
||||||
|
maim = lib.getExe' pkgs.maim "maim";
|
||||||
|
clipboard = lib.getExe' pkgs.xclip "xclip";
|
||||||
|
yazi = lib.getExe' pkgs.yazi "yazi";
|
||||||
|
terminal = lib.getExe' inputs.ghostty.packages."${system}".default "ghostty";
|
||||||
|
# terminal = lib.getExe' pkgs.kitty "kitty";
|
||||||
|
# second_terminal = lib.getExe' pkgs.wezterm "wezterm";
|
||||||
|
playerctl = lib.getExe' pkgs.playerctl "playerctl";
|
||||||
|
dmenu = lib.getExe' pkgs.dmenu "dmenu_run";
|
||||||
|
refresh_i3status = "killall -SIGUSR1 i3status";
|
||||||
|
# config = pkgs.substituteAll {
|
||||||
|
# inherit term second_term;
|
||||||
|
# src = ./config;
|
||||||
|
# raise_vol = "${pactl} set-sink-volume @DEFAULT_SINK@ +1% && $refresh_i3status";
|
||||||
|
# lower_vol = "${pactl} set-sink-volume @DEFAULT_SINK@ -1% && $refresh_i3status";
|
||||||
|
# mute_vol = "${pactl} set-sink-mute @DEFAULT_SINK@ toggle && $refresh_i3status";
|
||||||
|
# mute_mic = "${pactl} set-source-mute @DEFAULT_SOURCE@ toggle && $refresh_i3status";
|
||||||
|
# screenshot = "${maim} -s ~/Pictures/screenshots/$(date +%Y-%m-%d-%H-%M-%S).png";
|
||||||
|
# screenshot_clipboard = "${maim} -s | ${clipboard} -selection clipboard -t image/png";
|
||||||
|
# media_play = "${playerctl} play-pause";
|
||||||
|
# media_pause = "${playerctl} play-pause";
|
||||||
|
# media_next = "${playerctl} next";
|
||||||
|
# media_prev = "${playerctl} previous";
|
||||||
|
# fm = "${term} -e ${fm}";
|
||||||
|
# startup = ''
|
||||||
|
# exec --no-startup-id ${pkgs.dex}/bin/dex --autostart --environment i3
|
||||||
|
# exec --no-startup-id ${pkgs.networkmanagerapplet}/bin/nm-applet
|
||||||
|
# exec --no-startup-id ${pkgs.pasystray}/bin/pasystray
|
||||||
|
# exec --no-startup-id ${pkgs.xss-lock}/bin/xss-lock --transfer-sleep-lock -- i3lock --nofork
|
||||||
|
# '';
|
||||||
|
# };
|
||||||
|
in
|
||||||
|
{
|
||||||
|
enable = true;
|
||||||
|
config = {
|
||||||
|
inherit modifier terminal;
|
||||||
|
keybindings = lib.mkOptionDefault {
|
||||||
|
"${modifier}+h" = "focus left";
|
||||||
|
"${modifier}+j" = "focus down";
|
||||||
|
"${modifier}+k" = "focus up";
|
||||||
|
"${modifier}+l" = "focus right";
|
||||||
|
"${modifier}+Shift+h" = "move left";
|
||||||
|
"${modifier}+Shift+j" = "move down";
|
||||||
|
"${modifier}+Shift+k" = "move up";
|
||||||
|
"${modifier}+Shift+l" = "move right";
|
||||||
|
"${modifier}+v" = "split h";
|
||||||
|
"${modifier}+Shift+v" = "split v";
|
||||||
|
"${modifier}+s" = "layout stacking";
|
||||||
|
"${modifier}+t" = "layout tabbed";
|
||||||
|
"${modifier}+e" = "layout toggle split";
|
||||||
|
"${modifier}+p" = "floating toggle";
|
||||||
|
"${modifier}+Shift+p" = "focus mode_toggle";
|
||||||
|
"${modifier}+Shift+c" = "reload";
|
||||||
|
"${modifier}+Shift+r" = "restart";
|
||||||
|
# mode
|
||||||
|
"${modifier}+r" = ''mode "${resizeMode}"'';
|
||||||
|
"${modifier}+Escape" = ''mode "${powerManagementMode}"'';
|
||||||
|
"${modifier}+Shift+Escape" = ''mode "${miscellaneousMode}"'';
|
||||||
|
# workspace
|
||||||
|
# "${modifier}+Shift+minus" = "move scratchpad";
|
||||||
|
# "${modifier}+minus" = "scratchpad show";
|
||||||
|
# media
|
||||||
|
"XF86AudioRaiseVolume" = "exec --no-startup-id ${pactl} set-sink-volume @DEFAULT_SINK@ +1% && ${refresh_i3status}";
|
||||||
|
"XF86AudioLowerVolume" = "exec --no-startup-id ${pactl} set-sink-volume @DEFAULT_SINK@ -1% && ${refresh_i3status}";
|
||||||
|
"XF86AudioMute" = "exec --no-startup-id ${pactl} set-sink-mute @DEFAULT_SINK@ toggle && ${refresh_i3status}";
|
||||||
|
"XF86AudioMicMute" = "exec --no-startup-id ${pactl} set-source-mute @DEFAULT_SOURCE@ toggle && ${refresh_i3status}";
|
||||||
|
"XF86AudioPlay" = "exec --no-startup-id ${playerctl} play-pause";
|
||||||
|
"XF86AudioPause" = "exec --no-startup-id ${playerctl} play-pause";
|
||||||
|
"XF86AudioNext" = "exec --no-startup-id ${playerctl} next";
|
||||||
|
"XF86AudioPrev" = "exec --no-startup-id ${playerctl} previous";
|
||||||
|
# brightness
|
||||||
|
"XF86MonBrightnessUp" = "exec --no-startup-id ${light} s +10%";
|
||||||
|
"XF86MonBrightnessDown" = "exec --no-startup-id ${light} s 10%-";
|
||||||
|
# screenshot
|
||||||
|
"${modifier}+o" = "exec --no-startup-id ${maim} -s ~/Pictures/screenshots/$(date +%Y-%m-%d-%H-%M-%S).png";
|
||||||
|
"${modifier}+Shift+o" = "exec --no-startup-id ${maim} -s | ${clipboard} -selection clipboard -t image/png";
|
||||||
|
# others
|
||||||
|
"${modifier}+space" = "exec --no-startup-id ${dmenu}";
|
||||||
|
"${modifier}+b" = "exec --no-startup-id ${yazi}";
|
||||||
|
# "${modifier}+Shift+Return" = "exec ${second_terminal}";
|
||||||
|
# reset
|
||||||
|
"${modifier}+Shift+e" = null;
|
||||||
|
"${modifier}+w" = null;
|
||||||
|
"${modifier}+d" = null;
|
||||||
|
};
|
||||||
|
modes = let
|
||||||
|
exitMode = {
|
||||||
|
"Escape" = "mode default";
|
||||||
|
"Return" = "mode default";
|
||||||
|
};
|
||||||
|
in
|
||||||
|
{
|
||||||
|
"${resizeMode}" = {
|
||||||
|
"Left" = "resize shrink width 10 px or 10 ppt";
|
||||||
|
"Down" = "resize grow height 10 px or 10 ppt";
|
||||||
|
"Up" = "resize shrink height 10 px or 10 ppt";
|
||||||
|
"Right" = "resize grow width 10 px or 10 ppt";
|
||||||
|
"Escape" = "mode default";
|
||||||
|
"Return" = "mode default";
|
||||||
|
} // exitMode;
|
||||||
|
"${powerManagementMode}" = {
|
||||||
|
l = "mode default, exec loginctl lock-session";
|
||||||
|
e = "mode default, exec loginctl terminate-session $XDG_SESSION_ID";
|
||||||
|
s = "mode default, exec systemctl suspend";
|
||||||
|
h = "mode default, exec systemctl hibernate";
|
||||||
|
"Shift+r" = "mode default, exec systemctl reboot";
|
||||||
|
"Shift+s" = "mode default, exec systemctl poweroff";
|
||||||
|
} // exitMode;
|
||||||
|
"${miscellaneousMode}" = {
|
||||||
|
p = "mode default, exec kill -SIGUSR1 $(pidof dunst)";
|
||||||
|
c = "mode default, exec kill -SIGUSR2 $(pidof dunst";
|
||||||
|
} // exitMode;
|
||||||
|
};
|
||||||
|
startup = [
|
||||||
|
{
|
||||||
|
command = "${pkgs.hsetroot}/bin/hsetroot -solid \"#062329\"";
|
||||||
|
notification = false;
|
||||||
|
}
|
||||||
|
{
|
||||||
|
command = "${pkgs.dex}/bin/dex --autostart --environment i3";
|
||||||
|
notification = false;
|
||||||
|
}
|
||||||
|
{
|
||||||
|
command = "${pkgs.networkmanagerapplet}/bin/nm-applet";
|
||||||
|
notification = false;
|
||||||
|
}
|
||||||
|
{
|
||||||
|
command = "${pkgs.pasystray}/bin/pasystray";
|
||||||
|
notification = false;
|
||||||
|
}
|
||||||
|
{
|
||||||
|
command = "${pkgs.xss-lock}/bin/xss-lock --transfer-sleep-lock -- i3lock --nofork";
|
||||||
|
notification = false;
|
||||||
|
}
|
||||||
|
{
|
||||||
|
command = "${pkgs.autorandr}/bin/autorandr -c";
|
||||||
|
always = false; # Important, run only on first start (will loop otherwise)!
|
||||||
|
notification = false;
|
||||||
|
}
|
||||||
|
{
|
||||||
|
command = "${pkgs.xfce.xfce4-volumed-pulse}/bin/xfce4-volumed-pulse &";
|
||||||
|
always = false;
|
||||||
|
notification = false;
|
||||||
|
}
|
||||||
|
{
|
||||||
|
command = "${light} s 25%";
|
||||||
|
}
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
52
home/i3/i3status.config
Normal file
52
home/i3/i3status.config
Normal file
|
|
@ -0,0 +1,52 @@
|
||||||
|
general {
|
||||||
|
colors = true
|
||||||
|
interval = 5
|
||||||
|
}
|
||||||
|
|
||||||
|
# order += "ipv6"
|
||||||
|
order += "wireless _first_"
|
||||||
|
# order += "ethernet _first_"
|
||||||
|
order += "volume master"
|
||||||
|
order += "battery all"
|
||||||
|
order += "disk /"
|
||||||
|
order += "load"
|
||||||
|
order += "memory"
|
||||||
|
order += "tztime local"
|
||||||
|
|
||||||
|
wireless _first_ {
|
||||||
|
format_up = "W: (%quality at %essid) %ip"
|
||||||
|
format_down = "W: down"
|
||||||
|
}
|
||||||
|
|
||||||
|
ethernet _first_ {
|
||||||
|
format_up = "E: %ip (%speed)"
|
||||||
|
format_down = "E: down"
|
||||||
|
}
|
||||||
|
|
||||||
|
battery all {
|
||||||
|
format = "%status %percentage %remaining"
|
||||||
|
}
|
||||||
|
|
||||||
|
disk "/" {
|
||||||
|
format = "%avail"
|
||||||
|
}
|
||||||
|
|
||||||
|
load {
|
||||||
|
format = "%1min"
|
||||||
|
}
|
||||||
|
|
||||||
|
memory {
|
||||||
|
format = "%used | %available"
|
||||||
|
threshold_degraded = "1G"
|
||||||
|
format_degraded = "MEMORY < %available"
|
||||||
|
}
|
||||||
|
|
||||||
|
tztime local {
|
||||||
|
format = "%Y-%m-%d %I:%M %p"
|
||||||
|
}
|
||||||
|
|
||||||
|
volume master {
|
||||||
|
format = "V: %volume"
|
||||||
|
format_muted = "V: muted (%volume)"
|
||||||
|
device = "default"
|
||||||
|
}
|
||||||
264
home/kitty.nix
Normal file
264
home/kitty.nix
Normal file
|
|
@ -0,0 +1,264 @@
|
||||||
|
{
|
||||||
|
config,
|
||||||
|
pkgs,
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
{
|
||||||
|
options.custom.gui = with lib; {
|
||||||
|
kitty = {
|
||||||
|
enable = mkEnableOption "Enable kitty";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
config = lib.mkIf config.custom.gui.kitty.enable {
|
||||||
|
programs.kitty = {
|
||||||
|
enable = true;
|
||||||
|
font = {
|
||||||
|
package = pkgs.vista-fonts;
|
||||||
|
name = "Consolas";
|
||||||
|
size = 12.0;
|
||||||
|
};
|
||||||
|
shellIntegration = {
|
||||||
|
enableBashIntegration = true;
|
||||||
|
};
|
||||||
|
extraConfig = ''
|
||||||
|
modify_font cell_height 1.1
|
||||||
|
# modify_font cell_width 95%
|
||||||
|
text_composition_strategy legacy
|
||||||
|
|
||||||
|
background #062329
|
||||||
|
foreground #d1b897
|
||||||
|
cursor-color #ffffff
|
||||||
|
cursor-text #d1b897
|
||||||
|
selection_background #0000ff
|
||||||
|
selection_foreground #d1b897
|
||||||
|
color0 #062329
|
||||||
|
# color1 #0b3335
|
||||||
|
# color2 #0000ff
|
||||||
|
color3 #44b340
|
||||||
|
color4 #8cde94
|
||||||
|
color5 #d1b897
|
||||||
|
color6 #c1d1e3
|
||||||
|
color7 #ffffff
|
||||||
|
color8 #626880
|
||||||
|
color9 #e67172
|
||||||
|
color10 #8ec772
|
||||||
|
color11 #d9ba73
|
||||||
|
color12 #7b9ef0
|
||||||
|
color13 #f2a4db
|
||||||
|
color14 #5abfb5
|
||||||
|
color15 #b5bfe2
|
||||||
|
'';
|
||||||
|
keybindings = {
|
||||||
|
# "CTRL+GRAVE_ACCENT" = "send_text all \x1b\x1f\x2a\x62\x1f";
|
||||||
|
# "SHIFT+CTRL+GRAVE_ACCENT" = "send_text all \x1b\x1f\x2a\x63\x1f";
|
||||||
|
# "CTRL+ALT+GRAVE_ACCENT" = "send_text all \x1b\x1f\x2a\x66\x1f";
|
||||||
|
# "SHIFT+CTRL+ALT+GRAVE_ACCENT" = "send_text all \x1b\x1f\x2a\x67\x1f";
|
||||||
|
# "CTRL+1" = "send_text all \x1b\x1f\x2b\x42\x1f";
|
||||||
|
# "SHIFT+CTRL+1" = "send_text all \x1b\x1f\x2b\x43\x1f";
|
||||||
|
# "CTRL+ALT+1" = "send_text all \x1b\x1f\x2b\x46\x1f";
|
||||||
|
# "SHIFT+CTRL+ALT+1" = "send_text all \x1b\x1f\x2b\x47\x1f";
|
||||||
|
# "CTRL+2" = "send_text all \x1b\x1f\x2c\x22\x1f";
|
||||||
|
# "SHIFT+CTRL+2" = "send_text all \x1b\x1f\x2c\x23\x1f";
|
||||||
|
# "CTRL+ALT+2" = "send_text all \x1b\x1f\x2c\x26\x1f";
|
||||||
|
# "SHIFT+CTRL+ALT+2" = "send_text all \x1b\x1f\x2c\x27\x1f";
|
||||||
|
# "CTRL+3" = "send_text all \x1b\x1f\x2c\x62\x1f";
|
||||||
|
# "SHIFT+CTRL+3" = "send_text all \x1b\x1f\x2c\x63\x1f";
|
||||||
|
# "CTRL+ALT+3" = "send_text all \x1b\x1f\x2c\x66\x1f";
|
||||||
|
# "SHIFT+CTRL+ALT+3" = "send_text all \x1b\x1f\x2c\x67\x1f";
|
||||||
|
# "CTRL+4" = "send_text all \x1b\x1f\x2d\x42\x1f";
|
||||||
|
# "SHIFT+CTRL+4" = "send_text all \x1b\x1f\x2d\x43\x1f";
|
||||||
|
# "CTRL+ALT+4" = "send_text all \x1b\x1f\x2d\x46\x1f";
|
||||||
|
# "SHIFT+CTRL+ALT+4" = "send_text all \x1b\x1f\x2d\x47\x1f";
|
||||||
|
# "CTRL+5" = "send_text all \x1b\x1f\x2e\x22\x1f";
|
||||||
|
# "SHIFT+CTRL+5" = "send_text all \x1b\x1f\x2e\x23\x1f";
|
||||||
|
# "CTRL+ALT+5" = "send_text all \x1b\x1f\x2e\x26\x1f";
|
||||||
|
# "SHIFT+CTRL+ALT+5" = "send_text all \x1b\x1f\x2e\x27\x1f";
|
||||||
|
# "CTRL+6" = "send_text all \x1b\x1f\x2e\x62\x1f";
|
||||||
|
# "SHIFT+CTRL+6" = "send_text all \x1b\x1f\x2e\x63\x1f";
|
||||||
|
# "CTRL+ALT+6" = "send_text all \x1b\x1f\x2e\x66\x1f";
|
||||||
|
# "SHIFT+CTRL+ALT+6" = "send_text all \x1b\x1f\x2e\x67\x1f";
|
||||||
|
# "CTRL+7" = "send_text all \x1b\x1f\x2f\x42\x1f";
|
||||||
|
# "SHIFT+CTRL+7" = "send_text all \x1b\x1f\x2f\x43\x1f";
|
||||||
|
# "CTRL+ALT+7" = "send_text all \x1b\x1f\x2f\x46\x1f";
|
||||||
|
# "SHIFT+CTRL+ALT+7" = "send_text all \x1b\x1f\x2f\x47\x1f";
|
||||||
|
# "CTRL+8" = "send_text all \x1b\x1f\x30\x22\x1f";
|
||||||
|
# "SHIFT+CTRL+8" = "send_text all \x1b\x1f\x30\x23\x1f";
|
||||||
|
# "CTRL+ALT+8" = "send_text all \x1b\x1f\x30\x26\x1f";
|
||||||
|
# "SHIFT+CTRL+ALT+8" = "send_text all \x1b\x1f\x30\x27\x1f";
|
||||||
|
# "CTRL+9" = "send_text all \x1b\x1f\x30\x62\x1f";
|
||||||
|
# "SHIFT+CTRL+9" = "send_text all \x1b\x1f\x30\x63\x1f";
|
||||||
|
# "CTRL+ALT+9" = "send_text all \x1b\x1f\x30\x66\x1f";
|
||||||
|
# "SHIFT+CTRL+ALT+9" = "send_text all \x1b\x1f\x30\x67\x1f";
|
||||||
|
# "CTRL+0" = "send_text all \x1b\x1f\x31\x42\x1f";
|
||||||
|
# "SHIFT+CTRL+0" = "send_text all \x1b\x1f\x31\x43\x1f";
|
||||||
|
# "CTRL+ALT+0" = "send_text all \x1b\x1f\x31\x46\x1f";
|
||||||
|
# "SHIFT+CTRL+ALT+0" = "send_text all \x1b\x1f\x31\x47\x1f";
|
||||||
|
# "CTRL+MINUS" = "send_text all \x1b\x1f\x32\x22\x1f";
|
||||||
|
# "SHIFT+CTRL+MINUS" = "send_text all \x1b\x1f\x32\x23\x1f";
|
||||||
|
# "CTRL+ALT+MINUS" = "send_text all \x1b\x1f\x32\x26\x1f";
|
||||||
|
# "SHIFT+CTRL+ALT+MINUS" = "send_text all \x1b\x1f\x32\x27\x1f";
|
||||||
|
# "CTRL+EQUAL" = "send_text all \x1b\x1f\x32\x62\x1f";
|
||||||
|
# "SHIFT+CTRL+EQUAL" = "send_text all \x1b\x1f\x32\x63\x1f";
|
||||||
|
# "CTRL+ALT+EQUAL" = "send_text all \x1b\x1f\x32\x66\x1f";
|
||||||
|
# "SHIFT+CTRL+ALT+EQUAL" = "send_text all \x1b\x1f\x32\x67\x1f";
|
||||||
|
# "SHIFT+BACKSPACE" = "send_text all \x1b\x1f\x33\x41\x1f";
|
||||||
|
# "CTRL+BACKSPACE" = "send_text all \x1b\x1f\x33\x42\x1f";
|
||||||
|
# "SHIFT+CTRL+BACKSPACE" = "send_text all \x1b\x1f\x33\x43\x1f";
|
||||||
|
# "SHIFT+ALT+BACKSPACE" = "send_text all \x1b\x1f\x33\x45\x1f";
|
||||||
|
# "CTRL+ALT+BACKSPACE" = "send_text all \x1b\x1f\x33\x46\x1f";
|
||||||
|
# "SHIFT+CTRL+ALT+BACKSPACE" = "send_text all \x1b\x1f\x33\x47\x1f";
|
||||||
|
# "CTRL+TAB" = "send_text all \x1b\x1f\x34\x22\x1f";
|
||||||
|
# "SHIFT+CTRL+TAB" = "send_text all \x1b\x1f\x34\x23\x1f";
|
||||||
|
# "CTRL+ALT+TAB" = "send_text all \x1b\x1f\x34\x26\x1f";
|
||||||
|
# "SHIFT+CTRL+ALT+TAB" = "send_text all \x1b\x1f\x34\x27\x1f";
|
||||||
|
# "SHIFT+CTRL+Q" = "send_text all \x1b\x1f\x34\x63\x1f";
|
||||||
|
# "SHIFT+CTRL+ALT+Q" = "send_text all \x1b\x1f\x34\x67\x1f";
|
||||||
|
# "SHIFT+CTRL+W" = "send_text all \x1b\x1f\x35\x43\x1f";
|
||||||
|
# "SHIFT+CTRL+ALT+W" = "send_text all \x1b\x1f\x35\x47\x1f";
|
||||||
|
# "SHIFT+CTRL+E" = "send_text all \x1b\x1f\x36\x23\x1f";
|
||||||
|
# "SHIFT+CTRL+ALT+E" = "send_text all \x1b\x1f\x36\x27\x1f";
|
||||||
|
# "SHIFT+CTRL+R" = "send_text all \x1b\x1f\x36\x63\x1f";
|
||||||
|
# "SHIFT+CTRL+ALT+R" = "send_text all \x1b\x1f\x36\x67\x1f";
|
||||||
|
# "SHIFT+CTRL+T" = "send_text all \x1b\x1f\x37\x43\x1f";
|
||||||
|
# "SHIFT+CTRL+ALT+T" = "send_text all \x1b\x1f\x37\x47\x1f";
|
||||||
|
# "SHIFT+CTRL+Y" = "send_text all \x1b\x1f\x38\x23\x1f";
|
||||||
|
# "SHIFT+CTRL+ALT+Y" = "send_text all \x1b\x1f\x38\x27\x1f";
|
||||||
|
# "SHIFT+CTRL+U" = "send_text all \x1b\x1f\x38\x63\x1f";
|
||||||
|
# "SHIFT+CTRL+ALT+U" = "send_text all \x1b\x1f\x38\x67\x1f";
|
||||||
|
# "SHIFT+CTRL+I" = "send_text all \x1b\x1f\x39\x43\x1f";
|
||||||
|
# "SHIFT+CTRL+ALT+I" = "send_text all \x1b\x1f\x39\x47\x1f";
|
||||||
|
# "SHIFT+CTRL+O" = "send_text all \x1b\x1f\x3a\x23\x1f";
|
||||||
|
# "SHIFT+CTRL+ALT+O" = "send_text all \x1b\x1f\x3a\x27\x1f";
|
||||||
|
# "SHIFT+CTRL+P" = "send_text all \x1b\x1f\x3a\x63\x1f";
|
||||||
|
# "SHIFT+CTRL+ALT+P" = "send_text all \x1b\x1f\x3a\x67\x1f";
|
||||||
|
# "CTRL+LEFT_BRACKET" = "send_text all \x1b\x1f\x3b\x42\x1f";
|
||||||
|
# "SHIFT+CTRL+LEFT_BRACKET" = "send_text all \x1b\x1f\x3b\x43\x1f";
|
||||||
|
# "CTRL+ALT+LEFT_BRACKET" = "send_text all \x1b\x1f\x3b\x46\x1f";
|
||||||
|
# "SHIFT+CTRL+ALT+LEFT_BRACKET" = "send_text all \x1b\x1f\x3b\x47\x1f";
|
||||||
|
# "CTRL+RIGHT_BRACKET" = "send_text all \x1b\x1f\x3c\x22\x1f";
|
||||||
|
# "SHIFT+CTRL+RIGHT_BRACKET" = "send_text all \x1b\x1f\x3c\x23\x1f";
|
||||||
|
# "CTRL+ALT+RIGHT_BRACKET" = "send_text all \x1b\x1f\x3c\x26\x1f";
|
||||||
|
# "SHIFT+CTRL+ALT+RIGHT_BRACKET" = "send_text all \x1b\x1f\x3c\x27\x1f";
|
||||||
|
# "SHIFT+ENTER" = "send_text all \x1b\x1f\x3c\x61\x1f";
|
||||||
|
# "CTRL+ENTER" = "send_text all \x1b\x1f\x3c\x62\x1f";
|
||||||
|
# "SHIFT+CTRL+ENTER" = "send_text all \x1b\x1f\x3c\x63\x1f";
|
||||||
|
# "SHIFT+ALT+ENTER" = "send_text all \x1b\x1f\x3c\x65\x1f";
|
||||||
|
# "CTRL+ALT+ENTER" = "send_text all \x1b\x1f\x3c\x66\x1f";
|
||||||
|
# "SHIFT+CTRL+ALT+ENTER" = "send_text all \x1b\x1f\x3c\x67\x1f";
|
||||||
|
# "SHIFT+CTRL+A" = "send_text all \x1b\x1f\x3e\x23\x1f";
|
||||||
|
# "SHIFT+CTRL+ALT+A" = "send_text all \x1b\x1f\x3e\x27\x1f";
|
||||||
|
# "SHIFT+CTRL+S" = "send_text all \x1b\x1f\x3e\x63\x1f";
|
||||||
|
# "SHIFT+CTRL+ALT+S" = "send_text all \x1b\x1f\x3e\x67\x1f";
|
||||||
|
# "SHIFT+CTRL+D" = "send_text all \x1b\x1f\x3f\x43\x1f";
|
||||||
|
# "SHIFT+CTRL+ALT+D" = "send_text all \x1b\x1f\x3f\x47\x1f";
|
||||||
|
# "SHIFT+CTRL+F" = "send_text all \x1b\x1f\x40\x23\x1f";
|
||||||
|
# "SHIFT+CTRL+ALT+F" = "send_text all \x1b\x1f\x40\x27\x1f";
|
||||||
|
# "SHIFT+CTRL+G" = "send_text all \x1b\x1f\x40\x63\x1f";
|
||||||
|
# "CTRL+ALT+G" = "send_text all \x1b\x1f\x40\x66\x1f";
|
||||||
|
# "SHIFT+CTRL+ALT+G" = "send_text all \x1b\x1f\x40\x67\x1f";
|
||||||
|
# "SHIFT+CTRL+H" = "send_text all \x1b\x1f\x41\x43\x1f";
|
||||||
|
# "SHIFT+CTRL+ALT+H" = "send_text all \x1b\x1f\x41\x47\x1f";
|
||||||
|
# "SHIFT+CTRL+J" = "send_text all \x1b\x1f\x42\x23\x1f";
|
||||||
|
# "SHIFT+CTRL+ALT+J" = "send_text all \x1b\x1f\x42\x27\x1f";
|
||||||
|
# "SHIFT+CTRL+K" = "send_text all \x1b\x1f\x42\x63\x1f";
|
||||||
|
# "SHIFT+CTRL+ALT+K" = "send_text all \x1b\x1f\x42\x67\x1f";
|
||||||
|
# "SHIFT+CTRL+L" = "send_text all \x1b\x1f\x43\x43\x1f";
|
||||||
|
# "SHIFT+CTRL+ALT+L" = "send_text all \x1b\x1f\x43\x47\x1f";
|
||||||
|
# "CTRL+SEMICOLON" = "send_text all \x1b\x1f\x44\x22\x1f";
|
||||||
|
# "SHIFT+CTRL+SEMICOLON" = "send_text all \x1b\x1f\x44\x23\x1f";
|
||||||
|
# "CTRL+ALT+SEMICOLON" = "send_text all \x1b\x1f\x44\x26\x1f";
|
||||||
|
# "SHIFT+CTRL+ALT+SEMICOLON" = "send_text all \x1b\x1f\x44\x27\x1f";
|
||||||
|
# "CTRL+APOSTROPHE" = "send_text all \x1b\x1f\x44\x62\x1f";
|
||||||
|
# "SHIFT+CTRL+APOSTROPHE" = "send_text all \x1b\x1f\x44\x63\x1f";
|
||||||
|
# "CTRL+ALT+APOSTROPHE" = "send_text all \x1b\x1f\x44\x66\x1f";
|
||||||
|
# "SHIFT+CTRL+ALT+APOSTROPHE" = "send_text all \x1b\x1f\x44\x67\x1f";
|
||||||
|
# "CTRL+BACKSLASH" = "send_text all \x1b\x1f\x46\x22\x1f";
|
||||||
|
# "SHIFT+CTRL+BACKSLASH" = "send_text all \x1b\x1f\x46\x23\x1f";
|
||||||
|
# "CTRL+ALT+BACKSLASH" = "send_text all \x1b\x1f\x46\x26\x1f";
|
||||||
|
# "SHIFT+CTRL+ALT+BACKSLASH" = "send_text all \x1b\x1f\x46\x27\x1f";
|
||||||
|
# "SHIFT+CTRL+Z" = "send_text all \x1b\x1f\x46\x63\x1f";
|
||||||
|
# "SHIFT+CTRL+ALT+Z" = "send_text all \x1b\x1f\x46\x67\x1f";
|
||||||
|
# "SHIFT+CTRL+X" = "send_text all \x1b\x1f\x47\x43\x1f";
|
||||||
|
# "SHIFT+CTRL+ALT+X" = "send_text all \x1b\x1f\x47\x47\x1f";
|
||||||
|
# "SHIFT+CTRL+C" = "send_text all \x1b\x1f\x48\x23\x1f";
|
||||||
|
# "SHIFT+CTRL+ALT+C" = "send_text all \x1b\x1f\x48\x27\x1f";
|
||||||
|
# "SHIFT+CTRL+V" = "send_text all \x1b\x1f\x48\x63\x1f";
|
||||||
|
# "SHIFT+CTRL+ALT+V" = "send_text all \x1b\x1f\x48\x67\x1f";
|
||||||
|
# "SHIFT+CTRL+B" = "send_text all \x1b\x1f\x49\x43\x1f";
|
||||||
|
# "SHIFT+CTRL+ALT+B" = "send_text all \x1b\x1f\x49\x47\x1f";
|
||||||
|
# "SHIFT+CTRL+N" = "send_text all \x1b\x1f\x4a\x23\x1f";
|
||||||
|
# "SHIFT+CTRL+ALT+N" = "send_text all \x1b\x1f\x4a\x27\x1f";
|
||||||
|
# "SHIFT+CTRL+M" = "send_text all \x1b\x1f\x4a\x63\x1f";
|
||||||
|
# "SHIFT+CTRL+ALT+M" = "send_text all \x1b\x1f\x4a\x67\x1f";
|
||||||
|
# "CTRL+COMMA" = "send_text all \x1b\x1f\x4b\x42\x1f";
|
||||||
|
# "SHIFT+CTRL+COMMA" = "send_text all \x1b\x1f\x4b\x43\x1f";
|
||||||
|
# "CTRL+ALT+COMMA" = "send_text all \x1b\x1f\x4b\x46\x1f";
|
||||||
|
# "SHIFT+CTRL+ALT+COMMA" = "send_text all \x1b\x1f\x4b\x47\x1f";
|
||||||
|
# "CTRL+PERIOD" = "send_text all \x1b\x1f\x4c\x22\x1f"; # d
|
||||||
|
# "SHIFT+CTRL+PERIOD" = "send_text all \x1b\x1f\x4c\x23\x1f"; # d
|
||||||
|
# "CTRL+ALT+PERIOD" = "send_text all \x1b\x1f\x4c\x26\x1f"; # d
|
||||||
|
# "SHIFT+CTRL+ALT+PERIOD" = "send_text all \x1b\x1f\x4c\x27\x1f"; # d
|
||||||
|
# "CTRL+SLASH" = "send_text all \x1b\x1f\x4c\x62\x1f";
|
||||||
|
# "SHIFT+CTRL+SLASH" = "send_text all \x1b\x1f\x4c\x63\x1f";
|
||||||
|
# "CTRL+ALT+SLASH" = "send_text all \x1b\x1f\x4c\x66\x1f";
|
||||||
|
# "SHIFT+CTRL+ALT+SLASH" = "send_text all \x1b\x1f\x4c\x67\x1f";
|
||||||
|
# "CTRL+SPACE" = "send_text all \x1b\x1f\x50\x22\x1f";
|
||||||
|
# "SHIFT+CTRL+SPACE" = "send_text all \x1b\x1f\x50\x23\x1f";
|
||||||
|
# "CTRL+ALT+SPACE" = "send_text all \x1b\x1f\x50\x26\x1f";
|
||||||
|
# "SHIFT+CTRL+ALT+SPACE" = "send_text all \x1b\x1f\x50\x27\x1f";
|
||||||
|
# "MENU" = "send_text all \x1b\x1f\x52\x20\x1f";
|
||||||
|
# "SHIFT+MENU" = "send_text all \x1b\x1f\x52\x21\x1f";
|
||||||
|
# "CTRL+MENU" = "send_text all \x1b\x1f\x52\x22\x1f";
|
||||||
|
# "SHIFT+CTRL+MENU" = "send_text all \x1b\x1f\x52\x23\x1f";
|
||||||
|
# "ALT+MENU" = "send_text all \x1b\x1f\x52\x24\x1f";
|
||||||
|
# "SHIFT+ALT+MENU" = "send_text all \x1b\x1f\x52\x25\x1f";
|
||||||
|
# "CTRL+ALT+MENU" = "send_text all \x1b\x1f\x52\x26\x1f";
|
||||||
|
# "SHIFT+CTRL+ALT+MENU" = "send_text all \x1b\x1f\x52\x27\x1f";
|
||||||
|
# "SHIFT+CTRL+UP" = "send_text all \x1b\x1f\x53\x43\x1f";
|
||||||
|
# "ALT+UP" = "send_text all \x1b\x1f\x53\x44\x1f";
|
||||||
|
# "SHIFT+ALT+UP" = "send_text all \x1b\x1f\x53\x45\x1f";
|
||||||
|
# "CTRL+ALT+UP" = "send_text all \x1b\x1f\x53\x46\x1f";
|
||||||
|
# "SHIFT+CTRL+ALT+UP" = "send_text all \x1b\x1f\x53\x47\x1f";
|
||||||
|
# "SHIFT+CTRL+DOWN" = "send_text all \x1b\x1f\x54\x23\x1f";
|
||||||
|
# "ALT+DOWN" = "send_text all \x1b\x1f\x54\x24\x1f";
|
||||||
|
# "SHIFT+ALT+DOWN" = "send_text all \x1b\x1f\x54\x25\x1f";
|
||||||
|
# "CTRL+ALT+DOWN" = "send_text all \x1b\x1f\x54\x26\x1f";
|
||||||
|
# "SHIFT+CTRL+ALT+DOWN" = "send_text all \x1b\x1f\x54\x27\x1f";
|
||||||
|
# "SHIFT+CTRL+LEFT" = "send_text all \x1b\x1f\x54\x63\x1f";
|
||||||
|
# "ALT+LEFT" = "send_text all \x1b\x1f\x54\x64\x1f";
|
||||||
|
# "SHIFT+ALT+LEFT" = "send_text all \x1b\x1f\x54\x65\x1f";
|
||||||
|
# "CTRL+ALT+LEFT" = "send_text all \x1b\x1f\x54\x66\x1f";
|
||||||
|
# "SHIFT+CTRL+ALT+LEFT" = "send_text all \x1b\x1f\x54\x67\x1f";
|
||||||
|
# "SHIFT+CTRL+RIGHT" = "send_text all \x1b\x1f\x55\x43\x1f";
|
||||||
|
# "ALT+RIGHT" = "send_text all \x1b\x1f\x55\x44\x1f";
|
||||||
|
# "SHIFT+ALT+RIGHT" = "send_text all \x1b\x1f\x55\x45\x1f";
|
||||||
|
# "CTRL+ALT+RIGHT" = "send_text all \x1b\x1f\x55\x46\x1f";
|
||||||
|
# "SHIFT+CTRL+ALT+RIGHT" = "send_text all \x1b\x1f\x55\x47\x1f";
|
||||||
|
# "SHIFT+CTRL+HOME" = "send_text all \x1b\x1f\x57\x43\x1f";
|
||||||
|
# "ALT+HOME" = "send_text all \x1b\x1f\x57\x44\x1f";
|
||||||
|
# "SHIFT+ALT+HOME" = "send_text all \x1b\x1f\x57\x45\x1f";
|
||||||
|
# "CTRL+ALT+HOME" = "send_text all \x1b\x1f\x57\x46\x1f";
|
||||||
|
# "SHIFT+CTRL+ALT+HOME" = "send_text all \x1b\x1f\x57\x47\x1f";
|
||||||
|
# "SHIFT+CTRL+END" = "send_text all \x1b\x1f\x58\x23\x1f";
|
||||||
|
# "ALT+END" = "send_text all \x1b\x1f\x58\x24\x1f";
|
||||||
|
# "SHIFT+ALT+END" = "send_text all \x1b\x1f\x58\x25\x1f";
|
||||||
|
# "CTRL+ALT+END" = "send_text all \x1b\x1f\x58\x26\x1f";
|
||||||
|
# "SHIFT+CTRL+ALT+END" = "send_text all \x1b\x1f\x58\x27\x1f";
|
||||||
|
# "SHIFT+PAGE_UP" = "send_text all \x1b\x1f\x58\x61\x1f";
|
||||||
|
# "SHIFT+CTRL+PAGE_UP" = "send_text all \x1b\x1f\x58\x63\x1f";
|
||||||
|
# "ALT+PAGE_UP" = "send_text all \x1b\x1f\x58\x64\x1f";
|
||||||
|
# "SHIFT+ALT+PAGE_UP" = "send_text all \x1b\x1f\x58\x65\x1f";
|
||||||
|
# "CTRL+ALT+PAGE_UP" = "send_text all \x1b\x1f\x58\x66\x1f";
|
||||||
|
# "SHIFT+CTRL+ALT+PAGE_UP" = "send_text all \x1b\x1f\x58\x67\x1f";
|
||||||
|
# "SHIFT+PAGE_DOWN" = "send_text all \x1b\x1f\x59\x41\x1f";
|
||||||
|
# "SHIFT+CTRL+PAGE_DOWN" = "send_text all \x1b\x1f\x59\x43\x1f";
|
||||||
|
# "ALT+PAGE_DOWN" = "send_text all \x1b\x1f\x59\x44\x1f";
|
||||||
|
# "SHIFT+ALT+PAGE_DOWN" = "send_text all \x1b\x1f\x59\x45\x1f";
|
||||||
|
# "CTRL+ALT+PAGE_DOWN" = "send_text all \x1b\x1f\x59\x46\x1f";
|
||||||
|
# "SHIFT+CTRL+ALT+PAGE_DOWN" = "send_text all \x1b\x1f\x59\x47\x1f";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
282
home/ssh/config
Normal file
282
home/ssh/config
Normal file
|
|
@ -0,0 +1,282 @@
|
||||||
|
# Argonne
|
||||||
|
|
||||||
|
Host login-gce
|
||||||
|
User rayandrew
|
||||||
|
HostName logins.cels.anl.gov
|
||||||
|
ControlMaster auto
|
||||||
|
ControlPersist yes
|
||||||
|
LogLevel FATAL
|
||||||
|
|
||||||
|
Host *.cels.anl.gov !logins.cels.anl.gov
|
||||||
|
ForwardX11Trusted yes
|
||||||
|
User rayandrew
|
||||||
|
ProxyJump login-gce
|
||||||
|
|
||||||
|
Host bebop
|
||||||
|
ForwardX11Trusted yes
|
||||||
|
User rayandrew
|
||||||
|
HostName bebop.lcrc.anl.gov
|
||||||
|
ControlMaster auto
|
||||||
|
ControlPersist yes
|
||||||
|
LogLevel FATAL
|
||||||
|
|
||||||
|
Host swing
|
||||||
|
ForwardX11Trusted yes
|
||||||
|
User rayandrew
|
||||||
|
HostName swing.lcrc.anl.gov
|
||||||
|
ControlMaster auto
|
||||||
|
ControlPersist yes
|
||||||
|
LogLevel FATAL
|
||||||
|
|
||||||
|
Host *.lcrc.anl.gov
|
||||||
|
ForwardX11Trusted yes
|
||||||
|
User rayandrew
|
||||||
|
ControlMaster auto
|
||||||
|
ControlPersist yes
|
||||||
|
LogLevel FATAL
|
||||||
|
|
||||||
|
Host homes-gce
|
||||||
|
ForwardX11Trusted yes
|
||||||
|
User rayandrew
|
||||||
|
HostName homes.cels.anl.gov
|
||||||
|
ProxyJump login-gce
|
||||||
|
|
||||||
|
Host theta
|
||||||
|
ForwardX11Trusted yes
|
||||||
|
User rayandrew
|
||||||
|
HostName thetalogin5.alcf.anl.gov
|
||||||
|
ControlMaster auto
|
||||||
|
ControlPersist yes
|
||||||
|
LogLevel FATAL
|
||||||
|
|
||||||
|
Host polaris
|
||||||
|
ForwardX11Trusted yes
|
||||||
|
User rayandrew
|
||||||
|
HostName polaris.alcf.anl.gov
|
||||||
|
ControlMaster auto
|
||||||
|
ControlPersist yes
|
||||||
|
LogLevel FATAL
|
||||||
|
|
||||||
|
Host sophia
|
||||||
|
ForwardX11Trusted yes
|
||||||
|
User rayandrew
|
||||||
|
HostName sophia.alcf.anl.gov
|
||||||
|
ControlMaster auto
|
||||||
|
ControlPersist yes
|
||||||
|
LogLevel FATAL
|
||||||
|
|
||||||
|
# LLNL
|
||||||
|
|
||||||
|
Host lassen
|
||||||
|
ForwardX11Trusted yes
|
||||||
|
User sinurat1
|
||||||
|
HostName lassen.llnl.gov
|
||||||
|
ControlMaster auto
|
||||||
|
ControlPersist yes
|
||||||
|
LogLevel FATAL
|
||||||
|
|
||||||
|
Host corona
|
||||||
|
ForwardX11Trusted yes
|
||||||
|
User sinurat1
|
||||||
|
HostName corona.llnl.gov
|
||||||
|
ControlMaster auto
|
||||||
|
ControlPersist yes
|
||||||
|
LogLevel FATAL
|
||||||
|
|
||||||
|
Host czgitlab
|
||||||
|
HostName czgitlab.llnl.gov
|
||||||
|
ProxyCommand ssh oslic -W %h:7999
|
||||||
|
ControlMaster no
|
||||||
|
User sinurat1
|
||||||
|
|
||||||
|
Host oslic
|
||||||
|
ForwardX11Trusted yes
|
||||||
|
Hostname oslic.llnl.gov
|
||||||
|
PreferredAuthentications password
|
||||||
|
User sinurat1
|
||||||
|
ControlMaster auto
|
||||||
|
ControlPersist yes
|
||||||
|
LogLevel FATAL
|
||||||
|
|
||||||
|
# Box
|
||||||
|
|
||||||
|
Host box
|
||||||
|
Port 23
|
||||||
|
ForwardAgent yes
|
||||||
|
ForwardX11 yes
|
||||||
|
User u369179
|
||||||
|
HostName box.rs.ht
|
||||||
|
ControlMaster auto
|
||||||
|
ControlPersist yes
|
||||||
|
LogLevel FATAL
|
||||||
|
RequestTTY yes
|
||||||
|
|
||||||
|
Host personal-box
|
||||||
|
Port 23
|
||||||
|
ForwardAgent yes
|
||||||
|
ForwardX11 yes
|
||||||
|
User u369179-sub2
|
||||||
|
HostName box.rs.ht
|
||||||
|
ControlMaster auto
|
||||||
|
ControlPersist yes
|
||||||
|
LogLevel FATAL
|
||||||
|
RequestTTY yes
|
||||||
|
|
||||||
|
Host clio-box
|
||||||
|
Port 23
|
||||||
|
ForwardAgent yes
|
||||||
|
ForwardX11 yes
|
||||||
|
User u369179-sub3
|
||||||
|
HostName box.rs.ht
|
||||||
|
ControlMaster auto
|
||||||
|
ControlPersist yes
|
||||||
|
LogLevel FATAL
|
||||||
|
RequestTTY yes
|
||||||
|
|
||||||
|
Host cl-data
|
||||||
|
ForwardAgent yes
|
||||||
|
ForwardX11 yes
|
||||||
|
User rayandrew
|
||||||
|
HostName 192.5.87.68
|
||||||
|
RequestTTY yes
|
||||||
|
|
||||||
|
Host clperf-box
|
||||||
|
Port 23
|
||||||
|
ForwardAgent yes
|
||||||
|
ForwardX11 yes
|
||||||
|
User u369179-sub1
|
||||||
|
HostName box.rs.ht
|
||||||
|
ControlMaster auto
|
||||||
|
ControlPersist yes
|
||||||
|
LogLevel FATAL
|
||||||
|
RequestTTY yes
|
||||||
|
|
||||||
|
Host flashnet-box
|
||||||
|
Port 23
|
||||||
|
ForwardAgent yes
|
||||||
|
ForwardX11 yes
|
||||||
|
User u369179-sub4
|
||||||
|
HostName box.rs.ht
|
||||||
|
ControlMaster auto
|
||||||
|
ControlPersist yes
|
||||||
|
LogLevel FATAL
|
||||||
|
RequestTTY yes
|
||||||
|
|
||||||
|
# UChicago
|
||||||
|
|
||||||
|
Host cs-uc
|
||||||
|
User rayandrew
|
||||||
|
HostName linux.cs.uchicago.edu
|
||||||
|
# ControlMaster auto
|
||||||
|
# ControlPersist yes
|
||||||
|
LogLevel FATAL
|
||||||
|
ForwardAgent yes
|
||||||
|
ForwardX11 yes
|
||||||
|
|
||||||
|
Host cs-uc-06
|
||||||
|
User rayandrew
|
||||||
|
HostName linux6.cs.uchicago.edu
|
||||||
|
# ControlMaster auto
|
||||||
|
# ControlPersist yes
|
||||||
|
LogLevel FATAL
|
||||||
|
ForwardAgent yes
|
||||||
|
ForwardX11 yes
|
||||||
|
|
||||||
|
Host cs-uc-07
|
||||||
|
User rayandrew
|
||||||
|
HostName linux7.cs.uchicago.edu
|
||||||
|
# ControlMaster auto
|
||||||
|
# ControlPersist yes
|
||||||
|
LogLevel FATAL
|
||||||
|
ForwardAgent yes
|
||||||
|
ForwardX11 yes
|
||||||
|
|
||||||
|
Host ucare-gpu-1.cs.uchicago.edu
|
||||||
|
ForwardAgent yes
|
||||||
|
ForwardX11 yes
|
||||||
|
ForwardX11Trusted yes
|
||||||
|
User rayandrew
|
||||||
|
HostName ucare-gpu-1.cs.uchicago.edu
|
||||||
|
ProxyJump cs-uc-06
|
||||||
|
# ControlMaster auto
|
||||||
|
# ControlPersist yes
|
||||||
|
LogLevel FATAL
|
||||||
|
RequestTTY yes
|
||||||
|
|
||||||
|
Host ucare-gpu-1
|
||||||
|
ForwardAgent yes
|
||||||
|
ForwardX11 yes
|
||||||
|
ForwardX11Trusted yes
|
||||||
|
User rayandrew
|
||||||
|
HostName ucare-gpu-1.cs.uchicago.edu
|
||||||
|
ProxyJump cs-uc-06
|
||||||
|
# ControlMaster auto
|
||||||
|
# ControlPersist yes
|
||||||
|
LogLevel FATAL
|
||||||
|
RequestTTY yes
|
||||||
|
|
||||||
|
Host ucare-07
|
||||||
|
ForwardAgent yes
|
||||||
|
ForwardX11 yes
|
||||||
|
User rayandrew
|
||||||
|
HostName ucare-07.cs.uchicago.edu
|
||||||
|
RequestTTY yes
|
||||||
|
ProxyJump cs-uc
|
||||||
|
|
||||||
|
Host ucare-10
|
||||||
|
ForwardAgent yes
|
||||||
|
ForwardX11 yes
|
||||||
|
ForwardX11Trusted yes
|
||||||
|
User rayandrew
|
||||||
|
HostName ucare-10.cs.uchicago.edu
|
||||||
|
RequestTTY yes
|
||||||
|
ProxyJump cs-uc
|
||||||
|
LogLevel FATAL
|
||||||
|
|
||||||
|
Host ucare-mini
|
||||||
|
ForwardAgent yes
|
||||||
|
ForwardX11 yes
|
||||||
|
User ucare
|
||||||
|
HostName ucare-mini.cs.uchicago.edu
|
||||||
|
RequestTTY yes
|
||||||
|
|
||||||
|
# General
|
||||||
|
|
||||||
|
Host *.amazonaws.com
|
||||||
|
ControlMaster no
|
||||||
|
ControlPath none
|
||||||
|
LogLevel FATAL
|
||||||
|
RequestTTY yes
|
||||||
|
|
||||||
|
Host *.github.com
|
||||||
|
AddKeysToAgent yes
|
||||||
|
|
||||||
|
# CC
|
||||||
|
|
||||||
|
Host ray-stor
|
||||||
|
HostName 192.5.87.101
|
||||||
|
User cc
|
||||||
|
ForwardAgent yes
|
||||||
|
ForwardX11 yes
|
||||||
|
RequestTTY yes
|
||||||
|
LogLevel FATAL
|
||||||
|
|
||||||
|
Host ray-st
|
||||||
|
HostName 192.5.87.59
|
||||||
|
User cc
|
||||||
|
ForwardAgent yes
|
||||||
|
ForwardX11 yes
|
||||||
|
RequestTTY yes
|
||||||
|
LogLevel FATAL
|
||||||
|
|
||||||
|
Host *
|
||||||
|
ForwardAgent no
|
||||||
|
AddKeysToAgent no
|
||||||
|
Compression no
|
||||||
|
ServerAliveInterval 10
|
||||||
|
ServerAliveCountMax 120
|
||||||
|
HashKnownHosts no
|
||||||
|
UserKnownHostsFile ~/.ssh/known_hosts
|
||||||
|
ControlMaster no
|
||||||
|
ControlPath ~/.ssh/.control-channels/%h:%p:%r
|
||||||
|
ControlPersist no
|
||||||
17
home/ssh/default.nix
Normal file
17
home/ssh/default.nix
Normal file
|
|
@ -0,0 +1,17 @@
|
||||||
|
{
|
||||||
|
config,
|
||||||
|
pkgs,
|
||||||
|
dots,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
{
|
||||||
|
programs.ssh = {
|
||||||
|
enable = false;
|
||||||
|
};
|
||||||
|
|
||||||
|
home.packages = with pkgs; [
|
||||||
|
openssh
|
||||||
|
];
|
||||||
|
|
||||||
|
home.file.".ssh/config".source = config.lib.file.mkOutOfStoreSymlink "${dots}/home/ssh/config";
|
||||||
|
}
|
||||||
63
hosts/default.nix
Normal file
63
hosts/default.nix
Normal file
|
|
@ -0,0 +1,63 @@
|
||||||
|
{
|
||||||
|
inputs,
|
||||||
|
lib,
|
||||||
|
system,
|
||||||
|
specialArgs,
|
||||||
|
dots,
|
||||||
|
user ? "rayandrew",
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
let
|
||||||
|
mkNixosConfiguration =
|
||||||
|
host:
|
||||||
|
{
|
||||||
|
pkgs ? (
|
||||||
|
import inputs.nixpkgs {
|
||||||
|
inherit system;
|
||||||
|
config.allowUnfree = true;
|
||||||
|
}
|
||||||
|
),
|
||||||
|
}:
|
||||||
|
lib.nixosSystem {
|
||||||
|
inherit pkgs;
|
||||||
|
|
||||||
|
specialArgs = specialArgs // {
|
||||||
|
inherit host user dots;
|
||||||
|
};
|
||||||
|
|
||||||
|
modules = [
|
||||||
|
inputs.disko.nixosModules.default
|
||||||
|
./${host}
|
||||||
|
./${host}/hardware.nix
|
||||||
|
../nixos
|
||||||
|
{
|
||||||
|
home-manager = {
|
||||||
|
useGlobalPkgs = true;
|
||||||
|
useUserPackages = true;
|
||||||
|
|
||||||
|
extraSpecialArgs = specialArgs // {
|
||||||
|
inherit host user system dots;
|
||||||
|
};
|
||||||
|
|
||||||
|
users.${user} = {
|
||||||
|
imports = [
|
||||||
|
# inputs.nix-index-database.hmModules.nix-index
|
||||||
|
./${host}/home.nix
|
||||||
|
../home
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
|
# alias for home-manager
|
||||||
|
(lib.mkAliasOptionModule [ "hm" ] [
|
||||||
|
"home-manager"
|
||||||
|
"users"
|
||||||
|
user
|
||||||
|
])
|
||||||
|
inputs.home-manager.nixosModules.home-manager
|
||||||
|
];
|
||||||
|
};
|
||||||
|
in
|
||||||
|
{
|
||||||
|
pickwick = mkNixosConfiguration "pickwick" { };
|
||||||
|
}
|
||||||
50
hosts/pickwick/default.nix
Normal file
50
hosts/pickwick/default.nix
Normal file
|
|
@ -0,0 +1,50 @@
|
||||||
|
# This is your system's configuration file.
|
||||||
|
# Use this to configure your system environment (it replaces /etc/nixos/configuration.nix)
|
||||||
|
{
|
||||||
|
inputs,
|
||||||
|
lib,
|
||||||
|
config,
|
||||||
|
pkgs,
|
||||||
|
system,
|
||||||
|
dots,
|
||||||
|
user,
|
||||||
|
hm,
|
||||||
|
...
|
||||||
|
}: {
|
||||||
|
# You can import other NixOS modules here
|
||||||
|
imports = [
|
||||||
|
./hardware.nix
|
||||||
|
];
|
||||||
|
|
||||||
|
custom = {
|
||||||
|
keyd.enable = true;
|
||||||
|
displaymanager.enable = true;
|
||||||
|
_1password.enable = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
networking.hostName = "pickwick";
|
||||||
|
time.timeZone = "America/Chicago";
|
||||||
|
|
||||||
|
users.users = {
|
||||||
|
rayandrew = {
|
||||||
|
initialPassword = "abc123";
|
||||||
|
isNormalUser = true;
|
||||||
|
openssh.authorizedKeys.keys = [];
|
||||||
|
extraGroups = ["wheel" "video" "audio" "networkmanager"];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
# home-manager = {
|
||||||
|
# useGlobalPkgs = true;
|
||||||
|
# useUserPackages = true;
|
||||||
|
# extraSpecialArgs = { inherit inputs system dots user hm; };
|
||||||
|
# users.rayandrew = {
|
||||||
|
# imports = [
|
||||||
|
# ./home;
|
||||||
|
# ];
|
||||||
|
# };
|
||||||
|
# };
|
||||||
|
|
||||||
|
# https://nixos.wiki/wiki/FAQ/When_do_I_update_stateVersion
|
||||||
|
system.stateVersion = "25.05";
|
||||||
|
}
|
||||||
66
hosts/pickwick/disko.nix
Normal file
66
hosts/pickwick/disko.nix
Normal file
|
|
@ -0,0 +1,66 @@
|
||||||
|
{
|
||||||
|
device ? throw "select device"
|
||||||
|
, ...
|
||||||
|
}:
|
||||||
|
{
|
||||||
|
disko.devices = {
|
||||||
|
disk = {
|
||||||
|
main = {
|
||||||
|
inherit device;
|
||||||
|
type = "disk";
|
||||||
|
content = {
|
||||||
|
type = "gpt";
|
||||||
|
partitions = {
|
||||||
|
boot = {
|
||||||
|
name = "boot";
|
||||||
|
size = "1M";
|
||||||
|
type = "EF02";
|
||||||
|
};
|
||||||
|
ESP = {
|
||||||
|
priority = 1;
|
||||||
|
size = "1G";
|
||||||
|
type = "EF00";
|
||||||
|
content = {
|
||||||
|
type = "filesystem";
|
||||||
|
format = "vfat";
|
||||||
|
mountpoint = "/boot";
|
||||||
|
mountOptions = [
|
||||||
|
"defaults"
|
||||||
|
"umask=0077"
|
||||||
|
];
|
||||||
|
extraArgs = [
|
||||||
|
"-n"
|
||||||
|
"BOOT"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
swap = {
|
||||||
|
size = "108G";
|
||||||
|
content = {
|
||||||
|
type = "swap";
|
||||||
|
discardPolicy = "both";
|
||||||
|
resumeDevice = true;
|
||||||
|
extraArgs = [
|
||||||
|
"--label"
|
||||||
|
"SWAP"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
root = {
|
||||||
|
size = "100%";
|
||||||
|
content = {
|
||||||
|
type = "filesystem";
|
||||||
|
format = "ext4";
|
||||||
|
mountpoint = "/";
|
||||||
|
extraArgs = [
|
||||||
|
"-L"
|
||||||
|
"ROOT"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
34
hosts/pickwick/hardware.nix
Normal file
34
hosts/pickwick/hardware.nix
Normal file
|
|
@ -0,0 +1,34 @@
|
||||||
|
{ config, lib, pkgs, modulesPath, ... }:
|
||||||
|
{
|
||||||
|
boot.loader.systemd-boot.enable = true;
|
||||||
|
|
||||||
|
|
||||||
|
imports =
|
||||||
|
[ (modulesPath + "/installer/scan/not-detected.nix")
|
||||||
|
(import ./disko.nix { device = "/dev/nvme0n1"; })
|
||||||
|
];
|
||||||
|
|
||||||
|
boot.initrd.availableKernelModules = [ "nvme" "xhci_pci" "thunderbolt" "usb_storage" "usbhid" "sd_mod" ];
|
||||||
|
boot.initrd.kernelModules = [ ];
|
||||||
|
boot.kernelModules = [ "kvm-amd" ];
|
||||||
|
boot.extraModulePackages = [ ];
|
||||||
|
|
||||||
|
# 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.eth0.useDHCP = lib.mkDefault true;
|
||||||
|
# networking.interfaces.wlp1s0.useDHCP = lib.mkDefault true;
|
||||||
|
|
||||||
|
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
|
||||||
|
hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
|
||||||
|
|
||||||
|
|
||||||
|
swapDevices = [
|
||||||
|
{
|
||||||
|
device = "/dev/disk/by-label/SWAP";
|
||||||
|
}
|
||||||
|
];
|
||||||
|
zramSwap.enable = true;
|
||||||
|
}
|
||||||
15
hosts/pickwick/home.nix
Normal file
15
hosts/pickwick/home.nix
Normal file
|
|
@ -0,0 +1,15 @@
|
||||||
|
{
|
||||||
|
config,
|
||||||
|
lib,
|
||||||
|
pkgs,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
{
|
||||||
|
custom = {
|
||||||
|
gui = {
|
||||||
|
default.enable = true;
|
||||||
|
i3.enable = true;
|
||||||
|
ghostty.enable = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
34
nixos/1password.nix
Normal file
34
nixos/1password.nix
Normal file
|
|
@ -0,0 +1,34 @@
|
||||||
|
{
|
||||||
|
config,
|
||||||
|
lib,
|
||||||
|
pkgs,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
{
|
||||||
|
options.custom = with lib; {
|
||||||
|
_1password = {
|
||||||
|
enable = mkEnableOption "Enable 1password";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
config = lib.mkIf config.custom._1password.enable {
|
||||||
|
programs._1password.enable = true;
|
||||||
|
programs._1password-gui = {
|
||||||
|
enable = true;
|
||||||
|
polkitPolicyOwners = [ "rayandrew" ];
|
||||||
|
};
|
||||||
|
|
||||||
|
environment.etc = {
|
||||||
|
"1password/custom_allowed_browsers" = {
|
||||||
|
text = ''
|
||||||
|
zen
|
||||||
|
zen-twilight
|
||||||
|
.zen-wrapped
|
||||||
|
.firefox-wrapped
|
||||||
|
firefox
|
||||||
|
'';
|
||||||
|
mode = "0755";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
127
nixos/default.nix
Normal file
127
nixos/default.nix
Normal file
|
|
@ -0,0 +1,127 @@
|
||||||
|
{
|
||||||
|
inputs,
|
||||||
|
lib,
|
||||||
|
config,
|
||||||
|
pkgs,
|
||||||
|
system,
|
||||||
|
...
|
||||||
|
}: {
|
||||||
|
imports = [
|
||||||
|
./1password.nix
|
||||||
|
./displaymanager.nix
|
||||||
|
./keyd.nix
|
||||||
|
];
|
||||||
|
|
||||||
|
# nixpkgs = {
|
||||||
|
# # You can add overlays here
|
||||||
|
# overlays = [
|
||||||
|
# # If you want to use overlays exported from other flakes:
|
||||||
|
# # neovim-nightly-overlay.overlays.default
|
||||||
|
#
|
||||||
|
# # Or define it inline, for example:
|
||||||
|
# # (final: prev: {
|
||||||
|
# # hi = final.hello.overrideAttrs (oldAttrs: {
|
||||||
|
# # patches = [ ./change-hello-to-hi.patch ];
|
||||||
|
# # });
|
||||||
|
# # })
|
||||||
|
# ];
|
||||||
|
# # Configure your nixpkgs instance
|
||||||
|
# config = {
|
||||||
|
# # Disable if you don't want unfree packages
|
||||||
|
# allowUnfree = true;
|
||||||
|
# };
|
||||||
|
# };
|
||||||
|
|
||||||
|
nix = let
|
||||||
|
flakeInputs = lib.filterAttrs (_: lib.isType "flake") inputs;
|
||||||
|
in {
|
||||||
|
settings = {
|
||||||
|
# Enable flakes and new 'nix' command
|
||||||
|
experimental-features = "nix-command flakes";
|
||||||
|
# Opinionated: disable global registry
|
||||||
|
flake-registry = "";
|
||||||
|
# Workaround for https://github.com/NixOS/nix/issues/9574
|
||||||
|
nix-path = config.nix.nixPath;
|
||||||
|
};
|
||||||
|
# Opinionated: disable channels
|
||||||
|
channel.enable = false;
|
||||||
|
|
||||||
|
# Opinionated: make flake registry and nix path match flake inputs
|
||||||
|
registry = lib.mapAttrs (_: flake: {inherit flake;}) flakeInputs;
|
||||||
|
nixPath = lib.mapAttrsToList (n: _: "${n}=flake:${n}") flakeInputs;
|
||||||
|
};
|
||||||
|
|
||||||
|
# networking
|
||||||
|
networking.hostId = builtins.substring 0 8 (builtins.hashString "md5" config.networking.hostName);
|
||||||
|
networking.networkmanager.enable = true;
|
||||||
|
|
||||||
|
programs.dconf.enable = true;
|
||||||
|
services.pulseaudio.enable = false;
|
||||||
|
services.libinput = {
|
||||||
|
enable = true;
|
||||||
|
touchpad = {
|
||||||
|
disableWhileTyping = true;
|
||||||
|
naturalScrolling = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
# bluetooth
|
||||||
|
hardware.bluetooth = {
|
||||||
|
enable = true;
|
||||||
|
powerOnBoot = true;
|
||||||
|
};
|
||||||
|
services.blueman.enable = true;
|
||||||
|
|
||||||
|
# pipewire
|
||||||
|
security.rtkit.enable = true;
|
||||||
|
services.pipewire = {
|
||||||
|
enable = true;
|
||||||
|
alsa.enable = true;
|
||||||
|
alsa.support32Bit = true;
|
||||||
|
pulse.enable = true;
|
||||||
|
jack.enable = true;
|
||||||
|
|
||||||
|
# disable camera to save battery
|
||||||
|
# https://reddit.com/r/linux/comments/1em8biv/psa_pipewire_has_been_halving_your_battery_life/
|
||||||
|
wireplumber = {
|
||||||
|
enable = true;
|
||||||
|
extraConfig = {
|
||||||
|
"10-disable-camera" = {
|
||||||
|
"wireplumber.profiles" = {
|
||||||
|
main."monitor.libcamera" = "disabled";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
"10-bluez" = {
|
||||||
|
"monitor.bluez.properties" = {
|
||||||
|
"bluez5.enable-sbc-xq" = true;
|
||||||
|
"bluez5.enable-msbc" = true;
|
||||||
|
"bluez5.enable-hw-volume" = true;
|
||||||
|
"bluez5.roles" = [
|
||||||
|
"hsp_hs"
|
||||||
|
"hsp_ag"
|
||||||
|
"hfp_hf"
|
||||||
|
"hfp_ag"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
services.openssh = {
|
||||||
|
enable = true;
|
||||||
|
settings = {
|
||||||
|
# Opinionated: forbid root login through SSH.
|
||||||
|
PermitRootLogin = "no";
|
||||||
|
# Opinionated: use keys only.
|
||||||
|
# Remove if you want to SSH using passwords
|
||||||
|
PasswordAuthentication = false;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
environment.systemPackages = with pkgs; [
|
||||||
|
vim
|
||||||
|
htop
|
||||||
|
pwvucontrol
|
||||||
|
];
|
||||||
|
}
|
||||||
55
nixos/displaymanager.nix
Normal file
55
nixos/displaymanager.nix
Normal file
|
|
@ -0,0 +1,55 @@
|
||||||
|
{
|
||||||
|
config,
|
||||||
|
pkgs,
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
{
|
||||||
|
options.custom = with lib; {
|
||||||
|
displaymanager = {
|
||||||
|
enable = mkEnableOption "Enable displaymanager";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
config = lib.mkIf config.custom.displaymanager.enable {
|
||||||
|
services = {
|
||||||
|
xserver = {
|
||||||
|
enable = true;
|
||||||
|
desktopManager = {
|
||||||
|
xterm.enable = false;
|
||||||
|
};
|
||||||
|
displayManager = {
|
||||||
|
lightdm = {
|
||||||
|
enable = true;
|
||||||
|
greeters.enso = {
|
||||||
|
enable = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
session = [
|
||||||
|
{
|
||||||
|
manage = "window";
|
||||||
|
name = "hm";
|
||||||
|
start = ''
|
||||||
|
export CURRENT_XSESSION="hm"
|
||||||
|
${pkgs.stdenv.shell} $HOME/.xsession-hm &
|
||||||
|
waitPID=$!
|
||||||
|
'';
|
||||||
|
}
|
||||||
|
];
|
||||||
|
};
|
||||||
|
windowManager.i3 = {
|
||||||
|
enable = true;
|
||||||
|
extraPackages = with pkgs; [
|
||||||
|
dmenu
|
||||||
|
i3status
|
||||||
|
i3lock
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
xserver.xkb.layout = "us";
|
||||||
|
gnome.gnome-keyring.enable = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
security.polkit.enable = true;
|
||||||
|
};
|
||||||
|
}
|
||||||
71
nixos/keyd.nix
Normal file
71
nixos/keyd.nix
Normal file
|
|
@ -0,0 +1,71 @@
|
||||||
|
{
|
||||||
|
config,
|
||||||
|
lib,
|
||||||
|
pkgs,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
let
|
||||||
|
commonSettings = {
|
||||||
|
main = {
|
||||||
|
capslock = "layer(capslock)";
|
||||||
|
insert = "S-insert";
|
||||||
|
};
|
||||||
|
meta = {
|
||||||
|
w = "macro(C-w)";
|
||||||
|
a = "macro(C-a)";
|
||||||
|
};
|
||||||
|
"capslock:C" = { };
|
||||||
|
};
|
||||||
|
in
|
||||||
|
{
|
||||||
|
options.custom = with lib; {
|
||||||
|
keyd = {
|
||||||
|
enable = mkEnableOption "Enable keyd";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
config = lib.mkIf config.custom.keyd.enable {
|
||||||
|
environment.systemPackages = with pkgs; [
|
||||||
|
keyd
|
||||||
|
];
|
||||||
|
|
||||||
|
users.groups.keyd = { };
|
||||||
|
services.keyd = {
|
||||||
|
enable = true;
|
||||||
|
keyboards = {
|
||||||
|
default = {
|
||||||
|
ids = [ "*" ];
|
||||||
|
settings = commonSettings;
|
||||||
|
};
|
||||||
|
workstation = {
|
||||||
|
ids = [
|
||||||
|
"0001:0001:70533846" # framework
|
||||||
|
"3434:06a0:d7dfbeabt" # keychron q10
|
||||||
|
"046d:c339:9f276ca6" # Logitech Pro
|
||||||
|
];
|
||||||
|
settings = lib.mkMerge [
|
||||||
|
commonSettings
|
||||||
|
{
|
||||||
|
main = {
|
||||||
|
leftalt = "layer(meta)";
|
||||||
|
leftmeta = "layer(alt)";
|
||||||
|
};
|
||||||
|
}
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
systemd.services.keyd.serviceConfig.CapabilityBoundingSet = [
|
||||||
|
"CAP_SETGID"
|
||||||
|
];
|
||||||
|
|
||||||
|
environment.etc."libinput/local-overrides.quirks".text = ''
|
||||||
|
[Serial Keyboards]
|
||||||
|
MatchUdevType=keyboard
|
||||||
|
MatchName=keyd virtual keyboard
|
||||||
|
AttrKeyboardIntegration=internal
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
}
|
||||||
Loading…
Reference in a new issue