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="Google-chrome|Vivaldi-stable|Opera|Firefox|Navigator|Nightly|Chromium"] 2
|
||||
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
|
||||
|
||||
@ -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 &"
|
||||
|
||||
# Hasmter indicator
|
||||
exec --no-startup-id hamster
|
||||
#exec --no-startup-id hamster
|
||||
|
||||
# Clipit : Presse-papiers pour le bureau
|
||||
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
|
||||
|
||||
# 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.
|
||||
# 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.
|
||||
# See man XBell for details.
|
||||
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/
|
||||
# Example format: plugins=(rails git textmate ruby lighthouse)
|
||||
# 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
|
||||
|
||||
@ -77,30 +77,6 @@ POWERLEVEL9K_SHORTEN_DIR_LENGTH=1
|
||||
POWERLEVEL9K_SHORTEN_DELIMITER=""
|
||||
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
|
||||
# export ARCHFLAGS="-arch x86_64"
|
||||
|
||||
@ -112,59 +88,10 @@ setopt transient_rprompt
|
||||
# Example aliases
|
||||
# alias zshconfig="mate ~/.zshrc"
|
||||
# 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.
|
||||
[[ -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
|
||||
case $HOST in
|
||||
lueur | baloo | sam)
|
||||
@ -175,6 +102,6 @@ case $HOST in
|
||||
source /usr/share/nvm/init-nvm.sh
|
||||
# Virtualenv (for Python development)
|
||||
export WORKON_HOME=~/.virtualenvs
|
||||
source /usr/bin/virtualenvwrapper.sh
|
||||
#source /usr/bin/virtualenvwrapper.sh
|
||||
;;
|
||||
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
|
||||
#[commit]
|
||||
# template = /home/od/.gitmessage.txt
|
||||
[config "pull"]
|
||||
rebase = false
|
||||
[pull]
|
||||
rebase = false
|
||||
[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
|
||||
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
|
||||
export $(gnome-keyring-daemon -s)
|
||||
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
|
||||
Hostname 37.187.17.29
|
||||
User od
|
||||
Port 22
|
||||
Port 4555
|
||||
|
||||
# ??
|
||||
Host pi
|
||||
@ -60,8 +60,8 @@ Port 22
|
||||
|
||||
# Perso
|
||||
Host zou
|
||||
Hostname 192.168.1.68
|
||||
User root
|
||||
Hostname 192.168.1.142
|
||||
User od
|
||||
Port 22
|
||||
|
||||
# Groupe Open (entreprise)
|
||||
@ -90,3 +90,75 @@ Host proxy
|
||||
Hostname 163.172.155.15
|
||||
User root
|
||||
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
|
||||
set -g default-terminal "tmux-256color"
|
||||
|
||||
# make tmux use the default terminal
|
||||
set -g default-command "${SHELL}"
|
||||
|
||||
# set scrollback history to 10000 (10k)
|
||||
set -g history-limit 10000
|
||||
|
||||
@ -81,7 +84,7 @@ set -g status-left "#{pane_current_path}"
|
||||
set -g status-left-length 30
|
||||
|
||||
# Activer mon layout par defaut
|
||||
new -s projets -n dev
|
||||
splitw -v -p 50 -t dev
|
||||
neww -n discussion
|
||||
selectw -t dev
|
||||
#new -s projets -n dev
|
||||
#splitw -v -p '50' -t dev
|
||||
#neww -n autre
|
||||
#selectw -t dev
|
||||
|
18
.warprc
18
.warprc
@ -1,9 +1,9 @@
|
||||
ans:/home/od/projets/buffet
|
||||
buf:/home/od/projets/buffet
|
||||
cloud:~/freshmile/cloud
|
||||
patchwork:/home/od/projets/patchwork
|
||||
p:~/freshmile/pulp
|
||||
ps:~/freshmile/pulp/Seed
|
||||
s:~/freshmile/seed
|
||||
z:~/freshmile/zest
|
||||
zs:~/freshmile/zest/Seed
|
||||
blog:~/projets/blog
|
||||
cal:~/projets/effeuillage
|
||||
fastapi:~/devu/exam_DOSSMANN/fastapi_exam_DOSSMANN
|
||||
graille:~/projets/graille
|
||||
ops:~/projets/ops
|
||||
patchwork:~/projet/patchwork
|
||||
presentation:~/projet/odtre/diapos
|
||||
soutenance:~/projet/soutenance
|
||||
wiki:~/projet/recueil
|
||||
|
1
.xinitrc
1
.xinitrc
@ -39,4 +39,5 @@ fi
|
||||
#exec xterm -geometry 80x66+0+0 -name login
|
||||
#exec $1
|
||||
|
||||
# Le lancement est fait dans `.profile` pour prendre en compte Wayland
|
||||
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
|
||||
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
|
||||
|
||||
# Autocomplètement supplémentaire (Docker)
|
||||
if [ -d "$HOME/.zsh/completion" ] ; then
|
||||
fpath=(~/.zsh/completion $fpath)
|
||||
fi
|
||||
# Language environment
|
||||
export LANG=fr_FR.UTF-8
|
||||
|
||||
# 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
|
||||
#
|
||||
# battery
|
||||
#
|
||||
# Penser à modifier la variable dans ~/.profile
|
||||
|
||||
HEART_FULL=♥
|
||||
HEART_EMPTY=♡
|
||||
@ -46,6 +50,7 @@ battery_status()
|
||||
case $(uname -s) in
|
||||
"Linux")
|
||||
BATPATH=${BATPATH:-/sys/class/power_supply/BAT1}
|
||||
[[ -h "${BATPATH}" ]] || return 0
|
||||
STATUS=$BATPATH/status
|
||||
[ "$1" = `cat $STATUS` ] || [ "$1" = "" ] || return 0
|
||||
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
|
||||
#
|
||||
# Requirement: feh (apt install feh)
|
||||
# Requirement: feh (apt install feh) - for Xorg
|
||||
# Requirement: swaybg - for Wayland
|
||||
|
||||
directory="$HOME/wallpapers"
|
||||
minutes=15
|
||||
PROGRAM=`which feh`
|
||||
is_wayland=false
|
||||
|
||||
# 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."
|
||||
i exit 1
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [ -d '$directory' ]; then
|
||||
@ -40,7 +50,12 @@ while true; do
|
||||
|
||||
# Change background
|
||||
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"
|
||||
fi
|
||||
|
||||
# Wait some times
|
||||
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