Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
c516443cad | ||
|
|
cef427560a | ||
|
|
ccb99af650 | ||
|
|
329044912b | ||
|
|
6438b1cf60 | ||
|
|
08f6b38c9d | ||
|
|
624ef3735d | ||
|
|
15418dc25c | ||
|
|
33d5d2813c | ||
|
|
246366185e | ||
|
|
6217a70355 | ||
|
|
42ecc3ce55 | ||
|
|
441385588e | ||
|
|
7ff1d0143d | ||
|
|
92ca7fcba5 | ||
|
|
6c3100eab7 | ||
|
|
0cc4d816ec | ||
|
|
ddaa4f1678 | ||
|
|
548301d3a9 | ||
|
|
9c829b888f | ||
|
|
b641cc906d | ||
|
|
273dae2fda | ||
|
|
e40bd1bc73 | ||
|
|
e0d7173f5f | ||
|
|
706ebf89a4 | ||
|
|
ed8606cedc | ||
|
|
2e15fe1ddc | ||
|
|
3e2970ee70 | ||
|
|
94e7858450 | ||
|
|
3d34eb5fb3 | ||
|
|
0d19a7953f | ||
|
|
1ecaacc50c | ||
|
|
1895a40420 | ||
|
|
681dd4cd04 | ||
|
|
0134b654e9 | ||
|
|
ed7270d498 | ||
|
|
a19383b870 | ||
|
|
b4d41eb3dd | ||
|
|
4201757f65 | ||
|
|
f5f1536d33 | ||
|
|
9974368b5a | ||
|
|
af6f77583a | ||
|
|
be114ef453 | ||
|
|
e096a511f7 | ||
|
|
5dfb329b91 | ||
|
|
ff9d8a634b | ||
|
|
8e9c1dbdf6 | ||
|
|
d4e03f6a67 | ||
|
|
6304e735ac | ||
|
|
aa1657929e | ||
|
|
495bf70353 | ||
|
|
87e08e66d3 | ||
|
|
f33b964601 | ||
|
|
26d37df077 | ||
|
|
81dae4c56c | ||
|
|
87caaa2849 | ||
|
|
32595e5a96 | ||
|
|
7236721f64 | ||
|
|
9caa1035a7 | ||
|
|
45bab6051d | ||
|
|
209f5a0ce7 | ||
|
|
39a78ecff9 | ||
|
|
4e3e69a99e | ||
|
|
676ea30b3e | ||
|
|
8ceca5fcd1 | ||
|
|
dbae6a337f | ||
|
|
ca29df0609 | ||
|
|
3064978594 | ||
|
|
8a5494f36d | ||
|
|
7c5b1055bc | ||
|
|
b5604f909b | ||
|
|
d18c705273 | ||
|
|
a4d9021586 | ||
|
|
72a592f13a | ||
|
|
5a213e4157 | ||
|
|
4623c86ea2 | ||
|
|
514522d6c1 | ||
|
|
3b0356eb22 | ||
|
|
31e0108da7 | ||
|
|
98f1927ac3 | ||
|
|
27c4afa80d | ||
|
|
6d17e7be71 | ||
|
|
6ad08840eb | ||
|
|
7fb7871e03 | ||
|
|
7a71ebfd22 | ||
|
|
7485124c29 | ||
|
|
0862fd0eb1 | ||
|
|
e148588e15 | ||
|
|
24fce0a166 | ||
|
|
1160fe3774 | ||
|
|
e380068dce | ||
|
|
0b85dadf15 | ||
|
|
714ad2c276 | ||
|
|
7ce4314caa | ||
|
|
5b73abca03 | ||
|
|
2cf0a2cd25 | ||
|
|
6100d8bc08 | ||
|
|
d03449b8dd | ||
|
|
81126619d8 | ||
|
|
f3e861af9a | ||
|
|
6fe75be9f8 | ||
|
|
f019be7c5b | ||
|
|
39597b0936 |
No files matched your search
@@ -1,10 +0,0 @@
|
|||||||
#
|
|
||||||
# ~/.bashrc
|
|
||||||
#
|
|
||||||
|
|
||||||
# If not running interactively, don't do anything
|
|
||||||
[[ $- != *i* ]] && return
|
|
||||||
|
|
||||||
alias ls='ls --color=auto'
|
|
||||||
alias dotfiles='/usr/bin/git --git-dir=$HOME/.config/dotfiles/ --work-tree=$HOME'
|
|
||||||
PS1='[\u@\h \W]\$ '
|
|
||||||
@@ -1,29 +0,0 @@
|
|||||||
#!/usr/bin/env bash
|
|
||||||
|
|
||||||
|
|
||||||
readonly = DOCKER_FOLDER="/srv/"
|
|
||||||
|
|
||||||
function ok()
|
|
||||||
{
|
|
||||||
echo -e "\e[32mdone\e[0m"
|
|
||||||
}
|
|
||||||
|
|
||||||
function failed()
|
|
||||||
{
|
|
||||||
echo -e "\e[31mfailed\e[0m"
|
|
||||||
}
|
|
||||||
|
|
||||||
function main() {
|
|
||||||
|
|
||||||
container_list=$(find "${DOCKER_FOLDER}" -mindepth 1 -maxdepth 1 -type d ! -iname "archives" ! -iname "images" ! -iname "lost+found")
|
|
||||||
|
|
||||||
for container_path in ${container_list}; do
|
|
||||||
cd "${container_path}"
|
|
||||||
docker compose down \
|
|
||||||
&& docker compose stop \
|
|
||||||
&& docker compose up -d
|
|
||||||
cd - &>/dev/null
|
|
||||||
done
|
|
||||||
}
|
|
||||||
|
|
||||||
main
|
|
||||||
@@ -1,44 +0,0 @@
|
|||||||
#!/usr/bin/env bash
|
|
||||||
|
|
||||||
## Mise à jour des container docker
|
|
||||||
|
|
||||||
readonly DOCKER_FOLDER="/srv/"
|
|
||||||
|
|
||||||
function ok()
|
|
||||||
{
|
|
||||||
echo -e "\e[32mdone\e[0m"
|
|
||||||
}
|
|
||||||
|
|
||||||
function failed()
|
|
||||||
{
|
|
||||||
echo -e "\e[31mfailed\e[0m"
|
|
||||||
}
|
|
||||||
|
|
||||||
function main() {
|
|
||||||
local container_list=$(find "${DOCKER_FOLDER}" -mindepth 1 -maxdepth 1 -type d ! -iname "archives" ! -iname "images" ! -iname "lost+found")
|
|
||||||
local container_updated=()
|
|
||||||
|
|
||||||
for container_path in ${container_list}; do
|
|
||||||
cd "${container_path}"
|
|
||||||
if [ -f docker-compose.yml ]; then
|
|
||||||
printf "Updating ${container_path} : \n" \
|
|
||||||
&& docker compose pull \
|
|
||||||
&& docker compose build --pull \
|
|
||||||
&& container_updated+=(${container_path}) \
|
|
||||||
&& ok \
|
|
||||||
|| failed
|
|
||||||
fi
|
|
||||||
cd - &>/dev/null
|
|
||||||
done
|
|
||||||
|
|
||||||
for container_path in ${container_updated[*]}; do
|
|
||||||
cd "${container_path}"
|
|
||||||
docker compose down \
|
|
||||||
&& docker compose stop \
|
|
||||||
&& docker compose up -d
|
|
||||||
cd - &>/dev/null
|
|
||||||
done
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
main
|
|
||||||
@@ -1,444 +0,0 @@
|
|||||||
# Configuration for Alacritty, the GPU enhanced terminal emulator.
|
|
||||||
|
|
||||||
# Any items in the `env` entry below will be added as
|
|
||||||
# environment variables. Some entries may override variables
|
|
||||||
# set by alacritty itself.
|
|
||||||
env:
|
|
||||||
# TERM variable
|
|
||||||
#
|
|
||||||
# This value is used to set the `$TERM` environment variable for
|
|
||||||
# each instance of Alacritty. If it is not present, alacritty will
|
|
||||||
# check the local terminfo database and use 'alacritty' if it is
|
|
||||||
# available, otherwise 'xterm-256color' is used.
|
|
||||||
#
|
|
||||||
TERM: xterm-256color
|
|
||||||
|
|
||||||
window:
|
|
||||||
# Window dimensions (changes require restart)
|
|
||||||
#
|
|
||||||
# Specified in number of columns/lines, not pixels.
|
|
||||||
# If both are `0`, this setting is ignored.
|
|
||||||
dimensions:
|
|
||||||
columns: 80
|
|
||||||
lines: 24
|
|
||||||
|
|
||||||
# Window padding (changes require restart)
|
|
||||||
#
|
|
||||||
# Blank space added around the window in pixels. This padding is not scaled
|
|
||||||
# by DPI and the specified value is always added at both opposing sides.
|
|
||||||
padding:
|
|
||||||
x: 5
|
|
||||||
y: 5
|
|
||||||
|
|
||||||
# Window decorations
|
|
||||||
#
|
|
||||||
# Values for `decorations`:
|
|
||||||
# - full: Borders and title bar
|
|
||||||
# - none: Neither borders nor title bar
|
|
||||||
decorations: none
|
|
||||||
|
|
||||||
scrolling:
|
|
||||||
# Maximum number of lines in the scrollback buffer.
|
|
||||||
# Specifying '0' will disable scrolling.
|
|
||||||
history: 10000
|
|
||||||
|
|
||||||
# Number of lines the viewport will move for every line scrolled when
|
|
||||||
# scrollback is enabled (history > 0).
|
|
||||||
multiplier: 3
|
|
||||||
|
|
||||||
# Font configuration (changes require restart)
|
|
||||||
#
|
|
||||||
# Important font attributes like antialiasing, subpixel aa, and hinting can be
|
|
||||||
# controlled through fontconfig. Specifically, the following attributes should
|
|
||||||
# have an effect:
|
|
||||||
# - hintstyle
|
|
||||||
# - antialias
|
|
||||||
# - lcdfilter
|
|
||||||
# - rgba
|
|
||||||
#
|
|
||||||
# For instance, if you wish to disable subpixel antialiasing, you might set the
|
|
||||||
# rgba property to `none`. If you wish to completely disable antialiasing, you
|
|
||||||
# can set antialias to `false`.
|
|
||||||
#
|
|
||||||
# Please see these resources for more information on how to use fontconfig:
|
|
||||||
# - https://wiki.archlinux.org/index.php/font_configuration#Fontconfig_configuration
|
|
||||||
# - file:///usr/share/doc/fontconfig/fontconfig-user.html
|
|
||||||
font:
|
|
||||||
# Normal (roman) font face
|
|
||||||
normal:
|
|
||||||
family: hack
|
|
||||||
# The `style` can be specified to pick a specific face.
|
|
||||||
style: Regular
|
|
||||||
|
|
||||||
# Bold font face
|
|
||||||
bold:
|
|
||||||
family: hack
|
|
||||||
# The `style` can be specified to pick a specific face.
|
|
||||||
style: Bold
|
|
||||||
|
|
||||||
# Italic font face
|
|
||||||
italic:
|
|
||||||
family: hack
|
|
||||||
# The `style` can be specified to pick a specific face.
|
|
||||||
style: Italic
|
|
||||||
|
|
||||||
# Point size
|
|
||||||
size: 10
|
|
||||||
|
|
||||||
# Offset is the extra space around each character. `offset.y` can be thought of
|
|
||||||
# as modifying the line spacing, and `offset.x` as modifying the letter spacing.
|
|
||||||
offset:
|
|
||||||
x: 0
|
|
||||||
y: 0
|
|
||||||
|
|
||||||
# Glyph offset determines the locations of the glyphs within their cells with
|
|
||||||
# the default being at the bottom. Increasing `x` moves the glyph to the right,
|
|
||||||
# increasing `y` moves the glyph upwards.
|
|
||||||
glyph_offset:
|
|
||||||
x: 0
|
|
||||||
y: 0
|
|
||||||
|
|
||||||
# If `true`, bold text is drawn using the bright color variants.
|
|
||||||
draw_bold_text_with_bright_colors: true
|
|
||||||
|
|
||||||
# Cyberpunk-Neon colours
|
|
||||||
colors:
|
|
||||||
# Default colours
|
|
||||||
primary:
|
|
||||||
background: '0x000b1e'
|
|
||||||
foreground: '0x0abdc6'
|
|
||||||
|
|
||||||
# Colors that should be used to draw the terminal cursor. If these are unset,
|
|
||||||
# the cursor colour will be the inverse of the cell colour.
|
|
||||||
# cursor:
|
|
||||||
# text: '0x2e2e2d'
|
|
||||||
# # text: '0x000000'
|
|
||||||
# cursor: '0xffffff'
|
|
||||||
|
|
||||||
# Normal colors
|
|
||||||
normal:
|
|
||||||
black: '0x123e7c'
|
|
||||||
red: '0xff0000'
|
|
||||||
green: '0xd300c4'
|
|
||||||
yellow: '0xf57800'
|
|
||||||
blue: '0x123e7c'
|
|
||||||
magenta: '0x711c91'
|
|
||||||
cyan: '0x0abdc6'
|
|
||||||
white: '0xd7d7d5'
|
|
||||||
|
|
||||||
# Bright colors
|
|
||||||
bright:
|
|
||||||
black: '0x1c61c2'
|
|
||||||
red: '0xff0000'
|
|
||||||
green: '0xd300c4'
|
|
||||||
yellow: '0xf57800'
|
|
||||||
blue: '0x00ff00'
|
|
||||||
magenta: '0x711c91'
|
|
||||||
cyan: '0x0abdc6'
|
|
||||||
white: '0xd7d7d5'
|
|
||||||
|
|
||||||
# dim colors
|
|
||||||
dim:
|
|
||||||
black: '0x1c61c2'
|
|
||||||
red: '0xff0000'
|
|
||||||
green: '0xd300c4'
|
|
||||||
yellow: '0xf57800'
|
|
||||||
blue: '0x123e7c'
|
|
||||||
magenta: '0x711c91'
|
|
||||||
cyan: '0x0abdc6'
|
|
||||||
white: '0xd7d7d5'
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# Visual Bell
|
|
||||||
#
|
|
||||||
# Any time the BEL code is received, Alacritty "rings" the visual bell. Once
|
|
||||||
# rung, the terminal background will be set to white and transition back to the
|
|
||||||
# default background color. You can control the rate of this transition by
|
|
||||||
# setting the `duration` property (represented in milliseconds). You can also
|
|
||||||
# configure the transition function by setting the `animation` property.
|
|
||||||
#
|
|
||||||
# Values for `animation`:
|
|
||||||
# - Ease
|
|
||||||
# - EaseOut
|
|
||||||
# - EaseOutSine
|
|
||||||
# - EaseOutQuad
|
|
||||||
# - EaseOutCubic
|
|
||||||
# - EaseOutQuart
|
|
||||||
# - EaseOutQuint
|
|
||||||
# - EaseOutExpo
|
|
||||||
# - EaseOutCirc
|
|
||||||
# - Linear
|
|
||||||
#
|
|
||||||
# Specifying a `duration` of `0` will disable the visual bell.
|
|
||||||
bell:
|
|
||||||
animation: EaseOutExpo
|
|
||||||
duration: 0
|
|
||||||
|
|
||||||
# Background opacity
|
|
||||||
#
|
|
||||||
# Window opacity as a floating point number from `0.0` to `1.0`.
|
|
||||||
# The value `0.0` is completely transparent and `1.0` is opaque.
|
|
||||||
windows.opacity: 1.0
|
|
||||||
|
|
||||||
# Mouse bindings
|
|
||||||
#
|
|
||||||
# Available fields:
|
|
||||||
# - mouse
|
|
||||||
# - action
|
|
||||||
# - mods (optional)
|
|
||||||
#
|
|
||||||
# Values for `mouse`:
|
|
||||||
# - Middle
|
|
||||||
# - Left
|
|
||||||
# - Right
|
|
||||||
# - Numeric identifier such as `5`
|
|
||||||
#
|
|
||||||
# All available `mods` and `action` values are documented in the key binding
|
|
||||||
# section.
|
|
||||||
mouse_bindings:
|
|
||||||
- { mouse: Middle, action: PasteSelection }
|
|
||||||
|
|
||||||
mouse:
|
|
||||||
# Click settings
|
|
||||||
#
|
|
||||||
# The `double_click` and `triple_click` settings control the time
|
|
||||||
# alacritty should wait for accepting multiple clicks as one double
|
|
||||||
# or triple click.
|
|
||||||
double_click: { threshold: 300 }
|
|
||||||
triple_click: { threshold: 300 }
|
|
||||||
|
|
||||||
hints:
|
|
||||||
url:
|
|
||||||
# URL launcher
|
|
||||||
#
|
|
||||||
# This program is executed when clicking on a text which is recognized as a URL.
|
|
||||||
# The URL is always added to the command as the last parameter.
|
|
||||||
launcher: xdg-open
|
|
||||||
|
|
||||||
# URL modifiers
|
|
||||||
#
|
|
||||||
# These are the modifiers that need to be held down for opening URLs when clicking
|
|
||||||
# on them. The available modifiers are documented in the key binding section.
|
|
||||||
#modifiers: Control|Shift
|
|
||||||
|
|
||||||
selection:
|
|
||||||
semantic_escape_chars: ",│`|:\"' ()[]{}<>"
|
|
||||||
|
|
||||||
# When set to `true`, selected text will be copied to both the primary and
|
|
||||||
# the selection clipboard. Otherwise, it will only be copied to the selection
|
|
||||||
# clipboard.
|
|
||||||
save_to_clipboard: false
|
|
||||||
|
|
||||||
window.dynamic_title: true
|
|
||||||
|
|
||||||
mouse.hide_when_typing: false
|
|
||||||
|
|
||||||
# Cursor style
|
|
||||||
#
|
|
||||||
# Values for 'cursor_style':
|
|
||||||
# - Block
|
|
||||||
# - Underline
|
|
||||||
# - Beam
|
|
||||||
cursor.style: Block
|
|
||||||
|
|
||||||
# If this is `true`, the cursor will be rendered as a hollow box when the
|
|
||||||
# window is not focused.
|
|
||||||
cursor.unfocused_hollow: true
|
|
||||||
|
|
||||||
# Live config reload (changes require restart)
|
|
||||||
live_config_reload: true
|
|
||||||
|
|
||||||
# Shell
|
|
||||||
#
|
|
||||||
# You can set `shell.program` to the path of your favorite shell, e.g. `/bin/fish`.
|
|
||||||
# Entries in `shell.args` are passed unmodified as arguments to the shell.
|
|
||||||
#
|
|
||||||
#shell:
|
|
||||||
# program: /bin/bash
|
|
||||||
# args:
|
|
||||||
# - --login
|
|
||||||
|
|
||||||
# Key bindings
|
|
||||||
#
|
|
||||||
# Key bindings are specified as a list of objects. Each binding will specify
|
|
||||||
# a key and modifiers required to trigger it, terminal modes where the binding
|
|
||||||
# is applicable, and what should be done when the key binding fires. It can
|
|
||||||
# either send a byte sequnce to the running application (`chars`), execute
|
|
||||||
# a predefined action (`action`) or fork and execute a specified command plus
|
|
||||||
# arguments (`command`).
|
|
||||||
#
|
|
||||||
# Example:
|
|
||||||
# `- { key: V, mods: Command, action: Paste }`
|
|
||||||
#
|
|
||||||
# Available fields:
|
|
||||||
# - key
|
|
||||||
# - mods (optional)
|
|
||||||
# - chars | action | command (exactly one required)
|
|
||||||
# - mode (optional)
|
|
||||||
#
|
|
||||||
# Values for `key`:
|
|
||||||
# - `A` -> `Z`
|
|
||||||
# - `F1` -> `F12`
|
|
||||||
# - `Key1` -> `Key0`
|
|
||||||
#
|
|
||||||
# A full list with available key codes can be found here:
|
|
||||||
# https://docs.rs/glutin/*/glutin/enum.VirtualKeyCode.html#variants
|
|
||||||
#
|
|
||||||
# Instead of using the name of the keys, the `key` field also supports using
|
|
||||||
# the scancode of the desired key. Scancodes have to be specified as a
|
|
||||||
# decimal number.
|
|
||||||
# This command will allow you to display the hex scancodes for certain keys:
|
|
||||||
# `showkey --scancodes`
|
|
||||||
#
|
|
||||||
# Values for `mods`:
|
|
||||||
# - Command
|
|
||||||
# - Control
|
|
||||||
# - Shift
|
|
||||||
# - Alt
|
|
||||||
#
|
|
||||||
# Multiple `mods` can be combined using `|` like this: `mods: Control|Shift`.
|
|
||||||
# Whitespace and capitalization is relevant and must match the example.
|
|
||||||
#
|
|
||||||
# Values for `chars`:
|
|
||||||
# The `chars` field writes the specified string to the terminal. This makes
|
|
||||||
# it possible to pass escape sequences.
|
|
||||||
# To find escape codes for bindings like `PageUp` ("\x1b[5~"), you can run
|
|
||||||
# the command `showkey -a` outside of tmux.
|
|
||||||
# Note that applications use terminfo to map escape sequences back to
|
|
||||||
# keys. It is therefore required to update the terminfo when
|
|
||||||
# changing an escape sequence.
|
|
||||||
#
|
|
||||||
# Values for `action`:
|
|
||||||
# - Paste
|
|
||||||
# - PasteSelection
|
|
||||||
# - Copy
|
|
||||||
# - IncreaseFontSize
|
|
||||||
# - DecreaseFontSize
|
|
||||||
# - ResetFontSize
|
|
||||||
# - ScrollPageUp
|
|
||||||
# - ScrollPageDown
|
|
||||||
# - ScrollToTop
|
|
||||||
# - ScrollToBottom
|
|
||||||
# - ClearHistory
|
|
||||||
# - Hide
|
|
||||||
# - Quit
|
|
||||||
#
|
|
||||||
# Values for `command`:
|
|
||||||
# The `command` field must be a map containing a `program` string and
|
|
||||||
# an `args` array of command line parameter strings.
|
|
||||||
#
|
|
||||||
# Example:
|
|
||||||
# `command: { program: "alacritty", args: ["-e", "vttest"] }`
|
|
||||||
#
|
|
||||||
# Values for `mode`:
|
|
||||||
# - ~AppCursor
|
|
||||||
# - AppCursor
|
|
||||||
# - ~AppKeypad
|
|
||||||
# - AppKeypad
|
|
||||||
key_bindings:
|
|
||||||
- { key: V, mods: Control|Shift, action: Paste }
|
|
||||||
- { key: C, mods: Control|Shift, action: Copy }
|
|
||||||
- { key: Paste, action: Paste }
|
|
||||||
- { key: Copy, action: Copy }
|
|
||||||
- { key: Q, mods: Command, action: Quit }
|
|
||||||
- { key: W, mods: Command, action: Quit }
|
|
||||||
- { key: Insert, mods: Shift, action: PasteSelection }
|
|
||||||
- { key: Key0, mods: Control, action: ResetFontSize }
|
|
||||||
- { key: Equals, mods: Control, action: IncreaseFontSize }
|
|
||||||
# - { key: Subtract, mods: Control, action: DecreaseFontSize }
|
|
||||||
- { key: Home, chars: "\x1bOH", mode: AppCursor }
|
|
||||||
- { key: Home, chars: "\x1b[H", mode: ~AppCursor }
|
|
||||||
- { key: End, chars: "\x1bOF", mode: AppCursor }
|
|
||||||
- { key: End, chars: "\x1b[F", mode: ~AppCursor }
|
|
||||||
- { key: PageUp, mods: Shift, chars: "\x1b[5;2~" }
|
|
||||||
- { key: PageUp, mods: Control, chars: "\x1b[5;5~" }
|
|
||||||
- { key: PageUp, chars: "\x1b[5~" }
|
|
||||||
- { key: PageDown, mods: Shift, chars: "\x1b[6;2~" }
|
|
||||||
- { key: PageDown, mods: Control, chars: "\x1b[6;5~" }
|
|
||||||
- { key: PageDown, chars: "\x1b[6~" }
|
|
||||||
- { key: Tab, mods: Shift, chars: "\x1b[Z" }
|
|
||||||
- { key: Back, chars: "\x7f" }
|
|
||||||
- { key: Back, mods: Alt, chars: "\x1b\x7f" }
|
|
||||||
- { key: Insert, chars: "\x1b[2~" }
|
|
||||||
- { key: Delete, chars: "\x1b[3~" }
|
|
||||||
- { key: Left, mods: Shift, chars: "\x1b[1;2D" }
|
|
||||||
- { key: Left, mods: Control, chars: "\x1b[1;5D" }
|
|
||||||
- { key: Left, mods: Alt, chars: "\x1b[1;3D" }
|
|
||||||
- { key: Left, chars: "\x1b[D", mode: ~AppCursor }
|
|
||||||
- { key: Left, chars: "\x1bOD", mode: AppCursor }
|
|
||||||
- { key: Right, mods: Shift, chars: "\x1b[1;2C" }
|
|
||||||
- { key: Right, mods: Control, chars: "\x1b[1;5C" }
|
|
||||||
- { key: Right, mods: Alt, chars: "\x1b[1;3C" }
|
|
||||||
- { key: Right, chars: "\x1b[C", mode: ~AppCursor }
|
|
||||||
- { key: Right, chars: "\x1bOC", mode: AppCursor }
|
|
||||||
- { key: Up, mods: Shift, chars: "\x1b[1;2A" }
|
|
||||||
- { key: Up, mods: Control, chars: "\x1b[1;5A" }
|
|
||||||
- { key: Up, mods: Alt, chars: "\x1b[1;3A" }
|
|
||||||
- { key: Up, chars: "\x1b[A", mode: ~AppCursor }
|
|
||||||
- { key: Up, chars: "\x1bOA", mode: AppCursor }
|
|
||||||
- { key: Down, mods: Shift, chars: "\x1b[1;2B" }
|
|
||||||
- { key: Down, mods: Control, chars: "\x1b[1;5B" }
|
|
||||||
- { key: Down, mods: Alt, chars: "\x1b[1;3B" }
|
|
||||||
- { key: Down, chars: "\x1b[B", mode: ~AppCursor }
|
|
||||||
- { key: Down, chars: "\x1bOB", mode: AppCursor }
|
|
||||||
- { key: F1, chars: "\x1bOP" }
|
|
||||||
- { key: F2, chars: "\x1bOQ" }
|
|
||||||
- { key: F3, chars: "\x1bOR" }
|
|
||||||
- { key: F4, chars: "\x1bOS" }
|
|
||||||
- { key: F5, chars: "\x1b[15~" }
|
|
||||||
- { key: F6, chars: "\x1b[17~" }
|
|
||||||
- { key: F7, chars: "\x1b[18~" }
|
|
||||||
- { key: F8, chars: "\x1b[19~" }
|
|
||||||
- { key: F9, chars: "\x1b[20~" }
|
|
||||||
- { key: F10, chars: "\x1b[21~" }
|
|
||||||
- { key: F11, chars: "\x1b[23~" }
|
|
||||||
- { key: F12, chars: "\x1b[24~" }
|
|
||||||
- { key: F1, mods: Shift, chars: "\x1b[1;2P" }
|
|
||||||
- { key: F2, mods: Shift, chars: "\x1b[1;2Q" }
|
|
||||||
- { key: F3, mods: Shift, chars: "\x1b[1;2R" }
|
|
||||||
- { key: F4, mods: Shift, chars: "\x1b[1;2S" }
|
|
||||||
- { key: F5, mods: Shift, chars: "\x1b[15;2~" }
|
|
||||||
- { key: F6, mods: Shift, chars: "\x1b[17;2~" }
|
|
||||||
- { key: F7, mods: Shift, chars: "\x1b[18;2~" }
|
|
||||||
- { key: F8, mods: Shift, chars: "\x1b[19;2~" }
|
|
||||||
- { key: F9, mods: Shift, chars: "\x1b[20;2~" }
|
|
||||||
- { key: F10, mods: Shift, chars: "\x1b[21;2~" }
|
|
||||||
- { key: F11, mods: Shift, chars: "\x1b[23;2~" }
|
|
||||||
- { key: F12, mods: Shift, chars: "\x1b[24;2~" }
|
|
||||||
- { key: F1, mods: Control, chars: "\x1b[1;5P" }
|
|
||||||
- { key: F2, mods: Control, chars: "\x1b[1;5Q" }
|
|
||||||
- { key: F3, mods: Control, chars: "\x1b[1;5R" }
|
|
||||||
- { key: F4, mods: Control, chars: "\x1b[1;5S" }
|
|
||||||
- { key: F5, mods: Control, chars: "\x1b[15;5~" }
|
|
||||||
- { key: F6, mods: Control, chars: "\x1b[17;5~" }
|
|
||||||
- { key: F7, mods: Control, chars: "\x1b[18;5~" }
|
|
||||||
- { key: F8, mods: Control, chars: "\x1b[19;5~" }
|
|
||||||
- { key: F9, mods: Control, chars: "\x1b[20;5~" }
|
|
||||||
- { key: F10, mods: Control, chars: "\x1b[21;5~" }
|
|
||||||
- { key: F11, mods: Control, chars: "\x1b[23;5~" }
|
|
||||||
- { key: F12, mods: Control, chars: "\x1b[24;5~" }
|
|
||||||
- { key: F1, mods: Alt, chars: "\x1b[1;6P" }
|
|
||||||
- { key: F2, mods: Alt, chars: "\x1b[1;6Q" }
|
|
||||||
- { key: F3, mods: Alt, chars: "\x1b[1;6R" }
|
|
||||||
- { key: F4, mods: Alt, chars: "\x1b[1;6S" }
|
|
||||||
- { key: F5, mods: Alt, chars: "\x1b[15;6~" }
|
|
||||||
- { key: F6, mods: Alt, chars: "\x1b[17;6~" }
|
|
||||||
- { key: F7, mods: Alt, chars: "\x1b[18;6~" }
|
|
||||||
- { key: F8, mods: Alt, chars: "\x1b[19;6~" }
|
|
||||||
- { key: F9, mods: Alt, chars: "\x1b[20;6~" }
|
|
||||||
- { key: F10, mods: Alt, chars: "\x1b[21;6~" }
|
|
||||||
- { key: F11, mods: Alt, chars: "\x1b[23;6~" }
|
|
||||||
- { key: F12, mods: Alt, chars: "\x1b[24;6~" }
|
|
||||||
- { key: F1, mods: Super, chars: "\x1b[1;3P" }
|
|
||||||
- { key: F2, mods: Super, chars: "\x1b[1;3Q" }
|
|
||||||
- { key: F3, mods: Super, chars: "\x1b[1;3R" }
|
|
||||||
- { key: F4, mods: Super, chars: "\x1b[1;3S" }
|
|
||||||
- { key: F5, mods: Super, chars: "\x1b[15;3~" }
|
|
||||||
- { key: F6, mods: Super, chars: "\x1b[17;3~" }
|
|
||||||
- { key: F7, mods: Super, chars: "\x1b[18;3~" }
|
|
||||||
- { key: F8, mods: Super, chars: "\x1b[19;3~" }
|
|
||||||
- { key: F9, mods: Super, chars: "\x1b[20;3~" }
|
|
||||||
- { key: F10, mods: Super, chars: "\x1b[21;3~" }
|
|
||||||
- { key: F11, mods: Super, chars: "\x1b[23;3~" }
|
|
||||||
- { key: F12, mods: Super, chars: "\x1b[24;3~" }
|
|
||||||
@@ -1,43 +0,0 @@
|
|||||||
output DP1
|
|
||||||
off
|
|
||||||
output DP2
|
|
||||||
off
|
|
||||||
output DP2-2
|
|
||||||
off
|
|
||||||
output HDMI1
|
|
||||||
off
|
|
||||||
output HDMI2
|
|
||||||
off
|
|
||||||
output HDMI3
|
|
||||||
off
|
|
||||||
output VIRTUAL1
|
|
||||||
off
|
|
||||||
output eDP1
|
|
||||||
crtc 0
|
|
||||||
mode 1920x1080
|
|
||||||
pos 0x0
|
|
||||||
primary
|
|
||||||
rate 60.00
|
|
||||||
x-prop-broadcast_rgb Automatic
|
|
||||||
x-prop-colorspace Default
|
|
||||||
x-prop-max_bpc 12
|
|
||||||
x-prop-non_desktop 0
|
|
||||||
x-prop-scaling_mode Full aspect
|
|
||||||
output DP2-1
|
|
||||||
crtc 1
|
|
||||||
mode 1920x1080
|
|
||||||
pos 1920x0
|
|
||||||
rate 60.00
|
|
||||||
x-prop-audio auto
|
|
||||||
x-prop-broadcast_rgb Automatic
|
|
||||||
x-prop-max_bpc 12
|
|
||||||
x-prop-non_desktop 0
|
|
||||||
output DP2-3
|
|
||||||
crtc 2
|
|
||||||
mode 1920x1080
|
|
||||||
pos 0x1080
|
|
||||||
rate 60.00
|
|
||||||
x-prop-audio auto
|
|
||||||
x-prop-broadcast_rgb Automatic
|
|
||||||
x-prop-max_bpc 12
|
|
||||||
x-prop-non_desktop 0
|
|
||||||
@@ -1,3 +0,0 @@
|
|||||||
DP2-1 00ffffffffffff005a6332c1010101012d1d0103803c22782e2235a3594d9c28135054bfef80b300a940a9c0950090408180814081c0023a801871382d40582c450056502100001e000000ff00554e523139343536323930320a000000fd00324b185211000a202020202020000000fc005641323731392053657269657301ad020322f14c9005040302071f141312160123097f078301000068030c001000000000023a801871382d40582c450056502100001e011d8018711c1620582c250056502100009e011d007251d01e206e28550056502100001e8c0ad08a20e02d10103e9600565021000018023a80d072382d40102c458056502100001e00000074
|
|
||||||
DP2-3 00ffffffffffff0054e41515170621201f1f0104a5221378221e55a059569f270d5054210800d1c0818095009500b30081c001010101023a801871382d40582c450059c21000001e000000ff0032303231303631370a20202020000000fc00434431363046480a2020202020000000fd00383d1e5311000a2020202020200150020310c043900204230907078301000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000094
|
|
||||||
eDP1 00ffffffffffff003870560000000000121e0104951f1178027535955c578f281d5054000000010101010101010101010101010101012a3680a070381f403020350035ae1000001a522b80a070381f403020350035ae1000001a000000fe004a34594b4780313430354c3031000000000000412199001100000a010a2020000c
|
|
||||||
@@ -1,36 +0,0 @@
|
|||||||
output DP1
|
|
||||||
off
|
|
||||||
output DP2
|
|
||||||
off
|
|
||||||
output DP2-2
|
|
||||||
off
|
|
||||||
output DP2-3
|
|
||||||
off
|
|
||||||
output HDMI1
|
|
||||||
off
|
|
||||||
output HDMI2
|
|
||||||
off
|
|
||||||
output HDMI3
|
|
||||||
off
|
|
||||||
output VIRTUAL1
|
|
||||||
off
|
|
||||||
output eDP1
|
|
||||||
crtc 0
|
|
||||||
mode 1920x1080
|
|
||||||
pos 0x0
|
|
||||||
primary
|
|
||||||
rate 60.00
|
|
||||||
x-prop-broadcast_rgb Automatic
|
|
||||||
x-prop-colorspace Default
|
|
||||||
x-prop-max_bpc 12
|
|
||||||
x-prop-non_desktop 0
|
|
||||||
x-prop-scaling_mode Full aspect
|
|
||||||
output DP2-1
|
|
||||||
crtc 1
|
|
||||||
mode 1920x1080
|
|
||||||
pos 1920x0
|
|
||||||
rate 60.00
|
|
||||||
x-prop-audio auto
|
|
||||||
x-prop-broadcast_rgb Automatic
|
|
||||||
x-prop-max_bpc 12
|
|
||||||
x-prop-non_desktop 0
|
|
||||||
@@ -1,2 +0,0 @@
|
|||||||
DP2-1 00ffffffffffff005a6332c1010101012d1d0103803c22782e2235a3594d9c28135054bfef80b300a940a9c0950090408180814081c0023a801871382d40582c450056502100001e000000ff00554e523139343536323930320a000000fd00324b185211000a202020202020000000fc005641323731392053657269657301ad020322f14c9005040302071f141312160123097f078301000068030c001000000000023a801871382d40582c450056502100001e011d8018711c1620582c250056502100009e011d007251d01e206e28550056502100001e8c0ad08a20e02d10103e9600565021000018023a80d072382d40102c458056502100001e00000074
|
|
||||||
eDP1 00ffffffffffff003870560000000000121e0104951f1178027535955c578f281d5054000000010101010101010101010101010101012a3680a070381f403020350035ae1000001a522b80a070381f403020350035ae1000001a000000fe004a34594b4780313430354c3031000000000000412199001100000a010a2020000c
|
|
||||||
@@ -1,36 +0,0 @@
|
|||||||
output DP1
|
|
||||||
off
|
|
||||||
output DP1-2
|
|
||||||
off
|
|
||||||
output DP1-3
|
|
||||||
off
|
|
||||||
output DP2
|
|
||||||
off
|
|
||||||
output HDMI1
|
|
||||||
off
|
|
||||||
output HDMI2
|
|
||||||
off
|
|
||||||
output HDMI3
|
|
||||||
off
|
|
||||||
output VIRTUAL1
|
|
||||||
off
|
|
||||||
output eDP1
|
|
||||||
crtc 0
|
|
||||||
mode 1920x1080
|
|
||||||
pos 0x0
|
|
||||||
primary
|
|
||||||
rate 60.00
|
|
||||||
x-prop-broadcast_rgb Automatic
|
|
||||||
x-prop-colorspace Default
|
|
||||||
x-prop-max_bpc 12
|
|
||||||
x-prop-non_desktop 0
|
|
||||||
x-prop-scaling_mode Full aspect
|
|
||||||
output DP1-1
|
|
||||||
crtc 1
|
|
||||||
mode 1920x1080
|
|
||||||
pos 1920x0
|
|
||||||
rate 60.00
|
|
||||||
x-prop-audio auto
|
|
||||||
x-prop-broadcast_rgb Automatic
|
|
||||||
x-prop-max_bpc 12
|
|
||||||
x-prop-non_desktop 0
|
|
||||||
@@ -1,2 +0,0 @@
|
|||||||
DP1-1 --CONNECTED-BUT-EDID-UNAVAILABLE--DP1-1
|
|
||||||
eDP1 00ffffffffffff003870560000000000121e0104951f1178027535955c578f281d5054000000010101010101010101010101010101012a3680a070381f403020350035ae1000001a522b80a070381f403020350035ae1000001a000000fe004a34594b4780313430354c3031000000000000412199001100000a010a2020000c
|
|
||||||
@@ -1,43 +0,0 @@
|
|||||||
output DP1
|
|
||||||
off
|
|
||||||
output DP1-2
|
|
||||||
off
|
|
||||||
output DP2
|
|
||||||
off
|
|
||||||
output HDMI1
|
|
||||||
off
|
|
||||||
output HDMI2
|
|
||||||
off
|
|
||||||
output HDMI3
|
|
||||||
off
|
|
||||||
output VIRTUAL1
|
|
||||||
off
|
|
||||||
output eDP1
|
|
||||||
crtc 0
|
|
||||||
mode 1920x1080
|
|
||||||
pos 0x0
|
|
||||||
primary
|
|
||||||
rate 60.00
|
|
||||||
x-prop-broadcast_rgb Automatic
|
|
||||||
x-prop-colorspace Default
|
|
||||||
x-prop-max_bpc 12
|
|
||||||
x-prop-non_desktop 0
|
|
||||||
x-prop-scaling_mode Full aspect
|
|
||||||
output DP1-1
|
|
||||||
crtc 1
|
|
||||||
mode 1920x1080
|
|
||||||
pos 1920x0
|
|
||||||
rate 60.00
|
|
||||||
x-prop-audio auto
|
|
||||||
x-prop-broadcast_rgb Automatic
|
|
||||||
x-prop-max_bpc 12
|
|
||||||
x-prop-non_desktop 0
|
|
||||||
output DP1-3
|
|
||||||
crtc 2
|
|
||||||
mode 1920x1080
|
|
||||||
pos 1067x1080
|
|
||||||
rate 60.00
|
|
||||||
x-prop-audio auto
|
|
||||||
x-prop-broadcast_rgb Automatic
|
|
||||||
x-prop-max_bpc 12
|
|
||||||
x-prop-non_desktop 0
|
|
||||||
@@ -1,3 +0,0 @@
|
|||||||
DP1-1 00ffffffffffff005a6332c1010101012d1d0103803c22782e2235a3594d9c28135054bfef80b300a940a9c0950090408180814081c0023a801871382d40582c450056502100001e000000ff00554e523139343536323930320a000000fd00324b185211000a202020202020000000fc005641323731392053657269657301ad020322f14c9005040302071f141312160123097f078301000068030c001000000000023a801871382d40582c450056502100001e011d8018711c1620582c250056502100009e011d007251d01e206e28550056502100001e8c0ad08a20e02d10103e9600565021000018023a80d072382d40102c458056502100001e00000074
|
|
||||||
DP1-3 00ffffffffffff0054e41515170621201f1f0104a5221378221e55a059569f270d5054210800d1c0818095009500b30081c001010101023a801871382d40582c450059c21000001e000000ff0032303231303631370a20202020000000fc00434431363046480a2020202020000000fd00383d1e5311000a2020202020200150020310c043900204230907078301000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000094
|
|
||||||
eDP1 00ffffffffffff003870560000000000121e0104951f1178027535955c578f281d5054000000010101010101010101010101010101012a3680a070381f403020350035ae1000001a522b80a070381f403020350035ae1000001a000000fe004a34594b4780313430354c3031000000000000412199001100000a010a2020000c
|
|
||||||
@@ -1,36 +0,0 @@
|
|||||||
output DP1
|
|
||||||
off
|
|
||||||
output DP2
|
|
||||||
off
|
|
||||||
output DP2-2
|
|
||||||
off
|
|
||||||
output DP2-3
|
|
||||||
off
|
|
||||||
output HDMI1
|
|
||||||
off
|
|
||||||
output HDMI2
|
|
||||||
off
|
|
||||||
output HDMI3
|
|
||||||
off
|
|
||||||
output VIRTUAL1
|
|
||||||
off
|
|
||||||
output eDP1
|
|
||||||
crtc 0
|
|
||||||
mode 1920x1080
|
|
||||||
pos 0x0
|
|
||||||
primary
|
|
||||||
rate 60.00
|
|
||||||
x-prop-broadcast_rgb Automatic
|
|
||||||
x-prop-colorspace Default
|
|
||||||
x-prop-max_bpc 12
|
|
||||||
x-prop-non_desktop 0
|
|
||||||
x-prop-scaling_mode Full aspect
|
|
||||||
output DP2-1
|
|
||||||
crtc 1
|
|
||||||
mode 1920x1080
|
|
||||||
pos 1920x0
|
|
||||||
rate 60.00
|
|
||||||
x-prop-audio auto
|
|
||||||
x-prop-broadcast_rgb Automatic
|
|
||||||
x-prop-max_bpc 12
|
|
||||||
x-prop-non_desktop 0
|
|
||||||
@@ -1,2 +0,0 @@
|
|||||||
DP2-1 --CONNECTED-BUT-EDID-UNAVAILABLE--DP2-1
|
|
||||||
eDP1 00ffffffffffff003870560000000000121e0104951f1178027535955c578f281d5054000000010101010101010101010101010101012a3680a070381f403020350035ae1000001a522b80a070381f403020350035ae1000001a000000fe004a34594b4780313430354c3031000000000000412199001100000a010a2020000c
|
|
||||||
@@ -1,24 +0,0 @@
|
|||||||
output DP1
|
|
||||||
off
|
|
||||||
output DP1-1
|
|
||||||
off
|
|
||||||
output DP1-2
|
|
||||||
off
|
|
||||||
output DP1-3
|
|
||||||
off
|
|
||||||
output DP2
|
|
||||||
off
|
|
||||||
output HDMI1
|
|
||||||
off
|
|
||||||
output HDMI2
|
|
||||||
off
|
|
||||||
output HDMI3
|
|
||||||
off
|
|
||||||
output VIRTUAL1
|
|
||||||
off
|
|
||||||
output eDP1
|
|
||||||
crtc 0
|
|
||||||
mode 1920x1080
|
|
||||||
pos 0x0
|
|
||||||
primary
|
|
||||||
rate 60.00
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
eDP1 00ffffffffffff003870560000000000121e0104951f1178027535955c578f281d5054000000010101010101010101010101010101012a3680a070381f403020350035ae1000001a522b80a070381f403020350035ae1000001a000000fe004a34594b4780313430354c3031000000000000412199001100000a010a2020000c
|
|
||||||
@@ -1,114 +0,0 @@
|
|||||||
#!/usr/bin/env bash
|
|
||||||
|
|
||||||
function move_workspace_to_screen() {
|
|
||||||
workspace="${1}"
|
|
||||||
screen="${2}"
|
|
||||||
|
|
||||||
i3-msg workspace "${workspace}"
|
|
||||||
i3-msg move workspace to output "${screen}"
|
|
||||||
|
|
||||||
sed -i "/^workspace \"${workspace}\" output/ c \\workspace \"${workspace}\" output \"${screen}\"" ${HOME}/.config/i3/config
|
|
||||||
}
|
|
||||||
|
|
||||||
function set_screens() {
|
|
||||||
|
|
||||||
move_workspace_to_screen 1 "${1}"
|
|
||||||
move_workspace_to_screen 3 "${1}"
|
|
||||||
move_workspace_to_screen 4 "${1}"
|
|
||||||
move_workspace_to_screen 5 "${2}"
|
|
||||||
move_workspace_to_screen 6 "${2}"
|
|
||||||
move_workspace_to_screen 7 "${2}"
|
|
||||||
move_workspace_to_screen 8 "${2}"
|
|
||||||
move_workspace_to_screen 9 "${3}"
|
|
||||||
move_workspace_to_screen 10 "${3}"
|
|
||||||
move_workspace_to_screen 11 "${3}"
|
|
||||||
move_workspace_to_screen 12 "${3}"
|
|
||||||
|
|
||||||
i3-msg reload
|
|
||||||
|
|
||||||
i3-msg workspace 9
|
|
||||||
i3-msg workspace 5
|
|
||||||
i3-msg workspace 1
|
|
||||||
|
|
||||||
bash ${HOME}/.config/polybar/launch.sh
|
|
||||||
}
|
|
||||||
|
|
||||||
function set_screens_with_xppen() {
|
|
||||||
|
|
||||||
move_workspace_to_screen 1 "${1}"
|
|
||||||
move_workspace_to_screen 3 "${1}"
|
|
||||||
move_workspace_to_screen 4 "${1}"
|
|
||||||
move_workspace_to_screen 5 "${2}"
|
|
||||||
move_workspace_to_screen 6 "${2}"
|
|
||||||
move_workspace_to_screen 7 "${2}"
|
|
||||||
move_workspace_to_screen 8 "${2}"
|
|
||||||
move_workspace_to_screen 9 "${2}"
|
|
||||||
move_workspace_to_screen 10 "${2}"
|
|
||||||
move_workspace_to_screen 11 "${2}"
|
|
||||||
move_workspace_to_screen 12 "${3}"
|
|
||||||
|
|
||||||
i3-msg reload
|
|
||||||
|
|
||||||
i3-msg workspace 12
|
|
||||||
i3-msg workspace 5
|
|
||||||
i3-msg workspace 1
|
|
||||||
|
|
||||||
bash ${HOME}/.config/polybar/launch.sh
|
|
||||||
}
|
|
||||||
|
|
||||||
function main() {
|
|
||||||
|
|
||||||
case $(autorandr --detected) in
|
|
||||||
"home")
|
|
||||||
set_screens "eDP1" "DP2-1" "DP2-1"
|
|
||||||
pacmd set-card-profile 0 HiFi: Default
|
|
||||||
;;
|
|
||||||
|
|
||||||
"home1")
|
|
||||||
set_screens "eDP1" "DP1-1" "DP1-1"
|
|
||||||
pacmd set-card-profile 0 HiFi: Default
|
|
||||||
;;
|
|
||||||
|
|
||||||
"home2")
|
|
||||||
set_screens "eDP1" "DP1-1" "DP1-1"
|
|
||||||
pacmd set-card-profile 0 HiFi: Default
|
|
||||||
;;
|
|
||||||
|
|
||||||
"work")
|
|
||||||
set_screens "eDP1" "DP1-1" "DP1-2"
|
|
||||||
pacmd set-card-profile 0 HiFi: Default
|
|
||||||
;;
|
|
||||||
|
|
||||||
"work2")
|
|
||||||
set_screens "eDP1" "DP2-1" "DP2-2"
|
|
||||||
pacmd set-card-profile 0 HiFi: Default
|
|
||||||
;;
|
|
||||||
|
|
||||||
"mobile")
|
|
||||||
set_screens "eDP1" "eDP1" "eDP1"
|
|
||||||
;;
|
|
||||||
|
|
||||||
"home+xppen")
|
|
||||||
set_screens_with_xppen "eDP1" "DP2-1" "DP2-3"
|
|
||||||
pacmd set-card-profile 0 HiFi: Default
|
|
||||||
;;
|
|
||||||
|
|
||||||
"home1+xppen")
|
|
||||||
set_screens_with_xppen "eDP1" "DP1-1" "DP1-3"
|
|
||||||
pacmd set-card-profile 0 HiFi: Default
|
|
||||||
;;
|
|
||||||
|
|
||||||
"home2+xppen")
|
|
||||||
set_screens_with_xppen "eDP1" "DP1-1" "DP1-3"
|
|
||||||
pacmd set-card-profile 0 HiFi: Default
|
|
||||||
;;
|
|
||||||
|
|
||||||
*)
|
|
||||||
notify-send -i display "Display profile" "CONFIGURATION NON RECONNUE"
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
|
|
||||||
notify-send -i display "Display profile" "Bacule vers $(autorandr --detected)"
|
|
||||||
}
|
|
||||||
|
|
||||||
main
|
|
||||||
@@ -1,30 +0,0 @@
|
|||||||
output DP1
|
|
||||||
off
|
|
||||||
output DP1-3
|
|
||||||
off
|
|
||||||
output DP2
|
|
||||||
off
|
|
||||||
output HDMI1
|
|
||||||
off
|
|
||||||
output HDMI2
|
|
||||||
off
|
|
||||||
output HDMI3
|
|
||||||
off
|
|
||||||
output VIRTUAL1
|
|
||||||
off
|
|
||||||
output eDP1
|
|
||||||
crtc 0
|
|
||||||
mode 1920x1080
|
|
||||||
pos 0x0
|
|
||||||
primary
|
|
||||||
rate 60.00
|
|
||||||
output DP1-1
|
|
||||||
crtc 1
|
|
||||||
mode 1920x1080
|
|
||||||
pos 1920x0
|
|
||||||
rate 60.00
|
|
||||||
output DP1-2
|
|
||||||
crtc 2
|
|
||||||
mode 1920x1080
|
|
||||||
pos 3840x0
|
|
||||||
rate 60.00
|
|
||||||
@@ -1,3 +0,0 @@
|
|||||||
DP1-1 00ffffffffffff0010acd9d04c475530091d0104a5351e783a0565a756529c270f5054a54b00714f8180a9c0d1c00101010101010101023a801871382d40582c45000f282100001e000000ff00313835375a54320a2020202020000000fc0044454c4c205032343139480a20000000fd00384c1e5311010a20202020202000ae
|
|
||||||
DP1-2 00ffffffffffff0010acd9d04c4b5530091d0104a5351e783a0565a756529c270f5054a54b00714f8180a9c0d1c00101010101010101023a801871382d40582c45000f282100001e000000ff00484a34375a54320a2020202020000000fc0044454c4c205032343139480a20000000fd00384c1e5311010a2020202020200082
|
|
||||||
eDP1 00ffffffffffff003870560000000000121e0104951f1178027535955c578f281d5054000000010101010101010101010101010101012a3680a070381f403020350035ae1000001a522b80a070381f403020350035ae1000001a000000fe004a34594b4780313430354c3031000000000000412199001100000a010a2020000c
|
|
||||||
@@ -1,30 +0,0 @@
|
|||||||
output DP1
|
|
||||||
off
|
|
||||||
output DP2
|
|
||||||
off
|
|
||||||
output DP2-3
|
|
||||||
off
|
|
||||||
output HDMI1
|
|
||||||
off
|
|
||||||
output HDMI2
|
|
||||||
off
|
|
||||||
output HDMI3
|
|
||||||
off
|
|
||||||
output VIRTUAL1
|
|
||||||
off
|
|
||||||
output eDP1
|
|
||||||
crtc 0
|
|
||||||
mode 1920x1080
|
|
||||||
pos 0x0
|
|
||||||
primary
|
|
||||||
rate 60.00
|
|
||||||
output DP2-1
|
|
||||||
crtc 1
|
|
||||||
mode 1920x1080
|
|
||||||
pos 1920x0
|
|
||||||
rate 60.00
|
|
||||||
output DP2-2
|
|
||||||
crtc 2
|
|
||||||
mode 1920x1080
|
|
||||||
pos 3840x0
|
|
||||||
rate 60.00
|
|
||||||
@@ -1,3 +0,0 @@
|
|||||||
DP2-1 00ffffffffffff0010acd9d04c475530091d0104a5351e783a0565a756529c270f5054a54b00714f8180a9c0d1c00101010101010101023a801871382d40582c45000f282100001e000000ff00313835375a54320a2020202020000000fc0044454c4c205032343139480a20000000fd00384c1e5311010a20202020202000ae
|
|
||||||
DP2-2 00ffffffffffff0010acd9d04c4b5530091d0104a5351e783a0565a756529c270f5054a54b00714f8180a9c0d1c00101010101010101023a801871382d40582c45000f282100001e000000ff00484a34375a54320a2020202020000000fc0044454c4c205032343139480a20000000fd00384c1e5311010a2020202020200082
|
|
||||||
eDP1 00ffffffffffff003870560000000000121e0104951f1178027535955c578f281d5054000000010101010101010101010101010101012a3680a070381f403020350035ae1000001a522b80a070381f403020350035ae1000001a000000fe004a34594b4780313430354c3031000000000000412199001100000a010a2020000c
|
|
||||||
@@ -1,7 +0,0 @@
|
|||||||
complete -c fisher -x -l help -d "print usage help"
|
|
||||||
complete -c fisher -x -l version -d "print fisher version"
|
|
||||||
complete -c fisher -x -n "__fish_use_subcommand" -a install -d "install plugins"
|
|
||||||
complete -c fisher -x -n "__fish_use_subcommand" -a update -d "update installed plugins"
|
|
||||||
complete -c fisher -x -n "__fish_use_subcommand" -a remove -d "remove installed plugins"
|
|
||||||
complete -c fisher -x -n "__fish_use_subcommand" -a list -d "list installed plugins matching <regex>"
|
|
||||||
complete -c fisher -x -n "__fish_seen_subcommand_from update remove" -a "(fisher list)"
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
set PATH $PATH $HOME/.gem/ruby/2.6.0/bin
|
|
||||||
@@ -1,2 +0,0 @@
|
|||||||
set -x -U GOPATH $HOME/build/go
|
|
||||||
set PATH $PATH $HOME/build/go/bin
|
|
||||||
File renamed without changes.
@@ -1,79 +0,0 @@
|
|||||||
# name: purify
|
|
||||||
# base on: theme-clearance (https://github.com/oh-my-fish/theme-clearance)
|
|
||||||
|
|
||||||
# Set fish global colors
|
|
||||||
set -l normal fafafa
|
|
||||||
set -l selection 3e4452
|
|
||||||
set -l comment 5f5f87
|
|
||||||
|
|
||||||
set -l red ff6059
|
|
||||||
set -l green 5fff87
|
|
||||||
set -l blue 5fafff
|
|
||||||
set -l yellow ffff87
|
|
||||||
set -l pink ff79c6
|
|
||||||
set -l salmon ff875f
|
|
||||||
|
|
||||||
set -g fish_color_autosuggestion $selection
|
|
||||||
set -g fish_color_command $green
|
|
||||||
set -g fish_color_comment $comment
|
|
||||||
set -g fish_color_end $salmon
|
|
||||||
set -g fish_color_error $red
|
|
||||||
set -g fish_color_escape $pink
|
|
||||||
set -g fish_color_normal $normal
|
|
||||||
set -g fish_color_operator $green
|
|
||||||
set -g fish_color_param $normal
|
|
||||||
set -g fish_color_quote $yellow
|
|
||||||
set -g fish_color_redirection $foreground
|
|
||||||
set -g fish_color_search_match --background=$selection
|
|
||||||
set -g fish_color_selection --background=$selection
|
|
||||||
|
|
||||||
# Function to support git
|
|
||||||
#function _git_branch_name
|
|
||||||
# echo (command git symbolic-ref HEAD 2> /dev/null | sed -e 's|^refs/heads/||')
|
|
||||||
#end
|
|
||||||
|
|
||||||
#function _git_is_dirty
|
|
||||||
# echo (command git status -s --ignore-submodules=dirty 2> /dev/null)
|
|
||||||
#end
|
|
||||||
|
|
||||||
#function fish_prompt
|
|
||||||
# set -l last_status $status
|
|
||||||
|
|
||||||
# Define required colors
|
|
||||||
# set -l cyan (set_color 88fcfc)
|
|
||||||
# set -l pink (set_color ff79c6)
|
|
||||||
# set -l red (set_color ff6059)
|
|
||||||
# set -l blue (set_color 5fafff)
|
|
||||||
# set -l green (set_color 5fff87)
|
|
||||||
# set -l normal (set_color fafafa)
|
|
||||||
|
|
||||||
# set -l cwd $blue(pwd | sed "s:^$HOME:~:")
|
|
||||||
|
|
||||||
# Add a newline before new prompts
|
|
||||||
# echo -e ''
|
|
||||||
|
|
||||||
# Display [venvname] if in a virtualenv
|
|
||||||
# if set -q VIRTUAL_ENV
|
|
||||||
# echo -n -s (set_color -b blue black) '[' (basename "$VIRTUAL_ENV") ']' $normal ' '
|
|
||||||
# end
|
|
||||||
|
|
||||||
# Print pwd or full path
|
|
||||||
# echo -n -s $cwd $normal
|
|
||||||
|
|
||||||
# Show git branch and status
|
|
||||||
# if [ (_git_branch_name) ]
|
|
||||||
# set -l git_branch (_git_branch_name)
|
|
||||||
#
|
|
||||||
# if [ (_git_is_dirty) ]
|
|
||||||
# set git_info $cyan $git_branch $red " !"
|
|
||||||
# else
|
|
||||||
# set git_info $cyan $git_branch $green " √"
|
|
||||||
# end
|
|
||||||
|
|
||||||
# echo -n -s $cyan ' ⇢ ' $git_info
|
|
||||||
# end
|
|
||||||
|
|
||||||
# Terminate with a nice prompt char
|
|
||||||
# echo -e ''
|
|
||||||
# echo -e -n -s $pink '❯ '
|
|
||||||
#end
|
|
||||||
@@ -0,0 +1,6 @@
|
|||||||
|
# Start X at login
|
||||||
|
if status --is-login
|
||||||
|
if test -z "$DISPLAY" -a $XDG_VTNR = 2
|
||||||
|
exec start-hyprland
|
||||||
|
end
|
||||||
|
end
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
# Start X at login
|
# Start X at login
|
||||||
if status --is-login
|
if status --is-login
|
||||||
if test -z "$DISPLAY" -a $XDG_VTNR = 1
|
if test -z "$DISPLAY" -a $XDG_VTNR = 1
|
||||||
exec startx
|
exec niri-session -l
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
@@ -1,3 +1,5 @@
|
|||||||
if status is-interactive
|
fzf_configure_bindings
|
||||||
# Commands to run in interactive sessions can go here
|
|
||||||
|
if test -f "/home/brdw/.bitwarden-ssh-agent.sock"
|
||||||
|
set -g SSH_AUTH_SOCK "/home/brdw/.bitwarden-ssh-agent.sock"
|
||||||
end
|
end
|
||||||
@@ -1 +1,3 @@
|
|||||||
jorgebucaran/fisher
|
jorgebucaran/fisher
|
||||||
|
danhper/fish-ssh-agent
|
||||||
|
patrickf1/fzf.fish
|
||||||
@@ -1,36 +0,0 @@
|
|||||||
# This file contains fish universal variable definitions.
|
|
||||||
# VERSION: 3.0
|
|
||||||
SETUVAR --export --path GOPATH:/home/bredow/build/go
|
|
||||||
SETUVAR __fish_initialized:3400
|
|
||||||
SETUVAR _fisher_jorgebucaran_2F_fisher_files:/home/bredow/\x2econfig/fish/functions/fisher\x2efish\x1e/home/bredow/\x2econfig/fish/completions/fisher\x2efish
|
|
||||||
SETUVAR _fisher_plugins:jorgebucaran/fisher
|
|
||||||
SETUVAR fish_color_autosuggestion:555\x1ebrblack
|
|
||||||
SETUVAR fish_color_cancel:\x2dr
|
|
||||||
SETUVAR fish_color_command:005fd7
|
|
||||||
SETUVAR fish_color_comment:990000
|
|
||||||
SETUVAR fish_color_cwd:green
|
|
||||||
SETUVAR fish_color_cwd_root:red
|
|
||||||
SETUVAR fish_color_end:009900
|
|
||||||
SETUVAR fish_color_error:ff0000
|
|
||||||
SETUVAR fish_color_escape:00a6b2
|
|
||||||
SETUVAR fish_color_history_current:\x2d\x2dbold
|
|
||||||
SETUVAR fish_color_host:normal
|
|
||||||
SETUVAR fish_color_host_remote:yellow
|
|
||||||
SETUVAR fish_color_match:\x2d\x2dbackground\x3dbrblue
|
|
||||||
SETUVAR fish_color_normal:normal
|
|
||||||
SETUVAR fish_color_operator:00a6b2
|
|
||||||
SETUVAR fish_color_param:00afff
|
|
||||||
SETUVAR fish_color_quote:999900
|
|
||||||
SETUVAR fish_color_redirection:00afff
|
|
||||||
SETUVAR fish_color_search_match:bryellow\x1e\x2d\x2dbackground\x3dbrblack
|
|
||||||
SETUVAR fish_color_selection:white\x1e\x2d\x2dbold\x1e\x2d\x2dbackground\x3dbrblack
|
|
||||||
SETUVAR fish_color_status:red
|
|
||||||
SETUVAR fish_color_user:brgreen
|
|
||||||
SETUVAR fish_color_valid_path:\x2d\x2dunderline
|
|
||||||
SETUVAR fish_greeting:Bienvenue\x20dans\x20fish\x2c\x20le\x20shell\x20amical\x20et\x20interactif\x0aType\x20\x60help\x60\x20for\x20instructions\x20on\x20how\x20to\x20use\x20fish
|
|
||||||
SETUVAR fish_key_bindings:fish_vi_key_bindings
|
|
||||||
SETUVAR fish_pager_color_completion:\x1d
|
|
||||||
SETUVAR fish_pager_color_description:B3A06D\x1eyellow
|
|
||||||
SETUVAR fish_pager_color_prefix:white\x1e\x2d\x2dbold\x1e\x2d\x2dunderline
|
|
||||||
SETUVAR fish_pager_color_progress:brwhite\x1e\x2d\x2dbackground\x3dcyan
|
|
||||||
SETUVAR fish_pager_color_selected_background:\x2dr
|
|
||||||
@@ -1,3 +0,0 @@
|
|||||||
function docker-restart-all-containers
|
|
||||||
bash "$HOME/.bin/docker-restart-all-containers"
|
|
||||||
end
|
|
||||||
@@ -1,3 +0,0 @@
|
|||||||
function docker-upgrade-all-containers
|
|
||||||
bash "$HOME/.bin/docker-upgrade-all-containers"
|
|
||||||
end
|
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
# Defined in - @ line 1
|
# Defined in - @ line 1
|
||||||
function dotfiles
|
function dot
|
||||||
/usr/bin/git --git-dir=$HOME/.config/dotfiles/ --work-tree=$HOME $argv
|
/usr/bin/git --git-dir=$HOME/.config/dotfiles/ --work-tree=$HOME $argv
|
||||||
end
|
end
|
||||||
@@ -1,4 +0,0 @@
|
|||||||
|
|
||||||
function fish_user_key_bindings
|
|
||||||
fish_vi_key_bindings
|
|
||||||
end
|
|
||||||
@@ -1,206 +0,0 @@
|
|||||||
set -g fisher_version 4.1.0
|
|
||||||
|
|
||||||
function fisher -a cmd -d "fish plugin manager"
|
|
||||||
set -q fisher_path || set -l fisher_path $__fish_config_dir
|
|
||||||
set -l fish_plugins $__fish_config_dir/fish_plugins
|
|
||||||
|
|
||||||
switch "$cmd"
|
|
||||||
case -v --version
|
|
||||||
echo "fisher, version $fisher_version"
|
|
||||||
case "" -h --help
|
|
||||||
echo "usage: fisher install <plugins...> install plugins"
|
|
||||||
echo " fisher remove <plugins...> remove installed plugins"
|
|
||||||
echo " fisher update <plugins...> update installed plugins"
|
|
||||||
echo " fisher update update all installed plugins"
|
|
||||||
echo " fisher list [<regex>] list installed plugins matching regex"
|
|
||||||
echo "options:"
|
|
||||||
echo " -v or --version print fisher version"
|
|
||||||
echo " -h or --help print this help message"
|
|
||||||
case ls list
|
|
||||||
string match --entire --regex -- "$argv[2]" $_fisher_plugins
|
|
||||||
case install update remove
|
|
||||||
isatty || read -laz stdin && set -a argv $stdin
|
|
||||||
set -l install_plugins
|
|
||||||
set -l update_plugins
|
|
||||||
set -l remove_plugins
|
|
||||||
set -l arg_plugins $argv[2..-1]
|
|
||||||
set -l old_plugins $_fisher_plugins
|
|
||||||
set -l new_plugins
|
|
||||||
|
|
||||||
if not set -q argv[2]
|
|
||||||
if test "$cmd" != update || test ! -e $fish_plugins
|
|
||||||
echo "fisher: not enough arguments for command: \"$cmd\"" >&2 && return 1
|
|
||||||
end
|
|
||||||
set arg_plugins (string trim <$fish_plugins)
|
|
||||||
end
|
|
||||||
|
|
||||||
for plugin in $arg_plugins
|
|
||||||
test -e "$plugin" && set plugin (realpath $plugin)
|
|
||||||
contains -- "$plugin" $new_plugins || set -a new_plugins $plugin
|
|
||||||
end
|
|
||||||
|
|
||||||
if set -q argv[2]
|
|
||||||
for plugin in $new_plugins
|
|
||||||
if contains -- "$plugin" $old_plugins
|
|
||||||
if test "$cmd" = remove
|
|
||||||
set -a remove_plugins $plugin
|
|
||||||
else
|
|
||||||
set -a update_plugins $plugin
|
|
||||||
end
|
|
||||||
else if test "$cmd" != install
|
|
||||||
echo "fisher: plugin not installed: \"$plugin\"" >&2 && return 1
|
|
||||||
else
|
|
||||||
set -a install_plugins $plugin
|
|
||||||
end
|
|
||||||
end
|
|
||||||
else
|
|
||||||
for plugin in $new_plugins
|
|
||||||
if contains -- "$plugin" $old_plugins
|
|
||||||
set -a update_plugins $plugin
|
|
||||||
else
|
|
||||||
set -a install_plugins $plugin
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
for plugin in $old_plugins
|
|
||||||
if not contains -- "$plugin" $new_plugins
|
|
||||||
set -a remove_plugins $plugin
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
set -l pid_list
|
|
||||||
set -l source_plugins
|
|
||||||
set -l fetch_plugins $update_plugins $install_plugins
|
|
||||||
echo -e "\x1b[1mfisher $cmd version $fisher_version\x1b[22m"
|
|
||||||
|
|
||||||
for plugin in $fetch_plugins
|
|
||||||
set -l source (command mktemp -d)
|
|
||||||
set -a source_plugins $source
|
|
||||||
|
|
||||||
command mkdir -p $source/{completions,conf.d,functions}
|
|
||||||
|
|
||||||
fish -c "
|
|
||||||
if test -e $plugin
|
|
||||||
command cp -Rf $plugin/* $source
|
|
||||||
else
|
|
||||||
set temp (command mktemp -d)
|
|
||||||
set name (string split \@ $plugin) || set name[2] HEAD
|
|
||||||
set url https://codeload.github.com/\$name[1]/tar.gz/\$name[2]
|
|
||||||
set -q fisher_user_api_token && set opts -u $fisher_user_api_token
|
|
||||||
|
|
||||||
echo -e \"fetching \x1b[4m\$url\x1b[24m\"
|
|
||||||
if command curl $opts -Ss -w \"\" \$url 2>&1 | command tar -xzf- -C \$temp 2>/dev/null
|
|
||||||
command cp -Rf \$temp/*/* $source
|
|
||||||
else
|
|
||||||
echo fisher: invalid plugin name or host unavailable: \\\"$plugin\\\" >&2
|
|
||||||
command rm -rf $source
|
|
||||||
end
|
|
||||||
command rm -rf \$temp
|
|
||||||
end
|
|
||||||
|
|
||||||
test ! -e $source && exit
|
|
||||||
command mv -f (string match --entire --regex -- \.fish\\\$ $source/*) $source/functions 2>/dev/null" &
|
|
||||||
|
|
||||||
set -a pid_list (jobs --last --pid)
|
|
||||||
end
|
|
||||||
|
|
||||||
wait $pid_list 2>/dev/null
|
|
||||||
|
|
||||||
for plugin in $fetch_plugins
|
|
||||||
if set -l source $source_plugins[(contains --index -- "$plugin" $fetch_plugins)] && test ! -e $source
|
|
||||||
if set -l index (contains --index -- "$plugin" $install_plugins)
|
|
||||||
set -e install_plugins[$index]
|
|
||||||
else
|
|
||||||
set -e update_plugins[(contains --index -- "$plugin" $update_plugins)]
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
for plugin in $update_plugins $remove_plugins
|
|
||||||
if set -l index (contains --index -- "$plugin" $_fisher_plugins)
|
|
||||||
set -l plugin_files_var _fisher_(string escape --style=var $plugin)_files
|
|
||||||
|
|
||||||
if contains -- "$plugin" $remove_plugins && set --erase _fisher_plugins[$index]
|
|
||||||
for file in (string match --entire --regex -- "conf\.d/" $$plugin_files_var)
|
|
||||||
emit (string replace --all --regex -- '^.*/|\.fish$' "" $file)_uninstall
|
|
||||||
end
|
|
||||||
echo -es "removing \x1b[1m$plugin\x1b[22m" \n" "$$plugin_files_var
|
|
||||||
end
|
|
||||||
|
|
||||||
command rm -rf $$plugin_files_var
|
|
||||||
functions --erase (string match --entire --regex -- "functions/" $$plugin_files_var \
|
|
||||||
| string replace --all --regex -- '^.*/|\.fish$' "")
|
|
||||||
set --erase $plugin_files_var
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
if set -q update_plugins[1] || set -q install_plugins[1]
|
|
||||||
command mkdir -p $fisher_path/{functions,conf.d,completions}
|
|
||||||
end
|
|
||||||
|
|
||||||
for plugin in $update_plugins $install_plugins
|
|
||||||
set -l source $source_plugins[(contains --index -- "$plugin" $fetch_plugins)]
|
|
||||||
set -l files $source/{functions,conf.d,completions}/*
|
|
||||||
set -l plugin_files_var _fisher_(string escape --style=var $plugin)_files
|
|
||||||
set -q files[1] && set -U $plugin_files_var (string replace $source $fisher_path $files)
|
|
||||||
|
|
||||||
for file in (string replace -- $source "" $files)
|
|
||||||
command cp -Rf $source/$file $fisher_path/$file
|
|
||||||
end
|
|
||||||
|
|
||||||
contains -- $plugin $_fisher_plugins || set -Ua _fisher_plugins $plugin
|
|
||||||
contains -- $plugin $install_plugins && set -l event "install" || set -l event "update"
|
|
||||||
echo -es "installing \x1b[1m$plugin\x1b[22m" \n" "$$plugin_files_var
|
|
||||||
|
|
||||||
for file in (string match --entire --regex -- "[functions/|conf\.d/].*fish\$" $$plugin_files_var)
|
|
||||||
source $file
|
|
||||||
if string match --quiet --regex -- "conf\.d/" $file
|
|
||||||
emit (string replace --all --regex -- '^.*/|\.fish$' "" $file)_$event
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
command rm -rf $source_plugins
|
|
||||||
functions -q fish_prompt || source $__fish_data_dir/functions/fish_prompt.fish
|
|
||||||
|
|
||||||
set -q _fisher_plugins[1] || set -e _fisher_plugins
|
|
||||||
set -q _fisher_plugins && printf "%s\n" $_fisher_plugins >$fish_plugins || command rm -f $fish_plugins
|
|
||||||
|
|
||||||
set -l total (count $install_plugins) (count $update_plugins) (count $remove_plugins)
|
|
||||||
test "$total" != "0 0 0" && echo (string join ", " (
|
|
||||||
test $total[1] = 0 || echo "installed $total[1]") (
|
|
||||||
test $total[2] = 0 || echo "updated $total[2]") (
|
|
||||||
test $total[3] = 0 || echo "removed $total[3]")
|
|
||||||
) "plugin/s"
|
|
||||||
case \*
|
|
||||||
echo "fisher: unknown flag or command: \"$cmd\" (see `fisher -h`)" >&2 && return 1
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
## Migrations ##
|
|
||||||
if functions -q _fisher_self_update || test -e $__fish_config_dir/fishfile # 3.x
|
|
||||||
function _fisher_migrate
|
|
||||||
function _fisher_complete
|
|
||||||
fisher install jorgebucaran/fisher >/dev/null 2>/dev/null
|
|
||||||
functions --erase _fisher_complete
|
|
||||||
end
|
|
||||||
set -q XDG_DATA_HOME || set XDG_DATA_HOME ~/.local/share
|
|
||||||
set -q XDG_CACHE_HOME || set XDG_CACHE_HOME ~/.cache
|
|
||||||
set -q XDG_CONFIG_HOME || set XDG_CONFIG_HOME ~/.config
|
|
||||||
set -q fisher_path || set fisher_path $__fish_config_dir
|
|
||||||
test -e $__fish_config_dir/fishfile && command awk '/#|^gitlab|^ *$/ { next } $0' <$__fish_config_dir/fishfile >>$__fish_config_dir/fish_plugins
|
|
||||||
command rm -rf $__fish_config_dir/fishfile $fisher_path/{conf.d,completions}/fisher.fish {$XDG_DATA_HOME,$XDG_CACHE_HOME,$XDG_CONFIG_HOME}/fisher
|
|
||||||
functions --erase _fisher_migrate _fisher_copy_user_key_bindings _fisher_ls _fisher_fmt _fisher_self_update _fisher_self_uninstall _fisher_commit _fisher_parse _fisher_fetch _fisher_add _fisher_rm _fisher_jobs _fisher_now _fisher_help
|
|
||||||
fisher update
|
|
||||||
end
|
|
||||||
echo "upgrading to fisher $fisher_version -- learn more at" (set_color --bold --underline)"https://git.io/fisher-4"(set_color normal)
|
|
||||||
_fisher_migrate >/dev/null 2>/dev/null
|
|
||||||
else if functions -q _fisher_list # 4.0
|
|
||||||
set -q XDG_DATA_HOME || set -l XDG_DATA_HOME ~/.local/share
|
|
||||||
test -e $XDG_DATA_HOME/fisher && command rm -rf $XDG_DATA_HOME/fisher
|
|
||||||
functions --erase _fisher_list _fisher_plugin_parse
|
|
||||||
echo -n "upgrading to fisher $fisher_version new in-memory state.."
|
|
||||||
fisher update >/dev/null 2>/dev/null
|
|
||||||
echo -ne "done\r\n"
|
|
||||||
end
|
|
||||||
@@ -0,0 +1,3 @@
|
|||||||
|
function ip --description 'alias ip=ip -c'
|
||||||
|
command ip -c $argv
|
||||||
|
end
|
||||||
@@ -0,0 +1,291 @@
|
|||||||
|
# -*- conf -*-
|
||||||
|
|
||||||
|
# shell=$SHELL (if set, otherwise user's default shell from /etc/passwd)
|
||||||
|
# term=foot (or xterm-256color if built with -Dterminfo=disabled)
|
||||||
|
# login-shell=no
|
||||||
|
|
||||||
|
# app-id=foot # globally set wayland app-id. Default values are "foot" and "footclient" for desktop and server mode
|
||||||
|
# title=foot
|
||||||
|
# locked-title=no
|
||||||
|
|
||||||
|
font=Fira Code:size=11
|
||||||
|
# font-bold=<bold variant of regular font>
|
||||||
|
# font-italic=<italic variant of regular font>
|
||||||
|
# font-bold-italic=<bold+italic variant of regular font>
|
||||||
|
# font-size-adjustment=0.5
|
||||||
|
# line-height=<font metrics>
|
||||||
|
# letter-spacing=0
|
||||||
|
# horizontal-letter-offset=0
|
||||||
|
# vertical-letter-offset=0
|
||||||
|
# underline-offset=<font metrics>
|
||||||
|
# underline-thickness=<font underline thickness>
|
||||||
|
# strikeout-thickness=<font strikeout thickness>
|
||||||
|
# box-drawings-uses-font-glyphs=no
|
||||||
|
# dpi-aware=no
|
||||||
|
# gamma-correct-blending=no
|
||||||
|
|
||||||
|
# initial-color-theme=1
|
||||||
|
# initial-window-size-pixels=700x500 # Or,
|
||||||
|
# initial-window-size-chars=<COLSxROWS>
|
||||||
|
# initial-window-mode=windowed
|
||||||
|
pad=5x5 center-when-maximized-and-fullscreen
|
||||||
|
# resize-by-cells=yes
|
||||||
|
# resize-keep-grid=yes
|
||||||
|
# resize-delay-ms=100
|
||||||
|
|
||||||
|
# bold-text-in-bright=no
|
||||||
|
# word-delimiters=,│`|:"'()[]{}<>
|
||||||
|
# selection-target=primary
|
||||||
|
# workers=<number of logical CPUs>
|
||||||
|
# utmp-helper=/usr/lib/utempter/utempter # When utmp backend is ‘libutempter’ (Linux)
|
||||||
|
# utmp-helper=/usr/libexec/ulog-helper # When utmp backend is ‘ulog’ (FreeBSD)
|
||||||
|
|
||||||
|
# uppercase-regex-insert=yes
|
||||||
|
|
||||||
|
[main]
|
||||||
|
#include=/usr/share/foot/themes/paper-color-dark
|
||||||
|
|
||||||
|
[environment]
|
||||||
|
# name=value
|
||||||
|
|
||||||
|
[security]
|
||||||
|
# osc52=enabled # disabled|copy-enabled|paste-enabled|enabled
|
||||||
|
|
||||||
|
[bell]
|
||||||
|
# system=yes
|
||||||
|
# urgent=no
|
||||||
|
# notify=no
|
||||||
|
# visual=no
|
||||||
|
# command=
|
||||||
|
# command-focused=no
|
||||||
|
|
||||||
|
[desktop-notifications]
|
||||||
|
# command=notify-send --wait --app-name ${app-id} --icon ${app-id} --category ${category} --urgency ${urgency} --expire-time ${expire-time} --hint STRING:image-path:${icon} --hint BOOLEAN:suppress-sound:${muted} --hint STRING:sound-name:${sound-name} --replace-id ${replace-id} ${action-argument} --print-id -- ${title} ${body}
|
||||||
|
# command-action-argument=--action ${action-name}=${action-label}
|
||||||
|
# close=""
|
||||||
|
# inhibit-when-focused=yes
|
||||||
|
|
||||||
|
|
||||||
|
[scrollback]
|
||||||
|
# lines=1000
|
||||||
|
# multiplier=3.0
|
||||||
|
# indicator-position=relative
|
||||||
|
# indicator-format=""
|
||||||
|
|
||||||
|
[url]
|
||||||
|
launch=xdg-open ${url}
|
||||||
|
# label-letters=sadfjklewcmpgh
|
||||||
|
# osc8-underline=url-mode
|
||||||
|
# regex=(((https?://|mailto:|ftp://|file:|ssh:|ssh://|git://|tel:|magnet:|ipfs://|ipns://|gemini://|gopher://|news:)|www\.)([0-9a-zA-Z:/?#@!$&*+,;=.~_%^\-]+|\([]\["0-9a-zA-Z:/?#@!$&'*+,;=.~_%^\-]*\)|\[[\(\)"0-9a-zA-Z:/?#@!$&'*+,;=.~_%^\-]*\]|"[]\[\(\)0-9a-zA-Z:/?#@!$&'*+,;=.~_%^\-]*"|'[]\[\(\)0-9a-zA-Z:/?#@!$&*+,;=.~_%^\-]*')+([0-9a-zA-Z/#@$&*+=~_%^\-]|\([]\["0-9a-zA-Z:/?#@!$&'*+,;=.~_%^\-]*\)|\[[\(\)"0-9a-zA-Z:/?#@!$&'*+,;=.~_%^\-]*\]|"[]\[\(\)0-9a-zA-Z:/?#@!$&'*+,;=.~_%^\-]*"|'[]\[\(\)0-9a-zA-Z:/?#@!$&*+,;=.~_%^\-]*'))
|
||||||
|
|
||||||
|
# You can define your own regex's, by adding a section called
|
||||||
|
# 'regex:<ID>' with a 'regex' and 'launch' key. These can then be tied
|
||||||
|
# to a key-binding. See foot.ini(5) for details
|
||||||
|
|
||||||
|
# [regex:your-fancy-name]
|
||||||
|
# regex=<a POSIX-Extended Regular Expression>
|
||||||
|
# launch=<path to script or application> ${match}
|
||||||
|
#
|
||||||
|
# [key-bindings]
|
||||||
|
# regex-launch=[your-fancy-name] Control+Shift+q
|
||||||
|
# regex-copy=[your-fancy-name] Control+Alt+Shift+q
|
||||||
|
|
||||||
|
[cursor]
|
||||||
|
# style=block
|
||||||
|
# blink=no
|
||||||
|
# blink-rate=500
|
||||||
|
# beam-thickness=1.5
|
||||||
|
# underline-thickness=<font underline thickness>
|
||||||
|
|
||||||
|
[mouse]
|
||||||
|
# hide-when-typing=no
|
||||||
|
# alternate-scroll-mode=yes
|
||||||
|
|
||||||
|
[touch]
|
||||||
|
# long-press-delay=400
|
||||||
|
|
||||||
|
[colors-dark]
|
||||||
|
alpha=0.9
|
||||||
|
# alpha-mode=default # Can be `default`, `matching` or `all`
|
||||||
|
# background=242424
|
||||||
|
# foreground=ffffff
|
||||||
|
# flash=7f7f00
|
||||||
|
# flash-alpha=0.5
|
||||||
|
|
||||||
|
# cursor=<inverse foreground/background>
|
||||||
|
|
||||||
|
## Normal/regular colors (color palette 0-7)
|
||||||
|
# regular0=242424 # black
|
||||||
|
# regular1=f62b5a # red
|
||||||
|
# regular2=47b413 # green
|
||||||
|
# regular3=e3c401 # yellow
|
||||||
|
# regular4=24acd4 # blue
|
||||||
|
# regular5=f2affd # magenta
|
||||||
|
# regular6=13c299 # cyan
|
||||||
|
# regular7=e6e6e6 # white
|
||||||
|
|
||||||
|
## Bright colors (color palette 8-15)
|
||||||
|
# bright0=616161 # bright black
|
||||||
|
# bright1=ff4d51 # bright red
|
||||||
|
# bright2=35d450 # bright green
|
||||||
|
# bright3=e9e836 # bright yellow
|
||||||
|
# bright4=5dc5f8 # bright blue
|
||||||
|
# bright5=feabf2 # bright magenta
|
||||||
|
# bright6=24dfc4 # bright cyan
|
||||||
|
# bright7=ffffff # bright white
|
||||||
|
|
||||||
|
## dimmed colors (see foot.ini(5) man page)
|
||||||
|
# dim-blend-towards=black
|
||||||
|
# dim0=<not set>
|
||||||
|
# ...
|
||||||
|
# dim7=<not-set>
|
||||||
|
|
||||||
|
## The remaining 256-color palette
|
||||||
|
# 16 = <256-color palette #16>
|
||||||
|
# ...
|
||||||
|
# 255 = <256-color palette #255>
|
||||||
|
|
||||||
|
## Sixel colors
|
||||||
|
# sixel0 = 000000
|
||||||
|
# sixel1 = 3333cc
|
||||||
|
# sixel2 = cc2121
|
||||||
|
# sixel3 = 33cc33
|
||||||
|
# sixel4 = cc33cc
|
||||||
|
# sixel5 = 33cccc
|
||||||
|
# sixel6 = cccc33
|
||||||
|
# sixel7 = 878787
|
||||||
|
# sixel8 = 424242
|
||||||
|
# sixel9 = 545499
|
||||||
|
# sixel10 = 994242
|
||||||
|
# sixel11 = 549954
|
||||||
|
# sixel12 = 995499
|
||||||
|
# sixel13 = 549999
|
||||||
|
# sixel14 = 999954
|
||||||
|
# sixel15 = cccccc
|
||||||
|
|
||||||
|
## Misc colors
|
||||||
|
# selection-foreground=<inverse foreground/background>
|
||||||
|
# selection-background=<inverse foreground/background>
|
||||||
|
# jump-labels=<regular0> <regular3> # black-on-yellow
|
||||||
|
# scrollback-indicator=<regular0> <bright4> # black-on-bright-blue
|
||||||
|
# search-box-no-match=<regular0> <regular1> # black-on-red
|
||||||
|
# search-box-match=<regular0> <regular3> # black-on-yellow
|
||||||
|
# urls=<regular3>
|
||||||
|
|
||||||
|
#[colors2]
|
||||||
|
# Alternative color theme, see man page foot.ini(5)
|
||||||
|
# Same builtin defaults as [color], except for:
|
||||||
|
# dim-blend-towards=white
|
||||||
|
|
||||||
|
[csd]
|
||||||
|
# preferred=server
|
||||||
|
# size=26
|
||||||
|
# font=<primary font>
|
||||||
|
# color=<foreground color>
|
||||||
|
# hide-when-maximized=no
|
||||||
|
# double-click-to-maximize=yes
|
||||||
|
# border-width=0
|
||||||
|
# border-color=<csd.color>
|
||||||
|
# button-width=26
|
||||||
|
# button-color=<background color>
|
||||||
|
# button-minimize-color=<regular4>
|
||||||
|
# button-maximize-color=<regular2>
|
||||||
|
# button-close-color=<regular1>
|
||||||
|
|
||||||
|
[key-bindings]
|
||||||
|
# scrollback-up-page=Shift+Page_Up Shift+KP_Page_Up
|
||||||
|
# scrollback-up-half-page=none
|
||||||
|
# scrollback-up-line=none
|
||||||
|
# scrollback-down-page=Shift+Page_Down Shift+KP_Page_Down
|
||||||
|
# scrollback-down-half-page=none
|
||||||
|
# scrollback-down-line=none
|
||||||
|
# scrollback-home=none
|
||||||
|
# scrollback-end=none
|
||||||
|
# clipboard-copy=Control+Shift+c XF86Copy
|
||||||
|
# clipboard-paste=Control+Shift+v XF86Paste
|
||||||
|
# primary-paste=Shift+Insert
|
||||||
|
# search-start=Control+Shift+r
|
||||||
|
# font-increase=Control+plus Control+equal Control+KP_Add
|
||||||
|
# font-decrease=Control+minus Control+KP_Subtract
|
||||||
|
# font-reset=Control+0 Control+KP_0
|
||||||
|
# spawn-terminal=Control+Shift+n
|
||||||
|
# minimize=none
|
||||||
|
# maximize=none
|
||||||
|
# fullscreen=none
|
||||||
|
# pipe-visible=[sh -c "xurls | fuzzel | xargs -r firefox"] none
|
||||||
|
# pipe-scrollback=[sh -c "xurls | fuzzel | xargs -r firefox"] none
|
||||||
|
# pipe-selected=[xargs -r firefox] none
|
||||||
|
# pipe-command-output=[wl-copy] none # Copy last command's output to the clipboard
|
||||||
|
# show-urls-launch=Control+Shift+o
|
||||||
|
# show-urls-copy=none
|
||||||
|
# show-urls-persistent=none
|
||||||
|
# prompt-prev=Control+Shift+z
|
||||||
|
# prompt-next=Control+Shift+x
|
||||||
|
# unicode-input=Control+Shift+u
|
||||||
|
# color-theme-switch-1=none
|
||||||
|
# color-theme-switch-2=none
|
||||||
|
# color-theme-toggle=none
|
||||||
|
# noop=none
|
||||||
|
# quit=none
|
||||||
|
|
||||||
|
[search-bindings]
|
||||||
|
# cancel=Control+g Control+c Escape
|
||||||
|
# commit=Return KP_Enter
|
||||||
|
# find-prev=Control+r
|
||||||
|
# find-next=Control+s
|
||||||
|
# cursor-left=Left Control+b
|
||||||
|
# cursor-left-word=Control+Left Mod1+b
|
||||||
|
# cursor-right=Right Control+f
|
||||||
|
# cursor-right-word=Control+Right Mod1+f
|
||||||
|
# cursor-home=Home Control+a
|
||||||
|
# cursor-end=End Control+e
|
||||||
|
# delete-prev=BackSpace
|
||||||
|
# delete-prev-word=Mod1+BackSpace Control+BackSpace
|
||||||
|
# delete-next=Delete
|
||||||
|
# delete-next-word=Mod1+d Control+Delete
|
||||||
|
# delete-to-start=Control+u
|
||||||
|
# delete-to-end=Control+k
|
||||||
|
# extend-char=Shift+Right
|
||||||
|
# extend-to-word-boundary=Control+w Control+Shift+Right
|
||||||
|
# extend-to-next-whitespace=Control+Shift+w
|
||||||
|
# extend-line-down=Shift+Down
|
||||||
|
# extend-backward-char=Shift+Left
|
||||||
|
# extend-backward-to-word-boundary=Control+Shift+Left
|
||||||
|
# extend-backward-to-next-whitespace=none
|
||||||
|
# extend-line-up=Shift+Up
|
||||||
|
# clipboard-paste=Control+v Control+Shift+v Control+y XF86Paste
|
||||||
|
# primary-paste=Shift+Insert
|
||||||
|
# unicode-input=none
|
||||||
|
# scrollback-up-page=Shift+Page_Up Shift+KP_Page_Up
|
||||||
|
# scrollback-up-half-page=none
|
||||||
|
# scrollback-up-line=none
|
||||||
|
# scrollback-down-page=Shift+Page_Down Shift+KP_Page_Down
|
||||||
|
# scrollback-down-half-page=none
|
||||||
|
# scrollback-down-line=none
|
||||||
|
# scrollback-home=none
|
||||||
|
# scrollback-end=none
|
||||||
|
|
||||||
|
[url-bindings]
|
||||||
|
# cancel=Control+g Control+c Control+d Escape
|
||||||
|
# toggle-url-visible=t
|
||||||
|
|
||||||
|
[text-bindings]
|
||||||
|
# \x03=Mod4+c # Map Super+c -> Ctrl+c
|
||||||
|
|
||||||
|
[mouse-bindings]
|
||||||
|
# scrollback-up-mouse=BTN_WHEEL_BACK
|
||||||
|
# scrollback-down-mouse=BTN_WHEEL_FORWARD
|
||||||
|
# font-increase=Control+BTN_WHEEL_BACK
|
||||||
|
# font-decrease=Control+BTN_WHEEL_FORWARD
|
||||||
|
# selection-override-modifiers=Shift
|
||||||
|
# primary-paste=BTN_MIDDLE
|
||||||
|
# select-begin=BTN_LEFT
|
||||||
|
# select-begin-block=Control+BTN_LEFT
|
||||||
|
# select-extend=BTN_RIGHT
|
||||||
|
# select-extend-character-wise=Control+BTN_RIGHT
|
||||||
|
# select-word=BTN_LEFT-2
|
||||||
|
# select-word-whitespace=Control+BTN_LEFT-2
|
||||||
|
# select-quote = BTN_LEFT-3
|
||||||
|
# select-row=BTN_LEFT-4
|
||||||
|
|
||||||
|
# vim: ft=dosini
|
||||||
@@ -0,0 +1,452 @@
|
|||||||
|
|
||||||
|
# #######################################################################################
|
||||||
|
# AUTOGENERATED HYPRLAND CONFIG.
|
||||||
|
# EDIT THIS CONFIG ACCORDING TO THE WIKI INSTRUCTIONS.
|
||||||
|
# #######################################################################################
|
||||||
|
|
||||||
|
|
||||||
|
# This is an example Hyprland config file.
|
||||||
|
# Refer to the wiki for more information.
|
||||||
|
# https://wiki.hypr.land/Configuring/
|
||||||
|
|
||||||
|
# Please note not all available settings / options are set here.
|
||||||
|
# For a full list, see the wiki
|
||||||
|
|
||||||
|
# You can split this configuration into multiple files
|
||||||
|
# Create your files separately and then link them to this file like this:
|
||||||
|
# source = ~/.config/hypr/myColors.conf
|
||||||
|
|
||||||
|
|
||||||
|
################
|
||||||
|
### MONITORS ###
|
||||||
|
################
|
||||||
|
|
||||||
|
# See https://wiki.hypr.land/Configuring/Monitors/
|
||||||
|
monitor=,preferred,auto,auto
|
||||||
|
|
||||||
|
###################
|
||||||
|
### MY PROGRAMS ###
|
||||||
|
###################
|
||||||
|
|
||||||
|
# See https://wiki.hypr.land/Configuring/Keywords/
|
||||||
|
|
||||||
|
# Set programs that you use
|
||||||
|
$terminal = /usr/bin/footclient
|
||||||
|
$fileManager = /usr/bin/nemo
|
||||||
|
$menu = pgrep -x wofi >/dev/null 2>&1 || wofi --gtk-dark --show drun
|
||||||
|
|
||||||
|
#############################
|
||||||
|
### ENVIRONMENT VARIABLES ###
|
||||||
|
#############################
|
||||||
|
|
||||||
|
# See https://wiki.hypr.land/Configuring/Environment-variables/
|
||||||
|
|
||||||
|
env = XCURSOR_SIZE,24
|
||||||
|
env = HYPRCURSOR_SIZE,24
|
||||||
|
env = LIBVA_DRIVER_NAME,nvidia
|
||||||
|
env = __GLX_VENDOR_LIBRARY_NAME,nvidia
|
||||||
|
|
||||||
|
env = XDG_SESSION_TYPE,wayland
|
||||||
|
env = XDG_CURRENT_DESKTOP,Hyprland
|
||||||
|
env = XDG_SESSION_DESKTOP,Hyprland
|
||||||
|
|
||||||
|
# lspci -d ::03xx
|
||||||
|
# ls -l /dev/dri/by-path
|
||||||
|
|
||||||
|
env = AQ_DRM_DEVICES,/dev/dri/card1:/dev/dri/card0
|
||||||
|
|
||||||
|
|
||||||
|
#################
|
||||||
|
### AUTOSTART ###
|
||||||
|
#################
|
||||||
|
|
||||||
|
# Autostart necessary processes (like notifications daemons, status bars, etc.)
|
||||||
|
# Or execute your favorite apps at launch like this:
|
||||||
|
|
||||||
|
exec-once = hyprpaper
|
||||||
|
exec-once = waybar --config ~/.config/waybar/config.hyprland
|
||||||
|
exec-once = foot --server
|
||||||
|
exec-once = blueman-applet
|
||||||
|
exec-once = nm-applet --indicator
|
||||||
|
exec-once = nextcloud --background
|
||||||
|
exec-once = keepassxc
|
||||||
|
exec-once = hyprpm reload -n
|
||||||
|
exec-once = dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP
|
||||||
|
|
||||||
|
###################
|
||||||
|
### PERMISSIONS ###
|
||||||
|
###################
|
||||||
|
|
||||||
|
# See https://wiki.hypr.land/Configuring/Permissions/
|
||||||
|
# Please note permission changes here require a Hyprland restart and are not applied on-the-fly
|
||||||
|
# for security reasons
|
||||||
|
|
||||||
|
# ecosystem {
|
||||||
|
# enforce_permissions = 1
|
||||||
|
# }
|
||||||
|
|
||||||
|
# permission = /usr/(bin|local/bin)/grim, screencopy, allow
|
||||||
|
# permission = /usr/(lib|libexec|lib64)/xdg-desktop-portal-hyprland, screencopy, allow
|
||||||
|
# permission = /usr/(bin|local/bin)/hyprpm, plugin, allow
|
||||||
|
|
||||||
|
|
||||||
|
#####################
|
||||||
|
### LOOK AND FEEL ###
|
||||||
|
#####################
|
||||||
|
|
||||||
|
# Refer to https://wiki.hypr.land/Configuring/Variables/
|
||||||
|
|
||||||
|
# https://wiki.hypr.land/Configuring/Variables/#general
|
||||||
|
general {
|
||||||
|
gaps_in = 5
|
||||||
|
gaps_out = 10
|
||||||
|
|
||||||
|
border_size = 2
|
||||||
|
|
||||||
|
# https://wiki.hypr.land/Configuring/Variables/#variable-types for info about colors
|
||||||
|
col.active_border = rgba(33ccffee) rgba(00ff99ee) 45deg
|
||||||
|
col.inactive_border = rgba(595959aa)
|
||||||
|
|
||||||
|
# Set to true enable resizing windows by clicking and dragging on borders and gaps
|
||||||
|
resize_on_border = false
|
||||||
|
|
||||||
|
# Please see https://wiki.hypr.land/Configuring/Tearing/ before you turn this on
|
||||||
|
allow_tearing = false
|
||||||
|
|
||||||
|
resize_on_border = true
|
||||||
|
|
||||||
|
#layout = scrolling
|
||||||
|
layout = hy3
|
||||||
|
#layout = master
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
master {
|
||||||
|
allow_small_split = true
|
||||||
|
special_scale_factor = .80
|
||||||
|
mfact = .34
|
||||||
|
orientation = center
|
||||||
|
}
|
||||||
|
|
||||||
|
dwindle {
|
||||||
|
split_width_multiplier = .33
|
||||||
|
}
|
||||||
|
|
||||||
|
#scrolling {
|
||||||
|
# column_width = .33
|
||||||
|
# fullscreen_on_one_column = false
|
||||||
|
#}
|
||||||
|
|
||||||
|
# Pro monitors
|
||||||
|
# hyperctrl monitors
|
||||||
|
monitorv2 {
|
||||||
|
output = desc:Najing CEC Panda FPD Technology CO. ltd 0x0056
|
||||||
|
mode = 1920x1080@60.00
|
||||||
|
position = auto
|
||||||
|
scale = 1
|
||||||
|
}
|
||||||
|
|
||||||
|
monitorv2 {
|
||||||
|
output = desc:Iiyama North America PL3481WQ 1242550210951
|
||||||
|
mode = 3440x1440@60
|
||||||
|
position = auto
|
||||||
|
scale = auto
|
||||||
|
}
|
||||||
|
|
||||||
|
# Personnals monitors
|
||||||
|
|
||||||
|
monitorv2 {
|
||||||
|
output = desc:BOE 0x090F
|
||||||
|
mode = 1920x1080@144.00
|
||||||
|
position = auto
|
||||||
|
scale = 1
|
||||||
|
}
|
||||||
|
|
||||||
|
monitorv2 {
|
||||||
|
output = desc:Samsung Electric Company LC34G55T HNTW606264
|
||||||
|
mode = 3440x1440@60
|
||||||
|
position = auto
|
||||||
|
scale = auto
|
||||||
|
}
|
||||||
|
|
||||||
|
# https://wiki.hypr.land/Configuring/Variables/#decoration
|
||||||
|
decoration {
|
||||||
|
rounding = 0
|
||||||
|
rounding_power = 2
|
||||||
|
|
||||||
|
# Change transparency of focused and unfocused windows
|
||||||
|
active_opacity = 1.0
|
||||||
|
inactive_opacity = 1.0
|
||||||
|
|
||||||
|
shadow {
|
||||||
|
enabled = true
|
||||||
|
range = 4
|
||||||
|
render_power = 3
|
||||||
|
color = rgba(1a1a1aee)
|
||||||
|
}
|
||||||
|
|
||||||
|
# https://wiki.hypr.land/Configuring/Variables/#blur
|
||||||
|
blur {
|
||||||
|
enabled = true
|
||||||
|
size = 3
|
||||||
|
passes = 1
|
||||||
|
|
||||||
|
vibrancy = 0.1696
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
# https://wiki.hypr.land/Configuring/Variables/#animations
|
||||||
|
animations {
|
||||||
|
enabled = yes, please :)
|
||||||
|
|
||||||
|
# Default curves, see https://wiki.hypr.land/Configuring/Animations/#curves
|
||||||
|
# NAME, X0, Y0, X1, Y1
|
||||||
|
bezier = easeOutQuint, 0.23, 1, 0.32, 1
|
||||||
|
bezier = easeInOutCubic, 0.65, 0.05, 0.36, 1
|
||||||
|
bezier = linear, 0, 0, 1, 1
|
||||||
|
bezier = almostLinear, 0.5, 0.5, 0.75, 1
|
||||||
|
bezier = quick, 0.15, 0, 0.1, 1
|
||||||
|
|
||||||
|
# Default animations, see https://wiki.hypr.land/Configuring/Animations/
|
||||||
|
# NAME, ONOFF, SPEED, CURVE, [STYLE]
|
||||||
|
animation = global, 1, 10, default
|
||||||
|
animation = border, 1, 5.39, easeOutQuint
|
||||||
|
animation = windows, 1, 4.79, easeOutQuint
|
||||||
|
animation = windowsIn, 1, 4.1, easeOutQuint, popin 87%
|
||||||
|
animation = windowsOut, 1, 1.49, linear, popin 87%
|
||||||
|
animation = fadeIn, 1, 1.73, almostLinear
|
||||||
|
animation = fadeOut, 1, 1.46, almostLinear
|
||||||
|
animation = fade, 1, 3.03, quick
|
||||||
|
animation = layers, 1, 3.81, easeOutQuint
|
||||||
|
animation = layersIn, 1, 4, easeOutQuint, fade
|
||||||
|
animation = layersOut, 1, 1.5, linear, fade
|
||||||
|
animation = fadeLayersIn, 1, 1.79, almostLinear
|
||||||
|
animation = fadeLayersOut, 1, 1.39, almostLinear
|
||||||
|
animation = workspaces, 1, 1.94, almostLinear, fade
|
||||||
|
animation = workspacesIn, 1, 1.21, almostLinear, fade
|
||||||
|
animation = workspacesOut, 1, 1.94, almostLinear, fade
|
||||||
|
animation = zoomFactor, 1, 7, quick
|
||||||
|
}
|
||||||
|
|
||||||
|
# See https://wiki.hypr.land/Configuring/Dwindle-Layout/ for more
|
||||||
|
dwindle {
|
||||||
|
pseudotile = true # Master switch for pseudotiling. Enabling is bound to mainMod + P in the keybinds section below
|
||||||
|
preserve_split = true # You probably want this
|
||||||
|
}
|
||||||
|
|
||||||
|
plugin {
|
||||||
|
hy3 {
|
||||||
|
no_gaps_when_only = 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
# See https://wiki.hypr.land/Configuring/Master-Layout/ for more
|
||||||
|
master {
|
||||||
|
new_status = master
|
||||||
|
}
|
||||||
|
|
||||||
|
# https://wiki.hypr.land/Configuring/Variables/#misc
|
||||||
|
misc {
|
||||||
|
force_default_wallpaper = 0 # Set to 0 or 1 to disable the anime mascot wallpapers
|
||||||
|
disable_hyprland_logo = true # If true disables the random hyprland logo / anime girl background. :(
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
#############
|
||||||
|
### INPUT ###
|
||||||
|
#############
|
||||||
|
|
||||||
|
# https://wiki.hypr.land/Configuring/Variables/#input
|
||||||
|
input {
|
||||||
|
kb_layout = fr
|
||||||
|
kb_variant = oss
|
||||||
|
kb_model =
|
||||||
|
kb_options =
|
||||||
|
kb_rules =
|
||||||
|
|
||||||
|
follow_mouse = 1
|
||||||
|
|
||||||
|
sensitivity = 0 # -1.0 - 1.0, 0 means no modification.
|
||||||
|
|
||||||
|
touchpad {
|
||||||
|
natural_scroll = false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
# See https://wiki.hypr.land/Configuring/Gestures
|
||||||
|
gesture = 3, horizontal, workspace
|
||||||
|
|
||||||
|
# Example per-device config
|
||||||
|
# See https://wiki.hypr.land/Configuring/Keywords/#per-device-input-configs for more
|
||||||
|
device {
|
||||||
|
name = epic-mouse-v1
|
||||||
|
sensitivity = -0.5
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
###################
|
||||||
|
### KEYBINDINGS ###
|
||||||
|
###################
|
||||||
|
|
||||||
|
# See https://wiki.hypr.land/Configuring/Keywords/
|
||||||
|
$mainMod = SUPER # Sets "Windows" key as main modifier
|
||||||
|
|
||||||
|
# Example binds, see https://wiki.hypr.land/Configuring/Binds/ for more
|
||||||
|
bind = $mainMod, return, exec, $terminal
|
||||||
|
bind = $mainMod SHIFT, Q, killactive,
|
||||||
|
bind = $mainMod SHIFT, E, exit,
|
||||||
|
bind = $mainMod, E, exec, $fileManager
|
||||||
|
#bind = $mainMod, space, togglefloating,
|
||||||
|
bind = $mainMod, D, exec, $menu
|
||||||
|
bind = $mainMod, P, pseudo, # dwindle
|
||||||
|
bind = $mainMod, J, togglesplit, # dwindle
|
||||||
|
bind = $mainMod, F, fullscreenstate, 3 # toggle fullescreen
|
||||||
|
|
||||||
|
# Move focus with mainMod + arrow keys
|
||||||
|
#bind = $mainMod, left, movefocus, l
|
||||||
|
#bind = $mainMod, right, movefocus, r
|
||||||
|
#bind = $mainMod, up, movefocus, u
|
||||||
|
#bind = $mainMod, down, movefocus, d
|
||||||
|
bind = , PRINT, exec, hyprshot -m window
|
||||||
|
bind = SHIFT, PRINT, exec, hyprshot -m region
|
||||||
|
|
||||||
|
# Switch workspaces with mainMod + [0-9]
|
||||||
|
bind = $mainMod, code:10, workspace, 1
|
||||||
|
bind = $mainMod, code:11, workspace, 2
|
||||||
|
bind = $mainMod, code:12, workspace, 3
|
||||||
|
bind = $mainMod, code:13, workspace, 4
|
||||||
|
bind = $mainMod, code:14, workspace, 5
|
||||||
|
bind = $mainMod, code:15, workspace, 6
|
||||||
|
bind = $mainMod, code:16, workspace, 7
|
||||||
|
bind = $mainMod, code:17, workspace, 8
|
||||||
|
bind = $mainMod, code:18, workspace, 9
|
||||||
|
bind = $mainMod, code:19, workspace, 10
|
||||||
|
bind = $mainMod, code:20, workspace, 11
|
||||||
|
bind = $mainMod, code:21, workspace, 12
|
||||||
|
|
||||||
|
# Move active window to a workspace with mainMod + SHIFT + [0-9]
|
||||||
|
bind = $mainMod SHIFT, code:10, movetoworkspace, 1
|
||||||
|
bind = $mainMod SHIFT, code:11, movetoworkspace, 2
|
||||||
|
bind = $mainMod SHIFT, code:12, movetoworkspace, 3
|
||||||
|
bind = $mainMod SHIFT, code:13, movetoworkspace, 4
|
||||||
|
bind = $mainMod SHIFT, code:14, movetoworkspace, 5
|
||||||
|
bind = $mainMod SHIFT, code:15, movetoworkspace, 6
|
||||||
|
bind = $mainMod SHIFT, code:16, movetoworkspace, 7
|
||||||
|
bind = $mainMod SHIFT, code:17, movetoworkspace, 8
|
||||||
|
bind = $mainMod SHIFT, code:18, movetoworkspace, 9
|
||||||
|
bind = $mainMod SHIFT, code:19, movetoworkspace, 10
|
||||||
|
bind = $mainMod SHIFT, code:20, movetoworkspace, 11
|
||||||
|
bind = $mainMod SHIFT, code:21, movetoworkspace, 12
|
||||||
|
|
||||||
|
bind = $mainMod, left, hy3:movefocus, l
|
||||||
|
bind = $mainMod, right, hy3:movefocus, r
|
||||||
|
bind = $mainMod, up, hy3:movefocus, u
|
||||||
|
bind = $mainMod, down, hy3:movefocus, d
|
||||||
|
|
||||||
|
bind = $mainMod SHIFT, left, hy3:movewindow, l
|
||||||
|
bind = $mainMod SHIFT, right, hy3:movewindow, r
|
||||||
|
bind = $mainMod SHIFT, up, hy3:movewindow, u
|
||||||
|
bind = $mainMod SHIFT, down, hy3:movewindow, d
|
||||||
|
|
||||||
|
#bind = $mainMod, left, movefocus, l
|
||||||
|
#bind = $mainMod, right, movefocus, r
|
||||||
|
#bind = $mainMod, up, movefocus, u
|
||||||
|
#bind = $mainMod, down, movefocus, d
|
||||||
|
#
|
||||||
|
#bind = $mainMod SHIFT, left, movewindow, l
|
||||||
|
#bind = $mainMod SHIFT, right, movewindow, r
|
||||||
|
#bind = $mainMod SHIFT, up, movewindow, u
|
||||||
|
#bind = $mainMod SHIFT, down, movewindow, d
|
||||||
|
|
||||||
|
bind = $mainMod SHIFT CTRL, right, movecurrentworkspacetomonitor, r
|
||||||
|
bind = $mainMod SHIFT CTRL, left, movecurrentworkspacetomonitor, l
|
||||||
|
bind = $mainMod SHIFT CTRL, up, movecurrentworkspacetomonitor, u
|
||||||
|
bind = $mainMod SHIFT CTRL, down, movecurrentworkspacetomonitor, r
|
||||||
|
|
||||||
|
bind = $mainMod, L, exec, hyprlock
|
||||||
|
|
||||||
|
# Example special workspace (scratchpad)
|
||||||
|
bind = $mainMod, S, togglespecialworkspace, magic
|
||||||
|
bind = $mainMod SHIFT, S, movetoworkspace, special:magic
|
||||||
|
|
||||||
|
bind = $mainMod, V, hy3:makegroup, v
|
||||||
|
bind = $mainMod, H, hy3:makegroup, h
|
||||||
|
|
||||||
|
# Scroll through existing workspaces with mainMod + scroll
|
||||||
|
bind = $mainMod, mouse_down, workspace, e+1
|
||||||
|
bind = $mainMod, mouse_up, workspace, e-1
|
||||||
|
|
||||||
|
# Move/resize windows with mainMod + LMB/RMB and dragging
|
||||||
|
rindm = $mainMod, mouse:272, movewindow
|
||||||
|
bindm = $mainMod, mouse:273, resizewindow
|
||||||
|
|
||||||
|
# Laptop multimedia keys for volume and LCD brightness
|
||||||
|
bindel = ,XF86AudioRaiseVolume, exec, wpctl set-volume -l 1 @DEFAULT_AUDIO_SINK@ 5%+
|
||||||
|
bindel = ,XF86AudioLowerVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-
|
||||||
|
bindel = ,XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle
|
||||||
|
bindel = ,XF86AudioMicMute, exec, wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle
|
||||||
|
bindel = ,XF86MonBrightnessUp, exec, brightnessctl -e4 -n2 set 5%+
|
||||||
|
bindel = ,XF86MonBrightnessDown, exec, brightnessctl -e4 -n2 set 5%-
|
||||||
|
|
||||||
|
# Requires playerctl
|
||||||
|
bindl = , XF86AudioNext, exec, playerctl next
|
||||||
|
bindl = , XF86AudioPause, exec, playerctl play-pause
|
||||||
|
bindl = , XF86AudioPlay, exec, playerctl play-pause
|
||||||
|
bindl = , XF86AudioPrev, exec, playerctl previous
|
||||||
|
|
||||||
|
bind = $mainMod, R,submap,resize
|
||||||
|
submap=resize
|
||||||
|
binde = , right, resizeactive, 10 0
|
||||||
|
binde = , left, resizeactive, -10 0
|
||||||
|
binde = , up, resizeactive, 0 -10
|
||||||
|
binde = , down, resizeactive, 0 10
|
||||||
|
bind = , Escape,submap,reset
|
||||||
|
submap=reset
|
||||||
|
|
||||||
|
|
||||||
|
# Moving floating windows with the Super key + Mouse
|
||||||
|
bindm = $mainMod, mouse:272, movewindow
|
||||||
|
bindm = $mainMod, mouse:273, resizewindow
|
||||||
|
|
||||||
|
##############################
|
||||||
|
### WINDOWS AND WORKSPACES ###
|
||||||
|
##############################
|
||||||
|
|
||||||
|
# See https://wiki.hypr.land/Configuring/Window-Rules/ for more
|
||||||
|
# See https://wiki.hypr.land/Configuring/Workspace-Rules/ for workspace rules
|
||||||
|
|
||||||
|
# Example windowrules that are useful
|
||||||
|
|
||||||
|
windowrule {
|
||||||
|
# Ignore maximize requests from all apps. You'll probably like this.
|
||||||
|
name = suppress-maximize-events
|
||||||
|
match:class = .*
|
||||||
|
|
||||||
|
suppress_event = maximize
|
||||||
|
}
|
||||||
|
|
||||||
|
windowrule {
|
||||||
|
# Fix some dragging issues with XWayland
|
||||||
|
name = fix-xwayland-drags
|
||||||
|
match:class = ^$
|
||||||
|
match:title = ^$
|
||||||
|
match:xwayland = true
|
||||||
|
match:float = true
|
||||||
|
match:fullscreen = false
|
||||||
|
match:pin = false
|
||||||
|
|
||||||
|
no_focus = true
|
||||||
|
}
|
||||||
|
|
||||||
|
# Hyprland-run windowrule
|
||||||
|
windowrule {
|
||||||
|
name = move-hyprland-run
|
||||||
|
|
||||||
|
match:class = hyprland-run
|
||||||
|
|
||||||
|
move = 20 monitor_h-120
|
||||||
|
float = yes
|
||||||
|
}
|
||||||
|
|
||||||
|
workspace = 1, layout:dwindle
|
||||||
@@ -0,0 +1,450 @@
|
|||||||
|
-- This is an example Hyprland Lua config file.
|
||||||
|
-- Refer to the wiki for more information.
|
||||||
|
-- https://wiki.hypr.land/Configuring/Start/
|
||||||
|
|
||||||
|
-- Please note not all available settings / options are set here.
|
||||||
|
-- For a full list, see the wiki
|
||||||
|
|
||||||
|
-- You can (and should!!) split this configuration into multiple files
|
||||||
|
-- Create your files separately and then require them like this:
|
||||||
|
-- require("myColors")
|
||||||
|
|
||||||
|
|
||||||
|
------------------
|
||||||
|
---- MONITORS ----
|
||||||
|
------------------
|
||||||
|
|
||||||
|
--- See https://wiki.hypr.land/Configuring/Basics/Monitors/
|
||||||
|
|
||||||
|
--- Pro monitors
|
||||||
|
----------------------
|
||||||
|
|
||||||
|
--hl.monitor({
|
||||||
|
-- output = "",
|
||||||
|
-- mode = "preferred",
|
||||||
|
-- position = "auto",
|
||||||
|
-- scale = "auto",
|
||||||
|
--})
|
||||||
|
|
||||||
|
hl.monitor({
|
||||||
|
output = "desc:Najing CEC Panda FPD Technology CO. ltd 0x0056",
|
||||||
|
mode = "1920x1080@60.00",
|
||||||
|
position = "auto",
|
||||||
|
scale = "1",
|
||||||
|
})
|
||||||
|
|
||||||
|
hl.monitor({
|
||||||
|
output = "desc:Iiyama North America PL3481WQ 1242550210951",
|
||||||
|
mode = "3440x1440@60",
|
||||||
|
position = "auto",
|
||||||
|
scale = "1",
|
||||||
|
})
|
||||||
|
|
||||||
|
-- paperboard
|
||||||
|
hl.monitor({
|
||||||
|
output = "desc:Samsung Electric Company SyncMaster H1AK500000",
|
||||||
|
mode = "3840x2160@30",
|
||||||
|
position = "auto",
|
||||||
|
scale = "2",
|
||||||
|
})
|
||||||
|
|
||||||
|
--- Personnals monitors
|
||||||
|
----------------------
|
||||||
|
|
||||||
|
hl.monitor({
|
||||||
|
output = "desc:BOE 0x090F",
|
||||||
|
mode = "1920x1080@144.00",
|
||||||
|
position = "auto",
|
||||||
|
scale = "1",
|
||||||
|
})
|
||||||
|
|
||||||
|
hl.monitor({
|
||||||
|
output = "desc:Samsung Electric Company LC34G55T HNTW606264",
|
||||||
|
mode = "3440x1440@60",
|
||||||
|
position = "auto",
|
||||||
|
scale = "1",
|
||||||
|
})
|
||||||
|
|
||||||
|
---------------------
|
||||||
|
---- MY PROGRAMS ----
|
||||||
|
---------------------
|
||||||
|
|
||||||
|
-- Set programs that you use
|
||||||
|
local terminal = "/usr/bin/footclient"
|
||||||
|
local fileManager = "/usr/bin/nemo"
|
||||||
|
local menu = "pgrep -x wofi >/dev/null 2>&1 || wofi --gtk-dark --show drun"
|
||||||
|
|
||||||
|
|
||||||
|
-------------------
|
||||||
|
---- AUTOSTART ----
|
||||||
|
-------------------
|
||||||
|
|
||||||
|
-- See https://wiki.hypr.land/Configuring/Basics/Autostart/
|
||||||
|
|
||||||
|
-- Autostart necessary processes (like notifications daemons, status bars, etc.)
|
||||||
|
-- Or execute your favorite apps at launch like this:
|
||||||
|
--
|
||||||
|
hl.on("hyprland.start", function ()
|
||||||
|
hl.exec_cmd("waybar -c ~/.config/waybar/config.hyprland")
|
||||||
|
hl.exec_cmd("foot --server")
|
||||||
|
hl.exec_cmd("blueman-applet")
|
||||||
|
hl.exec_cmd("nm-applet --indicator")
|
||||||
|
hl.exec_cmd("nextcloud --background")
|
||||||
|
hl.exec_cmd("hyprpm reload -n")
|
||||||
|
hl.exec_cmd("hyprpaper")
|
||||||
|
hl.exec_cmd("dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP")
|
||||||
|
end)
|
||||||
|
|
||||||
|
-- hl.exec_cmd("dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP")
|
||||||
|
|
||||||
|
-------------------------------
|
||||||
|
---- ENVIRONMENT VARIABLES ----
|
||||||
|
-------------------------------
|
||||||
|
|
||||||
|
-- See https://wiki.hypr.land/Configuring/Advanced-and-Cool/Environment-variables/
|
||||||
|
|
||||||
|
hl.env("XCURSOR_SIZE", "24")
|
||||||
|
hl.env("HYPRCURSOR_SIZE", "24")
|
||||||
|
hl.env("LIBVA_DRIVER_NAME", "nvidia")
|
||||||
|
hl.env("__GLX_VENDOR_LIBRARY_NAME", "nvidia")
|
||||||
|
hl.env("XDG_SESSION_TYPE", "wayland")
|
||||||
|
hl.env("XDG_CURRENT_DESKTOP", "Hyprland")
|
||||||
|
hl.env("XDG_SESSION_DESKTOP", "Hyprland")
|
||||||
|
hl.env("AQ_DRM_DEVICES", "/dev/dri/card1:/dev/dri/card0")
|
||||||
|
|
||||||
|
-----------------------
|
||||||
|
----- PERMISSIONS -----
|
||||||
|
-----------------------
|
||||||
|
|
||||||
|
-- See https://wiki.hypr.land/Configuring/Advanced-and-Cool/Permissions/
|
||||||
|
-- Please note permission changes here require a Hyprland restart and are not applied on-the-fly
|
||||||
|
-- for security reasons
|
||||||
|
|
||||||
|
-- hl.config({
|
||||||
|
-- ecosystem = {
|
||||||
|
-- enforce_permissions = true,
|
||||||
|
-- },
|
||||||
|
-- })
|
||||||
|
|
||||||
|
-- hl.permission("/usr/(bin|local/bin)/grim", "screencopy", "allow")
|
||||||
|
-- hl.permission("/usr/(lib|libexec|lib64)/xdg-desktop-portal-hyprland", "screencopy", "allow")
|
||||||
|
-- hl.permission("/usr/(bin|local/bin)/hyprpm", "plugin", "allow")
|
||||||
|
|
||||||
|
|
||||||
|
-----------------------
|
||||||
|
---- LOOK AND FEEL ----
|
||||||
|
-----------------------
|
||||||
|
|
||||||
|
-- Refer to https://wiki.hypr.land/Configuring/Basics/Variables/
|
||||||
|
hl.config({
|
||||||
|
general = {
|
||||||
|
gaps_in = 5,
|
||||||
|
gaps_out = 10,
|
||||||
|
|
||||||
|
border_size = 2,
|
||||||
|
|
||||||
|
col = {
|
||||||
|
active_border = { colors = {"rgba(33ccffee)", "rgba(00ff99ee)"}, angle = 45 },
|
||||||
|
inactive_border = "rgba(595959aa)",
|
||||||
|
},
|
||||||
|
|
||||||
|
-- Set to true to enable resizing windows by clicking and dragging on borders and gaps
|
||||||
|
-- resize_on_border = false,
|
||||||
|
|
||||||
|
-- Please see https://wiki.hypr.land/Configuring/Advanced-and-Cool/Tearing/ before you turn this on
|
||||||
|
allow_tearing = false,
|
||||||
|
resize_on_border = true,
|
||||||
|
-- layout = "hy3",
|
||||||
|
layout = "scroll",
|
||||||
|
},
|
||||||
|
|
||||||
|
decoration = {
|
||||||
|
rounding = 0,
|
||||||
|
rounding_power = 2,
|
||||||
|
|
||||||
|
-- Change transparency of focused and unfocused windows
|
||||||
|
active_opacity = 1.0,
|
||||||
|
inactive_opacity = 1.0,
|
||||||
|
|
||||||
|
shadow = {
|
||||||
|
enabled = true,
|
||||||
|
range = 4,
|
||||||
|
render_power = 3,
|
||||||
|
color = 0xee1a1a1a,
|
||||||
|
},
|
||||||
|
|
||||||
|
blur = {
|
||||||
|
enabled = true,
|
||||||
|
size = 3,
|
||||||
|
passes = 1,
|
||||||
|
vibrancy = 0.1696,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
|
||||||
|
animations = {
|
||||||
|
enabled = true,
|
||||||
|
},
|
||||||
|
})
|
||||||
|
|
||||||
|
-- Default curves and animations, see https://wiki.hypr.land/Configuring/Advanced-and-Cool/Animations/
|
||||||
|
hl.curve("easeOutQuint", { type = "bezier", points = { {0.23, 1}, {0.32, 1} } })
|
||||||
|
hl.curve("easeInOutCubic", { type = "bezier", points = { {0.65, 0.05}, {0.36, 1} } })
|
||||||
|
hl.curve("linear", { type = "bezier", points = { {0, 0}, {1, 1} } })
|
||||||
|
hl.curve("almostLinear", { type = "bezier", points = { {0.5, 0.5}, {0.75, 1} } })
|
||||||
|
hl.curve("quick", { type = "bezier", points = { {0.15, 0}, {0.1, 1} } })
|
||||||
|
|
||||||
|
-- Default springs
|
||||||
|
hl.curve("easy", { type = "spring", mass = 1, stiffness = 71.2633, dampening = 15.8273644 })
|
||||||
|
|
||||||
|
hl.animation({ leaf = "global", enabled = true, speed = 10, bezier = "default" })
|
||||||
|
hl.animation({ leaf = "border", enabled = true, speed = 5.39, bezier = "easeOutQuint" })
|
||||||
|
hl.animation({ leaf = "windows", enabled = true, speed = 4.79, spring = "easy" })
|
||||||
|
hl.animation({ leaf = "windowsIn", enabled = true, speed = 4.1, spring = "easy", style = "popin 87%" })
|
||||||
|
hl.animation({ leaf = "windowsOut", enabled = true, speed = 1.49, bezier = "linear", style = "popin 87%" })
|
||||||
|
hl.animation({ leaf = "fadeIn", enabled = true, speed = 1.73, bezier = "almostLinear" })
|
||||||
|
hl.animation({ leaf = "fadeOut", enabled = true, speed = 1.46, bezier = "almostLinear" })
|
||||||
|
hl.animation({ leaf = "fade", enabled = true, speed = 3.03, bezier = "quick" })
|
||||||
|
hl.animation({ leaf = "layers", enabled = true, speed = 3.81, bezier = "easeOutQuint" })
|
||||||
|
hl.animation({ leaf = "layersIn", enabled = true, speed = 4, bezier = "easeOutQuint", style = "fade" })
|
||||||
|
hl.animation({ leaf = "layersOut", enabled = true, speed = 1.5, bezier = "linear", style = "fade" })
|
||||||
|
hl.animation({ leaf = "fadeLayersIn", enabled = true, speed = 1.79, bezier = "almostLinear" })
|
||||||
|
hl.animation({ leaf = "fadeLayersOut", enabled = true, speed = 1.39, bezier = "almostLinear" })
|
||||||
|
hl.animation({ leaf = "workspaces", enabled = true, speed = 1.94, bezier = "almostLinear", style = "fade" })
|
||||||
|
hl.animation({ leaf = "workspacesIn", enabled = true, speed = 1.21, bezier = "almostLinear", style = "fade" })
|
||||||
|
hl.animation({ leaf = "workspacesOut", enabled = true, speed = 1.94, bezier = "almostLinear", style = "fade" })
|
||||||
|
hl.animation({ leaf = "zoomFactor", enabled = true, speed = 7, bezier = "quick" })
|
||||||
|
|
||||||
|
-- Ref https://wiki.hypr.land/Configuring/Basics/Workspace-Rules/
|
||||||
|
-- "Smart gaps" / "No gaps when only"
|
||||||
|
-- uncomment all if you wish to use that.
|
||||||
|
-- hl.workspace_rule({ workspace = "w[tv1]", gaps_out = 0, gaps_in = 0 })
|
||||||
|
-- hl.workspace_rule({ workspace = "f[1]", gaps_out = 0, gaps_in = 0 })
|
||||||
|
-- hl.window_rule({
|
||||||
|
-- name = "no-gaps-wtv1",
|
||||||
|
-- match = { float = false, workspace = "w[tv1]" },
|
||||||
|
-- border_size = 0,
|
||||||
|
-- rounding = 0,
|
||||||
|
-- })
|
||||||
|
-- hl.window_rule({
|
||||||
|
-- name = "no-gaps-f1",
|
||||||
|
-- match = { float = false, workspace = "f[1]" },
|
||||||
|
-- border_size = 0,
|
||||||
|
-- rounding = 0,
|
||||||
|
-- })
|
||||||
|
|
||||||
|
-- See https://wiki.hypr.land/Configuring/Layouts/Dwindle-Layout/ for more
|
||||||
|
hl.config({
|
||||||
|
dwindle = {
|
||||||
|
preserve_split = true, -- You probably want this
|
||||||
|
},
|
||||||
|
})
|
||||||
|
|
||||||
|
-- See https://wiki.hypr.land/Configuring/Layouts/Master-Layout/ for more
|
||||||
|
hl.config({
|
||||||
|
master = {
|
||||||
|
new_status = "master",
|
||||||
|
},
|
||||||
|
})
|
||||||
|
|
||||||
|
-- See https://wiki.hypr.land/Configuring/Layouts/Scrolling-Layout/ for more
|
||||||
|
hl.config({
|
||||||
|
scrolling = {
|
||||||
|
fullscreen_on_one_column = true,
|
||||||
|
},
|
||||||
|
})
|
||||||
|
|
||||||
|
--local hl.plugin.hy3 = hl.plugin.hl.plugin.hy3
|
||||||
|
--- TODO
|
||||||
|
--hl.config({
|
||||||
|
-- plugin = {
|
||||||
|
-- hy3 = {
|
||||||
|
-- no_gaps_when_only = true,
|
||||||
|
-- }
|
||||||
|
-- }
|
||||||
|
--})
|
||||||
|
|
||||||
|
----------------
|
||||||
|
---- MISC ----
|
||||||
|
----------------
|
||||||
|
|
||||||
|
hl.config({
|
||||||
|
misc = {
|
||||||
|
force_default_wallpaper = 0, -- Set to 0 or 1 to disable the anime mascot wallpapers
|
||||||
|
disable_hyprland_logo = false, -- If true disables the random hyprland logo / anime girl background. :(
|
||||||
|
},
|
||||||
|
})
|
||||||
|
|
||||||
|
|
||||||
|
---------------
|
||||||
|
---- INPUT ----
|
||||||
|
---------------
|
||||||
|
|
||||||
|
hl.config({
|
||||||
|
input = {
|
||||||
|
kb_layout = "fr",
|
||||||
|
kb_variant = "oss",
|
||||||
|
kb_model = "",
|
||||||
|
kb_options = "",
|
||||||
|
kb_rules = "",
|
||||||
|
|
||||||
|
follow_mouse = 1,
|
||||||
|
|
||||||
|
sensitivity = 0, -- -1.0 - 1.0, 0 means no modification.
|
||||||
|
|
||||||
|
touchpad = {
|
||||||
|
natural_scroll = false,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
})
|
||||||
|
|
||||||
|
hl.gesture({
|
||||||
|
fingers = 3,
|
||||||
|
direction = "horizontal",
|
||||||
|
action = "workspace"
|
||||||
|
})
|
||||||
|
|
||||||
|
-- Example per-device config
|
||||||
|
-- See https://wiki.hypr.land/Configuring/Advanced-and-Cool/Devices/ for more
|
||||||
|
hl.device({
|
||||||
|
name = "epic-mouse-v1",
|
||||||
|
sensitivity = -0.5,
|
||||||
|
})
|
||||||
|
|
||||||
|
|
||||||
|
---------------------
|
||||||
|
---- KEYBINDINGS ----
|
||||||
|
---------------------
|
||||||
|
|
||||||
|
local mainMod = "SUPER" -- Sets "Windows" key as main modifier
|
||||||
|
-- local hl.plugin.hy3 = hl.plugin.hl.plugin.hy3
|
||||||
|
|
||||||
|
-- Example binds, see y for more
|
||||||
|
hl.bind(mainMod .. " + return", hl.dsp.exec_cmd(terminal))
|
||||||
|
|
||||||
|
hl.bind(mainMod .. " + SHIFT + Q", hl.dsp.window.close())
|
||||||
|
hl.bind(mainMod .. " + SHIFT + E", hl.dsp.exec_cmd("command -v hyprshutdown >/dev/null 2>&1 && hyprshutdown || hyprctl dispatch 'hl.dsp.exit()'"))
|
||||||
|
hl.bind(mainMod .. " + L", hl.dsp.exec_cmd("hyprlock"))
|
||||||
|
hl.bind(mainMod .. " + E", hl.dsp.exec_cmd(fileManager))
|
||||||
|
hl.bind(mainMod .. " + space", hl.dsp.window.float({ action = "toggle" }))
|
||||||
|
hl.bind(mainMod .. " + D", hl.dsp.exec_cmd(menu))
|
||||||
|
--hl.bind(mainMod .. " + P", hl.dsp.window.pseudo())
|
||||||
|
--hl.bind(mainMod .. " + J", hl.dsp.layout("togglesplit")) -- dwindle only
|
||||||
|
|
||||||
|
-- Move focus with mainMod + arrow keys
|
||||||
|
-- hl.bind(mainMod .. " + left", hl.dsp.focus({ direction = "left" }))
|
||||||
|
-- hl.bind(mainMod .. " + right", hl.dsp.focus({ direction = "right" }))
|
||||||
|
-- hl.bind(mainMod .. " + up", hl.dsp.focus({ direction = "up" }))
|
||||||
|
-- hl.bind(mainMod .. " + down", hl.dsp.focus({ direction = "down" }))
|
||||||
|
|
||||||
|
hl.bind(mainMod .. "+ F", hl.dsp.window.fullscreen({action = "toggle"}))
|
||||||
|
|
||||||
|
-- Move focus with mainMod + arrow keys
|
||||||
|
--hl.bind(mainMod .. " + left", hl.plugin.hy3.move_focus("left"))
|
||||||
|
--hl.bind(mainMod .. " + right", hl.plugin.hy3.move_focus("right"))
|
||||||
|
--hl.bind(mainMod .. " + up", hl.plugin.hy3.move_focus("up"))
|
||||||
|
--hl.bind(mainMod .. " + down", hl.plugin.hy3.move_focus("down"))
|
||||||
|
|
||||||
|
-- Move windows
|
||||||
|
--hl.bind(mainMod .. " + SHIFT + left", hl.plugin.hy3.move_window("left"))
|
||||||
|
--hl.bind(mainMod .. " + SHIFT + right", hl.plugin.hy3.move_window("right"))
|
||||||
|
--hl.bind(mainMod .. " + SHIFT + up", hl.plugin.hy3.move_window("up"))
|
||||||
|
--hl.bind(mainMod .. " + SHIFT + down", hl.plugin.hy3.move_window("down"))
|
||||||
|
|
||||||
|
-- Move workspace
|
||||||
|
hl.bind(mainMod .. " + CTRL + SHIFT + left", hl.dsp.workspace.move({ monitor = "l" }))
|
||||||
|
hl.bind(mainMod .. " + CTRL + SHIFT + right", hl.dsp.workspace.move({ monitor = "r" }))
|
||||||
|
hl.bind(mainMod .. " + CTRL + SHIFT + up", hl.dsp.workspace.move({ monitor = "u" }))
|
||||||
|
hl.bind(mainMod .. " + CTRL + SHIFT + down", hl.dsp.workspace.move({ monitor = "d" }))
|
||||||
|
|
||||||
|
-- Change split direction
|
||||||
|
--hl.bind(mainMod .. " + V", hl.plugin.hy3.make_group("v"))
|
||||||
|
--hl.bind(mainMod .. " + H", hl.plugin.hy3.make_group("h"))
|
||||||
|
|
||||||
|
-- Switch workspaces with mainMod + [0-9]
|
||||||
|
-- Move active window to aa workspace with mainMod + SHIFT + [0-9]
|
||||||
|
for key = 10, 21 do
|
||||||
|
local ws = key - 9 -- 10 maps to key 0
|
||||||
|
hl.bind(mainMod .. " + code:" .. key, hl.dsp.focus({ workspace = ws}))
|
||||||
|
hl.bind(mainMod .. " + SHIFT + code:" .. key, hl.dsp.window.move({ workspace = ws }))
|
||||||
|
end
|
||||||
|
|
||||||
|
-- Example special workspace (scratchpad)
|
||||||
|
--hl.bind(mainMod .. " + S", hl.dsp.workspace.toggle_special("magic"))
|
||||||
|
--hl.bind(mainMod .. " + SHIFT + S", hl.dsp.window.move({ workspace = "special:magic" }))
|
||||||
|
|
||||||
|
-- Scroll through existing workspaces with mainMod + scroll
|
||||||
|
--hl.bind(mainMod .. " + mouse_down", hl.dsp.focus({ workspace = "e+1" }))
|
||||||
|
--hl.bind(mainMod .. " + mouse_up", hl.dsp.focus({ workspace = "e-1" }))
|
||||||
|
|
||||||
|
-- Move/resize windows with mainMod + LMB/RMB and dragging
|
||||||
|
hl.bind(mainMod .. " + mouse:272", hl.dsp.window.drag(), { mouse = true })
|
||||||
|
hl.bind(mainMod .. " + mouse:273", hl.dsp.window.resize(), { mouse = true })
|
||||||
|
|
||||||
|
-- Laptop multimedia keys for volume and LCD brightness
|
||||||
|
hl.bind("XF86AudioRaiseVolume", hl.dsp.exec_cmd("wpctl set-volume -l 1 @DEFAULT_AUDIO_SINK@ 5%+"), { locked = true, repeating = true })
|
||||||
|
hl.bind("XF86AudioLowerVolume", hl.dsp.exec_cmd("wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-"), { locked = true, repeating = true })
|
||||||
|
hl.bind("XF86AudioMute", hl.dsp.exec_cmd("wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle"), { locked = true, repeating = true })
|
||||||
|
hl.bind("XF86AudioMicMute", hl.dsp.exec_cmd("wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle"), { locked = true, repeating = true })
|
||||||
|
hl.bind("XF86MonBrightnessUp", hl.dsp.exec_cmd("brightnessctl -e4 -n2 set 5%+"), { locked = true, repeating = true })
|
||||||
|
hl.bind("XF86MonBrightnessDown",hl.dsp.exec_cmd("brightnessctl -e4 -n2 set 5%-"), { locked = true, repeating = true })
|
||||||
|
|
||||||
|
-- Requires playerctl
|
||||||
|
hl.bind("XF86AudioNext", hl.dsp.exec_cmd("playerctl next"), { locked = true })
|
||||||
|
hl.bind("XF86AudioPause", hl.dsp.exec_cmd("playerctl play-pause"), { locked = true })
|
||||||
|
hl.bind("XF86AudioPlay", hl.dsp.exec_cmd("playerctl play-pause"), { locked = true })
|
||||||
|
hl.bind("XF86AudioPrev", hl.dsp.exec_cmd("playerctl previous"), { locked = true })
|
||||||
|
|
||||||
|
-- Screenshot
|
||||||
|
hl.bind("PRINT", hl.dsp.exec_cmd("hyprshot -m window"))
|
||||||
|
hl.bind("SHIFT + PRINT", hl.dsp.exec_cmd("hyprshot -m region"))
|
||||||
|
|
||||||
|
|
||||||
|
--------------------------------
|
||||||
|
---- WINDOWS AND WORKSPACES ----
|
||||||
|
--------------------------------
|
||||||
|
|
||||||
|
-- See https://wiki.hypr.land/Configuring/Basics/Window-Rules/
|
||||||
|
-- and https://wiki.hypr.land/Configuring/Basics/Workspace-Rules/
|
||||||
|
|
||||||
|
-- Example window rules that are useful
|
||||||
|
|
||||||
|
local suppressMaximizeRule = hl.window_rule({
|
||||||
|
-- Ignore maximize requests from all apps. You'll probably like this.
|
||||||
|
name = "suppress-maximize-events",
|
||||||
|
match = { class = ".*" },
|
||||||
|
|
||||||
|
suppress_event = "maximize",
|
||||||
|
})
|
||||||
|
-- suppressMaximizeRule:set_enabled(false)
|
||||||
|
|
||||||
|
hl.window_rule({
|
||||||
|
-- Fix some dragging issues with XWayland
|
||||||
|
name = "fix-xwayland-drags",
|
||||||
|
match = {
|
||||||
|
class = "^$",
|
||||||
|
title = "^$",
|
||||||
|
xwayland = true,
|
||||||
|
float = true,
|
||||||
|
fullscreen = false,
|
||||||
|
pin = false,
|
||||||
|
},
|
||||||
|
|
||||||
|
no_focus = true,
|
||||||
|
})
|
||||||
|
|
||||||
|
-- Layer rules also return a handle.
|
||||||
|
-- local overlayLayerRule = hl.layer_rule({
|
||||||
|
-- name = "no-anim-overlay",
|
||||||
|
-- match = { namespace = "^my-overlay$" },
|
||||||
|
-- no_anim = true,
|
||||||
|
-- })
|
||||||
|
-- overlayLayerRule:set_enabled(false)
|
||||||
|
|
||||||
|
-- Hyprland-run windowrule
|
||||||
|
hl.window_rule({
|
||||||
|
name = "move-hyprland-run",
|
||||||
|
match = { class = "hyprland-run" },
|
||||||
|
|
||||||
|
move = "20 monitor_h-120",
|
||||||
|
float = true,
|
||||||
|
})
|
||||||
@@ -0,0 +1,27 @@
|
|||||||
|
background {
|
||||||
|
monitor =
|
||||||
|
blur_passes = 3
|
||||||
|
contrast = 0.8916
|
||||||
|
brightness = 0.8172
|
||||||
|
vibrancy = 0.1696
|
||||||
|
vibrancy_darkness = 0.0
|
||||||
|
}
|
||||||
|
|
||||||
|
input-field {
|
||||||
|
monitor =
|
||||||
|
size = 280, 55
|
||||||
|
outline_thickness = 2
|
||||||
|
dots_size = 0.2
|
||||||
|
dots_spacing = 0.2
|
||||||
|
dots_center = true
|
||||||
|
outer_color = rgba(0, 0, 0, 0)
|
||||||
|
inner_color = rgba(255, 255, 255, 0.1)
|
||||||
|
font_color = rgb(200, 200, 200)
|
||||||
|
fade_on_empty = false
|
||||||
|
font_family = FiraCode Nerd Font
|
||||||
|
placeholder_text = <i><span foreground="##ffffff99">Enter Pass</span></i>
|
||||||
|
hide_input = false
|
||||||
|
position = 0, -210
|
||||||
|
halign = center
|
||||||
|
valign = center
|
||||||
|
}
|
||||||
@@ -0,0 +1,7 @@
|
|||||||
|
splash = off
|
||||||
|
|
||||||
|
wallpaper {
|
||||||
|
monitor =
|
||||||
|
path = ~/nextcloud/perso/images/wallpapers/travelling-through-galaxies-scifi-27.jpg
|
||||||
|
fit_mode = cover
|
||||||
|
}
|
||||||
@@ -1,238 +0,0 @@
|
|||||||
|
|
||||||
# This file has been auto-generated by i3-config-wizard(1).
|
|
||||||
# It will not be overwritten, so edit it as you like.
|
|
||||||
#
|
|
||||||
# Should you change your keyboard layout some time, delete
|
|
||||||
# this file and re-run i3-config-wizard(1).
|
|
||||||
#
|
|
||||||
|
|
||||||
workspace "1" output "eDP1"
|
|
||||||
workspace "2" output "eDP1"
|
|
||||||
workspace "3" output "eDP1"
|
|
||||||
workspace "4" output "eDP1"
|
|
||||||
workspace "5" output "eDP1"
|
|
||||||
workspace "6" output "eDP1"
|
|
||||||
workspace "7" output "eDP1"
|
|
||||||
workspace "8" output "eDP1"
|
|
||||||
workspace "9" output "eDP1"
|
|
||||||
workspace "10" output "eDP1"
|
|
||||||
workspace "11" output "eDP1"
|
|
||||||
workspace "12" output "eDP1"
|
|
||||||
|
|
||||||
focus_follows_mouse no
|
|
||||||
|
|
||||||
# i3 config file (v4)
|
|
||||||
#
|
|
||||||
# Please see http://i3wm.org/docs/userguide.html for a complete reference!
|
|
||||||
|
|
||||||
set $mod Mod4
|
|
||||||
|
|
||||||
# Font for window titles. Will also be used by the bar unless a different font
|
|
||||||
# is used in the bar {} block below.
|
|
||||||
#font pango:DejaVu Sans 6
|
|
||||||
|
|
||||||
# This font is widely installed, provides lots of unicode glyphs, right-to-left
|
|
||||||
# text rendering and scalability on retina/hidpi displays (thanks to pango).
|
|
||||||
font pango:Hack 8
|
|
||||||
|
|
||||||
# Before i3 v4.8, we used to recommend this one as the default:
|
|
||||||
# font -misc-fixed-medium-r-normal--13-120-75-75-C-70-iso10646-1
|
|
||||||
# The font above is very space-efficient, that is, it looks good, sharp and
|
|
||||||
# clear in small sizes. However, its unicode glyph coverage is limited, the old
|
|
||||||
# X core fonts rendering does not support right-to-left and this being a bitmap
|
|
||||||
# font, it doesn’t scale on retina/hidpi displays.
|
|
||||||
|
|
||||||
gaps inner 10
|
|
||||||
gaps outer 0
|
|
||||||
|
|
||||||
smart_gaps on
|
|
||||||
smart_borders on
|
|
||||||
|
|
||||||
for_window [class="^.*"] border pixel 2
|
|
||||||
|
|
||||||
#gaps inner all set 40
|
|
||||||
#gaps outer current plus 20
|
|
||||||
|
|
||||||
|
|
||||||
# Use Mouse+$mod to drag floating windows to their wanted position
|
|
||||||
floating_modifier $mod
|
|
||||||
|
|
||||||
# start a terminal
|
|
||||||
#bindsym $mod+Return exec i3-sensible-terminal
|
|
||||||
bindsym $mod+Return exec alacritty
|
|
||||||
|
|
||||||
# kill focused window
|
|
||||||
bindsym $mod+Shift+A kill
|
|
||||||
|
|
||||||
# start dmenu (a program launcher)
|
|
||||||
#bindsym $mod+d exec dmenu_run
|
|
||||||
# There also is the (new) i3-dmenu-desktop which only displays applications
|
|
||||||
# shipping a .desktop file. It is a wrapper around dmenu, so you need that
|
|
||||||
# installed.
|
|
||||||
#bindsym $mod+d exec --no-startup-id i3-dmenu-desktop
|
|
||||||
bindsym $mod+d exec rofi -show drun
|
|
||||||
|
|
||||||
# change focus
|
|
||||||
#bindsym $mod+j focus left
|
|
||||||
#bindsym $mod+k focus down
|
|
||||||
#bindsym $mod+l focus up
|
|
||||||
#bindsym $mod+m focus right
|
|
||||||
|
|
||||||
# alternatively, you can use the cursor keys:
|
|
||||||
bindsym $mod+Left focus left
|
|
||||||
bindsym $mod+Down focus down
|
|
||||||
bindsym $mod+Up focus up
|
|
||||||
bindsym $mod+Right focus right
|
|
||||||
|
|
||||||
# move focused window
|
|
||||||
#bindsym $mod+Shift+j move left
|
|
||||||
#bindsym $mod+Shift+k move down
|
|
||||||
#bindsym $mod+Shift+l move up
|
|
||||||
#bindsym $mod+Shift+M move right
|
|
||||||
|
|
||||||
# alternatively, you can use the cursor 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
|
|
||||||
|
|
||||||
# split in horizontal orientation
|
|
||||||
bindsym $mod+h split h
|
|
||||||
|
|
||||||
# split in vertical orientation
|
|
||||||
bindsym $mod+v split v
|
|
||||||
|
|
||||||
# enter fullscreen mode for the focused container
|
|
||||||
bindsym $mod+f fullscreen toggle
|
|
||||||
|
|
||||||
# change container layout (stacked, tabbed, toggle split)
|
|
||||||
bindsym $mod+s layout stacking
|
|
||||||
bindsym $mod+z layout tabbed
|
|
||||||
bindsym $mod+e layout toggle split
|
|
||||||
|
|
||||||
# toggle tiling / floating
|
|
||||||
bindsym $mod+Shift+space floating toggle
|
|
||||||
|
|
||||||
# change focus between tiling / floating windows
|
|
||||||
bindsym $mod+space focus mode_toggle
|
|
||||||
|
|
||||||
# focus the parent container
|
|
||||||
bindsym $mod+q focus parent
|
|
||||||
|
|
||||||
# focus the child container
|
|
||||||
#bindsym $mod+d focus child
|
|
||||||
|
|
||||||
# switch to workspace
|
|
||||||
bindsym $mod+ampersand workspace 1
|
|
||||||
bindsym $mod+eacute workspace 2
|
|
||||||
bindsym $mod+quotedbl workspace 3
|
|
||||||
bindsym $mod+apostrophe workspace 4
|
|
||||||
bindsym $mod+parenleft workspace 5
|
|
||||||
bindsym $mod+minus workspace 6
|
|
||||||
bindsym $mod+egrave workspace 7
|
|
||||||
bindsym $mod+underscore workspace 8
|
|
||||||
bindsym $mod+ccedilla workspace 9
|
|
||||||
bindsym $mod+agrave workspace 10
|
|
||||||
bindsym $mod+parenright workspace 11
|
|
||||||
bindsym $mod+equal workspace 12
|
|
||||||
|
|
||||||
# move focused container to workspace
|
|
||||||
bindsym $mod+Shift+1 move container to workspace 1
|
|
||||||
bindsym $mod+Shift+eacute move container to workspace 2
|
|
||||||
bindsym $mod+Shift+3 move container to workspace 3
|
|
||||||
bindsym $mod+Shift+4 move container to workspace 4
|
|
||||||
bindsym $mod+Shift+5 move container to workspace 5
|
|
||||||
bindsym $mod+Shift+6 move container to workspace 6
|
|
||||||
bindsym $mod+Shift+egrave move container to workspace 7
|
|
||||||
bindsym $mod+Shift+8 move container to workspace 8
|
|
||||||
bindsym $mod+Shift+ccedilla move container to workspace 9
|
|
||||||
bindsym $mod+Shift+agrave move container to workspace 10
|
|
||||||
bindsym $mod+Shift+degree move container to workspace 11
|
|
||||||
bindsym $mod+Shift+plus move container to workspace 12
|
|
||||||
|
|
||||||
# move current workspace between monitors
|
|
||||||
bindsym $mod+Control+left move workspace to output left
|
|
||||||
bindsym $mod+Control+right move workspace to output down
|
|
||||||
bindsym $mod+Control+up move workspace to output up
|
|
||||||
bindsym $mod+Control+down move workspace to output right
|
|
||||||
|
|
||||||
# reload the configuration file
|
|
||||||
bindsym $mod+Shift+c reload
|
|
||||||
# restart i3 inplace (preserves your layout/session, can be used to upgrade i3)
|
|
||||||
bindsym $mod+Shift+r restart
|
|
||||||
# exit i3 (logs you out of your X session)
|
|
||||||
#bindsym $mod+Shift+e exec "i3-nagbar -t warning -m 'You pressed the exit shortcut. Do you really want to exit i3? This will end your X session.' -b 'Yes, exit i3' 'i3-msg exit'"
|
|
||||||
bindsym $mod+Shift+e exit
|
|
||||||
bindsym $mod+l exec i3lock -f -c 222222
|
|
||||||
|
|
||||||
|
|
||||||
# resize window (you can also use the mouse for that)
|
|
||||||
mode "resize" {
|
|
||||||
# These bindings trigger as soon as you enter the resize mode
|
|
||||||
|
|
||||||
# Pressing left will shrink the window’s width.
|
|
||||||
# Pressing right will grow the window’s width.
|
|
||||||
# Pressing up will shrink the window’s height.
|
|
||||||
# Pressing down will grow the window’s height.
|
|
||||||
bindsym j resize shrink width 10 px or 10 ppt
|
|
||||||
bindsym k resize grow height 10 px or 10 ppt
|
|
||||||
bindsym l resize shrink height 10 px or 10 ppt
|
|
||||||
bindsym m resize grow width 10 px or 10 ppt
|
|
||||||
|
|
||||||
# same bindings, but for the arrow keys
|
|
||||||
bindsym Left resize shrink width 10 px or 10 ppt
|
|
||||||
bindsym Down resize grow height 10 px or 10 ppt
|
|
||||||
bindsym Up resize shrink height 10 px or 10 ppt
|
|
||||||
bindsym Right resize grow width 10 px or 10 ppt
|
|
||||||
|
|
||||||
# back to normal: Enter or Escape
|
|
||||||
bindsym Return mode "default"
|
|
||||||
bindsym Escape mode "default"
|
|
||||||
}
|
|
||||||
|
|
||||||
bindsym $mod+r mode "resize"
|
|
||||||
|
|
||||||
bindsym $mod+w sticky toggle
|
|
||||||
|
|
||||||
# Color scheme night owl
|
|
||||||
#client.focused #a2bffc #a2bffc #282828 #282828
|
|
||||||
#client.focused_inactive #1d2021 #1d2021 #928374 #282828
|
|
||||||
#client.unfocused #32302f #32302f #928374 #282828
|
|
||||||
#client.urgent #cc241d #cc241d #ebdbb2 #282828
|
|
||||||
|
|
||||||
# Theme
|
|
||||||
#
|
|
||||||
# Note: I only really need border for the current focused window, so the inactive broder is set to background color. If you want a more visible vorder, replace #000b1e with #0abdc6 (for example) on client.[focused_inactive|unfocused]
|
|
||||||
default_border pixel 1
|
|
||||||
default_floating_border pixel 1
|
|
||||||
|
|
||||||
client.focused #ea00d9 #ea00d9 #000b1e #ea00d9 #ea00d9
|
|
||||||
client.focused_inactive #000b1e #000b1e #0abdc6 #000b1e #000b1e
|
|
||||||
client.unfocused #000b1e #000b1e #0abdc6 #000b1e #000b1e
|
|
||||||
client.urgent #ff0000 #ff0000 #000b1e #ff0000 #ff0000
|
|
||||||
client.placeholder #000b1e #000b1e #0abdc6 #000b1e #000b1e
|
|
||||||
|
|
||||||
exec xsetroot -solid "#222222"
|
|
||||||
|
|
||||||
#exec "setxkbmap -option 'grp:alt_shift_toggle' -layout fr,fr -variant oss,bepo"
|
|
||||||
|
|
||||||
# Pulse Audio controls
|
|
||||||
bindsym XF86AudioRaiseVolume exec --no-startup-id "pactl set-sink-volume 0 +5%; pactl set-sink-volume 1 +5%"
|
|
||||||
bindsym XF86AudioLowerVolume exec --no-startup-id "pactl set-sink-volume 0 -5%; pactl set-sink-volume 1 -5%"
|
|
||||||
bindsym XF86AudioMute exec --no-startup-id "pactl set-sink-mute 0 toggle" # mute sound
|
|
||||||
|
|
||||||
# gestion de la luminosité
|
|
||||||
bindsym XF86MonBrightnessUp exec brightnessctl set +10% # increase screen brightness
|
|
||||||
bindsym XF86MonBrightnessDown exec brightnessctl set 10%- # decrease screen brightness
|
|
||||||
|
|
||||||
exec_always --no-startup-id autorandr -c
|
|
||||||
|
|
||||||
exec_always --no-startup-id bash ~/.config/polybar/launch.sh
|
|
||||||
|
|
||||||
exec --no-startup-id pulseaudio -k && pulseaudio --start
|
|
||||||
|
|
||||||
exec --no-startup-id nm-applet
|
|
||||||
exec --no-startup-id blueman-applet
|
|
||||||
exec --no-startup-id nextcloud
|
|
||||||
#exec --no-startup-id rofi
|
|
||||||
#exec --no-startup-id secret-tool lookup "KeePass Perso" | keepassxc --pw-stdin "$HOME/nextcloud/perso/db.kdbx"
|
|
||||||
@@ -0,0 +1,13 @@
|
|||||||
|
locations:
|
||||||
|
florac:
|
||||||
|
altitude: 522
|
||||||
|
latitude: 44.3245
|
||||||
|
longitude: 3.5925
|
||||||
|
mafresié:
|
||||||
|
altitude: 360
|
||||||
|
latitude: 44.1230
|
||||||
|
longitude: 2.0200
|
||||||
|
calvernais:
|
||||||
|
altitude: 100
|
||||||
|
latitude: 47.5756
|
||||||
|
longitude: -1.7111
|
||||||
@@ -0,0 +1,691 @@
|
|||||||
|
// This config is in the KDL format: https://kdl.dev
|
||||||
|
// "/-" comments out the following node.
|
||||||
|
// Check the wiki for a full description of the configuration:
|
||||||
|
// https://niri-wm.github.io/niri/Configuration:-Introduction
|
||||||
|
|
||||||
|
// Input device configuration.
|
||||||
|
// Find the full list of options on the wiki:
|
||||||
|
// https://niri-wm.github.io/niri/Configuration:-Input
|
||||||
|
input {
|
||||||
|
keyboard {
|
||||||
|
xkb {
|
||||||
|
// You can set rules, model, layout, variant and options.
|
||||||
|
// For more information, see xkeyboard-config(7).
|
||||||
|
|
||||||
|
// For example:
|
||||||
|
// layout "us,ru"
|
||||||
|
layout "fr"
|
||||||
|
variant "oss"
|
||||||
|
// options "grp:win_space_toggle,compose:ralt,ctrl:nocaps"
|
||||||
|
|
||||||
|
// If this section is empty, niri will fetch xkb settings
|
||||||
|
// from org.freedesktop.locale1. You can control these using
|
||||||
|
// localectl set-x11-keymap.
|
||||||
|
}
|
||||||
|
|
||||||
|
// Enable numlock on startup, omitting this setting disables it.
|
||||||
|
numlock
|
||||||
|
}
|
||||||
|
|
||||||
|
// Next sections include libinput settings.
|
||||||
|
// Omitting settings disables them, or leaves them at their default values.
|
||||||
|
// All commented-out settings here are examples, not defaults.
|
||||||
|
touchpad {
|
||||||
|
// off
|
||||||
|
tap
|
||||||
|
// dwt
|
||||||
|
// dwtp
|
||||||
|
// drag false
|
||||||
|
// drag-lock
|
||||||
|
natural-scroll
|
||||||
|
// accel-speed 0.2
|
||||||
|
// accel-profile "flat"
|
||||||
|
// scroll-method "two-finger"
|
||||||
|
// disabled-on-external-mouse
|
||||||
|
}
|
||||||
|
|
||||||
|
mouse {
|
||||||
|
// off
|
||||||
|
// natural-scroll
|
||||||
|
// accel-speed 0.2
|
||||||
|
// accel-profile "flat"
|
||||||
|
// scroll-method "no-scroll"
|
||||||
|
}
|
||||||
|
|
||||||
|
trackpoint {
|
||||||
|
// off
|
||||||
|
// natural-scroll
|
||||||
|
// accel-speed 0.2
|
||||||
|
// accel-profile "flat"
|
||||||
|
// scroll-method "on-button-down"
|
||||||
|
// scroll-button 273
|
||||||
|
// scroll-button-lock
|
||||||
|
// middle-emulation
|
||||||
|
}
|
||||||
|
|
||||||
|
// Uncomment this to make the mouse warp to the center of newly focused windows.
|
||||||
|
// warp-mouse-to-focus
|
||||||
|
|
||||||
|
// Focus windows and outputs automatically when moving the mouse into them.
|
||||||
|
// Setting max-scroll-amount="0%" makes it work only on windows already fully on screen.
|
||||||
|
// focus-follows-mouse max-scroll-rchlinuxamount="0%"
|
||||||
|
}
|
||||||
|
|
||||||
|
// Disable Top left corner overview
|
||||||
|
gestures {
|
||||||
|
hot-corners {
|
||||||
|
off
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// You can configure outputs by their name, which you can find
|
||||||
|
// by running `niri msg outputs` while inside a niri instance.
|
||||||
|
// The built-in laptop monitor is usually called "eDP-1".
|
||||||
|
// Find more information on the wiki:
|
||||||
|
// https://niri-wm.github.io/niri/Configuration:-Outputs
|
||||||
|
// Remember to uncomment the node by removing "/-"!
|
||||||
|
output "Lenovo Group Limited 0x403A Unknown" {
|
||||||
|
mode "1920x1080@60.003"
|
||||||
|
position x=0 y=0
|
||||||
|
scale 1
|
||||||
|
transform "normal"
|
||||||
|
layout {
|
||||||
|
default-column-width { proportion 0.5; }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
output "Iiyama North America PL3481WQ 1242550210951" {
|
||||||
|
mode "3440x1440@119.991"
|
||||||
|
position x=1920 y=0
|
||||||
|
scale 1
|
||||||
|
transform "normal"
|
||||||
|
layout {
|
||||||
|
default-column-width { proportion 0.33; }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
output "Samsung Electric Company SyncMaster H1AK500000" {
|
||||||
|
mode "3840x2160@30"
|
||||||
|
position x=1920 y=0
|
||||||
|
scale 2
|
||||||
|
transform "normal"
|
||||||
|
layout {
|
||||||
|
default-column-width { proportion 0.5; }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Personnals screen
|
||||||
|
|
||||||
|
output "BOE 0x090F Unknown" {
|
||||||
|
mode "1920x1080@144.01"
|
||||||
|
position x=0 y=0
|
||||||
|
scale 1
|
||||||
|
transform "normal"
|
||||||
|
layout {
|
||||||
|
default-column-width { proportion 0.5; }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
output "Samsung Electric Company LC34G55T HNTW606264" {
|
||||||
|
mode "3440x1440@164.999"
|
||||||
|
position x=1920 y=0
|
||||||
|
scale 1
|
||||||
|
transform "normal"
|
||||||
|
layout {
|
||||||
|
default-column-width { proportion 0.333333; }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Settings that influence how windows are positioned and sized.
|
||||||
|
// Find more information on the wiki:
|
||||||
|
// https://niri-wm.github.io/niri/Configuration:-Layout
|
||||||
|
layout {
|
||||||
|
// Set gaps around windows in logical pixels.
|
||||||
|
gaps 10
|
||||||
|
|
||||||
|
// When to center a column when changing focus, options are:
|
||||||
|
// - "never", default behavior, focusing an off-screen column will keep at the left
|
||||||
|
// or right edge of the screen.
|
||||||
|
// - "always", the focused column will always be centered.
|
||||||
|
// - "on-overflow", focusing a column will center it if it doesn't fit
|
||||||
|
// together with the previously focused column.
|
||||||
|
center-focused-column "never"
|
||||||
|
|
||||||
|
// You can customize the widths that "switch-preset-column-width" (Mod+R) toggles between.
|
||||||
|
preset-column-widths {
|
||||||
|
// Proportion sets the width as a fraction of the output width, taking gaps into account.
|
||||||
|
// For example, you can perfectly fit four windows sized "proportion 0.25" on an output.
|
||||||
|
// The default preset widths are 1/3, 1/2 and 2/3 of the output.
|
||||||
|
proportion 0.33333
|
||||||
|
|
||||||
|
// Fixed sets the width in logical pixels exactly.
|
||||||
|
// fixed 1920
|
||||||
|
}
|
||||||
|
|
||||||
|
// You can also customize the heights that "switch-preset-window-height" (Mod+Ctrl+Shift+R) toggles between.
|
||||||
|
// preset-window-heights { }
|
||||||
|
|
||||||
|
// You can change the default width of the new windows.
|
||||||
|
default-column-width { proportion 0.333; }
|
||||||
|
// If you leave the brackets empty, the windows themselves will decide their initial width.
|
||||||
|
// default-column-wedth {}
|
||||||
|
|
||||||
|
// By default focus ring and border are rendered as a solid background rectangle
|
||||||
|
// behind windows. That is, they will show up through semitransparent windows.
|
||||||
|
// This is because windows using client-side decorations can have an arbitrary shape.
|
||||||
|
//
|
||||||
|
// If you don't like that, you should uncomment `prefer-no-csd` below.
|
||||||
|
// Niri will draw focus ring and border *around* windows that agree to omit their
|
||||||
|
// client-side decorations.
|
||||||
|
//
|
||||||
|
// Alternatively, you can override it with a window rule called
|
||||||
|
// `draw-border-with-background`.
|
||||||
|
|
||||||
|
// You can change how the focus ring looks.
|
||||||
|
focus-ring {
|
||||||
|
// Uncomment this line to disable the focus ring.
|
||||||
|
// off
|
||||||
|
|
||||||
|
// How many logical pixels the ring extends out from the windows.
|
||||||
|
width 2
|
||||||
|
|
||||||
|
// Colors can be set in a variety of ways:
|
||||||
|
// - CSS named colors: "red"
|
||||||
|
// - RGB hex: "#rgb", "#rgba", "#rrggbb", "#rrggbbaa"
|
||||||
|
// - CSS-like notation: "rgb(255, 127, 0)", rgba(), hsl() and a few others.
|
||||||
|
|
||||||
|
// Color of the ring on the active monitor.
|
||||||
|
|
||||||
|
active-color "#33CCFF"
|
||||||
|
inactive-color "#595959"
|
||||||
|
|
||||||
|
//active-color "#7fc8ff"
|
||||||
|
|
||||||
|
// Color of the ring on inactive monitors.
|
||||||
|
//
|
||||||
|
// The focus ring only draws around the active window, so the only place
|
||||||
|
// where you can see its inactive-color is on other monitors.
|
||||||
|
//inactive-color "#505050"
|
||||||
|
|
||||||
|
// You can also use gradients. They take precedence over solid colors.
|
||||||
|
// Gradients are rendered the same as CSS linear-gradient(angle, from, to).
|
||||||
|
// The angle is the same as in linear-gradient, and is optional,
|
||||||
|
// defaulting to 180 (top-to-bottom gradient).
|
||||||
|
// You can use any CSS linear-gradient tool on the web to set these up.
|
||||||
|
// Changing the color space is also supported, check the wiki for more info.
|
||||||
|
//
|
||||||
|
// active-gradient from="#80c8ff" to="#c7ff7f" angle=45
|
||||||
|
|
||||||
|
// You can also color the gradient relative to the entire view
|
||||||
|
// of the workspace, rather than relative to just the window itself.
|
||||||
|
// To do that, set relative-to="workspace-view".
|
||||||
|
//
|
||||||
|
// inactive-gradient from="#505050" to="#808080" angle=45 relative-to="workspace-view"
|
||||||
|
}
|
||||||
|
|
||||||
|
// You can also add a border. It's similar to the focus ring, but always visible.
|
||||||
|
border {
|
||||||
|
// The settings are the same as for the focus ring.
|
||||||
|
// If you enable the border, you probably want to disable the focus ring.
|
||||||
|
off
|
||||||
|
|
||||||
|
width 0
|
||||||
|
active-color "#33CCFF"
|
||||||
|
inactive-color "#595959"
|
||||||
|
|
||||||
|
// Color of the border around windows that request your attention.
|
||||||
|
urgent-color "#9b0000"
|
||||||
|
|
||||||
|
// Gradients can use a few different interpolation color spaces.
|
||||||
|
// For example, this is a pastel rainbow gradient via in="oklch longer hue".
|
||||||
|
//
|
||||||
|
// active-gradient from="#e5989b" to="#ffb4a2" angle=45 relative-to="workspace-view" in="oklch longer hue"
|
||||||
|
|
||||||
|
// inactive-gradient from="#505050" to="#808080" angle=45 relative-to="workspace-view"
|
||||||
|
}
|
||||||
|
|
||||||
|
// You can enable drop shadows for windows.
|
||||||
|
shadow {
|
||||||
|
// Uncomment the next line to enable shadows.
|
||||||
|
on
|
||||||
|
|
||||||
|
// By default, the shadow draws only around its window, and not behind it.
|
||||||
|
// Uncomment this setting to make the shadow draw behind its window.
|
||||||
|
//
|
||||||
|
// Note that niri has no way of knowing about the CSD window corner
|
||||||
|
// radius. It has to assume that windows have square corners, leading to
|
||||||
|
// shadow artifacts inside the CSD rounded corners. This setting fixes
|
||||||
|
// those artifacts.
|
||||||
|
//
|
||||||
|
// However, instead you may want to set prefer-no-csd and/or
|
||||||
|
// geometry-corner-radius. Then, niri will know the corner radius and
|
||||||
|
// draw the shadow correctly, without having to draw it behind the
|
||||||
|
// window. These will also remove client-side shadows if the window
|
||||||
|
// draws any.
|
||||||
|
//
|
||||||
|
// draw-behind-window true
|
||||||
|
|
||||||
|
// You can change how shadows look. The values below are in logical
|
||||||
|
// pixels and match the CSS box-shadow properties.
|
||||||
|
|
||||||
|
// Softness controls the shadow blur radius.
|
||||||
|
softness 30
|
||||||
|
|
||||||
|
// Spread expands the shadow.
|
||||||
|
spread 5
|
||||||
|
|
||||||
|
// Offset moves the shadow relative to the window.
|
||||||
|
offset x=0 y=5
|
||||||
|
|
||||||
|
// You can also change the shadow color and opacity.
|
||||||
|
color "#0007"
|
||||||
|
}
|
||||||
|
|
||||||
|
// Struts shrink the area occupied by windows, similarly to layer-shell panels.
|
||||||
|
// You can think of them as a kind of outer gaps. They are set in logical pixels.
|
||||||
|
// Left and right struts will cause the next window to the side to always be visible.
|
||||||
|
// Top and bottom struts will simply add outer gaps in addition to the area occupied by
|
||||||
|
// layer-shell panels and regular gaps.
|
||||||
|
struts {
|
||||||
|
// left 64
|
||||||
|
// right 64
|
||||||
|
// top 64
|
||||||
|
// bottom 64
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Add lines like this to spawn processes at startup.
|
||||||
|
// Note that running niri as a session supports xdg-desktop-autostart,
|
||||||
|
// which may be more convenient to use.
|
||||||
|
// See the binds section below for more spawn examples.
|
||||||
|
|
||||||
|
// This line starts waybar, a commonly used bar for Wayland compositors.
|
||||||
|
//spawn-at-startup "waybar -c '~/.config/waybar/config.niri'"
|
||||||
|
spawn-at-startup "waybar"
|
||||||
|
spawn-at-startup "mako"
|
||||||
|
spawn-at-startup "footi" "--server"
|
||||||
|
spawn-at-startup "blueman-applet"
|
||||||
|
spawn-at-startup "nm-applet" "--indicator"
|
||||||
|
spawn-at-startup "nextcloud" "--background"
|
||||||
|
spawn-at-startup "swaybg" "-m" "fit" "-i" "/home/brdw/nextcloud/perso/images/wallpapers/travelling-through-galaxies-scifi-27.jpg"
|
||||||
|
|
||||||
|
// To run a shell command (with variables, pipes, etc.), use spawn-sh-at-startup:
|
||||||
|
// spawn-sh-at-startup "qs -c ~/source/qs/MyAwesomeShell"
|
||||||
|
|
||||||
|
hotkey-overlay {
|
||||||
|
// Uncomment this line to disable the "Important Hotkeys" pop-up at startup.
|
||||||
|
skip-at-startup
|
||||||
|
}
|
||||||
|
|
||||||
|
// Uncomment this line to ask the clients to omit their client-side decorations if possible.
|
||||||
|
// If the client will specifically ask for CSD, the request will be honored.
|
||||||
|
// Additionally, clients will be informed that they are tiled, removing some client-side rounded corners.
|
||||||
|
// This option will also fix border/focus ring drawing behind some semitransparent windows.
|
||||||
|
// After enabling or disabling this, you need to restart the apps for this to take effect.
|
||||||
|
prefer-no-csd
|
||||||
|
|
||||||
|
// You can change the path where screenshots are saved.
|
||||||
|
// A ~ at the front will be expanded to the home directory.
|
||||||
|
// The path is formatted with strftime(3) to give you the screenshot date and time.
|
||||||
|
screenshot-path "~/Screenshot from %Y-%m-%d %H-%M-%S.png"
|
||||||
|
|
||||||
|
// You can also set this to null to disable saving screenshots to disk.
|
||||||
|
// screenshot-path null
|
||||||
|
|
||||||
|
// Animation settings.
|
||||||
|
// The wiki explains how to configure individual animations:
|
||||||
|
// https://niri-wm.github.io/niri/Configuration:-Animations
|
||||||
|
animations {
|
||||||
|
// Uncomment to turn off all animations.
|
||||||
|
// off
|
||||||
|
|
||||||
|
// Slow down all animations by this factor. Values below 1 speed them up instead.
|
||||||
|
// slowdown 3.0
|
||||||
|
}
|
||||||
|
|
||||||
|
// Window rules let you adjust behavior for individual windows.
|
||||||
|
// Find more information on the wiki:
|
||||||
|
// https://niri-wm.github.io/niri/Configuration:-Window-Rules
|
||||||
|
|
||||||
|
// Work around WezTerm's initial configure bug
|
||||||
|
// by setting an empty default-column-width.
|
||||||
|
window-rule {
|
||||||
|
// This regular expression is intentionally made as specific as possible,
|
||||||
|
// since this is the default config, and we want no false positives.
|
||||||
|
// You can get away with just app-id="wezterm" if you want.
|
||||||
|
match app-id=r#"^org\.wezfurlong\.wezterm$"#
|
||||||
|
default-column-width {}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Open the Firefox picture-in-picture player as floating by default.
|
||||||
|
window-rule {
|
||||||
|
// This app-id regular expression will work for both:
|
||||||
|
// - host Firefox (app-id is "firefox")
|
||||||
|
// - Flatpak Firefox (app-id is "org.mozilla.firefox")
|
||||||
|
match app-id=r#"firefox$"# title="^Picture-in-Picture$"
|
||||||
|
open-floating true
|
||||||
|
}
|
||||||
|
|
||||||
|
// Example: block out two password managers from screen capture.
|
||||||
|
// (This example rule is commented out with a "/-" in front.)
|
||||||
|
/-window-rule {
|
||||||
|
match app-id=r#"^org\.keepassxc\.KeePassXC$"#
|
||||||
|
match app-id=r#"^org\.gnome\.World\.Secrets$"#
|
||||||
|
|
||||||
|
block-out-from "screen-capture"
|
||||||
|
|
||||||
|
// Use this instead if you want them visible on third-party screenshot tools.
|
||||||
|
// block-out-from "screencast"
|
||||||
|
}
|
||||||
|
|
||||||
|
// Example: enable rounded corners for all windows.
|
||||||
|
// (This example rule is commented out with a "/-" in front.)
|
||||||
|
/-window-rule {
|
||||||
|
|
||||||
|
geometry-corner-radius 12
|
||||||
|
clip-to-geometry true
|
||||||
|
}
|
||||||
|
|
||||||
|
binds {
|
||||||
|
// Keys consist of modifiers separated by + signs, followed by an XKB key name
|
||||||
|
// in the end. To find an XKB name for a particular key, you may use a program
|
||||||
|
// like wev.
|
||||||
|
//
|
||||||
|
// "Mod" is a special modifier equal to Super when running on a TTY, and to Alt
|
||||||
|
// when running as a winit window.
|
||||||
|
//
|
||||||
|
// Most actions that you can bind here can also be invoked programmatically with
|
||||||
|
// `niri msg action do-something`.
|
||||||
|
|
||||||
|
// Mod-Shift-/, which is usually the same as Mod-?,
|
||||||
|
// shows a list of important hotkeys.
|
||||||
|
Mod+Shift+M { show-hotkey-overlay; }
|
||||||
|
|
||||||
|
// Suggested binds for running programs: terminal, app launcher, screen locker.
|
||||||
|
Mod+Return hotkey-overlay-title="Open a Terminal: foot" { spawn "foot"; }
|
||||||
|
Mod+D hotkey-overlay-title="Run an Application: wofi" { spawn "wofi" "--gtk-dark" "--show" "drun"; }
|
||||||
|
Super+Shift+L hotkey-overlay-title="Lock the Screen: swaylock" { spawn "hyprlock"; }
|
||||||
|
|
||||||
|
// Use spawn-sh to run a shell command. Do this if you need pipes, multiple commands, etc.
|
||||||
|
// Note: the entire command goes as a single argument. It's passed verbatim to `sh -c`.
|
||||||
|
// For example, this is a standard bind to toggle the screen reader (orca).
|
||||||
|
Super+Alt+S allow-when-locked=true hotkey-overlay-title=null { spawn-sh "pkill orca || exec orca"; }
|
||||||
|
|
||||||
|
// Example volume keys mappings for PipeWire & WirePlumber.
|
||||||
|
// The allow-when-locked=true property makes them work even when the session is locked.
|
||||||
|
// Using spawn-sh allows to pass multiple arguments together with the command.
|
||||||
|
// "-l 1.0" limits the volume to 100%.
|
||||||
|
XF86AudioRaiseVolume allow-when-locked=true { spawn-sh "wpctl set-volume @DEFAULT_AUDIO_SINK@ 0.1+ -l 1.0"; }
|
||||||
|
XF86AudioLowerVolume allow-when-locked=true { spawn-sh "wpctl set-volume @DEFAULT_AUDIO_SINK@ 0.1-"; }
|
||||||
|
XF86AudioMute allow-when-locked=true { spawn-sh "wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle"; }
|
||||||
|
XF86AudioMicMute allow-when-locked=true { spawn-sh "wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle"; }
|
||||||
|
|
||||||
|
// Example media keys mapping using playerctl.
|
||||||
|
// This will work with any MPRIS-enabled media player.
|
||||||
|
XF86AudioPlay allow-when-locked=true { spawn-sh "playerctl play-pause"; }
|
||||||
|
XF86AudioStop allow-when-locked=true { spawn-sh "playerctl stop"; }
|
||||||
|
XF86AudioPrev allow-when-locked=true { spawn-sh "playerctl previous"; }
|
||||||
|
XF86AudioNext allow-when-locked=true { spawn-sh "playerctl next"; }
|
||||||
|
|
||||||
|
// Example brightness key mappings for brightnessctl.
|
||||||
|
// You can use regular spawn with multiple arguments too (to avoid going through "sh"),
|
||||||
|
// but you need to manually put each argument in separate "" quotes.
|
||||||
|
XF86MonBrightnessUp allow-when-locked=true { spawn "brightnessctl" "--class=backlight" "set" "+10%"; }
|
||||||
|
XF86MonBrightnessDown allow-when-locked=true { spawn "brightnessctl" "--class=backlight" "set" "10%-"; }
|
||||||
|
|
||||||
|
// Open/close the Overview: a zoomed-out view of workspaces and windows.
|
||||||
|
// You can also move the mouse into the top-left hot corner,
|
||||||
|
// or do a four-finger swipe up on a touchpad.
|
||||||
|
Mod+O repeat=false { toggle-overview; }
|
||||||
|
|
||||||
|
Mod+Shift+Q repeat=false { close-window; }
|
||||||
|
|
||||||
|
Mod+Left { focus-column-left; }
|
||||||
|
Mod+Down { focus-window-down; }
|
||||||
|
Mod+Up { focus-window-up; }
|
||||||
|
Mod+Right { focus-column-right; }
|
||||||
|
Mod+H { focus-column-left; }
|
||||||
|
Mod+J { focus-window-down; }
|
||||||
|
Mod+K { focus-window-up; }
|
||||||
|
Mod+L { focus-column-right; }
|
||||||
|
|
||||||
|
Mod+Shift+Left { move-column-left; }
|
||||||
|
Mod+Shift+Down { move-window-down; }
|
||||||
|
Mod+Shift+Up { move-window-up; }
|
||||||
|
Mod+Shift+Right { move-column-right; }
|
||||||
|
Mod+Shift+H { move-column-left; }
|
||||||
|
Mod+Shift+J { move-window-down; }
|
||||||
|
Mod+Shift+K { move-window-up; }
|
||||||
|
Mod+Shift+L { move-column-right; }
|
||||||
|
|
||||||
|
// Alternative commands that move across workspaces when reaching
|
||||||
|
// the first or last window in a column.
|
||||||
|
// Mod+J { focus-window-or-workspace-down; }
|
||||||
|
// Mod+K { focus-window-or-workspace-up; }
|
||||||
|
// Mod+Ctrl+J { move-window-down-or-to-workspace-down; }
|
||||||
|
// Mod+Ctrl+K { move-window-up-or-to-workspace-up; }
|
||||||
|
|
||||||
|
Mod+Home { focus-column-first; }
|
||||||
|
Mod+End { focus-column-last; }
|
||||||
|
Mod+Ctrl+Home { move-column-to-first; }
|
||||||
|
Mod+Ctrl+End { move-column-to-last; }
|
||||||
|
|
||||||
|
Mod+Ctrl+Left { focus-monitor-left; }
|
||||||
|
Mod+Ctrl+Down { focus-monitor-down; }
|
||||||
|
Mod+Ctrl+Up { focus-monitor-up; }
|
||||||
|
Mod+Ctrl+Right { focus-monitor-right; }
|
||||||
|
Mod+Ctrl+H { focus-monitor-left; }
|
||||||
|
Mod+Ctrl+J { focus-monitor-down; }
|
||||||
|
Mod+Ctrl+K { focus-monitor-up; }
|
||||||
|
Mod+Ctrl+L { focus-monitor-right; }
|
||||||
|
|
||||||
|
Mod+Shift+Ctrl+Left { move-column-to-monitor-left; }
|
||||||
|
Mod+Shift+Ctrl+Down { move-column-to-monitor-down; }
|
||||||
|
Mod+Shift+Ctrl+Up { move-column-to-monitor-up; }
|
||||||
|
Mod+Shift+Ctrl+Right { move-column-to-monitor-right; }
|
||||||
|
Mod+Shift+Ctrl+H { move-column-to-monitor-left; }
|
||||||
|
Mod+Shift+Ctrl+J { move-column-to-monitor-down; }
|
||||||
|
Mod+Shift+Ctrl+K { move-column-to-monitor-up; }
|
||||||
|
Mod+Shift+Ctrl+L { move-column-to-monitor-right; }
|
||||||
|
|
||||||
|
// Alternatively, there are commands to move just a single window:
|
||||||
|
// Mod+Shift+Ctrl+Left { move-window-to-monitor-left; }
|
||||||
|
// ...
|
||||||
|
|
||||||
|
// And you can also move a whole workspace to another monitor:
|
||||||
|
// Mod+Shift+Ctrl+Left { move-workspace-to-monitor-left; }
|
||||||
|
// ...
|
||||||
|
|
||||||
|
Mod+Page_Down { focus-workspace-down; }
|
||||||
|
Mod+Page_Up { focus-workspace-up; }
|
||||||
|
Mod+U { focus-workspace-down; }
|
||||||
|
Mod+I { focus-workspace-up; }
|
||||||
|
Mod+Ctrl+Page_Down { move-column-to-workspace-down; }
|
||||||
|
Mod+Ctrl+Page_Up { move-column-to-workspace-up; }
|
||||||
|
Mod+Ctrl+U { move-column-to-workspace-down; }
|
||||||
|
Mod+Ctrl+I { move-column-to-workspace-up; }
|
||||||
|
|
||||||
|
// Alternatively, there are commands to move just a single window:
|
||||||
|
// Mod+Ctrl+Page_Down { move-window-to-workspace-down; }
|
||||||
|
// ...
|
||||||
|
|
||||||
|
Mod+Shift+Page_Down { move-workspace-down; }
|
||||||
|
Mod+Shift+Page_Up { move-workspace-up; }
|
||||||
|
Mod+Shift+U { move-workspace-down; }
|
||||||
|
Mod+Shift+I { move-workspace-up; }
|
||||||
|
|
||||||
|
// You can bind mouse wheel scroll ticks using the following syntax.
|
||||||
|
// These binds will change direction based on the natural-scroll setting.
|
||||||
|
//
|
||||||
|
// To avoid scrolling through workspaces really fast, you can use
|
||||||
|
// the cooldown-ms property. The bind will be rate-limited to this value.
|
||||||
|
// You can set a cooldown on any bind, but it's most useful for the wheel.
|
||||||
|
Mod+WheelScrollDown cooldown-ms=150 { focus-workspace-down; }
|
||||||
|
Mod+WheelScrollUp cooldown-ms=150 { focus-workspace-up; }
|
||||||
|
Mod+Ctrl+WheelScrollDown cooldown-ms=150 { move-column-to-workspace-down; }
|
||||||
|
Mod+Ctrl+WheelScrollUp cooldown-ms=150 { move-column-to-workspace-up; }
|
||||||
|
|
||||||
|
Mod+WheelScrollRight { focus-column-right; }
|
||||||
|
Mod+WheelScrollLeft { focus-column-left; }
|
||||||
|
Mod+Ctrl+WheelScrollRight { move-column-right; }
|
||||||
|
Mod+Ctrl+WheelScrollLeft { move-column-left; }
|
||||||
|
|
||||||
|
// Usually scrolling up and down with Shift in applications results in
|
||||||
|
// horizontal scrolling; these binds replicate that.
|
||||||
|
Mod+Shift+WheelScrollDown { focus-column-right; }
|
||||||
|
Mod+Shift+WheelScrollUp { focus-column-left; }
|
||||||
|
Mod+Ctrl+Shift+WheelScrollDown { move-column-right; }
|
||||||
|
Mod+Ctrl+Shift+WheelScrollUp { move-column-left; }
|
||||||
|
|
||||||
|
// Similarly, you can bind touchpad scroll "ticks".
|
||||||
|
// Touchpad scrolling is continuous, so for these binds it is split into
|
||||||
|
// discrete intervals.
|
||||||
|
// These binds are also affected by touchpad's natural-scroll, so these
|
||||||
|
// example binds are "inverted", since we have natural-scroll enabled for
|
||||||
|
// touchpads by default.
|
||||||
|
// Mod+TouchpadScrollDown { spawn-sh "wpctl set-volume @DEFAULT_AUDIO_SINK@ 0.02+"; }
|
||||||
|
// Mod+TouchpadScrollUp { spawn-sh "wpctl set-volume @DEFAULT_AUDIO_SINK@ 0.02-"; }
|
||||||
|
|
||||||
|
// You can refer to workspaces by index. However, keep in mind that
|
||||||
|
// niri is a dynamic workspace system, so these commands are kind of
|
||||||
|
// "best effort". Trying to refer to a workspace index bigger than
|
||||||
|
// the current workspace count will instead refer to the bottommost
|
||||||
|
// (empty) workspace.
|
||||||
|
//
|
||||||
|
// For example, with 2 workspaces + 1 empty, indices 3, 4, 5 and so on
|
||||||
|
// will all refer to the 3rd workspace.
|
||||||
|
Mod+1 { focus-workspace 1; }
|
||||||
|
Mod+2 { focus-workspace 2; }
|
||||||
|
Mod+3 { focus-workspace 3; }
|
||||||
|
Mod+4 { focus-workspace 4; }
|
||||||
|
Mod+5 { focus-workspace 5; }
|
||||||
|
Mod+6 { focus-workspace 6; }
|
||||||
|
Mod+7 { focus-workspace 7; }
|
||||||
|
Mod+8 { focus-workspace 8; }
|
||||||
|
Mod+9 { focus-workspace 9; }
|
||||||
|
Mod+ampersand { focus-workspace 1; }
|
||||||
|
Mod+eacute { focus-workspace 2; }
|
||||||
|
Mod+quotedbl { focus-workspace 3; }
|
||||||
|
Mod+apostrophe { focus-workspace 4; }
|
||||||
|
Mod+parenleft { focus-workspace 5; }
|
||||||
|
Mod+egrave { focus-workspace 7; }
|
||||||
|
Mod+underscore { focus-workspace 8; }
|
||||||
|
Mod+ccedilla { focus-workspace 9; }
|
||||||
|
Mod+agrave { focus-workspace 10; }
|
||||||
|
|
||||||
|
|
||||||
|
Mod+Ctrl+1 { move-column-to-workspace 1; }
|
||||||
|
Mod+Ctrl+2 { move-column-to-workspace 2; }
|
||||||
|
Mod+Ctrl+3 { move-column-to-workspace 3; }
|
||||||
|
Mod+Ctrl+4 { move-column-to-workspace 4; }
|
||||||
|
Mod+Ctrl+5 { move-column-to-workspace 5; }
|
||||||
|
Mod+Ctrl+6 { move-column-to-workspace 6; }
|
||||||
|
Mod+Ctrl+7 { move-column-to-workspace 7; }
|
||||||
|
Mod+Ctrl+8 { move-column-to-workspace 8; }
|
||||||
|
Mod+Ctrl+9 { move-column-to-workspace 9; }
|
||||||
|
Mod+Ctrl+ampersand { move-column-to-workspace 1; }
|
||||||
|
Mod+Ctrl+eacute { move-column-to-workspace 2; }
|
||||||
|
Mod+Ctrl+quotedbl { move-column-to-workspace 3; }
|
||||||
|
Mod+Ctrl+apostrophe { move-column-to-workspace 4; }
|
||||||
|
Mod+Ctrl+parenleft { move-column-to-workspace 5; }
|
||||||
|
Mod+Ctrl+egrave { move-column-to-workspace 6; }
|
||||||
|
Mod+Ctrl+underscore { move-column-to-workspace 7; }
|
||||||
|
Mod+Ctrl+ccedilla { move-column-to-workspace 8; }
|
||||||
|
Mod+Ctrl+agrave { move-column-to-workspace 9; }
|
||||||
|
|
||||||
|
// Alternatively, there are commands to move just a single window:
|
||||||
|
// Mod+Ctrl+1 { move-window-to-workspace 1; }
|
||||||
|
|
||||||
|
// Switches focus between the current and the previous workspace.
|
||||||
|
// Mod+Tab { focus-workspace-previous; }
|
||||||
|
|
||||||
|
// The following binds move the focused window in and out of a column.
|
||||||
|
// If the window is alone, they will consume it into the nearby column to the side.
|
||||||
|
// If the window is already in a column, they will expel it out.
|
||||||
|
Mod+BracketLeft { consume-or-expel-window-left; }
|
||||||
|
Mod+BracketRight { consume-or-expel-window-right; }
|
||||||
|
|
||||||
|
// Consume one window from the right to the bottom of the focused column.
|
||||||
|
Mod+Comma { consume-window-into-column; }
|
||||||
|
// Expel the bottom window from the focused column to the right.
|
||||||
|
Mod+semicolon { expel-window-from-column; }
|
||||||
|
|
||||||
|
// Cycle through widths set in preset-column-widths.
|
||||||
|
Mod+R { switch-preset-column-width; }
|
||||||
|
// Cycling through the presets in reverse order is also possible.
|
||||||
|
Mod+Shift+R { switch-preset-column-width-back; }
|
||||||
|
|
||||||
|
Mod+Ctrl+Shift+R { switch-preset-window-height; }
|
||||||
|
Mod+Ctrl+R { reset-window-height; }
|
||||||
|
|
||||||
|
Mod+F { maximize-column; }
|
||||||
|
Mod+Shift+F { fullscreen-window; }
|
||||||
|
|
||||||
|
// While maximize-column leaves gaps and borders around the window,
|
||||||
|
// maximize-window-to-edges doesn't: the window expands to the edges of the screen.
|
||||||
|
// This bind corresponds to normal window maximizing,
|
||||||
|
// e.g. by double-clicking on the titlebar.
|
||||||
|
Mod+M { maximize-window-to-edges; }
|
||||||
|
|
||||||
|
// Expand the focused column to space not taken up by other fully visible columns.
|
||||||
|
// Makes the column "fill the rest of the space".
|
||||||
|
Mod+Ctrl+F { expand-column-to-available-width; }
|
||||||
|
|
||||||
|
Mod+C { center-column; }
|
||||||
|
|
||||||
|
// Center all fully visible columns on screen.
|
||||||
|
Mod+Ctrl+C { center-visible-columns; }
|
||||||
|
|
||||||
|
// Finer width adjustments.
|
||||||
|
// This command can also:
|
||||||
|
// * set width in pixels: "1000"
|
||||||
|
// * adjust width in pixels: "-5" or "+5"
|
||||||
|
// * set width as a percentage of screen width: "25%"
|
||||||
|
// * adjust width as a percentage of screen width: "-10%" or "+10%"
|
||||||
|
// Pixel sizes use logical, or scaled, pixels. I.e. on an output with scale 2.0,
|
||||||
|
// set-column-width "100" will make the column occupy 200 physical screen pixels.
|
||||||
|
Mod+Minus { set-column-width "-10%"; }
|
||||||
|
Mod+Equal { set-column-width "+10%"; }
|
||||||
|
|
||||||
|
// Finer height adjustments when in column with other windows.
|
||||||
|
Mod+Shift+Minus { set-window-height "-10%"; }
|
||||||
|
Mod+Shift+Equal { set-window-height "+10%"; }
|
||||||
|
|
||||||
|
// Move the focused window between the floating and the tiling layout.
|
||||||
|
Mod+Space { toggle-window-floating; }
|
||||||
|
Mod+Shift+Space { switch-focus-between-floating-and-tiling; }
|
||||||
|
|
||||||
|
// Toggle tabbed column display mode.
|
||||||
|
// Windows in this column will appear as vertical tabs,
|
||||||
|
// rather than stacked on top of each other.
|
||||||
|
Mod+W { toggle-column-tabbed-display; }
|
||||||
|
|
||||||
|
// Actions to switch layouts.
|
||||||
|
// Note: if you uncomment these, make sure you do NOT have
|
||||||
|
// a matching layout switch hotkey configured in xkb options above.
|
||||||
|
// Having both at once on the same hotkey will break the switching,
|
||||||
|
// since it will switch twice upon pressing the hotkey (once by xkb, once by niri).
|
||||||
|
// Mod+Space { switch-layout "next"; }
|
||||||
|
// Mod+Shift+Space { switch-layout "prev"; }
|
||||||
|
|
||||||
|
Print { screenshot; }
|
||||||
|
Ctrl+Print { screenshot-screen; }
|
||||||
|
Alt+Print { screenshot-window; }
|
||||||
|
|
||||||
|
// Applications such as remote-desktop clients and software KVM switches may
|
||||||
|
// request that niri stops processing the keyboard shortcuts defined here
|
||||||
|
// so they may, for example, forward the key presses as-is to a remote machine.
|
||||||
|
// It's a good idea to bind an escape hatch to toggle the inhibitor,
|
||||||
|
// so a buggy application can't hold your session hostage.
|
||||||
|
//
|
||||||
|
// The allow-inhibiting=false property can be applied to other binds as well,
|
||||||
|
// which ensures niri always processes them, even when an inhibitor is active.
|
||||||
|
Mod+Escape allow-inhibiting=false { toggle-keyboard-shortcuts-inhibit; }
|
||||||
|
|
||||||
|
// The quit action will show a confirmation dialog to avoid accidental exits.
|
||||||
|
Mod+Shift+E { quit; }
|
||||||
|
|
||||||
|
// Powers off the monitors. To turn them back on, do any input like
|
||||||
|
// moving the mouse or pressing any other key.
|
||||||
|
Mod+Shift+P { power-off-monitors; }
|
||||||
|
}
|
||||||
+166
-105
@@ -1,67 +1,36 @@
|
|||||||
" vim-plug: Vim plugin manager
|
" vim-plug: Vim plugin manager
|
||||||
" ============================
|
" ============================
|
||||||
"
|
"
|
||||||
" Download plug.vim and put it in ~/.vim/autoload
|
" 1. Download plug.vim and put it in 'autoload' directory
|
||||||
"
|
"
|
||||||
|
" # Vim
|
||||||
" curl -fLo ~/.vim/autoload/plug.vim --create-dirs \
|
" curl -fLo ~/.vim/autoload/plug.vim --create-dirs \
|
||||||
" https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim
|
" https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim
|
||||||
"
|
"
|
||||||
" Edit your .vimrc
|
" # Neovim
|
||||||
|
" sh -c 'curl -fLo "${XDG_DATA_HOME:-$HOME/.local/share}"/nvim/site/autoload/plug.vim --create-dirs \
|
||||||
|
" https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim'
|
||||||
"
|
"
|
||||||
" call plug#begin('~/.vim/plugged')
|
" 2. Add a vim-plug section to your ~/.vimrc (or ~/.config/nvim/init.vim for Neovim)
|
||||||
"
|
"
|
||||||
" " Make sure you use single quotes
|
" call plug#begin()
|
||||||
"
|
"
|
||||||
" " Shorthand notation; fetches https://github.com/junegunn/vim-easy-align
|
" " List your plugins here
|
||||||
" Plug 'junegunn/vim-easy-align'
|
" Plug 'tpope/vim-sensible'
|
||||||
"
|
"
|
||||||
" " Any valid git URL is allowed
|
|
||||||
" Plug 'https://github.com/junegunn/vim-github-dashboard.git'
|
|
||||||
"
|
|
||||||
" " Multiple Plug commands can be written in a single line using | separators
|
|
||||||
" Plug 'SirVer/ultisnips' | Plug 'honza/vim-snippets'
|
|
||||||
"
|
|
||||||
" " On-demand loading
|
|
||||||
" Plug 'scrooloose/nerdtree', { 'on': 'NERDTreeToggle' }
|
|
||||||
" Plug 'tpope/vim-fireplace', { 'for': 'clojure' }
|
|
||||||
"
|
|
||||||
" " Using a non-default branch
|
|
||||||
" Plug 'rdnetto/YCM-Generator', { 'branch': 'stable' }
|
|
||||||
"
|
|
||||||
" " Using a tagged release; wildcard allowed (requires git 1.9.2 or above)
|
|
||||||
" Plug 'fatih/vim-go', { 'tag': '*' }
|
|
||||||
"
|
|
||||||
" " Plugin options
|
|
||||||
" Plug 'nsf/gocode', { 'tag': 'v.20150303', 'rtp': 'vim' }
|
|
||||||
"
|
|
||||||
" " Plugin outside ~/.vim/plugged with post-update hook
|
|
||||||
" Plug 'junegunn/fzf', { 'dir': '~/.fzf', 'do': './install --all' }
|
|
||||||
"
|
|
||||||
" " Unmanaged plugin (manually installed and updated)
|
|
||||||
" Plug '~/my-prototype-plugin'
|
|
||||||
"
|
|
||||||
" " Initialize plugin system
|
|
||||||
" call plug#end()
|
" call plug#end()
|
||||||
"
|
"
|
||||||
" Then reload .vimrc and :PlugInstall to install plugins.
|
" 3. Reload the file or restart Vim, then you can,
|
||||||
"
|
"
|
||||||
" Plug options:
|
" :PlugInstall to install plugins
|
||||||
|
" :PlugUpdate to update plugins
|
||||||
|
" :PlugDiff to review the changes from the last update
|
||||||
|
" :PlugClean to remove plugins no longer in the list
|
||||||
"
|
"
|
||||||
"| Option | Description |
|
" For more information, see https://github.com/junegunn/vim-plug
|
||||||
"| ----------------------- | ------------------------------------------------ |
|
|
||||||
"| `branch`/`tag`/`commit` | Branch/tag/commit of the repository to use |
|
|
||||||
"| `rtp` | Subdirectory that contains Vim plugin |
|
|
||||||
"| `dir` | Custom directory for the plugin |
|
|
||||||
"| `as` | Use different name for the plugin |
|
|
||||||
"| `do` | Post-update hook (string or funcref) |
|
|
||||||
"| `on` | On-demand loading: Commands or `<Plug>`-mappings |
|
|
||||||
"| `for` | On-demand loading: File types |
|
|
||||||
"| `frozen` | Do not update unless explicitly specified |
|
|
||||||
"
|
|
||||||
" More information: https://github.com/junegunn/vim-plug
|
|
||||||
"
|
"
|
||||||
"
|
"
|
||||||
" Copyright (c) 2017 Junegunn Choi
|
" Copyright (c) 2024 Junegunn Choi
|
||||||
"
|
"
|
||||||
" MIT License
|
" MIT License
|
||||||
"
|
"
|
||||||
@@ -238,10 +207,11 @@ endfunction
|
|||||||
|
|
||||||
function! plug#begin(...)
|
function! plug#begin(...)
|
||||||
if a:0 > 0
|
if a:0 > 0
|
||||||
let s:plug_home_org = a:1
|
|
||||||
let home = s:path(s:plug_fnamemodify(s:plug_expand(a:1), ':p'))
|
let home = s:path(s:plug_fnamemodify(s:plug_expand(a:1), ':p'))
|
||||||
elseif exists('g:plug_home')
|
elseif exists('g:plug_home')
|
||||||
let home = s:path(g:plug_home)
|
let home = s:path(g:plug_home)
|
||||||
|
elseif has('nvim')
|
||||||
|
let home = stdpath('data') . '/plugged'
|
||||||
elseif !empty(&rtp)
|
elseif !empty(&rtp)
|
||||||
let home = s:path(split(&rtp, ',')[0]) . '/plugged'
|
let home = s:path(split(&rtp, ',')[0]) . '/plugged'
|
||||||
else
|
else
|
||||||
@@ -350,7 +320,7 @@ function! plug#end()
|
|||||||
endif
|
endif
|
||||||
let lod = { 'ft': {}, 'map': {}, 'cmd': {} }
|
let lod = { 'ft': {}, 'map': {}, 'cmd': {} }
|
||||||
|
|
||||||
if exists('g:did_load_filetypes')
|
if get(g:, 'did_load_filetypes', 0)
|
||||||
filetype off
|
filetype off
|
||||||
endif
|
endif
|
||||||
for name in g:plugs_order
|
for name in g:plugs_order
|
||||||
@@ -389,6 +359,9 @@ function! plug#end()
|
|||||||
if !empty(types)
|
if !empty(types)
|
||||||
augroup filetypedetect
|
augroup filetypedetect
|
||||||
call s:source(s:rtp(plug), 'ftdetect/**/*.vim', 'after/ftdetect/**/*.vim')
|
call s:source(s:rtp(plug), 'ftdetect/**/*.vim', 'after/ftdetect/**/*.vim')
|
||||||
|
if has('nvim-0.5.0')
|
||||||
|
call s:source(s:rtp(plug), 'ftdetect/**/*.lua', 'after/ftdetect/**/*.lua')
|
||||||
|
endif
|
||||||
augroup END
|
augroup END
|
||||||
endif
|
endif
|
||||||
for type in types
|
for type in types
|
||||||
@@ -405,7 +378,7 @@ function! plug#end()
|
|||||||
|
|
||||||
for [map, names] in items(lod.map)
|
for [map, names] in items(lod.map)
|
||||||
for [mode, map_prefix, key_prefix] in
|
for [mode, map_prefix, key_prefix] in
|
||||||
\ [['i', '<C-O>', ''], ['n', '', ''], ['v', '', 'gv'], ['o', '', '']]
|
\ [['i', '<C-\><C-O>', ''], ['n', '', ''], ['v', '', 'gv'], ['o', '', '']]
|
||||||
execute printf(
|
execute printf(
|
||||||
\ '%snoremap <silent> %s %s:<C-U>call <SID>lod_map(%s, %s, %s, "%s")<CR>',
|
\ '%snoremap <silent> %s %s:<C-U>call <SID>lod_map(%s, %s, %s, "%s")<CR>',
|
||||||
\ mode, map, map_prefix, string(map), string(names), mode != 'i', key_prefix)
|
\ mode, map, map_prefix, string(map), string(names), mode != 'i', key_prefix)
|
||||||
@@ -436,6 +409,9 @@ endfunction
|
|||||||
|
|
||||||
function! s:load_plugin(spec)
|
function! s:load_plugin(spec)
|
||||||
call s:source(s:rtp(a:spec), 'plugin/**/*.vim', 'after/plugin/**/*.vim')
|
call s:source(s:rtp(a:spec), 'plugin/**/*.vim', 'after/plugin/**/*.vim')
|
||||||
|
if has('nvim-0.5.0')
|
||||||
|
call s:source(s:rtp(a:spec), 'plugin/**/*.lua', 'after/plugin/**/*.lua')
|
||||||
|
endif
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
function! s:reload_plugins()
|
function! s:reload_plugins()
|
||||||
@@ -653,6 +629,9 @@ function! s:lod(names, types, ...)
|
|||||||
let rtp = s:rtp(g:plugs[name])
|
let rtp = s:rtp(g:plugs[name])
|
||||||
for dir in a:types
|
for dir in a:types
|
||||||
call s:source(rtp, dir.'/**/*.vim')
|
call s:source(rtp, dir.'/**/*.vim')
|
||||||
|
if has('nvim-0.5.0') " see neovim#14686
|
||||||
|
call s:source(rtp, dir.'/**/*.lua')
|
||||||
|
endif
|
||||||
endfor
|
endfor
|
||||||
if a:0
|
if a:0
|
||||||
if !s:source(rtp, a:1) && !empty(s:glob(rtp, a:2))
|
if !s:source(rtp, a:1) && !empty(s:glob(rtp, a:2))
|
||||||
@@ -804,10 +783,11 @@ endfunction
|
|||||||
function! s:syntax()
|
function! s:syntax()
|
||||||
syntax clear
|
syntax clear
|
||||||
syntax region plug1 start=/\%1l/ end=/\%2l/ contains=plugNumber
|
syntax region plug1 start=/\%1l/ end=/\%2l/ contains=plugNumber
|
||||||
syntax region plug2 start=/\%2l/ end=/\%3l/ contains=plugBracket,plugX
|
syntax region plug2 start=/\%2l/ end=/\%3l/ contains=plugBracket,plugX,plugAbort
|
||||||
syn match plugNumber /[0-9]\+[0-9.]*/ contained
|
syn match plugNumber /[0-9]\+[0-9.]*/ contained
|
||||||
syn match plugBracket /[[\]]/ contained
|
syn match plugBracket /[[\]]/ contained
|
||||||
syn match plugX /x/ contained
|
syn match plugX /x/ contained
|
||||||
|
syn match plugAbort /\~/ contained
|
||||||
syn match plugDash /^-\{1}\ /
|
syn match plugDash /^-\{1}\ /
|
||||||
syn match plugPlus /^+/
|
syn match plugPlus /^+/
|
||||||
syn match plugStar /^*/
|
syn match plugStar /^*/
|
||||||
@@ -832,6 +812,7 @@ function! s:syntax()
|
|||||||
hi def link plug2 Repeat
|
hi def link plug2 Repeat
|
||||||
hi def link plugH2 Type
|
hi def link plugH2 Type
|
||||||
hi def link plugX Exception
|
hi def link plugX Exception
|
||||||
|
hi def link plugAbort Ignore
|
||||||
hi def link plugBracket Structure
|
hi def link plugBracket Structure
|
||||||
hi def link plugNumber Number
|
hi def link plugNumber Number
|
||||||
|
|
||||||
@@ -867,7 +848,7 @@ function! s:lastline(msg)
|
|||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
function! s:new_window()
|
function! s:new_window()
|
||||||
execute get(g:, 'plug_window', 'vertical topleft new')
|
execute get(g:, 'plug_window', '-tabnew')
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
function! s:plug_window_exists()
|
function! s:plug_window_exists()
|
||||||
@@ -929,7 +910,7 @@ function! s:prepare(...)
|
|||||||
endif
|
endif
|
||||||
endfor
|
endfor
|
||||||
|
|
||||||
call s:job_abort()
|
call s:job_abort(0)
|
||||||
if s:switch_in()
|
if s:switch_in()
|
||||||
if b:plug_preview == 1
|
if b:plug_preview == 1
|
||||||
pc
|
pc
|
||||||
@@ -965,6 +946,8 @@ function! s:close_pane()
|
|||||||
if b:plug_preview == 1
|
if b:plug_preview == 1
|
||||||
pc
|
pc
|
||||||
let b:plug_preview = -1
|
let b:plug_preview = -1
|
||||||
|
elseif exists('s:jobs') && !empty(s:jobs)
|
||||||
|
call s:job_abort(1)
|
||||||
else
|
else
|
||||||
bd
|
bd
|
||||||
endif
|
endif
|
||||||
@@ -1029,6 +1012,11 @@ function! s:is_updated(dir)
|
|||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
function! s:do(pull, force, todo)
|
function! s:do(pull, force, todo)
|
||||||
|
if has('nvim')
|
||||||
|
" Reset &rtp to invalidate Neovim cache of loaded Lua modules
|
||||||
|
" See https://github.com/junegunn/vim-plug/pull/1157#issuecomment-1809226110
|
||||||
|
let &rtp = &rtp
|
||||||
|
endif
|
||||||
for [name, spec] in items(a:todo)
|
for [name, spec] in items(a:todo)
|
||||||
if !isdirectory(spec.dir)
|
if !isdirectory(spec.dir)
|
||||||
continue
|
continue
|
||||||
@@ -1090,12 +1078,14 @@ endfunction
|
|||||||
function! s:checkout(spec)
|
function! s:checkout(spec)
|
||||||
let sha = a:spec.commit
|
let sha = a:spec.commit
|
||||||
let output = s:git_revision(a:spec.dir)
|
let output = s:git_revision(a:spec.dir)
|
||||||
|
let error = 0
|
||||||
if !empty(output) && !s:hash_match(sha, s:lines(output)[0])
|
if !empty(output) && !s:hash_match(sha, s:lines(output)[0])
|
||||||
let credential_helper = s:git_version_requirement(2) ? '-c credential.helper= ' : ''
|
let credential_helper = s:git_version_requirement(2) ? '-c credential.helper= ' : ''
|
||||||
let output = s:system(
|
let output = s:system(
|
||||||
\ 'git '.credential_helper.'fetch --depth 999999 && git checkout '.plug#shellescape(sha).' --', a:spec.dir)
|
\ 'git '.credential_helper.'fetch --depth 999999 && git checkout '.plug#shellescape(sha).' --', a:spec.dir)
|
||||||
|
let error = v:shell_error
|
||||||
endif
|
endif
|
||||||
return output
|
return [output, error]
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
function! s:finish(pull)
|
function! s:finish(pull)
|
||||||
@@ -1156,7 +1146,7 @@ function! s:update_impl(pull, force, args) abort
|
|||||||
let threads = (len(args) > 0 && args[-1] =~ '^[1-9][0-9]*$') ?
|
let threads = (len(args) > 0 && args[-1] =~ '^[1-9][0-9]*$') ?
|
||||||
\ remove(args, -1) : get(g:, 'plug_threads', 16)
|
\ remove(args, -1) : get(g:, 'plug_threads', 16)
|
||||||
|
|
||||||
let managed = filter(copy(g:plugs), 's:is_managed(v:key)')
|
let managed = filter(deepcopy(g:plugs), 's:is_managed(v:key)')
|
||||||
let todo = empty(args) ? filter(managed, '!v:val.frozen || !isdirectory(v:val.dir)') :
|
let todo = empty(args) ? filter(managed, '!v:val.frozen || !isdirectory(v:val.dir)') :
|
||||||
\ filter(managed, 'index(args, v:key) >= 0')
|
\ filter(managed, 'index(args, v:key) >= 0')
|
||||||
|
|
||||||
@@ -1290,9 +1280,11 @@ function! s:update_finish()
|
|||||||
if !pos
|
if !pos
|
||||||
continue
|
continue
|
||||||
endif
|
endif
|
||||||
|
let out = ''
|
||||||
|
let error = 0
|
||||||
if has_key(spec, 'commit')
|
if has_key(spec, 'commit')
|
||||||
call s:log4(name, 'Checking out '.spec.commit)
|
call s:log4(name, 'Checking out '.spec.commit)
|
||||||
let out = s:checkout(spec)
|
let [out, error] = s:checkout(spec)
|
||||||
elseif has_key(spec, 'tag')
|
elseif has_key(spec, 'tag')
|
||||||
let tag = spec.tag
|
let tag = spec.tag
|
||||||
if tag =~ '\*'
|
if tag =~ '\*'
|
||||||
@@ -1305,19 +1297,16 @@ function! s:update_finish()
|
|||||||
endif
|
endif
|
||||||
call s:log4(name, 'Checking out '.tag)
|
call s:log4(name, 'Checking out '.tag)
|
||||||
let out = s:system('git checkout -q '.plug#shellescape(tag).' -- 2>&1', spec.dir)
|
let out = s:system('git checkout -q '.plug#shellescape(tag).' -- 2>&1', spec.dir)
|
||||||
else
|
let error = v:shell_error
|
||||||
let branch = s:git_origin_branch(spec)
|
|
||||||
call s:log4(name, 'Merging origin/'.s:esc(branch))
|
|
||||||
let out = s:system('git checkout -q '.plug#shellescape(branch).' -- 2>&1'
|
|
||||||
\. (has_key(s:update.new, name) ? '' : ('&& git merge --ff-only '.plug#shellescape('origin/'.branch).' 2>&1')), spec.dir)
|
|
||||||
endif
|
endif
|
||||||
if !v:shell_error && filereadable(spec.dir.'/.gitmodules') &&
|
if !error && filereadable(spec.dir.'/.gitmodules') &&
|
||||||
\ (s:update.force || has_key(s:update.new, name) || s:is_updated(spec.dir))
|
\ (s:update.force || has_key(s:update.new, name) || s:is_updated(spec.dir))
|
||||||
call s:log4(name, 'Updating submodules. This may take a while.')
|
call s:log4(name, 'Updating submodules. This may take a while.')
|
||||||
let out .= s:bang('git submodule update --init --recursive'.s:submodule_opt.' 2>&1', spec.dir)
|
let out .= s:bang('git submodule update --init --recursive'.s:submodule_opt.' 2>&1', spec.dir)
|
||||||
|
let error = v:shell_error
|
||||||
endif
|
endif
|
||||||
let msg = s:format_message(v:shell_error ? 'x': '-', name, out)
|
let msg = s:format_message(v:shell_error ? 'x': '-', name, out)
|
||||||
if v:shell_error
|
if error
|
||||||
call add(s:update.errors, name)
|
call add(s:update.errors, name)
|
||||||
call s:regress_bar()
|
call s:regress_bar()
|
||||||
silent execute pos 'd _'
|
silent execute pos 'd _'
|
||||||
@@ -1341,7 +1330,12 @@ function! s:update_finish()
|
|||||||
endif
|
endif
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
function! s:job_abort()
|
function! s:mark_aborted(name, message)
|
||||||
|
let attrs = { 'running': 0, 'error': 1, 'abort': 1, 'lines': [a:message] }
|
||||||
|
let s:jobs[a:name] = extend(get(s:jobs, a:name, {}), attrs)
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
function! s:job_abort(cancel)
|
||||||
if (!s:nvim && !s:vim8) || !exists('s:jobs')
|
if (!s:nvim && !s:vim8) || !exists('s:jobs')
|
||||||
return
|
return
|
||||||
endif
|
endif
|
||||||
@@ -1355,8 +1349,18 @@ function! s:job_abort()
|
|||||||
if j.new
|
if j.new
|
||||||
call s:rm_rf(g:plugs[name].dir)
|
call s:rm_rf(g:plugs[name].dir)
|
||||||
endif
|
endif
|
||||||
|
if a:cancel
|
||||||
|
call s:mark_aborted(name, 'Aborted')
|
||||||
|
endif
|
||||||
endfor
|
endfor
|
||||||
let s:jobs = {}
|
|
||||||
|
if a:cancel
|
||||||
|
for todo in values(s:update.todo)
|
||||||
|
let todo.abort = 1
|
||||||
|
endfor
|
||||||
|
else
|
||||||
|
let s:jobs = {}
|
||||||
|
endif
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
function! s:last_non_empty_line(lines)
|
function! s:last_non_empty_line(lines)
|
||||||
@@ -1370,6 +1374,16 @@ function! s:last_non_empty_line(lines)
|
|||||||
return ''
|
return ''
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
|
function! s:bullet_for(job, ...)
|
||||||
|
if a:job.running
|
||||||
|
return a:job.new ? '+' : '*'
|
||||||
|
endif
|
||||||
|
if get(a:job, 'abort', 0)
|
||||||
|
return '~'
|
||||||
|
endif
|
||||||
|
return a:job.error ? 'x' : get(a:000, 0, '-')
|
||||||
|
endfunction
|
||||||
|
|
||||||
function! s:job_out_cb(self, data) abort
|
function! s:job_out_cb(self, data) abort
|
||||||
let self = a:self
|
let self = a:self
|
||||||
let data = remove(self.lines, -1) . a:data
|
let data = remove(self.lines, -1) . a:data
|
||||||
@@ -1378,9 +1392,10 @@ function! s:job_out_cb(self, data) abort
|
|||||||
" To reduce the number of buffer updates
|
" To reduce the number of buffer updates
|
||||||
let self.tick = get(self, 'tick', -1) + 1
|
let self.tick = get(self, 'tick', -1) + 1
|
||||||
if !self.running || self.tick % len(s:jobs) == 0
|
if !self.running || self.tick % len(s:jobs) == 0
|
||||||
let bullet = self.running ? (self.new ? '+' : '*') : (self.error ? 'x' : '-')
|
|
||||||
let result = self.error ? join(self.lines, "\n") : s:last_non_empty_line(self.lines)
|
let result = self.error ? join(self.lines, "\n") : s:last_non_empty_line(self.lines)
|
||||||
call s:log(bullet, self.name, result)
|
if len(result)
|
||||||
|
call s:log(s:bullet_for(self), self.name, result)
|
||||||
|
endif
|
||||||
endif
|
endif
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
@@ -1393,7 +1408,7 @@ endfunction
|
|||||||
|
|
||||||
function! s:job_cb(fn, job, ch, data)
|
function! s:job_cb(fn, job, ch, data)
|
||||||
if !s:plug_window_exists() " plug window closed
|
if !s:plug_window_exists() " plug window closed
|
||||||
return s:job_abort()
|
return s:job_abort(0)
|
||||||
endif
|
endif
|
||||||
call call(a:fn, [a:job, a:data])
|
call call(a:fn, [a:job, a:data])
|
||||||
endfunction
|
endfunction
|
||||||
@@ -1404,16 +1419,17 @@ function! s:nvim_cb(job_id, data, event) dict abort
|
|||||||
\ s:job_cb('s:job_exit_cb', self, 0, a:data)
|
\ s:job_cb('s:job_exit_cb', self, 0, a:data)
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
function! s:spawn(name, cmd, opts)
|
function! s:spawn(name, spec, queue, opts)
|
||||||
let job = { 'name': a:name, 'running': 1, 'error': 0, 'lines': [''],
|
let job = { 'name': a:name, 'spec': a:spec, 'running': 1, 'error': 0, 'lines': [''],
|
||||||
\ 'new': get(a:opts, 'new', 0) }
|
\ 'new': get(a:opts, 'new', 0), 'queue': copy(a:queue) }
|
||||||
|
let Item = remove(job.queue, 0)
|
||||||
|
let argv = type(Item) == s:TYPE.funcref ? call(Item, [a:spec]) : Item
|
||||||
let s:jobs[a:name] = job
|
let s:jobs[a:name] = job
|
||||||
|
|
||||||
if s:nvim
|
if s:nvim
|
||||||
if has_key(a:opts, 'dir')
|
if has_key(a:opts, 'dir')
|
||||||
let job.cwd = a:opts.dir
|
let job.cwd = a:opts.dir
|
||||||
endif
|
endif
|
||||||
let argv = a:cmd
|
|
||||||
call extend(job, {
|
call extend(job, {
|
||||||
\ 'on_stdout': function('s:nvim_cb'),
|
\ 'on_stdout': function('s:nvim_cb'),
|
||||||
\ 'on_stderr': function('s:nvim_cb'),
|
\ 'on_stderr': function('s:nvim_cb'),
|
||||||
@@ -1429,7 +1445,7 @@ function! s:spawn(name, cmd, opts)
|
|||||||
\ 'Invalid arguments (or job table is full)']
|
\ 'Invalid arguments (or job table is full)']
|
||||||
endif
|
endif
|
||||||
elseif s:vim8
|
elseif s:vim8
|
||||||
let cmd = join(map(copy(a:cmd), 'plug#shellescape(v:val, {"script": 0})'))
|
let cmd = join(map(copy(argv), 'plug#shellescape(v:val, {"script": 0})'))
|
||||||
if has_key(a:opts, 'dir')
|
if has_key(a:opts, 'dir')
|
||||||
let cmd = s:with_cd(cmd, a:opts.dir, 0)
|
let cmd = s:with_cd(cmd, a:opts.dir, 0)
|
||||||
endif
|
endif
|
||||||
@@ -1449,27 +1465,33 @@ function! s:spawn(name, cmd, opts)
|
|||||||
let job.lines = ['Failed to start job']
|
let job.lines = ['Failed to start job']
|
||||||
endif
|
endif
|
||||||
else
|
else
|
||||||
let job.lines = s:lines(call('s:system', has_key(a:opts, 'dir') ? [a:cmd, a:opts.dir] : [a:cmd]))
|
let job.lines = s:lines(call('s:system', has_key(a:opts, 'dir') ? [argv, a:opts.dir] : [argv]))
|
||||||
let job.error = v:shell_error != 0
|
let job.error = v:shell_error != 0
|
||||||
let job.running = 0
|
let job.running = 0
|
||||||
endif
|
endif
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
function! s:reap(name)
|
function! s:reap(name)
|
||||||
let job = s:jobs[a:name]
|
let job = remove(s:jobs, a:name)
|
||||||
if job.error
|
if job.error
|
||||||
call add(s:update.errors, a:name)
|
call add(s:update.errors, a:name)
|
||||||
elseif get(job, 'new', 0)
|
elseif get(job, 'new', 0)
|
||||||
let s:update.new[a:name] = 1
|
let s:update.new[a:name] = 1
|
||||||
endif
|
endif
|
||||||
let s:update.bar .= job.error ? 'x' : '='
|
|
||||||
|
|
||||||
let bullet = job.error ? 'x' : '-'
|
let more = len(get(job, 'queue', []))
|
||||||
let result = job.error ? join(job.lines, "\n") : s:last_non_empty_line(job.lines)
|
let result = job.error ? join(job.lines, "\n") : s:last_non_empty_line(job.lines)
|
||||||
call s:log(bullet, a:name, empty(result) ? 'OK' : result)
|
if len(result)
|
||||||
call s:bar()
|
call s:log(s:bullet_for(job), a:name, result)
|
||||||
|
endif
|
||||||
|
|
||||||
call remove(s:jobs, a:name)
|
if !job.error && more
|
||||||
|
let job.spec.queue = job.queue
|
||||||
|
let s:update.todo[a:name] = job.spec
|
||||||
|
else
|
||||||
|
let s:update.bar .= s:bullet_for(job, '=')
|
||||||
|
call s:bar()
|
||||||
|
endif
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
function! s:bar()
|
function! s:bar()
|
||||||
@@ -1522,6 +1544,16 @@ function! s:update_vim()
|
|||||||
call s:tick()
|
call s:tick()
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
|
function! s:checkout_command(spec)
|
||||||
|
let a:spec.branch = s:git_origin_branch(a:spec)
|
||||||
|
return ['git', 'checkout', '-q', a:spec.branch, '--']
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
function! s:merge_command(spec)
|
||||||
|
let a:spec.branch = s:git_origin_branch(a:spec)
|
||||||
|
return ['git', 'merge', '--ff-only', 'origin/'.a:spec.branch]
|
||||||
|
endfunction
|
||||||
|
|
||||||
function! s:tick()
|
function! s:tick()
|
||||||
let pull = s:update.pull
|
let pull = s:update.pull
|
||||||
let prog = s:progress_opt(s:nvim || s:vim8)
|
let prog = s:progress_opt(s:nvim || s:vim8)
|
||||||
@@ -1536,13 +1568,24 @@ while 1 " Without TCO, Vim stack is bound to explode
|
|||||||
|
|
||||||
let name = keys(s:update.todo)[0]
|
let name = keys(s:update.todo)[0]
|
||||||
let spec = remove(s:update.todo, name)
|
let spec = remove(s:update.todo, name)
|
||||||
let new = empty(globpath(spec.dir, '.git', 1))
|
if get(spec, 'abort', 0)
|
||||||
|
call s:mark_aborted(name, 'Skipped')
|
||||||
|
call s:reap(name)
|
||||||
|
continue
|
||||||
|
endif
|
||||||
|
|
||||||
call s:log(new ? '+' : '*', name, pull ? 'Updating ...' : 'Installing ...')
|
let queue = get(spec, 'queue', [])
|
||||||
redraw
|
let new = empty(globpath(spec.dir, '.git', 1))
|
||||||
|
|
||||||
|
if empty(queue)
|
||||||
|
call s:log(new ? '+' : '*', name, pull ? 'Updating ...' : 'Installing ...')
|
||||||
|
redraw
|
||||||
|
endif
|
||||||
|
|
||||||
let has_tag = has_key(spec, 'tag')
|
let has_tag = has_key(spec, 'tag')
|
||||||
if !new
|
if len(queue)
|
||||||
|
call s:spawn(name, spec, queue, { 'dir': spec.dir })
|
||||||
|
elseif !new
|
||||||
let [error, _] = s:git_validate(spec, 0)
|
let [error, _] = s:git_validate(spec, 0)
|
||||||
if empty(error)
|
if empty(error)
|
||||||
if pull
|
if pull
|
||||||
@@ -1553,7 +1596,11 @@ while 1 " Without TCO, Vim stack is bound to explode
|
|||||||
if !empty(prog)
|
if !empty(prog)
|
||||||
call add(cmd, prog)
|
call add(cmd, prog)
|
||||||
endif
|
endif
|
||||||
call s:spawn(name, cmd, { 'dir': spec.dir })
|
let queue = [cmd, split('git remote set-head origin -a')]
|
||||||
|
if !has_tag && !has_key(spec, 'commit')
|
||||||
|
call extend(queue, [function('s:checkout_command'), function('s:merge_command')])
|
||||||
|
endif
|
||||||
|
call s:spawn(name, spec, queue, { 'dir': spec.dir })
|
||||||
else
|
else
|
||||||
let s:jobs[name] = { 'running': 0, 'lines': ['Already installed'], 'error': 0 }
|
let s:jobs[name] = { 'running': 0, 'lines': ['Already installed'], 'error': 0 }
|
||||||
endif
|
endif
|
||||||
@@ -1568,7 +1615,7 @@ while 1 " Without TCO, Vim stack is bound to explode
|
|||||||
if !empty(prog)
|
if !empty(prog)
|
||||||
call add(cmd, prog)
|
call add(cmd, prog)
|
||||||
endif
|
endif
|
||||||
call s:spawn(name, extend(cmd, [spec.uri, s:trim(spec.dir)]), { 'new': 1 })
|
call s:spawn(name, spec, [extend(cmd, [spec.uri, s:trim(spec.dir)]), function('s:checkout_command'), function('s:merge_command')], { 'new': 1 })
|
||||||
endif
|
endif
|
||||||
|
|
||||||
if !s:jobs[name].running
|
if !s:jobs[name].running
|
||||||
@@ -2267,7 +2314,10 @@ endfunction
|
|||||||
|
|
||||||
function! s:with_cd(cmd, dir, ...)
|
function! s:with_cd(cmd, dir, ...)
|
||||||
let script = a:0 > 0 ? a:1 : 1
|
let script = a:0 > 0 ? a:1 : 1
|
||||||
return printf('cd%s %s && %s', s:is_win ? ' /d' : '', plug#shellescape(a:dir, {'script': script}), a:cmd)
|
let pwsh = s:is_powershell(&shell)
|
||||||
|
let cd = s:is_win && !pwsh ? 'cd /d' : 'cd'
|
||||||
|
let sep = pwsh ? ';' : '&&'
|
||||||
|
return printf('%s %s %s %s', cd, plug#shellescape(a:dir, {'script': script, 'shell': &shell}), sep, a:cmd)
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
function! s:system(cmd, ...)
|
function! s:system(cmd, ...)
|
||||||
@@ -2344,18 +2394,21 @@ function! s:git_validate(spec, check_branch)
|
|||||||
\ current_branch, origin_branch)
|
\ current_branch, origin_branch)
|
||||||
endif
|
endif
|
||||||
if empty(err)
|
if empty(err)
|
||||||
let [ahead, behind] = split(s:lastline(s:system([
|
let ahead_behind = split(s:lastline(s:system([
|
||||||
\ 'git', 'rev-list', '--count', '--left-right',
|
\ 'git', 'rev-list', '--count', '--left-right',
|
||||||
\ printf('HEAD...origin/%s', origin_branch)
|
\ printf('HEAD...origin/%s', origin_branch)
|
||||||
\ ], a:spec.dir)), '\t')
|
\ ], a:spec.dir)), '\t')
|
||||||
if !v:shell_error && ahead
|
if v:shell_error || len(ahead_behind) != 2
|
||||||
if behind
|
let err = "Failed to compare with the origin. The default branch might have changed.\nPlugClean required."
|
||||||
|
else
|
||||||
|
let [ahead, behind] = ahead_behind
|
||||||
|
if ahead && behind
|
||||||
" Only mention PlugClean if diverged, otherwise it's likely to be
|
" Only mention PlugClean if diverged, otherwise it's likely to be
|
||||||
" pushable (and probably not that messed up).
|
" pushable (and probably not that messed up).
|
||||||
let err = printf(
|
let err = printf(
|
||||||
\ "Diverged from origin/%s (%d commit(s) ahead and %d commit(s) behind!\n"
|
\ "Diverged from origin/%s (%d commit(s) ahead and %d commit(s) behind!\n"
|
||||||
\ .'Backup local changes and run PlugClean and PlugUpdate to reinstall it.', origin_branch, ahead, behind)
|
\ .'Backup local changes and run PlugClean and PlugUpdate to reinstall it.', origin_branch, ahead, behind)
|
||||||
else
|
elseif ahead
|
||||||
let err = printf("Ahead of origin/%s by %d commit(s).\n"
|
let err = printf("Ahead of origin/%s by %d commit(s).\n"
|
||||||
\ .'Cannot update until local changes are pushed.',
|
\ .'Cannot update until local changes are pushed.',
|
||||||
\ origin_branch, ahead)
|
\ origin_branch, ahead)
|
||||||
@@ -2387,7 +2440,7 @@ function! s:clean(force)
|
|||||||
let errs = {}
|
let errs = {}
|
||||||
let [cnt, total] = [0, len(g:plugs)]
|
let [cnt, total] = [0, len(g:plugs)]
|
||||||
for [name, spec] in items(g:plugs)
|
for [name, spec] in items(g:plugs)
|
||||||
if !s:is_managed(name)
|
if !s:is_managed(name) || get(spec, 'frozen', 0)
|
||||||
call add(dirs, spec.dir)
|
call add(dirs, spec.dir)
|
||||||
else
|
else
|
||||||
let [err, clean] = s:git_validate(spec, 1)
|
let [err, clean] = s:git_validate(spec, 1)
|
||||||
@@ -2619,26 +2672,34 @@ function! s:preview_commit()
|
|||||||
|
|
||||||
let sha = matchstr(getline('.'), '^ \X*\zs[0-9a-f]\{7,9}')
|
let sha = matchstr(getline('.'), '^ \X*\zs[0-9a-f]\{7,9}')
|
||||||
if empty(sha)
|
if empty(sha)
|
||||||
return
|
let name = matchstr(getline('.'), '^- \zs[^:]*\ze:$')
|
||||||
|
if empty(name)
|
||||||
|
return
|
||||||
|
endif
|
||||||
|
let title = 'HEAD@{1}..'
|
||||||
|
let command = 'git diff --no-color HEAD@{1}'
|
||||||
|
else
|
||||||
|
let title = sha
|
||||||
|
let command = 'git show --no-color --pretty=medium '.sha
|
||||||
|
let name = s:find_name(line('.'))
|
||||||
endif
|
endif
|
||||||
|
|
||||||
let name = s:find_name(line('.'))
|
|
||||||
if empty(name) || !has_key(g:plugs, name) || !isdirectory(g:plugs[name].dir)
|
if empty(name) || !has_key(g:plugs, name) || !isdirectory(g:plugs[name].dir)
|
||||||
return
|
return
|
||||||
endif
|
endif
|
||||||
|
|
||||||
if exists('g:plug_pwindow') && !s:is_preview_window_open()
|
if !s:is_preview_window_open()
|
||||||
execute g:plug_pwindow
|
execute get(g:, 'plug_pwindow', 'vertical rightbelow new')
|
||||||
execute 'e' sha
|
execute 'e' title
|
||||||
else
|
else
|
||||||
execute 'pedit' sha
|
execute 'pedit' title
|
||||||
wincmd P
|
wincmd P
|
||||||
endif
|
endif
|
||||||
setlocal previewwindow filetype=git buftype=nofile nobuflisted modifiable
|
setlocal previewwindow filetype=git buftype=nofile bufhidden=wipe nobuflisted modifiable
|
||||||
let batchfile = ''
|
let batchfile = ''
|
||||||
try
|
try
|
||||||
let [sh, shellcmdflag, shrd] = s:chsh(1)
|
let [sh, shellcmdflag, shrd] = s:chsh(1)
|
||||||
let cmd = 'cd '.plug#shellescape(g:plugs[name].dir).' && git show --no-color --pretty=medium '.sha
|
let cmd = 'cd '.plug#shellescape(g:plugs[name].dir).' && '.command
|
||||||
if s:is_win
|
if s:is_win
|
||||||
let [batchfile, cmd] = s:batchfile(cmd)
|
let [batchfile, cmd] = s:batchfile(cmd)
|
||||||
endif
|
endif
|
||||||
@@ -2764,9 +2825,9 @@ function! s:snapshot(force, ...) abort
|
|||||||
1
|
1
|
||||||
let anchor = line('$') - 3
|
let anchor = line('$') - 3
|
||||||
let names = sort(keys(filter(copy(g:plugs),
|
let names = sort(keys(filter(copy(g:plugs),
|
||||||
\'has_key(v:val, "uri") && !has_key(v:val, "commit") && isdirectory(v:val.dir)')))
|
\'has_key(v:val, "uri") && isdirectory(v:val.dir)')))
|
||||||
for name in reverse(names)
|
for name in reverse(names)
|
||||||
let sha = s:git_revision(g:plugs[name].dir)
|
let sha = has_key(g:plugs[name], 'commit') ? g:plugs[name].commit : s:git_revision(g:plugs[name].dir)
|
||||||
if !empty(sha)
|
if !empty(sha)
|
||||||
call append(anchor, printf("silent! let g:plugs['%s'].commit = '%s'", name, sha))
|
call append(anchor, printf("silent! let g:plugs['%s'].commit = '%s'", name, sha))
|
||||||
redraw
|
redraw
|
||||||
|
|||||||
File diff suppressed because it is too large.
Load diff
+32
-65
@@ -2,40 +2,41 @@ syntax on
|
|||||||
set nocompatible
|
set nocompatible
|
||||||
set encoding=utf8
|
set encoding=utf8
|
||||||
|
|
||||||
set mouse=a
|
"set mouse=a
|
||||||
set hidden
|
set hidden
|
||||||
|
|
||||||
set updatetime=300
|
set updatetime=300
|
||||||
|
|
||||||
" -- Initialisation de Plug
|
" -- Initialisation de Plug
|
||||||
call plug#begin('~/.config/nvim/plugged')
|
call plug#begin('~/.config/nvim/plugged')
|
||||||
Plug 'crusoexia/vim-monokai'
|
Plug 'loctvl842/monokai-pro.nvim'
|
||||||
Plug 'neoclide/coc.nvim', {'branch': 'release'}
|
|
||||||
Plug 'junegunn/fzf.vim'
|
Plug 'junegunn/fzf.vim'
|
||||||
Plug 'StanAngeloff/php.vim'
|
Plug 'junegunn/fzf', { 'do': { -> fzf#install() } }
|
||||||
" Plug 'vim-airline/vim-airline'
|
|
||||||
Plug 'famiu/feline.nvim'
|
|
||||||
Plug 'cakebaker/scss-syntax.vim'
|
|
||||||
" Plug 'plasticboy/vim-markdown'
|
|
||||||
" Plug 'tpope/vim-fugitive'
|
|
||||||
Plug 'rust-lang/rust.vim'
|
|
||||||
Plug 'jiangmiao/auto-pairs' " Ferme automatiquement les parenthèses, crochets…
|
|
||||||
Plug 'lukas-reineke/indent-blankline.nvim' " Affiche les indentations.
|
|
||||||
Plug 'terrortylor/nvim-comment' " Permet de basculer les commentaires sur une ligne
|
|
||||||
Plug 'kyazdani42/nvim-web-devicons' " requis pas bufferline
|
Plug 'kyazdani42/nvim-web-devicons' " requis pas bufferline
|
||||||
Plug 'akinsho/bufferline.nvim',
|
Plug 'neoclide/coc.nvim', {'branch': 'release'}
|
||||||
|
Plug 'pappasam/coc-jedi', { 'do': 'yarn install --frozen-lockfile && yarn build', 'branch': 'main' }
|
||||||
|
" Plug 'akinsho/bufferline.nvim'
|
||||||
|
" Plug 'ms-jpq/chadtree', {'branch': 'chad', 'do': 'python3 -m chadtree deps'}
|
||||||
call plug#end()
|
call plug#end()
|
||||||
|
|
||||||
silent! colorscheme cyberpunk-neon
|
|
||||||
set background=dark
|
set background=dark
|
||||||
|
|
||||||
set ruler " Affiche la position du curseur
|
set ruler " Affiche la position du curseur
|
||||||
set number " Affiche le numéro des lignes
|
set number " Affiche le numéro des lignes
|
||||||
"set cursorline " Surligne la ligne en cours
|
set relativenumber
|
||||||
|
set cursorline " Surligne la ligne en cours
|
||||||
|
set wrap
|
||||||
|
|
||||||
|
set scrolloff=5
|
||||||
|
|
||||||
|
set confirm
|
||||||
|
|
||||||
|
set ignorecase
|
||||||
|
set smartcase
|
||||||
|
set incsearch
|
||||||
set hlsearch " Surligne les résultats d'une recherche
|
set hlsearch " Surligne les résultats d'une recherche
|
||||||
|
|
||||||
" -- Indentation
|
" -- Indentation:w
|
||||||
set expandtab " Les tabulations deviennent des espaces
|
set expandtab " Les tabulations deviennent des espaces
|
||||||
set tabstop=4 " Nombre d'espace pour une tabulation
|
set tabstop=4 " Nombre d'espace pour une tabulation
|
||||||
set smartindent
|
set smartindent
|
||||||
@@ -44,75 +45,41 @@ set autoindent
|
|||||||
|
|
||||||
set wildmenu " Autocomplete les commandes via un menu
|
set wildmenu " Autocomplete les commandes via un menu
|
||||||
|
|
||||||
|
|
||||||
if (has("termguicolors"))
|
if (has("termguicolors"))
|
||||||
set termguicolors
|
set termguicolors
|
||||||
endif
|
endif
|
||||||
|
|
||||||
"Coc configuration
|
|
||||||
inoremap <silent><expr> <TAB>
|
|
||||||
\ coc#pum#visible() ? coc#pum#next(1) :
|
|
||||||
\ CheckBackspace() ? "\<Tab>" :
|
|
||||||
\ coc#refresh()
|
|
||||||
inoremap <expr><S-TAB> coc#pum#visible() ? coc#pum#prev(1) : "\<C-h>"
|
|
||||||
|
|
||||||
inoremap <silent><expr> <c-space> coc#refresh()
|
|
||||||
|
|
||||||
function! CheckBackspace() abort
|
|
||||||
let col = col('.') - 1
|
|
||||||
return !col || getline('.')[col - 1] =~# '\s'
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
"Tous les fichiers du repertoire courant
|
"Tous les fichiers du repertoire courant
|
||||||
nnoremap <silent> <C-p> :Files<CR>
|
nnoremap <silent> <C-p> :Files<CR>
|
||||||
" Tous les fichiers du repertoire courant suivis par GIT
|
" Tous les fichiers du repertoire courant suivis par GIT
|
||||||
nnoremap <silent> <C-g> :GFiles<CR>
|
nnoremap <silent> <C-g> :GFiles<CR>
|
||||||
|
|
||||||
nnoremap <silent> <C-o> :Buffers<CR>
|
nnoremap <silent> <C-o> :Buffers<CR>
|
||||||
nnoremap <C-f> :Rg!
|
|
||||||
|
|
||||||
nnoremap <C-n> :bn<CR>
|
"nnoremap <C-f> :Rg!
|
||||||
nnoremap <C-b> :bp<CR>
|
"nnoremap <C-n> :bn<CR>
|
||||||
|
"nnoremap <C-b> :bp<CR>
|
||||||
|
|
||||||
" -- Les modifications de .vimrc sont prises en compte immédiatement
|
"COC Make Enter accept the autocomplete suggestion
|
||||||
"if has("autocmd")
|
inoremap <silent><expr> <CR> pumvisible() ? coc#_select_confirm() : "\<CR>"
|
||||||
" autocmd! bufwritepost .vimrc source ~/.vimrc
|
|
||||||
"endif
|
|
||||||
"
|
|
||||||
"" --Nerdtree
|
|
||||||
""map <C-n> :NERDTreeToggle<CR>
|
|
||||||
""let NERDTreeQuitOnOpen=0
|
|
||||||
""let NERDTreeMinimalUI = 1
|
|
||||||
""let NERDTreeDirArrows = 1
|
|
||||||
""let NERDTreeQuitOnOpen = 1
|
|
||||||
""let g:NERDTreeDirArrowExpandable = '▸'
|
|
||||||
""let g:NERDTreeDirArrowCollapsible = '▾'
|
|
||||||
"
|
|
||||||
"
|
|
||||||
"
|
|
||||||
"" -- vim airline
|
|
||||||
"let g:airline#extensions#tabline#enabled = 1
|
|
||||||
"
|
|
||||||
"" -- Autocompletion avec coc
|
|
||||||
"inoremap <silent><expr> <c-space> coc#refresh()
|
|
||||||
"
|
|
||||||
"" -- Utiliser les tabulations
|
|
||||||
"" Tabultation précedente
|
|
||||||
"map <C-left> :tabp<cr>
|
|
||||||
"" Tabulation suivante
|
|
||||||
"map <C-right> :tabn<cr>" Ferme tabulation courante
|
|
||||||
"map <C-t><c> :tabc<cr>
|
|
||||||
|
|
||||||
set shiftwidth=4
|
set shiftwidth=4
|
||||||
set softtabstop=4
|
set softtabstop=4
|
||||||
set tabstop=4
|
set tabstop=4
|
||||||
|
|
||||||
|
|
||||||
autocmd Filetype html setlocal ts=2 sw=2 expandtab
|
autocmd Filetype html setlocal ts=2 sw=2 expandtab
|
||||||
autocmd Filetype css setlocal ts=2 sw=2 expandtab
|
autocmd Filetype css setlocal ts=2 sw=2 expandtab
|
||||||
autocmd Filetype scss setlocal ts=2 sw=2 expandtab
|
autocmd Filetype scss setlocal ts=2 sw=2 expandtab
|
||||||
autocmd Filetype python setlocal ts=2 sw=2 expandtab
|
autocmd Filetype python setlocal ts=2 sw=2 expandtab
|
||||||
|
|
||||||
|
set termguicolors
|
||||||
lua << EOF
|
lua << EOF
|
||||||
require("bufferline").setup{}
|
-- require("bufferline").setup{}
|
||||||
require('feline').setup()
|
require("monokai-pro").setup({
|
||||||
|
-- ... your config
|
||||||
|
filter = "spectrum"
|
||||||
|
})
|
||||||
|
vim.cmd([[colorscheme monokai-pro]])
|
||||||
EOF
|
EOF
|
||||||
Submodule .config/nvim/plugged/auto-pairs deleted from 39f06b873a.
Submodule .config/nvim/plugged/bufferline.nvim deleted from f5791fdd56.
Submodule .config/nvim/plugged/coc.nvim deleted from 8b64d47d45.
Submodule .config/nvim/plugged/feline.nvim deleted from b7391bbfcb.
Submodule .config/nvim/plugged/fzf.vim deleted from c491d702b7.
Submodule .config/nvim/plugged/indent-blankline.nvim deleted from c15bbe9f23.
Submodule .config/nvim/plugged/nvim-comment deleted from e9ac16ab05.
Submodule .config/nvim/plugged/nvim-web-devicons deleted from 2d02a56189.
Submodule .config/nvim/plugged/php.vim deleted from 930aec5c70.
Submodule .config/nvim/plugged/rust.vim deleted from 4aa69b84c8.
Submodule .config/nvim/plugged/scss-syntax.vim deleted from bda22a93d1.
Submodule .config/nvim/plugged/vim-monokai deleted from 66f7dc9c63.
@@ -1,407 +0,0 @@
|
|||||||
;==========================================================
|
|
||||||
;
|
|
||||||
;
|
|
||||||
; ██████╗ ██████╗ ██╗ ██╗ ██╗██████╗ █████╗ ██████╗
|
|
||||||
; ██╔══██╗██╔═══██╗██║ ╚██╗ ██╔╝██╔══██╗██╔══██╗██╔══██╗
|
|
||||||
; ██████╔╝██║ ██║██║ ╚████╔╝ ██████╔╝███████║██████╔╝
|
|
||||||
; ██╔═══╝ ██║ ██║██║ ╚██╔╝ ██╔══██╗██╔══██║██╔══██╗
|
|
||||||
; ██║ ╚██████╔╝███████╗██║ ██████╔╝██║ ██║██║ ██║
|
|
||||||
; ╚═╝ ╚═════╝ ╚══════╝╚═╝ ╚═════╝ ╚═╝ ╚═╝╚═╝ ╚═╝
|
|
||||||
;
|
|
||||||
;
|
|
||||||
; To learn more about how to configure Polybar
|
|
||||||
; go to https://github.com/jaagr/polybar
|
|
||||||
;
|
|
||||||
; The README contains alot of information
|
|
||||||
;
|
|
||||||
;==========================================================
|
|
||||||
|
|
||||||
[colors]
|
|
||||||
;background = ${xrdb:color0:#222}
|
|
||||||
background = #000b1e
|
|
||||||
background-alt = #133e7c
|
|
||||||
;foreground = ${xrdb:color7:#222}
|
|
||||||
foreground = #0abdc6
|
|
||||||
foreground-alt = #ea00d9
|
|
||||||
primary = #ffff00
|
|
||||||
secondary = #ea00d9
|
|
||||||
alert = #ea00d9
|
|
||||||
|
|
||||||
[bar/main]
|
|
||||||
monitor = ${env:MONITOR:eDP1}
|
|
||||||
width = 100%
|
|
||||||
height = 27
|
|
||||||
;offset-x = 1%
|
|
||||||
;offset-y = 1%
|
|
||||||
radius = 0.0
|
|
||||||
fixed-center = true
|
|
||||||
|
|
||||||
background = ${colors.background}
|
|
||||||
foreground = ${colors.foreground}
|
|
||||||
|
|
||||||
line-size = 3
|
|
||||||
line-color = #f00
|
|
||||||
|
|
||||||
border-size = 2
|
|
||||||
border-color = ${colors.background}
|
|
||||||
|
|
||||||
padding-left = 0
|
|
||||||
padding-right = 2
|
|
||||||
|
|
||||||
module-margin-left = 1
|
|
||||||
module-margin-right = 2
|
|
||||||
|
|
||||||
font-0 = Inconsolata:size=10:antialias=true
|
|
||||||
font-1 = unifont:size=8:antialias=true
|
|
||||||
|
|
||||||
modules-left = i3
|
|
||||||
modules-center = date
|
|
||||||
modules-right = battery pulseaudio
|
|
||||||
|
|
||||||
tray-position = right
|
|
||||||
tray-padding = 2
|
|
||||||
;tray-transparent = true
|
|
||||||
;tray-background = #0063ff
|
|
||||||
|
|
||||||
;wm-restack = bspwm
|
|
||||||
wm-restack = i3
|
|
||||||
|
|
||||||
;override-redirect = true
|
|
||||||
|
|
||||||
;scroll-up = bspwm-desknext
|
|
||||||
;scroll-down = bspwm-deskprev
|
|
||||||
|
|
||||||
;scroll-up = i3wm-wsnext
|
|
||||||
;scroll-down = i3wm-wsprev
|
|
||||||
|
|
||||||
cursor-click = pointer
|
|
||||||
cursor-scroll = ns-resize
|
|
||||||
|
|
||||||
[module/xwindow]
|
|
||||||
type = internal/xwindow
|
|
||||||
label = %title:0:30:...%
|
|
||||||
|
|
||||||
[module/xkeyboard]
|
|
||||||
type = internal/xkeyboard
|
|
||||||
blacklist-0 = num lock
|
|
||||||
|
|
||||||
format-prefix = " "
|
|
||||||
format-prefix-foreground = ${colors.foreground-alt}
|
|
||||||
format-prefix-underline = ${colors.secondary}
|
|
||||||
|
|
||||||
label-layout = %layout%
|
|
||||||
label-layout-underline = ${colors.secondary}
|
|
||||||
|
|
||||||
label-indicator-padding = 2
|
|
||||||
label-indicator-margin = 1
|
|
||||||
label-indicator-background = ${colors.secondary}
|
|
||||||
label-indicator-underline = ${colors.secondary}
|
|
||||||
|
|
||||||
[module/filesystem]
|
|
||||||
type = internal/fs
|
|
||||||
interval = 25
|
|
||||||
|
|
||||||
mount-0 = /
|
|
||||||
|
|
||||||
label-mounted = %{F#0a81f5}%mountpoint%%{F-}: %percentage_used%%
|
|
||||||
label-unmounted = %mountpoint% not mounted
|
|
||||||
label-unmounted-foreground = ${colors.foreground-alt}
|
|
||||||
|
|
||||||
[module/bspwm]
|
|
||||||
type = internal/bspwm
|
|
||||||
|
|
||||||
label-focused = %index%
|
|
||||||
label-focused-background = ${colors.background-alt}
|
|
||||||
label-focused-underline= ${colors.primary}
|
|
||||||
label-focused-padding = 2
|
|
||||||
|
|
||||||
label-occupied = %index%
|
|
||||||
label-occupied-padding = 2
|
|
||||||
|
|
||||||
label-urgent = %index%!
|
|
||||||
label-urgent-background = ${colors.alert}
|
|
||||||
label-urgent-padding = 2
|
|
||||||
|
|
||||||
label-empty = %index%
|
|
||||||
label-empty-foreground = ${colors.foreground-alt}
|
|
||||||
label-empty-padding = 2
|
|
||||||
|
|
||||||
; Separator in between workspaces
|
|
||||||
; label-separator = |
|
|
||||||
|
|
||||||
[module/i3]
|
|
||||||
type = internal/i3
|
|
||||||
format = <label-state> <label-mode>
|
|
||||||
index-sort = true
|
|
||||||
wrapping-scroll = false
|
|
||||||
|
|
||||||
; Only show workspaces on the same output as the bar
|
|
||||||
pin-workspaces = true
|
|
||||||
|
|
||||||
label-mode-padding = 2
|
|
||||||
label-mode-foreground = #000
|
|
||||||
label-mode-background = ${colors.primary}
|
|
||||||
|
|
||||||
; focused = Active workspace on focused monitor
|
|
||||||
label-focused = %index%
|
|
||||||
label-focused-background = ${module/bspwm.label-focused-background}
|
|
||||||
label-focused-underline = ${module/bspwm.label-focused-underline}
|
|
||||||
label-focused-padding = ${module/bspwm.label-focused-padding}
|
|
||||||
|
|
||||||
; unfocused = Inactive workspace on any monitor
|
|
||||||
label-unfocused = %index%
|
|
||||||
label-unfocused-padding = ${module/bspwm.label-occupied-padding}
|
|
||||||
|
|
||||||
; visible = Active workspace on unfocused monitor
|
|
||||||
label-visible = %index%
|
|
||||||
label-visible-background = ${self.label-focused-background}
|
|
||||||
label-visible-underline = ${self.label-focused-underline}
|
|
||||||
label-visible-padding = ${self.label-focused-padding}
|
|
||||||
|
|
||||||
; urgent = Workspace with urgency hint set
|
|
||||||
label-urgent = %index%
|
|
||||||
label-urgent-background = ${module/bspwm.label-urgent-background}
|
|
||||||
label-urgent-padding = ${module/bspwm.label-urgent-padding}
|
|
||||||
|
|
||||||
; Separator in between workspaces
|
|
||||||
; label-separator = |
|
|
||||||
|
|
||||||
|
|
||||||
[module/mpd]
|
|
||||||
type = internal/mpd
|
|
||||||
format-online = <label-song> <icon-prev> <icon-stop> <toggle> <icon-next>
|
|
||||||
|
|
||||||
icon-prev =
|
|
||||||
icon-stop =
|
|
||||||
icon-play =
|
|
||||||
icon-pause =
|
|
||||||
icon-next =
|
|
||||||
|
|
||||||
label-song-maxlen = 25
|
|
||||||
label-song-ellipsis = true
|
|
||||||
|
|
||||||
;[module/xbacklight]
|
|
||||||
;type = internal/xbacklight
|
|
||||||
;
|
|
||||||
;format = <label> <bar>
|
|
||||||
;label = BL
|
|
||||||
;
|
|
||||||
;bar-width = 10
|
|
||||||
;bar-indicator = |
|
|
||||||
;bar-indicator-foreground = #fff
|
|
||||||
;bar-indicator-font = 2
|
|
||||||
;bar-fill = ─
|
|
||||||
;bar-fill-font = 2
|
|
||||||
;bar-fill-foreground = #9f78e1
|
|
||||||
;bar-empty = ─
|
|
||||||
;bar-empty-font = 2
|
|
||||||
;bar-empty-foreground = ${colors.foreground-alt}
|
|
||||||
|
|
||||||
;[module/backlight-acpi]
|
|
||||||
;inherit = module/xbacklight
|
|
||||||
;type = internal/backlight
|
|
||||||
;card = intel_backlight
|
|
||||||
|
|
||||||
;[module/cpu]
|
|
||||||
;type = internal/cpu
|
|
||||||
;interval = 2
|
|
||||||
;format-prefix = " "
|
|
||||||
;format-prefix-foreground = ${colors.foreground-alt}
|
|
||||||
;format-underline = #f90000
|
|
||||||
;label = %percentage:2%%
|
|
||||||
|
|
||||||
;[module/memory]
|
|
||||||
;type = internal/memory
|
|
||||||
;interval = 2
|
|
||||||
;format-prefix = " "
|
|
||||||
;format-prefix-foreground = ${colors.foreground-alt}
|
|
||||||
;format-underline = #4bffdc
|
|
||||||
;label = %percentage_used%%
|
|
||||||
|
|
||||||
;[module/wlan]
|
|
||||||
;type = internal/network
|
|
||||||
;interface = net1
|
|
||||||
;interval = 3.0
|
|
||||||
|
|
||||||
;format-connected = <ramp-signal> <label-connected>
|
|
||||||
;format-connected-underline = #9f78e1
|
|
||||||
;label-connected = %essid%
|
|
||||||
;
|
|
||||||
;format-disconnected =
|
|
||||||
;format-disconnected = <label-disconnected>
|
|
||||||
;format-disconnected-underline = ${self.format-connected-underline}
|
|
||||||
;label-disconnected = %ifname% disconnected
|
|
||||||
;label-disconnected-foreground = ${colors.foreground-alt}
|
|
||||||
|
|
||||||
;ramp-signal-0 =
|
|
||||||
;ramp-signal-1 =
|
|
||||||
;ramp-signal-2 =
|
|
||||||
;ramp-signal-3 =
|
|
||||||
;ramp-signal-4 =
|
|
||||||
;ramp-signal-foreground = ${colors.foreground-alt}
|
|
||||||
|
|
||||||
;[module/eth]
|
|
||||||
;type = internal/network
|
|
||||||
;interface = ens1
|
|
||||||
;interval = 3.0
|
|
||||||
|
|
||||||
;format-connected-underline = #55aa55
|
|
||||||
;format-connected-prefix = " "
|
|
||||||
;format-connected-prefix-foreground = ${colors.foreground-alt}
|
|
||||||
;label-connected = %local_ip%
|
|
||||||
|
|
||||||
;format-disconnected =
|
|
||||||
;format-disconnected = <label-disconnected>
|
|
||||||
;format-disconnected-underline = ${self.format-connected-underline}
|
|
||||||
;label-disconnected = %ifname% disconnected
|
|
||||||
;label-disconnected-foreground = ${colors.foreground-alt}
|
|
||||||
|
|
||||||
[module/date]
|
|
||||||
type = internal/date
|
|
||||||
interval = 5
|
|
||||||
|
|
||||||
date = " %Y-%m-%d"
|
|
||||||
date-alt = " %Y-%m-%d"
|
|
||||||
|
|
||||||
time = "%H:%M "
|
|
||||||
time-alt = "%H:%M "
|
|
||||||
|
|
||||||
;format-prefix =
|
|
||||||
;format-prefix-foreground = ${colors.foreground-alt}
|
|
||||||
format-underline = #ea00d9
|
|
||||||
|
|
||||||
label = %date% %time%
|
|
||||||
|
|
||||||
[module/pulseaudio]
|
|
||||||
type = internal/pulseaudio
|
|
||||||
sink = alsa_output.pci-0000_24_00.3.analog-stereo
|
|
||||||
|
|
||||||
format-volume = <label-volume>
|
|
||||||
label-volume = vol %percentage%%
|
|
||||||
label-volume-foreground = ${root.foreground}
|
|
||||||
label-muted = "muted"
|
|
||||||
label-muted-foreground = #ea00d9
|
|
||||||
|
|
||||||
use-ui-max = true
|
|
||||||
|
|
||||||
[module/alsa]
|
|
||||||
type = internal/alsa
|
|
||||||
|
|
||||||
format-volume = <label-volume> <bar-volume>
|
|
||||||
label-volume = VOL
|
|
||||||
label-volume-foreground = ${root.foreground}
|
|
||||||
|
|
||||||
format-muted-prefix = " "
|
|
||||||
format-muted-foreground = ${colors.foreground-alt}
|
|
||||||
label-muted = sound muted
|
|
||||||
|
|
||||||
bar-volume-width = 10
|
|
||||||
bar-volume-foreground-0 = #55aa55
|
|
||||||
bar-volume-foreground-1 = #55aa55
|
|
||||||
bar-volume-foreground-2 = #55aa55
|
|
||||||
bar-volume-foreground-3 = #55aa55
|
|
||||||
bar-volume-foreground-4 = #55aa55
|
|
||||||
bar-volume-foreground-5 = #f5a70a
|
|
||||||
bar-volume-foreground-6 = #ff5555
|
|
||||||
bar-volume-gradient = false
|
|
||||||
bar-volume-indicator = |
|
|
||||||
bar-volume-indicator-font = 2
|
|
||||||
bar-volume-fill = ─
|
|
||||||
bar-volume-fill-font = 2
|
|
||||||
bar-volume-empty = ─
|
|
||||||
bar-volume-empty-font = 2
|
|
||||||
bar-volume-empty-foreground = ${colors.foreground-alt}
|
|
||||||
|
|
||||||
[module/battery]
|
|
||||||
type = internal/battery
|
|
||||||
battery = BAT0
|
|
||||||
adapter = ADP1
|
|
||||||
full-at = 98
|
|
||||||
|
|
||||||
format-charging = <animation-charging> <label-charging>
|
|
||||||
format-charging-underline = #ffb52a
|
|
||||||
|
|
||||||
format-discharging = <animation-discharging> <label-discharging>
|
|
||||||
format-discharging-underline = ${self.format-charging-underline}
|
|
||||||
|
|
||||||
format-full-prefix = " "
|
|
||||||
format-full-prefix-foreground = ${colors.foreground-alt}
|
|
||||||
format-full-underline = ${self.format-charging-underline}
|
|
||||||
|
|
||||||
ramp-capacity-0 =
|
|
||||||
ramp-capacity-1 =
|
|
||||||
ramp-capacity-2 =
|
|
||||||
ramp-capacity-foreground = ${colors.foreground-alt}
|
|
||||||
|
|
||||||
animation-charging-0 =
|
|
||||||
animation-charging-1 =
|
|
||||||
animation-charging-2 =
|
|
||||||
animation-charging-foreground = ${colors.foreground-alt}
|
|
||||||
animation-charging-framerate = 750
|
|
||||||
|
|
||||||
animation-discharging-0 =
|
|
||||||
animation-discharging-1 =
|
|
||||||
animation-discharging-2 =
|
|
||||||
animation-discharging-foreground = ${colors.foreground-alt}
|
|
||||||
animation-discharging-framerate = 750
|
|
||||||
|
|
||||||
[module/temperature]
|
|
||||||
type = internal/temperature
|
|
||||||
thermal-zone = 0
|
|
||||||
warn-temperature = 60
|
|
||||||
|
|
||||||
format = <ramp> <label>
|
|
||||||
format-underline = #f50a4d
|
|
||||||
format-warn = <ramp> <label-warn>
|
|
||||||
format-warn-underline = ${self.format-underline}
|
|
||||||
|
|
||||||
label = %temperature-c%
|
|
||||||
label-warn = %temperature-c%
|
|
||||||
label-warn-foreground = ${colors.secondary}
|
|
||||||
|
|
||||||
ramp-0 =
|
|
||||||
ramp-1 =
|
|
||||||
ramp-2 =
|
|
||||||
ramp-foreground = ${colors.foreground-alt}
|
|
||||||
|
|
||||||
[module/powermenu]
|
|
||||||
type = custom/menu
|
|
||||||
|
|
||||||
expand-right = true
|
|
||||||
|
|
||||||
format-spacing = 1
|
|
||||||
|
|
||||||
label-open = ☢
|
|
||||||
label-open-foreground = ${colors.secondary}
|
|
||||||
label-close = cancel
|
|
||||||
label-close-foreground = ${colors.secondary}
|
|
||||||
label-separator = |
|
|
||||||
label-separator-foreground = ${colors.foreground-alt}
|
|
||||||
|
|
||||||
menu-0-0 = reboot
|
|
||||||
menu-0-0-exec = menu-open-1
|
|
||||||
menu-0-1 = power off
|
|
||||||
menu-0-1-exec = menu-open-2
|
|
||||||
|
|
||||||
menu-1-0 = cancel
|
|
||||||
menu-1-0-exec = menu-open-0
|
|
||||||
menu-1-1 = reboot
|
|
||||||
menu-1-1-exec = sudo reboot
|
|
||||||
|
|
||||||
menu-2-0 = power off
|
|
||||||
menu-2-0-exec = sudo poweroff
|
|
||||||
menu-2-1 = cancel
|
|
||||||
menu-2-1-exec = menu-open-0
|
|
||||||
|
|
||||||
[settings]
|
|
||||||
screenchange-reload = true
|
|
||||||
;compositing-background = xor
|
|
||||||
;compositing-background = screen
|
|
||||||
;compositing-foreground = source
|
|
||||||
;compositing-border = over
|
|
||||||
|
|
||||||
[global/wm]
|
|
||||||
margin-top = 5
|
|
||||||
margin-bottom = 5
|
|
||||||
|
|
||||||
; vim:ft=dosini
|
|
||||||
@@ -1,19 +0,0 @@
|
|||||||
#!/usr/bin/env sh
|
|
||||||
|
|
||||||
# Terminate already running bar instances
|
|
||||||
killall -q polybar
|
|
||||||
|
|
||||||
readonly MAINSCREEN="eDP1"
|
|
||||||
|
|
||||||
# Wait until the processes have been shut down
|
|
||||||
while pgrep -x polybar >/dev/null; do sleep 1; done
|
|
||||||
|
|
||||||
# Launch polybar
|
|
||||||
MONITOR="${MAINSCREEN}" polybar main &
|
|
||||||
|
|
||||||
for m in $(polybar --list-monitors | cut -d":" -f1); do
|
|
||||||
if [ ${m} != "${MAINSCREEN}" ]; then
|
|
||||||
MONITOR=$m polybar --reload main &
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
|
|
||||||
@@ -1,141 +0,0 @@
|
|||||||
configuration {
|
|
||||||
/* modi: "window,run,ssh";*/
|
|
||||||
/* width: 50;*/
|
|
||||||
/* lines: 15;*/
|
|
||||||
/* columns: 1;*/
|
|
||||||
/* font: "mono 12";*/
|
|
||||||
/* bw: 1;*/
|
|
||||||
/* location: 0;*/
|
|
||||||
/* padding: 5;*/
|
|
||||||
/* yoffset: 0;*/
|
|
||||||
/* xoffset: 0;*/
|
|
||||||
/* fixed-num-lines: true;*/
|
|
||||||
/* show-icons: false;*/
|
|
||||||
/* terminal: "rofi-sensible-terminal";*/
|
|
||||||
/* ssh-client: "ssh";*/
|
|
||||||
/* ssh-command: "{terminal} -e {ssh-client} {host}";*/
|
|
||||||
/* run-command: "{cmd}";*/
|
|
||||||
/* run-list-command: "";*/
|
|
||||||
/* run-shell-command: "{terminal} -e {cmd}";*/
|
|
||||||
/* window-command: "xkill -id {window}";*/
|
|
||||||
/* window-match-fields: "all";*/
|
|
||||||
/* drun-icon-theme: ;*/
|
|
||||||
/* drun-match-fields: "name,generic,exec,categories";*/
|
|
||||||
/* disable-history: false;*/
|
|
||||||
/* sort: false;*/
|
|
||||||
/* levenshtein-sort: false;*/
|
|
||||||
/* case-sensitive: false;*/
|
|
||||||
/* cycle: true;*/
|
|
||||||
/* sidebar-mode: false;*/
|
|
||||||
/* eh: 1;*/
|
|
||||||
/* auto-select: false;*/
|
|
||||||
/* parse-hosts: false;*/
|
|
||||||
/* parse-known-hosts: true;*/
|
|
||||||
/* combi-modi: "window,run";*/
|
|
||||||
/* matching: "normal";*/
|
|
||||||
/* tokenize: true;*/
|
|
||||||
/* m: "-5";*/
|
|
||||||
/* line-margin: 2;*/
|
|
||||||
/* line-padding: 1;*/
|
|
||||||
/* filter: ;*/
|
|
||||||
/* separator-style: "dash";*/
|
|
||||||
/* hide-scrollbar: false;*/
|
|
||||||
/* fullscreen: false;*/
|
|
||||||
/* fake-transparency: false;*/
|
|
||||||
/* dpi: -1;*/
|
|
||||||
/* threads: 0;*/
|
|
||||||
/* scrollbar-width: 8;*/
|
|
||||||
/* scroll-method: 0;*/
|
|
||||||
/* fake-background: "screenshot";*/
|
|
||||||
/* window-format: "{w} {i}{c} {t}";*/
|
|
||||||
/* click-to-exit: true;*/
|
|
||||||
/* show-match: true;*/
|
|
||||||
/* color-normal: ;*/
|
|
||||||
/* color-urgent: ;*/
|
|
||||||
/* color-active: ;*/
|
|
||||||
/* color-window: ;*/
|
|
||||||
/* max-history-size: 25;*/
|
|
||||||
/* combi-hide-mode-prefix: false;*/
|
|
||||||
/* pid: "/run/user/1000/rofi.pid";*/
|
|
||||||
/* display-window: ;*/
|
|
||||||
/* display-windowcd: ;*/
|
|
||||||
/* display-run: ;*/
|
|
||||||
/* display-ssh: ;*/
|
|
||||||
/* display-drun: ;*/
|
|
||||||
/* display-combi: ;*/
|
|
||||||
/* display-keys: ;*/
|
|
||||||
/* kb-primary-paste: "Control+V,Shift+Insert";*/
|
|
||||||
/* kb-secondary-paste: "Control+v,Insert";*/
|
|
||||||
/* kb-clear-line: "Control+w";*/
|
|
||||||
/* kb-move-front: "Control+a";*/
|
|
||||||
/* kb-move-end: "Control+e";*/
|
|
||||||
/* kb-move-word-back: "Alt+b";*/
|
|
||||||
/* kb-move-word-forward: "Alt+f";*/
|
|
||||||
/* kb-move-char-back: "Left,Control+b";*/
|
|
||||||
/* kb-move-char-forward: "Right,Control+f";*/
|
|
||||||
/* kb-remove-word-back: "Control+Alt+h,Control+BackSpace";*/
|
|
||||||
/* kb-remove-word-forward: "Control+Alt+d";*/
|
|
||||||
/* kb-remove-char-forward: "Delete,Control+d";*/
|
|
||||||
/* kb-remove-char-back: "BackSpace,Control+h";*/
|
|
||||||
/* kb-remove-to-eol: "Control+k";*/
|
|
||||||
/* kb-remove-to-sol: "Control+u";*/
|
|
||||||
/* kb-accept-entry: "Control+j,Control+m,Return,KP_Enter";*/
|
|
||||||
/* kb-accept-custom: "Control+Return";*/
|
|
||||||
/* kb-accept-alt: "Shift+Return";*/
|
|
||||||
/* kb-delete-entry: "Shift+Delete";*/
|
|
||||||
/* kb-mode-next: "Shift+Right,Control+Tab";*/
|
|
||||||
/* kb-mode-previous: "Shift+Left,Control+ISO_Left_Tab";*/
|
|
||||||
/* kb-row-left: "Control+Page_Up";*/
|
|
||||||
/* kb-row-right: "Control+Page_Down";*/
|
|
||||||
/* kb-row-up: "Up,Control+p,ISO_Left_Tab";*/
|
|
||||||
/* kb-row-down: "Down,Control+n";*/
|
|
||||||
/* kb-row-tab: "Tab";*/
|
|
||||||
/* kb-page-prev: "Page_Up";*/
|
|
||||||
/* kb-page-next: "Page_Down";*/
|
|
||||||
/* kb-row-first: "Home,KP_Home";*/
|
|
||||||
/* kb-row-last: "End,KP_End";*/
|
|
||||||
/* kb-row-select: "Control+space";*/
|
|
||||||
/* kb-screenshot: "Alt+S";*/
|
|
||||||
/* kb-toggle-case-sensitivity: "grave,dead_grave";*/
|
|
||||||
/* kb-toggle-sort: "Alt+grave";*/
|
|
||||||
/* kb-cancel: "Escape,Control+g,Control+bracketleft";*/
|
|
||||||
/* kb-custom-1: "Alt+1";*/
|
|
||||||
/* kb-custom-2: "Alt+2";*/
|
|
||||||
/* kb-custom-3: "Alt+3";*/
|
|
||||||
/* kb-custom-4: "Alt+4";*/
|
|
||||||
/* kb-custom-5: "Alt+5";*/
|
|
||||||
/* kb-custom-6: "Alt+6";*/
|
|
||||||
/* kb-custom-7: "Alt+7";*/
|
|
||||||
/* kb-custom-8: "Alt+8";*/
|
|
||||||
/* kb-custom-9: "Alt+9";*/
|
|
||||||
/* kb-custom-10: "Alt+0";*/
|
|
||||||
/* kb-custom-11: "Alt+exclam";*/
|
|
||||||
/* kb-custom-12: "Alt+at";*/
|
|
||||||
/* kb-custom-13: "Alt+numbersign";*/
|
|
||||||
/* kb-custom-14: "Alt+dollar";*/
|
|
||||||
/* kb-custom-15: "Alt+percent";*/
|
|
||||||
/* kb-custom-16: "Alt+dead_circumflex";*/
|
|
||||||
/* kb-custom-17: "Alt+ampersand";*/
|
|
||||||
/* kb-custom-18: "Alt+asterisk";*/
|
|
||||||
/* kb-custom-19: "Alt+parenleft";*/
|
|
||||||
/* kb-select-1: "Super+1";*/
|
|
||||||
/* kb-select-2: "Super+2";*/
|
|
||||||
/* kb-select-3: "Super+3";*/
|
|
||||||
/* kb-select-4: "Super+4";*/
|
|
||||||
/* kb-select-5: "Super+5";*/
|
|
||||||
/* kb-select-6: "Super+6";*/
|
|
||||||
/* kb-select-7: "Super+7";*/
|
|
||||||
/* kb-select-8: "Super+8";*/
|
|
||||||
/* kb-select-9: "Super+9";*/
|
|
||||||
/* kb-select-10: "Super+0";*/
|
|
||||||
/* ml-row-left: "ScrollLeft";*/
|
|
||||||
/* ml-row-right: "ScrollRight";*/
|
|
||||||
/* ml-row-up: "ScrollUp";*/
|
|
||||||
/* ml-row-down: "ScrollDown";*/
|
|
||||||
/* me-select-entry: "MousePrimary";*/
|
|
||||||
/* me-accept-entry: "MouseDPrimary";*/
|
|
||||||
/* me-accept-custom: "Control+MouseDPrimary";*/
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
@theme "cyberpunk-neon"
|
|
||||||
@@ -1,111 +0,0 @@
|
|||||||
* {
|
|
||||||
darkpurple: #711c91;
|
|
||||||
purple: #ea00d9;
|
|
||||||
lightblue: #0abdc6;
|
|
||||||
blue: #133E7C;
|
|
||||||
darkblue: #091833;
|
|
||||||
green: #60ff60;
|
|
||||||
yellow: #FFFF00;
|
|
||||||
orange: #f09C02;
|
|
||||||
pink: #ffa0a0;
|
|
||||||
red: #FF0000;
|
|
||||||
}
|
|
||||||
|
|
||||||
#window {
|
|
||||||
location: center;
|
|
||||||
anchor: center;
|
|
||||||
border: 2px;
|
|
||||||
border-color: @purple;
|
|
||||||
spacing: 0;
|
|
||||||
children: [mainbox];
|
|
||||||
orientation: horizontal;
|
|
||||||
background-color: @darkblue;
|
|
||||||
}
|
|
||||||
|
|
||||||
#mainbox {
|
|
||||||
spacing: 0;
|
|
||||||
children: [ inputbar, listview ];
|
|
||||||
background-color: @darkblue;
|
|
||||||
}
|
|
||||||
|
|
||||||
#message {
|
|
||||||
border-color: @red;
|
|
||||||
border: 5px;
|
|
||||||
padding: 8;
|
|
||||||
background-color: @green;
|
|
||||||
}
|
|
||||||
|
|
||||||
#message {
|
|
||||||
color: @black;
|
|
||||||
}
|
|
||||||
|
|
||||||
#inputbar {
|
|
||||||
color: @purple;
|
|
||||||
padding: 12px;
|
|
||||||
background-color: @darkblue;
|
|
||||||
}
|
|
||||||
|
|
||||||
#entry,prompt,case-indicator {
|
|
||||||
text-font: inherit;
|
|
||||||
text-color:inherit;
|
|
||||||
background-color: inherit;
|
|
||||||
}
|
|
||||||
|
|
||||||
#entry {
|
|
||||||
color: @lightblue;
|
|
||||||
}
|
|
||||||
|
|
||||||
#prompt {
|
|
||||||
margin: 0px 0.3em 0em 0em ;
|
|
||||||
}
|
|
||||||
|
|
||||||
#listview {
|
|
||||||
padding: 0px;
|
|
||||||
border-color: @pink;
|
|
||||||
dynamic: false;
|
|
||||||
lines: 10;
|
|
||||||
background-color: @darkblue;
|
|
||||||
}
|
|
||||||
|
|
||||||
#element,element-icon,element-text {
|
|
||||||
color: inherit;
|
|
||||||
background-color: inherit;
|
|
||||||
}
|
|
||||||
|
|
||||||
#element {
|
|
||||||
padding: 5px;
|
|
||||||
margin: 0 5px;
|
|
||||||
vertical-align: 0.5;
|
|
||||||
border-color: @magenta;
|
|
||||||
color: @lightblue;
|
|
||||||
font:inherit;
|
|
||||||
}
|
|
||||||
|
|
||||||
#element selected.normal {
|
|
||||||
color: @darkblue;
|
|
||||||
background-color: @yellow;
|
|
||||||
}
|
|
||||||
|
|
||||||
#element-text {
|
|
||||||
highlight: bold #711c91;
|
|
||||||
}
|
|
||||||
|
|
||||||
#element alternate active {
|
|
||||||
foreground: @blue;
|
|
||||||
}
|
|
||||||
|
|
||||||
#element alternate urgent {
|
|
||||||
foreground: @red;
|
|
||||||
}
|
|
||||||
|
|
||||||
#element selected active {
|
|
||||||
background-color: @blue;
|
|
||||||
foreground: @lightblue;
|
|
||||||
}
|
|
||||||
|
|
||||||
#element selected urgent {
|
|
||||||
background-color: @red;
|
|
||||||
foreground: @dark;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
@@ -0,0 +1,14 @@
|
|||||||
|
[Unit]
|
||||||
|
Description=GNOME Keyring daemon
|
||||||
|
|
||||||
|
Requires=gnome-keyring-daemon.socket
|
||||||
|
|
||||||
|
[Service]
|
||||||
|
Type=simple
|
||||||
|
StandardError=journal
|
||||||
|
ExecStart=/usr/bin/gnome-keyring-daemon --foreground --components="pkcs11,secrets,ssh" --control-directory=%t/keyring
|
||||||
|
Restart=on-failure
|
||||||
|
|
||||||
|
[Install]
|
||||||
|
Also=gnome-keyring-daemon.socket
|
||||||
|
WantedBy=default.target
|
||||||
@@ -0,0 +1,58 @@
|
|||||||
|
{
|
||||||
|
"font-familly": "FiraCode Nerd Font",
|
||||||
|
"height": 30, // Waybar height (to be removed for auto height)
|
||||||
|
"spacing": 1, // Gaps between modules (4px)
|
||||||
|
"modules-left": ["niri/workspaces"],
|
||||||
|
"modules-center": ["clock"],
|
||||||
|
"modules-right": ["tray", "pulseaudio", "battery"],
|
||||||
|
"tray": {
|
||||||
|
"icon-size": 16,
|
||||||
|
"spacing": 4
|
||||||
|
},
|
||||||
|
"clock": {
|
||||||
|
"timezone": "Europe/Paris",
|
||||||
|
"format": "{:%d-%m-%Y - %H:%M}",
|
||||||
|
},
|
||||||
|
"battery": {
|
||||||
|
"states": {
|
||||||
|
// "good": 95,
|
||||||
|
"warning": 30,
|
||||||
|
"critical": 15
|
||||||
|
},
|
||||||
|
"format": "{capacity}% {icon}",
|
||||||
|
"format-charging": "{capacity}% ",
|
||||||
|
"format-plugged": "{capacity}% ",
|
||||||
|
"format-alt": "{time} {icon}",
|
||||||
|
"format-icons": ["", "", "", "", ""]
|
||||||
|
},
|
||||||
|
"battery#bat2": {
|
||||||
|
"bat": "BAT2"
|
||||||
|
},
|
||||||
|
"network": {
|
||||||
|
// "interface": "wlp2*", // (Optional) To force the use of this interface
|
||||||
|
"format-wifi": "{essid} ({signalStrength}%) ",
|
||||||
|
"format-ethernet": "{ipaddr}/{cidr} ",
|
||||||
|
"tooltip-format": "{ifname} via {gwaddr} ",
|
||||||
|
"format-linked": "{ifname} (No IP) ",
|
||||||
|
"format-disconnected": "Disconnected ⚠",
|
||||||
|
"format-alt": "{ifname}: {ipaddr}/{cidr}"
|
||||||
|
},
|
||||||
|
"pulseaudio": {
|
||||||
|
// "scroll-step": 1, // %, can be a float
|
||||||
|
"format": "{volume}% {icon}",
|
||||||
|
"format-bluetooth": "{volume}% {icon} {format_source}",
|
||||||
|
"format-bluetooth-muted": " {icon} {format_source}",
|
||||||
|
"format-muted": " {format_source}",
|
||||||
|
"format-icons": {
|
||||||
|
"headphone": "",
|
||||||
|
"hands-free": "",
|
||||||
|
"headset": "",
|
||||||
|
"phone": "",
|
||||||
|
"portable": "",
|
||||||
|
"car": "",
|
||||||
|
"default": ["", "", ""]
|
||||||
|
},
|
||||||
|
"on-click": "pavucontrol"
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
@@ -0,0 +1,58 @@
|
|||||||
|
{
|
||||||
|
"font-familly": "FiraCode Nerd Font",
|
||||||
|
"height": 30, // Waybar height (to be removed for auto height)
|
||||||
|
"spacing": 1, // Gaps between modules (4px)
|
||||||
|
"modules-left": ["hyprland/workspaces"],
|
||||||
|
"modules-center": ["clock"],
|
||||||
|
"modules-right": ["tray", "pulseaudio", "battery"],
|
||||||
|
"tray": {
|
||||||
|
"icon-size": 16,
|
||||||
|
"spacing": 4
|
||||||
|
},
|
||||||
|
"clock": {
|
||||||
|
"timezone": "Europe/Paris",
|
||||||
|
"format": "{:%d-%m-%Y - %H:%M}",
|
||||||
|
},
|
||||||
|
"battery": {
|
||||||
|
"states": {
|
||||||
|
// "good": 95,
|
||||||
|
"warning": 30,
|
||||||
|
"critical": 15
|
||||||
|
},
|
||||||
|
"format": "{capacity}% {icon}",
|
||||||
|
"format-charging": "{capacity}% ",
|
||||||
|
"format-plugged": "{capacity}% ",
|
||||||
|
"format-alt": "{time} {icon}",
|
||||||
|
"format-icons": ["", "", "", "", ""]
|
||||||
|
},
|
||||||
|
"battery#bat2": {
|
||||||
|
"bat": "BAT2"
|
||||||
|
},
|
||||||
|
"network": {
|
||||||
|
// "interface": "wlp2*", // (Optional) To force the use of this interface
|
||||||
|
"format-wifi": "{essid} ({signalStrength}%) ",
|
||||||
|
"format-ethernet": "{ipaddr}/{cidr} ",
|
||||||
|
"tooltip-format": "{ifname} via {gwaddr} ",
|
||||||
|
"format-linked": "{ifname} (No IP) ",
|
||||||
|
"format-disconnected": "Disconnected ⚠",
|
||||||
|
"format-alt": "{ifname}: {ipaddr}/{cidr}"
|
||||||
|
},
|
||||||
|
"pulseaudio": {
|
||||||
|
// "scroll-step": 1, // %, can be a float
|
||||||
|
"format": "{volume}% {icon}",
|
||||||
|
"format-bluetooth": "{volume}% {icon} {format_source}",
|
||||||
|
"format-bluetooth-muted": " {icon} {format_source}",
|
||||||
|
"format-muted": " {format_source}",
|
||||||
|
"format-icons": {
|
||||||
|
"headphone": "",
|
||||||
|
"hands-free": "",
|
||||||
|
"headset": "",
|
||||||
|
"phone": "",
|
||||||
|
"portable": "",
|
||||||
|
"car": "",
|
||||||
|
"default": ["", "", ""]
|
||||||
|
},
|
||||||
|
"on-click": "pavucontrol"
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
@@ -0,0 +1,64 @@
|
|||||||
|
{
|
||||||
|
"height": 30, // Waybar height (to be removed for auto height)
|
||||||
|
"spacing": 1, // Gaps between modules (4px)
|
||||||
|
"modules-left": ["sway/workspaces"],
|
||||||
|
"modules-center": ["clock"],
|
||||||
|
"modules-right": ["tray", "pulseaudio", "battery"],
|
||||||
|
"sway/scratchpad": {
|
||||||
|
"format": "{icon} {count}",
|
||||||
|
"show-empty": false,
|
||||||
|
"format-icons": ["", ""],
|
||||||
|
"tooltip": true,
|
||||||
|
"tooltip-format": "{app}: {title}"
|
||||||
|
},
|
||||||
|
"tray": {
|
||||||
|
"icon-size": 16,
|
||||||
|
"spacing": 4
|
||||||
|
},
|
||||||
|
"clock": {
|
||||||
|
"timezone": "Europe/Paris",
|
||||||
|
"format": "{:%d-%m-%Y - %H:%M}",
|
||||||
|
},
|
||||||
|
"battery": {
|
||||||
|
"states": {
|
||||||
|
// "good": 95,
|
||||||
|
"warning": 30,
|
||||||
|
"critical": 15
|
||||||
|
},
|
||||||
|
"format": "{capacity}% {icon}",
|
||||||
|
"format-charging": "{capacity}% ",
|
||||||
|
"format-plugged": "{capacity}% ",
|
||||||
|
"format-alt": "{time} {icon}",
|
||||||
|
"format-icons": ["", "", "", "", ""]
|
||||||
|
},
|
||||||
|
"battery#bat2": {
|
||||||
|
"bat": "BAT2"
|
||||||
|
},
|
||||||
|
"network": {
|
||||||
|
// "interface": "wlp2*", // (Optional) To force the use of this interface
|
||||||
|
"format-wifi": "{essid} ({signalStrength}%) ",
|
||||||
|
"format-ethernet": "{ipaddr}/{cidr} ",
|
||||||
|
"tooltip-format": "{ifname} via {gwaddr} ",
|
||||||
|
"format-linked": "{ifname} (No IP) ",
|
||||||
|
"format-disconnected": "Disconnected ⚠",
|
||||||
|
"format-alt": "{ifname}: {ipaddr}/{cidr}"
|
||||||
|
},
|
||||||
|
"pulseaudio": {
|
||||||
|
// "scroll-step": 1, // %, can be a float
|
||||||
|
"format": "{volume}% {icon}",
|
||||||
|
"format-bluetooth": "{volume}% {icon} {format_source}",
|
||||||
|
"format-bluetooth-muted": " {icon} {format_source}",
|
||||||
|
"format-muted": " {format_source}",
|
||||||
|
"format-icons": {
|
||||||
|
"headphone": "",
|
||||||
|
"hands-free": "",
|
||||||
|
"headset": "",
|
||||||
|
"phone": "",
|
||||||
|
"portable": "",
|
||||||
|
"car": "",
|
||||||
|
"default": ["", "", ""]
|
||||||
|
},
|
||||||
|
"on-click": "pavucontrol"
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
@@ -0,0 +1,283 @@
|
|||||||
|
* {
|
||||||
|
/* `otf-font-awesome` is required to be installed for icons */
|
||||||
|
font-family: FontAwesome, Roboto, Helvetica, Arial, sans-serif;
|
||||||
|
font-size: 13px;
|
||||||
|
}
|
||||||
|
|
||||||
|
window#waybar {
|
||||||
|
background-color: rgba(0, 0, 0, 0.8);
|
||||||
|
border-bottom: 3px solid rgba(100, 114, 125, 0.5);
|
||||||
|
color: #ffffff;
|
||||||
|
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;
|
||||||
|
}
|
||||||
|
|
||||||
|
button {
|
||||||
|
/* Use box-shadow instead of border so the text isn't offset */
|
||||||
|
box-shadow: inset 0 -3px transparent;
|
||||||
|
/* Avoid rounded borders under each button name */
|
||||||
|
border: none;
|
||||||
|
border-radius: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* https://github.com/Alexays/Waybar/wiki/FAQ#the-workspace-buttons-have-a-strange-hover-effect */
|
||||||
|
button:hover {
|
||||||
|
background: inherit;
|
||||||
|
box-shadow: inset 0 -3px #ffffff;
|
||||||
|
}
|
||||||
|
|
||||||
|
#workspaces button {
|
||||||
|
padding: 0 5px;
|
||||||
|
background-color: transparent;
|
||||||
|
color: #ffffff;
|
||||||
|
}
|
||||||
|
|
||||||
|
#workspaces button:hover {
|
||||||
|
background: rgba(0, 0, 0, 0.2);
|
||||||
|
}
|
||||||
|
|
||||||
|
#workspaces button.focused {
|
||||||
|
background-color: #64727D;
|
||||||
|
box-shadow: inset 0 -3px #ffffff;
|
||||||
|
}
|
||||||
|
|
||||||
|
#workspaces button.active {
|
||||||
|
border-bottom: 3px solid #3ec395;
|
||||||
|
}
|
||||||
|
|
||||||
|
#workspaces button.urgent {
|
||||||
|
background-color: #eb4d4b;
|
||||||
|
}
|
||||||
|
|
||||||
|
#mode {
|
||||||
|
background-color: #64727D;
|
||||||
|
border-bottom: 3px solid #ffffff;
|
||||||
|
}
|
||||||
|
|
||||||
|
#clock,
|
||||||
|
#battery,
|
||||||
|
#cpu,
|
||||||
|
#memory,
|
||||||
|
#disk,
|
||||||
|
#temperature,
|
||||||
|
#backlight,
|
||||||
|
#network,
|
||||||
|
#pulseaudio,
|
||||||
|
#wireplumber,
|
||||||
|
#custom-media,
|
||||||
|
#tray,
|
||||||
|
#mode,
|
||||||
|
#idle_inhibitor,
|
||||||
|
#scratchpad,
|
||||||
|
#mpd {
|
||||||
|
padding: 0 10px;
|
||||||
|
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;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* If workspaces is the rightmost module, omit right margin */
|
||||||
|
.modules-right > widget:last-child > #workspaces {
|
||||||
|
margin-right: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
#clock {
|
||||||
|
/* background-color: #64727D;*/
|
||||||
|
}
|
||||||
|
|
||||||
|
#battery {
|
||||||
|
/* background-color: #ffffff;*/
|
||||||
|
}
|
||||||
|
|
||||||
|
/*#battery.charging, #battery.plugged {
|
||||||
|
color: #ffffff;
|
||||||
|
background-color: #26A65B;
|
||||||
|
}*/
|
||||||
|
|
||||||
|
@keyframes blink {
|
||||||
|
to {
|
||||||
|
/*background-color: #ffffff;*/
|
||||||
|
color: red;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#battery.critical:not(.charging) {
|
||||||
|
/*background-color: #f53c3c;*/
|
||||||
|
color: yellow;
|
||||||
|
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: #2ecc71;
|
||||||
|
color: #000000;
|
||||||
|
}
|
||||||
|
|
||||||
|
#memory {
|
||||||
|
background-color: #9b59b6;
|
||||||
|
}
|
||||||
|
|
||||||
|
#disk {
|
||||||
|
background-color: #964B00;
|
||||||
|
}
|
||||||
|
|
||||||
|
#backlight {
|
||||||
|
background-color: #90b1b1;
|
||||||
|
}
|
||||||
|
|
||||||
|
#network {
|
||||||
|
/*background-color: #2980b9;*/
|
||||||
|
}
|
||||||
|
|
||||||
|
#network.disconnected {
|
||||||
|
background-color: #f53c3c;
|
||||||
|
}
|
||||||
|
|
||||||
|
#pulseaudio {
|
||||||
|
/*background-color: #f1c40f;*/
|
||||||
|
color: white;
|
||||||
|
}
|
||||||
|
|
||||||
|
#pulseaudio.muted {
|
||||||
|
background-color: #90b1b1;
|
||||||
|
color: #2a5c45;
|
||||||
|
}
|
||||||
|
|
||||||
|
#wireplumber {
|
||||||
|
background-color: #fff0f5;
|
||||||
|
color: #000000;
|
||||||
|
}
|
||||||
|
|
||||||
|
#wireplumber.muted {
|
||||||
|
background-color: #f53c3c;
|
||||||
|
}
|
||||||
|
|
||||||
|
#custom-media {
|
||||||
|
background-color: #66cc99;
|
||||||
|
color: #2a5c45;
|
||||||
|
min-width: 100px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#custom-media.custom-spotify {
|
||||||
|
background-color: #66cc99;
|
||||||
|
}
|
||||||
|
|
||||||
|
#custom-media.custom-vlc {
|
||||||
|
background-color: #ffa000;
|
||||||
|
}
|
||||||
|
|
||||||
|
#temperature {
|
||||||
|
background-color: #f0932b;
|
||||||
|
}
|
||||||
|
|
||||||
|
#temperature.critical {
|
||||||
|
background-color: #eb4d4b;
|
||||||
|
}
|
||||||
|
|
||||||
|
#tray {
|
||||||
|
/*background-color: #2980b9;*/
|
||||||
|
}
|
||||||
|
|
||||||
|
#tray > .passive {
|
||||||
|
-gtk-icon-effect: dim;
|
||||||
|
}
|
||||||
|
|
||||||
|
#tray > .needs-attention {
|
||||||
|
-gtk-icon-effect: highlight;
|
||||||
|
background-color: #eb4d4b;
|
||||||
|
}
|
||||||
|
|
||||||
|
#idle_inhibitor {
|
||||||
|
background-color: #2d3436;
|
||||||
|
}
|
||||||
|
|
||||||
|
#idle_inhibitor.activated {
|
||||||
|
background-color: #ecf0f1;
|
||||||
|
color: #2d3436;
|
||||||
|
}
|
||||||
|
|
||||||
|
#mpd {
|
||||||
|
background-color: #66cc99;
|
||||||
|
color: #2a5c45;
|
||||||
|
}
|
||||||
|
|
||||||
|
#mpd.disconnected {
|
||||||
|
background-color: #f53c3c;
|
||||||
|
}
|
||||||
|
|
||||||
|
#mpd.stopped {
|
||||||
|
background-color: #90b1b1;
|
||||||
|
}
|
||||||
|
|
||||||
|
#mpd.paused {
|
||||||
|
background-color: #51a37a;
|
||||||
|
}
|
||||||
|
|
||||||
|
#language {
|
||||||
|
background: #00b093;
|
||||||
|
color: #740864;
|
||||||
|
padding: 0 5px;
|
||||||
|
margin: 0 5px;
|
||||||
|
min-width: 16px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#keyboard-state {
|
||||||
|
background: #97e1ad;
|
||||||
|
color: #000000;
|
||||||
|
padding: 0 0px;
|
||||||
|
margin: 0 5px;
|
||||||
|
min-width: 16px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#keyboard-state > label {
|
||||||
|
padding: 0 5px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#keyboard-state > label.locked {
|
||||||
|
background: rgba(0, 0, 0, 0.2);
|
||||||
|
}
|
||||||
|
|
||||||
|
#scratchpad {
|
||||||
|
background: rgba(0, 0, 0, 0.2);
|
||||||
|
}
|
||||||
|
|
||||||
|
#scratchpad.empty {
|
||||||
|
background-color: transparent;
|
||||||
|
}
|
||||||
+16
-6
@@ -1,13 +1,23 @@
|
|||||||
[push]
|
|
||||||
default = simple
|
|
||||||
[user]
|
[user]
|
||||||
email = florestan@bredow.fr
|
|
||||||
name = Florestan Bredow
|
name = Florestan Bredow
|
||||||
[core]
|
email = daiko@daiko.fr
|
||||||
editor = nvim
|
|
||||||
[pull]
|
[pull]
|
||||||
rebase = true
|
rebase = true
|
||||||
[credential]
|
[credential]
|
||||||
helper = /usr/lib/git-core/git-credential-libsecret
|
helper = /usr/lib/git-core/git-credential-libsecret
|
||||||
|
[http]
|
||||||
|
sslbackend = openssl
|
||||||
|
sslVerify = false
|
||||||
|
[safe]
|
||||||
|
directory = /home/bredow/ansible/src
|
||||||
|
directory = /home/bredow/ansible/inventaire
|
||||||
|
directory = /home/bredow/ansible/00_local
|
||||||
|
[core]
|
||||||
|
editor = nvim
|
||||||
|
[filter "lfs"]
|
||||||
|
clean = git-lfs clean -- %f
|
||||||
|
smudge = git-lfs smudge -- %f
|
||||||
|
process = git-lfs filter-process
|
||||||
|
required = true
|
||||||
[init]
|
[init]
|
||||||
defaultBranch = master
|
defaultBranch = main
|
||||||
Executable
+45
@@ -0,0 +1,45 @@
|
|||||||
|
#!/usr/bin/env python3
|
||||||
|
|
||||||
|
import os
|
||||||
|
import textwrap
|
||||||
|
import argparse
|
||||||
|
import subprocess
|
||||||
|
|
||||||
|
from datetime import date
|
||||||
|
|
||||||
|
def load_args():
|
||||||
|
"""loads cli parameters"""
|
||||||
|
parser = argparse.ArgumentParser(
|
||||||
|
description="Takes a snapshot of all pad contents"
|
||||||
|
)
|
||||||
|
parser.add_argument('all', nargs=argparse.REMAINDER)
|
||||||
|
args = parser.parse_args()
|
||||||
|
return vars(args)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
def main():
|
||||||
|
args = load_args()
|
||||||
|
name = ' '.join(args['all'])
|
||||||
|
today = date.today().strftime('%Y-%m-%d')
|
||||||
|
filename = f'/home/bredow/nextcloud/perso/notes/zettelkasten/inbox/{name}.md'
|
||||||
|
|
||||||
|
content = textwrap.dedent(f"""\
|
||||||
|
---
|
||||||
|
date: {today}
|
||||||
|
tags:
|
||||||
|
-
|
||||||
|
---
|
||||||
|
|
||||||
|
""")
|
||||||
|
|
||||||
|
if not os.path.exists(filename):
|
||||||
|
with open(filename, 'w') as file:
|
||||||
|
file.write(content)
|
||||||
|
|
||||||
|
subprocess.run(['nvim', '+normal G$', '+startinsert', filename])
|
||||||
|
os._exit(0)
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
main()
|
||||||
Executable
+29
@@ -0,0 +1,29 @@
|
|||||||
|
#!/usr/bin/env fish
|
||||||
|
|
||||||
|
function get_latest_release
|
||||||
|
curl --silent "https://api.github.com/repos/$1/releases/latest" | grep -Po '"tag_name": "\K.*?(?=")'
|
||||||
|
end
|
||||||
|
|
||||||
|
function update_languagetool
|
||||||
|
cd "$HOME/vm/docker/languagetool"
|
||||||
|
docker compose pull
|
||||||
|
docker compose down
|
||||||
|
docker compose up -d
|
||||||
|
cd -
|
||||||
|
end
|
||||||
|
|
||||||
|
function main
|
||||||
|
|
||||||
|
# Mise à jour système
|
||||||
|
yay -Suy
|
||||||
|
|
||||||
|
# Mise à jour service languagetool
|
||||||
|
update_languagetool
|
||||||
|
|
||||||
|
# Mise à jour de l'environnement de neovim
|
||||||
|
nvim +":PlugInstall --sync" +"PlugUpdate" +"CocInstall coc-jedi" +qa
|
||||||
|
|
||||||
|
exit 0
|
||||||
|
end
|
||||||
|
|
||||||
|
main
|
||||||
@@ -0,0 +1,3 @@
|
|||||||
|
[D-BUS Service]
|
||||||
|
Name=org.freedesktop.secrets
|
||||||
|
Exec=/usr/bin/keepassxc
|
||||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Reference in new issue
Block a user