Merge branch 'master' of github.com:IvanMalison/dotfiles

This commit is contained in:
Ivan Malison 2018-06-11 14:16:13 -07:00
commit 35e8743e31
No known key found for this signature in database
GPG Key ID: 62530EFBE99DC2F8
13 changed files with 352 additions and 19 deletions

View File

@ -91,7 +91,7 @@
} }
#element { #element {
font: "Open Sans 13"; font: "Source Code Pro 13";
padding: 12px 1.5em 12px 14px; padding: 12px 1.5em 12px 14px;
} }

View File

@ -46,3 +46,23 @@ extra-deps:
- time-units-1.0.0 - time-units-1.0.0
- xml-helpers-1.0.0 - xml-helpers-1.0.0
resolver: lts-11.7 resolver: lts-11.7
nix:
packages:
- cairo
- gcc
- gnome2.pango
- gobjectIntrospection
- gtk3
- hicolor-icon-theme
- libdbusmenu-glib
- libdbusmenu-gtk3
- libxml2
- numix-icon-theme-circle
- pkgconfig
- x11
- xorg.libX11
- xorg.libXext
- xorg.libXinerama
- xorg.libXrandr
- xorg.libXrender
- zlib

View File

@ -1,5 +1,6 @@
[options] [options]
dynamic_title = true dynamic_title = true
scrollback_lines = -1
[colors] [colors]
# Base16 Default Dark # Base16 Default Dark
@ -49,3 +50,4 @@ color18 = #282828
color19 = #383838 color19 = #383838
color20 = #b8b8b8 color20 = #b8b8b8
color21 = #e8e8e8 color21 = #e8e8e8

View File

@ -1,9 +1,36 @@
#!/usr/bin/env bash #!/usr/bin/env bash
function min {
[ $1 -le $2 ] && echo "$1" || echo "$2"
}
function get_exe_dir {
# XXX: This exists because calling in to stack is kind of slow with nix
# integration enabled, even when just using it to get a path.
if [ -e ./.cached-stack-install-path ]; then
cat .cached-stack-install-path
else
stack path --local-install-root
fi
}
function do_rebuild {
}
SRC_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" SRC_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
EXE_NAME=imalison-xmonad EXE_NAME=imalison-xmonad
EXE_LOCATION=$(get_exe_dir)/bin/$EXE_NAME
output_file=$1; shift output_file=$1; shift
if [ -e ./.cached-stack-install-path ]; then
last_built=$(stat -c '%Y' $EXE_LOCATION)
xmonad_modified=$(stat -c '%Y' ./xmonad.hs)
[ $last_built -lt $xmonad_modified ] && stack install
else
stack install stack install
cp -uf $(stack path --local-install-root)/bin/$EXE_NAME $output_file fi
cp -uf $EXE_LOCATION $output_file

View File

@ -9,3 +9,12 @@ packages:
extra-deps: extra-deps:
- X11-xft-0.3.1 - X11-xft-0.3.1
resolver: lts-11.7 resolver: lts-11.7
nix:
packages:
- pkgconfig
- x11
- xorg.libX11
- xorg.libXext
- xorg.libXinerama
- xorg.libXrandr
- xorg.libXrender

View File

@ -461,7 +461,6 @@ myReplaceWindow =
-- Workspace Names for EWMH -- Workspace Names for EWMH
setWorkspaceNames :: X () setWorkspaceNames :: X ()
setWorkspaceNames = withWindowSet $ \s -> withDisplay $ \dpy -> do setWorkspaceNames = withWindowSet $ \s -> withDisplay $ \dpy -> do
sort' <- getSortByIndex sort' <- getSortByIndex
@ -865,6 +864,10 @@ goToNextScreenX = windows goToNextScreen
-- Key bindings -- Key bindings
volumeUp = spawn "set_volume.sh --unmute --change-volume +5"
volumeDown = spawn "set_volume.sh --unmute --change-volume -5"
mute = spawn "set_volume.sh --toggle-mute"
shiftToEmptyOnScreen direction = shiftToEmptyOnScreen direction =
followingWindow (windowToScreen direction True) >> shiftToEmptyAndView followingWindow (windowToScreen direction True) >> shiftToEmptyAndView
@ -907,7 +910,7 @@ addKeys conf@XConfig { modMask = modm } =
, ((modalt, xK_Return), deactivateFullAnd restoreAllMinimized) , ((modalt, xK_Return), deactivateFullAnd restoreAllMinimized)
, ((modm .|. controlMask, xK_t), , ((modm .|. controlMask, xK_t),
setReplaceTarget >> spawn "chromix-too open chrome://newtab") setReplaceTarget >> spawn "chromix-too open chrome://newtab")
, ((mod .|. controlMask, xK_c), chromeReplaceKill) , ((modm .|. controlMask, xK_c), chromeReplaceKill)
, ((hyper, xK_g), gatherThisClass) , ((hyper, xK_g), gatherThisClass)
-- Directional navigation -- Directional navigation
@ -1005,12 +1008,12 @@ addKeys conf@XConfig { modMask = modm } =
, ((0, xF86XK_AudioPrev), spawn "playerctl previous") , ((0, xF86XK_AudioPrev), spawn "playerctl previous")
-- Volume control -- Volume control
, ((0, xF86XK_AudioRaiseVolume), spawn "set_volume.sh up") , ((0, xF86XK_AudioRaiseVolume), volumeUp)
, ((0, xF86XK_AudioLowerVolume), spawn "set_volume.sh down") , ((0, xF86XK_AudioLowerVolume), volumeDown)
, ((0, xF86XK_AudioMute), spawn "set_volume.sh mute") , ((0, xF86XK_AudioMute), mute)
, ((modm, xK_i), spawn "set_volume.sh up") , ((modm, xK_i), volumeUp)
, ((modm, xK_k), spawn "set_volume.sh down") , ((modm, xK_k), volumeDown)
, ((modm, xK_u), spawn "set_volume.sh mute") , ((modm, xK_u), mute)
, ((hyper .|. shiftMask, xK_q), spawn "toggle_mute_current_window.sh") , ((hyper .|. shiftMask, xK_q), spawn "toggle_mute_current_window.sh")
, ((hctrl, xK_q), spawn "toggle_mute_current_window.sh only") , ((hctrl, xK_q), spawn "toggle_mute_current_window.sh only")

View File

@ -218,6 +218,7 @@ These definitions silence the byte-compiler.
Sets environment variables by starting a shell. Sets environment variables by starting a shell.
#+BEGIN_SRC emacs-lisp #+BEGIN_SRC emacs-lisp
(use-package exec-path-from-shell (use-package exec-path-from-shell
:disabled (not (equal system-type 'darwin))
:config :config
(progn (progn
;; For debugging ;; For debugging
@ -1417,6 +1418,7 @@ Paradox is a package.el extension. I have no use for it now that I use straight.
** server ** server
#+BEGIN_SRC emacs-lisp #+BEGIN_SRC emacs-lisp
(use-package server (use-package server
:demand t
:config :config
(progn (progn
(defvar imalison:default-server-file (defvar imalison:default-server-file
@ -2772,7 +2774,8 @@ The following is taken from [[https://github.com/syl20bnr/spacemacs/blob/a650877
#+BEGIN_SRC emacs-lisp #+BEGIN_SRC emacs-lisp
(use-package lsp-haskell (use-package lsp-haskell
:config :config
(add-hook 'haskell-mode-hook 'lsp-haskell-enable)) (when (executable-find "hie")
(add-hook 'haskell-mode-hook 'lsp-haskell-enable)))
#+END_SRC #+END_SRC
**** intero **** intero
Intero seems to be causing hangs, so it has been disabled Intero seems to be causing hangs, so it has been disabled
@ -3605,7 +3608,9 @@ alphanumeric characters only."
*** TeX *** TeX
#+BEGIN_SRC emacs-lisp #+BEGIN_SRC emacs-lisp
(use-package tex (use-package tex
:straight auctex :straight (auctex :host github :repo "raxod502/auctex"
:branch "fork/1"
:files (:defaults (:exclude "doc/*.texi")))
:commands TeX-mode :commands TeX-mode
:preface :preface
(progn (progn

View File

@ -10,7 +10,8 @@ function switch_sink_applications()
} }
current_default=$(pahelper.sh list | grep '*' | all_after_char ":" | xargs) current_default=$(pahelper.sh list | grep '*' | all_after_char ":" | xargs)
environment_variable_exists USE_ONLY_ONE_PASINK && pahelper.sh "$current_default" environment_variable_exists USE_ONLY_O_PASINK && pahelper.sh "$current_default"
pulseaudio-ctl "$@" # XXX: this does not prevent volumes higher than 100
pulsemixer "$@"
pashowvolume pashowvolume

View File

@ -60,7 +60,6 @@ function get_linux_distro {
return 1 return 1
} }
function is_osx() { function is_osx() {
if command_exists uname; then if command_exists uname; then
case `uname` in case `uname` in
@ -82,3 +81,7 @@ function source_directory_files {
source "$filename" source "$filename"
done done
} }
function min {
[ $1 -le $2 ] && echo "$1" || echo "$2"
}

View File

@ -13,7 +13,7 @@ pasink() {
pavolume () { pavolume () {
pacmd list-sinks | pacmd list-sinks |
awk '/^\s+name: /{indefault = $2 == "<'"$(pasink)"'>"} awk '/^\s+name: /{indefault = $2 == "<'"$(pasink)"'>"}
/^\s+volume: / && indefault {print $5; exit}' /^\s+volume: / && indefault {print $5; exit}' | grep -Eo "[0-9]*"
} }
paismuted () { paismuted () {
@ -24,7 +24,7 @@ pashowvolume () {
if paismuted; then if paismuted; then
volnoti-show -m volnoti-show -m
else else
volnoti-show "$(pavolume)" volnoti-show "$(min $(pavolume) 100)"
fi fi
} }

View File

@ -1,9 +1,11 @@
# -*- mode: sh; -*- # -*- mode: sh; -*-
# If there are issues with path, check /etc/profile for hard overrides of PATH. # If there are issues with path, check /etc/profile for hard overrides of PATH.
. "$HOME/.lib/login.sh" . "$HOME/.lib/login.sh"
# XXX: prevents https://github.com/xmonad/xmonad/issues/86 from affecting startup # XXX: prevents https://github.com/xmonad/xmonad/issues/86 from affecting startup
rm -f ~/.xmonad/xmonad.state rm -f ~/.xmonad/xmonad.state
load_xkb_map.sh load_xkb_map.sh
run_if_exists systemctl --user import-environment XDG_DATA_DIRS
run_if_exists systemctl --user start wm.target

201
nixos/configuration.nix Normal file
View File

@ -0,0 +1,201 @@
{ config, pkgs, ... }:
let
my-python-packages = python-packages: with python-packages; [
appdirs
requests
virtualenv
ipython
ipdb
virtualenvwrapper
pip
];
python-with-my-packages = pkgs.python3.withPackages my-python-packages;
in
{
boot.loader.systemd-boot.enable = true;
nixpkgs.config.allowUnfree = true;
security.sudo.wheelNeedsPassword = false;
networking.networkmanager.enable = true;
i18n = {
consoleKeyMap = "us";
defaultLocale = "en_US.UTF-8";
};
# Set your time zone.
# TODO: this should be set dynamically
time.timeZone = "America/Los_Angeles";
fonts = {
fonts = with pkgs; [
fira-mono
dejavu_fonts
noto-fonts-emoji
emojione
twemoji-color-font
source-code-pro
roboto
source-sans-pro
source-serif-pro
];
fontconfig = {
defaultFonts = {
monospace = [ "Source Code Pro" ];
sansSerif = [ "Roboto" ];
serif = [ "Source Serif Pro" ];
};
ultimate = {
enable = false;
};
};
};
# List packages installed in system profile. To search, run:
# $ nix search wget
environment.systemPackages = with pkgs; [
# Applications
google-chrome
firefox
hexchat
kodi
vlc
xfce.thunar
spotify
termite
rxvt_unicode
emacs
# Appearance
numix-icon-theme-circle
gnome3.adwaita-icon-theme
hicolor-icon-theme
# Desktop
autorandr
clipit
compton
feh
sddm-kcm
networkmanagerapplet
pinentry
pommed_light
rofi
rofi-pass
volnoti
xclip
xdotool
xorg.xkbcomp
xsettingsd
# Audio
pulsemixer
pavucontrol
playerctl
# Haskell
cabal-install
cabal2nix
ghc
stack2nix
stack
# Tools
binutils
gcc
gitFull
gnumake
gnupg
htop
ncdu
pass
python-with-my-packages
rcm
silver-searcher
stow
tmux
wget
zsh
# Miscellaneous
librsvg
];
# 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; };
# List services that you want to enable:
# Enable the OpenSSH daemon.
services.openssh.enable = true;
# Open ports in the firewall.
# networking.firewall.allowedTCPPorts = [ ... ];
# networking.firewall.allowedUDPPorts = [ ... ];
# Or disable the firewall altogether.
# networking.firewall.enable = false;
# Enable CUPS to print documents.
# services.printing.enable = true;
# Enable sound.
sound.enable = true;
hardware.pulseaudio.enable = true;
environment.loginShellInit = ". ~/.lib/nix_login.sh";
services.xserver = {
exportConfiguration = true;
enable = true;
layout = "us";
videoDrivers = [ "nvidia" ];
desktopManager = {
gnome3.enable = true;
default = "none";
};
windowManager = {
default = "xmonad";
i3.enable = true;
session = [{
name = "xmonad";
start = ''
/usr/bin/env imalison-xmonad &
waitPID=$!
'';
}];
};
displayManager = {
# lightdm = {
# enable = true;
# extraSeatDefaults=''
# greeter-hide-users=false
# '';
# };
sddm = {
enable = true;
};
};
};
hardware.opengl.driSupport32Bit = true;
# Define a user account. Don't forget to set a password with passwd.
users.extraUsers.imalison = {
name = "imalison";
group = "users";
isNormalUser = true;
extraGroups = [
"wheel" "disk" "audio" "video"
"networkmanager" "systemd-journal"
];
createHome = true;
uid = 1000;
home = "/home/imalison";
shell = pkgs.zsh;
};
system.stateVersion = "18.03"; # Did you read the comment?
}

View File

@ -0,0 +1,60 @@
{ config, lib, pkgs, ... }:
{
imports = [
<nixpkgs/nixos/modules/installer/scan/not-detected.nix>
../configuration.nix
];
boot.initrd.availableKernelModules = [ "xhci_pci" "ahci" "usbhid" "sd_mod" ];
boot.kernelModules = [ "kvm-intel" ];
boot.extraModulePackages = [ ];
fileSystems."/" = {
device = "/dev/disk/by-uuid/110e3bf8-19b7-4a39-8e2a-b4c3c0d59d0e";
fsType = "ext4";
};
fileSystems."/boot" = {
device = "/dev/disk/by-uuid/B2DA-CD21";
fsType = "vfat";
};
fileSystems."/arch-linux-root" = {
device = "/dev/disk/by-uuid/9095e51e-33f9-440d-a272-46e129800f81";
fsType = "ext4";
};
swapDevices =
[ { device = "/dev/disk/by-uuid/a6933b22-c7f4-4c57-b330-1450f313922e"; }
{ device = "/dev/disk/by-uuid/dbd49a76-4b3e-4b5c-9a88-68a9e61f6210"; }
];
nix.maxJobs = lib.mkDefault 4;
powerManagement.cpuFreqGovernor = lib.mkDefault "powersave";
boot.initrd.luks.devices = [
{
name = "root";
device = "/dev/sda3";
preLVM = true;
}
];
boot.loader.grub.device = "/dev/sda";
networking.hostName = "imalison-home";
boot.loader.efi.canTouchEfiVariables = true;
services.xserver.screenSection = ''
DefaultDepth 24
Option "RegistryDwords" "PerfLevelSrc=0x3322; PowerMizerDefaultAC=0x1"
Option "TripleBuffer" "True"
Option "Stereo" "0"
Option "nvidiaXineramaInfoOrder" "DFP-0"
Option "metamodes" "DVI-D-0: nvidia-auto-select +0+2160 {ForceCompositionPipeline=On, ForceFullCompositionPipeline=On}, HDMI-0: nvidia-auto-select +640+0 {ForceCompositionPipeline=On, ForceFullCompositionPipeline=On}, HDMI-1: nvidia-auto-select +2560+2160 {ForceCompositionPipeline=On, ForceFullCompositionPipeline=On}"
Option "SLI" "Off"
Option "MultiGPU" "Off"
Option "BaseMosaic" "off"
'';
}