Compare commits

..

No commits in common. "master" and "p53" have entirely different histories.
master ... p53

682 changed files with 409 additions and 116911 deletions

15
.gitmodules vendored
View File

@ -1,15 +0,0 @@
[submodule "neovim"]
path = neovim
url = https://github.com/Legrems/nv-chad.git
[submodule "scripts"]
path = scripts
url = ../scripts.git
[submodule "scripts-hidden"]
path = scripts-hidden
url = ../scripts-hidden.git
[submodule "neovim-config"]
path = neovim-config
url = ../neovim-config.git
[submodule "hyprland-config"]
path = hyprland-config
url = ../hyprland-config.git

4
bashrc
View File

@ -16,8 +16,8 @@ HISTCONTROL=ignoreboth
shopt -s histappend
# for setting history length see HISTSIZE and HISTFILESIZE in bash(1)
HISTSIZE=10000000
HISTFILESIZE=10000000
HISTSIZE=1000
HISTFILESIZE=2000
# check the window size after each command and, if necessary,
# update the values of LINES and COLUMNS.

View File

@ -1,27 +0,0 @@
import = ["/home/legrems/.config/alacritty/colors.toml", "/home/legrems/.config/alacritty/fonts.toml"]
live_config_reload = true
[cursor]
unfocused_hollow = false
[cursor.style]
blinking = "On"
shape = "Block"
[env]
TERM = "xterm-256color"
WINIT_X11_SCALE_FACTOR = "1.0"
[window]
decorations = "full"
dynamic_title = true
opacity = 0.97
startup_mode = "Windowed"
[window.dimensions]
columns = 82
lines = 24
[window.padding]
x = 8
y = 8

View File

@ -1,23 +0,0 @@
[colors.bright]
black = "#50545B"
blue = "#6CB8F9"
cyan = "#5FC0CC"
green = "#A2CD83"
magenta = "#D282E7"
red = "#EA757E"
white = "#B5BCC9"
yellow = "#EFCA84"
[colors.normal]
black = "#32363D"
blue = "#62AEEF"
cyan = "#55B6C2"
green = "#98C379"
magenta = "#C778DD"
red = "#E06B74"
white = "#ABB2BF"
yellow = "#E5C07A"
[colors.primary]
background = "#1E2128"
foreground = "#ABB2BF"

View File

@ -1,48 +0,0 @@
colors:
# Default colors
primary:
background: '0x2c2c2c'
foreground: '0xd6d6d6'
dim_foreground: '0xdbdbdb'
bright_foreground: '0xd9d9d9'
dim_background: '0x202020' # not sure
bright_background: '0x3a3a3a' # not sure
# Cursor colors
cursor:
text: '0x2c2c2c'
cursor: '0xd9d9d9'
# Normal colors
normal:
black: '0x1c1c1c'
red: '0xbc5653'
green: '0x909d63'
yellow: '0xebc17a'
blue: '0x7eaac7'
magenta: '0xaa6292'
cyan: '0x86d3ce'
white: '0xcacaca'
# Bright colors
bright:
black: '0x636363'
red: '0xbc5653'
green: '0x909d63'
yellow: '0xebc17a'
blue: '0x7eaac7'
magenta: '0xaa6292'
cyan: '0x86d3ce'
white: '0xf7f7f7'
# Dim colors
dim:
black: '0x232323'
red: '0x74423f'
green: '0x5e6547'
yellow: '0x8b7653'
blue: '0x556b79'
magenta: '0x6e4962'
cyan: '0x5c8482'
white: '0x828282'

View File

@ -1,32 +0,0 @@
colors:
# Default colors
primary:
background: '0x292C3E'
foreground: '0xEBEBEB'
# Cursor colors
cursor:
text: '0xFF261E'
cursor: '0xFF261E'
# Normal colors
normal:
black: '0x0d0d0d'
red: '0xFF301B'
green: '0xA0E521'
yellow: '0xFFC620'
blue: '0x1BA6FA'
magenta: '0x8763B8'
cyan: '0x21DEEF'
white: '0xEBEBEB'
# Bright colors
bright:
black: '0x6D7070'
red: '0xFF4352'
green: '0xB8E466'
yellow: '0xFFD750'
blue: '0x1BA6FA'
magenta: '0xA578EA'
cyan: '0x73FBF1'
white: '0xFEFEF8'

View File

@ -1,28 +0,0 @@
# Colors (Ayu Dark)
colors:
# Default colors
primary:
background: '0x0A0E14'
foreground: '0xB3B1AD'
# Normal colors
normal:
black: '0x01060E'
red: '0xEA6C73'
green: '0x91B362'
yellow: '0xF9AF4F'
blue: '0x53BDFA'
magenta: '0xFAE994'
cyan: '0x90E1C6'
white: '0xC7C7C7'
# Bright colors
bright:
black: '0x686868'
red: '0xF07178'
green: '0xC2D94C'
yellow: '0xFFB454'
blue: '0x59C2FF'
magenta: '0xFFEE99'
cyan: '0x95E6CB'
white: '0xFFFFFF'

View File

@ -1,33 +0,0 @@
# Colors (Base16 Default Dark)
colors:
# Default colors
primary:
background: '0x181818'
foreground: '0xd8d8d8'
# Colors the cursor will use if `custom_cursor_colors` is true
cursor:
text: '0xd8d8d8'
cursor: '0xd8d8d8'
# Normal colors
normal:
black: '0x181818'
red: '0xab4642'
green: '0xa1b56c'
yellow: '0xf7ca88'
blue: '0x7cafc2'
magenta: '0xba8baf'
cyan: '0x86c1b9'
white: '0xd8d8d8'
# Bright colors
bright:
black: '0x585858'
red: '0xab4642'
green: '0xa1b56c'
yellow: '0xf7ca88'
blue: '0x7cafc2'
magenta: '0xba8baf'
cyan: '0x86c1b9'
white: '0xf8f8f8'

View File

@ -1,28 +0,0 @@
# Colors (Blood Moon)
colors:
# Default colors
primary:
background: '0x10100E'
foreground: '0xC6C6C4'
# Normal colors
normal:
black: '0x10100E'
red: '0xC40233'
green: '0x009F6B'
yellow: '0xFFD700'
blue: '0x0087BD'
magenta: '0x9A4EAE'
cyan: '0x20B2AA'
white: '0xC6C6C4'
# Bright colors
bright:
black: '0x696969'
red: '0xFF2400'
green: '0x03C03C'
yellow: '0xFDFF00'
blue: '0x007FFF'
magenta: '0xFF1493'
cyan: '0x00CCCC'
white: '0xFFFAFA'

View File

@ -1,44 +0,0 @@
# KDE Breeze (Ported from Konsole)
colors:
# Default colors
primary:
background: '0x232627'
foreground: '0xfcfcfc'
dim_foreground: '0xeff0f1'
bright_foreground: '0xffffff'
dim_background: '0x31363b'
bright_background: '0x000000'
# Normal colors
normal:
black: '0x232627'
red: '0xed1515'
green: '0x11d116'
yellow: '0xf67400'
blue: '0x1d99f3'
magenta: '0x9b59b6'
cyan: '0x1abc9c'
white: '0xfcfcfc'
# Bright colors
bright:
black: '0x7f8c8d'
red: '0xc0392b'
green: '0x1cdc9a'
yellow: '0xfdbc4b'
blue: '0x3daee9'
magenta: '0x8e44ad'
cyan: '0x16a085'
white: '0xffffff'
# Dim colors
dim:
black: '0x31363b'
red: '0x783228'
green: '0x17a262'
yellow: '0xb65619'
blue: '0x1b668f'
magenta: '0x614a73'
cyan: '0x186c60'
white: '0x63686d'

View File

@ -1,27 +0,0 @@
colors:
# Default colors
primary:
background: '0xf3f3f3'
foreground: '0x707070'
# Normal colors
normal:
black: '0xd3d3d3'
red: '0xef6b7b'
green: '0xa1d569'
yellow: '0xf59335'
blue: '0x4ec2e8'
magenta: '0xfec7cd'
cyan: '0x95c1c0'
white: '0x707070'
# Bright colors
bright:
black: '0xb3b3b3'
red: '0xed5466'
green: '0xafdb80'
yellow: '0xf59335'
blue: '0x5dc7ea'
magenta: '0xd2a4b4'
cyan: '0x75a1a0'
white: '0x909090'

View File

@ -1,28 +0,0 @@
# Campbell (Windows 10 default)
colors:
# Default colors
primary:
background: '0x0c0c0c'
foreground: '0xcccccc'
# Normal colors
normal:
black: '0x0c0c0c'
red: '0xc50f1f'
green: '0x13a10e'
yellow: '0xc19c00'
blue: '0x0037da'
magenta: '0x881798'
cyan: '0x3a96dd'
white: '0xcccccc'
# Bright colors
bright:
black: '0x767676'
red: '0xe74856'
green: '0x16c60c'
yellow: '0xf9f1a5'
blue: '0x3b78ff'
magenta: '0xb4009e'
cyan: '0x61d6d6'
white: '0xf2f2f2'

View File

@ -1,31 +0,0 @@
# Colors (Challenger Deep)
colors:
# Default colors
primary:
background: '0x1e1c31'
foreground: '0xcbe1e7'
# Colors the cursor will use if `custom_cursor_colors` is true
cursor:
text: '0xff271d'
cursor: '0xfbfcfc'
# Normal colors
normal:
black: '0x141228'
red: '0xff5458'
green: '0x62d196'
yellow: '0xffb378'
blue: '0x65b2ff'
magenta: '0x906cff'
cyan: '0x63f2f1'
white: '0xa6b3cc'
# Bright colors
bright:
black: '0x565575'
red: '0xff8080'
green: '0x95ffa4'
yellow: '0xffe9aa'
blue: '0x91ddff'
magenta: '0xc991e1'
cyan: '0xaaffe4'
white: '0xcbe3e7'

View File

@ -1,34 +0,0 @@
# From the famous Cobalt2 sublime theme
# Source : https://github.com/wesbos/cobalt2/tree/master/Cobalt2
colors:
# Default colors
primary:
background: '0x122637'
foreground: '0xffffff'
# Colors the cursor will use if `custom_cursor_colors` is true
cursor:
text: '0x122637'
cursor: '0xf0cb09'
# Normal colors
normal:
black: '0x000000'
red: '0xff0000'
green: '0x37dd21'
yellow: '0xfee409'
blue: '0x1460d2'
magenta: '0xff005d'
cyan: '0x00bbbb'
white: '0xbbbbbb'
# Bright colors
bright:
black: '0x545454'
red: '0xf40d17'
green: '0x3bcf1d'
yellow: '0xecc809'
blue: '0x5555ff'
magenta: '0xff55ff'
cyan: '0x6ae3f9'
white: '0xffffff'

View File

@ -1,34 +0,0 @@
# Cyber Punk Neon
# Source: https://github.com/Roboron3042/Cyberpunk-Neon
colors:
# Default colors
primary:
background: "0x000b1e"
foreground: "0x0abdc6"
# Colors the cursor will use if `custom_cursor_colors` is true
cursor:
text: "0x000b1e"
cursor: "0x0abdc6"
# 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"

View File

@ -1,29 +0,0 @@
# Colors (Konsole's Dark Pastels)
colors:
# Default colors
primary:
background: '0x2C2C2C'
foreground: '0xDCDCCC'
# Normal colors
normal:
black: '0x3F3F3F'
red: '0x705050'
green: '0x60B48A'
yellow: '0xDFAF8F'
blue: '0x9AB8D7'
magenta: '0xDC8CC3'
cyan: '0x8CD0D3'
white: '0xDCDCCC'
# Bright colors
bright:
black: '0x709080'
red: '0xDCA3A3'
green: '0x72D5A3'
yellow: '0xF0DFAF'
blue: '0x94BFF3'
magenta: '0xEC93D3'
cyan: '0x93E0E3'
white: '0xFFFFFF'

View File

@ -1,27 +0,0 @@
colors:
# Default colors
primary:
background: '0x181b20'
foreground: '0x9b9081'
# Normal colors
normal:
black: '0x353535'
red: '0x744b40'
green: '0x6d6137'
yellow: '0x765636'
blue: '0x61564b'
magenta: '0x6b4a49'
cyan: '0x435861'
white: '0xb3b3b3'
# Bright colors
bright:
black: '0x5f5f5f'
red: '0x785850'
green: '0x6f6749'
yellow: '0x776049'
blue: '0x696057'
magenta: '0x6f5a59'
cyan: '0x525f66'
white: '0xcdcdcd'

View File

@ -1,17 +0,0 @@
# Colors (Doom One)
colors:
# Default colors
primary:
background: '0x282c34'
foreground: '0xbbc2cf'
# Normal colors
normal:
black: '0x282c34'
red: '0xff6c6b'
green: '0x98be65'
yellow: '0xecbe7b'
blue: '0x51afef'
magenta: '0xc678dd'
cyan: '0x46d9ff'
white: '0xbbc2cf'

View File

@ -1,28 +0,0 @@
# Colors (Dracula)
colors:
# Default colors
primary:
background: '0x282a36'
foreground: '0xf8f8f2'
# Normal colors
normal:
black: '0x000000'
red: '0xff5555'
green: '0x50fa7b'
yellow: '0xf1fa8c'
blue: '0xbd93f9'
magenta: '0xff79c6'
cyan: '0x8be9fd'
white: '0xbbbbbb'
# Bright colors
bright:
black: '0x555555'
red: '0xff5555'
green: '0x50fa7b'
yellow: '0xf1fa8c'
blue: '0xcaa9fa'
magenta: '0xff79c6'
cyan: '0x8be9fd'
white: '0xffffff'

View File

@ -1,27 +0,0 @@
colors:
# Default colors
primary:
background: '0x181512'
foreground: '0xbea492'
# Normal colors
normal:
black: '0x332d29'
red: '0x8c644c'
green: '0x746c48'
yellow: '0x908a66'
blue: '0x646a6d'
magenta: '0x605655'
cyan: '0x4b5c5e'
white: '0x504339'
# Bright colors
bright:
black: '0x817267'
red: '0x9f7155'
green: '0x857b52'
yellow: '0x9c956e'
blue: '0x71777a'
magenta: '0x656565'
cyan: '0x556d70'
white: '0x9a875f'

View File

@ -1,34 +0,0 @@
# falcon colorscheme for alacritty
# by fenetikm, https://github.com/fenetikm/falcon
colors:
# Default colors
primary:
background: '0x020221'
foreground: '0xb4b4b9'
# Colors the cursor will use if `custom_cursor_colors` is true
cursor:
text: '0x020221'
cursor: '0xffe8c0'
# Normal colors
normal:
black: '0x000004'
red: '0xff3600'
green: '0x718e3f'
yellow: '0xffc552'
blue: '0x635196'
magenta: '0xff761a'
cyan: '0x34bfa4'
white: '0xb4b4b9'
# Bright colors
bright:
black: '0x020221'
red: '0xff8e78'
green: '0xb1bf75'
yellow: '0xffd392'
blue: '0x99a4bc'
magenta: '0xffb07b'
cyan: '0x8bccbf'
white: '0xf8f8ff'

View File

@ -1,25 +0,0 @@
colors:
primary:
background: '0x272a34'
foreground: '0xFFFFFF'
normal:
black: '0x1F2229'
red: '0xEC0101'
green: '0x47D4B9'
yellow: '0xFF8A18'
blue: '0x277FFF'
magenta: '0xD71655'
cyan: '0x05A1F7'
white: '0xFFFFFF'
bright:
black: '0x1F2229'
red: '0xD41919'
green: '0x5EBDAB'
yellow: '0xFEA44C'
blue: '0x367bf0'
magenta: '0xBF2E5D'
cyan: '0x49AEE6'
white: '0xFFFFFF'

View File

@ -1,28 +0,0 @@
# Colors (Gotham)
colors:
# Default colors
primary:
background: '0x0a0f14'
foreground: '0x98d1ce'
# Normal colors
normal:
black: '0x0a0f14'
red: '0xc33027'
green: '0x26a98b'
yellow: '0xedb54b'
blue: '0x195465'
magenta: '0x4e5165'
cyan: '0x33859d'
white: '0x98d1ce'
# Bright colors
bright:
black: '0x10151b'
red: '0xd26939'
green: '0x081f2d'
yellow: '0x245361'
blue: '0x093748'
magenta: '0x888ba5'
cyan: '0x599caa'
white: '0xd3ebe9'

View File

@ -1,30 +0,0 @@
# Colors (Gruvbox dark)
colors:
# Default colors
primary:
# hard contrast: background = '0x1d2021'
background: '0x282828'
# soft contrast: background = '0x32302f'
foreground: '0xebdbb2'
# Normal colors
normal:
black: '0x282828'
red: '0xcc241d'
green: '0x98971a'
yellow: '0xd79921'
blue: '0x458588'
magenta: '0xb16286'
cyan: '0x689d6a'
white: '0xa89984'
# Bright colors
bright:
black: '0x928374'
red: '0xfb4934'
green: '0xb8bb26'
yellow: '0xfabd2f'
blue: '0x83a598'
magenta: '0xd3869b'
cyan: '0x8ec07c'
white: '0xebdbb2'

View File

@ -1,30 +0,0 @@
# Colors (Gruvbox light)
colors:
# Default colors
primary:
# hard contrast: background = '0xf9f5d7'
background: '0xfbf1c7'
# soft contrast: background = '0xf2e5bc'
foreground: '0x3c3836'
# Normal colors
normal:
black: '0xfbf1c7'
red: '0xcc241d'
green: '0x98971a'
yellow: '0xd79921'
blue: '0x458588'
magenta: '0xb16286'
cyan: '0x689d6a'
white: '0x7c6f64'
# Bright colors
bright:
black: '0x928374'
red: '0x9d0006'
green: '0x79740e'
yellow: '0xb57614'
blue: '0x076678'
magenta: '0x8f3f71'
cyan: '0x427b58'
white: '0x3c3836'

View File

@ -1,26 +0,0 @@
# Colors (Gruvbox Material Dark Medium)
colors:
primary:
background: '0x282828'
foreground: '0xdfbf8e'
normal:
black: '0x665c54'
red: '0xea6962'
green: '0xa9b665'
yellow: '0xe78a4e'
blue: '0x7daea3'
magenta: '0xd3869b'
cyan: '0x89b482'
white: '0xdfbf8e'
bright:
black: '0x928374'
red: '0xea6962'
green: '0xa9b665'
yellow: '0xe3a84e'
blue: '0x7daea3'
magenta: '0xd3869b'
cyan: '0x89b482'
white: '0xdfbf8e'

View File

@ -1,33 +0,0 @@
# Colors (High Contrast)
colors:
# Default colors
primary:
background: '0x444444'
foreground: '0xdddddd'
# Colors the cursor will use if `custom_cursor_colors` is true
cursor:
text: '0xaaaaaa'
cursor: '0xffffff'
# Normal colors
normal:
black: '0x000000'
red: '0xff0000'
green: '0x00ff00'
yellow: '0xffff00'
blue: '0x0000ff'
magenta: '0xff00ff'
cyan: '0x00ffff'
white: '0xffffff'
# Bright colors
bright:
black: '0x000000'
red: '0xff0000'
green: '0x00ff00'
yellow: '0xffff00'
blue: '0x0000ff'
magenta: '0xff00ff'
cyan: '0x00ffff'
white: '0xffffff'

View File

@ -1,28 +0,0 @@
# Colors (Horizon Dark)
colors:
# Primary colors
primary:
background: '0x1c1e26'
foreground: '0xe0e0e0'
# Normal colors
normal:
black: '0x16161c'
red: '0xe95678'
green: '0x29d398'
yellow: '0xfab795'
blue: '0x26bbd9'
magenta: '0xee64ac'
cyan: '0x59e1e3'
white: '0xd5d8da'
# Bright colors
bright:
black: '0x5b5858'
red: '0xec6a88'
green: '0x3fdaa4'
yellow: '0xfbc3a7'
blue: '0x3fc4de'
magenta: '0xf075b5'
cyan: '0x6be4e6'
white: '0xd5d8da'

View File

@ -1,27 +0,0 @@
colors:
# Default colors
primary:
background: '0x161616'
foreground: '0xffffff'
# Normal colors
normal:
black: '0x222222'
red: '0xe84f4f'
green: '0xb7ce42'
yellow: '0xfea63c'
blue: '0x66aabb'
magenta: '0xb7416e'
cyan: '0x6d878d'
white: '0xdddddd'
# Bright colors
bright:
black: '0x666666'
red: '0xd23d3d'
green: '0xbde077'
yellow: '0xffe863'
blue: '0xaaccbb'
magenta: '0xe16a98'
cyan: '0x42717b'
white: '0xcccccc'

View File

@ -1,27 +0,0 @@
colors:
# Default colors
primary:
background: '0x1d1f21'
foreground: '0xc5c8c6'
# Normal colors
normal:
black: '0x282a2e'
red: '0xa54242'
green: '0x8c9440'
yellow: '0xde935f'
blue: '0x5f819d'
magenta: '0x85678f'
cyan: '0x5e8d87'
white: '0x707880'
# Bright colors
bright:
black: '0x373b41'
red: '0xcc6666'
green: '0xb5bd68'
yellow: '0xf0c674'
blue: '0x81a2be'
magenta: '0xb294bb'
cyan: '0x8abeb7'
white: '0xc5c8c6'

View File

@ -1,31 +0,0 @@
# Colors (Hyper)
colors:
# Default colors
primary:
background: '0x000000'
foreground: '0xffffff'
cursor:
text: '0xF81CE5'
cursor: '0xffffff'
# Normal colors
normal:
black: '0x000000'
red: '0xfe0100'
green: '0x33ff00'
yellow: '0xfeff00'
blue: '0x0066ff'
magenta: '0xcc00ff'
cyan: '0x00ffff'
white: '0xd0d0d0'
# Bright colors
bright:
black: '0x808080'
red: '0xfe0100'
green: '0x33ff00'
yellow: '0xfeff00'
blue: '0x0066ff'
magenta: '0xcc00ff'
cyan: '0x00ffff'
white: '0xFFFFFF'

View File

@ -1,27 +0,0 @@
colors:
# Default colors
primary:
background: '0x232323'
foreground: '0xa0a0a0'
# Normal colors
normal:
black: '0x303030'
red: '0xd370a3'
green: '0x6d9e3f'
yellow: '0xb58858'
blue: '0x6095c5'
magenta: '0xac7bde'
cyan: '0x3ba275'
white: '0xcfcfcf'
# Bright colors
bright:
black: '0x686868'
red: '0xffa7da'
green: '0xa3d572'
yellow: '0xefbd8b'
blue: '0x98cbfe'
magenta: '0xe5b0ff'
cyan: '0x75daa9'
white: '0xffffff'

View File

@ -1,28 +0,0 @@
# Colors (iTerm 2 default theme)
colors:
# Default colors
primary:
background: '0x101421'
foreground: '0xfffbf6'
# Normal colors
normal:
black: '0x2e2e2e'
red: '0xeb4129'
green: '0xabe047'
yellow: '0xf6c744'
blue: '0x47a0f3'
magenta: '0x7b5cb0'
cyan: '0x64dbed'
white: '0xe5e9f0'
# Bright colors
bright:
black: '0x565656'
red: '0xec5357'
green: '0xc0e17d'
yellow: '0xf9da6a'
blue: '0x49a4f8'
magenta: '0xa47de9'
cyan: '0x99faf2'
white: '0xffffff'

View File

@ -1,27 +0,0 @@
colors:
# Default colors
primary:
background: '0x1e1e1e'
foreground: '0xffffff'
# Normal colors
normal:
black: '0x5a7260'
red: '0x8f423c'
green: '0xbbbb88'
yellow: '0xf9d25b'
blue: '0xe0ba69'
magenta: '0x709289'
cyan: '0xd13516'
white: '0xefe2e0'
# Bright colors
bright:
black: '0x8da691'
red: '0xeeaa88'
green: '0xccc68d'
yellow: '0xeedd99'
blue: '0xc9b957'
magenta: '0xffcbab'
cyan: '0xc25431'
white: '0xf9f1ed'

View File

@ -1,27 +0,0 @@
colors:
# Default colors
primary:
background: '0x1b1b1b'
foreground: '0xffffff'
# Normal colors
normal:
black: '0x3d3d3d'
red: '0x6673bf'
green: '0x3ea290'
yellow: '0xb0ead9'
blue: '0x31658c'
magenta: '0x596196'
cyan: '0x8292b2'
white: '0xc8cacc'
# Bright colors
bright:
black: '0x4d4d4d'
red: '0x899aff'
green: '0x52ad91'
yellow: '0x98c9bb'
blue: '0x477ab3'
magenta: '0x7882bf'
cyan: '0x95a7cc'
white: '0xedeff2'

View File

@ -1,51 +0,0 @@
# Color theme ported from Konsole: Linux colors
colors:
primary:
foreground: '0xe3e3e3'
bright_foreground: '0xffffff'
dim_foreground: '0xe3e3e3'
background: '0x1f1f1f'
bright_background: '0x686868' # not sure
dim_background: '0x1f1f1f' # not sure
cursor:
text: '0x191622'
cursor: '0xf8f8f2'
search:
matches:
foreground: '0xb2b2b2'
background: '0xb26818'
focused_match:
foreground: CellBackground
background: CellForeground
normal:
black: '0x000000'
red: '0xb21818'
green: '0x18b218'
yellow: '0xb26818'
blue: '0x1818b2'
magenta: '0xb218b2'
cyan: '0x18b2b2'
white: '0xb2b2b2'
bright:
black: '0x686868'
red: '0xff5454'
green: '0x54ff54'
yellow: '0xffff54'
blue: '0x5454ff'
magenta: '0xff54ff'
cyan: '0x54ffff'
white: '0xffffff'
dim:
black: '0x000000'
red: '0xb21818'
green: '0x18b218'
yellow: '0xb26818'
blue: '0x1818b2'
magenta: '0xb218b2'
cyan: '0x18b2b2'
white: '0xb2b2b2'

View File

@ -1,33 +0,0 @@
# Colors (Dim)
colors:
# Default colors
primary:
background: '0x333333'
foreground: '0xdddddd'
# Colors the cursor will use if `custom_cursor_colors` is true
cursor:
text: '0xaaaaaa'
cursor: '0xffffff'
# Normal colors
normal:
black: '0x000000'
red: '0xbb0000'
green: '0x00bb00'
yellow: '0xbbbb00'
blue: '0x0000bb'
magenta: '0xbb00bb'
cyan: '0x00bbbb'
white: '0xbbbbbb'
# Bright colors
bright:
black: '0x000000'
red: '0xbb0000'
green: '0x00bb00'
yellow: '0xbbbb00'
blue: '0x0000bb'
magenta: '0xbb00bb'
cyan: '0x00bbbb'
white: '0xbbbbbb'

View File

@ -1,28 +0,0 @@
# Colors (Material Theme)
colors:
# Default colors
primary:
background: '0x1e282d'
foreground: '0xc4c7d1'
# Normal colors
normal:
black: '0x666666'
red: '0xeb606b'
green: '0xc3e88d'
yellow: '0xf7eb95'
blue: '0x80cbc4'
magenta: '0xff2f90'
cyan: '0xaeddff'
white: '0xffffff'
# Bright colors
bright:
black: '0xff262b'
red: '0xeb606b'
green: '0xc3e88d'
yellow: '0xf7eb95'
blue: '0x7dc6bf'
magenta: '0x6c71c4'
cyan: '0x35434d'
white: '0xffffff'

View File

@ -1,28 +0,0 @@
# Colors (Material Theme)
colors:
# Default colors
primary:
background: '0x1e282d'
foreground: '0xc4c7d1'
# Normal colors
normal:
black: '0x666666'
red: '0xeb606b'
green: '0xc3e88d'
yellow: '0xf7eb95'
blue: '0x80cbc4'
magenta: '0xff2f90'
cyan: '0xaeddff'
white: '0xffffff'
# Bright colors
bright:
black: '0xa1a1a1'
red: '0xeb606b'
green: '0xc3e88d'
yellow: '0xf7eb95'
blue: '0x7dc6bf'
magenta: '0x6c71c4'
cyan: '0x35434d'
white: '0xffffff'

View File

@ -1,27 +0,0 @@
colors:
# Default colors
primary:
background: '0x272822'
foreground: '0xf1ebeb'
# Normal colors
normal:
black: '0x48483e'
red: '0xdc2566'
green: '0x8fc029'
yellow: '0xd4c96e'
blue: '0x55bcce'
magenta: '0x9358fe'
cyan: '0x56b7a5'
white: '0xacada1'
# Bright colors
bright:
black: '0x76715e'
red: '0xfa2772'
green: '0xa7e22e'
yellow: '0xe7db75'
blue: '0x66d9ee'
magenta: '0xae82ff'
cyan: '0x66efd5'
white: '0xcfd0c2'

View File

@ -1,27 +0,0 @@
colors:
# Default colors
primary:
background: '0x021b21'
foreground: '0xe8dfd6'
# Normal colors
normal:
black: '0x032c36'
red: '0xc2454e'
green: '0x7cbf9e'
yellow: '0x8a7a63'
blue: '0x2e3340'
magenta: '0xff5879'
cyan: '0x44b5b1'
white: '0xf2f1b9'
# Bright colors
bright:
black: '0x065f73'
red: '0xef5847'
green: '0xa2d9b1'
yellow: '0xbeb090'
blue: '0x61778d'
magenta: '0xff99a1'
cyan: '0x9ed9d8'
white: '0xf6f6c9'

View File

@ -1,28 +0,0 @@
# Colors (Nord)
colors:
# Default colors
primary:
background: '0x2E3440'
foreground: '0xD8DEE9'
# Normal colors
normal:
black: '0x3B4252'
red: '0xBF616A'
green: '0xA3BE8C'
yellow: '0xEBCB8B'
blue: '0x81A1C1'
magenta: '0xB48EAD'
cyan: '0x88C0D0'
white: '0xE5E9F0'
# Bright colors
bright:
black: '0x4C566A'
red: '0xBF616A'
green: '0xA3BE8C'
yellow: '0xEBCB8B'
blue: '0x81A1C1'
magenta: '0xB48EAD'
cyan: '0x8FBCBB'
white: '0xECEFF4'

View File

@ -1,28 +0,0 @@
# Colors (Oceanic Next)
colors:
# Default colors
primary:
background: '0x1b2b34'
foreground: '0xd8dee9'
# Normal colors
normal:
black: '0x29414f'
red: '0xec5f67'
green: '0x99c794'
yellow: '0xfac863'
blue: '0x6699cc'
magenta: '0xc594c5'
cyan: '0x5fb3b3'
white: '0x65737e'
# Bright colors
bright:
black: '0x405860'
red: '0xec5f67'
green: '0x99c794'
yellow: '0xfac863'
blue: '0x6699cc'
magenta: '0xc594c5'
cyan: '0x5fb3b3'
white: '0xadb5c0'

View File

@ -1,38 +0,0 @@
colors:
primary:
background: '0x191622'
foreground: '0xe1e1e6'
cursor:
text: '0x191622'
cursor: '0xf8f8f2'
normal:
black: '0x000000'
red: '0xff5555'
green: '0x50fa7b'
yellow: '0xeffa78'
blue: '0xbd93f9'
magenta: '0xff79c6'
cyan: '0x8d79ba'
white: '0xbfbfbf'
bright:
black: '0x4d4d4d'
red: '0xff6e67'
green: '0x5af78e'
yellow: '0xeaf08d'
blue: '0xcaa9fa'
magenta: '0xff92d0'
cyan: '0xaa91e3'
white: '0xe6e6e6'
dim:
black: '0x000000'
red: '0xa90000'
green: '0x049f2b'
yellow: '0xa3b106'
blue: '0x530aba'
magenta: '0xbb006b'
cyan: '0x433364'
white: '0x5f5f5f'

View File

@ -1,28 +0,0 @@
# Colors (One Dark)
colors:
# Default colors
primary:
background: '0x1e2127'
foreground: '0xabb2bf'
# Normal colors
normal:
black: '0x1e2127'
red: '0xe06c75'
green: '0x98c379'
yellow: '0xd19a66'
blue: '0x61afef'
magenta: '0xc678dd'
cyan: '0x56b6c2'
white: '0xabb2bf'
# Bright colors
bright:
black: '0x5c6370'
red: '0xe06c75'
green: '0x98c379'
yellow: '0xd19a66'
blue: '0x61afef'
magenta: '0xc678dd'
cyan: '0x56b6c2'
white: '0xffffff'

View File

@ -1,30 +0,0 @@
# iTerm2 Material Design - Palenight theme for Alacritty
# Source : https://github.com/JonathanSpeek/palenight-iterm2
colors:
# Default colors
primary:
background: '0x292d3e'
foreground: '0xd0d0d0'
# Normal colors
normal:
black: '0x292d3e'
red: '0xf07178'
green: '0xc3e88d'
yellow: '0xffcb6b'
blue: '0x82aaff'
magenta: '0xc792ea'
cyan: '0x89ddff'
white: '0xd0d0d0'
# Bright colors
bright:
black: '0x434758'
red: '0xff8b92'
green: '0xddffa7'
yellow: '0xffe585'
blue: '0x9cc4ff'
magenta: '0xe1acff'
cyan: '0xa3f7ff'
white: '0xffffff'

View File

@ -1,32 +0,0 @@
# Colors (PaperColor - Light)
colors:
# Default colors
primary:
background: '0xeeeeee'
foreground: '0x878787'
cursor:
text: '0xeeeeee'
cursor: '0x878787'
# Normal colors
normal:
black: '0xeeeeee'
red: '0xaf0000'
green: '0x008700'
yellow: '0x5f8700'
blue: '0x0087af'
magenta: '0x878787'
cyan: '0x005f87'
white: '0x444444'
# Bright colors
bright:
black: '0xbcbcbc'
red: '0xd70000'
green: '0xd70087'
yellow: '0x8700af'
blue: '0xd75f00'
magenta: '0xd75f00'
cyan: '0x005faf'
white: '0x005f87'

View File

@ -1,27 +0,0 @@
colors:
# Default colors
primary:
background: '0x151515'
foreground: '0x888888'
# Normal colors
normal:
black: '0x292929'
red: '0xcf6a4c'
green: '0x19cb00'
yellow: '0xfad07a'
blue: '0x8197bf'
magenta: '0x8787af'
cyan: '0x668799'
white: '0x888888'
# Bright colors
bright:
black: '0x525252'
red: '0xff9d80'
green: '0x23fd00'
yellow: '0xffefbf'
blue: '0xaccaff'
magenta: '0xc4c4ff'
cyan: '0x80bfaf'
white: '0xe8e8d3'

View File

@ -1,26 +0,0 @@
# Colors (Pencil Dark)
colors:
# Default Colors
primary:
background: '0x212121'
foreground: '0xf1f1f1'
# Normal colors
normal:
black: '0x212121'
red: '0xc30771'
green: '0x10a778'
yellow: '0xa89c14'
blue: '0x008ec4'
magenta: '0x523c79'
cyan: '0x20a5ba'
white: '0xe0e0e0'
# Bright colors
bright:
black: '0x818181'
red: '0xfb007a'
green: '0x5fd7af'
yellow: '0xf3e430'
blue: '0x20bbfc'
magenta: '0x6855de'
cyan: '0x4fb8cc'
white: '0xf1f1f1'

View File

@ -1,26 +0,0 @@
# Colors (Pencil Light)
colors:
# Default Colors
primary:
background: '0xf1f1f1'
foreground: '0x424242'
# Normal colors
normal:
black: '0x212121'
red: '0xc30771'
green: '0x10a778'
yellow: '0xa89c14'
blue: '0x008ec4'
magenta: '0x523c79'
cyan: '0x20a5ba'
white: '0xe0e0e0'
# Bright colors
bright:
black: '0x212121'
red: '0xfb007a'
green: '0x5fd7af'
yellow: '0xf3e430'
blue: '0x20bbfc'
magenta: '0x6855de'
cyan: '0x4fb8cc'
white: '0xf1f1f1'

View File

@ -1,38 +0,0 @@
colors:
# Default colors
primary:
background: '0x2c2b2a'
foreground: '0xf9e7c4'
dim_foreground: '0x685E4A'
bright_foreground: '0x1C1508'
dim_background: '0x202322'
bright_background: '0x353433'
# Cursor colors
cursor:
text: '0xf9e7c4'
cursor: '0xf9e7c4'
# Normal colors
normal:
black: '0x282a2e'
blue: '0x5f819d'
cyan: '0x5e8d87'
green: '0x8c9440'
magenta: '0x85678f'
orange: '0xcc6953'
red: '0xa54242'
white: '0x707880'
yellow: '0xde935f'
# Bright colors
bright:
black: '0x373b41'
blue: '0x81a2be'
cyan: '0x8abeb7'
green: '0xb5bd68'
magenta: '0xb294bb'
red: '0xcc6666'
white: '0xc5c8c6'
yellow: '0xf0c674'

View File

@ -1,28 +0,0 @@
# Colors (Snazzy)
colors:
# Default colors
primary:
background: '0x282a36'
foreground: '0xeff0eb'
# Normal colors
normal:
black: '0x282a36'
red: '0xff5c57'
green: '0x5af78e'
yellow: '0xf3f99d'
blue: '0x57c7ff'
magenta: '0xff6ac1'
cyan: '0x9aedfe'
white: '0xf1f1f0'
# Bright colors
bright:
black: '0x686868'
red: '0xff5c57'
green: '0x5af78e'
yellow: '0xf3f99d'
blue: '0x57c7ff'
magenta: '0xff6ac1'
cyan: '0x9aedfe'
white: '0xf1f1f0'

View File

@ -1,28 +0,0 @@
# Colors (Solarized Dark)
colors:
# Default colors
primary:
background: '0x002b36'
foreground: '0x839496'
# Normal colors
normal:
black: '0x073642'
red: '0xdc322f'
green: '0x859900'
yellow: '0xb58900'
blue: '0x268bd2'
magenta: '0xd33682'
cyan: '0x2aa198'
white: '0xeee8d5'
# Bright colors
bright:
black: '0x002b36'
red: '0xcb4b16'
green: '0x586e75'
yellow: '0x657b83'
blue: '0x839496'
magenta: '0x6c71c4'
cyan: '0x93a1a1'
white: '0xfdf6e3'

View File

@ -1,28 +0,0 @@
# Colors (Solarized Light)
colors:
# Default colors
primary:
background: '0xfdf6e3'
foreground: '0x586e75'
# Normal colors
normal:
black: '0x073642'
red: '0xdc322f'
green: '0x859900'
yellow: '0xb58900'
blue: '0x268bd2'
magenta: '0xd33682'
cyan: '0x2aa198'
white: '0xeee8d5'
# Bright colors
bright:
black: '0x002b36'
red: '0xcb4b16'
green: '0x586e75'
yellow: '0x657b83'
blue: '0x839496'
magenta: '0x6c71c4'
cyan: '0x93a1a1'
white: '0xfdf6e3'

View File

@ -1,27 +0,0 @@
colors:
# Default colors
primary:
background: '0x1f1f1f'
foreground: '0xc0b18b'
# Normal colors
normal:
black: '0x4a3637'
red: '0xd17b49'
green: '0x7b8748'
yellow: '0xaf865a'
blue: '0x535c5c'
magenta: '0x775759'
cyan: '0x6d715e'
white: '0xc0b18b'
# Bright colors
bright:
black: '0x402e2e'
red: '0xac5d2f'
green: '0x647035'
yellow: '0x8f6840'
blue: '0x444b4b'
magenta: '0x614445'
cyan: '0x585c49'
white: '0x978965'

View File

@ -1,31 +0,0 @@
# Colors (Taerminal)
colors:
# Default colors
primary:
background: '0x26282a'
foreground: '0xf0f0f0'
cursor:
background: '0xf0f0f0'
foreground: '0x26282a'
# Normal colors
normal:
black: '0x26282a'
red: '0xff8878'
green: '0xb4fb73'
yellow: '0xfffcb7'
blue: '0x8bbce5'
magenta: '0xffb2fe'
cyan: '0xa2e1f8'
white: '0xf1f1f1'
# Bright colors
bright:
black: '0x6f6f6f'
red: '0xfe978b'
green: '0xd6fcba'
yellow: '0xfffed5'
blue: '0xc2e3ff'
magenta: '0xffc6ff'
cyan: '0xc0e9f8'
white: '0xffffff'

View File

@ -1,26 +0,0 @@
# GNOME Terminal Tango Dark
colors:
primary:
background: '0x2e3436'
foreground: '0xd3d7cf'
normal:
black: '0x2e3436'
red: '0xcc0000'
green: '0x4e9a06'
yellow: '0xc4a000'
blue: '0x3465a4'
magenta: '0x75507b'
cyan: '0x06989a'
white: '0xd3d7cf'
bright:
black: '0x555753'
red: '0xef2929'
green: '0x8ae234'
yellow: '0xfce94f'
blue: '0x729fcf'
magenta: '0xad7fa8'
cyan: '0x34e2e2'
white: '0xeeeeec'

View File

@ -1,27 +0,0 @@
colors:
# Default colors
primary:
background: '0x282828'
foreground: '0xeeeeee'
# Normal colors
normal:
black: '0x282828'
red: '0xf43753'
green: '0xc9d05c'
yellow: '0xffc24b'
blue: '0xb3deef'
magenta: '0xd3b987'
cyan: '0x73cef4'
white: '0xeeeeee'
# Bright colors
bright:
black: '0x4c4c4c'
red: '0xf43753'
green: '0xc9d05c'
yellow: '0xffc24b'
blue: '0xb3deef'
magenta: '0xd3b987'
cyan: '0x73cef4'
white: '0xfeffff'

View File

@ -1,28 +0,0 @@
# Colors (Terminal.app)
colors:
# Default colors
primary:
background: '0x000000'
foreground: '0xb6b6b6'
# Normal colors
normal:
black: '0x000000'
red: '0x990000'
green: '0x00a600'
yellow: '0x999900'
blue: '0x0000b2'
magenta: '0xb200b2'
cyan: '0x00a6b2'
white: '0xbfbfbf'
# Bright colors
bright:
black: '0x666666'
red: '0xe50000'
green: '0x00d900'
yellow: '0xe5e500'
blue: '0x0000ff'
magenta: '0xe500e5'
cyan: '0x00e5e5'
white: '0xe5e5e5'

View File

@ -1,27 +0,0 @@
colors:
# Default colors
primary:
background: '0x1D1F28'
foreground: '0xFDFDFD'
# Normal colors
normal:
# Bright colors
black: '0x282A36'
red: '0xF37F97'
green: '0x5ADECD'
yellow: '0xF2A272'
blue: '0x8897F4'
magenta: '0xC574DD'
cyan: '0x79E6F3'
white: '0xFDFDFD'
bright:
black: '0x414458'
red: '0xFF4971'
green: '0x18E3C8'
yellow: '0xEBCB8B'
blue: '0xFF8037'
magenta: '0x556FFF'
cyan: '0x3FDCEE'
white: '0xBEBEC1'
indexed_colors: []

View File

@ -1,29 +0,0 @@
# Colors (Tokyo Night)
# Source: https://github.com/zatchheems/tokyo-night-alacritty-theme
colors:
# Default colors
primary:
background: '0x1a1b26'
foreground: '0xa9b1d6'
# Normal colors
normal:
black: '0x32344a'
red: '0xf7768e'
green: '0x9ece6a'
yellow: '0xe0af68'
blue: '0x7aa2f7'
magenta: '0xad8ee6'
cyan: '0x449dab'
white: '0x787c99'
# Bright colors
bright:
black: '0x444b6a'
red: '0xff7a93'
green: '0xb9f27c'
yellow: '0xff9e64'
blue: '0x7da6ff'
magenta: '0xbb9af7'
cyan: '0x0db9d7'
white: '0xacb0d0'

View File

@ -1,29 +0,0 @@
# Colors (Tokyo Night: Storm variant)
# Source: https://github.com/zatchheems/tokyo-night-alacritty-theme
colors:
# Default colors
primary:
background: '0x24283b'
foreground: '0xa9b1d6'
# Normal colors
normal:
black: '0x32344a'
red: '0xf7768e'
green: '0x9ece6a'
yellow: '0xe0af68'
blue: '0x7aa2f7'
magenta: '0xad8ee6'
cyan: '0x449dab'
white: '0x9699a8'
# Bright colors
bright:
black: '0x444b6a'
red: '0xff7a93'
green: '0xb9f27c'
yellow: '0xff9e64'
blue: '0x7da6ff'
magenta: '0xbb9af7'
cyan: '0x0db9d7'
white: '0xacb0d0'

View File

@ -1,33 +0,0 @@
# Colors (Tomorrow Night)
colors:
# Default colors
primary:
background: '0x1d1f21'
foreground: '0xc5c8c6'
# Colors the cursor will use if `custom_cursor_colors` is true
cursor:
text: '0x1d1f21'
cursor: '0xffffff'
# Normal colors
normal:
black: '0x1d1f21'
red: '0xcc6666'
green: '0xb5bd68'
yellow: '0xe6c547'
blue: '0x81a2be'
magenta: '0xb294bb'
cyan: '0x70c0ba'
white: '0x373b41'
# Bright colors
bright:
black: '0x666666'
red: '0xff3334'
green: '0x9ec400'
yellow: '0xf0c674'
blue: '0x81a2be'
magenta: '0xb77ee0'
cyan: '0x54ced6'
white: '0x282a2e'

View File

@ -1,28 +0,0 @@
# Colors (Tomorrow Night Bright)
colors:
# Default colors
primary:
background: '0x000000'
foreground: '0xeaeaea'
# Normal colors
normal:
black: '0x000000'
red: '0xd54e53'
green: '0xb9ca4a'
yellow: '0xe6c547'
blue: '0x7aa6da'
magenta: '0xc397d8'
cyan: '0x70c0ba'
white: '0x424242'
# Bright colors
bright:
black: '0x666666'
red: '0xff3334'
green: '0x9ec400'
yellow: '0xe7c547'
blue: '0x7aa6da'
magenta: '0xb77ee0'
cyan: '0x54ced6'
white: '0x2a2a2a'

View File

@ -1,27 +0,0 @@
colors:
# Default colors
primary:
background: '0x101010'
foreground: '0xd2c5bc'
# Normal colors
normal:
black: '0x202020'
red: '0xb91e2e'
green: '0x81957c'
yellow: '0xf9bb80'
blue: '0x356579'
magenta: '0x2d2031'
cyan: '0x0b3452'
white: '0x909090'
# Bright colors
bright:
black: '0x606060'
red: '0xd14548'
green: '0xa7b79a'
yellow: '0xfae3a0'
blue: '0x7491a1'
magenta: '0x87314e'
cyan: '0x0f829d'
white: '0xfff0f0'

View File

@ -1,27 +0,0 @@
colors:
# Default colors
primary:
background: '0x333333'
foreground: '0xcccccc'
# Normal colors
normal:
black: '0x666666'
red: '0xcc6699'
green: '0x99cc66'
yellow: '0xcc9966'
blue: '0x6699cc'
magenta: '0x9966cc'
cyan: '0x66cc99'
white: '0xcccccc'
# Bright colors
bright:
black: '0x999999'
red: '0xff99cc'
green: '0xccff99'
yellow: '0xffcc99'
blue: '0x99ccff'
magenta: '0xcc99ff'
cyan: '0x99ffcc'
white: '0xffffff'

View File

@ -1,28 +0,0 @@
# Colors (Wombat)
colors:
# Default colors
primary:
background: '0x1f1f1f'
foreground: '0xe5e1d8'
# Normal colors
normal:
black: '0x000000'
red: '0xf7786d'
green: '0xbde97c'
yellow: '0xefdfac'
blue: '0x6ebaf8'
magenta: '0xef88ff'
cyan: '0x90fdf8'
white: '0xe5e1d8'
# Bright colors
bright:
black: '0xb4b4b4'
red: '0xf99f92'
green: '0xe3f7a1'
yellow: '0xf2e9bf'
blue: '0xb3d2ff'
magenta: '0xe5bdff'
cyan: '0xc2fefa'
white: '0xffffff'

View File

@ -1,27 +0,0 @@
# XTerm's default colors
colors:
# Default colors
primary:
background: '0x000000'
foreground: '0xffffff'
# Normal colors
normal:
black: '0x000000'
red: '0xcd0000'
green: '0x00cd00'
yellow: '0xcdcd00'
blue: '0x0000ee'
magenta: '0xcd00cd'
cyan: '0x00cdcd'
white: '0xe5e5e5'
# Bright colors
bright:
black: '0x7f7f7f'
red: '0xff0000'
green: '0x00ff00'
yellow: '0xffff00'
blue: '0x5c5cff'
magenta: '0xff00ff'
cyan: '0x00ffff'
white: '0xffffff'

View File

@ -1,27 +0,0 @@
colors:
# Default colors
primary:
background: '0xf5e7de'
foreground: '0x34302d'
# Normal colors
normal:
black: '0x666661'
red: '0x992e2e'
green: '0x4c3226'
yellow: '0xa67c53'
blue: '0x4c7399'
magenta: '0xbf9986'
cyan: '0xd97742'
white: '0x34302d'
# Bright colors
bright:
black: '0x7f7f7a'
red: '0xb23636'
green: '0x664233'
yellow: '0xbf8f60'
blue: '0x5986b2'
magenta: '0xd9ae98'
cyan: '0xf2854a'
white: '0x4c4742'

View File

@ -1,14 +0,0 @@
[font]
size = 10
[font.bold]
family = "JetBrainsMono Nerd Font"
[font.bold_italic]
family = "JetBrainsMono Nerd Font"
[font.italic]
family = "JetBrainsMono Nerd Font"
[font.normal]
family = "JetBrainsMono Nerd Font"

View File

@ -1,328 +1,334 @@
## Copyright (C) 2020-2023 Aditya Shakya <adi1090x@gmail.com>
##
## i3wm configuration for Archcraft
##
## i3 config file (v4)
# Start i3bar to display a workspace bar (plus the system information i3status
# finds out, if available)
#bar {
#status_command i3status
#}
##-- Include Config Files ----------------------
# 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).
#
## Tilde expands to the users home directory:
#include ~/.config/i3/01_theme.conf
# i3 config file (v4)
#
# Please see https://i3wm.org/docs/userguide.html for a complete reference!
#
## Environment variables are expanded:
#include $HOME/.config/i3/01_theme.conf
set $mod Mod4
## Wildcards are expanded:
#include ~/.config/i3/config.d/*.conf
# 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 Mono 10
## Command substitution:
#include ~/.config/i3/`hostname`.conf
# 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:DejaVu Sans Mono 8
## i3 changes the working directory while parsing a config file
## so that relative paths are interpreted relative to the directory
## of the config file that contains the path:
#include 01_theme.conf
# The combination of xss-lock, nm-applet and pactl is a popular choice, so
# they are included here as an example. Modify as you see fit.
## To list all loaded configuration files, run `i3 --moreversion`
# xss-lock zen grabs a logind suspend inhibit lock and will use i3lock to lock the
# screen before suspend.
exec --no-startup-id xss-lock --transfer-sleep-lock -- i3lock --nofork
#------
# NetworkManager is the most popular way to manage wireless networks on Linux,
# and nm-applet is a desktop environment-independent system tray GUI for it.
exec --no-startup-id nm-applet
## Load i3 config files
include ~/.config/i3/config.d/*.conf
exec --no-startup-id telegram-desktop
# exec --no-startup-id syncthing-gtk
exec --no-startup-id keepass
exec --no-startup-id onboard
exec --no-startup-id touchegg
exec --no-startup-id xscreensaver
# exec --no-startup-id mailspring
# exec --no-startup-id minetime
## Enable/Disable i3 bar
#include ~/.config/i3/i3status/statusbar.conf
# No border :)
default_border pixel 1
default_floating_border none
# Default colors
# class border backgr. text indicator child_border
client.focused #ffffff #888888 #000000 #ffffff #888888
client.focused_inactive #333333 #5f676a #ffffff #484e50 #5f676a
client.unfocused #a000ff #040404 #888888 #444444 #444444
client.urgent #2f343a #600099 #ffffff #600099 #600099
client.placeholder #000000 #0c0c0c #ffffff #000000 #0c0c0c
##-- Mod Keys ----------------------------------
set $MOD Mod4
set $ALT Mod1
client.background #000000
##-- General Settings --------------------------
# Use pactl to adjust volume in PulseAudio.
bindsym XF86AudioRaiseVolume exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ +8%
bindsym XF86AudioLowerVolume exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ -7%
bindsym XF86AudioMute exec --no-startup-id pactl set-sink-mute @DEFAULT_SINK@ toggle
## Floating Modifier
##
## To move floating windows with your mouse, you can either grab their titlebar
## or configure the so-called floating modifier which you can then press and click
## anywhere in the window itself to move it.
##
## When holding the floating modifier, you can resize a floating window by pressing
## the right mouse button on it and moving around while holding it.
## If you hold the shift button as well, the resize will be proportional
## (the aspect ratio will be preserved).
floating_modifier $MOD
# Brightness settings
bindsym XF86MonBrightnessUp exec --no-startup-id xbacklight -inc 5
bindsym XF86MonBrightnessDown exec --no-startup-id xbacklight -dec 5
#------
# Transparent lock
bindsym $mod+i exec xtrlock
## Orientation for new workspaces
##
## New workspaces get a reasonable default orientation: Wide-screen monitors
## (anything wider than high) get horizontal orientation, rotated monitors
## (anything higher than wide) get vertical orientation.
##
## Syntax: default_orientation horizontal|vertical|auto
default_orientation auto
# Multiple display settings
bindsym XF86Display exec --no-startup-id arandr
#------
# Use Mouse+$mod to drag floating windows to their wanted position
floating_modifier $mod
## Layout mode for new containers
##
## This option determines in which mode new containers on workspace level will start.
##
## Syntax: workspace_layout default|stacking|tabbed
workspace_layout default
# start a terminal
bindsym $mod+Return exec i3-sensible-terminal
#------
# kill focused window
bindsym $mod+w kill
## Window title alignment
##
## This option determines the window titles text alignment. Default is left
##
## Syntax: title_align left|center|right
title_align center
# start dmenu (a program launcher)
#bindsym $mod+r exec dmenu_run
bindsym $mod+r exec --no-startup-id ~/.config/rofi/bin/menu_powermenu
#bindsym $mod+r exec --no-startup-id ~/rofi/files/powermenu/type-2/powermenu.sh
# start rofi
bindsym $mod+p exec "rofi -modes combi -show combi run,window"
# switch rofi
bindsym $mod+q exec rofi -show window
# rofi fb
bindsym $mod+g exec rofi -show file-browser-extended
# ssh rofi
#bindsym $mod+c exec rofi -show ssh
bindsym $mod+c exec --no-startup-id ~/.config/rofi/bin/menu_time
# lock screen
bindsym $mod+o exec ~/lock.sh
#bindsym $mod+o exec slimlock
# ristretto
bindsym $mod+e exec nemo
## Print all window titles in format of 'class | title'
for_window [class=".*"] title_format "%class | %title"
# 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
## Enable window icons for all windows
for_window [all] title_window_icon off
# change focus
bindsym $mod+h focus left
bindsym $mod+j focus down
bindsym $mod+k focus up
bindsym $mod+l focus right
## Enable window icons for all windows with extra horizontal padding
#for_window [all] title_window_icon padding 5px
# 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+h move left
bindsym $mod+Shift+j move down
bindsym $mod+Shift+k move up
bindsym $mod+Shift+l move right
## Default border style for new windows
##
## This option determines which border style new windows will have. The default is `normal`.
## Note that `default_floating_border` applies only to windows which are starting out
## as floating windows, e.g., dialog windows, but not windows that are floated later on.
##
## Setting border style to `pixel` eliminates title bars. The border style `normal`
## allows you to adjust edge border width while keeping your title bar.
##
## Syntax:
#default_border normal|none|pixel
#default_border normal|pixel <px>
#default_floating_border normal|none|pixel
#default_floating_border normal|pixel <px>
#default_border pixel 2
#default_floating_border pixel 2
# 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
#------
# Resizing windows
bindsym $mod+Ctrl+Shift+Up resize shrink height 10 px or 10 ppt
bindsym $mod+Ctrl+Shift+Down resize grow height 10 px or 10 ppt
bindsym $mod+Ctrl+Shift+Right resize shrink width 10 px or 10 ppt
bindsym $mod+Ctrl+Shift+Left resize grow width 10 px or 10 ppt
## Hiding borders adjacent to the screen edges
##
## You can hide container borders adjacent to the screen edges using `hide_edge_borders`
## (the default is none). Hiding borders is useful if you are using scrollbars,
## or do not want to waste even two pixels in displayspace.
##
## The `smart` setting hides borders on workspaces with only one window visible,
## but keeps them on workspaces with multiple windows visible.
##
## The `smart_no_gaps` setting hides edge-specific borders of a container if the
## container is the only container on its workspace and the gaps to the screen edge are 0.
##
## Syntax: hide_edge_borders none|vertical|horizontal|both|smart|smart_no_gaps
hide_edge_borders none
bindsym $mod+Ctrl+Shift+k resize shrink height 10 px or 10 ppt
bindsym $mod+Ctrl+Shift+j resize grow height 10 px or 10 ppt
bindsym $mod+Ctrl+Shift+l resize shrink width 10 px or 10 ppt
bindsym $mod+Ctrl+Shift+h resize grow width 10 px or 10 ppt
#------
# split in horizontal orientation
bindsym $mod+b split h
## Smart borders
##
## Smart borders will draw borders on windows only if there is more than one window
## in a workspace. This feature can also be enabled only if the gap size between
## window and screen edge is 0.
##
## Syntax: smart_borders on|off|no_gaps
#smart_borders on
# split in vertical orientation
bindsym $mod+v split v
#------
# enter fullscreen mode for the focused container
bindsym $mod+f fullscreen toggle
## Dont focus window upon opening
##
## When a new window appears, it will be focused. The `no_focus` directive allows
## preventing this from happening and must be used in combination with [command_criteria].
##
## Syntax: no_focus <criteria>
#no_focus [window_role="pop-up"]
# change container layout (stacked, tabbed, toggle split)
bindsym $mod+s layout stacking
bindsym $mod+t layout tabbed
bindsym $mod+a layout toggle split
#------
# toggle tiling / floating
bindsym $mod+Shift+space floating toggle
## Automatically putting workspaces on specific screens
##
## If you assign clients to workspaces, it might be handy to put the workspaces on
## specific screens. Also, the assignment of workspaces to screens will determine
## which workspace i3 uses for a new screen when adding screens or when starting
## (e.g., by default it will use 1 for the first screen, 2 for the second screen and so on).
##
## Syntax: workspace <workspace> output <output1> [output2]…
##
## The `output` is the name of the RandR output you attach your screen to.
## On a laptop, you might have VGA1 and LVDS1 as output names.
## You can see the available outputs by running `xrandr --current`
#workspace 1 output LVDS1
#workspace 2 output primary
#workspace 5 output VGA1 LVDS1
#workspace "2: vim" output VGA1
# change focus between tiling / floating windows
bindsym $mod+space focus mode_toggle
#------
# focus the parent container
# bindsym $mod+a focus parent
## Interprocess communication
##
## i3 uses Unix sockets to provide an IPC interface. This allows third-party programs
## to get information from i3, such as the current workspaces (to display a workspace bar), and to control i3.
##
## You can override the default path through the environment-variable `I3SOCK`
## or by specifying the `ipc-socket` directive.This is discouraged, though,
## since i3 does the right thing by default. If you decide to change it,
## it is strongly recommended to set this to a location in your home directory
## so that no other user can create that directory.
#ipc-socket ~/.i3/i3-ipc.sock
# focus the child container
#bindsym $mod+d focus child
#------
# Define names for default workspaces for which we configure key bindings later on.
# We use variables to avoid repeating the names in multiple places.
set $ws1 "1"
set $ws2 "2"
set $ws3 "3"
set $ws4 "4"
set $ws5 "5"
set $ws6 "6"
set $ws7 "7"
set $ws8 "8"
set $ws9 "9"
set $ws10 "10"
set $ws11 "A"
set $ws12 "B"
set $ws13 "C"
set $ws14 "D"
set $ws15 "E"
set $ws16 "F"
set $ws17 "G"
set $ws18 "H"
set $ws19 "I"
set $ws20 "J"
## Focus follows mouse
##
## By default, window focus follows your mouse movements as the mouse crosses window borders.
## However, if you have a setup where your mouse usually is in your way
## (like a touchpad on your laptop which you do not want to disable completely),
## you might want to disable `focus follows mouse` and control focus only by using your keyboard.
## The mouse will still be useful inside the currently active window (for example to click on links in your browser window).
##
## Syntax: focus_follows_mouse yes|no
focus_follows_mouse yes
# switch to workspace
bindsym $mod+1 workspace $ws1
bindsym $mod+2 workspace $ws2
bindsym $mod+3 workspace $ws3
bindsym $mod+4 workspace $ws4
bindsym $mod+5 workspace $ws5
bindsym $mod+6 workspace $ws6
bindsym $mod+7 workspace $ws7
bindsym $mod+8 workspace $ws8
bindsym $mod+9 workspace $ws9
bindsym $mod+0 workspace $ws10
bindsym $mod+F1 workspace $ws11
bindsym $mod+F2 workspace $ws12
bindsym $mod+F3 workspace $ws13
bindsym $mod+F4 workspace $ws14
bindsym $mod+F5 workspace $ws15
bindsym $mod+F6 workspace $ws16
bindsym $mod+F7 workspace $ws17
bindsym $mod+F8 workspace $ws18
bindsym $mod+F9 workspace $ws19
bindsym $mod+F10 workspace $ws20
#------
# Scratchpad
# Make the currently focused window a scratchpad
bindsym $mod+Shift+minus move scratchpad
# Show the first scratchpad window
bindsym $mod+minus scratchpad show
## Mouse warping
##
## By default, when switching focus to a window on a different output
## (e.g. focusing a window on workspace 3 on output VGA-1, coming from workspace 2 on LVDS-1),
## the mouse cursor is warped to the center of that window.
##
## With the `mouse_warping` option, you can control when the mouse cursor should be warped.
## `none` disables warping entirely, whereas `output` is the default behavior described above.
##
## Syntax: mouse_warping output|none
mouse_warping none
# move focused container to workspace
bindsym $mod+Shift+1 move container to workspace $ws1
bindsym $mod+Shift+2 move container to workspace $ws2
bindsym $mod+Shift+3 move container to workspace $ws3
bindsym $mod+Shift+4 move container to workspace $ws4
bindsym $mod+Shift+5 move container to workspace $ws5
bindsym $mod+Shift+6 move container to workspace $ws6
bindsym $mod+Shift+7 move container to workspace $ws7
bindsym $mod+Shift+8 move container to workspace $ws8
bindsym $mod+Shift+9 move container to workspace $ws9
bindsym $mod+Shift+0 move container to workspace $ws10
bindsym $mod+Shift+F1 move container to workspace $ws11
bindsym $mod+Shift+F2 move container to workspace $ws12
bindsym $mod+Shift+F3 move container to workspace $ws13
bindsym $mod+Shift+F4 move container to workspace $ws14
bindsym $mod+Shift+F5 move container to workspace $ws15
bindsym $mod+Shift+F6 move container to workspace $ws16
bindsym $mod+Shift+F7 move container to workspace $ws17
bindsym $mod+Shift+F8 move container to workspace $ws18
bindsym $mod+Shift+F9 move container to workspace $ws19
bindsym $mod+Shift+F10 move container to workspace $ws20
#------
# 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'"
#
#resize window (you can also use the mouse for that)
mode "resize" {
# These bindings trigger as soon as you enter the resize mode
## Popups during fullscreen mode
##
## When you are in fullscreen mode, some applications still open popup windows (take Xpdf for example).
## This is because these applications might not be aware that they are in fullscreen mode
## (they do not check the corresponding hint).
## There are three things which are possible to do in this situation.
##
## Syntax: popup_during_fullscreen smart|ignore|leave_fullscreen
popup_during_fullscreen smart
# Pressing left will shrink the windows width.
# Pressing right will grow the windows width.
# Pressing up will shrink the windows height.
# Pressing down will grow the windows 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 semicolon 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
## Focus wrapping
##
## By default, when in a container with several windows or child containers,
## the opposite window will be focused when trying to move the focus over the edge of
## a container (and there are no other containers in that direction)the focus wraps.
##
## Syntax: focus_wrapping yes|no|force|workspace
# Disable focus wrapping
#focus_wrapping no
# Force focus wrapping
#focus_wrapping force
# back to normal: Enter or Escape or $mod+r
bindsym Return mode "default"
bindsym Escape mode "default"
bindsym $mod+r mode "default"
}
#
# Supposed to kill with center button
bindsym --release button2 killa
#------
# Custom config window
for_window [class="vlc"] floating enable
for_window [class="feh"] floating enable
## Forcing Xinerama
##
## As explained in-depth in https://i3wm.org/docs/multi-monitor.html, some X11 video
## drivers (especially the nVidia binary driver) only provide support for Xinerama
## instead of RandR. In such a situation, i3 must be told to use the inferior Xinerama
## API explicitly and therefore dont provide support for reconfiguring your screens
## on the fly (they are read only once on startup and thats it).
##
## Syntax: force_xinerama yes|no
#force_xinerama yes
# Assign to desktop
assign [class="Firefox"] 1
assign [class="KeePass"] 3
assign [class="Clementine"] 8
assign [class="Telegram"] 9
assign [class="Mailspring"] 7
assign [class="MineTime"] 7
#------
#bindsym $mod+Return mode "resize"
## Automatic back-and-forth when switching to the current workspace
##
## This configuration directive enables automatic `workspace back_and_forth`
## when switching to the workspace that is currently focused.
##
## Syntax: workspace_auto_back_and_forth yes|no
workspace_auto_back_and_forth yes
# Workspace config
#workspace 1 output DisplayPort-2
#------
# i3 bar configuration
# ----------------------------------------------------------------------------
## Delaying urgency hint reset on workspace change
##
## If an application on another workspace sets an urgency hint, switching to this
## workspace might lead to immediate focus of the application, which also means the
## window decoration color would be immediately reset to `client.focused`.
## This might make it unnecessarily hard to tell which window originally raised the event.
##
## In order to prevent this, you can tell i3 to delay resetting the urgency state by
## a certain time using the `force_display_urgency_hint` directive.
## Setting the value to 0 disables this feature. The default is 500ms.
##
## Syntax: force_display_urgency_hint <timeout> ms
force_display_urgency_hint 500 ms
# Start i3bar to display a workspace bar (plus the system information i3status
# finds out, if available)
bar {
# status_command i3status --
status_command py3status
#------
position top
tray_output primary
## Focus on window activation
##
## If a window is activated, e.g., via `google-chrome www.google.com`, it may request to take focus.
## Since this might not be preferable, different reactions can be configured.
##
## Note that this might not affect windows that are being opened.
## To prevent new windows from being focused.
##
## Syntax: focus_on_window_activation smart|urgent|focus|none
focus_on_window_activation smart
colors {
background #000000
statusline #a000ff
separator #aaaaaa
#------
# Default conf
# focused_workspace #4c7899 #285577 #ffffff
focused_workspace #ffffff #888888 #000000
active_workspace #888888 #444444 #ffffff
inactive_workspace #888888 #000000 #a000ff
urgent_workspace #2f343a #600099 #ffffff
binding_mode #2f343a #600099 #ffffff
}
## Drawing marks on window decoration
##
## If activated, marks on windows are drawn in their window decoration.
## However, any mark starting with an underscore in its name (_) will not be drawn
## even if this option is activated.
##
## The default for this option is yes.
##
## Syntax: show_marks yes|no
show_marks yes
separator_symbol "ʃ"
#separator_symbol "❰"
#separator_symbol "❱"
#separator_symbol " ▷ "
#separator_symbol " ∠ "
#separator_symbol "|"
#separator_symbol "ǁ"
#------
strip_workspace_name no
strip_workspace_numbers yes
## Tiling drag
##
## You can configure how to initiate the tiling drag feature.
##
## Syntax:
#tiling_drag off
#tiling_drag modifier|titlebar [modifier|titlebar]
tiling_drag modifier titlebar
##-- Autostart ---------------------------------
## Automatically starting applications on i3 startup
##
## By using the `exec` keyword outside a keybinding, you can configure which commands
## will be performed by i3 on initial startup. `exec` commands will not run when
## restarting i3, if you need a command to run also when restarting i3 you should
## use the `exec_always` keyword. These commands will be run in order.
##
## Syntax:
#exec [--no-startup-id] <command>
#exec_always [--no-startup-id] <command>
# exec_always --no-startup-id setxkbmap us
exec_always --no-startup-id ~/.screenlayout/default.sh
exec_always --no-startup-id ~/.config/i3/scripts/i3_autostart
## The --no-startup-id parameter disables startup-notification support for this particular exec command.
## With startup-notification, i3 can make sure that a window appears on the workspace on which you used the exec command.
binding_mode_indicator no
}

View File

@ -1,91 +0,0 @@
## Copyright (C) 2020-2023 Aditya Shakya <adi1090x@gmail.com>
##
## Theme
##-- Theme Variables ---------------------
#~ Fonts
set $i3_fonts JetBrainsMono Nerd Font 10
#~ Border
set $i3_border_size 2
set $i3_border_style pixel
#~ Gaps
set $i3_gaps_inner 10
set $i3_gaps_outer 0
set $i3_gaps_smart off
#~ Colors
set $i3_cl_col_bg #1E2128
set $i3_cl_col_fg #ABB2BF
set $i3_cl_col_in #1786e8
set $i3_cl_col_afoc #96cf6e
set $i3_cl_col_ifoc #a2cff6
set $i3_cl_col_ufoc #292d37
set $i3_cl_col_urgt #C778DD
set $i3_cl_col_phol #1E2128
##-- Fonts (Global) ----------------------
## i3 has support for both X core fonts and FreeType fonts (through Pango) to render window titles.
## To generate an X core font description, you can use `xfontsel`
#font <X core font description>
#font pango:<family list> [<style options>] <size>
## Examples
#font -misc-fixed-medium-r-normal--13-120-75-75-C-70-iso10646-1
#font pango:DejaVu Sans Mono 10
#font pango:DejaVu Sans Mono, Terminus Bold Semi-Condensed 11
#font pango:Terminus 11px
font pango:$i3_fonts
##-- Border ------------------------------
## Default border style for new/existing windows
for_window [class=".*"] border $i3_border_style $i3_border_size
##-- Gaps --------------------------------
## Gaps
##
## Since i3 4.22, you can configure window gaps. “Gaps” are added spacing between
## windows (or split containers) and to the screen edges.
##
## Syntax:
##
## Inner gaps for all windows: space between two adjacent windows.
#gaps inner <gap_size>[px]
## Outer gaps for all windows: space along the screen edges.
#gaps outer|horizontal|vertical|top|left|bottom|right <gap_size>[px]
## Inner and outer gaps for all windows on a specific workspace.
## <ws> can be a workspace number or name.
#workspace <ws> gaps inner <gap_size>[px]
#workspace <ws> gaps outer|horizontal|vertical|top|left|bottom|right <gap_size>[px]
## Enabling “Smart Gaps” means no gaps will be shown when there is
## precisely one window or split container on the workspace.
##
## inverse_outer only enables outer gaps when there is exactly one
## window or split container on the workspace.
#smart_gaps on|off|inverse_outer
gaps inner $i3_gaps_inner
gaps outer $i3_gaps_outer
smart_gaps $i3_gaps_smart
##-- Colors ------------------------------
## You can change all colors which i3 uses to draw the window decorations.
## Syntax: <colorclass> <border> <background> <text> <indicator> <child_border>
# class border backgr. text indicator child_border
client.focused $i3_cl_col_afoc $i3_cl_col_afoc $i3_cl_col_bg $i3_cl_col_in $i3_cl_col_afoc
client.focused_inactive $i3_cl_col_ifoc $i3_cl_col_ifoc $i3_cl_col_bg $i3_cl_col_in $i3_cl_col_ifoc
client.unfocused $i3_cl_col_ufoc $i3_cl_col_ufoc $i3_cl_col_fg $i3_cl_col_in $i3_cl_col_ufoc
client.urgent $i3_cl_col_urgt $i3_cl_col_urgt $i3_cl_col_fg $i3_cl_col_in $i3_cl_col_urgt
client.placeholder $i3_cl_col_phol $i3_cl_col_phol $i3_cl_col_fg $i3_cl_col_in $i3_cl_col_phol
client.background $i3_cl_col_bg

View File

@ -1,250 +0,0 @@
## Copyright (C) 2020-2023 Aditya Shakya <adi1090x@gmail.com>config.d
##
## Keybindings
##-- Key Bindings ------------------------
## A keysym (key symbol) is a description for a specific symbol, like "a" or "b",
## but also more strange ones like "underscore" instead of "_".
## These are the ones you use in Xmodmap to remap your keys.
## To get the current mapping of your keys, use `xmodmap -pke`.
## To interactively enter a key and see what keysym it is configured to, use `xev`.
##
## Keycodes do not need to have a symbol assigned (handy for custom vendor hotkeys on some notebooks)
## and they will not change their meaning as you switch to a different keyboard layout (when using `xmodmap`).
##
## If you often switch keyboard layouts but you want to keep your bindings in the
## same physical location on the keyboard, use keycodes.
## If you dont switch layouts, and want a clean and simple config file, use keysyms.
##
## Available Modifiers: Mod1-Mod5, Shift, Control
##
## Syntax:
# bindsym [--release] [<Group>+][<Modifiers>+]<keysym> command
# bindcode [--release] [<Group>+][<Modifiers>+]<keycode> command
##-- Variables ---------------------------
set $terminal ~/.config/i3/scripts/i3_term
set $music_player ~/.config/i3/scripts/i3_music
set $color_picker ~/.config/i3/scripts/i3_colorpicker
set $brightness ~/.config/i3/scripts/i3_brightness
set $volume ~/.config/i3/scripts/i3_volume
set $screenshot ~/.config/i3/scripts/i3_screenshot
set $alacritty alacritty --config-file ~/.config/i3/alacritty/alacritty.yml
set $rofi_applets ~/.config/i3/scripts
set $file_manager nemo
set $text_editor nvim
set $web_browser firefox
## -- Terminal --
bindsym $MOD+Return exec --no-startup-id $terminal
# bindsym $MOD+Shift+Return exec --no-startup-id "$terminal --float"
# bindsym $MOD+$ALT+Return exec --no-startup-id "$terminal --full"
## -- GUI Apps --
bindsym $MOD+Shift+f exec --no-startup-id $file_manager
bindsym $MOD+Shift+e exec --no-startup-id $text_editor
bindsym $MOD+Shift+w exec --no-startup-id $web_browser
## -- CLI Apps --
bindsym $MOD+Shift+Return exec --no-startup-id "$terminal --float -e tmux new-session nvim"
# bindsym $MOD+Control+h exec --no-startup-id "$terminal -e tmux new-session htop"
## -- Rofi Applets --
bindsym $MOD+p exec --no-startup-id $rofi_applets/rofi_launcher -dpi 1
bindsym $MOD+n exec --no-startup-id $rofi_applets/network_menu -dpi 1
bindsym $MOD+r exec --no-startup-id $rofi_applets/rofi_powermenu -dpi 1
bindsym $MOD+q exec --no-startup-id $rofi_applets/rofi_windows -dpi 1
bindsym $MOD+m exec --no-startup-id $rofi_applets/rofi_music -dpi 1
# bindsym $MOD+r exec --no-startup-id $rofi_applets/rofi_asroot
# bindsym $MOD+s exec --no-startup-id $rofi_applets/rofi_screenshot
bindsym $MOD+t exec --no-startup-id $rofi_applets/rofi_themes -dpi 1
## -- Function keys --
bindsym XF86MonBrightnessUp exec --no-startup-id "$brightness --inc"
bindsym XF86MonBrightnessDown exec --no-startup-id "$brightness --dec"
bindsym XF86AudioRaiseVolume exec --no-startup-id "$volume --inc"
bindsym XF86AudioLowerVolume exec --no-startup-id "$volume --dec"
bindsym XF86AudioMute exec --no-startup-id "$volume --toggle"
bindsym XF86AudioMicMute exec --no-startup-id "$volume --toggle-mic"
bindsym XF86AudioNext exec --no-startup-id "mpc next"
bindsym XF86AudioPrev exec --no-startup-id "mpc prev"
bindsym XF86AudioPlay exec --no-startup-id "mpc toggle"
bindsym XF86AudioStop exec --no-startup-id "mpc stop"
## -- Screenshots --
bindsym Print exec --no-startup-id "$screenshot --now"
bindsym Control+Print exec --no-startup-id "$screenshot --in5"
# bindsym Shift+Print exec --no-startup-id "$screenshot --in10"
bindsym Shift+Print exec --no-startup-id $rofi_applets/rofi_screenshot
bindsym Control+Shift+Print exec --no-startup-id "$screenshot --win"
bindsym $MOD+Print exec --no-startup-id "$screenshot --area"
## -- Misc --
# bindsym --release $MOD+p exec --no-startup-id $color_picker
bindsym $ALT+Control+l exec --no-startup-id "betterlockscreen --lock"
##-- WM Specific -------------------------
## Kill focused window
##
bindsym $MOD+w kill
bindsym $MOD+c kill
#------
## Send Notification
##
set $send-notify exec --no-startup-id dunstify -u low -h string:x-dunst-stack-tag:i3config
## Splitting containers
##
## split in horizontal orientation
bindsym $MOD+h split horizontal, $send-notify 'Split Horizontally'
## split in vertical orientation
bindsym $MOD+v split vertical, $send-notify 'Split Vertically'
## toggle split
#bindsym $MOD+g split toggle, $send-notify 'Split Mode'
#------
## Manipulating layout
##
## change container layout (stacked, tabbed, toggle split)
## Set stacking layout
bindsym $MOD+Shift+s layout stacking, $send-notify 'Layout - Stacking'
## Set tabbed layout
bindsym $MOD+Shift+t layout tabbed, $send-notify 'Layout - Tabbed'
## Set default layout
bindsym $MOD+Shift+d layout default, $send-notify 'Layout - Default'
## Toggle between stacking/tabbed/split:
bindsym $MOD+Shift+l layout toggle, $send-notify 'Cycling Layouts'
## Toggle between horizontal/vertical:
bindsym $MOD+Shift+v layout toggle split, $send-notify 'Layout - Hor/Vert'
## Toggle fullscreen
bindsym $MOD+f fullscreen toggle, $send-notify 'Toggled Fullscreen'
## Toggle floating/tiling
bindsym $MOD+space floating toggle, $send-notify 'Toggled Floating Mode'
#------
## Focusing containers
##
## Sets focus to the nearest container in the given direction.
bindsym $MOD+Left focus left
bindsym $MOD+Down focus down
bindsym $MOD+Up focus up
bindsym $MOD+Right focus right
bindsym $MOD+a focus left
bindsym $MOD+d focus right
## Sets focus to the parent container of the current container.
# bindsym $MOD+a focus parent
## The opposite of `focus parent`, sets the focus to the last focused child container.
# bindsym $MOD+d focus child
## Automatically sets focus to the adjacent container.
bindsym $MOD+Tab focus next
## Toggles focus between floating/tiling containers.
bindsym $MOD+Shift+space focus mode_toggle
#------
## Moving containers
##
## move focused window in the given direction.
bindsym $MOD+Shift+Left move left
bindsym $MOD+Shift+Down move down
bindsym $MOD+Shift+Up move up
bindsym $MOD+Shift+Right move right
## Move floating container to the center of all outputs (floating only)
bindsym $MOD+$ALT+c move absolute position center
## Move container to the current position of the cursor (floating only)
bindsym $MOD+$ALT+p move position mouse
#------
## Resizing containers/windows
##
bindsym $MOD+$ALT+Left resize shrink width 50 px or 10 ppt
bindsym $MOD+$ALT+Down resize grow height 50 px or 10 ppt
bindsym $MOD+$ALT+Up resize shrink height 50 px or 10 ppt
bindsym $MOD+$ALT+Right resize grow width 50 px or 10 ppt
#------
## Sticky floating windows (floating only)
##
bindsym $MOD+Shift+o sticky toggle, $send-notify 'Toggled Sticky'
#------
## Changing border style
##
bindsym $MOD+y border toggle, $send-notify 'Toggled Borders'
#------
## Scratchpad
##
## Make the currently focused window a scratchpad
bindsym $MOD+Shift+minus move scratchpad, $send-notify 'Scratchpad'
## Show the first scratchpad window
bindsym $MOD+minus scratchpad show
#------
## restart i3 inplace (preserves your layout/session, can be used to upgrade i3)
bindsym Ctrl+Shift+r restart, $send-notify 'i3wm Restarted!'
## reload the configuration file
bindsym $MOD+Shift+c reload, $send-notify 'Configuration Reloaded!'
## quit i3 session
bindsym $MOD+Shift+q exit
#------
## Changing (named) workspaces/moving to workspaces
##
## Define names for default workspaces for which we configure key bindings later on.
## We use variables to avoid repeating the names in multiple places.
set $ws1 "1"
set $ws2 "2"
set $ws3 "3"
set $ws4 "4"
set $ws5 "5"
set $ws6 "6"
set $ws7 "7"
set $ws8 "8"
set $ws9 "9"
set $ws10 "10"
## switch to workspace
bindsym $MOD+1 workspace number $ws1
bindsym $MOD+2 workspace number $ws2
bindsym $MOD+3 workspace number $ws3
bindsym $MOD+4 workspace number $ws4
bindsym $MOD+5 workspace number $ws5
bindsym $MOD+6 workspace number $ws6
bindsym $MOD+7 workspace number $ws7
bindsym $MOD+8 workspace number $ws8
bindsym $MOD+9 workspace number $ws9
bindsym $MOD+0 workspace number $ws10
## move focused container to workspace
bindsym $MOD+Shift+1 move container to workspace number $ws1
bindsym $MOD+Shift+2 move container to workspace number $ws2
bindsym $MOD+Shift+3 move container to workspace number $ws3
bindsym $MOD+Shift+4 move container to workspace number $ws4
bindsym $MOD+Shift+5 move container to workspace number $ws5
bindsym $MOD+Shift+6 move container to workspace number $ws6
bindsym $MOD+Shift+7 move container to workspace number $ws7
bindsym $MOD+Shift+8 move container to workspace number $ws8
bindsym $MOD+Shift+9 move container to workspace number $ws9
bindsym $MOD+Shift+0 move container to workspace number $ws10
## move a container to the next/previous workspace
bindsym $MOD+Control+Right "move container to workspace next, workspace next"
bindsym $MOD+Control+Left "move container to workspace prev, workspace prev"
## switch between the current and the previously focused one
bindsym $MOD+b workspace back_and_forth
bindsym $MOD+Shift+b "move container to workspace back_and_forth, workspace back_and_forth"

View File

@ -1,25 +0,0 @@
## Copyright (C) 2020-2023 Aditya Shakya <adi1090x@gmail.com>
##
## Mousebindings
##-- Mouse Bindings ------------------------
## A mouse binding makes i3 execute a command upon pressing a specific mouse button
## in the scope of the clicked container.
## You can configure mouse bindings in a similar way to key bindings.
##
## Syntax:
# bindsym [--release] [--border] [--whole-window] [--exclude-titlebar] [<Modifiers>+]button<n> command
## By default, the binding will only run when you click on the titlebar of the window.
## If the `--release` flag is given, it will run when the mouse button is released.
## If the `--whole-window` flag is given, the binding will also run when any part of
## the window is clicked, with the exception of the border.
## To have a bind run when the border is clicked, specify the `--border` flag.
## If the `--exclude-titlebar` flag is given, the titlebar will not be considered for the keybinding.
## Kill the container with middle button click on titlebar
bindsym --release button2 kill
## Kill the container with Super+middle button click on anywhere in a window
bindsym --whole-window $MOD+button2 kill

View File

@ -1,79 +0,0 @@
## Copyright (C) 2020-2023 Aditya Shakya <adi1090x@gmail.com>
##
## Modes
## Resize container (you can also use the mouse for that)
mode "Resize" {
# These bindings trigger as soon as you enter the 'Resize' mode
bindsym Left resize shrink width 50 px or 10 ppt
bindsym Down resize grow height 50 px or 10 ppt
bindsym Up resize shrink height 50 px or 10 ppt
bindsym Right resize grow width 50 px or 10 ppt
# back to normal: Enter or Escape or $MOD+r
bindsym Return mode "default"
bindsym Escape mode "default"
bindsym $MOD+Shift+r mode "default"
}
bindsym $MOD+Shift+r mode "Resize"
#------
## Move container (you can also use the mouse for that)
mode "Move" {
# These bindings trigger as soon as you enter the 'Move' mode
bindsym Left move left 20px
bindsym Down move down 20px
bindsym Up move up 20px
bindsym Right move right 20px
# back to normal: Enter or Escape or $MOD+m
bindsym Return mode "default"
bindsym Escape mode "default"
bindsym $MOD+Shift+m mode "default"
}
bindsym $MOD+Shift+m mode "Move"
#------
## Gaps
set $mode_gaps Gaps: (o)uter, (i)nner
set $mode_gaps_outer Outer Gaps: +|-|0 (local), Shift + +|-|0 (global)
set $mode_gaps_inner Inner Gaps: +|-|0 (local), Shift + +|-|0 (global)
## Outer Gaps
mode "$mode_gaps_outer" {
bindsym plus gaps outer current plus 5
bindsym minus gaps outer current minus 5
bindsym 0 gaps outer current set 0
bindsym Shift+plus gaps outer all plus 5
bindsym Shift+minus gaps outer all minus 5
bindsym Shift+0 gaps outer all set 0
bindsym Return mode "$mode_gaps"
bindsym Escape mode "default"
}
## Inner Gaps
mode "$mode_gaps_inner" {
bindsym plus gaps inner current plus 5
bindsym minus gaps inner current minus 5
bindsym 0 gaps inner current set 0
bindsym Shift+plus gaps inner all plus 5
bindsym Shift+minus gaps inner all minus 5
bindsym Shift+0 gaps inner all set 0
bindsym Return mode "$mode_gaps"
bindsym Escape mode "default"
}
mode "$mode_gaps" {
bindsym o mode "$mode_gaps_outer"
bindsym i mode "$mode_gaps_inner"
bindsym Return mode "$mode_gaps"
bindsym Escape mode "default"
}
bindsym $MOD+Shift+g mode "$mode_gaps"

View File

@ -1,74 +0,0 @@
## Copyright (C) 2020-2023 Aditya Shakya <adi1090x@gmail.com>
##
## Rules
##-- Workspace Rules ------------------------
workspace 1 output HDMI-A-0
workspace 2 output HDMI-A-0
workspace 3 output DisplayPort-0
# workspace 1 output DisplayPort-0
# workspace 2 output DisplayPort-0
# workspace 3 output HDMI-A-0
## Automatically putting clients on specific workspaces
##
## To automatically make a specific window show up on a specific workspace,
## you can use an 'assignment'. You can match windows by using any criteria.
## The difference between assign and `for_window <criteria> move to workspace` is that
## the former will only be executed when the application maps the window
## (mapping means actually displaying it on the screen) but the latter will be executed
## whenever a window changes its properties to something that matches the specified criteria.
##
## Thus, it is recommended that you match on window classes (and instances, when appropriate)
## instead of window titles whenever possible because some applications first create
## their window, and then worry about setting the correct title. Firefox with Vimperator
## comes to mind. The window starts up being named Firefox, and only when Vimperator is
## loaded does the title change. As i3 will get the title as soon as the application
## maps the window, youd need to have to match on Firefox in this case. Another known
## issue is with Spotify, which doesnt set the class hints when mapping the window,
## meaning youll have to use a for_window rule to assign Spotify to a specific workspace.
## Finally, using assign [tiling] and assign [floating] is not supported.
##
## You can also assign a window to show up on a specific output. You can use RandR
## names such as 'VGA1' or names relative to the output with the currently focused
## workspace such as 'left' and 'down'.
##
## Assignments are processed by i3 in the order in which they appear in the config file.
## The first one which matches the window wins and later assignments are not considered.
##
## Syntax:
#assign <criteria> [→] [workspace] [number] <workspace>
#assign <criteria> [→] output left|right|up|down|primary|nonprimary|<output>
## Also, the arrow is not required, it just looks good :-). If you decide to use it,
## it has to be a UTF-8 encoded arrow, not -> or something like that.
##
## To get the class and instance, you can use `xprop`. After clicking on the window,
## you will see the following output: WM_CLASS(STRING) = "irssi", "URxvt"
## The first part of the WM_CLASS is the instance ("irssi" in this example),
## the second part is the class ("URxvt" in this example).
##
assign [class="Lxappearance|Nitrogen"] 6
assign [class="Pavucontrol|Xfce4-power-manager-settings"] 6
##-- Window Rules ---------------------------
## Arbitrary commands for specific windows (for_window)
##
## With the `for_window` directive, you can let i3 execute any command when it encounters
## a specific window. This can be used to set windows to floating or to change their
## border style, for example.
##
## Syntax: for_window <criteria> <command>
##
for_window [window_role="pop-up"] floating enable
for_window [window_role="task_dialog"] floating enable
for_window [class="alacritty-float|Music"] floating enable
for_window [class="Pcmanfm|Onboard|Yad"] floating enable
for_window [class="Lxappearance|Nitrogen"] floating enable
for_window [class="Pavucontrol|Xfce4-power-manager-settings|Nm-connection-editor"] floating enable
for_window [class="feh|Viewnior|Gpicview|Gimp|MPlayer"] floating enable
for_window [class="Kvantum Manager|qt5ct"] floating enable
for_window [class="VirtualBox Manager|qemu|Qemu-system-x86_64"] floating enable

View File

@ -1,71 +0,0 @@
## Copyright (C) 2020-2023 Aditya Shakya <adi1090x@gmail.com>
[global]
monitor = 0
follow = mouse
width = 300
height = 80
origin = top-right
offset = 10x48
corner_radius = 0
scale = 0
notification_limit = 0
progress_bar = true
progress_bar_height = 80
progress_bar_frame_width = 2
progress_bar_min_width = 300
progress_bar_max_width = 300
indicate_hidden = yes
transparency = 0
separator_height = 2
padding = 15
horizontal_padding = 15
text_icon_padding = 0
frame_width = 2
gap_size = 0
separator_color = frame
sort = yes
idle_threshold = 120
font = JetBrains Mono 10
line_height = 2
markup = full
format = %s\n%b
alignment = left
vertical_alignment = center
show_age_threshold = 60
ellipsize = middle
ignore_newline = no
stack_duplicates = true
hide_duplicate_count = false
show_indicators = yes
enable_recursive_icon_lookup = true
icon_position = left
min_icon_size = 24
max_icon_size = 48
sticky_history = yes
history_length = 20
browser = /usr/bin/xdg-open
always_run_script = true
mouse_left_click = close_current
mouse_middle_click = do_action, close_current
mouse_right_click = close_all
title = Dunst
class = Dunst
[urgency_low]
timeout = 2
background = "#1E2128"
foreground = "#ABB2BF"
frame_color = "#292d37"
[urgency_normal]
timeout = 5
background = "#1E2128"
foreground = "#ABB2BF"
frame_color = "#292d37"
[urgency_critical]
timeout = 0
background = "#1E2128"
foreground = "#E06B74"
frame_color = "#E06B74"

View File

@ -1,168 +0,0 @@
## Copyright (C) 2020-2023 Aditya Shakya <adi1090x@gmail.com>
##
## i3status configuration for Archcraft
##-- General ---------------------------
general {
output_format = "i3bar"
interval = 5
markup = "pango"
separator = " "
colors = true
color_good = "#98C379"
color_degraded = "#E5C07A"
color_bad = "#E06B74"
color_separator = "#292d37"
}
##-- Modules Order ---------------------
order += "volume master"
order += "battery all"
order += "wireless _first_"
order += "cpu_usage"
order += "memory"
order += "disk /"
order += "time"
#order += "load"
#order += "ipv6"
#order += "run_watch DHCP"
#order += "run_watch VPNC"
#order += "path_exists VPN"
#order += "ethernet _first_"
#order += "cpu_temperature 0"
#order += "tztime kolkata"
#order += "read_file UPTIME"
##-- Modules ---------------------------
## Module :: ipv6
ipv6 {
format_up = "%ip"
format_down = "No IPv6"
}
## Module :: disk
disk "/" {
# %free | %avail | %total | %percentage_used/free/avail
format = " %free"
format_not_mounted = " Not Mounted"
prefix_type = custom
low_threshold = 2
format_below_threshold = " Warning: %free Free Space"
threshold_type = gbytes_free
}
## Module :: run_watch
run_watch DHCP {
format = "%title: %status"
format_down = ""
}
## Module :: run_watch
run_watch VPNC {
format = "%title: %status"
format_down = ""
}
## Module :: path_exists
path_exists VPN {
format = "%title: %status"
format_down = ""
}
## Module :: wireless
wireless _first_ {
# %quality | %essid | %bitrate | %frequency | %ip
format_up = " %essid"
format_down = " Disconnected"
format_bitrate = "%g %cb/s"
format_noise = "%03d%s"
format_quality = "%03d%s"
format_signal = "%03d%s"
}
## Module :: ethernet
ethernet _first_ {
format_up = "%ip (%speed)"
format_down = "Disconnected"
}
## Module :: battery
battery all {
# %percentage | %status | %remaining | %emptytime | %consumption
format = "%status %percentage (%remaining)"
format_down = "No Battery"
format_percentage = "%.00f%s"
integer_battery_capacity = true
last_full_capacity = true
hide_seconds = true
low_threshold = 20
threshold_type = percentage
status_chr = ""
status_bat = ""
status_unk = ""
status_full = ""
}
## Module :: cpu_temperature
cpu_temperature 0 {
path = "/sys/devices/platform/coretemp.0/temp1_input"
format = "%degrees °C"
max_threshold = 60
format_above_threshold = " Warning: %degrees °C"
}
## Module :: cpu_usage
cpu_usage {
format = " %usage"
degraded_threshold = 25
format_above_degraded_threshold = " %usage"
max_threshold = 75
format_above_threshold = " Warning: %usage"
}
## Module :: memory
memory {
# %total | %free | %used | %available | %shared
format = " %free"
unit = auto
decimals = 1
threshold_degraded = 1G
threshold_critical = 1G
format_degraded = " Low Memory: %free"
}
## Module :: load
load {
format = " %1min %5min %15min"
max_threshold = "5"
format_above_threshold = " Warning: %1min %5min %15min"
}
## Module :: time
time {
format = " %I:%M %p"
}
## Module :: tztime
tztime kolkata {
format = " %I:%M %p"
timezone = "Asia/Kolkata"
locale = "en_US.UTF-8"
hide_if_equals_localtime = false
}
## Module :: volume
volume master {
device = "pulse"
format = " %volume"
format_muted = " Muted"
}
## Module :: read_file
read_file UPTIME {
format = "%title: %content"
format_bad = "%title - %errno: %error"
path = "/proc/uptime"
Max_characters = 255
}

View File

@ -1,48 +0,0 @@
## Copyright (C) 2020-2023 Aditya Shakya <adi1090x@gmail.com>
##
## Status Bar
##-- Colors ---------------------------
set $i3_bar_bg #1E2128
set $i3_bar_fg #ABB2BF
set $i3_bar_sep #292d37
set $i3_bar_foc #5294E2
set $i3_bar_act #62AEEF
set $i3_bar_ina #292d37
set $i3_bar_urg #C778DD
set $i3_bar_mod #98C379
set $i3_bar_fonts JetBrainsMono Nerd Font 10
##-- Bar ------------------------------
bar {
status_command i3status -c ~/.config/i3/i3status/config
id main-bar
position bottom
output primary
mode dock
hidden_state show
modifier Mod1
bindsym button2 workspace back_and_forth
bindsym --release button3 layout toggle
tray_output primary
tray_padding 6
separator_symbol "|"
workspace_buttons yes
workspace_min_width 34
strip_workspace_numbers yes
binding_mode_indicator yes
padding 6 10 6 0
font pango:$i3_bar_fonts
colors {
background $i3_bar_bg
statusline $i3_bar_fg
separator $i3_bar_sep
focused_workspace $i3_bar_foc $i3_bar_foc $i3_bar_bg
active_workspace $i3_bar_act $i3_bar_act $i3_bar_bg
inactive_workspace $i3_bar_ina $i3_bar_ina $i3_bar_fg
urgent_workspace $i3_bar_urg $i3_bar_urg $i3_bar_bg
binding_mode $i3_bar_mod $i3_bar_mod $i3_bar_bg
}
}

View File

@ -1,419 +0,0 @@
## Copyright (C) 2020-2023 Aditya Shakya <adi1090x@gmail.com>
#========================= Corners =========================#
corner-radius = 0;
rounded-corners-exclude = [
"window_type = 'normal'",
"class_g ?= 'rofi'",
"class_g ?= 'polybar'",
"class_g ?= 'tint2'"
];
round-borders = 0;
round-borders-exclude = [
"class_g = 'TelegramDesktop'"
];
# Specify a list of border width rules, in the format `PIXELS:PATTERN`,
# Note we don't make any guarantee about possible conflicts with the
# border_width set by the window manager.
#
# example:
# round-borders-rule = [ "2:class_g = 'URxvt'" ];
#
round-borders-rule = [
"2:class_g ?= 'URxvt'",
"2:class_g ?= 'Alacritty'",
"0:class_g ?= 'firefox'"
];
#========================= Shadows =========================#
# Enabled client-side shadows on windows. Note desktop windows
# (windows with '_NET_WM_WINDOW_TYPE_DESKTOP') never get shadow,
# unless explicitly requested using the wintypes option.
#
shadow = true;
# The blur radius for shadows, in pixels. (defaults to 12)
shadow-radius = 14;
# The opacity of shadows. (0.0 - 1.0, defaults to 0.75)
shadow-opacity = 0.30;
# The left offset for shadows, in pixels. (defaults to -15)
shadow-offset-x = -12;
# The top offset for shadows, in pixels. (defaults to -15)
shadow-offset-y = -12;
# Red color value of shadow (0.0 - 1.0, defaults to 0).
# shadow-red = 0
# Green color value of shadow (0.0 - 1.0, defaults to 0).
# shadow-green = 0
# Blue color value of shadow (0.0 - 1.0, defaults to 0).
# shadow-blue = 0
# Hex string color value of shadow (#000000 - #FFFFFF, defaults to #000000). This option will override options set shadow-(red/green/blue)
# shadow-color = "#000000"
# Specify a list of conditions of windows that should have no shadow.
#
# examples:
# shadow-exclude = "n:e:Notification";
#
# shadow-exclude = []
shadow-exclude = [
"class_g = 'Cairo-clock'",
"class_g = 'CoverGloobus'",
"class_g = 'Tilda'",
"name ?= 'gnome-pie'",
# "class_g = 'Dmenu'",
# "class_g ?= 'rofi'",
# "class_g ?= 'polybar'",
"class_g ?= 'Plank'",
"name *= 'recordmydesktop'",
"name = 'Notification'",
"name = 'Docky'",
"name = 'Kupfer'",
"name = 'xfce4-notifyd'",
"name *= 'VLC'",
"name *= 'Chromium'",
"name *= 'Chrome'",
"class_g = 'Conky'",
"class_g = 'Kupfer'",
"class_g = 'Synapse'",
"class_g ?= 'Notify-osd'",
"class_g ?= 'Cairo-dock'",
"class_g ?= 'Xfce4-notifyd'",
"class_g ?= 'Xfce4-power-manager'",
"_GTK_FRAME_EXTENTS@:c",
"_NET_WM_STATE@:32a *= '_NET_WM_STATE_HIDDEN'"
];
# Specify a X geometry that describes the region in which shadow should not
# be painted in, such as a dock window region. Use
# shadow-exclude-reg = "x10+0+0"
# for example, if the 10 pixels on the bottom of the screen should not have shadows painted on.
#
# shadow-exclude-reg = ""
# Crop shadow of a window fully on a particular Xinerama screen to the screen.
# xinerama-shadow-crop = false
#========================= Fading =========================#
# Fade windows in/out when opening/closing and when opacity changes,
# unless no-fading-openclose is used.
fading = true;
# Opacity change between steps while fading in. (0.01 - 1.0, defaults to 0.028)
fade-in-step = 0.03;
# Opacity change between steps while fading out. (0.01 - 1.0, defaults to 0.03)
fade-out-step = 0.03;
# The time between steps in fade step, in milliseconds. (> 0, defaults to 10)
fade-delta = 5;
# Specify a list of conditions of windows that should not be faded.
# don't need this, we disable fading for all normal windows with wintypes: {}
fade-exclude = [
"class_g = 'slop'" # maim
]
# Do not fade on window open/close.
no-fading-openclose = false
# Do not fade destroyed ARGB windows with WM frame. Workaround of bugs in Openbox, Fluxbox, etc.
no-fading-destroyed-argb = true
#========================= Opacity =========================#
# Opacity of inactive windows. (0.1 - 1.0, defaults to 1.0)
# inactive-opacity = 1
inactive-opacity = 1;
# Opacity of window titlebars and borders. (0.1 - 1.0, disabled by default)
# frame-opacity = 1.0
frame-opacity = 1.0;
# Let inactive opacity set by -i override the '_NET_WM_OPACITY' values of windows.
# inactive-opacity-override = true
inactive-opacity-override = false;
# Default opacity for active windows. (0.0 - 1.0, defaults to 1.0)
active-opacity = 1.0;
# Dim inactive windows. (0.0 - 1.0, defaults to 0.0)
#inactive-dim = 0.5
# Specify a list of conditions of windows that should always be considered focused.
# focus-exclude = []
focus-exclude = [
"class_g = 'Cairo-clock'",
"class_g = 'Bar'", # lemonbar
"class_g = 'slop'" # maim
];
# Use fixed inactive dim value, instead of adjusting according to window opacity.
# inactive-dim-fixed = 1.0
# Specify a list of opacity rules, in the format `PERCENT:PATTERN`,
# like `50:name *= "Firefox"`. picom-trans is recommended over this.
# Note we don't make any guarantee about possible conflicts with other
# programs that set '_NET_WM_WINDOW_OPACITY' on frame or client windows.
# example:
# opacity-rule = [ "80:class_g = 'URxvt'" ];
#
# opacity-rule = []
opacity-rule = [
"100:class_g = 'Bar'", # lemonbar
"100:class_g = 'slop'", # maim
"100:class_g = 'XTerm'",
"100:class_g = 'URxvt'",
"100:class_g = 'kitty'",
"100:class_g = 'Alacritty'",
"100:class_g = 'Polybar'",
"100:class_g = 'code-oss'",
"100:class_g = 'Meld'",
"100:class_g = 'TelegramDesktop'",
"100:class_g = 'Joplin'",
"100:class_g = 'firefox'",
"100:class_g = 'Thunderbird'"
];
#========================= Blurring =========================#
blur: {
method = "none";
strength = 0;
background = false;
background-frame = false;
background-fixed = false;
kern = "3x3box";
}
# Exclude conditions for background blur.
blur-background-exclude = [
"window_type = 'dock'",
"window_type = 'desktop'",
"class_g = 'Plank'",
"class_g = 'slop'",
"_GTK_FRAME_EXTENTS@:c"
];
#========================= General Settings =========================#
# Daemonize process. Fork to background after initialization. Causes issues with certain (badly-written) drivers.
# daemon = false
# Specify the backend to use: `xrender`, `glx`, or `xr_glx_hybrid`.
# `xrender` is the default one.
#
#experimental-backends = true;
backend = "glx";
# Enable/disable VSync.
# vsync = false
vsync = true;
# Enable remote control via D-Bus. See the *D-BUS API* section below for more details.
# dbus = false
# Try to detect WM windows (a non-override-redirect window with no
# child that has 'WM_STATE') and mark them as active.
#
# mark-wmwin-focused = false
mark-wmwin-focused = true;
# Mark override-redirect windows that doesn't have a child window with 'WM_STATE' focused.
# mark-ovredir-focused = false
mark-ovredir-focused = true;
# Try to detect windows with rounded corners and don't consider them
# shaped windows. The accuracy is not very high, unfortunately.
#
# detect-rounded-corners = false
detect-rounded-corners = true;
# Detect '_NET_WM_OPACITY' on client windows, useful for window managers
# not passing '_NET_WM_OPACITY' of client windows to frame windows.
#
# detect-client-opacity = false
detect-client-opacity = true;
# Specify refresh rate of the screen. If not specified or 0, picom will
# try detecting this with X RandR extension.
#
# refresh-rate = 60
refresh-rate = 0;
# Use EWMH '_NET_ACTIVE_WINDOW' to determine currently focused window,
# rather than listening to 'FocusIn'/'FocusOut' event. Might have more accuracy,
# provided that the WM supports it.
#
# use-ewmh-active-win = false
# Unredirect all windows if a full-screen opaque window is detected,
# to maximize performance for full-screen windows. Known to cause flickering
# when redirecting/unredirecting windows.
#
# unredir-if-possible = false
# Delay before unredirecting the window, in milliseconds. Defaults to 0.
# unredir-if-possible-delay = 0
# Conditions of windows that shouldn't be considered full-screen for unredirecting screen.
# unredir-if-possible-exclude = []
# Use 'WM_TRANSIENT_FOR' to group windows, and consider windows
# in the same group focused at the same time.
#
# detect-transient = false
detect-transient = true;
# Use 'WM_CLIENT_LEADER' to group windows, and consider windows in the same
# group focused at the same time. 'WM_TRANSIENT_FOR' has higher priority if
# detect-transient is enabled, too.
#
# detect-client-leader = false
detect-client-leader = true;
# Resize damaged region by a specific number of pixels.
# A positive value enlarges it while a negative one shrinks it.
# If the value is positive, those additional pixels will not be actually painted
# to screen, only used in blur calculation, and such. (Due to technical limitations,
# with use-damage, those pixels will still be incorrectly painted to screen.)
# Primarily used to fix the line corruption issues of blur,
# in which case you should use the blur radius value here
# (e.g. with a 3x3 kernel, you should use `--resize-damage 1`,
# with a 5x5 one you use `--resize-damage 2`, and so on).
# May or may not work with *--glx-no-stencil*. Shrinking doesn't function correctly.
#
# resize-damage = 1
# Specify a list of conditions of windows that should be painted with inverted color.
# Resource-hogging, and is not well tested.
#
# invert-color-include = []
# GLX backend: Avoid using stencil buffer, useful if you don't have a stencil buffer.
# Might cause incorrect opacity when rendering transparent content (but never
# practically happened) and may not work with blur-background.
# My tests show a 15% performance boost. Recommended.
#
glx-no-stencil = true;
# GLX backend: Avoid rebinding pixmap on window damage.
# Probably could improve performance on rapid window content changes,
# but is known to break things on some drivers (LLVMpipe, xf86-video-intel, etc.).
# Recommended if it works.
#
# glx-no-rebind-pixmap = false
# Disable the use of damage information.
# This cause the whole screen to be redrawn everytime, instead of the part of the screen
# has actually changed. Potentially degrades the performance, but might fix some artifacts.
# The opposing option is use-damage
#
# no-use-damage = false
use-damage = true;
# Use X Sync fence to sync clients' draw calls, to make sure all draw
# calls are finished before picom starts drawing. Needed on nvidia-drivers
# with GLX backend for some users.
#
# xrender-sync-fence = false
# GLX backend: Use specified GLSL fragment shader for rendering window contents.
# See `compton-default-fshader-win.glsl` and `compton-fake-transparency-fshader-win.glsl`
# in the source tree for examples.
#
# glx-fshader-win = ""
# Force all windows to be painted with blending. Useful if you
# have a glx-fshader-win that could turn opaque pixels transparent.
#
# force-win-blend = false
# Do not use EWMH to detect fullscreen windows.
# Reverts to checking if a window is fullscreen based only on its size and coordinates.
#
# no-ewmh-fullscreen = false
# Dimming bright windows so their brightness doesn't exceed this set value.
# Brightness of a window is estimated by averaging all pixels in the window,
# so this could comes with a performance hit.
# Setting this to 1.0 disables this behaviour. Requires --use-damage to be disabled. (default: 1.0)
#
# max-brightness = 1.0
# Make transparent windows clip other windows like non-transparent windows do,
# instead of blending on top of them.
#
# transparent-clipping = false
# Set the log level. Possible values are:
# "trace", "debug", "info", "warn", "error"
# in increasing level of importance. Case doesn't matter.
# If using the "TRACE" log level, it's better to log into a file
# using *--log-file*, since it can generate a huge stream of logs.
#
# log-level = "debug"
log-level = "info";
# Set the log file.
# If *--log-file* is never specified, logs will be written to stderr.
# Otherwise, logs will to written to the given file, though some of the early
# logs might still be written to the stderr.
# When setting this option from the config file, it is recommended to use an absolute path.
#
# log-file = "/path/to/your/log/file"
# Show all X errors (for debugging)
# show-all-xerrors = false
# Write process ID to a file.
# write-pid-path = "/path/to/your/log/file"
# Window type settings
#
# 'WINDOW_TYPE' is one of the 15 window types defined in EWMH standard:
# "unknown", "desktop", "dock", "toolbar", "menu", "utility",
# "splash", "dialog", "normal", "dropdown_menu", "popup_menu",
# "tooltip", "notification", "combo", and "dnd".
#
# Following per window-type options are available: ::
#
# fade, shadow:::
# Controls window-type-specific shadow and fade settings.
#
# opacity:::
# Controls default opacity of the window type.
#
# focus:::
# Controls whether the window of this type is to be always considered focused.
# (By default, all window types except "normal" and "dialog" has this on.)
#
# full-shadow:::
# Controls whether shadow is drawn under the parts of the window that you
# normally won't be able to see. Useful when the window has parts of it
# transparent, and you want shadows in those areas.
#
# redir-ignore:::
# Controls whether this type of windows should cause screen to become
# redirected again after been unredirected. If you have unredir-if-possible
# set, and doesn't want certain window to cause unnecessary screen redirection,
# you can set this to `true`.
#
wintypes:
{
tooltip = { fade=true; shadow=true; opacity=0.95; focus=true; full-shadow=false; };
popup_menu = { opacity=1.0; }
dropdown_menu = { opacity=1.0; }
utility = { shadow=false; opacity=1.0; }
};

View File

@ -1,12 +0,0 @@
#!/usr/bin/env bash
## Copyright (C) 2020-2023 Aditya Shakya <adi1090x@gmail.com>
# i3 directory
DIR="$HOME/.config/i3"
# rofi sudo askpass helper
export SUDO_ASKPASS="$DIR"/scripts/rofi_askpass
# execute the application
sudo -A $1

View File

@ -1,52 +0,0 @@
#!/usr/bin/env bash
## Copyright (C) 2020-2023 Aditya Shakya <adi1090x@gmail.com>
##
## Autostart Programs
# i3 dir
idir="$HOME/.config/i3"
# Kill already running process
_ps=(xsettingsd ksuperkey)
for _prs in "${_ps[@]}"; do
if [[ `pidof ${_prs}` ]]; then
killall -9 ${_prs}
fi
done
# Lauch xsettingsd daemon
xsettingsd --config="$idir"/xsettingsd &
# polkit agent
if [[ ! `pidof xfce-polkit` ]]; then
/usr/lib/xfce-polkit/xfce-polkit &
fi
# Enable power management
xfce4-power-manager &
# Enable wireguard tray
conda activate base && wg-tray &
# Enable Super Keys For Menu
ksuperkey -e 'Super_L=Alt_L|F1' &
ksuperkey -e 'Super_R=Alt_L|F1' &
# Fix cursor
xsetroot -cursor_name left_ptr
# Restore wallpaper
"$idir"/themes/wallpaper.sh
# Launch notification daemon
"$idir"/scripts/i3_dunst
# Launch polybar
"$idir"/scripts/i3_bar
# Launch compositor
"$idir"/scripts/i3_comp
# Start mpd
# exec mpd &

View File

@ -1,9 +0,0 @@
#!/usr/bin/env bash
## Copyright (C) 2020-2023 Aditya Shakya <adi1090x@gmail.com>
# i3 directory
DIR="$HOME/.config/i3"
# launch polybar
bash "$DIR"/themes/polybar.sh

View File

@ -1,73 +0,0 @@
#!/usr/bin/env bash
## Copyright (C) 2020-2023 Aditya Shakya <adi1090x@gmail.com>
##
## Script to manage brightness on Archcraft.
# Icons
iDIR='/usr/share/archcraft/icons/dunst'
# Graphics card
CARD=`ls /sys/class/backlight | head -n 1`
# Get brightness
get_backlight() {
if [[ "$CARD" == *"intel_"* ]]; then
BNESS=`xbacklight -get`
LIGHT=${BNESS%.*}
else
LIGHT=$(printf "%.0f\n" `light -G`)
fi
echo "${LIGHT}%"
}
# Get icons
get_icon() {
backlight="$(get_backlight)"
current="${backlight%%%}"
if [[ ("$current" -ge "0") && ("$current" -le "20") ]]; then
icon="$iDIR"/brightness-20.png
elif [[ ("$current" -ge "20") && ("$current" -le "40") ]]; then
icon="$iDIR"/brightness-40.png
elif [[ ("$current" -ge "40") && ("$current" -le "60") ]]; then
icon="$iDIR"/brightness-60.png
elif [[ ("$current" -ge "60") && ("$current" -le "80") ]]; then
icon="$iDIR"/brightness-80.png
elif [[ ("$current" -ge "80") && ("$current" -le "100") ]]; then
icon="$iDIR"/brightness-100.png
fi
}
# Notify
notify_bl() {
get_icon && dunstify -u low -h string:x-dunst-stack-tag:obbacklight -i "$icon" "Brightness : $(get_backlight)"
}
# Increase brightness
inc_backlight() {
if [[ "$CARD" == *"intel_"* ]]; then
xbacklight -inc 10 && notify_bl
else
light -A 5 && notify_bl
fi
}
# Decrease brightness
dec_backlight() {
if [[ "$CARD" == *"intel_"* ]]; then
xbacklight -dec 10 && notify_bl
else
light -U 5 && notify_bl
fi
}
# Execute accordingly
if [[ "$1" == "--get" ]]; then
get_backlight
elif [[ "$1" == "--inc" ]]; then
inc_backlight
elif [[ "$1" == "--dec" ]]; then
dec_backlight
else
get_backlight
fi

View File

@ -1,22 +0,0 @@
#!/usr/bin/env bash
## Copyright (C) 2020-2023 Aditya Shakya <adi1090x@gmail.com>
##
## Simple script to pick color quickly.
color=$(xcolor --format hex --preview-size 255 --scale 10)
image=/tmp/${color}.png
main() {
if [[ "$color" ]]; then
# copy color code to clipboard
echo $color | tr -d "\n" | xclip -selection clipboard
# generate preview
convert -size 48x48 xc:"$color" ${image}
# notify about it
dunstify -u low -h string:x-dunst-stack-tag:obcolorpicker -i ${image} "$color, copied to clipboard."
fi
}
# run the script
main

View File

@ -1,15 +0,0 @@
#!/usr/bin/env bash
## Copyright (C) 2020-2023 Aditya Shakya <adi1090x@gmail.com>
# i3 directory
DIR="$HOME/.config/i3"
# Terminate if picom is already running
killall -q picom
# Wait until the processes have been shut down
while pgrep -u $UID -x picom >/dev/null; do sleep 1; done
# Launch picom
picom --config "$DIR"/picom.conf &

View File

@ -1,13 +0,0 @@
#!/usr/bin/env bash
## Copyright (C) 2020-2023 Aditya Shakya <adi1090x@gmail.com>
# i3 directory
DIR="$HOME/.config/i3"
# Launch dunst daemon
if [[ `pidof dunst` ]]; then
pkill dunst
fi
dunst -config "$DIR"/dunstrc &

View File

@ -1,15 +0,0 @@
#!/usr/bin/env bash
## Copyright (C) 2020-2023 Aditya Shakya <adi1090x@gmail.com>
##
## Run ncmpcpp with alternate config
# i3 directory
DIR="$HOME/.config/i3"
CONFIG="$DIR/alacritty/alacritty.yml"
alacritty --class 'Music,Music' --config-file "$CONFIG" \
-o window.dimensions.columns=109 window.dimensions.lines=22 \
-e ~/.ncmpcpp/scripts/ncmpcpp-art

View File

@ -1,87 +0,0 @@
#!/usr/bin/env bash
## Copyright (C) 2020-2023 Aditya Shakya <adi1090x@gmail.com>
##
## Script to take screenshots on Archcraft.
# file
time=`date +%Y-%m-%d-%H-%M-%S`
geometry=`xrandr | grep 'current' | head -n1 | cut -d',' -f2 | tr -d '[:blank:],current'`
dir="`xdg-user-dir PICTURES`/Screenshots"
file="Screenshot_${time}_${geometry}.png"
# directory
if [[ ! -d "$dir" ]]; then
mkdir -p "$dir"
fi
# notify and view screenshot
notify_view () {
notify_cmd_shot='dunstify -u low -h string:x-dunst-stack-tag:obscreenshot -i /usr/share/archcraft/icons/dunst/picture.png'
${notify_cmd_shot} "Copied to clipboard."
paplay /usr/share/sounds/freedesktop/stereo/screen-capture.oga &>/dev/null &
viewnior ${dir}/"$file"
if [[ -e "$dir/$file" ]]; then
${notify_cmd_shot} "Screenshot Saved."
else
${notify_cmd_shot} "Screenshot Deleted."
fi
}
# copy screenshot to clipboard
copy_shot () {
tee "$file" | xclip -selection clipboard -t image/png
}
# countdown
countdown () {
for sec in `seq $1 -1 1`; do
dunstify -t 1000 -h string:x-dunst-stack-tag:screenshottimer -i /usr/share/archcraft/icons/dunst/timer.png "Taking shot in : $sec"
sleep 1
done
}
# take shots
shotnow () {
cd ${dir} && maim -u -f png | copy_shot
notify_view
}
shot5 () {
countdown '5'
sleep 1 && cd ${dir} && maim -u -f png | copy_shot
notify_view
}
shot10 () {
countdown '10'
sleep 1 && cd ${dir} && maim -u -f png | copy_shot
notify_view
}
shotwin () {
cd ${dir} && maim -u -f png -i `xdotool getactivewindow` | copy_shot
notify_view
}
shotarea () {
cd ${dir} && maim -u -f png -s -b 2 -c 0.35,0.55,0.85,0.25 -l | copy_shot
notify_view
}
# execute
if [[ "$1" == "--now" ]]; then
shotnow
elif [[ "$1" == "--in5" ]]; then
shot5
elif [[ "$1" == "--in10" ]]; then
shot10
elif [[ "$1" == "--win" ]]; then
shotwin
elif [[ "$1" == "--area" ]]; then
shotarea
else
echo -e "Available Options : --now --in5 --in10 --win --area"
fi
exit 0

View File

@ -1,22 +0,0 @@
#!/usr/bin/env bash
## Copyright (C) 2020-2023 Aditya Shakya <adi1090x@gmail.com>
##
## launch alacritty with i3 config
# i3 directory
DIR="$HOME/.config/i3"
CONFIG="$DIR/alacritty/alacritty.toml"
if [ "$1" == "--float" ]; then
shift
alacritty --class 'alacritty-float,alacritty-float' --config-file "$CONFIG" $@
elif [ "$1" == "--full" ]; then
shift
alacritty --class 'Fullscreen,Fullscreen' --config-file "$CONFIG" \
-o window.startup_mode=fullscreen \
window.padding.x=30 window.padding.y=30 \
window.opacity=0.95 font.size=14 $@
else
alacritty --config-file "$CONFIG" $@
fi

View File

@ -1,83 +0,0 @@
#!/usr/bin/env bash
## Copyright (C) 2020-2023 Aditya Shakya <adi1090x@gmail.com>
##
## Script to manage speaker volume on Archcraft.
# Icons
iDIR='/usr/share/archcraft/icons/dunst'
notify_cmd='dunstify -u low -h string:x-dunst-stack-tag:obvolume'
# Get Volume
get_volume() {
echo "`pulsemixer --get-volume | cut -d' ' -f1`"
}
# Get icons
get_icon() {
current="$(get_volume)"
if [[ "$current" -eq "0" ]]; then
icon="$iDIR/volume-mute.png"
elif [[ ("$current" -ge "0") && ("$current" -le "30") ]]; then
icon="$iDIR/volume-low.png"
elif [[ ("$current" -ge "30") && ("$current" -le "60") ]]; then
icon="$iDIR/volume-mid.png"
elif [[ ("$current" -ge "60") && ("$current" -le "100") ]]; then
icon="$iDIR/volume-high.png"
fi
}
# Notify
notify_user() {
${notify_cmd} -i "$icon" "Volume : $(get_volume)%"
}
# Increase Volume
inc_volume() {
[[ `pulsemixer --get-mute` == 1 ]] && pulsemixer --unmute
pulsemixer --max-volume 100 --change-volume +5 && get_icon && notify_user
}
# Decrease Volume
dec_volume() {
[[ `pulsemixer --get-mute` == 1 ]] && pulsemixer --unmute
pulsemixer --max-volume 100 --change-volume -5 && get_icon && notify_user
}
# Toggle Mute
toggle_mute() {
if [[ `pulsemixer --get-mute` == 0 ]]; then
pulsemixer --toggle-mute && ${notify_cmd} -i "$iDIR/volume-mute.png" "Mute"
else
pulsemixer --toggle-mute && get_icon && ${notify_cmd} -i "$icon" "Unmute"
fi
}
# Toggle Mic
toggle_mic() {
ID="`pulsemixer --list-sources | grep 'Default' | cut -d',' -f1 | cut -d' ' -f3`"
if [[ `pulsemixer --id $ID --get-mute` == 0 ]]; then
pulsemixer --id ${ID} --toggle-mute && ${notify_cmd} -i "$iDIR/microphone-mute.png" "Microphone Switched OFF"
else
pulsemixer --id ${ID} --toggle-mute && ${notify_cmd} -i "$iDIR/microphone.png" "Microphone Switched ON"
fi
}
# Execute accordingly
if [[ -x `which pulsemixer` ]]; then
if [[ "$1" == "--get" ]]; then
get_volume
elif [[ "$1" == "--inc" ]]; then
inc_volume
elif [[ "$1" == "--dec" ]]; then
dec_volume
elif [[ "$1" == "--toggle" ]]; then
toggle_mute
elif [[ "$1" == "--toggle-mic" ]]; then
toggle_mic
else
echo $(get_volume)%
fi
else
${notify_cmd} "'pulsemixer' is not installed."
fi

View File

@ -1,924 +0,0 @@
#!/usr/bin/env python3
# encoding:utf8
"""NetworkManager command line dmenu script.
To add new connections or enable/disable networking requires policykit
permissions setup per:
https://wiki.archlinux.org/index.php/NetworkManager#Set_up_PolicyKit_permissions
OR running the script as root
Add dmenu options and default terminal if desired to
~/.config/i3/themes/networkmenu_config.ini
"""
import pathlib
import struct
import configparser
import locale
import os
from os.path import expanduser
import shlex
from shutil import which
import sys
from time import sleep
import uuid
import subprocess
# pylint: disable=import-error
import gi
gi.require_version('NM', '1.0')
from gi.repository import GLib, NM # noqa pylint: disable=wrong-import-position
# pylint: enable=import-error
ENV = os.environ.copy()
ENV['LC_ALL'] = 'C'
ENC = locale.getpreferredencoding()
CONF = configparser.ConfigParser()
CONF.read(expanduser("~/.config/i3/themes/networkmenu_config.ini"))
def cli_args():
""" Don't override dmenu_cmd function arguments with CLI args. Removes -l
and -p if those are passed on the command line.
Exception: if -l is passed and dmenu_command is not defined, assume that the
user wants to switch dmenu to the vertical layout and include -l.
Returns: List of additional CLI arguments
"""
args = sys.argv[1:]
cmd = CONF.get('dmenu', 'dmenu_command', fallback=False)
if "-l" in args or "-p" in args:
for nope in ['-l', '-p'] if cmd is not False else ['-p']:
try:
nope_idx = args.index(nope)
del args[nope_idx]
del args[nope_idx]
except ValueError:
pass
return args
def dmenu_pass(command, color):
"""Check if dmenu passphrase patch is applied and return the correct command
line arg list
Args: command - string
color - obscure color string
Returns: list or None
"""
if command != 'dmenu':
return None
try:
# Check for dmenu password patch
dm_patch = b'P' in subprocess.run(["dmenu", "-h"],
capture_output=True,
check=False).stderr
except FileNotFoundError:
dm_patch = False
return ["-P"] if dm_patch else ["-nb", color, "-nf", color]
def dmenu_cmd(num_lines, prompt="Networks", active_lines=None):
"""Parse nmd.ini for menu options
Args: args - num_lines: number of lines to display
prompt: prompt to show
active_lines: list of line numbers to tag as active
Returns: command invocation (as a list of strings) for example
["dmenu", "-l", "<num_lines>", "-p", "<prompt>", "-i"]
"""
# Create command string
commands = {"dmenu": ["-p", str(prompt)],
"rofi": ["-dmenu", "-p", str(prompt), "-l", str(num_lines)],
"bemenu": ["-p", str(prompt)],
"wofi": ["-p", str(prompt)]}
command = shlex.split(CONF.get('dmenu', 'dmenu_command', fallback="dmenu"))
command.extend(cli_args())
command.extend(commands.get(command[0], []))
# Rofi Highlighting
rofi_highlight = CONF.getboolean('dmenu', 'rofi_highlight', fallback=False)
if rofi_highlight is True and command[0] == "rofi" and active_lines:
command.extend(["-a", ",".join([str(num) for num in active_lines])])
# Passphrase prompts
obscure = CONF.getboolean('dmenu_passphrase', 'obscure', fallback=False)
if prompt == "Passphrase" and obscure is True:
obscure_color = CONF.get('dmenu_passphrase', 'obscure_color', fallback='#222222')
pass_prompts = {"dmenu": dmenu_pass(command[0], obscure_color),
"rofi": ['-password'],
"bemenu": ['-x'],
"wofi": ['-P']}
command.extend(pass_prompts.get(command[0], []))
return command
def choose_adapter(client):
"""If there is more than one wifi adapter installed, ask which one to use
"""
devices = client.get_devices()
devices = [i for i in devices if i.get_device_type() == NM.DeviceType.WIFI]
if not devices:
return None
if len(devices) == 1:
return devices[0]
device_names = "\n".join([d.get_iface() for d in devices])
sel = subprocess.run(dmenu_cmd(len(devices), "CHOOSE ADAPTER:"),
capture_output=True,
check=False,
env=ENV,
input=device_names,
encoding=ENC).stdout
if not sel.strip():
sys.exit()
devices = [i for i in devices if i.get_iface() == sel.strip()]
assert len(devices) == 1
return devices[0]
def is_installed(cmd):
"""Check if a utility is installed"""
return which(cmd) is not None
def bluetooth_get_enabled():
"""Check if bluetooth is enabled via rfkill.
Returns None if no bluetooth device was found.
"""
# See https://www.kernel.org/doc/Documentation/ABI/stable/sysfs-class-rfkill
for path in pathlib.Path('/sys/class/rfkill/').glob('rfkill*'):
if (path / 'type').read_text().strip() == 'bluetooth':
return (path / 'soft').read_text().strip() == '0'
return None
def create_other_actions(client):
"""Return list of other actions that can be taken
"""
networking_enabled = client.networking_get_enabled()
networking_action = "Disable" if networking_enabled else "Enable"
wifi_enabled = client.wireless_get_enabled()
wifi_action = "Disable" if wifi_enabled else "Enable"
bluetooth_enabled = bluetooth_get_enabled()
bluetooth_action = "Disable" if bluetooth_enabled else "Enable"
actions = [Action(f"{wifi_action} Wifi", toggle_wifi,
not wifi_enabled),
Action(f"{networking_action} Networking",
toggle_networking, not networking_enabled)]
if bluetooth_enabled is not None:
actions.append(Action(f"{bluetooth_action} Bluetooth",
toggle_bluetooth, not bluetooth_enabled))
actions += [Action("Launch Connection Manager", launch_connection_editor),
Action("Delete a Connection", delete_connection)]
if wifi_enabled:
actions.append(Action("Rescan Wifi Networks", rescan_wifi))
return actions
def rescan_wifi():
"""
Rescan Wifi Access Points
"""
delay = CONF.getint('nmdm', 'rescan_delay', fallback=5)
for dev in CLIENT.get_devices():
if gi.repository.NM.DeviceWifi == type(dev):
try:
dev.request_scan_async(None, rescan_cb, None)
LOOP.run()
sleep(delay)
notify("Wifi scan complete")
main()
except gi.repository.GLib.Error as err:
# Too frequent rescan error
notify("Wifi rescan failed", urgency="critical")
if not err.code == 6: # pylint: disable=no-member
raise err
def rescan_cb(dev, res, data):
"""Callback for rescan_wifi. Just for notifications
"""
if dev.request_scan_finish(res) is True:
notify("Wifi scan running...")
else:
notify("Wifi scan failed", urgency="critical")
LOOP.quit()
def ssid_to_utf8(nm_ap):
""" Convert binary ssid to utf-8 """
ssid = nm_ap.get_ssid()
if not ssid:
return ""
ret = NM.utils_ssid_to_utf8(ssid.get_data())
return ret
def prompt_saved(saved_cons):
"""Prompt for a saved connection."""
actions = create_saved_actions(saved_cons)
sel = get_selection(actions)
sel()
def ap_security(nm_ap):
"""Parse the security flags to return a string with 'WPA2', etc. """
flags = nm_ap.get_flags()
wpa_flags = nm_ap.get_wpa_flags()
rsn_flags = nm_ap.get_rsn_flags()
sec_str = ""
if ((flags & getattr(NM, '80211ApFlags').PRIVACY) and
(wpa_flags == 0) and (rsn_flags == 0)):
sec_str = " WEP"
if wpa_flags:
sec_str = " WPA1"
if rsn_flags & getattr(NM, '80211ApSecurityFlags').KEY_MGMT_PSK:
sec_str += " WPA2"
if rsn_flags & getattr(NM, '80211ApSecurityFlags').KEY_MGMT_SAE:
sec_str += " WPA3"
if ((wpa_flags & getattr(NM, '80211ApSecurityFlags').KEY_MGMT_802_1X) or
(rsn_flags & getattr(NM, '80211ApSecurityFlags').KEY_MGMT_802_1X)):
sec_str += " 802.1X"
if ((wpa_flags & getattr(NM, '80211ApSecurityFlags').KEY_MGMT_OWE) or
(rsn_flags & getattr(NM, '80211ApSecurityFlags').KEY_MGMT_OWE)):
sec_str += " OWE"
# If there is no security use "--"
if sec_str == "":
sec_str = "--"
return sec_str.lstrip()
class Action(): # pylint: disable=too-few-public-methods
"""Helper class to execute functions from a string variable"""
def __init__(self,
name,
func,
args=None,
active=False):
self.name = name
self.func = func
self.is_active = active
if args is None:
self.args = None
elif isinstance(args, list):
self.args = args
else:
self.args = [args]
def __str__(self):
return self.name
def __call__(self):
if self.args is None:
self.func()
else:
self.func(*self.args)
def conn_matches_adapter(conn, adapter):
"""Return True if the connection is applicable for the given adapter.
There seem to be two ways for a connection specify what interface it belongs
to:
- By setting 'mac-address' in [wifi] to the adapter's MAC
- By setting 'interface-name` in [connection] to the adapter's name.
Depending on how the connection was added, it seems like either
'mac-address', 'interface-name' or neither of both is set.
"""
# [wifi] mac-address
setting_wireless = conn.get_setting_wireless()
mac = setting_wireless.get_mac_address()
if mac is not None:
return mac == adapter.get_permanent_hw_address()
# [connection] interface-name
setting_connection = conn.get_setting_connection()
interface = setting_connection.get_interface_name()
if interface is not None:
return interface == adapter.get_iface()
# Neither is set, let's assume this connection is for multiple/all adapters.
return True
def process_ap(nm_ap, is_active, adapter):
"""Activate/Deactivate a connection and get password if required"""
if is_active:
CLIENT.deactivate_connection_async(nm_ap, None, deactivate_cb, nm_ap)
LOOP.run()
else:
conns_cur = [i for i in CONNS if
i.get_setting_wireless() is not None and
conn_matches_adapter(i, adapter)]
con = nm_ap.filter_connections(conns_cur)
if len(con) > 1:
raise ValueError("There are multiple connections possible")
if len(con) == 1:
CLIENT.activate_connection_async(con[0], adapter, nm_ap.get_path(),
None, activate_cb, nm_ap)
LOOP.run()
else:
if ap_security(nm_ap) != "--":
password = get_passphrase()
else:
password = ""
set_new_connection(nm_ap, password, adapter)
def activate_cb(dev, res, data):
"""Notification if activate connection completed successfully
"""
try:
conn = dev.activate_connection_finish(res)
except GLib.Error:
conn = None
if conn is not None:
notify(f"Activated {conn.get_id()}")
else:
notify(f"Problem activating {data.get_id()}", urgency="critical")
LOOP.quit()
def deactivate_cb(dev, res, data):
"""Notification if deactivate connection completed successfully
"""
if dev.deactivate_connection_finish(res) is True:
notify(f"Deactivated {data.get_id()}")
else:
notify(f"Problem deactivating {data.get_id()}", urgency="critical")
LOOP.quit()
def process_vpngsm(con, activate):
"""Activate/deactive VPN or GSM connections"""
if activate:
CLIENT.activate_connection_async(con, None, None,
None, activate_cb, con)
else:
CLIENT.deactivate_connection_async(con, None, deactivate_cb, con)
LOOP.run()
def create_ap_actions(aps, active_ap, active_connection, adapter): # noqa pylint: disable=too-many-locals,line-too-long
"""For each AP in a list, create the string and its attached function
(activate/deactivate)
"""
active_ap_bssid = active_ap.get_bssid() if active_ap is not None else ""
names = [ssid_to_utf8(ap) for ap in aps]
max_len_name = max([len(name) for name in names]) if names else 0
secs = [ap_security(ap) for ap in aps]
max_len_sec = max([len(sec) for sec in secs]) if secs else 0
ap_actions = []
for nm_ap, name, sec in zip(aps, names, secs):
bars = NM.utils_wifi_strength_bars(nm_ap.get_strength())
wifi_chars = CONF.get("dmenu", "wifi_chars", fallback=False)
if wifi_chars:
bars = "".join([wifi_chars[i] for i, j in enumerate(bars) if j == '*'])
is_active = nm_ap.get_bssid() == active_ap_bssid
compact = CONF.getboolean("dmenu", "compact", fallback=False)
if compact:
action_name = f"{name} {sec} {bars}"
else:
action_name = f"{name:<{max_len_name}s} {sec:<{max_len_sec}s} {bars:>4}"
if is_active:
ap_actions.append(Action(action_name, process_ap,
[active_connection, True, adapter],
active=True))
else:
ap_actions.append(Action(action_name, process_ap,
[nm_ap, False, adapter]))
return ap_actions
def create_vpn_actions(vpns, active):
"""Create the list of strings to display with associated function
(activate/deactivate) for VPN connections.
"""
active_vpns = [i for i in active if i.get_vpn()]
return _create_vpngsm_actions(vpns, active_vpns, "VPN")
def create_wireguard_actions(wgs, active):
"""Create the list of strings to display with associated function
(activate/deactivate) for Wireguard connections.
"""
active_wgs = [i for i in active if i.get_connection_type() == "wireguard"]
return _create_vpngsm_actions(wgs, active_wgs, "Wireguard")
def create_eth_actions(eths, active):
"""Create the list of strings to display with associated function
(activate/deactivate) for Ethernet connections.
"""
active_eths = [i for i in active if 'ethernet' in i.get_connection_type()]
return _create_vpngsm_actions(eths, active_eths, "Eth")
def create_gsm_actions(gsms, active):
"""Create the list of strings to display with associated function
(activate/deactivate) GSM connections."""
active_gsms = [i for i in active if
i.get_connection() is not None and
i.get_connection().is_type(NM.SETTING_GSM_SETTING_NAME)]
return _create_vpngsm_actions(gsms, active_gsms, "GSM")
def create_blue_actions(blues, active):
"""Create the list of strings to display with associated function
(activate/deactivate) Bluetooth connections."""
active_blues = [i for i in active if
i.get_connection() is not None and
i.get_connection().is_type(NM.SETTING_BLUETOOTH_SETTING_NAME)]
return _create_vpngsm_actions(blues, active_blues, "Bluetooth")
def create_saved_actions(saved):
"""Create the list of strings to display with associated function
(activate/deactivate) for VPN connections.
"""
return _create_vpngsm_actions(saved, [], "SAVED")
def _create_vpngsm_actions(cons, active_cons, label):
active_con_ids = [a.get_id() for a in active_cons]
actions = []
for con in cons:
is_active = con.get_id() in active_con_ids
action_name = f"{con.get_id()}:{label}"
if is_active:
active_connection = [a for a in active_cons
if a.get_id() == con.get_id()]
if len(active_connection) != 1:
raise ValueError(f"Multiple active connections match {con.get_id()}")
active_connection = active_connection[0]
actions.append(Action(action_name, process_vpngsm,
[active_connection, False], active=True))
else:
actions.append(Action(action_name, process_vpngsm,
[con, True]))
return actions
def create_wwan_actions(client):
"""Create WWWAN actions
"""
wwan_enabled = client.wwan_get_enabled()
wwan_action = "Disable" if wwan_enabled else "Enable"
return [Action(f"{wwan_action} WWAN", toggle_wwan, not wwan_enabled)]
def combine_actions(eths, aps, vpns, wgs, gsms, blues, wwan, others, saved):
# pylint: disable=too-many-arguments
"""Combine all given actions into a list of actions.
Args: args - eths: list of Actions
aps: list of Actions
vpns: list of Actions
gsms: list of Actions
blues: list of Actions
wwan: list of Actions
others: list of Actions
"""
compact = CONF.getboolean("dmenu", "compact", fallback=False)
empty_action = [Action('', None)] if not compact else []
all_actions = []
all_actions += eths + empty_action if eths else []
all_actions += aps + empty_action if aps else []
all_actions += vpns + empty_action if vpns else []
all_actions += wgs + empty_action if wgs else []
all_actions += gsms + empty_action if (gsms and wwan) else []
all_actions += blues + empty_action if blues else []
all_actions += wwan + empty_action if wwan else []
all_actions += others + empty_action if others else []
all_actions += saved + empty_action if saved else []
return all_actions
def get_selection(all_actions):
"""Spawn dmenu for selection and execute the associated action."""
rofi_highlight = CONF.getboolean('dmenu', 'rofi_highlight', fallback=False)
inp = []
if rofi_highlight is True:
inp = [str(action) for action in all_actions]
else:
inp = [('== ' if action.is_active else ' ') + str(action)
for action in all_actions]
active_lines = [index for index, action in enumerate(all_actions)
if action.is_active]
command = dmenu_cmd(len(inp), active_lines=active_lines)
sel = subprocess.run(command,
capture_output=True,
check=False,
input="\n".join(inp),
encoding=ENC,
env=ENV).stdout
if not sel.rstrip():
sys.exit()
if rofi_highlight is False:
action = [i for i in all_actions
if ((str(i).strip() == str(sel.strip())
and not i.is_active) or
('== ' + str(i) == str(sel.rstrip('\n'))
and i.is_active))]
else:
action = [i for i in all_actions if str(i).strip() == sel.strip()]
assert len(action) == 1, f"Selection was ambiguous: '{str(sel.strip())}'"
return action[0]
def toggle_networking(enable):
"""Enable/disable networking
Args: enable - boolean
"""
toggle = GLib.Variant.new_tuple(GLib.Variant.new_boolean(enable))
try:
CLIENT.dbus_call(NM.DBUS_PATH, NM.DBUS_INTERFACE, "Enable", toggle,
None, -1, None, None, None)
except AttributeError:
# Workaround for older versions of python-gobject
CLIENT.networking_set_enabled(enable)
notify(f"Networking {'enabled' if enable is True else 'disabled'}")
def toggle_wifi(enable):
"""Enable/disable Wifi
Args: enable - boolean
"""
toggle = GLib.Variant.new_boolean(enable)
try:
CLIENT.dbus_set_property(NM.DBUS_PATH, NM.DBUS_INTERFACE, "WirelessEnabled", toggle,
-1, None, None, None)
except AttributeError:
# Workaround for older versions of python-gobject
CLIENT.wireless_set_enabled(enable)
notify(f"Wifi {'enabled' if enable is True else 'disabled'}")
def toggle_wwan(enable):
"""Enable/disable WWAN
Args: enable - boolean
"""
toggle = GLib.Variant.new_boolean(enable)
try:
CLIENT.dbus_set_property(NM.DBUS_PATH, NM.DBUS_INTERFACE, "WwanEnabled", toggle,
-1, None, None, None)
except AttributeError:
# Workaround for older versions of python-gobject
CLIENT.wwan_set_enabled(enable)
notify(f"Wwan {'enabled' if enable is True else 'disabled'}")
def toggle_bluetooth(enable):
"""Enable/disable Bluetooth
Args: enable - boolean
References:
https://github.com/blueman-project/blueman/blob/master/blueman/plugins/mechanism/RfKill.py
https://www.kernel.org/doc/html/latest/driver-api/rfkill.html
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/tree/include/uapi/linux/rfkill.h?h=v5.8.9
"""
type_bluetooth = 2
op_change_all = 3
idx = 0
soft_state = 0 if enable else 1
hard_state = 0
data = struct.pack("IBBBB", idx, type_bluetooth, op_change_all,
soft_state, hard_state)
try:
with open('/dev/rfkill', 'r+b', buffering=0) as rff:
rff.write(data)
except PermissionError:
notify("Lacking permission to write to /dev/rfkill.",
"Check README for configuration options.",
urgency="critical")
else:
notify(f"Bluetooth {'enabled' if enable else 'disabled'}")
def launch_connection_editor():
"""Launch nmtui or the gui nm-connection-editor
"""
terminal = CONF.get("editor", "terminal", fallback="xterm")
gui_if_available = CONF.getboolean("editor", "gui_if_available", fallback=True)
guis = ["gnome-control-center", "nm-connection-editor"]
if gui_if_available is True:
for gui in guis:
if is_installed(gui):
subprocess.run(gui, check=False)
return
if is_installed("nmtui"):
subprocess.run([terminal, "-e", "nmtui"], check=False)
return
notify("No network connection editor installed", urgency="critical")
def get_passphrase():
"""Get a password
Returns: string
"""
pinentry = CONF.get("dmenu", "pinentry", fallback=None)
if pinentry:
pin = ""
out = subprocess.run(pinentry,
capture_output=True,
check=False,
encoding=ENC,
input='setdesc Get network password\ngetpin\n').stdout
if out:
res = out.split("\n")[2]
if res.startswith("D "):
pin = res.split("D ")[1]
return pin
return subprocess.run(dmenu_cmd(0, "Passphrase"),
stdin=subprocess.DEVNULL,
capture_output=True,
check=False,
encoding=ENC).stdout
def delete_connection():
"""Display list of NM connections and delete the selected one
"""
conn_acts = [Action(i.get_id(), i.delete_async, args=[None, delete_cb, None]) for i in CONNS]
conn_names = "\n".join([str(i) for i in conn_acts])
sel = subprocess.run(dmenu_cmd(len(conn_acts), "CHOOSE CONNECTION TO DELETE:"),
capture_output=True,
check=False,
input=conn_names,
encoding=ENC,
env=ENV).stdout
if not sel.strip():
sys.exit()
action = [i for i in conn_acts if str(i) == sel.rstrip("\n")]
assert len(action) == 1, f"Selection was ambiguous: {str(sel)}"
action[0]()
LOOP.run()
def delete_cb(dev, res, data):
"""Notification if delete completed successfully
"""
if dev.delete_finish(res) is True:
notify(f"Deleted {dev.get_id()}")
else:
notify(f"Problem deleting {dev.get_id()}", urgency="critical")
LOOP.quit()
def set_new_connection(nm_ap, nm_pw, adapter):
"""Setup a new NetworkManager connection
Args: ap - NM.AccessPoint
pw - string
"""
nm_pw = str(nm_pw).strip()
profile = create_wifi_profile(nm_ap, nm_pw, adapter)
CLIENT.add_and_activate_connection_async(profile, adapter, nm_ap.get_path(),
None, verify_conn, profile)
LOOP.run()
def create_wifi_profile(nm_ap, password, adapter):
# pylint: disable=line-too-long
# noqa From https://cgit.freedesktop.org/NetworkManager/NetworkManager/tree/examples/python/gi/add_connection.py
# noqa and https://cgit.freedesktop.org/NetworkManager/NetworkManager/tree/examples/python/dbus/add-wifi-psk-connection.py
# pylint: enable=line-too-long
"""Create the NM profile given the AP and passphrase"""
ap_sec = ap_security(nm_ap)
profile = NM.SimpleConnection.new()
s_con = NM.SettingConnection.new()
s_con.set_property(NM.SETTING_CONNECTION_ID, ssid_to_utf8(nm_ap))
s_con.set_property(NM.SETTING_CONNECTION_UUID, str(uuid.uuid4()))
s_con.set_property(NM.SETTING_CONNECTION_TYPE, "802-11-wireless")
profile.add_setting(s_con)
s_wifi = NM.SettingWireless.new()
s_wifi.set_property(NM.SETTING_WIRELESS_SSID, nm_ap.get_ssid())
s_wifi.set_property(NM.SETTING_WIRELESS_MODE, 'infrastructure')
s_wifi.set_property(NM.SETTING_WIRELESS_MAC_ADDRESS, adapter.get_permanent_hw_address())
profile.add_setting(s_wifi)
s_ip4 = NM.SettingIP4Config.new()
s_ip4.set_property(NM.SETTING_IP_CONFIG_METHOD, "auto")
profile.add_setting(s_ip4)
s_ip6 = NM.SettingIP6Config.new()
s_ip6.set_property(NM.SETTING_IP_CONFIG_METHOD, "auto")
profile.add_setting(s_ip6)
if ap_sec != "--":
s_wifi_sec = NM.SettingWirelessSecurity.new()
if "WPA" in ap_sec:
if "WPA3" in ap_sec:
s_wifi_sec.set_property(NM.SETTING_WIRELESS_SECURITY_KEY_MGMT,
"sae")
else:
s_wifi_sec.set_property(NM.SETTING_WIRELESS_SECURITY_KEY_MGMT,
"wpa-psk")
s_wifi_sec.set_property(NM.SETTING_WIRELESS_SECURITY_AUTH_ALG,
"open")
s_wifi_sec.set_property(NM.SETTING_WIRELESS_SECURITY_PSK, password)
elif "WEP" in ap_sec:
s_wifi_sec.set_property(NM.SETTING_WIRELESS_SECURITY_KEY_MGMT,
"None")
s_wifi_sec.set_property(NM.SETTING_WIRELESS_SECURITY_WEP_KEY_TYPE,
NM.WepKeyType.PASSPHRASE)
s_wifi_sec.set_wep_key(0, password)
profile.add_setting(s_wifi_sec)
return profile
def verify_conn(client, result, data):
"""Callback function for add_and_activate_connection_async
Check if connection completes successfully. Delete the connection if there
is an error.
"""
try:
act_conn = client.add_and_activate_connection_finish(result)
conn = act_conn.get_connection()
if not all([conn.verify(),
conn.verify_secrets(),
data.verify(),
data.verify_secrets()]):
raise GLib.Error
notify(f"Added {conn.get_id()}")
except GLib.Error:
try:
notify(f"Connection to {conn.get_id()} failed",
urgency="critical")
conn.delete_async(None, None, None)
except UnboundLocalError:
pass
finally:
LOOP.quit()
def create_ap_list(adapter, active_connections):
"""Generate list of access points. Remove duplicate APs , keeping strongest
ones and the active AP
Args: adapter
active_connections - list of all active connections
Returns: aps - list of access points
active_ap - active AP
active_ap_con - active Connection
adapter
"""
aps = []
ap_names = []
active_ap = adapter.get_active_access_point()
aps_all = sorted(adapter.get_access_points(),
key=lambda a: a.get_strength(), reverse=True)
conns_cur = [i for i in CONNS if
i.get_setting_wireless() is not None and
conn_matches_adapter(i, adapter)]
try:
ap_conns = active_ap.filter_connections(conns_cur)
active_ap_name = ssid_to_utf8(active_ap)
active_ap_con = [active_conn for active_conn in active_connections
if active_conn.get_connection() in ap_conns]
except AttributeError:
active_ap_name = None
active_ap_con = []
if len(active_ap_con) > 1:
raise ValueError("Multiple connection profiles match"
" the wireless AP")
active_ap_con = active_ap_con[0] if active_ap_con else None
for nm_ap in aps_all:
ap_name = ssid_to_utf8(nm_ap)
if nm_ap != active_ap and ap_name == active_ap_name:
# Skip adding AP if it's not active but same name as active AP
continue
if ap_name not in ap_names:
ap_names.append(ap_name)
aps.append(nm_ap)
return aps, active_ap, active_ap_con, adapter
def notify(message, details=None, urgency="low"):
"""Use notify-send if available for notifications
"""
delay = CONF.getint('nmdm', 'rescan_delay', fallback=5)
args = ["-u", urgency, "-a", "networkmanager-dmenu",
"-t", str(delay * 1000), message]
if details is not None:
args.append(details)
if is_installed("notify-send"):
subprocess.run(["notify-send"] + args, check=False)
def run(): # pylint: disable=too-many-locals
"""Main script entrypoint"""
active = CLIENT.get_active_connections()
adapter = choose_adapter(CLIENT)
if adapter:
ap_actions = create_ap_actions(*create_ap_list(adapter, active))
else:
ap_actions = []
vpns = [i for i in CONNS if i.is_type(NM.SETTING_VPN_SETTING_NAME)]
try:
wgs = [i for i in CONNS if i.is_type(NM.SETTING_WIREGUARD_SETTING_NAME)]
except AttributeError:
# Workaround for older versions of python-gobject with no wireguard support
wgs = []
eths = [i for i in CONNS if i.is_type(NM.SETTING_WIRED_SETTING_NAME)]
blues = [i for i in CONNS if i.is_type(NM.SETTING_BLUETOOTH_SETTING_NAME)]
vpn_actions = create_vpn_actions(vpns, active)
wg_actions = create_wireguard_actions(wgs, active)
eth_actions = create_eth_actions(eths, active)
blue_actions = create_blue_actions(blues, active)
other_actions = create_other_actions(CLIENT)
wwan_installed = is_installed("ModemManager")
if wwan_installed:
gsms = [i for i in CONNS if i.is_type(NM.SETTING_GSM_SETTING_NAME)]
gsm_actions = create_gsm_actions(gsms, active)
wwan_actions = create_wwan_actions(CLIENT)
else:
gsm_actions = []
wwan_actions = []
list_saved = CONF.getboolean('dmenu', 'list_saved', fallback=False)
saved_cons = [i for i in CONNS if i not in vpns + wgs + eths + blues]
if list_saved:
saved_actions = create_saved_actions(saved_cons)
else:
saved_actions = [Action("Saved connections", prompt_saved, [saved_cons])]
actions = combine_actions(eth_actions, ap_actions, vpn_actions, wg_actions,
gsm_actions, blue_actions, wwan_actions,
other_actions, saved_actions)
sel = get_selection(actions)
sel()
def main():
"""Main. Enables script to be re-run after a wifi rescan
"""
global CLIENT, CONNS, LOOP # noqa pylint: disable=global-variable-undefined
CLIENT = NM.Client.new(None)
LOOP = GLib.MainLoop()
CONNS = CLIENT.get_connections()
run()
if __name__ == '__main__':
main()
# vim: set et ts=4 sw=4 :

View File

@ -1,15 +0,0 @@
#!/usr/bin/env bash
## Copyright (C) 2020-2023 Aditya Shakya <adi1090x@gmail.com>
# Import Current Theme
DIR="$HOME/.config/i3"
STYLE="onedark"
RASI="$DIR/themes/$STYLE/rofi/askpass.rasi"
# Rofi text dialog to get password
rofi -dmenu \
-password \
-i \
-p "Root" \
-theme ${RASI}

View File

@ -1,79 +0,0 @@
#!/usr/bin/env bash
## Copyright (C) 2020-2023 Aditya Shakya <adi1090x@gmail.com>
# Import Current Theme
DIR="$HOME/.config/i3"
STYLE="onedark"
RASI="$DIR/themes/$STYLE/rofi/asroot.rasi"
ASROOT="$DIR/scripts/i3_asroot"
# Theme Elements
prompt='Root'
mesg="Run Applications As Root"
term='alacritty --class alacritty-float,alacritty-float --config-file /root/.config/i3/alacritty/alacritty.yml'
# Options
layout=`cat ${RASI} | grep 'USE_ICON' | cut -d'=' -f2`
if [[ "$layout" == 'NO' ]]; then
option_1=" Alacritty"
option_2=" Thunar"
option_3=" Geany"
option_4=" Ranger"
option_5=" Vim"
else
option_1=""
option_2=""
option_3=""
option_4=""
option_5=""
fi
# Rofi CMD
rofi_cmd() {
rofi -dmenu \
-p "$prompt" \
-mesg "$mesg" \
-markup-rows \
-theme ${RASI}
}
# Pass variables to rofi dmenu
run_rofi() {
echo -e "$option_1\n$option_2\n$option_3\n$option_4\n$option_5" | rofi_cmd
}
# Execute Command
run_cmd() {
if [[ "$1" == '--opt1' ]]; then
${ASROOT} "$term"
elif [[ "$1" == '--opt2' ]]; then
${ASROOT} 'dbus-run-session thunar'
elif [[ "$1" == '--opt3' ]]; then
${ASROOT} geany
elif [[ "$1" == '--opt4' ]]; then
${ASROOT} "$term -e ranger"
elif [[ "$1" == '--opt5' ]]; then
${ASROOT} "$term -e vim"
fi
}
# Actions
chosen="$(run_rofi)"
case ${chosen} in
$option_1)
run_cmd --opt1
;;
$option_2)
run_cmd --opt2
;;
$option_3)
run_cmd --opt3
;;
$option_4)
run_cmd --opt4
;;
$option_5)
run_cmd --opt5
;;
esac

View File

@ -1,14 +0,0 @@
#!/usr/bin/env bash
## Copyright (C) 2020-2023 Aditya Shakya <adi1090x@gmail.com>
# Import Current Theme
DIR="$HOME/.config/i3"
STYLE="onedark"
RASI="$DIR/themes/$STYLE/rofi/launcher.rasi"
# Run
rofi \
-show drun \
-kb-cancel Alt-F1 \
-theme ${RASI}

View File

@ -1,119 +0,0 @@
#!/usr/bin/env bash
## Copyright (C) 2020-2023 Aditya Shakya <adi1090x@gmail.com>
# Import Current Theme
DIR="$HOME/.config/i3"
STYLE="onedark"
RASI="$DIR/themes/$STYLE/rofi/music.rasi"
# Theme Elements
status="`mpc status`"
if [[ -z "$status" ]]; then
prompt='Offline'
mesg="MPD is Offline"
else
prompt="`mpc -f "%artist%" current`"
mesg="`mpc -f "%title%" current` :: `mpc status | grep "#" | awk '{print $3}'`"
fi
# Options
layout=`cat ${RASI} | grep 'USE_ICON' | cut -d'=' -f2`
if [[ "$layout" == 'NO' ]]; then
if [[ ${status} == *"[playing]"* ]]; then
option_1=" Pause"
else
option_1=" Play"
fi
option_2=" Stop"
option_3=" Previous"
option_4=" Next"
option_5=" Repeat"
option_6=" Random"
else
if [[ ${status} == *"[playing]"* ]]; then
option_1=""
else
option_1=""
fi
option_2=""
option_3=""
option_4=""
option_5=""
option_6=""
fi
# Toggle Actions
active=''
urgent=''
# Repeat
if [[ ${status} == *"repeat: on"* ]]; then
active="-a 4"
elif [[ ${status} == *"repeat: off"* ]]; then
urgent="-u 4"
else
option_5=" Parsing Error"
fi
# Random
if [[ ${status} == *"random: on"* ]]; then
[ -n "$active" ] && active+=",5" || active="-a 5"
elif [[ ${status} == *"random: off"* ]]; then
[ -n "$urgent" ] && urgent+=",5" || urgent="-u 5"
else
option_6=" Parsing Error"
fi
# Rofi CMD
rofi_cmd() {
rofi -dmenu \
-p "$prompt" \
-mesg "$mesg" \
${active} ${urgent} \
-markup-rows \
-theme ${RASI}
}
# Pass variables to rofi dmenu
run_rofi() {
echo -e "$option_1\n$option_2\n$option_3\n$option_4\n$option_5\n$option_6" | rofi_cmd
}
# Execute Command
run_cmd() {
if [[ "$1" == '--opt1' ]]; then
mpc -q toggle && kunst --size 60x60 --silent
elif [[ "$1" == '--opt2' ]]; then
mpc -q stop
elif [[ "$1" == '--opt3' ]]; then
mpc -q prev && kunst --size 60x60 --silent
elif [[ "$1" == '--opt4' ]]; then
mpc -q next && kunst --size 60x60 --silent
elif [[ "$1" == '--opt5' ]]; then
mpc -q repeat
elif [[ "$1" == '--opt6' ]]; then
mpc -q random
fi
}
# Actions
chosen="$(run_rofi)"
case ${chosen} in
$option_1)
run_cmd --opt1
;;
$option_2)
run_cmd --opt2
;;
$option_3)
run_cmd --opt3
;;
$option_4)
run_cmd --opt4
;;
$option_5)
run_cmd --opt5
;;
$option_6)
run_cmd --opt6
;;
esac

View File

@ -1,116 +0,0 @@
#!/usr/bin/env bash
## Copyright (C) 2020-2023 Aditya Shakya <adi1090x@gmail.com>
# Import Current Theme
DIR="$HOME/.config/i3"
STYLE="onedark"
RASI="$DIR/themes/$STYLE/rofi/powermenu.rasi"
CNFR="$DIR/themes/$STYLE/rofi/confirm.rasi"
# Theme Elements
prompt="`hostname` (`echo $DESKTOP_SESSION`)"
mesg="Uptime : `uptime -p | sed -e 's/up //g'`"
# Options
layout=`cat ${RASI} | grep 'USE_ICON' | cut -d'=' -f2`
if [[ "$layout" == 'NO' ]]; then
option_1=" Lock"
option_2=" Logout"
option_3=" Suspend"
option_4=" Hibernate"
option_5=" Reboot"
option_6=" Shutdown"
else
option_1=""
option_2=""
option_3=""
option_4=""
option_5=""
option_6=""
fi
cnflayout=`cat ${CNFR} | grep 'USE_ICON' | cut -d'=' -f2`
if [[ "$cnflayout" == 'NO' ]]; then
yes=' Yes'
no=' No'
else
yes=''
no=''
fi
# Rofi CMD
rofi_cmd() {
rofi -dmenu \
-p "$prompt" \
-mesg "$mesg" \
-markup-rows \
-theme ${RASI}
}
# Pass variables to rofi dmenu
run_rofi() {
echo -e "$option_1\n$option_2\n$option_3\n$option_4\n$option_5\n$option_6" | rofi_cmd
}
# Confirmation CMD
confirm_cmd() {
rofi -dmenu \
-p 'Confirmation' \
-mesg 'Are you Sure?' \
-theme ${CNFR}
}
# Ask for confirmation
confirm_exit() {
echo -e "$yes\n$no" | confirm_cmd
}
# Confirm and execute
confirm_run () {
selected="$(confirm_exit)"
if [[ "$selected" == "$yes" ]]; then
${1} && ${2} && ${3}
else
exit
fi
}
# Execute Command
run_cmd() {
if [[ "$1" == '--opt1' ]]; then
betterlockscreen --lock
elif [[ "$1" == '--opt2' ]]; then
confirm_run 'i3-msg exit'
elif [[ "$1" == '--opt3' ]]; then
confirm_run 'mpc -q pause' 'pulsemixer --mute' 'betterlockscreen --suspend'
elif [[ "$1" == '--opt4' ]]; then
confirm_run 'systemctl hibernate'
elif [[ "$1" == '--opt5' ]]; then
confirm_run 'systemctl reboot'
elif [[ "$1" == '--opt6' ]]; then
confirm_run 'systemctl poweroff'
fi
}
# Actions
chosen="$(run_rofi)"
case ${chosen} in
$option_1)
run_cmd --opt1
;;
$option_2)
run_cmd --opt2
;;
$option_3)
run_cmd --opt3
;;
$option_4)
run_cmd --opt4
;;
$option_5)
run_cmd --opt5
;;
$option_6)
run_cmd --opt6
;;
esac

View File

@ -1,13 +0,0 @@
#!/usr/bin/env bash
## Copyright (C) 2020-2023 Aditya Shakya <adi1090x@gmail.com>
# Import Current Theme
DIR="$HOME/.config/i3"
STYLE="onedark"
RASI="$DIR/themes/$STYLE/rofi/runner.rasi"
# Run
rofi \
-show run \
-theme ${RASI}

View File

@ -1,142 +0,0 @@
#!/usr/bin/env bash
## Copyright (C) 2020-2023 Aditya Shakya <adi1090x@gmail.com>
# Import Current Theme
DIR="$HOME/.config/i3"
STYLE="onedark"
RASI="$DIR/themes/$STYLE/rofi/screenshot.rasi"
# Theme Elements
prompt='Screenshot'
mesg="Directory :: `xdg-user-dir PICTURES`/Screenshots"
# Options
layout=`cat ${RASI} | grep 'USE_ICON' | cut -d'=' -f2`
if [[ "$layout" == 'NO' ]]; then
option_1=" Capture Desktop"
option_2=" Capture Area"
option_3=" Capture Window"
option_4=" Capture in 5s"
option_5=" Capture in 10s"
else
option_1=""
option_2=""
option_3=""
option_4=""
option_5=""
fi
# Rofi CMD
rofi_cmd() {
rofi -dmenu \
-p "$prompt" \
-mesg "$mesg" \
-markup-rows \
-theme ${RASI}
}
# Pass variables to rofi dmenu
run_rofi() {
echo -e "$option_1\n$option_2\n$option_3\n$option_4\n$option_5" | rofi_cmd
}
# Screenshot
time=`date +%Y-%m-%d-%H-%M-%S`
geometry=`xrandr | grep 'current' | head -n1 | cut -d',' -f2 | tr -d '[:blank:],current'`
dir="`xdg-user-dir PICTURES`/Screenshots"
file="Screenshot_${time}_${geometry}.png"
# Directory
if [[ ! -d "$dir" ]]; then
mkdir -p "$dir"
fi
# notify and view screenshot
notify_view() {
notify_cmd_shot='dunstify -u low -h string:x-dunst-stack-tag:obscreenshot -i /usr/share/archcraft/icons/dunst/picture.png'
${notify_cmd_shot} "Copied to clipboard."
paplay /usr/share/sounds/freedesktop/stereo/screen-capture.oga &>/dev/null &
viewnior ${dir}/"$file"
if [[ -e "$dir/$file" ]]; then
${notify_cmd_shot} "Screenshot Saved."
else
${notify_cmd_shot} "Screenshot Deleted."
fi
}
# Copy screenshot to clipboard
copy_shot () {
tee "$file" | xclip -selection clipboard -t image/png
}
# countdown
countdown () {
for sec in `seq $1 -1 1`; do
dunstify -t 1000 -h string:x-dunst-stack-tag:screenshottimer -i /usr/share/archcraft/icons/dunst/timer.png "Taking shot in : $sec"
sleep 1
done
}
# take shots
shotnow () {
cd ${dir} && sleep 0.5 && maim -u -f png | copy_shot
notify_view
}
shot5 () {
countdown '5'
sleep 1 && cd ${dir} && maim -u -f png | copy_shot
notify_view
}
shot10 () {
countdown '10'
sleep 1 && cd ${dir} && maim -u -f png | copy_shot
notify_view
}
shotwin () {
cd ${dir} && maim -u -f png -i `xdotool getactivewindow` | copy_shot
notify_view
}
shotarea () {
cd ${dir} && maim -u -f png -s -b 2 -c 0.35,0.55,0.85,0.25 -l | copy_shot
notify_view
}
# Execute Command
run_cmd() {
if [[ "$1" == '--opt1' ]]; then
shotnow
elif [[ "$1" == '--opt2' ]]; then
shotarea
elif [[ "$1" == '--opt3' ]]; then
shotwin
elif [[ "$1" == '--opt4' ]]; then
shot5
elif [[ "$1" == '--opt5' ]]; then
shot10
fi
}
# Actions
chosen="$(run_rofi)"
case ${chosen} in
$option_1)
run_cmd --opt1
;;
$option_2)
run_cmd --opt2
;;
$option_3)
run_cmd --opt3
;;
$option_4)
run_cmd --opt4
;;
$option_5)
run_cmd --opt5
;;
esac

View File

@ -1,50 +0,0 @@
#!/usr/bin/env bash
## Copyright (C) 2020-2023 Aditya Shakya <adi1090x@gmail.com>
# Import Current Theme
DIR="$HOME/.config/i3"
STYLE="onedark"
RASI="$DIR/themes/$STYLE/rofi/themes.rasi"
# List Available Themes
THEMES=(`cd $DIR/themes && ls -d */ | cut -d '/' -f1`)
# Theme Elements
prompt="Themes"
mesg="<b>Available Themes</b> : `cd $DIR/themes && ls -d */ | cut -d '/' -f1 | wc -l`"
# Rofi CMD
rofi_cmd() {
rofi -dmenu \
-p "$prompt" \
-mesg "$mesg" \
-sep '|' \
-markup-rows \
-theme ${RASI}
}
# Pass variables to rofi dmenu
run_rofi() {
echo ${THEMES[@]} | sed 's/ /|/g' | sed 's/$/|/' | sed 's/^/Random||/' | rofi_cmd
}
# Apply Theme
apply_theme() {
selected="`run_rofi`"
current="`cat $DIR/themes/.current`"
for theme in "${THEMES[@]}"; do
if [[ -z "$selected" ]]; then
break
elif [[ "$selected" == "$theme" ]]; then
"$DIR"/themes/"$theme"/apply.sh
break
elif [[ "$selected" == 'Random' ]]; then
"$DIR"/themes/"$current"/random.sh
break
fi
done
}
apply_theme && exit 0

Some files were not shown because too many files have changed in this diff Show More