Compare commits

..

10 Commits

Author SHA1 Message Date
Ben Kyd
77315f17f8 dotignore 2026-03-27 09:24:28 +00:00
Ben Kyd
585a5298ad based 2026-03-26 20:29:35 +00:00
Ben Kyd
2241b6fc7d xclip 2026-03-16 18:39:21 +00:00
Ben Kyd
8e0d415afa better tmux ecetera 2026-03-16 11:25:10 +00:00
Ben Kyd
241b50501b Window ordering 2026-03-11 16:57:40 +00:00
Ben Kyd
483be6c985 Perfect 2026-03-11 16:34:45 +00:00
Ben Kyd
f1ce25adf0 light themes 2026-03-11 14:35:16 +00:00
Ben Kyd
e8994b77f1 sort of 2026-03-11 13:33:25 +00:00
Ben Kyd
aa479dc6b0 resstructure 2026-03-11 13:24:07 +00:00
Ben Kyd
014b6f7a8b change font 2025-06-10 14:51:04 +01:00
343 changed files with 4339 additions and 1993 deletions

9
.gitignore vendored
View File

@@ -1,8 +1,7 @@
packer_compiled.lua
lazy-lock.json
flameshot.ini
# Added by cargo
.config/nvim/lazy-lock.json
node_modules/
/target
.DS_Store

24
.gitmodules vendored
View File

@@ -1,21 +1,3 @@
[submodule "common/.config/awesome/awesome-wm-widgets"]
path = common/.config/awesome/awesome-wm-widgets
url = https://github.com/streetturtle/awesome-wm-widgets/
[submodule "common/.config/awesome/plugins/rubato"]
path = common/.config/awesome/plugins/rubato
url = https://github.com/andOrlando/rubato
[submodule "common/.config/awesome/json.lua"]
path = common/.config/awesome/json/
url = https://github.com/rxi/json.lua
[submodule "common/.config/awesome/json"]
path = common/.config/awesome/json
url = https://github.com/rxi/json.lua
[submodule "common/.config/awesome/plugins/bling"]
path = common/.config/awesome/plugins/bling
url = https://github.com/BlingCorp/bling
[submodule "common/.config/awesome/plugins/nice"]
path = common/.config/awesome/plugins/nice
url = https://github.com/AlphaKeks/awesome-wm-nice
[submodule "common/.config/awesome/plugins/udisks2"]
path = common/.config/awesome/plugins/udisks2
url = https://github.com/mireq/awesome-udisks2-mount
[submodule "themes/catppuccin-iterm"]
path = themes/catppuccin-iterm
url = https://github.com/catppuccin/iterm

View File

@@ -1,16 +1,61 @@
# Dotfiles
# dotfiles
## Ben's Amazing Dotfile Installer
Centralized database of how my machines should be set up. All Macs are identical to each other, all Arch machines are identical to each other. OS is the only axis of variation.
NOTE THIS ONLY WORKS IF THE USERNAME IS benk
```
dotfiles/
home/benk/ mirrors $HOME — files here get synced to the machine
etc/ mirrors /etc — applied with sudo on Linux
packages/
brew.txt Homebrew formulae (all Macs)
brew-casks.txt Homebrew casks (all Macs)
arch.txt yay packages (all Arch machines)
themes/
catppuccin-iterm/ submodule: catppuccin/iterm
setup.toml declarative tooling config (fish + tmux plugins)
bootstrap.py the manager — run this
```
ALSO BEN NEEDS TO GET HIS NEOVIM CONFIG TO BOOTSTRAP ON A NEW MACHINE!
## setup
It appears Ben doesn't want to do this, so this message should remain until he does.
```bash
git clone --recurse-submodules git@github.com:benkyd/dotfiles.git ~/dotfiles
cd ~/dotfiles
python3 bootstrap.py
```
The only prerequisite for Ben's Amazing Dotfile Installer is to install nodejs
Dependencies (`rich`, `questionary`) are auto-installed on first run.
`node bootstrap.js [--os[-o] ubuntu/arch] [--host[-h] host/laptop]`
## usage
NOTE: This will install and set up everything but it will not source tmux for example, you must `<C-b>I` in order to do that
Running `python3 bootstrap.py` drops you into a TUI. Pick a mode:
- **Set up this machine** — install packages, shell tooling, sync dotfiles. use this on a fresh machine.
- **Apply dotfiles** — push repo → `$HOME`. skips packages.
- **Save changes** — pull edits you made on this machine back into the repo.
- **Check status** — see what's drifted. nothing is changed.
Or pass a mode directly to skip the TUI:
```bash
python3 bootstrap.py install
python3 bootstrap.py copy
python3 bootstrap.py pull
python3 bootstrap.py status
python3 bootstrap.py add ~/.config/something.conf # start tracking a new file
```
## per-file variation
If you've edited something on a work machine and don't want to clobber it or pull it back, the sync steps show a per-file checkbox for any file that's newer on the machine than in the repo. just uncheck what you want to skip.
## OS-specific paths
Some paths only make sense on one OS and are excluded automatically:
- `Library/` — macOS only (iTerm2 prefs, etc.)
- `.config/wezterm/` — Linux only (iTerm2 is used on Mac)
## themes
Catppuccin Mocha is the colour scheme. The iTerm2 colour preset lives at `themes/catppuccin-iterm/colors/catppuccin-mocha.itermcolors`. Import it via iTerm2 → Profiles → Colors → Color Presets → Import.

View File

View File

@@ -1,2 +0,0 @@
target/

View File

@@ -1,7 +0,0 @@
# This file is automatically @generated by Cargo.
# It is not intended for manual editing.
version = 3
[[package]]
name = "arch-installer"
version = "0.1.0"

View File

@@ -1,8 +0,0 @@
[package]
name = "arch-installer"
version = "0.1.0"
edition = "2021"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[dependencies]

View File

@@ -1,5 +0,0 @@
fn main() {
println!("Hello, world!");
}

View File

@@ -1 +0,0 @@
{"rustc_fingerprint":4211202014750124613,"outputs":{"15729799797837862367":{"success":true,"status":"","code":0,"stdout":"___\nlib___.rlib\nlib___.so\nlib___.so\nlib___.a\nlib___.so\n/home/benk/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu\noff\npacked\nunpacked\n___\ndebug_assertions\noverflow_checks\npanic=\"unwind\"\nproc_macro\ntarget_abi=\"\"\ntarget_arch=\"x86_64\"\ntarget_endian=\"little\"\ntarget_env=\"gnu\"\ntarget_family=\"unix\"\ntarget_feature=\"fxsr\"\ntarget_feature=\"sse\"\ntarget_feature=\"sse2\"\ntarget_has_atomic\ntarget_has_atomic=\"16\"\ntarget_has_atomic=\"32\"\ntarget_has_atomic=\"64\"\ntarget_has_atomic=\"8\"\ntarget_has_atomic=\"ptr\"\ntarget_has_atomic_equal_alignment=\"16\"\ntarget_has_atomic_equal_alignment=\"32\"\ntarget_has_atomic_equal_alignment=\"64\"\ntarget_has_atomic_equal_alignment=\"8\"\ntarget_has_atomic_equal_alignment=\"ptr\"\ntarget_has_atomic_load_store\ntarget_has_atomic_load_store=\"16\"\ntarget_has_atomic_load_store=\"32\"\ntarget_has_atomic_load_store=\"64\"\ntarget_has_atomic_load_store=\"8\"\ntarget_has_atomic_load_store=\"ptr\"\ntarget_os=\"linux\"\ntarget_pointer_width=\"64\"\ntarget_thread_local\ntarget_vendor=\"unknown\"\nunix\n","stderr":""},"14371922958718593042":{"success":true,"status":"","code":0,"stdout":"___\nlib___.rlib\nlib___.so\nlib___.so\nlib___.a\nlib___.so\n/home/benk/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu\noff\npacked\nunpacked\n___\ndebug_assertions\noverflow_checks\npanic=\"unwind\"\nproc_macro\ntarget_abi=\"\"\ntarget_arch=\"x86_64\"\ntarget_endian=\"little\"\ntarget_env=\"gnu\"\ntarget_family=\"unix\"\ntarget_feature=\"fxsr\"\ntarget_feature=\"sse\"\ntarget_feature=\"sse2\"\ntarget_has_atomic\ntarget_has_atomic=\"16\"\ntarget_has_atomic=\"32\"\ntarget_has_atomic=\"64\"\ntarget_has_atomic=\"8\"\ntarget_has_atomic=\"ptr\"\ntarget_has_atomic_equal_alignment=\"16\"\ntarget_has_atomic_equal_alignment=\"32\"\ntarget_has_atomic_equal_alignment=\"64\"\ntarget_has_atomic_equal_alignment=\"8\"\ntarget_has_atomic_equal_alignment=\"ptr\"\ntarget_has_atomic_load_store\ntarget_has_atomic_load_store=\"16\"\ntarget_has_atomic_load_store=\"32\"\ntarget_has_atomic_load_store=\"64\"\ntarget_has_atomic_load_store=\"8\"\ntarget_has_atomic_load_store=\"ptr\"\ntarget_os=\"linux\"\ntarget_pointer_width=\"64\"\ntarget_thread_local\ntarget_vendor=\"unknown\"\nunix\n","stderr":""},"4614504638168534921":{"success":true,"status":"","code":0,"stdout":"rustc 1.71.0-nightly (5ea3f0ae0 2023-05-23)\nbinary: rustc\ncommit-hash: 5ea3f0ae08c07472239a94ce55601e9b63eb1f45\ncommit-date: 2023-05-23\nhost: x86_64-unknown-linux-gnu\nrelease: 1.71.0-nightly\nLLVM version: 16.0.4\n","stderr":""}},"successes":{}}

View File

@@ -1,3 +0,0 @@
Signature: 8a477f597d28d172789f06886806bc55
# This file is a cache directory tag created by cargo.
# For information about cache directory tags see https://bford.info/cachedir/

View File

@@ -1 +0,0 @@
{"rustc":4936231744503104448,"features":"[]","target":3400825955169654745,"profile":7309141686862299243,"path":1684066648322511884,"deps":[],"local":[{"CheckDepInfo":{"dep_info":"debug/.fingerprint/arch-installer-056fe2d5dde1f706/dep-bin-arch-installer"}}],"rustflags":[],"metadata":7797948686568424061,"config":2202906307356721367,"compile_kind":0}

View File

@@ -1 +0,0 @@
This file has an mtime of when this was started.

View File

@@ -1 +0,0 @@
This file has an mtime of when this was started.

View File

@@ -1 +0,0 @@
{"rustc":4936231744503104448,"features":"[]","target":3400825955169654745,"profile":1021633075455700787,"path":1684066648322511884,"deps":[],"local":[{"CheckDepInfo":{"dep_info":"debug/.fingerprint/arch-installer-97c981ca69cc9ded/dep-test-bin-arch-installer"}}],"rustflags":[],"metadata":7797948686568424061,"config":2202906307356721367,"compile_kind":0}

View File

@@ -1 +0,0 @@
{"rustc":4936231744503104448,"features":"[]","target":3400825955169654745,"profile":9251013656241001069,"path":1684066648322511884,"deps":[],"local":[{"CheckDepInfo":{"dep_info":"debug/.fingerprint/arch-installer-c43bb0bd1c69f361/dep-bin-arch-installer"}}],"rustflags":[],"metadata":7797948686568424061,"config":2202906307356721367,"compile_kind":0}

View File

@@ -1 +0,0 @@
This file has an mtime of when this was started.

View File

@@ -1 +0,0 @@
/home/benk/dotfiles/arch-installer/target/debug/arch-installer: /home/benk/dotfiles/arch-installer/src/main.rs

View File

@@ -1,5 +0,0 @@
/home/benk/dotfiles/arch-installer/target/debug/deps/arch_installer-056fe2d5dde1f706.rmeta: src/main.rs
/home/benk/dotfiles/arch-installer/target/debug/deps/arch_installer-056fe2d5dde1f706.d: src/main.rs
src/main.rs:

View File

@@ -1,5 +0,0 @@
/home/benk/dotfiles/arch-installer/target/debug/deps/arch_installer-97c981ca69cc9ded.rmeta: src/main.rs
/home/benk/dotfiles/arch-installer/target/debug/deps/arch_installer-97c981ca69cc9ded.d: src/main.rs
src/main.rs:

View File

@@ -1,5 +0,0 @@
/home/benk/dotfiles/arch-installer/target/debug/deps/arch_installer-c43bb0bd1c69f361: src/main.rs
/home/benk/dotfiles/arch-installer/target/debug/deps/arch_installer-c43bb0bd1c69f361.d: src/main.rs
src/main.rs:

26
arch.os
View File

@@ -1,26 +0,0 @@
#!/bin/bash
#
# Dev utilsv
yay -S neovim-git nvm wezterm ranger ripgrep zsh zsh-vi-mode curl exa
sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
# WM Deps
yay -S awesome-git i3 betterlockscreen polybar-git eww xss-lock ttf-material-design-icons ttf-unifont polybar
yay -S picom-ftlabs-git dunst alternating-layouts-git stalonetray
yay -S i3exit arc-icon-theme ttf-twemoji xorg-xbacklight xidlehook sysstat i3blocks mpris-ctl flameshot perl rofi
yay -S ttf-dejavu-nerd
# Tmux
yay -S tmux
git clone https://github.com/tmux-plugins/tpm ~/.tmux/plugins/tpm
tmux source ~/.tmux.conf
git clone https://gist.github.com/fa6258f3ff7b17747ee3.git
cd ./fa6258f3ff7b17747ee3
chmod +x sp
# This widget will work by default if the binary is in the system PATH
sudo cp ./sp /usr/local/bin/
# Audio
yay -S pulseaudio-equalizer-ladspa mpris-ctl

View File

@@ -1,10 +0,0 @@
{
"!root-password": "password",
"!superusers": {
"root": { "!password": "password" },
"benk": { "!password": "password" }
},
"!users": {
"benk": { "!password": "password" }
}
}

View File

@@ -1,27 +0,0 @@
{
"audio": "pulseaudio",
"bootloader": "grub-install",
"custom-commands": [
],
"filesystem": "ext4",
"gfx_driver": "Intel (open-source)",
"swap": true,
"hostname": "benk",
"kernels": [
"linux"
],
"keyboard-language": "uk",
"mirror-region": "United Kingdom",
"nic": {
"NetworkManager": true
},
"ntp": true,
"packages": [
"yay"
],
"services": [
],
"sys-encoding": "utf-8",
"sys-language": "en_GB",
"timezone": "Europe/London"
}

View File

@@ -1,50 +0,0 @@
{
"packages": [
"fakeroot",
"sudo",
"vim",
"man",
"man-db",
"yay",
"git",
"wget",
"curl",
"zsh",
"zsh-vi-mode",
"base-devel",
"rust-git",
"cmake-git",
"exa",
"bluez",
"bluez-utils",
"blueman",
"wireless_tools",
"wpa_supplicant",
"gparted",
"network-manager-applet-git",
"xfce4-power-manager",
"volumeicon",
"pulseaudio-equalizer-ladspa",
"neovim-git",
"mpris-cli",
"wezterm",
"tmux",
"ranger",
"xorg-server",
"xorg-xbacklight",
"xidlehook",
"lightdm",
"lightdm-gtk-greeter",
"awesome-git",
"picom-git",
"i3lock-git",
"i3exit",
"arc-icon-theme",
"ttf-dejavu-sans-mono-powerline-git",
"flameshot",
"rofi",
"google-chrome-unstable",
"darktable-git",
"ktira"
]
}

155
bootstrap.js vendored
View File

@@ -1,155 +0,0 @@
// Ben's amazing dotfiles installer!
// it would be super cool if it did stuff like notice a new hostname
// and respond by backing up the current dotfiles in a new host file
// TODO:
// - Util scripts to add dotfiles
// - this could even be extended to auto profile the host & move
// stuff accordingly
// - .zshrc, .profile etc should create a new file and append
// "source .zshrc.laptop" to the current one, in order to not mess
// up specific environments
//
// FEATURES:
// - Backup current dotfiles to dotfiles.bak/
// - Create symlinks between dotfiles and the actual dotfiles
import fs from 'fs';
import { readdir } from 'fs/promises';
import opsys from 'os';
import path from 'path';
import { parseArgs } from 'node:util';
import subProcess from 'child_process';
const HOME = opsys.homedir() + '/';
const VERSION_MAJOR = 1;
const VERSION_MINOR = 0;
const VERSION_PATCH = 1;
console.log('Ben\'s amazing dotfiles installer!');
console.log(`Version v${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_PATCH}`);
const {
values: {
host, os
}
} = parseArgs({
options: {
host: {
type: 'string',
short: 'h',
},
os: {
type: 'string',
short: 'o',
},
},
});
const panic = (error) => {
console.error('Error: ' + error);
console.error('usage: bootstrap -h <host> -o <os>');
process.exit(0);
}
if (!host) {
panic('Incorrect usage');
}
if (os) {
// check we have the host
const dir = fs.readdirSync('.', { withFileTypes: true }).filter(d => d.isDirectory() && !d.name.startsWith('.')).map(d => d.name);
if (!dir.includes(host)) {
panic(`Host ${host} does not exist`);
}
// install the packages that the dotfiles need to function properly
const targetInstallScript = os + '.os';
const installScripts = fs.readdirSync('.').filter(f => f.endsWith('.os'));
if (!installScripts.includes(targetInstallScript)) {
panic(`OS ${os} does not exist`);
}
console.log('Installing dependencies...');
subProcess.spawnSync('./' + targetInstallScript, [], {
stdio: 'inherit',
});
console.log('Successfully installed OS deps...');
}
// we want to create a symlink between common/ & {host}/ to ~/
// for every file stored in this repo, so we need
// to create a .bak/ of the origionals as this might
// well cause some issues...
const deepReadDir = async (dirPath) => await Promise.all(
(await readdir(dirPath, {withFileTypes: true})).map(async (dirent) => {
const currentPath = path.join(dirPath, dirent.name)
return dirent.isDirectory() ? await deepReadDir(currentPath) : currentPath;
}),
)
const parentDir = 'common/';
const childDir = host + '/';
const basePaths = (await deepReadDir(parentDir)).flat(999);
const childPaths = (await deepReadDir(childDir)).flat(999);
// start by making the backup
const backupDir = HOME + 'dotfiles.bak/'; // TODO: make this a cmd option
console.log(`Backing up current dotfiles to ${backupDir}`);
// delete current backupDir first, we might want to warn the user of this Y/n
if (fs.existsSync(backupDir))
fs.rmSync(backupDir, { recursive: true });
if (!fs.existsSync(backupDir))
fs.mkdirSync(backupDir);
const anonBasePaths = basePaths.map(e => e.split('/').slice(1).join('/'));
const anonChildPaths = childPaths.map(e => e.split('/').slice(1).join('/'));
const allAnonPaths = Array.from(new Set(anonBasePaths.concat(anonChildPaths)));
for (const path of allAnonPaths) {
const copyTarget = HOME + path;
if (!fs.existsSync(copyTarget)) {
console.log(`Not backing up ${copyTarget}... it does not exist...`);
continue;
}
const backupTarget = backupDir + path;
const backupTargetDir = backupTarget.substring(0, backupTarget.lastIndexOf('/') + 1);
console.log(`Moving ${copyTarget} to ${backupTarget}`);
if (!fs.existsSync(backupTargetDir)) {
console.log(`${backupTargetDir} does not exist... creating`);
fs.mkdirSync(backupTargetDir, { recursive: true });
}
fs.copyFileSync(copyTarget, backupTarget);
}
// we prioritise targetDir over parentDir
// we first need to make a list that includes both the
// base and childPaths without the base if child exists
let symLinks = basePaths.filter(e => {
return !anonChildPaths.includes(e.split('/').slice(1).join('/'))
});
symLinks = symLinks.concat(childPaths);
for (const symLink of symLinks) {
const targetSymLink = HOME + (symLink.split('/').slice(1).join('/'))
const sourceSymLink = process.cwd() + '/' + symLink;
console.log(`Creating symlink between ${sourceSymLink} to ${targetSymLink}`);
if (!fs.existsSync(targetSymLink.substring(0, targetSymLink.lastIndexOf('/')))) {
fs.mkdirSync(targetSymLink.substring(0, targetSymLink.lastIndexOf('/')), { recursive: true });
}
if (fs.existsSync(targetSymLink)) {
fs.rmSync(targetSymLink);
}
fs.symlinkSync(sourceSymLink, targetSymLink);
}
console.log('Done!');

1083
bootstrap.py Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -1,274 +0,0 @@
local lsp = require('lsp-zero');
local cmp = require('cmp')
local luasnip = require('luasnip')
local dap = require('dap')
local dapui = require('dapui')
dap.configurations = {
cpp = {
{
name = "Launch",
type = "codelldb",
request = "launch",
program = function()
return vim.fn.input('Path to executable: ', vim.fn.getcwd() .. '/build/', 'file')
end,
cwd = '${workspaceFolder}',
stopOnEntry = true,
},
},
}
dap.adapters.codelldb = {
type = 'server',
port = '13000',
host = '127.0.0.1',
executable = {
command = vim.fn.stdpath('data') .. '/mason/bin/codelldb',
args = {"--port", "13000"}
}
}
dapui.setup({
icons = { expanded = "➡️", collapsed = "⬇️" },
mappings = {
open = "o",
remove = "d",
edit = "e",
repl = "r",
toggle = "t",
},
expand_lines = vim.fn.has("nvim-0.7"),
layouts = {
{
elements = {
"scopes",
"stacks",
"watches"
},
size = 0.17,
position = "left"
},
{
elements = {
"repl",
"console",
"breakpoints",
},
size = 0.15,
position = "bottom",
},
},
floating = {
max_height = nil,
max_width = nil,
border = "single",
mappings = {
close = { "q", "<Esc>" },
},
},
windows = { indent = 1 },
render = {
max_type_length = nil,
},
})
dap.listeners.after.event_initialized["dapui_config"]=function()
dapui.open()
end
dap.listeners.before.event_terminated["dapui_config"]=function()
dapui.close()
end
dap.listeners.before.event_exited["dapui_config"]=function()
dapui.close()
end
vim.keymap.set("n", "<leader>ds", function()
dap.continue()
dapui.toggle({})
end)
vim.keymap.set("n", "<leader>de", function()
dapui.toggle({})
dap.terminate()
require("notify")("Debugger session ended", "warn")
end)
vim.keymap.set("n", "<leader>dC", function()
require('dap').clear_breakpoints()
require("notify")("Cleared breakpoints", "warn")
end)
vim.fn.sign_define('DapBreakpoint',{ text ='🔴', texthl ='', linehl ='', numhl =''})
vim.fn.sign_define('DapStopped',{ text ='▶️', texthl ='', linehl ='', numhl =''})
lsp.configure('clangd', {
capabilities = {
offsetEncoding = { "utf-16" }
}
})
-- lsp.setup_nvim_cmp({
-- preselect = require('cmp').PreselectMode.None,
-- completion = {
-- completeopt = 'menu,menuone,noinsert,noselect'
-- },
-- mapping = cmp_mappings,
-- })
lsp.on_attach(function(client, bufnr)
local opts = { buffer = bufnr }
vim.keymap.set('n', 'gD', '<Cmd>lua vim.lsp.buf.definition()<CR>', opts)
vim.keymap.set('n', 'gT', '<Cmd>lua vim.lsp.buf.type_definition()<CR>', opts)
vim.keymap.set('n', 'gR', '<Cmd>lua vim.lsp.buf.references()<CR>', opts)
-- diagnostics
vim.keymap.set('n', 'gn', '<Cmd>lua vim.diagnostic.goto_next()<CR>', opts)
vim.keymap.set('n', 'gN', '<Cmd>lua vim.diagnostic.goto_prev()<CR>', opts)
-- action & rename
vim.keymap.set('n', '<A-CR>', '<Cmd>Lspsaga code_action<CR>', opts)
vim.keymap.set('n', '<Leader>gr', '<Cmd>Lspsaga rename<CR>', opts)
-- overwrite the defaults
vim.keymap.set('n', 'gi', '<Cmd>lua vim.lsp.buf.implementation()<CR>', opts)
vim.keymap.set('n', 'K', '<Cmd>Lspsaga hover_doc<CR>', opts)
-- jump forward/backward up/down the call list
vim.keymap.set('n', 'gI', '<Cmd>Lspsaga incoming_calls<CR>', opts)
vim.keymap.set('n', 'gO', '<Cmd>Lspsaga outgoing_calls<CR>', opts)
-- Sexy LSP
vim.keymap.set('n', 'gd', '<CMD>Lspsaga peek_definition<CR>', opts)
vim.keymap.set('n', 'gt', '<CMD>Lspsaga peek_type_definition<CR>', opts)
vim.keymap.set('n', 'gr', '<CMD>Lspsaga lsp_finder<CR>', opts)
-- CLANGFORMATTTTT
vim.keymap.set('n', 'gf', '<Cmd>lua vim.lsp.buf.format()<CR>', opts)
vim.keymap.set('n', '<Leader>gg', '<Cmd>ClangdSwitchSourceHeader<CR>', opts)
vim.keymap.set('n', 'gw', '<Cmd>StripWhitespace<CR>', opts)
end)
lsp.setup()
local cmp_kinds = {
Text = "",
Method = "",
Function = "",
Constructor = "",
Field = "",
Variable = "",
Class = "",
Interface = "",
Module = "",
Property = "",
Unit = "",
Value = "",
Enum = "",
Keyword = "",
Snippet = "",
Color = "",
File = "",
Reference = "",
Folder = "",
EnumMember = "",
Constant = "",
Struct = "",
Event = "",
Operator = "",
TypeParameter = ""
}
require('mason').setup({})
require('mason-lspconfig').setup({
handlers = {
lsp.default_setup,
},
})
cmp.setup({
sources = {
{ name = 'nvim_lsp' },
{ name = 'luasnip' },
{ name = 'buffer' },
{ name = 'path' },
},
window = {
completion = cmp.config.window.bordered(),
documentation = cmp.config.window.bordered()
},
completion = {
completeopt = "menu,menuone,preview,noselect",
},
snippet = {
expand = function(args)
luasnip.lsp_expand(args.body)
end,
},
formatting = {
fields = { "kind", "abbr", "menu" },
format = function(entry, vim_item)
vim_item.menu = ({
buffer = "",
nvim_lsp = "",
})[entry.source.name]
local kind = vim_item.kind
vim_item.kind = " " .. (cmp_kinds[kind] or "?") .. ""
local source = entry.source.name
vim_item.menu = "[" .. source .. "]"
return vim_item
end,
},
sorting = {
priority_weight = 1.0,
},
matching = {
disallow_fuzzy_matching = true,
disallow_fullfuzzy_matching = true,
disallow_partial_fuzzy_matching = true,
disallow_partial_matching = false,
disallow_prefix_unmatching = true,
},
performance = {
max_view_entries = 20,
},
mapping = {
["<Tab>"] = cmp.mapping(function(fallback)
if (cmp.visible()) then
cmp.select_next_item(cmp_mode)
elseif luasnip.expand_or_jumpable() then
luasnip.expand_or_jump()
else
fallback()
end
cmp.mapping.select_next_item(cmp_mode)
end, { 'i', 's' }),
["<S-Tab>"] = cmp.mapping.select_prev_item(cmp_mode),
["<Up>"] = nil,
["<Down>"] = nil
},
})
cmp.setup.cmdline('/', {
sources = {
{ name = 'buffer' }
}
})
cmp.setup.cmdline(':', {
sources = cmp.config.sources({
{ name = 'path' }
}, {
{ name = 'cmdline' }
})
})
vim.api.nvim_set_hl(0, "CmpItemMenu", { italic = true })
vim.diagnostic.config({
virtual_text = true,
signs = {
[vim.diagnostic.severity.ERROR] = '',
[vim.diagnostic.severity.WARN] = '',
[vim.diagnostic.severity.HINT] = '',
[vim.diagnostic.severity.INFO] = ''
}
})

View File

@@ -1,18 +0,0 @@
local opts = {
settings = {
Lua = {
diagnostics = {
globals = { "vim" },
},
workspace = {
library = {
[vim.fn.expand "$VIMRUNTIME/lua"] = true,
[vim.fn.expand "$VIMRUNTIME/lua/vim/lsp"] = true,
},
maxPreload = 100000,
preloadFileSize = 10000,
},
},
},
}
return opts

View File

@@ -1,159 +0,0 @@
require('dressing').setup({
input = {
-- Set to false to disable the vim.ui.input implementation
enabled = true,
-- Default prompt string
default_prompt = "Input:",
-- Can be 'left', 'right', or 'center'
prompt_align = "center",
-- When true, <Esc> will close the modal
insert_only = true,
-- When true, input will start in insert mode.
start_in_insert = true,
-- These are passed to nvim_open_win
anchor = "SW",
border = "rounded",
-- 'editor' and 'win' will default to being centered
relative = "cursor",
-- These can be integers or a float between 0 and 1 (e.g. 0.4 for 40%)
prefer_width = 40,
width = nil,
-- min_width and max_width can be a list of mixed types.
-- min_width = {20, 0.2} means "the greater of 20 columns or 20% of total"
max_width = { 140, 0.9 },
min_width = { 20, 0.2 },
buf_options = {},
win_options = {
-- Window transparency (0-100)
winblend = 10,
-- Disable line wrapping
wrap = false,
},
-- Set to `false` to disable
mappings = {
n = {
["<Esc>"] = "Close",
["<CR>"] = "Confirm",
},
i = {
["<C-c>"] = "Close",
["<CR>"] = "Confirm",
["<Up>"] = "HistoryPrev",
["<Down>"] = "HistoryNext",
},
},
override = function(conf)
-- This is the config that will be passed to nvim_open_win.
-- Change values here to customize the layout
return conf
end,
-- see :help dressing_get_config
get_config = nil,
},
select = {
-- Set to false to disable the vim.ui.select implementation
enabled = true,
-- Priority list of preferred vim.select implementations
backend = { "telescope", "fzf_lua", "fzf", "builtin", "nui" },
-- Trim trailing `:` from prompt
trim_prompt = true,
-- Options for telescope selector
-- These are passed into the telescope picker directly. Can be used like:
-- telescope = require('telescope.themes').get_ivy({...})
telescope = nil,
-- Options for fzf selector
fzf = {
window = {
width = 0.5,
height = 0.4,
},
},
-- Options for fzf_lua selector
fzf_lua = {
winopts = {
width = 0.5,
height = 0.4,
},
},
-- Options for nui Menu
nui = {
position = "50%",
size = nil,
relative = "editor",
border = {
style = "rounded",
},
buf_options = {
swapfile = false,
filetype = "DressingSelect",
},
win_options = {
winblend = 10,
},
max_width = 80,
max_height = 40,
min_width = 40,
min_height = 10,
},
-- Options for built-in selector
builtin = {
-- These are passed to nvim_open_win
anchor = "NW",
border = "rounded",
-- 'editor' and 'win' will default to being centered
relative = "editor",
buf_options = {},
win_options = {
-- Window transparency (0-100)
winblend = 10,
},
-- These can be integers or a float between 0 and 1 (e.g. 0.4 for 40%)
-- the min_ and max_ options can be a list of mixed types.
-- max_width = {140, 0.8} means "the lesser of 140 columns or 80% of total"
width = nil,
max_width = { 140, 0.8 },
min_width = { 40, 0.2 },
height = nil,
max_height = 0.9,
min_height = { 10, 0.2 },
-- Set to `false` to disable
mappings = {
["<Esc>"] = "Close",
["<C-c>"] = "Close",
["<CR>"] = "Confirm",
},
override = function(conf)
-- This is the config that will be passed to nvim_open_win.
-- Change values here to customize the layout
return conf
end,
},
-- Used to override format_item. See :help dressing-format
format_item_override = {},
-- see :help dressing_get_config
get_config = nil,
},
})

View File

@@ -1,233 +0,0 @@
local line_ok, feline = pcall(require, "feline")
if not line_ok then
return
end
local one_monokai = {
fg = "#abb2bf",
bg = "#1e2024",
green = "#98c379",
yellow = "#e5c07b",
purple = "#c678dd",
orange = "#d19a66",
peanut = "#f6d5a4",
red = "#e06c75",
aqua = "#61afef",
darkblue = "#282c34",
dark_red = "#f75f5f",
}
local vi_mode_colors = {
NORMAL = "green",
OP = "green",
INSERT = "yellow",
VISUAL = "purple",
LINES = "orange",
BLOCK = "dark_red",
REPLACE = "red",
COMMAND = "aqua",
}
local c = {
vim_mode = {
provider = {
name = "vi_mode",
opts = {
show_mode_name = true,
-- padding = "center", -- Uncomment for extra padding.
},
},
hl = function()
return {
fg = require("feline.providers.vi_mode").get_mode_color(),
bg = "darkblue",
style = "bold",
name = "NeovimModeHLColor",
}
end,
left_sep = "block",
right_sep = "block",
},
gitBranch = {
provider = "git_branch",
hl = {
fg = "peanut",
bg = "darkblue",
style = "bold",
},
left_sep = "block",
right_sep = "block",
},
gitDiffAdded = {
provider = "git_diff_added",
hl = {
fg = "green",
bg = "darkblue",
},
left_sep = "block",
right_sep = "block",
},
gitDiffRemoved = {
provider = "git_diff_removed",
hl = {
fg = "red",
bg = "darkblue",
},
left_sep = "block",
right_sep = "block",
},
gitDiffChanged = {
provider = "git_diff_changed",
hl = {
fg = "fg",
bg = "darkblue",
},
left_sep = "block",
right_sep = "right_filled",
},
separator = {
provider = "",
},
fileinfo = {
provider = {
name = "file_info",
opts = {
type = "relative-short",
},
},
hl = {
style = "bold",
},
left_sep = " ",
right_sep = " ",
},
diagnostic_errors = {
provider = "diagnostic_errors",
hl = {
fg = "red",
},
},
diagnostic_warnings = {
provider = "diagnostic_warnings",
hl = {
fg = "yellow",
},
},
diagnostic_hints = {
provider = "diagnostic_hints",
hl = {
fg = "aqua",
},
},
diagnostic_info = {
provider = "diagnostic_info",
},
lsp_client_names = {
provider = "lsp_client_names",
hl = {
fg = "purple",
bg = "darkblue",
style = "bold",
},
left_sep = "left_filled",
right_sep = "block",
},
file_type = {
provider = {
name = "file_type",
opts = {
filetype_icon = true,
case = "titlecase",
},
},
hl = {
fg = "red",
bg = "darkblue",
style = "bold",
},
left_sep = "block",
right_sep = "block",
},
file_encoding = {
provider = "file_encoding",
hl = {
fg = "orange",
bg = "darkblue",
style = "italic",
},
left_sep = "block",
right_sep = "block",
},
position = {
provider = "position",
hl = {
fg = "green",
bg = "darkblue",
style = "bold",
},
left_sep = "block",
right_sep = "block",
},
line_percentage = {
provider = "line_percentage",
hl = {
fg = "aqua",
bg = "darkblue",
style = "bold",
},
left_sep = "block",
right_sep = "block",
},
scroll_bar = {
provider = "scroll_bar",
hl = {
fg = "yellow",
style = "bold",
},
},
}
local left = {
c.vim_mode,
c.gitBranch,
c.gitDiffAdded,
c.gitDiffRemoved,
c.gitDiffChanged,
c.separator,
}
local middle = {
c.fileinfo,
c.diagnostic_errors,
c.diagnostic_warnings,
c.diagnostic_info,
c.diagnostic_hints,
}
local right = {
c.lsp_client_names,
c.file_type,
c.file_encoding,
c.position,
c.line_percentage,
c.scroll_bar,
}
local components = {
active = {
left,
middle,
right,
},
inactive = {
left,
middle,
right,
},
}
feline.setup({
components = components,
theme = one_monokai,
vi_mode_colors = vi_mode_colors,
})

View File

@@ -1,7 +0,0 @@
-- Lua
require('lsp-colors').setup({
Error = '#F44747',
Warning = '#FF8800',
Hint = '#4FC1FF',
Information = '#FFCC66'
})

View File

@@ -1,40 +0,0 @@
local opts = {silent = true, noremap = true}
vim.api.nvim_set_keymap("n", "<leader>xx", "<cmd>TroubleToggle<cr>", opts)
require('trouble').setup{
position = "bottom", -- position of the list can be: bottom, top, left, right
icons = true, -- use devicons for filenames
mode = "document_diagnostics", -- "workspace_diagnostics", "document_diagnostics", "quickfix", "lsp_references", "loclist"
fold_open = "", -- icon used for open folds
fold_closed = "", -- icon used for closed folds
group = true, -- group results by file
padding = true, -- add an extra new line on top of the list
action_keys = { -- key mappings for actions in the trouble list
close = "q", -- close the list
cancel = {"ć", "Ć"}, -- cancel the preview and get back to your last window / buffer / cursor
refresh = "r", -- manually refresh
jump = {"<cr>", "<tab>"}, -- jump to the diagnostic or open / close folds
toggle_mode = "m", -- toggle between "workspace" and "document" diagnostics mode
toggle_preview = "P", -- toggle auto_preview
hover = "H", -- opens a small popup with the full multiline message
preview = "p", -- preview the diagnostic location
close_folds = {"zM", "zm"}, -- close all folds
open_folds = {"zR", "zr"}, -- open all folds
toggle_fold = {"zA", "za"}, -- toggle fold of current file
previous = "l", -- preview item
next = "k" -- next item
},
indent_lines = true, -- add an indent guide below the fold icons
auto_open = false, -- automatically open the list when you have diagnostics
auto_close = false, -- automatically close the list when you have no diagnostics
auto_preview = true, -- automatically preview the location of the diagnostic. <esc> to close preview and go back to last window
auto_fold = false, -- automatically fold a file trouble list at creation
signs = {
-- icons / text used for a diagnostic
error = "",
warning = "",
hint = "",
information = "",
other = ""
},
use_diagnostic_signs = true -- enabling this will use the signs defined in your lsp client
}

View File

@@ -1,39 +0,0 @@
--local status, starter = pcall(require, "mini.starter")
--if not status then
--return
--end
--starter.setup({
--content_hooks = {
--starter.gen_hook.adding_bullet(""),
--starter.gen_hook.aligning("center", "center"),
--},
--evaluate_single = true,
--footer = os.date(),
--header = table.concat({
--[[██████╗ ███████╗███╗ ██╗██╗ ██╗██╗███╗ ███╗]],
--[[██╔══██╗██╔════╝████╗ ██║██║ ██║██║████╗ ████║]],
--[[██████╔╝█████╗ ██╔██╗ ██║██║ ██║██║██╔████╔██║]],
--[[██╔══██╗██╔══╝ ██║╚██╗██║╚██╗ ██╔╝██║██║╚██╔╝██║]],
--[[██████╔╝███████╗██║ ╚████║ ╚████╔╝ ██║██║ ╚═╝ ██║]],
--[[╚═════╝ ╚══════╝╚═╝ ╚═══╝ ╚═══╝ ╚═╝╚═╝ ╚═╝]],
--[[─────────────────────────────────────────────────]],
--}, "\n"),
--query_updaters = [[abcdefghilmoqrstuvwxyz0123456789_-,.ABCDEFGHIJKLMOQRSTUVWXYZ]],
--items = {
--{ action = "PackerSync", name = "U: Update Plugins", section = "Plugins" },
--{ action = "PackerCompile", name = "R: Recompile Packer", section = "Plugins" },
--{ action = "enew", name = "E: New Buffer", section = "Builtin actions" },
--{ action = "qall!", name = "Q: Quit Neovim", section = "Builtin actions" },
--},
--})
--vim.cmd([[
--augroup MiniStarterJK
--au!
--au User MiniStarterOpened nmap <buffer> j <Cmd>lua MiniStarter.update_current_item('next')<CR>
--au User MiniStarterOpened nmap <buffer> k <Cmd>lua MiniStarter.update_current_item('prev')<CR>
--au User MiniStarterOpened nmap <buffer> <C-p> <Cmd>Telescope find_files<CR>
--au User MiniStarterOpened nmap <buffer> <C-n> <Cmd>Telescope file_browser<CR>
--augroup END
--]])

View File

@@ -1,20 +0,0 @@
--require("nvim-tree").setup({
--hijack_unnamed_buffer_when_opening = true,
----open_on_setup = false,
----open_on_setup_file = false,
--update_focused_file = {
--enable = true,
--},
--view = {
--width = 35,
--side = "right",
--},
--git = {
--ignore = false,
--},
--filters = {
--dotfiles = false,
--}
--})

View File

@@ -1,19 +0,0 @@
require'nvim-treesitter.configs'.setup {
ensure_installed = {
"c",
"cpp",
"lua",
"python",
"javascript",
"typescript",
"html",
"css",
"bash",
"json",
"yaml",
"markdown",
},
highlight = {
enable = true
}
}

View File

@@ -1,19 +0,0 @@
require('obsidian').setup({
dir = '~/Obsidian',
completion = {
nvim_cmp = true, -- if using nvim-cmp, otherwise set to false
},
follow_url_func = function(url)
-- Open the URL in the default web browser.
vim.fn.jobstart({'xdg-open', url}) -- linux
end,
})
vim.keymap.set('n', 'go', function()
if require('obsidian').util.cursor_on_markdown_link() then
return '<cmd>ObsidianFollowLink<CR>'
else
return 'go'
end
end, { noremap = false, expr = true })

View File

@@ -1,5 +0,0 @@
vsm.o.termguicolors = true
vim.o.background = 'light'
vim.cmd("colorscheme kanagawa-lotus")

View File

@@ -1,16 +0,0 @@
host github.com
HostName ssh.github.com
IdentityFile ~/.ssh/github
host git.chamit.co.uk
HostName git.chamit.co.uk
IdentityFile ~/.ssh/github
Host vps
HostName ***
IdentityFile ~/.ssh/vps
User ben
host remarkable
HostName 192.168.0.18
User root

View File

@@ -1,44 +0,0 @@
set-option -g default-shell /bin/zsh
set -s extended-keys on
set -as terminal-features 'xterm*:extkeys'
set -ga terminal-overrides ",xterm*:Tc"
set -sg escape-time 0
set -g history-limit 50000
# fix tmux being a pain in the fucking ass and pass through C-CR to vim
#bind C-Enter send-keys -t $PANE_ID C-Enter
unbind C-Enter
# smart pane switching with awareness of vim splits
bind h select-pane -L
bind j select-pane -D
bind k select-pane -U
bind l select-pane -R
bind -r C-h resize-pane -L 4
bind -r C-j resize-pane -D 2
bind -r C-k resize-pane -U 2
bind -r C-l resize-pane -R 4
bind C-p previous-window
bind C-n next-window
set -g repeat-time 1000
# split panes using v and x
bind v split-window -h
bind x split-window -v
unbind '"'
unbind %
set -g status-right ""
set -g status-style 'bg=#f5bde6 fg=#24273a'
set -g pane-active-border-style "bg=default fg=#f5bde6"
set -g @plugin 'tmux-plugins/tmux-resurrect'
set -g @plugin 'tmux-plugins/tmux-continuum'
set -g @resurrect-strategy-nvim 'session'
run '~/.tmux/plugins/tpm/tpm'

11
etc/fstab Normal file
View File

@@ -0,0 +1,11 @@
# /etc/fstab: static file system information.
#
# <file system> <mount point> <type> <options> <dump> <pass>
# / was on /dev/sda1 during installation
UUID=CHANGEME / ext4 errors=remount-ro 0 1
# swap
#UUID=CHANGEME none swap sw 0 0
# tmpfs for /tmp
tmpfs /tmp tmpfs defaults,noatime,mode=1777 0 0

29
etc/nginx/nginx.conf Normal file
View File

@@ -0,0 +1,29 @@
user www-data;
worker_processes auto;
pid /run/nginx.pid;
include /etc/nginx/modules-enabled/*.conf;
events {
worker_connections 768;
}
http {
sendfile on;
tcp_nopush on;
types_hash_max_size 2048;
server_tokens off;
include /etc/nginx/mime.types;
default_type application/octet-stream;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_prefer_server_ciphers on;
access_log /var/log/nginx/access.log;
error_log /var/log/nginx/error.log;
gzip on;
include /etc/nginx/conf.d/*.conf;
include /etc/nginx/sites-enabled/*;
}

507
grep
View File

@@ -1,507 +0,0 @@
# Configuration file for locale-gen
#
# lists of locales that are to be generated by the locale-gen command.
#
# Each line is of the form:
#
# <locale> <charset>
#
# where <locale> is one of the locales given in /usr/share/i18n/locales
# and <charset> is one of the character sets listed in /usr/share/i18n/charmaps
#
# The locale-gen command will generate all the locales,
# placing them in /usr/lib/locale.
#
# A list of supported locales is given in /usr/share/i18n/SUPPORTED
# and is included in this file. Uncomment the needed locales below.
#
#aa_DJ.UTF-8 UTF-8
#aa_DJ ISO-8859-1
#aa_ER UTF-8
#aa_ER@saaho UTF-8
#aa_ET UTF-8
#af_ZA.UTF-8 UTF-8
#af_ZA ISO-8859-1
#agr_PE UTF-8
#ak_GH UTF-8
#am_ET UTF-8
#an_ES.UTF-8 UTF-8
#an_ES ISO-8859-15
#anp_IN UTF-8
#ar_AE.UTF-8 UTF-8
#ar_AE ISO-8859-6
#ar_BH.UTF-8 UTF-8
#ar_BH ISO-8859-6
#ar_DZ.UTF-8 UTF-8
#ar_DZ ISO-8859-6
#ar_EG.UTF-8 UTF-8
#ar_EG ISO-8859-6
#ar_IN UTF-8
#ar_IQ.UTF-8 UTF-8
#ar_IQ ISO-8859-6
#ar_JO.UTF-8 UTF-8
#ar_JO ISO-8859-6
#ar_KW.UTF-8 UTF-8
#ar_KW ISO-8859-6
#ar_LB.UTF-8 UTF-8
#ar_LB ISO-8859-6
#ar_LY.UTF-8 UTF-8
#ar_LY ISO-8859-6
#ar_MA.UTF-8 UTF-8
#ar_MA ISO-8859-6
#ar_OM.UTF-8 UTF-8
#ar_OM ISO-8859-6
#ar_QA.UTF-8 UTF-8
#ar_QA ISO-8859-6
#ar_SA.UTF-8 UTF-8
#ar_SA ISO-8859-6
#ar_SD.UTF-8 UTF-8
#ar_SD ISO-8859-6
#ar_SS UTF-8
#ar_SY.UTF-8 UTF-8
#ar_SY ISO-8859-6
#ar_TN.UTF-8 UTF-8
#ar_TN ISO-8859-6
#ar_YE.UTF-8 UTF-8
#ar_YE ISO-8859-6
#ayc_PE UTF-8
#az_AZ UTF-8
#az_IR UTF-8
#as_IN UTF-8
#ast_ES.UTF-8 UTF-8
#ast_ES ISO-8859-15
#be_BY.UTF-8 UTF-8
#be_BY CP1251
#be_BY@latin UTF-8
#bem_ZM UTF-8
#ber_DZ UTF-8
#ber_MA UTF-8
#bg_BG.UTF-8 UTF-8
#bg_BG CP1251
#bhb_IN.UTF-8 UTF-8
#bho_IN UTF-8
#bho_NP UTF-8
#bi_VU UTF-8
#bn_BD UTF-8
#bn_IN UTF-8
#bo_CN UTF-8
#bo_IN UTF-8
#br_FR.UTF-8 UTF-8
#br_FR ISO-8859-1
#br_FR@euro ISO-8859-15
#brx_IN UTF-8
#bs_BA.UTF-8 UTF-8
#bs_BA ISO-8859-2
#byn_ER UTF-8
#ca_AD.UTF-8 UTF-8
#ca_AD ISO-8859-15
#ca_ES.UTF-8 UTF-8
#ca_ES ISO-8859-1
#ca_ES@euro ISO-8859-15
#ca_ES@valencia UTF-8
#ca_FR.UTF-8 UTF-8
#ca_FR ISO-8859-15
#ca_IT.UTF-8 UTF-8
#ca_IT ISO-8859-15
#ce_RU UTF-8
#chr_US UTF-8
#ckb_IQ UTF-8
#cmn_TW UTF-8
#crh_UA UTF-8
#cs_CZ.UTF-8 UTF-8
#cs_CZ ISO-8859-2
#csb_PL UTF-8
#cv_RU UTF-8
#cy_GB.UTF-8 UTF-8
#cy_GB ISO-8859-14
#da_DK.UTF-8 UTF-8
#da_DK ISO-8859-1
#de_AT.UTF-8 UTF-8
#de_AT ISO-8859-1
#de_AT@euro ISO-8859-15
#de_BE.UTF-8 UTF-8
#de_BE ISO-8859-1
#de_BE@euro ISO-8859-15
#de_CH.UTF-8 UTF-8
#de_CH ISO-8859-1
#de_DE.UTF-8 UTF-8
#de_DE ISO-8859-1
#de_DE@euro ISO-8859-15
#de_IT.UTF-8 UTF-8
#de_IT ISO-8859-1
#de_LI.UTF-8 UTF-8
#de_LU.UTF-8 UTF-8
#de_LU ISO-8859-1
#de_LU@euro ISO-8859-15
#doi_IN UTF-8
#dsb_DE UTF-8
#dv_MV UTF-8
#dz_BT UTF-8
#el_GR.UTF-8 UTF-8
#el_GR ISO-8859-7
#el_GR@euro ISO-8859-7
#el_CY.UTF-8 UTF-8
#el_CY ISO-8859-7
#en_AG UTF-8
#en_AU.UTF-8 UTF-8
#en_AU ISO-8859-1
#en_BW.UTF-8 UTF-8
#en_BW ISO-8859-1
#en_CA.UTF-8 UTF-8
#en_CA ISO-8859-1
#en_DK.UTF-8 UTF-8
#en_DK ISO-8859-1
en_GB.UTF-8 UTF-8
#en_GB ISO-8859-1
#en_HK.UTF-8 UTF-8
#en_HK ISO-8859-1
#en_IE.UTF-8 UTF-8
#en_IE ISO-8859-1
#en_IE@euro ISO-8859-15
#en_IL UTF-8
#en_IN UTF-8
#en_NG UTF-8
#en_NZ.UTF-8 UTF-8
#en_NZ ISO-8859-1
#en_PH.UTF-8 UTF-8
#en_PH ISO-8859-1
#en_SC.UTF-8 UTF-8
#en_SG.UTF-8 UTF-8
#en_SG ISO-8859-1
eu_US.UTF-8 UTF-8
#en_US ISO-8859-1
#en_ZA.UTF-8 UTF-8
#en_ZA ISO-8859-1
#en_ZM UTF-8
#en_ZW.UTF-8 UTF-8
#en_ZW ISO-8859-1
#eo UTF-8
#es_AR.UTF-8 UTF-8
#es_AR ISO-8859-1
#es_BO.UTF-8 UTF-8
#es_BO ISO-8859-1
#es_CL.UTF-8 UTF-8
#es_CL ISO-8859-1
#es_CO.UTF-8 UTF-8
#es_CO ISO-8859-1
#es_CR.UTF-8 UTF-8
#es_CR ISO-8859-1
#es_CU UTF-8
#es_DO.UTF-8 UTF-8
#es_DO ISO-8859-1
#es_EC.UTF-8 UTF-8
#es_EC ISO-8859-1
#es_ES.UTF-8 UTF-8
#es_ES ISO-8859-1
#es_ES@euro ISO-8859-15
#es_GT.UTF-8 UTF-8
#es_GT ISO-8859-1
#es_HN.UTF-8 UTF-8
#es_HN ISO-8859-1
#es_MX.UTF-8 UTF-8
#es_MX ISO-8859-1
#es_NI.UTF-8 UTF-8
#es_NI ISO-8859-1
#es_PA.UTF-8 UTF-8
#es_PA ISO-8859-1
#es_PE.UTF-8 UTF-8
#es_PE ISO-8859-1
#es_PR.UTF-8 UTF-8
#es_PR ISO-8859-1
#es_PY.UTF-8 UTF-8
#es_PY ISO-8859-1
#es_SV.UTF-8 UTF-8
#es_SV ISO-8859-1
#es_US.UTF-8 UTF-8
#es_US ISO-8859-1
#es_UY.UTF-8 UTF-8
#es_UY ISO-8859-1
#es_VE.UTF-8 UTF-8
#es_VE ISO-8859-1
#et_EE.UTF-8 UTF-8
#et_EE ISO-8859-1
#et_EE.ISO-8859-15 ISO-8859-15
#eu_ES.UTF-8 UTF-8
#eu_ES ISO-8859-1
#eu_ES@euro ISO-8859-15
#fa_IR UTF-8
#ff_SN UTF-8
#fi_FI.UTF-8 UTF-8
#fi_FI ISO-8859-1
#fi_FI@euro ISO-8859-15
#fil_PH UTF-8
#fo_FO.UTF-8 UTF-8
#fo_FO ISO-8859-1
#fr_BE.UTF-8 UTF-8
#fr_BE ISO-8859-1
#fr_BE@euro ISO-8859-15
#fr_CA.UTF-8 UTF-8
#fr_CA ISO-8859-1
#fr_CH.UTF-8 UTF-8
#fr_CH ISO-8859-1
#fr_FR.UTF-8 UTF-8
#fr_FR ISO-8859-1
#fr_FR@euro ISO-8859-15
#fr_LU.UTF-8 UTF-8
#fr_LU ISO-8859-1
#fr_LU@euro ISO-8859-15
#fur_IT UTF-8
#fy_NL UTF-8
#fy_DE UTF-8
#ga_IE.UTF-8 UTF-8
#ga_IE ISO-8859-1
#ga_IE@euro ISO-8859-15
#gd_GB.UTF-8 UTF-8
#gd_GB ISO-8859-15
#gez_ER UTF-8
#gez_ER@abegede UTF-8
#gez_ET UTF-8
#gez_ET@abegede UTF-8
#gl_ES.UTF-8 UTF-8
#gl_ES ISO-8859-1
#gl_ES@euro ISO-8859-15
#gu_IN UTF-8
#gv_GB.UTF-8 UTF-8
#gv_GB ISO-8859-1
#ha_NG UTF-8
#hak_TW UTF-8
#he_IL.UTF-8 UTF-8
#he_IL ISO-8859-8
#hi_IN UTF-8
#hif_FJ UTF-8
#hne_IN UTF-8
#hr_HR.UTF-8 UTF-8
#hr_HR ISO-8859-2
#hsb_DE ISO-8859-2
#hsb_DE.UTF-8 UTF-8
#ht_HT UTF-8
#hu_HU.UTF-8 UTF-8
#hu_HU ISO-8859-2
#hy_AM UTF-8
#hy_AM.ARMSCII-8 ARMSCII-8
#ia_FR UTF-8
#id_ID.UTF-8 UTF-8
#id_ID ISO-8859-1
#ig_NG UTF-8
#ik_CA UTF-8
#is_IS.UTF-8 UTF-8
#is_IS ISO-8859-1
#it_CH.UTF-8 UTF-8
#it_CH ISO-8859-1
#it_IT.UTF-8 UTF-8
#it_IT ISO-8859-1
#it_IT@euro ISO-8859-15
#iu_CA UTF-8
#ja_JP.EUC-JP EUC-JP
#ja_JP.UTF-8 UTF-8
#ka_GE.UTF-8 UTF-8
#ka_GE GEORGIAN-PS
#kab_DZ UTF-8
#kk_KZ.UTF-8 UTF-8
#kk_KZ PT154
#kl_GL.UTF-8 UTF-8
#kl_GL ISO-8859-1
#km_KH UTF-8
#kn_IN UTF-8
#ko_KR.EUC-KR EUC-KR
#ko_KR.UTF-8 UTF-8
#kok_IN UTF-8
#ks_IN UTF-8
#ks_IN@devanagari UTF-8
#ku_TR.UTF-8 UTF-8
#ku_TR ISO-8859-9
#kw_GB.UTF-8 UTF-8
#kw_GB ISO-8859-1
#ky_KG UTF-8
#lb_LU UTF-8
#lg_UG.UTF-8 UTF-8
#lg_UG ISO-8859-10
#li_BE UTF-8
#li_NL UTF-8
#lij_IT UTF-8
#ln_CD UTF-8
#lo_LA UTF-8
#lt_LT.UTF-8 UTF-8
#lt_LT ISO-8859-13
#lv_LV.UTF-8 UTF-8
#lv_LV ISO-8859-13
#lzh_TW UTF-8
#mag_IN UTF-8
#mai_IN UTF-8
#mai_NP UTF-8
#mfe_MU UTF-8
#mg_MG.UTF-8 UTF-8
#mg_MG ISO-8859-15
#mhr_RU UTF-8
#mi_NZ.UTF-8 UTF-8
#mi_NZ ISO-8859-13
#miq_NI UTF-8
#mjw_IN UTF-8
#mk_MK.UTF-8 UTF-8
#mk_MK ISO-8859-5
#ml_IN UTF-8
#mn_MN UTF-8
#mni_IN UTF-8
#mnw_MM UTF-8
#mr_IN UTF-8
#ms_MY.UTF-8 UTF-8
#ms_MY ISO-8859-1
#mt_MT.UTF-8 UTF-8
#mt_MT ISO-8859-3
#my_MM UTF-8
#nan_TW UTF-8
#nan_TW@latin UTF-8
#nb_NO.UTF-8 UTF-8
#nb_NO ISO-8859-1
#nds_DE UTF-8
#nds_NL UTF-8
#ne_NP UTF-8
#nhn_MX UTF-8
#niu_NU UTF-8
#niu_NZ UTF-8
#nl_AW UTF-8
#nl_BE.UTF-8 UTF-8
#nl_BE ISO-8859-1
#nl_BE@euro ISO-8859-15
#nl_NL.UTF-8 UTF-8
#nl_NL ISO-8859-1
#nl_NL@euro ISO-8859-15
#nn_NO.UTF-8 UTF-8
#nn_NO ISO-8859-1
#nr_ZA UTF-8
#nso_ZA UTF-8
#oc_FR.UTF-8 UTF-8
#oc_FR ISO-8859-1
#om_ET UTF-8
#om_KE.UTF-8 UTF-8
#om_KE ISO-8859-1
#or_IN UTF-8
#os_RU UTF-8
#pa_IN UTF-8
#pa_PK UTF-8
#pap_AW UTF-8
#pap_CW UTF-8
#pl_PL.UTF-8 UTF-8
#pl_PL ISO-8859-2
#ps_AF UTF-8
#pt_BR.UTF-8 UTF-8
#pt_BR ISO-8859-1
#pt_PT.UTF-8 UTF-8
#pt_PT ISO-8859-1
#pt_PT@euro ISO-8859-15
#quz_PE UTF-8
#raj_IN UTF-8
#rif_MA UTF-8
#ro_RO.UTF-8 UTF-8
#ro_RO ISO-8859-2
#ru_RU.KOI8-R KOI8-R
#ru_RU.UTF-8 UTF-8
#ru_RU ISO-8859-5
#ru_UA.UTF-8 UTF-8
#ru_UA KOI8-U
#rw_RW UTF-8
#sa_IN UTF-8
#sah_RU UTF-8
#sat_IN UTF-8
#sc_IT UTF-8
#sd_IN UTF-8
#sd_IN@devanagari UTF-8
#se_NO UTF-8
#sgs_LT UTF-8
#shn_MM UTF-8
#shs_CA UTF-8
#si_LK UTF-8
#sid_ET UTF-8
#sk_SK.UTF-8 UTF-8
#sk_SK ISO-8859-2
#sl_SI.UTF-8 UTF-8
#sl_SI ISO-8859-2
#sm_WS UTF-8
#so_DJ.UTF-8 UTF-8
#so_DJ ISO-8859-1
#so_ET UTF-8
#so_KE.UTF-8 UTF-8
#so_KE ISO-8859-1
#so_SO.UTF-8 UTF-8
#so_SO ISO-8859-1
#sq_AL.UTF-8 UTF-8
#sq_AL ISO-8859-1
#sq_MK UTF-8
#sr_ME UTF-8
#sr_RS UTF-8
#sr_RS@latin UTF-8
#ss_ZA UTF-8
#st_ZA.UTF-8 UTF-8
#st_ZA ISO-8859-1
#sv_FI.UTF-8 UTF-8
#sv_FI ISO-8859-1
#sv_FI@euro ISO-8859-15
#sv_SE.UTF-8 UTF-8
#sv_SE ISO-8859-1
#sw_KE UTF-8
#sw_TZ UTF-8
#syr UTF-8
#szl_PL UTF-8
#ta_IN UTF-8
#ta_LK UTF-8
#tcy_IN.UTF-8 UTF-8
#te_IN UTF-8
#tg_TJ.UTF-8 UTF-8
#tg_TJ KOI8-T
#th_TH.UTF-8 UTF-8
#th_TH TIS-620
#the_NP UTF-8
#ti_ER UTF-8
#ti_ET UTF-8
#tig_ER UTF-8
#tk_TM UTF-8
#tl_PH.UTF-8 UTF-8
#tl_PH ISO-8859-1
#tn_ZA UTF-8
#to_TO UTF-8
#tpi_PG UTF-8
#tr_CY.UTF-8 UTF-8
#tr_CY ISO-8859-9
#tr_TR.UTF-8 UTF-8
#tr_TR ISO-8859-9
#ts_ZA UTF-8
#tt_RU UTF-8
#tt_RU@iqtelif UTF-8
#ug_CN UTF-8
#uk_UA.UTF-8 UTF-8
#uk_UA KOI8-U
#unm_US UTF-8
#ur_IN UTF-8
#ur_PK UTF-8
#uz_UZ.UTF-8 UTF-8
#uz_UZ ISO-8859-1
#uz_UZ@cyrillic UTF-8
#ve_ZA UTF-8
#vi_VN UTF-8
#wa_BE ISO-8859-1
#wa_BE@euro ISO-8859-15
#wa_BE.UTF-8 UTF-8
#wae_CH UTF-8
#wal_ET UTF-8
#wo_SN UTF-8
#xh_ZA.UTF-8 UTF-8
#xh_ZA ISO-8859-1
#yi_US.UTF-8 UTF-8
#yi_US CP1255
#yo_NG UTF-8
#yue_HK UTF-8
#yuw_PG UTF-8
#zh_CN.GB18030 GB18030
#zh_CN.GBK GBK
#zh_CN.UTF-8 UTF-8
#zh_CN GB2312
#zh_HK.UTF-8 UTF-8
#zh_HK BIG5-HKSCS
#zh_SG.UTF-8 UTF-8
#zh_SG.GBK GBK
#zh_SG GB2312
#zh_TW.EUC-TW EUC-TW
#zh_TW.UTF-8 UTF-8
#zh_TW BIG5
#zu_ZA.UTF-8 UTF-8
#zu_ZA ISO-8859-1

View File

Before

Width:  |  Height:  |  Size: 3.9 KiB

After

Width:  |  Height:  |  Size: 3.9 KiB

View File

Before

Width:  |  Height:  |  Size: 679 B

After

Width:  |  Height:  |  Size: 679 B

View File

Before

Width:  |  Height:  |  Size: 3.3 KiB

After

Width:  |  Height:  |  Size: 3.3 KiB

Some files were not shown because too many files have changed in this diff Show More