Merge branch 'devos' of git.sealight.xyz:aynish/nix-garden into devos

This commit is contained in:
Anish Lakhwara 2022-04-22 11:35:19 +10:00
commit 7b8e955d97
22 changed files with 906 additions and 829 deletions

View file

@ -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;
} }
; ;
} }

View 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. iTS 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
View file

@ -0,0 +1,10 @@
{ profiles, suites, ... }:
{
imports = [
./configuration.nix
]; # ++ [suites.cube];
#home-manager.users.anish = { self, suites, ... }: {
# imports = [ ] ++ suites.hmBase;
#};
}

View 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;
}

View file

@ -45,7 +45,6 @@
# }; # };
sound.enable = true; sound.enable = true;
hardware.pulseaudio.enable = true;
services.xserver.libinput.enable = true; services.xserver.libinput.enable = true;
} }

View file

@ -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
}; };
}; };

View file

@ -1,4 +0,0 @@
{ self, config, lib, pkgs, ... }:
{
imports = [ ./nvim.nix ];
}

View file

@ -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
'';
};
}
)
];
}

View file

@ -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";
};
}; };
} }

View file

@ -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" ];
}; };

View 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

View file

@ -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

View file

@ -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;

View file

@ -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 = {

View file

@ -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

View 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

View file

@ -2,7 +2,7 @@
@import "config.rasi" @import "config.rasi"
textbox-icon { textbox-icon {
str: " "; str: " ";
} }
prompt { prompt {

View file

@ -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;

View file

@ -0,0 +1,15 @@
/* -*- mode: css; -*- */
@import "config.rasi"
listview {
columns: 4;
}
textbox-icon {
str: "🎑";
}
prompt {
enabled: false;
}

View file

@ -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...'

View file

@ -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

View file

@ -525,3 +525,4 @@ in
vimAlias = true; vimAlias = true;
}; };
} }