From 8a46d9647e19d379e12484734cad2c338c53a2a7 Mon Sep 17 00:00:00 2001 From: Dustin Swan Date: Sun, 11 Nov 2018 21:04:44 -0500 Subject: [PATCH] Many changes to nixos configuration --- configuration.nix | 252 +++++++++++++++++++++++++++++++++------------- 1 file changed, 184 insertions(+), 68 deletions(-) diff --git a/configuration.nix b/configuration.nix index cb078dc..5f3839f 100644 --- a/configuration.nix +++ b/configuration.nix @@ -11,34 +11,51 @@ ./vpn.nix ]; - # Use the systemd-boot EFI boot loader. boot.loader.systemd-boot.enable = true; - boot.loader.efi.canTouchEfiVariables = true; + boot.loader.efi.canTouchEfiVariables = false; + boot.plymouth.enable = true; + boot.plymouth.theme = "fade-in"; + boot.plymouth.logo = pkgs.fetchurl { + url = "https://nixos.org/logo/nixos-hires.png"; + sha256 = "1ivzgd7iz0i06y36p8m5w48fd8pjqwxhdaavc0pxs7w1g7mcy5si"; + }; + + networking = { + hostName = "sw4n"; + networkmanager.enable = true; + nameservers = [ "1.1.1.1" ]; + }; - networking.hostName = "sw4n"; # Define your hostname. - networking.networkmanager.enable = true; + networking.firewall.allowedTCPPorts = [ 24800 ]; + # networking.firewall.allowedUDPPorts = [ ... ]; - # Select internationalisation properties. i18n = { consoleFont = "Lat2-Terminus16"; - consoleKeyMap = "dvorak"; + # consoleKeyMap = "dvorak"; defaultLocale = "en_US.UTF-8"; - # inputMethod.enabled = "ibus"; - inputMethod.enabled = "fcitx"; - # inputMethod.ibus.engines = with pkgs.ibus-engines; [ anthy mozc ]; - inputMethod.fcitx.engines = with pkgs.fcitx-engines; [ anthy mozc ]; + + inputMethod = { + enabled = "fcitx"; + fcitx.engines = with pkgs.fcitx-engines; [ anthy mozc ]; + }; }; - # Set your time zone. time.timeZone = "US/Eastern"; - # List packages installed in system profile. To search by name, run: - # $ nix-env -qaP | grep wget environment.systemPackages = with pkgs; [ - wget vim clipit compton emacs feh firefox fzf git gparted gucharmap htop keepassx2 keychain ncmpcpp neovim noto-fonts-cjk pandoc polybar python qutebrowser rofi rxvt_unicode silver-searcher syncthing tmux tree unzip wirelesstools xcape xclip spotify anki mopidy mopidy-soundcloud mopidy-spotify mopidy-youtube pavucontrol ranger + wget vim clipit compton feh firefox fzf git gparted gucharmap htop keepass keepassx2 keychain ncmpcpp neovim pandoc polybar qutebrowser rofi silver-searcher tmux tree unzip wirelesstools xcape xclip anki pavucontrol ranger blueman gifsicle networkmanager paprefs steam xscreensaver hledger hledger-web ledger mpv nnn nodejs pinentry vlc gnupg nitrogen alacritty wine tldr yarn spotify signal-desktop mu mosh ispell google-chrome emacs-all-the-icons-fonts gnupg python udiskie veracrypt bashmount exfat exfat-utils neofetch w3m toot rtv newsboat neomutt dunst ]; - nixpkgs.config.allowUnfree = true; + nixpkgs.config = { + allowUnfree = true; + + packageOverrides = pkgs: rec { + polybar = pkgs.polybar.override { + i3Support = true; + mpdSupport = true; + }; + }; + }; # Some programs need SUID wrappers, can be configured further or are # started in user sessions. @@ -50,60 +67,138 @@ enableSSHSupport = true; }; - # Enable the OpenSSH daemon. - # services.openssh.enable = true; - - services.udisks2.enable = true; - - # Open ports in the firewall. - # networking.firewall.allowedTCPPorts = [ ... ]; - # networking.firewall.allowedUDPPorts = [ ... ]; - - # Enable CUPS to print documents. - # services.printing.enable = true; - - services.xserver.enable = true; - services.xserver.layout = "dvorak"; - services.xserver.videoDriver = "nvidia"; - services.xserver.resolutions = [ { x = 2560; y = 1440; } ]; + services = { + # Enable the OpenSSH daemon. + # services.openssh.enable = true; + + transmission = { + enable = true; + }; + + mopidy = { + enable = true; + extensionPackages = [ pkgs.mopidy-spotify pkgs.mopidy-youtube pkgs.mopidy-iris ]; + configuration = '' + [audio] + output = pulsesink server=127.0.0.1 + + [local] + enabled = true + media_dir = /home/dustinswan/Music + + [spotify] + enabled = true + username = + password = + client_id = + client_secret = + bitrate = 320 + + [scrobbler] + enabled = true + username = dustinswan + ''; + }; + + locate.enable = true; + + udisks2.enable = true; + + printing.enable = true; + + upower.enable = true; + + offlineimap = { + enable = true; + install = true; + path = [ pkgs.gnupg ]; + }; + + xserver = { + enable = true; + + videoDrivers = [ "nvidia" ]; + resolutions = [ { x = 2560; y = 1440; } ]; + + desktopManager = { + default = "none"; + xterm.enable = false; + }; + + displayManager = { + lightdm.enable = true; + lightdm.background = "/home/dustinswan/Sync/Pictures/Wallpaper/green_squares.png"; + lightdm.autoLogin.user = "dustinswan"; + sessionCommands = '' + setxkbmap -option ctrl:nocaps -option compose:ralt + xcape -e 'Control_L=Escape' + xmodmap -e "keycode 96 = dead_greek dead_greek dead_greek dead_greek" + compton -b --inactive-opacity 0.90 + sh ~/dotfiles/logitech_linux_mouse.sh + xsetroot -solid black -cursor_name left_ptr + nitrogen --restore & + qsyncthingtray & + pasystray & + ''; + }; + + windowManager = { + i3 = { + enable = true; + package = pkgs.i3-gaps; + extraPackages = with pkgs; [ + dmenu + i3status + i3lock + ]; + }; + + default = "i3"; + }; + }; + + syncthing = { + enable = true; + dataDir = "/home/dustinswan"; + user = "dustinswan"; + }; + + urxvtd.enable = true; + + emacs = { + enable = true; + defaultEditor = true; + }; + + ipfs = { + enable = true; + }; + + synergy.server = { + enable = true; + screenName = "pc"; + }; - services.xserver.synaptics.enable = true; - services.xserver.synaptics.palmDetect = true; - services.xserver.synaptics.palmMinWidth = 5; - services.xserver.synaptics.palmMinZ = 20; - services.xserver.synaptics.twoFingerScroll = true; - services.xserver.synaptics.accelFactor = "0.005"; - services.xserver.synaptics.buttonsMap = [ 1 3 2 ]; - - services.upower.enable = true; - - services.xserver.desktopManager.xterm.enable = false; - services.xserver.displayManager.slim.defaultUser = "dustinswan"; - - services.xserver.windowManager.xmonad.enable = true; - services.xserver.windowManager.xmonad.enableContribAndExtras = true; - services.xserver.windowManager.default = "xmonad"; - - services.syncthing = { - enable = true; - # useInotify = true; - user = "dustinswan"; - dataDir = "/home/dustinswan/"; }; - services.urxvtd.enable = true; - - services.emacs.enable = true; - services.emacs.defaultEditor = true; + hardware = { + opengl.driSupport32Bit = true; + pulseaudio = { + enable = true; + support32Bit = true; + package = pkgs.pulseaudioFull; + zeroconf.discovery.enable = true; + tcp = { + enable = true; + anonymousClients.allowedIpRanges = ["127.0.0.1"]; + }; + }; + bluetooth.enable = true; + }; - hardware.opengl.driSupport32Bit = true; - hardware.pulseaudio.enable = true; - hardware.pulseaudio.support32Bit = true; - hardware.pulseaudio.package = pkgs.pulseaudioFull; - hardware.pulseaudio.zeroconf.discovery.enable = true; - hardware.bluetooth.enable = true; + sound.enable = true; sound.mediaKeys.enable = true; - + programs.fish.enable = true; fonts = { @@ -113,21 +208,42 @@ noto-fonts noto-fonts-cjk noto-fonts-emoji - siji ]; }; - users.extraUsers.dustinswan = { + virtualisation.virtualbox.host.enable = true; + + users.users.dustinswan = { + createHome = true; + description = "Dustin Swan"; isNormalUser = true; - extraGroups = [ "wheel" "sound" "pulse" "audio" "networkmanager" ]; + extraGroups = [ "wheel" "sound" "pulse" "audio" "networkmanager" "vboxusers" ]; uid = 1000; shell = pkgs.fish; }; + environment.etc."synergy-server.conf" = { text = '' + section: screens + pc: + mac: + end + + section: aliases + mac: + 192.168.1.2 + end + + section: links + pc: + left = mac + mac: + right = pc + end + ''; }; + # 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 = "17.09"; # Did you read the comment? - }