initial migration
commit
b721d8c3cb
|
@ -0,0 +1,31 @@
|
|||
# ~/.bashrc
|
||||
|
||||
# If not running interactively, don't do anything
|
||||
[[ $- != *i* ]] && return
|
||||
|
||||
[ -r "$CARGO_HOME/env" ] && . "$CARGO_HOME/env"
|
||||
[ -r /usr/share/bash-completion/bash_completion ] && . /usr/share/bash-completion/bash_completion
|
||||
[ -r /usr/share/clang/bash-autocomplete.sh ] && . /usr/share/clang/bash-autocomplete.sh
|
||||
|
||||
set -o vi
|
||||
stty -ixon
|
||||
|
||||
shopt -s autocd
|
||||
shopt -s globstar
|
||||
shopt -s checkwinsize
|
||||
|
||||
alias x509inspect='openssl x509 -text -noout -in'
|
||||
|
||||
qinfo() {
|
||||
curl https://cht.sh/$1
|
||||
}
|
||||
|
||||
weather() {
|
||||
curl wttr.in/$1
|
||||
}
|
||||
|
||||
__git_ps1='git rev-parse --abbrev-ref HEAD 2>/dev/null||printf ""'
|
||||
|
||||
export PS1="\[\033[38;5;98m\]\h\[$(tput sgr0)\]\[\033[38;5;15m\]@\[$(tput sgr0)\]\[\033[38;5;206m\]\u\[$(tput sgr0)\]\[\033[38;5;15m\] \[$(tput sgr0)\]\[\033[38;5;228m\]\A\[$(tput sgr0)\]\[\033[38;5;15m\] [\[$(tput sgr0)\]\[\033[38;5;156m\]\W\[$(tput sgr0)\] \$(${__git_ps1})\[\033[38;5;15m\]]\n\[$(tput sgr0)\]\[\033[38;5;195m\]\\$\[$(tput sgr0)\]\[\033[38;5;15m\] \[$(tput sgr0)\]"
|
||||
|
||||
eval "$(direnv hook bash)"
|
|
@ -0,0 +1,127 @@
|
|||
|
||||
---
|
||||
BasedOnStyle: LLVM
|
||||
ColumnLimit: 120
|
||||
---
|
||||
Language: Cpp
|
||||
|
||||
AccessModifierOffset: -8
|
||||
AlignAfterOpenBracket: Align
|
||||
AlignConsecutiveAssignments: true
|
||||
AlignConsecutiveDeclarations: false
|
||||
AlignConsecutiveMacros: true
|
||||
AlignEscapedNewlines: Left
|
||||
AlignOperands: false
|
||||
AlignTrailingComments: false
|
||||
AllowAllArgumentsOnNextLine: false
|
||||
AllowAllParametersOfDeclarationOnNextLine: false
|
||||
AllowShortBlocksOnASingleLine: Never
|
||||
AllowShortCaseLabelsOnASingleLine: false
|
||||
AllowShortFunctionsOnASingleLine: Inline
|
||||
AllowShortIfStatementsOnASingleLine: false
|
||||
AllowShortLoopsOnASingleLine: true
|
||||
AlwaysBreakAfterReturnType: None
|
||||
AlwaysBreakBeforeMultilineStrings: false
|
||||
AlwaysBreakTemplateDeclarations: true
|
||||
BinPackArguments: false
|
||||
BinPackParameters: false
|
||||
BreakBeforeBinaryOperators: All
|
||||
BreakBeforeBraces: Custom
|
||||
#BreakAfterAttributes: Leave
|
||||
BraceWrapping:
|
||||
AfterCaseLabel: false
|
||||
AfterClass: true
|
||||
AfterEnum: false
|
||||
AfterStruct: false
|
||||
AfterFunction: true
|
||||
AfterNamespace: false
|
||||
AfterUnion: false
|
||||
AfterExternBlock: false
|
||||
BeforeCatch: false
|
||||
BeforeElse: false
|
||||
BeforeLambdaBody: false
|
||||
BeforeWhile: false
|
||||
IndentBraces: false
|
||||
SplitEmptyFunction: true
|
||||
SplitEmptyRecord: false
|
||||
SplitEmptyNamespace: false
|
||||
BreakBeforeInheritanceComma: false
|
||||
BreakBeforeTernaryOperators: true
|
||||
BreakConstructorInitializers: AfterColon
|
||||
BreakConstructorInitializersBeforeComma: false
|
||||
BreakStringLiterals: true
|
||||
CompactNamespaces: true
|
||||
ConstructorInitializerAllOnOneLineOrOnePerLine: false
|
||||
ConstructorInitializerIndentWidth: 4
|
||||
ContinuationIndentWidth: 4
|
||||
Cpp11BracedListStyle: true
|
||||
DerivePointerAlignment: false
|
||||
FixNamespaceComments: true
|
||||
IndentWidth: 8
|
||||
TabWidth: 8
|
||||
UseTab: AlignWithSpaces
|
||||
ForEachMacros:
|
||||
- foreach
|
||||
- Q_FOREACH
|
||||
- BOOST_FOREACH
|
||||
- io_uring_for_each_cqe
|
||||
IncludeBlocks: Regroup
|
||||
IncludeCategories:
|
||||
- Regex: '^"(llvm|llvm-c|clang|clang-c)/'
|
||||
Priority: 2
|
||||
- Regex: '^(<|"(gtest|gmock|isl|json)/)'
|
||||
Priority: 1
|
||||
- Regex: '.*'
|
||||
Priority: 3
|
||||
IncludeIsMainRegex: '(Test)?$'
|
||||
IndentCaseLabels: false
|
||||
IndentGotoLabels: false
|
||||
IndentPPDirectives: None
|
||||
#IndentAccessModifiers: false
|
||||
IndentWrappedFunctionNames: false
|
||||
KeepEmptyLinesAtTheStartOfBlocks: false
|
||||
MaxEmptyLinesToKeep: 1
|
||||
NamespaceIndentation: All
|
||||
PenaltyBreakAssignment: 2
|
||||
PenaltyBreakBeforeFirstCallParameter: 19
|
||||
PenaltyBreakComment: 300
|
||||
PenaltyBreakFirstLessLess: 120
|
||||
PenaltyBreakString: 1000
|
||||
PenaltyExcessCharacter: 1000000
|
||||
PenaltyReturnTypeOnItsOwnLine: 60
|
||||
PointerAlignment: Right
|
||||
ReflowComments: false
|
||||
SortIncludes: true
|
||||
SortUsingDeclarations: true
|
||||
SpaceAfterCStyleCast: true
|
||||
SpaceAfterLogicalNot: false
|
||||
SpaceAfterTemplateKeyword: false
|
||||
SpaceBeforeAssignmentOperators: true
|
||||
SpaceBeforeParens: ControlStatements
|
||||
SpaceInEmptyParentheses: false
|
||||
SpacesBeforeTrailingComments: 1
|
||||
SpacesInAngles: false
|
||||
SpacesInCStyleCastParentheses: false
|
||||
SpacesInContainerLiterals: false
|
||||
SpacesInParentheses: false
|
||||
SpacesInSquareBrackets: false
|
||||
Standard: c++20
|
||||
...
|
||||
---
|
||||
Language: Java
|
||||
|
||||
AllowShortFunctionsOnASingleLine: None
|
||||
BreakAfterJavaFieldAnnotations: true
|
||||
ColumnLimit: 120
|
||||
IndentWidth: 4
|
||||
JavaImportGroups: ['java', 'javax']
|
||||
TabWidth: 4
|
||||
UseTab: Never
|
||||
...
|
||||
---
|
||||
Language: CSharp
|
||||
BasedOnStyle: Microsoft
|
||||
IndentWidth: 4
|
||||
TabWidth: 4
|
||||
UseTab: Never
|
||||
...
|
|
@ -0,0 +1,4 @@
|
|||
XDG_BIN_HOME=$HOME/.local/bin
|
||||
XDG_CACHE_HOME=$HOME/.cache
|
||||
XDG_CONFIG_HOME=$HOME/.config
|
||||
XDG_DATA_HOME=$HOME/.local/share
|
|
@ -0,0 +1,3 @@
|
|||
EDITOR=nvim
|
||||
FZF_DEFAULT_COMMAND="fd -H --type f"
|
||||
MANPAGES="sh -c 'col -bx | bat -l man -p'"
|
|
@ -0,0 +1,32 @@
|
|||
# [ Fly ]
|
||||
FLYCTL_INSTALL=$HOME/.fly
|
||||
|
||||
## [ SQLITE ]
|
||||
SQLITE_HISTORY=$XDG_CACHE_HOME/sqlite_history
|
||||
|
||||
## [ PostgreSQL ]
|
||||
PGPASSFILE=$XDG_CONFIG_HOME/pg/pgpass
|
||||
PGSERVICEFILE=$XDG_CONFIG_HOME/pg/pg_service.conf
|
||||
PG_COLOR=always
|
||||
PSQLRC=$XDG_CONFIG_HOME/pg/psqlrc
|
||||
PSQL_HISTORY=$XDG_CACHE_HOME/pg/psql_history
|
||||
|
||||
## [ Crypto ]
|
||||
GNUPGHOME=$XDG_DATA_HOME/gnupg
|
||||
MINISIGN_CONFIG_DIR=$XDG_DATA_HOME/minisign
|
||||
|
||||
## [ History ]
|
||||
HISTFILE=$HOME/.history
|
||||
HISTTIMEFORMAT='[%F %T]'
|
||||
LESSHISTFILE=-
|
||||
|
||||
## [ Dotfiles ]
|
||||
DOTFILEDIR=$XDG_DATA_HOME/dotfiles
|
||||
DOTFILEBRANCH=lainpad
|
||||
|
||||
## [ Atuin ]
|
||||
ATUIN_NOBIND="true"
|
||||
|
||||
## [ Wezterm ]
|
||||
WEZTERM_SHELL_SKIP_ALL=1
|
||||
WEZTERM_SHELL_SKIP_SEMANTIC_ZONES=1
|
|
@ -0,0 +1,37 @@
|
|||
## [ C and C++ ]
|
||||
CC=clang
|
||||
CXX=clang++
|
||||
AR=llvm-ar
|
||||
CC_LD=lld
|
||||
CXX_LD=lld
|
||||
|
||||
## [ Rust ]
|
||||
RUSTUP_HOME=$XDG_DATA_HOME/rustup
|
||||
CARGO_HOME=$XDG_DATA_HOME/cargo
|
||||
|
||||
## [ Clojure ]
|
||||
LEIN_HOME=$XDG_DATA_HOME/lein
|
||||
|
||||
## [ Go ]
|
||||
GOPATH=$XDG_DATA_HOME/go
|
||||
|
||||
## [ Haskell ]
|
||||
CABAL_CONFIG=$XDG_CONFIG_HOME/cabal/config
|
||||
CABAL_DIR=$XDG_CACHE_HOME/cabal
|
||||
GHCUP_USE_XDG_DIRS=1
|
||||
STACK_ROOT=$XDG_DATA_HOME/stack
|
||||
|
||||
## [ Julia ]
|
||||
JULIA_DEPOT_PATH=$XDG_DATA_HOME/julia:$JULIA_DEPOT_PATH
|
||||
|
||||
## [ Elixir ]
|
||||
MIX_XDG=1
|
||||
|
||||
## [ Sage ]
|
||||
DOT_SAGE=$XDG_DATA_HOME/sage
|
||||
|
||||
## [ Javascript ]
|
||||
npm_config_prefix=$HOME/.local
|
||||
|
||||
## [ Misc ]
|
||||
PKG_CONFIG_PATH=/usr/local/lib/pkgconfig
|
|
@ -0,0 +1 @@
|
|||
XKB_DEFAULT_OPTIONS=caps:swapescape
|
|
@ -0,0 +1 @@
|
|||
PATH=${FLYCTL_INSTALL}/bin:${GOPATH}/bin:${HOME}/.local/bin:${PATH}
|
|
@ -0,0 +1 @@
|
|||
set startup-quietly on
|
|
@ -0,0 +1,8 @@
|
|||
set confirm off
|
||||
set pagination off
|
||||
set print pretty on
|
||||
set verbose off
|
||||
set prompt \001\033[38;5;206m\002gdb> \001\033[0m\002
|
||||
#set prompt \001\033[1;93m\002gdb> \001\033[0m\002
|
||||
set disassembly-flavor intel
|
||||
#set debuginfod enabled on
|
|
@ -0,0 +1,46 @@
|
|||
[user]
|
||||
name = Aydin Mercan
|
||||
email = aydin@mercan.dev
|
||||
signingkey = "~/.ssh/git"
|
||||
|
||||
[core]
|
||||
editor = nvim
|
||||
|
||||
# Despite being under the gpg setting all signing is through ssh
|
||||
[gpg]
|
||||
format = ssh
|
||||
|
||||
[commit]
|
||||
gpgsign = true
|
||||
|
||||
[push]
|
||||
gpgsign = if-asked
|
||||
|
||||
[tag]
|
||||
gpgsign = true
|
||||
|
||||
[merge]
|
||||
conflictstyle = diff3
|
||||
|
||||
[color]
|
||||
status = true
|
||||
branch = true
|
||||
interactive = true
|
||||
diff = true
|
||||
ui = true
|
||||
|
||||
[advice]
|
||||
addEmptyPathspec = false
|
||||
addIgnoredFile = false
|
||||
|
||||
[log]
|
||||
showSignature = true
|
||||
|
||||
[init]
|
||||
defaultBranch = "main"
|
||||
|
||||
[alias]
|
||||
sls = diff --name-only --cached
|
||||
sdiff = diff --staged
|
||||
adog = log --all --decorate --oneline --graph
|
||||
scdiff = diff --staged --check
|
|
@ -0,0 +1,15 @@
|
|||
vim.filetype.add({
|
||||
extension = {
|
||||
ll = "llvm",
|
||||
v = "verilog",
|
||||
},
|
||||
filename = {
|
||||
[".clang-format"] = "yaml",
|
||||
["APKBUILD"] = "sh",
|
||||
["Justfile"] = "make",
|
||||
["sbclrc"] = "lisp",
|
||||
},
|
||||
pattern = {
|
||||
["(Container|Docker)file.*"] = "dockerfile",
|
||||
},
|
||||
})
|
|
@ -0,0 +1,3 @@
|
|||
require 'intangible.keymap'
|
||||
require 'intangible.options'
|
||||
require 'intangible.packages' -- last
|
|
@ -0,0 +1,31 @@
|
|||
-- Saner nagivation and search
|
||||
vim.g.mapleader = ' '
|
||||
|
||||
--
|
||||
vim.api.nvim_set_keymap('n', 'j', 'gj', { noremap = true, silent = true })
|
||||
vim.api.nvim_set_keymap('n', 'k', 'gk', { noremap = true, silent = true })
|
||||
|
||||
-- Tab Control
|
||||
vim.api.nvim_set_keymap('n', 'tn', ':tabnew<CR>', { noremap = true, silent = true })
|
||||
vim.api.nvim_set_keymap('n', 'tq', ':tabclose<CR>', { noremap = true, silent = true })
|
||||
vim.api.nvim_set_keymap('n', '<A-h>', 'gT', { noremap = true, silent = true })
|
||||
vim.api.nvim_set_keymap('n', '<A-l>', 'gt', { noremap = true, silent = true })
|
||||
|
||||
-- Split control via C leader
|
||||
vim.api.nvim_set_keymap('n', 'tv', ':vsplit<CR>', { noremap = true, silent = true })
|
||||
vim.api.nvim_set_keymap('n', 'th', ':split<CR>', { noremap = true, silent = true })
|
||||
vim.api.nvim_set_keymap('n', '<C-h>', '<C-W><C-H>', { noremap = true, silent = true })
|
||||
vim.api.nvim_set_keymap('n', '<C-j>', '<C-W><C-J>', { noremap = true, silent = true })
|
||||
vim.api.nvim_set_keymap('n', '<C-k>', '<C-W><C-K>', { noremap = true, silent = true })
|
||||
vim.api.nvim_set_keymap('n', '<C-l>', '<C-W><C-L>', { noremap = true, silent = true })
|
||||
|
||||
-- Clear search highlight
|
||||
vim.api.nvim_set_keymap('n', '<C-/>', ':nohlsearch<CR>', { noremap = true, silent = true })
|
||||
vim.api.nvim_set_keymap('n', '<C-_>', ':nohlsearch<CR>', { noremap = true, silent = true })
|
||||
|
||||
-- Q as a macro quickloader
|
||||
vim.api.nvim_set_keymap('n', 'Q', '@q', { noremap = true, silent = true })
|
||||
|
||||
-- I don't want F1 to search
|
||||
vim.api.nvim_set_keymap('n', '<F1>', '<ESC>', { noremap = true, silent = true })
|
||||
vim.api.nvim_set_keymap('i', '<F1>', '<ESC>', { noremap = true, silent = true })
|
|
@ -0,0 +1,60 @@
|
|||
-- Appearence
|
||||
vim.o.background = 'dark'
|
||||
vim.o.guifont = 'Symbols Nerd Font:h12'
|
||||
vim.o.magic = true
|
||||
vim.o.showmode = false
|
||||
vim.o.termguicolors = true
|
||||
vim.o.title = true
|
||||
vim.wo.number = true
|
||||
vim.wo.signcolumn = 'number'
|
||||
|
||||
-- Better completion
|
||||
vim.o.completeopt = 'menuone,noinsert,noselect'
|
||||
vim.o.shortmess = vim.o.shortmess .. 'c'
|
||||
|
||||
-- Colorful
|
||||
vim.cmd [[ set termguicolors ]]
|
||||
|
||||
-- Trust plugin handling
|
||||
vim.cmd [[ syntax enable ]]
|
||||
vim.cmd [[ filetype plugin indent on ]]
|
||||
|
||||
-- Large undo size
|
||||
vim.bo.undofile = true
|
||||
vim.o.undofile = true
|
||||
vim.o.undolevels = 1000
|
||||
vim.o.undoreload = 1000
|
||||
|
||||
-- Sane encoding and binary handling
|
||||
vim.o.bomb = true
|
||||
vim.o.binary = true
|
||||
vim.o.encoding = 'utf-8'
|
||||
vim.o.fileencoding = 'utf-8'
|
||||
vim.o.fileencodings = 'utf-8'
|
||||
|
||||
-- Mouse
|
||||
vim.o.mouse = 'ni'
|
||||
|
||||
-- Default Indentation
|
||||
vim.bo.expandtab = true
|
||||
vim.bo.shiftwidth = 4
|
||||
vim.bo.tabstop = 4
|
||||
vim.o.expandtab = true
|
||||
vim.o.shiftwidth = 4
|
||||
vim.o.tabstop = 4
|
||||
|
||||
-- Grep
|
||||
vim.o.grepprg = 'rg --vimgrep --no-heading --smart-case'
|
||||
|
||||
-- Deactivate some unused builtins.
|
||||
vim.g.loaded_tutor_mode_plugin = 0
|
||||
|
||||
-- Misc.
|
||||
vim.fn.matchadd('TSDanger', [[\s\+$]])
|
||||
vim.g.asmsyntax = "nasm"
|
||||
vim.g.tex_flavor = "latex"
|
||||
vim.o.autoindent = true
|
||||
vim.o.clipboard = "unnamedplus"
|
||||
vim.o.copyindent = true
|
||||
vim.o.lazyredraw = true
|
||||
vim.o.virtualedit = "block"
|
|
@ -0,0 +1,275 @@
|
|||
-- Bootstrap lazy.nvim
|
||||
local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim"
|
||||
if not vim.loop.fs_stat(lazypath) then
|
||||
vim.fn.system({
|
||||
"git",
|
||||
"clone",
|
||||
"--filter=blob:none",
|
||||
"https://github.com/folke/lazy.nvim.git",
|
||||
"--branch=stable", -- latest stable release
|
||||
lazypath,
|
||||
})
|
||||
end
|
||||
|
||||
vim.opt.rtp:prepend(lazypath)
|
||||
|
||||
return require('lazy').setup({
|
||||
{'nvim-lua/completion-nvim'},
|
||||
|
||||
{
|
||||
'neovim/nvim-lspconfig',
|
||||
lazy = true,
|
||||
config = function()
|
||||
local lsp = require('lspconfig')
|
||||
lsp.pyright.setup{}
|
||||
lsp.gopls.setup{}
|
||||
lsp.clangd.setup{
|
||||
default_config = {
|
||||
root_dir = [[
|
||||
root_pattern(
|
||||
'.git',
|
||||
'compile_commands.json',
|
||||
)
|
||||
]],
|
||||
}
|
||||
}
|
||||
end
|
||||
},
|
||||
|
||||
{
|
||||
'folke/tokyonight.nvim',
|
||||
config = function()
|
||||
require('tokyonight').setup({
|
||||
style = "night",
|
||||
})
|
||||
|
||||
vim.cmd [[ colorscheme tokyonight ]]
|
||||
end,
|
||||
},
|
||||
|
||||
{
|
||||
'nvim-lualine/lualine.nvim',
|
||||
dependencies = {'kyazdani42/nvim-web-devicons', lazy = true},
|
||||
config = function()
|
||||
require('lualine').setup {
|
||||
options = {
|
||||
theme = 'tokyonight',
|
||||
section_separators = '',
|
||||
component_separators = ' ',
|
||||
}
|
||||
}
|
||||
end
|
||||
},
|
||||
|
||||
{
|
||||
'nvim-telescope/telescope.nvim',
|
||||
dependencies = {{'nvim-lua/popup.nvim'}, {'nvim-lua/plenary.nvim'}},
|
||||
|
||||
keys = {
|
||||
{'<CR>', ':Telescope fd<CR>', mode = 'n', noremap = true, silent = true},
|
||||
},
|
||||
|
||||
config = function()
|
||||
local actions = require('telescope.actions')
|
||||
|
||||
require('telescope').setup {
|
||||
defaults = {
|
||||
mappings = {
|
||||
i = {
|
||||
["<esc>"] = actions.close
|
||||
},
|
||||
},
|
||||
}
|
||||
}
|
||||
end,
|
||||
},
|
||||
|
||||
|
||||
{
|
||||
'mhartington/formatter.nvim',
|
||||
|
||||
keys = {
|
||||
{'<C-f>', ':Format<CR>', mode = 'n', noremap = true, silent = true},
|
||||
},
|
||||
|
||||
config = function()
|
||||
require('formatter').setup({
|
||||
filetype = {
|
||||
rust = {
|
||||
function()
|
||||
return {
|
||||
exe = 'rustfmt',
|
||||
args = {'--emit=stdout', '--edition=2021'},
|
||||
stdin = true,
|
||||
}
|
||||
end
|
||||
},
|
||||
|
||||
python = {
|
||||
function()
|
||||
return {
|
||||
exe = 'black',
|
||||
args = {'-q', '-'},
|
||||
stdin = true,
|
||||
}
|
||||
end
|
||||
},
|
||||
|
||||
cpp = {
|
||||
function()
|
||||
return {
|
||||
exe = "clang-format",
|
||||
args = {"--assume-filename", vim.api.nvim_buf_get_name(0)},
|
||||
stdin = true,
|
||||
cwd = vim.fn.expand('%:p:h') -- Run clang-format in cwd of the file.
|
||||
}
|
||||
end
|
||||
},
|
||||
|
||||
c = {
|
||||
function()
|
||||
return {
|
||||
exe = "clang-format",
|
||||
args = {"--assume-filename", vim.api.nvim_buf_get_name(0)},
|
||||
stdin = true,
|
||||
cwd = vim.fn.expand('%:p:h') -- Run clang-format in cwd of the file.
|
||||
}
|
||||
end
|
||||
},
|
||||
|
||||
go = {
|
||||
function()
|
||||
return {
|
||||
exe = "gofmt",
|
||||
stdin = true,
|
||||
}
|
||||
end
|
||||
},
|
||||
|
||||
json = {
|
||||
function()
|
||||
return {
|
||||
exe = "jq",
|
||||
args = {".", "-M"},
|
||||
stdin = true,
|
||||
}
|
||||
end
|
||||
},
|
||||
|
||||
elixir = {
|
||||
function()
|
||||
return {
|
||||
exe = "mix",
|
||||
args = {"format", "-"},
|
||||
stdin = true
|
||||
}
|
||||
end
|
||||
},
|
||||
|
||||
zig = {
|
||||
function()
|
||||
return {
|
||||
exe = "zig",
|
||||
args = {"fmt", "--stdin"},
|
||||
stdin = true,
|
||||
}
|
||||
end
|
||||
},
|
||||
|
||||
["*"] = {
|
||||
require('formatter.filetypes.any').remove_trailing_whitespace
|
||||
}
|
||||
}
|
||||
})
|
||||
end
|
||||
},
|
||||
|
||||
{
|
||||
'nvim-treesitter/nvim-treesitter',
|
||||
config = function()
|
||||
require('nvim-treesitter.configs').setup {
|
||||
highlight = {
|
||||
enable = true,
|
||||
additional_vim_regex_highlighting = false,
|
||||
},
|
||||
incremental_selection = {
|
||||
enable = true,
|
||||
},
|
||||
indent = {
|
||||
enable = true,
|
||||
disable = { 'c', 'cpp', 'java', 'python', 'toml' },
|
||||
},
|
||||
ignore_install = { 'v' },
|
||||
ensure_installed = {
|
||||
'bibtex',
|
||||
'c',
|
||||
'clojure',
|
||||
'cmake',
|
||||
'comment',
|
||||
'commonlisp',
|
||||
'cpp',
|
||||
'dockerfile',
|
||||
'dot',
|
||||
'eex',
|
||||
'elixir',
|
||||
'erlang',
|
||||
'git_config',
|
||||
'git_rebase',
|
||||
'gitattributes',
|
||||
'gitcommit',
|
||||
'gitignore',
|
||||
'go',
|
||||
'gomod',
|
||||
'gosum',
|
||||
'gowork',
|
||||
'haskell',
|
||||
'heex',
|
||||
'hjson',
|
||||
'http',
|
||||
'ini',
|
||||
'java',
|
||||
'jq',
|
||||
'json',
|
||||
'json5',
|
||||
'jsonnet',
|
||||
'julia',
|
||||
'latex',
|
||||
'llvm',
|
||||
'lua',
|
||||
'luadoc',
|
||||
'luap',
|
||||
'make',
|
||||
'markdown',
|
||||
'markdown_inline',
|
||||
'meson',
|
||||
'ocaml',
|
||||
'ocaml_interface',
|
||||
'proto',
|
||||
'python',
|
||||
'r',
|
||||
'racket',
|
||||
'regex',
|
||||
'rust',
|
||||
'scala',
|
||||
'scheme',
|
||||
'sql',
|
||||
'ssh_config',
|
||||
'starlark',
|
||||
'toml',
|
||||
'verilog',
|
||||
'vim',
|
||||
'vimdoc',
|
||||
'yaml',
|
||||
'zig',
|
||||
},
|
||||
}
|
||||
|
||||
vim.api.nvim_exec([[
|
||||
set foldmethod=expr
|
||||
set foldexpr=nvim_treesitter#foldexpr()
|
||||
set foldlevel=9999
|
||||
]], false)
|
||||
end
|
||||
},
|
||||
|
||||
})
|
|
@ -0,0 +1,198 @@
|
|||
# Default config for sway
|
||||
#
|
||||
# Copy this to ~/.config/sway/config and edit it to your liking.
|
||||
#
|
||||
# Read `man 5 sway` for a complete reference.
|
||||
|
||||
### Variables
|
||||
#
|
||||
# Logo key. Use Mod1 for Alt.
|
||||
set $mod Mod4
|
||||
# Home row direction keys, like vim
|
||||
set $left h
|
||||
set $down j
|
||||
set $up k
|
||||
set $right l
|
||||
# Your preferred terminal emulator
|
||||
set $term foot
|
||||
# Your preferred application launcher
|
||||
# Note: pass the final command to swaymsg so that the resulting window can be opened
|
||||
# on the original workspace that the command was run on.
|
||||
|
||||
exec mako
|
||||
smart_borders on
|
||||
|
||||
default_border pixel 5
|
||||
|
||||
### Output configuration
|
||||
#
|
||||
# Default wallpaper (more resolutions are available in /usr/share/backgrounds/sway/)
|
||||
|
||||
output eDP-1 pos 0 0 res 1920x1080
|
||||
|
||||
output * bg ~/media/lain_wallpaper.jpg fill
|
||||
|
||||
input * {
|
||||
xkb_layout us,tr
|
||||
xkb_options caps:swapescape
|
||||
}
|
||||
|
||||
### Key bindings
|
||||
#
|
||||
# Basics:
|
||||
#
|
||||
# Start a terminal
|
||||
bindsym $mod+Return exec $term
|
||||
|
||||
# Kill focused window
|
||||
bindsym $mod+Shift+c kill
|
||||
|
||||
|
||||
bindsym $mod+w exec firefox
|
||||
bindsym $mod+Shift+w exec flatpak run com.google.Chrome
|
||||
# Start your launcher
|
||||
bindsym $mod+p exec wofi -i --show run
|
||||
bindsym $mod+Shift+p exec wofi -i --show drun
|
||||
|
||||
# Drag floating windows by holding down $mod and left mouse button.
|
||||
# Resize them with right mouse button + $mod.
|
||||
# Despite the name, also works for non-floating windows.
|
||||
# Change normal to inverse to use left mouse button for resizing and right
|
||||
# mouse button for dragging.
|
||||
floating_modifier $mod normal
|
||||
|
||||
# Reload the configuration file
|
||||
bindsym $mod+Shift+r reload
|
||||
|
||||
# Exit sway (logs you out of your Wayland session)
|
||||
bindsym $mod+Shift+e exec swaynag -t warning -m 'You pressed the exit shortcut. Do you really want to exit sway? This will end your Wayland session.' -B 'Yes, exit sway' 'swaymsg exit'
|
||||
|
||||
bindsym XF86AudioRaiseVolume exec pactl set-sink-volume @DEFAULT_SINK@ +5%
|
||||
bindsym XF86AudioLowerVolume exec pactl set-sink-volume @DEFAULT_SINK@ -5%
|
||||
bindsym XF86AudioMute exec pactl set-sink-mute @DEFAULT_SINK@ toggle
|
||||
bindsym XF86AudioMicMute exec pactl set-source-mute @DEFAULT_SOURCE@ toggle
|
||||
bindsym XF86MonBrightnessDown exec brightnessctl set 5%-
|
||||
bindsym XF86MonBrightnessUp exec brightnessctl set 5%+
|
||||
bindsym XF86Display exec swaylock
|
||||
#
|
||||
# Moving around:
|
||||
#
|
||||
# Move your focus around
|
||||
bindsym $mod+$left focus left
|
||||
bindsym $mod+$down focus down
|
||||
bindsym $mod+$up focus up
|
||||
bindsym $mod+$right focus right
|
||||
# Or use $mod+[up|down|left|right]
|
||||
bindsym $mod+Left focus left
|
||||
bindsym $mod+Down focus down
|
||||
bindsym $mod+Up focus up
|
||||
bindsym $mod+Right focus right
|
||||
|
||||
# Move the focused window with the same, but add Shift
|
||||
bindsym $mod+Shift+$left move left
|
||||
bindsym $mod+Shift+$down move down
|
||||
bindsym $mod+Shift+$up move up
|
||||
bindsym $mod+Shift+$right move right
|
||||
# Ditto, with arrow keys
|
||||
bindsym $mod+Shift+Left move left
|
||||
bindsym $mod+Shift+Down move down
|
||||
bindsym $mod+Shift+Up move up
|
||||
bindsym $mod+Shift+Right move right
|
||||
#
|
||||
# Workspaces:
|
||||
#
|
||||
# Switch to workspace
|
||||
bindsym $mod+1 workspace number 1
|
||||
bindsym $mod+2 workspace number 2
|
||||
bindsym $mod+3 workspace number 3
|
||||
bindsym $mod+4 workspace number 4
|
||||
bindsym $mod+5 workspace number 5
|
||||
bindsym $mod+6 workspace number 6
|
||||
bindsym $mod+7 workspace number 7
|
||||
bindsym $mod+8 workspace number 8
|
||||
bindsym $mod+9 workspace number 9
|
||||
bindsym $mod+0 workspace number 10
|
||||
# Move focused container to workspace
|
||||
bindsym $mod+Shift+1 move container to workspace number 1
|
||||
bindsym $mod+Shift+2 move container to workspace number 2
|
||||
bindsym $mod+Shift+3 move container to workspace number 3
|
||||
bindsym $mod+Shift+4 move container to workspace number 4
|
||||
bindsym $mod+Shift+5 move container to workspace number 5
|
||||
bindsym $mod+Shift+6 move container to workspace number 6
|
||||
bindsym $mod+Shift+7 move container to workspace number 7
|
||||
bindsym $mod+Shift+8 move container to workspace number 8
|
||||
bindsym $mod+Shift+9 move container to workspace number 9
|
||||
bindsym $mod+Shift+0 move container to workspace number 10
|
||||
# Note: workspaces can have any name you want, not just numbers.
|
||||
# We just use 1-10 as the default.
|
||||
#
|
||||
# Layout stuff:
|
||||
#
|
||||
# You can "split" the current object of your focus with
|
||||
# $mod+b or $mod+v, for horizontal and vertical splits
|
||||
# respectively.
|
||||
bindsym $mod+b splith
|
||||
bindsym $mod+v splitv
|
||||
|
||||
# Switch the current container between different layout styles
|
||||
bindsym $mod+s layout stacking
|
||||
#bindsym $mod+w layout tabbed
|
||||
bindsym $mod+e layout toggle split
|
||||
|
||||
# Make the current focus fullscreen
|
||||
bindsym $mod+f fullscreen
|
||||
|
||||
# Toggle the current focus between tiling and floating mode
|
||||
bindsym $mod+Shift+space floating toggle
|
||||
|
||||
# Swap focus between the tiling area and the floating area
|
||||
bindsym $mod+space focus mode_toggle
|
||||
|
||||
# Move focus to the parent container
|
||||
bindsym $mod+a focus parent
|
||||
#
|
||||
# Scratchpad:
|
||||
#
|
||||
# Sway has a "scratchpad", which is a bag of holding for windows.
|
||||
# You can send windows there and get them back later.
|
||||
|
||||
# Move the currently focused window to the scratchpad
|
||||
bindsym $mod+Shift+grave move scratchpad
|
||||
|
||||
# Show the next scratchpad window or hide the focused scratchpad window.
|
||||
# If there are multiple scratchpad windows, this command cycles through them.
|
||||
bindsym $mod+grave scratchpad show
|
||||
#
|
||||
# Resizing containers:
|
||||
#
|
||||
mode "resize" {
|
||||
# left will shrink the containers width
|
||||
# right will grow the containers width
|
||||
# up will shrink the containers height
|
||||
# down will grow the containers height
|
||||
bindsym $left resize shrink width 10px
|
||||
bindsym $down resize grow height 10px
|
||||
bindsym $up resize shrink height 10px
|
||||
bindsym $right resize grow width 10px
|
||||
|
||||
# Ditto, with arrow keys
|
||||
bindsym Left resize shrink width 10px
|
||||
bindsym Down resize grow height 10px
|
||||
bindsym Up resize shrink height 10px
|
||||
bindsym Right resize grow width 10px
|
||||
|
||||
# Return to default mode
|
||||
bindsym Return mode "default"
|
||||
bindsym Escape mode "default"
|
||||
}
|
||||
bindsym $mod+r mode "resize"
|
||||
|
||||
#
|
||||
# Status Bar:
|
||||
#
|
||||
# Read `man 5 sway-bar` for more information about this section.
|
||||
bar {
|
||||
swaybar_command waybar
|
||||
}
|
||||
|
||||
include /etc/sway/config.d/*
|
|
@ -0,0 +1,15 @@
|
|||
# This file is written by xdg-user-dirs-update
|
||||
# If you want to change or add directories, just edit the line you're
|
||||
# interested in. All local changes will be retained on the next run.
|
||||
# Format is XDG_xxx_DIR="$HOME/yyy", where yyy is a shell-escaped
|
||||
# homedir-relative path, or XDG_xxx_DIR="/yyy", where /yyy is an
|
||||
# absolute path. No other format is supported.
|
||||
#
|
||||
XDG_DESKTOP_DIR="$HOME/"
|
||||
XDG_DOWNLOAD_DIR="$HOME/downloads"
|
||||
XDG_TEMPLATES_DIR="$HOME/"
|
||||
XDG_DOCUMENTS_DIR="$HOME/docs"
|
||||
XDG_MUSIC_DIR="$HOME/music"
|
||||
XDG_PICTURES_DIR="$HOME/media"
|
||||
XDG_VIDEOS_DIR="$HOME/media"
|
||||
XDG_PUBLICSHARE_DIR="$HOME/downloads"
|
|
@ -0,0 +1,70 @@
|
|||
{
|
||||
"height": 35, // Waybar height (to be removed for auto height)
|
||||
"spacing": 4, // Gaps between modules (4px)
|
||||
|
||||
"modules-left": ["sway/workspaces"],
|
||||
"modules-center": ["sway/window"],
|
||||
"modules-right": ["wireplumber", "network", "backlight", "keyboard-state", "sway/language", "battery", "clock", "tray"],
|
||||
|
||||
"sway/window": {
|
||||
"format": "{title}",
|
||||
"max-length": 120
|
||||
},
|
||||
|
||||
"keyboard-state": {
|
||||
"numlock": true,
|
||||
"capslock": true,
|
||||
"format": "{name} {icon}",
|
||||
"format-icons": {
|
||||
"locked": "",
|
||||
"unlocked": ""
|
||||
}
|
||||
},
|
||||
|
||||
"sway/mode": {
|
||||
"format": "<span style=\"italic\">{}</span>"
|
||||
},
|
||||
|
||||
"sway/language": {
|
||||
"format": "{}",
|
||||
"on-click": "swaymsg input type:keyboard xkb_switch_layout next",
|
||||
},
|
||||
|
||||
"backlight": {
|
||||
// "device": "acpi_video1",
|
||||
"format": "{percent}% {icon}",
|
||||
"format-icons": ["", "", "", "", "", "", "", "", ""]
|
||||
},
|
||||
|
||||
"battery": {
|
||||
"states": {
|
||||
// "good": 95,
|
||||
"warning": 30,
|
||||
"critical": 15
|
||||
},
|
||||
"format": "{capacity}% {icon}",
|
||||
"format-charging": "{capacity}% ",
|
||||
"format-plugged": "{capacity}% ",
|
||||
"format-alt": "{time} {icon}",
|
||||
// "format-good": "", // An empty format will hide the module
|
||||
// "format-full": "",
|
||||
"format-icons": ["", "", "", "", ""]
|
||||
},
|
||||
|
||||
"network": {
|
||||
// "interface": "wlp2*", // (Optional) To force the use of this interface
|
||||
"format-wifi": "{essid} ({signalStrength}%) ",
|
||||
"format-ethernet": " {ipaddr}/{cidr} ",
|
||||
"tooltip-format": "{ifname} via {gwaddr} ",
|
||||
"format-linked": "{ifname} (No IP) ",
|
||||
"format-disconnected": "Disconnected ⚠",
|
||||
"format-alt": "{ifname}: {ipaddr}/{cidr}"
|
||||
},
|
||||
|
||||
"wireplumber": {
|
||||
"format": "{volume}% {icon}",
|
||||
"format-muted": "",
|
||||
"format-icons": ["", "", ""]
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,65 @@
|
|||
root = true
|
||||
|
||||
[*.{c,cpp,cc,h,hpp,hh}]
|
||||
end_of_line = lf
|
||||
insert_final_newline = true
|
||||
charset = utf-8
|
||||
trim_trailing_whitespace = true
|
||||
indent_style = tab
|
||||
indent_size = 8
|
||||
|
||||
[*.rs]
|
||||
end_of_line = lf
|
||||
insert_final_newline = true
|
||||
charset = utf-8
|
||||
trim_trailing_whitespace = true
|
||||
indent_style = space
|
||||
indent_size = 4
|
||||
|
||||
[meson.build]
|
||||
end_of_line = lf
|
||||
insert_final_newline = true
|
||||
charset = utf-8
|
||||
trim_trailing_whitespace = true
|
||||
indent_style = space
|
||||
indent_size = 4
|
||||
|
||||
[{go.{mod,work},*.go}]
|
||||
end_of_line = lf
|
||||
insert_final_newline = true
|
||||
charset = utf-8
|
||||
trim_trailing_whitespace = true
|
||||
indent_style = tab
|
||||
indent_size = 8
|
||||
|
||||
[*.nix]
|
||||
end_of_line = lf
|
||||
insert_final_newline = true
|
||||
charset = utf-8
|
||||
trim_trailing_whitespace = true
|
||||
indent_style = space
|
||||
indent_size = 2
|
||||
|
||||
[*.{lisp,el,edn,clj}]
|
||||
end_of_line = lf
|
||||
insert_final_newline = true
|
||||
charset = utf-8
|
||||
trim_trailing_whitespace = true
|
||||
indent_style = space
|
||||
indent_size = 2
|
||||
|
||||
[*.html]
|
||||
end_of_line = lf
|
||||
insert_final_newline = true
|
||||
charset = utf-8
|
||||
trim_trailing_whitespace = true
|
||||
indent_style = space
|
||||
indent_size = 4
|
||||
|
||||
[APKBUILD]
|
||||
end_of_line = lf
|
||||
insert_final_newline = true
|
||||
charset = utf-8
|
||||
trim_trailing_whitespace = true
|
||||
indent_style = tab
|
||||
indent_size = 8
|
|
@ -0,0 +1,44 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
[ -z "$DOTCTLCMD" ] && DOTCTLCMD="git --git-dir=$DOTFILEDIR --work-tree=$HOME"
|
||||
|
||||
case $1 in
|
||||
ls) echo "==> ${DOTFILEBRANCH:=main} <=="
|
||||
$DOTCTLCMD ls-tree --full-tree -r --name-only $DOTFILEBRANCH
|
||||
echo "==> staging <=="
|
||||
$DOTCTLCMD diff --name-only --cached
|
||||
;;
|
||||
sync)
|
||||
$DOTCTLCMD add -A ~/.
|
||||
echo "==> staging <=="
|
||||
$DOTCTLCMD diff --name-only --cached
|
||||
;;
|
||||
add) $DOTCTLCMD add -f ${@:2} ;;
|
||||
amend) $DOTCTLCMD commit --amend --no-edit ${@:2} ;;
|
||||
autocheckout) $DOTCTLCMD checkout ${DOTFILEBRANCH:-main} ${@:2} ;;
|
||||
cmd) $DOTCTLCMD ${@:2} ;;
|
||||
commit) $DOTCTLCMD commit ${@:2} ;;
|
||||
diff) $DOTCTLCMD diff --staged ${@:2} ;;
|
||||
log) $DOTCTLCMD log ${@:2} ;;
|
||||
pull) $DOTCTLCMD pull ${@:2} ;;
|
||||
push) $DOTCTLCMD push -u origin ${DOTFILEBRANCH:-main} ;;
|
||||
rm) $DOTCTLCMD rm --cached -r -f ${@:2};;
|
||||
sdiff) $DOTCTLCMD diff --staged ${@:2} ;;
|
||||
*) echo "dotctl - stupid bare git repo wrapper for dotfiles"
|
||||
echo "Setup:"
|
||||
echo " * cerate a bare repo, specify the remote repo and set its path to DOTFILEDIR"
|
||||
echo " * specify a branch as DOTFILEBRANCH or use main by default"
|
||||
echo "Usage: dotctl [OPTION] ([ARGUMENT])"
|
||||
echo "Options:"
|
||||
echo " add [FILE]: add FILE to the repository"
|
||||
echo " amend: amend changes to an existing commit"
|
||||
echo " commit: commit changes"
|
||||
echo " diff: show diff of staged changes"
|
||||
echo " log: same as normal log"
|
||||
echo " ls: list files staging and used branch"
|
||||
echo " push: push to DOTFILEBRANCH (default: main, currently: ${DOTFILEBRANCH:-main})"
|
||||
echo " rm [FILE]: remove FILE from tracking only"
|
||||
echo " sdiff: diff staged changed"
|
||||
echo " sync: add all changes in tracked files"
|
||||
;;
|
||||
esac
|
|
@ -0,0 +1,14 @@
|
|||
[alias]
|
||||
a = "audit"
|
||||
b = "build"
|
||||
bb = "build --release"
|
||||
c = "clippy"
|
||||
d = "doc"
|
||||
dd = "doc --release"
|
||||
do = "doc --open"
|
||||
ddo = "doc --release --open"
|
||||
o = "outdated"
|
||||
r = "run"
|
||||
rr = "run --release"
|
||||
t = "nextest run"
|
||||
u = "update"
|
|
@ -0,0 +1,14 @@
|
|||
if [[ -n $BASH ]]; then
|
||||
set -a
|
||||
for f in ~/.config/environment.d/*.conf; do
|
||||
source $f
|
||||
done
|
||||
set +a
|
||||
fi
|
||||
|
||||
[[ -f ~/.bashrc ]] && . ~/.bashrc
|
||||
|
||||
if [[ -z $WAYLAND_DISPLAY ]] && [[ $(tty) = "/dev/tty1" ]]; then
|
||||
export SSH_AUTH_SOCK="$XDG_RUNTIME_DIR/gcr/ssh"
|
||||
exec sway
|
||||
fi
|
Loading…
Reference in New Issue