Compare commits
86 Commits
Author | SHA1 | Date | |
---|---|---|---|
445d03d12f | |||
7614873866 | |||
45f378c73a | |||
3922a1d388 | |||
9fdfd70f25 | |||
f04c062c82 | |||
ad7c922d65 | |||
e4f9c53060 | |||
b16702c28e | |||
6f2e18367f | |||
c20fba7799 | |||
6f034c3cb9 | |||
ba32c341bf | |||
7a37c9ba6f | |||
e12aeb3903 | |||
05fab7dd81 | |||
5aa7592a02 | |||
fe9efd13a8 | |||
cb70a715c0 | |||
1ac8d8d91f | |||
402a0f86ba | |||
0502e6945e | |||
f8b0256b9e | |||
3de58bb297 | |||
c13e8b3d9d | |||
9cb06b490f | |||
778362e85e | |||
18fdf1adc7 | |||
d8dad0762e | |||
ae65624398 | |||
3f1072471e | |||
47368004ab | |||
973d5649fc | |||
81c0e7e27e | |||
7d426ae1ab | |||
abcc7e16cb | |||
1c40ae6526 | |||
87ca1e1efc | |||
c87f867b4c | |||
f522935be9 | |||
db193417c8 | |||
cb4bc3f2d2 | |||
a25bf962ff | |||
fd6b431d51 | |||
718dc045db | |||
9b0160cc0a | |||
03a2f6cafd | |||
59586947d9 | |||
b04dfb860a | |||
af4057e4ec | |||
99c25cf2a8 | |||
261eabb7f2 | |||
484b1cbbd5 | |||
380fef687a | |||
29a6649a49 | |||
b70caa2bb8 | |||
ad2e5660dd | |||
34caaae5fb | |||
a2e6853a1c | |||
117a0ee6c8 | |||
b80eadc6f7 | |||
137212b13d | |||
a2daf9f9d9 | |||
3745e8675f | |||
c898f392de | |||
e24271fbd4 | |||
bfe8473374 | |||
dbb30ab893 | |||
eb8fb1d960 | |||
e1a1cbea60 | |||
596c2bebb2 | |||
e153bf2eaa | |||
161af14f7f | |||
18021a3eb5 | |||
d4233d6440 | |||
ad45e8d767 | |||
f1b0f2f13f | |||
f9b79325e0 | |||
7d8fc24991 | |||
3e2a72cec1 | |||
7b551b83b8 | |||
320a00dd29 | |||
47b13b6072 | |||
8375fb5cff | |||
2d4cddbf4c | |||
d297e32b03 |
BIN
.color/icc/BOE_CQ_______NE135FBM_N41_03.icc
Normal file
BIN
.color/icc/BOE_CQ_______NE135FBM_N41_03.icc
Normal file
Binary file not shown.
48
.config/IJHack/QtPass.conf
Normal file
48
.config/IJHack/QtPass.conf
Normal file
@ -0,0 +1,48 @@
|
|||||||
|
[General]
|
||||||
|
addGPGId=true
|
||||||
|
alwaysOnTop=false
|
||||||
|
autoPull=true
|
||||||
|
autoPush=true
|
||||||
|
autoclearPanelSeconds=10
|
||||||
|
autoclearSeconds=10
|
||||||
|
avoidCapitals=false
|
||||||
|
avoidNumbers=false
|
||||||
|
clipBoardType=2
|
||||||
|
displayAsIs=false
|
||||||
|
gitExecutable=/usr/bin/git
|
||||||
|
gpgExecutable=/usr/bin/gpg2
|
||||||
|
hideContent=false
|
||||||
|
hideOnClose=true
|
||||||
|
hidePassword=true
|
||||||
|
lessRandom=false
|
||||||
|
noLineWrapping=false
|
||||||
|
passExecutable=/usr/bin/pass
|
||||||
|
passStore=/home/od/.password-store/
|
||||||
|
passTemplate=login\nurl
|
||||||
|
passwordChars="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890~!@#$%^&*()_-+={}[]|:;<>,.?"
|
||||||
|
passwordCharsselection=0
|
||||||
|
passwordLength=16
|
||||||
|
pwgenExecutable=/usr/bin/pwgen
|
||||||
|
qrencodeExecutable=
|
||||||
|
startMinimized=false
|
||||||
|
templateAllFields=false
|
||||||
|
useAutoclear=false
|
||||||
|
useAutoclearPanel=false
|
||||||
|
useGit=true
|
||||||
|
useMonospace=false
|
||||||
|
useOtp=false
|
||||||
|
usePass=true
|
||||||
|
usePwgen=true
|
||||||
|
useQrencode=false
|
||||||
|
useSelection=false
|
||||||
|
useSymbols=false
|
||||||
|
useTemplate=true
|
||||||
|
useTrayIcon=true
|
||||||
|
version=1.4.0
|
||||||
|
|
||||||
|
[mainwindow]
|
||||||
|
geometry=@ByteArray(\x1\xd9\xd0\xcb\0\x3\0\0\0\0\0\0\0\0\0\0\0\0\x5\x81\0\0\x3\x90\0\0\0\0\0\0\0\0\0\0\x5\x81\0\0\x3\x90\0\0\0\0\0\0\0\0\x5\x82\0\0\0\0\0\0\0\0\0\0\x5\x81\0\0\x3\x90)
|
||||||
|
maximized=false
|
||||||
|
pos=@Point(0 0)
|
||||||
|
savestate=@ByteArray(\0\0\0\xff\0\0\0\0\xfd\0\0\0\0\0\0\x5\x82\0\0\x3G\0\0\0\x4\0\0\0\x4\0\0\0\b\0\0\0\b\xfc\0\0\0\x1\0\0\0\x2\0\0\0\x1\0\0\0\xe\0t\0o\0o\0l\0\x42\0\x61\0r\x1\0\0\0\0\xff\xff\xff\xff\0\0\0\0\0\0\0\0)
|
||||||
|
size=@Size(1410 913)
|
3
.config/chromium-flags.conf
Normal file
3
.config/chromium-flags.conf
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
# Permet à Chromium de se lancer dans Wayland
|
||||||
|
--enable-features=UseOzonePlatform
|
||||||
|
--ozone-platform=wayland
|
18
.config/environment.d/envvars.conf
Normal file
18
.config/environment.d/envvars.conf
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
# Active wayland pour Firefox
|
||||||
|
MOZ_ENABLE_WAYLAND=1
|
||||||
|
# Modifie le comportement JAVA pour PHPStorm
|
||||||
|
_JAVA_AWT_WM_NONREPARENTING=1
|
||||||
|
# Demandé par les applications QT (notamment Slack)
|
||||||
|
QT_QPA_PLATFORM=wayland
|
||||||
|
# Pour les applications utilisant Electron
|
||||||
|
# Cf. https://www.electronjs.org/docs/latest/api/environment-variables
|
||||||
|
ELECTRON_OZONE_PLATFORM_HINT=wayland
|
||||||
|
# Pour wayland
|
||||||
|
SDL_VIDEODRIVER=wayland
|
||||||
|
# Session : déjà fait par sway-systemd. Cf. https://github.com/alebastr/sway-systemd/blob/main/src/session.sh
|
||||||
|
# Regarder dans .config/sway/config, à la fin ça importe /etc/sway/config.d/ qui contient 10-systemd-session.conf qui exécute session.sh
|
||||||
|
# Ce qui import XDG_SESSION_TYPE, XDG_SESSION_DESKTOP, XDG_CURRENT_DESKTOP, etc.
|
||||||
|
#export XDG_SESSION_TYPE=wayland
|
||||||
|
#export XDG_SESSION_DESKTOP=sway
|
||||||
|
# gammastep-indicator n'est plus utilisé dans mon Wayland
|
||||||
|
#export XDG_CURRENT_DESKTOP=sway # for gammastep-indicator
|
12
.config/gammastep/config.ini
Normal file
12
.config/gammastep/config.ini
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
[general]
|
||||||
|
location-provider=manual
|
||||||
|
# 5500-6500
|
||||||
|
temp-day=5700
|
||||||
|
# 3000-4000
|
||||||
|
temp-night=3500
|
||||||
|
adjustment-method=wayland
|
||||||
|
|
||||||
|
# Lieu : Neudorf, chez Agnès
|
||||||
|
[manual]
|
||||||
|
lat=48.5680685
|
||||||
|
lon=7.7709942
|
@ -165,7 +165,7 @@ bindsym $mod+r mode "resize"
|
|||||||
assign [class="jetbrains-idea|Code"] 1
|
assign [class="jetbrains-idea|Code"] 1
|
||||||
assign [class="Google-chrome|Vivaldi-stable|Opera|Firefox|Navigator|Nightly|Chromium"] 2
|
assign [class="Google-chrome|Vivaldi-stable|Opera|Firefox|Navigator|Nightly|Chromium"] 2
|
||||||
assign [class="Thunderbird|Mail|jetbrains-phpstorm"] 3
|
assign [class="Thunderbird|Mail|jetbrains-phpstorm"] 3
|
||||||
assign [class="Mattermost|mattermost-desktop|Rambox|Slack|Scudcloud|Gitter|Dino"] 4
|
assign [class="Mattermost|mattermost-desktop|Rambox|Slack|Scudcloud|Gitter|Dino|Hamsket"] 4
|
||||||
|
|
||||||
##### STATUS BAR
|
##### STATUS BAR
|
||||||
|
|
||||||
@ -240,7 +240,7 @@ smart_gaps on
|
|||||||
exec_always --no-startup-id "kill -9 `ps aux | grep random_wallpaper |grep -v 'grep'| awk '{print $2}'`; random_wallpaper &"
|
exec_always --no-startup-id "kill -9 `ps aux | grep random_wallpaper |grep -v 'grep'| awk '{print $2}'`; random_wallpaper &"
|
||||||
|
|
||||||
# Hasmter indicator
|
# Hasmter indicator
|
||||||
exec --no-startup-id hamster
|
#exec --no-startup-id hamster
|
||||||
|
|
||||||
# Clipit : Presse-papiers pour le bureau
|
# Clipit : Presse-papiers pour le bureau
|
||||||
exec --no-startup-id clipit
|
exec --no-startup-id clipit
|
||||||
|
21
.config/kitty/dark.conf
Normal file
21
.config/kitty/dark.conf
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
background #001e26
|
||||||
|
foreground #708183
|
||||||
|
cursor #708183
|
||||||
|
selection_background #002731
|
||||||
|
color0 #002731
|
||||||
|
color8 #465a61
|
||||||
|
color1 #d01b24
|
||||||
|
color9 #bd3612
|
||||||
|
color2 #728905
|
||||||
|
color10 #465a61
|
||||||
|
color3 #a57705
|
||||||
|
color11 #52676f
|
||||||
|
color4 #2075c7
|
||||||
|
color12 #708183
|
||||||
|
color5 #c61b6e
|
||||||
|
color13 #5856b9
|
||||||
|
color6 #259185
|
||||||
|
color14 #81908f
|
||||||
|
color7 #e9e2cb
|
||||||
|
color15 #fcf4dc
|
||||||
|
selection_foreground #001e26
|
@ -184,7 +184,8 @@ rectangle_select_modifiers ctrl+alt
|
|||||||
allow_remote_control no
|
allow_remote_control no
|
||||||
|
|
||||||
# The value of the TERM environment variable to set
|
# The value of the TERM environment variable to set
|
||||||
term xterm-kitty
|
#term xterm-kitty
|
||||||
|
term xterm-256color
|
||||||
|
|
||||||
# The width (in pts) of window borders. Will be rounded to the nearest number of pixels based on screen resolution.
|
# The width (in pts) of window borders. Will be rounded to the nearest number of pixels based on screen resolution.
|
||||||
# Note that borders are displayed only when more than one window is visible. They are meant to separate multiple windows.
|
# Note that borders are displayed only when more than one window is visible. They are meant to separate multiple windows.
|
||||||
@ -423,3 +424,7 @@ macos_option_as_alt yes
|
|||||||
# The number is a percentage of maximum volume.
|
# The number is a percentage of maximum volume.
|
||||||
# See man XBell for details.
|
# See man XBell for details.
|
||||||
x11_bell_volume 80
|
x11_bell_volume 80
|
||||||
|
|
||||||
|
# Ajout du thème Solarized Light sur https://github.com/dexpota/kitty-themes
|
||||||
|
include ./dark.conf
|
||||||
|
|
||||||
|
21
.config/kitty/light.conf
Normal file
21
.config/kitty/light.conf
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
background #fdf6e3
|
||||||
|
foreground #52676f
|
||||||
|
cursor #52676f
|
||||||
|
selection_background #e9e2cb
|
||||||
|
color0 #e4e4e4
|
||||||
|
color8 #ffffd7
|
||||||
|
color1 #d70000
|
||||||
|
color9 #d75f00
|
||||||
|
color2 #5f8700
|
||||||
|
color10 #585858
|
||||||
|
color3 #af8700
|
||||||
|
color11 #626262
|
||||||
|
color4 #0087ff
|
||||||
|
color12 #808080
|
||||||
|
color5 #af005f
|
||||||
|
color13 #5f5faf
|
||||||
|
color6 #00afaf
|
||||||
|
color14 #8a8a8a
|
||||||
|
color7 #262626
|
||||||
|
color15 #1c1c1c
|
||||||
|
selection_foreground #fcf4dc
|
970
.config/nvim/init.lua
Normal file
970
.config/nvim/init.lua
Normal file
@ -0,0 +1,970 @@
|
|||||||
|
--[[
|
||||||
|
|
||||||
|
=====================================================================
|
||||||
|
==================== READ THIS BEFORE CONTINUING ====================
|
||||||
|
=====================================================================
|
||||||
|
======== .-----. ========
|
||||||
|
======== .----------------------. | === | ========
|
||||||
|
======== |.-""""""""""""""""""-.| |-----| ========
|
||||||
|
======== || || | === | ========
|
||||||
|
======== || KICKSTART.NVIM || |-----| ========
|
||||||
|
======== || || | === | ========
|
||||||
|
======== || || |-----| ========
|
||||||
|
======== ||:Tutor || |:::::| ========
|
||||||
|
======== |'-..................-'| |____o| ========
|
||||||
|
======== `"")----------------(""` ___________ ========
|
||||||
|
======== /::::::::::| |::::::::::\ \ no mouse \ ========
|
||||||
|
======== /:::========| |==hjkl==:::\ \ required \ ========
|
||||||
|
======== '""""""""""""' '""""""""""""' '""""""""""' ========
|
||||||
|
======== ========
|
||||||
|
=====================================================================
|
||||||
|
=====================================================================
|
||||||
|
|
||||||
|
What is Kickstart?
|
||||||
|
|
||||||
|
Kickstart.nvim is *not* a distribution.
|
||||||
|
|
||||||
|
Kickstart.nvim is a starting point for your own configuration.
|
||||||
|
The goal is that you can read every line of code, top-to-bottom, understand
|
||||||
|
what your configuration is doing, and modify it to suit your needs.
|
||||||
|
|
||||||
|
Once you've done that, you can start exploring, configuring and tinkering to
|
||||||
|
make Neovim your own! That might mean leaving Kickstart just the way it is for a while
|
||||||
|
or immediately breaking it into modular pieces. It's up to you!
|
||||||
|
|
||||||
|
If you don't know anything about Lua, I recommend taking some time to read through
|
||||||
|
a guide. One possible example which will only take 10-15 minutes:
|
||||||
|
- https://learnxinyminutes.com/docs/lua/
|
||||||
|
|
||||||
|
After understanding a bit more about Lua, you can use `:help lua-guide` as a
|
||||||
|
reference for how Neovim integrates Lua.
|
||||||
|
- :help lua-guide
|
||||||
|
- (or HTML version): https://neovim.io/doc/user/lua-guide.html
|
||||||
|
|
||||||
|
Kickstart Guide:
|
||||||
|
|
||||||
|
TODO: The very first thing you should do is to run the command `:Tutor` in Neovim.
|
||||||
|
|
||||||
|
If you don't know what this means, type the following:
|
||||||
|
- <escape key>
|
||||||
|
- :
|
||||||
|
- Tutor
|
||||||
|
- <enter key>
|
||||||
|
|
||||||
|
(If you already know the Neovim basics, you can skip this step.)
|
||||||
|
|
||||||
|
Once you've completed that, you can continue working through **AND READING** the rest
|
||||||
|
of the kickstart init.lua.
|
||||||
|
|
||||||
|
Next, run AND READ `:help`.
|
||||||
|
This will open up a help window with some basic information
|
||||||
|
about reading, navigating and searching the builtin help documentation.
|
||||||
|
|
||||||
|
This should be the first place you go to look when you're stuck or confused
|
||||||
|
with something. It's one of my favorite Neovim features.
|
||||||
|
|
||||||
|
MOST IMPORTANTLY, we provide a keymap "<space>sh" to [s]earch the [h]elp documentation,
|
||||||
|
which is very useful when you're not exactly sure of what you're looking for.
|
||||||
|
|
||||||
|
I have left several `:help X` comments throughout the init.lua
|
||||||
|
These are hints about where to find more information about the relevant settings,
|
||||||
|
plugins or Neovim features used in Kickstart.
|
||||||
|
|
||||||
|
NOTE: Look for lines like this
|
||||||
|
|
||||||
|
Throughout the file. These are for you, the reader, to help you understand what is happening.
|
||||||
|
Feel free to delete them once you know what you're doing, but they should serve as a guide
|
||||||
|
for when you are first encountering a few different constructs in your Neovim config.
|
||||||
|
|
||||||
|
If you experience any errors while trying to install kickstart, run `:checkhealth` for more info.
|
||||||
|
|
||||||
|
I hope you enjoy your Neovim journey,
|
||||||
|
- TJ
|
||||||
|
|
||||||
|
P.S. You can delete this when you're done too. It's your config now! :)
|
||||||
|
--]]
|
||||||
|
|
||||||
|
-- Set <space> as the leader key
|
||||||
|
-- See `:help mapleader`
|
||||||
|
-- NOTE: Must happen before plugins are loaded (otherwise wrong leader will be used)
|
||||||
|
vim.g.mapleader = ' '
|
||||||
|
vim.g.maplocalleader = ' '
|
||||||
|
|
||||||
|
-- Set to true if you have a Nerd Font installed and selected in the terminal
|
||||||
|
vim.g.have_nerd_font = false
|
||||||
|
|
||||||
|
-- [[ Setting options ]]
|
||||||
|
-- See `:help vim.opt`
|
||||||
|
-- NOTE: You can change these options as you wish!
|
||||||
|
-- For more options, you can see `:help option-list`
|
||||||
|
|
||||||
|
-- Make line numbers default
|
||||||
|
vim.opt.number = true
|
||||||
|
-- You can also add relative line numbers, to help with jumping.
|
||||||
|
-- Experiment for yourself to see if you like it!
|
||||||
|
-- vim.opt.relativenumber = true
|
||||||
|
|
||||||
|
-- Enable mouse mode, can be useful for resizing splits for example!
|
||||||
|
vim.opt.mouse = 'a'
|
||||||
|
|
||||||
|
-- Don't show the mode, since it's already in the status line
|
||||||
|
vim.opt.showmode = false
|
||||||
|
|
||||||
|
-- Sync clipboard between OS and Neovim.
|
||||||
|
-- Schedule the setting after `UiEnter` because it can increase startup-time.
|
||||||
|
-- Remove this option if you want your OS clipboard to remain independent.
|
||||||
|
-- See `:help 'clipboard'`
|
||||||
|
vim.schedule(function()
|
||||||
|
vim.opt.clipboard = 'unnamedplus'
|
||||||
|
end)
|
||||||
|
|
||||||
|
-- Enable break indent
|
||||||
|
vim.opt.breakindent = true
|
||||||
|
|
||||||
|
-- Save undo history
|
||||||
|
vim.opt.undofile = true
|
||||||
|
|
||||||
|
-- Case-insensitive searching UNLESS \C or one or more capital letters in the search term
|
||||||
|
vim.opt.ignorecase = true
|
||||||
|
vim.opt.smartcase = true
|
||||||
|
|
||||||
|
-- Keep signcolumn on by default
|
||||||
|
vim.opt.signcolumn = 'yes'
|
||||||
|
|
||||||
|
-- Decrease update time
|
||||||
|
vim.opt.updatetime = 250
|
||||||
|
|
||||||
|
-- Decrease mapped sequence wait time
|
||||||
|
-- Displays which-key popup sooner
|
||||||
|
vim.opt.timeoutlen = 300
|
||||||
|
|
||||||
|
-- Configure how new splits should be opened
|
||||||
|
vim.opt.splitright = true
|
||||||
|
vim.opt.splitbelow = true
|
||||||
|
|
||||||
|
-- Sets how neovim will display certain whitespace characters in the editor.
|
||||||
|
-- See `:help 'list'`
|
||||||
|
-- and `:help 'listchars'`
|
||||||
|
vim.opt.list = true
|
||||||
|
vim.opt.listchars = { tab = '» ', trail = '·', nbsp = '␣' }
|
||||||
|
|
||||||
|
-- Preview substitutions live, as you type!
|
||||||
|
vim.opt.inccommand = 'split'
|
||||||
|
|
||||||
|
-- Show which line your cursor is on
|
||||||
|
vim.opt.cursorline = true
|
||||||
|
|
||||||
|
-- Minimal number of screen lines to keep above and below the cursor.
|
||||||
|
vim.opt.scrolloff = 10
|
||||||
|
|
||||||
|
-- [[ Basic Keymaps ]]
|
||||||
|
-- See `:help vim.keymap.set()`
|
||||||
|
|
||||||
|
-- Clear highlights on search when pressing <Esc> in normal mode
|
||||||
|
-- See `:help hlsearch`
|
||||||
|
vim.keymap.set('n', '<Esc>', '<cmd>nohlsearch<CR>')
|
||||||
|
|
||||||
|
-- Diagnostic keymaps
|
||||||
|
vim.keymap.set('n', '<leader>q', vim.diagnostic.setloclist, { desc = 'Open diagnostic [Q]uickfix list' })
|
||||||
|
|
||||||
|
-- Exit terminal mode in the builtin terminal with a shortcut that is a bit easier
|
||||||
|
-- for people to discover. Otherwise, you normally need to press <C-\><C-n>, which
|
||||||
|
-- is not what someone will guess without a bit more experience.
|
||||||
|
--
|
||||||
|
-- NOTE: This won't work in all terminal emulators/tmux/etc. Try your own mapping
|
||||||
|
-- or just use <C-\><C-n> to exit terminal mode
|
||||||
|
vim.keymap.set('t', '<Esc><Esc>', '<C-\\><C-n>', { desc = 'Exit terminal mode' })
|
||||||
|
|
||||||
|
-- TIP: Disable arrow keys in normal mode
|
||||||
|
-- vim.keymap.set('n', '<left>', '<cmd>echo "Use h to move!!"<CR>')
|
||||||
|
-- vim.keymap.set('n', '<right>', '<cmd>echo "Use l to move!!"<CR>')
|
||||||
|
-- vim.keymap.set('n', '<up>', '<cmd>echo "Use k to move!!"<CR>')
|
||||||
|
-- vim.keymap.set('n', '<down>', '<cmd>echo "Use j to move!!"<CR>')
|
||||||
|
|
||||||
|
-- Keybinds to make split navigation easier.
|
||||||
|
-- Use CTRL+<hjkl> to switch between windows
|
||||||
|
--
|
||||||
|
-- See `:help wincmd` for a list of all window commands
|
||||||
|
vim.keymap.set('n', '<C-h>', '<C-w><C-h>', { desc = 'Move focus to the left window' })
|
||||||
|
vim.keymap.set('n', '<C-l>', '<C-w><C-l>', { desc = 'Move focus to the right window' })
|
||||||
|
vim.keymap.set('n', '<C-j>', '<C-w><C-j>', { desc = 'Move focus to the lower window' })
|
||||||
|
vim.keymap.set('n', '<C-k>', '<C-w><C-k>', { desc = 'Move focus to the upper window' })
|
||||||
|
|
||||||
|
-- [[ Basic Autocommands ]]
|
||||||
|
-- See `:help lua-guide-autocommands`
|
||||||
|
|
||||||
|
-- Highlight when yanking (copying) text
|
||||||
|
-- Try it with `yap` in normal mode
|
||||||
|
-- See `:help vim.highlight.on_yank()`
|
||||||
|
vim.api.nvim_create_autocmd('TextYankPost', {
|
||||||
|
desc = 'Highlight when yanking (copying) text',
|
||||||
|
group = vim.api.nvim_create_augroup('kickstart-highlight-yank', { clear = true }),
|
||||||
|
callback = function()
|
||||||
|
vim.highlight.on_yank()
|
||||||
|
end,
|
||||||
|
})
|
||||||
|
|
||||||
|
-- [[ Install `lazy.nvim` plugin manager ]]
|
||||||
|
-- See `:help lazy.nvim.txt` or https://github.com/folke/lazy.nvim for more info
|
||||||
|
local lazypath = vim.fn.stdpath 'data' .. '/lazy/lazy.nvim'
|
||||||
|
if not (vim.uv or vim.loop).fs_stat(lazypath) then
|
||||||
|
local lazyrepo = 'https://github.com/folke/lazy.nvim.git'
|
||||||
|
local out = vim.fn.system { 'git', 'clone', '--filter=blob:none', '--branch=stable', lazyrepo, lazypath }
|
||||||
|
if vim.v.shell_error ~= 0 then
|
||||||
|
error('Error cloning lazy.nvim:\n' .. out)
|
||||||
|
end
|
||||||
|
end ---@diagnostic disable-next-line: undefined-field
|
||||||
|
vim.opt.rtp:prepend(lazypath)
|
||||||
|
|
||||||
|
-- [[ Configure and install plugins ]]
|
||||||
|
--
|
||||||
|
-- To check the current status of your plugins, run
|
||||||
|
-- :Lazy
|
||||||
|
--
|
||||||
|
-- You can press `?` in this menu for help. Use `:q` to close the window
|
||||||
|
--
|
||||||
|
-- To update plugins you can run
|
||||||
|
-- :Lazy update
|
||||||
|
--
|
||||||
|
-- NOTE: Here is where you install your plugins.
|
||||||
|
require('lazy').setup({
|
||||||
|
-- NOTE: Plugins can be added with a link (or for a github repo: 'owner/repo' link).
|
||||||
|
'tpope/vim-sleuth', -- Detect tabstop and shiftwidth automatically
|
||||||
|
|
||||||
|
-- NOTE: Plugins can also be added by using a table,
|
||||||
|
-- with the first argument being the link and the following
|
||||||
|
-- keys can be used to configure plugin behavior/loading/etc.
|
||||||
|
--
|
||||||
|
-- Use `opts = {}` to force a plugin to be loaded.
|
||||||
|
--
|
||||||
|
|
||||||
|
-- Here is a more advanced example where we pass configuration
|
||||||
|
-- options to `gitsigns.nvim`. This is equivalent to the following Lua:
|
||||||
|
-- require('gitsigns').setup({ ... })
|
||||||
|
--
|
||||||
|
-- See `:help gitsigns` to understand what the configuration keys do
|
||||||
|
{ -- Adds git related signs to the gutter, as well as utilities for managing changes
|
||||||
|
'lewis6991/gitsigns.nvim',
|
||||||
|
opts = {
|
||||||
|
signs = {
|
||||||
|
add = { text = '+' },
|
||||||
|
change = { text = '~' },
|
||||||
|
delete = { text = '_' },
|
||||||
|
topdelete = { text = '‾' },
|
||||||
|
changedelete = { text = '~' },
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
|
||||||
|
-- NOTE: Plugins can also be configured to run Lua code when they are loaded.
|
||||||
|
--
|
||||||
|
-- This is often very useful to both group configuration, as well as handle
|
||||||
|
-- lazy loading plugins that don't need to be loaded immediately at startup.
|
||||||
|
--
|
||||||
|
-- For example, in the following configuration, we use:
|
||||||
|
-- event = 'VimEnter'
|
||||||
|
--
|
||||||
|
-- which loads which-key before all the UI elements are loaded. Events can be
|
||||||
|
-- normal autocommands events (`:help autocmd-events`).
|
||||||
|
--
|
||||||
|
-- Then, because we use the `config` key, the configuration only runs
|
||||||
|
-- after the plugin has been loaded:
|
||||||
|
-- config = function() ... end
|
||||||
|
|
||||||
|
{ -- Useful plugin to show you pending keybinds.
|
||||||
|
'folke/which-key.nvim',
|
||||||
|
event = 'VimEnter', -- Sets the loading event to 'VimEnter'
|
||||||
|
opts = {
|
||||||
|
icons = {
|
||||||
|
-- set icon mappings to true if you have a Nerd Font
|
||||||
|
mappings = vim.g.have_nerd_font,
|
||||||
|
-- If you are using a Nerd Font: set icons.keys to an empty table which will use the
|
||||||
|
-- default which-key.nvim defined Nerd Font icons, otherwise define a string table
|
||||||
|
keys = vim.g.have_nerd_font and {} or {
|
||||||
|
Up = '<Up> ',
|
||||||
|
Down = '<Down> ',
|
||||||
|
Left = '<Left> ',
|
||||||
|
Right = '<Right> ',
|
||||||
|
C = '<C-…> ',
|
||||||
|
M = '<M-…> ',
|
||||||
|
D = '<D-…> ',
|
||||||
|
S = '<S-…> ',
|
||||||
|
CR = '<CR> ',
|
||||||
|
Esc = '<Esc> ',
|
||||||
|
ScrollWheelDown = '<ScrollWheelDown> ',
|
||||||
|
ScrollWheelUp = '<ScrollWheelUp> ',
|
||||||
|
NL = '<NL> ',
|
||||||
|
BS = '<BS> ',
|
||||||
|
Space = '<Space> ',
|
||||||
|
Tab = '<Tab> ',
|
||||||
|
F1 = '<F1>',
|
||||||
|
F2 = '<F2>',
|
||||||
|
F3 = '<F3>',
|
||||||
|
F4 = '<F4>',
|
||||||
|
F5 = '<F5>',
|
||||||
|
F6 = '<F6>',
|
||||||
|
F7 = '<F7>',
|
||||||
|
F8 = '<F8>',
|
||||||
|
F9 = '<F9>',
|
||||||
|
F10 = '<F10>',
|
||||||
|
F11 = '<F11>',
|
||||||
|
F12 = '<F12>',
|
||||||
|
},
|
||||||
|
},
|
||||||
|
|
||||||
|
-- Document existing key chains
|
||||||
|
spec = {
|
||||||
|
{ '<leader>c', group = '[C]ode', mode = { 'n', 'x' } },
|
||||||
|
{ '<leader>d', group = '[D]ocument' },
|
||||||
|
{ '<leader>r', group = '[R]ename' },
|
||||||
|
{ '<leader>s', group = '[S]earch' },
|
||||||
|
{ '<leader>w', group = '[W]orkspace' },
|
||||||
|
{ '<leader>t', group = '[T]oggle' },
|
||||||
|
{ '<leader>h', group = 'Git [H]unk', mode = { 'n', 'v' } },
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
|
||||||
|
-- NOTE: Plugins can specify dependencies.
|
||||||
|
--
|
||||||
|
-- The dependencies are proper plugin specifications as well - anything
|
||||||
|
-- you do for a plugin at the top level, you can do for a dependency.
|
||||||
|
--
|
||||||
|
-- Use the `dependencies` key to specify the dependencies of a particular plugin
|
||||||
|
|
||||||
|
{ -- Fuzzy Finder (files, lsp, etc)
|
||||||
|
'nvim-telescope/telescope.nvim',
|
||||||
|
event = 'VimEnter',
|
||||||
|
branch = '0.1.x',
|
||||||
|
dependencies = {
|
||||||
|
'nvim-lua/plenary.nvim',
|
||||||
|
{ -- If encountering errors, see telescope-fzf-native README for installation instructions
|
||||||
|
'nvim-telescope/telescope-fzf-native.nvim',
|
||||||
|
|
||||||
|
-- `build` is used to run some command when the plugin is installed/updated.
|
||||||
|
-- This is only run then, not every time Neovim starts up.
|
||||||
|
build = 'make',
|
||||||
|
|
||||||
|
-- `cond` is a condition used to determine whether this plugin should be
|
||||||
|
-- installed and loaded.
|
||||||
|
cond = function()
|
||||||
|
return vim.fn.executable 'make' == 1
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
{ 'nvim-telescope/telescope-ui-select.nvim' },
|
||||||
|
|
||||||
|
-- Useful for getting pretty icons, but requires a Nerd Font.
|
||||||
|
{ 'nvim-tree/nvim-web-devicons', enabled = vim.g.have_nerd_font },
|
||||||
|
},
|
||||||
|
config = function()
|
||||||
|
-- Telescope is a fuzzy finder that comes with a lot of different things that
|
||||||
|
-- it can fuzzy find! It's more than just a "file finder", it can search
|
||||||
|
-- many different aspects of Neovim, your workspace, LSP, and more!
|
||||||
|
--
|
||||||
|
-- The easiest way to use Telescope, is to start by doing something like:
|
||||||
|
-- :Telescope help_tags
|
||||||
|
--
|
||||||
|
-- After running this command, a window will open up and you're able to
|
||||||
|
-- type in the prompt window. You'll see a list of `help_tags` options and
|
||||||
|
-- a corresponding preview of the help.
|
||||||
|
--
|
||||||
|
-- Two important keymaps to use while in Telescope are:
|
||||||
|
-- - Insert mode: <c-/>
|
||||||
|
-- - Normal mode: ?
|
||||||
|
--
|
||||||
|
-- This opens a window that shows you all of the keymaps for the current
|
||||||
|
-- Telescope picker. This is really useful to discover what Telescope can
|
||||||
|
-- do as well as how to actually do it!
|
||||||
|
|
||||||
|
-- [[ Configure Telescope ]]
|
||||||
|
-- See `:help telescope` and `:help telescope.setup()`
|
||||||
|
require('telescope').setup {
|
||||||
|
-- You can put your default mappings / updates / etc. in here
|
||||||
|
-- All the info you're looking for is in `:help telescope.setup()`
|
||||||
|
--
|
||||||
|
-- defaults = {
|
||||||
|
-- mappings = {
|
||||||
|
-- i = { ['<c-enter>'] = 'to_fuzzy_refine' },
|
||||||
|
-- },
|
||||||
|
-- },
|
||||||
|
-- pickers = {}
|
||||||
|
extensions = {
|
||||||
|
['ui-select'] = {
|
||||||
|
require('telescope.themes').get_dropdown(),
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
-- Enable Telescope extensions if they are installed
|
||||||
|
pcall(require('telescope').load_extension, 'fzf')
|
||||||
|
pcall(require('telescope').load_extension, 'ui-select')
|
||||||
|
|
||||||
|
-- See `:help telescope.builtin`
|
||||||
|
local builtin = require 'telescope.builtin'
|
||||||
|
vim.keymap.set('n', '<leader>sh', builtin.help_tags, { desc = '[S]earch [H]elp' })
|
||||||
|
vim.keymap.set('n', '<leader>sk', builtin.keymaps, { desc = '[S]earch [K]eymaps' })
|
||||||
|
vim.keymap.set('n', '<leader>sf', builtin.find_files, { desc = '[S]earch [F]iles' })
|
||||||
|
vim.keymap.set('n', '<leader>ss', builtin.builtin, { desc = '[S]earch [S]elect Telescope' })
|
||||||
|
vim.keymap.set('n', '<leader>sw', builtin.grep_string, { desc = '[S]earch current [W]ord' })
|
||||||
|
vim.keymap.set('n', '<leader>sg', builtin.live_grep, { desc = '[S]earch by [G]rep' })
|
||||||
|
vim.keymap.set('n', '<leader>sd', builtin.diagnostics, { desc = '[S]earch [D]iagnostics' })
|
||||||
|
vim.keymap.set('n', '<leader>sr', builtin.resume, { desc = '[S]earch [R]esume' })
|
||||||
|
vim.keymap.set('n', '<leader>s.', builtin.oldfiles, { desc = '[S]earch Recent Files ("." for repeat)' })
|
||||||
|
vim.keymap.set('n', '<leader><leader>', builtin.buffers, { desc = '[ ] Find existing buffers' })
|
||||||
|
|
||||||
|
-- Slightly advanced example of overriding default behavior and theme
|
||||||
|
vim.keymap.set('n', '<leader>/', function()
|
||||||
|
-- You can pass additional configuration to Telescope to change the theme, layout, etc.
|
||||||
|
builtin.current_buffer_fuzzy_find(require('telescope.themes').get_dropdown {
|
||||||
|
winblend = 10,
|
||||||
|
previewer = false,
|
||||||
|
})
|
||||||
|
end, { desc = '[/] Fuzzily search in current buffer' })
|
||||||
|
|
||||||
|
-- It's also possible to pass additional configuration options.
|
||||||
|
-- See `:help telescope.builtin.live_grep()` for information about particular keys
|
||||||
|
vim.keymap.set('n', '<leader>s/', function()
|
||||||
|
builtin.live_grep {
|
||||||
|
grep_open_files = true,
|
||||||
|
prompt_title = 'Live Grep in Open Files',
|
||||||
|
}
|
||||||
|
end, { desc = '[S]earch [/] in Open Files' })
|
||||||
|
|
||||||
|
-- Shortcut for searching your Neovim configuration files
|
||||||
|
vim.keymap.set('n', '<leader>sn', function()
|
||||||
|
builtin.find_files { cwd = vim.fn.stdpath 'config' }
|
||||||
|
end, { desc = '[S]earch [N]eovim files' })
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
|
||||||
|
-- LSP Plugins
|
||||||
|
{
|
||||||
|
-- `lazydev` configures Lua LSP for your Neovim config, runtime and plugins
|
||||||
|
-- used for completion, annotations and signatures of Neovim apis
|
||||||
|
'folke/lazydev.nvim',
|
||||||
|
ft = 'lua',
|
||||||
|
opts = {
|
||||||
|
library = {
|
||||||
|
-- Load luvit types when the `vim.uv` word is found
|
||||||
|
{ path = 'luvit-meta/library', words = { 'vim%.uv' } },
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{ 'Bilal2453/luvit-meta', lazy = true },
|
||||||
|
{
|
||||||
|
-- Main LSP Configuration
|
||||||
|
'neovim/nvim-lspconfig',
|
||||||
|
dependencies = {
|
||||||
|
-- Automatically install LSPs and related tools to stdpath for Neovim
|
||||||
|
{ 'williamboman/mason.nvim', config = true }, -- NOTE: Must be loaded before dependants
|
||||||
|
'williamboman/mason-lspconfig.nvim',
|
||||||
|
'WhoIsSethDaniel/mason-tool-installer.nvim',
|
||||||
|
|
||||||
|
-- Useful status updates for LSP.
|
||||||
|
-- NOTE: `opts = {}` is the same as calling `require('fidget').setup({})`
|
||||||
|
{ 'j-hui/fidget.nvim', opts = {} },
|
||||||
|
|
||||||
|
-- Allows extra capabilities provided by nvim-cmp
|
||||||
|
'hrsh7th/cmp-nvim-lsp',
|
||||||
|
},
|
||||||
|
config = function()
|
||||||
|
-- Brief aside: **What is LSP?**
|
||||||
|
--
|
||||||
|
-- LSP is an initialism you've probably heard, but might not understand what it is.
|
||||||
|
--
|
||||||
|
-- LSP stands for Language Server Protocol. It's a protocol that helps editors
|
||||||
|
-- and language tooling communicate in a standardized fashion.
|
||||||
|
--
|
||||||
|
-- In general, you have a "server" which is some tool built to understand a particular
|
||||||
|
-- language (such as `gopls`, `lua_ls`, `rust_analyzer`, etc.). These Language Servers
|
||||||
|
-- (sometimes called LSP servers, but that's kind of like ATM Machine) are standalone
|
||||||
|
-- processes that communicate with some "client" - in this case, Neovim!
|
||||||
|
--
|
||||||
|
-- LSP provides Neovim with features like:
|
||||||
|
-- - Go to definition
|
||||||
|
-- - Find references
|
||||||
|
-- - Autocompletion
|
||||||
|
-- - Symbol Search
|
||||||
|
-- - and more!
|
||||||
|
--
|
||||||
|
-- Thus, Language Servers are external tools that must be installed separately from
|
||||||
|
-- Neovim. This is where `mason` and related plugins come into play.
|
||||||
|
--
|
||||||
|
-- If you're wondering about lsp vs treesitter, you can check out the wonderfully
|
||||||
|
-- and elegantly composed help section, `:help lsp-vs-treesitter`
|
||||||
|
|
||||||
|
-- This function gets run when an LSP attaches to a particular buffer.
|
||||||
|
-- That is to say, every time a new file is opened that is associated with
|
||||||
|
-- an lsp (for example, opening `main.rs` is associated with `rust_analyzer`) this
|
||||||
|
-- function will be executed to configure the current buffer
|
||||||
|
vim.api.nvim_create_autocmd('LspAttach', {
|
||||||
|
group = vim.api.nvim_create_augroup('kickstart-lsp-attach', { clear = true }),
|
||||||
|
callback = function(event)
|
||||||
|
-- NOTE: Remember that Lua is a real programming language, and as such it is possible
|
||||||
|
-- to define small helper and utility functions so you don't have to repeat yourself.
|
||||||
|
--
|
||||||
|
-- In this case, we create a function that lets us more easily define mappings specific
|
||||||
|
-- for LSP related items. It sets the mode, buffer and description for us each time.
|
||||||
|
local map = function(keys, func, desc, mode)
|
||||||
|
mode = mode or 'n'
|
||||||
|
vim.keymap.set(mode, keys, func, { buffer = event.buf, desc = 'LSP: ' .. desc })
|
||||||
|
end
|
||||||
|
|
||||||
|
-- Jump to the definition of the word under your cursor.
|
||||||
|
-- This is where a variable was first declared, or where a function is defined, etc.
|
||||||
|
-- To jump back, press <C-t>.
|
||||||
|
map('gd', require('telescope.builtin').lsp_definitions, '[G]oto [D]efinition')
|
||||||
|
|
||||||
|
-- Find references for the word under your cursor.
|
||||||
|
map('gr', require('telescope.builtin').lsp_references, '[G]oto [R]eferences')
|
||||||
|
|
||||||
|
-- Jump to the implementation of the word under your cursor.
|
||||||
|
-- Useful when your language has ways of declaring types without an actual implementation.
|
||||||
|
map('gI', require('telescope.builtin').lsp_implementations, '[G]oto [I]mplementation')
|
||||||
|
|
||||||
|
-- Jump to the type of the word under your cursor.
|
||||||
|
-- Useful when you're not sure what type a variable is and you want to see
|
||||||
|
-- the definition of its *type*, not where it was *defined*.
|
||||||
|
map('<leader>D', require('telescope.builtin').lsp_type_definitions, 'Type [D]efinition')
|
||||||
|
|
||||||
|
-- Fuzzy find all the symbols in your current document.
|
||||||
|
-- Symbols are things like variables, functions, types, etc.
|
||||||
|
map('<leader>ds', require('telescope.builtin').lsp_document_symbols, '[D]ocument [S]ymbols')
|
||||||
|
|
||||||
|
-- Fuzzy find all the symbols in your current workspace.
|
||||||
|
-- Similar to document symbols, except searches over your entire project.
|
||||||
|
map('<leader>ws', require('telescope.builtin').lsp_dynamic_workspace_symbols, '[W]orkspace [S]ymbols')
|
||||||
|
|
||||||
|
-- Rename the variable under your cursor.
|
||||||
|
-- Most Language Servers support renaming across files, etc.
|
||||||
|
map('<leader>rn', vim.lsp.buf.rename, '[R]e[n]ame')
|
||||||
|
|
||||||
|
-- Execute a code action, usually your cursor needs to be on top of an error
|
||||||
|
-- or a suggestion from your LSP for this to activate.
|
||||||
|
map('<leader>ca', vim.lsp.buf.code_action, '[C]ode [A]ction', { 'n', 'x' })
|
||||||
|
|
||||||
|
-- WARN: This is not Goto Definition, this is Goto Declaration.
|
||||||
|
-- For example, in C this would take you to the header.
|
||||||
|
map('gD', vim.lsp.buf.declaration, '[G]oto [D]eclaration')
|
||||||
|
|
||||||
|
-- The following two autocommands are used to highlight references of the
|
||||||
|
-- word under your cursor when your cursor rests there for a little while.
|
||||||
|
-- See `:help CursorHold` for information about when this is executed
|
||||||
|
--
|
||||||
|
-- When you move your cursor, the highlights will be cleared (the second autocommand).
|
||||||
|
local client = vim.lsp.get_client_by_id(event.data.client_id)
|
||||||
|
if client and client.supports_method(vim.lsp.protocol.Methods.textDocument_documentHighlight) then
|
||||||
|
local highlight_augroup = vim.api.nvim_create_augroup('kickstart-lsp-highlight', { clear = false })
|
||||||
|
vim.api.nvim_create_autocmd({ 'CursorHold', 'CursorHoldI' }, {
|
||||||
|
buffer = event.buf,
|
||||||
|
group = highlight_augroup,
|
||||||
|
callback = vim.lsp.buf.document_highlight,
|
||||||
|
})
|
||||||
|
|
||||||
|
vim.api.nvim_create_autocmd({ 'CursorMoved', 'CursorMovedI' }, {
|
||||||
|
buffer = event.buf,
|
||||||
|
group = highlight_augroup,
|
||||||
|
callback = vim.lsp.buf.clear_references,
|
||||||
|
})
|
||||||
|
|
||||||
|
vim.api.nvim_create_autocmd('LspDetach', {
|
||||||
|
group = vim.api.nvim_create_augroup('kickstart-lsp-detach', { clear = true }),
|
||||||
|
callback = function(event2)
|
||||||
|
vim.lsp.buf.clear_references()
|
||||||
|
vim.api.nvim_clear_autocmds { group = 'kickstart-lsp-highlight', buffer = event2.buf }
|
||||||
|
end,
|
||||||
|
})
|
||||||
|
end
|
||||||
|
|
||||||
|
-- The following code creates a keymap to toggle inlay hints in your
|
||||||
|
-- code, if the language server you are using supports them
|
||||||
|
--
|
||||||
|
-- This may be unwanted, since they displace some of your code
|
||||||
|
if client and client.supports_method(vim.lsp.protocol.Methods.textDocument_inlayHint) then
|
||||||
|
map('<leader>th', function()
|
||||||
|
vim.lsp.inlay_hint.enable(not vim.lsp.inlay_hint.is_enabled { bufnr = event.buf })
|
||||||
|
end, '[T]oggle Inlay [H]ints')
|
||||||
|
end
|
||||||
|
end,
|
||||||
|
})
|
||||||
|
|
||||||
|
-- Change diagnostic symbols in the sign column (gutter)
|
||||||
|
-- if vim.g.have_nerd_font then
|
||||||
|
-- local signs = { ERROR = '', WARN = '', INFO = '', HINT = '' }
|
||||||
|
-- local diagnostic_signs = {}
|
||||||
|
-- for type, icon in pairs(signs) do
|
||||||
|
-- diagnostic_signs[vim.diagnostic.severity[type]] = icon
|
||||||
|
-- end
|
||||||
|
-- vim.diagnostic.config { signs = { text = diagnostic_signs } }
|
||||||
|
-- end
|
||||||
|
|
||||||
|
-- LSP servers and clients are able to communicate to each other what features they support.
|
||||||
|
-- By default, Neovim doesn't support everything that is in the LSP specification.
|
||||||
|
-- When you add nvim-cmp, luasnip, etc. Neovim now has *more* capabilities.
|
||||||
|
-- So, we create new capabilities with nvim cmp, and then broadcast that to the servers.
|
||||||
|
local capabilities = vim.lsp.protocol.make_client_capabilities()
|
||||||
|
capabilities = vim.tbl_deep_extend('force', capabilities, require('cmp_nvim_lsp').default_capabilities())
|
||||||
|
|
||||||
|
-- Enable the following language servers
|
||||||
|
-- Feel free to add/remove any LSPs that you want here. They will automatically be installed.
|
||||||
|
--
|
||||||
|
-- Add any additional override configuration in the following tables. Available keys are:
|
||||||
|
-- - cmd (table): Override the default command used to start the server
|
||||||
|
-- - filetypes (table): Override the default list of associated filetypes for the server
|
||||||
|
-- - capabilities (table): Override fields in capabilities. Can be used to disable certain LSP features.
|
||||||
|
-- - settings (table): Override the default settings passed when initializing the server.
|
||||||
|
-- For example, to see the options for `lua_ls`, you could go to: https://luals.github.io/wiki/settings/
|
||||||
|
local servers = {
|
||||||
|
-- clangd = {},
|
||||||
|
-- gopls = {},
|
||||||
|
-- pyright = {},
|
||||||
|
-- rust_analyzer = {},
|
||||||
|
-- ... etc. See `:help lspconfig-all` for a list of all the pre-configured LSPs
|
||||||
|
--
|
||||||
|
-- Some languages (like typescript) have entire language plugins that can be useful:
|
||||||
|
-- https://github.com/pmizio/typescript-tools.nvim
|
||||||
|
--
|
||||||
|
-- But for many setups, the LSP (`ts_ls`) will work just fine
|
||||||
|
-- ts_ls = {},
|
||||||
|
--
|
||||||
|
|
||||||
|
lua_ls = {
|
||||||
|
-- cmd = {...},
|
||||||
|
-- filetypes = { ...},
|
||||||
|
-- capabilities = {},
|
||||||
|
settings = {
|
||||||
|
Lua = {
|
||||||
|
completion = {
|
||||||
|
callSnippet = 'Replace',
|
||||||
|
},
|
||||||
|
-- You can toggle below to ignore Lua_LS's noisy `missing-fields` warnings
|
||||||
|
-- diagnostics = { disable = { 'missing-fields' } },
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
-- Ensure the servers and tools above are installed
|
||||||
|
-- To check the current status of installed tools and/or manually install
|
||||||
|
-- other tools, you can run
|
||||||
|
-- :Mason
|
||||||
|
--
|
||||||
|
-- You can press `g?` for help in this menu.
|
||||||
|
require('mason').setup()
|
||||||
|
|
||||||
|
-- You can add other tools here that you want Mason to install
|
||||||
|
-- for you, so that they are available from within Neovim.
|
||||||
|
local ensure_installed = vim.tbl_keys(servers or {})
|
||||||
|
vim.list_extend(ensure_installed, {
|
||||||
|
'stylua', -- Used to format Lua code
|
||||||
|
})
|
||||||
|
require('mason-tool-installer').setup { ensure_installed = ensure_installed }
|
||||||
|
|
||||||
|
require('mason-lspconfig').setup {
|
||||||
|
handlers = {
|
||||||
|
function(server_name)
|
||||||
|
local server = servers[server_name] or {}
|
||||||
|
-- This handles overriding only values explicitly passed
|
||||||
|
-- by the server configuration above. Useful when disabling
|
||||||
|
-- certain features of an LSP (for example, turning off formatting for ts_ls)
|
||||||
|
server.capabilities = vim.tbl_deep_extend('force', {}, capabilities, server.capabilities or {})
|
||||||
|
require('lspconfig')[server_name].setup(server)
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
}
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
|
||||||
|
{ -- Autoformat
|
||||||
|
'stevearc/conform.nvim',
|
||||||
|
event = { 'BufWritePre' },
|
||||||
|
cmd = { 'ConformInfo' },
|
||||||
|
keys = {
|
||||||
|
{
|
||||||
|
'<leader>f',
|
||||||
|
function()
|
||||||
|
require('conform').format { async = true, lsp_format = 'fallback' }
|
||||||
|
end,
|
||||||
|
mode = '',
|
||||||
|
desc = '[F]ormat buffer',
|
||||||
|
},
|
||||||
|
},
|
||||||
|
opts = {
|
||||||
|
notify_on_error = false,
|
||||||
|
format_on_save = function(bufnr)
|
||||||
|
-- Disable "format_on_save lsp_fallback" for languages that don't
|
||||||
|
-- have a well standardized coding style. You can add additional
|
||||||
|
-- languages here or re-enable it for the disabled ones.
|
||||||
|
local disable_filetypes = { c = true, cpp = true }
|
||||||
|
local lsp_format_opt
|
||||||
|
if disable_filetypes[vim.bo[bufnr].filetype] then
|
||||||
|
lsp_format_opt = 'never'
|
||||||
|
else
|
||||||
|
lsp_format_opt = 'fallback'
|
||||||
|
end
|
||||||
|
return {
|
||||||
|
timeout_ms = 500,
|
||||||
|
lsp_format = lsp_format_opt,
|
||||||
|
}
|
||||||
|
end,
|
||||||
|
formatters_by_ft = {
|
||||||
|
lua = { 'stylua' },
|
||||||
|
-- Conform can also run multiple formatters sequentially
|
||||||
|
-- python = { "isort", "black" },
|
||||||
|
--
|
||||||
|
-- You can use 'stop_after_first' to run the first available formatter from the list
|
||||||
|
-- javascript = { "prettierd", "prettier", stop_after_first = true },
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
|
||||||
|
{ -- Autocompletion
|
||||||
|
'hrsh7th/nvim-cmp',
|
||||||
|
event = 'InsertEnter',
|
||||||
|
dependencies = {
|
||||||
|
-- Snippet Engine & its associated nvim-cmp source
|
||||||
|
{
|
||||||
|
'L3MON4D3/LuaSnip',
|
||||||
|
build = (function()
|
||||||
|
-- Build Step is needed for regex support in snippets.
|
||||||
|
-- This step is not supported in many windows environments.
|
||||||
|
-- Remove the below condition to re-enable on windows.
|
||||||
|
if vim.fn.has 'win32' == 1 or vim.fn.executable 'make' == 0 then
|
||||||
|
return
|
||||||
|
end
|
||||||
|
return 'make install_jsregexp'
|
||||||
|
end)(),
|
||||||
|
dependencies = {
|
||||||
|
-- `friendly-snippets` contains a variety of premade snippets.
|
||||||
|
-- See the README about individual language/framework/plugin snippets:
|
||||||
|
-- https://github.com/rafamadriz/friendly-snippets
|
||||||
|
-- {
|
||||||
|
-- 'rafamadriz/friendly-snippets',
|
||||||
|
-- config = function()
|
||||||
|
-- require('luasnip.loaders.from_vscode').lazy_load()
|
||||||
|
-- end,
|
||||||
|
-- },
|
||||||
|
},
|
||||||
|
},
|
||||||
|
'saadparwaiz1/cmp_luasnip',
|
||||||
|
|
||||||
|
-- Adds other completion capabilities.
|
||||||
|
-- nvim-cmp does not ship with all sources by default. They are split
|
||||||
|
-- into multiple repos for maintenance purposes.
|
||||||
|
'hrsh7th/cmp-nvim-lsp',
|
||||||
|
'hrsh7th/cmp-path',
|
||||||
|
},
|
||||||
|
config = function()
|
||||||
|
-- See `:help cmp`
|
||||||
|
local cmp = require 'cmp'
|
||||||
|
local luasnip = require 'luasnip'
|
||||||
|
luasnip.config.setup {}
|
||||||
|
|
||||||
|
cmp.setup {
|
||||||
|
snippet = {
|
||||||
|
expand = function(args)
|
||||||
|
luasnip.lsp_expand(args.body)
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
completion = { completeopt = 'menu,menuone,noinsert' },
|
||||||
|
|
||||||
|
-- For an understanding of why these mappings were
|
||||||
|
-- chosen, you will need to read `:help ins-completion`
|
||||||
|
--
|
||||||
|
-- No, but seriously. Please read `:help ins-completion`, it is really good!
|
||||||
|
mapping = cmp.mapping.preset.insert {
|
||||||
|
-- Select the [n]ext item
|
||||||
|
['<C-n>'] = cmp.mapping.select_next_item(),
|
||||||
|
-- Select the [p]revious item
|
||||||
|
['<C-p>'] = cmp.mapping.select_prev_item(),
|
||||||
|
|
||||||
|
-- Scroll the documentation window [b]ack / [f]orward
|
||||||
|
['<C-b>'] = cmp.mapping.scroll_docs(-4),
|
||||||
|
['<C-f>'] = cmp.mapping.scroll_docs(4),
|
||||||
|
|
||||||
|
-- Accept ([y]es) the completion.
|
||||||
|
-- This will auto-import if your LSP supports it.
|
||||||
|
-- This will expand snippets if the LSP sent a snippet.
|
||||||
|
['<C-y>'] = cmp.mapping.confirm { select = true },
|
||||||
|
|
||||||
|
-- If you prefer more traditional completion keymaps,
|
||||||
|
-- you can uncomment the following lines
|
||||||
|
--['<CR>'] = cmp.mapping.confirm { select = true },
|
||||||
|
--['<Tab>'] = cmp.mapping.select_next_item(),
|
||||||
|
--['<S-Tab>'] = cmp.mapping.select_prev_item(),
|
||||||
|
|
||||||
|
-- Manually trigger a completion from nvim-cmp.
|
||||||
|
-- Generally you don't need this, because nvim-cmp will display
|
||||||
|
-- completions whenever it has completion options available.
|
||||||
|
['<C-Space>'] = cmp.mapping.complete {},
|
||||||
|
|
||||||
|
-- Think of <c-l> as moving to the right of your snippet expansion.
|
||||||
|
-- So if you have a snippet that's like:
|
||||||
|
-- function $name($args)
|
||||||
|
-- $body
|
||||||
|
-- end
|
||||||
|
--
|
||||||
|
-- <c-l> will move you to the right of each of the expansion locations.
|
||||||
|
-- <c-h> is similar, except moving you backwards.
|
||||||
|
['<C-l>'] = cmp.mapping(function()
|
||||||
|
if luasnip.expand_or_locally_jumpable() then
|
||||||
|
luasnip.expand_or_jump()
|
||||||
|
end
|
||||||
|
end, { 'i', 's' }),
|
||||||
|
['<C-h>'] = cmp.mapping(function()
|
||||||
|
if luasnip.locally_jumpable(-1) then
|
||||||
|
luasnip.jump(-1)
|
||||||
|
end
|
||||||
|
end, { 'i', 's' }),
|
||||||
|
|
||||||
|
-- For more advanced Luasnip keymaps (e.g. selecting choice nodes, expansion) see:
|
||||||
|
-- https://github.com/L3MON4D3/LuaSnip?tab=readme-ov-file#keymaps
|
||||||
|
},
|
||||||
|
sources = {
|
||||||
|
{
|
||||||
|
name = 'lazydev',
|
||||||
|
-- set group index to 0 to skip loading LuaLS completions as lazydev recommends it
|
||||||
|
group_index = 0,
|
||||||
|
},
|
||||||
|
{ name = 'nvim_lsp' },
|
||||||
|
{ name = 'luasnip' },
|
||||||
|
{ name = 'path' },
|
||||||
|
},
|
||||||
|
}
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
|
||||||
|
{ -- You can easily change to a different colorscheme.
|
||||||
|
-- Change the name of the colorscheme plugin below, and then
|
||||||
|
-- change the command in the config to whatever the name of that colorscheme is.
|
||||||
|
--
|
||||||
|
-- If you want to see what colorschemes are already installed, you can use `:Telescope colorscheme`.
|
||||||
|
'folke/tokyonight.nvim',
|
||||||
|
priority = 1000, -- Make sure to load this before all the other start plugins.
|
||||||
|
init = function()
|
||||||
|
-- Load the colorscheme here.
|
||||||
|
-- Like many other themes, this one has different styles, and you could load
|
||||||
|
-- any other, such as 'tokyonight-storm', 'tokyonight-moon', or 'tokyonight-day'.
|
||||||
|
vim.cmd.colorscheme 'tokyonight-night'
|
||||||
|
|
||||||
|
-- You can configure highlights by doing something like:
|
||||||
|
vim.cmd.hi 'Comment gui=none'
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
|
||||||
|
-- Highlight todo, notes, etc in comments
|
||||||
|
{ 'folke/todo-comments.nvim', event = 'VimEnter', dependencies = { 'nvim-lua/plenary.nvim' }, opts = { signs = false } },
|
||||||
|
|
||||||
|
{ -- Collection of various small independent plugins/modules
|
||||||
|
'echasnovski/mini.nvim',
|
||||||
|
config = function()
|
||||||
|
-- Better Around/Inside textobjects
|
||||||
|
--
|
||||||
|
-- Examples:
|
||||||
|
-- - va) - [V]isually select [A]round [)]paren
|
||||||
|
-- - yinq - [Y]ank [I]nside [N]ext [Q]uote
|
||||||
|
-- - ci' - [C]hange [I]nside [']quote
|
||||||
|
require('mini.ai').setup { n_lines = 500 }
|
||||||
|
|
||||||
|
-- Add/delete/replace surroundings (brackets, quotes, etc.)
|
||||||
|
--
|
||||||
|
-- - saiw) - [S]urround [A]dd [I]nner [W]ord [)]Paren
|
||||||
|
-- - sd' - [S]urround [D]elete [']quotes
|
||||||
|
-- - sr)' - [S]urround [R]eplace [)] [']
|
||||||
|
require('mini.surround').setup()
|
||||||
|
|
||||||
|
-- Simple and easy statusline.
|
||||||
|
-- You could remove this setup call if you don't like it,
|
||||||
|
-- and try some other statusline plugin
|
||||||
|
local statusline = require 'mini.statusline'
|
||||||
|
-- set use_icons to true if you have a Nerd Font
|
||||||
|
statusline.setup { use_icons = vim.g.have_nerd_font }
|
||||||
|
|
||||||
|
-- You can configure sections in the statusline by overriding their
|
||||||
|
-- default behavior. For example, here we set the section for
|
||||||
|
-- cursor location to LINE:COLUMN
|
||||||
|
---@diagnostic disable-next-line: duplicate-set-field
|
||||||
|
statusline.section_location = function()
|
||||||
|
return '%2l:%-2v'
|
||||||
|
end
|
||||||
|
|
||||||
|
-- ... and there is more!
|
||||||
|
-- Check out: https://github.com/echasnovski/mini.nvim
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
{ -- Highlight, edit, and navigate code
|
||||||
|
'nvim-treesitter/nvim-treesitter',
|
||||||
|
build = ':TSUpdate',
|
||||||
|
main = 'nvim-treesitter.configs', -- Sets main module to use for opts
|
||||||
|
-- [[ Configure Treesitter ]] See `:help nvim-treesitter`
|
||||||
|
opts = {
|
||||||
|
ensure_installed = { 'bash', 'c', 'diff', 'html', 'lua', 'luadoc', 'markdown', 'markdown_inline', 'query', 'vim', 'vimdoc' },
|
||||||
|
-- Autoinstall languages that are not installed
|
||||||
|
auto_install = true,
|
||||||
|
highlight = {
|
||||||
|
enable = true,
|
||||||
|
-- Some languages depend on vim's regex highlighting system (such as Ruby) for indent rules.
|
||||||
|
-- If you are experiencing weird indenting issues, add the language to
|
||||||
|
-- the list of additional_vim_regex_highlighting and disabled languages for indent.
|
||||||
|
additional_vim_regex_highlighting = { 'ruby' },
|
||||||
|
},
|
||||||
|
indent = { enable = true, disable = { 'ruby' } },
|
||||||
|
},
|
||||||
|
-- There are additional nvim-treesitter modules that you can use to interact
|
||||||
|
-- with nvim-treesitter. You should go explore a few and see what interests you:
|
||||||
|
--
|
||||||
|
-- - Incremental selection: Included, see `:help nvim-treesitter-incremental-selection-mod`
|
||||||
|
-- - Show your current context: https://github.com/nvim-treesitter/nvim-treesitter-context
|
||||||
|
-- - Treesitter + textobjects: https://github.com/nvim-treesitter/nvim-treesitter-textobjects
|
||||||
|
},
|
||||||
|
|
||||||
|
-- The following comments only work if you have downloaded the kickstart repo, not just copy pasted the
|
||||||
|
-- init.lua. If you want these files, they are in the repository, so you can just download them and
|
||||||
|
-- place them in the correct locations.
|
||||||
|
|
||||||
|
-- NOTE: Next step on your Neovim journey: Add/Configure additional plugins for Kickstart
|
||||||
|
--
|
||||||
|
-- Here are some example plugins that I've included in the Kickstart repository.
|
||||||
|
-- Uncomment any of the lines below to enable them (you will need to restart nvim).
|
||||||
|
--
|
||||||
|
-- require 'kickstart.plugins.debug',
|
||||||
|
-- require 'kickstart.plugins.indent_line',
|
||||||
|
-- require 'kickstart.plugins.lint',
|
||||||
|
-- require 'kickstart.plugins.autopairs',
|
||||||
|
-- require 'kickstart.plugins.neo-tree',
|
||||||
|
-- require 'kickstart.plugins.gitsigns', -- adds gitsigns recommend keymaps
|
||||||
|
|
||||||
|
-- NOTE: The import below can automatically add your own plugins, configuration, etc from `lua/custom/plugins/*.lua`
|
||||||
|
-- This is the easiest way to modularize your config.
|
||||||
|
--
|
||||||
|
-- Uncomment the following line and add your plugins to `lua/custom/plugins/*.lua` to get going.
|
||||||
|
-- { import = 'custom.plugins' },
|
||||||
|
--
|
||||||
|
-- For additional information with loading, sourcing and examples see `:help lazy.nvim-🔌-plugin-spec`
|
||||||
|
-- Or use telescope!
|
||||||
|
-- In normal mode type `<space>sh` then write `lazy.nvim-plugin`
|
||||||
|
-- you can continue same window with `<space>sr` which resumes last telescope search
|
||||||
|
}, {
|
||||||
|
ui = {
|
||||||
|
-- If you are using a Nerd Font: set icons to an empty table which will use the
|
||||||
|
-- default lazy.nvim defined Nerd Font icons, otherwise define a unicode icons table
|
||||||
|
icons = vim.g.have_nerd_font and {} or {
|
||||||
|
cmd = '⌘',
|
||||||
|
config = '🛠',
|
||||||
|
event = '📅',
|
||||||
|
ft = '📂',
|
||||||
|
init = '⚙',
|
||||||
|
keys = '🗝',
|
||||||
|
plugin = '🔌',
|
||||||
|
runtime = '💻',
|
||||||
|
require = '🌙',
|
||||||
|
source = '📄',
|
||||||
|
start = '🚀',
|
||||||
|
task = '📌',
|
||||||
|
lazy = '💤 ',
|
||||||
|
},
|
||||||
|
},
|
||||||
|
})
|
||||||
|
|
||||||
|
-- The line beneath this is called `modeline`. See `:help modeline`
|
||||||
|
-- vim: ts=2 sts=2 sw=2 et
|
27
.config/nvim/lazy-lock.json
Normal file
27
.config/nvim/lazy-lock.json
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
{
|
||||||
|
"LuaSnip": { "branch": "master", "commit": "33b06d72d220aa56a7ce80a0dd6f06c70cd82b9d" },
|
||||||
|
"cmp-nvim-lsp": { "branch": "main", "commit": "99290b3ec1322070bcfb9e846450a46f6efa50f0" },
|
||||||
|
"cmp-path": { "branch": "main", "commit": "91ff86cd9c29299a64f968ebb45846c485725f23" },
|
||||||
|
"cmp_luasnip": { "branch": "master", "commit": "98d9cb5c2c38532bd9bdb481067b20fea8f32e90" },
|
||||||
|
"conform.nvim": { "branch": "master", "commit": "9180320205d250429f0f80e073326c674e2a7149" },
|
||||||
|
"fidget.nvim": { "branch": "main", "commit": "9238947645ce17d96f30842e61ba81147185b657" },
|
||||||
|
"gitsigns.nvim": { "branch": "main", "commit": "5f808b5e4fef30bd8aca1b803b4e555da07fc412" },
|
||||||
|
"lazy.nvim": { "branch": "main", "commit": "7e6c863bc7563efbdd757a310d17ebc95166cef3" },
|
||||||
|
"lazydev.nvim": { "branch": "main", "commit": "8620f82ee3f59ff2187647167b6b47387a13a018" },
|
||||||
|
"luvit-meta": { "branch": "main", "commit": "57d464c4acb5c2e66bd4145060f5dc9e96a7bbb7" },
|
||||||
|
"mason-lspconfig.nvim": { "branch": "main", "commit": "c6c686781f9841d855bf1b926e10aa5e19430a38" },
|
||||||
|
"mason-tool-installer.nvim": { "branch": "main", "commit": "c5e07b8ff54187716334d585db34282e46fa2932" },
|
||||||
|
"mason.nvim": { "branch": "main", "commit": "e2f7f9044ec30067bc11800a9e266664b88cda22" },
|
||||||
|
"mini.nvim": { "branch": "main", "commit": "733afb94ed88d32b839a644dc137604691e46032" },
|
||||||
|
"nvim-cmp": { "branch": "main", "commit": "b555203ce4bd7ff6192e759af3362f9d217e8c89" },
|
||||||
|
"nvim-lspconfig": { "branch": "master", "commit": "8b15a1a597a59f4f5306fad9adfe99454feab743" },
|
||||||
|
"nvim-treesitter": { "branch": "master", "commit": "a295ba13d27684e8904e8e51876b84ee85135cf1" },
|
||||||
|
"plenary.nvim": { "branch": "master", "commit": "2d9b06177a975543726ce5c73fca176cedbffe9d" },
|
||||||
|
"telescope-fzf-native.nvim": { "branch": "main", "commit": "dae2eac9d91464448b584c7949a31df8faefec56" },
|
||||||
|
"telescope-ui-select.nvim": { "branch": "master", "commit": "6e51d7da30bd139a6950adf2a47fda6df9fa06d2" },
|
||||||
|
"telescope.nvim": { "branch": "0.1.x", "commit": "a0bbec21143c7bc5f8bb02e0005fa0b982edc026" },
|
||||||
|
"todo-comments.nvim": { "branch": "main", "commit": "ae0a2afb47cf7395dc400e5dc4e05274bf4fb9e0" },
|
||||||
|
"tokyonight.nvim": { "branch": "main", "commit": "45d22cf0e1b93476d3b6d362d720412b3d34465c" },
|
||||||
|
"vim-sleuth": { "branch": "master", "commit": "be69bff86754b1aa5adcbb527d7fcd1635a84080" },
|
||||||
|
"which-key.nvim": { "branch": "main", "commit": "8ab96b38a2530eacba5be717f52e04601eb59326" }
|
||||||
|
}
|
233
.config/sway/config
Normal file
233
.config/sway/config
Normal file
@ -0,0 +1,233 @@
|
|||||||
|
# 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 alacritty
|
||||||
|
# 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.
|
||||||
|
set $menu wofi --show run | xargs swaymsg exec --
|
||||||
|
|
||||||
|
### Output configuration
|
||||||
|
#
|
||||||
|
# Default wallpaper (more resolutions are available in /usr/share/backgrounds/sway/)
|
||||||
|
output * bg /usr/share/backgrounds/sway/Sway_Wallpaper_Blue_1920x1080.png fill
|
||||||
|
#
|
||||||
|
# Example configuration:
|
||||||
|
#
|
||||||
|
# output HDMI-A-1 resolution 1920x1080 position 1920,0
|
||||||
|
#
|
||||||
|
# You can get the names of your outputs by running: swaymsg -t get_outputs
|
||||||
|
|
||||||
|
### Idle configuration
|
||||||
|
#
|
||||||
|
# Example configuration:
|
||||||
|
#
|
||||||
|
# exec swayidle -w \
|
||||||
|
# timeout 300 'swaylock -f -c 000000' \
|
||||||
|
# timeout 600 'swaymsg "output * dpms off"' resume 'swaymsg "output * dpms on"' \
|
||||||
|
# before-sleep 'swaylock -f -c 000000'
|
||||||
|
#
|
||||||
|
# This will lock your screen after 300 seconds of inactivity, then turn off
|
||||||
|
# your displays after another 300 seconds, and turn your screens back on when
|
||||||
|
# resumed. It will also lock your screen before your computer goes to sleep.
|
||||||
|
|
||||||
|
### Input configuration
|
||||||
|
#
|
||||||
|
# Example configuration:
|
||||||
|
#
|
||||||
|
# input "2:14:SynPS/2_Synaptics_TouchPad" {
|
||||||
|
# dwt enabled
|
||||||
|
# tap enabled
|
||||||
|
# natural_scroll enabled
|
||||||
|
# middle_emulation enabled
|
||||||
|
# }
|
||||||
|
#
|
||||||
|
# You can get the names of your inputs by running: swaymsg -t get_inputs
|
||||||
|
# Read `man 5 sway-input` for more information about this section.
|
||||||
|
|
||||||
|
input type:touchpad {
|
||||||
|
dwt enabled
|
||||||
|
tap enabled
|
||||||
|
natural_scroll enabled
|
||||||
|
middle_emulation enabled
|
||||||
|
}
|
||||||
|
|
||||||
|
input type:keyboard {
|
||||||
|
xkb_layout "fr"
|
||||||
|
xkb_variant "oss"
|
||||||
|
xkb_options "grp:alt_space_toggle"
|
||||||
|
}
|
||||||
|
### Key bindings
|
||||||
|
#
|
||||||
|
# Basics:
|
||||||
|
#
|
||||||
|
# Start a terminal
|
||||||
|
bindsym $mod+Return exec $term
|
||||||
|
|
||||||
|
# Kill focused window
|
||||||
|
bindsym $mod+Shift+q kill
|
||||||
|
|
||||||
|
# Start your launcher
|
||||||
|
bindsym $mod+d exec $menu
|
||||||
|
|
||||||
|
# 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+c reload
|
||||||
|
|
||||||
|
# Exit sway (logs you out of your Wayland session)
|
||||||
|
bindsym $mod+Shift+e exec swaynag -t warning -m 'Tu as appuyé sur le raccourci de sortie. Sortir réellement de sway ? Cela terminera ta session Wayland.' -b 'Oui, quitter sway' 'swaymsg exit'
|
||||||
|
#
|
||||||
|
# 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+ampersand workspace number 1
|
||||||
|
bindsym $mod+eacute workspace number 2
|
||||||
|
bindsym $mod+quotedbl workspace number 3
|
||||||
|
bindsym $mod+apostrophe workspace number 4
|
||||||
|
bindsym $mod+parenleft workspace number 5
|
||||||
|
bindsym $mod+minus workspace number 6
|
||||||
|
bindsym $mod+egrave workspace number 7
|
||||||
|
bindsym $mod+underscore workspace number 8
|
||||||
|
bindsym $mod+ccedilla workspace number 9
|
||||||
|
bindsym $mod+agrave workspace number 10
|
||||||
|
# Move focused container to workspace
|
||||||
|
bindsym $mod+Shift+ampersand move container to workspace number 1
|
||||||
|
bindsym $mod+Shift+eacute move container to workspace number 2
|
||||||
|
bindsym $mod+Shift+quotedbl move container to workspace number 3
|
||||||
|
bindsym $mod+Shift+apostrophe move container to workspace number 4
|
||||||
|
bindsym $mod+Shift+parenleft move container to workspace number 5
|
||||||
|
bindsym $mod+Shift+minus move container to workspace number 6
|
||||||
|
bindsym $mod+Shift+egrave move container to workspace number 7
|
||||||
|
bindsym $mod+Shift+underscore move container to workspace number 8
|
||||||
|
bindsym $mod+Shift+ccedilla move container to workspace number 9
|
||||||
|
bindsym $mod+Shift+agrave 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+z 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+tab 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+tab 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 1 {
|
||||||
|
position top
|
||||||
|
|
||||||
|
# When the status_command prints a new line to stdout, swaybar updates.
|
||||||
|
# The default just shows the current date and time.
|
||||||
|
status_command while date +'%Y-%m-%d %l:%M:%S %p'; do sleep 1; done
|
||||||
|
|
||||||
|
colors {
|
||||||
|
statusline #ffffff
|
||||||
|
background #323232
|
||||||
|
inactive_workspace #32323200 #32323200 #5c5c5c
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
# Va lancer notamment session.sh pour les variables XDG_SESSION et touti quanti
|
||||||
|
include /etc/sway/config.d/*
|
||||||
|
|
||||||
|
# Ajout pour Olivier
|
||||||
|
include ~/.config/sway/config.d/*
|
9
.config/sway/config.d/00-presse-papier.conf
Normal file
9
.config/sway/config.d/00-presse-papier.conf
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
# Presse-papiers
|
||||||
|
|
||||||
|
## CLIPMAN
|
||||||
|
exec wl-paste -t text --watch clipman store # Pour clipman
|
||||||
|
## Presse-papier primaire : avec sauvegarde de l'historique dans un fichier JSON
|
||||||
|
exec wl-paste -p -t text --watch clipman store -P --histpath="~/.local/share/clipman-primary.json"
|
||||||
|
|
||||||
|
# CLIPHIST (multimédia inclus)
|
||||||
|
#exec wl-paste --watch cliphist store
|
3
.config/sway/config.d/10-terminal.conf
Normal file
3
.config/sway/config.d/10-terminal.conf
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
# Utilise le terminal trouvé dans la variable TERMINAL
|
||||||
|
unbindsym $mod+Return
|
||||||
|
bindsym $mod+Return exec $TERMINAL
|
11
.config/sway/config.d/12-lanceur.conf
Normal file
11
.config/sway/config.d/12-lanceur.conf
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
# Configuration du lanceur d'application
|
||||||
|
|
||||||
|
# Apparence d'une fenêtre nommée Launcher
|
||||||
|
for_window [app_id="^launcher$"] floating enable, sticky enable, resize set 30 ppt 60 ppt, border pixel 10
|
||||||
|
|
||||||
|
# Choix d'un lanceur
|
||||||
|
set $menu exec alacritty --class launcher -T 'Programmes' -e env TERMINAL_COMMAND='swaymsg exec' /usr/bin/sway-launcher-desktop
|
||||||
|
|
||||||
|
# On change le raccourci clavier en conséquence
|
||||||
|
unbindsym $mod+d
|
||||||
|
bindsym $mod+d exec $menu
|
3
.config/sway/config.d/15-background.conf
Normal file
3
.config/sway/config.d/15-background.conf
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
|
||||||
|
# Change background
|
||||||
|
output * bg /home/od/.config/i3/abstract-blue-background-1920x1200.jpg fill
|
1
.config/sway/config.d/20-font.conf
Normal file
1
.config/sway/config.d/20-font.conf
Normal file
@ -0,0 +1 @@
|
|||||||
|
font pango:DejaVu Sans Mono 11
|
21
.config/sway/config.d/30-visuel.conf
Normal file
21
.config/sway/config.d/30-visuel.conf
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
# Espace entre les fenêtres
|
||||||
|
for_window [class="^.*"] border pixel 2
|
||||||
|
for_window [class="^.*"] title_format " %title"
|
||||||
|
gaps inner 5
|
||||||
|
smart_borders on
|
||||||
|
smart_gaps on
|
||||||
|
# Censé cacher les bordures de fenêtres adjacents
|
||||||
|
hide_edge_borders --i3 both
|
||||||
|
|
||||||
|
# Bordure de titre de fenêtres : aucune
|
||||||
|
titlebar_border_thickness 0
|
||||||
|
# Espace intérieur du titre des fenêtres : aucun
|
||||||
|
titlebar_padding 0
|
||||||
|
# Enlever le titre aux fenêtres
|
||||||
|
default_border none
|
||||||
|
default_floating_border none
|
||||||
|
|
||||||
|
# Écran HiDPI
|
||||||
|
set $screen_output eDP-1
|
||||||
|
output $screen_output scale 1.6
|
||||||
|
output $screen_output color_profile icc icc/$screen_output.icm
|
21
.config/sway/config.d/40-bureaux.conf
Normal file
21
.config/sway/config.d/40-bureaux.conf
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
# Applications qui vont dans un espace de bureau spécifique
|
||||||
|
#
|
||||||
|
# Pour connaître le nom des class/app_id, faire :
|
||||||
|
# `swaymsg -t get_tree|grep -i chromium`, par exemple.
|
||||||
|
|
||||||
|
# Bureau 1 (développement)
|
||||||
|
assign [class="jetbrains-idea|Code"] workspace 1
|
||||||
|
assign [app_id="jetbrains-idea|Code"] workspace 1
|
||||||
|
|
||||||
|
|
||||||
|
# Bureau 2 (navigation web)
|
||||||
|
assign [class="Google-chrome|Vivaldi-stable|Opera|Firefox|Navigator|Nightly|Chromium"] workspace 2
|
||||||
|
assign [app_id="Google-chrome|Vivaldi-stable|opera|firefox|navigator|nightly|chromium"] workspace 2
|
||||||
|
|
||||||
|
# Bureau 3 (Courriel, PHPStorm)
|
||||||
|
assign [class="Thunderbird|Mail|jetbrains-phpstorm"] workspace 3
|
||||||
|
assign [app_id="Thunderbird|Mail|jetbrains-phpstorm"] workspace 3
|
||||||
|
|
||||||
|
# Bureau 4
|
||||||
|
assign [class="Mattermost|mattermost-desktop|Rambox|Slack|Scudcloud|Gitter|Dino|Signal"] workspace 4
|
||||||
|
assign [app_id="Mattermost|mattermost-desktop|Rambox|Slack|Scudcloud|Gitter|dino|signal"] workspace 4
|
10
.config/sway/config.d/50-barre.conf
Normal file
10
.config/sway/config.d/50-barre.conf
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
# Barre d'état
|
||||||
|
|
||||||
|
# désactive la barre principale
|
||||||
|
bar 1 mode invisible
|
||||||
|
|
||||||
|
# active une nouvelle barre
|
||||||
|
bar olivier {
|
||||||
|
position top
|
||||||
|
status_command waybar
|
||||||
|
}
|
13
.config/sway/config.d/60-raccourcis.conf
Normal file
13
.config/sway/config.d/60-raccourcis.conf
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
# Raccourcis claviers en tous genres
|
||||||
|
|
||||||
|
# Contrôle des lecteurs audios (via MPRIS, par exemple mpv-mpris)
|
||||||
|
bindsym XF86AudioPlay exec playerctl play-pause # play/pause
|
||||||
|
bindsym XF86AudioNext exec playerctl next # prochain(e) musique/film/fichier
|
||||||
|
bindsym XF86AudioPrev exec playerctl previous # précédent(e) musique/film/fichier
|
||||||
|
bindsym XF86AudioStop exec playerctl stop # arrêt musique/film/fichier
|
||||||
|
|
||||||
|
# Bouton impression écran
|
||||||
|
bindsym Print exec grim Images/$(date +'%Y-%m-%d-%s_screenshot.jpg')
|
||||||
|
|
||||||
|
# Arrête l'enregistrement d'une vidéo avec wf-recorder
|
||||||
|
bindsym Ctrl+Shift+BackSpace exec killall -s SIGINT wf-recorder
|
5
.config/sway/config.d/61-volume.conf
Normal file
5
.config/sway/config.d/61-volume.conf
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
# Contrôle du volume audio
|
||||||
|
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
|
3
.config/sway/config.d/62-contraste.conf
Normal file
3
.config/sway/config.d/62-contraste.conf
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
# Contrôle de la lumière
|
||||||
|
bindsym XF86MonBrightnessDown exec brightnessctl set 5%-
|
||||||
|
bindsym XF86MonBrightnessUp exec brightnessctl set +5%
|
9
.config/sway/config.d/63-presse-papier.conf
Normal file
9
.config/sway/config.d/63-presse-papier.conf
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
# Presse-papier
|
||||||
|
unbindsym $mod+h
|
||||||
|
|
||||||
|
## CLIPMAN
|
||||||
|
bindsym $mod+h exec clipman pick -t wofi
|
||||||
|
|
||||||
|
# CLIPHIST
|
||||||
|
#bindsym $mod+h exec cliphist list | fzf --no-sort | cliphist decode | wl-copy
|
||||||
|
#bindsym $mod+h exec cliphist list | wofi -S dmenu | cliphist decode | wl-copy
|
8
.config/sway/config.d/64-verrouillage.conf
Normal file
8
.config/sway/config.d/64-verrouillage.conf
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
# Verrouillage
|
||||||
|
|
||||||
|
# Écran
|
||||||
|
unbindsym $mod+l
|
||||||
|
bindsym $mod+l exec swaylock
|
||||||
|
|
||||||
|
# Automatique
|
||||||
|
exec swayidle -w timeout 300 'swaylock -f' timeout 600 'swaymsg "output * dpms off"' resume 'swaymsg "output * dpms on"' before-sleep 'swaylock -f'
|
8
.config/sway/config.d/90-programmes.conf
Normal file
8
.config/sway/config.d/90-programmes.conf
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
# Économie des yeux (48.5680685:7.7709942 = Neudorf, rue de Fegersheim)
|
||||||
|
exec_always "killall wlsunset ; wlsunset -t 3500 -T 5700 -l 48.5 -L 7.7 &"
|
||||||
|
|
||||||
|
# Notifications de bureau
|
||||||
|
exec dunst
|
||||||
|
|
||||||
|
# Fond d'écran aléatoire
|
||||||
|
exec_always "kill -9 `ps aux | grep random_wallpaper |grep -v 'grep'| awk '{print $2}'`; random_wallpaper &"
|
1
.config/sway/icc/eDP-1.icm
Symbolic link
1
.config/sway/icc/eDP-1.icm
Symbolic link
@ -0,0 +1 @@
|
|||||||
|
/home/od/.color/icc/BOE_CQ_______NE135FBM_N41_03.icc
|
1
.config/swaylock/config
Normal file
1
.config/swaylock/config
Normal file
@ -0,0 +1 @@
|
|||||||
|
image=/home/od/.config/swaylock/plage_barcelone.jpg
|
BIN
.config/swaylock/plage_barcelone.jpg
Normal file
BIN
.config/swaylock/plage_barcelone.jpg
Normal file
Binary file not shown.
After Width: | Height: | Size: 120 KiB |
105
.config/waybar/config
Normal file
105
.config/waybar/config
Normal file
@ -0,0 +1,105 @@
|
|||||||
|
{
|
||||||
|
"height": 27, // Waybar height (to be removed for auto height)
|
||||||
|
"modules-left": ["sway/workspaces", "sway/mode", "custom/media"],
|
||||||
|
"modules-center": ["sway/window"],
|
||||||
|
"modules-right": ["backlight", "pulseaudio", "memory", "cpu", "network", "battery", "temperature", "clock", "custom/power", "tray"],
|
||||||
|
// Modules configuration
|
||||||
|
"sway/workspaces": {
|
||||||
|
"disable-scroll": true,
|
||||||
|
"all-outputs": true,
|
||||||
|
"format": "{name} {icon}",
|
||||||
|
"format-icons": {
|
||||||
|
"1": "",
|
||||||
|
"2": "",
|
||||||
|
"3": "",
|
||||||
|
"4": "",
|
||||||
|
"5": "",
|
||||||
|
"urgent": "",
|
||||||
|
"focused": "",
|
||||||
|
"default": ""
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"sway/mode": {
|
||||||
|
"format": "<span style=\"italic\">{}</span>"
|
||||||
|
},
|
||||||
|
"tray": {
|
||||||
|
"icon-size": 21,
|
||||||
|
"spacing": 10
|
||||||
|
},
|
||||||
|
"clock": {
|
||||||
|
"timezone": "Europe/Paris",
|
||||||
|
"tooltip-format": "<big>{:%Y %B}</big>\n<tt><small>{calendar}</small></tt>",
|
||||||
|
"format": "{:%a %d %b %R}",
|
||||||
|
"format-alt": "{:%Y-%m-%d %R:%S}"
|
||||||
|
},
|
||||||
|
"cpu": {
|
||||||
|
"format": " {usage}%",
|
||||||
|
"tooltip": false
|
||||||
|
},
|
||||||
|
"memory": {
|
||||||
|
"format": " {}%"
|
||||||
|
},
|
||||||
|
"temperature": {
|
||||||
|
"critical-threshold": 80,
|
||||||
|
"format": "{icon} {temperatureC}°C",
|
||||||
|
"format-icons": ["", "", ""]
|
||||||
|
},
|
||||||
|
"backlight": {
|
||||||
|
"format": " {percent}% {icon}",
|
||||||
|
"format-icons": ["🌕", "🌔", "🌓", "🌒", "🌑"]
|
||||||
|
},
|
||||||
|
"battery": {
|
||||||
|
"states": {
|
||||||
|
"warning": 30,
|
||||||
|
"critical": 15
|
||||||
|
},
|
||||||
|
"format": "{icon} {capacity}%",
|
||||||
|
"format-charging": "{capacity}% ",
|
||||||
|
"format-plugged": "{capacity}% ",
|
||||||
|
"format-alt": "{time} {icon}",
|
||||||
|
"format-icons": ["", "", "", "", ""]
|
||||||
|
},
|
||||||
|
"network": {
|
||||||
|
// "interface": "wlp2*", // (Optional) To force the use of this interface
|
||||||
|
"format-wifi": " {essid} ({signalStrength}%)",
|
||||||
|
"format-ethernet": "{ifname}: {ipaddr}/{cidr} ",
|
||||||
|
"format-linked": "{ifname} (No IP) ",
|
||||||
|
"format-disconnected": "Disconnected ⚠",
|
||||||
|
"format-alt": "{ifname}: {ipaddr}/{cidr}"
|
||||||
|
},
|
||||||
|
"pulseaudio": {
|
||||||
|
// "scroll-step": 1, // %, can be a float
|
||||||
|
"format": "{icon} {volume}% {format_source}",
|
||||||
|
"format-bluetooth": "{volume}% {icon} {format_source}",
|
||||||
|
"format-bluetooth-muted": " {icon} {format_source}",
|
||||||
|
"format-muted": " {format_source}",
|
||||||
|
"format-source": " {volume}%",
|
||||||
|
"format-source-muted": "",
|
||||||
|
"format-icons": {
|
||||||
|
"headphone": "",
|
||||||
|
"hands-free": "",
|
||||||
|
"headset": "",
|
||||||
|
"phone": "",
|
||||||
|
"portable": "",
|
||||||
|
"car": "",
|
||||||
|
"default": ["", "", ""]
|
||||||
|
},
|
||||||
|
"on-click": "pavucontrol"
|
||||||
|
},
|
||||||
|
"custom/media": {
|
||||||
|
"format": "{icon} {}",
|
||||||
|
"return-type": "json",
|
||||||
|
"max-length": 40,
|
||||||
|
"format-icons": {
|
||||||
|
"spotify": "",
|
||||||
|
"default": "🎜"
|
||||||
|
},
|
||||||
|
"escape": true,
|
||||||
|
"exec": "$HOME/.config/waybar/mediaplayer.py 2> /dev/null" // Script in resources folder
|
||||||
|
// "exec": "$HOME/.config/waybar/mediaplayer.py --player spotify 2> /dev/null" // Filter player based on name
|
||||||
|
},
|
||||||
|
"custom/power": {
|
||||||
|
"format": " ",
|
||||||
|
"on-click": "swaynag -t warning -m 'Menu gestion alimentation' -b 'Déconnexion' 'swaymsg exit' -b 'Veille' 'swaymsg exec systemctl suspend' -b 'Redémarrer' 'swaymsg exec systemctl reboot' -b 'Arrêter' 'shutdown now'"
|
||||||
|
}
|
||||||
|
}
|
209
.config/waybar/style.css
Normal file
209
.config/waybar/style.css
Normal file
@ -0,0 +1,209 @@
|
|||||||
|
* {
|
||||||
|
border: none;
|
||||||
|
border-radius: 0;
|
||||||
|
/* `otf-font-awesome` is required to be installed for icons */
|
||||||
|
font-family: DejaVu Sans Mono; /*, Roboto, Helvetica, Arial, sans-serif; */
|
||||||
|
font-size: 14px;
|
||||||
|
min-height: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
window#waybar {
|
||||||
|
background-color: #222;
|
||||||
|
/* border-bottom: 3px solid rgba(100, 114, 125, 0.5);*/
|
||||||
|
color: #dfdfdf;
|
||||||
|
transition-property: background-color;
|
||||||
|
transition-duration: .5s;
|
||||||
|
}
|
||||||
|
|
||||||
|
window#waybar.hidden {
|
||||||
|
opacity: 0.2;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
window#waybar.empty {
|
||||||
|
background-color: transparent;
|
||||||
|
}
|
||||||
|
window#waybar.solo {
|
||||||
|
background-color: #FFFFFF;
|
||||||
|
}
|
||||||
|
*/
|
||||||
|
|
||||||
|
window#waybar.termite {
|
||||||
|
background-color: #3F3F3F;
|
||||||
|
}
|
||||||
|
|
||||||
|
window#waybar.chromium {
|
||||||
|
background-color: #000000;
|
||||||
|
border: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
#workspaces button {
|
||||||
|
padding: 0 13px;
|
||||||
|
background-color: inherit;
|
||||||
|
color: #fff;
|
||||||
|
/* Use box-shadow instead of border so the text isn't offset */
|
||||||
|
box-shadow: inset 0 -3px transparent;
|
||||||
|
border-bottom: 3px solid #222;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* https://github.com/Alexays/Waybar/wiki/FAQ#the-workspace-buttons-have-a-strange-hover-effect */
|
||||||
|
#workspaces button:hover {
|
||||||
|
background: rgba(0, 0, 0, 0.2);
|
||||||
|
box-shadow: inset 0 -3px #ffffff;
|
||||||
|
}
|
||||||
|
|
||||||
|
#workspaces button.focused {
|
||||||
|
background-color: #444;
|
||||||
|
color: #fff;
|
||||||
|
border-bottom: 3px solid #ffb52a;
|
||||||
|
}
|
||||||
|
|
||||||
|
#workspaces button.urgent {
|
||||||
|
background-color: #bd2c40;
|
||||||
|
}
|
||||||
|
|
||||||
|
#mode {
|
||||||
|
background-color: #64727d;
|
||||||
|
border-bottom: 3px solid #ffffff;
|
||||||
|
}
|
||||||
|
|
||||||
|
#clock,
|
||||||
|
#battery,
|
||||||
|
#cpu,
|
||||||
|
#memory,
|
||||||
|
#disk,
|
||||||
|
#temperature,
|
||||||
|
#backlight,
|
||||||
|
#network,
|
||||||
|
#pulseaudio,
|
||||||
|
#custom-media,
|
||||||
|
#tray,
|
||||||
|
#mode,
|
||||||
|
#idle_inhibitor,
|
||||||
|
#mpd {
|
||||||
|
padding: 0 5px;
|
||||||
|
margin: 0 3px;
|
||||||
|
color: #ffffff;
|
||||||
|
}
|
||||||
|
|
||||||
|
#window,
|
||||||
|
#workspaces {
|
||||||
|
margin: 0 4px;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* If workspaces is the leftmost module, omit left margin */
|
||||||
|
.modules-left > widget:first-child > #workspaces {
|
||||||
|
margin-left: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Décalage du centre de 30 caractères de large sur la gauche (caractère M) */
|
||||||
|
.modules-center {
|
||||||
|
margin-left: -30em;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* If workspaces is the rightmost module, omit right margin */
|
||||||
|
.modules-right > widget:last-child > #workspaces {
|
||||||
|
margin-right: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
#clock {
|
||||||
|
background-color: inherit;
|
||||||
|
border-bottom: 3px solid #f4a70a;
|
||||||
|
}
|
||||||
|
|
||||||
|
#battery {
|
||||||
|
background-color: inherit;
|
||||||
|
border-bottom: 3px solid #ffb52a;
|
||||||
|
}
|
||||||
|
|
||||||
|
#battery.charging, #battery.plugged {
|
||||||
|
color: #ffffff;
|
||||||
|
background-color: #26A65B;
|
||||||
|
}
|
||||||
|
|
||||||
|
@keyframes blink {
|
||||||
|
to {
|
||||||
|
background-color: #ffffff;
|
||||||
|
color: #000000;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#battery.critical:not(.charging) {
|
||||||
|
background-color: #f53c3c;
|
||||||
|
color: #ffffff;
|
||||||
|
animation-name: blink;
|
||||||
|
animation-duration: 0.5s;
|
||||||
|
animation-timing-function: linear;
|
||||||
|
animation-iteration-count: infinite;
|
||||||
|
animation-direction: alternate;
|
||||||
|
}
|
||||||
|
|
||||||
|
label:focus {
|
||||||
|
background-color: #000000;
|
||||||
|
}
|
||||||
|
|
||||||
|
#cpu {
|
||||||
|
background-color: inherit;
|
||||||
|
border-bottom: 3px solid #f90000;
|
||||||
|
}
|
||||||
|
|
||||||
|
#memory {
|
||||||
|
background-color: inherit;
|
||||||
|
border-bottom: 3px solid #4bffdc;
|
||||||
|
}
|
||||||
|
|
||||||
|
#backlight {
|
||||||
|
background-color: inherit;
|
||||||
|
border-bottom: 3px solid #9f78e1;
|
||||||
|
}
|
||||||
|
|
||||||
|
#network {
|
||||||
|
background-color: inherit;
|
||||||
|
border-bottom: 3px solid #9f78e1;
|
||||||
|
}
|
||||||
|
|
||||||
|
#network.disconnected {
|
||||||
|
background-color: inherit;
|
||||||
|
}
|
||||||
|
|
||||||
|
#pulseaudio {
|
||||||
|
background-color: inherit;
|
||||||
|
border-bottom: 3px solid #f4a70a;
|
||||||
|
}
|
||||||
|
|
||||||
|
#pulseaudio.muted {
|
||||||
|
background-color: inherit;
|
||||||
|
color: #666;
|
||||||
|
}
|
||||||
|
|
||||||
|
#custom-media {
|
||||||
|
background-color: #66cc99;
|
||||||
|
color: #2a5c45;
|
||||||
|
min-width: 100px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#custom-media.custom-spotify {
|
||||||
|
background-color: #66cc99;
|
||||||
|
}
|
||||||
|
|
||||||
|
#custom-media.custom-vlc {
|
||||||
|
background-color: #ffa000;
|
||||||
|
}
|
||||||
|
|
||||||
|
#custom-power {
|
||||||
|
margin: 0 10px;
|
||||||
|
color: red;
|
||||||
|
}
|
||||||
|
|
||||||
|
#temperature {
|
||||||
|
background-color: inherit;
|
||||||
|
border-bottom: 3px solid #f50a4d;
|
||||||
|
}
|
||||||
|
|
||||||
|
#temperature.critical {
|
||||||
|
background-color: #eb4d4b;
|
||||||
|
}
|
||||||
|
|
||||||
|
#tray {
|
||||||
|
background-color: inherit;
|
||||||
|
}
|
31
.config/wofi/style.css
Normal file
31
.config/wofi/style.css
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
/* base16-wofi (https://sr.ht/~knezi/base16-wofi)
|
||||||
|
* Base16 wofi template by knezi
|
||||||
|
* Solarized Dark scheme by Ethan Schoonover (modified by aramisgithub) */
|
||||||
|
|
||||||
|
window {
|
||||||
|
background-color: #002b36;
|
||||||
|
color: #93a1a1;
|
||||||
|
opacity: 0.8;
|
||||||
|
}
|
||||||
|
|
||||||
|
#entry:nth-child(odd) {
|
||||||
|
background-color: #002b36;
|
||||||
|
}
|
||||||
|
|
||||||
|
#entry:nth-child(even) {
|
||||||
|
background-color: #073642;
|
||||||
|
}
|
||||||
|
|
||||||
|
#entry:selected {
|
||||||
|
background-color: #586e75;
|
||||||
|
}
|
||||||
|
|
||||||
|
#input {
|
||||||
|
background-color: #073642;
|
||||||
|
color: #839496;
|
||||||
|
border-color: #586e75;
|
||||||
|
}
|
||||||
|
|
||||||
|
#input:focus {
|
||||||
|
border-color: #b58900;
|
||||||
|
}
|
4
.config/xdg-desktop-portal/sway-portals.conf
Normal file
4
.config/xdg-desktop-portal/sway-portals.conf
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
[preferred]
|
||||||
|
default=wlr;gtk
|
||||||
|
#org.freedesktop.impl.portal.Screenshot=wlr
|
||||||
|
#org.freedesktop.impl.portal.Screencast=wlr
|
26
.config/zsh/.before.zshrc.zsh
Normal file
26
.config/zsh/.before.zshrc.zsh
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
#!/usr/bin/env zsh
|
||||||
|
|
||||||
|
# Automatic connection
|
||||||
|
mkdir -p "${HOME}/etc/ssh";
|
||||||
|
function ssh-procure-launch-agent {
|
||||||
|
eval `ssh-agent -s -a ~/etc/ssh/ssh-agent-socket`;
|
||||||
|
ssh-add;
|
||||||
|
}
|
||||||
|
|
||||||
|
if [ ! $SSH_AGENT_PID ]; then
|
||||||
|
if [ -e ~/etc/ssh/ssh-agent-socket ] ; then
|
||||||
|
SSH_AGENT_PID=`ps -fC ssh-agent |grep 'etc/ssh/ssh-agent-socket' |sed -r 's/^\S+\s+(\S+).*$/\1/'`;
|
||||||
|
if [[ $SSH_AGENT_PID =~ [0-9]+ ]]; then
|
||||||
|
# in this case the agent has already been launched and we are just attaching to it.
|
||||||
|
##++ It should check that this pid is actually active & belongs to an ssh instance
|
||||||
|
export SSH_AGENT_PID;
|
||||||
|
SSH_AUTH_SOCK=~/etc/ssh/ssh-agent-socket; export SSH_AUTH_SOCK;
|
||||||
|
else
|
||||||
|
# in this case there is no agent running, so the socket file is left over from a graceless agent termination.
|
||||||
|
rm ~/etc/ssh/ssh-agent-socket;
|
||||||
|
ssh-procure-launch-agent;
|
||||||
|
fi;
|
||||||
|
else
|
||||||
|
ssh-procure-launch-agent;
|
||||||
|
fi;
|
||||||
|
fi;
|
@ -68,7 +68,7 @@ ZSH_THEME="powerlevel10k/powerlevel10k"
|
|||||||
# Custom plugins may be added to ~/.oh-my-zsh/custom/plugins/
|
# Custom plugins may be added to ~/.oh-my-zsh/custom/plugins/
|
||||||
# Example format: plugins=(rails git textmate ruby lighthouse)
|
# Example format: plugins=(rails git textmate ruby lighthouse)
|
||||||
# Add wisely, as too many plugins slow down shell startup.
|
# Add wisely, as too many plugins slow down shell startup.
|
||||||
plugins=(git httpie ng npm nvm pass pip sudo wd)
|
plugins=(git httpie ng npm nvm pass pip sudo wd pyenv kubectl helm terraform)
|
||||||
|
|
||||||
source $ZSH/oh-my-zsh.sh
|
source $ZSH/oh-my-zsh.sh
|
||||||
|
|
||||||
@ -77,30 +77,6 @@ POWERLEVEL9K_SHORTEN_DIR_LENGTH=1
|
|||||||
POWERLEVEL9K_SHORTEN_DELIMITER=""
|
POWERLEVEL9K_SHORTEN_DELIMITER=""
|
||||||
POWERLEVEL9K_SHORTEN_STRATEGY="truncate_from_right"
|
POWERLEVEL9K_SHORTEN_STRATEGY="truncate_from_right"
|
||||||
|
|
||||||
# User configuration
|
|
||||||
export PAGER=most
|
|
||||||
export BROWSER=elinks
|
|
||||||
export SSH_ASKPASS=qt4-ssh-askpass
|
|
||||||
export AUTEUR="Olivier DOSSMANN"
|
|
||||||
export DEFAULT_USER="od"
|
|
||||||
export PYTHONWARNINGS="ignore::DeprecationWarning"
|
|
||||||
#export FLASK_SKIP_DOTENV=1 ## make problems with poetry and flask applications
|
|
||||||
export PIPENV_QUIET=1 # enlève les courtesy notice
|
|
||||||
export ENABLE_WARNINGS=false # enlève les warnings dans le setup RERO-ils
|
|
||||||
|
|
||||||
# You may need to manually set your language environment
|
|
||||||
export LANG=fr_FR.UTF-8
|
|
||||||
|
|
||||||
# Preferred editor for local and remote sessions
|
|
||||||
if [[ -n $SSH_CONNECTION ]]; then
|
|
||||||
export EDITOR='vim'
|
|
||||||
else
|
|
||||||
export EDITOR='nvim'
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Enlève le prompt de droite après avoir appuyé sur Entrée
|
|
||||||
setopt transient_rprompt
|
|
||||||
|
|
||||||
# Compilation flags
|
# Compilation flags
|
||||||
# export ARCHFLAGS="-arch x86_64"
|
# export ARCHFLAGS="-arch x86_64"
|
||||||
|
|
||||||
@ -112,59 +88,10 @@ setopt transient_rprompt
|
|||||||
# Example aliases
|
# Example aliases
|
||||||
# alias zshconfig="mate ~/.zshrc"
|
# alias zshconfig="mate ~/.zshrc"
|
||||||
# alias ohmyzsh="mate ~/.oh-my-zsh"
|
# alias ohmyzsh="mate ~/.oh-my-zsh"
|
||||||
alias e="${EDITOR}"
|
|
||||||
alias r="${EDITOR} -R"
|
|
||||||
alias sm="sublime_merge"
|
|
||||||
alias vi="${EDITOR}"
|
|
||||||
alias mem='free -mt'
|
|
||||||
alias df='df -hT'
|
|
||||||
alias ls='exa'
|
|
||||||
alias ll='exa -l'
|
|
||||||
alias l='exa -F'
|
|
||||||
alias rgrep='rg --no-ignore'
|
|
||||||
export GREP_COLORS='ms=01;33:mc=01;33:s1=:cx=:fn=37;ln=32:bn=32:se=36'
|
|
||||||
alias diff='colordiff'
|
|
||||||
alias dotfiles='/usr/bin/git --git-dir=$HOME/.dotfiles/ --work-tree=$HOME'
|
|
||||||
# évite de faire des erreurs
|
|
||||||
alias rm='rm -i'
|
|
||||||
alias cp='cp -i'
|
|
||||||
alias grep='grep --color'
|
|
||||||
# requêtes
|
|
||||||
alias https='http --verify=no --default-scheme=https'
|
|
||||||
# pytest
|
|
||||||
alias pyt='poetry run pytest -vvs --no-cov --disable-warnings'
|
|
||||||
alias pytc='poetry run pytest -vvs --disable-warnings --cov-report=xml:cov.xml'
|
|
||||||
# projet rero
|
|
||||||
alias rero="ALIAS=rero /home/od/projets/rerologik/agnes"
|
|
||||||
|
|
||||||
# To customize prompt, run `p10k configure` or edit ~/.p10k.zsh.
|
# To customize prompt, run `p10k configure` or edit ~/.p10k.zsh.
|
||||||
[[ -f ~/.p10k.zsh ]] && source ~/.p10k.zsh
|
[[ -f ~/.p10k.zsh ]] && source ~/.p10k.zsh
|
||||||
|
|
||||||
# Connexion automatique
|
|
||||||
mkdir -p "${HOME}/etc/ssh";
|
|
||||||
function ssh-procure-launch-agent {
|
|
||||||
eval `ssh-agent -s -a ~/etc/ssh/ssh-agent-socket`;
|
|
||||||
ssh-add;
|
|
||||||
}
|
|
||||||
|
|
||||||
if [ ! $SSH_AGENT_PID ]; then
|
|
||||||
if [ -e ~/etc/ssh/ssh-agent-socket ] ; then
|
|
||||||
SSH_AGENT_PID=`ps -fC ssh-agent |grep 'etc/ssh/ssh-agent-socket' |sed -r 's/^\S+\s+(\S+).*$/\1/'`;
|
|
||||||
if [[ $SSH_AGENT_PID =~ [0-9]+ ]]; then
|
|
||||||
# in this case the agent has already been launched and we are just attaching to it.
|
|
||||||
##++ It should check that this pid is actually active & belongs to an ssh instance
|
|
||||||
export SSH_AGENT_PID;
|
|
||||||
SSH_AUTH_SOCK=~/etc/ssh/ssh-agent-socket; export SSH_AUTH_SOCK;
|
|
||||||
else
|
|
||||||
# in this case there is no agent running, so the socket file is left over from a graceless agent termination.
|
|
||||||
rm ~/etc/ssh/ssh-agent-socket;
|
|
||||||
ssh-procure-launch-agent;
|
|
||||||
fi;
|
|
||||||
else
|
|
||||||
ssh-procure-launch-agent;
|
|
||||||
fi;
|
|
||||||
fi;
|
|
||||||
|
|
||||||
# Desktop specificities for development
|
# Desktop specificities for development
|
||||||
case $HOST in
|
case $HOST in
|
||||||
lueur | baloo | sam)
|
lueur | baloo | sam)
|
||||||
@ -175,6 +102,6 @@ case $HOST in
|
|||||||
source /usr/share/nvm/init-nvm.sh
|
source /usr/share/nvm/init-nvm.sh
|
||||||
# Virtualenv (for Python development)
|
# Virtualenv (for Python development)
|
||||||
export WORKON_HOME=~/.virtualenvs
|
export WORKON_HOME=~/.virtualenvs
|
||||||
source /usr/bin/virtualenvwrapper.sh
|
#source /usr/bin/virtualenvwrapper.sh
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
28
.config/zsh/.zprofile
Normal file
28
.config/zsh/.zprofile
Normal file
@ -0,0 +1,28 @@
|
|||||||
|
# .profile permet d'avoir
|
||||||
|
# 1. TERMINAL (choix d'un terminal par défaut)
|
||||||
|
# 2. BATPATH (pour la batterie)
|
||||||
|
# 3. PATH initial # TODO: vraiment nécessaire ?
|
||||||
|
emulate sh -c '. ~/.profile'
|
||||||
|
|
||||||
|
# TODO: vérifier si ce code commenté fonctionne
|
||||||
|
#export PYENV_ROOT="$HOME/.pyenv"
|
||||||
|
#export PATH="$PYENV_ROOT/bin:$PATH"
|
||||||
|
#eval "$(pyenv init --path)"
|
||||||
|
|
||||||
|
# Start X automatically
|
||||||
|
if systemctl -q is-active graphical.target && [[ ! $DISPLAY && $XDG_VTNR -eq 1 ]]; then
|
||||||
|
case $HOST in
|
||||||
|
roc | zou)
|
||||||
|
: # Exceptions : On ne fait rien pour ces machines qui sont sous Xorg.
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
# Pour toutes les autres on charge le contenu de .config/environment.d
|
||||||
|
# Cf. https://wiki.archlinux.org/title/Environment_variables#Per_Wayland_session
|
||||||
|
# use systemd-environment-d-generator(8) to generate environment, and export those variables
|
||||||
|
set -o allexport
|
||||||
|
source <(/usr/lib/systemd/user-environment-generators/30-systemd-environment-d-generator)
|
||||||
|
set +o allexport
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
exec sway
|
||||||
|
fi
|
38
.config/zsh/.zsh_plugins.txt
Normal file
38
.config/zsh/.zsh_plugins.txt
Normal file
@ -0,0 +1,38 @@
|
|||||||
|
#!/bin/zsh
|
||||||
|
#
|
||||||
|
# .zsh_plugins.txt - antidote plugins file
|
||||||
|
#
|
||||||
|
|
||||||
|
# Completions
|
||||||
|
mattmc3/ez-compinit
|
||||||
|
zsh-users/zsh-completions kind:fpath path:src
|
||||||
|
aloxaf/fzf-tab # Remove if you don't use fzf
|
||||||
|
|
||||||
|
# Completion styles
|
||||||
|
belak/zsh-utils path:completion/functions kind:autoload post:compstyle_zshzoo_setup
|
||||||
|
|
||||||
|
# Keybindings
|
||||||
|
belak/zsh-utils path:editor
|
||||||
|
|
||||||
|
# History
|
||||||
|
belak/zsh-utils path:history
|
||||||
|
|
||||||
|
# Prompt
|
||||||
|
romkatv/powerlevel10k
|
||||||
|
|
||||||
|
# Utilities
|
||||||
|
belak/zsh-utils path:utility
|
||||||
|
romkatv/zsh-bench kind:path
|
||||||
|
ohmyzsh/ohmyzsh path:plugins/extract
|
||||||
|
# a kind of "cd" with shortcuts
|
||||||
|
mfaerevaag/wd
|
||||||
|
|
||||||
|
# Aliases
|
||||||
|
#ohmyzsh/ohmyzsh path:plugins/helm # semble ne pas fonctionner
|
||||||
|
ohmyzsh/ohmyzsh path:plugins/kubectl
|
||||||
|
ohmyzsh/ohmyzsh path:plugins/terraform
|
||||||
|
|
||||||
|
# Other Fish-like features
|
||||||
|
zdharma-continuum/fast-syntax-highlighting # Syntax highlighting
|
||||||
|
zsh-users/zsh-autosuggestions # Auto-suggestions
|
||||||
|
zsh-users/zsh-history-substring-search # Up/Down to search history
|
40
.config/zsh/.zshrc
Normal file
40
.config/zsh/.zshrc
Normal file
@ -0,0 +1,40 @@
|
|||||||
|
#!/usr/bin/env zsh
|
||||||
|
|
||||||
|
# Scripts that should be loaded before instant prompt
|
||||||
|
# because they ask something in prompt
|
||||||
|
source ${ZDOTDIR:-$HOME}/.before.zshrc.zsh
|
||||||
|
|
||||||
|
# Enable Powerlevel10k instant prompt. Should stay close to the top of .zshrc.
|
||||||
|
# Initialization code that may require console input (password prompts, [y/n]
|
||||||
|
# confirmations, etc.) must go above this block; everything else may go below.
|
||||||
|
if [[ -r "${XDG_CACHE_HOME:-$HOME/.cache}/p10k-instant-prompt-${(%):-%n}.zsh" ]]; then
|
||||||
|
source "${XDG_CACHE_HOME:-$HOME/.cache}/p10k-instant-prompt-${(%):-%n}.zsh"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Load fzf
|
||||||
|
source /usr/share/fzf/completion.zsh
|
||||||
|
source /usr/share/fzf/key-bindings.zsh
|
||||||
|
|
||||||
|
# Clone antidote if necessary.
|
||||||
|
if [[ ! -d ${ZDOTDIR:-$HOME}/.antidote ]]; then
|
||||||
|
git clone https://github.com/mattmc3/antidote ${ZDOTDIR:-$HOME}/.antidote
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Create an amazing Zsh config using antidote plugins.
|
||||||
|
source ${ZDOTDIR:-$HOME}/.antidote/antidote.zsh
|
||||||
|
antidote load
|
||||||
|
|
||||||
|
# Enlève le prompt de droite après avoir appuyé sur Entrée
|
||||||
|
setopt transient_rprompt
|
||||||
|
|
||||||
|
# Source anything in .zshrc.d.
|
||||||
|
for _rc in ${ZDOTDIR:-$HOME}/.zshrc.d/*.zsh; do
|
||||||
|
# Ignore tilde files.
|
||||||
|
if [[ $_rc:t != '~'* ]]; then
|
||||||
|
source "$_rc"
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
unset _rc
|
||||||
|
|
||||||
|
# To customize prompt, run `p10k configure` or edit .p10k.zsh.
|
||||||
|
[[ ! -f ${ZDOTDIR:-$HOME}/.p10k.zsh ]] || source ${ZDOTDIR:-$HOME}/.p10k.zsh
|
241
.config/zsh/.zshrc.d/aliases.zsh
Normal file
241
.config/zsh/.zshrc.d/aliases.zsh
Normal file
@ -0,0 +1,241 @@
|
|||||||
|
#!/usr/bin/env zsh
|
||||||
|
|
||||||
|
# editor
|
||||||
|
alias e="${EDITOR}"
|
||||||
|
alias r="${EDITOR} -R"
|
||||||
|
alias sm="sublime_merge"
|
||||||
|
alias vi="${EDITOR}"
|
||||||
|
|
||||||
|
# pagination
|
||||||
|
alias cat='bat'
|
||||||
|
|
||||||
|
# system
|
||||||
|
alias mem='free -mt'
|
||||||
|
alias df='df -hT'
|
||||||
|
|
||||||
|
# navigation
|
||||||
|
alias ls='eza'
|
||||||
|
alias ll='eza -lah --group --smart-group --icons'
|
||||||
|
alias l='eza -F'
|
||||||
|
|
||||||
|
# web
|
||||||
|
alias https='http --verify=no --default-scheme=https'
|
||||||
|
|
||||||
|
# search
|
||||||
|
alias rgrep='rg --no-ignore'
|
||||||
|
|
||||||
|
# add colors to some commands
|
||||||
|
alias diff='colordiff'
|
||||||
|
export GREP_COLORS='ms=01;33:mc=01;33:s1=:cx=:fn=37;ln=32:bn=32:se=36'
|
||||||
|
alias grep='grep --color'
|
||||||
|
alias ip='ip -c'
|
||||||
|
|
||||||
|
# dotfiles
|
||||||
|
alias dotfiles='/usr/bin/git --git-dir=$HOME/.dotfiles/ --work-tree=$HOME'
|
||||||
|
|
||||||
|
# be careful!
|
||||||
|
alias rm='rm -i'
|
||||||
|
alias cp='cp -i'
|
||||||
|
alias mv='mv -i'
|
||||||
|
|
||||||
|
# pytest
|
||||||
|
alias pyt='poetry run pytest -vvs --no-cov --disable-warnings'
|
||||||
|
alias pytc='poetry run pytest -vvs --disable-warnings --cov-report=xml:cov.xml'
|
||||||
|
|
||||||
|
# k8s
|
||||||
|
alias k='kubectl'
|
||||||
|
|
||||||
|
# miscellaneous
|
||||||
|
alias devu="${HOME}/devu/devu/devu"
|
||||||
|
|
||||||
|
# git
|
||||||
|
alias g='git'
|
||||||
|
alias ga='git add'
|
||||||
|
alias gaa='git add --all'
|
||||||
|
alias gam='git am'
|
||||||
|
alias gama='git am --abort'
|
||||||
|
alias gamc='git am --continue'
|
||||||
|
alias gams='git am --skip'
|
||||||
|
alias gamscp='git am --show-current-patch'
|
||||||
|
alias gap='git apply'
|
||||||
|
alias gapa='git add --patch'
|
||||||
|
alias gapt='git apply --3way'
|
||||||
|
alias gau='git add --update'
|
||||||
|
alias gav='git add --verbose'
|
||||||
|
alias gb='git branch'
|
||||||
|
alias gbD='git branch --delete --force'
|
||||||
|
alias gba='git branch --all'
|
||||||
|
alias gbd='git branch --delete'
|
||||||
|
alias gbl='git blame -w'
|
||||||
|
alias gbm='git branch --move'
|
||||||
|
alias gbnm='git branch --no-merged'
|
||||||
|
alias gbr='git branch --remote'
|
||||||
|
alias gbs='git bisect'
|
||||||
|
alias gbsb='git bisect bad'
|
||||||
|
alias gbsg='git bisect good'
|
||||||
|
alias gbsn='git bisect new'
|
||||||
|
alias gbso='git bisect old'
|
||||||
|
alias gbsr='git bisect reset'
|
||||||
|
alias gbss='git bisect start'
|
||||||
|
alias gc='git commit --verbose'
|
||||||
|
alias 'gc!'='git commit --verbose --amend'
|
||||||
|
alias gcB='git checkout -B'
|
||||||
|
alias gca='git commit --verbose --all'
|
||||||
|
alias 'gca!'='git commit --verbose --all --amend'
|
||||||
|
alias gcam='git commit --all --message'
|
||||||
|
alias 'gcan!'='git commit --verbose --all --no-edit --amend'
|
||||||
|
alias 'gcann!'='git commit --verbose --all --date=now --no-edit --amend'
|
||||||
|
alias 'gcans!'='git commit --verbose --all --signoff --no-edit --amend'
|
||||||
|
alias gcas='git commit --all --signoff'
|
||||||
|
alias gcasm='git commit --all --signoff --message'
|
||||||
|
alias gcb='git checkout -b'
|
||||||
|
alias gcd='git checkout $(git_develop_branch)'
|
||||||
|
alias gcf='git config --list'
|
||||||
|
alias gcl='git clone --recurse-submodules'
|
||||||
|
alias gclean='git clean --interactive -d'
|
||||||
|
alias gclf='git clone --recursive --shallow-submodules --filter=blob:none --also-filter-submodules'
|
||||||
|
alias gcm='git checkout $(git_main_branch)'
|
||||||
|
alias gcmsg='git commit --message'
|
||||||
|
alias gcn='git commit --verbose --no-edit'
|
||||||
|
alias 'gcn!'='git commit --verbose --no-edit --amend'
|
||||||
|
alias gco='git checkout'
|
||||||
|
alias gcor='git checkout --recurse-submodules'
|
||||||
|
alias gcount='git shortlog --summary --numbered'
|
||||||
|
alias gcp='git cherry-pick'
|
||||||
|
alias gcpa='git cherry-pick --abort'
|
||||||
|
alias gcpc='git cherry-pick --continue'
|
||||||
|
alias gcs='git commit --gpg-sign'
|
||||||
|
alias gcsm='git commit --signoff --message'
|
||||||
|
alias gcss='git commit --gpg-sign --signoff'
|
||||||
|
alias gcssm='git commit --gpg-sign --signoff --message'
|
||||||
|
alias gd='git diff'
|
||||||
|
alias gdca='git diff --cached'
|
||||||
|
alias gdct='git describe --tags $(git rev-list --tags --max-count=1)'
|
||||||
|
alias gdcw='git diff --cached --word-diff'
|
||||||
|
alias gds='git diff --staged'
|
||||||
|
alias gdt='git diff-tree --no-commit-id --name-only -r'
|
||||||
|
alias gdup='git diff @{upstream}'
|
||||||
|
alias gdw='git diff --word-diff'
|
||||||
|
alias gf='git fetch'
|
||||||
|
alias gfa='git fetch --all --tags --prune --jobs=10'
|
||||||
|
alias gfg='git ls-files | grep'
|
||||||
|
alias gfo='git fetch origin'
|
||||||
|
alias gg='git gui citool'
|
||||||
|
alias gga='git gui citool --amend'
|
||||||
|
alias ggpull='git pull origin "$(git_current_branch)"'
|
||||||
|
alias ggpush='git push origin "$(git_current_branch)"'
|
||||||
|
alias ggsup='git branch --set-upstream-to=origin/$(git_current_branch)'
|
||||||
|
alias ghh='git help'
|
||||||
|
alias gignore='git update-index --assume-unchanged'
|
||||||
|
alias gignored='git ls-files -v | grep "^[[:lower:]]"'
|
||||||
|
alias git-svn-dcommit-push='git svn dcommit && git push github $(git_main_branch):svntrunk'
|
||||||
|
alias gl='git pull'
|
||||||
|
alias glg='git log --stat'
|
||||||
|
alias glgg='git log --graph'
|
||||||
|
alias glgga='git log --graph --decorate --all'
|
||||||
|
alias glgm='git log --graph --max-count=10'
|
||||||
|
alias glgp='git log --stat --patch'
|
||||||
|
alias glo='git log --oneline --decorate'
|
||||||
|
alias glod='git log --graph --pretty="%Cred%h%Creset -%C(auto)%d%Creset %s %Cgreen(%ad) %C(bold blue)<%an>%Creset"'
|
||||||
|
alias glods='git log --graph --pretty="%Cred%h%Creset -%C(auto)%d%Creset %s %Cgreen(%ad) %C(bold blue)<%an>%Creset" --date=short'
|
||||||
|
alias glog='git log --oneline --decorate --graph'
|
||||||
|
alias gloga='git log --oneline --decorate --graph --all'
|
||||||
|
alias glol='git log --graph --pretty="%Cred%h%Creset -%C(auto)%d%Creset %s %Cgreen(%ar) %C(bold blue)<%an>%Creset"'
|
||||||
|
alias glola='git log --graph --pretty="%Cred%h%Creset -%C(auto)%d%Creset %s %Cgreen(%ar) %C(bold blue)<%an>%Creset" --all'
|
||||||
|
alias glols='git log --graph --pretty="%Cred%h%Creset -%C(auto)%d%Creset %s %Cgreen(%ar) %C(bold blue)<%an>%Creset" --stat'
|
||||||
|
alias gluc='git pull upstream $(git_current_branch)'
|
||||||
|
alias glum='git pull upstream $(git_main_branch)'
|
||||||
|
alias gm='git merge'
|
||||||
|
alias gma='git merge --abort'
|
||||||
|
alias gmc='git merge --continue'
|
||||||
|
alias gmff='git merge --ff-only'
|
||||||
|
alias gmom='git merge origin/$(git_main_branch)'
|
||||||
|
alias gms='git merge --squash'
|
||||||
|
alias gmtl='git mergetool --no-prompt'
|
||||||
|
alias gmtlvim='git mergetool --no-prompt --tool=vimdiff'
|
||||||
|
alias gmum='git merge upstream/$(git_main_branch)'
|
||||||
|
alias gp='git push'
|
||||||
|
alias gpd='git push --dry-run'
|
||||||
|
alias gpf='git push --force-with-lease --force-if-includes'
|
||||||
|
alias 'gpf!'='git push --force'
|
||||||
|
alias gpoat='git push origin --all && git push origin --tags'
|
||||||
|
alias gpod='git push origin --delete'
|
||||||
|
alias gpr='git pull --rebase'
|
||||||
|
alias gpra='git pull --rebase --autostash'
|
||||||
|
alias gprav='git pull --rebase --autostash -v'
|
||||||
|
alias gpristine='git reset --hard && git clean --force -dfx'
|
||||||
|
alias gprom='git pull --rebase origin $(git_main_branch)'
|
||||||
|
alias gpromi='git pull --rebase=interactive origin $(git_main_branch)'
|
||||||
|
alias gprum='git pull --rebase upstream $(git_main_branch)'
|
||||||
|
alias gprumi='git pull --rebase=interactive upstream $(git_main_branch)'
|
||||||
|
alias gprv='git pull --rebase -v'
|
||||||
|
alias gpsup='git push --set-upstream origin $(git_current_branch)'
|
||||||
|
alias gpsupf='git push --set-upstream origin $(git_current_branch) --force-with-lease --force-if-includes'
|
||||||
|
alias gpu='git push upstream'
|
||||||
|
alias gpv='git push --verbose'
|
||||||
|
alias gr='git remote'
|
||||||
|
alias gra='git remote add'
|
||||||
|
alias grb='git rebase'
|
||||||
|
alias grba='git rebase --abort'
|
||||||
|
alias grbc='git rebase --continue'
|
||||||
|
alias grbd='git rebase $(git_develop_branch)'
|
||||||
|
alias grbi='git rebase --interactive'
|
||||||
|
alias grbm='git rebase $(git_main_branch)'
|
||||||
|
alias grbo='git rebase --onto'
|
||||||
|
alias grbom='git rebase origin/$(git_main_branch)'
|
||||||
|
alias grbs='git rebase --skip'
|
||||||
|
alias grbum='git rebase upstream/$(git_main_branch)'
|
||||||
|
alias grev='git revert'
|
||||||
|
alias greva='git revert --abort'
|
||||||
|
alias grevc='git revert --continue'
|
||||||
|
alias grf='git reflog'
|
||||||
|
alias grh='git reset'
|
||||||
|
alias grhh='git reset --hard'
|
||||||
|
alias grhk='git reset --keep'
|
||||||
|
alias grhs='git reset --soft'
|
||||||
|
alias grm='git rm'
|
||||||
|
alias grmc='git rm --cached'
|
||||||
|
alias grmv='git remote rename'
|
||||||
|
alias groh='git reset origin/$(git_current_branch) --hard'
|
||||||
|
alias grrm='git remote remove'
|
||||||
|
alias grs='git restore'
|
||||||
|
alias grset='git remote set-url'
|
||||||
|
alias grss='git restore --source'
|
||||||
|
alias grst='git restore --staged'
|
||||||
|
alias gru='git reset --'
|
||||||
|
alias grup='git remote update'
|
||||||
|
alias grv='git remote --verbose'
|
||||||
|
alias gsb='git status --short --branch'
|
||||||
|
alias gsd='git svn dcommit'
|
||||||
|
alias gsh='git show'
|
||||||
|
alias gsi='git submodule init'
|
||||||
|
alias gsps='git show --pretty=short --show-signature'
|
||||||
|
alias gsr='git svn rebase'
|
||||||
|
alias gss='git status --short'
|
||||||
|
alias gst='git status'
|
||||||
|
alias gsta='git stash push'
|
||||||
|
alias gstaa='git stash apply'
|
||||||
|
alias gstall='git stash --all'
|
||||||
|
alias gstc='git stash clear'
|
||||||
|
alias gstd='git stash drop'
|
||||||
|
alias gstl='git stash list'
|
||||||
|
alias gstp='git stash pop'
|
||||||
|
alias gsts='git stash show --patch'
|
||||||
|
alias gsu='git submodule update'
|
||||||
|
alias gsw='git switch'
|
||||||
|
alias gswc='git switch --create'
|
||||||
|
alias gswd='git switch $(git_develop_branch)'
|
||||||
|
alias gswm='git switch $(git_main_branch)'
|
||||||
|
alias gta='git tag --annotate'
|
||||||
|
alias gts='git tag --sign'
|
||||||
|
alias gtv='git tag | sort -V'
|
||||||
|
alias gunignore='git update-index --no-assume-unchanged'
|
||||||
|
alias gunwip='git rev-list --max-count=1 --format="%s" HEAD | grep -q "\--wip--" && git reset HEAD~1'
|
||||||
|
alias gwch='git whatchanged -p --abbrev-commit --pretty=medium'
|
||||||
|
alias gwip='git add -A; git rm $(git ls-files --deleted) 2> /dev/null; git commit --no-verify --no-gpg-sign --message "--wip-- [skip ci]"'
|
||||||
|
alias gwipe='git reset --hard && git clean --force -df'
|
||||||
|
alias gwt='git worktree'
|
||||||
|
alias gwta='git worktree add'
|
||||||
|
alias gwtls='git worktree list'
|
||||||
|
alias gwtmv='git worktree move'
|
||||||
|
alias gwtrm='git worktree remove'
|
@ -12,6 +12,8 @@
|
|||||||
quotePath = false
|
quotePath = false
|
||||||
#[commit]
|
#[commit]
|
||||||
# template = /home/od/.gitmessage.txt
|
# template = /home/od/.gitmessage.txt
|
||||||
|
[config "pull"]
|
||||||
|
rebase = false
|
||||||
[pull]
|
[pull]
|
||||||
rebase = false
|
rebase = false
|
||||||
[init]
|
[init]
|
||||||
|
10
.local/share/applications/qtpass.desktop
Executable file
10
.local/share/applications/qtpass.desktop
Executable file
@ -0,0 +1,10 @@
|
|||||||
|
[Desktop Entry]
|
||||||
|
Version=1.0
|
||||||
|
Type=Application
|
||||||
|
Name=QtPass - Wayland
|
||||||
|
Comment=Un gestionnaire de mots de passe utilisant 'pass'
|
||||||
|
Exec=env QT_QPA_PLATFORM=xcb /usr/bin/qtpass
|
||||||
|
Icon=qtpass
|
||||||
|
Path=
|
||||||
|
Terminal=false
|
||||||
|
StartupNotify=true
|
12
.local/share/applications/slack.desktop
Normal file
12
.local/share/applications/slack.desktop
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
[Desktop Entry]
|
||||||
|
Name=Slack Wayland
|
||||||
|
StartupWMClass=Slack
|
||||||
|
Comment=Slack Desktop
|
||||||
|
GenericName=Slack Client for Linux
|
||||||
|
#Exec=/usr/bin/slack --disable-gpu-compositing --enable-features=UseOzonePlatform --ozone-platform=wayland --enable-features=WebRTCPipeWireCapturer --enable-features=WaylandWindowDecorations --disable-features=WaylandFractionalScaleV1 -s %U
|
||||||
|
Exec=/usr/bin/slack --disable-gpu-compositing --enable-features=WebRTCPipeWireCapturer --enable-features=WaylandWindowDecorations --disable-features=WaylandFractionalScaleV1 -s %U
|
||||||
|
Icon=slack
|
||||||
|
Type=Application
|
||||||
|
StartupNotify=true
|
||||||
|
Categories=GNOME;GTK;Network;InstantMessaging;
|
||||||
|
MimeType=x-scheme-handler/slack;
|
38
.profile
38
.profile
@ -14,7 +14,43 @@ for term in kitty termite qterminal urxvt rxvt-unicode sakura gnome-terminal; do
|
|||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
|
|
||||||
# Permit DBUS to be launched
|
# Pour la batterie des ordinateurs portables (~/bin/battery)
|
||||||
|
export BATPATH="/sys/class/power_supply/BAT1"
|
||||||
|
|
||||||
|
# Permit DBUS to be launched on i3
|
||||||
if [ "$0" = "/usr/sbin/lightdm-session" -a "$DESKTOP_SESSION" = "i3" ]; then
|
if [ "$0" = "/usr/sbin/lightdm-session" -a "$DESKTOP_SESSION" = "i3" ]; then
|
||||||
export $(gnome-keyring-daemon -s)
|
export $(gnome-keyring-daemon -s)
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# Environnement Pyenv
|
||||||
|
export PYENV_ROOT="$HOME/.pyenv"
|
||||||
|
export PATH="$PYENV_ROOT/bin:$PATH"
|
||||||
|
eval "$(pyenv init --path)"
|
||||||
|
|
||||||
|
|
||||||
|
## ATTENTION : ce code n'est plus nécessaire pour le moment.
|
||||||
|
## 1. C'est ZSH (.zprofile) qui va charger SWAY sur les machines Wayland
|
||||||
|
## 2. C'est le .zprofile qui charge aussi .config/environment.d/envvars.conf
|
||||||
|
## 3. Dans le cas de Xorg : on a pas besoin de .config/environment.d/envvars.conf
|
||||||
|
## 4. Dans le cas de Xorg : xinitrc lance i3 # TODO: comment xinitrc se lance ? Par qui ?
|
||||||
|
|
||||||
|
## Démarrage de l'environnement préféré
|
||||||
|
#if [ -z $DISPLAY ] && [ "$(tty)" = "/dev/tty1" ]; then
|
||||||
|
# case $HOST in
|
||||||
|
# fuz | fuztest)
|
||||||
|
# # Cf. https://wiki.archlinux.org/title/Environment_variables#Per_Wayland_session
|
||||||
|
# variables_file="${HOME}/.config/environment.d/envvars.conf"
|
||||||
|
# if [[ -f "${variables_file}" ]]; then
|
||||||
|
# # charge seulement les lignes sans "#" (non commentées)
|
||||||
|
# for line in `cat "${variables_file}"|grep -Ev '^#'`; do
|
||||||
|
# export "$line"
|
||||||
|
# done
|
||||||
|
# fi
|
||||||
|
# exec sway
|
||||||
|
# ;;
|
||||||
|
# *)
|
||||||
|
# : # on ne fait rien, car c'est .xinitrc qui lance i3
|
||||||
|
# ;;
|
||||||
|
# esac
|
||||||
|
#fi
|
||||||
|
# vim: ts=2 sw=2 et nu
|
||||||
|
78
.ssh/config
78
.ssh/config
@ -26,7 +26,7 @@ Port 22
|
|||||||
Host ovh
|
Host ovh
|
||||||
Hostname 37.187.17.29
|
Hostname 37.187.17.29
|
||||||
User od
|
User od
|
||||||
Port 22
|
Port 4555
|
||||||
|
|
||||||
# ??
|
# ??
|
||||||
Host pi
|
Host pi
|
||||||
@ -60,8 +60,8 @@ Port 22
|
|||||||
|
|
||||||
# Perso
|
# Perso
|
||||||
Host zou
|
Host zou
|
||||||
Hostname 192.168.1.68
|
Hostname 192.168.1.142
|
||||||
User root
|
User od
|
||||||
Port 22
|
Port 22
|
||||||
|
|
||||||
# Groupe Open (entreprise)
|
# Groupe Open (entreprise)
|
||||||
@ -90,3 +90,75 @@ Host proxy
|
|||||||
Hostname 163.172.155.15
|
Hostname 163.172.155.15
|
||||||
User root
|
User root
|
||||||
Port 22
|
Port 22
|
||||||
|
|
||||||
|
Host bastion
|
||||||
|
Hostname usine.michalon.eu
|
||||||
|
User od
|
||||||
|
Port 22
|
||||||
|
|
||||||
|
Host abeille
|
||||||
|
Hostname 192.168.1.90
|
||||||
|
User od
|
||||||
|
Port 22
|
||||||
|
ProxyJump bastion
|
||||||
|
|
||||||
|
Host mattermost
|
||||||
|
Hostname dossmann.net
|
||||||
|
User od
|
||||||
|
Port 4555
|
||||||
|
|
||||||
|
Host wekan
|
||||||
|
Hostname 192.168.101.11
|
||||||
|
User od
|
||||||
|
Port 22
|
||||||
|
ProxyJump mattermost
|
||||||
|
|
||||||
|
Host backup
|
||||||
|
Hostname 37.187.17.29
|
||||||
|
User root
|
||||||
|
Port 22
|
||||||
|
|
||||||
|
## Serveur salon (Beelink)
|
||||||
|
Host suc
|
||||||
|
Hostname 192.168.1.42
|
||||||
|
User od
|
||||||
|
Port 22
|
||||||
|
|
||||||
|
## Labo K8s
|
||||||
|
Host deux
|
||||||
|
Hostname 192.168.1.102
|
||||||
|
User od
|
||||||
|
Port 22
|
||||||
|
|
||||||
|
Host trois
|
||||||
|
Hostname 192.168.1.103
|
||||||
|
User od
|
||||||
|
Port 22
|
||||||
|
|
||||||
|
Host quatre
|
||||||
|
Hostname 192.168.1.104
|
||||||
|
User od
|
||||||
|
Port 22
|
||||||
|
|
||||||
|
## Labo K8S AMD64
|
||||||
|
Host douze
|
||||||
|
Hostname 192.168.1.112
|
||||||
|
User nous
|
||||||
|
Port 22
|
||||||
|
|
||||||
|
Host treize
|
||||||
|
Hostname 192.168.1.113
|
||||||
|
User maison
|
||||||
|
Port 22
|
||||||
|
|
||||||
|
Host quatorze
|
||||||
|
Hostname 192.168.1.202
|
||||||
|
User od
|
||||||
|
Port 22
|
||||||
|
|
||||||
|
## Formation DevOps - Datascientest
|
||||||
|
Host devu
|
||||||
|
Hostname 54.229.27.155
|
||||||
|
User ubuntu
|
||||||
|
Port 22
|
||||||
|
IdentityFile ~/.ssh/data_enginering_machine.pem
|
||||||
|
11
.tmux.conf
11
.tmux.conf
@ -8,6 +8,9 @@
|
|||||||
# make tmux display things in 256 colors
|
# make tmux display things in 256 colors
|
||||||
set -g default-terminal "tmux-256color"
|
set -g default-terminal "tmux-256color"
|
||||||
|
|
||||||
|
# make tmux use the default terminal
|
||||||
|
set -g default-command "${SHELL}"
|
||||||
|
|
||||||
# set scrollback history to 10000 (10k)
|
# set scrollback history to 10000 (10k)
|
||||||
set -g history-limit 10000
|
set -g history-limit 10000
|
||||||
|
|
||||||
@ -81,7 +84,7 @@ set -g status-left "#{pane_current_path}"
|
|||||||
set -g status-left-length 30
|
set -g status-left-length 30
|
||||||
|
|
||||||
# Activer mon layout par defaut
|
# Activer mon layout par defaut
|
||||||
new -s projets -n dev
|
#new -s projets -n dev
|
||||||
splitw -v -p 50 -t dev
|
#splitw -v -p '50' -t dev
|
||||||
neww -n discussion
|
#neww -n autre
|
||||||
selectw -t dev
|
#selectw -t dev
|
||||||
|
18
.warprc
18
.warprc
@ -1,9 +1,9 @@
|
|||||||
ans:/home/od/projets/buffet
|
blog:~/projets/blog
|
||||||
buf:/home/od/projets/buffet
|
cal:~/projets/effeuillage
|
||||||
cloud:~/freshmile/cloud
|
fastapi:~/devu/exam_DOSSMANN/fastapi_exam_DOSSMANN
|
||||||
patchwork:/home/od/projets/patchwork
|
graille:~/projets/graille
|
||||||
p:~/freshmile/pulp
|
ops:~/projets/ops
|
||||||
ps:~/freshmile/pulp/Seed
|
patchwork:~/projet/patchwork
|
||||||
s:~/freshmile/seed
|
presentation:~/projet/odtre/diapos
|
||||||
z:~/freshmile/zest
|
soutenance:~/projet/soutenance
|
||||||
zs:~/freshmile/zest/Seed
|
wiki:~/projet/recueil
|
||||||
|
1
.xinitrc
1
.xinitrc
@ -39,4 +39,5 @@ fi
|
|||||||
#exec xterm -geometry 80x66+0+0 -name login
|
#exec xterm -geometry 80x66+0+0 -name login
|
||||||
#exec $1
|
#exec $1
|
||||||
|
|
||||||
|
# Le lancement est fait dans `.profile` pour prendre en compte Wayland
|
||||||
exec i3
|
exec i3
|
||||||
|
@ -1,6 +0,0 @@
|
|||||||
emulate sh -c '. ~/.profile'
|
|
||||||
|
|
||||||
# Start X automatically
|
|
||||||
if systemctl -q is-active graphical.target && [[ ! $DISPLAY && $XDG_VTNR -eq 1 ]]; then
|
|
||||||
exec startx
|
|
||||||
fi
|
|
42
.zshenv
42
.zshenv
@ -1,8 +1,40 @@
|
|||||||
|
#!/usr/bin/env zsh
|
||||||
|
#
|
||||||
|
# ENVIRONMENT VARIABLES ONLY
|
||||||
|
|
||||||
|
# Cf. https://wiki.archlinux.org/title/XDG_Base_Directory
|
||||||
|
export XDG_CONFIG_HOME=$HOME/.config
|
||||||
|
|
||||||
|
# Default editor
|
||||||
|
export EDITOR='nvim'
|
||||||
|
|
||||||
|
# ZSH
|
||||||
|
export ZDOTDIR="$XDG_CONFIG_HOME/zsh"
|
||||||
|
export HISTFILE="$ZDOTDIR/.zhistory" # History filepath
|
||||||
|
export HISTSIZE=10000 # Maximum events for internal history
|
||||||
|
export SAVEHIST=10000 # Maximum events in history file
|
||||||
|
|
||||||
|
# PATH
|
||||||
typeset -U PATH path
|
typeset -U PATH path
|
||||||
path=("$HOME/.local/bin" "$HOME/bin" "/opt/sublime_merge" "$path[@]")
|
path=("$HOME/.local/bin" "$HOME/bin" "/opt/sublime_merge" "$path[@]", "$(go env GOPATH)/bin")
|
||||||
export PATH
|
export PATH
|
||||||
|
|
||||||
# Autocomplètement supplémentaire (Docker)
|
# Language environment
|
||||||
if [ -d "$HOME/.zsh/completion" ] ; then
|
export LANG=fr_FR.UTF-8
|
||||||
fpath=(~/.zsh/completion $fpath)
|
|
||||||
fi
|
# Reading / Browse (manpages, websites, etc.)
|
||||||
|
export PAGER="bat"
|
||||||
|
export MANPAGER="nvim +Man!"
|
||||||
|
export BROWSER=elinks
|
||||||
|
|
||||||
|
# SSH
|
||||||
|
export SSH_ASKPASS=qt4-ssh-askpass
|
||||||
|
|
||||||
|
# Python
|
||||||
|
export PYTHONWARNINGS="ignore::DeprecationWarning"
|
||||||
|
#export FLASK_SKIP_DOTENV=1 ## make problems with poetry and flask applications
|
||||||
|
export PIPENV_QUIET=1 # enlève les courtesy notice
|
||||||
|
|
||||||
|
# k8s
|
||||||
|
export KUBECONFIG=$HOME/kubeconfig
|
||||||
|
|
||||||
|
@ -1,4 +1,8 @@
|
|||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
|
#
|
||||||
|
# battery
|
||||||
|
#
|
||||||
|
# Penser à modifier la variable dans ~/.profile
|
||||||
|
|
||||||
HEART_FULL=♥
|
HEART_FULL=♥
|
||||||
HEART_EMPTY=♡
|
HEART_EMPTY=♡
|
||||||
@ -46,6 +50,7 @@ battery_status()
|
|||||||
case $(uname -s) in
|
case $(uname -s) in
|
||||||
"Linux")
|
"Linux")
|
||||||
BATPATH=${BATPATH:-/sys/class/power_supply/BAT1}
|
BATPATH=${BATPATH:-/sys/class/power_supply/BAT1}
|
||||||
|
[[ -h "${BATPATH}" ]] || return 0
|
||||||
STATUS=$BATPATH/status
|
STATUS=$BATPATH/status
|
||||||
[ "$1" = `cat $STATUS` ] || [ "$1" = "" ] || return 0
|
[ "$1" = `cat $STATUS` ] || [ "$1" = "" ] || return 0
|
||||||
if [ -f "$BATPATH/energy_full" ]; then
|
if [ -f "$BATPATH/energy_full" ]; then
|
||||||
|
23
bin/ecran_framework
Executable file
23
bin/ecran_framework
Executable file
@ -0,0 +1,23 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
#
|
||||||
|
# ecran_framework
|
||||||
|
#
|
||||||
|
# Désactive les écrans. N'active que celui du PC portable Framework
|
||||||
|
#
|
||||||
|
# Écran principal : Iiyama North America PL2474H 11669V9B05959
|
||||||
|
# Écran secondaire : Iiyama North America PLX2283H 1159495081860
|
||||||
|
# Écran PC portable : BOE 0x0BCA Unknown
|
||||||
|
|
||||||
|
# PC portable
|
||||||
|
laptopscreen="'BOE 0x0BCA Unknown'"
|
||||||
|
# Écran principal
|
||||||
|
mainscreen="'Iiyama North America PL2474H 11669V9B05959'"
|
||||||
|
# Écran secondaire
|
||||||
|
otherscreen="'Iiyama North America PLX2283H 1159495081860'"
|
||||||
|
|
||||||
|
# Éteint l'écran principal et secondaire
|
||||||
|
swaymsg output "${mainscreen}" disable
|
||||||
|
swaymsg output "${otherscreen}" disable
|
||||||
|
|
||||||
|
# Allume l'écran du PC portable
|
||||||
|
swaymsg output "${laptopscreen}" enable
|
31
bin/ecran_maison
Executable file
31
bin/ecran_maison
Executable file
@ -0,0 +1,31 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
#
|
||||||
|
# ecran_maison
|
||||||
|
#
|
||||||
|
# Active les 2 écrans de la maison sur le Dock Station branché.
|
||||||
|
#
|
||||||
|
# Écran principal : Iiyama North America PL2474H 11669V9B05959
|
||||||
|
# Écran secondaire : Iiyama North America PLX2283H 1159495081860
|
||||||
|
# Écran PC portable : BOE 0x0BCA Unknown
|
||||||
|
|
||||||
|
# PC portable
|
||||||
|
laptopscreen="'BOE 0x0BCA Unknown'"
|
||||||
|
# Écran principal
|
||||||
|
mainscreen="'Iiyama North America PL2474H 11669V9B05959'"
|
||||||
|
# Écran secondaire
|
||||||
|
otherscreen="'Iiyama North America PLX2283H 1159495081860'"
|
||||||
|
|
||||||
|
# Active l'écran secondaire
|
||||||
|
swaymsg output "${otherscreen}" enable
|
||||||
|
# Tourne l'écran de droite de 90°
|
||||||
|
swaymsg output "${otherscreen}" transform 90 anticlockwise
|
||||||
|
# Déplace l'écran de droite à 1920px (pour rester à droite)
|
||||||
|
swaymsg output "${otherscreen}" pos 1920 0
|
||||||
|
|
||||||
|
# Active l'écran principal
|
||||||
|
swaymsg output "${mainscreen}" enable
|
||||||
|
# Descend l'écran principal vers le bas de 840px
|
||||||
|
swaymsg output "${mainscreen}" pos 0 840
|
||||||
|
|
||||||
|
# Éteint l'écran du PC portable
|
||||||
|
swaymsg output "${laptopscreen}" disable
|
15
bin/launcher.sh
Normal file
15
bin/launcher.sh
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
#
|
||||||
|
# launcher
|
||||||
|
#
|
||||||
|
# TODO: toujours mettre des \n entre les résultats !
|
||||||
|
|
||||||
|
res=()
|
||||||
|
|
||||||
|
# Find all programs in $PATH.
|
||||||
|
res+=$(echo -n "$PATH" | xargs -d: -I{} -r -- find -L {} -maxdepth 1 -mindepth 1 -type f -executable -printf '%P\n' 2>/dev/null)
|
||||||
|
res+=$(echo -e "\ncoucou")
|
||||||
|
|
||||||
|
for resultat in "${res[@]}"; do
|
||||||
|
echo "$resultat"
|
||||||
|
done | fzf|sh
|
3
bin/netflix
Executable file
3
bin/netflix
Executable file
@ -0,0 +1,3 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
firefox --kiosk "https://netflix.com/"
|
@ -2,15 +2,25 @@
|
|||||||
|
|
||||||
# random_wallpaper
|
# random_wallpaper
|
||||||
#
|
#
|
||||||
# Requirement: feh (apt install feh)
|
# Requirement: feh (apt install feh) - for Xorg
|
||||||
|
# Requirement: swaybg - for Wayland
|
||||||
|
|
||||||
directory="$HOME/wallpapers"
|
directory="$HOME/wallpapers"
|
||||||
minutes=15
|
minutes=15
|
||||||
|
PROGRAM=`which feh`
|
||||||
|
is_wayland=false
|
||||||
|
|
||||||
# Some tests
|
# Some tests
|
||||||
if [ -z "`which feh`" ]; then
|
if [[ "${XDG_SESSION_TYPE}" == "wayland" ]]; then
|
||||||
|
PROGRAM=`which swaymsg`
|
||||||
|
if [ -z "${PROGRAM}" ]; then
|
||||||
|
echo "This script needs the swaymsg program."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
is_wayland=true
|
||||||
|
elif [ -z "${PROGRAM}" ]; then
|
||||||
echo "This script needs the feh program. Install it."
|
echo "This script needs the feh program. Install it."
|
||||||
i exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ -d '$directory' ]; then
|
if [ -d '$directory' ]; then
|
||||||
@ -40,7 +50,12 @@ while true; do
|
|||||||
|
|
||||||
# Change background
|
# Change background
|
||||||
file="${array_files["$NUMBER"]}"
|
file="${array_files["$NUMBER"]}"
|
||||||
|
if "${is_wayland}"; then
|
||||||
|
# Use of swaybg program (used with swaymsg)
|
||||||
|
$PROGRAM output "*" bg "$directory/$file" fill
|
||||||
|
else
|
||||||
feh --bg-fill "$directory/$file"
|
feh --bg-fill "$directory/$file"
|
||||||
|
fi
|
||||||
|
|
||||||
# Wait some times
|
# Wait some times
|
||||||
sleep $seconds
|
sleep $seconds
|
||||||
|
6
bin/rec1
Executable file
6
bin/rec1
Executable file
@ -0,0 +1,6 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
# change number by 2 for screen 2
|
||||||
|
number=1
|
||||||
|
|
||||||
|
wf-recorder -o $(swaymsg -t get_outputs |grep "DP"|head -n ${number}|cut -d '"' -f 4) -f ~/screens/$(date +'%Y-%m-%d-%s')_screencast.mkv
|
3
bin/vpnfreshmile
Executable file
3
bin/vpnfreshmile
Executable file
@ -0,0 +1,3 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
sudo su - root -c "cd /etc/openvpn/client/ && openvpn --config client.conf --daemon"
|
3
bin/webserver
Executable file
3
bin/webserver
Executable file
@ -0,0 +1,3 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
python3 -m http.server "$@"
|
Reference in New Issue
Block a user