major home-manager changes

This commit is contained in:
2021-05-02 09:24:02 +05:30
parent da3ef21ccd
commit 70b18cf4fd
33 changed files with 1115 additions and 37 deletions

View File

@@ -2,7 +2,7 @@
## TODO
1. Add user specific traditional dotfiles.
2. Try home-manager for nix (Trying out right now)
2. ~~Try home-manager for nix~~ (Still in the middle of updating)
3. ~~Try nix flakes~~
## How install workey

View File

@@ -1,4 +1,4 @@
{ config, lib, pkgs, modulesPath, ... }:
{ config, lib, ... }:
{
powerManagement = {

View File

@@ -1,4 +1,4 @@
{lib, config, pkgs, ... }:
{lib, config, ... }:
{
services.pipewire = {

View File

@@ -1,5 +1,5 @@
{ config, lib, pkgs, modulesPath, ... }:
{ config, lib, ... }:
#let
# compiledLayout = pkgs.runCommand "keyboard-layout" {} ''

View File

@@ -4,17 +4,12 @@
imports = [ (modulesPath + "/installer/scan/not-detected.nix") ];
boot = {
kernelPackages = pkgs.linuxPackages_zen;
kernelPatches = [
{
name = "zenwithmuqqs";
patch = null;
structuredExtraConfig = with lib.kernel; {
SCHED_MUQSS = yes;
};
ignoreConfigErrors = true;
}
];
kernelPackages = pkgs.linuxPackagesFor (pkgs.linux_zen.override {
structuredExtraConfig = with lib.kernel; {
CONFIG_SCHED_MUQSS = yes;
};
ignoreConfigErrors = true;
});
initrd={
availableKernelModules = [ "xhci_pci" "ahci" "nvme" "usb_storage" "sd_mod"];
kernelModules = [ ];

View File

@@ -1,4 +1,4 @@
{lib, config, pkgs, ... }:
{ lib, config, ...}:
{
imports =

View File

@@ -1,4 +1,4 @@
{ config, lib, pkgs, modulesPath, ... }:
{ config, lib, modulesPath, ... }:
{
imports =
@@ -11,6 +11,7 @@
fileSystems."/" =
{ device = "/dev/disk/by-uuid/4c02ddf5-d00e-4d84-856f-c327ae44d047";
fsType = "btrfs";
options = ["compress=zstd"];
};
fileSystems."/boot/efi" =

View File

@@ -1,4 +1,4 @@
{lib, config, pkgs, ... }:
{lib, config, ... }:
{
networking = {

View File

@@ -2,52 +2,35 @@
{
environment.systemPackages = with pkgs; [
customscripts
xclip
dunst
xorg.xkbcomp
glibc
proxychains
#qt5.qmake
xorg.xmodmap
ffmpeg
p7zip
git
glxinfo
sox
libmpdclient
lxappearance
sxiv
jq
mono
vim
mpd
wineWowPackages.staging
neofetch
tor-browser-bundle-bin
w3m
gnumake
pciutils
jdk
gcc
ntfs3g
python38
luajit
neovim
htop
nodejs
wget
ripgrep
patchelf
doas
feh
sxiv
mpv
dwm
dmenu
st
kbd
picom
ncmpcpp
];
programs.steam.enable = true;
nix = {

View File

@@ -1,4 +1,4 @@
{lib, config, pkgs, ... }:
{lib, config, ... }:
{
imports = [
./Stuff/sound.nix

View File

@@ -29,6 +29,18 @@
homeDirectory = "/home/natto";
username = "natto";
};
root = home-manager.lib.homeManagerConfiguration {
configuration = { pkgs, lib, ... }: {
imports = [ ./home/root.nix ];
nixpkgs = {
overlays = builtins.attrValues self.overlays;
};
};
system = "${system}";
homeDirectory = "/root";
username = "root";
};
};
nixosConfigurations.Satori = nixpkgs.lib.nixosSystem {

30
home/config/bspwm/bspwmrc Executable file
View File

@@ -0,0 +1,30 @@
#! /bin/sh
bspc rule -r "*"
##Autostart
pgrep -x sxhkd > /dev/null || sxhkd &
picom --experimental-backends &
feh --bg-scale ~/Downloads/gruvbox.jpg &
killall "polybar"
polybar main &
killall node
node /mnt/Stuff/code/muhbot
bspc monitor -d          
#bspc monitor -d I II III IV V VI VII VIII IX X
bspc config border_width 2
bspc config window_gap 10
bspc config focus_follows_pointer true
bspc config split_ratio 0.52
bspc config borderless_monocle true
bspc config gapless_monocle true
bspc config single_monocle true
bspc config top_padding 50
bspc config normal_border_color "#ffffff"
bspc config active_border_color "#1bb1b1"
bspc config focused_border_color "#fe8019"
bspc config urgent_border_color "#fe8019"

View File

@@ -0,0 +1,355 @@
:root {
/* Minimal Functional Fox variables*/
--mff-bg: #1d2021;
--mff-icon-color: #bbbbbb;
--mff-nav-toolbar-padding: 8px;
--mff-sidebar-bg: var(--mff-bg);
--mff-sidebar-color: #e0fbfc;
--mff-tab-border-radius: 0px;
--mff-tab-color: #ebdbb2;
--mff-tab-font-family: "Fira Mono for Powerline", sans;
--mff-tab-font-size: 11pt;
--mff-tab-font-weight: 400;
--mff-tab-height: 32px;
--mff-tab-pinned-bg: #70c1b3;
--mff-tab-selected-bg: #ebdbb2;
--mff-tab-selected-color: #1d2021;
--mff-tab-soundplaying-bg: #818181;
--mff-tab-soundplaying-color: #1d2021;
--mff-urlbar-color: #98c1d9;
--mff-urlbar-focused-color: #e0fbfc;
--mff-urlbar-font-family: "Fira Mono for Powerline", serif;
--mff-urlbar-font-size: 12pt;
--mff-urlbar-font-weight: 500;
--mff-urlbar-results-color: #e0fbfc;
--mff-urlbar-results-font-family: "Fira Mono for Powerline", serif;
--mff-urlbar-results-font-size: 12pt;
--mff-urlbar-results-font-weight: 500;
--mff-urlbar-results-url-color: #98c1d9;
/* --mff-tab-selected-bg: linear-gradient(90deg, rgba(232,74,95,1) 0%, rgba(255,132,124,1) 50%, rgba(254,206,168,1) 100%); */
/* --mff-urlbar-font-weight: 600; */
/* Overriden Firefox variables*/
--autocomplete-popup-background: var(--mff-bg) !important;
--default-arrowpanel-background: var(--mff-bg) !important;
--default-arrowpanel-color: #fefefa !important;
--lwt-toolbarbutton-icon-fill: var(--mff-icon-color) !important;
--panel-disabled-color: #f9f9fa80;
--toolbar-bgcolor: var(--mff-bg) !important;
--urlbar-separator-color: transparent !important;
}
/*
_____ _ ___ ___
|_ _/_\ | _ ) __|
| |/ _ \| _ \__ \
|_/_/ \_\___/___/
*/
.tab-background[selected="true"] {
background: var(--mff-tab-selected-bg) !important;
}
.tab-text[selected="true"] {
color: var(--mff-tab-selected-color) !important;
font-weight: bold !important;
}
.tab-background:not[visuallyselected] {
background: var(--mff-tab-selected-bg) !important;
opacity: 0.5 !important;
}
/* This positions the tabs under the navaigator container */
#titlebar {
-moz-box-ordinal-group: 3 !important;
}
.tabbrowser-tab::after,
.tabbrowser-tab::before {
border-left: none !important;
}
.tab-background {
border: none !important;
}
.tabbrowser-arrowscrollbox {
margin-inline-start: 4px !important;
margin-inline-end: 0px !important;
}
.tab-close-button {
display: none !important;
}
.tab-text {
font-family: var(--mff-tab-font-family);
font-weight: var(--mff-tab-font-weight);
font-size: var(--mff-tab-font-size) !important;
color: var(--mff-tab-color);
}
/* Hide the favicon for tabs */
hbox.tab-content .tab-icon-image {
display: none !important;
}
/* Show the favicon for tabs that are pinned */
hbox.tab-content[pinned=true] .tab-icon-image {
display: initial !important;
}
hbox.tab-content[pinned=true] .tab-text {
display: none !important;
}
#tabbrowser-tabs {
--tab-loading-fill: #033433 !important;
}
.tab-label-container:not([textoverflow]) {
display: flex;
overflow: hidden;
justify-content: center;
width: 50% !important;
max-width: 50% !important;
min-width: 50% !important;
}
/* .tab-label-container::after {
content: "?" !important;
} */
.tab-line {
display: none !important;
}
.tabbrowser-tab {
border-radius: var(--mff-tab-border-radius) !important;
border-width: 0;
height: var(--mff-tab-height) !important;
margin-bottom: 4px !important;
margin-inline-end: 4px !important;
margin-top: 4px !important;
max-height: var(--mff-tab-height) !important;
min-height: var(--mff-tab-height) !important;
}
.tabbrowser-tab[soundplaying="true"] {
background-color: var(--mff-tab-soundplaying-bg) !important;
}
#tabs-newtab-button {
list-style-image: url("https://raw.githubusercontent.com/mut-ex/minimal-functional-fox/master/add.svg") !important;
opacity: 0.7;
}
.tab-icon-sound {
display: none !important;
}
/*
_____ ___ ___ _ ___ _ ___
|_ _/ _ \ / _ \| | | _ ) /_\ | _ \
| || (_) | (_) | |__| _ \/ _ \| /
|_| \___/ \___/|____|___/_/ \_\_|_\
*/
.urlbar-icon > image {
fill: var(--mff-icon-color) !important;
color: var(--mff-icon-color) !important;
}
.toolbarbutton-text {
color: var(--mff-icon-color) !important;
}
.urlbar-icon {
color: var(--mff-icon-color) !important;
}
.toolbarbutton-icon {
/* filter: drop-shadow(0 0 0.75rem crimson); */
}
#urlbar-results {
font-family: var(--mff-urlbar-results-font-family);
font-weight: var(--mff-urlbar-results-font-weight);
font-size: var(--mff-urlbar-results-font-size) !important;
color: var(--mff-urlbar-results-color) !important;
}
.urlbarView-row[type="bookmark"] > span{
color: green !important;
}
.urlbarView-row[type="switchtab"] > span{
color: orange !important;
}
.urlbarView-url, .search-panel-one-offs-container {
color: var(--mff-urlbar-results-url-color) !important;
font-family: var(--mff-urlbar-font-family);
font-weight: var(--mff-urlbar-results-font-weight);
font-size: var(--mff-urlbar-font-size) !important;
}
.urlbarView-favicon, .urlbarView-type-icon {
display: none !important;
}
#urlbar-input {
font-size: var(--mff-urlbar-font-size) !important;
color: var(--mff-urlbar-color) !important;
font-family: var(--mff-urlbar-font-family) !important;
font-weight: var(--mff-urlbar-font-weight)!important;
text-align: center !important;
}
#tracking-protection-icon-container, #identity-box {
display: none;
}
#back-button > .toolbarbutton-icon{
--backbutton-background: transparent !important;
border: none !important;
}
#back-button {
list-style-image: url("https://raw.githubusercontent.com/mut-ex/minimal-functional-fox/master/left-arrow.svg") !important;
}
#forward-button {
list-style-image: url("https://raw.githubusercontent.com/mut-ex/minimal-functional-fox/master/right-arrow.svg") !important;
}
toolbar {
background-image: none !important;
}
#urlbar-background {
opacity: .98 !important;
}
#navigator-toolbox, toolbaritem {
border: none !important;
}
#urlbar-background {
background-color: var(--mff-bg) !important;
border: none !important;
}
.toolbar-items {
background-color: var(--mff-bg) !important;
}
#sidebar-search-container {
background-color: var(--mff-sidebar-bg) !important;
}
box.panel-arrowbox {
display: none;
}
box.panel-arrowcontent {
border-radius: 8px !important;
border: none !important;
}
tab.tabbrowser-tab {
overflow: hidden;
}
tab.tabbrowser-tab:hover {
box-shadow: 0 1px 4px rgba(0,0,0,.05);
}
image#star-button {
display: none;
}
toolbar#nav-bar {
padding: var(--mff-nav-toolbar-padding) !important;
}
toolbar#nav-bar {
padding: 4px !important;
}
#urlbar {
max-width: 70% !important;
margin: 0 15% !important;
/* position: unset!important; */;
}
#urlbar-input:focus {
color: var(--mff-urlbar-focused-color) !important;
}
.megabar[breakout-extend="true"]:not([open="true"]) > #urlbar-background {
box-shadow: none !important;
background-color: transparent !important;
}
toolbarbutton {
box-shadow: none !important;
}
/*
___ ___ ___ ___ ___ _ ___
/ __|_ _| \| __| _ ) /_\ | _ \
\__ \| || |) | _|| _ \/ _ \| /
|___/___|___/|___|___/_/ \_\_|_\
*/
.close-icon, .urlbar-icon {
fill: var(--mff-icon-color) !important;
}
.sidebar-placesTree {
color: var(--mff-sidebar-color) !important;
}
#sidebar-switcher-target {
/* color: white !important; */
}
#sidebar-box {
--sidebar-background-color: var(--mff-sidebar-bg) !important;
}
splitter#sidebar-splitter {
opacity: 0 !important;
}
splitter#sidebar-splitter {
border: none !important;
background-color: transparent !important;
}
image#sidebar-icon {
display: none;
}
/*
_ ___ ___ _____ _____ _ _ _ ___ _
/_\ | _ \ _ \/ _ \ \ / / _ \/_\ | \| | __| |
/ _ \| / / (_) \ \/\/ /| _/ _ \| .` | _|| |__
/_/ \_\_|_\_|_\\___/ \_/\_/ |_|/_/ \_\_|\_|___|____|
*/
.panel-arrowcontent {
padding: 0px !important;
margin: 0px !important;
}
toolbarseparator {
display: none;
}

View File

@@ -0,0 +1,23 @@
@import url("userChrome.css");
/* Removes white loading page */
@-moz-document url(about:blank), url(about:newtab), url(about:home) {
html:not(#ublock0-epicker), html:not(#ublock0-epicker) body, #newtab-customize-overlay {
background: var(--mff-bg) !important;
}
}
/* Hide scrollbar */
:root{
scrollbar-width: none !important;
}
@-moz-document url(about:privatebrowsing) {
:root{
scrollbar-width: none !important;
}
}

24
home/config/mpd/mpd.conf Normal file
View File

@@ -0,0 +1,24 @@
music_directory "~/Music"
playlist_directory "~/.config/mpd/playlists"
db_file "~/.config/mpd/database"
log_file "~/.config/mpd/log"
pid_file "~/.config/mpd/pid"
state_file "~/.config/mpd/state"
bind_to_address "~/.config/mpd/socket"
bind_to_address "localhost"
port "6600"
restore_paused "yes"
input {
plugin "curl"
}
audio_output {
type "pulse"
name "pulse audio"
}
audio_output {
type "fifo"
name "Visualizer feed"
path "/tmp/g.fifo"
format "44100:16:2"
}
filesystem_charset "UTF-8"

View File

@@ -0,0 +1,62 @@
autocenter_mode = "yes"
follow_now_playing_lyrics = "yes"
lyrics_directory = "~/.lyrics"
mpd_music_dir="~/Music"
fetch_lyrics_for_current_song_in_background = "yes"
#store_lyrics_in_song_dir = yes
browser_sort_mode=mtime
colors_enabled = "yes"
main_window_color = "white"
header_window_color = "180"
volume_color = "215"
progressbar_color = "180"
progressbar_elapsed_color = "16"
statusbar_color = "43"
active_window_border = "blue"
user_interface = "alternative"
#song_list_format="(4)[230]{l}"
song_columns_list_format = "(4)[230]{l} (30)[219]{t} (15)[180]{a} (15)[215]{b}"
song_list_format = "{$(219)%a} - {$(230)%t}"
#song_list_format = "{$7%a - $9}{$5%t$9}|{$5%f$9}$R{$6%b $9}{$3%l$9}"
song_status_format = " $6%a $7⟫⟫ $3%t $7⟫⟫ $4%b "
visualizer_data_source = "/tmp/g.fifo"
#visualizer_output_name = "my_fifo"
visualizer_type = "spectrum"
#visualizer_type = "ellipse"
visualizer_fps = 144
visualizer_in_stereo = "yes"
visualizer_look = "◆▋"
visualizer_spectrum_smooth_look="yes"
playlist_editor_display_mode = "classic"
playlist_display_mode = "columns"
cyclic_scrolling = "yes"
lines_scrolled = "2"
system_encoding = "utf-8"
regular_expressions = "extended"
#selected_item_prefix = "* "
#discard_colors_if_item_is_selected = "no"
#incremental_seeking = "yes"
#seek_time = "1"
## Visibility ##
header_visibility = "yes"
statusbar_visibility = "yes"
titles_visibility = "yes"
## Progress Bar ##
progressbar_look = "▃▃▃"
## Now Playing ##
now_playing_prefix = "> "
centered_cursor = "yes"
# Misc
display_bitrate = "yes"
enable_window_title = "yes"
empty_tag_marker = ""
#execute_on_song_change="~/.config/ncmpcpp/cover_obs.sh"

View File

@@ -0,0 +1,6 @@
let g:netrw_dirhistmax =10
let g:netrw_dirhistcnt =4
let g:netrw_dirhist_4='/home/natto/.config/deemix'
let g:netrw_dirhist_3='/mnt/Stuff/Bruhniggacode/C++'
let g:netrw_dirhist_2='/home/natto/.config/ncmpcpp'
let g:netrw_dirhist_1='/home/otaku619/.config/mpd'

View File

@@ -0,0 +1,3 @@
{
"python.jediEnabled": false
}

127
home/config/nvim/init.vim Normal file
View File

@@ -0,0 +1,127 @@
"SETTINGS
let g:mapleader = "\<Space>"
syntax enable
set modifiable
set cursorline
set hidden
set nowrap
set encoding=utf-8
set pumheight=10
set fileencoding=utf-8
set ruler
set cmdheight=2
set iskeyword+=-
set mouse=a
set splitbelow
set splitright
set t_Co=256
set conceallevel=0
set tabstop=4
set shiftwidth=4
set smarttab
set expandtab
set smartindent
set autoindent
set number
set relativenumber
set background=dark
set showtabline=2
set noshowmode
set nobackup
set nowritebackup
set updatetime=300
set timeoutlen=100
set formatoptions-=cro
set clipboard=unnamedplus
au! BufWritePost $MYVIMRC source %
cmap w!! w !sudo tee %
"MAPPINGS
inoremap <S-Space> <ESC>
nnoremap m h|xnoremap m h|onoremap m h|
nnoremap n j|xnoremap n j|onoremap n j|
nnoremap e k|xnoremap e k|onoremap e k|
nnoremap i l|xnoremap i l|onoremap i l|
nnoremap M H|xnoremap M H|onoremap M H|
nnoremap N J|xnoremap N J|onoremap N J|
nnoremap E K|xnoremap E K|onoremap E K|
nnoremap I L|xnoremap I L|onoremap I L|
nnoremap h i|xnoremap h i|onoremap h i|
nnoremap H I|xnoremap H I|onoremap H I|
nnoremap k n|xnoremap k n|onoremap k n|
nnoremap K N|xnoremap K N|onoremap K N|
nnoremap j m|xnoremap j m|onoremap j m|
nnoremap J M|xnoremap J M|onoremap J M|
nnoremap l e|xnoremap l e|onoremap l e|
nnoremap L E|xnoremap L E|onoremap L E|
nnoremap <C-s> :w<CR>
nnoremap <M-n> :resize -2<CR>
nnoremap <M-e> :resize +2<CR>
nnoremap <M-m> :vertical resize -2<CR>
nnoremap <M-i> :vertical resize +2<CR>
nnoremap <TAB> :bnext<CR>
nnoremap <S-TAB> :bprevious<CR>
vnoremap < <gv
vnoremap > >gv
nnoremap <C-q> :bd!<CR>
nnoremap <C-x> :bd#<CR>
tnoremap <C-q> :bd!<CR>
nnoremap <C-M> <C-W>h|xnoremap <C-M> <C-W>h|
nnoremap <C-N> <C-W>j|xnoremap <C-N> <C-W>j|
nnoremap <C-E> <C-W>k|xnoremap <C-E> <C-W>k|
nnoremap <C-I> <C-W>l|xnoremap <C-I> <C-W>l|
"STATUSLINE
"let right=""
"let left=""
set laststatus=2
set statusline=
set statusline+=%1*
set statusline+=\ %{ModeBruh()}\
set statusline+=%2*\%{GitBruh()}\
set statusline+=%3*\ %f\
set statusline+=%1*
set statusline+=%=
set statusline+=%3*\ %{strlen(&fenc)?&fenc:'none'}\
set statusline+=%2*\ %y\
let bruh="%  "
let bruh1="  "
set statusline+=%1*\ %p%{bruh}%l/%L%{bruh1}%c\
hi User1 guibg=#fbf1c7 guifg=#1d2021
hi User2 guibg=#1d2021 guifg=#fbf1c7
hi User3 guifg=#fbf1c7 guibg=#665c54
function! ModeBruh()
let l:mode=mode()
if l:mode==#"n"
return "NORMAL"
elseif l:mode==?"v"
return "VISUAL"
elseif l:mode==#"i"
return "INSERT"
elseif l:mode==#"R"
return "REPLACE"
elseif l:mode==?"s"
return "SELECT"
elseif l:mode==#"t"
return "TERMINAL"
elseif l:mode==#"c"
return "COMMAND"
elseif l:mode==#"!"
return "SHELL"
endif
endfunction
function! GitBruh()
let l:branchname = GitBranch()
return strlen(l:branchname) > 0?'  '.l:branchname.'':''
endfunction
function! GitBranch()
return system("git rev-parse --abbrev-ref HEAD 2>/dev/null | tr -d '\n'")
endfunction
set termguicolors

19
home/config/nvim/utils.vim Executable file
View File

@@ -0,0 +1,19 @@
" I got this part of the config from Michael Lan Source = https://www.youtube.com/watch?v=I4Rz0qoWYBl
function! TermWrapper(command) abort
if !exists('g:split_term_style') | let g:split_term_style = 'vertical' | endif
if g:split_term_style ==# 'vertical'
let buffercmd = 'vnew'
elseif g:split_term_style ==# 'horizontal'
let buffercmd = 'new'
else
echoerr 'ERROR! g:split_term_style is not a valid value (must be ''horizontal'' or ''vertical'' but is currently set to ''' . g:split_term_style . ''')'
throw 'ERROR! g:split_term_style is not a valid value (must be ''horizontal'' or ''vertical'')'
endif
exec buffercmd
exec 'term ' . a:command
exec 'startinsert'
endfunction
command! -nargs=0 CompileAndRun call TermWrapper(printf('g++ -std=c++17 %s && ./a.out', expand('%')))
autocmd FileType cpp nnoremap <F5> :CompileAndRun<CR>
let g:split_term_style = 'vertical'

154
home/config/sxhkd/sxhkdrc Normal file
View File

@@ -0,0 +1,154 @@
#
# wm independent hotkeys
#
# terminal emulator
super + Return
st
# program launcher
super + d
rofi -show drun
# make sxhkd reload its configuration files:
super + alt + c
pkill -USR1 -x sxhkd
# quit/restart bspwm
super + shift + {e,r}
bspc {quit,wm -r}
# close and kill
super + {_,shift + }q
bspc node -{c,k}
# alternate between the tiled and monocle layout
super + shift + f
bspc desktop -l next
# send the newest marked node to the newest preselected node
#super + y
# bspc node newest.marked.local -n newest.!automatic.local
# swap the current node and the biggest window
#super + g
# bspc node -s biggest.window
#
# state/flags
#
# set the window state
super + {t,shift + t,s,f}
bspc node -t {\~tiled,\~pseudo_tiled,\~floating,\~fullscreen}
# set the node flags
#super + ctrl + {m,x,y,z}
# bspc node -g {marked,locked,sticky,private}
#
# focus/swap
#
# focus the node in the given direction
super + shift + {h,j,k,l}
bspc node -s {west,south,north,east}
super + {h,j,k,l}
bspc node -f {west,south,north,east}
# focus the code for the given path jump
#super + {p,b,comma,period}
# bspc node -f @{parent,brother,first,second}
# focus the next/previous window in the current desktop
super + {_,shift + }c
bspc node -f {next,prev}.local.!hidden.window
# focus the next/previous desktop in the current monitor
super + bracket{left,right}
bspc desktop -f {prev,next}.local
# focus the last node/desktop
#super + {grave,Tab}
# bspc {node,desktop} -f last
# focus the older or newer node in the focus history
super + {o,i}
bspc wm -h off; \
bspc node {older,newer} -f; \
bspc wm -h on
# focus or send to the given desktop
super + {_,shift + }{1-9,0}
bspc {desktop -f,node -d} '^{1-9,10}'
#
# preselect
#
# preselect the direction
super + ctrl + {h,j,k,l}
bspc node -p {west,south,north,east}
# preselect the ratio
super + ctrl + {1-9}
bspc node -o 0.{1-9}
# cancel the preselection for the focused node
super + ctrl + space
bspc node -p cancel
# cancel the preselection for the focused desktop
super + ctrl + shift + space
bspc query -N -d | xargs -I id -n 1 bspc node id -p cancel
#
# move/resize
#
# expand a window by moving one of its side outward
super + alt + {h,j,k,l}
bspc node -z {left -20 0,bottom 0 20,top 0 -20,right 20 0}
# contract a window by moving one of its side inward
super + alt + shift + {h,j,k,l}
bspc node -z {right -20 0,top 0 20,bottom 0 -20,left 20 0}
# move a floating window
super + {Left,Down,Up,Right}
bspc node -v {-20 0,0 20,0 -20,20 0}
#
# Screenshotting
#
@Print
flameshot & flameshot full -p ~/Pictures
# exec scrot '%d-%m-%Y_%I-%M-%S%p.png' -e 'mv ~/$f ~/Pictures/'
shift + @Print
flameshot & flameshot gui -p ~/Pictures
# exec scrot -s '%d-%m-%Y_%I-%M-%S%p.png' -e 'mv ~/$f ~/Pictures/'
#super + @Print
#flameshot gui full -p ~/Pictures
# exec scrot -u '%d-%m-%Y_%I-%M-%S%p.png' -e 'mv ~/$f ~/Pictures/'
alt + @Print
flameshot & flameshot gui -d 10000 -p ~/Pictures
# exec scrot -d 10 '%d-%m-%Y_%I-%M-%S%p.png' -e 'mv ~/$f ~/Pictures/'
#
#mpd/ncmpcpp
#
super + shift + n
mpc prev
super + shift + m
mpc next
super + shift + space
mpc toggle
super + A
mpc seek +00:00:05
super + D
mpc seek -00:00:05

View File

@@ -0,0 +1,14 @@
set statusbar-h-padding 0
set statusbar-v-padding 0
set page-padding 1
map w scroll half-up
map r scroll half-down
map s reload
map S rotate
map f zoom in
map q zoom out
map p follow link
map m left
map i right
map n down
map e up

15
home/modules/files.nix Normal file
View File

@@ -0,0 +1,15 @@
{config, ...}:
let
home = config.home.homeDirectory;
in {
home = {
file.ncmpcpp = {
source = ../config/ncmpcpp/config;
target = "${home}/.config/ncmpcpp/config";
};
file.mpd = {
source = ../config/mpd/mpd.conf;
target = "${home}/.config/mpd/mpd.conf";
};
};
}

10
home/modules/gtk.nix Normal file
View File

@@ -0,0 +1,10 @@
{config, pkgs,...}:
{
gtk = {
enable = true;
iconTheme.name = "Gruvbox-Material-Dark";
iconTheme.package = pkgs.gruvbox-icons;
theme.name = "Equilux";
theme.package = pkgs.equilux-theme;
};
}

37
home/modules/programs.nix Normal file
View File

@@ -0,0 +1,37 @@
{ pkgs, config, ...}:
{
imports = [
./programs/nvim.nix
];
programs = {
firefox = {
enable = true;
package = pkgs.firefox-bin;
profiles.natto = {
name = "natto";
userChrome = builtins.readFile ../config/firefox/userChrome.css;
userContent = builtins.readFile ../config/firefox/userContent.css;
};
};
zathura = {
enable = true;
extraConfig = builtins.readFile ../config/zathura/zathurarc;
options = {
recolor = true;
recolor-lightcolor = "rgba(0,0,0,0)";
default-bg = "rgba(0,0,0,0.7)";
};
};
ncmpcpp = {
enable = true;
};
mpv = {
enable = true;
config = {
force-window = "yes";
keep-open = "yes";
save-position-on-quit = "yes";
};
};
};
}

View File

@@ -0,0 +1,88 @@
{config, pkgs, ...}:
let
plugs = {
floaterm = {
config = ''
let g:floaterm_keymap_toggle = '<F1>'
let g:floaterm_keymap_next = '<F2>'
let g:floaterm_keymap_prev = '<F3>'
let g:floaterm_keymap_new = '<F4>'
let g:floaterm_gitcommit='floaterm'
let g:floaterm_autoinsert=1
let g:floaterm_width=0.8
let g:floaterm_height=0.8
let g:floaterm_wintitle=0
let g:floaterm_shell="/usr/bin/env fish"
'';
plugin = pkgs.vimPlugins.vim-floaterm;
};
nvim-colorizer = {
plugin = pkgs.vimPlugins.nvim-colorizer-lua;
config = ''
packadd! nvim-colorizer.lua
lua require'colorizer'.setup()
'';
};
auto-pairs = {
plugin = pkgs.vimPlugins.auto-pairs;
};
vim-closetag = {
config = ''
let g:closetag_filenames = "*.html,*.xhtml,*.phtml,*.js,*.erb,*.jsx"
let g:closetag_xhtml_filenames = '*.xhtml,*.jsx,*.js,*.erb'
let g:closetag_emptyTags_caseSensitive = 1
let g:closetag_shortcut = '>'
let g:closetag_close_shortcut = '<leader>>'
'';
plugin = pkgs.vimPlugins.vim-closetag;
};
nerdcommenter = {
config = ''
map <C-c> <plug>NERDCommenterToggle
map <C-d> <plug>NERDCommenterSexy
'';
plugin = pkgs.vimPlugins.nerdcommenter;
};
vim-rooter = {
plugin = pkgs.vimPlugins.vim-rooter;
};
vim-polyglot = {
plugin = pkgs.vimPlugins.vim-polyglot;
};
themes = {
gruvbox = {
plugin = pkgs.vimPlugins.gruvbox;
};
};
};
in
{
programs.neovim = {
enable = true;
vimAlias = true;
viAlias = false;
withNodeJs = true;
withPython = true;
extraConfig = ''
let g:gruvbox_italic=1
let g:gruvbox_contrast_dark="hard"
let g:gruvbox_contrast_light="hard"
set background=dark
colorscheme gruvbox
'' +
builtins.readFile ../../config/nvim/init.vim +
builtins.readFile ../../config/nvim/utils.vim;
plugins = with plugs; [
auto-pairs
#nvim-colorizer
floaterm
vim-rooter
nerdcommenter
vim-polyglot
vim-closetag
themes.gruvbox
];
};
}

48
home/modules/services.nix Normal file
View File

@@ -0,0 +1,48 @@
{config, pkgs, ...}:
let
home = config.home.homeDirectory;
in
{
services = {
picom = {
enable = true;
extraOptions =
''
shadow = true;
shadow-radius = 7;
shadow-offset-x = -7;
shadow-offset-y = -7;
blurExclude = [ "class_g = 'dwm'" ];
inactive-opacity = 0.92;
active-opacity = 0.97;
inactive-opacity-override = true;
blur-background = true;
blur-method = "dual_kawase";
blur-strength = 3;
blur-kern = "3x3box";
fading = true;
fade-in-step = 0.05;
fade-out-step = 0.05;
backend = "glx";
detect-rounded-corners = true;
detect-client-opacity = true;
experimental-backends = true;
vsync = false;
wintypes:
{
tooltip = { fade = true; shadow = true; opacity = 0.75; focus = true; };
popup_menu={opacity=0.8;};
dropdown_menu={opacity=0.8;};
};
shadow-exclude = ["x = 0 && y = 0 && override_redirect = true"]
'';
};
sxhkd = {
enable = false;
extraConfig = builtins.readFile ./config/sxhkd/sxhkdrc;
};
};
}

View File

@@ -0,0 +1,9 @@
{pkgs, config, ...}:
{
xsession = {
windowManager.bspwm = {
enable = false;
extraConfig = builtins.readFile ./config/bspwm/bspwmrc;
};
};
}

View File

@@ -1,6 +1,13 @@
{ config, pkgs, ... }:
{
imports = [
./modules/programs.nix
./modules/xsession.nix
./modules/files.nix
./modules/services.nix
./modules/gtk.nix
];
nixpkgs = {
config = {
allowUnfree = true;
@@ -8,10 +15,24 @@
};
home = {
packages = with pkgs; [
mpdas
mpd
dunst
pavucontrol
anup
proxychains
cmake
xfce.thunar
discord
customscripts
mpd_discord_richpresence
sox
qbittorrent
tor-browser-bundle-bin
mpc_cli
flameshot
luajit
mpv
];
};
}

7
home/root.nix Normal file
View File

@@ -0,0 +1,7 @@
{config, ...}:
{
imports = [
./modules/programs/nvim.nix
./modules/gtk.nix
];
}

18
overlays/anup/default.nix Normal file
View File

@@ -0,0 +1,18 @@
{ lib, rustPlatform, fetchFromGitHub, sqlite, xdg_utils}:
rustPlatform.buildRustPackage rec {
pname = "anup";
version = "0.4.0";
src = fetchFromGitHub {
owner = "Acizza";
repo = "anup";
rev = version;
sha256 = "sha256-4pXF4p4K8+YihVB9NdgT6bOidmQEgWXUbcbvgXJ0IDA=";
};
buildInputs = [
sqlite.dev
xdg_utils
];
cargoSha256 = "sha256-1TA2HDHKA3twFtlAWaC2zcRzS8TJwcbBt1OTQ3hC3qM=";
}

View File

@@ -0,0 +1,15 @@
{ stdenv, fetchgit }:
stdenv.mkDerivation rec {
name = "gruvbox-icons";
src = fetchgit {
url = "https://github.com/sainnhe/gruvbox-material-gtk";
rev = "2418ff7988411c57f8974f14adeb70a64e7f25c1";
sha256 = "sha256-56Mu8zHcnB4++QXjAq3S7/UPvDB8DlpT14mAW3ketSY=";
};
dontBuild = true;
installPhase = ''
mkdir -p $out/share
cp -r icons $out/share
'';
}

View File

@@ -1,4 +1,6 @@
final: prev: {
mpd_discord_richpresence = prev.callPackage ./mpd-rpc {};
customscripts = prev.callPackage ./customscripts {};
gruvbox-icons = prev.callPackage ./gruvbox-icons {};
anup = prev.callPackage ./anup {};
}