Compare commits
2 Commits
242ec70992
...
1c7f146259
Author | SHA1 | Date | |
---|---|---|---|
1c7f146259 | |||
fac169231c |
|
@ -5,6 +5,7 @@
|
||||||
[ # Include the results of the hardware scan.
|
[ # Include the results of the hardware scan.
|
||||||
./hardware-configuration.nix
|
./hardware-configuration.nix
|
||||||
];
|
];
|
||||||
|
|
||||||
hardware.opengl = {
|
hardware.opengl = {
|
||||||
enable = true;
|
enable = true;
|
||||||
driSupport = true;
|
driSupport = true;
|
||||||
|
|
64
flake.lock
64
flake.lock
|
@ -93,6 +93,24 @@
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"flake-utils_3": {
|
||||||
|
"inputs": {
|
||||||
|
"systems": "systems_2"
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1710146030,
|
||||||
|
"narHash": "sha256-SZ5L6eA7HJ/nmkzGG7/ISclqe6oZdOZTNoesiInkXPQ=",
|
||||||
|
"owner": "numtide",
|
||||||
|
"repo": "flake-utils",
|
||||||
|
"rev": "b1d9ab70662946ef0850d488da1c9019f3a9752a",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "numtide",
|
||||||
|
"repo": "flake-utils",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
"home-manager": {
|
"home-manager": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"nixpkgs": [
|
"nixpkgs": [
|
||||||
|
@ -146,19 +164,26 @@
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nixpkgs_2": {
|
"plasma-manager": {
|
||||||
|
"inputs": {
|
||||||
|
"home-manager": [
|
||||||
|
"home-manager"
|
||||||
|
],
|
||||||
|
"nixpkgs": [
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1711703276,
|
"lastModified": 1719241096,
|
||||||
"narHash": "sha256-iMUFArF0WCatKK6RzfUJknjem0H9m4KgorO/p3Dopkk=",
|
"narHash": "sha256-36De9zA7fp976ZPxATQ2LHcQohUUISCGlAcCKJqRC/0=",
|
||||||
"owner": "NixOS",
|
"owner": "nix-community",
|
||||||
"repo": "nixpkgs",
|
"repo": "plasma-manager",
|
||||||
"rev": "d8fe5e6c92d0d190646fb9f1056741a229980089",
|
"rev": "d67f2f550a26da44554f239c7043112e0cfbb231",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"owner": "NixOS",
|
"owner": "nix-community",
|
||||||
"ref": "nixos-unstable",
|
"repo": "plasma-manager",
|
||||||
"repo": "nixpkgs",
|
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
@ -166,9 +191,11 @@
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"agda": "agda",
|
"agda": "agda",
|
||||||
"cornelis": "cornelis",
|
"cornelis": "cornelis",
|
||||||
|
"flake-utils": "flake-utils_3",
|
||||||
"home-manager": "home-manager",
|
"home-manager": "home-manager",
|
||||||
"nixpkgs": "nixpkgs",
|
"nixpkgs": "nixpkgs",
|
||||||
"nixpkgs-unstable": "nixpkgs-unstable",
|
"nixpkgs-unstable": "nixpkgs-unstable",
|
||||||
|
"plasma-manager": "plasma-manager",
|
||||||
"ssbm-nix": "ssbm-nix"
|
"ssbm-nix": "ssbm-nix"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
@ -190,7 +217,9 @@
|
||||||
},
|
},
|
||||||
"ssbm-nix": {
|
"ssbm-nix": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"nixpkgs": "nixpkgs_2",
|
"nixpkgs": [
|
||||||
|
"nixpkgs-unstable"
|
||||||
|
],
|
||||||
"slippi-desktop": "slippi-desktop"
|
"slippi-desktop": "slippi-desktop"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
|
@ -221,6 +250,21 @@
|
||||||
"repo": "default",
|
"repo": "default",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
"systems_2": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1681028828,
|
||||||
|
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
|
||||||
|
"owner": "nix-systems",
|
||||||
|
"repo": "default",
|
||||||
|
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nix-systems",
|
||||||
|
"repo": "default",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"root": "root",
|
"root": "root",
|
||||||
|
|
93
flake.nix
93
flake.nix
|
@ -5,16 +5,31 @@
|
||||||
inputs = {
|
inputs = {
|
||||||
nixpkgs.url = "github:NixOs/nixpkgs/nixos-24.05";
|
nixpkgs.url = "github:NixOs/nixpkgs/nixos-24.05";
|
||||||
nixpkgs-unstable.url = "github:NixOs/nixpkgs/nixos-unstable";
|
nixpkgs-unstable.url = "github:NixOs/nixpkgs/nixos-unstable";
|
||||||
home-manager.url = "github:nix-community/home-manager/release-24.05";
|
flake-utils.url = "github:numtide/flake-utils";
|
||||||
home-manager.inputs.nixpkgs.follows = "nixpkgs";
|
home-manager = {
|
||||||
agda.url = "github:agda/agda/v2.6.4.1";
|
url = "github:nix-community/home-manager/release-24.05";
|
||||||
agda.inputs.nixpkgs.follows = "nixpkgs";
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
cornelis.url = "github:isovector/cornelis/";
|
};
|
||||||
cornelis.inputs.nixpkgs.follows = "nixpkgs";
|
agda = {
|
||||||
ssbm-nix.url = "github:lytedev/ssbm-nix";
|
url = "github:agda/agda/v2.6.4.1";
|
||||||
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
};
|
||||||
|
cornelis = {
|
||||||
|
url = "github:isovector/cornelis/";
|
||||||
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
};
|
||||||
|
ssbm-nix = {
|
||||||
|
url = "github:lytedev/ssbm-nix";
|
||||||
|
inputs.nixpkgs.follows = "nixpkgs-unstable";
|
||||||
|
};
|
||||||
|
plasma-manager = {
|
||||||
|
url = "github:nix-community/plasma-manager";
|
||||||
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
inputs.home-manager.follows = "home-manager";
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
outputs = { self, nixpkgs, nixpkgs-unstable, home-manager, agda, cornelis, ssbm-nix }:
|
outputs = { self, nixpkgs, nixpkgs-unstable, home-manager, agda, cornelis, ssbm-nix, plasma-manager, flake-utils }:
|
||||||
let nix-config-module =
|
let nix-config-module =
|
||||||
{
|
{
|
||||||
nix.registry.nixpkgs.flake = nixpkgs;
|
nix.registry.nixpkgs.flake = nixpkgs;
|
||||||
|
@ -22,54 +37,70 @@
|
||||||
system.configurationRevision = nixpkgs.lib.mkIf (self ? rev) self.rev;
|
system.configurationRevision = nixpkgs.lib.mkIf (self ? rev) self.rev;
|
||||||
};
|
};
|
||||||
rachel-home-module =
|
rachel-home-module =
|
||||||
({ pkgs, ... }:
|
system: {
|
||||||
let system = pkgs.stdenv.system;
|
|
||||||
in {
|
|
||||||
home-manager = {
|
home-manager = {
|
||||||
|
sharedModules = [ plasma-manager.homeManagerModules.plasma-manager ];
|
||||||
useGlobalPkgs = true;
|
useGlobalPkgs = true;
|
||||||
useUserPackages = true;
|
useUserPackages = true;
|
||||||
users.rachel = import ./home/rachel.nix {
|
users.rachel = import ./home/all.nix {
|
||||||
pkgs = pkgs;
|
pkgs = import nixpkgs {
|
||||||
|
system = system;
|
||||||
|
config.allowUnfree = true;
|
||||||
|
};
|
||||||
unstable = import nixpkgs-unstable {
|
unstable = import nixpkgs-unstable {
|
||||||
system = system;
|
system = system;
|
||||||
config.allowUnfree = true;
|
config.allowUnfree = true;
|
||||||
};
|
};
|
||||||
|
extra = {
|
||||||
agda = agda.packages.${system}.Agda;
|
agda = agda.packages.${system}.Agda;
|
||||||
cornelis = cornelis.packages.${system}.cornelis;
|
cornelis = cornelis.packages.${system}.cornelis;
|
||||||
cornelis-vim = cornelis.packages.${system}.cornelis-vim;
|
cornelis-vim = cornelis.packages.${system}.cornelis-vim;
|
||||||
slippi-netplay = ssbm-nix.packages.${system}.slippi-netplay;
|
slippi-netplay = ssbm-nix.packages.${system}.slippi-netplay;
|
||||||
|
sax2nf = self.packages.${system}.sax2nf;
|
||||||
|
bqn-vim = self.packages.${system}.bqn-vim;
|
||||||
|
bqn-nvim = self.packages.${system}.bqn-nvim;
|
||||||
|
shell-menu = self.packages.${system}.bqn-nvim;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
}
|
};
|
||||||
);
|
};
|
||||||
in {
|
base-modules = [
|
||||||
|
|
||||||
nixosConfigurations.lambda = nixpkgs.lib.nixosSystem {
|
|
||||||
system = "x86_64-linux";
|
|
||||||
modules = [
|
|
||||||
nix-config-module
|
nix-config-module
|
||||||
ssbm-nix.nixosModule
|
ssbm-nix.nixosModule
|
||||||
./lambda/configuration.nix
|
|
||||||
./shared/desktop.nix
|
|
||||||
home-manager.nixosModules.home-manager
|
home-manager.nixosModules.home-manager
|
||||||
rachel-home-module
|
];
|
||||||
|
in {
|
||||||
|
|
||||||
|
nixosConfigurations.lambda = nixpkgs.lib.nixosSystem rec {
|
||||||
|
system = "x86_64-linux";
|
||||||
|
modules = base-modules ++ [
|
||||||
|
./lambda/configuration.nix
|
||||||
|
./shared/user-system.nix
|
||||||
|
./shared/graphical.nix
|
||||||
|
(rachel-home-module system)
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
nixosConfigurations.computational = nixpkgs.lib.nixosSystem {
|
nixosConfigurations.computational = nixpkgs.lib.nixosSystem rec {
|
||||||
system = "x86_64-linux";
|
system = "x86_64-linux";
|
||||||
modules = [
|
modules = base-modules ++ [
|
||||||
nix-config-module
|
|
||||||
ssbm-nix.nixosModule
|
|
||||||
./computational/configuration.nix
|
./computational/configuration.nix
|
||||||
./shared/desktop.nix
|
./shared/user-system.nix
|
||||||
home-manager.nixosModules.home-manager
|
./shared/graphical.nix
|
||||||
rachel-home-module
|
(rachel-home-module system)
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
keyboardLayouts.fox = ./shared/fox.xkb;
|
keyboardLayouts.fox = ./shared/fox.xkb;
|
||||||
|
|
||||||
fonts.sax2nf = import ./shared/sax2nf.nix { pkgs = nixpkgs.legacyPackages.x86_64-linux; };
|
} // flake-utils.lib.eachDefaultSystem (system:
|
||||||
|
let pkgs = nixpkgs.legacyPackages.${system};
|
||||||
|
in {
|
||||||
|
packages = {
|
||||||
|
bqn-vim = import ./pkgs/bqn-vim.nix { inherit pkgs; };
|
||||||
|
bqn-nvim = import ./pkgs/bqn-nvim.nix { inherit pkgs; };
|
||||||
|
sax2nf = import ./pkgs/sax2nf.nix { inherit pkgs; };
|
||||||
|
shell-menu = import ./pkgs/shell-menu.nix { inherit pkgs; };
|
||||||
};
|
};
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
22
home/all.nix
Normal file
22
home/all.nix
Normal file
|
@ -0,0 +1,22 @@
|
||||||
|
{ pkgs, unstable, extra, ... }:
|
||||||
|
let common = rec {
|
||||||
|
username = "rachel";
|
||||||
|
homeDir = "/home/${username}";
|
||||||
|
};
|
||||||
|
in {
|
||||||
|
imports = builtins.map (x: import x { inherit pkgs unstable extra common; }) [
|
||||||
|
./applications.nix
|
||||||
|
./fetch.nix
|
||||||
|
./git.nix
|
||||||
|
./gpg.nix
|
||||||
|
./hm-settings.nix
|
||||||
|
./launcher.nix
|
||||||
|
./media.nix
|
||||||
|
./neovim.nix
|
||||||
|
./shell.nix
|
||||||
|
./ssh.nix
|
||||||
|
./terminal.nix
|
||||||
|
./tmux.nix
|
||||||
|
./xdg-dirs.nix
|
||||||
|
];
|
||||||
|
}
|
74
home/applications.nix
Normal file
74
home/applications.nix
Normal file
|
@ -0,0 +1,74 @@
|
||||||
|
{ pkgs, unstable, extra, ... }:
|
||||||
|
{
|
||||||
|
home.packages = (with pkgs; [
|
||||||
|
unzip
|
||||||
|
zip
|
||||||
|
xz
|
||||||
|
gzip
|
||||||
|
bzip2
|
||||||
|
p7zip
|
||||||
|
usbutils
|
||||||
|
pciutils
|
||||||
|
nettools
|
||||||
|
nmap
|
||||||
|
arp-scan
|
||||||
|
julia-bin
|
||||||
|
(python3.withPackages (ps: with ps; [
|
||||||
|
ipython
|
||||||
|
matplotlib
|
||||||
|
numpy
|
||||||
|
scipy
|
||||||
|
]))
|
||||||
|
ghc
|
||||||
|
firefox
|
||||||
|
gnupg
|
||||||
|
discord
|
||||||
|
dig
|
||||||
|
xxd
|
||||||
|
slack
|
||||||
|
imagemagick
|
||||||
|
ffmpeg
|
||||||
|
yt-dlp
|
||||||
|
libreoffice
|
||||||
|
protonmail-bridge
|
||||||
|
pass
|
||||||
|
protonvpn-gui
|
||||||
|
thunderbird
|
||||||
|
tidal-hifi
|
||||||
|
signal-desktop
|
||||||
|
transmission-gtk
|
||||||
|
xclip
|
||||||
|
clinfo
|
||||||
|
glxinfo
|
||||||
|
vulkan-tools
|
||||||
|
obs-studio
|
||||||
|
file
|
||||||
|
gimp
|
||||||
|
bat
|
||||||
|
steam
|
||||||
|
steam-run
|
||||||
|
rmapi
|
||||||
|
lutris
|
||||||
|
texlive.combined.scheme-full
|
||||||
|
zulip
|
||||||
|
rink
|
||||||
|
typst
|
||||||
|
ttyper
|
||||||
|
idris2
|
||||||
|
prismlauncher
|
||||||
|
vimv
|
||||||
|
whalebird
|
||||||
|
lean4
|
||||||
|
remmina
|
||||||
|
git-crypt
|
||||||
|
vcv-rack
|
||||||
|
]) ++ [
|
||||||
|
extra.agda
|
||||||
|
unstable.zoom-us
|
||||||
|
extra.sax2nf
|
||||||
|
extra.cornelis
|
||||||
|
extra.slippi-netplay
|
||||||
|
unstable.kicad
|
||||||
|
unstable.renoise
|
||||||
|
];
|
||||||
|
}
|
13
home/fetch.nix
Normal file
13
home/fetch.nix
Normal file
|
@ -0,0 +1,13 @@
|
||||||
|
{ ... }:
|
||||||
|
{
|
||||||
|
programs.hyfetch = {
|
||||||
|
enable = true;
|
||||||
|
settings = {
|
||||||
|
preset = "lesbian";
|
||||||
|
mode = "rgb";
|
||||||
|
color_align = {
|
||||||
|
mode = "horizontal";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
11
home/git.nix
Normal file
11
home/git.nix
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
{ ... }:
|
||||||
|
{
|
||||||
|
programs.git = {
|
||||||
|
enable = true;
|
||||||
|
userName = "Rachel Lambda Samuelsson";
|
||||||
|
userEmail = "depsterr@protonmail.com";
|
||||||
|
extraConfig = {
|
||||||
|
init.defaultBranch = "master";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
7
home/gpg.nix
Normal file
7
home/gpg.nix
Normal file
|
@ -0,0 +1,7 @@
|
||||||
|
{ pkgs, ... }:
|
||||||
|
{
|
||||||
|
services.gpg-agent = {
|
||||||
|
enable = true;
|
||||||
|
pinentryPackage = pkgs.pinentry-qt;
|
||||||
|
};
|
||||||
|
}
|
8
home/hm-settings.nix
Normal file
8
home/hm-settings.nix
Normal file
|
@ -0,0 +1,8 @@
|
||||||
|
{ common, ... }:
|
||||||
|
{
|
||||||
|
home = {
|
||||||
|
username = common.username;
|
||||||
|
homeDirectory = common.homeDir;
|
||||||
|
stateVersion = "24.05";
|
||||||
|
};
|
||||||
|
}
|
7
home/launcher.nix
Normal file
7
home/launcher.nix
Normal file
|
@ -0,0 +1,7 @@
|
||||||
|
{ ... }:
|
||||||
|
{
|
||||||
|
programs.rofi = {
|
||||||
|
enable = true;
|
||||||
|
theme = "gruvbox-dark-soft";
|
||||||
|
};
|
||||||
|
}
|
11
home/media.nix
Normal file
11
home/media.nix
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
{ ... }:
|
||||||
|
{
|
||||||
|
programs.mpv = {
|
||||||
|
enable = true;
|
||||||
|
config = {
|
||||||
|
hwdec = "auto-safe";
|
||||||
|
vo = "gpu";
|
||||||
|
profile = "gpu-hq";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
176
home/neovim.nix
Normal file
176
home/neovim.nix
Normal file
|
@ -0,0 +1,176 @@
|
||||||
|
{ pkgs, extra, ... }:
|
||||||
|
{
|
||||||
|
programs.neovim = {
|
||||||
|
defaultEditor = true;
|
||||||
|
enable = true;
|
||||||
|
vimAlias = true;
|
||||||
|
extraLuaConfig = ''
|
||||||
|
require('tmux').setup({ copy_sync = { redirect_to_clipboard = true } });
|
||||||
|
require('Comment').setup()
|
||||||
|
require('nvim-surround').setup()
|
||||||
|
require('numb').setup()
|
||||||
|
local lspcfg = require('lspconfig')
|
||||||
|
lspcfg.typst_lsp.setup({
|
||||||
|
cmd = { '${pkgs.typst-lsp}/bin/typst-lsp' },
|
||||||
|
})
|
||||||
|
lspcfg.rust_analyzer.setup({})
|
||||||
|
lspcfg.hls.setup({})
|
||||||
|
lspcfg.pyright.setup({
|
||||||
|
cmd = { '${pkgs.nodePackages.pyright}/bin/pyright-langserver', '--stdio' },
|
||||||
|
})
|
||||||
|
lspcfg.nixd.setup({
|
||||||
|
cmd = { '${pkgs.nixd}/bin/nixd' },
|
||||||
|
})
|
||||||
|
lspcfg.ltex.setup({
|
||||||
|
cmd = { '${pkgs.ltex-ls}/bin/ltex-ls' },
|
||||||
|
filetypes = { 'bib', 'gitcommit', 'markdown', 'plaintext', 'tex', 'pandoc', 'typst' },
|
||||||
|
settings = {
|
||||||
|
ltex = {
|
||||||
|
language = 'auto'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})
|
||||||
|
lspcfg.clangd.setup({
|
||||||
|
cmd = { '${pkgs.clang-tools}/bin/clangd' },
|
||||||
|
})
|
||||||
|
lspcfg.ocamllsp.setup({})
|
||||||
|
lspcfg.purescriptls.setup({})
|
||||||
|
require('orgmode').setup({})
|
||||||
|
require('lean').setup({
|
||||||
|
mappings = true,
|
||||||
|
})
|
||||||
|
require('lualine').setup {
|
||||||
|
options = {
|
||||||
|
icons_enabled = true,
|
||||||
|
theme = 'gruvbox',
|
||||||
|
component_separators = { left = "", right = ""},
|
||||||
|
section_separators = { left = "", right = ""},
|
||||||
|
always_divide_middle = true,
|
||||||
|
globalstatus = false,
|
||||||
|
refresh = {
|
||||||
|
statusline = 1000,
|
||||||
|
tabline = 1000,
|
||||||
|
winbar = 1000,
|
||||||
|
}
|
||||||
|
},
|
||||||
|
sections = {
|
||||||
|
lualine_a = {'mode'},
|
||||||
|
lualine_b = { {
|
||||||
|
'diagnostics',
|
||||||
|
always_visible = true,
|
||||||
|
on_click = function(n,b,m)
|
||||||
|
vim.diagnostic.goto_next()
|
||||||
|
end
|
||||||
|
} },
|
||||||
|
lualine_c = {'filename'},
|
||||||
|
lualine_x = {'encoding', 'filetype'},
|
||||||
|
lualine_y = {'progress'},
|
||||||
|
lualine_z = {'location'}
|
||||||
|
},
|
||||||
|
inactive_sections = {
|
||||||
|
lualine_a = {},
|
||||||
|
lualine_b = {},
|
||||||
|
lualine_c = {'filename'},
|
||||||
|
lualine_x = {'location'},
|
||||||
|
lualine_y = {},
|
||||||
|
lualine_z = {}
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
vim.api.nvim_create_autocmd('LspAttach', {
|
||||||
|
callback = function(args)
|
||||||
|
local opts = { buffer = args.buf }
|
||||||
|
vim.keymap.set('n', 'K', vim.lsp.buf.hover, opts)
|
||||||
|
vim.keymap.set('n', '<localleader>r', vim.lsp.buf.rename, opts)
|
||||||
|
vim.keymap.set('n', '<localleader>a', vim.lsp.buf.code_action, opts)
|
||||||
|
vim.keymap.set('n', '<localleader>gd', vim.lsp.buf.definition, opts)
|
||||||
|
vim.keymap.set('n', '<localleader>gi', vim.lsp.buf.implementation, opts)
|
||||||
|
vim.keymap.set('n', '<localleader>gr', vim.lsp.buf.references, opts)
|
||||||
|
vim.keymap.set('n', '<localleader>e', vim.diagnostic.open_float, opts)
|
||||||
|
vim.keymap.set('n', '<localleader>n', vim.diagnostic.goto_next, opts)
|
||||||
|
vim.keymap.set('n', '<localleader>N', vim.diagnostic.goto_prev, opts)
|
||||||
|
vim.keymap.set('i', '<C-n>', vim.lsp.omnifunc, opts)
|
||||||
|
end,
|
||||||
|
})
|
||||||
|
|
||||||
|
vim.api.nvim_create_autocmd({ "BufNew"
|
||||||
|
, "TextChanged"
|
||||||
|
, "TextChangedI"
|
||||||
|
, "TextChangedP"
|
||||||
|
, "TextChangedT"
|
||||||
|
}, {
|
||||||
|
callback = function(args)
|
||||||
|
vim.diagnostic.disable(args.buf)
|
||||||
|
end
|
||||||
|
})
|
||||||
|
|
||||||
|
vim.api.nvim_create_autocmd({"BufWrite"}, {
|
||||||
|
callback = function(args)
|
||||||
|
vim.diagnostic.enable(args.buf)
|
||||||
|
end
|
||||||
|
})
|
||||||
|
'';
|
||||||
|
extraConfig = ''
|
||||||
|
set rnu nu
|
||||||
|
set ts=2 sw=2 expandtab
|
||||||
|
set clipboard=unnamedplus
|
||||||
|
set laststatus=3 noshowmode
|
||||||
|
set signcolumn=no
|
||||||
|
set linebreak
|
||||||
|
let g:cornelis_use_global_binary = 1
|
||||||
|
set conceallevel=2 concealcursor=nc
|
||||||
|
colorscheme gruvbox
|
||||||
|
hi Normal guibg=NONE ctermbg=NONE
|
||||||
|
|
||||||
|
let maplocalleader="!"
|
||||||
|
let g:bqn_prefix_key="!"
|
||||||
|
runtime agda-input.vim
|
||||||
|
call cornelis#bind_input(" ", "!")
|
||||||
|
call cornelis#bind_input("exc", "!")
|
||||||
|
|
||||||
|
inoremap <C-Space> <Esc>
|
||||||
|
|
||||||
|
nnoremap j gj
|
||||||
|
nnoremap k gk
|
||||||
|
nnoremap gj j
|
||||||
|
nnoremap gk k
|
||||||
|
|
||||||
|
au BufRead,BufNewFile *.agda call AgdaFiletype()
|
||||||
|
au BufRead,BufNewFile *.lagda.* call AgdaFiletype()
|
||||||
|
function! AgdaFiletype()
|
||||||
|
nnoremap <buffer> <C-c><C-l> :CornelisLoad<CR>
|
||||||
|
nnoremap <buffer> <C-c><C-r> :CornelisRefine<CR>
|
||||||
|
nnoremap <buffer> <C-c><C-c> :CornelisMakeCase<CR>
|
||||||
|
nnoremap <buffer> <C-c>, :CornelisTypeContext<CR>
|
||||||
|
nnoremap <buffer> <C-c>. :CornelisTypeContextInfer<CR>
|
||||||
|
nnoremap <buffer> <C-c><C-d> :CornelisTypeInfer<CR>
|
||||||
|
nnoremap <buffer> <C-c><C-s> :CornelisSolve<CR>
|
||||||
|
nnoremap <buffer> <C-c><C-a> :CornelisAuto<CR>
|
||||||
|
nnoremap <buffer> gd :CornelisGoToDefinition<CR>
|
||||||
|
nnoremap <buffer> <C-c><C-b> :CornelisPrevGoal<CR>
|
||||||
|
nnoremap <buffer> <C-c><C-f> :CornelisNextGoal<CR>
|
||||||
|
nnoremap <buffer> <C-c><C-u> :CornelisIgnoreAbstract<CR>
|
||||||
|
nnoremap <buffer> <C-c><space> :CornelisGive<CR>
|
||||||
|
endfunction
|
||||||
|
'';
|
||||||
|
plugins = (with pkgs.vimPlugins; [
|
||||||
|
nvim-surround
|
||||||
|
comment-nvim
|
||||||
|
vimtex
|
||||||
|
gruvbox-nvim
|
||||||
|
tmux-nvim
|
||||||
|
nvim-lspconfig
|
||||||
|
idris2-vim
|
||||||
|
numb-nvim
|
||||||
|
typst-vim
|
||||||
|
orgmode
|
||||||
|
vim-obsession
|
||||||
|
lean-nvim
|
||||||
|
lualine-nvim
|
||||||
|
]) ++ [
|
||||||
|
extra.cornelis-vim
|
||||||
|
extra.bqn-vim
|
||||||
|
extra.bqn-nvim
|
||||||
|
];
|
||||||
|
};
|
||||||
|
}
|
511
home/rachel.nix
511
home/rachel.nix
|
@ -1,511 +0,0 @@
|
||||||
{ pkgs, unstable, cornelis, cornelis-vim, agda, slippi-netplay, ... }:
|
|
||||||
let username = "rachel";
|
|
||||||
homeDir = "/home/${username}";
|
|
||||||
SAX2NF = import ../shared/sax2nf.nix { inherit pkgs; };
|
|
||||||
hpkgs = pkgs.haskellPackages;
|
|
||||||
hls_wrapper = pkgs.writeScript "hls" ''
|
|
||||||
export PATH="${hpkgs.haskell-language-server}/bin:$PATH"
|
|
||||||
exec ${hpkgs.haskell-language-server}/bin/haskell-language-server-wrapper "$@"
|
|
||||||
'';
|
|
||||||
in
|
|
||||||
{
|
|
||||||
home = {
|
|
||||||
username = username;
|
|
||||||
homeDirectory = homeDir;
|
|
||||||
packages = with pkgs; [
|
|
||||||
unzip
|
|
||||||
zip
|
|
||||||
xz
|
|
||||||
gzip
|
|
||||||
bzip2
|
|
||||||
p7zip
|
|
||||||
usbutils
|
|
||||||
pciutils
|
|
||||||
nettools
|
|
||||||
nmap
|
|
||||||
arp-scan
|
|
||||||
julia-bin
|
|
||||||
(python3.withPackages (ps: with ps; [
|
|
||||||
ipython
|
|
||||||
matplotlib
|
|
||||||
numpy
|
|
||||||
scipy
|
|
||||||
]))
|
|
||||||
hpkgs.ghc
|
|
||||||
firefox
|
|
||||||
gnupg
|
|
||||||
agda
|
|
||||||
discord
|
|
||||||
dig
|
|
||||||
xxd
|
|
||||||
unstable.zoom-us
|
|
||||||
slack
|
|
||||||
imagemagick
|
|
||||||
ffmpeg
|
|
||||||
sl
|
|
||||||
cowsay
|
|
||||||
lolcat
|
|
||||||
fortune
|
|
||||||
banner
|
|
||||||
yt-dlp
|
|
||||||
libreoffice
|
|
||||||
protonmail-bridge
|
|
||||||
pass
|
|
||||||
protonvpn-cli_2
|
|
||||||
thunderbird
|
|
||||||
tidal-hifi
|
|
||||||
signal-desktop
|
|
||||||
transmission-gtk
|
|
||||||
xclip
|
|
||||||
clinfo
|
|
||||||
glxinfo
|
|
||||||
vulkan-tools
|
|
||||||
obs-studio
|
|
||||||
file
|
|
||||||
gimp
|
|
||||||
SAX2NF
|
|
||||||
twemoji-color-font
|
|
||||||
bat
|
|
||||||
steam
|
|
||||||
steam-run
|
|
||||||
rmapi
|
|
||||||
lutris
|
|
||||||
texlive.combined.scheme-full
|
|
||||||
cornelis
|
|
||||||
zulip
|
|
||||||
rink
|
|
||||||
sage
|
|
||||||
typst
|
|
||||||
ttyper
|
|
||||||
idris2
|
|
||||||
prismlauncher
|
|
||||||
vimv
|
|
||||||
whalebird
|
|
||||||
lean4
|
|
||||||
slippi-netplay
|
|
||||||
unstable.kicad
|
|
||||||
remmina
|
|
||||||
unstable.renoise
|
|
||||||
git-crypt
|
|
||||||
vcv-rack
|
|
||||||
];
|
|
||||||
stateVersion = "24.05";
|
|
||||||
};
|
|
||||||
|
|
||||||
xdg.userDirs = {
|
|
||||||
enable = true;
|
|
||||||
createDirectories = true;
|
|
||||||
desktop = "${homeDir}";
|
|
||||||
documents = "${homeDir}/doc";
|
|
||||||
download = "${homeDir}/dwn";
|
|
||||||
music = "${homeDir}/music";
|
|
||||||
pictures = "${homeDir}/img";
|
|
||||||
publicShare = "${homeDir}/srv";
|
|
||||||
templates = "${homeDir}/doc/templates";
|
|
||||||
videos = "${homeDir}/vid";
|
|
||||||
};
|
|
||||||
|
|
||||||
programs = {
|
|
||||||
bash = {
|
|
||||||
enable = true;
|
|
||||||
enableCompletion = false;
|
|
||||||
historyFile = "/dev/null";
|
|
||||||
sessionVariables = {
|
|
||||||
PS1 ="\\033[1m\\u\\033[0m@\\033[1m\\h\\033[0m: \\w\nλ ";
|
|
||||||
BROWSER = "firefox";
|
|
||||||
XINITRC = "${homeDir}/bin/xinitrc";
|
|
||||||
XAUTHORITY = "${homeDir}/.local/share/Xauthority";
|
|
||||||
PASH_KEYID = "3E4A909C8FEF6E3783699C79DFC26EF8EDAD6D71";
|
|
||||||
QT_AUTO_SCREEN_FACTOR = 1;
|
|
||||||
PATH = "${homeDir}/bin:$PATH";
|
|
||||||
};
|
|
||||||
shellAliases = {
|
|
||||||
x = "startx";
|
|
||||||
rm = "rm -i";
|
|
||||||
cal = "cal -m";
|
|
||||||
};
|
|
||||||
initExtra = ''
|
|
||||||
source ~/.profile
|
|
||||||
set -o vi
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
|
|
||||||
mpv = {
|
|
||||||
enable = true;
|
|
||||||
config = {
|
|
||||||
hwdec = "auto-safe";
|
|
||||||
vo = "gpu";
|
|
||||||
profile = "gpu-hq";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
rofi = {
|
|
||||||
enable = true;
|
|
||||||
theme = "gruvbox-dark-soft";
|
|
||||||
};
|
|
||||||
|
|
||||||
git = {
|
|
||||||
enable = true;
|
|
||||||
userName = "Rachel Lambda Samuelsson";
|
|
||||||
userEmail = "depsterr@protonmail.com";
|
|
||||||
extraConfig = {
|
|
||||||
init.defaultBranch = "master";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
neovim = {
|
|
||||||
defaultEditor = true;
|
|
||||||
enable = true;
|
|
||||||
vimAlias = true;
|
|
||||||
extraLuaConfig = ''
|
|
||||||
require('tmux').setup({ copy_sync = { redirect_to_clipboard = true } });
|
|
||||||
require('Comment').setup()
|
|
||||||
require('nvim-surround').setup()
|
|
||||||
require('numb').setup()
|
|
||||||
local lspcfg = require('lspconfig')
|
|
||||||
lspcfg.typst_lsp.setup({
|
|
||||||
cmd = { '${pkgs.typst-lsp}/bin/typst-lsp' },
|
|
||||||
})
|
|
||||||
lspcfg.rust_analyzer.setup({})
|
|
||||||
lspcfg.hls.setup({
|
|
||||||
cmd = { '${hls_wrapper}', 'lsp' },
|
|
||||||
})
|
|
||||||
lspcfg.pyright.setup({
|
|
||||||
cmd = { '${pkgs.nodePackages.pyright}/bin/pyright-langserver', '--stdio' },
|
|
||||||
})
|
|
||||||
lspcfg.nixd.setup({
|
|
||||||
cmd = { '${pkgs.nixd}/bin/nixd' },
|
|
||||||
})
|
|
||||||
lspcfg.ltex.setup({
|
|
||||||
cmd = { '${pkgs.ltex-ls}/bin/ltex-ls' },
|
|
||||||
filetypes = { 'bib', 'gitcommit', 'markdown', 'plaintext', 'tex', 'pandoc', 'typst' },
|
|
||||||
settings = {
|
|
||||||
ltex = {
|
|
||||||
language = 'en-US'
|
|
||||||
}
|
|
||||||
}
|
|
||||||
})
|
|
||||||
lspcfg.clangd.setup({
|
|
||||||
cmd = { '${pkgs.clang-tools}/bin/clangd' },
|
|
||||||
})
|
|
||||||
lspcfg.ocamllsp.setup({})
|
|
||||||
lspcfg.purescriptls.setup({})
|
|
||||||
require('orgmode').setup({})
|
|
||||||
require('lean').setup({
|
|
||||||
mappings = true,
|
|
||||||
})
|
|
||||||
require('lualine').setup {
|
|
||||||
options = {
|
|
||||||
icons_enabled = true,
|
|
||||||
theme = 'gruvbox',
|
|
||||||
component_separators = { left = "", right = ""},
|
|
||||||
section_separators = { left = "", right = ""},
|
|
||||||
always_divide_middle = true,
|
|
||||||
globalstatus = false,
|
|
||||||
refresh = {
|
|
||||||
statusline = 1000,
|
|
||||||
tabline = 1000,
|
|
||||||
winbar = 1000,
|
|
||||||
}
|
|
||||||
},
|
|
||||||
sections = {
|
|
||||||
lualine_a = {'mode'},
|
|
||||||
lualine_b = { {
|
|
||||||
'diagnostics',
|
|
||||||
always_visible = true,
|
|
||||||
on_click = function(n,b,m)
|
|
||||||
vim.diagnostic.goto_next()
|
|
||||||
end
|
|
||||||
} },
|
|
||||||
lualine_c = {'filename'},
|
|
||||||
lualine_x = {'encoding', 'filetype'},
|
|
||||||
lualine_y = {'progress'},
|
|
||||||
lualine_z = {'location'}
|
|
||||||
},
|
|
||||||
inactive_sections = {
|
|
||||||
lualine_a = {},
|
|
||||||
lualine_b = {},
|
|
||||||
lualine_c = {'filename'},
|
|
||||||
lualine_x = {'location'},
|
|
||||||
lualine_y = {},
|
|
||||||
lualine_z = {}
|
|
||||||
},
|
|
||||||
}
|
|
||||||
|
|
||||||
vim.api.nvim_create_autocmd('LspAttach', {
|
|
||||||
callback = function(args)
|
|
||||||
local opts = { buffer = args.buf }
|
|
||||||
vim.keymap.set('n', 'K', vim.lsp.buf.hover, opts)
|
|
||||||
vim.keymap.set('n', '<localleader>r', vim.lsp.buf.rename, opts)
|
|
||||||
vim.keymap.set('n', '<localleader>a', vim.lsp.buf.code_action, opts)
|
|
||||||
vim.keymap.set('n', '<localleader>gd', vim.lsp.buf.definition, opts)
|
|
||||||
vim.keymap.set('n', '<localleader>gi', vim.lsp.buf.implementation, opts)
|
|
||||||
vim.keymap.set('n', '<localleader>gr', vim.lsp.buf.references, opts)
|
|
||||||
vim.keymap.set('n', '<localleader>e', vim.diagnostic.open_float, opts)
|
|
||||||
vim.keymap.set('n', '<localleader>n', vim.diagnostic.goto_next, opts)
|
|
||||||
vim.keymap.set('n', '<localleader>N', vim.diagnostic.goto_prev, opts)
|
|
||||||
vim.keymap.set('i', '<C-n>', vim.lsp.omnifunc, opts)
|
|
||||||
end,
|
|
||||||
})
|
|
||||||
|
|
||||||
vim.api.nvim_create_autocmd({ "BufNew"
|
|
||||||
, "TextChanged"
|
|
||||||
, "TextChangedI"
|
|
||||||
, "TextChangedP"
|
|
||||||
, "TextChangedT"
|
|
||||||
}, {
|
|
||||||
callback = function(args)
|
|
||||||
vim.diagnostic.disable(args.buf)
|
|
||||||
end
|
|
||||||
})
|
|
||||||
|
|
||||||
vim.api.nvim_create_autocmd({"BufWrite"}, {
|
|
||||||
callback = function(args)
|
|
||||||
vim.diagnostic.enable(args.buf)
|
|
||||||
end
|
|
||||||
})
|
|
||||||
'';
|
|
||||||
extraConfig = ''
|
|
||||||
set rnu nu
|
|
||||||
set ts=2 sw=2 expandtab
|
|
||||||
set clipboard=unnamedplus
|
|
||||||
set laststatus=3 noshowmode
|
|
||||||
set signcolumn=no
|
|
||||||
set linebreak
|
|
||||||
let g:cornelis_use_global_binary = 1
|
|
||||||
set conceallevel=2 concealcursor=nc
|
|
||||||
colorscheme gruvbox
|
|
||||||
hi Normal guibg=NONE ctermbg=NONE
|
|
||||||
|
|
||||||
let maplocalleader="!"
|
|
||||||
let g:bqn_prefix_key="!"
|
|
||||||
runtime agda-input.vim
|
|
||||||
call cornelis#bind_input(" ", "!")
|
|
||||||
call cornelis#bind_input("exc", "!")
|
|
||||||
|
|
||||||
inoremap <C-Space> <Esc>
|
|
||||||
|
|
||||||
nnoremap j gj
|
|
||||||
nnoremap k gk
|
|
||||||
nnoremap gj j
|
|
||||||
nnoremap gk k
|
|
||||||
|
|
||||||
au BufRead,BufNewFile *.agda call AgdaFiletype()
|
|
||||||
au BufRead,BufNewFile *.lagda.* call AgdaFiletype()
|
|
||||||
function! AgdaFiletype()
|
|
||||||
nnoremap <buffer> <C-c><C-l> :CornelisLoad<CR>
|
|
||||||
nnoremap <buffer> <C-c><C-r> :CornelisRefine<CR>
|
|
||||||
nnoremap <buffer> <C-c><C-c> :CornelisMakeCase<CR>
|
|
||||||
nnoremap <buffer> <C-c>, :CornelisTypeContext<CR>
|
|
||||||
nnoremap <buffer> <C-c>. :CornelisTypeContextInfer<CR>
|
|
||||||
nnoremap <buffer> <C-c><C-d> :CornelisTypeInfer<CR>
|
|
||||||
nnoremap <buffer> <C-c><C-s> :CornelisSolve<CR>
|
|
||||||
nnoremap <buffer> <C-c><C-a> :CornelisAuto<CR>
|
|
||||||
nnoremap <buffer> gd :CornelisGoToDefinition<CR>
|
|
||||||
nnoremap <buffer> <C-c><C-b> :CornelisPrevGoal<CR>
|
|
||||||
nnoremap <buffer> <C-c><C-f> :CornelisNextGoal<CR>
|
|
||||||
nnoremap <buffer> <C-c><C-u> :CornelisIgnoreAbstract<CR>
|
|
||||||
nnoremap <buffer> <C-c><space> :CornelisGive<CR>
|
|
||||||
endfunction
|
|
||||||
'';
|
|
||||||
plugins = let
|
|
||||||
bqn-vim = pkgs.vimUtils.buildVimPlugin {
|
|
||||||
name = "bqn-vim";
|
|
||||||
src = "${pkgs.fetchFromGitHub {
|
|
||||||
owner = "mlochbaum";
|
|
||||||
repo = "BQN";
|
|
||||||
rev = "f4b09b675386c789c8296c96874871916a3abdcf";
|
|
||||||
hash = "sha256-rvsageS5sYF9QvWuoRutjx5i0ngrfhGvIPRO834pwwM=";
|
|
||||||
}}/editors/vim";
|
|
||||||
};
|
|
||||||
bqn-nvim = pkgs.vimUtils.buildVimPlugin {
|
|
||||||
name = "bqn-nvim";
|
|
||||||
src = pkgs.fetchFromSourcehut {
|
|
||||||
owner = "~detegr";
|
|
||||||
repo = "nvim-bqn";
|
|
||||||
rev = "52d8b49f3ebc32d340e2e2b8dba1f6bbd1873b78";
|
|
||||||
hash = "sha256-5wITedTuUn9BKLqmQtPWeFNOa8dXfPIRpUvPSkNJcas=";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
in
|
|
||||||
with pkgs.vimPlugins; [
|
|
||||||
nvim-surround
|
|
||||||
comment-nvim
|
|
||||||
vimtex
|
|
||||||
gruvbox-nvim
|
|
||||||
tmux-nvim
|
|
||||||
cornelis-vim
|
|
||||||
nvim-lspconfig
|
|
||||||
idris2-vim
|
|
||||||
numb-nvim
|
|
||||||
typst-vim
|
|
||||||
orgmode
|
|
||||||
vim-obsession
|
|
||||||
lean-nvim
|
|
||||||
bqn-vim
|
|
||||||
bqn-nvim
|
|
||||||
lualine-nvim
|
|
||||||
];
|
|
||||||
};
|
|
||||||
|
|
||||||
tmux = {
|
|
||||||
enable = true;
|
|
||||||
clock24 = true;
|
|
||||||
escapeTime = 0;
|
|
||||||
keyMode = "vi";
|
|
||||||
mouse = false;
|
|
||||||
shortcut = "a";
|
|
||||||
extraConfig = ''
|
|
||||||
bind h split -hb -c '#{pane_current_path}'
|
|
||||||
bind j split -v -c '#{pane_current_path}'
|
|
||||||
bind k split -vb -c '#{pane_current_path}'
|
|
||||||
bind l split -h -c '#{pane_current_path}'
|
|
||||||
|
|
||||||
is_vim="ps -o state= -o comm= -t '#{pane_tty}' | grep -iqE '^[^TXZ ]+ +(\\S+\\/)?g?\.?(view|n?vim?x?)(-wrapped)?(diff)?$'"
|
|
||||||
|
|
||||||
bind-key -n 'C-h' if-shell "$is_vim" 'send-keys C-h' 'select-pane -L'
|
|
||||||
bind-key -n 'C-j' if-shell "$is_vim" 'send-keys C-j' 'select-pane -D'
|
|
||||||
bind-key -n 'C-k' if-shell "$is_vim" 'send-keys C-k' 'select-pane -U'
|
|
||||||
bind-key -n 'C-l' if-shell "$is_vim" 'send-keys C-l' 'select-pane -R'
|
|
||||||
|
|
||||||
bind-key -T copy-mode-vi 'C-h' select-pane -L
|
|
||||||
bind-key -T copy-mode-vi 'C-j' select-pane -D
|
|
||||||
bind-key -T copy-mode-vi 'C-k' select-pane -U
|
|
||||||
bind-key -T copy-mode-vi 'C-l' select-pane -R
|
|
||||||
|
|
||||||
bind -n 'M-h' if-shell "$is_vim" 'send-keys M-h' 'resize-pane -L 1'
|
|
||||||
bind -n 'M-j' if-shell "$is_vim" 'send-keys M-j' 'resize-pane -D 1'
|
|
||||||
bind -n 'M-k' if-shell "$is_vim" 'send-keys M-k' 'resize-pane -U 1'
|
|
||||||
bind -n 'M-l' if-shell "$is_vim" 'send-keys M-l' 'resize-pane -R 1'
|
|
||||||
|
|
||||||
bind-key -T copy-mode-vi M-h resize-pane -L 1
|
|
||||||
bind-key -T copy-mode-vi M-j resize-pane -D 1
|
|
||||||
bind-key -T copy-mode-vi M-k resize-pane -U 1
|
|
||||||
bind-key -T copy-mode-vi M-l resize-pane -R 1
|
|
||||||
|
|
||||||
set -g pane-border-style bg=default
|
|
||||||
set -g pane-border-style fg="#1D1F21"
|
|
||||||
set -g pane-active-border-style bg=default
|
|
||||||
set -g pane-active-border-style fg="#333333"
|
|
||||||
|
|
||||||
set-option -g status on
|
|
||||||
set-option -g status-style bg=default
|
|
||||||
set-option -g status-style fg="#ef7627"
|
|
||||||
set-option -g status-interval 2
|
|
||||||
set-option -g status-justify "centre"
|
|
||||||
set-option -g status-right " λ "
|
|
||||||
|
|
||||||
set -g status-interval 1
|
|
||||||
set-window-option -g window-status-separator "-"
|
|
||||||
set-window-option -g window-status-current-format " #[fg=#b55690 bold]!![ #{b:pane_current_path}/ ] #{b:window_index} $ #{b:pane_current_command}!! "
|
|
||||||
set-window-option -g window-status-format " #{b:window_index} [ #{b:pane_current_path}/ ] #{b:pane_current_command} "
|
|
||||||
|
|
||||||
set -g @resurrect-strategy-nvim 'session'
|
|
||||||
set -g @resurrect-capture-pane-contents 'on'
|
|
||||||
'';
|
|
||||||
plugins = with pkgs.tmuxPlugins; [
|
|
||||||
resurrect
|
|
||||||
];
|
|
||||||
};
|
|
||||||
|
|
||||||
hyfetch = {
|
|
||||||
enable = true;
|
|
||||||
settings = {
|
|
||||||
preset = "lesbian";
|
|
||||||
mode = "rgb";
|
|
||||||
color_align = {
|
|
||||||
mode = "horizontal";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
direnv = {
|
|
||||||
enable = true;
|
|
||||||
nix-direnv.enable = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
alacritty = {
|
|
||||||
enable = true;
|
|
||||||
settings = {
|
|
||||||
window = {
|
|
||||||
padding.x = 5;
|
|
||||||
padding.y = 5;
|
|
||||||
decorations = "None";
|
|
||||||
dynamic_title = false;
|
|
||||||
};
|
|
||||||
mouse.hide_when_typing = true;
|
|
||||||
scrolling.history = 0;
|
|
||||||
font = {
|
|
||||||
normal.family = "SAX2 Nerd Font";
|
|
||||||
size = 11;
|
|
||||||
};
|
|
||||||
colors = {
|
|
||||||
draw_bold_text_with_bright_colors = false;
|
|
||||||
primary = {
|
|
||||||
background = "#1d1f21";
|
|
||||||
foreground = "#c5c8c6";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
shell.program =
|
|
||||||
let tmux-menu = pkgs.writeScript "tmux-menu" ''
|
|
||||||
s="$(tmux ls 2>/dev/null)"
|
|
||||||
[ "$s" ] && s="$s
|
|
||||||
"
|
|
||||||
c=$(${pkgs.fzf}/bin/fzf -1 <<-EOF
|
|
||||||
''${s}New Session
|
|
||||||
Raw Shell
|
|
||||||
EOF
|
|
||||||
) || exit
|
|
||||||
case "$c" in
|
|
||||||
"New Session")
|
|
||||||
read -p "Name? " -r n
|
|
||||||
${pkgs.tmux}/bin/tmux new -s "$n" ;;
|
|
||||||
"Raw Shell")
|
|
||||||
${pkgs.bashInteractive}/bin/bash --login ;;
|
|
||||||
*)
|
|
||||||
${pkgs.tmux}/bin/tmux attach-session -t "''${c%%:*}" ;;
|
|
||||||
esac
|
|
||||||
''; in "${tmux-menu}";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
ssh = {
|
|
||||||
enable = true;
|
|
||||||
matchBlocks = {
|
|
||||||
remarkable = {
|
|
||||||
hostname = "10.11.99.1";
|
|
||||||
user = "root";
|
|
||||||
};
|
|
||||||
lazarus = {
|
|
||||||
hostname = "rachel.cafe";
|
|
||||||
user = "deppy";
|
|
||||||
};
|
|
||||||
zelda = {
|
|
||||||
hostname = "zelda.dhack.se";
|
|
||||||
user = "dhack";
|
|
||||||
};
|
|
||||||
link = {
|
|
||||||
hostname = "link.dhack.se";
|
|
||||||
user = "dhack";
|
|
||||||
};
|
|
||||||
medli = {
|
|
||||||
hostname = "pub.dhack.se";
|
|
||||||
user = "hacke";
|
|
||||||
port = 222;
|
|
||||||
};
|
|
||||||
ganon = {
|
|
||||||
hostname = "ganon.dhack.se";
|
|
||||||
user = "lambda";
|
|
||||||
port = 222;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
services = {
|
|
||||||
gpg-agent = {
|
|
||||||
enable = true;
|
|
||||||
pinentryPackage = pkgs.pinentry-qt;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
30
home/shell.nix
Normal file
30
home/shell.nix
Normal file
|
@ -0,0 +1,30 @@
|
||||||
|
{ common, ... }:
|
||||||
|
{
|
||||||
|
programs.bash = {
|
||||||
|
enable = true;
|
||||||
|
enableCompletion = false;
|
||||||
|
historyFile = "/dev/null";
|
||||||
|
sessionVariables = {
|
||||||
|
PS1 ="\\033[1m\\u\\033[0m@\\033[1m\\h\\033[0m: \\w\nλ ";
|
||||||
|
BROWSER = "firefox";
|
||||||
|
XINITRC = "${common.homeDir}/bin/xinitrc";
|
||||||
|
XAUTHORITY = "${common.homeDir}/.local/share/Xauthority";
|
||||||
|
PASH_KEYID = "3E4A909C8FEF6E3783699C79DFC26EF8EDAD6D71";
|
||||||
|
QT_AUTO_SCREEN_FACTOR = 1;
|
||||||
|
PATH = "${common.homeDir}/bin:$PATH";
|
||||||
|
};
|
||||||
|
shellAliases = {
|
||||||
|
x = "startx";
|
||||||
|
rm = "rm -i";
|
||||||
|
cal = "cal -m";
|
||||||
|
};
|
||||||
|
initExtra = ''
|
||||||
|
source ~/.profile
|
||||||
|
set -o vi
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
programs.direnv = {
|
||||||
|
enable = true;
|
||||||
|
nix-direnv.enable = true;
|
||||||
|
};
|
||||||
|
}
|
34
home/ssh.nix
Normal file
34
home/ssh.nix
Normal file
|
@ -0,0 +1,34 @@
|
||||||
|
{ ... }:
|
||||||
|
{
|
||||||
|
programs.ssh = {
|
||||||
|
enable = true;
|
||||||
|
matchBlocks = {
|
||||||
|
remarkable = {
|
||||||
|
hostname = "10.11.99.1";
|
||||||
|
user = "root";
|
||||||
|
};
|
||||||
|
lazarus = {
|
||||||
|
hostname = "rachel.cafe";
|
||||||
|
user = "deppy";
|
||||||
|
};
|
||||||
|
zelda = {
|
||||||
|
hostname = "zelda.dhack.se";
|
||||||
|
user = "dhack";
|
||||||
|
};
|
||||||
|
link = {
|
||||||
|
hostname = "link.dhack.se";
|
||||||
|
user = "dhack";
|
||||||
|
};
|
||||||
|
medli = {
|
||||||
|
hostname = "pub.dhack.se";
|
||||||
|
user = "hacke";
|
||||||
|
port = 222;
|
||||||
|
};
|
||||||
|
ganon = {
|
||||||
|
hostname = "ganon.dhack.se";
|
||||||
|
user = "lambda";
|
||||||
|
port = 222;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
28
home/terminal.nix
Normal file
28
home/terminal.nix
Normal file
|
@ -0,0 +1,28 @@
|
||||||
|
{ extra, ... }:
|
||||||
|
{
|
||||||
|
programs.alacritty = {
|
||||||
|
enable = true;
|
||||||
|
settings = {
|
||||||
|
window = {
|
||||||
|
padding.x = 5;
|
||||||
|
padding.y = 5;
|
||||||
|
decorations = "None";
|
||||||
|
dynamic_title = false;
|
||||||
|
};
|
||||||
|
mouse.hide_when_typing = true;
|
||||||
|
scrolling.history = 0;
|
||||||
|
font = {
|
||||||
|
normal.family = "SAX2 Nerd Font";
|
||||||
|
size = 11;
|
||||||
|
};
|
||||||
|
colors = {
|
||||||
|
draw_bold_text_with_bright_colors = false;
|
||||||
|
primary = {
|
||||||
|
background = "#1d1f21";
|
||||||
|
foreground = "#c5c8c6";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
shell.program = extra.shell-menu;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
62
home/tmux.nix
Normal file
62
home/tmux.nix
Normal file
|
@ -0,0 +1,62 @@
|
||||||
|
{ pkgs, ... }:
|
||||||
|
{
|
||||||
|
programs.tmux = {
|
||||||
|
enable = true;
|
||||||
|
clock24 = true;
|
||||||
|
escapeTime = 0;
|
||||||
|
keyMode = "vi";
|
||||||
|
mouse = false;
|
||||||
|
shortcut = "a";
|
||||||
|
extraConfig = ''
|
||||||
|
bind h split -hb -c '#{pane_current_path}'
|
||||||
|
bind j split -v -c '#{pane_current_path}'
|
||||||
|
bind k split -vb -c '#{pane_current_path}'
|
||||||
|
bind l split -h -c '#{pane_current_path}'
|
||||||
|
|
||||||
|
is_vim="ps -o state= -o comm= -t '#{pane_tty}' | grep -iqE '^[^TXZ ]+ +(\\S+\\/)?g?\.?(view|n?vim?x?)(-wrapped)?(diff)?$'"
|
||||||
|
|
||||||
|
bind-key -n 'C-h' if-shell "$is_vim" 'send-keys C-h' 'select-pane -L'
|
||||||
|
bind-key -n 'C-j' if-shell "$is_vim" 'send-keys C-j' 'select-pane -D'
|
||||||
|
bind-key -n 'C-k' if-shell "$is_vim" 'send-keys C-k' 'select-pane -U'
|
||||||
|
bind-key -n 'C-l' if-shell "$is_vim" 'send-keys C-l' 'select-pane -R'
|
||||||
|
|
||||||
|
bind-key -T copy-mode-vi 'C-h' select-pane -L
|
||||||
|
bind-key -T copy-mode-vi 'C-j' select-pane -D
|
||||||
|
bind-key -T copy-mode-vi 'C-k' select-pane -U
|
||||||
|
bind-key -T copy-mode-vi 'C-l' select-pane -R
|
||||||
|
|
||||||
|
bind -n 'M-h' if-shell "$is_vim" 'send-keys M-h' 'resize-pane -L 1'
|
||||||
|
bind -n 'M-j' if-shell "$is_vim" 'send-keys M-j' 'resize-pane -D 1'
|
||||||
|
bind -n 'M-k' if-shell "$is_vim" 'send-keys M-k' 'resize-pane -U 1'
|
||||||
|
bind -n 'M-l' if-shell "$is_vim" 'send-keys M-l' 'resize-pane -R 1'
|
||||||
|
|
||||||
|
bind-key -T copy-mode-vi M-h resize-pane -L 1
|
||||||
|
bind-key -T copy-mode-vi M-j resize-pane -D 1
|
||||||
|
bind-key -T copy-mode-vi M-k resize-pane -U 1
|
||||||
|
bind-key -T copy-mode-vi M-l resize-pane -R 1
|
||||||
|
|
||||||
|
set -g pane-border-style bg=default
|
||||||
|
set -g pane-border-style fg="#1D1F21"
|
||||||
|
set -g pane-active-border-style bg=default
|
||||||
|
set -g pane-active-border-style fg="#333333"
|
||||||
|
|
||||||
|
set-option -g status on
|
||||||
|
set-option -g status-style bg=default
|
||||||
|
set-option -g status-style fg="#ef7627"
|
||||||
|
set-option -g status-interval 2
|
||||||
|
set-option -g status-justify "centre"
|
||||||
|
set-option -g status-right " λ "
|
||||||
|
|
||||||
|
set -g status-interval 1
|
||||||
|
set-window-option -g window-status-separator "-"
|
||||||
|
set-window-option -g window-status-current-format " #[fg=#b55690 bold]!![ #{b:pane_current_path}/ ] #{b:window_index} $ #{b:pane_current_command}!! "
|
||||||
|
set-window-option -g window-status-format " #{b:window_index} [ #{b:pane_current_path}/ ] #{b:pane_current_command} "
|
||||||
|
|
||||||
|
set -g @resurrect-strategy-nvim 'session'
|
||||||
|
set -g @resurrect-capture-pane-contents 'on'
|
||||||
|
'';
|
||||||
|
plugins = with pkgs.tmuxPlugins; [
|
||||||
|
resurrect
|
||||||
|
];
|
||||||
|
};
|
||||||
|
}
|
15
home/xdg-dirs.nix
Normal file
15
home/xdg-dirs.nix
Normal file
|
@ -0,0 +1,15 @@
|
||||||
|
{ common, ... }:
|
||||||
|
{
|
||||||
|
xdg.userDirs = {
|
||||||
|
enable = true;
|
||||||
|
createDirectories = true;
|
||||||
|
desktop = "${common.homeDir}";
|
||||||
|
documents = "${common.homeDir}/doc";
|
||||||
|
download = "${common.homeDir}/dwn";
|
||||||
|
music = "${common.homeDir}/music";
|
||||||
|
pictures = "${common.homeDir}/img";
|
||||||
|
publicShare = "${common.homeDir}/srv";
|
||||||
|
templates = "${common.homeDir}/doc/templates";
|
||||||
|
videos = "${common.homeDir}/vid";
|
||||||
|
};
|
||||||
|
}
|
|
@ -5,6 +5,7 @@
|
||||||
[ # Include the results of the hardware scan.
|
[ # Include the results of the hardware scan.
|
||||||
./hardware-configuration.nix
|
./hardware-configuration.nix
|
||||||
];
|
];
|
||||||
|
|
||||||
hardware.opengl = {
|
hardware.opengl = {
|
||||||
enable = true;
|
enable = true;
|
||||||
driSupport = true;
|
driSupport = true;
|
||||||
|
|
10
pkgs/bqn-nvim.nix
Normal file
10
pkgs/bqn-nvim.nix
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
{ pkgs, ... }:
|
||||||
|
pkgs.vimUtils.buildVimPlugin {
|
||||||
|
name = "bqn-nvim";
|
||||||
|
src = pkgs.fetchFromSourcehut {
|
||||||
|
owner = "~detegr";
|
||||||
|
repo = "nvim-bqn";
|
||||||
|
rev = "52d8b49f3ebc32d340e2e2b8dba1f6bbd1873b78";
|
||||||
|
hash = "sha256-5wITedTuUn9BKLqmQtPWeFNOa8dXfPIRpUvPSkNJcas=";
|
||||||
|
};
|
||||||
|
}
|
10
pkgs/bqn-vim.nix
Normal file
10
pkgs/bqn-vim.nix
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
{ pkgs, ... }:
|
||||||
|
pkgs.vimUtils.buildVimPlugin {
|
||||||
|
name = "bqn-vim";
|
||||||
|
src = "${pkgs.fetchFromGitHub {
|
||||||
|
owner = "mlochbaum";
|
||||||
|
repo = "BQN";
|
||||||
|
rev = "f4b09b675386c789c8296c96874871916a3abdcf";
|
||||||
|
hash = "sha256-rvsageS5sYF9QvWuoRutjx5i0ngrfhGvIPRO834pwwM=";
|
||||||
|
}}/editors/vim";
|
||||||
|
}
|
20
pkgs/shell-menu.nix
Normal file
20
pkgs/shell-menu.nix
Normal file
|
@ -0,0 +1,20 @@
|
||||||
|
{ pkgs, ... }:
|
||||||
|
pkgs.writeScript "tmux-menu" ''
|
||||||
|
s="$(${pkgs.tmux}/bin/tmux ls 2>/dev/null)"
|
||||||
|
[ "$s" ] && s="$s
|
||||||
|
"
|
||||||
|
c=$(${pkgs.fzf}/bin/fzf -1 <<-EOF
|
||||||
|
''${s}New Session
|
||||||
|
Raw Shell
|
||||||
|
EOF
|
||||||
|
) || exit
|
||||||
|
case "$c" in
|
||||||
|
"New Session")
|
||||||
|
read -p "Name? " -r n
|
||||||
|
${pkgs.tmux}/bin/tmux new -s "$n" ;;
|
||||||
|
"Raw Shell")
|
||||||
|
${pkgs.bashInteractive}/bin/bash --login ;;
|
||||||
|
*)
|
||||||
|
${pkgs.tmux}/bin/tmux attach-session -t "''${c%%:*}" ;;
|
||||||
|
esac
|
||||||
|
''
|
|
@ -55,5 +55,7 @@ xkb_symbols "fox" {
|
||||||
key <AB09> {[ v, V, VoidSymbol, VoidSymbol ]};
|
key <AB09> {[ v, V, VoidSymbol, VoidSymbol ]};
|
||||||
key <AB10> {[ z, Z, VoidSymbol, VoidSymbol ]};
|
key <AB10> {[ z, Z, VoidSymbol, VoidSymbol ]};
|
||||||
|
|
||||||
|
key <SPCE> {[ space, space, space, space ]};
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
46
shared/graphical.nix
Normal file
46
shared/graphical.nix
Normal file
|
@ -0,0 +1,46 @@
|
||||||
|
{ pkgs, ... }:
|
||||||
|
{
|
||||||
|
# [DESKTOP / XORG / WAYLAND]
|
||||||
|
services.libinput = {
|
||||||
|
enable = true;
|
||||||
|
touchpad = {
|
||||||
|
naturalScrolling = true;
|
||||||
|
accelProfile = "flat" ;
|
||||||
|
tapping = false;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
services.xserver = {
|
||||||
|
enable = true;
|
||||||
|
desktopManager.plasma5.enable = true;
|
||||||
|
displayManager.startx.enable = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
# [SOUND]
|
||||||
|
sound.enable = false;
|
||||||
|
security.rtkit.enable = true;
|
||||||
|
services.pipewire = {
|
||||||
|
enable = true;
|
||||||
|
|
||||||
|
alsa = {
|
||||||
|
enable = true;
|
||||||
|
support32Bit = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
pulse.enable = true;
|
||||||
|
|
||||||
|
jack.enable = true;
|
||||||
|
|
||||||
|
wireplumber.enable = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
programs.gamemode = {
|
||||||
|
enable = true;
|
||||||
|
settings.general.renice = 20;
|
||||||
|
};
|
||||||
|
nixpkgs.config.allowUnfree = true;
|
||||||
|
programs.steam.enable = true;
|
||||||
|
ssbm.gcc = {
|
||||||
|
rules.enable = true;
|
||||||
|
oc-kmod.enable = true;
|
||||||
|
};
|
||||||
|
}
|
|
@ -1,4 +0,0 @@
|
||||||
{
|
|
||||||
etaUser = "user";
|
|
||||||
etaPass = "pass";
|
|
||||||
}
|
|
|
@ -5,4 +5,5 @@ xkb_symbols "sus" {
|
||||||
key <AD11> {[ bracketleft, braceleft, aring, Aring ]};
|
key <AD11> {[ bracketleft, braceleft, aring, Aring ]};
|
||||||
key <AC10> {[ semicolon, colon, odiaeresis, Odiaeresis ]};
|
key <AC10> {[ semicolon, colon, odiaeresis, Odiaeresis ]};
|
||||||
key <AC11> {[ apostrophe, quatedbl, adiaeresis, Adiaeresis ]};
|
key <AC11> {[ apostrophe, quatedbl, adiaeresis, Adiaeresis ]};
|
||||||
|
key <SPCE> {[ space, space, space, space ]};
|
||||||
};
|
};
|
||||||
|
|
|
@ -1,10 +1,33 @@
|
||||||
{ pkgs, ... }:
|
{ pkgs, ... }:
|
||||||
{
|
{
|
||||||
services.openssh = {
|
# [LOCALE]
|
||||||
enable = true;
|
time.timeZone = "Europe/Stockholm";
|
||||||
|
i18n.defaultLocale = "en_GB.UTF-8";
|
||||||
|
i18n.supportedLocales = [ "sv_SE.UTF-8/UTF-8" "en_GB.UTF-8/UTF-8" "en_US.UTF-8/UTF-8" ];
|
||||||
|
|
||||||
|
# [NIX]
|
||||||
|
nix = {
|
||||||
settings = {
|
settings = {
|
||||||
PasswordAuthentication = false;
|
bash-prompt = "\\033[1m\\u\\033[0m@\\033[1m\\h\\033[0m: \\w\\n❄\\040";
|
||||||
PermitRootLogin = "no";
|
experimental-features = [ "nix-command" "flakes" ];
|
||||||
|
auto-optimise-store = true;
|
||||||
|
};
|
||||||
|
gc = {
|
||||||
|
automatic = true;
|
||||||
|
dates = "weekly";
|
||||||
|
options = "--delete-older-than 7d";
|
||||||
|
};
|
||||||
|
registry = {
|
||||||
|
templates = {
|
||||||
|
from = {
|
||||||
|
type = "indirect";
|
||||||
|
id = "templates";
|
||||||
|
};
|
||||||
|
to = {
|
||||||
|
type = "git";
|
||||||
|
url = "https://githug.xyz/xenchel/templates";
|
||||||
|
};
|
||||||
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -23,55 +46,7 @@
|
||||||
options = [ "username=${secrets.etaUser}" "password=${secrets.etaPass}" "uid=1000" "gid=1000" "x-systemd.automount" "noauto" "x-systemd.idle-timeout=60" ];
|
options = [ "username=${secrets.etaUser}" "password=${secrets.etaPass}" "uid=1000" "gid=1000" "x-systemd.automount" "noauto" "x-systemd.idle-timeout=60" ];
|
||||||
};
|
};
|
||||||
|
|
||||||
# [LOCALE]
|
|
||||||
time.timeZone = "Europe/Stockholm";
|
|
||||||
i18n.defaultLocale = "en_GB.UTF-8";
|
|
||||||
i18n.supportedLocales = [ "sv_SE.UTF-8/UTF-8" "en_GB.UTF-8/UTF-8" "en_US.UTF-8/UTF-8" ];
|
|
||||||
|
|
||||||
# [NIX]
|
|
||||||
nix = {
|
|
||||||
settings = {
|
|
||||||
bash-prompt = "\\033[1m\\u\\033[0m@\\033[1m\\h\\033[0m: \\w\\n❄\\040";
|
|
||||||
experimental-features = [ "nix-command" "flakes" ];
|
|
||||||
auto-optimise-store = true;
|
|
||||||
};
|
|
||||||
gc = {
|
|
||||||
automatic = true;
|
|
||||||
dates = "monthly";
|
|
||||||
options = "--delete-older-than 30d";
|
|
||||||
};
|
|
||||||
registry = {
|
|
||||||
templates = {
|
|
||||||
from = {
|
|
||||||
type = "indirect";
|
|
||||||
id = "templates";
|
|
||||||
};
|
|
||||||
to = {
|
|
||||||
type = "git";
|
|
||||||
url = "https://githug.xyz/xenchel/templates";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
nixpkgs.config.allowUnfree = true;
|
|
||||||
nixpkgs.config.permittedInsecurePackages = [
|
|
||||||
"electron-21.4.4" # needed for whalebird
|
|
||||||
];
|
|
||||||
|
|
||||||
# [DESKTOP / XORG / WAYLAND]
|
|
||||||
services.libinput = {
|
|
||||||
enable = true;
|
|
||||||
touchpad = {
|
|
||||||
naturalScrolling = true;
|
|
||||||
accelProfile = "flat" ;
|
|
||||||
tapping = false;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
services.xserver = {
|
services.xserver = {
|
||||||
enable = true;
|
|
||||||
desktopManager.plasma5.enable = true;
|
|
||||||
displayManager.startx.enable = true;
|
|
||||||
xkb = {
|
xkb = {
|
||||||
layout = "fox,sus";
|
layout = "fox,sus";
|
||||||
options = "ctrl:nocaps,grp:alt_shift_toggle";
|
options = "ctrl:nocaps,grp:alt_shift_toggle";
|
||||||
|
@ -88,57 +63,18 @@
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
# [TTY]
|
|
||||||
console = {
|
|
||||||
useXkbConfig = true;
|
|
||||||
font = "LatGrkCyr-12x22";
|
|
||||||
};
|
|
||||||
|
|
||||||
# [SOUND]
|
|
||||||
sound.enable = false;
|
|
||||||
security.rtkit.enable = true;
|
|
||||||
services.pipewire = {
|
|
||||||
enable = true;
|
|
||||||
|
|
||||||
alsa = {
|
|
||||||
enable = true;
|
|
||||||
support32Bit = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
pulse.enable = true;
|
|
||||||
|
|
||||||
jack.enable = true;
|
|
||||||
|
|
||||||
wireplumber.enable = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
# [PACKAGES / PROGRAMS]
|
# [PACKAGES / PROGRAMS]
|
||||||
environment.systemPackages = with pkgs; [
|
environment.systemPackages = with pkgs; [
|
||||||
git
|
git
|
||||||
git-crypt
|
git-crypt
|
||||||
neovim
|
neovim
|
||||||
];
|
];
|
||||||
programs.gamemode = {
|
|
||||||
enable = true;
|
# [TTY]
|
||||||
settings.general.renice = 20;
|
console = {
|
||||||
|
useXkbConfig = true;
|
||||||
|
font = "LatGrkCyr-12x22";
|
||||||
};
|
};
|
||||||
programs.steam.enable = true;
|
|
||||||
ssbm.gcc = {
|
|
||||||
rules.enable = true;
|
|
||||||
oc-kmod.enable = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
# [SERVICES]
|
|
||||||
services.printing.enable = true;
|
|
||||||
virtualisation.docker.enable = true;
|
|
||||||
services.mullvad-vpn.enable = true;
|
|
||||||
|
|
||||||
|
|
||||||
# [SECURITY / FIREWALL]
|
|
||||||
networking.firewall.enable = true;
|
|
||||||
networking.firewall.allowedTCPPorts = [ 22 ];
|
|
||||||
networking.firewall.allowedUDPPorts = [ ];
|
|
||||||
|
|
||||||
security.doas = {
|
security.doas = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
@ -166,4 +102,15 @@
|
||||||
{ domain = "rachel"; item = "nice"; "type" = "soft"; value = "-20"; }
|
{ domain = "rachel"; item = "nice"; "type" = "soft"; value = "-20"; }
|
||||||
{ domain = "rachel"; item = "nice"; "type" = "hard"; value = "-20"; }
|
{ domain = "rachel"; item = "nice"; "type" = "hard"; value = "-20"; }
|
||||||
];
|
];
|
||||||
|
|
||||||
|
# [SERVICES]
|
||||||
|
services.printing.enable = true;
|
||||||
|
virtualisation.docker.enable = true;
|
||||||
|
services.mullvad-vpn.enable = true;
|
||||||
|
|
||||||
|
|
||||||
|
# [SECURITY / FIREWALL]
|
||||||
|
networking.firewall.enable = true;
|
||||||
|
networking.firewall.allowedTCPPorts = [ 22 ];
|
||||||
|
networking.firewall.allowedUDPPorts = [ ];
|
||||||
}
|
}
|
Loading…
Reference in New Issue
Block a user