diff --git a/dotfiles/config/alacritty/alacritty.yml b/dotfiles/config/alacritty/alacritty.yml index fd251e1c..93ab7550 100644 --- a/dotfiles/config/alacritty/alacritty.yml +++ b/dotfiles/config/alacritty/alacritty.yml @@ -21,36 +21,31 @@ scrolling: # to the terminal. auto_scroll: false -# Colors (Solarized Light) +# Colors (Gotham) colors: # Default colors primary: - background: '#fdf6e3' # base3 - foreground: '#657b83' # base00 - - # Cursor colors - cursor: - text: '#fdf6e3' # base3 - cursor: '#657b83' # base00 + background: '0x0a0f14' + foreground: '0x98d1ce' # Normal colors normal: - black: '#073642' # base02 - red: '#dc322f' # red - green: '#859900' # green - yellow: '#b58900' # yellow - blue: '#268bd2' # blue - magenta: '#d33682' # magenta - cyan: '#2aa198' # cyan - white: '#eee8d5' # base2 + black: '0x0a0f14' + red: '0xc33027' + green: '0x26a98b' + yellow: '0xedb54b' + blue: '0x195465' + magenta: '0x4e5165' + cyan: '0x33859d' + white: '0x98d1ce' # Bright colors bright: - black: '#002b36' # base03 - red: '#cb4b16' # orange - green: '#586e75' # base01 - yellow: '#657b83' # base00 - blue: '#839496' # base0 - magenta: '#6c71c4' # violet - cyan: '#93a1a1' # base1 - white: '#fdf6e3' # base3 + black: '0x10151b' + red: '0xd26939' + green: '0x081f2d' + yellow: '0x245361' + blue: '0x093748' + magenta: '0x888ba5' + cyan: '0x599caa' + white: '0xd3ebe9' diff --git a/nixos/base.nix b/nixos/base.nix index b4d32fb0..7eb17aa9 100644 --- a/nixos/base.nix +++ b/nixos/base.nix @@ -61,12 +61,10 @@ hardware.bluetooth.enable = true; services.blueman.enable = true; - # Keyboard/Keymap - console.keyMap = "us"; - i18n = { defaultLocale = "en_US.UTF-8"; }; + console.useXkbConfig = true; # Update timezone automatically services.tzupdate.enable = true; @@ -85,9 +83,34 @@ hardware.keyboard.zsa.enable = true; services.xserver = { - exportConfiguration = true; enable = true; - layout = "us"; + + xkbOptions = "ctrl:swapcaps"; + layout = "us+rwin_as_hyper"; + extraLayouts.hyper = { + description = "Right Alt as Hyper key"; + languages = [ ]; + symbolsFile = pkgs.writeText "hyper" '' + partial modifier_keys + xkb_symbols "rwin_as_hyper" { + replace key { [ Hyper_R ] }; + modifier_map Mod3 { , Hyper_L, Hyper_R }; + }; + + partial modifier_keys + xkb_symbols "home_as_hyper" { + replace key { [ Hyper_L ] }; + modifier_map Mod3 { , Hyper_L, Hyper_R }; + }; + + partial modifier_keys + xkb_symbols "ralt_as_hyper" { + replace key { [ Hyper_L, Hyper_L ] }; + modifier_map Mod3 { , Hyper_L }; + }; + ''; + }; + desktopManager = { plasma5.enable = true; }; diff --git a/nixos/configuration.nix b/nixos/configuration.nix deleted file mode 100644 index bdc7f4af..00000000 --- a/nixos/configuration.nix +++ /dev/null @@ -1,336 +0,0 @@ -{ config, pkgs, options, ... }: -let - my-python-packages = python-packages: with python-packages; [ - appdirs - ipdb - ipython - numpy - openpyxl - pip - requests - tox - virtualenv - virtualenvwrapper - ]; - python-with-my-packages = pkgs.python3.withPackages my-python-packages; - all-hies = import (fetchTarball "https://github.com/infinisil/all-hies/tarball/master") {}; - notifications-tray-icon-source = pkgs.fetchFromGitHub { - owner = "IvanMalison"; - repo = "notifications-tray-icon"; - rev = "a855ebf924af3d695c5a10caca34b4eb88f58afb"; - sha256 = "1pd7jhapz080v9q9iv7g8jk9an24zkipmfgg9fmfjr1qjv1zdbib"; - }; - notifications-tray-icon = (import (notifications-tray-icon-source.outPath + "/default.nix")); -in -{ - - - # Disabling these waits disables the stuck on boot up issue - systemd.services.systemd-udev-settle.enable = false; - systemd.services.NetworkManager-wait-online.enable = false; - networking.firewall.enable = false; - - # Security - programs.gnupg.agent = { enable = true; enableSSHSupport = true; }; - services.pcscd.enable = true; - - # Networking - environment.etc."ipsec.secrets".text = '' - include ipsec.d/ipsec.nm-l2tp.secrets - ''; - networking.networkmanager = { - enable = true; - enableStrongSwan = true; - packages = [ pkgs.networkmanager-l2tp ]; - extraConfig = '' - [main] - rc-manager=resolvconf - ''; - }; - - # Audio - sound.enable = true; - hardware.pulseaudio.enable = true; - - # Video - hardware.opengl.driSupport32Bit = true; - - # Bluetooth - hardware.bluetooth.enable = true; - services.blueman.enable = true; - - # Keyboard - console.keyMap = "us"; - hardware.keyboard.zsa.enable = true; - - i18n = { - defaultLocale = "en_US.UTF-8"; - }; - - services.tzupdate.enable = true; - xdg.menus.enable = true; - - environment.systemPackages = with pkgs; [ - - # Applications - alacritty - # calibre - gnome3.cheese - dfeet - discord - emacs - firefox - gitter - google-chrome - hexchat - keybase-gui - kitty - kleopatra - # kodi - libreoffice - lxappearance - okular - # pulseeffects - quassel - slack - simplescreenrecorder - spotify - transmission-gtk - vlc - xfce.thunar - wire-desktop - yubikey-manager - zoom-us - - # Appearance - gnome-breeze - gnome3.adwaita-icon-theme - hicolor-icon-theme - materia-theme - numix-icon-theme-circle - papirus-icon-theme - # plasma5.breeze-gtk - # plasma5.breeze-qt5 - - # Haskell Desktop - haskellPackages.imalison-xmonad - haskellPackages.imalison-taffybar - haskellPackages.status-notifier-item - haskellPackages.dbus-hslogger - # notifications-tray-icon - - # Desktop - autorandr - betterlockscreen - blueman - clipit - feh - gnome3.gpaste - kdeconnect - libnotify - lxqt.lxqt-powermanagement - networkmanagerapplet - notify-osd-customizable - pasystray - picom - pinentry - pommed_light - rofi - rofi-pass - rofi-systemd - skippy-xd - synergy - udiskie - volnoti - - # xorg - wmctrl - xclip - xdotool - xorg.xev - xorg.xkbcomp - xorg.xwininfo - xsettingsd - - # Audio - pulsemixer - pavucontrol - playerctl - - # Haskell - cabal-install - cabal2nix - ghc - # stack - haskellPackages.hpack - haskellPackages.hasktags - haskellPackages.hoogle - # (all-hies.selection { selector = p: { inherit (p) ghc864 ghc865; }; }) - - # Scala - sbt - scala - - # Node - nodePackages.npm - nodejs - - # Rust - cargo - carnix - # rls - rustc - rustfmt - - # Clojure - boot - leiningen - - # Ruby - ruby - - # purescript - purescript - spago - - # dhall - haskellPackages.dhall - haskellPackages.dhall-json - - # Tools - automake - bind - binutils - cmake - dex - direnv - dpkg - emacs27Packages.cask - fd - file - gcc - gdb - gitAndTools.git-crypt - gitAndTools.git-extras - gitAndTools.git-fame - gitAndTools.git-sync - gitAndTools.hub - gitFull - glxinfo - gnumake - gnupg - gparted - htop - inetutils - inotify-tools - ispell - jq - libtool - # lorri - lsof - mercurial - ncdu - neofetch - openvpn - parallel - pass - patchelf - pciutils - plasma-workspace - pijul - powertop - prometheus - pscircle - pstree - python-with-my-packages - qt5.qttools - rcm - # rr - scrot - silver-searcher - stow - subversion - swig - tmux - tzupdate - unzip - usbutils - valgrind - wget - yubikey-manager - - # Nix - nix-prefetch-git - cachix - - # Miscellaneous - android-udev-rules - librsvg - - # Internet computer - ic-keysmith - quill - ]; - - # XXX: Plasma seems to set this - # environment.variables = { - # GDK_PIXBUF_MODULE_FILE = "${pkgs.librsvg.out}/lib/gdk-pixbuf-2.0/2.10.0/loaders.cache"; - # }; - - programs.zsh.enable = true; - - programs.adb.enable = true; - - services.openssh.enable = true; - - services.avahi = { - enable = true; - nssmdns = true; - publish = { - enable = true; - domain = true; - userServices = true; - }; - }; - - # TODO: Add a comment explaining what this does. - services.gnome.at-spi2-core.enable = true; - - services.kbfs.enable = true; - - services.autorandr.enable = true; - - services.locate.enable = true; - - # services.lorri.enable = true; - - services.xserver = { - exportConfiguration = true; - enable = true; - layout = "us"; - desktopManager = { - plasma5.enable = true; - }; - windowManager = { - session = [ - { - name = "xmonad"; - start = '' - /usr/bin/env imalison-xmonad & - waitPID=$! - ''; - } - ]; - }; - displayManager = { - sddm = { - enable = true; - }; - sessionCommands = '' - systemctl --user import-environment GDK_PIXBUF_MODULE_FILE DBUS_SESSION_BUS_ADDRESS PATH - ''; - }; - }; - - virtualisation.docker.enable = true; -} diff --git a/nixos/essential.nix b/nixos/essential.nix index 39bb10e8..def250bc 100644 --- a/nixos/essential.nix +++ b/nixos/essential.nix @@ -41,6 +41,7 @@ in # Haskell Desktop haskellPackages.imalison-xmonad haskellPackages.imalison-taffybar + haskellPackages.notifications-tray-icon haskellPackages.gtk-sni-tray haskellPackages.status-notifier-item haskellPackages.dbus-hslogger @@ -79,10 +80,11 @@ in htop ncdu lsof - tzupdate + pass rcm ripgrep silver-searcher + tzupdate tmux usbutils wget diff --git a/nixos/flake.nix b/nixos/flake.nix index 48978cfc..50b769d1 100644 --- a/nixos/flake.nix +++ b/nixos/flake.nix @@ -24,10 +24,13 @@ url = path:../dotfiles/config/taffybar/taffybar; inputs.nixpkgs.follows = "nixpkgs"; }; + notifications-tray-icon = { + url = github:IvanMalison/notifications-tray-icon/master; + }; }; outputs = { self, nix, nixpkgs, nixos-hardware, home-manager, taffybar, xmonad, - xmonad-contrib + xmonad-contrib, notifications-tray-icon }: let forAll = ({ ... }: { nix = { @@ -38,6 +41,7 @@ }; nixpkgs.overlays = [ nix.overlay taffybar.overlay xmonad.overlay xmonad-contrib.overlay + notifications-tray-icon.overlay ]; imports = [ home-manager.nixosModule diff --git a/nixos/fonts.nix b/nixos/fonts.nix index b3e28868..4843a7e6 100644 --- a/nixos/fonts.nix +++ b/nixos/fonts.nix @@ -22,7 +22,7 @@ allowBitmaps = true; useEmbeddedBitmaps = true; defaultFonts = { - monospace = [ "Fira Code" ]; + monospace = [ "Source Code Pro" ]; sansSerif = [ "Roboto" ]; serif = [ "Source Serif Pro" ]; }; diff --git a/nixos/home-manager.nix b/nixos/home-manager.nix index d6f338e0..94966c2e 100644 --- a/nixos/home-manager.nix +++ b/nixos/home-manager.nix @@ -2,11 +2,10 @@ xsession = { enable = true; preferStatusNotifierItems = true; - importedVariables = [ "GDK_PIXBUF_ICON_LOADER" ]; + importedVariables = [ "GDK_PIXBUF_ICON_LOADER" "PATH" ]; profileExtra = '' export ROFI_SYSTEMD_TERM="alacritty -e" . "$HOME/.lib/login.sh" - load_xkb_map.sh ''; }; diff --git a/nixos/nixpkgs b/nixos/nixpkgs index b330f3d2..c40115be 160000 --- a/nixos/nixpkgs +++ b/nixos/nixpkgs @@ -1 +1 @@ -Subproject commit b330f3d2b5a665da920194c9ea51569ff0f05122 +Subproject commit c40115beb0b0278867b794e69118785ed4d697e5