Merge branch 'devos' of git.sealight.xyz:aynish/nix-garden into devos
This commit is contained in:
commit
7b8e955d97
13
flake.nix
13
flake.nix
|
@ -103,9 +103,10 @@
|
||||||
#modules = [ ]; # nixos-hardware.nixosModules.lenovo-thinkpad
|
#modules = [ ]; # nixos-hardware.nixosModules.lenovo-thinkpad
|
||||||
# Yubikey
|
# Yubikey
|
||||||
};
|
};
|
||||||
box = { };
|
cube = { };
|
||||||
hypercube = { };
|
# box = { };
|
||||||
work = { };
|
# hypercube = { };
|
||||||
|
# work = { };
|
||||||
};
|
};
|
||||||
importables = rec {
|
importables = rec {
|
||||||
profiles = digga.lib.rakeLeaves ./profiles // {
|
profiles = digga.lib.rakeLeaves ./profiles // {
|
||||||
|
@ -130,11 +131,11 @@
|
||||||
profiles = digga.lib.rakeLeaves ./users/profiles;
|
profiles = digga.lib.rakeLeaves ./users/profiles;
|
||||||
suites = with profiles; rec {
|
suites = with profiles; rec {
|
||||||
hmBase = [ direnv git ];
|
hmBase = [ direnv git ];
|
||||||
#gui = [ base profiles.firefox profiles.desktop ];
|
gui = [ hmBase profiles.firefox profiles.desktop ];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
users = {
|
users = {
|
||||||
nixos = { suites, ... }: { imports = suites.base; };
|
nixos = { suites, ... }: { imports = suites.hmBase; };
|
||||||
curve = { suites, ... }: { imports = suites.gui; };
|
curve = { suites, ... }: { imports = suites.gui; };
|
||||||
}; # digga.lib.importers.rakeLeaves ./users/hm;
|
}; # digga.lib.importers.rakeLeaves ./users/hm;
|
||||||
};
|
};
|
||||||
|
@ -154,7 +155,7 @@
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
checks = builtins.mapAttrs (system: deployLib: deployLib.deployChecks self.deploy) deploy.lib;
|
# checks = builtins.mapAttrs (system: deployLib: deployLib.deployChecks self.deploy) deploy.lib;
|
||||||
}
|
}
|
||||||
;
|
;
|
||||||
}
|
}
|
||||||
|
|
58
hosts/cube/configuration.nix
Normal file
58
hosts/cube/configuration.nix
Normal file
|
@ -0,0 +1,58 @@
|
||||||
|
{ config, pkgs, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
imports =
|
||||||
|
[
|
||||||
|
# Include the results of the hardware scan.
|
||||||
|
./hardware-configuration.nix
|
||||||
|
];
|
||||||
|
|
||||||
|
# Use the GRUB 2 boot loader.
|
||||||
|
boot.loader.grub.enable = true;
|
||||||
|
boot.loader.grub.version = 2;
|
||||||
|
boot.loader.grub.device = "/dev/vda"; # or "nodev" for efi only
|
||||||
|
|
||||||
|
networking.hostName = "cube"; # Define your hostname.
|
||||||
|
|
||||||
|
# Set your time zone.
|
||||||
|
time.timeZone = "Australia/Brisbane";
|
||||||
|
|
||||||
|
# Use flakes
|
||||||
|
nix = {
|
||||||
|
package = pkgs.nixFlakes; # or versioned attributes like nix_2_7
|
||||||
|
extraOptions = ''
|
||||||
|
experimental-features = nix-command flakes
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
# The global useDHCP flag is deprecated, therefore explicitly set to false here.
|
||||||
|
# Per-interface useDHCP will be mandatory in the future, so this generated config
|
||||||
|
# replicates the default behaviour.
|
||||||
|
networking.useDHCP = false;
|
||||||
|
networking.interfaces.ens3.useDHCP = true;
|
||||||
|
|
||||||
|
# Define a user account. Don't forget to set a password with ‘passwd’.
|
||||||
|
users.users.anish = {
|
||||||
|
isNormalUser = true;
|
||||||
|
extraGroups = [ "wheel" ]; # Enable ‘sudo’ for the user.
|
||||||
|
openssh.authorizedKeys.keys = [ "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDM0Zvei46x/yZl/IeBCq6+IYQQ0avulzVyBysF9cPigZMCybWRV7IEU+E3k9t6JrbdbdGfJkcZIWmsWDdKS8W8mBnZpVoT0ffLynu8JQ/TKdGm4Qv6bgUeKNrGsNv0ZPs2CDaGSLj0oJfRF7Ko10tcLP0vW+yujrh+y6TH/vVzJioaV4TGvtCUpn+wEQah9ROwPQLUUofsSWdnRsDJ/gp37zXWs4l5wyjSKtP3O9RZUP7kBekbSqEgSXiTk0oUQSVqIWl9NDiP6onk/gSOjXsR/JPqsSN/XI/c/yj6gyY0f51Ru2D7iBxuMJIJcWV+rU6coIj+ULcQWLzt/7TI8jq5AOOzI/ll4zbL24Eo84Rz+TP9tvMMhDZ0VaMN22AJ8qQEjc5P09tWKsX7Jg39XelyV1jHXncE4yvIE9F4RSCHzWCeKeXakizQNuzSaxTxIExRFYHjNW5bR6+3MTGwVrEIXU+qML+0yFTR86MT+tdY5AreAJQLwbog79O1NupeXJE= anish@curve" ];
|
||||||
|
};
|
||||||
|
|
||||||
|
# List packages installed in system profile. To search, run:
|
||||||
|
# $ nix search wget
|
||||||
|
environment.systemPackages = with pkgs; [
|
||||||
|
vim # Do not forget to add an editor to edit configuration.nix! The Nano editor is also installed by default.
|
||||||
|
];
|
||||||
|
|
||||||
|
services.openssh.enable = true;
|
||||||
|
|
||||||
|
# THIS VALUE DETERMINES THE nixOS RELEASE FROM WHICH THE DEFAULT
|
||||||
|
# SETTINGS FOR STATEFUL DATA, LIKE FILE LOCATIONS AND DATABASE VERSIONS
|
||||||
|
# ON YOUR SYSTEM WERE TAKEN. iT‘S PERFECTLY FINE AND RECOMMENDED TO LEAVE
|
||||||
|
# THIS VALUE AT THE RELEASE VERSION OF THE FIRST INSTALL OF THIS SYSTEM.
|
||||||
|
# BEFORE CHANGING THIS VALUE READ THE DOCUMENTATION FOR THIS OPTION
|
||||||
|
# (E.G. MAN CONFIGURATION.NIX OR ON HTTPS://NIXOS.ORG/NIXOS/OPTIONS.HTML).
|
||||||
|
system.stateVersion = "21.11"; # DID YOU READ THE COMMENT?
|
||||||
|
|
||||||
|
}
|
||||||
|
|
10
hosts/cube/default.nix
Normal file
10
hosts/cube/default.nix
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
{ profiles, suites, ... }:
|
||||||
|
{
|
||||||
|
imports = [
|
||||||
|
./configuration.nix
|
||||||
|
]; # ++ [suites.cube];
|
||||||
|
|
||||||
|
#home-manager.users.anish = { self, suites, ... }: {
|
||||||
|
# imports = [ ] ++ suites.hmBase;
|
||||||
|
#};
|
||||||
|
}
|
29
hosts/cube/hardware-configuration.nix
Normal file
29
hosts/cube/hardware-configuration.nix
Normal file
|
@ -0,0 +1,29 @@
|
||||||
|
# Do not modify this file! It was generated by ‘nixos-generate-config’
|
||||||
|
# and may be overwritten by future invocations. Please make changes
|
||||||
|
# to /etc/nixos/configuration.nix instead.
|
||||||
|
{ config, lib, pkgs, modulesPath, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
imports =
|
||||||
|
[ (modulesPath + "/profiles/qemu-guest.nix")
|
||||||
|
];
|
||||||
|
|
||||||
|
boot.initrd.availableKernelModules = [ "ata_piix" "uhci_hcd" "virtio_pci" "sr_mod" "virtio_blk" ];
|
||||||
|
boot.initrd.kernelModules = [ ];
|
||||||
|
boot.kernelModules = [ ];
|
||||||
|
boot.extraModulePackages = [ ];
|
||||||
|
|
||||||
|
fileSystems."/" =
|
||||||
|
{ device = "/dev/disk/by-uuid/9233d8be-539f-43c8-9b83-84b5b4d72a93";
|
||||||
|
fsType = "ext4";
|
||||||
|
};
|
||||||
|
|
||||||
|
fileSystems."/boot" =
|
||||||
|
{ device = "/dev/disk/by-uuid/E00D-9070";
|
||||||
|
fsType = "vfat";
|
||||||
|
};
|
||||||
|
|
||||||
|
swapDevices = [ ];
|
||||||
|
|
||||||
|
hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
|
||||||
|
}
|
|
@ -45,7 +45,6 @@
|
||||||
# };
|
# };
|
||||||
|
|
||||||
sound.enable = true;
|
sound.enable = true;
|
||||||
hardware.pulseaudio.enable = true;
|
|
||||||
|
|
||||||
services.xserver.libinput.enable = true;
|
services.xserver.libinput.enable = true;
|
||||||
}
|
}
|
||||||
|
|
|
@ -154,6 +154,7 @@ in
|
||||||
# quick ssh
|
# quick ssh
|
||||||
sm = "ssh mossnet.lan";
|
sm = "ssh mossnet.lan";
|
||||||
ss = "ssh sealight.xyz";
|
ss = "ssh sealight.xyz";
|
||||||
|
sc = "ssh lakhwara.com"; # cube
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -1,4 +0,0 @@
|
||||||
{ self, config, lib, pkgs, ... }:
|
|
||||||
{
|
|
||||||
imports = [ ./nvim.nix ];
|
|
||||||
}
|
|
|
@ -1,491 +0,0 @@
|
||||||
{ pkgs, ... }:
|
|
||||||
let
|
|
||||||
customPlugins = {
|
|
||||||
vim-zettel = pkgs.vimUtils.buildVimPlugin {
|
|
||||||
name = "vim-zettel";
|
|
||||||
src = pkgs.fetchFromGitHub {
|
|
||||||
owner = "michal-h21";
|
|
||||||
repo = "vim-zettel";
|
|
||||||
rev = "929d90eec62e6f693c2702d2b6f76a93f2f1689d";
|
|
||||||
sha256 = "1fzKmknfVlEYwqeXgbKITbb2/PJ023iJyMz6vak3qh4=";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
lsp-format = pkgs.vimUtils.buildVimPlugin {
|
|
||||||
name = "lsp-format";
|
|
||||||
src = pkgs.fetchFromGitHub {
|
|
||||||
owner = "lukas-reineke";
|
|
||||||
repo = "lsp-format.nvim";
|
|
||||||
rev = "84e117b99bb2bc0d0c8122e2b256046f046f8aff";
|
|
||||||
sha256 = "rs3NTZwWdsmBGXnrgUeVxUiNjbN/ULxJHifPYJD9mT4=";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
vim-tidal = pkgs.vimUtils.buildVimPluginFrom2Nix {
|
|
||||||
name = "vim-tidal";
|
|
||||||
src = pkgs.fetchgit {
|
|
||||||
url = "https://github.com/tidalcycles/vim-tidal";
|
|
||||||
# version 1.4.6
|
|
||||||
rev = "52134979252757a5736ae09cb9fc6ae3cc04daef";
|
|
||||||
sha256 = "1x64d8jdlcw16pcp19xb0krd1jfqhva4xsxif8xc11pyj52sxxlh";
|
|
||||||
};
|
|
||||||
postInstall = ''
|
|
||||||
sed -i "s| split term://tidal| split term://$out/share/vim-plugins/vim-tidal/bin/tidal|g" $out/share/vim-plugins/vim-tidal/plugin/tidal.vim
|
|
||||||
cat plugin/tidal.vim | grep "term:"
|
|
||||||
'';
|
|
||||||
dependencies = [ ];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
my-python-packages = python-packages: with python-packages; [
|
|
||||||
tasklib
|
|
||||||
pynvim
|
|
||||||
six
|
|
||||||
python-lsp-server
|
|
||||||
pylsp-mypy
|
|
||||||
python-lsp-black
|
|
||||||
pylint
|
|
||||||
black
|
|
||||||
# other python packages you want
|
|
||||||
];
|
|
||||||
python-with-my-packages = pkgs.python3.withPackages my-python-packages;
|
|
||||||
in
|
|
||||||
{
|
|
||||||
environment.variables.EDITOR = "nvim";
|
|
||||||
environment.shellAliases = {
|
|
||||||
k = "cd ~/kitaab/vimwiki; vim -c :VimwikiIndex; cd $OLDPWD";
|
|
||||||
kz = "cd ~/kitaab/vimwiki; vim -c :VimwikiIndex -c :ZettelNew; cd $OLDPWD";
|
|
||||||
};
|
|
||||||
environment.systemPackages = with pkgs // customPlugins; [
|
|
||||||
nodejs
|
|
||||||
python-with-my-packages
|
|
||||||
clojure-lsp
|
|
||||||
rnix-lsp
|
|
||||||
terraform-lsp
|
|
||||||
vale
|
|
||||||
clj-kondo
|
|
||||||
# Other LSPs or linters
|
|
||||||
(neovim.override {
|
|
||||||
vimAlias = true;
|
|
||||||
withPython3 = true;
|
|
||||||
extraPython3Packages = pkgs: with pkgs; [ tasklib six ];
|
|
||||||
configure = {
|
|
||||||
packages.myPlugins = with pkgs.vimPlugins; {
|
|
||||||
start = [
|
|
||||||
# general
|
|
||||||
vim-nix
|
|
||||||
fzf-vim
|
|
||||||
vim-elixir
|
|
||||||
emmet-vim
|
|
||||||
nerdtree
|
|
||||||
ayu-vim
|
|
||||||
goyo-vim
|
|
||||||
csv-vim
|
|
||||||
rainbow_parentheses-vim
|
|
||||||
vim-surround
|
|
||||||
vim-devicons
|
|
||||||
nvim-web-devicons
|
|
||||||
direnv-vim
|
|
||||||
vim-peekaboo
|
|
||||||
undotree
|
|
||||||
telescope-nvim
|
|
||||||
plenary-nvim
|
|
||||||
lualine-nvim
|
|
||||||
nvim-gps
|
|
||||||
nvim-treesitter
|
|
||||||
nvim-treesitter-context
|
|
||||||
dashboard-nvim
|
|
||||||
FTerm-nvim
|
|
||||||
barbar-nvim
|
|
||||||
|
|
||||||
# kitaab stuff
|
|
||||||
vimwiki
|
|
||||||
taskwiki
|
|
||||||
vim-zettel
|
|
||||||
|
|
||||||
# lsp stuff
|
|
||||||
nvim-lint
|
|
||||||
nvim-lspconfig
|
|
||||||
nvim-cmp
|
|
||||||
cmp-nvim-lsp
|
|
||||||
cmp-treesitter
|
|
||||||
nvim-lsp-ts-utils
|
|
||||||
cmp-conjure
|
|
||||||
cmp-buffer
|
|
||||||
cmp-tabnine
|
|
||||||
lspkind-nvim
|
|
||||||
cmp-path
|
|
||||||
cmp-spell
|
|
||||||
nvim-autopairs
|
|
||||||
cmp_luasnip
|
|
||||||
luasnip
|
|
||||||
lsp-format
|
|
||||||
|
|
||||||
# git stuff
|
|
||||||
vim-fugitive
|
|
||||||
gitsigns-nvim
|
|
||||||
fzf-checkout-vim
|
|
||||||
|
|
||||||
# Clojure stuff
|
|
||||||
conjure
|
|
||||||
vim-sexp
|
|
||||||
vim-sexp-mappings-for-regular-people
|
|
||||||
# testing
|
|
||||||
#vim-processing
|
|
||||||
#vim-tidal
|
|
||||||
];
|
|
||||||
};
|
|
||||||
|
|
||||||
customRC = ''
|
|
||||||
set tabstop=2
|
|
||||||
set showmatch
|
|
||||||
set shiftwidth=2
|
|
||||||
set noexpandtab
|
|
||||||
set autoindent
|
|
||||||
set undofile
|
|
||||||
set signcolumn=auto:4
|
|
||||||
|
|
||||||
" set foldmethod=indent " fold based on indent
|
|
||||||
set number
|
|
||||||
set nocompatible
|
|
||||||
set relativenumber
|
|
||||||
set showtabline=2
|
|
||||||
set noexpandtab
|
|
||||||
set autowriteall
|
|
||||||
syntax on
|
|
||||||
set list lcs=tab:\|\
|
|
||||||
filetype plugin on
|
|
||||||
|
|
||||||
set termguicolors
|
|
||||||
let ayucolor="mirage"
|
|
||||||
colorscheme ayu
|
|
||||||
|
|
||||||
" set spell
|
|
||||||
set spelllang=en_gb
|
|
||||||
set ignorecase
|
|
||||||
set smartcase
|
|
||||||
set incsearch
|
|
||||||
" if hidden is not set, TextEdit might fail.
|
|
||||||
set hidden
|
|
||||||
" Some servers have issues with backup files, see #649
|
|
||||||
set nobackup
|
|
||||||
set nowritebackup
|
|
||||||
" Better display for messages
|
|
||||||
set cmdheight=2
|
|
||||||
" You will have bad experience for diagnostic messages when it's default 4000.
|
|
||||||
set updatetime=300
|
|
||||||
" don't give |ins-completion-menu| messages.
|
|
||||||
set shortmess+=c
|
|
||||||
" always show signcolumns
|
|
||||||
set signcolumn=yes
|
|
||||||
|
|
||||||
" window
|
|
||||||
nmap <leader>wh :topleft vnew<CR>
|
|
||||||
nmap <leader>wl :botright vnew<CR>
|
|
||||||
nmap <leader>wk :topleft new<CR>
|
|
||||||
nmap <leader>wj :botright new<CR>
|
|
||||||
|
|
||||||
" tabs
|
|
||||||
nmap <leader>rt :retab!<CR>
|
|
||||||
vmap <leader>rt :retab!<CR>
|
|
||||||
|
|
||||||
let mapleader = "\<Space>"
|
|
||||||
let maplocalleader = ","
|
|
||||||
|
|
||||||
" moving splits with vim movements.
|
|
||||||
:tnoremap <A-h> <C-\><C-N><C-w>h
|
|
||||||
:tnoremap <A-j> <C-\><C-N><C-w>j
|
|
||||||
:tnoremap <A-k> <C-\><C-N><C-w>k
|
|
||||||
:tnoremap <A-l> <C-\><C-N><C-w>l
|
|
||||||
:inoremap <A-h> <C-\><C-N><C-w>h
|
|
||||||
:inoremap <A-j> <C-\><C-N><C-w>j
|
|
||||||
:inoremap <A-k> <C-\><C-N><C-w>k
|
|
||||||
:inoremap <A-l> <C-\><C-N><C-w>l
|
|
||||||
:nnoremap <A-h> <leader>h
|
|
||||||
:nnoremap <A-j> <leader>j
|
|
||||||
:nnoremap <A-k> <leader>k
|
|
||||||
:nnoremap <A-l> <leader>l
|
|
||||||
:nnoremap <F5> "=strftime("%Y-%m-%d %H:%M")<CR>
|
|
||||||
:inoremap <F5> <C-R>=strftime("%Y-%m-%d %H:%M")<CR>
|
|
||||||
:inoremap <F4> <C-R>=strftime("%H:%M")<CR>
|
|
||||||
|
|
||||||
" tidal nvim terminal
|
|
||||||
" let g:tidal_target = "terminal"
|
|
||||||
|
|
||||||
" telescope
|
|
||||||
" Find files using Telescope command-line sugar.
|
|
||||||
nnoremap <leader>ff <cmd>Telescope find_files<cr>
|
|
||||||
nnoremap <leader>fg <cmd>Telescope live_grep<cr>
|
|
||||||
nnoremap <leader>fb <cmd>Telescope buffers<cr>
|
|
||||||
nnoremap <leader>fh <cmd>Telescope help_tags<cr>
|
|
||||||
nnoremap <leader>ft <cmd>Telescope tags<cr>
|
|
||||||
|
|
||||||
" exit normal mode in terminal
|
|
||||||
:tnoremap <C-n> <C-\><C-n>
|
|
||||||
|
|
||||||
" Sexp in Conjure (since it's fennel)
|
|
||||||
" let g:sexp_filetypes = [ "fennel" ]
|
|
||||||
|
|
||||||
let g:rainbow_active = 0
|
|
||||||
autocmd BufReadPost,BufNewFile c,clj,cljs RainbowParenthesesToggleAll
|
|
||||||
|
|
||||||
" general commands
|
|
||||||
map <leader>t :NERDTreeToggle<CR>
|
|
||||||
map <leader>s :w<CR>
|
|
||||||
map <leader>q :wq<CR>
|
|
||||||
map <leader>r :RainbowParenthesesToggleAll<CR>
|
|
||||||
map <leader><BS> :noh<CR>
|
|
||||||
nnoremap Y y$
|
|
||||||
" center moving
|
|
||||||
nnoremap n nzzzv
|
|
||||||
nnoremap N Nzzzv
|
|
||||||
nnoremap J mzJ'z
|
|
||||||
" undo points
|
|
||||||
inoremap , ,<c-g>u
|
|
||||||
inoremap . .<c-g>u
|
|
||||||
inoremap ? ?<c-g>u
|
|
||||||
inoremap ! !<c-g>u
|
|
||||||
inoremap ) )<c-g>u
|
|
||||||
inoremap [ [<c-g>u
|
|
||||||
inoremap ] ]<c-g>u
|
|
||||||
inoremap { {<c-g>u
|
|
||||||
inoremap ( (<c-g>u
|
|
||||||
inoremap } }<c-g>u
|
|
||||||
" moving text
|
|
||||||
vnoremap J :m '>+1<CR>gv=gv
|
|
||||||
vnoremap K :m '>-2<CR>gv=gv
|
|
||||||
inoremap <c-j> <esc>:m .+1<CR>==
|
|
||||||
inoremap <c-k> <esc>:m .-2<CR>==
|
|
||||||
nnoremap <leader>j <esc>:m .+1<CR>==
|
|
||||||
nnoremap <leader>k <esc>:m .-2<CR>==
|
|
||||||
" Pasting
|
|
||||||
:map <leader>sy :!xclip -i<CR><CR>
|
|
||||||
:vmap <leader>sy "*y
|
|
||||||
:map <leader>sp :r!xclip -o<CR>
|
|
||||||
|
|
||||||
" barbar
|
|
||||||
nnoremap <silent> gT :BufferPrevious<CR>
|
|
||||||
nnoremap <silent> gt :BufferNext<CR>
|
|
||||||
nnoremap <silent> gj :BufferPick<CR>
|
|
||||||
nnoremap <silent> gq :BufferClose<CR>
|
|
||||||
|
|
||||||
" git
|
|
||||||
nnoremap <leader>ga :G fetch --all
|
|
||||||
nmap <leader>gs :G<CR>
|
|
||||||
nmap <leader>gh :diffget //3<CR>
|
|
||||||
nmap <leader>gl :diffget //2<CR>
|
|
||||||
nmap <leader>gb :GBranches<CR>
|
|
||||||
nnoremap <leader>gp :Git! push<CR>
|
|
||||||
nnoremap <leader>gd :Gdiff<CR>
|
|
||||||
nnoremap <space>gc :G commit -v -q %:p<CR>
|
|
||||||
|
|
||||||
" kitaab
|
|
||||||
map <leader>zs :ZettelSearch<CR>
|
|
||||||
map <leader>zo :ZettelOpen<CR>
|
|
||||||
map <leader>zn :ZettelNew<CR>
|
|
||||||
map <leader>zd :VimwikiDiary<CR>
|
|
||||||
map <leader>zf :Telescope oldfiles only_cwd=true<CR>
|
|
||||||
map <leader>wt :VimwikiMakeTomorrowDiaryNote
|
|
||||||
map <leader>wd :VimwikiMakeYesterdayDiaryNote
|
|
||||||
let g:vimwiki_list = [{ 'path': '~/kitaab/vimwiki', 'auto_tags': 1, 'auto_diary_index': 1, 'auto_generate_links': 1 }]
|
|
||||||
|
|
||||||
let g:mapleader="\<Space>"
|
|
||||||
let g:dashboard_default_executive = 'telescope'
|
|
||||||
nmap <Leader>ss :<C-u>SessionSave<CR>
|
|
||||||
nmap <Leader>sl :<C-u>SessionLoad<CR>
|
|
||||||
nnoremap <silent> <Leader>fh :DashboardFindHistory<CR>
|
|
||||||
nnoremap <silent> <Leader>ff :DashboardFindFile<CR>
|
|
||||||
nnoremap <silent> <Leader>fm :DashboardJumpMark<CR>
|
|
||||||
nnoremap <silent> <Leader>cn :DashboardNewFile<CR>
|
|
||||||
autocmd FileType dashboard set showtabline=0 | autocmd WinLeave <buffer> set showtabline=2
|
|
||||||
|
|
||||||
" fzf
|
|
||||||
" not sure we even use this
|
|
||||||
let g:fzf_layout = { 'window': { 'width': 0.8, 'height': 0.8 } }
|
|
||||||
|
|
||||||
" lsp commands
|
|
||||||
nnoremap <leader>vd :lua vim.lsp.buf.definition()<CR>
|
|
||||||
nnoremap <leader>vi :lua require('telescope.builtin').lsp_implementation()<CR>
|
|
||||||
nnoremap <leader>vsh :lua vim.lsp.buf.signature_help()<CR>
|
|
||||||
nnoremap <leader>vrr :lua require('telescope.builtin').lsp_references()<CR>
|
|
||||||
nnoremap <leader>vrn :lua vim.lsp.buf.rename()<CR>
|
|
||||||
nnoremap <leader>vh :lua vim.lsp.buf.hover()<CR>
|
|
||||||
nnoremap <leader>vca :lua vim.lsp.buf.code_action()<CR>
|
|
||||||
nnoremap <leader>vsd :lua rim.lsp.diagnostic.show_line_diagnostics(); vim.lsp.util.show_line_diagnostics()<CR>
|
|
||||||
nnoremap <leader>vn :lua vim.lsp.diagnostic.goto_next()<CR>
|
|
||||||
nnoremap <leader>vll :call LspLocationList()<CR>
|
|
||||||
nnoremap <leader>va :lua require('telescope.builtin').lsp_code_actions(require('telescope.themes').get_cursor())<cr>
|
|
||||||
|
|
||||||
" lua config
|
|
||||||
lua <<EOF
|
|
||||||
-- lsp config
|
|
||||||
-- only show errors with virtual text
|
|
||||||
-- vim.lsp.handlers["textDocument/publishDiagnostics"] = vim.lsp.with(
|
|
||||||
-- vim.lsp.diagnostic.on_publish_diagnostics, {
|
|
||||||
-- -- Enable virtual text, override spacing to 4
|
|
||||||
-- virtual_text = {
|
|
||||||
-- severity_limit = { "Error" }
|
|
||||||
-- }
|
|
||||||
-- })
|
|
||||||
vim.g.diagnostics_active = true
|
|
||||||
function _G.toggle_diagnostics()
|
|
||||||
if vim.g.diagnostics_active then
|
|
||||||
vim.g.diagnostics_active = false
|
|
||||||
vim.lsp.diagnostic.clear(0)
|
|
||||||
vim.lsp.handlers["textDocument/publishDiagnostics"] = function() end
|
|
||||||
else
|
|
||||||
vim.g.diagnostics_active = true
|
|
||||||
vim.lsp.handlers["textDocument/publishDiagnostics"] = vim.lsp.with(
|
|
||||||
vim.lsp.diagnostic.on_publish_diagnostics, {
|
|
||||||
virtual_text = true,
|
|
||||||
signs = true,
|
|
||||||
underline = true,
|
|
||||||
update_in_insert = false,
|
|
||||||
}
|
|
||||||
)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
vim.api.nvim_set_keymap('n', '<leader>vt', ':call v:lua.toggle_diagnostics()<CR>', {noremap = true, silent = true})
|
|
||||||
|
|
||||||
|
|
||||||
-- autopairs
|
|
||||||
require('nvim-autopairs').setup{}
|
|
||||||
|
|
||||||
-- Setup nvim-cmp.
|
|
||||||
local has_words_before = function()
|
|
||||||
local line, col = unpack(vim.api.nvim_win_get_cursor(0))
|
|
||||||
return col ~= 0 and vim.api.nvim_buf_get_lines(0, line - 1, line, true)[1]:sub(col, col):match("%s") == nil
|
|
||||||
end
|
|
||||||
|
|
||||||
local luasnip = require("luasnip")
|
|
||||||
local cmp = require('cmp')
|
|
||||||
local cmp_autopairs = require('nvim-autopairs.completion.cmp')
|
|
||||||
local t = function(str)
|
|
||||||
return vim.api.nvim_replace_termcodes(str, true, true, true)
|
|
||||||
end
|
|
||||||
local check_back_space = function()
|
|
||||||
local col = vim.fn.col(".") - 1
|
|
||||||
return col == 0 or vim.fn.getline("."):sub(col, col):match("%s") ~= nil
|
|
||||||
end
|
|
||||||
cmp.setup {
|
|
||||||
formatting = {
|
|
||||||
format = function(entry, vim_item)
|
|
||||||
-- fancy icons and a name of kind
|
|
||||||
vim_item.kind = require("lspkind").presets.default[vim_item.kind] ..
|
|
||||||
" " .. vim_item.kind
|
|
||||||
-- set a name for each source
|
|
||||||
vim_item.menu = ({
|
|
||||||
buffer = "[Buffer]",
|
|
||||||
nvim_lsp = "[LSP]",
|
|
||||||
cmp_tabnine = "[TabNine]",
|
|
||||||
look = "[Look]",
|
|
||||||
path = "[Path]",
|
|
||||||
spell = "[Spell]",
|
|
||||||
calc = "[Calc]",
|
|
||||||
})[entry.source.name]
|
|
||||||
return vim_item
|
|
||||||
end
|
|
||||||
},
|
|
||||||
mapping = {
|
|
||||||
['<C-p>'] = cmp.mapping.select_prev_item(),
|
|
||||||
['<C-n>'] = cmp.mapping.select_next_item(),
|
|
||||||
['<C-d>'] = cmp.mapping.scroll_docs(-4),
|
|
||||||
['<C-f>'] = cmp.mapping.scroll_docs(4),
|
|
||||||
['<C-Space>'] = cmp.mapping.complete(),
|
|
||||||
['<C-e>'] = cmp.mapping.close(),
|
|
||||||
['<CR>'] = cmp.mapping.confirm({
|
|
||||||
behavior = cmp.ConfirmBehavior.Insert,
|
|
||||||
select = true
|
|
||||||
}),
|
|
||||||
["<Tab>"] = cmp.mapping(function(fallback)
|
|
||||||
if cmp.visible() then
|
|
||||||
cmp.select_next_item()
|
|
||||||
elseif luasnip.expand_or_jumpable() then
|
|
||||||
luasnip.expand_or_jump()
|
|
||||||
elseif has_words_before() then
|
|
||||||
cmp.complete()
|
|
||||||
else
|
|
||||||
fallback()
|
|
||||||
end
|
|
||||||
end, {"i", "s"}),
|
|
||||||
["<S-Tab>"] = cmp.mapping(function(fallback)
|
|
||||||
if cmp.visible() then
|
|
||||||
cmp.select_prev_item()
|
|
||||||
elseif luasnip.jumpable(-1) then
|
|
||||||
luasnip.jump(-1)
|
|
||||||
else
|
|
||||||
fallback()
|
|
||||||
end
|
|
||||||
end, { "i", "s" }),
|
|
||||||
},
|
|
||||||
sources = {
|
|
||||||
{name = 'buffer'}, {name = 'nvim_lsp'},
|
|
||||||
{name = "look"}, {name = "path"},
|
|
||||||
{name = 'cmp_tabnine'}, {name = "calc"}, {name = "spell"},
|
|
||||||
{name = 'cmp-conjure'}
|
|
||||||
},
|
|
||||||
completion = {completeopt = 'menu,menuone,noinsert'}
|
|
||||||
}
|
|
||||||
cmp.event:on( 'confirm_done', cmp_autopairs.on_confirm_done({ map_char = { tex = ' ' } }))
|
|
||||||
-- TabNine cmp
|
|
||||||
local tabnine = require('cmp_tabnine.config')
|
|
||||||
tabnine:setup({max_lines = 1000, max_num_results = 20, sort = true})
|
|
||||||
|
|
||||||
-- Setup lspconfig
|
|
||||||
require("lsp-format").setup {}
|
|
||||||
|
|
||||||
local capabilities = require('cmp_nvim_lsp').update_capabilities(vim.lsp.protocol.make_client_capabilities())
|
|
||||||
require('lspconfig').clojure_lsp.setup {on_attach = require "lsp-format".on_attach}
|
|
||||||
require('lspconfig').rnix.setup {on_attach = require "lsp-format".on_attach}
|
|
||||||
require('lspconfig').pylsp.setup {on_attach = require "lsp-format".on_attach}
|
|
||||||
require('lspconfig').terraform_lsp.setup {on_attach = require "lsp-format".on_attach}
|
|
||||||
|
|
||||||
require('gitsigns').setup { sign_priority=80 }
|
|
||||||
|
|
||||||
-- treesitter
|
|
||||||
require('nvim-treesitter.configs').setup { ensure_installed={'nix', 'clojure', 'python', 'typescript'}}
|
|
||||||
|
|
||||||
-- lualine
|
|
||||||
require('nvim-gps').setup {}
|
|
||||||
local gps = require('nvim-gps')
|
|
||||||
require('lualine').setup {
|
|
||||||
sections = {
|
|
||||||
lualine_c = {
|
|
||||||
'filename', { gps.get_location, condition=gps.is_available },
|
|
||||||
},
|
|
||||||
lualine_y = {
|
|
||||||
function()
|
|
||||||
local msg = 'No Active Lsp'
|
|
||||||
local buf_ft = vim.api.nvim_buf_get_option(0, 'filetype')
|
|
||||||
local clients = vim.lsp.get_active_clients()
|
|
||||||
if next(clients) == nil then
|
|
||||||
return msg
|
|
||||||
end
|
|
||||||
for _, client in ipairs(clients) do
|
|
||||||
local filetypes = client.config.filetypes
|
|
||||||
if filetypes and vim.fn.index(filetypes, buf_ft) ~= -1 then
|
|
||||||
return client.name
|
|
||||||
end
|
|
||||||
end
|
|
||||||
return msg
|
|
||||||
end
|
|
||||||
},
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
-- nvim-lint
|
|
||||||
require('lint').linters_by_ft = {
|
|
||||||
markdown = {'vale'},
|
|
||||||
}
|
|
||||||
|
|
||||||
-- f_term
|
|
||||||
local map = vim.api.nvim_set_keymap
|
|
||||||
local opts = { noremap = true, silent = true }
|
|
||||||
map('n', '<C-i>', '<CMD>lua require("FTerm").toggle()<CR>', opts)
|
|
||||||
map('t', '<A-i>', '<C-\\><C-n><CMD>lua require("FTerm").toggle()<CR>', opts)
|
|
||||||
EOF
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
}
|
|
||||||
)
|
|
||||||
];
|
|
||||||
}
|
|
|
@ -1,6 +1,8 @@
|
||||||
{ config, pkgs, ... }:
|
{ config, pkgs, ... }:
|
||||||
|
|
||||||
{
|
{
|
||||||
|
networking.dhcpcd.wait = "background";
|
||||||
|
networking.dhcpcd.extraConfig = "noarp";
|
||||||
networking.wireless.userControlled.enable = true;
|
networking.wireless.userControlled.enable = true;
|
||||||
networking.wireless.networks = {
|
networking.wireless.networks = {
|
||||||
"Chester 11403" = {
|
"Chester 11403" = {
|
||||||
|
@ -27,5 +29,11 @@
|
||||||
"Sandeep1" = {
|
"Sandeep1" = {
|
||||||
pskRaw = "035972401640bf4dc2d8651c0b9df515a69f6bc2bffa07cc936183128a6ccf0a";
|
pskRaw = "035972401640bf4dc2d8651c0b9df515a69f6bc2bffa07cc936183128a6ccf0a";
|
||||||
};
|
};
|
||||||
|
"chadpad" = {
|
||||||
|
pskRaw = "2594b3880a60817950bd60b2770c9793fd4cb784ed183f685a52502a9df2c7b1";
|
||||||
|
};
|
||||||
|
"Vodafone-07F38" = {
|
||||||
|
pskRaw = "4ffd87de73ed31ef1aee1d0d178857490afbda3f0bb8453a0baaee7b2576f302";
|
||||||
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -4,8 +4,8 @@
|
||||||
#home-manager.users = { inherit (hmUsers) anish; };
|
#home-manager.users = { inherit (hmUsers) anish; };
|
||||||
|
|
||||||
users.users.anish = {
|
users.users.anish = {
|
||||||
hashedPassword = "MVHHpy9gbe3ow";
|
|
||||||
description = "Personal user for Anish";
|
description = "Personal user for Anish";
|
||||||
|
hashedPassword = "MVHHpy9gbe3ow";
|
||||||
isNormalUser = true;
|
isNormalUser = true;
|
||||||
extraGroups = [ "wheel" "audio" ];
|
extraGroups = [ "wheel" "audio" ];
|
||||||
};
|
};
|
||||||
|
|
11
users/profiles/desktop/bin/hotplug-monitor.sh
Executable file
11
users/profiles/desktop/bin/hotplug-monitor.sh
Executable file
|
@ -0,0 +1,11 @@
|
||||||
|
#! /usr/bin/env bash
|
||||||
|
|
||||||
|
connect() {
|
||||||
|
xrandr --output HDMI-2 --same-as eDP-1
|
||||||
|
}
|
||||||
|
|
||||||
|
disconnect() {
|
||||||
|
xrandr --output HDMI-2 --off
|
||||||
|
}
|
||||||
|
|
||||||
|
xrandr | grep "HDMI-2 connected" &>>/dev/null && connect || disconnect
|
|
@ -11,7 +11,7 @@ log_out="\tLogout"
|
||||||
# Variable passed to rofi
|
# Variable passed to rofi
|
||||||
options="$power_off\n$reboot\n$lock\n$suspend\n$log_out"
|
options="$power_off\n$reboot\n$lock\n$suspend\n$log_out"
|
||||||
|
|
||||||
case "$(echo -e "$options" | $rofi_command -dmenu -selected-row 2)" in
|
case "$(echo -e "$options" | $rofi_command -dmenu)" in
|
||||||
" Shutdown")
|
" Shutdown")
|
||||||
systemctl poweroff
|
systemctl poweroff
|
||||||
;;
|
;;
|
||||||
|
@ -19,7 +19,7 @@ case "$(echo -e "$options" | $rofi_command -dmenu -selected-row 2)" in
|
||||||
systemctl reboot
|
systemctl reboot
|
||||||
;;
|
;;
|
||||||
" Lock")
|
" Lock")
|
||||||
zzz # TODO doesn't do anything
|
dm-tool lock
|
||||||
;;
|
;;
|
||||||
"鈴 Sleep")
|
"鈴 Sleep")
|
||||||
dbus-send --print-reply --dest=org.mpris.MediaPlayer2.spotify /org/mpris/MediaPlayer2 org.mpris.MediaPlayer2.Player.Pause
|
dbus-send --print-reply --dest=org.mpris.MediaPlayer2.spotify /org/mpris/MediaPlayer2 org.mpris.MediaPlayer2.Player.Pause
|
||||||
|
|
|
@ -1,2 +1,3 @@
|
||||||
#!/usr/bin/env sh
|
#!/usr/bin/env sh
|
||||||
scrot ~/screenshots/%b%d::%H%M%S.png;
|
scrot ~/screenshots/%b%d::%H%M%S.png;
|
||||||
|
xclip -i < ~/screenshots/%b%d::%H%M%S.png;
|
||||||
|
|
|
@ -65,6 +65,7 @@ in
|
||||||
xclip
|
xclip
|
||||||
xdotool
|
xdotool
|
||||||
rofi
|
rofi
|
||||||
|
rofimoji
|
||||||
obs-studio
|
obs-studio
|
||||||
lightdm
|
lightdm
|
||||||
dunst
|
dunst
|
||||||
|
@ -73,6 +74,9 @@ in
|
||||||
pulseSupport = true;
|
pulseSupport = true;
|
||||||
nlSupport = true;
|
nlSupport = true;
|
||||||
})
|
})
|
||||||
|
papirus-icon-theme
|
||||||
|
calendar-cli
|
||||||
|
wyrd
|
||||||
];
|
];
|
||||||
|
|
||||||
|
|
||||||
|
@ -141,8 +145,18 @@ in
|
||||||
*.color239: #565761
|
*.color239: #565761
|
||||||
*.color240: #6272a4
|
*.color240: #6272a4
|
||||||
*.color241: #b6b6b2
|
*.color241: #b6b6b2
|
||||||
xsetroot -cursor_name left_ptr
|
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
|
# hotplug
|
||||||
|
connect() {
|
||||||
|
xrandr --output HDMI-2 --same-as eDP-1
|
||||||
|
}
|
||||||
|
|
||||||
|
disconnect() {
|
||||||
|
xrandr --output HDMI-2 --off
|
||||||
|
}
|
||||||
|
|
||||||
|
xrandr | grep "HDMI-2 connected" &>>/dev/null && connect || disconnect
|
||||||
'';
|
'';
|
||||||
lightdm.enable = true;
|
lightdm.enable = true;
|
||||||
lightdm.greeters.mini.enable = true;
|
lightdm.greeters.mini.enable = true;
|
||||||
|
@ -153,6 +167,7 @@ in
|
||||||
password-background-color = "#1E2029"
|
password-background-color = "#1E2029"
|
||||||
window-color = "#181a23"
|
window-color = "#181a23"
|
||||||
border-color = "#181a23"
|
border-color = "#181a23"
|
||||||
|
active-monitor=1
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
windowManager.bspwm.enable = true;
|
windowManager.bspwm.enable = true;
|
||||||
|
@ -169,16 +184,24 @@ in
|
||||||
siji
|
siji
|
||||||
font-awesome-ttf
|
font-awesome-ttf
|
||||||
proggyfonts
|
proggyfonts
|
||||||
(nerdfonts.override { fonts = [ "FiraCode" "DroidSansMono" ]; })
|
(nerdfonts.override { fonts = [ "FiraCode" "DroidSansMono" "Iosevka" ]; })
|
||||||
];
|
];
|
||||||
|
|
||||||
home-manager.users.anish = {
|
home-manager.users.anish = {
|
||||||
|
xsession = {
|
||||||
|
enable = true;
|
||||||
|
pointerCursor = {
|
||||||
|
package = pkgs.capitaine-cursors;
|
||||||
|
name = "capitaine-cursors";
|
||||||
|
};
|
||||||
|
};
|
||||||
# Install themes
|
# Install themes
|
||||||
home.packages = with pkgs; [
|
home.packages = with pkgs; [
|
||||||
ayu-theme-gtk
|
ayu-theme-gtk
|
||||||
dracula-theme
|
dracula-theme
|
||||||
capitaine-cursors
|
capitaine-cursors
|
||||||
paper-icon-theme
|
paper-icon-theme
|
||||||
|
papirus-icon-theme
|
||||||
libsForQt5.qtstyleplugin-kvantum
|
libsForQt5.qtstyleplugin-kvantum
|
||||||
qt5ct
|
qt5ct
|
||||||
gtk-engine-murrine
|
gtk-engine-murrine
|
||||||
|
@ -186,8 +209,6 @@ in
|
||||||
];
|
];
|
||||||
|
|
||||||
xresources.properties = {
|
xresources.properties = {
|
||||||
"Xcursor.theme" = "Paper";
|
|
||||||
#"Xcursor.size"= 64;
|
|
||||||
"*.foreground" = "#95E6CB";
|
"*.foreground" = "#95E6CB";
|
||||||
"*.background" = "#1F2430";
|
"*.background" = "#1F2430";
|
||||||
"*.cursorColor" = "#BAE67E";
|
"*.cursorColor" = "#BAE67E";
|
||||||
|
@ -259,6 +280,7 @@ in
|
||||||
".local/bin/passmenu".source = ./bin/passmenu;
|
".local/bin/passmenu".source = ./bin/passmenu;
|
||||||
".local/bin/powermenu".source = ./bin/powermenu;
|
".local/bin/powermenu".source = ./bin/powermenu;
|
||||||
".local/bin/screenshot".source = ./bin/screenshot;
|
".local/bin/screenshot".source = ./bin/screenshot;
|
||||||
|
# ".local/bin/hotplug-monitor.sh".source = ./bin/hotplug-monitor.sh;
|
||||||
};
|
};
|
||||||
|
|
||||||
qt = {
|
qt = {
|
||||||
|
|
|
@ -1,100 +1,136 @@
|
||||||
[colors]
|
[colors]
|
||||||
black = ${xrdb:color0}
|
|
||||||
bblack = ${xrdb:color8}
|
|
||||||
red = ${xrdb:color1}
|
|
||||||
bred = ${xrdb:color9}
|
|
||||||
green = ${xrdb:color2}
|
|
||||||
bgreen = ${xrdb:color10}
|
|
||||||
yellow = ${xrdb:color3}
|
|
||||||
byellow = ${xrdb:color11}
|
|
||||||
blue = ${xrdb:color4}
|
|
||||||
bblue = ${xrdb:color12}
|
|
||||||
magenta = ${xrdb:color5}
|
|
||||||
bmagenta = ${xrdb:color13}
|
|
||||||
cyan = ${xrdb:color6}
|
|
||||||
bcyan = ${xrdb:color14}
|
|
||||||
white = ${xrdb:color7}
|
|
||||||
bwhite = ${xrdb:color15}
|
|
||||||
|
|
||||||
bg = ${xrdb:background}
|
yellow = #ffd580
|
||||||
fg = ${colors.magenta}
|
orange = #fe8019
|
||||||
|
blue = #73d0ff
|
||||||
|
green = #bae67e
|
||||||
|
red = #ff3333
|
||||||
|
bg = #1f2430
|
||||||
|
fg = #bfbab0
|
||||||
|
icons = #bae67e
|
||||||
|
cyan = #95e6cb
|
||||||
|
text = ${xrdb:color2}
|
||||||
|
unfocus = ${xrdb:color1}
|
||||||
|
accent = #604c7e
|
||||||
|
sky = #73d0ff
|
||||||
|
mauve = #bae67e
|
||||||
|
alert = ${colors.yellow}
|
||||||
|
|
||||||
bg-alt = #1E2029
|
bg-alt = #1E2029
|
||||||
fg-alt = #373844
|
fg-alt = #373844
|
||||||
bg-dark = #181a23
|
bg-dark = #181a23
|
||||||
|
|
||||||
alert = ${colors.yellow}
|
[bar/mybar]
|
||||||
accent = #604c7e
|
; monitor = VGA-1
|
||||||
|
|
||||||
|
override-redirect = false
|
||||||
|
|
||||||
[global/wm]
|
; Put the bar at the bottom of the screen
|
||||||
margin-top = 0
|
bottom = false
|
||||||
margin-bottom = 34
|
|
||||||
|
|
||||||
[bar/main]
|
; Prefer fixed center position for the `modules-center` block
|
||||||
monitor = ${env:MONITOR}
|
|
||||||
monitor-strict = true
|
|
||||||
enable-ipc = true
|
|
||||||
wm-restack = bspwm
|
|
||||||
# REQUIRED to move the window with hideit.sh
|
|
||||||
override-redirect = true
|
|
||||||
fixed-center = true
|
fixed-center = true
|
||||||
|
|
||||||
background = ${colors.bg}
|
|
||||||
foreground = ${colors.fg}
|
|
||||||
|
|
||||||
width = 100%
|
width = 100%
|
||||||
height = 34
|
height = 34
|
||||||
offset-x = 0
|
|
||||||
offset-y = 0
|
|
||||||
# bottom = true
|
|
||||||
|
|
||||||
overline-size = 0
|
offset-x =
|
||||||
overline-color = #f00
|
offset-y =
|
||||||
underline-size = 0
|
|
||||||
underline-color = #00f
|
|
||||||
|
|
||||||
border-bottom-size = 0
|
; Background ARGB color (e.g. #f00, #ff992a, #ddff1023)
|
||||||
border-top-size = 1
|
background = ${colors.bg}
|
||||||
border-color = ${colors.bg-dark}
|
|
||||||
|
|
||||||
padding-left = 2
|
; Foreground ARGB color (e.g. #f00, #ff992a, #ddff1023)
|
||||||
padding-right = 2
|
foreground = ${colors.fg}
|
||||||
module-margin-left = 0
|
|
||||||
module-margin-right = 0
|
|
||||||
|
|
||||||
font-0 = "Fira Code:pixelsize=9;2"
|
line-size = 0
|
||||||
font-1 = "Wuncon Siji:pixelsize=12;2"
|
line-color = #fff
|
||||||
font-2 = "Siji:pixelsize=10;2"
|
|
||||||
|
|
||||||
; modules-left = volume pad cpu memory pad pkg mail
|
; Number of spaces to add at the beginning/end of the bar
|
||||||
modules-left = pulseaudio pad cpu memory pad fs
|
; Individual side values can be defined using:
|
||||||
modules-center = bspwm
|
; padding-{left,right}
|
||||||
modules-right = syncthing redshift wlan pad network-up pad network-down pad battery pad date
|
padding-right = 1
|
||||||
|
padding-left = 0
|
||||||
|
|
||||||
;tray-position = center
|
; Number of spaces to add before/after each module
|
||||||
;tray-padding = 2
|
; Individual side values can be defined using:
|
||||||
;tray-transparent = true
|
; module-margin-{left,right}
|
||||||
;tray-background = #0063ff
|
module-margin = 0
|
||||||
|
margin-bottom = 34
|
||||||
|
|
||||||
|
font-0 = "Iosevka Term:pixelsize=13;4"
|
||||||
|
font-1 = "Iosevka Term:pixelsize=6;1"
|
||||||
|
font-2 = "Fira Code:pixelsize=13;2"
|
||||||
|
font-3 = "Siji:pixelsize=8;2"
|
||||||
|
|
||||||
|
; Add module mpd for artist - title info
|
||||||
|
modules-left = bspwm sps volume
|
||||||
|
modules-center = title
|
||||||
|
modules-right = wireless-network sps battery sps memory sps cpu sps date
|
||||||
|
|
||||||
|
; The separator will be inserted between the output of each module
|
||||||
|
separator =
|
||||||
|
|
||||||
|
; This value is used to add extra spacing between elements
|
||||||
|
; @deprecated: This parameter will be removed in an upcoming version
|
||||||
|
spacing = 0
|
||||||
|
|
||||||
|
; Opacity value between 0.0 and 1.0 used on fade in/out
|
||||||
|
dim-value = 1.0
|
||||||
|
|
||||||
|
wm-name = bspwm
|
||||||
|
|
||||||
|
tray-position = right
|
||||||
|
|
||||||
|
; If true, the bar will not shift its
|
||||||
|
; contents when the tray changes
|
||||||
|
tray-detached = false
|
||||||
|
|
||||||
|
; Tray icon max size
|
||||||
|
tray-maxsize = 16
|
||||||
|
|
||||||
|
tray-background = ${colors.bg}
|
||||||
|
;offset defined as pixel value (e.g. 35) or percentage (e.g. 50%)
|
||||||
|
|
||||||
|
tray-offset-x = 0
|
||||||
|
tray-offset-y = 0
|
||||||
|
|
||||||
|
; Pad the sides of each tray icon
|
||||||
|
tray-padding = 0
|
||||||
|
|
||||||
|
; Scale factor for tray clients
|
||||||
|
tray-scale = 1.0
|
||||||
|
|
||||||
|
wm-restack = bspwm
|
||||||
|
|
||||||
|
dpi-x = 133
|
||||||
|
dpi-y = 133
|
||||||
|
|
||||||
|
enable-ipc = false
|
||||||
|
|
||||||
|
; Fallback click handlers that will be called if
|
||||||
|
; there's no matching module handler found.
|
||||||
|
|
||||||
[module/bspwm]
|
[module/bspwm]
|
||||||
type = internal/bspwm
|
type = internal/bspwm
|
||||||
pin-workspaces = true
|
pin-workspaces = true
|
||||||
enable-click = true
|
enable-click = true
|
||||||
|
|
||||||
# ws-icon-0 = 1;
|
ws-icon-0 = 1;%{T1}%{T-}
|
||||||
# ws-icon-1 = 2;
|
ws-icon-1 = 2;%{T1}%{T-}
|
||||||
# ws-icon-2 = 3;
|
ws-icon-2 = 3;%{T1}%{T-}
|
||||||
# ws-icon-3 = 4;
|
ws-icon-3 = 4;%{T1}%{T-}
|
||||||
# ws-icon-4 = 5;
|
ws-icon-4 = 5;%{T1}%{T-}
|
||||||
# ws-icon-5 = 6;
|
|
||||||
ws-icon-default =
|
ws-icon-default =
|
||||||
|
; fuzzy-match = true
|
||||||
|
|
||||||
format = <label-state> <label-mode>
|
format = <label-state> <label-mode>
|
||||||
label-padding = 1
|
label-padding = 1
|
||||||
|
label-foreground = ${colors.green}
|
||||||
|
|
||||||
label-focused = %icon%
|
label-focused = %icon%
|
||||||
label-focused-background = ${colors.bg-dark}
|
label-focused-background = ${colors.yellow}
|
||||||
label-focused-foreground = ${colors.fg}
|
label-focused-foreground = ${colors.bg}
|
||||||
# label-focused-underline = ${colors.magenta}
|
# label-focused-underline = ${colors.magenta}
|
||||||
; label-focused-foreground = ${xrdb:color2}
|
; label-focused-foreground = ${xrdb:color2}
|
||||||
label-focused-padding = 1
|
label-focused-padding = 1
|
||||||
|
@ -103,10 +139,11 @@ label-occupied = %icon%
|
||||||
label-occupied-foreground = ${colors.accent}
|
label-occupied-foreground = ${colors.accent}
|
||||||
label-occupied-padding = 1
|
label-occupied-padding = 1
|
||||||
|
|
||||||
; label-urgent = %icon%
|
label-urgent = %icon%
|
||||||
label-urgent-foreground = ${colors.alert}
|
label-urgent-foreground = ${colors.alert}
|
||||||
; label-urgent-background = ${colors.alert}
|
; label-urgent-background = ${colors.alert}
|
||||||
label-urgent-padding = 1
|
label-urgent-padding = 1
|
||||||
|
; label-urgent-font = 3
|
||||||
|
|
||||||
label-empty = %icon%
|
label-empty = %icon%
|
||||||
label-empty-foreground = ${colors.fg-alt}
|
label-empty-foreground = ${colors.fg-alt}
|
||||||
|
@ -114,272 +151,262 @@ label-empty-padding = 1
|
||||||
|
|
||||||
[module/date]
|
[module/date]
|
||||||
type = internal/date
|
type = internal/date
|
||||||
interval = 5
|
|
||||||
|
; Seconds to sleep between updates
|
||||||
|
interval = 1.0
|
||||||
|
|
||||||
|
; See "http://en.cppreference.com/w/cpp/io/manip/put_time" for details on how to format the date string
|
||||||
|
; NOTE: if you want to use syntax tags here you need to use %%{...}
|
||||||
|
date = %{T1}%{T-}%{T2} %d/%a%{T-}
|
||||||
|
|
||||||
|
; Optional time format
|
||||||
|
time = %{T2} %H:%M%{T-}
|
||||||
|
|
||||||
|
; if `date-alt` or `time-alt` is defined, clicking
|
||||||
|
; the module will toggle between formats
|
||||||
|
date-alt = %{T1}%{T-}%{T2} %a, %d %b %y%{T-}
|
||||||
|
time-alt = %{T2} %H:%M:%S%{T-}
|
||||||
|
|
||||||
label = %date%%time%
|
label = %date%%time%
|
||||||
date = %A, %h %d
|
label-font = 0
|
||||||
date-alt = %Y-%m-%d
|
label-foreground = ${colors.green}
|
||||||
time = %I:%M %p
|
|
||||||
time-alt = %H:%M:%S
|
|
||||||
format-prefix = ""
|
|
||||||
format-prefix-padding = 1
|
|
||||||
; format-prefix-background = ${colors.bg-alt}
|
|
||||||
format-prefix-foreground = ${colors.accent}
|
|
||||||
; format-underline = ${xrdb:color4}
|
|
||||||
|
|
||||||
[module/fs]
|
[module/wireless-network]
|
||||||
type = internal/fs
|
type = internal/network
|
||||||
mount-0 = /
|
interface = wlp3s0
|
||||||
mount-1 = /mnt/projects ; for desktops
|
|
||||||
mount-2 = /home ; for laptop
|
|
||||||
interval = 30
|
|
||||||
|
|
||||||
; Available tags:
|
label-connected = %essid%
|
||||||
; <label-mounted> (default)
|
label-connected-font = 2
|
||||||
; <bar-free>
|
format-connected = <ramp-signal><label-connected>
|
||||||
; <bar-used>
|
label-connected-foreground = #82b414
|
||||||
; <ramp-capacity>
|
|
||||||
format-mounted = "<bar-used>"
|
|
||||||
format-mounted-foreground = ${colors.accent}
|
|
||||||
; Available tokens:
|
|
||||||
; %mountpoint%
|
|
||||||
; %type%
|
|
||||||
; %fsname%
|
|
||||||
; %percentage_free%
|
|
||||||
; %percentage_used%
|
|
||||||
; %total%
|
|
||||||
; %free%
|
|
||||||
; %used%
|
|
||||||
; Default: %mountpoint% %percentage_free%%
|
|
||||||
|
|
||||||
; Available tags:
|
format-disconnected = <label-disconnected>
|
||||||
; <label-unmounted> (default)
|
label-disconnected = "睊"
|
||||||
format-unmounted =
|
label-disconnected-foreground = #f92672
|
||||||
label-unmounted =
|
label-disconnected-background = #99000000
|
||||||
label-unmounted-foreground = ${colors.fg-alt}
|
|
||||||
|
|
||||||
bar-used-indicator =
|
ramp-signal-foreground = #82b414
|
||||||
bar-used-width = 8
|
ramp-signal-0 = " "
|
||||||
bar-used-foreground-0 = ${colors.fg}
|
ramp-signal-1 = " "
|
||||||
bar-used-foreground-1 = ${colors.fg}
|
ramp-signal-2 = " "
|
||||||
bar-used-foreground-2 = ${colors.yellow}
|
ramp-signal-3 = " "
|
||||||
bar-used-foreground-3 = ${colors.alert}
|
ramp-signal-4 = " "
|
||||||
bar-used-foreground-4 = ${colors.alert}
|
ramp-signal-5 = " "
|
||||||
bar-used-fill = |
|
|
||||||
bar-used-empty = ¦
|
|
||||||
bar-used-empty-foreground = ${colors.fg-alt}
|
|
||||||
|
|
||||||
[module/xwindow]
|
|
||||||
type = internal/xwindow
|
|
||||||
label = %title:0:80:...%
|
|
||||||
label-padding-left = 2
|
|
||||||
|
|
||||||
; [module/mpd]
|
|
||||||
; type = internal/mpd
|
|
||||||
; host = /home/hlissner/.config/mpd/mpd.sock
|
|
||||||
;
|
|
||||||
; format-online = <label-song> <toggle>
|
|
||||||
; format-padding = 5
|
|
||||||
;
|
|
||||||
; label-song-maxlen = 45
|
|
||||||
; label-song-ellipsis = true
|
|
||||||
;
|
|
||||||
; icon-prev =
|
|
||||||
; icon-seekb =
|
|
||||||
; icon-stop =
|
|
||||||
; icon-play =
|
|
||||||
; icon-pause =
|
|
||||||
; icon-next =
|
|
||||||
; icon-seekf =
|
|
||||||
;
|
|
||||||
; icon-random =
|
|
||||||
; icon-repeat =
|
|
||||||
;
|
|
||||||
; toggle-on-foreground = ${colors.fg}
|
|
||||||
; toggle-off-foreground = #66
|
|
||||||
|
|
||||||
[module/cpu]
|
[module/cpu]
|
||||||
type = internal/cpu
|
type = internal/cpu
|
||||||
interval = 2
|
|
||||||
format = <bar-load>
|
|
||||||
format-prefix = ""
|
|
||||||
format-foreground = ${colors.accent}
|
|
||||||
; format-underline = #f90000
|
|
||||||
; label = %percentage%%
|
|
||||||
format-padding = 1
|
|
||||||
|
|
||||||
bar-load-indicator =
|
; Seconds to sleep between updates
|
||||||
bar-load-width = 8
|
; Default: 1
|
||||||
bar-load-foreground-0 = ${colors.fg}
|
interval = 0.5
|
||||||
bar-load-foreground-1 = ${colors.fg}
|
|
||||||
bar-load-foreground-2 = ${colors.yellow}
|
label = %{T1}%{T-}%{T2} %percentage:2%%%{T-}
|
||||||
bar-load-foreground-3 = ${colors.alert}
|
|
||||||
bar-load-foreground-4 = ${colors.alert}
|
label-foreground = ${colors.cyan}
|
||||||
bar-load-fill = |
|
|
||||||
bar-load-empty = ¦
|
|
||||||
bar-load-empty-foreground = ${colors.fg-alt}
|
|
||||||
|
|
||||||
[module/memory]
|
[module/memory]
|
||||||
type = internal/memory
|
type = internal/memory
|
||||||
interval = 3
|
|
||||||
format = <bar-used>
|
|
||||||
format-prefix = ""
|
|
||||||
format-prefix-foreground = ${colors.accent}
|
|
||||||
; format-underline = #4bffdc
|
|
||||||
; label = %percentage_used%%
|
|
||||||
format-padding-left = 1
|
|
||||||
|
|
||||||
; Only applies if <bar-used> is used
|
; Seconds to sleep between updates
|
||||||
bar-used-indicator =
|
; Default: 1
|
||||||
bar-used-width = 8
|
interval = 0.5
|
||||||
bar-used-foreground-0 = ${colors.fg}
|
format = <label>
|
||||||
bar-used-foreground-1 = ${colors.fg}
|
|
||||||
bar-used-foreground-2 = ${colors.yellow}
|
|
||||||
bar-used-foreground-3 = ${colors.alert}
|
|
||||||
bar-used-foreground-4 = ${colors.alert}
|
|
||||||
bar-used-fill = |
|
|
||||||
bar-used-empty = ¦
|
|
||||||
bar-used-empty-foreground = ${colors.fg-alt}
|
|
||||||
|
|
||||||
[module/wlan]
|
; Available tokens:
|
||||||
|
; %percentage_used% (default)
|
||||||
|
; %percentage_free%
|
||||||
|
; %gb_used%
|
||||||
|
; %gb_free%
|
||||||
|
; %gb_total%
|
||||||
|
; %mb_used%
|
||||||
|
; %mb_free%
|
||||||
|
; %mb_total%
|
||||||
|
; %percentage_swap_used%
|
||||||
|
; %percentage_swap_free%
|
||||||
|
; %mb_swap_total%
|
||||||
|
; %mb_swap_free%
|
||||||
|
; %mb_swap_used%
|
||||||
|
; %gb_swap_total%
|
||||||
|
; %gb_swap_free%
|
||||||
|
; %gb_swap_used%
|
||||||
|
|
||||||
|
label = %{T1}%{T-}%{T2} %gb_used%%{T-}
|
||||||
|
|
||||||
|
label-foreground = ${colors.cyan}
|
||||||
|
|
||||||
|
[module/mpd]
|
||||||
|
type = internal/mpd
|
||||||
|
|
||||||
|
host = 0.0.0.0
|
||||||
|
port = 6600
|
||||||
|
|
||||||
|
interval = 2
|
||||||
|
|
||||||
|
format-online = <label-song>
|
||||||
|
format-online-background = ${colors.bg}
|
||||||
|
format-online-foreground = ${colors.yellow}
|
||||||
|
#format-online-padding = 20
|
||||||
|
|
||||||
|
label-song = %{T2}%artist% - %title%%{T-}
|
||||||
|
label-song-maxlen = 55
|
||||||
|
label-song-ellipsis = true
|
||||||
|
|
||||||
|
label-offline = "MPD is offline"
|
||||||
|
|
||||||
|
[module/mpd_i]
|
||||||
|
type = internal/mpd
|
||||||
|
|
||||||
|
interval = 2
|
||||||
|
|
||||||
|
format-online = <icon-prev> <toggle> <icon-next>
|
||||||
|
format-online-background = ${colors.bg}
|
||||||
|
format-online-foreground = ${colors.yellow}
|
||||||
|
#format-online-padding = 2
|
||||||
|
|
||||||
|
label-offline = "MPD is offline"
|
||||||
|
|
||||||
|
; Only applies if <icon-X> is used
|
||||||
|
icon-play = %{T1}奈%{T-}
|
||||||
|
icon-pause = %{T1}%{T-}
|
||||||
|
icon-stop = %{T1}%{T-}
|
||||||
|
icon-prev = %{T1}ﭣ%{T-}
|
||||||
|
icon-next = %{T1}ﭡ%{T-}
|
||||||
|
|
||||||
|
;An empty module used to add 1 unit spacings whenever needed
|
||||||
|
[module/sps]
|
||||||
|
type = custom/text
|
||||||
|
content = " "
|
||||||
|
content-padding = 0
|
||||||
|
|
||||||
|
[module/network]
|
||||||
type = internal/network
|
type = internal/network
|
||||||
interface = ${env:WLP:wlp3s0}
|
interface = wlp3s0
|
||||||
interval = 3.0
|
;enp0s29u1u2
|
||||||
|
interval = 1.0
|
||||||
|
label-connected = "%{T1}龍%{T-}%{T2} %downspeed% | %upspeed%%{T-}"
|
||||||
|
label-disconnected = "%{T2}0/0%{T-}"
|
||||||
|
label-connected-background = ${colors.bg}
|
||||||
|
label-connected-foreground = ${colors.blue}
|
||||||
|
label-disconnected-foreground = ${colors.red}
|
||||||
|
|
||||||
format-connected = <ramp-signal>
|
[module/title]
|
||||||
format-disconnected =
|
type = internal/xwindow
|
||||||
format-disconnected-foreground =
|
; Available tags:
|
||||||
|
; <label> (default)
|
||||||
|
format = <label>
|
||||||
|
format-background = ${colors.bg}
|
||||||
|
format-foreground = ${colors.green}
|
||||||
|
format-padding = 4
|
||||||
|
|
||||||
; label-connected =
|
; Available tokens:
|
||||||
; label-disconnected = !
|
; %title%
|
||||||
; label-disconnected-foreground = ${colors.red}
|
; Default: %title%
|
||||||
|
label = "%{T1}类%{T-}%{T2} %title%%{T-}"
|
||||||
|
label-maxlen = 65
|
||||||
|
|
||||||
ramp-signal-0 =
|
; Used instead of label when there is no window title
|
||||||
ramp-signal-0-foreground = ${colors.yellow}
|
; Available tokens:
|
||||||
ramp-signal-1 =
|
; None
|
||||||
ramp-signal-1-foreground = ${colors.yellow}
|
label-empty =%{T2}Empty%{T-}
|
||||||
ramp-signal-2 =
|
label-empty-foreground = #707880
|
||||||
ramp-signal-2-foreground = ${colors.yellow}
|
|
||||||
ramp-signal-3 =
|
|
||||||
ramp-signal-3-foreground = ${colors.accent}
|
|
||||||
ramp-signal-4 =
|
|
||||||
ramp-signal-4-foreground = ${colors.fg}
|
|
||||||
|
|
||||||
[module/network-up]
|
[module/volume]
|
||||||
type = internal/network
|
|
||||||
interface = ${env:LAN:eno1}
|
|
||||||
interval = 4.0
|
|
||||||
label-connected = "%upspeed%"
|
|
||||||
format-connected-prefix = " "
|
|
||||||
format-connected-prefix-foreground = ${colors.accent}
|
|
||||||
format-connected-foreground = ${colors.fg}
|
|
||||||
format-connected-background =
|
|
||||||
format-connected-underline =
|
|
||||||
format-disconnected-prefix = " "
|
|
||||||
format-disconnected-prefix-foreground = ${colors.alert}
|
|
||||||
format-disconnected-foreground = ${colors.alert}
|
|
||||||
|
|
||||||
[module/network-down]
|
|
||||||
type = internal/network
|
|
||||||
interface = ${env:LAN:eno1}
|
|
||||||
interval = 4.0
|
|
||||||
label-connected = "%downspeed%"
|
|
||||||
format-connected-prefix = " "
|
|
||||||
format-connected-prefix-foreground = ${colors.accent}
|
|
||||||
format-connected-foreground = ${colors.fg}
|
|
||||||
format-connected-background =
|
|
||||||
format-connected-underline =
|
|
||||||
format-disconnected-prefix = " "
|
|
||||||
format-disconnected-prefix-foreground = ${colors.alert}
|
|
||||||
format-disconnected-foreground = ${colors.alert}
|
|
||||||
|
|
||||||
[module/pulseaudio]
|
|
||||||
type = internal/pulseaudio
|
type = internal/pulseaudio
|
||||||
|
|
||||||
; format-volume = <label-volume> <bar-volume>
|
use-ui-max = false
|
||||||
format-volume = <ramp-volume> <bar-volume>
|
|
||||||
; label-volume = " "
|
|
||||||
label-volume-foreground = ${colors.accent}
|
|
||||||
|
|
||||||
; format-muted-prefix = " "
|
interval = 5
|
||||||
format-muted-foreground = ${colors.alert}
|
|
||||||
label-muted =
|
format-volume = <ramp-volume><bar-volume>
|
||||||
|
|
||||||
|
format-muted = <label-muted>
|
||||||
|
format-muted-prefix = " "
|
||||||
|
format-muted-prefix-font = 2
|
||||||
|
format-muted-prefix-foreground = ${colors.mauve}
|
||||||
|
|
||||||
|
label-volume = "%percentage%% "
|
||||||
|
label-muted = "Mute"
|
||||||
|
|
||||||
|
label-volume-foreground = ${colors.mauve}
|
||||||
|
label-muted-foreground = ${colors.mauve}
|
||||||
|
|
||||||
bar-volume-width = 8
|
bar-volume-width = 8
|
||||||
# bar-volume-foreground-0 = ${colors.magenta}
|
|
||||||
# bar-volume-foreground-1 = ${colors.magenta}
|
|
||||||
# bar-volume-foreground-2 = ${colors.magenta}
|
|
||||||
# bar-volume-foreground-3 = ${colors.magenta}
|
|
||||||
# bar-volume-foreground-4 = ${colors.magenta}
|
|
||||||
# bar-volume-foreground-5 = ${colors.magenta}
|
|
||||||
# bar-volume-foreground-6 = ${colors.magenta}
|
|
||||||
bar-volume-gradient = false
|
bar-volume-gradient = false
|
||||||
bar-volume-indicator = |
|
bar-volume-indicator = |
|
||||||
bar-volume-indicator-font = 1
|
bar-volume-indicator-font = 2
|
||||||
bar-volume-indicator-foreground = #ff
|
bar-volume-indicator-foreground = ${colors.mauve}
|
||||||
bar-volume-fill = ─
|
bar-volume-fill = ─
|
||||||
bar-volume-fill-font = 1
|
bar-volume-fill-font = 2
|
||||||
|
bar-volume-fill-foreground = ${colors.mauve}
|
||||||
bar-volume-empty = ─
|
bar-volume-empty = ─
|
||||||
bar-volume-empty-font = 1
|
bar-volume-empty-font = 2
|
||||||
bar-volume-empty-foreground = ${colors.fg-alt}
|
bar-volume-empty-foreground = ${colors.fg-alt}
|
||||||
|
|
||||||
; Only applies if <ramp-volume> is used
|
ramp-volume-0 = " "
|
||||||
ramp-volume-0 =
|
ramp-volume-1 = " "
|
||||||
ramp-volume-1 =
|
ramp-volume-2 = " "
|
||||||
ramp-volume-2 =
|
ramp-volume-3 = " "
|
||||||
|
ramp-volume-4 = " "
|
||||||
|
ramp-volume-5 = " "
|
||||||
|
ramp-volume-6 = " "
|
||||||
|
ramp-volume-7 = " "
|
||||||
|
ramp-volume-8 = " "
|
||||||
|
ramp-volume-9 = " "
|
||||||
|
ramp-volume-font = 1
|
||||||
|
ramp-volume-foreground = ${colors.mauve}
|
||||||
|
|
||||||
|
ramp-headphones-0 =
|
||||||
|
ramp-headphones-1 =
|
||||||
|
|
||||||
|
;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
|
||||||
|
|
||||||
[module/battery]
|
[module/battery]
|
||||||
type = internal/battery
|
type = internal/battery
|
||||||
|
|
||||||
|
full-at = 99
|
||||||
|
|
||||||
|
adapter = ACAD
|
||||||
battery = BAT0
|
battery = BAT0
|
||||||
adapter = ADP1
|
|
||||||
full-at = 98
|
poll-interval = 2
|
||||||
|
time-format = %H:%M
|
||||||
|
|
||||||
format-charging = <animation-charging><label-charging>
|
format-charging = <animation-charging><label-charging>
|
||||||
format-charging-underline = #ffb52a
|
format-charging-prefix =
|
||||||
|
|
||||||
format-discharging = <ramp-capacity><label-discharging>
|
format-discharging = <ramp-capacity><label-discharging>
|
||||||
format-discharging-underline = ${self.format-charging-underline}
|
|
||||||
|
|
||||||
format-full-prefix = " "
|
format-full = <label-full>
|
||||||
format-full-prefix-foreground = ${colors.fg-alt}
|
format-full-prefix = " "
|
||||||
format-full-underline = ${self.format-charging-underline}
|
format-full-prefix-font = 1
|
||||||
|
format-full-prefix-foreground = ${colors.sky}
|
||||||
|
|
||||||
ramp-capacity-0 =
|
label-charging = "%percentage%% "
|
||||||
ramp-capacity-1 =
|
label-discharging = "%percentage%% "
|
||||||
ramp-capacity-2 =
|
label-full = "%percentage%% "
|
||||||
ramp-capacity-0-foreground = ${colors.red}
|
|
||||||
ramp-capacity-1-foreground = #575864
|
|
||||||
ramp-capacity-2-foreground = ${colors.fg-alt}
|
|
||||||
|
|
||||||
animation-charging-0 =
|
label-charging-foreground = ${colors.sky}
|
||||||
animation-charging-1 =
|
label-discharging-foreground = ${colors.sky}
|
||||||
animation-charging-2 =
|
label-charging-font = 2
|
||||||
animation-charging-framerate = 1000
|
label-discharging-font = 2
|
||||||
animation-charging-foreground = ${colors.fg}
|
label-full-foreground = ${colors.sky}
|
||||||
|
label-full-font = 2
|
||||||
|
|
||||||
|
ramp-capacity-0 = " "
|
||||||
|
ramp-capacity-1 = " "
|
||||||
|
ramp-capacity-2 = " "
|
||||||
|
ramp-capacity-3 = " "
|
||||||
|
ramp-capacity-4 = " "
|
||||||
|
ramp-capacity-font =3
|
||||||
|
ramp-capacity-foreground = ${colors.sky}
|
||||||
|
|
||||||
;=====================================================
|
animation-charging-0 = " "
|
||||||
; Custom scripts
|
animation-charging-1 = " "
|
||||||
;=====================================================
|
animation-charging-2 = " "
|
||||||
|
animation-charging-3 = " "
|
||||||
|
animation-charging-4 = " "
|
||||||
|
animation-charging-font =3
|
||||||
|
animation-charging-foreground = ${colors.sky}
|
||||||
|
animation-charging-framerate = 750
|
||||||
|
|
||||||
[module/pad]
|
;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
|
||||||
type = custom/text
|
|
||||||
content = " "
|
|
||||||
content-foreground = ${colors.fg-alt}
|
|
||||||
|
|
||||||
[module/redshift]
|
|
||||||
type = custom/script
|
|
||||||
exec = ~/.config/polybar/modules/redshift
|
|
||||||
exec-if = pgrep -x redshift
|
|
||||||
interval = 60
|
|
||||||
format-padding = 1
|
|
||||||
|
|
||||||
[module/syncthing]
|
|
||||||
type = custom/script
|
|
||||||
exec = echo 1
|
|
||||||
exec-if = systemctl is-active syncthing
|
|
||||||
format = ""
|
|
||||||
format-foreground = ${colors.fg}
|
|
||||||
interval = 30
|
|
||||||
|
|
||||||
; vim:ft=dosini
|
|
||||||
|
|
387
users/profiles/desktop/polybar/config.bak
Normal file
387
users/profiles/desktop/polybar/config.bak
Normal file
|
@ -0,0 +1,387 @@
|
||||||
|
[colors]
|
||||||
|
black = ${xrdb:color0}
|
||||||
|
bblack = ${xrdb:color8}
|
||||||
|
red = ${xrdb:color1}
|
||||||
|
bred = ${xrdb:color9}
|
||||||
|
green = ${xrdb:color2}
|
||||||
|
bgreen = ${xrdb:color10}
|
||||||
|
yellow = ${xrdb:color3}
|
||||||
|
byellow = ${xrdb:color11}
|
||||||
|
blue = ${xrdb:color4}
|
||||||
|
bblue = ${xrdb:color12}
|
||||||
|
magenta = ${xrdb:color5}
|
||||||
|
bmagenta = ${xrdb:color13}
|
||||||
|
cyan = ${xrdb:color6}
|
||||||
|
bcyan = ${xrdb:color14}
|
||||||
|
white = ${xrdb:color7}
|
||||||
|
bwhite = ${xrdb:color15}
|
||||||
|
|
||||||
|
bg = ${xrdb:background}
|
||||||
|
fg = ${colors.magenta}
|
||||||
|
bg-alt = #1E2029
|
||||||
|
fg-alt = #373844
|
||||||
|
bg-dark = #181a23
|
||||||
|
|
||||||
|
alert = ${colors.yellow}
|
||||||
|
accent = #604c7e
|
||||||
|
|
||||||
|
|
||||||
|
[global/wm]
|
||||||
|
margin-top = 0
|
||||||
|
margin-bottom = 34
|
||||||
|
|
||||||
|
[bar/main]
|
||||||
|
monitor = ${env:MONITOR}
|
||||||
|
monitor-strict = true
|
||||||
|
enable-ipc = true
|
||||||
|
wm-restack = bspwm
|
||||||
|
# REQUIRED to move the window with hideit.sh
|
||||||
|
override-redirect = true
|
||||||
|
fixed-center = true
|
||||||
|
|
||||||
|
background = ${colors.bg}
|
||||||
|
foreground = ${colors.fg}
|
||||||
|
|
||||||
|
width = 100%
|
||||||
|
height = 34
|
||||||
|
offset-x = 0
|
||||||
|
offset-y = 0
|
||||||
|
# bottom = true
|
||||||
|
|
||||||
|
overline-size = 0
|
||||||
|
overline-color = #f00
|
||||||
|
underline-size = 0
|
||||||
|
underline-color = #00f
|
||||||
|
|
||||||
|
border-bottom-size = 0
|
||||||
|
border-top-size = 1
|
||||||
|
border-color = ${colors.bg-dark}
|
||||||
|
|
||||||
|
padding-left = 2
|
||||||
|
padding-right = 2
|
||||||
|
module-margin-left = 0
|
||||||
|
module-margin-right = 0
|
||||||
|
|
||||||
|
font-0 = "Fira Code:pixelsize=13;2"
|
||||||
|
font-1 = "Wuncon Siji:pixelsize=16;2"
|
||||||
|
font-2 = "Siji:pixelsize=10;2"
|
||||||
|
|
||||||
|
; modules-left = volume pad cpu memory pad pkg mail
|
||||||
|
modules-left = pulseaudio pad cpu memory pad fs
|
||||||
|
modules-center = bspwm
|
||||||
|
modules-right = syncthing redshift wlan pad network-up pad network-down pad battery pad date
|
||||||
|
|
||||||
|
;tray-position = center
|
||||||
|
;tray-padding = 2
|
||||||
|
;tray-transparent = true
|
||||||
|
;tray-background = #0063ff
|
||||||
|
|
||||||
|
[module/bspwm]
|
||||||
|
type = internal/bspwm
|
||||||
|
pin-workspaces = true
|
||||||
|
enable-click = true
|
||||||
|
|
||||||
|
# ws-icon-0 = 1;
|
||||||
|
# ws-icon-1 = 2;
|
||||||
|
# ws-icon-2 = 3;
|
||||||
|
# ws-icon-3 = 4;
|
||||||
|
# ws-icon-4 = 5;
|
||||||
|
# ws-icon-5 = 6;
|
||||||
|
ws-icon-default =
|
||||||
|
fuzzy-match = true
|
||||||
|
|
||||||
|
format = <label-state> <label-mode>
|
||||||
|
label-padding = 1
|
||||||
|
|
||||||
|
label-focused = %icon%
|
||||||
|
label-focused-background = ${colors.bg-dark}
|
||||||
|
label-focused-foreground = ${colors.fg}
|
||||||
|
# label-focused-underline = ${colors.magenta}
|
||||||
|
; label-focused-foreground = ${xrdb:color2}
|
||||||
|
label-focused-padding = 1
|
||||||
|
|
||||||
|
label-occupied = %icon%
|
||||||
|
label-occupied-foreground = ${colors.accent}
|
||||||
|
label-occupied-padding = 1
|
||||||
|
|
||||||
|
; label-urgent = %icon%
|
||||||
|
label-urgent-foreground = ${colors.alert}
|
||||||
|
; label-urgent-background = ${colors.alert}
|
||||||
|
label-urgent-padding = 1
|
||||||
|
|
||||||
|
label-empty = %icon%
|
||||||
|
label-empty-foreground = ${colors.fg-alt}
|
||||||
|
label-empty-padding = 1
|
||||||
|
|
||||||
|
[module/date]
|
||||||
|
type = internal/date
|
||||||
|
interval = 5
|
||||||
|
|
||||||
|
label = %date% %time%
|
||||||
|
date = %A, %h %d
|
||||||
|
date-alt = %Y-%m-%d
|
||||||
|
time = %I:%M %p
|
||||||
|
time-alt = %H:%M:%S
|
||||||
|
format-prefix = ""
|
||||||
|
format-prefix-padding = 1
|
||||||
|
; format-prefix-background = ${colors.bg-alt}
|
||||||
|
format-prefix-foreground = ${colors.accent}
|
||||||
|
; format-underline = ${xrdb:color4}
|
||||||
|
|
||||||
|
[module/fs]
|
||||||
|
type = internal/fs
|
||||||
|
mount-0 = /
|
||||||
|
# mount-1 = /mnt/projects ; for desktops
|
||||||
|
mount-2 = /home/anish
|
||||||
|
interval = 30
|
||||||
|
|
||||||
|
; Available tags:
|
||||||
|
; <label-mounted> (default)
|
||||||
|
; <bar-free>
|
||||||
|
; <bar-used>
|
||||||
|
; <ramp-capacity>
|
||||||
|
format-mounted = "<bar-used>"
|
||||||
|
format-mounted-foreground = ${colors.accent}
|
||||||
|
; Available tokens:
|
||||||
|
; %mountpoint%
|
||||||
|
; %type%
|
||||||
|
; %fsname%
|
||||||
|
; %percentage_free%
|
||||||
|
; %percentage_used%
|
||||||
|
; %total%
|
||||||
|
; %free%
|
||||||
|
; %used%
|
||||||
|
; Default: %mountpoint% %percentage_free%%
|
||||||
|
|
||||||
|
; Available tags:
|
||||||
|
; <label-unmounted> (default)
|
||||||
|
format-unmounted =
|
||||||
|
label-unmounted =
|
||||||
|
label-unmounted-foreground = ${colors.fg-alt}
|
||||||
|
|
||||||
|
bar-used-indicator =
|
||||||
|
bar-used-width = 8
|
||||||
|
bar-used-foreground-0 = ${colors.fg}
|
||||||
|
bar-used-foreground-1 = ${colors.fg}
|
||||||
|
bar-used-foreground-2 = ${colors.yellow}
|
||||||
|
bar-used-foreground-3 = ${colors.alert}
|
||||||
|
bar-used-foreground-4 = ${colors.alert}
|
||||||
|
bar-used-fill = |
|
||||||
|
bar-used-empty = ¦
|
||||||
|
bar-used-empty-foreground = ${colors.fg-alt}
|
||||||
|
|
||||||
|
[module/xwindow]
|
||||||
|
type = internal/xwindow
|
||||||
|
label = %title:0:80:...%
|
||||||
|
label-padding-left = 2
|
||||||
|
|
||||||
|
; [module/mpd]
|
||||||
|
; type = internal/mpd
|
||||||
|
; host = /home/hlissner/.config/mpd/mpd.sock
|
||||||
|
;
|
||||||
|
; format-online = <label-song> <toggle>
|
||||||
|
; format-padding = 5
|
||||||
|
;
|
||||||
|
; label-song-maxlen = 45
|
||||||
|
; label-song-ellipsis = true
|
||||||
|
;
|
||||||
|
; icon-prev =
|
||||||
|
; icon-seekb =
|
||||||
|
; icon-stop =
|
||||||
|
; icon-play =
|
||||||
|
; icon-pause =
|
||||||
|
; icon-next =
|
||||||
|
; icon-seekf =
|
||||||
|
;
|
||||||
|
; icon-random =
|
||||||
|
; icon-repeat =
|
||||||
|
;
|
||||||
|
; toggle-on-foreground = ${colors.fg}
|
||||||
|
; toggle-off-foreground = #66
|
||||||
|
|
||||||
|
[module/cpu]
|
||||||
|
type = internal/cpu
|
||||||
|
interval = 2
|
||||||
|
format = <bar-load>
|
||||||
|
format-prefix = ""
|
||||||
|
format-foreground = ${colors.accent}
|
||||||
|
; format-underline = #f90000
|
||||||
|
; label = %percentage%%
|
||||||
|
format-padding = 1
|
||||||
|
|
||||||
|
bar-load-indicator =
|
||||||
|
bar-load-width = 8
|
||||||
|
bar-load-foreground-0 = ${colors.fg}
|
||||||
|
bar-load-foreground-1 = ${colors.fg}
|
||||||
|
bar-load-foreground-2 = ${colors.yellow}
|
||||||
|
bar-load-foreground-3 = ${colors.alert}
|
||||||
|
bar-load-foreground-4 = ${colors.alert}
|
||||||
|
bar-load-fill = |
|
||||||
|
bar-load-empty = ¦
|
||||||
|
bar-load-empty-foreground = ${colors.fg-alt}
|
||||||
|
|
||||||
|
[module/memory]
|
||||||
|
type = internal/memory
|
||||||
|
interval = 3
|
||||||
|
format = <bar-used>
|
||||||
|
format-prefix = ""
|
||||||
|
format-prefix-foreground = ${colors.accent}
|
||||||
|
; format-underline = #4bffdc
|
||||||
|
; label = %percentage_used%%
|
||||||
|
format-padding-left = 1
|
||||||
|
|
||||||
|
; Only applies if <bar-used> is used
|
||||||
|
bar-used-indicator =
|
||||||
|
bar-used-width = 8
|
||||||
|
bar-used-foreground-0 = ${colors.fg}
|
||||||
|
bar-used-foreground-1 = ${colors.fg}
|
||||||
|
bar-used-foreground-2 = ${colors.yellow}
|
||||||
|
bar-used-foreground-3 = ${colors.alert}
|
||||||
|
bar-used-foreground-4 = ${colors.alert}
|
||||||
|
bar-used-fill = |
|
||||||
|
bar-used-empty = ¦
|
||||||
|
bar-used-empty-foreground = ${colors.fg-alt}
|
||||||
|
|
||||||
|
[module/wlan]
|
||||||
|
type = internal/network
|
||||||
|
interface = ${env:WLP:wlp3s0}
|
||||||
|
interval = 3.0
|
||||||
|
|
||||||
|
format-connected = <ramp-signal>
|
||||||
|
format-disconnected =
|
||||||
|
format-disconnected-foreground =
|
||||||
|
|
||||||
|
; label-connected =
|
||||||
|
; label-disconnected = !
|
||||||
|
; label-disconnected-foreground = ${colors.red}
|
||||||
|
|
||||||
|
ramp-signal-0 =
|
||||||
|
ramp-signal-0-foreground = ${colors.yellow}
|
||||||
|
ramp-signal-1 =
|
||||||
|
ramp-signal-1-foreground = ${colors.yellow}
|
||||||
|
ramp-signal-2 =
|
||||||
|
ramp-signal-2-foreground = ${colors.yellow}
|
||||||
|
ramp-signal-3 =
|
||||||
|
ramp-signal-3-foreground = ${colors.accent}
|
||||||
|
ramp-signal-4 =
|
||||||
|
ramp-signal-4-foreground = ${colors.fg}
|
||||||
|
|
||||||
|
|
||||||
|
[module/network-up]
|
||||||
|
type = internal/network
|
||||||
|
interface = ${env:LAN:eno1}
|
||||||
|
interval = 4.0
|
||||||
|
label-connected = "%upspeed%"
|
||||||
|
format-connected-prefix = " "
|
||||||
|
format-connected-prefix-foreground = ${colors.accent}
|
||||||
|
format-connected-foreground = ${colors.fg}
|
||||||
|
format-connected-background =
|
||||||
|
format-connected-underline =
|
||||||
|
format-disconnected-prefix = " "
|
||||||
|
format-disconnected-prefix-foreground = ${colors.alert}
|
||||||
|
format-disconnected-foreground = ${colors.alert}
|
||||||
|
|
||||||
|
[module/network-down]
|
||||||
|
type = internal/network
|
||||||
|
interface = ${env:LAN:eno1}
|
||||||
|
interval = 4.0
|
||||||
|
label-connected = "%downspeed%"
|
||||||
|
format-connected-prefix = " "
|
||||||
|
format-connected-prefix-foreground = ${colors.accent}
|
||||||
|
format-connected-foreground = ${colors.fg}
|
||||||
|
format-connected-background =
|
||||||
|
format-connected-underline =
|
||||||
|
format-disconnected-prefix = " "
|
||||||
|
format-disconnected-prefix-foreground = ${colors.alert}
|
||||||
|
format-disconnected-foreground = ${colors.alert}
|
||||||
|
|
||||||
|
[module/pulseaudio]
|
||||||
|
type = internal/pulseaudio
|
||||||
|
|
||||||
|
; format-volume = <label-volume> <bar-volume>
|
||||||
|
format-volume = <ramp-volume> <bar-volume>
|
||||||
|
; label-volume = " "
|
||||||
|
label-volume-foreground = ${colors.accent}
|
||||||
|
|
||||||
|
; format-muted-prefix = " "
|
||||||
|
format-muted-foreground = ${colors.alert}
|
||||||
|
label-muted =
|
||||||
|
|
||||||
|
bar-volume-width = 8
|
||||||
|
# bar-volume-foreground-0 = ${colors.magenta}
|
||||||
|
# bar-volume-foreground-1 = ${colors.magenta}
|
||||||
|
# bar-volume-foreground-2 = ${colors.magenta}
|
||||||
|
# bar-volume-foreground-3 = ${colors.magenta}
|
||||||
|
# bar-volume-foreground-4 = ${colors.magenta}
|
||||||
|
# bar-volume-foreground-5 = ${colors.magenta}
|
||||||
|
# bar-volume-foreground-6 = ${colors.magenta}
|
||||||
|
bar-volume-gradient = false
|
||||||
|
bar-volume-indicator = |
|
||||||
|
bar-volume-indicator-font = 1
|
||||||
|
bar-volume-indicator-foreground = #ff
|
||||||
|
bar-volume-fill = ─
|
||||||
|
bar-volume-fill-font = 1
|
||||||
|
bar-volume-empty = ─
|
||||||
|
bar-volume-empty-font = 1
|
||||||
|
bar-volume-empty-foreground = ${colors.fg-alt}
|
||||||
|
|
||||||
|
; Only applies if <ramp-volume> is used
|
||||||
|
ramp-volume-0 =
|
||||||
|
ramp-volume-1 =
|
||||||
|
ramp-volume-2 =
|
||||||
|
|
||||||
|
[module/battery]
|
||||||
|
type = internal/battery
|
||||||
|
battery = BAT0
|
||||||
|
adapter = ADP1
|
||||||
|
full-at = 98
|
||||||
|
|
||||||
|
format-charging = <animation-charging> <label-charging>
|
||||||
|
format-charging-underline = #ffb52a
|
||||||
|
|
||||||
|
format-discharging = <ramp-capacity> <label-discharging>
|
||||||
|
format-discharging-underline = ${self.format-charging-underline}
|
||||||
|
|
||||||
|
format-full-prefix = " "
|
||||||
|
format-full-prefix-foreground = ${colors.fg-alt}
|
||||||
|
format-full-underline = ${self.format-charging-underline}
|
||||||
|
|
||||||
|
ramp-capacity-0 =
|
||||||
|
ramp-capacity-1 =
|
||||||
|
ramp-capacity-2 =
|
||||||
|
ramp-capacity-0-foreground = ${colors.red}
|
||||||
|
ramp-capacity-1-foreground = #575864
|
||||||
|
ramp-capacity-2-foreground = ${colors.fg-alt}
|
||||||
|
|
||||||
|
animation-charging-0 =
|
||||||
|
animation-charging-1 =
|
||||||
|
animation-charging-2 =
|
||||||
|
animation-charging-framerate = 1000
|
||||||
|
animation-charging-foreground = ${colors.fg}
|
||||||
|
|
||||||
|
|
||||||
|
;=====================================================
|
||||||
|
; Custom scripts
|
||||||
|
;=====================================================
|
||||||
|
|
||||||
|
[module/pad]
|
||||||
|
type = custom/text
|
||||||
|
content = " "
|
||||||
|
content-foreground = ${colors.fg-alt}
|
||||||
|
|
||||||
|
[module/redshift]
|
||||||
|
type = custom/script
|
||||||
|
exec = ~/.config/polybar/modules/redshift
|
||||||
|
exec-if = pgrep -x redshift
|
||||||
|
interval = 60
|
||||||
|
format-padding = 1
|
||||||
|
|
||||||
|
[module/syncthing]
|
||||||
|
type = custom/script
|
||||||
|
exec = echo 1
|
||||||
|
exec-if = systemctl is-active syncthing
|
||||||
|
format = ""
|
||||||
|
format-foreground = ${colors.fg}
|
||||||
|
interval = 30
|
||||||
|
|
||||||
|
; vim:ft=dosini
|
|
@ -2,7 +2,7 @@
|
||||||
@import "config.rasi"
|
@import "config.rasi"
|
||||||
|
|
||||||
textbox-icon {
|
textbox-icon {
|
||||||
str: " ";
|
str: " ";
|
||||||
}
|
}
|
||||||
|
|
||||||
prompt {
|
prompt {
|
||||||
|
|
|
@ -46,7 +46,7 @@ configuration {
|
||||||
/**** Layout ****/
|
/**** Layout ****/
|
||||||
window {
|
window {
|
||||||
width: 1000px;
|
width: 1000px;
|
||||||
y-offset: -50px;
|
y-offset: -150px;
|
||||||
anchor: north;
|
anchor: north;
|
||||||
location: center;
|
location: center;
|
||||||
border: 1px;
|
border: 1px;
|
||||||
|
|
15
users/profiles/desktop/rofi/emojimenu.rasi
Normal file
15
users/profiles/desktop/rofi/emojimenu.rasi
Normal file
|
@ -0,0 +1,15 @@
|
||||||
|
/* -*- mode: css; -*- */
|
||||||
|
|
||||||
|
@import "config.rasi"
|
||||||
|
|
||||||
|
listview {
|
||||||
|
columns: 4;
|
||||||
|
}
|
||||||
|
|
||||||
|
textbox-icon {
|
||||||
|
str: "🎑";
|
||||||
|
}
|
||||||
|
|
||||||
|
prompt {
|
||||||
|
enabled: false;
|
||||||
|
}
|
|
@ -3,5 +3,4 @@
|
||||||
pkill -u $UID -x polybar
|
pkill -u $UID -x polybar
|
||||||
while pgrep -u $UID -x polybar >/dev/null; do sleep 1; done
|
while pgrep -u $UID -x polybar >/dev/null; do sleep 1; done
|
||||||
|
|
||||||
polybar main >$XDG_DATA_HOME/polybar.log 2>&1 &
|
polybar mybar >$XDG_DATA_HOME/polybar.log 2>&1 &
|
||||||
echo 'Polybar launched...'
|
|
||||||
|
|
|
@ -33,6 +33,9 @@ super + space
|
||||||
super + Tab
|
super + Tab
|
||||||
rofi -show window -show-icons -theme theme/windowmenu.rasi
|
rofi -show window -show-icons -theme theme/windowmenu.rasi
|
||||||
|
|
||||||
|
super + e
|
||||||
|
rofimoji --rofi-args "-theme theme/emojimenu.rasi" --skin-tone moderate --action copy
|
||||||
|
|
||||||
super + p
|
super + p
|
||||||
passmenu
|
passmenu
|
||||||
|
|
||||||
|
|
|
@ -525,3 +525,4 @@ in
|
||||||
vimAlias = true;
|
vimAlias = true;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue