This commit is contained in:
Daan Vanoverloop 2021-09-04 09:37:05 +02:00
parent 3e2f735511
commit 5169f2e9dc
15 changed files with 665 additions and 31 deletions

View File

@ -18,4 +18,5 @@ run nm-applet
run /usr/lib/kdeconnectd
run kdeconnect-indicator
run snixembed
run lxpolkit
#run music_wake.sh

View File

@ -820,7 +820,7 @@ globalkeys = gears.table.join(
{description = "launch rofi-pass", group = "launcher"}),
awful.key({ modkey, "Shift" }, "g",
function (c)
rofi_spawn("dmenu_script lutris.sh")
rofi_spawn("dmenu_script game.sh")
end ,
{description = "Play a Game"})
)

View File

@ -10,11 +10,11 @@
set $mod Mod4
set_from_resource $bright i3wm.color2 #ff0000
#set_from_resource $bright i3wm.color2 #ff0000
#set_from_resource $bg i3wm.color7 #ff0000
set_from_resource $light i3wm.color4 #ff0000
set_from_resource $fg i3wm.color4 #ff0000
set_from_resource $bg i3wm.color3 #ff0000
#set_from_resource $light i3wm.color4 #ff0000
#set_from_resource $fg i3wm.color4 #ff0000
#set_from_resource $bg i3wm.color3 #ff0000
set $bg-color #000000
set $inactive-bg-color #2f343f
@ -107,8 +107,8 @@ bindsym $mod+Ctrl+Shift+Right exec --no-startup-id ~/.config/i3/rotate.sh left-u
bindsym $mod+Ctrl+Shift+Left exec --no-startup-id ~/.config/i3/rotate.sh right-up
# window border size
new_window pixel 0
new_float pixel 0
default_border pixel 0
default_floating_border pixel 0
# default font
font pango:Open Sans 10

Binary file not shown.

View File

@ -18,13 +18,43 @@ capabilities.textDocument.completion.completionItem.resolveSupport = {
}
-- Enable some language servers with the additional completion capabilities offered by nvim-cmp
local servers = { 'clangd', 'rust_analyzer', 'pyright', 'tsserver', 'svelte' }
local servers = { 'clangd', 'pyright', 'tsserver', 'svelte' }
for _, lsp in ipairs(servers) do
lspconfig[lsp].setup {
-- on_attach = my_custom_on_attach,
on_attach = function(client, bufnr)
local basics = require('lsp_basics')
basics.make_lsp_commands(client, bufnr)
basics.make_lsp_mappings(client, bufnr)
end,
capabilities = capabilities,
}
end
end
lspconfig['rust_analyzer'].setup({
on_attach = function(client, bufnr)
local basics = require('lsp_basics')
basics.make_lsp_commands(client, bufnr)
basics.make_lsp_mappings(client, bufnr)
end,
capabilities = capabilities,
settings = {
["rust-analyzer"] = {
cargo = {
allFeatures = true,
},
procMacro = {
enable = true
},
}
}
})
-- Exrta features
vim.cmd([[autocmd BufEnter,BufWinEnter,TabEnter *.rs :lua require'lsp_extensions'.inlay_hints{}]])
require('lspkind').init{}
require "lsp_signature".setup()
-- luasnip setup
local luasnip = require 'luasnip'
@ -57,3 +87,39 @@ cmp.setup {
{ name = 'luasnip' },
},
}
-- Diagnostics
--[[
vim.cmd[[
" Errors in Red
hi LspDiagnosticsVirtualTextError guifg=red ctermfg=red
" Warnings in Yellow
hi LspDiagnosticsVirtualTextWarning guifg=yellow ctermfg=yellow
" Info and Hints in White
hi LspDiagnosticsVirtualTextInformation guifg=white ctermfg=white
hi LspDiagnosticsVirtualTextHint guifg=white ctermfg=white
" Underline the offending code
hi LspDiagnosticsUnderlineError guifg=NONE ctermfg=NONE cterm=underline gui=underline
hi LspDiagnosticsUnderlineWarning guifg=NONE ctermfg=NONE cterm=underline gui=underline
hi LspDiagnosticsUnderlineInformation guifg=NONE ctermfg=NONE cterm=underline gui=underline
hi LspDiagnosticsUnderlineHint guifg=NONE ctermfg=NONE cterm=underline gui=underline
]]
--]]
vim.lsp.handlers["textDocument/publishDiagnostics"] = vim.lsp.with(
vim.lsp.diagnostic.on_publish_diagnostics, {
-- Enable underline, use default values
underline = true,
-- Enable virtual text only on Warning or above, override spacing to 2
virtual_text = {
spacing = 2,
},
}
)
vim.cmd[[
autocmd ColorScheme * :lua require('vim.lsp.diagnostic')._define_default_signs_and_highlights()
autocmd CursorHold * lua vim.lsp.diagnostic.show_line_diagnostics()
]]

View File

@ -33,22 +33,12 @@ require('formatter').setup({
}
end
},
lua = {
-- luafmt
function()
return {
exe = "luafmt",
args = {"--indent-count", 2, "--stdin"},
stdin = true
}
end
},
}
})
vim.api.nvim_exec([[
augroup FormatAutogroup
autocmd!
autocmd BufWritePost *.svelte,*.js,*.rs,*.lua FormatWrite
autocmd BufWritePost *.svelte,*.js,*.rs FormatWrite
augroup END
]], true)

View File

@ -2,10 +2,43 @@ local map = vim.api.nvim_set_keymap
local function n(...) map("n", ...) end
local function x(...) map("x", ...) end
local function i(...) map("i", ...) end
local opts = { noremap = true, silent = true }
-- Telescope
n("<C-f>", "<cmd>Telescope find_files<cr>", { noremap = true })
n("<C-b>", "<cmd>Telescope buffers<cr>", { noremap = true })
n("<C-f>", "<cmd>lua require('telescope.builtin').find_files()<cr>", { noremap = true })
n("<C-b>", "<cmd>lua require('telescope.builtin').buffers()<cr>", { noremap = true })
n("<C-a>", "<cmd>lua require('telescope.builtin').lsp_code_actions()<cr>", { noremap = true })
-- Tabs
n('gT', ':BufferPrevious<CR>', {})
n('gt', ':BufferNext<CR>', {})
-- Re-order to previous/next
n('<A-<>', ':BufferMovePrevious<CR>', opts)
n('<A->>', ' :BufferMoveNext<CR>', opts)
-- Goto buffer in position...
n('<A-1>', ':BufferGoto 1<CR>', opts)
n('<A-2>', ':BufferGoto 2<CR>', opts)
n('<A-3>', ':BufferGoto 3<CR>', opts)
n('<A-4>', ':BufferGoto 4<CR>', opts)
n('<A-5>', ':BufferGoto 5<CR>', opts)
n('<A-6>', ':BufferGoto 6<CR>', opts)
n('<A-7>', ':BufferGoto 7<CR>', opts)
n('<A-8>', ':BufferGoto 8<CR>', opts)
n('<A-9>', ':BufferGoto 9<CR>', opts)
n('<A-0>', ':BufferLast<CR>', opts)
-- Close buffer
n('<A-c>', ':BufferClose<CR>', opts)
-- Wipeout buffer
-- :BufferWipeout<CR>
-- Close commands
-- :BufferCloseAllButCurrent<CR>
-- :BufferCloseBuffersLeft<CR>
-- :BufferCloseBuffersRight<CR>
-- Magic buffer-picking mode
n('<C-p>', ':BufferPick<CR>', opts)
-- Code actions
vim.cmd [[autocmd CursorHold,CursorHoldI * lua require'nvim-lightbulb'.update_lightbulb()]]
-- Tree
n("<S-T>", ":NvimTreeToggle<cr>", {})

View File

@ -12,8 +12,10 @@ o.number = true
o.relativenumber = true
-- Theme
o.background = "dark"
vim.cmd("colorscheme one")
--require('onedark').setup()
--vim.cmd("colorscheme one-nvim")
vim.opt.termguicolors = true
vim.api.nvim_command 'colorscheme one-nvim'
-- Misc
o.mouse = 'a'
@ -22,3 +24,4 @@ o.backup = false
o.swapfile = false
o.showmode = true
o.termguicolors = true
o.updatetime = 1000

View File

@ -21,6 +21,34 @@ return require('packer').startup(function()
use 'hrsh7th/cmp-nvim-lsp'
use 'saadparwaiz1/cmp_luasnip'
use 'L3MON4D3/LuaSnip'
use 'nvim-lua/lsp_extensions.nvim'
use 'kosayoda/nvim-lightbulb'
use {
"folke/trouble.nvim",
requires = "kyazdani42/nvim-web-devicons",
config = function()
require("trouble").setup{}
end
}
use 'onsails/lspkind-nvim'
use {
"ray-x/lsp_signature.nvim",
}
use 'nanotee/nvim-lsp-basics'
-- Tabs
use {
'romgrk/barbar.nvim',
requires = {'kyazdani42/nvim-web-devicons'}
}
-- Scrolling
use {
'karb94/neoscroll.nvim',
config = function()
require('neoscroll').setup()
end
}
-- Syntax highlighting
use { 'nvim-treesitter/nvim-treesitter', run = ':TSUpdate' }
@ -40,11 +68,24 @@ return require('packer').startup(function()
requires = 'kyazdani42/nvim-web-devicons'
}
use {
'glacambre/firenvim',
run = function() vim.fn['firenvim#install'](0) end
}
use {
'jghauser/mkdir.nvim',
config = function()
require('mkdir')
end
}
-- Session
use 'rmagatti/auto-session'
-- Theme
use 'rakr/vim-one'
use 'navarasu/onedark.nvim'
use 'Th3Whit3Wolf/one-nvim'
-- Status lioe
use 'glepnir/galaxyline.nvim'

View File

@ -33,7 +33,7 @@ mark-ovredir-focused = true;
detect-rounded-corners = true;
detect-client-opacity = true;
refresh-rate = 0;
vsync = true;
vsync = false;
dbe = false;
focus-exclude = [ "class_g = 'Cairo-clock'" ];
detect-transient = true;

159
.config/river/init Executable file
View File

@ -0,0 +1,159 @@
#!/bin/sh
# This is the example configuration file for river.
#
# If you wish to edit this, you will probably want to copy it to
# $XDG_CONFIG_HOME/river/init or $HOME/.config/river/init first.
#
# See the river(1), riverctl(1), and rivertile(1) man pages for complete
# documentation.
# Use the "logo" key as the primary modifier
mod="Mod4"
# Mod+Shift+Return to start an instance of foot (https://codeberg.org/dnkl/foot)
riverctl map normal $mod Return spawn alacritty
riverctl map normal $mod D spawn rofi -show drun
# Mod+Q to close the focused view
riverctl map normal $mod+Shift Q close
# Mod+E to exit river
riverctl map normal $mod+Shift E exit
# Mod+J and Mod+K to focus the next/previous view in the layout stack
riverctl map normal $mod J focus-view next
riverctl map normal $mod K focus-view previous
# Mod+Shift+J and Mod+Shift+K to swap the focused view with the next/previous
# view in the layout stack
riverctl map normal $mod+Shift J swap next
riverctl map normal $mod+Shift K swap previous
# Mod+Period and Mod+Comma to focus the next/previous output
riverctl map normal $mod Period focus-output next
riverctl map normal $mod Comma focus-output previous
# Mod+Shift+{Period,Comma} to send the focused view to the next/previous output
riverctl map normal $mod+Shift Period send-to-output next
riverctl map normal $mod+Shift Comma send-to-output previous
# Mod+Return to bump the focused view to the top of the layout stack
riverctl map normal $mod+Shift Return zoom
# Mod+H and Mod+L to decrease/increase the main_factor value of rivertile by 0.05
riverctl map normal $mod H mod-layout-value rivertile fixed main_factor -0.05
riverctl map normal $mod L mod-layout-value rivertile fixed main_factor +0.05
# Mod+Shift+H and Mod+Shift+L to increment/decrement the main_count value of rivertile.
riverctl map normal $mod+Shift H mod-layout-value rivertile int main_count +1
riverctl map normal $mod+Shift L mod-layout-value rivertile int main_count -1
# Mod+Alt+{H,J,K,L} to move views
riverctl map normal $mod+Mod1 H move left 100
riverctl map normal $mod+Mod1 J move down 100
riverctl map normal $mod+Mod1 K move up 100
riverctl map normal $mod+Mod1 L move right 100
# Mod+Alt+Control+{H,J,K,L} to snap views to screen edges
riverctl map normal $mod+Mod1+Control H snap left
riverctl map normal $mod+Mod1+Control J snap down
riverctl map normal $mod+Mod1+Control K snap up
riverctl map normal $mod+Mod1+Control L snap right
# Mod+Alt+Shif+{H,J,K,L} to resize views
riverctl map normal $mod+Mod1+Shift H resize horizontal -100
riverctl map normal $mod+Mod1+Shift J resize vertical 100
riverctl map normal $mod+Mod1+Shift K resize vertical -100
riverctl map normal $mod+Mod1+Shift L resize horizontal 100
# Mod + Left Mouse Button to move views
riverctl map-pointer normal $mod BTN_LEFT move-view
# Mod + Right Mouse Button to resize views
riverctl map-pointer normal $mod BTN_RIGHT resize-view
for i in $(seq 1 9)
do
tags=$((1 << ($i - 1)))
# Mod+[1-9] to focus tag [0-8]
riverctl map normal $mod $i set-focused-tags $tags
# Mod+Shift+[1-9] to tag focused view with tag [0-8]
riverctl map normal $mod+Shift $i set-view-tags $tags
# Mod+Ctrl+[1-9] to toggle focus of tag [0-8]
riverctl map normal $mod+Control $i toggle-focused-tags $tags
# Mod+Shift+Ctrl+[1-9] to toggle tag [0-8] of focused view
riverctl map normal $mod+Shift+Control $i toggle-view-tags $tags
done
# Mod+0 to focus all tags
# Mod+Shift+0 to tag focused view with all tags
all_tags=$(((1 << 32) - 1))
riverctl map normal $mod 0 set-focused-tags $all_tags
riverctl map normal $mod+Shift 0 set-view-tags $all_tags
# Mod+Space to toggle float
riverctl map normal $mod Space toggle-float
# Mod+F to toggle fullscreen
riverctl map normal $mod F toggle-fullscreen
# Mod+{Up,Right,Down,Left} to change layout orientation
riverctl map normal $mod Up set-layout-value rivertile string main_location top
riverctl map normal $mod Right set-layout-value rivertile string main_location right
riverctl map normal $mod Down set-layout-value rivertile string main_location bottom
riverctl map normal $mod Left set-layout-value rivertile string main_location left
# Declare a passthrough mode. This mode has only a single mapping to return to
# normal mode. This makes it useful for testing a nested wayland compositor
riverctl declare-mode passthrough
# Mod+F11 to enter passthrough mode
riverctl map normal $mod F11 enter-mode passthrough
# Mod+F11 to return to normal mode
riverctl map passthrough $mod F11 enter-mode normal
# Various media key mapping examples for both normal and locked mode which do
# not have a modifier
for mode in normal locked
do
# Control pulse audio volume with pamixer (https://github.com/cdemoulins/pamixer)
riverctl map $mode None XF86AudioRaiseVolume spawn pamixer -i 5
riverctl map $mode None XF86AudioLowerVolume spawn pamixer -d 5
riverctl map $mode None XF86AudioMute spawn pamixer --toggle-mute
# Control screen backlight brighness with light (https://github.com/haikarainen/light)
riverctl map $mode None XF86MonBrightnessUp spawn xbacklight -inc 5
riverctl map $mode None XF86MonBrightnessDown spawn xbacklight -dec 5
done
# Set repeat rate
riverctl set-repeat 50 300
# Set app-ids of views which should float
riverctl float-filter-add "float"
riverctl float-filter-add "popup"
# Set app-ids of views which should use client side decorations
riverctl csd-filter-add "gedit"
# Set opacity and fade effect
# riverctl opacity 1.0 0.75 0.0 0.1 20
riverctl input 7847:4102:BTL_Gaming_Mouse pointer-accel 0
riverctl input 7847:4102:BTL_Gaming_Mouse accel-profile flat
exec mako &
exec ~/Scripts/setbg_wl.sh &
exec waybar &
# Set and exec into the default layout generator, rivertile.
# River will send the process group of the init executable SIGTERM on exit.
riverctl default-layout rivertile
exec rivertile

143
.config/waybar/config Normal file
View File

@ -0,0 +1,143 @@
// =============================================================================
//
// Waybar configuration
//
// Configuration reference: https://github.com/Alexays/Waybar/wiki/Configuration
//
// =============================================================================
{
// -------------------------------------------------------------------------
// Global configuration
// -------------------------------------------------------------------------
"layer": "top",
"position": "top",
// If height property would be not present, it'd be calculated dynamically
"height": 30,
"modules-left": [
"river/tags"
],
"modules-center": [
],
"modules-right": [
"network",
"memory",
"cpu",
"temperature",
"custom/keyboard-layout",
"pulseaudio",
"battery",
"tray",
"clock#date",
"clock#time"
],
// -------------------------------------------------------------------------
// Modules
// -------------------------------------------------------------------------
"battery": {
"interval": 10,
"states": {
"warning": 30,
"critical": 15
},
// Connected to AC
"format": " {icon} {capacity}%", // Icon: bolt
// Not connected to AC
"format-discharging": "{icon} {capacity}%",
"format-icons": [
"", // Icon: battery-full
"", // Icon: battery-three-quarters
"", // Icon: battery-half
"", // Icon: battery-quarter
"" // Icon: battery-empty
],
"tooltip": true
},
"clock#time": {
"interval": 1,
"format": "{:%H:%M}",
"tooltip": false
},
"clock#date": {
"interval": 10,
"format": " {:%e %b %Y}", // Icon: calendar-alt
"tooltip-format": "{:%e %B %Y}"
},
"cpu": {
"interval": 5,
"format": " {usage}% ({load})", // Icon: microchip
"states": {
"warning": 70,
"critical": 90
}
},
"memory": {
"interval": 5,
"format": "{used:0.1f} GiB", // Icon: memory
"states": {
"warning": 70,
"critical": 90
}
},
"network": {
"interval": 5,
"format-wifi": " {essid} ({signalStrength}%)", // Icon: wifi
"format-ethernet": "", // Icon: ethernet
"format-disconnected": "⚠ Disconnected",
"tooltip-format": "{ifname}: {ipaddr}"
},
"river/tags": {
"num-tags": 5
},
"pulseaudio": {
//"scroll-step": 1,
"format": "{icon} {volume}%",
"format-bluetooth": "{icon} {volume}%",
"format-muted": "",
"format-icons": {
"headphones": "",
"handsfree": "",
"headset": "",
"phone": "",
"portable": "",
"car": "",
"default": ["", ""]
},
"on-click": "pavucontrol"
},
"temperature": {
"critical-threshold": 80,
"interval": 5,
"format": "{icon} {temperatureC}°C",
"format-icons": [
"", // Icon: temperature-empty
"", // Icon: temperature-quarter
"", // Icon: temperature-half
"", // Icon: temperature-three-quarters
"" // Icon: temperature-full
],
"tooltip": true
},
"tray": {
"icon-size": 21,
"spacing": 10
}
}

195
.config/waybar/style.css Normal file
View File

@ -0,0 +1,195 @@
/* =============================================================================
*
* Waybar configuration
*
* Configuration reference: https://github.com/Alexays/Waybar/wiki/Configuration
*
* =========================================================================== */
/* -----------------------------------------------------------------------------
* Keyframes
* -------------------------------------------------------------------------- */
@keyframes blink-warning {
70% {
color: white;
}
to {
color: white;
background-color: orange;
}
}
@keyframes blink-critical {
70% {
color: white;
}
to {
color: white;
background-color: red;
}
}
/* -----------------------------------------------------------------------------
* Base styles
* -------------------------------------------------------------------------- */
/* Reset all styles */
* {
border: none;
border-radius: 0;
min-height: 0;
margin: 0;
padding: 0;
}
/* The whole bar */
#waybar {
background: rgba(0, 0, 0, 0);
color: white;
font-family: Cantarell, Noto Sans, sans-serif;
font-size: 13px;
}
/* Each module */
#battery,
#clock,
#cpu,
#custom-keyboard-layout,
#memory,
#mode,
#network,
#pulseaudio,
#temperature,
#tray {
padding-left: 10px;
padding-right: 10px;
}
/* -----------------------------------------------------------------------------
* Module styles
* -------------------------------------------------------------------------- */
#battery {
animation-timing-function: linear;
animation-iteration-count: infinite;
animation-direction: alternate;
}
#battery.warning {
color: orange;
}
#battery.critical {
color: red;
}
#battery.warning.discharging {
animation-name: blink-warning;
animation-duration: 3s;
}
#battery.critical.discharging {
animation-name: blink-critical;
animation-duration: 2s;
}
#clock {
font-weight: bold;
}
#cpu {
/* No styles */
}
#cpu.warning {
color: orange;
}
#cpu.critical {
color: red;
}
#memory {
animation-timing-function: linear;
animation-iteration-count: infinite;
animation-direction: alternate;
}
#memory.warning {
color: orange;
}
#memory.critical {
color: red;
animation-name: blink-critical;
animation-duration: 2s;
}
#mode {
background: #64727D;
border-top: 2px solid white;
/* To compensate for the top border and still have vertical centering */
padding-bottom: 2px;
}
#network {
/* No styles */
}
#network.disconnected {
color: orange;
}
#pulseaudio {
/* No styles */
}
#pulseaudio.muted {
/* No styles */
}
#custom-spotify {
color: rgb(102, 220, 105);
}
#temperature {
/* No styles */
}
#temperature.critical {
color: red;
}
#tray {
/* No styles */
}
#window {
font-weight: bold;
}
#tags button {
border-top: 2px solid transparent;
/* To compensate for the top border and still have vertical centering */
padding-bottom: 2px;
padding-left: 10px;
padding-right: 10px;
color: #888888;
}
#tags button.focused {
border-color: #4c7899;
color: white;
background-color: #285577;
}
#tags button.urgent {
border-color: #c9545d;
color: #c9545d;
}

View File

@ -1,10 +1,13 @@
export QT_QPA_PLATFORMTHEME="qt5ct"
export VK_ICD_FILENAMES="/usr/share/vulkan/icd.d/radeon_icd.x86_64.json:/usr/share/vulkan/icd.d/radeon_icd.i686.json:/usr/share/vulkan/icd.d/amd_icd64.json:/usr/share/vulkan/icd.d/amd_icd32.json"
export VK_ICD_FILENAMES="/usr/share/vulkan/icd.d/radeon_icd.x86_64.json:/usr/share/vulkan/icd.d/radeon_icd.i686.json"
export _JAVA_AWT_WM_NONREPARENTING=1
export XKB_DEFAULT_OPTIONS=caps:escape
if [ -d "$HOME/.local/bin" ] ; then
PATH="$HOME/.local/bin:$PATH"
fi
if [[ ! $DISPLAY && $XDG_VTNR -eq 1 ]]; then
exec startx /home/daan/.config/penrose/start-penrose.sh
#exec startx /home/daan/.config/penrose/start-penrose.sh
#exec startx
fi

4
.zshrc
View File

@ -180,8 +180,6 @@ alias mkpy="python -m venv"
bindkey -v
bindkey "^?" backward-delete-char
zle-line-init() { zle -K vicmd; }
zle -N zle-line-init
HYPHEN_INSENSITIVE="true"
COMPLETION_WAITING_DOTS="true"
@ -290,6 +288,8 @@ alias config='/usr/bin/git --git-dir=/home/daan/.cfg/ --work-tree=/home/daan'
alias config='/usr/bin/git --git-dir=/home/daan/.cfg/ --work-tree=/home/daan'
#source /home/daan/.local/bin/tp
alias chadgit="GIT_SSH_COMMAND='ssh -i ~/.ssh/id_rsa_tor -o IdentitiesOnly=yes' git"
# >>> conda initialize >>>
# !! Contents within this block are managed by 'conda init' !!
#__conda_setup="$('/usr/bin/conda' 'shell.zsh' 'hook' 2> /dev/null)"