@ -8,48 +8,77 @@
imports =
[ # Include the results of the hardware scan.
./hardware-configuration.nix
./users.nix
./workstation.nix
( import ( builtins . fetchGit { url = " h t t p s : / / g i t h u b . c o m / r y c e e / h o m e - m a n a g e r . g i t " ; ref = " m a s t e r " ; } ) { } ) . nixos
] ;
# Use the GRUB 2 boot loader.
boot . loader . grub . enable = true ;
boot . loader . grub . version = 2 ;
# boot.loader.grub.efiSupport = true;
# boot.loader.grub.efiInstallAsRemovable = true;
# boot.loader.efi.efiSysMountPoint = "/boot/efi";
# Define on which hard drive you want to install Grub.
boot . loader . grub . device = " / d e v / s d a " ; # or "nodev" for efi only
programs . vim . defaultEditor = true ;
programs . wireshark . enable = true ;
networking . hostName = " k u r i x o s " ; # Define your hostname.
# networking.wireless.enable = true; # Enables wireless support via wpa_supplicant.
networking . networkmanager . enable = true ;
nixpkgs . config . packageOverrides = pkgs : {
comptonkawase = pkgs . compton . overrideAttrs ( oldAttrs : {
src = pkgs . fetchFromGitLab {
owner = " d o r i a n 7 k 7 " ;
repo = " c o m p t o n - k a w a s e - b l u r " ;
rev = " 4 b 9 a c 1 e 8 3 f d 7 8 3 e a 2 d f a 6 8 d f c 5 f 0 0 d a 9 9 7 2 2 e 1 2 d " ;
sha256 = " 0 x c 2 h m h p a 6 z b w 0 9 x m h w a c q h l g q f d c 0 g 6 d 4 b 0 6 r 5 k 5 6 c 3 n g a f s y p 0 " ;
} ;
} ) ;
chromiumVAAPI = pkgs . chromium . override {
VAAPISupport = true ;
} ;
} ;
nixpkgs . config . allowUnfree = true ;
nixpkgs . config . pulseaudio = true ; #only mumble needs that
nixpkgs . config . android_sdk . accept_license = true ; #why the fuck is that a config?
boot = {
plymouth . enable = true ;
supportedFilesystems = [ " n t f s " ] ;
consoleLogLevel = 2 ; #TODO
tmpOnTmpfs = true ; #tmp should be a tmpfs. thanks
kernelPackages = pkgs . linuxPackages_latest ;
loader = {
grub = {
enable = true ;
version = 2 ;
device = " / d e v / s d a " ; # or "nodev" for efi only
} ;
} ;
} ;
networking = {
hostName = " n i x o s " ;
networkmanager . enable = true ;
} ;
# Configure network proxy if necessary
# networking.proxy.default = "http://user:password@proxy:port/";
# networking.proxy.noProxy = "127.0.0.1,localhost,internal.domain";
nixpkgs . config . allowUnfree = true ;
# Select internationalisation properties.
i18n = {
consoleFont = " L a t 2 - T e r m i n u s 1 6 " ;
consoleKeyMap = " u k " ;
defaultLocale = " e n _ G B . U T F - 8 " ;
} ;
services . emacs . enable = true ;
# services.emacs.package = import /home/klimi/.emacs.d { pkgs = pkgs; };
# Set your time zone.
time . timeZone = " E u r o p e / P r a g u e " ;
hardware . pulseaudio . support32Bit = true ;
# List packages installed in system profile. To search, run:
# $ nix search wget
environment . systemPackages = import ./packages.nix { pkgs = pkgs ; } ;
environment . systemPackages = with pkgs ; [
mumble_git
wget vim emacs
] ;
# Some programs need SUID wrappers, can be configured further or are
# started in user sessions.
# programs.mtr.enable = true;
# programs.gnupg.agent = { enable = true; enableSSHSupport = true; };
n">programs . gnupg . agent = { enable = true ; enableSSHSupport = true ; } ;
# List services that you want to enable:
@ -63,62 +92,808 @@
# networking.firewall.enable = false;
# Enable CUPS to print documents.
services . printing . enable = true ;
# services.printing.enable = true;
hardware = {
cpu . intel . updateMicrocode = true ; # super fast botnet upgrades
opengl . driSupport32Bit = true ;
pulseaudio . enable = true ; #hewwo lennart!
pulseaudio . support32Bit = true ;
bluetooth . enable = true ;
} ;
# Enable sound.
sound . enable = true ;
hardware . pulseaudio . enable = true ;
sound = {
enable = true ;
mediaKeys . enable = true ;
} ;
# Enable the X11 windowing system.
services . xserver . enable = true ;
services . xserver . layout = " g b " ;
# services.xserver.xkbOptions = "eurosign:e";
services = {
xserver = {
enable = true ;
layout = " g b " ;
# services.xserver.xkbOptions = "eurosign:e";
libinput . enable = true ;
displayManager . sddm . enable = true ;
desktopManager = {
xterm . enable = false ;
# plasma5 = {
# enable = true;
# enableQt4Support = true;
# };
} ;
windowManager . bspwm . enable = true ;
windowManager . bspwm . configFile = " / h o m e / k l i m i / . c o n f i g / b s p w m / b s p w m r c " ;
windowManager . bspwm . sxhkd . configFile = " / h o m e / k l i m i / . c o n f i g / s x h k d / s x h k d r c " ;
# services.xserver.windowManager.xmonad.enable = true;
services . xserver . videoDrivers = [ " n v i d i a L e g a c y 3 4 0 " ] ;
# hardware.opengl.driSupport32Bit = true;
} ;
} ;
# Enable touchpad support.
services . xserver . libinput . enable = true ;
services . xserver . libinput . tapping = true ;
fonts . fonts = with pkgs ; [
caladea
carlito
cantarell-fonts
comic-relief
liberation_ttf
fira
fira-mono
dejavu_fonts
powerline-fonts
] ;
systemd . services . autoGc = {
serviceConfig = {
ExecStart = " ${ config . nix . package . out } / b i n / n i x - c o l l e c t - g a r b a g e - - d e l e t e - o l d e r - t h a n 1 4 d " ;
} ;
} ;
programs . adb . enable = true ;
security . sudo . configFile =
''
Defaults:root,%wheel env_keep + = LOCALE_ARCHIVE
Defaults:root,%wheel env_keep + = NIX_PATH
Defaults:root,%wheel env_keep + = TERMINFO_DIRS
Defaults env_keep + = SSH_AUTH_SOCK
Defaults lecture = never
Defaults shell_noargs
root ALL = ( ALL ) SETENV : ALL
% wheel ALL = ( ALL ) NOPASSWD : ALL , SETENV : ALL
'' ;
# Enable the KDE Desktop Environment.
# services.xserver.displayManager.sddm.enable = true;
# services.xserver.desktopManager.plasma5.enable = true;
# Define a user account. Don't forget to set a password with ‘passwd’.
users . extraUsers = {
klimi = {
isNormalUser = true ;
uid = 1000 ;
home = " / h o m e / k l i m i " ;
extraGroups = [ " w h e e l " " n e t w o r k m a n a g e r " " v i d e o " " a d b u s e r s " " k v m " ] ;
shell = pkgs . zsh ;
} ;
} ;
environment . pathsToLink = [ " / s h a r e / z s h " ] ; #systemd-autocomplete uwu
nix . nixPath = [ " n i x p k g s = h t t p : / / n i x o s . o r g / c h a n n e l s / n i x o s - 1 9 . 0 3 / n i x e x p r s . t a r . x z " " n i x o s - c o n f i g = / h o m e / k l i m i / c o n f i g s / k l i m i \' s \ c o n f i g / d e s k t o p c o n f i g u r a t i o n . n i x " ] ; #i moved my config to my home, cool hm?
home-manager . users . klimi =
let
unstable = import ( fetchTarball https://nixos.org/channels/nixos-unstable/nixexprs.tar.xz ) { } ; #scrap the master plan. system on nixos-stable, rest pretty much stable
master = import ( builtins . fetchTarball { url = https://github.com/NixOS/nixpkgs/archive/master.tar.gz ; } ) { } ;
stable = import ( builtins . fetchTarball { url = https://github.com/NixOS/nixpkgs/archive/release-18.09.tar.gz ; } ) { } ;
in {
programs . zsh . enable = true ;
programs . zsh . history . size = 1000000 ;
programs . zsh . oh-my-zsh . enable = true ;
programs . zsh . oh-my-zsh . plugins = [ " h i s t o r y " " g i t " " c p " " s y s t e m d " " c o l o r i z e " " c o m m a n d - n o t - f o u n d " ] ;
programs . zsh . plugins = [
{
name = " z s h - a u t o s u g g e s t i o n s " ;
src = pkgs . fetchFromGitHub {
owner = " z s h - u s e r s " ;
repo = " z s h - a u t o s u g g e s t i o n s " ;
rev = " v 0 . 5 . 0 " ;
sha256 = " 1 9 q k g 4 b 2 f l v n p 2 l 0 c b k l 4 q b r n l 8 d 3 l y m 2 m m h 1 m x 9 n m j d 7 b 8 1 r 3 p f " ;
} ;
}
{
name = " z s h - s y n t a x - h i g h l i g h t i n g " ;
src = pkgs . fetchFromGitHub {
owner = " z s h - u s e r s " ;
repo = " z s h - s y n t a x - h i g h l i g h t i n g " ;
rev = " v 0 . 6 . 0 " ;
sha256 = " 0 z m q 6 6 d z a s m r 5 p w r i b y h 4 k b k k 2 3 j x b p d w 4 r j x x 0 i 7 d x 8 j j p 2 l z l 4 " ;
} ;
}
] ;
programs . zsh . oh-my-zsh . theme = " a g n o s t e r " ;
programs . zsh . shellAliases = {
nup = " e n v N I X P K G S _ A L L O W _ U N F R E E = 1 s u d o - E n i x o s - r e b u i l d s w i t c h - - u p g r a d e & & r m ~ / . c a c h e / k s y c o c a 5 _ * - r f & & k b u i l d s y c o c a 5 & & k b u i l d s y c o c a 5 - - n o i n c r e m e n t a l " ;
nupc = " s u d o n i x - c o l l e c t - g a r b a g e - d & & s u d o n i x - s t o r e - - o p t i m i s e & & e n v N I X P K G S _ A L L O W _ U N F R E E = 1 s u d o - E n i x o s - r e b u i l d s w i t c h - - u p g r a d e & & r m ~ / . c a c h e / k s y c o c a 5 _ * - r f & & k b u i l d s y c o c a 5 & & k b u i l d s y c o c a 5 - - n o i n c r e m e n t a l " ;
} ; # what the fuck is that? nix-store --optimise takes a long time on large stores. Though hardlinking can improve a lot sometimes... might as well use it "sometimes"
programs . zsh . initExtra = '' z s t y l e ' : c o m p l e t i o n : * ' r e h a s h t r u e
if [ [ - d " $ H O M E / . z i m " ] ] ; then
else
git clone - - recursive https://github.com/zimfw/zimfw.git $ HOME/.zim
for template_file in $ HOME/.zim/templates /* ; d o
user_file = " $ H O M E / . ' ' ${ template_file : t } "
cat '' ${ template_file } ''$ { u s e r _ f i l e } ( . N ) > ''$ { u s e r _ f i l e } . t m p & & m v ''$ { u s e r _ f i l e } { . t m p , }
done
fi
export ZIM_HOME = $ HOME/.zim
[ [ - s '' ${ ZIM_HOME } / i n i t . z s h ] ] & & s o u r c e ''$ { Z I M _ H O M E } / i n i t . z s h
'' ; # a u t o r e h a s h a n d s o u r c i n g . p r o f i l e m a k e s s e n s e . I n s t a l l i n g z i m z s h b e c a u s e m e l i k e y
nixpkgs . config . allowUnfree = true ; #forgive me stallman for i have sinned. x11vnc sucks though
home . file = {
" . X m o d m a p " . text = ''
!
! Swap Caps_Lock and Control_L
!
remove Lock = Caps_Lock
remove Control = Control_L
keysym Control_L = Caps_Lock
keysym Caps_Lock = Control_L
add Lock = Caps_Lock
add Control = Control_L
'' ; # w h o n e e d s c a p s
" . c o n f i g / b s p w m / b s p w m r c " . executable = true ;
" . c o n f i g / b s p w m / b s p w m r c " . text = ''
#!/bin/sh
export _JAVA_AWT_WM_NONREPARENTING = 1
export XDG_CURRENT_DESKTOP = GNOME
export QT_QPA_PLATFORMTHEME = " q t 5 c t "
export QT_AUTO_SCREEN_SCALE_FACTOR = 0
export TERM = rxvt
setxkbmap gb
bspc config focus_follows_pointer true
bspc monitor - d 1 2 3 4 5 6 7 8 9 0
bspc config border_width 1
bspc config window_gap 4
bspc config split_ratio 0 .52
bspc config borderless_monocle true
bspc config gapless_monocle true
feh - - bg-scale /home/klimi/.local/TODO.png
QSyncthingTray &
nm-applet &
pa-applet &
xmodmap ~/.Xmodmap &
telegram-desktop - startintray &
keepassxc &
'' ;
" . c o n f i g / s x h k d / s x h k d r c " . executable = true ;
" . c o n f i g / s x h k d / s x h k d r c " . text = ''
# screen-locker
XF86Launch1
i3lock-fancy
# brightness
XF86MonBrightnessUp
light - A 10
XF86MonBrightnessDown
light - U 10
# toggle terminal
super + Return
alacritty
# program launchers
super + @ space
rofi - show drun
alt + @ space
dmenu_run
# make sxhkd reload its configuration files:
super + Escape
pkill - USR1 - x sxhkd
#
# bspwm hotkeys
#
# quit an application
super + alt + q
bspc node - c
programs . fish . enable = true ;
programs . tmux . enable = true ;
# kill an application
super + alt + shift + q
bspc node - k
# alternate between the tiled and monocle layout
super + m
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 node
super + g
bspc node - s biggest
#
# 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 - { f , s } { west , south , north , east }
# focus the node for the given path jump
super + { p , b , comma , period }
bspc node - f @ { parent , brother , first , second }
# focus the next/previous node in the current desktop
super + { _ , shift + } c
bspc node - f { next , prev } . local
alt + Tab
bspc node - f next . local
alt + shift + Tab
bspc node - f prev . local
# focus the next/previous desktop in the current monitor
super + alt + { a , s }
bspc desktop - f { prev , next }
# 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 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 }
bspc { desktop - f , node - d } ' ^ { 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 } '
super + { _ , shift + } + 0
bspc { desktop - f , node - d } ' ^ 1 0 '
#
# 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 }
'' ;
" . c o n f i g / a l a c r i t t y / a l a c r i t t y . y m l " . executable = true ;
" . c o n f i g / a l a c r i t t y / a l a c r i t t y . y m l " . text = '' w i n d o w :
dimensions :
columns : 0
lines : 0
padding :
x : 2
y : 2
dynamic_padding : false
decorations : full
start_maximized : false
scrolling :
history : 10000
multiplier : 3
faux_multiplier : 3
auto_scroll : false
tabspaces : 8
font :
size : 11 .0
offset :
x : 0
y : 0
glyph_offset :
x : 0
y : 0
use_thin_strokes : true
render_timer : false
persistent_logging : false
draw_bold_text_with_bright_colors : true
colors :
primary :
background : ' 0 x000000'
foreground : ' 0 xeaeaea'
normal :
black : ' 0 x000000'
red : ' 0 xd54e53'
green : ' 0 xb9ca4a'
yellow : ' 0 xe6c547'
blue : ' 0 x7aa6da'
magenta : ' 0 xc397d8'
cyan : ' 0 x70c0ba'
white : ' 0 xeaeaea'
bright :
black : ' 0 x666666'
red : ' 0 xff3334'
green : ' 0 x9ec400'
yellow : ' 0 xe7c547'
blue : ' 0 x7aa6da'
magenta : ' 0 xb77ee0'
cyan : ' 0 x54ced6'
white : ' 0 xffffff'
indexed_colors : [ ]
visual_bell :
animation : EaseOutExpo
duration : 0
color : ' 0 xffffff'
background_opacity : 0 .4
mouse_bindings :
- { mouse : Middle , action : PasteSelection }
mouse :
double_click : { threshold : 300 }
triple_click : { threshold : 300 }
hide_when_typing : false
url :
modifiers : None
selection :
semantic_escape_chars : " , │ ` | : \" ' ( ) [ ] { } < > "
save_to_clipboard : false
dynamic_title : true
cursor :
style : Block
unfocused_hollow : true
live_config_reload : true
enable_experimental_conpty_backend : false
alt_send_esc : true
key_bindings :
- { key : Paste , action : Paste }
- { key : Copy , action : Copy }
- { key : L , mods : Control , action : ClearLogNotice }
- { key : L , mods : Control , chars : " \x 0 c " }
- { key : Home , chars : " \x 1 b O H " , mode : AppCursor }
- { key : Home , chars : " \x 1 b [ H " , mode : ~ AppCursor }
- { key : End , chars : " \x 1 b O F " , mode : AppCursor }
- { key : End , chars : " \x 1 b [ F " , mode : ~ AppCursor }
- { key : PageUp , mods : Shift , action : ScrollPageUp , mode : ~ Alt }
- { key : PageUp , mods : Shift , chars : " \x 1 b [ 5 ; 2 ~ " , mode : Alt }
- { key : PageUp , mods : Control , chars : " \x 1 b [ 5 ; 5 ~ " }
- { key : PageUp , chars : " \x 1 b [ 5 ~ " }
- { key : PageDown , mods : Shift , action : ScrollPageDown , mode : ~ Alt }
- { key : PageDown , mods : Shift , chars : " \x 1 b [ 6 ; 2 ~ " , mode : Alt }
- { key : PageDown , mods : Control , chars : " \x 1 b [ 6 ; 5 ~ " }
- { key : PageDown , chars : " \x 1 b [ 6 ~ " }
- { key : Tab , mods : Shift , chars : " \x 1 b [ Z " }
- { key : Back , chars : " \x 7 f " }
- { key : Back , mods : Alt , chars : " \x 1 b \x 7 f " }
- { key : Insert , chars : " \x 1 b [ 2 ~ " }
- { key : Delete , chars : " \x 1 b [ 3 ~ " }
- { key : Left , mods : Shift , chars : " \x 1 b [ 1 ; 2 D " }
- { key : Left , mods : Control , chars : " \x 1 b [ 1 ; 5 D " }
- { key : Left , mods : Alt , chars : " \x 1 b [ 1 ; 3 D " }
- { key : Left , chars : " \x 1 b [ D " , mode : ~ AppCursor }
- { key : Left , chars : " \x 1 b O D " , mode : AppCursor }
- { key : Right , mods : Shift , chars : " \x 1 b [ 1 ; 2 C " }
- { key : Right , mods : Control , chars : " \x 1 b [ 1 ; 5 C " }
- { key : Right , mods : Alt , chars : " \x 1 b [ 1 ; 3 C " }
- { key : Right , chars : " \x 1 b [ C " , mode : ~ AppCursor }
- { key : Right , chars : " \x 1 b O C " , mode : AppCursor }
- { key : Up , mods : Shift , chars : " \x 1 b [ 1 ; 2 A " }
- { key : Up , mods : Alt , chars : " \x 1 b [ 1 ; 3 A " }
- { key : Up , chars : " \x 1 b [ A " , mode : ~ AppCursor }
- { key : Up , chars : " \x 1 b O A " , mode : AppCursor }
- { key : Down , mods : Shift , chars : " \x 1 b [ 1 ; 2 B " }
- { key : Down , mods : Alt , chars : " \x 1 b [ 1 ; 3 B " }
- { key : Down , chars : " \x 1 b [ B " , mode : ~ AppCursor }
- { key : Down , chars : " \x 1 b O B " , mode : AppCursor }
- { key : F1 , chars : " \x 1 b O P " }
- { key : F2 , chars : " \x 1 b O Q " }
- { key : F3 , chars : " \x 1 b O R " }
- { key : F4 , chars : " \x 1 b O S " }
- { key : F5 , chars : " \x 1 b [ 1 5 ~ " }
- { key : F6 , chars : " \x 1 b [ 1 7 ~ " }
- { key : F7 , chars : " \x 1 b [ 1 8 ~ " }
- { key : F8 , chars : " \x 1 b [ 1 9 ~ " }
- { key : F9 , chars : " \x 1 b [ 2 0 ~ " }
- { key : F10 , chars : " \x 1 b [ 2 1 ~ " }
- { key : F11 , chars : " \x 1 b [ 2 3 ~ " }
- { key : F12 , chars : " \x 1 b [ 2 4 ~ " }
- { key : F1 , mods : Shift , chars : " \x 1 b [ 1 ; 2 P " }
- { key : F2 , mods : Shift , chars : " \x 1 b [ 1 ; 2 Q " }
- { key : F3 , mods : Shift , chars : " \x 1 b [ 1 ; 2 R " }
- { key : F4 , mods : Shift , chars : " \x 1 b [ 1 ; 2 S " }
- { key : F5 , mods : Shift , chars : " \x 1 b [ 1 5 ; 2 ~ " }
- { key : F6 , mods : Shift , chars : " \x 1 b [ 1 7 ; 2 ~ " }
- { key : F7 , mods : Shift , chars : " \x 1 b [ 1 8 ; 2 ~ " }
- { key : F8 , mods : Shift , chars : " \x 1 b [ 1 9 ; 2 ~ " }
- { key : F9 , mods : Shift , chars : " \x 1 b [ 2 0 ; 2 ~ " }
- { key : F10 , mods : Shift , chars : " \x 1 b [ 2 1 ; 2 ~ " }
- { key : F11 , mods : Shift , chars : " \x 1 b [ 2 3 ; 2 ~ " }
- { key : F12 , mods : Shift , chars : " \x 1 b [ 2 4 ; 2 ~ " }
- { key : F1 , mods : Control , chars : " \x 1 b [ 1 ; 5 P " }
- { key : F2 , mods : Control , chars : " \x 1 b [ 1 ; 5 Q " }
- { key : F3 , mods : Control , chars : " \x 1 b [ 1 ; 5 R " }
- { key : F4 , mods : Control , chars : " \x 1 b [ 1 ; 5 S " }
- { key : F5 , mods : Control , chars : " \x 1 b [ 1 5 ; 5 ~ " }
- { key : F6 , mods : Control , chars : " \x 1 b [ 1 7 ; 5 ~ " }
- { key : F7 , mods : Control , chars : " \x 1 b [ 1 8 ; 5 ~ " }
- { key : F8 , mods : Control , chars : " \x 1 b [ 1 9 ; 5 ~ " }
- { key : F9 , mods : Control , chars : " \x 1 b [ 2 0 ; 5 ~ " }
- { key : F10 , mods : Control , chars : " \x 1 b [ 2 1 ; 5 ~ " }
- { key : F11 , mods : Control , chars : " \x 1 b [ 2 3 ; 5 ~ " }
- { key : F12 , mods : Control , chars : " \x 1 b [ 2 4 ; 5 ~ " }
- { key : F1 , mods : Alt , chars : " \x 1 b [ 1 ; 6 P " }
- { key : F2 , mods : Alt , chars : " \x 1 b [ 1 ; 6 Q " }
- { key : F3 , mods : Alt , chars : " \x 1 b [ 1 ; 6 R " }
- { key : F4 , mods : Alt , chars : " \x 1 b [ 1 ; 6 S " }
- { key : F5 , mods : Alt , chars : " \x 1 b [ 1 5 ; 6 ~ " }
- { key : F6 , mods : Alt , chars : " \x 1 b [ 1 7 ; 6 ~ " }
- { key : F7 , mods : Alt , chars : " \x 1 b [ 1 8 ; 6 ~ " }
- { key : F8 , mods : Alt , chars : " \x 1 b [ 1 9 ; 6 ~ " }
- { key : F9 , mods : Alt , chars : " \x 1 b [ 2 0 ; 6 ~ " }
- { key : F10 , mods : Alt , chars : " \x 1 b [ 2 1 ; 6 ~ " }
- { key : F11 , mods : Alt , chars : " \x 1 b [ 2 3 ; 6 ~ " }
- { key : F12 , mods : Alt , chars : " \x 1 b [ 2 4 ; 6 ~ " }
- { key : F1 , mods : Super , chars : " \x 1 b [ 1 ; 3 P " }
- { key : F2 , mods : Super , chars : " \x 1 b [ 1 ; 3 Q " }
- { key : F3 , mods : Super , chars : " \x 1 b [ 1 ; 3 R " }
- { key : F4 , mods : Super , chars : " \x 1 b [ 1 ; 3 S " }
- { key : F5 , mods : Super , chars : " \x 1 b [ 1 5 ; 3 ~ " }
- { key : F6 , mods : Super , chars : " \x 1 b [ 1 7 ; 3 ~ " }
- { key : F7 , mods : Super , chars : " \x 1 b [ 1 8 ; 3 ~ " }
- { key : F8 , mods : Super , chars : " \x 1 b [ 1 9 ; 3 ~ " }
- { key : F9 , mods : Super , chars : " \x 1 b [ 2 0 ; 3 ~ " }
- { key : F10 , mods : Super , chars : " \x 1 b [ 2 1 ; 3 ~ " }
- { key : F11 , mods : Super , chars : " \x 1 b [ 2 3 ; 3 ~ " }
- { key : F12 , mods : Super , chars : " \x 1 b [ 2 4 ; 3 ~ " }
- { key : NumpadEnter , chars : " \n " }
- { key : Up , mods : Control , action : IncreaseFontSize }
- { key : Down , mods : Control , action : DecreaseFontSize }
'' ;
" . X d e f a u l t s " . executable = true ;
" . X d e f a u l t s " . text = ''
* foreground : #00cc00
* foreground_bold : #a8a19f
* cursor : #a8a19f
* background : #1b1918
! ! * background : rgba ( 0 , 0 , 0 , .7 )
! ! black
* color0 : #1b1918
* color8 : #766e6b
! ! red
* color1 : #f22c40
* color9 : #f22c40
! ! green
* color2 : #5ab738
* color10 : #5ab738
! ! yellow
* color3 : #d5911a
* color11 : #d5911a
! ! blue
* color4 : #407ee7
* color12 : #407ee7
! ! magenta
* color5 : #6666ea
* color13 : #6666ea
! ! cyan
* color6 : #00ad9c
* color14 : #00ad9c
! ! white
* color7 : #a8a19f
* color15 : #f1efee
rofi . color-enabled : true
rofi . color-window : #000, #000, #000
rofi . color-normal : #111, #819396, #222, #008ed4, #ffffff
rofi . color-active : #002b37, #008ed4, #003643, #008ed4, #66c6ff
rofi . color-urgent : #002b37, #da4281, #003643, #008ed4, #890661
rofi . fake-transparency : true
rofi . lines : 3
rofi . bw : 0
rofi . opacity : " 1 0 "
rofi . hide-scrollbar : true
rofi . width : 30
Xcursor . theme : Maya-Blue
'' ;
} ;
services = {
dunst . enable = true ;
# flameshot.enable = true;
network-manager-applet . enable = true ;
nextcloud-client . enable = true ;
pasystray . enable = true ;
compton = {
enable = true ;
package = pkgs . comptonkawase ;
extraOptions = ''
glx-no-stencil = true ;
glx-copy-from-front = false ;
glx-swap-method = " u n d e f i n e d " ;
shadow = true ;
no-dnd-shadow = true ;
no-dock-shadow = true ;
# clear-shadow = true;
shadow-radius = 5 ;
shadow-offset-x = -5 ;
shadow-offset-y = -5 ;
shadow-opacity = 0 .5 ;
shadow-ignore-shaped = false ;
frame-opacity = 1 ;
inactive-opacity-override = false ;
alpha-step = 0 .06 ;
blur-method = " k a w a s e " ;
blur-strength = 10 ;
blur-background = true ;
blur-background-frame = true ;
mark-wmwin-focused = true ;
mark-ovredir-focused = true ;
use-ewmh-active-win = true ;
detect-rounded-corners = true ;
detect-client-opacity = true ;
dbe = false ;
paint-on-overlay = true ;
sw-opti = true ;
unredir-if-possible = true ;
focus-exclude = [ ] ;
detect-transient = true ;
detect-client-leader = true ;
wintypes :
{
tooltip :
{
fade = true ;
shadow = false ;
opacity = 0 .85 ;
focus = true ;
} ;
} ;
'' ;
} ;
polybar . enable = true ;
polybar . script = " p o l y b a r t o p & " ;
polybar . config = {
" c o l o r s " = {
background = " # 0 0 0 0 0 0 0 0 " ;
background-alt = " # 4 4 4 " ;
foreground = " # 0 0 3 2 5 6 " ;
foreground-alt = " # 2 1 8 4 0 d " ;
primary = " # f f 0 0 0 0 " ;
secondary = " # f f 0 c 0 0 " ;
alert = " # b d 2 c 4 0 " ;
col = " # 0 0 f " ;
} ;
" b a r / t o p " = {
width = " 1 0 0 % " ;
height = " 2 4 " ;
fixed-center = " f a l s e " ;
background = " \$ { c o l o r s . b a c k g r o u n d } " ;
foreground = " \$ { c o l o r s . f o r e g r o u n d } " ;
line-size = " 3 " ;
line-color = " { $ x r d b : c o l o r 1 } " ;
border-size = " 0 " ;
border-color = " # 0 0 0 0 0 0 0 0 " ;
padding-left = " 0 " ;
padding-right = " 0 " ;
module-margin-left = " 1 " ;
module-margin-right = " 2 " ;
font-0 = " m o n o : p i x e l s i z e = 9 ; 1 " ;
modules-center = " b s p w m " ;
modules-right = " c p u m e m o r y f i l e s y s t e m w l a n e t h b a t t e r y t e m p e r a t u r e d a t e " ;
tray-position = " r i g h t " ;
tray-padding = " 0 " ;
} ;
" m o d u l e / f i l e s y s t e m " = {
type = " i n t e r n a l / f s " ;
interval = " 2 5 " ;
mount-0 = " / " ;
label-mounted = " % m o u n t p o i n t % : % u s e d % / % t o t a l % : % p e r c e n t a g e _ u s e d % % " ;
label-unmounted = " % m o u n t p o i n t % n o t m o u n t e d " ;
label-unmounted-foreground = " \$ { c o l o r s . f o r e g r o u n d - a l t } " ;
} ;
" m o d u l e / b s p w m " = {
wm-restack = " b s p w m " ;
scroll-up = " b s p w m - d e s k n e x t " ;
scroll-down = " b s p w m - d e s k p r e v " ;
type = " i n t e r n a l / b s p w m " ;
label-focused = " % i n d e x % " ;
label-focused-background = " \$ { c o l o r s . b a c k g r o u n d - a l t } " ;
label-focused-underline = " \$ { c o l o r s . p r i m a r y } " ;
label-focused-padding = " 2 " ;
label-occupied = " % i n d e x % " ;
label-occupied-padding = " 2 " ;
label-urgent = " % i n d e x % ! " ;
label-urgent-background = " \$ { c o l o r s . a l e r t } " ;
label-urgent-padding = " 2 " ;
label-empty = " % i n d e x % " ;
label-empty-foreground = " \$ { c o l o r s . f o r e g r o u n d - a l t } " ;
label-empty-padding = " 2 " ;
} ;
" m o d u l e / c p u " = {
type = " i n t e r n a l / c p u " ;
interval = " 2 " ;
format-prefix = " C P U : " ;
label = " % p e r c e n t a g e % % " ;
} ;
" m o d u l e / m e m o r y " = {
type = " i n t e r n a l / m e m o r y " ;
interval = " 2 " ;
format-prefix = " M E M : " ;
label = " % p e r c e n t a g e _ u s e d % % " ;
} ;
" m o d u l e / w l a n " = {
type = " i n t e r n a l / n e t w o r k " ;
interface = " w l a n 0 " ;
interval = " 3 . 0 " ;
format-connected = " < l a b e l - c o n n e c t e d > " ;
format-connected-underline = " \$ { c o l o r s . p r i m a r y } " ;
label-connected = " % e s s i d % " ;
format-disconnected = " < l a b e l - d i s c o n n e c t e d > " ;
format-disconnected-underline = " \$ { c o l o r s . f o r e g r o u n d } " ;
label-disconnected = " n o w i f i " ;
label-disconnected-foreground = " \$ { c o l o r s . f o r e g r o u n d - a l t } " ;
} ;
" m o d u l e / e t h " = {
type = " i n t e r n a l / n e t w o r k " ;
interface = " e t h 0 " ;
interval = " 3 . 0 " ;
format-connected-underline = " \$ { c o l o r s . p r i m a r y } " ;
format-connected-prefix-foreground = " \$ { c o l o r s . p r i m a r y } " ;
label-connected = " % l o c a l _ i p % " ;
format-disconnected = " < l a b e l - d i s c o n n e c t e d > " ;
format-disconnected-underline = " \$ { c o l o r s . f o r e g r o u n d } " ;
label-disconnected = " n o e t h " ;
label-disconnected-foreground = " \$ { c o l o r s . f o r e g r o u n d - a l t } " ;
} ;
" m o d u l e / d a t e " = {
type = " i n t e r n a l / d a t e " ;
interval = " 1 " ;
date = " % A , t h e % d . % m ( % B ) . % Y " ;
time = " , % X " ;
format-underline = " \$ { c o l o r s . f o r e g r o u n d - a l t } " ;
label = " % d a t e % % t i m e % " ;
} ;
" m o d u l e / b a t t e r y " = {
type = " i n t e r n a l / b a t t e r y " ;
battery = " B A T 0 " ;
adapter = " A D P 1 " ;
full-at = " 9 8 " ;
format-charging = " < l a b e l - c h a r g i n g > " ;
format-charging-underline = " \$ { c o l o r s . p r i m a r y } " ;
format-discharging = " < l a b e l - d i s c h a r g i n g > " ;
format-discharging-underline = " \$ { c o l o r s . f o r e g r o u n d } " ;
format-full-prefix = " F u l l " ;
format-full-prefix-foreground = " \$ { c o l o r s . f o r e g r o u n d - a l t } " ;
format-full-underline = " \$ { c o l o r s . f o r e g r o u n d - a l t } " ;
} ;
" m o d u l e / t e m p e r a t u r e " = {
type = " i n t e r n a l / t e m p e r a t u r e " ;
thermal-zone = " 0 " ;
warn-temperature = " 6 0 " ;
format = " < l a b e l > " ;
format-underline = " \$ { c o l o r s . f o r e g r o u n d - a l t } " ;
format-warn = " < l a b e l - w a r n > " ;
format-warn-underline = " \$ { c o l o r s . p r i m a r y } " ;
label = " % t e m p e r a t u r e - c % " ;
label-warn = " % t e m p e r a t u r e - c % " ;
label-warn-foreground = " \$ { c o l o r s . s e c o n d a r y } " ;
} ;
" s e t t i n g s " = {
screenchange-reload = " t r u e " ;
} ;
" g l o b a l / w m " = {
margin-top = " 5 " ;
margin-bottom = " 5 " ;
} ;
} ;
screen-locker = {
enable = true ;
lockCmd = " i 3 l o c k - f a n c y " ;
} ;
} ;
home . packages = with pkgs ; [
( winetricks . override { wine = wineWowPackages . full ; } )
wineWowPackages . full
unstable . firefox
unstable . alacritty
unstable . i3lock-fancy
unstable . glxinfo
unstable . arc-kde-theme
unstable . ark
unstable . pa_applet
unstable . qsyncthingtray
unstable . chromium
unstable . arc-kde-theme
unstable . ark
unstable . cmatrix
unstable . evince
unstable . file
unstable . filezilla
unstable . ffmpeg-full
unstable . flameshot #is gud
unstable . gimp
unstable . git
unstable . glibcLocales
unstable . glxinfo
unstable . htop
unstable . jdk
unstable . kdeApplications . gwenview
unstable . keepassxc
unstable . krename-qt5
unstable . libreoffice
unstable . lm_sensors
unstable . lolcat
unstable . mpv
unstable . ncdu
unstable . nextcloud-client
unstable . nix-index #i can search for files in nix packages... coool
unstable . notepadqq #hurrdurr emacs masterrace
unstable . oxygen #pretty hard to breathe without
unstable . oxygen-icons5
unstable . pavucontrol
unstable . pciutils #why the fuck is lspci included in here but not in base?
unstable . pcsx2 #wanna heat up my notebook?
unstable . powertop
unstable . qbittorrent
unstable . qsyncthingtray
unstable . quasselClient
unstable . qownnotes
unstable . quaternion #qool matrix client
unstable . quota
unstable . smplayer
unstable . steam
unstable . syncthing
unstable . tdesktop
unstable . thunderbird
unstable . tigervnc
unstable . toilet
unstable . unrar
unstable . unzip
unstable . vimHugeX
unstable . vlc
unstable . vscodium #powershell indent crashes on windows
unstable . weechat
unstable . x11vnc
unstable . xorg . xev #pressing keys n fun
unstable . xorg . xmodmap
unstable . xrdp
#unstable.yakuake #i should configure it already
unstable . youtube-dl
] ;
} ;
# This value determines the NixOS release with which your system is to be
# compatible, in order to avoid breaking some software such as database
# servers. You should change this only after NixOS release notes say you
# should.
system . stateVersion = " 1 8 . 0 9 " ; # Did you read the comment?
powerManagement . enable = true ;
powerManagement . powertop . enable = true ;
system . copySystemConfiguration = true ;
system . stateVersion = " 1 9 . 0 3 " ; # Did you read the comment?
}