├── .gitignore ├── .gitmodules ├── README.org ├── dotfiles ├── Xresources ├── boot │ ├── boot.properties │ └── profile.boot ├── cabal │ ├── .gitignore │ └── config ├── cider │ └── bootstrap.json ├── config │ ├── .gitignore │ ├── alacritty │ │ └── alacritty.toml │ ├── asciinema │ │ └── config │ ├── autorandr │ │ ├── AW3423DW_alone │ │ │ ├── config │ │ │ └── setup │ │ ├── AW3423DW_with_DELL_on_the_right │ │ │ ├── config │ │ │ └── setup │ │ ├── alienware_kats_office_alone │ │ │ ├── config │ │ │ └── setup │ │ ├── blade │ │ │ ├── config │ │ │ └── setup │ │ ├── default │ │ │ ├── config │ │ │ └── setup │ │ ├── family_room_above_stevie-nixos │ │ │ ├── config │ │ │ └── setup │ │ ├── home_tv │ │ │ ├── config │ │ │ ├── postswitch │ │ │ └── setup │ │ ├── kats_monitor │ │ │ ├── config │ │ │ └── setup │ │ ├── kats_room │ │ │ ├── config │ │ │ └── setup │ │ ├── kats_tv │ │ │ ├── config │ │ │ └── setup │ │ ├── kats_tv_1080 │ │ │ ├── config │ │ │ └── setup │ │ ├── kats_tv_right │ │ │ ├── config │ │ │ └── setup │ │ ├── loaner │ │ │ ├── config │ │ │ └── setup │ │ ├── loaner_with_monitor │ │ │ ├── config │ │ │ └── setup │ │ ├── loaner_with_tv │ │ │ ├── config │ │ │ └── setup │ │ ├── postswitch │ │ ├── sf_office_1 │ │ │ ├── config │ │ │ └── setup │ │ ├── sf_office_2 │ │ │ ├── config │ │ │ └── setup │ │ ├── sf_office_3 │ │ │ ├── config │ │ │ └── setup │ │ ├── sf_office_4 │ │ │ ├── config │ │ │ └── setup │ │ ├── sf_office_5 │ │ │ ├── config │ │ │ └── setup │ │ ├── sf_office_6 │ │ │ ├── config │ │ │ └── setup │ │ ├── sf_office_7 │ │ │ ├── config │ │ │ └── setup │ │ ├── stevie-nixos │ │ │ ├── config │ │ │ └── setup │ │ ├── strixy-minaj-240hz-solo │ │ │ ├── config │ │ │ └── setup │ │ ├── tv │ │ │ ├── config │ │ │ └── setup │ │ ├── tv_1080 │ │ │ ├── config │ │ │ └── setup │ │ └── work │ │ │ ├── config │ │ │ └── setup │ ├── clipit │ │ └── clipitrc │ ├── copyq │ │ ├── .gitignore │ │ └── copyq.conf │ ├── dolphin-emu │ │ ├── Dolphin.ini │ │ ├── GCPadNew.ini │ │ ├── Galaxy 2.ini │ │ ├── Logger.ini │ │ ├── Profiles │ │ │ └── Wiimote │ │ │ │ ├── Galaxy 2.ini │ │ │ │ └── qweruiop.ini │ │ └── WiimoteNew.ini │ ├── flake8 │ ├── fontconfig │ │ ├── conf.d │ │ │ └── 01-emoji.conf │ │ └── fonts.conf │ ├── gocode │ │ └── config.json │ ├── gtk-3.0 │ │ └── gtk.css │ ├── karabiner │ │ └── karabiner.json │ ├── keepassx │ │ └── keepassx2.ini │ ├── keepassxc │ │ └── keepassxc.ini │ ├── latexmk │ │ └── latexmkrc │ ├── lxqt │ │ ├── .gitignore │ │ ├── lxqt-powermanagement.conf │ │ ├── lxqt.conf │ │ └── power.conf │ ├── mimeapps.list │ ├── org.sparkleshare.SparkleShare │ │ ├── .gitignore │ │ ├── projects.xml │ │ └── ssh │ │ │ ├── 2017-02-21_23h31.key.pub │ │ │ └── known_hosts │ ├── parcellite │ │ └── parcelliterc │ ├── powerline │ │ ├── colors.json │ │ ├── colorschemes │ │ │ ├── shell │ │ │ │ └── default.json │ │ │ └── tmux │ │ │ │ └── default.json │ │ └── themes │ │ │ ├── shell │ │ │ └── default.json │ │ │ └── tmux │ │ │ └── default.json │ ├── pulseaudio-ctl │ │ └── config │ ├── remmina │ │ └── remmina.pref │ ├── rofi-pass │ │ └── config │ ├── rofi │ │ ├── colorful │ │ │ ├── colors.rasi │ │ │ ├── launcher.sh │ │ │ ├── style_1.rasi │ │ │ ├── style_10.rasi │ │ │ ├── style_11.rasi │ │ │ ├── style_12.rasi │ │ │ ├── style_2.rasi │ │ │ ├── style_3.rasi │ │ │ ├── style_4.rasi │ │ │ ├── style_5.rasi │ │ │ ├── style_6.rasi │ │ │ ├── style_7.rasi │ │ │ ├── style_8.rasi │ │ │ └── style_9.rasi │ │ ├── config.rasi │ │ └── white.rasi │ ├── screencloud │ │ └── ScreenCloud.conf │ ├── skippy-xd │ │ └── skippy-xd.rc │ ├── sparkleshare │ │ ├── 2015-11-20_19h52.key.pub │ │ └── config.xml │ ├── starship.toml │ ├── taffybar │ │ ├── .envrc │ │ ├── README.org │ │ ├── cabal.project │ │ ├── flake.lock │ │ ├── flake.nix │ │ ├── gotham.css │ │ ├── imalison-taffybar.cabal │ │ ├── ivanm-dfinity-razer.css │ │ ├── material.css │ │ ├── profile.nix │ │ ├── stack.yaml │ │ ├── taffybar.css │ │ ├── taffybar.hs │ │ └── uber-loaner.css │ ├── terminator │ │ └── config │ ├── termite │ │ └── config │ └── xmonad │ │ ├── .gitignore │ │ ├── LICENSE │ │ ├── base.nix │ │ ├── build │ │ ├── cabal.project │ │ ├── flake.lock │ │ ├── flake.nix │ │ ├── imalison-xmonad.cabal │ │ ├── overlay.nix │ │ └── xmonad.hs ├── dircolors ├── emacs.d │ ├── .gitignore │ ├── .mc-lists.el │ ├── README.org │ ├── init.el │ ├── kat-mode.org │ ├── org-api.el │ ├── org-config.org │ └── snippets │ │ ├── python-mode │ │ ├── ign │ │ ├── inp │ │ ├── ipdb │ │ ├── isa │ │ ├── logg │ │ └── noqa │ │ └── sh-mode │ │ └── env_bang ├── gdbinit ├── ghci ├── gitconfig ├── gitignore ├── hgignore ├── hindent.yaml ├── hushlogin ├── icons │ └── default │ │ └── index.theme ├── imwheelrc ├── inputrc ├── lein │ └── profile.clj ├── lib │ ├── bin │ │ ├── brightness.sh │ │ ├── brightness_manager.py │ │ ├── clipit_history.py │ │ ├── get_sink_input_info.hs │ │ ├── imalison-global.cabal │ │ ├── pager.sh │ │ ├── quill_from_seed.sh │ │ ├── random_choice.py │ │ ├── rofi_autorandr.sh │ │ ├── rofi_clipit.sh │ │ ├── rofi_command.sh │ │ ├── rofi_kill_all.sh │ │ ├── rofi_kill_process.sh │ │ ├── rofi_select_input.hs │ │ ├── stack.yaml │ │ ├── toggle_mute_current_window.sh │ │ └── windows-toast.ps1 │ ├── functions │ │ ├── add_to_path │ │ ├── all_after_char │ │ ├── ballchasing_lookup │ │ ├── command_exists │ │ ├── dbus_introspect │ │ ├── environment_variable_exists │ │ ├── externalip │ │ ├── find_store_path_gc_roots │ │ ├── get_chrome_folder_from_address │ │ ├── get_cols │ │ ├── get_sink_input_by_pid │ │ ├── join_by_char │ │ ├── list_interfaces │ │ ├── load_default_map │ │ ├── load_xkb_map │ │ ├── localip │ │ ├── nixpkgs_source │ │ ├── nr │ │ ├── ns │ │ ├── pahelper │ │ ├── paismuted │ │ ├── parse_timestamp │ │ ├── pashowvolume │ │ ├── pasink │ │ ├── path_from_lines │ │ ├── path_lines │ │ ├── pavolume │ │ ├── rlwhich │ │ ├── rofi_paswitch │ │ ├── rofi_shutter │ │ ├── run_if_exists │ │ ├── run_unity │ │ ├── set_volume │ │ ├── shell_contains │ │ ├── source_if_exists │ │ ├── split_by_char │ │ ├── start_chrome_for │ │ ├── timestamp │ │ ├── toggle_taffybar │ │ └── windows_toast │ ├── get_cols.awk │ ├── shellenv │ │ └── synergy.sh │ └── zsh │ │ ├── completion.sh │ │ ├── history.sh │ │ └── term_support.sh ├── notify-osd ├── pylintrc ├── sbt │ ├── .gitignore │ ├── 0.13 │ │ └── plugins │ │ │ └── plugins.sbt │ └── 1.0 │ │ └── plugins.sbt ├── slate.js ├── stalonetrayrc ├── synergy.conf ├── tmux.conf ├── tmux.powerline ├── wgetrc ├── xinitrc ├── xkb │ ├── keymap │ │ ├── adell │ │ ├── default │ │ ├── ivanm-dfinity-razer │ │ ├── jay-lenovo │ │ ├── katboon │ │ ├── stevie-nixos │ │ └── strixi-minaj │ └── symbols │ │ ├── hyper │ │ └── imalison ├── xsessionrc ├── xsettingsd ├── zprofile ├── zshenv └── zshrc ├── gen-gh-pages ├── .gitignore ├── Cask ├── compile.sh ├── deploy.sh ├── deploy_key.enc ├── faces.css └── generate-html.el ├── nix-darwin ├── flake.lock ├── flake.nix ├── gitea-actions-runner.nix └── justfile ├── nixos ├── android.nix ├── base.nix ├── ben.nix ├── bootstrap.nix ├── bootstrap │ ├── flake.lock │ └── flake.nix ├── cache-server.nix ├── cache.nix ├── code.nix ├── configuration.nix ├── desktop.nix ├── dunst.nix ├── electron.nix ├── emacs.nix ├── environment.nix ├── essential.nix ├── extra.nix ├── flake.lock ├── flake.nix ├── fonts.nix ├── games.nix ├── git-sync.nix ├── gitea-runner.nix ├── gitea.nix ├── gnome.nix ├── home-assistant.nix ├── home-manager.nix ├── imalison.nix ├── internet-computer.nix ├── justfile ├── k3s.nix ├── kat.nix ├── keybase.nix ├── keys.nix ├── kubelet-client.crt ├── kubelet.nix ├── laptop.nix ├── machines │ ├── adell.nix │ ├── bencbox.nix │ ├── biskcomp.nix │ ├── david-blade.nix │ ├── dean-zephyrus.nix │ ├── jay-lenovo-wsl.nix │ ├── jay-lenovo.nix │ ├── jimi-hendnix.nix │ ├── justin-bieber-creek.nix │ ├── nixquick.nix │ ├── railbird-sf.nix │ ├── ryzen-shine-original.nix │ ├── ryzen-shine.nix │ ├── strixi-minaj-wsl.nix │ └── strixi-minaj.nix ├── make-enable.nix ├── nix.nix ├── nixified.ai.nix ├── notification-sound.wav ├── nvidia-container-toolkit-overlay.nix ├── nvidia.nix ├── options.nix ├── overlay.nix ├── plasma.nix ├── postgres.nix ├── rabbitmq.nix ├── railbird-kubernetes.crt ├── raspberry-pi.nix ├── runc-overlay.nix ├── secrets.nix ├── secrets │ ├── 1896Folsom-k3s-token.age │ ├── api_service_account_key.json.age │ ├── cache-priv-key.pem.age │ ├── cache-pub-key.pem │ ├── discourse-admin-password.age │ ├── discourse-secret-key-base.age │ ├── gitea-runner-token.adele.age │ ├── gitea-runner-token.age │ ├── gitea-runner-token.biskcomp.age │ ├── gitea-runner-token.jimi-hendnix.age │ ├── gitea-runner-token.mac-demarco-mini.age │ ├── gitea-runner-token.nixquick.age │ ├── gitea-runner-token.railbird-sf.age │ ├── gitea-runner-token.ryzen-shine.age │ ├── google-assistant-integration-service-key.age │ ├── gpg-keys.age │ ├── gpg-passphrase.age │ ├── k3s-registry.yaml.age │ ├── nextcloud-admin.age │ ├── org-api-passwords.age │ ├── ryzen-shine-kubernetes-token.age │ ├── secrets.nix │ ├── vaultwarden-environment-file.age │ └── zwave-js.json.age ├── ssh.nix ├── syncthing.nix ├── tts.nix ├── user-specific.nix ├── users.nix ├── vscode.nix ├── wsl.nix ├── wyoming.nix └── xmonad.nix └── rcm-link.sh /.gitignore: -------------------------------------------------------------------------------- 1 | .ropeproject 2 | /.mail-sync 3 | /config/google-chrome 4 | /dotfiles/.pip/download_cache 5 | /dotfiles/.pip/pip.log 6 | /dotfiles/.tern-port 7 | /dotfiles/boot/cache 8 | /dotfiles/chrome-remote-desktop-session 9 | /dotfiles/cider/.cache/ 10 | /dotfiles/config/gtk-2.0/gtkfilechooser.ini 11 | /dotfiles/pip/cache/ 12 | /dotfiles/pip/download_cache/ 13 | /dotfiles/pip/pip.conf 14 | /dotfiles/pip/pip.log 15 | /dotfiles/sbt/0.13/plugins/project/ 16 | /dotfiles/sbt/0.13/plugins/target/ 17 | /dotfiles/sbt/boot/ 18 | /dotfiles/vim/.netrwhist 19 | /dotfiles/vim/bundle/* 20 | /dotfiles/wemo/cache 21 | gotools 22 | /dotfiles/config/xmonad/result 23 | /dotfiles/config/taffybar/result 24 | /dotfiles/emacs.d/*.sqlite 25 | /dotfiles/config/gtk-3.0/colors.css 26 | /dotfiles/emacs.d/.cache/ 27 | /dotfiles/config/fontconfig/conf.d/10-hm-fonts.conf 28 | -------------------------------------------------------------------------------- /.gitmodules: -------------------------------------------------------------------------------- 1 | [submodule "dotfiles/config/taffybar/taffybar"] 2 | path = dotfiles/config/taffybar/taffybar 3 | url = git@github.com:taffybar/taffybar.git 4 | [submodule "dotfiles/xmonad/xmonad"] 5 | path = dotfiles/config/xmonad/xmonad 6 | url = git@github.com:xmonad/xmonad.git 7 | [submodule "dotfiles/xmonad/xmonad-contrib"] 8 | path = dotfiles/config/xmonad/xmonad-contrib 9 | url = git@github.com:xmonad/xmonad-contrib.git 10 | [submodule "dotfiles/config/alacritty/themes"] 11 | path = dotfiles/config/alacritty/themes 12 | url = https://github.com/alacritty/alacritty-theme 13 | [submodule "nixos/railbird.ai"] 14 | path = nixos/railbird.ai 15 | url = git@github.com:billnerds/railbird.ai.git 16 | -------------------------------------------------------------------------------- /README.org: -------------------------------------------------------------------------------- 1 | dotfiles/emacs.d/README.org -------------------------------------------------------------------------------- /dotfiles/Xresources: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/colonelpanic8/dotfiles/a244ee2223c0b49c3527549e2b68cffaa42b598c/dotfiles/Xresources -------------------------------------------------------------------------------- /dotfiles/boot/boot.properties: -------------------------------------------------------------------------------- 1 | #http://boot-clj.com 2 | #Mon Feb 19 16:00:43 PST 2018 3 | BOOT_CLOJURE_NAME=org.clojure/clojure 4 | BOOT_CLOJURE_VERSION=1.7.0 5 | BOOT_VERSION=2.7.2 6 | -------------------------------------------------------------------------------- /dotfiles/boot/profile.boot: -------------------------------------------------------------------------------- 1 | (require 'boot.repl) 2 | 3 | (swap! boot.repl/*default-dependencies* 4 | concat '[[cider/cider-nrepl "0.15.1"]]) 5 | 6 | (swap! boot.repl/*default-middleware* 7 | conj 'cider.nrepl/cider-middleware) 8 | -------------------------------------------------------------------------------- /dotfiles/cabal/.gitignore: -------------------------------------------------------------------------------- 1 | /lib 2 | /logs 3 | /packages 4 | /share 5 | -------------------------------------------------------------------------------- /dotfiles/cabal/config: -------------------------------------------------------------------------------- 1 | repository hackage.haskell.org 2 | url: http://hackage.haskell.org/ 3 | 4 | remote-repo-cache: /home/imalison/.cabal/packages 5 | world-file: /home/imalison/.cabal/world 6 | extra-prog-path: /home/imalison/.cabal/bin 7 | build-summary: /home/imalison/.cabal/logs/build.log 8 | remote-build-reporting: anonymous 9 | jobs: $ncpus 10 | -------------------------------------------------------------------------------- /dotfiles/config/.gitignore: -------------------------------------------------------------------------------- 1 | /.mono/keypairs/ 2 | /Atom/ 3 | /Clementine/ 4 | /Code/ 5 | /Empathy/ 6 | /Franz/ 7 | /Gitter/ 8 | /Google Play Music Desktop Player/ 9 | /Keybase/ 10 | /Popcorn-Time/ 11 | /QtProject.conf 12 | /QtProject.conf/ 13 | /Slack/ 14 | /Trolltech.conf 15 | /autostart 16 | /browser-launcher2 17 | /chromium/ 18 | /chromium/Avatars/ 19 | /configstore 20 | /d-feet/ 21 | /dconf/ 22 | /discord/ 23 | /dleyna-renderer-service.conf 24 | /epiphany/ 25 | /evolution/ 26 | /gconf/ 27 | /gedit/ 28 | /gnome-session/ 29 | /google-chrome* 30 | /google-chrome-beta/* 31 | /gtk-3.0/bookmarks 32 | /hexchat 33 | /hub 34 | /libreoffice/ 35 | /linuxmint/ 36 | /menus/ 37 | /menus/applications-merged/ 38 | /menus/gnome-applications-merged 39 | /monitors.xml 40 | /mopidy 41 | /mopidy/spotify/ 42 | /nemo/ 43 | /pavucontrol.ini 44 | /pulse/ 45 | /sparkleshare/*.key 46 | /sparkleshare/*.pub 47 | /sparkleshare/avatars/ 48 | /sparkleshare/logs 49 | /spotify 50 | /sublime-text-3/ 51 | /systemd/user/*.target.wants/ 52 | /totem/ 53 | /transmission/dht.dat 54 | /transmission/resume 55 | /transmission/stats.json 56 | /transmission/torrents/ 57 | /unity3d/ 58 | /user-dirs.dirs 59 | /user-dirs.locale 60 | /vlc/ 61 | /xfce4/ 62 | -------------------------------------------------------------------------------- /dotfiles/config/alacritty/alacritty.toml: -------------------------------------------------------------------------------- 1 | [general] 2 | import = ["/home/imalison/.config/alacritty/themes/themes/dracula.toml"] 3 | 4 | [font] 5 | size = 8 6 | 7 | [scrolling] 8 | history = 10000 9 | multiplier = 3 10 | 11 | [window] 12 | decorations = "full" 13 | 14 | [window.padding] 15 | x = 10 16 | y = 10 17 | -------------------------------------------------------------------------------- /dotfiles/config/asciinema/config: -------------------------------------------------------------------------------- 1 | [api] 2 | token = 417ba97c-b532-4e4b-86df-a240314ae840 3 | -------------------------------------------------------------------------------- /dotfiles/config/autorandr/AW3423DW_alone/config: -------------------------------------------------------------------------------- 1 | output DP-1 2 | off 3 | output DP-2 4 | off 5 | output DP-3 6 | off 7 | output DP-4 8 | off 9 | output DP-5 10 | off 11 | output HDMI-0 12 | off 13 | output DP-0 14 | crtc 0 15 | mode 3440x1440 16 | pos 0x0 17 | primary 18 | rate 143.97 19 | x-prop-non_desktop 0 20 | -------------------------------------------------------------------------------- /dotfiles/config/autorandr/AW3423DW_alone/setup: -------------------------------------------------------------------------------- 1 | DP-0 00ffffffffffff0010ace4a153364b300c200104b55123783bfce1b04d3bb8250e505421080001010101010101010101010101010101e77c70a0d0a029503020150829623100001a000000ff0023473749594d78677741413052000000fd0001afffff63010a202020202020000000fc0044656c6c20415733343233445702d8020320f12309070183010000654b04000101e305c000e2006ae6060501634b004ed470a0d0a046503020e50c29623100001a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009970127903000f000aa4140e0e07012045000002010d310cdb4dbd13b85b620e01455403013c520101046f0d9f002f801f009f0554004c000400663801046f0d9f002f801f009f0566005e0004008b8101046f0d9f002f801f009f057e007600040000000000000000000000000000000000000000000000000000000000005f90 2 | -------------------------------------------------------------------------------- /dotfiles/config/autorandr/AW3423DW_with_DELL_on_the_right/config: -------------------------------------------------------------------------------- 1 | output DP-1 2 | off 3 | output DP-2 4 | off 5 | output DP-3 6 | off 7 | output DP-4 8 | off 9 | output DP-5 10 | off 11 | output DP-0 12 | crtc 0 13 | mode 3440x1440 14 | pos 0x0 15 | primary 16 | rate 143.97 17 | x-prop-non_desktop 0 18 | output HDMI-0 19 | crtc 1 20 | mode 2560x1440 21 | pos 3440x0 22 | rate 59.95 23 | x-prop-non_desktop 0 24 | -------------------------------------------------------------------------------- /dotfiles/config/autorandr/AW3423DW_with_DELL_on_the_right/setup: -------------------------------------------------------------------------------- 1 | DP-0 00ffffffffffff0010ace4a153364b300c200104b55123783bfce1b04d3bb8250e505421080001010101010101010101010101010101e77c70a0d0a029503020150829623100001a000000ff0023473749594d78677741413052000000fd0001afffff63010a202020202020000000fc0044656c6c20415733343233445702d8020320f12309070183010000654b04000101e305c000e2006ae6060501634b004ed470a0d0a046503020e50c29623100001a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009970127903000f000aa4140e0e07012045000002010d310cdb4dbd13b85b620e01455403013c520101046f0d9f002f801f009f0554004c000400663801046f0d9f002f801f009f0566005e0004008b8101046f0d9f002f801f009f057e007600040000000000000000000000000000000000000000000000000000000000005f90 2 | HDMI-0 00ffffffffffff0010ac69d0534d39312d1a0103803c2278ee4455a9554d9d260f5054a54b00b300d100714fa9408180778001010101565e00a0a0a029503020350055502100001a000000ff00483759434336423831394d530a000000fc0044454c4c205532373135480a20000000fd0038561e711e000a202020202020019c020322f14f1005040302071601141f1213202122230907078301000065030c002000023a801871382d40582c250055502100001e011d8018711c1620582c250055502100009e011d007251d01e206e28550055502100001e8c0ad08a20e02d10103e9600555021000018483f00ca808030401a50130055502100001e00000084 3 | -------------------------------------------------------------------------------- /dotfiles/config/autorandr/alienware_kats_office_alone/config: -------------------------------------------------------------------------------- 1 | output HDMI-0 2 | off 3 | output DP-1 4 | off 5 | output DP-2 6 | off 7 | output DP-3 8 | off 9 | output DP-4 10 | off 11 | output DP-5 12 | off 13 | output DP-0 14 | crtc 0 15 | mode 3440x1440 16 | pos 0x0 17 | rate 174.96 18 | x-prop-non_desktop 0 19 | -------------------------------------------------------------------------------- /dotfiles/config/autorandr/alienware_kats_office_alone/setup: -------------------------------------------------------------------------------- 1 | DP-0 00ffffffffffff0010ace4a1535a333016210104b55123783b25a1b14d3db7250e505421080001010101010101010101010101010101e77c70a0d0a029503020150829623100001a000000ff00237442737a474441594542634e000000fd0001afffff63010a202020202020000000fc0044656c6c204157333432334457029d020320f12309070183010000654b04000101e305c000e2006ae60605018d4b004ed470a0d0a046503020e50c29623100001a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006f70127903000f000aa4140e0e07012045000002010d310e8b4dd323b757920e01455403013c520101046f0d9f002f801f009f0554004c000400663801046f0d9f002f801f009f0566005e0004008b8101046f0d9f002f801f009f057e007600040000000000000000000000000000000000000000000000000000000000005c90 2 | -------------------------------------------------------------------------------- /dotfiles/config/autorandr/blade/config: -------------------------------------------------------------------------------- 1 | output DP-1 2 | off 3 | output DP-2 4 | off 5 | output eDP-1 6 | mode 1920x1080 7 | pos 3440x0 8 | primary 9 | rate 144.00 10 | -------------------------------------------------------------------------------- /dotfiles/config/autorandr/blade/setup: -------------------------------------------------------------------------------- 1 | eDP-1 00ffffffffffff0030e4c00500000000001b0104a54f0078eae085a3544e9b260e5054000000010101010101010101010101010101015e8780a070384d403020350058c21000001b683880a070384d403020350058c21000001b00000000000000000000000000000000000000000002000c30f20f3c962e12309e00000000a8 2 | -------------------------------------------------------------------------------- /dotfiles/config/autorandr/default/config: -------------------------------------------------------------------------------- 1 | output DP-1 2 | off 3 | output HDMI-1 4 | off 5 | output DP-2 6 | off 7 | output HDMI-2 8 | off 9 | output HDMI-3 10 | off 11 | output eDP-1 12 | mode 2880x1800 13 | pos 0x0 14 | primary 15 | rate 59.99 16 | -------------------------------------------------------------------------------- /dotfiles/config/autorandr/default/setup: -------------------------------------------------------------------------------- 1 | eDP-1 00ffffffffffff00061022a00000000004170104a5211578026fb1a7554c9e250c505400000001010101010101010101010101010101ef8340a0b0083470302036004bcf1000001a000000fc00436f6c6f72204c43440a20202000000010000000000000000000000000000000000010000000000000000000000000000000de 2 | -------------------------------------------------------------------------------- /dotfiles/config/autorandr/family_room_above_stevie-nixos/config: -------------------------------------------------------------------------------- 1 | output DP-1 2 | off 3 | output DP-2 4 | off 5 | output DP-3 6 | crtc 1 7 | mode 1920x1080 8 | pos 0x0 9 | rate 60.00 10 | output eDP-1 11 | crtc 0 12 | mode 2560x1600 13 | pos 0x1080 14 | primary 15 | rate 59.99 16 | -------------------------------------------------------------------------------- /dotfiles/config/autorandr/family_room_above_stevie-nixos/setup: -------------------------------------------------------------------------------- 1 | DP-3 00ffffffffffff001e6d010001010101011a010380a05a780aee91a3544c99260f5054a108003140454061407140818001010101010131ce0046f0705a8020108a0040846300001e023a801871382d40582c450040846300001e000000fd003a3e1e883c000a202020202020000000fc004c47205456205256550a20202001b7020346f14e5d10222005040302015e5f000000293d06c01507500957076e030c001000b83c20008001020300e200cfee0146d00024180900ad5244a9230c00000000e30e0000011d8018711c1620582c250040846300009e662150b051001b304070360040846300001e00000000000000000000000000000000000000000099 2 | eDP-1 00ffffffffffff004d10d61400000000051e0104b52517780a771bab5233ba250c51560000000101010101010101010101010101010172e700a0f0604590302036006ee51000001828b900a0f0604590302036006ee510000018000000fe00374a584b38814c513137305231000000000002410332011200000b010a2020018502030f00e3058000e606050160602800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000aa 3 | -------------------------------------------------------------------------------- /dotfiles/config/autorandr/home_tv/config: -------------------------------------------------------------------------------- 1 | output HDMI-1 2 | off 3 | output DP-0 4 | off 5 | output DP-1 6 | off 7 | output DP-2 8 | off 9 | output DP-3 10 | off 11 | output HDMI-0 12 | mode 3840x2160 13 | pos 0x0 14 | rate 60.00 15 | output DVI-D-0 16 | mode 2560x1440 17 | pos 0x2160 18 | primary 19 | rate 59.95 20 | -------------------------------------------------------------------------------- /dotfiles/config/autorandr/home_tv/postswitch: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env zsh 2 | # -*- mode:sh 3 | 4 | hdmi_sink="$(pahelper | tr -d '\\n' | tr '>' '\\n' | grep hdmi | grep -Eo ': [0-9]+' | tr -d ':')" 5 | 6 | pahelper "$hdmi_sink" 7 | -------------------------------------------------------------------------------- /dotfiles/config/autorandr/home_tv/setup: -------------------------------------------------------------------------------- 1 | DVI-D-0 00ffffffffffff0010ac7e404c33353220180103803c2278ea4bb5a7564ba3250a5054a54b008100b300d100714fa9408180d1c00101565e00a0a0a029503020350055502100001a000000ff00374a4e59353438363235334c0a000000fc0044454c4c205532373133484d0a000000fd0031561d711c000a20202020202000e4 2 | HDMI-0 00ffffffffffff001e6d010001010101011a010380a05a780aee91a3544c99260f5054a108003140454061407140818001010101010108e80030f2705a80b0588a0040846300001e023a801871382d40582c450040846300001e000000fd003a3e1e883c000a202020202020000000fc004c47205456205256550a2020200102020354f1506110222005040302015d5e5f66626364293d06c01507500957076e030c001000b83c2000800102030467d85dc401788003e200cfee0146d00024180900ad5244a9230ce305c000e3060d01e30f0110011d8018711c1620582c250040846300009e662150b051001b304070360040846300001e0000000000000088 3 | -------------------------------------------------------------------------------- /dotfiles/config/autorandr/kats_monitor/config: -------------------------------------------------------------------------------- 1 | output HDMI-1 2 | off 3 | output DP-2 4 | off 5 | output HDMI-2 6 | off 7 | output HDMI-3 8 | off 9 | output DP-1 10 | mode 2560x1440 11 | pos 0x0 12 | rate 59.95 13 | output eDP-1 14 | mode 2880x1800 15 | pos 0x1440 16 | primary 17 | rate 59.99 18 | -------------------------------------------------------------------------------- /dotfiles/config/autorandr/kats_monitor/setup: -------------------------------------------------------------------------------- 1 | DP-1 00ffffffffffff0010ac65d0534d39312d1a0104a53c22783e4455a9554d9d260f5054a54b00b300d100714fa9408180778001010101565e00a0a0a029503020350055502100001a000000ff00483759434336423831394d530a000000fc0044454c4c205532373135480a20000000fd0038561e711e010a202020202020012902031cf14f1005040302071601141f12132021222309070783010000023a801871382d40582c450055502100001e011d8018711c1620582c250055502100009e011d007251d01e206e28550055502100001e8c0ad08a20e02d10103e9600555021000018483f00ca808030401a50130055502100001e000000000000000000fe 2 | eDP-1 00ffffffffffff00061022a00000000004170104a5211578026fb1a7554c9e250c505400000001010101010101010101010101010101ef8340a0b0083470302036004bcf1000001a000000fc00436f6c6f72204c43440a20202000000010000000000000000000000000000000000010000000000000000000000000000000de 3 | -------------------------------------------------------------------------------- /dotfiles/config/autorandr/kats_room/config: -------------------------------------------------------------------------------- 1 | output HDMI-1 2 | off 3 | output DP-2 4 | off 5 | output HDMI-2 6 | off 7 | output DP-1 8 | mode 2560x1440 9 | pos 0x0 10 | rate 59.95 11 | output eDP-1 12 | mode 2880x1800 13 | pos 0x1440 14 | primary 15 | rate 59.99 16 | output HDMI-3 17 | mode 4096x2160 18 | pos 2880x1440 19 | rate 24.00 20 | -------------------------------------------------------------------------------- /dotfiles/config/autorandr/kats_room/setup: -------------------------------------------------------------------------------- 1 | DP-1 00ffffffffffff0010ac65d0534d39312d1a0104a53c22783e4455a9554d9d260f5054a54b00b300d100714fa9408180778001010101565e00a0a0a029503020350055502100001a000000ff00483759434336423831394d530a000000fc0044454c4c205532373135480a20000000fd0038561e711e010a202020202020012902031cf14f1005040302071601141f12132021222309070783010000023a801871382d40582c450055502100001e011d8018711c1620582c250055502100009e011d007251d01e206e28550055502100001e8c0ad08a20e02d10103e9600555021000018483f00ca808030401a50130055502100001e000000000000000000fe 2 | HDMI-3 00ffffffffffff001e6d010001010101011a010380a05a780aee91a3544c99260f5054a108003140454061407140818001010101010108e80030f2705a80b0588a0040846300001e023a801871382d40582c450040846300001e000000fd003a3e1e883c000a202020202020000000fc004c47205456205256550a2020200102020346f14e5d10222005040302015e5f626364293d06c01507500957076e030c002000b83c20008001020304e200cfee0146d00024180900ad5244a9230ce3060501e30e6166011d8018711c1620582c250040846300009e662150b051001b304070360040846300001e000000000000000000000000000000000000000000a6 3 | eDP-1 00ffffffffffff00061022a00000000004170104a5211578026fb1a7554c9e250c505400000001010101010101010101010101010101ef8340a0b0083470302036004bcf1000001a000000fc00436f6c6f72204c43440a20202000000010000000000000000000000000000000000010000000000000000000000000000000de 4 | -------------------------------------------------------------------------------- /dotfiles/config/autorandr/kats_tv/config: -------------------------------------------------------------------------------- 1 | output DP-1 2 | off 3 | output HDMI-1 4 | off 5 | output DP-2 6 | off 7 | output HDMI-2 8 | off 9 | output HDMI-3 10 | mode 4096x2160 11 | pos 0x0 12 | rate 24.00 13 | output eDP-1 14 | mode 2880x1800 15 | pos 0x2160 16 | primary 17 | rate 59.99 18 | -------------------------------------------------------------------------------- /dotfiles/config/autorandr/kats_tv/setup: -------------------------------------------------------------------------------- 1 | HDMI-3 00ffffffffffff001e6d010001010101011a010380a05a780aee91a3544c99260f5054a108003140454061407140818001010101010108e80030f2705a80b0588a0040846300001e023a801871382d40582c450040846300001e000000fd003a3e1e883c000a202020202020000000fc004c47205456205256550a2020200102020346f14e5d10222005040302015e5f626364293d06c01507500957076e030c002000b83c20008001020304e200cfee0146d00024180900ad5244a9230ce3060501e30e6166011d8018711c1620582c250040846300009e662150b051001b304070360040846300001e000000000000000000000000000000000000000000a6 2 | eDP-1 00ffffffffffff00061022a00000000004170104a5211578026fb1a7554c9e250c505400000001010101010101010101010101010101ef8340a0b0083470302036004bcf1000001a000000fc00436f6c6f72204c43440a20202000000010000000000000000000000000000000000010000000000000000000000000000000de 3 | -------------------------------------------------------------------------------- /dotfiles/config/autorandr/kats_tv_1080/config: -------------------------------------------------------------------------------- 1 | output DP-1 2 | off 3 | output HDMI-1 4 | off 5 | output DP-2 6 | off 7 | output HDMI-2 8 | off 9 | output HDMI-3 10 | mode 1920x1080 11 | pos 0x0 12 | rate 60.00 13 | output eDP-1 14 | mode 2880x1800 15 | pos 0x1080 16 | primary 17 | rate 59.99 18 | -------------------------------------------------------------------------------- /dotfiles/config/autorandr/kats_tv_1080/setup: -------------------------------------------------------------------------------- 1 | HDMI-3 00ffffffffffff001e6d010001010101011a010380a05a780aee91a3544c99260f5054a108003140454061407140818001010101010108e80030f2705a80b0588a0040846300001e023a801871382d40582c450040846300001e000000fd003a3e1e883c000a202020202020000000fc004c47205456205256550a2020200102020346f14e5d10222005040302015e5f626364293d06c01507500957076e030c001000b83c20008001020304e200cfee0146d00024180900ad5244a9230ce3060d01e30e6166011d8018711c1620582c250040846300009e662150b051001b304070360040846300001e000000000000000000000000000000000000000000ae 2 | eDP-1 00ffffffffffff00061022a00000000004170104a5211578026fb1a7554c9e250c505400000001010101010101010101010101010101ef8340a0b0083470302036004bcf1000001a000000fc00436f6c6f72204c43440a20202000000010000000000000000000000000000000000010000000000000000000000000000000de 3 | -------------------------------------------------------------------------------- /dotfiles/config/autorandr/kats_tv_right/config: -------------------------------------------------------------------------------- 1 | output HDMI-1 2 | off 3 | output DP-2 4 | off 5 | output HDMI-2 6 | off 7 | output DP-1 8 | mode 2560x1440 9 | pos 0x0 10 | rate 59.95 11 | output eDP-1 12 | mode 2880x1800 13 | pos 2560x0 14 | primary 15 | rate 59.99 16 | output HDMI-3 17 | mode 1920x1080 18 | pos 5440x0 19 | rate 60.00 20 | -------------------------------------------------------------------------------- /dotfiles/config/autorandr/kats_tv_right/setup: -------------------------------------------------------------------------------- 1 | DP-1 00ffffffffffff0010ac65d0534d39312d1a0104a53c22783e4455a9554d9d260f5054a54b00b300d100714fa9408180778001010101565e00a0a0a029503020350055502100001a000000ff00483759434336423831394d530a000000fc0044454c4c205532373135480a20000000fd0038561e711e010a202020202020012902031cf14f1005040302071601141f12132021222309070783010000023a801871382d40582c450055502100001e011d8018711c1620582c250055502100009e011d007251d01e206e28550055502100001e8c0ad08a20e02d10103e9600555021000018483f00ca808030401a50130055502100001e000000000000000000fe 2 | HDMI-3 00ffffffffffff001e6d010001010101011a010380a05a780aee91a3544c99260f5054a108003140454061407140818001010101010108e80030f2705a80b0588a0040846300001e023a801871382d40582c450040846300001e000000fd003a3e1e883c000a202020202020000000fc004c47205456205256550a2020200102020346f14e5d10222005040302015e5f626364293d06c01507500957076e030c002000b83c20008001020304e200cfee0146d00024180900ad5244a9230ce3060501e30e6166011d8018711c1620582c250040846300009e662150b051001b304070360040846300001e000000000000000000000000000000000000000000a6 3 | eDP-1 00ffffffffffff00061022a00000000004170104a5211578026fb1a7554c9e250c505400000001010101010101010101010101010101ef8340a0b0083470302036004bcf1000001a000000fc00436f6c6f72204c43440a20202000000010000000000000000000000000000000000010000000000000000000000000000000de 4 | -------------------------------------------------------------------------------- /dotfiles/config/autorandr/loaner/config: -------------------------------------------------------------------------------- 1 | output DP1 2 | off 3 | output DP2 4 | off 5 | output HDMI1 6 | off 7 | output HDMI2 8 | off 9 | output VIRTUAL1 10 | off 11 | output eDP1 12 | mode 1440x900 13 | pos 0x0 14 | primary 15 | rate 60.00 16 | -------------------------------------------------------------------------------- /dotfiles/config/autorandr/loaner/setup: -------------------------------------------------------------------------------- 1 | eDP1 00ffffffffffff000610f09c0000000011160104951d127802ef05975754922722505400000001010101010101010101010101010101b922a0a050841a30302036001eb300000018000000100000000000000000000000000000000000fe004c534e31333342543031413032000000fc00436f6c6f72204c43440a2020200009 2 | -------------------------------------------------------------------------------- /dotfiles/config/autorandr/loaner_with_monitor/config: -------------------------------------------------------------------------------- 1 | output DP1 2 | off 3 | output DP2 4 | off 5 | output HDMI2 6 | off 7 | output VIRTUAL1 8 | off 9 | output HDMI1 10 | mode 1920x1080 11 | pos 0x0 12 | rate 60.00 13 | output eDP1 14 | mode 1440x900 15 | pos 0x1080 16 | primary 17 | rate 60.00 18 | -------------------------------------------------------------------------------- /dotfiles/config/autorandr/loaner_with_monitor/setup: -------------------------------------------------------------------------------- 1 | HDMI1 00ffffffffffff0010ac7f404c33353220180103803c2278ea4bb5a7564ba3250a5054a54b008100b300714fa9408180010101010101023a801871382d40582c250055502100001e000000ff00374a4e59353438363235334c0a000000fc0044454c4c205532373133484d0a000000fd00384c1e5111000a2020202020200168020329f15090050403020716010611121513141f2023097f0767030c001000382d83010000e3050301023a801871382d40582c250055502100001e011d8018711c1620582c250055502100009e011d007251d01e206e28550055502100001e8c0ad08a20e02d10103e960055502100001800000000000000000000000000007a 2 | eDP1 00ffffffffffff000610f09c0000000011160104951d127802ef05975754922722505400000001010101010101010101010101010101b922a0a050841a30302036001eb300000018000000100000000000000000000000000000000000fe004c534e31333342543031413032000000fc00436f6c6f72204c43440a2020200009 3 | -------------------------------------------------------------------------------- /dotfiles/config/autorandr/loaner_with_tv/config: -------------------------------------------------------------------------------- 1 | output DP1 2 | off 3 | output DP2 4 | off 5 | output HDMI2 6 | off 7 | output VIRTUAL1 8 | off 9 | output HDMI1 10 | mode 1920x1080 11 | pos 0x0 12 | rate 60.00 13 | output eDP1 14 | mode 1440x900 15 | pos 0x1080 16 | primary 17 | rate 60.00 18 | -------------------------------------------------------------------------------- /dotfiles/config/autorandr/loaner_with_tv/setup: -------------------------------------------------------------------------------- 1 | HDMI1 00ffffffffffff001e6d010001010101011a010380a05a780aee91a3544c99260f5054a108003140454061407140818001010101010108e80030f2705a80b0588a0040846300001e023a801871382d40582c450040846300001e000000fd003a3e1e883c000a202020202020000000fc004c47205456205256550a2020200102020346f14e5d10222005040302015e5f626364293d06c01507500957076e030c001000b83c20008001020304e200cfee0146d00024180900ad5244a9230ce3060d01e30e6166011d8018711c1620582c250040846300009e662150b051001b304070360040846300001e000000000000000000000000000000000000000000ae 2 | eDP1 00ffffffffffff000610f09c0000000011160104951d127802ef05975754922722505400000001010101010101010101010101010101b922a0a050841a30302036001eb300000018000000100000000000000000000000000000000000fe004c534e31333342543031413032000000fc00436f6c6f72204c43440a2020200009 3 | -------------------------------------------------------------------------------- /dotfiles/config/autorandr/postswitch: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | notify-send -i display "Display profile" "$AUTORANDR_CURRENT_PROFILE" 3 | systemctl --user restart random-background 4 | 5 | -------------------------------------------------------------------------------- /dotfiles/config/autorandr/sf_office_1/config: -------------------------------------------------------------------------------- 1 | output DP-2 2 | off 3 | output DP-1 4 | mode 3440x1440 5 | pos 0x0 6 | rate 59.97 7 | output eDP-1 8 | mode 1920x1080 9 | pos 0x1440 10 | primary 11 | rate 144.00 12 | -------------------------------------------------------------------------------- /dotfiles/config/autorandr/sf_office_1/setup: -------------------------------------------------------------------------------- 1 | DP-1 00ffffffffffff0010ac32a14c574631301c0104b55021783eee95a3544c99260f5054a54b00714f81008180a940d1c0010101010101e77c70a0d0a0295030203a00204f3100001a000000ff00484332565750320a2020202020000000fc0044454c4c205533343139570a20000000fd0030551e5920010a202020202020014802031df1509005040302071601141f1213454b4c5a2309070783010000023a801871382d40582c4500204f3100001e584d00b8a1381440942cb500204f3100001e565e00a0a0a0295030203500204f3100001a3c41b8a060a029505020ca04204f3100001a0000000000000000000000000000000000000000000000000000d5 2 | eDP-1 00ffffffffffff0030e4c00500000000001b0104a54f0078eae085a3544e9b260e5054000000010101010101010101010101010101015e8780a070384d403020350058c21000001b683880a070384d403020350058c21000001b00000000000000000000000000000000000000000002000c30f20f3c962e12309e00000000a8 3 | -------------------------------------------------------------------------------- /dotfiles/config/autorandr/sf_office_2/config: -------------------------------------------------------------------------------- 1 | output DP-2 2 | off 3 | output DP-1 4 | mode 3440x1440 5 | pos 0x0 6 | rate 59.97 7 | output eDP-1 8 | mode 1920x1080 9 | pos 3440x0 10 | primary 11 | rate 144.00 12 | -------------------------------------------------------------------------------- /dotfiles/config/autorandr/sf_office_2/setup: -------------------------------------------------------------------------------- 1 | DP-1 00ffffffffffff0010ac32a14c544b302f1c0104b55021783eee95a3544c99260f5054a54b00714f81008180a940d1c0010101010101e77c70a0d0a0295030203a00204f3100001a000000ff00334a57545750320a2020202020000000fc0044454c4c205533343139570a20000000fd0030551e5920010a202020202020013302031df1509005040302071601141f1213454b4c5a2309070783010000023a801871382d40582c4500204f3100001e584d00b8a1381440942cb500204f3100001e565e00a0a0a0295030203500204f3100001a3c41b8a060a029505020ca04204f3100001a0000000000000000000000000000000000000000000000000000d5 2 | eDP-1 00ffffffffffff0030e4c00500000000001b0104a54f0078eae085a3544e9b260e5054000000010101010101010101010101010101015e8780a070384d403020350058c21000001b683880a070384d403020350058c21000001b00000000000000000000000000000000000000000002000c30f20f3c962e12309e00000000a8 3 | -------------------------------------------------------------------------------- /dotfiles/config/autorandr/sf_office_3/config: -------------------------------------------------------------------------------- 1 | output DP-2 2 | off 3 | output DP-1 4 | mode 3440x1440 5 | pos 0x0 6 | rate 59.97 7 | output eDP-1 8 | mode 1920x1080 9 | pos 3440x0 10 | primary 11 | rate 144.00 12 | -------------------------------------------------------------------------------- /dotfiles/config/autorandr/sf_office_3/setup: -------------------------------------------------------------------------------- 1 | DP-1 00ffffffffffff0010ac32a14c554331311c0104b55021783eee95a3544c99260f5054a54b00714f81008180a940d1c0010101010101e77c70a0d0a0295030203a00204f3100001a000000ff00425036565750320a2020202020000000fc0044454c4c205533343139570a20000000fd0030551e5920010a202020202020014102031df1509005040302071601141f1213454b4c5a2309070783010000023a801871382d40582c4500204f3100001e584d00b8a1381440942cb500204f3100001e565e00a0a0a0295030203500204f3100001a3c41b8a060a029505020ca04204f3100001a0000000000000000000000000000000000000000000000000000d5 2 | eDP-1 00ffffffffffff0030e4c00500000000001b0104a54f0078eae085a3544e9b260e5054000000010101010101010101010101010101015e8780a070384d403020350058c21000001b683880a070384d403020350058c21000001b00000000000000000000000000000000000000000002000c30f20f3c962e12309e00000000a8 3 | -------------------------------------------------------------------------------- /dotfiles/config/autorandr/sf_office_4/config: -------------------------------------------------------------------------------- 1 | output DP-2 2 | off 3 | output eDP-1 4 | mode 1920x1080 5 | pos 0x0 6 | primary 7 | rate 144.00 8 | output DP-1 9 | mode 3440x1440 10 | pos 1920x0 11 | rate 59.97 12 | -------------------------------------------------------------------------------- /dotfiles/config/autorandr/sf_office_4/setup: -------------------------------------------------------------------------------- 1 | DP-1 00ffffffffffff0010ac32a14c594331311c0104b55021783eee95a3544c99260f5054a54b00714f81008180a940d1c0010101010101e77c70a0d0a0295030203a00204f3100001a000000ff00465036565750320a2020202020000000fc0044454c4c205533343139570a20000000fd0030551e5920010a202020202020013902031df1509005040302071601141f1213454b4c5a2309070783010000023a801871382d40582c4500204f3100001e584d00b8a1381440942cb500204f3100001e565e00a0a0a0295030203500204f3100001a3c41b8a060a029505020ca04204f3100001a0000000000000000000000000000000000000000000000000000d5 2 | eDP-1 00ffffffffffff0030e4c00500000000001b0104a54f0078eae085a3544e9b260e5054000000010101010101010101010101010101015e8780a070384d403020350058c21000001b683880a070384d403020350058c21000001b00000000000000000000000000000000000000000002000c30f20f3c962e12309e00000000a8 3 | -------------------------------------------------------------------------------- /dotfiles/config/autorandr/sf_office_5/config: -------------------------------------------------------------------------------- 1 | output DP-2 2 | off 3 | output eDP-1 4 | mode 1920x1080 5 | pos 0x0 6 | primary 7 | rate 144.00 8 | output DP-1 9 | mode 3440x1440 10 | pos 1920x0 11 | rate 59.97 12 | -------------------------------------------------------------------------------- /dotfiles/config/autorandr/sf_office_5/setup: -------------------------------------------------------------------------------- 1 | DP-1 00ffffffffffff0010ac32a14c3050302f1c0104b55021783eee95a3544c99260f5054a54b00714f81008180a940d1c0010101010101e77c70a0d0a0295030203a00204f3100001a000000ff00485057545750320a2020202020000000fc0044454c4c205533343139570a20000000fd0030551e5920010a202020202020013702031df1509005040302071601141f1213454b4c5a2309070783010000023a801871382d40582c4500204f3100001e584d00b8a1381440942cb500204f3100001e565e00a0a0a0295030203500204f3100001a3c41b8a060a029505020ca04204f3100001a0000000000000000000000000000000000000000000000000000d5 2 | eDP-1 00ffffffffffff0030e4c00500000000001b0104a54f0078eae085a3544e9b260e5054000000010101010101010101010101010101015e8780a070384d403020350058c21000001b683880a070384d403020350058c21000001b00000000000000000000000000000000000000000002000c30f20f3c962e12309e00000000a8 3 | -------------------------------------------------------------------------------- /dotfiles/config/autorandr/sf_office_6/config: -------------------------------------------------------------------------------- 1 | output DP-2 2 | off 3 | output eDP-1 4 | mode 1920x1080 5 | pos 0x0 6 | primary 7 | rate 144.00 8 | output DP-1 9 | mode 3440x1440 10 | pos 1920x0 11 | rate 59.97 12 | -------------------------------------------------------------------------------- /dotfiles/config/autorandr/sf_office_6/setup: -------------------------------------------------------------------------------- 1 | DP-1 00ffffffffffff0010ac32a14c4647302f1c0104b55021783eee95a3544c99260f5054a54b00714f81008180a940d1c0010101010101e77c70a0d0a0295030203a00204f3100001a000000ff00343156545750320a2020202020000000fc0044454c4c205533343139570a20000000fd0030551e5920010a202020202020015e02031df1509005040302071601141f1213454b4c5a2309070783010000023a801871382d40582c4500204f3100001e584d00b8a1381440942cb500204f3100001e565e00a0a0a0295030203500204f3100001a3c41b8a060a029505020ca04204f3100001a0000000000000000000000000000000000000000000000000000d5 2 | eDP-1 00ffffffffffff0030e4c00500000000001b0104a54f0078eae085a3544e9b260e5054000000010101010101010101010101010101015e8780a070384d403020350058c21000001b683880a070384d403020350058c21000001b00000000000000000000000000000000000000000002000c30f20f3c962e12309e00000000a8 3 | -------------------------------------------------------------------------------- /dotfiles/config/autorandr/sf_office_7/config: -------------------------------------------------------------------------------- 1 | output DP-2 2 | off 3 | output DP-1 4 | mode 3440x1440 5 | pos 0x0 6 | rate 59.97 7 | output eDP-1 8 | mode 1920x1080 9 | pos 3440x0 10 | primary 11 | rate 144.00 12 | -------------------------------------------------------------------------------- /dotfiles/config/autorandr/sf_office_7/setup: -------------------------------------------------------------------------------- 1 | DP-1 00ffffffffffff0010ac32a14c374c302f1c0104b55021783eee95a3544c99260f5054a54b00714f81008180a940d1c0010101010101e77c70a0d0a0295030203a00204f3100001a000000ff00484a57545750320a2020202020000000fc0044454c4c205533343139570a20000000fd0030551e5920010a202020202020013a02031df1509005040302071601141f1213454b4c5a2309070783010000023a801871382d40582c4500204f3100001e584d00b8a1381440942cb500204f3100001e565e00a0a0a0295030203500204f3100001a3c41b8a060a029505020ca04204f3100001a0000000000000000000000000000000000000000000000000000d5 2 | eDP-1 00ffffffffffff0030e4c00500000000001b0104a54f0078eae085a3544e9b260e5054000000010101010101010101010101010101015e8780a070384d403020350058c21000001b683880a070384d403020350058c21000001b00000000000000000000000000000000000000000002000c30f20f3c962e12309e00000000a8 3 | -------------------------------------------------------------------------------- /dotfiles/config/autorandr/stevie-nixos/config: -------------------------------------------------------------------------------- 1 | output DP-1 2 | off 3 | output DP-2 4 | off 5 | output DP-3 6 | off 7 | output eDP-1 8 | crtc 0 9 | mode 2560x1600 10 | pos 0x0 11 | primary 12 | rate 59.99 13 | -------------------------------------------------------------------------------- /dotfiles/config/autorandr/stevie-nixos/setup: -------------------------------------------------------------------------------- 1 | eDP-1 00ffffffffffff004d10d61400000000051e0104b52517780a771bab5233ba250c51560000000101010101010101010101010101010172e700a0f0604590302036006ee51000001828b900a0f0604590302036006ee510000018000000fe00374a584b38814c513137305231000000000002410332011200000b010a2020018502030f00e3058000e606050160602800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000aa 2 | -------------------------------------------------------------------------------- /dotfiles/config/autorandr/strixy-minaj-240hz-solo/config: -------------------------------------------------------------------------------- 1 | output DP-0 2 | off 3 | output DP-1 4 | off 5 | output HDMI-0 6 | off 7 | output DP-3 8 | off 9 | output DP-4 10 | off 11 | output DP-5 12 | off 13 | output DP-6 14 | off 15 | output DP-2 16 | crtc 0 17 | mode 2560x1600 18 | pos 0x0 19 | rate 240.00 20 | x-prop-non_desktop 0 21 | -------------------------------------------------------------------------------- /dotfiles/config/autorandr/strixy-minaj-240hz-solo/setup: -------------------------------------------------------------------------------- 1 | DP-2 00ffffffffffff0009e5580c0000000001210104b527187803bbc5ae503fb7250c515500000001010101010101010101010101010101c07200a0a040c8603020360084f21000001a000000fd0c30f0b1b176010a202020202020000000fe00424f452043510a202020202020000000fc004e4531383051444d2d4e4d310a029602030f00e3058080e606050195731000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000fa702079020021001d280f7409000a400680dd2a511824b249120e023554b060ec64662a1378220014ffed1185ff099f002f001f003f06c700020005002b000c27003cef00002700303b0000810015741a0000030b30f0006095107310f0000000008d00000000000000000000000000000000000000000000000000000000bc90 2 | -------------------------------------------------------------------------------- /dotfiles/config/autorandr/tv/config: -------------------------------------------------------------------------------- 1 | output DP-1 2 | off 3 | output HDMI-1 4 | off 5 | output DP-2 6 | off 7 | output HDMI-2 8 | off 9 | output HDMI-3 10 | mode 1920x1080 11 | pos 0x0 12 | rate 60.00 13 | output eDP-1 14 | mode 2880x1800 15 | pos 0x1080 16 | primary 17 | rate 59.99 18 | -------------------------------------------------------------------------------- /dotfiles/config/autorandr/tv/setup: -------------------------------------------------------------------------------- 1 | HDMI-3 00ffffffffffff001e6d010001010101011a010380a05a780aee91a3544c99260f5054a108003140454061407140818001010101010108e80030f2705a80b0588a0040846300001e023a801871382d40582c450040846300001e000000fd003a3e1e883c000a202020202020000000fc004c47205456205256550a2020200102020354f1506110222005040302015d5e5f66626364293d06c01507500957076e030c001000b83c2000800102030467d85dc401788003e200cfee0146d00024180900ad5244a9230ce305c000e3060d01e30f0110011d8018711c1620582c250040846300009e662150b051001b304070360040846300001e0000000000000088 2 | eDP-1 00ffffffffffff00061022a00000000004170104a5211578026fb1a7554c9e250c505400000001010101010101010101010101010101ef8340a0b0083470302036004bcf1000001a000000fc00436f6c6f72204c43440a20202000000010000000000000000000000000000000000010000000000000000000000000000000de 3 | -------------------------------------------------------------------------------- /dotfiles/config/autorandr/tv_1080/config: -------------------------------------------------------------------------------- 1 | output DP-1 2 | off 3 | output HDMI-1 4 | off 5 | output DP-2 6 | off 7 | output HDMI-2 8 | off 9 | output HDMI-3 10 | mode 1920x1080 11 | pos 0x0 12 | rate 60.00 13 | output eDP-1 14 | mode 2880x1800 15 | pos 0x1080 16 | primary 17 | rate 59.99 18 | -------------------------------------------------------------------------------- /dotfiles/config/autorandr/tv_1080/setup: -------------------------------------------------------------------------------- 1 | HDMI-3 00ffffffffffff001e6d010001010101011a010380a05a780aee91a3544c99260f5054a108003140454061407140818001010101010108e80030f2705a80b0588a0040846300001e023a801871382d40582c450040846300001e000000fd003a3e1e883c000a202020202020000000fc004c47205456205256550a2020200102020346f14e5d10222005040302015e5f626364293d06c01507500957076e030c002000b83c20008001020304e200cfee0146d00024180900ad5244a9230ce3060d01e30e6166011d8018711c1620582c250040846300009e662150b051001b304070360040846300001e0000000000000000000000000000000000000000009e 2 | eDP-1 00ffffffffffff00061022a00000000004170104a5211578026fb1a7554c9e250c505400000001010101010101010101010101010101ef8340a0b0083470302036004bcf1000001a000000fc00436f6c6f72204c43440a20202000000010000000000000000000000000000000000010000000000000000000000000000000de 3 | -------------------------------------------------------------------------------- /dotfiles/config/autorandr/work/config: -------------------------------------------------------------------------------- 1 | output DP-2 2 | off 3 | output DP-1 4 | mode 3840x1600 5 | pos 0x0 6 | rate 59.99 7 | output eDP-1 8 | mode 1920x1080 9 | pos 0x1600 10 | primary 11 | rate 144.00 12 | -------------------------------------------------------------------------------- /dotfiles/config/autorandr/work/setup: -------------------------------------------------------------------------------- 1 | DP-1 00ffffffffffff0010acf4a04c524430091c0104b55825783eee95a3544c99260f5054a54b00714f81008180a940d1c00101010101014c9a00a0f0402e6030203a00706f3100001a000000ff0039374638503833313044524c0a000000fc0044454c4c20553338313844570a000000fd001855197328000a20202020202001c702031af14d9005040302071601141f12135a2309070783010000023a801871382d40582c4500706f3100001e565e00a0a0a0295030203500706f3100001acd4600a0a0381f4030203a00706f3100001a2d5080a070402e6030203a00706f3100001a134c00a0f040176030203a00706f3100001a000000000000000000000053 2 | eDP-1 00ffffffffffff0030e4c00500000000001b0104a54f0078eae085a3544e9b260e5054000000010101010101010101010101010101015e8780a070384d403020350058c21000001b683880a070384d403020350058c21000001b00000000000000000000000000000000000000000002000c30f20f3c962e12309e00000000a8 3 | -------------------------------------------------------------------------------- /dotfiles/config/clipit/clipitrc: -------------------------------------------------------------------------------- 1 | [rc] 2 | use_copy=true 3 | use_primary=true 4 | synchronize=false 5 | automatic_paste=false 6 | show_indexes=true 7 | save_uris=true 8 | use_rmb_menu=false 9 | save_history=true 10 | history_limit=1000 11 | history_timeout_seconds=30 12 | history_timeout=false 13 | items_menu=50 14 | statics_show=true 15 | statics_items=10 16 | hyperlinks_only=false 17 | confirm_clear=false 18 | single_line=false 19 | reverse_history=false 20 | item_length=50 21 | ellipsize=2 22 | history_key= 23 | actions_key= 24 | menu_key= 25 | search_key= 26 | offline_key= 27 | offline_mode=false 28 | -------------------------------------------------------------------------------- /dotfiles/config/copyq/.gitignore: -------------------------------------------------------------------------------- 1 | /copyq-filter.ini 2 | /copyq.pub 3 | /copyq_geometry.ini 4 | /copyq-bak.conf 5 | /copyq_tabs.ini 6 | /*==.dat 7 | -------------------------------------------------------------------------------- /dotfiles/config/dolphin-emu/GCPadNew.ini: -------------------------------------------------------------------------------- 1 | [GCPad1] 2 | Device = XInput2/0/Virtual core pointer 3 | Buttons/A = X 4 | Buttons/B = Z 5 | Buttons/X = C 6 | Buttons/Y = S 7 | Buttons/Z = D 8 | Buttons/Start = !`Alt_L` & Return 9 | Main Stick/Up = Up 10 | Main Stick/Down = Down 11 | Main Stick/Left = Left 12 | Main Stick/Right = Right 13 | Main Stick/Modifier = Shift_L 14 | Main Stick/Modifier/Range = 50.000000000000000 15 | C-Stick/Up = I 16 | C-Stick/Down = K 17 | C-Stick/Left = J 18 | C-Stick/Right = L 19 | C-Stick/Modifier = Control_L 20 | C-Stick/Modifier/Range = 50.000000000000000 21 | Triggers/L = Q 22 | Triggers/R = W 23 | D-Pad/Up = T 24 | D-Pad/Down = G 25 | D-Pad/Left = F 26 | D-Pad/Right = H 27 | -------------------------------------------------------------------------------- /dotfiles/config/dolphin-emu/Galaxy 2.ini: -------------------------------------------------------------------------------- 1 | [Profile] 2 | Device = XInput/0/Gamepad 3 | Buttons/A = Button A 4 | Buttons/B = Button X 5 | Buttons/1 = Button Y 6 | Buttons/2 = Button B 7 | Buttons/- = Back 8 | Buttons/+ = Start 9 | IR/Up = `DInput/0/Keyboard Mouse`Cursor Y- 10 | IR/Down = `DInput/0/Keyboard Mouse`Cursor Y+ 11 | IR/Left = `DInput/0/Keyboard Mouse`Cursor X- 12 | IR/Right = `DInput/0/Keyboard Mouse`Cursor X+ 13 | Swing/Up = Right Y+ 14 | Swing/Down = Right Y- 15 | Swing/Left = Right X- 16 | Swing/Right = Right X+ 17 | Shake/X = Shoulder R 18 | Shake/Y = Shoulder R 19 | Shake/Z = Shoulder R 20 | Extension = Nunchuk 21 | Nunchuk/Buttons/C = Shoulder L 22 | Nunchuk/Buttons/Z = Trigger L 23 | Nunchuk/Stick/Up = Left Y+ 24 | Nunchuk/Stick/Down = Left Y- 25 | Nunchuk/Stick/Left = Left X- 26 | Nunchuk/Stick/Right = Left X+ 27 | Nunchuk/Stick/Modifier = Thumb L 28 | Rumble/Motor = Motor L|Motor R 29 | Rumble/Motor/Range = 450.000000 30 | D-Pad/Up = Pad N 31 | D-Pad/Down = Pad S 32 | D-Pad/Left = Pad W 33 | D-Pad/Right = Pad E 34 | -------------------------------------------------------------------------------- /dotfiles/config/dolphin-emu/Logger.ini: -------------------------------------------------------------------------------- 1 | [LogWindow] 2 | x = 400 3 | y = 600 4 | pos = 2 5 | [Options] 6 | Font = 0 7 | WrapLines = False 8 | -------------------------------------------------------------------------------- /dotfiles/config/dolphin-emu/Profiles/Wiimote/Galaxy 2.ini: -------------------------------------------------------------------------------- 1 | [Profile] 2 | Device = XInput/0/Gamepad 3 | Buttons/A = Button A 4 | Buttons/B = Button X 5 | Buttons/1 = Button Y 6 | Buttons/2 = Button B 7 | Buttons/- = Back 8 | Buttons/+ = Start 9 | IR/Up = `DInput/0/Keyboard Mouse`Cursor Y- 10 | IR/Down = `DInput/0/Keyboard Mouse`Cursor Y+ 11 | IR/Left = `DInput/0/Keyboard Mouse`Cursor X- 12 | IR/Right = `DInput/0/Keyboard Mouse`Cursor X+ 13 | Swing/Up = Right Y+ 14 | Swing/Down = Right Y- 15 | Swing/Left = Right X- 16 | Swing/Right = Right X+ 17 | Shake/X = Shoulder R 18 | Shake/Y = Shoulder R 19 | Shake/Z = Shoulder R 20 | Extension = Nunchuk 21 | Nunchuk/Buttons/C = Shoulder L 22 | Nunchuk/Buttons/Z = Trigger L 23 | Nunchuk/Stick/Up = Left Y+ 24 | Nunchuk/Stick/Down = Left Y- 25 | Nunchuk/Stick/Left = Left X- 26 | Nunchuk/Stick/Right = Left X+ 27 | Nunchuk/Stick/Modifier = Thumb L 28 | Rumble/Motor = Motor L|Motor R 29 | Rumble/Motor/Range = 450.000000 30 | D-Pad/Up = Pad N 31 | D-Pad/Down = Pad S 32 | D-Pad/Left = Pad W 33 | D-Pad/Right = Pad E 34 | -------------------------------------------------------------------------------- /dotfiles/config/dolphin-emu/Profiles/Wiimote/qweruiop.ini: -------------------------------------------------------------------------------- 1 | [Profile] 2 | Device = XInput2/0/Virtual core pointer 3 | Buttons/A = Click 1 4 | Buttons/B = Click 3 5 | Buttons/1 = 1 6 | Buttons/2 = 2 7 | Buttons/- = Q 8 | Buttons/+ = E 9 | Buttons/Home = !`Alt_L` & Return 10 | IR/Up = Cursor Y- 11 | IR/Down = Cursor Y+ 12 | IR/Left = Cursor X- 13 | IR/Right = Cursor X+ 14 | Shake/X = Click 2 15 | Shake/Y = Click 2 16 | Shake/Z = Click 2 17 | Extension = Nunchuk 18 | Nunchuk/Buttons/C = Control_L 19 | Nunchuk/Buttons/Z = Shift_L 20 | Nunchuk/Stick/Up = W 21 | Nunchuk/Stick/Down = S 22 | Nunchuk/Stick/Left = A 23 | Nunchuk/Stick/Right = D 24 | D-Pad/Up = Up 25 | D-Pad/Down = Down 26 | D-Pad/Left = Left 27 | D-Pad/Right = Right 28 | -------------------------------------------------------------------------------- /dotfiles/config/dolphin-emu/WiimoteNew.ini: -------------------------------------------------------------------------------- 1 | [Wiimote1] 2 | Device = XInput2/0/Virtual core pointer 3 | Buttons/A = Click 1 4 | Buttons/B = Click 3 5 | Buttons/1 = 1 6 | Buttons/2 = 2 7 | Buttons/- = Q 8 | Buttons/+ = E 9 | IR/Up = Cursor Y- 10 | IR/Down = Cursor Y+ 11 | IR/Left = Cursor X- 12 | IR/Right = Cursor X+ 13 | Shake/X = Click 2 14 | Shake/Y = Click 2 15 | Shake/Z = Click 2 16 | Extension = Nunchuk 17 | Nunchuk/Buttons/C = Control_L 18 | Nunchuk/Buttons/Z = Shift_L 19 | Nunchuk/Stick/Up = W 20 | Nunchuk/Stick/Down = S 21 | Nunchuk/Stick/Left = A 22 | Nunchuk/Stick/Right = D 23 | D-Pad/Up = W 24 | D-Pad/Down = S 25 | D-Pad/Left = A 26 | D-Pad/Right = D 27 | Source = 1 28 | Buttons/Home = !`Alt_L` & Return 29 | [Wiimote2] 30 | Source = 1 31 | [Wiimote3] 32 | Source = 0 33 | [Wiimote4] 34 | Source = 0 35 | [BalanceBoard] 36 | Source = 0 37 | -------------------------------------------------------------------------------- /dotfiles/config/flake8: -------------------------------------------------------------------------------- 1 | [flake8] 2 | max-line-length = 100 3 | ignore = E701 -------------------------------------------------------------------------------- /dotfiles/config/fontconfig/conf.d/01-emoji.conf: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | Apple Color Emoji 7 | emoji 8 | 9 | 10 | Segoe UI Emoji 11 | emoji 12 | 13 | 14 | Segoe UI Symbol 15 | emoji 16 | 17 | 18 | Noto Emoji 19 | emoji 20 | 21 | 22 | Noto Color Emoji 23 | emoji 24 | 25 | 26 | Symbola 27 | emoji 28 | 29 | 30 | Android Emoji 31 | emoji 32 | 33 | 34 | EmojiSymbols 35 | emoji 36 | 37 | 38 | -------------------------------------------------------------------------------- /dotfiles/config/fontconfig/fonts.conf: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | true 6 | 7 | 8 | true 9 | 10 | 11 | hintslight 12 | 13 | 14 | rgb 15 | 16 | 17 | lcdlight 18 | 19 | 20 | 21 | roboto mono 22 | Roboto 23 | 24 | ~/.fonts 25 | 26 | -------------------------------------------------------------------------------- /dotfiles/config/gocode/config.json: -------------------------------------------------------------------------------- 1 | {"propose-builtins":true,"lib-path":"","autobuild":false,"force-debug-output":""} 2 | -------------------------------------------------------------------------------- /dotfiles/config/keepassx/keepassx2.ini: -------------------------------------------------------------------------------- 1 | [General] 2 | AutoSaveAfterEveryChange=false 3 | AutoSaveOnExit=false 4 | AutoTypeEntryTitleMatch=true 5 | GlobalAutoTypeKey=0 6 | GlobalAutoTypeModifiers=0 7 | LastDatabases=/home/imalison/SparkleShare/config/db.kdbx 8 | LastDir=/home/imalison/SparkleShare/config 9 | LastKeyFiles=@Variant(\0\0\0\x1c\0\0\0\x1\0\0\0T\0/\0h\0o\0m\0\x65\0/\0i\0m\0\x61\0l\0i\0s\0o\0n\0/\0S\0p\0\x61\0r\0k\0l\0\x65\0S\0h\0\x61\0r\0\x65\0/\0\x63\0o\0n\0\x66\0i\0g\0/\0\x64\0\x62\0.\0k\0\x64\0\x62\0x\0\0\0\n\0\0\0h\0/\0h\0o\0m\0\x65\0/\0i\0m\0\x61\0l\0i\0s\0o\0n\0/\0S\0p\0\x61\0r\0k\0l\0\x65\0S\0h\0\x61\0r\0\x65\0/\0\x63\0o\0n\0\x66\0i\0g\0/\0\x63\0r\0\x65\0\x64\0s\0/\0k\0\x65\0\x65\0p\0\x61\0s\0s\0.\0k\0\x65\0y) 10 | LastOpenedDatabases=/home/imalison/SparkleShare/config/db.kdbx 11 | MinimizeOnCopy=false 12 | OpenPreviousDatabasesOnStartup=true 13 | RememberLastDatabases=true 14 | RememberLastKeyFiles=true 15 | ShowToolbar=true 16 | UseGroupIconOnEntryCreation=false 17 | 18 | [GUI] 19 | EntryListColumnSizes=150, 150, 565 20 | EntrySearchColumnSizes=150, 150, 150, 205 21 | Language=system 22 | MainWindowGeometry=@ByteArray(\x1\xd9\xd0\xcb\0\x2\0\0\0\0\x2\x80\0\0\bp\0\0\f\x7f\0\0\xe\xf\0\0\x2\x80\0\0\bp\0\0\f\x7f\0\0\xe\xf\0\0\0\0\0\0\0\0\n\0) 23 | MinimizeOnClose=true 24 | MinimizeOnStartup=true 25 | MinimizeToTray=true 26 | ShowTrayIcon=true 27 | SplitterState=@Invalid() 28 | 29 | [Http] 30 | AlwaysAllowAccess=false 31 | BestMatchOnly=false 32 | Enabled=true 33 | Host=localhost 34 | MatchUrlScheme=true 35 | Port=19455 36 | SearchInAllDatabases=false 37 | ShowNotification=true 38 | SortByUsername=false 39 | UnlockDatabase=true 40 | 41 | [generator] 42 | EnsureEvery=true 43 | ExcludeAlike=true 44 | Length=16 45 | LowerCase=true 46 | Numbers=true 47 | SpecialChars=true 48 | UpperCase=true 49 | 50 | [security] 51 | autotypeask=true 52 | clearclipboard=true 53 | clearclipboardtimeout=10 54 | lockdatabaseidle=false 55 | lockdatabaseidlesec=10 56 | passwordscleartext=false 57 | -------------------------------------------------------------------------------- /dotfiles/config/keepassxc/keepassxc.ini: -------------------------------------------------------------------------------- 1 | [General] 2 | AutoSaveAfterEveryChange=false 3 | AutoSaveOnExit=false 4 | AutoTypeEntryTitleMatch=true 5 | GlobalAutoTypeKey=0 6 | GlobalAutoTypeModifiers=0 7 | LastDatabases=/home/imalison/SparkleShare/config/db.kdbx, /home/imalison/SparkleShare/config/creds/keepass.key 8 | LastKeyFiles=@Variant(\0\0\0\x1c\0\0\0\x1\0\0\0T\0/\0h\0o\0m\0\x65\0/\0i\0m\0\x61\0l\0i\0s\0o\0n\0/\0S\0p\0\x61\0r\0k\0l\0\x65\0S\0h\0\x61\0r\0\x65\0/\0\x63\0o\0n\0\x66\0i\0g\0/\0\x64\0\x62\0.\0k\0\x64\0\x62\0x\0\0\0\n\0\0\0h\0/\0h\0o\0m\0\x65\0/\0i\0m\0\x61\0l\0i\0s\0o\0n\0/\0S\0p\0\x61\0r\0k\0l\0\x65\0S\0h\0\x61\0r\0\x65\0/\0\x63\0o\0n\0\x66\0i\0g\0/\0\x63\0r\0\x65\0\x64\0s\0/\0k\0\x65\0\x65\0p\0\x61\0s\0s\0.\0k\0\x65\0y) 9 | LastOpenedDatabases=/home/imalison/SparkleShare/config/db.kdbx 10 | MinimizeOnCopy=false 11 | OpenPreviousDatabasesOnStartup=true 12 | RememberLastDatabases=true 13 | RememberLastKeyFiles=true 14 | ShowToolbar=true 15 | UseGroupIconOnEntryCreation=false 16 | 17 | [GUI] 18 | EntryListColumnSizes=150, 150, 173 19 | EntrySearchColumnSizes=@Invalid() 20 | Language=system 21 | MainWindowGeometry=@ByteArray(\x1\xd9\xd0\xcb\0\x2\0\0\0\0\x1\xe0\0\0\0\x19\0\0\x3\xbf\0\0\x3\x83\0\0\x1\xe0\0\0\0\x19\0\0\x3\xbf\0\0\x3\x83\0\0\0\0\0\0\0\0\x5\xa0) 22 | MinimizeOnClose=true 23 | MinimizeOnStartup=false 24 | MinimizeToTray=true 25 | ShowTrayIcon=true 26 | SplitterState=@Invalid() 27 | 28 | [Http] 29 | AlwaysAllowAccess=true 30 | AlwaysAllowUpdate=false 31 | BestMatchOnly=false 32 | Enabled=true 33 | Host=localhost 34 | MatchUrlScheme=false 35 | Port=19455 36 | SearchInAllDatabases=false 37 | ShowNotification=true 38 | SortByUsername=false 39 | SupportKphFields=true 40 | UnlockDatabase=true 41 | 42 | [generator] 43 | EnsureEvery=true 44 | ExcludeAlike=false 45 | Length=16 46 | LowerCase=true 47 | Numbers=true 48 | SpecialChars=true 49 | UpperCase=true 50 | 51 | [security] 52 | autotypeask=true 53 | clearclipboard=true 54 | clearclipboardtimeout=10 55 | lockdatabaseidle=false 56 | lockdatabaseidlesec=10 57 | lockdatabaseminimize=false 58 | passwordscleartext=false 59 | -------------------------------------------------------------------------------- /dotfiles/config/latexmk/latexmkrc: -------------------------------------------------------------------------------- 1 | $pdf_mode = 1 2 | -------------------------------------------------------------------------------- /dotfiles/config/lxqt/.gitignore: -------------------------------------------------------------------------------- 1 | /debug.log 2 | -------------------------------------------------------------------------------- /dotfiles/config/lxqt/lxqt-powermanagement.conf: -------------------------------------------------------------------------------- 1 | [General] 2 | __userfile__=true 3 | enableBatteryWatcher=true 4 | enableExtMonLidClosedActions=true 5 | enableIdlenessWatcher=true 6 | enableLidWatcher=true 7 | lidClosedAcAction=4 8 | lidClosedAction=4 9 | lidClosedExtMonAcAction=-1 10 | lidClosedExtMonAction=-1 11 | powerLowAction=-1 12 | powerLowLevel=5 13 | powerLowWarning=30 14 | runCheckLevel=1 15 | showIcon=true 16 | useThemeIcons=false 17 | -------------------------------------------------------------------------------- /dotfiles/config/lxqt/lxqt.conf: -------------------------------------------------------------------------------- 1 | [General] 2 | __userfile__=true 3 | -------------------------------------------------------------------------------- /dotfiles/config/lxqt/power.conf: -------------------------------------------------------------------------------- 1 | [General] 2 | __userfile__=true 3 | -------------------------------------------------------------------------------- /dotfiles/config/mimeapps.list: -------------------------------------------------------------------------------- 1 | [Added Associations] 2 | video/x-matroska=vlc.desktop; 3 | audio/flac=vlc.desktop; 4 | image/jpeg=feh.desktop; 5 | video/x-msvideo=vlc.desktop; 6 | text/vnd.trolltech.linguist=vlc.desktop; 7 | audio/mpeg=vlc.desktop; 8 | application/pdf=okularApplication_pdf.desktop; 9 | image/png=okularApplication_kimgio.desktop; 10 | video/mp4=vlc.desktop;org.gnome.Totem.desktop; 11 | x-scheme-handler/magnet=userapp-transmission-gtk-24GQLZ.desktop; 12 | element=element-desktop.desktop 13 | 14 | [Default Applications] 15 | text/html=google-chrome.desktop 16 | x-scheme-handler/http=google-chrome.desktop 17 | x-scheme-handler/https=google-chrome.desktop 18 | x-scheme-handler/about=google-chrome.desktop 19 | x-scheme-handler/unknown=google-chrome.desktop 20 | x-scheme-handler/magnet=userapp-transmission-gtk-24GQLZ.desktop 21 | x-scheme-handler/element=element-desktop.desktop 22 | -------------------------------------------------------------------------------- /dotfiles/config/org.sparkleshare.SparkleShare/.gitignore: -------------------------------------------------------------------------------- 1 | /logs/* 2 | *.key 3 | -------------------------------------------------------------------------------- /dotfiles/config/org.sparkleshare.SparkleShare/projects.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Ivan Malison 5 | IvanMalison@gmail.com 6 | 7 | True 8 | 9 | config 10 | 39cd38b2e3c98ff32b1b597659e44af6fb803051a38f742c74319a85c00f021a 11 | ssh://git@bitbucket.org/ivanmalison/config 12 | Git 13 | 14 | 15 | org 16 | bfdb71914356d820aacbad80bf8880a7205e87e0aa925627d4b5f4d14b87fc45 17 | ssh://git@bitbucket.org/ivanmalison/org 18 | Git 19 | 20 | 21 | pass 22 | e4c0a9b8510234fc95ff0dc2ba3357373883ed3506ed96522a3540ece7a748e6 23 | ssh://git@bitbucket.org/ivanmalison/pass 24 | Git 25 | 26 | 27 | kat_org 28 | bff2a9675e8fafbfddf08c142e1c313ce7db262216d83f3b3a84f04de01c7ba1 29 | ssh://git@bitbucket.org/kathuang/org 30 | Git 31 | 32 | 33 | -------------------------------------------------------------------------------- /dotfiles/config/org.sparkleshare.SparkleShare/ssh/2017-02-21_23h31.key.pub: -------------------------------------------------------------------------------- 1 | ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQCyegmtKlqZ1XzK6afrQsU0NGKwHiJy2W1Myiisp2BPFeEWmMl9DX95qJWp62/1XxDGTqKEpHQl38ZG9Vq/3yuJ3ja8gXBNpvwgrpYG5BKjKa37nAG/IuUTXqJWufVzdN4VdYXGojkECpl1vOXx0guc8cyipzB4HiuVHmqh5u7EAJh1ws9vjeXO/H9AEVUa6wvcKjnMRwTYPcpg2UD+EYS/jE3Vpm+fHFgDuS4P8KdwVUxsr+BNh+Kp+UsGqpYDmzyHWExZbvprEUJF3VDFfPeor2hAHjlSR552YosF72eJXF1JePH5IdyBErLpaoY+yIrpOOIUmCJHDEAQqOv0vgcCC95rP1GzUbjlLWGBTgFff7oeCKd4x/T2ANA49cSslF3XPvT7eeZOTU8uZfC8YcuzobLiuDmLaQo8RtsQaR5VWXVZSgSi33KmSZVX7HiSxULG4hyHRbRbBobv/sS+hy8HY7K/hD09WoJBvpph5zaHQSXZgy33P9ky+/TaXQEPGZXbOtiGBbTqTxakXMii/H29PEszUdeMb9DNyws0GTNwrsz3ytLrXGdeKHfPMDldhQGfa0CKAuP2TiMDQlxiCEe/RyB6jeufbE8KprFwLDlNiRjRKWvERJHYZuS0va6vMtSKNZRKpgb/ozUj33YygwcWAUSA/n7Q9KLmkCQv+OQoXw== imalison-mpb-arch (SparkleShare) 2 | -------------------------------------------------------------------------------- /dotfiles/config/parcellite/parcelliterc: -------------------------------------------------------------------------------- 1 | [rc] 2 | RCVersion=1 3 | use_copy=true 4 | use_primary=true 5 | synchronize=true 6 | save_history=true 7 | history_pos=false 8 | history_x=1 9 | history_y=1 10 | history_limit=1000 11 | data_size=0 12 | item_size=5 13 | automatic_paste=false 14 | auto_key=false 15 | auto_mouse=true 16 | key_input=false 17 | restore_empty=true 18 | rc_edit=false 19 | type_search=false 20 | case_search=false 21 | ignore_whiteonly=false 22 | trim_wspace_begend=false 23 | trim_newline=false 24 | hyperlinks_only=false 25 | confirm_clear=true 26 | current_on_top=true 27 | single_line=true 28 | reverse_history=false 29 | item_length=50 30 | persistent_history=false 31 | persistent_separate=false 32 | persistent_on_top=false 33 | persistent_delim=\\n 34 | nonprint_disp=false 35 | ellipsize=2 36 | multi_user=true 37 | icon_name=parcellite 38 | menu_key= 39 | history_key= 40 | phistory_key= 41 | actions_key= 42 | -------------------------------------------------------------------------------- /dotfiles/config/powerline/colorschemes/shell/default.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Default color scheme for shell prompts", 3 | "groups": { 4 | "user": {"fg": "white", "bg": "blue"}, 5 | "hostname": {"fg": "brightyellow", "bg": "mediumorange", "attr": []}, 6 | "jobnum": {"fg": "brightyellow", "bg": "mediumorange", "attr": []}, 7 | "exit_fail": {"fg": "white", "bg": "darkestred", "attr": []}, 8 | "exit_success": {"fg": "white", "bg": "darkestgreen", "attr": []}, 9 | "environment": {"fg": "white", "bg": "darkestgreen", "attr": []}, 10 | "mode": {"fg": "darkestgreen", "bg": "brightgreen", 11 | "attr": ["bold"] }, 12 | "attached_clients": { "fg": "white", "bg": "darkestgreen", "attr": [] } 13 | }, 14 | "mode_translations": { 15 | "vicmd": { 16 | "groups": { 17 | "mode": {"fg": "darkestcyan", "bg": "white", "attr": ["bold"]} 18 | } 19 | } 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /dotfiles/config/powerline/colorschemes/tmux/default.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Default color scheme for terminal prompts", 3 | "groups": { 4 | "window_status_left": { "fg": "blue", "bg": "black", "attr": ["bold"] }, 5 | "window_status_right": { "fg": "blue", "bg": "black", "attr": ["bold"] }, 6 | "current_window_status_left": { "fg": "blue", "bg": "black", "attr": ["bold"] }, 7 | "current_window_status_right": { "fg": "blue", "bg": "black", "attr": ["bold"] }, 8 | "background:divider": { "fg": "blue", "bg": "black", "attr": ["bold"] }, 9 | "session": { "fg": "blue", "bg": "black", "attr": ["bold"] }, 10 | "date": { "fg": "blue", "bg": "black", "attr": ["bold"] }, 11 | "time": { "fg": "blue", "bg": "black", "attr": ["bold"] }, 12 | "time:divider": { "fg": "blue", "bg": "black", "attr": ["bold"] }, 13 | "email_alert": { "fg": "blue", "bg": "black", "attr": ["bold"] }, 14 | "email_alert_gradient": { "fg": "blue", "bg": "black", "attr": ["bold"] }, 15 | "hostname": { "fg": "blue", "bg": "black", "attr": ["bold"] }, 16 | "weather": { "fg": "blue", "bg": "black", "attr": ["bold"] }, 17 | "uptime": { "fg": "blue", "bg": "black", "attr": ["bold"] }, 18 | "external_ip": { "fg": "blue", "bg": "black", "attr": ["bold"] }, 19 | "system_load": { "fg": "blue", "bg": "black", "attr": ["bold"] }, 20 | "system_load_gradient": { "fg": "blue", "bg": "black", "attr": ["bold"] }, 21 | "cpu_load_percent": { "fg": "blue", "bg": "black", "attr": ["bold"] }, 22 | "cpu_load_percent_gradient": { "fg": "blue", "bg": "black", "attr": ["bold"] }, 23 | "environment": { "fg": "blue", "bg": "black", "attr": ["bold"] }, 24 | "battery": { "fg": "blue", "bg": "black", "attr": ["bold"] }, 25 | "test": { "fg": "blue", "bg": "black", "attr": ["bold"] }, 26 | "battery_gradient": { "fg": "blue", "bg": "black", "attr": ["bold"] }, 27 | "now_playing": { "fg": "blue", "bg": "black", "attr": ["bold"] } 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /dotfiles/config/powerline/themes/shell/default.json: -------------------------------------------------------------------------------- 1 | { 2 | "segments": { 3 | "left": [ 4 | { 5 | "function": "powerline.segments.shell.mode" 6 | }, 7 | { 8 | "function": "powerline.segments.common.net.hostname", 9 | "priority": 10 10 | }, 11 | { 12 | "function": "powerline.segments.common.env.user", 13 | "priority": 30 14 | }, 15 | { 16 | "function": "powerline.segments.common.env.virtualenv", 17 | "priority": 50 18 | }, 19 | { 20 | "function": "powerline.segments.shell.cwd", 21 | "priority": 10 22 | }, 23 | { 24 | "function": "powerline.segments.shell.jobnum", 25 | "priority": 20 26 | } 27 | ], 28 | "right": [ 29 | { 30 | "function": "powerline.segments.shell.last_pipe_status", 31 | "priority": 10 32 | }, 33 | { 34 | "function": "powerline.segments.common.vcs.branch", 35 | "priority": 40 36 | } 37 | ] 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /dotfiles/config/powerline/themes/tmux/default.json: -------------------------------------------------------------------------------- 1 | { 2 | "default_module": "powerline.segments.common", 3 | "segment_data": { 4 | "uptime": { 5 | "before": "⇑ " 6 | }, 7 | "date": { 8 | "before": "⌚ " 9 | } 10 | }, 11 | "segments": { 12 | "right": [ 13 | { 14 | "function": "powerline.segments.common.sys.system_load", 15 | "priority": 50 16 | }, 17 | { 18 | "function": "powerline.segments.common.sys.uptime", 19 | "priority": 50 20 | }, 21 | { 22 | "function": "powerline.segments.common.time.date", 23 | "args": { 24 | "format": "%H:%M", 25 | "istime": true 26 | } 27 | }, 28 | { 29 | "function": "powerline.segments.common.net.external_ip" 30 | }, 31 | { 32 | "function": "powerline.segments.common.net.hostname" 33 | } 34 | ], 35 | "special": [ 36 | { 37 | "function": "powerline.segments.tmux.window_status", 38 | "type": "string", 39 | "contnets": "#I" 40 | } 41 | ] 42 | } 43 | } 44 | -------------------------------------------------------------------------------- /dotfiles/config/pulseaudio-ctl/config: -------------------------------------------------------------------------------- 1 | # 2 | # $HOME/.config/pulseaudio-ctl/config 3 | # 4 | 5 | # The default setting is for pulseaudio-ctl to NOT increase to volume level 6 | # above 100 % but Some users may wish exceed this level. If this describes 7 | # your use case, uncomment the UPPER_THRESHOLD variable below setting it to 8 | # the new upper threshold. 9 | # 10 | #UPPER_THRESHOLD=150 11 | 12 | # Push output through libnotify. Set to any value to enable this feature 13 | # and note that you must have /usr/bin/notify-send to use this. On Arch 14 | # libnotify provides this. Other distros may not name it as such. 15 | # 16 | #NOTIFY=yes 17 | 18 | # Show a graphical progress-bar type visualization of the volume level in 19 | # libnotify. No setting or commented out will show a simply percentage but 20 | # a setting will convert the percentage to a progress-bar in libnotify. 21 | # 22 | #BARCHART=yes 23 | 24 | # Use KDE OSD notification. Set to any value to enable this feature. 25 | #KDE_OSD=yes 26 | -------------------------------------------------------------------------------- /dotfiles/config/rofi-pass/config: -------------------------------------------------------------------------------- 1 | default_user='IvanMalison@gmail.com' 2 | action_menu="Alt+1" 3 | autotype="Alt+a" 4 | type_pass="Alt+p" 5 | copy_pass="Alt+2" 6 | type_user="Alt+u" 7 | copy_name="Alt+0" 8 | help_color="#4872FF" 9 | -------------------------------------------------------------------------------- /dotfiles/config/rofi/colorful/colors.rasi: -------------------------------------------------------------------------------- 1 | /* colors */ 2 | 3 | * { 4 | al: #00000000; 5 | bg: #000000ff; 6 | se: #101010ff; 7 | fg: #FFFFFFff; 8 | ac: #EC7875ff; 9 | } 10 | -------------------------------------------------------------------------------- /dotfiles/config/rofi/colorful/launcher.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | ## Author : Aditya Shakya 4 | ## Mail : adi1090x@gmail.com 5 | ## Github : @adi1090x 6 | ## Twitter : @adi1090x 7 | 8 | # Available Styles 9 | # >> Created and tested on : rofi 1.6.0-1 10 | # 11 | # style_1 style_2 style_3 style_4 style_5 style_6 12 | # style_7 style_8 style_9 style_10 style_11 style_12 13 | 14 | theme="style_1" 15 | dir="$HOME/.config/rofi/launchers/colorful" 16 | 17 | # dark 18 | ALPHA="#00000000" 19 | BG="#000000ff" 20 | FG="#FFFFFFff" 21 | SELECT="#101010ff" 22 | 23 | # light 24 | #ALPHA="#00000000" 25 | #BG="#FFFFFFff" 26 | #FG="#000000ff" 27 | #SELECT="#f3f3f3ff" 28 | 29 | # accent colors 30 | COLORS=('#EC7875' '#61C766' '#FDD835' '#42A5F5' '#BA68C8' '#4DD0E1' '#00B19F' \ 31 | '#FBC02D' '#E57C46' '#AC8476' '#6D8895' '#EC407A' '#B9C244' '#6C77BB') 32 | ACCENT="${COLORS[$(( $RANDOM % 14 ))]}ff" 33 | 34 | # overwrite colors file 35 | cat > $dir/colors.rasi <<- EOF 36 | /* colors */ 37 | 38 | * { 39 | al: $ALPHA; 40 | bg: $BG; 41 | se: $SELECT; 42 | fg: $FG; 43 | ac: $ACCENT; 44 | } 45 | EOF 46 | 47 | # comment these lines to disable random style 48 | themes=($(ls -p --hide="launcher.sh" --hide="colors.rasi" $dir)) 49 | theme="${themes[$(( $RANDOM % 12 ))]}" 50 | 51 | rofi -no-lazy-grab -show drun -modi drun -theme $dir/"$theme" 52 | -------------------------------------------------------------------------------- /dotfiles/config/rofi/config.rasi: -------------------------------------------------------------------------------- 1 | configuration { 2 | bw: 0; 3 | padding: 50; 4 | show-icons: true; 5 | terminal: "alacritty"; 6 | sidebar-mode: false; 7 | fullscreen: true; 8 | dpi: 100; 9 | } 10 | 11 | @theme "colorful/style_7.rasi" 12 | -------------------------------------------------------------------------------- /dotfiles/config/rofi/white.rasi: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/colonelpanic8/dotfiles/a244ee2223c0b49c3527549e2b68cffaa42b598c/dotfiles/config/rofi/white.rasi -------------------------------------------------------------------------------- /dotfiles/config/screencloud/ScreenCloud.conf: -------------------------------------------------------------------------------- 1 | [General] 2 | config-version=1.1 3 | first-run=false 4 | 5 | [account] 6 | email=IvanMalison@gmail.com 7 | logged-in=true 8 | token= 9 | token-secret=d3f4ef69df4242e9b10ca034b28f6831 10 | 11 | [hotkeys] 12 | captureFullScreen=Shift+Alt+1 13 | captureSelection=Shift+Alt+2 14 | captureWindow=Shift+Alt+3 15 | 16 | [main] 17 | capture-window-borders=false 18 | current-uploader=imgur 19 | delay=100 20 | format=png 21 | jpeg-quality=90 22 | run-on-startup=true 23 | show-notifications=true 24 | show-save-dialog=true 25 | sound=true 26 | 27 | [network] 28 | proxy-req-auth=false 29 | 30 | [updates] 31 | check-updates-automatically=true 32 | 33 | [uploaders] 34 | imgur\access-token=bcea050c708998597610f22a20c2121afa4cfad9 35 | imgur\anonymous=false 36 | imgur\copy-direct-link=false 37 | imgur\copy-link=true 38 | imgur\name-format=Screenshot at %H:%M:%S 39 | imgur\refresh-token=9890577aa0486ecb5ddc5a04cf9ceb0228e91b26 40 | imgur\username= 41 | -------------------------------------------------------------------------------- /dotfiles/config/skippy-xd/skippy-xd.rc: -------------------------------------------------------------------------------- 1 | [general] 2 | showAllDesktops = true 3 | showMinimized = true 4 | switchDesktopOnActivate = true 5 | showIconsOnThumbnails = false 6 | -------------------------------------------------------------------------------- /dotfiles/config/sparkleshare/2015-11-20_19h52.key.pub: -------------------------------------------------------------------------------- 1 | ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDK766fKJbtRNuvK00nzFC6wtyrtiFjfM3glgqYn4rH7mIWoLhrIVihWuagAZbYOGNvVGnqOmjqtn4NLBfyZvonzz4NAvgcUkBTB3Z+fD+vtKi9nSySsFm7HAyn9kL75dQoTyqaLkLXl3Hxw8eZQyLia++ukAMDFgNQIK+Prc4v8Cm4SWrpIUpLt2P/hqI2s8V3TXdKLPeBFkqYvP4kqRC6UiCIy7HnhV8IFB3sKBRvRfir2HdVd23qWQClR16yiTZBiHVhUrATO8gxJO5y9RUR6mPwaHmtWoei4YUu9pEhGHvXaGjzDK/Ul2xl67shbLg7q88A/ncUkS829AbqIIpP ivan-mbp 2 | -------------------------------------------------------------------------------- /dotfiles/config/sparkleshare/config.xml: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | Ivan Malison 5 | IvanMalison@gmail.com 6 | 7 | True 8 | 9 | org 10 | a6a8820b6d7b59f782ea6b9995b6b3b141877498 11 | ssh://git@bitbucket.org/ivanmalison/org.git 12 | Git 13 | 14 | 15 | config 16 | 66e07b6027eecec90670e4b608dcd6ec7d51f5d9 17 | ssh://git@bitbucket.org/ivanmalison/config 18 | Git 19 | 20 | -------------------------------------------------------------------------------- /dotfiles/config/starship.toml: -------------------------------------------------------------------------------- 1 | add_newline = false 2 | [character] 3 | success_symbol = "[➜](bold green)" 4 | error_symbol = "[➜](bold red)" 5 | -------------------------------------------------------------------------------- /dotfiles/config/taffybar/.envrc: -------------------------------------------------------------------------------- 1 | use flake . --impure 2 | -------------------------------------------------------------------------------- /dotfiles/config/taffybar/README.org: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/colonelpanic8/dotfiles/a244ee2223c0b49c3527549e2b68cffaa42b598c/dotfiles/config/taffybar/README.org -------------------------------------------------------------------------------- /dotfiles/config/taffybar/cabal.project: -------------------------------------------------------------------------------- 1 | packages: . taffybar/ 2 | -------------------------------------------------------------------------------- /dotfiles/config/taffybar/flake.nix: -------------------------------------------------------------------------------- 1 | { 2 | inputs = { 3 | flake-utils.url = github:numtide/flake-utils; 4 | xmonad.url = github:xmonad/xmonad/master; 5 | taffybar.url = "github:taffybar/taffybar"; 6 | }; 7 | outputs = { self, flake-utils, taffybar, nixpkgs, xmonad }: 8 | let 9 | hoverlay = final: prev: hself: hsuper: { 10 | taffybar = hsuper.taffybar.overrideAttrs (old: { 11 | doHaddock = false; 12 | }); 13 | imalison-taffybar = prev.haskell.lib.addPkgconfigDepends ( 14 | hself.callCabal2nix "imalison-taffybar" 15 | ( 16 | final.lib.sourceByRegex ./. 17 | ["taffybar.hs" "imalison-taffybar.cabal"] 18 | ) 19 | { }) [ 20 | final.util-linux.dev 21 | final.pcre2 22 | final.pcre 23 | final.libselinux.dev 24 | final.libsepol.dev 25 | final.fribidi.out 26 | final.fribidi.dev 27 | final.libthai.dev 28 | final.libdatrie.dev 29 | final.xorg.libXdmcp.dev 30 | final.libxkbcommon.dev 31 | final.libepoxy.dev 32 | final.xorg.libXtst.out 33 | ]; 34 | }; 35 | defComp = { compiler = "ghc94"; }; 36 | overlay = xmonad.lib.fromHOL hoverlay defComp; 37 | overlays = [ taffybar.overlay overlay ]; 38 | in flake-utils.lib.eachDefaultSystem (system: 39 | let pkgs = import nixpkgs { inherit system overlays; config.allowBroken = true; }; 40 | hpkgs = pkgs.lib.attrsets.getAttrFromPath (xmonad.lib.hpath defComp) pkgs; 41 | in 42 | rec { 43 | devShell = hpkgs.shellFor { 44 | packages = p: [ p.imalison-taffybar p.taffybar ]; 45 | nativeBuildInputs = with hpkgs; [ 46 | cabal-install 47 | # ghcid ormolu implicit-hie haskell-language-server hlint 48 | ]; 49 | }; 50 | defaultPackage = hpkgs.imalison-taffybar; 51 | }) // { inherit overlay overlays; } ; 52 | } 53 | -------------------------------------------------------------------------------- /dotfiles/config/taffybar/gotham.css: -------------------------------------------------------------------------------- 1 | @define-color base0 #0c1014; 2 | @define-color base1 #11151c; 3 | @define-color base2 #091f2e; 4 | @define-color base3 #0a3749; 5 | @define-color base4 #245361; 6 | @define-color base5 #599cab; 7 | @define-color base6 #99d1ce; 8 | @define-color base7 #d3ebe9; 9 | @define-color red #c23127; 10 | @define-color orange #d26937; 11 | @define-color yellow #edb443; 12 | @define-color magenta #888ca6; 13 | @define-color violet #4e5166; 14 | @define-color blue #195466; 15 | @define-color cyan #33859e; 16 | @define-color green #2aa889; 17 | 18 | @define-color active-window-color @white; 19 | @define-color urgent-window-color @taffy-blue; 20 | @define-color font-color @white; 21 | @define-color menu-background-color @white; 22 | @define-color menu-font-color @black; 23 | @define-color bar-background rgba(11, 11, 10, 0.6); 24 | @define-color accent @red; 25 | @define-color menu-highlight @magenta; 26 | -------------------------------------------------------------------------------- /dotfiles/config/taffybar/imalison-taffybar.cabal: -------------------------------------------------------------------------------- 1 | name: imalison-taffybar 2 | version: 0.1.0.0 3 | homepage: https://github.com/IvanMalison/dotfiles/tree/master/dotfiles/config/taffybar 4 | license: BSD3 5 | author: Ivan Malison 6 | maintainer: IvanMalison@gmail.com 7 | copyright: Ivan Malison 8 | category: Web 9 | build-type: Simple 10 | extra-source-files: README.org 11 | cabal-version: >=1.10 12 | 13 | executable taffybar 14 | hs-source-dirs: . 15 | main-is: taffybar.hs 16 | ghc-options: -threaded -rtsopts -with-rtsopts=-N 17 | ghc-prof-options: -fprof-auto 18 | build-depends: base 19 | , X11 20 | , bytestring 21 | , containers 22 | , directory 23 | , filepath 24 | , gi-gtk 25 | , gtk-sni-tray 26 | , gtk-strut 27 | , haskell-gi-base 28 | , hostname 29 | , hslogger 30 | , process 31 | , split 32 | , text 33 | , time 34 | , taffybar>=3.2.0 35 | , transformers 36 | , xdg-basedir 37 | default-language: Haskell2010 38 | 39 | source-repository head 40 | type: git 41 | location: https://github.com/IvanMalison/dotfiles 42 | -------------------------------------------------------------------------------- /dotfiles/config/taffybar/profile.nix: -------------------------------------------------------------------------------- 1 | let 2 | pkgs = (import ./base.nix); 3 | profiledHaskellPackages = pkgs.haskellPackages.override (old: { 4 | overrides = pkgs.lib.composeExtensions (old.overrides or (_: _: {})) (self: super: { 5 | mkDerivation = args: super.mkDerivation (args // { 6 | enableLibraryProfiling = true; 7 | }); 8 | }); 9 | }); 10 | in pkgs.haskellPackages.shellFor { 11 | packages = p: [ 12 | (pkgs.haskell.lib.doBenchmark p.imalison-taffybar) 13 | (pkgs.haskell.lib.doBenchmark p.taffybar) 14 | ]; 15 | } 16 | -------------------------------------------------------------------------------- /dotfiles/config/taffybar/stack.yaml: -------------------------------------------------------------------------------- 1 | flags: {} 2 | extra-package-dbs: [] 3 | packages: 4 | - . 5 | - location: ./taffybar 6 | extra-dep: true 7 | - location: ../xmonad/xmonad-contrib 8 | extra-dep: true 9 | - location: ../xmonad/xmonad 10 | extra-dep: true 11 | # - location: ../../../../Projects/status-notifier-item 12 | # extra-dep: true 13 | # - location: ../../../../Projects/gtk-sni-tray 14 | # extra-dep: true 15 | extra-deps: 16 | - ConfigFile-1.1.4 17 | - broadcast-chan-0.2.0.2 18 | - dbus-hslogger-0.1.0.1 19 | - gi-cairo-connector-0.0.1 20 | - gi-cairo-render-0.0.1 21 | - gi-dbusmenu-0.4.6 22 | - gi-dbusmenugtk3-0.4.7 23 | - gi-gdkx11-3.0.8 24 | - gi-xlib-2.0.7 25 | - gtk-sni-tray-0.1.6.0 26 | - gtk-strut-0.1.3.0 27 | - haskell-gi-0.22.6 28 | - rate-limit-1.4.1 29 | - status-notifier-item-0.3.0.3 30 | - time-units-1.0.0 31 | - xml-helpers-1.0.0 32 | resolver: nightly-2019-06-19 33 | allow-newer: true 34 | nix: 35 | packages: 36 | - cairo 37 | - gcc 38 | - gnome2.pango 39 | - gobjectIntrospection 40 | - gtk3 41 | - hicolor-icon-theme 42 | - libdbusmenu-glib 43 | - libdbusmenu-gtk3 44 | - libxml2 45 | - numix-icon-theme-circle 46 | - pkgconfig 47 | - x11 48 | - xorg.libX11 49 | - xorg.libXext 50 | - xorg.libXinerama 51 | - xorg.libXrandr 52 | - xorg.libXrender 53 | - zlib 54 | -------------------------------------------------------------------------------- /dotfiles/config/terminator/config: -------------------------------------------------------------------------------- 1 | [global_config] 2 | [keybindings] 3 | new_tab = t 4 | move_tab_right = Escape 5 | next_tab = f 6 | move_tab_left = Escape 7 | prev_tab = b 8 | [profiles] 9 | [[default]] 10 | palette = "#073642:#dc322f:#859900:#b58900:#268bd2:#d33682:#2aa198:#eee8d5:#002b36:#cb4b16:#586e75:#657b83:#839496:#6c71c4:#93a1a1:#fdf6e3" 11 | background_image = None 12 | use_system_font = False 13 | foreground_color = "#839496" 14 | font = Monaco for Powerline 8 15 | background_color = "#002b36" 16 | [layouts] 17 | [[default]] 18 | [[[child1]]] 19 | type = Terminal 20 | parent = window0 21 | [[[window0]]] 22 | type = Window 23 | parent = "" 24 | [plugins] 25 | -------------------------------------------------------------------------------- /dotfiles/config/termite/config: -------------------------------------------------------------------------------- 1 | [options] 2 | dynamic_title = true 3 | scrollback_lines = -1 4 | 5 | [colors] 6 | # Base16 Default Dark 7 | # Author: Chris Kempson (http://chriskempson.com) 8 | 9 | foreground = #d8d8d8 10 | foreground_bold = #e8e8e8 11 | cursor = #e8e8e8 12 | background = #181818 13 | 14 | # 16 color space 15 | 16 | # Black, Gray, Silver, White 17 | color0 = #181818 18 | color8 = #585858 19 | color7 = #d8d8d8 20 | color15 = #f8f8f8 21 | 22 | # Red 23 | color1 = #ab4642 24 | color9 = #ab4642 25 | 26 | # Green 27 | color2 = #a1b56c 28 | color10 = #a1b56c 29 | 30 | # Yellow 31 | color3 = #f7ca88 32 | color11 = #f7ca88 33 | 34 | # Blue 35 | color4 = #7cafc2 36 | color12 = #7cafc2 37 | 38 | # Purple 39 | color5 = #ba8baf 40 | color13 = #ba8baf 41 | 42 | # Teal 43 | color6 = #86c1b9 44 | color14 = #86c1b9 45 | 46 | # Extra colors 47 | color16 = #dc9656 48 | color17 = #a16946 49 | color18 = #282828 50 | color19 = #383838 51 | color20 = #b8b8b8 52 | color21 = #e8e8e8 53 | 54 | -------------------------------------------------------------------------------- /dotfiles/config/xmonad/.gitignore: -------------------------------------------------------------------------------- 1 | /.stack-work* 2 | /dist/ 3 | /imalison-xmonad 4 | /xmonad-x86_64-linux 5 | /xmonad.errors 6 | /xmonad.hi 7 | /xmonad.o 8 | /xmonad.state 9 | /prompt-history 10 | /.cached-stack-install-path 11 | -------------------------------------------------------------------------------- /dotfiles/config/xmonad/base.nix: -------------------------------------------------------------------------------- 1 | pkgs: pkgs { 2 | overlays = [ 3 | (import ../taffybar/taffybar/overlay.nix) 4 | (import ./overlay.nix) 5 | ]; 6 | } 7 | -------------------------------------------------------------------------------- /dotfiles/config/xmonad/build: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | SRC_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" 4 | 5 | output_file=$1; shift 6 | 7 | cd "$SRC_DIR" 8 | nix build 9 | exe_location="$SRC_DIR/result/bin/imalison-xmonad" 10 | nix-build 11 | cp -f "$exe_location" "$output_file" 12 | -------------------------------------------------------------------------------- /dotfiles/config/xmonad/cabal.project: -------------------------------------------------------------------------------- 1 | packages: . xmonad-contrib/ 2 | -------------------------------------------------------------------------------- /dotfiles/config/xmonad/flake.nix: -------------------------------------------------------------------------------- 1 | { 2 | inputs = { 3 | flake-utils.url = github:numtide/flake-utils; 4 | xmonad-contrib = { 5 | url = path:./xmonad-contrib; 6 | inputs.nixpkgs.follows = "nixpkgs"; 7 | }; 8 | xmonad = { 9 | url = path:./xmonad; 10 | inputs.nixpkgs.follows = "nixpkgs"; 11 | }; 12 | }; 13 | outputs = { self, flake-utils, nixpkgs, xmonad, xmonad-contrib }: 14 | let 15 | overlay = import ./overlay.nix; 16 | overlays = [ overlay xmonad.overlay xmonad-contrib.overlay ]; 17 | in flake-utils.lib.eachDefaultSystem (system: 18 | let pkgs = import nixpkgs { inherit system overlays; config.allowBroken = true; }; 19 | in 20 | rec { 21 | devShell = pkgs.haskellPackages.shellFor { 22 | packages = p: [ p.imalison-xmonad p.xmonad-contrib ]; 23 | buildInputs = with pkgs.haskellPackages; [ 24 | cabal-install haskell-language-server hlint ghcid ormolu implicit-hie 25 | ]; 26 | }; 27 | defaultPackage = pkgs.haskellPackages.imalison-xmonad; 28 | }) // { inherit overlay overlays; } ; 29 | } 30 | -------------------------------------------------------------------------------- /dotfiles/config/xmonad/imalison-xmonad.cabal: -------------------------------------------------------------------------------- 1 | name: imalison-xmonad 2 | version: 0.1.0.0 3 | synopsis: Ivan Malison's xmonad configuration. 4 | homepage: https://github.com/IvanMalison/dotfiles/tree/master/dotfiles/config/xmonad 5 | license: GPL-3 6 | license-file: LICENSE 7 | author: Ivan Malison 8 | maintainer: IvanMalison@gmail.com 9 | category: System 10 | build-type: Simple 11 | cabal-version: >=1.10 12 | 13 | executable imalison-xmonad 14 | main-is: xmonad.hs 15 | build-depends: aeson>=0.11.2.1 16 | , X11>=1.8 17 | , base >=4.7 18 | , bytestring>=0.10.8.1 19 | , containers>=0.5.7.1 20 | , directory>=1.2.6.2 21 | , filepath>=1.4.1.0 22 | , hostname>=1.0 23 | , multimap>=1.2.1 24 | , process>=1.4.3.0 25 | , safe 26 | , split 27 | , xdg-desktop-entry 28 | , transformers>=0.5.2.0 29 | , tuple >= 0.3.0.2 30 | , utf8-string 31 | , xmonad-contrib 32 | , xmonad 33 | hs-source-dirs: . 34 | default-language: Haskell2010 35 | -------------------------------------------------------------------------------- /dotfiles/config/xmonad/overlay.nix: -------------------------------------------------------------------------------- 1 | _: pkgs: rec { 2 | haskellPackages = pkgs.haskellPackages.override (old: { 3 | overrides = pkgs.lib.composeExtensions (old.overrides or (_: _: {})) (self: super: rec { 4 | imalison-xmonad = self.callCabal2nix "imalison-xmonad" ( 5 | pkgs.lib.sourceByRegex ./. 6 | [ 7 | "xmonad.hs" "imalison-xmonad.cabal" 8 | "PagerHints.hs" "LICENSE" 9 | ] 10 | ) { }; 11 | }); 12 | }); 13 | } 14 | -------------------------------------------------------------------------------- /dotfiles/dircolors: -------------------------------------------------------------------------------- 1 | LINK 35;40 2 | EXEC 01;40 -------------------------------------------------------------------------------- /dotfiles/emacs.d/.gitignore: -------------------------------------------------------------------------------- 1 | *.elc 2 | .cask 3 | .lsp-session-v1 4 | .org-id-locations 5 | .project-roots 6 | .python-environments/ 7 | .smex-items 8 | .sx 9 | .tern-port 10 | .tutor 11 | /eln-cache 12 | /transient 13 | /tree-sitter 14 | README.el 15 | README.html 16 | ac-comphist.dat 17 | auto-save-list 18 | backups 19 | benchmark.el 20 | bookmarks 21 | custom-after.el 22 | custom-before.el 23 | custom.el 24 | elpa 25 | ensime 26 | eproject.lst 27 | eshell 28 | ido.last 29 | jabber-avatar-cache 30 | kat-mode.el 31 | org-caldav-* 32 | org-caldav-backup.org 33 | org-config*.el 34 | org-gcal/ 35 | persp-confs/ 36 | places 37 | project-to-org-filepath 38 | recentf 39 | request/ 40 | semanticdb/ 41 | server 42 | session.* 43 | skewer-cache 44 | smex-items 45 | speed-type/ 46 | straight/ 47 | this-machine.el 48 | tramp 49 | tutorial 50 | uber.el 51 | url 52 | var 53 | xkcd 54 | org-roam.db 55 | /projects 56 | /multisession 57 | gptel-crowdsourced-prompts.csv 58 | org-fc-reviews.tsv 59 | /oauth2-auto.plist 60 | /.org-generic-id-locations 61 | /persist 62 | -------------------------------------------------------------------------------- /dotfiles/emacs.d/snippets/python-mode/ign: -------------------------------------------------------------------------------- 1 | # -*- mode: snippet -*- 2 | # name: ign 3 | # key: ign 4 | # -- 5 | # type: ignore -------------------------------------------------------------------------------- /dotfiles/emacs.d/snippets/python-mode/inp: -------------------------------------------------------------------------------- 1 | # -*- mode: snippet -*- 2 | # name: inp 3 | # key: inp 4 | # -- 5 | import numpy as np -------------------------------------------------------------------------------- /dotfiles/emacs.d/snippets/python-mode/ipdb: -------------------------------------------------------------------------------- 1 | # -*- mode: snippet -*- 2 | # name: ipdb 3 | # key: ipdb 4 | # -- 5 | import ipdb; ipdb.set_trace() -------------------------------------------------------------------------------- /dotfiles/emacs.d/snippets/python-mode/isa: -------------------------------------------------------------------------------- 1 | # -*- mode: snippet -*- 2 | # name: isa 3 | # key: isa 4 | # -- 5 | import sqlalchemy as sa -------------------------------------------------------------------------------- /dotfiles/emacs.d/snippets/python-mode/logg: -------------------------------------------------------------------------------- 1 | # -*- mode: snippet -*- 2 | # name: logg 3 | # key: logg 4 | # -- 5 | logger = logging.getLogger(__name__) -------------------------------------------------------------------------------- /dotfiles/emacs.d/snippets/python-mode/noqa: -------------------------------------------------------------------------------- 1 | # -*- mode: snippet -*- 2 | # name: 401 3 | # key: 401 4 | # -- 5 | # noqa: F401 -------------------------------------------------------------------------------- /dotfiles/emacs.d/snippets/sh-mode/env_bang: -------------------------------------------------------------------------------- 1 | # -*- mode: snippet -*- 2 | # name: env-bang 3 | # key: env 4 | # -- 5 | #!/usr/bin/env $1 6 | 7 | -------------------------------------------------------------------------------- /dotfiles/ghci: -------------------------------------------------------------------------------- 1 | :set +c 2 | -------------------------------------------------------------------------------- /dotfiles/gitignore: -------------------------------------------------------------------------------- 1 | # emacs 2 | .#* 3 | .emacs.desktop 4 | .emacs* 5 | projectile.cache 6 | projectile-bookmarks.eld 7 | .dir-locals.el 8 | *_flymake\.* 9 | # Org produces folders with temp files when editing source blocks. 10 | *Org Src* 11 | 12 | # Python 13 | *.pyc 14 | .ropeproject/ 15 | 16 | # Clojure 17 | .cljs_rhino_repl 18 | .nrepl-port 19 | target 20 | .lein-failures 21 | pom.xml 22 | 23 | # CTags 24 | TAGS 25 | 26 | # Vim 27 | *.tmp* 28 | 29 | # JavaScript 30 | .tern-project 31 | .tern-port 32 | node_modules 33 | 34 | # Folder view configuration files 35 | .DS_Store 36 | Desktop.ini 37 | 38 | # Thumbnail cache files 39 | ._* 40 | Thumbs.db 41 | 42 | # OSX 43 | .Spotlight-V100 44 | .Trashes 45 | 46 | # Ignore output from nohup 47 | nohup.out 48 | 49 | # Haskell 50 | dist 51 | dist-* 52 | cabal-dev 53 | *.o 54 | *.hi 55 | *.chi 56 | *.chs.h 57 | *.dyn_o 58 | *.dyn_hi 59 | .hpc 60 | .hsenv 61 | .cabal-sandbox/ 62 | cabal.sandbox.config 63 | *.prof 64 | *.aux 65 | *.hp 66 | *.eventlog 67 | .stack-work*/ 68 | cabal.project.local 69 | .HTF/ 70 | 71 | # nix 72 | /result 73 | 74 | # 75 | .direnv 76 | /dotfiles/config/gtk-3.0/settings.ini 77 | 78 | /untracked 79 | 80 | railbird-infra-*.json 81 | -------------------------------------------------------------------------------- /dotfiles/hgignore: -------------------------------------------------------------------------------- 1 | # Use shell-style glob syntax 2 | syntax: glob 3 | 4 | # Compiled Python files 5 | *.pyc 6 | 7 | # Folder view configuration files 8 | .DS_Store 9 | Desktop.ini 10 | 11 | # Thumbnail cache files 12 | ._* 13 | Thumbs.db 14 | 15 | # Files that might appear on external disks 16 | .Spotlight-V100 17 | .Trashes -------------------------------------------------------------------------------- /dotfiles/hindent.yaml: -------------------------------------------------------------------------------- 1 | indent-size: 2 2 | line-length: 80 3 | force-trailing-newline: false 4 | -------------------------------------------------------------------------------- /dotfiles/hushlogin: -------------------------------------------------------------------------------- 1 | # The mere presence of this file in the home directory disables the system 2 | # copyright notice, the date and time of the last login, the message of the 3 | # day as well as other information that may otherwise appear on login. 4 | # See `man login`. -------------------------------------------------------------------------------- /dotfiles/icons/default/index.theme: -------------------------------------------------------------------------------- 1 | [Icon Theme] 2 | Name=Default 3 | Comment=Default Cursor Theme 4 | Inherits=breeze_cursors 5 | -------------------------------------------------------------------------------- /dotfiles/imwheelrc: -------------------------------------------------------------------------------- 1 | ".*" 2 | None, Up, Up, 4 3 | None, Down, Down, 4 4 | -------------------------------------------------------------------------------- /dotfiles/inputrc: -------------------------------------------------------------------------------- 1 | # Make Tab autocomplete regardless of filename case 2 | set completion-ignore-case on 3 | 4 | # List all matches in case multiple possible completions are possible 5 | set show-all-if-ambiguous on 6 | 7 | # Immediately add a trailing slash when autocompleting symlinks to directories 8 | set mark-symlinked-directories on 9 | 10 | # Use the text that has already been typed as the prefix for searching through 11 | # commands (i.e. more intelligent Up/Down behavior) 12 | "\e[B": history-search-forward 13 | "\e[A": history-search-backward 14 | 15 | # Do not autocomplete hidden files unless the pattern explicitly begins with a dot 16 | set match-hidden-files off 17 | 18 | # Show all autocomplete results at once 19 | set page-completions off 20 | 21 | # If there are more than 200 possible completions for a word, ask to show them all 22 | set completion-query-items 200 23 | 24 | # Show extra file information when completing, like `ls -F` does 25 | set visible-stats on 26 | 27 | # Be more intelligent when autocompleting by also looking at the text after 28 | # the cursor. For example, when the current line is "cd ~/src/mozil", and 29 | # the cursor is on the "z", pressing Tab will not autocomplete it to "cd 30 | # ~/src/mozillail", but to "cd ~/src/mozilla". (This is supported by the 31 | # Readline used by Bash 4.) 32 | set skip-completed-text on 33 | 34 | # Allow UTF-8 input and output, instead of showing stuff like $'\0123\0456' 35 | set input-meta on 36 | set output-meta on 37 | set convert-meta off 38 | 39 | # Use Alt/Meta + Delete to delete the preceding word 40 | "\e[3;3~": kill-word -------------------------------------------------------------------------------- /dotfiles/lein/profile.clj: -------------------------------------------------------------------------------- 1 | {:repl {:plugins [[cider/cider-nrepl "0.15.1"]]}} 2 | -------------------------------------------------------------------------------- /dotfiles/lib/bin/brightness.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env sh 2 | 3 | volnoti-show $(sudo brightness_manager.py -c "$@" -p) 4 | -------------------------------------------------------------------------------- /dotfiles/lib/bin/clipit_history.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | from __future__ import print_function 3 | import appdirs 4 | import argparse 5 | import os 6 | import struct 7 | 8 | 9 | clipit_history_file = os.path.join( 10 | appdirs.user_data_dir(), "clipit/history", 11 | ) 12 | 13 | 14 | def get_clipit_history(filename): 15 | with open(filename, 'rb') as f: 16 | f.read(68) 17 | size, _ = struct.unpack('2i', f.read(8)) 18 | while (size > 0): 19 | item = f.read(size) 20 | if item: 21 | yield item.decode('utf-8') 22 | _, _, _, size, _ = struct.unpack('5i', f.read(20)) 23 | 24 | 25 | if __name__ == '__main__': 26 | parser = argparse.ArgumentParser(description='Lookup clipit history') 27 | parser.add_argument( 28 | '--separator', '-s', 29 | help='the separator to use when outputting history', 30 | type=str, 31 | default='\n', 32 | ) 33 | parser.add_argument( 34 | '--begin-index', '-b', 35 | type=int, 36 | default=0 37 | ) 38 | parser.add_argument( 39 | '--end-index', '-e', 40 | type=int, 41 | default=None 42 | ) 43 | parser.add_argument( 44 | '--index', '-i', 45 | type=int, 46 | default=None 47 | ) 48 | parser.add_argument( 49 | '--separator-replacement', '-r', 50 | type=str, 51 | default=None 52 | ) 53 | args = parser.parse_args() 54 | if not args.separator_replacement: 55 | args.separator_replacement = args.separator 56 | history = list(get_clipit_history(clipit_history_file)) 57 | if args.index is not None: 58 | text = history[args.index] 59 | else: 60 | selected = history[args.begin_index:args.end_index] 61 | text = args.separator.join([s.replace(args.separator, args.separator_replacement) 62 | for s in selected]) 63 | print(text, end='') 64 | -------------------------------------------------------------------------------- /dotfiles/lib/bin/get_sink_input_info.hs: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env runhaskell 2 | {-# LANGUAGE FlexibleContexts, AllowAmbiguousTypes #-} 3 | 4 | import Control.Monad 5 | import Data.Aeson 6 | import qualified Data.ByteString as B 7 | import qualified Data.Text.Lazy.IO as T 8 | import qualified Data.Text.Lazy.Encoding as T 9 | import Data.List 10 | import Data.List.Split 11 | import Data.Maybe 12 | import qualified Data.Map as M 13 | import Data.Text (unpack) 14 | import System.Process 15 | import Text.Printf 16 | import Text.Regex.Posix 17 | import System.Exit 18 | 19 | main :: IO () 20 | main = do 21 | out <- getSinkText 22 | let sinkTexts = splitOn "\nSink " out 23 | getMatches txt regex = getAllTextMatches $ txt =~ regex :: [String] 24 | getPair regex txt = frth $ (txt =~ regex :: (String, String, String, [String])) 25 | frth (_,_,_,a:b:_) = (map dotToUnderscore a, b) 26 | dotToUnderscore '.' = '_' 27 | dotToUnderscore c = c 28 | getPairs txt regex = map (getPair regex) $ getMatches txt regex 29 | getSinkMap' txt = M.union (M.fromList $ getPairs txt propertyRegex) 30 | (M.fromList $ getPairs txt fieldRegex) 31 | getSinkMap txt = M.insert "sink_input_id" (getSinkNumber txt) $ getSinkMap' txt 32 | getSinkNumber txt = case txt =~ "Input #([0-9]*)" :: (String, String, String, [String]) of 33 | (_,_,_,a) -> head a 34 | mapM_ (T.putStrLn . T.decodeUtf8 . encode . getSinkMap) sinkTexts 35 | where getSinkText = do 36 | (_, txt, _) <- readCreateProcessWithExitCode (shell "pactl list sink-inputs") "" 37 | return txt 38 | propertyRegex = "^[\t\n ]+([^\n:]*) = \"([^\n]*)\"" 39 | fieldRegex = "^[\t\n ]+(.*?): ([^\n ]*)" 40 | -------------------------------------------------------------------------------- /dotfiles/lib/bin/imalison-global.cabal: -------------------------------------------------------------------------------- 1 | name: imalison-global 2 | version: 0.1.0.0 3 | cabal-version: >=1.10 4 | 5 | library 6 | hs-source-dirs: . 7 | build-depends: base >= 4.7 && < 5 8 | , split 9 | , text 10 | , bifunctors 11 | , containers 12 | , regex-compat 13 | , Stack 14 | default-language: Haskell2010 15 | -------------------------------------------------------------------------------- /dotfiles/lib/bin/pager.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env sh 2 | 3 | function pager { 4 | if environment_variable_exists INSIDE_EMACS; then 5 | emacsclient -n "$@" 6 | else 7 | less -FXr 8 | fi 9 | return 0 10 | } 11 | 12 | pager "$@" 13 | -------------------------------------------------------------------------------- /dotfiles/lib/bin/quill_from_seed.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | encrypted_seed_file="$1" 4 | 5 | shift 6 | 7 | gpg --decrypt "$encrypted_seed_file" 2>/dev/null | keysmith private-key -f - -o - | quill --pem-file - "$@" 8 | -------------------------------------------------------------------------------- /dotfiles/lib/bin/random_choice.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | import sys 3 | 4 | import random 5 | print(sys.argv[1:]) 6 | print(random.choice(sys.argv[1:])) 7 | -------------------------------------------------------------------------------- /dotfiles/lib/bin/rofi_autorandr.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env zsh 2 | 3 | autorandr 2>&1 | rofi -dmenu -i | get_cols 1 | xargs autorandr -l 4 | -------------------------------------------------------------------------------- /dotfiles/lib/bin/rofi_clipit.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | SELECTED_INDEX="$(clipit_history.py -r '(newline)' | rofi -dmenu -format i)" 4 | 5 | if [ "$SELECTED_INDEX" -eq "$SELECTED_INDEX" ] 2>/dev/null; then 6 | xdotool type "$(clipit_history.py -e 5 -i $SELECTED_INDEX)" 7 | fi 8 | 9 | xdotool type 10 | -------------------------------------------------------------------------------- /dotfiles/lib/bin/rofi_command.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env zsh 2 | 3 | get_all_executables () { 4 | for exec_path in $path; do 5 | test -r "$exec_path" && \ 6 | find "$exec_path" -maxdepth 1 -executable ! -type d -printf "%f\n" 7 | done 8 | } 9 | 10 | get_all_functions () { 11 | print -l ${(ok)functions} 12 | } 13 | 14 | get_all_aliases () { 15 | alias | cut -d = -f 1 16 | } 17 | 18 | get_all_history () { 19 | cat ~/.zsh_history | cut -d ';' -f 2- | awk '!a[$0]++' 20 | } 21 | 22 | 23 | selected=$({ get_all_executables; get_all_aliases; get_all_functions; get_all_history; } | 24 | rofi -dmenu -i -kb-custom-1 "Alt+c" -kb-custom-2 "Alt+t") 25 | 26 | rofi_exit="$?" 27 | args="" 28 | case "$rofi_exit" in 29 | 1) 30 | exit 31 | ;; 32 | 10) 33 | args=$(echo "" | rofi -dmenu) 34 | ;; 35 | 11) 36 | urxvt --hold -e "$selected" 37 | ;; 38 | esac 39 | eval "$selected $args" 40 | -------------------------------------------------------------------------------- /dotfiles/lib/bin/rofi_kill_all.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env sh 2 | 3 | 4 | echo "" | rofi -dmenu -i | xargs pkill -9 5 | -------------------------------------------------------------------------------- /dotfiles/lib/bin/rofi_kill_process.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env zsh 2 | 3 | ps -o 'pid cmd' x | rofi -dmenu -i | get_cols 1 | xargs kill -9 4 | -------------------------------------------------------------------------------- /dotfiles/lib/bin/rofi_select_input.hs: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env run_haskell_stack.sh 2 | {-# LANGUAGE OverloadedStrings, AllowAmbiguousTypes #-} 3 | 4 | import Control.Monad 5 | import Data.List 6 | import Data.List.Split 7 | import Data.Maybe 8 | import System.Process 9 | import Text.Printf 10 | import Text.Regex 11 | import System.Exit 12 | 13 | main :: IO () 14 | main = do 15 | out <- getSinkText 16 | let sinkInfos = splitOn "\nSink" out 17 | matches = catMaybes $ matchRegex sinkRegex <$> sinkInfos 18 | entries = map buildEntry matches 19 | (exitCode, selection, _) <- 20 | readCreateProcessWithExitCode 21 | (shell "rofi -dmenu -i -kb-custom-1 'Alt-o'") $ intercalate "\n" entries 22 | let selectedSink = head $ splitOn " " selection 23 | unMuteSelected = setMuteAction "0" selectedSink 24 | selectedIsMuted = 25 | maybe True (isMuted . (!! 1)) $ find ((== selectedSink) . head) matches 26 | setAll state = mapM_ (setMuteAction state . head) matches 27 | case exitCode of 28 | ExitSuccess -> 29 | void $ setMuteAction (toSetString selectedIsMuted) selectedSink 30 | ExitFailure 10 -> 31 | do 32 | setAll "1" 33 | void unMuteSelected 34 | ExitFailure _ -> setAll "0" 35 | where getSinkText = 36 | do 37 | (_, txt, _) <- readCreateProcessWithExitCode 38 | (shell "pactl list sink-inputs") "" 39 | return txt 40 | sinkRegex = 41 | mkRegexWithOpts 42 | "Input .([0-9]*).*?Mute: ([^\n]*).*?application.name =([^\n]*)" 43 | False True 44 | buildEntry (num:status:name:_) = 45 | printf "%s - %s%s" num (trim $ noQuotes name) (muteString status) 46 | buildEntry _ = "" 47 | setMuteAction status sink = callCommand $ setMuteCommand status sink 48 | setMuteCommand status sink = 49 | "pactl set-sink-input-mute " ++ sink ++ " " ++ status 50 | trim = dropWhileEnd (== ' ') . dropWhile (== ' ') 51 | isMuted = (== "yes") 52 | muteString status = 53 | if isMuted status then " (Muted)" else "" :: String 54 | noQuotes = filter (not . (`elem` ("\"" :: String))) 55 | toSetString True = "0" 56 | toSetString False = "1" 57 | -------------------------------------------------------------------------------- /dotfiles/lib/bin/stack.yaml: -------------------------------------------------------------------------------- 1 | resolver: lts-11.7 2 | packages: 3 | - . 4 | extra-deps: 5 | - Stack-0.3.2 6 | -------------------------------------------------------------------------------- /dotfiles/lib/bin/toggle_mute_current_window.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env zsh 2 | 3 | otherinputs () { 4 | get_sink_input_info.hs | jq 'select(.application_process_id != "'"$1"'")' 5 | } 6 | 7 | thePID="$(xprop _NET_WM_PID -id $(xdotool getactivewindow) | grep -Eo '[0-9]*')" 8 | sinkInfo="$(pashowinputbypid $thePID)" 9 | sinkID="$(echo $sinkInfo | jq -r .sink_input_id)" 10 | muted="$(echo $sinkInfo | jq -r .Mute)" 11 | if [[ $muted == *"no"* ]]; then 12 | newState="1" 13 | else 14 | newState="0" 15 | fi 16 | 17 | echo "$sinkID" 18 | 19 | if [[ $1 == *"only"* ]]; then 20 | pactl set-sink-input-mute "$sinkID" 0 21 | otherinputs "$thePID" | jq -r .sink_input_id | xargs -I theid sh -c 'pactl set-sink-input-mute theid 1' 22 | else 23 | pactl set-sink-input-mute "$sinkID" "$newState" 24 | fi 25 | -------------------------------------------------------------------------------- /dotfiles/lib/bin/windows-toast.ps1: -------------------------------------------------------------------------------- 1 | param($Title) 2 | $ErrorActionPreference = "Stop" 3 | [Windows.UI.Notifications.ToastNotificationManager, Windows.UI.Notifications, ContentType = WindowsRuntime] > $null 4 | $Template = [Windows.UI.Notifications.ToastNotificationManager]::GetTemplateContent([Windows.UI.Notifications.ToastTemplateType]::ToastText02) 5 | 6 | $RawXml = [xml] $Template.GetXml() 7 | ($RawXml.toast.visual.binding.text | Where-Object { $_.id -eq "1" }).AppendChild($RawXml.CreateTextNode($Title)) > $null 8 | ($RawXml.toast.visual.binding.text | Where-Object { $_.id -eq "2" }).AppendChild($RawXml.CreateTextNode($args[0])) > $null 9 | 10 | $SerializedXml = New-Object Windows.Data.Xml.Dom.XmlDocument 11 | $SerializedXml.LoadXml($RawXml.OuterXml) 12 | 13 | $Toast = [Windows.UI.Notifications.ToastNotification]::new($SerializedXml) 14 | $Toast.ExpirationTime = [DateTimeOffset]::Now.AddMinutes(30) 15 | 16 | $Notifier = [Windows.UI.Notifications.ToastNotificationManager]::CreateToastNotifier("Emacs") 17 | $Notifier.Show($Toast); 18 | -------------------------------------------------------------------------------- /dotfiles/lib/functions/add_to_path: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env sh 2 | 3 | function add_to_path { 4 | path_lines "$2" | { cat -; echo "$1" } | path_from_lines 5 | } 6 | 7 | add_to_path "$@" 8 | -------------------------------------------------------------------------------- /dotfiles/lib/functions/all_after_char: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env sh 2 | 3 | function all_after_char { 4 | while read -r line; do 5 | echo ${line##*$1} 6 | done; 7 | } 8 | 9 | all_after_char "$@" 10 | -------------------------------------------------------------------------------- /dotfiles/lib/functions/ballchasing_lookup: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env sh 2 | 3 | function ballchasing_lookup { 4 | xdg-open "https://ballchasing.com/replay/$(rofi -dmenu)" 5 | } 6 | 7 | ballchasing_lookup 8 | -------------------------------------------------------------------------------- /dotfiles/lib/functions/command_exists: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env sh 2 | 3 | function command_exists { 4 | hash "$1" 2>/dev/null 1>/dev/null 5 | } 6 | 7 | command_exists 8 | -------------------------------------------------------------------------------- /dotfiles/lib/functions/dbus_introspect: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env sh 2 | 3 | function dbus-introspect { 4 | dbus-send --session \ 5 | --dest=$1 \ 6 | --type=method_call \ 7 | --print-reply \ 8 | $2 \ 9 | org.freedesktop.DBus.Introspectable.Introspect | tail -n +2 | sed -e "s/^ *string//" 10 | } 11 | 12 | dbus-introspect "$@" 13 | -------------------------------------------------------------------------------- /dotfiles/lib/functions/environment_variable_exists: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env sh 2 | 3 | function environment_variable_exists { 4 | eval "value=\"\${$1+x}\"" 5 | [ ! -z $value ] 6 | } 7 | 8 | environment_variable_exists "$@" 9 | 10 | -------------------------------------------------------------------------------- /dotfiles/lib/functions/externalip: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env sh 2 | 3 | function externalip { 4 | curl -s ifconfig.co 5 | } 6 | 7 | externalip 8 | -------------------------------------------------------------------------------- /dotfiles/lib/functions/find_store_path_gc_roots: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env sh 2 | 3 | function find_store_path_gc_roots { 4 | store_path="$(realpath $1)" 5 | while IFS=' ' read -r gcroot derivation; do 6 | if [[ ! $gcroot =~ ^/proc ]]; then 7 | if nix-store -qR "$derivation" 2>/dev/null | grep -q "$store_path"; then 8 | echo $gcroot 9 | fi 10 | fi 11 | done < <(nix-store --gc --print-roots | awk '{print $1, $3}') 12 | } 13 | 14 | 15 | find_store_path_gc_roots "$@" 16 | -------------------------------------------------------------------------------- /dotfiles/lib/functions/get_chrome_folder_from_address: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env sh 2 | 3 | function get_chrome_folder_from_address { 4 | cat ~/.config/google-chrome/Local\ State | 5 | jq -r ".profile.info_cache | to_entries | .[] | select(.value.user_name == \"$1\") | .key" 6 | } 7 | 8 | get_chrome_folder_from_address "$@" 9 | -------------------------------------------------------------------------------- /dotfiles/lib/functions/get_cols: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env sh 2 | 3 | function get_cols { 4 | FS="${FS:- }" 5 | gawk -f "$HOME/.lib/get_cols.awk" -v "cols=$*" -v "FS=$FS" 6 | } 7 | 8 | get_cols "$@" 9 | -------------------------------------------------------------------------------- /dotfiles/lib/functions/get_sink_input_by_pid: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env sh 2 | 3 | function get_sink_input_by_pid { 4 | get_sink_input_info.hs | jq 'select(.application_process_id == "'"$thePID"'")' 5 | } 6 | 7 | get_sink_input_by_pid "$@" 8 | 9 | -------------------------------------------------------------------------------- /dotfiles/lib/functions/join_by_char: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env sh 2 | 3 | function join_by_char { 4 | delimiter="$1" 5 | if [ -z "$delimiter" ]; then 6 | echo "Please specify a delimiter." 7 | return 1 8 | fi 9 | 10 | while IFS= read -r line; do 11 | # Append the line to the result with the delimiter, but not for the first line 12 | if [ -z "$result" ]; then 13 | result="$line" 14 | else 15 | result="$result$delimiter$line" 16 | fi 17 | done 18 | 19 | echo "$result" 20 | } 21 | 22 | join_by_char "$@" 23 | -------------------------------------------------------------------------------- /dotfiles/lib/functions/list_interfaces: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env zsh 2 | 3 | function list_interfaces { 4 | ip link show | grep -vE '^ ' | get_cols -F ':' 2 | xargs -n 1 5 | } 6 | 7 | list_interfaces 8 | -------------------------------------------------------------------------------- /dotfiles/lib/functions/load_default_map: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env sh 2 | 3 | function load_default_map { 4 | XKBDIR="$HOME/.xkb" 5 | XKBMAPFILE="$XKBDIR/keymap/default" 6 | 7 | echo "loading keymap from $XKBMAPFILE" 8 | 9 | xkbcomp -I"$XKBDIR" "$XKBMAPFILE" "${DISPLAY%%.*}" 10 | } 11 | 12 | load_default_map 13 | -------------------------------------------------------------------------------- /dotfiles/lib/functions/load_xkb_map: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env sh 2 | 3 | function load_xkb_map { 4 | XKBDIR="$HOME/.xkb" 5 | XKBMAPFILE="$XKBDIR/keymap/$(hostname --fqdn)" 6 | [[ -r "$XKBMAPFILE" ]] || XKBMAPFILE="${XKBMAPFILE%/*}/default" 7 | 8 | echo "loading keymap from $XKBMAPFILE" 9 | 10 | xkbcomp -I"$XKBDIR" "$XKBMAPFILE" "${DISPLAY%%.*}" 11 | 12 | XKB_DEVICE_DIR="$XKBDIR/devices" 13 | 14 | for file in "$XKB_DEVICE_DIR"/* 15 | do 16 | DEVICE_ID=$(xinput | grep "$(basename $file)" | head -n 1 | grep -Eo "id=[0-9]*" | grep -Eo "[0-9]*") 17 | echo $file 18 | echo device 19 | echo "$DEVICE_ID" 20 | # [ ! -z "$DEVICE_ID" ] && xkbcomp -I"$XKBDIR" -i "$DEVICE_ID" "$file" "${DISPLAY%%.*}" 21 | done 22 | } 23 | 24 | load_xkb_map 25 | -------------------------------------------------------------------------------- /dotfiles/lib/functions/localip: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env sh 2 | 3 | function localip { 4 | case `uname` in 5 | 'Darwin') 6 | ifconfig | grep -Eo 'inet (addr:)?([0-9]*\.){3}[0-9]*' | grep -Eo '([0-9]*\.){3}[0-9]*' | grep -v '127.0.0.1' 7 | ;; 8 | 'Linux') 9 | ip -4 addr | grep -oP '(?<=inet\s)\d+(\.\d+){3}' | grep -v 127.0.0.1 | head -n 1 10 | ;; 11 | esac 12 | } 13 | 14 | localip 15 | -------------------------------------------------------------------------------- /dotfiles/lib/functions/nixpkgs_source: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env sh 2 | 3 | function nixpkgs_source { 4 | nix eval --expr '' --impure 5 | } 6 | 7 | nixpkgs_source 8 | -------------------------------------------------------------------------------- /dotfiles/lib/functions/nr: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env sh 2 | 3 | function nr { 4 | nix run nixpkgs#"$@" 5 | } 6 | 7 | nr "$@" 8 | -------------------------------------------------------------------------------- /dotfiles/lib/functions/ns: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env sh 2 | 3 | function ns { 4 | sk --ansi -i -c 'nix-search "{}"' | get_cols 1 5 | } 6 | 7 | ns "$@" 8 | -------------------------------------------------------------------------------- /dotfiles/lib/functions/paismuted: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env sh 2 | 3 | function paismuted { 4 | pactl list sinks | grep "$(pasink)" -A 10 | grep Mute | grep -q yes 5 | } 6 | 7 | paismuted 8 | -------------------------------------------------------------------------------- /dotfiles/lib/functions/parse_timestamp: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env sh 2 | 3 | function parse_timestamp { 4 | date -d "@$1" 5 | } 6 | 7 | parse_timestamp 8 | -------------------------------------------------------------------------------- /dotfiles/lib/functions/pashowvolume: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env sh 2 | 3 | function pashowvolume { 4 | if paismuted; then 5 | volnoti-show -m 6 | else 7 | actual=$(pavolume) 8 | max=100 9 | show=$(( actual < max ? actual : max )) 10 | volnoti-show "$show" 11 | fi 12 | } 13 | 14 | pashowvolume 15 | 16 | -------------------------------------------------------------------------------- /dotfiles/lib/functions/pasink: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env sh 2 | 3 | function pasink { 4 | pacmd stat | awk -F": " '/^Default sink name: /{print $2}' 5 | } 6 | 7 | pasink "$@" 8 | -------------------------------------------------------------------------------- /dotfiles/lib/functions/path_from_lines: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env sh 2 | 3 | function path_from_lines { 4 | join_by_char ":" 5 | } 6 | 7 | path_from_lines "$@" 8 | -------------------------------------------------------------------------------- /dotfiles/lib/functions/path_lines: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env zsh 2 | 3 | function path_lines { 4 | local var="${1:-PATH}" 5 | # This is a workaround to achieve variable indirection for both Bash and Zsh 6 | eval "local value=\$$var" 7 | split_by_char ":" "$value" 8 | } 9 | 10 | path_lines "$@" 11 | -------------------------------------------------------------------------------- /dotfiles/lib/functions/pavolume: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env sh 2 | 3 | function pavolume { 4 | pactl get-sink-volume $(pactl get-default-sink) | FS="/" get_cols 2 | grep -oE '[0-9]*' 5 | } 6 | 7 | pavolume 8 | -------------------------------------------------------------------------------- /dotfiles/lib/functions/rlwhich: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env sh 2 | 3 | function rlwhich { 4 | readlink -f "$(which $1)" 5 | } 6 | 7 | rlwhich "$@" 8 | 9 | -------------------------------------------------------------------------------- /dotfiles/lib/functions/rofi_paswitch: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env sh 2 | 3 | function rofi_paswitch { 4 | pahelper | tr -d '\n' | tr '>' '|' | rofi -i -dmenu -sep '|' | grep -Eo ' [0-9]*' | xargs pahelper 5 | } 6 | 7 | rofi_paswitch 8 | -------------------------------------------------------------------------------- /dotfiles/lib/functions/rofi_shutter: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env sh 2 | 3 | function rofi_shutter { 4 | rofi -i -dmenu | xargs shutter -n -e 5 | } 6 | 7 | rofi_shutter 8 | -------------------------------------------------------------------------------- /dotfiles/lib/functions/run_if_exists: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env sh 2 | 3 | function run_if_exists { 4 | command_exists "$0" && "$@" 5 | } 6 | 7 | run_if_exists 8 | -------------------------------------------------------------------------------- /dotfiles/lib/functions/run_unity: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env sh 2 | 3 | function run_unity { 4 | XDG_CURRENT_DESKTOP='Unity' "$@" 5 | } 6 | 7 | run_unity "$@" 8 | 9 | -------------------------------------------------------------------------------- /dotfiles/lib/functions/set_volume: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env sh 2 | 3 | function set_volume { 4 | pulsemixer "$@" 5 | pashowvolume 6 | } 7 | 8 | set_volume "$@" 9 | -------------------------------------------------------------------------------- /dotfiles/lib/functions/shell_contains: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env sh 2 | 3 | function shell_contains () { 4 | local e 5 | for e in "${@:2}"; do 6 | [[ "$1" == *"$e"* ]] && return 0 7 | done 8 | return 1 9 | } 10 | 11 | shell_contains 12 | -------------------------------------------------------------------------------- /dotfiles/lib/functions/source_if_exists: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env sh 2 | 3 | function source_if_exists { 4 | test -r "$1" && source "$1" 5 | } 6 | 7 | source_if_exists 8 | -------------------------------------------------------------------------------- /dotfiles/lib/functions/split_by_char: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env sh 2 | 3 | function split_by_char { 4 | flags="-ra" 5 | environment_variable_exists ZSH_VERSION && flags="-A" 6 | IFS="$1" read $flags ADDR <<< "$2" 7 | for i in ${ADDR[@]}; do 8 | echo "$i" 9 | done 10 | } 11 | 12 | split_by_char "$@" 13 | -------------------------------------------------------------------------------- /dotfiles/lib/functions/start_chrome_for: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env sh 2 | 3 | function start_chrome_for { 4 | email=$1 5 | shift 6 | google-chrome-stable --profile-directory="$(get_chrome_folder_from_address "$email")" "$@" 7 | } 8 | 9 | start_chrome_for "$@" 10 | -------------------------------------------------------------------------------- /dotfiles/lib/functions/timestamp: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env sh 2 | 3 | function timestamp { 4 | date +%s 5 | } 6 | 7 | timestamp 8 | 9 | -------------------------------------------------------------------------------- /dotfiles/lib/functions/toggle_taffybar: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env sh 2 | 3 | function toggle_taffybar { 4 | dbus-send --print-reply=literal --dest=taffybar.toggle \ 5 | /taffybar/toggle taffybar.toggle.toggleCurrent 6 | } 7 | 8 | toggle_taffybar 9 | 10 | -------------------------------------------------------------------------------- /dotfiles/lib/functions/windows_toast: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env sh 2 | 3 | function windows_toast { 4 | powershell.exe -File ~/dotfiles/dotfiles/lib/bin/windows-toast.ps1 -Title "$@" 2>/dev/null 5 | } 6 | 7 | windows_toast "$@" 8 | -------------------------------------------------------------------------------- /dotfiles/lib/get_cols.awk: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env gawk -f 2 | 3 | BEGIN { 4 | column_count=split(cols,column_numbers," "); 5 | } 6 | { 7 | for(i=1; i<=column_count; i++) { 8 | if(column_numbers[i] < 0) 9 | printf "%s", $(NF + 1 + column_numbers[i]) 10 | else 11 | printf "%s", $column_numbers[i] 12 | printf "%s", OFS 13 | } 14 | 15 | printf "%s", ORS 16 | } 17 | -------------------------------------------------------------------------------- /dotfiles/lib/shellenv/synergy.sh: -------------------------------------------------------------------------------- 1 | SYNERGY_CONF="$HOME/.synergy.conf" 2 | 3 | synergy_start_client_at() { 4 | ssh "$1" '[[ -z "$(pgrep synergyc)" ]] && synergyc '"$(localip | get_cols 1)" 5 | } 6 | 7 | synergy_start_server_here() { 8 | test -z "$(pgrep synergys)" && synergys --config "$SYNERGY_CONF" 9 | } 10 | 11 | synergy_init_with_client() { 12 | synergy_start_server_here 13 | synergy_start_client_at "$1" 14 | } 15 | 16 | synergy_use_ssh_connection_as_server() { 17 | local new_host_name 18 | new_host_name="$(echo "$SSH_CONNECTION" | get_cols 1)" 19 | OPTIND=1 20 | while getopts "h:" OPTCHAR; do 21 | case $OPTCHAR in 22 | h) 23 | new_host_name="$OPTARG"; 24 | return 25 | ;; 26 | esac 27 | done 28 | test -z "$(synergy_pids_for_ip "$new_host_name")" && synergyc "$new_host_name" 29 | } 30 | 31 | synergy_stop_at() { 32 | pgrep synergys | xargs kill -9 33 | ssh "$1" "synergy_kill_all_local" 34 | } 35 | 36 | synergy_kill_all_local() { 37 | pgrep synergy | xargs kill -9 38 | } 39 | 40 | synergy_clear_ssh_synergy() { 41 | synergy_clear_for_ip "$(echo "$SSH_CONNECTION" | get_cols 1)" 42 | } 43 | 44 | synergy_clear_for_ip() { 45 | synergy_pids_for_ip "$1" | xargs kill -9 46 | } 47 | 48 | synergy_pids_for_ip() { 49 | pgrep synergyc | grep "$1" | get_cols 2 50 | } 51 | -------------------------------------------------------------------------------- /dotfiles/lib/zsh/history.sh: -------------------------------------------------------------------------------- 1 | ## Command history configuration 2 | export HISTFILE="$(readlink -f $HOME/.zsh_history)" 3 | HISTSIZE=10000000 4 | SAVEHIST=10000000 5 | 6 | setopt share_history # share command history data 7 | setopt extended_history 8 | setopt inc_append_history 9 | setopt hist_expire_dups_first 10 | setopt hist_ignore_dups # ignore duplication command history list 11 | setopt hist_ignore_space 12 | setopt hist_verify 13 | -------------------------------------------------------------------------------- /dotfiles/lib/zsh/term_support.sh: -------------------------------------------------------------------------------- 1 | #usage: title short_tab_title looooooooooooooooooooooggggggg_windows_title 2 | #http://www.faqs.org/docs/Linux-mini/Xterm-Title.html#ss3.1 3 | #Fully support screen, iterm, and probably most modern xterm and rxvt 4 | #Limited support for Apple Terminal (Terminal can't set window or tab separately) 5 | function title { 6 | if [[ "$DISABLE_AUTO_TITLE" == "true" ]] || [[ "$EMACS" == *term* ]]; then 7 | return 8 | fi 9 | if [[ "$TERM" == screen* ]]; then 10 | print -Pn "\ek$1:q\e\\" #set screen hardstatus, usually truncated at 20 chars 11 | elif [[ "$TERM" == xterm* ]] || [[ $TERM == rxvt* ]] || [[ "$TERM_PROGRAM" == "iTerm.app" ]]; then 12 | print -Pn "\e]2;$2:q\a" #set window name 13 | print -Pn "\e]1;$1:q\a" #set icon (=tab) name (will override window name on broken terminal) 14 | fi 15 | } 16 | 17 | ZSH_THEME_TERM_TAB_TITLE_IDLE="%15<..<%~%<<" #15 char left truncated PWD 18 | ZSH_THEME_TERM_TITLE_IDLE="%n@%m: %~" 19 | 20 | #Appears when you have the prompt 21 | function omz_termsupport_precmd { 22 | title $ZSH_THEME_TERM_TAB_TITLE_IDLE $ZSH_THEME_TERM_TITLE_IDLE 23 | } 24 | 25 | #Appears at the beginning of (and during) of command execution 26 | function omz_termsupport_preexec { 27 | emulate -L zsh 28 | setopt extended_glob 29 | local CMD=${1[(wr)^(*=*|sudo|ssh|rake|-*)]} #cmd name only, or if this is sudo or ssh, the next cmd 30 | title "$CMD" "%100>...>${2:gs/%/%%}%<<" 31 | } 32 | 33 | autoload -U add-zsh-hook 34 | add-zsh-hook precmd omz_termsupport_precmd 35 | add-zsh-hook preexec omz_termsupport_preexec 36 | 37 | function emacs_ansi_term_support { 38 | echo -e "\033AnSiTu" "$LOGNAME" # $LOGNAME is more portable than using whoami. 39 | echo -e "\033AnSiTc" "$(pwd)" 40 | if [ $(uname) = "SunOS" ]; then 41 | # The -f option does something else on SunOS and is not needed anyway. 42 | hostname_options=""; 43 | else 44 | hostname_options="-f"; 45 | fi 46 | # XXX/TODO: This disables correct setting of the current directory 47 | # when in an sshed shell when inside of emacs 48 | # echo -e "\033AnSiTh" "$(hostname $hostname_options)" # Using the -f option can # 49 | # cause problems on some OSes. 50 | } 51 | 52 | if environment_variable_exists INSIDE_EMACS; then 53 | if [[ $INSIDE_EMACS == *"term"* ]] 54 | then 55 | add-zsh-hook precmd emacs_ansi_term_support 56 | fi 57 | fi 58 | -------------------------------------------------------------------------------- /dotfiles/notify-osd: -------------------------------------------------------------------------------- 1 | slot-allocation = dynamic 2 | bubble-expire-timeout = 5sec 3 | bubble-vertical-gap = 50px 4 | bubble-horizontal-gap = 30px 5 | bubble-corner-radius = 37px 6 | bubble-icon-size = 30px 7 | bubble-gauge-size = 6px 8 | bubble-width = 240px 9 | bubble-background-color = 131313 10 | bubble-background-opacity = 90% 11 | text-margin-size = 10px 12 | text-title-size = 100% 13 | text-title-weight = bold 14 | text-title-color = eaeaea 15 | text-title-opacity = 100% 16 | text-body-size = 90% 17 | text-body-weight = normal 18 | text-body-color = eaeaea 19 | text-body-opacity = 100% 20 | text-shadow-opacity = 100% 21 | location = 3 22 | bubble-prevent-fade = 0 23 | bubble-close-on-click = 1 24 | bubble-as-desktop-bg = 0 25 | gravity = 4 26 | -------------------------------------------------------------------------------- /dotfiles/sbt/.gitignore: -------------------------------------------------------------------------------- 1 | /preloaded/ 2 | -------------------------------------------------------------------------------- /dotfiles/sbt/0.13/plugins/plugins.sbt: -------------------------------------------------------------------------------- 1 | resolvers += Resolver.sonatypeRepo("snapshots") 2 | 3 | addSbtPlugin("org.ensime" % "ensime-sbt" % "0.2.1") 4 | -------------------------------------------------------------------------------- /dotfiles/sbt/1.0/plugins.sbt: -------------------------------------------------------------------------------- 1 | addSbtPlugin("org.ensime" % "sbt-ensime" % "2.5.1") 2 | -------------------------------------------------------------------------------- /dotfiles/slate.js: -------------------------------------------------------------------------------- 1 | slate.configAll({ 2 | windowHintsIgnoreHiddenWindows: false, 3 | windowHintsShowIcons: true, 4 | windowHintsSpread: true, 5 | switchShowTitles: true, 6 | windowHintsSpreadSearchHeight: 100, 7 | windowHintsSpreadSearchWidth: 100, 8 | windowHintsSpreadPadding: 40 9 | }); 10 | 11 | var hint = slate.op("hint", { 12 | "characters" : "ASDFGHJKLQWERTYUIOPCVBN" 13 | }); 14 | 15 | var grid = slate.op("grid", { 16 | grids: { 17 | "1920x1080": {"width": 8, "height": 6}, 18 | "1440x900": {"width": 8, "height": 6} 19 | } 20 | }); 21 | function quarterCorner(corner) { 22 | return slate.op("corner", { 23 | direction: corner, 24 | width: "screenSizeX/2", 25 | height: "screenSizeY/2" 26 | }); 27 | } 28 | 29 | var hyper = ":ctrl;shift;alt;cmd"; 30 | function hyperBindAll(mapping) { 31 | console.log(_.object(_.map( 32 | _.pairs(mapping), 33 | function(key, op) { return [key + hyper, op]; } 34 | ))); 35 | return slate.bindAll( 36 | _.object(_.map( 37 | _.pairs(mapping), 38 | function(pair) { return [pair[0] + hyper, pair[1]]; } 39 | )) 40 | ); 41 | } 42 | 43 | function focusApp(app) { 44 | return slate.op("focus", {"app" : app}); 45 | } 46 | 47 | hyperBindAll({ 48 | h: hint, 49 | // Simple Layout 50 | f: slate.op("corner", { 51 | direction: "top-left", 52 | width: "screenSizeX", 53 | height: "screenSizeY" 54 | }), 55 | q: slate.op("corner", { 56 | direction: "top-left", 57 | width: "screenSizeX/2", 58 | height: "screenSizeY" 59 | }), 60 | w: slate.op("corner", { 61 | direction: "top-right", 62 | width: "screenSizeX/2", 63 | height: "screenSizeY" 64 | }), 65 | a: quarterCorner("top-left"), 66 | s: quarterCorner("top-right"), 67 | z: quarterCorner("bottom-left"), 68 | n: slate.op("throw", { 69 | "width": "windowSizeX", 70 | "height": "windowSizeY", 71 | "screen": "next" 72 | }), 73 | x: quarterCorner("bottom-right"), 74 | // App focus 75 | e: focusApp("Emacs"), 76 | c: focusApp("Google Chrome"), 77 | t: focusApp("iTerm"), 78 | m: focusApp("Spotify"), 79 | // Slate operations 80 | r: slate.op("relaunch"), 81 | u: slate.op("undo") 82 | }); 83 | 84 | slate.bindAll({"esc:cmd": hint, "space:alt": grid}); 85 | -------------------------------------------------------------------------------- /dotfiles/stalonetrayrc: -------------------------------------------------------------------------------- 1 | decorations none 2 | transparent false 3 | dockapp_mode none 4 | geometry 5x1-400+0 5 | max_geometry 5x1-325-10 6 | background "#000000" 7 | kludges force_icons_size 8 | grow_gravity NE 9 | icon_gravity NE 10 | icon_size 12 11 | sticky true 12 | #window_strut none 13 | window_type dock 14 | window_layer bottom 15 | #no_shrink false 16 | skip_taskbar true 17 | -------------------------------------------------------------------------------- /dotfiles/synergy.conf: -------------------------------------------------------------------------------- 1 | section: screens 2 | tv: 3 | controlling: 4 | alt = meta 5 | end 6 | section: links 7 | tv: 8 | down = controlling 9 | controlling: 10 | up = tv 11 | end 12 | section: aliases 13 | tv: 14 | imalison-arch 15 | imalison-desktop 16 | imalison-home justin-bieber-creek 17 | controlling: 18 | uber-loaner 19 | imalison-mpb-arch 20 | imalison-uber-loaner 21 | Livien-MacbookAir 22 | kat-uber-loaner 23 | Dean-PC 24 | imalison-mbp 25 | strixi-minaj 26 | end 27 | -------------------------------------------------------------------------------- /dotfiles/tmux.conf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/colonelpanic8/dotfiles/a244ee2223c0b49c3527549e2b68cffaa42b598c/dotfiles/tmux.conf -------------------------------------------------------------------------------- /dotfiles/tmux.powerline: -------------------------------------------------------------------------------- 1 | if-shell 'test -z "$POWERLINE_COMMAND"' 'if-shell "which powerline-client" "set-environment -g POWERLINE_COMMAND powerline-client" "set-environment -g POWERLINE_COMMAND powerline"' 2 | set -g status on 3 | set -g status-utf8 on 4 | set -g status-interval 2 5 | set -g status-justify left 6 | set -g status-left-length 150 7 | set -g status-right-length 150 8 | set -g status-right '#(eval $POWERLINE_COMMAND tmux right -R pane_id=`tmux display -p "#D"`)' 9 | set -g window-status-format "#[fg=white] #[fg=white,bg=black]#I #[fg=white] #[default]#W " 10 | set -g window-status-current-format "#[fg=black,bg=blue]#[fg=white,bg=blue] #I  #[fg=white,bold]#W #[fg=blue,bg=black,nobold]" 11 | set-window-option -g window-status-fg white 12 | set-window-option -g window-status-activity-attr none 13 | set-window-option -g window-status-activity-fg yellow 14 | -------------------------------------------------------------------------------- /dotfiles/wgetrc: -------------------------------------------------------------------------------- 1 | # Use the server-provided last modification date, if available 2 | timestamping = on 3 | 4 | # Do not go up in the directory structure when downloading recursively 5 | no_parent = on 6 | 7 | # Wait 60 seconds before timing out. This applies to all timeouts: DNS, connect and read. (The default read timeout is 15 minutes!) 8 | timeout = 60 9 | 10 | # Retry a few times when a download fails, but don’t overdo it. (The default is 20!) 11 | tries = 3 12 | 13 | # Retry even when the connection was refused 14 | retry_connrefused = on 15 | 16 | # Use the last component of a redirection URL for the local file name 17 | trust_server_names = on 18 | 19 | # Follow FTP links from HTML documents by default 20 | follow_ftp = on 21 | 22 | # Add a `.html` extension to `text/html` or `application/xhtml+xml` files that lack one, or a `.css` extension to `text/css` files that lack one 23 | adjust_extension = on 24 | 25 | # Use UTF-8 as the default system encoding 26 | # Disabled as it makes `wget` builds that don’t support this feature unusable. 27 | # Does anyone know how to conditionally configure a wget setting? 28 | # http://unix.stackexchange.com/q/34730/6040 29 | #local_encoding = UTF-8 30 | 31 | # Ignore `robots.txt` and `` 32 | robots = off 33 | 34 | # Print the HTTP and FTP server responses 35 | server_response = on 36 | 37 | # Disguise as IE 9 on Windows 7 38 | user_agent = Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0) -------------------------------------------------------------------------------- /dotfiles/xinitrc: -------------------------------------------------------------------------------- 1 | # -*- mode: sh -*- 2 | xrdb -merge "$HOME/.Xresources" 3 | 4 | # Disable screensaver 5 | setterm -blank 0 -powersave off -powerdown 0 6 | xset s off 7 | 8 | # Increase the repeat rate 9 | xset r rate 200 30 10 | -------------------------------------------------------------------------------- /dotfiles/xkb/keymap/adell: -------------------------------------------------------------------------------- 1 | xkb_keymap { 2 | xkb_keycodes { include "evdev+aliases(qwerty)" }; 3 | xkb_types { include "complete" }; 4 | xkb_compat { include "complete" }; 5 | xkb_symbols { include "pc+us+inet(evdev)+altwin(swap_lalt_lwin)+imalison(ralt_as_hyper)+capslock(ctrl_modifier)" }; 6 | xkb_geometry { include "pc(pc105)" }; 7 | }; 8 | -------------------------------------------------------------------------------- /dotfiles/xkb/keymap/default: -------------------------------------------------------------------------------- 1 | xkb_keymap { 2 | xkb_keycodes { include "evdev+aliases(qwerty)" }; 3 | xkb_types { include "complete" }; 4 | xkb_compat { include "complete" }; 5 | xkb_symbols { include "pc+us+inet(evdev)+imalison(rwin_as_hyper)+imalison(home_as_hyper)+capslock(ctrl_modifier)" }; 6 | xkb_geometry { include "pc(pc105)" }; 7 | }; 8 | -------------------------------------------------------------------------------- /dotfiles/xkb/keymap/ivanm-dfinity-razer: -------------------------------------------------------------------------------- 1 | xkb_keymap { 2 | xkb_keycodes { include "evdev+aliases(qwerty)" }; 3 | xkb_types { include "complete" }; 4 | xkb_compat { include "complete" }; 5 | xkb_symbols { include "pc+us+inet(evdev)+altwin(swap_lalt_lwin)+imalison(ralt_as_hyper)+imalison(ins_as_dot)+imalison(del_as_slash)+capslock(ctrl_modifier)" }; 6 | xkb_geometry { include "pc(pc105)" }; 7 | }; 8 | -------------------------------------------------------------------------------- /dotfiles/xkb/keymap/jay-lenovo: -------------------------------------------------------------------------------- 1 | xkb_keymap { 2 | xkb_keycodes { include "evdev+aliases(qwerty)" }; 3 | xkb_types { include "complete" }; 4 | xkb_compat { include "complete" }; 5 | xkb_symbols { include "pc+us+inet(evdev)+altwin(swap_lalt_lwin)+imalison(ralt_as_hyper)+capslock(ctrl_modifier)" }; 6 | xkb_geometry { include "pc(pc105)" }; 7 | }; 8 | -------------------------------------------------------------------------------- /dotfiles/xkb/keymap/katboon: -------------------------------------------------------------------------------- 1 | xkb_keymap { 2 | xkb_keycodes { include "evdev+aliases(qwerty)" }; 3 | xkb_types { include "complete" }; 4 | xkb_compat { include "complete" }; 5 | xkb_symbols { include "pc+us+inet(evdev)+altwin(swap_lalt_lwin)+imalison(ralt_as_hyper)+capslock(ctrl_modifier)" }; 6 | xkb_geometry { include "pc(pc105)" }; 7 | }; 8 | -------------------------------------------------------------------------------- /dotfiles/xkb/keymap/stevie-nixos: -------------------------------------------------------------------------------- 1 | xkb_keymap { 2 | xkb_keycodes { include "evdev+aliases(qwerty)" }; 3 | xkb_types { include "complete" }; 4 | xkb_compat { include "complete" }; 5 | xkb_symbols { include "pc+us+inet(evdev)+altwin(swap_lalt_lwin)+imalison(ralt_as_hyper)+capslock(ctrl_modifier)" }; 6 | xkb_geometry { include "pc(pc105)" }; 7 | }; 8 | -------------------------------------------------------------------------------- /dotfiles/xkb/keymap/strixi-minaj: -------------------------------------------------------------------------------- 1 | xkb_keymap { 2 | xkb_keycodes { include "evdev+aliases(qwerty)" }; 3 | xkb_types { include "complete" }; 4 | xkb_compat { include "complete" }; 5 | xkb_symbols { include "pc+us+inet(evdev)+altwin(swap_lalt_lwin)+imalison(ralt_as_hyper)+capslock(ctrl_modifier)" }; 6 | xkb_geometry { include "pc(pc105)" }; 7 | }; 8 | -------------------------------------------------------------------------------- /dotfiles/xkb/symbols/hyper: -------------------------------------------------------------------------------- 1 | partial modifier_keys 2 | xkb_symbols "rwin" { 3 | key { [ Hyper_R ] }; 4 | modifier_map Mod3 { , Hyper_R }; 5 | }; 6 | -------------------------------------------------------------------------------- /dotfiles/xkb/symbols/imalison: -------------------------------------------------------------------------------- 1 | partial modifier_keys 2 | xkb_symbols "rwin_as_hyper" { 3 | replace key { [ Hyper_L ] }; 4 | modifier_map Mod3 { , Hyper_L, Hyper_R }; 5 | }; 6 | 7 | partial modifier_keys 8 | xkb_symbols "home_as_hyper" { 9 | replace key { [ Hyper_L ] }; 10 | modifier_map Mod3 { , Hyper_L, Hyper_R }; 11 | }; 12 | 13 | partial modifier_keys 14 | xkb_symbols "ralt_as_hyper" { 15 | replace key { [ Hyper_L, Hyper_L ] }; 16 | modifier_map Mod3 { , Hyper_L }; 17 | }; 18 | 19 | partial alphanumeric_keys 20 | xkb_symbols "ins_as_dot" { 21 | replace key { [ period, greater ] }; 22 | }; 23 | 24 | partial alphanumeric_keys 25 | xkb_symbols "del_as_slash" { 26 | replace key { [ slash, question ] }; 27 | }; 28 | -------------------------------------------------------------------------------- /dotfiles/xsessionrc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/colonelpanic8/dotfiles/a244ee2223c0b49c3527549e2b68cffaa42b598c/dotfiles/xsessionrc -------------------------------------------------------------------------------- /dotfiles/xsettingsd: -------------------------------------------------------------------------------- 1 | Gtk/KeyThemeName "Emacs" 2 | Net/ThemeName "Arc" 3 | Xft/Hinting 1 4 | Xft/RGBA "rgb" 5 | Xft/HintStyle "hintslight" 6 | Xft/Antialias 1 7 | -------------------------------------------------------------------------------- /dotfiles/zprofile: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /dotfiles/zshenv: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /dotfiles/zshrc: -------------------------------------------------------------------------------- 1 | # This is necessary for tramp. 2 | [[ $TERM == "dumb" ]] && unsetopt zle && PS1='$ ' && return 3 | 4 | source_if_exists ~/.custom.sh 5 | source_if_exists ~/.this-machine.sh 6 | 7 | function emacs_ansi_term_support { 8 | echo -e "\033AnSiTu" "$LOGNAME" # $LOGNAME is more portable than using whoami. 9 | echo -e "\033AnSiTc" "$(pwd)" 10 | if [ $(uname) = "SunOS" ]; then 11 | # The -f option does something else on SunOS and is not needed anyway. 12 | hostname_options=""; 13 | else 14 | hostname_options="-f"; 15 | fi 16 | # XXX/TODO: This disables correct setting of the current directory 17 | # when in an sshed shell when inside of emacs 18 | # echo -e "\033AnSiTh" "$(hostname $hostname_options)" # Using the -f option can # 19 | # cause problems on some OSes. 20 | } 21 | 22 | if environment_variable_exists INSIDE_EMACS; then 23 | if [[ $INSIDE_EMACS == *"term"* ]] 24 | then 25 | add-zsh-hook precmd emacs_ansi_term_support 26 | fi 27 | fi 28 | -------------------------------------------------------------------------------- /gen-gh-pages/.gitignore: -------------------------------------------------------------------------------- 1 | .cask 2 | deploy_key 3 | -------------------------------------------------------------------------------- /gen-gh-pages/Cask: -------------------------------------------------------------------------------- 1 | (source org) 2 | (source melpa) 3 | 4 | 5 | (depends-on "s") 6 | (depends-on "use-package") 7 | (depends-on "org-plus-contrib") 8 | (depends-on "htmlize") 9 | -------------------------------------------------------------------------------- /gen-gh-pages/compile.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | export PATH="$HOME/.cask/bin:$HOME/.evm/bin:$PATH" 4 | THIS_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" 5 | 6 | TARGET=$(readlink -f "$THIS_DIR/../dotfiles/emacs.d/README.org") 7 | 8 | git clone https://github.com/rejeep/evm.git "$HOME/.evm" 9 | evm config path /tmp 10 | evm install emacs-25.1-travis --use --skip 11 | export EMACS="$(evm bin)" 12 | 13 | git clone https://github.com/cask/cask 14 | export PATH=$(pwd)/cask/bin:$PATH 15 | 16 | cask install 17 | cask exec "$EMACS" --script generate-html.el 18 | 19 | mv "$THIS_DIR/../dotfiles/emacs.d/README.html" . 20 | 21 | -------------------------------------------------------------------------------- /gen-gh-pages/deploy.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | # This approach was adapted from https://gist.github.com/domenic/ec8b0fc8ab45f39403dd 3 | 4 | THIS_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" 5 | 6 | cd $THIS_DIR 7 | 8 | git config --global user.name "$COMMIT_AUTHOR_NAME" 9 | git config --global user.email "$COMMIT_AUTHOR_EMAIL" 10 | 11 | set -e # Exit with nonzero exit code if anything fails 12 | 13 | SOURCE_BRANCH="master" 14 | TARGET_BRANCH="gh-pages" 15 | 16 | function doCompile { 17 | ./compile.sh 18 | } 19 | 20 | # Pull requests and commits to other branches shouldn't try to deploy, just build to verify 21 | if [ "$TRAVIS_PULL_REQUEST" != "false" -o "$TRAVIS_BRANCH" != "$SOURCE_BRANCH" ]; then 22 | echo "Skipping deploy; just doing a build." 23 | doCompile 24 | exit 0 25 | fi 26 | 27 | # Save some useful information 28 | REPO=`git config remote.origin.url` 29 | SSH_REPO=${REPO/https:\/\/github.com\//git@github.com:} 30 | SHA=`git rev-parse --verify HEAD` 31 | 32 | # Run our compile script 33 | doCompile 34 | 35 | # Get the deploy key by using Travis's stored variables to decrypt deploy_key.enc 36 | ENCRYPTED_KEY_VAR="encrypted_${ENCRYPTION_LABEL}_key" 37 | ENCRYPTED_IV_VAR="encrypted_${ENCRYPTION_LABEL}_iv" 38 | ENCRYPTED_KEY=${!ENCRYPTED_KEY_VAR} 39 | ENCRYPTED_IV=${!ENCRYPTED_IV_VAR} 40 | 41 | openssl aes-256-cbc -K $ENCRYPTED_KEY -iv $ENCRYPTED_IV -in deploy_key.enc -out deploy_key -d 42 | chmod 600 deploy_key 43 | eval `ssh-agent -s` 44 | ssh-add deploy_key 45 | 46 | # Clone the existing gh-pages for this repo into out/ 47 | # Create a new empty branch if gh-pages doesn't exist yet (should only happen on first deply) 48 | git clone $REPO out 49 | cd out 50 | git checkout $TARGET_BRANCH || git checkout --orphan $TARGET_BRANCH 51 | 52 | # Clean out existing contents 53 | git ls-files | xargs rm -rf 54 | 55 | mv ../README.html ./index.html 56 | 57 | # Commit the "changes", i.e. the new version. 58 | # The delta will show diffs between new and old versions. 59 | git add --all . 60 | git commit -m "Deploy to GitHub Pages: ${SHA}" 61 | 62 | git fetch origin master 63 | 64 | if [ "$(git rev-parse origin/master)" == "$SHA" ]; then 65 | git push "$SSH_REPO" "$TARGET_BRANCH" 66 | else 67 | echo "The commit this build was started for is not the one on master. Doing nothing." 68 | fi 69 | -------------------------------------------------------------------------------- /gen-gh-pages/deploy_key.enc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/colonelpanic8/dotfiles/a244ee2223c0b49c3527549e2b68cffaa42b598c/gen-gh-pages/deploy_key.enc -------------------------------------------------------------------------------- /gen-gh-pages/generate-html.el: -------------------------------------------------------------------------------- 1 | (package-initialize) 2 | 3 | (require 'ox-html) 4 | (require 'htmlize) 5 | 6 | (defmacro do-nothing (name) 7 | `(defun ,name (&rest args) nil)) 8 | 9 | (do-nothing imalison:add-to-org-agenda-files) 10 | (do-nothing imalison:disable-linum-mode) 11 | 12 | (setq emacs-dir 13 | (expand-file-name "../dotfiles/emacs.d/" 14 | (file-name-directory load-file-name))) 15 | 16 | (setq readme-src (concat emacs-dir "README.org")) 17 | 18 | (require 'use-package) 19 | (require 's) 20 | (org-babel-tangle-file readme-src) 21 | 22 | ;; This makes it so that any dependencies specified with :straight, will 23 | ;; actually just be installed with the default melpa use-package ensure logic. 24 | (defalias 'use-package-handler/:straight 25 | #'use-package-handler/:ensure) 26 | (add-to-list 'use-package-keywords :straight) 27 | 28 | (load-file (concat emacs-dir "org-config.el")) 29 | 30 | (defun export-target (target) 31 | (with-current-buffer (find-file-noselect target) 32 | (let ((org-export-headline-levels 10)) 33 | (org-html-export-to-html)))) 34 | 35 | (setq org-html-postamble nil) 36 | (setq org-html-htmlize-output-type 'css) 37 | (setq org-confirm-babel-evaluate nil) 38 | 39 | (defun add-faces-css (exporter) 40 | "Insert custom inline css to automatically set the 41 | background of code to whatever theme I'm using's background" 42 | (setq 43 | org-html-head-extra 44 | (concat 45 | org-html-head-extra 46 | (format "\n" 47 | (with-temp-buffer 48 | (insert-file-contents 49 | (concat (file-name-directory load-file-name) "faces.css")) 50 | (buffer-string)))))) 51 | 52 | (add-hook 'org-export-before-processing-hook 'add-faces-css) 53 | (remove-hook 'org-export-before-processing-hook 'imalison:org-inline-css-hook) 54 | 55 | (message (export-target readme-src)) 56 | -------------------------------------------------------------------------------- /nix-darwin/justfile: -------------------------------------------------------------------------------- 1 | switch: 2 | nix run nix-darwin -- switch --flake .# 3 | -------------------------------------------------------------------------------- /nixos/android.nix: -------------------------------------------------------------------------------- 1 | { pkgs, ... }: 2 | { 3 | options = { 4 | }; 5 | config = { 6 | environment.systemPackages = with pkgs; [ 7 | android-udev-rules 8 | ]; 9 | nixpkgs.config.android_sdk.accept_license = true; 10 | programs.adb.enable = true; 11 | }; 12 | } 13 | -------------------------------------------------------------------------------- /nixos/base.nix: -------------------------------------------------------------------------------- 1 | { config, pkgs, forEachUser, makeEnable, realUsers, ... }: 2 | makeEnable config "myModules.base" true { 3 | nixpkgs.config.permittedInsecurePackages = [ 4 | "electron-12.2.3" 5 | "electron-19.1.9" 6 | "electron-32.3.3" 7 | "etcher" 8 | "nix-2.16.2" 9 | "openssl-1.0.2u" 10 | "openssl-1.1.1w" 11 | ]; 12 | 13 | # Disabling these waits disables the stuck on boot up issue 14 | systemd.services.systemd-udev-settle.enable = false; 15 | systemd.services.NetworkManager-wait-online.enable = false; 16 | systemd.services.systemd-user-sessions.enable = false; 17 | 18 | # Security 19 | programs.gnupg = { 20 | agent = { 21 | enable = true; 22 | enableSSHSupport = true; 23 | }; 24 | }; 25 | services.pcscd.enable = true; 26 | 27 | # Networking 28 | environment.etc."ipsec.secrets".text = '' 29 | include ipsec.d/ipsec.nm-l2tp.secrets 30 | ''; 31 | 32 | networking.firewall.enable = false; 33 | networking.nameservers = [ "8.8.8.8" "8.8.4.4" ]; 34 | networking.networkmanager = { 35 | enable = true; 36 | enableStrongSwan = true; 37 | plugins = [ pkgs.networkmanager-l2tp pkgs.networkmanager-openvpn ]; 38 | }; 39 | networking.resolvconf.enable = false; 40 | services.mullvad-vpn.enable = true; 41 | 42 | # Audio 43 | 44 | services.pulseaudio.enable = true; 45 | services.pipewire = { 46 | enable = false; 47 | systemWide = true; 48 | alsa.enable = true; 49 | alsa.support32Bit = true; 50 | jack.enable = true; 51 | pulse.enable = true; 52 | }; 53 | 54 | 55 | # Bluetooth 56 | hardware.bluetooth.enable = true; 57 | services.blueman.enable = true; 58 | 59 | # Printing 60 | # services.printing.enable = true; 61 | 62 | # Keyboard/Keymap 63 | console.keyMap = "us"; 64 | 65 | i18n = { 66 | defaultLocale = "en_US.UTF-8"; 67 | }; 68 | 69 | # # Update timezone automatically 70 | services.tzupdate.enable = true; 71 | 72 | # TODO: Add a comment explaining what this does. 73 | services.locate.enable = true; 74 | 75 | virtualisation.docker.enable = true; 76 | 77 | virtualisation.podman = { 78 | enable = true; 79 | autoPrune = { 80 | enable = true; 81 | }; 82 | }; 83 | 84 | hardware.keyboard.zsa.enable = true; 85 | 86 | services.logind.extraConfig = "RuntimeDirectorySize=5G"; 87 | 88 | # For supporting gnome stuff 89 | services.dbus.packages = [ pkgs.gcr ]; 90 | 91 | programs.dconf.enable = true; 92 | 93 | home-manager.users = forEachUser (import ./home-manager.nix); 94 | nix.settings.trusted-users = realUsers ++ ["gitea-runner"]; 95 | } 96 | -------------------------------------------------------------------------------- /nixos/ben.nix: -------------------------------------------------------------------------------- 1 | { pkgs, inputs, config, makeEnable, ... }: 2 | makeEnable config "myModules.ben" true { 3 | home-manager.backupFileExtension = "backup"; # Add this line 4 | home-manager.users.ben = { 5 | programs.zsh = { 6 | enable = true; 7 | shellAliases = { 8 | l = "ls -CF"; 9 | la = "ls -A"; 10 | ll = "ls -lh"; 11 | lla = "ls -alh"; 12 | ls = "ls --color=auto"; 13 | gts = "git status"; 14 | gtl = "git log"; 15 | }; 16 | }; 17 | }; 18 | } 19 | -------------------------------------------------------------------------------- /nixos/bootstrap.nix: -------------------------------------------------------------------------------- 1 | { pkgs, ... }: 2 | { 3 | imports = [ 4 | ./essential.nix 5 | ]; 6 | environment.systemPackages = with pkgs; [ 7 | emacs 8 | ]; 9 | programs.zsh.enable = true; 10 | networking.firewall.enable = false; 11 | networking.networkmanager = { 12 | enable = true; 13 | extraConfig = '' 14 | [main] 15 | rc-manager=resolvconf 16 | ''; 17 | }; 18 | nixpkgs.config.allowUnfree = true; 19 | services.xserver = { 20 | exportConfiguration = true; 21 | enable = true; 22 | layout = "us"; 23 | desktopManager = { 24 | plasma6.enable = true; 25 | }; 26 | displayManager = { 27 | sddm = { 28 | enable = true; 29 | }; 30 | sessionCommands = '' 31 | systemctl --user import-environment GDK_PIXBUF_MODULE_FILE DBUS_SESSION_BUS_ADDRESS PATH 32 | ''; 33 | setupCommands = '' 34 | autorandr -c 35 | systemctl restart autorandr.service 36 | ''; 37 | }; 38 | }; 39 | nix = { 40 | extraOptions = '' 41 | experimental-features = nix-command flakes 42 | ''; 43 | }; 44 | users.users = { 45 | imalison = { 46 | extraGroups = [ 47 | "audio" 48 | "adbusers" 49 | "disk" 50 | "docker" 51 | "networkmanager" 52 | "openrazer" 53 | "plugdev" 54 | "syncthing" 55 | "systemd-journal" 56 | "video" 57 | "wheel" 58 | ]; 59 | group = "users"; 60 | isNormalUser = true; 61 | createHome = true; 62 | shell = pkgs.zsh; 63 | }; 64 | }; 65 | } 66 | -------------------------------------------------------------------------------- /nixos/cache-server.nix: -------------------------------------------------------------------------------- 1 | { config, lib, ... }: 2 | with lib; 3 | let cfg = config.myModules.cache-server; 4 | in 5 | { 6 | options = { 7 | myModules.cache-server = { 8 | enable = mkEnableOption "nix cache server"; 9 | port = mkOption { 10 | type = types.int; 11 | default = 5050; 12 | }; 13 | host-string = mkOption { 14 | type = types.string; 15 | default = "0.0.0.0"; 16 | }; 17 | path = mkOption { 18 | type = types.string; 19 | default = "/"; 20 | }; 21 | }; 22 | }; 23 | 24 | config = mkIf cfg.enable { 25 | age.secrets."cache-priv-key.pem".file = ./secrets/cache-priv-key.pem.age; 26 | 27 | services.nix-serve = { 28 | enable = true; 29 | secretKeyFile = config.age.secrets."cache-priv-key.pem".path; 30 | port = cfg.port; 31 | }; 32 | }; 33 | } 34 | 35 | -------------------------------------------------------------------------------- /nixos/cache.nix: -------------------------------------------------------------------------------- 1 | { machineNames, ... }: 2 | { 3 | # nix.settings.substituters = map (machineName: "ssh-ng://imalison@${machineName}.local") machineNames; 4 | } 5 | 6 | -------------------------------------------------------------------------------- /nixos/code.nix: -------------------------------------------------------------------------------- 1 | { pkgs, config, makeEnable, ... }: 2 | makeEnable config "myModules.code" true { 3 | programs.direnv = { 4 | enable = true; 5 | nix-direnv.enable = true; 6 | }; 7 | 8 | environment.systemPackages = with pkgs; [ 9 | # C 10 | clang 11 | 12 | # Haskell 13 | cabal-install 14 | cabal2nix 15 | ghc 16 | haskellPackages.hpack 17 | haskellPackages.hasktags 18 | haskellPackages.hoogle 19 | 20 | # Scala 21 | sbt 22 | scala 23 | 24 | # Node 25 | nodePackages.npm 26 | nodejs 27 | 28 | # Typescript 29 | typescript 30 | nodePackages.typescript-language-server 31 | 32 | # golang 33 | go 34 | 35 | # Rust 36 | rustup 37 | 38 | # Clojure 39 | boot 40 | leiningen 41 | 42 | # Ruby 43 | ruby 44 | 45 | # python 46 | black 47 | poetry 48 | uv 49 | 50 | # kotlin 51 | kotlin 52 | kotlin-language-server 53 | 54 | # dhall 55 | haskellPackages.dhall 56 | haskellPackages.dhall-json 57 | 58 | # misc 59 | perf-tools 60 | protobuf 61 | 62 | # nix 63 | nixd 64 | nil 65 | alejandra 66 | ] ++ (if pkgs.system == "x86_64-linux" then with pkgs; [ 67 | # purescript 68 | purescript 69 | # Broken 70 | # spago 71 | ] else []); 72 | } 73 | -------------------------------------------------------------------------------- /nixos/configuration.nix: -------------------------------------------------------------------------------- 1 | { config, lib, forEachUser, ... }: 2 | { 3 | imports = [ 4 | ./android.nix 5 | ./base.nix 6 | ./ben.nix 7 | ./cache-server.nix 8 | ./cache.nix 9 | ./code.nix 10 | ./desktop.nix 11 | ./electron.nix 12 | ./environment.nix 13 | ./essential.nix 14 | ./extra.nix 15 | ./games.nix 16 | ./git-sync.nix 17 | ./gitea-runner.nix 18 | ./gitea.nix 19 | ./gnome.nix 20 | ./home-assistant.nix 21 | ./imalison.nix 22 | ./internet-computer.nix 23 | ./k3s.nix 24 | ./kat.nix 25 | ./keybase.nix 26 | ./kubelet.nix 27 | ./laptop.nix 28 | ./nix.nix 29 | ./nixified.ai.nix 30 | ./nvidia.nix 31 | ./options.nix 32 | ./plasma.nix 33 | ./postgres.nix 34 | ./rabbitmq.nix 35 | ./secrets.nix 36 | ./ssh.nix 37 | ./syncthing.nix 38 | ./tts.nix 39 | ./user-specific.nix 40 | ./users.nix 41 | ./vscode.nix 42 | ./wsl.nix 43 | ./wyoming.nix 44 | ./xmonad.nix 45 | ]; 46 | 47 | options = { 48 | features.full.enable = lib.mkEnableOption "Do everything"; 49 | }; 50 | 51 | config = lib.mkIf config.features.full.enable { 52 | myModules.base.enable = true; 53 | myModules.desktop.enable = true; 54 | myModules.plasma.enable = true; 55 | myModules.gnome.enable = false; 56 | myModules.xmonad.enable = true; 57 | myModules.extra.enable = true; 58 | myModules.electron.enable = true; 59 | myModules.code.enable = true; 60 | myModules.games.enable = true; 61 | myModules.syncthing.enable = true; 62 | myModules.fonts.enable = true; 63 | }; 64 | } 65 | -------------------------------------------------------------------------------- /nixos/desktop.nix: -------------------------------------------------------------------------------- 1 | { inputs, config, pkgs, makeEnable, ... }: 2 | makeEnable config "myModules.desktop" true { 3 | imports = [ 4 | ./fonts.nix 5 | ]; 6 | 7 | services.xserver = { 8 | exportConfiguration = true; 9 | enable = true; 10 | xkb = { 11 | layout = "us"; 12 | }; 13 | displayManager = { 14 | sessionCommands = '' 15 | systemctl --user import-environment GDK_PIXBUF_MODULE_FILE DBUS_SESSION_BUS_ADDRESS PATH 16 | ''; 17 | setupCommands = '' 18 | autorandr -c 19 | systemctl restart autorandr.service 20 | ''; 21 | }; 22 | }; 23 | 24 | services.autorandr = { 25 | enable = true; 26 | }; 27 | 28 | # This is for the benefit of VSCODE running natively in wayland 29 | environment.sessionVariables.NIXOS_OZONE_WL = "1"; 30 | 31 | services.gnome.at-spi2-core.enable = true; 32 | 33 | services.gnome.gnome-keyring.enable = true; 34 | 35 | environment.systemPackages = with pkgs; [ 36 | # Appearance 37 | adwaita-icon-theme 38 | hicolor-icon-theme 39 | libsForQt5.breeze-gtk 40 | # materia-theme 41 | numix-icon-theme-circle 42 | papirus-icon-theme 43 | 44 | # XOrg 45 | autorandr 46 | wmctrl 47 | xclip 48 | xdotool 49 | xorg.xev 50 | xorg.xkbcomp 51 | xorg.xwininfo 52 | xsettingsd 53 | 54 | # Desktop 55 | alacritty 56 | blueman 57 | # clipit 58 | d-spy 59 | kdePackages.dolphin 60 | # inputs.ghostty.packages."${system}".default 61 | 62 | feh 63 | firefox 64 | cheese 65 | gpaste 66 | kdePackages.kleopatra 67 | libnotify 68 | libreoffice 69 | lxappearance 70 | lxqt.lxqt-powermanagement 71 | networkmanagerapplet 72 | kdePackages.okular 73 | pinentry 74 | # mission-center 75 | quassel 76 | remmina 77 | rofi 78 | rofi-pass 79 | rofi-systemd 80 | simplescreenrecorder 81 | skippy-xd 82 | synergy 83 | # TODO: reenable 84 | # transmission_3-gtk 85 | vlc 86 | # volnoti 87 | xfce.thunar 88 | 89 | # Audio 90 | picard 91 | pavucontrol 92 | playerctl 93 | pulsemixer 94 | espeak 95 | 96 | # Visualization 97 | graphviz 98 | nodePackages.mermaid-cli 99 | ] ++ (if pkgs.system == "x86_64-linux" then with pkgs; [ 100 | google-chrome 101 | pommed_light 102 | slack 103 | spicetify-cli 104 | spotify 105 | tor-browser-bundle-bin 106 | vscode 107 | zulip 108 | ] else []); 109 | } 110 | -------------------------------------------------------------------------------- /nixos/electron.nix: -------------------------------------------------------------------------------- 1 | { pkgs, config, makeEnable, forEachUser, ... }: 2 | makeEnable config "myModules.electron" false { 3 | environment.systemPackages = with pkgs; [ 4 | element-desktop 5 | # bitwarden 6 | discord 7 | # etcher 8 | # keybase-gui 9 | zoom-us 10 | ]; 11 | home-manager.users = forEachUser (if pkgs.system == "x86_64-linux" then { 12 | # systemd.user.services.bitwarden = { 13 | # Unit = { 14 | # Description = "Bitwarden"; 15 | # After = [ "graphical-session-pre.target" "tray.target" ]; 16 | # PartOf = [ "graphical-session.target" ]; 17 | # }; 18 | 19 | # Install = { WantedBy = [ "graphical-session.target" ]; }; 20 | 21 | # Service = { 22 | # ExecStart = "${pkgs.bitwarden}/bin/bitwarden"; 23 | # Restart = "always"; 24 | # RestartSec = 3; 25 | # }; 26 | # }; 27 | } else {}); 28 | } 29 | -------------------------------------------------------------------------------- /nixos/emacs.nix: -------------------------------------------------------------------------------- 1 | { pkgs, config, specialArgs, ... }: 2 | { 3 | services.emacs = { 4 | enable = false; 5 | defaultEditor = true; 6 | startWithUserSession = false; 7 | socketActivation.enable = true; 8 | }; 9 | } 10 | -------------------------------------------------------------------------------- /nixos/essential.nix: -------------------------------------------------------------------------------- 1 | { pkgs, ... }: 2 | { 3 | nixpkgs.config.allowBroken = true; 4 | 5 | environment.systemPackages = with pkgs; [ 6 | automake 7 | bazel 8 | bento4 9 | bind 10 | binutils 11 | claude-code 12 | cachix 13 | cmake 14 | dex 15 | direnv 16 | dpkg 17 | efibootmgr 18 | emacs 19 | fd 20 | ffmpeg 21 | file 22 | gawk 23 | gcc 24 | gdb 25 | git-fame 26 | git-lfs 27 | git-sync 28 | gitFull 29 | glxinfo 30 | gnumake 31 | gparted 32 | home-manager 33 | htop 34 | inotify-tools 35 | iotop 36 | ispell 37 | jq 38 | just 39 | lshw 40 | lsof 41 | magic-wormhole-rs 42 | ncdu 43 | neofetch 44 | neovim 45 | nix-index 46 | nix-search-cli 47 | pass 48 | patchelf 49 | pciutils 50 | pstree 51 | pulseaudio 52 | python-with-my-packages 53 | rclone 54 | rcm 55 | ripgrep 56 | runc 57 | silver-searcher 58 | skim 59 | sshfs 60 | sysz 61 | tmux 62 | tzupdate 63 | udiskie 64 | unzip 65 | usbutils 66 | wget 67 | xkcdpass 68 | yubikey-manager 69 | ]; 70 | } 71 | -------------------------------------------------------------------------------- /nixos/extra.nix: -------------------------------------------------------------------------------- 1 | { config, pkgs, makeEnable, ... }: 2 | makeEnable config "myModules.extra" false { 3 | programs.hyprland.enable = true; 4 | 5 | environment.systemPackages = with pkgs; [ 6 | android-studio 7 | gradle 8 | ffmpeg 9 | asciidoctor 10 | roomeqwizard 11 | razergenie 12 | signal-desktop 13 | gource 14 | gimp 15 | texlive.combined.scheme-full 16 | tor 17 | yt-dlp 18 | ]; 19 | } 20 | -------------------------------------------------------------------------------- /nixos/fonts.nix: -------------------------------------------------------------------------------- 1 | { pkgs, makeEnable, config, ... }: 2 | makeEnable config "myModules.fonts" true { 3 | # Enable the gtk icon cache 4 | gtk.iconCache.enable = true; 5 | 6 | nixpkgs.config.joypixels.acceptLicense = true; 7 | 8 | fonts = { 9 | packages = with pkgs; [ 10 | cascadia-code 11 | dejavu_fonts 12 | emacs-all-the-icons-fonts 13 | joypixels 14 | fira-code 15 | fira-mono 16 | font-awesome 17 | 18 | noto-fonts-emoji 19 | roboto 20 | source-code-pro 21 | source-sans-pro 22 | source-serif-pro 23 | twemoji-color-font 24 | nerd-fonts.jetbrains-mono 25 | nerd-fonts.fantasque-sans-mono 26 | nerd-fonts.iosevka 27 | nerd-fonts.victor-mono 28 | ]; 29 | fontconfig = { 30 | hinting.autohint = true; 31 | antialias = true; 32 | allowBitmaps = true; 33 | useEmbeddedBitmaps = true; 34 | defaultFonts = { 35 | monospace = [ "JetBrains Mono" ]; 36 | sansSerif = [ "Roboto" ]; 37 | serif = [ "Source Serif Pro" ]; 38 | }; 39 | }; 40 | }; 41 | } 42 | -------------------------------------------------------------------------------- /nixos/games.nix: -------------------------------------------------------------------------------- 1 | { config, pkgs, makeEnable, ... }: 2 | makeEnable config "myModules.games" false { 3 | environment.systemPackages = with pkgs; [ 4 | steam 5 | heroic 6 | ]; 7 | hardware.xone.enable = true; 8 | } 9 | -------------------------------------------------------------------------------- /nixos/git-sync.nix: -------------------------------------------------------------------------------- 1 | { ... }: { 2 | home-manager.users.imalison = ({ config, ... }: { 3 | services.git-sync = { 4 | enable = true; 5 | repositories = { 6 | config = { 7 | path = config.home.homeDirectory + "/config"; 8 | uri = "git@github.com:IvanMalison/config.git"; 9 | }; 10 | org = { 11 | path = config.home.homeDirectory + "/org"; 12 | uri = "git@github.com:IvanMalison/org.git"; 13 | interval = 30; 14 | }; 15 | password-store = { 16 | path = config.home.homeDirectory + "/.password-store"; 17 | uri = "git@github.com:IvanMalison/.password-store.git"; 18 | }; 19 | katnivan = { 20 | path = config.home.homeDirectory + "/katnivan"; 21 | uri = "ssh://gitea@dev.railbird.ai:1123/colonelpanic/katnivan.git"; 22 | interval = 30; 23 | }; 24 | }; 25 | }; 26 | }); 27 | 28 | home-manager.users.kat = ({ config, ... }: { 29 | services.git-sync = { 30 | enable = true; 31 | repositories = { 32 | obsidian = { 33 | path = config.home.homeDirectory + "/obsidian"; 34 | uri = "git@github.com:katandtonic/obsidian.git"; 35 | }; 36 | org = { 37 | path = config.home.homeDirectory + "/org"; 38 | uri = "ssh://gitea@1896Folsom.duckdns.org:1123/kkathuang/org.git"; 39 | interval = 180; 40 | }; 41 | katnivan = { 42 | path = config.home.homeDirectory + "/katnivan"; 43 | uri = "ssh://gitea@1896Folsom.duckdns.org:1123/colonelpanic/katnivan.git"; 44 | interval = 30; 45 | }; 46 | }; 47 | }; 48 | }); 49 | } 50 | -------------------------------------------------------------------------------- /nixos/gitea-runner.nix: -------------------------------------------------------------------------------- 1 | { pkgs, config, makeEnable, ... }: 2 | makeEnable config "myModules.gitea-runner" false { 3 | age.secrets.gitea-runner-token = { 4 | file = ./secrets/gitea-runner-token.age; 5 | group = "docker"; 6 | }; 7 | 8 | services.gitea-actions-runner.instances.nix = 9 | let gitea-runner-directory = "/var/lib/gitea-runner"; 10 | in { 11 | settings = { 12 | cache = { 13 | enabled = true; 14 | }; 15 | container = { 16 | workdir_parent = "${gitea-runner-directory}/workspace"; 17 | }; 18 | host = { 19 | workdir_parent = "${gitea-runner-directory}/action-cache-dir"; 20 | }; 21 | }; 22 | hostPackages = with pkgs; [ 23 | bash 24 | coreutils 25 | curl 26 | direnv 27 | docker 28 | gawk 29 | git-lfs 30 | gitFull 31 | gnused 32 | just 33 | nixVersions.stable 34 | nodejs 35 | openssh 36 | wget 37 | ]; 38 | enable = true; 39 | name = config.networking.hostName; 40 | url = "https://dev.railbird.ai"; 41 | tokenFile = config.age.secrets.gitea-runner-token.path; 42 | labels = [ 43 | "nixos-${pkgs.system}:host" 44 | "nix:docker://localhost:5921/nix-runner" 45 | ]; 46 | }; 47 | 48 | systemd.services.gitea-runner-nix.environment = 49 | let gitea-runner-directory = "/var/lib/gitea-runner"; in { 50 | XDG_CONFIG_HOME = gitea-runner-directory; 51 | XDG_CACHE_HOME = "${gitea-runner-directory}/.cache"; 52 | }; 53 | users.groups.gitea-runner = {}; 54 | users.users.gitea-runner = { 55 | isSystemUser = true; 56 | group = "gitea-runner"; 57 | extraGroups = ["docker"]; 58 | home = "/var/lib/gitea-runner"; 59 | }; 60 | } 61 | -------------------------------------------------------------------------------- /nixos/gitea.nix: -------------------------------------------------------------------------------- 1 | { config, makeEnable, ... }: 2 | makeEnable config "myModules.gitea" false { 3 | 4 | services.gitea = { 5 | enable = true; 6 | lfs.enable = true; 7 | dump = { 8 | enable = true; 9 | interval = "23:05"; 10 | }; 11 | settings.service = { 12 | DISABLE_REGISTRATION = true; 13 | }; 14 | settings.server = { 15 | DOMAIN = "dev.railbird.ai"; 16 | SSH_PORT = 1123; 17 | HTTP_PORT = 3001; 18 | ROOT_URL = "https://dev.railbird.ai"; 19 | DISABLE_REGISTRATION = true; 20 | }; 21 | settings.actions = { 22 | ENABLED = true; 23 | }; 24 | }; 25 | 26 | services.nginx = { 27 | enable = true; 28 | recommendedProxySettings = true; 29 | recommendedGzipSettings = true; 30 | recommendedTlsSettings = true; 31 | virtualHosts = { 32 | "dev.railbird.ai" = { 33 | serverName = "dev.railbird.ai"; 34 | enableACME = true; 35 | forceSSL = true; 36 | locations."/" = { 37 | proxyPass = "http://localhost:3001"; 38 | }; 39 | }; 40 | }; 41 | }; 42 | } 43 | -------------------------------------------------------------------------------- /nixos/gnome.nix: -------------------------------------------------------------------------------- 1 | { config, makeEnable, ... }: 2 | makeEnable config "myModules.gnome" false { 3 | services.xserver = { 4 | desktopManager.gnome.enable = true; 5 | displayManager.gdm.enable = true; 6 | }; 7 | } 8 | -------------------------------------------------------------------------------- /nixos/home-manager.nix: -------------------------------------------------------------------------------- 1 | { pkgs, ... }: 2 | { 3 | xsession = { 4 | enable = true; 5 | preferStatusNotifierItems = true; 6 | importedVariables = [ "GDK_PIXBUF_ICON_LOADER" ]; 7 | }; 8 | 9 | home.keyboard = null; 10 | home.emptyActivationPath = false; 11 | programs.home-manager.enable = true; 12 | 13 | programs.ssh = { 14 | forwardAgent = true; 15 | }; 16 | 17 | services.gpg-agent = { 18 | enable = true; 19 | defaultCacheTtl = 8 * 60 * 60; 20 | maxCacheTtl = 8 * 60 * 60; 21 | enableSshSupport = true; 22 | extraConfig = '' 23 | allow-emacs-pinentry 24 | allow-loopback-pinentry 25 | ''; 26 | }; 27 | 28 | systemd.user.services.setxkbmap = { 29 | Unit = { 30 | Description = "Set up keyboard in X"; 31 | After = [ "graphical-session-pre.target" ]; 32 | PartOf = [ "graphical-session.target" ]; 33 | }; 34 | 35 | Install = { WantedBy = [ "graphical-session.target" ]; }; 36 | 37 | Service = { 38 | Type = "oneshot"; 39 | RemainAfterExit = true; 40 | ExecStart = "/usr/bin/env load_xkb_map"; 41 | }; 42 | }; 43 | 44 | gtk = { 45 | enable = true; 46 | iconTheme = { 47 | package = pkgs.numix-icon-theme-circle; 48 | name = "Numix-Circle"; 49 | }; 50 | 51 | font = { 52 | package = pkgs.noto-fonts-emoji; 53 | name = "Noto Sans"; 54 | size = 10; 55 | }; 56 | 57 | gtk3.extraConfig = { 58 | gtk-application-prefer-dark-theme = true; 59 | gtk-button-images = 1; 60 | gtk-cursor-theme-name = "breeze_cursors"; 61 | gtk-cursor-theme-size = 24; 62 | gtk-decoration-layout = "icon:minimize,maximize,close"; 63 | gtk-enable-animations = true; 64 | gtk-enable-event-sounds = 1; 65 | gtk-enable-input-feedback-sounds = 1; 66 | gtk-fallback-icon-theme = "gnome"; 67 | gtk-key-theme-name = "Emacs"; 68 | gtk-menu-images = 1; 69 | gtk-modules = "colorreload-gtk-module"; 70 | gtk-primary-button-warps-slider = false; 71 | gtk-theme-name = "Arc"; 72 | gtk-toolbar-icon-size = "GTK_ICON_SIZE_LARGE_TOOLBAR"; 73 | gtk-toolbar-style = "GTK_TOOLBAR_BOTH_HORIZ"; 74 | gtk-xft-antialias = 1; 75 | gtk-xft-dpi = 98304; 76 | gtk-xft-hinting = 1; 77 | gtk-xft-hintstyle = "hintslight"; 78 | gtk-xft-rgba = "rgb"; 79 | }; 80 | }; 81 | } 82 | -------------------------------------------------------------------------------- /nixos/imalison.nix: -------------------------------------------------------------------------------- 1 | { ... }: { 2 | home-manager.users.imalison = { 3 | imports = [ 4 | ./emacs.nix 5 | ]; 6 | }; 7 | } 8 | -------------------------------------------------------------------------------- /nixos/internet-computer.nix: -------------------------------------------------------------------------------- 1 | { pkgs, ... }: 2 | { 3 | environment.systemPackages = with pkgs; [ 4 | ic-keysmith 5 | quill 6 | quill-qr 7 | ]; 8 | } 9 | -------------------------------------------------------------------------------- /nixos/justfile: -------------------------------------------------------------------------------- 1 | switch *args: 2 | sudo nixos-rebuild switch --flake '.#' --impure {{args}} 3 | 4 | fix-local-path-issue: 5 | nix flake update imalison-taffybar 6 | 7 | 8 | expire-home-manager-generations: 9 | #!/usr/bin/env bash 10 | set -euxo pipefail 11 | for user in $(awk -F':' '{ if ($3 >= 1000 && $7 !~ /nologin|false|sync|shutdown|halt/) print $1 }' /etc/passwd); do 12 | echo $user 13 | sudo su - $user -c 'home-manager expire-generations -1days' 14 | done 15 | -------------------------------------------------------------------------------- /nixos/kat.nix: -------------------------------------------------------------------------------- 1 | { pkgs, config, makeEnable, ... }: 2 | makeEnable config "myModules.kat" false { 3 | environment.systemPackages = with pkgs; [ 4 | obsidian 5 | bitwarden 6 | code-cursor 7 | obsidian 8 | windsurf 9 | ]; 10 | 11 | environment.extraInit = '' 12 | export PAGER=cat 13 | ''; 14 | } 15 | -------------------------------------------------------------------------------- /nixos/keybase.nix: -------------------------------------------------------------------------------- 1 | { forEachUser, ... }: { 2 | home-manager.users = forEachUser { 3 | services.kbfs.enable = true; 4 | }; 5 | } 6 | -------------------------------------------------------------------------------- /nixos/kubelet-client.crt: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIIDyTCCAjGgAwIBAgIRAMQBZiVjA5BGSkDldScI9cMwDQYJKoZIhvcNAQELBQAw 3 | LzEtMCsGA1UEAxMkM2I2N2M2NzgtNzI5My00YTIzLTg3ZWItY2NiMTZjYWFkMzFm 4 | MB4XDTI0MDkyOTIwNTAzNloXDTI5MDkyODIwNTIzNlowOTEVMBMGA1UEChMMc3lz 5 | dGVtOm5vZGVzMSAwHgYDVQQDExdzeXN0ZW06bm9kZTpyeXplbi1zaGluZTCCASIw 6 | DQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANIOfbq05IIdgX2jXYLaEt66rkXp 7 | NlqPNfh6v9nL1Aw6PSM3DEIWXVko8AyduRF4kXNO6xc6l/Rzk03w3qSvJpWpALGD 8 | JjslgRL4VJWUC6/QydsCO9io7SoUEmXFtDcsW6DftFejosr+56ZnVFrz5MMzfUAL 9 | Ix6n83NJvXZ8f9oHSX8TFW34ZClLxDq2fprFIs+D2QlFRE50Jr/Q8gPI2OSQDUBW 10 | DFdQrjt81bLs6doQipUqvHb4/Ms49agHek1ceWIMf+KZWoao5KNQTBe6XL2BUgA/ 11 | MS3ZvQppDDTygA0QkgdtOJyG2lsrAmd7LEXTr9ilsqLV3YQMMKhCifwINa0CAwEA 12 | AaNWMFQwDgYDVR0PAQH/BAQDAgWgMBMGA1UdJQQMMAoGCCsGAQUFBwMCMAwGA1Ud 13 | EwEB/wQCMAAwHwYDVR0jBBgwFoAUjvcbOeZ4QIk53EkATOaOFiAZUq0wDQYJKoZI 14 | hvcNAQELBQADggGBAELWgmdmg9TKjDDqmF6pYr1j43gZYclXW4sB509itSiIeltX 15 | Isrvn5R5ok0W5Jcl+7QMhpntqIKJi26OqbcdBhqlaVURkBkbrx8aegkWJfPO+Fzz 16 | NyyiIpk7KQzGy6N5//jfMPZtJfQEQZwMenW0cj7F0QHOdVZy90+JNr2P3uV3Ad7u 17 | WZuYpbOFjOeQg1hJsX8wEU4KJyptn/kXhM+CqAnQ4S+k2wpjECD8KpWKAmpJWZg0 18 | RaBPyHZSmWnbXqs4LU6ERaZJxZQG0ODuA18DmGfaAkUUUvE2J0ploc2Y8Xl4zUWW 19 | Ivwslyx30YO3J9qI30d9tTQw/A0vHCoDNDbCg7lorZqP3TiTG9ANLndPqqg6inYU 20 | yfj612//JrO8w/4qh7cxR03P35aK0paLC74FaKLtZ5CwPK3BAW/0Zhv5fH4io6hE 21 | rfJmcjhbKD0Cwr9Dn6wVFz/a33H+0vMohHrVlDk4bSDIymbuJcZpYgR8n5WNQbGu 22 | nwjiLXCnVxcVjkcj2w== 23 | -----END CERTIFICATE----- 24 | -------------------------------------------------------------------------------- /nixos/kubelet.nix: -------------------------------------------------------------------------------- 1 | { config, pkgs, makeEnable, ... }: 2 | makeEnable config "myModules.kubelet" false { 3 | age.secrets."api_service_account_key.json.age".file = ./secrets/api_service_account_key.json.age; 4 | services.kubernetes.kubelet = { 5 | enable = true; 6 | kubeconfig = { 7 | server = "https://34.31.205.230"; 8 | caFile = ./railbird-kubernetes.crt; 9 | certFile = ./kubelet-client.crt; 10 | keyFile = config.age.secrets."api_service_account_key.json.age".path; 11 | }; 12 | registerNode = true; 13 | cni = { 14 | packages = [ pkgs.cni-plugins pkgs.calico-cni-plugin ]; 15 | }; 16 | extraOpts = '' 17 | --fail-swap-on=false 18 | # --container-runtime=remote 19 | # --container-runtime-endpoint=unix:///run/containerd/containerd.sock 20 | ''; 21 | }; 22 | } 23 | -------------------------------------------------------------------------------- /nixos/laptop.nix: -------------------------------------------------------------------------------- 1 | { makeEnable, config, ... }: 2 | makeEnable config "myModules.laptop" true { 3 | services.logind = { 4 | lidSwitchExternalPower = "ignore"; 5 | }; 6 | } 7 | -------------------------------------------------------------------------------- /nixos/machines/adell.nix: -------------------------------------------------------------------------------- 1 | { lib, pkgs, inputs, forEachUser, ... }: 2 | 3 | { 4 | imports = [ 5 | ../configuration.nix 6 | inputs.nixos-hardware.nixosModules.dell-xps-17-9700-nvidia 7 | ]; 8 | 9 | myModules.wyoming.enable = true; 10 | myModules.base.enable = true; 11 | myModules.desktop.enable = true; 12 | myModules.xmonad.enable = true; 13 | myModules.extra.enable = false; 14 | myModules.code.enable = true; 15 | myModules.games.enable = false; 16 | myModules.syncthing.enable = true; 17 | myModules.fonts.enable = true; 18 | myModules.nixified-ai.enable = false; 19 | myModules.gitea-runner.enable = false; 20 | hardware.nvidia.open = true; 21 | 22 | hardware.enableRedistributableFirmware = true; 23 | 24 | environment.systemPackages = with pkgs; [ 25 | android-studio 26 | ]; 27 | 28 | boot.kernelPackages = pkgs.linuxPackages_latest; 29 | boot.initrd.availableKernelModules = [ "xhci_pci" "nvme" "usb_storage" "sd_mod" "rtsx_pci_sdmmc" ]; 30 | boot.initrd.kernelModules = [ ]; 31 | boot.kernelModules = [ "kvm-intel" ]; 32 | services.xserver = { 33 | videoDrivers = [ "nvidia" ]; 34 | }; 35 | boot.loader.systemd-boot.enable = true; 36 | boot.loader.efi.canTouchEfiVariables = true; 37 | 38 | services.libinput = { 39 | enable = true; 40 | touchpad.tapping = true; 41 | }; 42 | 43 | security.pam.services.login.fprintAuth = true; 44 | services.fprintd = { 45 | enable = true; 46 | tod = { 47 | enable = true; 48 | driver = pkgs.libfprint-2-tod1-goodix; 49 | }; 50 | }; 51 | 52 | fileSystems."/" = 53 | { device = "/dev/disk/by-uuid/18af5b4c-69c7-41a8-865e-bc3f5269d2f9"; 54 | fsType = "ext4"; 55 | }; 56 | 57 | fileSystems."/boot" = 58 | { device = "/dev/disk/by-uuid/8A9F-D7D2"; 59 | fsType = "vfat"; 60 | }; 61 | 62 | swapDevices = [ ]; 63 | 64 | networking.hostName = "adell"; 65 | 66 | powerManagement.cpuFreqGovernor = lib.mkDefault "performance"; 67 | 68 | home-manager.users = forEachUser { 69 | home.stateVersion = "23.05"; 70 | }; 71 | 72 | system.stateVersion = "23.05"; 73 | } 74 | -------------------------------------------------------------------------------- /nixos/machines/bencbox.nix: -------------------------------------------------------------------------------- 1 | { lib, pkgs, config, inputs, forEachUser, ... }: 2 | { 3 | imports = [ 4 | ../configuration.nix 5 | ]; 6 | services.xserver.enable = true; 7 | environment.systemPackages = with pkgs; [ 8 | sublime 9 | vlc 10 | ]; 11 | myModules.desktop.enable = false; 12 | myModules.plasma.enable = false; 13 | imalison.nixOverlay.enable = false; 14 | myModules.wsl.enable = true; 15 | 16 | networking.hostName = "bencbox"; 17 | 18 | wsl.defaultUser = "ben"; 19 | system.stateVersion = "22.05"; 20 | 21 | home-manager.users = forEachUser { 22 | home.stateVersion = "22.05"; 23 | }; 24 | 25 | users.users.ben = { 26 | extraGroups = [ 27 | "audio" 28 | "adbusers" 29 | "disk" 30 | "docker" 31 | "networkmanager" 32 | "openrazer" 33 | "plugdev" 34 | "syncthing" 35 | "systemd-journal" 36 | "video" 37 | ] ++ ["wheel"]; 38 | }; 39 | } 40 | -------------------------------------------------------------------------------- /nixos/machines/david-blade.nix: -------------------------------------------------------------------------------- 1 | { config, lib, pkgs, forEachUser, ... }: 2 | 3 | { 4 | imports = [ 5 | ../configuration.nix 6 | ]; 7 | 8 | myModules.base.enable = true; 9 | myModules.desktop.enable = true; 10 | myModules.xmonad.enable = false; 11 | myModules.extra.enable = false; 12 | myModules.code.enable = true; 13 | myModules.games.enable = false; 14 | myModules.syncthing.enable = true; 15 | myModules.fonts.enable = true; 16 | myModules.nixified-ai.enable = false; 17 | 18 | hardware.enableRedistributableFirmware = true; 19 | 20 | # disable card with bbswitch by default since we turn it on only on demand! 21 | hardware.nvidiaOptimus.disable = true; 22 | 23 | # install nvidia drivers in addition to intel one 24 | hardware.opengl.extraPackages = [ pkgs.linuxPackages.nvidia_x11.out ]; 25 | hardware.opengl.extraPackages32 = [ pkgs.linuxPackages.nvidia_x11.lib32 ]; 26 | 27 | boot.initrd.availableKernelModules = [ "xhci_pci" "nvme" "usb_storage" "usbhid" "sd_mod" ]; 28 | boot.kernelModules = [ "kvm-intel" ]; 29 | boot.extraModulePackages = [ ]; 30 | 31 | boot.loader.systemd-boot.enable = true; 32 | boot.loader.efi.canTouchEfiVariables = true; 33 | 34 | services.xserver.libinput.enable = true; 35 | 36 | fileSystems."/" = { 37 | device = "/dev/disk/by-uuid/36864608-8e74-42b8-a075-27b59ef2701d"; 38 | fsType = "ext4"; 39 | }; 40 | 41 | fileSystems."/boot" = { 42 | device = "/dev/disk/by-uuid/36E1-BE93"; 43 | fsType = "vfat"; 44 | }; 45 | 46 | swapDevices = [ 47 | { 48 | device = "/swapfile"; 49 | priority = 0; 50 | size = 4096; 51 | } 52 | ]; 53 | 54 | networking.hostName = "david-blade"; 55 | 56 | home-manager.users = forEachUser { 57 | home.stateVersion = "24.05"; 58 | }; 59 | 60 | powerManagement.cpuFreqGovernor = lib.mkDefault "powersave"; 61 | system.stateVersion = "24.05"; 62 | } 63 | -------------------------------------------------------------------------------- /nixos/machines/dean-zephyrus.nix: -------------------------------------------------------------------------------- 1 | { lib, pkgs, config, inputs, forEachUser, ... }: 2 | { 3 | imports = [ 4 | ../configuration.nix 5 | ]; 6 | services.xserver.enable = true; 7 | environment.systemPackages = with pkgs; [sublime]; 8 | myModules.desktop.enable = false; 9 | myModules.plasma.enable = false; 10 | imalison.nixOverlay.enable = false; 11 | myModules.wsl.enable = true; 12 | 13 | networking.hostName = "dean-zephyrus"; 14 | 15 | wsl.defaultUser = "dean"; 16 | system.stateVersion = "22.05"; 17 | 18 | home-manager.users = forEachUser { 19 | home.stateVersion = "22.05"; 20 | }; 21 | } 22 | -------------------------------------------------------------------------------- /nixos/machines/jay-lenovo-wsl.nix: -------------------------------------------------------------------------------- 1 | { lib, pkgs, config, inputs, forEachUser, ... }: 2 | { 3 | imports = [ 4 | ../configuration.nix 5 | ]; 6 | 7 | imalison.nixOverlay.enable = false; 8 | myModules.wsl.enable = true; 9 | 10 | networking.hostName = "jay-lenovo-wsl"; 11 | 12 | wsl.defaultUser = "kat"; 13 | system.stateVersion = "22.05"; 14 | 15 | home-manager.users = forEachUser { 16 | home.stateVersion = "22.05"; 17 | }; 18 | } 19 | -------------------------------------------------------------------------------- /nixos/machines/jay-lenovo.nix: -------------------------------------------------------------------------------- 1 | { config, lib, pkgs, forEachUser, ... }: 2 | 3 | { 4 | imports = [ 5 | ../configuration.nix 6 | ]; 7 | 8 | myModules.wyoming.enable = true; 9 | features.full.enable = true; 10 | 11 | environment.systemPackages = with pkgs; [ 12 | android-studio 13 | linuxPackages_latest.perf 14 | zenmonitor 15 | code-cursor 16 | ]; 17 | 18 | hardware.enableRedistributableFirmware = true; 19 | boot.kernelPackages = pkgs.linuxPackages_latest; 20 | 21 | boot.initrd.kernelModules = [ "amdgpu" ]; 22 | boot.initrd.availableKernelModules = [ 23 | "nvme" "xhci_pci" "usbhid" "usb_storage" "sd_mod" "rtsx_pci_sdmmc" "amdgpu" 24 | ]; 25 | boot.kernelModules = [ "kvm-amd" ]; 26 | boot.extraModulePackages = [ ]; 27 | 28 | boot.loader.systemd-boot.enable = true; 29 | boot.loader.efi.canTouchEfiVariables = true; 30 | 31 | myModules.postgres.enable = true; 32 | myModules.kat.enable = true; 33 | networking.networkmanager.enable = true; 34 | 35 | services.xserver = { 36 | enable = true; 37 | libinput.enable = true; 38 | videoDrivers = [ "amdgpu" ]; 39 | }; 40 | 41 | fileSystems."/" = { 42 | device = "/dev/disk/by-uuid/cb96b029-df61-45d3-905b-a9435bf446df"; 43 | fsType = "ext4"; 44 | }; 45 | 46 | fileSystems."/boot" = { 47 | device = "/dev/disk/by-uuid/1C5A-4FBB"; 48 | fsType = "vfat"; 49 | }; 50 | 51 | networking.hostName = "jay-lenovo"; 52 | 53 | services.power-profiles-daemon.enable = false; 54 | services.tlp.enable = true; 55 | 56 | system.stateVersion = "23.05"; 57 | 58 | home-manager.users = forEachUser { 59 | home.stateVersion = "23.05"; 60 | }; 61 | } 62 | -------------------------------------------------------------------------------- /nixos/machines/jimi-hendnix.nix: -------------------------------------------------------------------------------- 1 | { config, lib, pkgs, forEachUser, ... }: 2 | 3 | { 4 | imports = [ 5 | ../configuration.nix 6 | ]; 7 | 8 | myModules.railbird-k3s = { 9 | enable = true; 10 | serverAddr = "https://ryzen-shine.local:6443"; 11 | }; 12 | myModules.base.enable = true; 13 | myModules.desktop.enable = true; 14 | myModules.xmonad.enable = true; 15 | myModules.extra.enable = false; 16 | myModules.code.enable = true; 17 | myModules.games.enable = false; 18 | myModules.syncthing.enable = true; 19 | myModules.fonts.enable = true; 20 | myModules.gitea-runner.enable = true; 21 | myModules.postgres.enable = true; 22 | 23 | hardware.enableRedistributableFirmware = true; 24 | myModules.nvidia.enable = true; 25 | 26 | boot.initrd.availableKernelModules = [ "xhci_pci" "nvme" "usb_storage" "usbhid" "sd_mod" ]; 27 | boot.kernelModules = [ "kvm-intel" ]; 28 | boot.extraModulePackages = [ ]; 29 | 30 | boot.loader.systemd-boot.enable = true; 31 | boot.loader.efi.canTouchEfiVariables = true; 32 | hardware.nvidia.modesetting.enable = true; 33 | 34 | services.xserver = { 35 | videoDrivers = [ "nvidia" ]; 36 | }; 37 | 38 | fileSystems."/" = 39 | { device = "/dev/disk/by-uuid/30583504-9530-4095-a556-da1209ef9b63"; 40 | fsType = "ext4"; 41 | }; 42 | 43 | fileSystems."/boot" = 44 | { device = "/dev/disk/by-uuid/CE95-E46C"; 45 | fsType = "vfat"; 46 | }; 47 | 48 | swapDevices = [ 49 | { device = "/dev/disk/by-uuid/598e9aa1-4940-4410-a2fa-3dfd8b7d2c0d"; } 50 | ]; 51 | 52 | home-manager.users = forEachUser { 53 | home.stateVersion = "23.11"; 54 | }; 55 | 56 | networking.hostName = "jimi-hendnix"; 57 | 58 | system.stateVersion = "23.05"; 59 | } 60 | -------------------------------------------------------------------------------- /nixos/machines/nixquick.nix: -------------------------------------------------------------------------------- 1 | { config, lib, pkgs, inputs, forEachUser, ... }: 2 | { 3 | imports = [ 4 | ../configuration.nix 5 | ]; 6 | 7 | services.macos-ventura = { 8 | enable = false; 9 | openFirewall = true; 10 | vncListenAddr = "0.0.0.0"; 11 | }; 12 | 13 | features.full.enable = true; 14 | myModules.cache-server = { 15 | enable = true; 16 | port = 3090; 17 | }; 18 | myModules.gitea-runner.enable = true; 19 | myModules.vscode.enable = true; 20 | myModules.kat.enable = true; 21 | myModules.nvidia.enable = true; 22 | myModules.railbird-k3s = { 23 | enable = true; 24 | serverAddr = "https://dev.railbird.ai:6443"; 25 | }; 26 | 27 | networking.hostName = "nixquick"; 28 | 29 | hardware.enableRedistributableFirmware = true; 30 | boot.initrd.availableKernelModules = [ "xhci_pci" "ahci" "nvme" "usbhid" "usb_storage" "sd_mod" ]; 31 | boot.initrd.kernelModules = [ ]; 32 | boot.kernelModules = [ "kvm-intel" ]; 33 | boot.extraModulePackages = [ ]; 34 | boot.loader.systemd-boot.enable = true; 35 | 36 | hardware.nvidia.modesetting.enable = true; 37 | 38 | # This also enables v4l2loopback 39 | programs.droidcam.enable = true; 40 | 41 | fileSystems."/" = 42 | { device = "/dev/disk/by-uuid/64a7c1f5-727a-413c-81a2-cb108728cff6"; 43 | fsType = "ext4"; 44 | }; 45 | 46 | fileSystems."/boot" = 47 | { device = "/dev/disk/by-uuid/EE25-DC15"; 48 | fsType = "vfat"; 49 | }; 50 | 51 | swapDevices = 52 | [ { device = "/dev/disk/by-uuid/c0dcff59-8072-48fb-b242-a7a1797e4b48"; } 53 | ]; 54 | 55 | 56 | networking.useDHCP = lib.mkDefault true; 57 | nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; 58 | powerManagement.cpuFreqGovernor = lib.mkDefault "powersave"; 59 | hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware; 60 | 61 | services.xrdp.enable = true; 62 | services.xrdp.defaultWindowManager = "startplasma-x11"; 63 | services.xrdp.openFirewall = true; 64 | 65 | home-manager.users = forEachUser { 66 | home.stateVersion = "23.11"; 67 | }; 68 | 69 | system.stateVersion = "23.11"; 70 | } 71 | -------------------------------------------------------------------------------- /nixos/machines/railbird-sf.nix: -------------------------------------------------------------------------------- 1 | { config, lib, pkgs, forEachUser, ... }: 2 | { 3 | imports = [ 4 | ../configuration.nix 5 | ]; 6 | 7 | networking.hostName = "railbird-sf"; 8 | 9 | hardware.enableRedistributableFirmware = true; 10 | boot.initrd.availableKernelModules = [ "nvme" "xhci_pci" "ahci" "usbhid" "usb_storage" "sd_mod" ]; 11 | boot.initrd.kernelModules = [ ]; 12 | boot.kernelModules = [ "kvm-amd" ]; 13 | boot.extraModulePackages = [ ]; 14 | boot.loader.systemd-boot.enable = true; 15 | modules.postgres.enable = true; 16 | 17 | services.k3s.role = "agent"; 18 | services.k3s.extraFlags = lib.mkForce ["--node-label nixos-nvidia-cdi=enabled"]; 19 | 20 | hardware.nvidia = { 21 | powerManagement.enable = false; 22 | # Fine-grained power management. Turns off GPU when not in use. 23 | # Experimental and only works on modern Nvidia GPUs (Turing or newer). 24 | powerManagement.finegrained = false; 25 | 26 | # Enable the Nvidia settings menu, 27 | # accessible via `nvidia-settings`. 28 | nvidiaSettings = true; 29 | }; 30 | 31 | features.full.enable = false; 32 | myModules.base.enable = true; 33 | myModules.desktop.enable = true; 34 | myModules.xmonad.enable = false; 35 | myModules.code.enable = true; 36 | myModules.syncthing.enable = true; 37 | myModules.fonts.enable = true; 38 | myModules.plasma.enable = true; 39 | myModules.nvidia.enable = true; 40 | myModules.gitea-runner.enable = true; 41 | myModules.railbird-k3s = { 42 | enable = false; 43 | serverAddr = "https://dev.railbird.ai:6443"; 44 | }; 45 | 46 | fileSystems."/" = 47 | { device = "/dev/disk/by-uuid/a317d456-6f84-41ee-a149-8e466e414aae"; 48 | fsType = "ext4"; 49 | }; 50 | 51 | fileSystems."/boot" = 52 | { device = "/dev/disk/by-uuid/B875-39D4"; 53 | fsType = "vfat"; 54 | }; 55 | 56 | swapDevices = 57 | [ { device = "/dev/disk/by-uuid/129345f3-e1e1-4d45-9db9-643160c6d564"; } 58 | ]; 59 | 60 | environment.systemPackages = with pkgs; [ 61 | android-studio 62 | ]; 63 | 64 | networking.useDHCP = lib.mkDefault true; 65 | nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; 66 | powerManagement.cpuFreqGovernor = lib.mkDefault "powersave"; 67 | hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware; 68 | 69 | home-manager.users = forEachUser { 70 | home.stateVersion = "23.11"; 71 | }; 72 | 73 | system.stateVersion = "23.11"; 74 | } 75 | -------------------------------------------------------------------------------- /nixos/machines/ryzen-shine.nix: -------------------------------------------------------------------------------- 1 | { lib, pkgs, forEachUser, ... }: 2 | 3 | { 4 | imports = [ 5 | ../configuration.nix 6 | ]; 7 | 8 | features.full.enable = true; 9 | myModules.kubelet.enable = false; 10 | myModules.nvidia.enable = true; 11 | # Needed for now because monitors have different refresh rates 12 | myModules.xmonad.picom.vSync.enable = false; 13 | myModules.cache-server = { 14 | enable = true; 15 | port = 3090; 16 | }; 17 | myModules.gitea-runner.enable = true; 18 | myModules.postgres.enable = true; 19 | myModules.railbird-k3s = { 20 | enable = true; 21 | serverAddr = "https://jimi-hendnix.local:6443"; 22 | # extraFlags = ["--node-taint preferNoSchedule=true:NoSchedule"]; 23 | }; 24 | myModules.nixified-ai.enable = true; 25 | boot.kernelPackages = pkgs.linuxPackages_latest; 26 | 27 | boot.loader.systemd-boot.configurationLimit = 5; 28 | 29 | networking.hostName = "ryzen-shine"; 30 | 31 | environment.systemPackages = with pkgs; [ 32 | linuxPackages_latest.perf 33 | ]; 34 | 35 | boot.initrd.systemd.enable = true; 36 | boot.plymouth = { 37 | enable = false; 38 | }; 39 | 40 | services.autorandr = { 41 | enable = true; 42 | }; 43 | 44 | hardware.enableRedistributableFirmware = true; 45 | 46 | networking.interfaces.enp5s0.useDHCP = true; 47 | networking.interfaces.wlp4s0.useDHCP = true; 48 | 49 | boot.loader.systemd-boot.enable = true; 50 | boot.loader.efi.canTouchEfiVariables = true; 51 | 52 | boot.initrd.availableKernelModules = [ "nvme" "xhci_pci" "ahci" "usb_storage" "usbhid" "sd_mod" ]; 53 | 54 | hardware.nvidia.modesetting.enable = true; 55 | 56 | hardware.graphics.enable32Bit = true; 57 | 58 | boot.kernelModules = [ "kvm-amd" ]; 59 | boot.extraModulePackages = [ ]; 60 | 61 | fileSystems."/" = { 62 | device = "/dev/disk/by-uuid/9bd06145-8151-4f7b-bcfe-f1809e0db1ea"; 63 | fsType = "ext4"; 64 | }; 65 | 66 | fileSystems."/boot" = { 67 | device = "/dev/disk/by-uuid/E1E1-909E"; 68 | fsType = "vfat"; 69 | }; 70 | 71 | fileSystems."/shared" = { 72 | device = "/dev/disk/by-uuid/D4009CE8009CD33A"; 73 | fsType = "ntfs"; 74 | options = [ "nofail" "uid=0" "gid=users" "umask=002" ]; 75 | }; 76 | 77 | # nix.settings.maxJobs = lib.mkDefault 16; 78 | # High-DPI console 79 | console.font = lib.mkDefault "${pkgs.terminus_font}/share/consolefonts/ter-u28n.psf.gz"; 80 | 81 | # services.xrdp.enable = true; 82 | # services.xrdp.defaultWindowManager = "startplasma-x11"; 83 | # services.xrdp.openFirewall = true; 84 | 85 | system.stateVersion = "20.03"; 86 | home-manager.users = forEachUser { 87 | home.stateVersion = "21.05"; 88 | }; 89 | 90 | # users.extraUsers.dean.home = "/shared/dean"; 91 | } 92 | -------------------------------------------------------------------------------- /nixos/machines/strixi-minaj-wsl.nix: -------------------------------------------------------------------------------- 1 | { lib, pkgs, config, inputs, forEachUser, ... }: 2 | { 3 | imports = [ 4 | ../configuration.nix 5 | ]; 6 | 7 | myModules.wsl.enable = true; 8 | 9 | networking.hostName = "strixi-minaj-wsl"; 10 | 11 | wsl.defaultUser = "imalison"; 12 | system.stateVersion = "23.11"; # Did you read the comment? 13 | 14 | home-manager.users = forEachUser { 15 | home.stateVersion = "23.11"; 16 | }; 17 | 18 | programs.gnupg = { 19 | agent = { 20 | pinentryPackage = pkgs.pinentry-curses; 21 | enable = true; 22 | enableSSHSupport = true; 23 | }; 24 | }; 25 | 26 | nixpkgs.config.permittedInsecurePackages = [ 27 | "openssl-1.0.2u" 28 | "electron-12.2.3" 29 | "etcher" 30 | "electron-19.1.9" 31 | "openssl-1.1.1w" 32 | "nix-2.16.2" 33 | "electron-32.3.3" 34 | ]; 35 | } 36 | -------------------------------------------------------------------------------- /nixos/machines/strixi-minaj.nix: -------------------------------------------------------------------------------- 1 | { config, lib, pkgs, inputs, forEachUser, ... }: 2 | 3 | { 4 | imports = [ 5 | ../configuration.nix 6 | inputs.nixos-hardware.nixosModules.asus-rog-strix-g834jzr 7 | ]; 8 | 9 | hardware.nvidia.open = true; 10 | myModules.base.enable = true; 11 | myModules.desktop.enable = true; 12 | myModules.xmonad.enable = true; 13 | myModules.extra.enable = false; 14 | myModules.code.enable = true; 15 | myModules.games.enable = false; 16 | myModules.syncthing.enable = true; 17 | myModules.fonts.enable = true; 18 | myModules.gitea-runner.enable = false; 19 | myModules.nvidia.enable = true; 20 | myModules.electron.enable = true; 21 | myModules.wyoming.enable = false; 22 | myModules.tts.enable = true; 23 | 24 | hardware.enableRedistributableFirmware = true; 25 | # nixpkgs.config.cudaSupport = true; 26 | 27 | environment.systemPackages = with pkgs; [ 28 | android-studio 29 | ]; 30 | 31 | services.synergy.server = { 32 | enable = true; 33 | autoStart = true; 34 | configFile = ../../dotfiles/synergy.conf; 35 | }; 36 | 37 | services.matter-server = { 38 | enable = true; 39 | logLevel = "debug"; 40 | extraArgs = ["--bluetooth-adapter=0" "--enable-test-net-dcl"]; 41 | }; 42 | 43 | programs.virt-manager.enable = true; 44 | virtualisation.libvirtd.enable = true; 45 | virtualisation.spiceUSBRedirection.enable = true; 46 | 47 | services.xserver.dpi = 96; 48 | boot.kernelPackages = pkgs.linuxPackages_latest; 49 | boot.initrd.availableKernelModules = [ "vmd" "xhci_pci" "thunderbolt" "nvme" "usbhid" "usb_storage" "sd_mod" ]; 50 | boot.initrd.kernelModules = [ "nvidia" "nvidia_drm" "nvidia_uvm" "nvidia_modeset" ]; 51 | boot.kernelModules = [ "kvm-intel" ]; 52 | boot.extraModulePackages = [ ]; 53 | hardware.nvidia.powerManagement.enable = true; 54 | boot.loader.systemd-boot.enable = true; 55 | boot.loader.efi.canTouchEfiVariables = true; 56 | 57 | services.asusd.enable = true; 58 | 59 | fileSystems."/" = { 60 | device = "/dev/disk/by-uuid/fc06a54c-cc45-423a-914b-8dfcb5939106"; 61 | fsType = "ext4"; 62 | }; 63 | 64 | fileSystems."/boot" = { 65 | device = "/dev/disk/by-uuid/B28A-829A"; 66 | fsType = "vfat"; 67 | }; 68 | 69 | swapDevices = [ 70 | { device = "/dev/disk/by-uuid/27f277a0-b552-43a0-904d-625e48922bb9"; } 71 | ]; 72 | 73 | networking.hostName = "strixi-minaj"; 74 | 75 | powerManagement.cpuFreqGovernor = lib.mkDefault "performance"; 76 | hardware.cpu.intel.updateMicrocode = lib.mkDefault true; 77 | 78 | home-manager.users = forEachUser { 79 | home.stateVersion = "23.05"; 80 | }; 81 | 82 | system.stateVersion = "23.05"; 83 | } 84 | -------------------------------------------------------------------------------- /nixos/make-enable.nix: -------------------------------------------------------------------------------- 1 | lib: config: pathStr: default: configAttrs: 2 | let 3 | 4 | pathToAttrSet = str: value: 5 | let 6 | parts = lib.splitString "." str; 7 | in 8 | if lib.length parts == 1 then 9 | { ${lib.head parts} = value; } 10 | else 11 | { ${lib.head parts} = pathToAttrSet (lib.concatStringsSep "." (lib.tail parts)) value; }; 12 | 13 | optionsSet = pathToAttrSet pathStr { 14 | enable = lib.mkOption { 15 | inherit default; 16 | type = lib.types.bool; 17 | }; 18 | }; 19 | 20 | cfg = lib.attrByPath (lib.splitString "." pathStr) { enable = false; } config; 21 | 22 | # Extract 'imports' from configAttrs, if it exists 23 | importsAttr = if configAttrs ? imports then configAttrs.imports else []; 24 | # Remove 'imports' from configAttrs 25 | configAttrsWithoutImports = lib.attrsets.removeAttrs configAttrs ["imports"]; 26 | 27 | in 28 | { 29 | options = optionsSet; 30 | config = lib.mkIf cfg.enable configAttrsWithoutImports; 31 | imports = importsAttr; 32 | } 33 | -------------------------------------------------------------------------------- /nixos/nix.nix: -------------------------------------------------------------------------------- 1 | { inputs, specialArgs, config, lib, ... }: 2 | { 3 | imports = [ 4 | inputs.home-manager.nixosModules.home-manager 5 | ]; 6 | 7 | options = { 8 | imalison.nixOverlay.enable = lib.mkOption { 9 | default = false; 10 | type = lib.types.bool; 11 | }; 12 | }; 13 | config = { 14 | home-manager.extraSpecialArgs = { 15 | nixos = { 16 | inherit specialArgs config; 17 | }; 18 | }; 19 | home-manager.useGlobalPkgs = true; 20 | home-manager.useUserPackages = true; 21 | home-manager.backupFileExtension = "backup"; 22 | 23 | nix = rec { 24 | extraOptions = '' 25 | experimental-features = nix-command flakes 26 | ''; 27 | registry.nixpkgs.flake = inputs.nixpkgs; 28 | settings = { 29 | keep-outputs = true; 30 | keep-derivations = true; 31 | substituters = [ 32 | "https://cache.nixos.org" 33 | "https://cuda-maintainers.cachix.org" 34 | "https://ai.cachix.org" 35 | ]; 36 | trusted-public-keys = [ 37 | "cache.railbird.ai:KhnvcouxtIU2zxUcjJsm4bUK3o1S3p8xMf9qfZGF7/A=" 38 | "cuda-maintainers.cachix.org-1:0dq3bujKpuEPMCX6U4WylrUDZ9JyUG0VpVZa7CNfq5E=" 39 | "ai.cachix.org-1:N9dzRK+alWwoKXQlnn0H6aUx0lU/mspIoz8hMvGvbbc=" 40 | ]; 41 | nix-path = nixPath; 42 | }; 43 | channel.enable = false; 44 | nixPath = [ 45 | "nixpkgs=${inputs.nixpkgs.outPath}" 46 | ]; 47 | }; 48 | 49 | nixpkgs.overlays = [ 50 | # (import ./nvidia-container-toolkit-overlay.nix) 51 | (import ./runc-overlay.nix) 52 | (import ./overlay.nix) 53 | ] ++ (if config.imalison.nixOverlay.enable then [ inputs.nix.overlays.default ] else []); 54 | 55 | # Allow all the things 56 | nixpkgs.config.allowUnfree = true; 57 | }; 58 | } 59 | -------------------------------------------------------------------------------- /nixos/nixified.ai.nix: -------------------------------------------------------------------------------- 1 | { inputs, config, specialArgs, ... }: 2 | specialArgs.makeEnable config "myModules.nixified-ai" false { 3 | imports = [ 4 | inputs.nixified-ai.nixosModules.comfyui 5 | ]; 6 | 7 | services.comfyui = { 8 | enable = true; 9 | host = "0.0.0.0"; 10 | }; 11 | } 12 | -------------------------------------------------------------------------------- /nixos/notification-sound.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/colonelpanic8/dotfiles/a244ee2223c0b49c3527549e2b68cffaa42b598c/nixos/notification-sound.wav -------------------------------------------------------------------------------- /nixos/nvidia.nix: -------------------------------------------------------------------------------- 1 | { config, pkgs, makeEnable, lib, ... }: 2 | 3 | makeEnable config "myModules.nvidia" false { 4 | environment.systemPackages = with pkgs; [ 5 | nvidia-container-toolkit 6 | nvidia-container-toolkit.tools 7 | ]; 8 | hardware.nvidia-container-toolkit = { 9 | enable = true; 10 | mount-nvidia-executables = true; 11 | # additionalEdit = '' 12 | # ${lib.getExe pkgs.jq} ' 13 | # .devices |= map( 14 | # .containerEdits.hooks |= map(select(.args | index("nvidia-cdi-hook") < 0)) 15 | # )' | ${lib.getExe pkgs.jq} '.containerEdits.hooks |= map(select(.args | index("nvidia-cdi-hook") < 0 ))' ''; 16 | }; 17 | hardware.nvidia.open = true; 18 | hardware.graphics.enable32Bit = true; 19 | hardware.graphics.extraPackages = [ config.boot.kernelPackages.nvidia_x11.out ]; 20 | hardware.graphics.extraPackages32 = [ config.boot.kernelPackages.nvidia_x11.lib32 ]; 21 | services.xserver = { 22 | videoDrivers = [ "nvidia" ]; 23 | }; 24 | # nixpkgs.config.cudaSupport = true; 25 | } 26 | -------------------------------------------------------------------------------- /nixos/options.nix: -------------------------------------------------------------------------------- 1 | { lib, ... }: { 2 | options = { 3 | myModules.xmonad.picom.vSync.enable = lib.mkOption { 4 | default = true; 5 | type = lib.types.bool; 6 | }; 7 | }; 8 | } 9 | -------------------------------------------------------------------------------- /nixos/plasma.nix: -------------------------------------------------------------------------------- 1 | { pkgs, config, makeEnable, ... }: 2 | makeEnable config "myModules.plasma" true { 3 | services.accounts-daemon.enable = true; 4 | services.displayManager.sddm = { 5 | enable = true; 6 | settings = { 7 | Users = { 8 | # Show a maximum number of users 9 | MaximumUid = 60000; 10 | MinimumUid = 1000; 11 | # Enable user icons 12 | RememberLastUser = true; 13 | }; 14 | }; 15 | extraPackages = with pkgs; [ 16 | # sddm-astronaut 17 | ]; 18 | }; 19 | services.xserver = { 20 | desktopManager.plasma6.enable = true; 21 | }; 22 | } 23 | -------------------------------------------------------------------------------- /nixos/postgres.nix: -------------------------------------------------------------------------------- 1 | { pkgs, config, makeEnable, realUsers, ... }: 2 | makeEnable config "myModules.postgres" true { 3 | services.postgresql = { 4 | enable = true; 5 | package = pkgs.postgresql_15; 6 | ensureDatabases = [ "railbird" "public" ]; 7 | authentication = pkgs.lib.mkOverride 10 '' 8 | #type database DBuser CIDR-ADDRESS auth-method 9 | local all all trust 10 | host all all 0.0.0.0/0 trust 11 | host all all ::1/128 trust 12 | ''; 13 | ensureUsers = map (username: { 14 | name = username; 15 | ensureClauses = { 16 | superuser = true; 17 | createrole = true; 18 | createdb = true; 19 | }; 20 | }) realUsers; 21 | # initialScript = pkgs.writeText "init-sql-script" '' 22 | # CREATE DATABASE IF NOT EXISTS railbird; 23 | # \c railbird 24 | # CREATE SCHEMA IF NOT EXISTS railbird; 25 | # ''; 26 | }; 27 | services.pgadmin = { 28 | enable = false; 29 | initialEmail = "IvanMalison@gmail.com"; 30 | initialPasswordFile = (builtins.toFile "password" "This is the content of the file."); 31 | }; 32 | } 33 | -------------------------------------------------------------------------------- /nixos/rabbitmq.nix: -------------------------------------------------------------------------------- 1 | { pkgs, config, makeEnable, realUsers, ... }: 2 | makeEnable config "myModules.rabbitmq" false { 3 | services.rabbitmq = { 4 | enable = true; 5 | }; 6 | } 7 | -------------------------------------------------------------------------------- /nixos/railbird-kubernetes.crt: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIIELTCCApWgAwIBAgIRALNxOT7J7N/eK6edp9LbKAIwDQYJKoZIhvcNAQELBQAw 3 | LzEtMCsGA1UEAxMkM2I2N2M2NzgtNzI5My00YTIzLTg3ZWItY2NiMTZjYWFkMzFm 4 | MCAXDTIzMTIyOTE5NTQ0MloYDzIwNTMxMjIxMjA1NDQyWjAvMS0wKwYDVQQDEyQz 5 | YjY3YzY3OC03MjkzLTRhMjMtODdlYi1jY2IxNmNhYWQzMWYwggGiMA0GCSqGSIb3 6 | DQEBAQUAA4IBjwAwggGKAoIBgQCUYUuTrpDbwUS2B3SYUoa7LI5mi8NNr0lDe1w4 7 | 3yPpVnu6ubvnTNm2j/v88HYwEjlppEg4HjhP7YEJ8gsGdgUCpIaPWTpifVmA7E4o 8 | 2DbJDiePkkUGkNL0whCClOOcO0hyxdk9Pol5wRzci0l6zSalE6DB4rJrmB5Ppl/A 9 | t2KAVVqpwbynmbijr4yZh7Bp7LfaIrFthlv2ZPEjLfPLz7YthBw9/iUt94mLMyWZ 10 | BpygA5y/CocQQnnFMnU1o0eUd37YL7zErfIxx/AmL10Sq0qdFXiYOJJqubURbdS8 11 | DZ6dyHdX+UlxPls2Rlx9nDaiNGFJdzqHJzDdOlzN3kkdDQoO8xUdH9ekFU7rOwkP 12 | 5NpubSwrd1FOGHh+EknugnEQD4Oip/YQ7IUj3Afm5Ag2la9k4WJRgjACbkQ2+k9I 13 | sFmPmmMVHn9nepCMiYQMjX7ApZw0isDPeVK5EuQeImgu7uNoV8R5VwG0XoBCXz4S 14 | UqYv11uEsMqFu07Zwlznsxnm0uECAwEAAaNCMEAwDgYDVR0PAQH/BAQDAgIEMA8G 15 | A1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFI73GznmeECJOdxJAEzmjhYgGVKtMA0G 16 | CSqGSIb3DQEBCwUAA4IBgQAm19zlm3WVePflA6Zh/FxvE8MirrJF6jmJzRrBCEM5 17 | DwkSmY3dvONqCYeeNb4+xWXWQ8eVKVlPdkoW3V7H5xnJ63dXRNN2lQ3JpSTG3+yP 18 | Omp6XGY9mmatdHwyV7N4h10aKEWAuRhy148sdJZLYj0LbR42pCVYhEP4D3Qj7KjN 19 | PJe+cR8NSpiYmDH5y88Jqubztj5NVcDj/iN9h/7/GajbU6lCgN/SxZgi9cNGjxSb 20 | JHFHE2Mp3z9sjsieTXMplLqK045TQ2IBqnJyMdKkvSNkRUCbz2yXdiIOKtvU4ly0 21 | h884z9P5JQ9bxe+6cwYC4ky3G5WYMn++RUsuCk4ScsrbZtM9jpKnz/TygMdVTC5w 22 | Siq6OHKtAnh8Ax1LEKicg9FLd6ODxR3OVKu+fUPV4XHAWJnmvElGlivjneHiE+OL 23 | dzgb/CfBEGHYBVc2PDIhwBmUdoEZ/t3UjvmSI46ZblYpWodJvLFwge2HxSivRlLW 24 | Uh/oPWX5N/CH9I34HTAhI48= 25 | -----END CERTIFICATE----- 26 | -------------------------------------------------------------------------------- /nixos/raspberry-pi.nix: -------------------------------------------------------------------------------- 1 | { config, pkgs, inputs, makeEnable, ... }: 2 | 3 | makeEnable config "myModules.raspberry-pi" false { 4 | imports = [ 5 | inputs.nixos-hardware.nixosModules.raspberry-pi-4 6 | ]; 7 | # These are needed to allow hardware acceleration again 8 | # https://github.com/NixOS/nixos-hardware/issues/631 9 | boot.kernelParams = [ "kunit.enable=0" ]; 10 | hardware.deviceTree.filter = "bcm2711-rpi-4*.dtb"; 11 | hardware.raspberry-pi."4".fkms-3d.enable = true; 12 | # hardware.raspberry-pi."4".audio.enable = true; 13 | 14 | boot = { 15 | initrd.systemd.tpm2.enable = false; 16 | initrd.availableKernelModules = [ 17 | "usbhid" 18 | "usb_storage" 19 | "vc4" 20 | "pcie_brcmstb" # required for the pcie bus to work 21 | "reset-raspberrypi" # required for vl805 firmware to load 22 | ]; 23 | 24 | loader = { 25 | grub.enable = false; 26 | generic-extlinux-compatible.enable = true; 27 | }; 28 | }; 29 | 30 | boot.extraModulePackages = [ ]; 31 | 32 | hardware.enableRedistributableFirmware = true; 33 | 34 | # networking.useDHCP = true; 35 | networking.interfaces.eth0.useDHCP = true; 36 | networking.interfaces.wlan0.useDHCP = true; 37 | 38 | powerManagement.cpuFreqGovernor = "ondemand"; 39 | 40 | environment.systemPackages = with pkgs; [ 41 | raspberrypi-eeprom 42 | ]; 43 | 44 | environment = { 45 | # This allows alacritty to run 46 | extraInit = '' 47 | export LIBGL_ALWAYS_SOFTWARE=1 48 | ''; 49 | }; 50 | 51 | nix = { 52 | # auto-optimise-store = true; 53 | gc = { 54 | automatic = true; 55 | dates = "weekly"; 56 | options = "--delete-older-than 30d"; 57 | }; 58 | }; 59 | } 60 | -------------------------------------------------------------------------------- /nixos/runc-overlay.nix: -------------------------------------------------------------------------------- 1 | final: prev: { 2 | runc = prev.runc.overrideAttrs (_: { 3 | src = prev.fetchFromGitHub { 4 | repo = "runc"; 5 | owner = "colonelpanic8"; 6 | rev = "4b809881415e99247d8dea2eda862491dbc9acd2"; 7 | sha256 = "sha256-XOslGNu+ix52938SnnhmWKUaZaTQx9+/o74tnAjmo3I="; 8 | }; 9 | }); 10 | } 11 | -------------------------------------------------------------------------------- /nixos/secrets.nix: -------------------------------------------------------------------------------- 1 | { inputs, pkgs, ... }: { 2 | home-manager.users.imalison = ({ config, ... }: { 3 | imports = [ inputs.agenix.homeManagerModules.default ]; 4 | age.identityPaths = [ "${config.home.homeDirectory}/.ssh/id_ed25519" ]; 5 | home.packages = [ 6 | inputs.agenix.packages."${pkgs.system}".default 7 | ]; 8 | age.secrets.gpg-keys.file = ./secrets/gpg-keys.age; 9 | age.secrets.gpg-passphrase.file = ./secrets/gpg-passphrase.age; 10 | 11 | systemd.user.services.import-gpg-key = { 12 | Unit = { 13 | Description = "Import GPG private key"; 14 | After = [ "agenix.service" ]; 15 | # 3 total retries 16 | StartLimitIntervalSec = 0; 17 | StartLimitBurst = 3; 18 | }; 19 | 20 | Install.WantedBy = [ "default.target" ]; 21 | Service = { 22 | Type = "oneshot"; 23 | RestartSec = 5; 24 | Restart = "onfailure"; 25 | ExecStart = 26 | let replace = builtins.replaceStrings [ "$XDG_RUNTIME_DIR" ] [ "\${XDG_RUNTIME_DIR}" ]; 27 | path = replace config.age.secrets.gpg-keys.path; 28 | passphrasePath = replace config.age.secrets.gpg-passphrase.path; 29 | in "${pkgs.gnupg}/bin/gpg --pinentry-mode loopback --passphrase-file ${passphrasePath} --import ${path}"; 30 | }; 31 | }; 32 | }); 33 | } 34 | -------------------------------------------------------------------------------- /nixos/secrets/1896Folsom-k3s-token.age: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/colonelpanic8/dotfiles/a244ee2223c0b49c3527549e2b68cffaa42b598c/nixos/secrets/1896Folsom-k3s-token.age -------------------------------------------------------------------------------- /nixos/secrets/api_service_account_key.json.age: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/colonelpanic8/dotfiles/a244ee2223c0b49c3527549e2b68cffaa42b598c/nixos/secrets/api_service_account_key.json.age -------------------------------------------------------------------------------- /nixos/secrets/cache-priv-key.pem.age: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/colonelpanic8/dotfiles/a244ee2223c0b49c3527549e2b68cffaa42b598c/nixos/secrets/cache-priv-key.pem.age -------------------------------------------------------------------------------- /nixos/secrets/cache-pub-key.pem: -------------------------------------------------------------------------------- 1 | cache.railbird.ai:KhnvcouxtIU2zxUcjJsm4bUK3o1S3p8xMf9qfZGF7/A= -------------------------------------------------------------------------------- /nixos/secrets/discourse-admin-password.age: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/colonelpanic8/dotfiles/a244ee2223c0b49c3527549e2b68cffaa42b598c/nixos/secrets/discourse-admin-password.age -------------------------------------------------------------------------------- /nixos/secrets/discourse-secret-key-base.age: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/colonelpanic8/dotfiles/a244ee2223c0b49c3527549e2b68cffaa42b598c/nixos/secrets/discourse-secret-key-base.age -------------------------------------------------------------------------------- /nixos/secrets/gitea-runner-token.adele.age: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/colonelpanic8/dotfiles/a244ee2223c0b49c3527549e2b68cffaa42b598c/nixos/secrets/gitea-runner-token.adele.age -------------------------------------------------------------------------------- /nixos/secrets/gitea-runner-token.age: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/colonelpanic8/dotfiles/a244ee2223c0b49c3527549e2b68cffaa42b598c/nixos/secrets/gitea-runner-token.age -------------------------------------------------------------------------------- /nixos/secrets/gitea-runner-token.biskcomp.age: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/colonelpanic8/dotfiles/a244ee2223c0b49c3527549e2b68cffaa42b598c/nixos/secrets/gitea-runner-token.biskcomp.age -------------------------------------------------------------------------------- /nixos/secrets/gitea-runner-token.jimi-hendnix.age: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/colonelpanic8/dotfiles/a244ee2223c0b49c3527549e2b68cffaa42b598c/nixos/secrets/gitea-runner-token.jimi-hendnix.age -------------------------------------------------------------------------------- /nixos/secrets/gitea-runner-token.mac-demarco-mini.age: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/colonelpanic8/dotfiles/a244ee2223c0b49c3527549e2b68cffaa42b598c/nixos/secrets/gitea-runner-token.mac-demarco-mini.age -------------------------------------------------------------------------------- /nixos/secrets/gitea-runner-token.nixquick.age: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/colonelpanic8/dotfiles/a244ee2223c0b49c3527549e2b68cffaa42b598c/nixos/secrets/gitea-runner-token.nixquick.age -------------------------------------------------------------------------------- /nixos/secrets/gitea-runner-token.railbird-sf.age: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/colonelpanic8/dotfiles/a244ee2223c0b49c3527549e2b68cffaa42b598c/nixos/secrets/gitea-runner-token.railbird-sf.age -------------------------------------------------------------------------------- /nixos/secrets/gitea-runner-token.ryzen-shine.age: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/colonelpanic8/dotfiles/a244ee2223c0b49c3527549e2b68cffaa42b598c/nixos/secrets/gitea-runner-token.ryzen-shine.age -------------------------------------------------------------------------------- /nixos/secrets/google-assistant-integration-service-key.age: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/colonelpanic8/dotfiles/a244ee2223c0b49c3527549e2b68cffaa42b598c/nixos/secrets/google-assistant-integration-service-key.age -------------------------------------------------------------------------------- /nixos/secrets/gpg-keys.age: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/colonelpanic8/dotfiles/a244ee2223c0b49c3527549e2b68cffaa42b598c/nixos/secrets/gpg-keys.age -------------------------------------------------------------------------------- /nixos/secrets/gpg-passphrase.age: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/colonelpanic8/dotfiles/a244ee2223c0b49c3527549e2b68cffaa42b598c/nixos/secrets/gpg-passphrase.age -------------------------------------------------------------------------------- /nixos/secrets/k3s-registry.yaml.age: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/colonelpanic8/dotfiles/a244ee2223c0b49c3527549e2b68cffaa42b598c/nixos/secrets/k3s-registry.yaml.age -------------------------------------------------------------------------------- /nixos/secrets/nextcloud-admin.age: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/colonelpanic8/dotfiles/a244ee2223c0b49c3527549e2b68cffaa42b598c/nixos/secrets/nextcloud-admin.age -------------------------------------------------------------------------------- /nixos/secrets/org-api-passwords.age: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/colonelpanic8/dotfiles/a244ee2223c0b49c3527549e2b68cffaa42b598c/nixos/secrets/org-api-passwords.age -------------------------------------------------------------------------------- /nixos/secrets/ryzen-shine-kubernetes-token.age: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/colonelpanic8/dotfiles/a244ee2223c0b49c3527549e2b68cffaa42b598c/nixos/secrets/ryzen-shine-kubernetes-token.age -------------------------------------------------------------------------------- /nixos/secrets/secrets.nix: -------------------------------------------------------------------------------- 1 | let keys = (import ../keys.nix); 2 | in 3 | { 4 | "gpg-keys.age".publicKeys = keys.agenixKeys; 5 | "gpg-passphrase.age".publicKeys = keys.agenixKeys; 6 | "cache-priv-key.pem.age".publicKeys = keys.agenixKeys; 7 | "gitea-runner-token.biskcomp.age".publicKeys = keys.agenixKeys; 8 | "gitea-runner-token.ryzen-shine.age".publicKeys = keys.agenixKeys; 9 | "gitea-runner-token.nixquick.age".publicKeys = keys.agenixKeys; 10 | "gitea-runner-token.jimi-hendnix.age".publicKeys = keys.agenixKeys; 11 | "gitea-runner-token.adele.age".publicKeys = keys.agenixKeys; 12 | "gitea-runner-token.railbird-sf.age".publicKeys = keys.agenixKeys ++ keys.railbird-sf; 13 | "gitea-runner-token.mac-demarco-mini.age".publicKeys = keys.agenixKeys ++ keys.railbird-sf; 14 | "gitea-runner-token.age".publicKeys = keys.agenixKeys ++ keys.railbird-sf; 15 | "nextcloud-admin.age".publicKeys = keys.agenixKeys; 16 | "ryzen-shine-kubernetes-token.age".publicKeys = keys.agenixKeys; 17 | "1896Folsom-k3s-token.age".publicKeys = keys.agenixKeys ++ keys.railbird-sf; 18 | "api_service_account_key.json.age".publicKeys = keys.agenixKeys; 19 | "k3s-registry.yaml.age".publicKeys = keys.agenixKeys ++ keys.railbird-sf; 20 | "discourse-admin-password.age".publicKeys = keys.hostKeys; 21 | "discourse-secret-key-base.age".publicKeys = keys.hostKeys; 22 | "vaultwarden-environment-file.age".publicKeys = keys.hostKeys; 23 | "org-api-passwords.age".publicKeys = keys.hostKeys ++ keys.kanivanKeys; 24 | "google-assistant-integration-service-key.age".publicKeys = keys.hostKeys ++ keys.kanivanKeys; 25 | "zwave-js.json.age".publicKeys = keys.hostKeys ++ keys.kanivanKeys; 26 | } 27 | -------------------------------------------------------------------------------- /nixos/secrets/vaultwarden-environment-file.age: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/colonelpanic8/dotfiles/a244ee2223c0b49c3527549e2b68cffaa42b598c/nixos/secrets/vaultwarden-environment-file.age -------------------------------------------------------------------------------- /nixos/secrets/zwave-js.json.age: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/colonelpanic8/dotfiles/a244ee2223c0b49c3527549e2b68cffaa42b598c/nixos/secrets/zwave-js.json.age -------------------------------------------------------------------------------- /nixos/ssh.nix: -------------------------------------------------------------------------------- 1 | { pkgs, ... }: 2 | { 3 | # TODO: reenable 4 | # security.pam.sshAgentAuth.enable = true; 5 | services.avahi = { 6 | enable = true; 7 | nssmdns4 = true; 8 | nssmdns6 = true; 9 | publish = { 10 | enable = true; 11 | domain = true; 12 | workstation = true; 13 | userServices = true; 14 | addresses = true; 15 | hinfo = true; 16 | }; 17 | extraServiceFiles = { 18 | ssh = "''${pkgs.avahi}/etc/avahi/services/ssh.service"; 19 | }; 20 | }; 21 | 22 | services.openssh = { 23 | enable = true; 24 | settings = { 25 | AllowAgentForwarding = true; 26 | AllowTcpForwarding = true; 27 | PasswordAuthentication = false; 28 | X11Forwarding = true; 29 | }; 30 | }; 31 | 32 | programs.ssh = { 33 | forwardX11 = false; 34 | setXAuthLocation = true; 35 | knownHosts = { 36 | github = { 37 | hostNames = ["github.com"]; 38 | publicKey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIOMqqnkVzrm0SdG6UOoqKLsabgH5C9okWi0dh2l9GKJl"; 39 | }; 40 | gitlab = { 41 | hostNames = ["gitlab.com"]; 42 | publicKey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIAfuCHKVTjquxvt6CM6tdG4SLp1Btn/nOeHHE5UOzRdf"; 43 | }; 44 | }; 45 | }; 46 | } 47 | -------------------------------------------------------------------------------- /nixos/tts.nix: -------------------------------------------------------------------------------- 1 | { config, makeEnable, ... }: 2 | makeEnable config "myModules.tts" false { 3 | services.tts.servers.coqui = { 4 | enable = true; 5 | useCuda = false; 6 | port = 11115; 7 | }; 8 | } 9 | -------------------------------------------------------------------------------- /nixos/user-specific.nix: -------------------------------------------------------------------------------- 1 | { 2 | home-manager.users.micah = {pkgs, ...}: { 3 | home.packages = [ 4 | pkgs.neovim 5 | ]; 6 | }; 7 | } 8 | -------------------------------------------------------------------------------- /nixos/vscode.nix: -------------------------------------------------------------------------------- 1 | { inputs, config, makeEnable, forEachUser, ... }: 2 | makeEnable config "myModules.vscode" true { 3 | home-manager.users = forEachUser { 4 | imports = [inputs.vscode-server.homeModules.default]; 5 | services.vscode-server.enable = true; 6 | }; 7 | } 8 | -------------------------------------------------------------------------------- /nixos/wsl.nix: -------------------------------------------------------------------------------- 1 | { config, inputs, pkgs, makeEnable, ... }: 2 | makeEnable config "myModules.wsl" false { 3 | imports = [ 4 | inputs.nixos-wsl.nixosModules.wsl 5 | ]; 6 | 7 | myModules.base.enable = false; 8 | myModules.desktop.enable = false; 9 | myModules.xmonad.enable = false; 10 | myModules.plasma.enable = false; 11 | 12 | services.tzupdate.enable = true; 13 | 14 | wsl.wslConf.automount.root = "/mnt"; 15 | 16 | wsl = { 17 | enable = true; 18 | startMenuLaunchers = true; 19 | nativeSystemd = true; 20 | }; 21 | } 22 | -------------------------------------------------------------------------------- /nixos/wyoming.nix: -------------------------------------------------------------------------------- 1 | { pkgs, config, makeEnable, ... }: 2 | makeEnable config "myModules.wyoming" false { 3 | environment.systemPackages = with pkgs; [ 4 | alsa-utils 5 | ]; 6 | systemd.services."wyoming-satellite".path = with pkgs; [pipewire pulseaudio]; 7 | services.wyoming = { 8 | satellite = { 9 | enable = true; 10 | user = "imalison"; 11 | uri = "tcp://0.0.0.0:10700"; 12 | microphone = { 13 | # command = "pw-record --channels 1 -"; 14 | command = "pacat --record --raw --format=s16le --channels=1 --rate=16000"; 15 | }; 16 | extraArgs = [ 17 | "--wake-uri=tcp://0.0.0.0:10400" 18 | "--wake-word-name=ok_nabu" 19 | "--awake-wav=${./notification-sound.wav}" 20 | ]; 21 | }; 22 | openwakeword = { 23 | enable = true; 24 | preloadModels = ["alexa" "ok_nabu" "hey_rhasspy"]; 25 | uri = "tcp://0.0.0.0:10400"; 26 | }; 27 | 28 | faster-whisper.servers."${config.networking.hostName}-whisper" = { 29 | enable = true; 30 | uri = "tcp://0.0.0.0:10300"; 31 | device = "auto"; 32 | language = "en"; 33 | model = "turbo"; 34 | }; 35 | 36 | piper.servers."${config.networking.hostName}-piper" = { 37 | enable = true; 38 | uri = "tcp://0.0.0.0:10200"; 39 | voice = "en-us-ryan-medium"; 40 | }; 41 | }; 42 | } 43 | -------------------------------------------------------------------------------- /rcm-link.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env sh 2 | 3 | export THIS_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" 4 | export DOTFILES_DIR="$(readlink -f $THIS_DIR/dotfiles)" 5 | 6 | echo $DOTFILES_DIR 7 | rcup -d $DOTFILES_DIR -S "emacs.d" -S "config/*" -S "lib" -S xkb 8 | --------------------------------------------------------------------------------