Browse Source

New install

master
Martin Klimeš 4 years ago
parent
commit
8cc01fb8ae
2 changed files with 841 additions and 65 deletions
  1. +838
    -63
      configuration.nix
  2. +3
    -2
      hardware-configuration.nix

+ 838
- 63
configuration.nix View File

@ -8,48 +8,77 @@
imports =
[ # Include the results of the hardware scan.
./hardware-configuration.nix
./users.nix
./workstation.nix
(import (builtins.fetchGit { url = "https://github.com/rycee/home-manager.git"; ref = "master";}) {}).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 = "/dev/sda"; # or "nodev" for efi only
programs.vim.defaultEditor = true;
programs.wireshark.enable = true;
networking.hostName = "kurixos"; # 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 = "dorian7k7";
repo = "compton-kawase-blur";
rev = "4b9ac1e83fd783ea2dfa68dfc5f00da99722e12d";
sha256 = "0xc2hmhpa6zbw09xmhwacqhlgqfdc0g6d4b06r5k56c3ngafsyp0";
};
});
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 = [ "ntfs" ];
consoleLogLevel = 2; #TODO
tmpOnTmpfs = true; #tmp should be a tmpfs. thanks
kernelPackages = pkgs.linuxPackages_latest;
loader = {
grub = {
enable = true;
version = 2;
device = "/dev/sda"; # or "nodev" for efi only
};
};
};
networking = {
hostName = "nixos";
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 = "Lat2-Terminus16";
consoleKeyMap = "uk";
defaultLocale = "en_GB.UTF-8";
};
services.emacs.enable = true;
# services.emacs.package = import /home/klimi/.emacs.d { pkgs = pkgs; };
# Set your time zone.
time.timeZone = "Europe/Prague";
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 = "gb";
# services.xserver.xkbOptions = "eurosign:e";
services = {
xserver = {
enable = true;
layout = "gb";
# 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 = "/home/klimi/.config/bspwm/bspwmrc";
windowManager.bspwm.sxhkd.configFile = "/home/klimi/.config/sxhkd/sxhkdrc";
# services.xserver.windowManager.xmonad.enable = true;
services.xserver.videoDrivers = [ "nvidiaLegacy340" ];
# 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}/bin/nix-collect-garbage --delete-older-than 14d";
};
};
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 = "/home/klimi";
extraGroups = [ "wheel" "networkmanager" "video" "adbusers" "kvm" ];
shell = pkgs.zsh;
};
};
environment.pathsToLink = [ "/share/zsh" ]; #systemd-autocomplete uwu
nix.nixPath = ["nixpkgs=http://nixos.org/channels/nixos-19.03/nixexprs.tar.xz" "nixos-config=/home/klimi/configs/klimi\'s\ config/desktopconfiguration.nix" ]; #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 = ["history" "git" "cp" "systemd" "colorize" "command-not-found"];
programs.zsh.plugins = [
{
name = "zsh-autosuggestions";
src = pkgs.fetchFromGitHub {
owner = "zsh-users";
repo = "zsh-autosuggestions";
rev = "v0.5.0";
sha256 = "19qkg4b2flvnp2l0cbkl4qbrnl8d3lym2mmh1mx9nmjd7b81r3pf";
};
}
{
name = "zsh-syntax-highlighting";
src = pkgs.fetchFromGitHub {
owner = "zsh-users";
repo = "zsh-syntax-highlighting";
rev = "v0.6.0";
sha256 = "0zmq66dzasmr5pwribyh4kbkk23jxbpdw4rjxx0i7dx8jjp2lzl4";
};
}
];
programs.zsh.oh-my-zsh.theme = "agnoster";
programs.zsh.shellAliases = {
nup = "env NIXPKGS_ALLOW_UNFREE=1 sudo -E nixos-rebuild switch --upgrade && rm ~/.cache/ksycoca5_* -rf && kbuildsycoca5 && kbuildsycoca5 --noincremental";
nupc = "sudo nix-collect-garbage -d && sudo nix-store --optimise && env NIXPKGS_ALLOW_UNFREE=1 sudo -E nixos-rebuild switch --upgrade && rm ~/.cache/ksycoca5_* -rf && kbuildsycoca5 && kbuildsycoca5 --noincremental";
}; # 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 = ''zstyle ':completion:*' rehash true
if [[ -d "$HOME/.zim" ]]; then
else
git clone --recursive https://github.com/zimfw/zimfw.git $HOME/.zim
for template_file in $HOME/.zim/templates/*; do
user_file="$HOME/.''${template_file:t}"
cat ''${template_file} ''${user_file}(.N) > ''${user_file}.tmp && mv ''${user_file}{.tmp,}
done
fi
export ZIM_HOME=$HOME/.zim
[[ -s ''${ZIM_HOME}/init.zsh ]] && source ''${ZIM_HOME}/init.zsh
''; #autorehash and sourcing .profile makes sense. Installing zim zsh because me likey
nixpkgs.config.allowUnfree = true; #forgive me stallman for i have sinned. x11vnc sucks though
home.file = {
".Xmodmap".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
'';#who needs caps
".config/bspwm/bspwmrc".executable = true;
".config/bspwm/bspwmrc".text = ''
#!/bin/sh
export _JAVA_AWT_WM_NONREPARENTING=1
export XDG_CURRENT_DESKTOP=GNOME
export QT_QPA_PLATFORMTHEME="qt5ct"
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 &
'';
".config/sxhkd/sxhkdrc".executable = true;
".config/sxhkd/sxhkdrc".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} '^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}
'';
".config/alacritty/alacritty.yml".executable = true;
".config/alacritty/alacritty.yml".text = ''window:
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: '0x000000'
foreground: '0xeaeaea'
normal:
black: '0x000000'
red: '0xd54e53'
green: '0xb9ca4a'
yellow: '0xe6c547'
blue: '0x7aa6da'
magenta: '0xc397d8'
cyan: '0x70c0ba'
white: '0xeaeaea'
bright:
black: '0x666666'
red: '0xff3334'
green: '0x9ec400'
yellow: '0xe7c547'
blue: '0x7aa6da'
magenta: '0xb77ee0'
cyan: '0x54ced6'
white: '0xffffff'
indexed_colors: []
visual_bell:
animation: EaseOutExpo
duration: 0
color: '0xffffff'
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: "\x0c" }
- { key: Home, chars: "\x1bOH", mode: AppCursor }
- { key: Home, chars: "\x1b[H", mode: ~AppCursor }
- { key: End, chars: "\x1bOF", mode: AppCursor }
- { key: End, chars: "\x1b[F", mode: ~AppCursor }
- { key: PageUp, mods: Shift, action: ScrollPageUp, mode: ~Alt }
- { key: PageUp, mods: Shift, chars: "\x1b[5;2~", mode: Alt }
- { key: PageUp, mods: Control, chars: "\x1b[5;5~" }
- { key: PageUp, chars: "\x1b[5~" }
- { key: PageDown, mods: Shift, action: ScrollPageDown, mode: ~Alt }
- { key: PageDown, mods: Shift, chars: "\x1b[6;2~", mode: Alt }
- { key: PageDown, mods: Control, chars: "\x1b[6;5~" }
- { key: PageDown, chars: "\x1b[6~" }
- { key: Tab, mods: Shift, chars: "\x1b[Z" }
- { key: Back, chars: "\x7f" }
- { key: Back, mods: Alt, chars: "\x1b\x7f" }
- { key: Insert, chars: "\x1b[2~" }
- { key: Delete, chars: "\x1b[3~" }
- { key: Left, mods: Shift, chars: "\x1b[1;2D" }
- { key: Left, mods: Control, chars: "\x1b[1;5D" }
- { key: Left, mods: Alt, chars: "\x1b[1;3D" }
- { key: Left, chars: "\x1b[D", mode: ~AppCursor }
- { key: Left, chars: "\x1bOD", mode: AppCursor }
- { key: Right, mods: Shift, chars: "\x1b[1;2C" }
- { key: Right, mods: Control, chars: "\x1b[1;5C" }
- { key: Right, mods: Alt, chars: "\x1b[1;3C" }
- { key: Right, chars: "\x1b[C", mode: ~AppCursor }
- { key: Right, chars: "\x1bOC", mode: AppCursor }
- { key: Up, mods: Shift, chars: "\x1b[1;2A" }
- { key: Up, mods: Alt, chars: "\x1b[1;3A" }
- { key: Up, chars: "\x1b[A", mode: ~AppCursor }
- { key: Up, chars: "\x1bOA", mode: AppCursor }
- { key: Down, mods: Shift, chars: "\x1b[1;2B" }
- { key: Down, mods: Alt, chars: "\x1b[1;3B" }
- { key: Down, chars: "\x1b[B", mode: ~AppCursor }
- { key: Down, chars: "\x1bOB", mode: AppCursor }
- { key: F1, chars: "\x1bOP" }
- { key: F2, chars: "\x1bOQ" }
- { key: F3, chars: "\x1bOR" }
- { key: F4, chars: "\x1bOS" }
- { key: F5, chars: "\x1b[15~" }
- { key: F6, chars: "\x1b[17~" }
- { key: F7, chars: "\x1b[18~" }
- { key: F8, chars: "\x1b[19~" }
- { key: F9, chars: "\x1b[20~" }
- { key: F10, chars: "\x1b[21~" }
- { key: F11, chars: "\x1b[23~" }
- { key: F12, chars: "\x1b[24~" }
- { key: F1, mods: Shift, chars: "\x1b[1;2P" }
- { key: F2, mods: Shift, chars: "\x1b[1;2Q" }
- { key: F3, mods: Shift, chars: "\x1b[1;2R" }
- { key: F4, mods: Shift, chars: "\x1b[1;2S" }
- { key: F5, mods: Shift, chars: "\x1b[15;2~" }
- { key: F6, mods: Shift, chars: "\x1b[17;2~" }
- { key: F7, mods: Shift, chars: "\x1b[18;2~" }
- { key: F8, mods: Shift, chars: "\x1b[19;2~" }
- { key: F9, mods: Shift, chars: "\x1b[20;2~" }
- { key: F10, mods: Shift, chars: "\x1b[21;2~" }
- { key: F11, mods: Shift, chars: "\x1b[23;2~" }
- { key: F12, mods: Shift, chars: "\x1b[24;2~" }
- { key: F1, mods: Control, chars: "\x1b[1;5P" }
- { key: F2, mods: Control, chars: "\x1b[1;5Q" }
- { key: F3, mods: Control, chars: "\x1b[1;5R" }
- { key: F4, mods: Control, chars: "\x1b[1;5S" }
- { key: F5, mods: Control, chars: "\x1b[15;5~" }
- { key: F6, mods: Control, chars: "\x1b[17;5~" }
- { key: F7, mods: Control, chars: "\x1b[18;5~" }
- { key: F8, mods: Control, chars: "\x1b[19;5~" }
- { key: F9, mods: Control, chars: "\x1b[20;5~" }
- { key: F10, mods: Control, chars: "\x1b[21;5~" }
- { key: F11, mods: Control, chars: "\x1b[23;5~" }
- { key: F12, mods: Control, chars: "\x1b[24;5~" }
- { key: F1, mods: Alt, chars: "\x1b[1;6P" }
- { key: F2, mods: Alt, chars: "\x1b[1;6Q" }
- { key: F3, mods: Alt, chars: "\x1b[1;6R" }
- { key: F4, mods: Alt, chars: "\x1b[1;6S" }
- { key: F5, mods: Alt, chars: "\x1b[15;6~" }
- { key: F6, mods: Alt, chars: "\x1b[17;6~" }
- { key: F7, mods: Alt, chars: "\x1b[18;6~" }
- { key: F8, mods: Alt, chars: "\x1b[19;6~" }
- { key: F9, mods: Alt, chars: "\x1b[20;6~" }
- { key: F10, mods: Alt, chars: "\x1b[21;6~" }
- { key: F11, mods: Alt, chars: "\x1b[23;6~" }
- { key: F12, mods: Alt, chars: "\x1b[24;6~" }
- { key: F1, mods: Super, chars: "\x1b[1;3P" }
- { key: F2, mods: Super, chars: "\x1b[1;3Q" }
- { key: F3, mods: Super, chars: "\x1b[1;3R" }
- { key: F4, mods: Super, chars: "\x1b[1;3S" }
- { key: F5, mods: Super, chars: "\x1b[15;3~" }
- { key: F6, mods: Super, chars: "\x1b[17;3~" }
- { key: F7, mods: Super, chars: "\x1b[18;3~" }
- { key: F8, mods: Super, chars: "\x1b[19;3~" }
- { key: F9, mods: Super, chars: "\x1b[20;3~" }
- { key: F10, mods: Super, chars: "\x1b[21;3~" }
- { key: F11, mods: Super, chars: "\x1b[23;3~" }
- { key: F12, mods: Super, chars: "\x1b[24;3~" }
- { key: NumpadEnter, chars: "\n" }
- { key: Up, mods: Control, action: IncreaseFontSize }
- { key: Down, mods: Control, action: DecreaseFontSize }
'';
".Xdefaults".executable =true;
".Xdefaults".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: "10"
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 = "undefined";
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 = "kawase";
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 = "polybar top &";
polybar.config = {
"colors" = {
background = "#00000000";
background-alt = "#444";
foreground = "#003256";
foreground-alt = "#21840d";
primary = "#ff0000";
secondary = "#ff0c00";
alert = "#bd2c40";
col = "#00f";
};
"bar/top" = {
width = "100%";
height = "24";
fixed-center = "false";
background = "\${colors.background}";
foreground = "\${colors.foreground}";
line-size = "3";
line-color = "{$xrdb:color1}";
border-size = "0";
border-color = "#00000000";
padding-left = "0";
padding-right = "0";
module-margin-left = "1";
module-margin-right = "2";
font-0 = "mono:pixelsize=9;1";
modules-center = "bspwm";
modules-right = "cpu memory filesystem wlan eth battery temperature date";
tray-position = "right";
tray-padding = "0 ";
};
"module/filesystem" = {
type = "internal/fs";
interval = "25";
mount-0 = "/";
label-mounted = "%mountpoint%: %used%/%total%: %percentage_used%%";
label-unmounted = "%mountpoint% not mounted";
label-unmounted-foreground = "\${colors.foreground-alt}";
};
"module/bspwm" = {
wm-restack = "bspwm";
scroll-up = "bspwm-desknext";
scroll-down = "bspwm-deskprev";
type = "internal/bspwm";
label-focused = "%index%";
label-focused-background = "\${colors.background-alt}";
label-focused-underline= "\${colors.primary}";
label-focused-padding = "2";
label-occupied = "%index%";
label-occupied-padding = "2";
label-urgent = "%index%!";
label-urgent-background = "\${colors.alert}";
label-urgent-padding = "2";
label-empty = "%index%";
label-empty-foreground = "\${colors.foreground-alt}";
label-empty-padding = "2";
};
"module/cpu" = {
type = "internal/cpu";
interval = "2";
format-prefix = "CPU: ";
label = "%percentage%%";
};
"module/memory" = {
type = "internal/memory";
interval = "2";
format-prefix = "MEM: ";
label = "%percentage_used%%";
};
"module/wlan" = {
type = "internal/network";
interface = "wlan0";
interval = "3.0";
format-connected = "<label-connected>";
format-connected-underline = "\${colors.primary}";
label-connected = "%essid%";
format-disconnected = "<label-disconnected>";
format-disconnected-underline = "\${colors.foreground}";
label-disconnected = "no wifi";
label-disconnected-foreground = "\${colors.foreground-alt}";
};
"module/eth" = {
type = "internal/network";
interface = "eth0";
interval = "3.0";
format-connected-underline = "\${colors.primary}";
format-connected-prefix-foreground = "\${colors.primary}";
label-connected = "%local_ip%";
format-disconnected = "<label-disconnected>";
format-disconnected-underline = "\${colors.foreground}";
label-disconnected = "no eth";
label-disconnected-foreground = "\${colors.foreground-alt}";
};
"module/date" = {
type = "internal/date";
interval = "1 ";
date = "%A, the %d.%m(%B).%Y";
time = ", %X";
format-underline = "\${colors.foreground-alt}";
label = "%date% %time%";
};
"module/battery" = {
type = "internal/battery";
battery = "BAT0";
adapter = "ADP1";
full-at = "98";
format-charging = "<label-charging>";
format-charging-underline = "\${colors.primary}";
format-discharging = "<label-discharging>";
format-discharging-underline = "\${colors.foreground}";
format-full-prefix = "Full ";
format-full-prefix-foreground = "\${colors.foreground-alt}";
format-full-underline = "\${colors.foreground-alt}";
};
"module/temperature" = {
type = "internal/temperature";
thermal-zone = "0";
warn-temperature = "60";
format = "<label>";
format-underline = "\${colors.foreground-alt}";
format-warn = "<label-warn>";
format-warn-underline = "\${colors.primary}";
label = "%temperature-c%";
label-warn = "%temperature-c%";
label-warn-foreground = "\${colors.secondary}";
};
"settings" = {
screenchange-reload = "true";
};
"global/wm" = {
margin-top = "5";
margin-bottom = "5";
};
};
screen-locker = {
enable = true;
lockCmd = "i3lock-fancy";
};
};
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 = "18.09"; # Did you read the comment?
powerManagement.enable = true;
powerManagement.powertop.enable = true;
system.copySystemConfiguration = true;
system.stateVersion = "19.03"; # Did you read the comment?
}

+ 3
- 2
hardware-configuration.nix View File

@ -9,16 +9,17 @@
];
boot.initrd.availableKernelModules = [ "ehci_pci" "ahci" "usb_storage" "sd_mod" ];
boot.initrd.kernelModules = [ ];
boot.kernelModules = [ "kvm-intel" ];
boot.extraModulePackages = [ ];
fileSystems."/" =
{ device = "/dev/disk/by-uuid/72ae2769-3a3e-4bcd-9878-2e0a6fc7e003";
{ device = "/dev/disk/by-uuid/da28e3d4-4534-4da1-8e29-aa4196189825";
fsType = "ext4";
};
swapDevices =
[ { device = "/dev/disk/by-uuid/0b909833-0603-4923-84c9-9b2e8e6c4a72"; }
[ { device = "/dev/disk/by-uuid/7972a0ef-66b7-4d1b-a248-be0ddf8b55fa"; }
];
nix.maxJobs = lib.mkDefault 4;

Loading…
Cancel
Save