Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/lepisma/cfg
Config files
https://github.com/lepisma/cfg
dotfiles fish-configuration stumpwm
Last synced: 1 day ago
JSON representation
Config files
- Host: GitHub
- URL: https://github.com/lepisma/cfg
- Owner: lepisma
- Created: 2015-08-24T22:05:20.000Z (over 9 years ago)
- Default Branch: master
- Last Pushed: 2024-12-13T11:20:33.000Z (14 days ago)
- Last Synced: 2024-12-13T12:26:28.245Z (14 days ago)
- Topics: dotfiles, fish-configuration, stumpwm
- Language: Shell
- Homepage:
- Size: 23.4 MB
- Stars: 68
- Watchers: 5
- Forks: 10
- Open Issues: 0
-
Metadata Files:
- Readme: README.org
Awesome Lists containing this project
README
#+TITLE: cfg
#+AUTHOR: Abhinav Tushar#+PROPERTY: header-args :exports both :results output
Configuration scripts and notes in literate style configuration using Org-Babel.
The configurations kept here are for the following machines:1. ~euclid-red~ that runs Manjaro with StumpWM (X). This is primarily a keyboard
driven system (Legion Y720) and stays at my home workspace.
2. ~euclid-blue~ that runs Manjaro with GNOME (Wayland). This is a convertible
laptop (HP Spectre x360) that I use to move around, read, and take notes.
3. ~euclid-black~ is my Android based cell phone.
4. ~euclid-white~ is an M1 Macbook Air (2020) from my current workplace.
5. ~euclid-silver~ is a Raspberry PI 4 with Home Assistant OS used for home
automation and other home network applications.Name prefix has a [[https://en.wikipedia.org/wiki/Pi_(film)][historical reason]]. There are a few other cloud machines other
than these. The repository itself has a few other items and assets that might
not be connected with the process in this org file.* Basic packages & shell setup
My current OS is Manjaro across almost all Linux systems so this stage is common
across my two main machines.#+BEGIN_SRC bash
uname -a
#+END_SRC#+RESULTS:
: Linux euclid-red 5.15.89-1-MANJARO #1 SMP PREEMPT Wed Jan 18 20:37:11 UTC 2023 x86_64 GNU/LinuxInstall ~yay~ before going ahead:
#+begin_src bash :dir /sudo::
pacman -S yay
#+end_srcFor blue:
#+BEGIN_SRC bash
yay -S $(grep -vE "^\s*#" ./packages/manjaro.euclid-blue | tr "\n" " ")
#+END_SRCFor red:
#+BEGIN_SRC bash
yay -S $(grep -vE "^\s*#" ./packages/manjaro.euclid-red | tr "\n" " ")
#+END_SRCNow that ~fish~ is installed, we will set it as the default shell.
#+BEGIN_SRC bash
chsh -s $(which fish)
#+END_SRCInstall fish packages
#+begin_src shell
# Install fisher
curl -sL https://git.io/fisher | source && fisher install jorgebucaran/fisherfor p in (cat ./fish/.config/fish/fishfile)
fisher install $p
end
#+end_src#+BEGIN_SRC shell
stow -t ~/ fish
stow -t ~/ git
stow -t ~/ scripts
#+END_SRC* Window Management
All of these are for the main machine running StumpWM.#+BEGIN_SRC shell
stow -t ~/ stumpwm
stow -t ~/ polybar
stow -t ~/ dunst
stow -t ~/ picom
stow -t ~/ redshift
#+END_SRC** Rofi
Use theme set up from [[https://github.com/adi1090x/rofi][here]] and the following colors.#+begin_src
/* colors */
,* {
al: #00000000;
bg: #2E3440ff;
se: #374C6Bff;
fg: #D8DEE9cc;
ac: #81A1C1ff;
red: #434C5Eff;
green: #475C6Bff;
yellow: #8a9899ff;
blue: #42A5F5ff;
purple: #B48EADff;
cyan: #4DD0E1ff;
}
#+end_src** Stumpwm
Need two sbcl setups. The one from main repo is going to run stumpwm with swank.
The following snip setups that. Needs quicklisp:#+BEGIN_SRC shell
sbcl --eval "(ql:quickload '(clx-truetype swank stumpwm cl-strings inferior-shell))" --quit
mkdir -p ~/stumpwm
#+END_SRCClone the repo and use make from there on
#+BEGIN_SRC shell :dir ~/stumpwm/
git clone https://github.com/stumpwm/stumpwm
# Should checkout to some version
git clone https://github.com/stumpwm/stumpwm-contrib ./contrib
#+END_SRCHere goes the xinitrc
#+BEGIN_SRC shell :tangle ~/.xinitrc
#!/bin/shxrandr --setprovideroutputsource modesetting NVIDIA-0
xrandr --auto
exec stumpwm
#+END_SRC#+BEGIN_SRC shell
chmod +x ~/.xinitrc
#+END_SRCI might also need to disable the default display manager. See [[https://askubuntu.com/a/882436][this]].
There might be a font loading issue which is fixed by ~(xft:cache-fonts)~.
* Fonts
Few fonts are already installed when I install the basic packages. Rest are
listed here.** Custom Iosevka
#+BEGIN_SRC shell :dir /sudo::
git clone [email protected]:lepisma/iosevka-lepisma /tmp/iosevka-lepisma
mkdir /usr/share/fonts/iosevka/
mv /tmp/iosevka-lepisma/ttf/patched/*ttf /usr/share/fonts/iosevka/
#+END_SRCOverride medium fonts
#+BEGIN_SRC shell :dir /sudo::/usr/share/fonts
yes | cp iosevka/iosevka-lepisma-regular.ttf iosevka/iosevka-lepisma-medium.ttf
yes | cp iosevka/iosevka-lepisma-italic.ttf iosevka/iosevka-lepisma-mediumitalic.ttf
yes | cp iosevka/iosevka-lepisma-oblique.ttf iosevka/iosevka-lepisma-mediumoblique.ttffc-cache -f
#+END_SRC** Et book
#+BEGIN_SRC shell :dir /sudo::
git clone [email protected]:edwardtufte/et-book /tmp/et-book
mkdir /usr/share/fonts/et-book/
mv /tmp/et-book/et-book/*/*.ttf /usr/share/fonts/et-book/fc-cache -f
#+END_SRC** All the Icons
#+BEGIN_SRC elisp
(require 'all-the-icons)
(all-the-icons-install-fonts)
#+END_SRC* Terminal
I use Konsole as the terminal emulator across machines.#+BEGIN_SRC init :tangle ~/.local/share/konsole/lepisma.profile
[Appearance]
AntiAliasFonts=true
BoldIntense=true
ColorScheme=Nordic
Font=Iosevka,12,-1,5,50,0,0,0,0,0
LineSpacing=4
UseFontLineChararacters=false[Cursor Options]
CursorShape=1[General]
Command=/usr/bin/fish
DimWhenInactive=false
Directory=/home/lepisma/Desktop
LocalTabTitleFormat=%d | %n
Name=lepisma
Parent=FALLBACK/
RemoteTabTitleFormat=%d | %n
TerminalCenter=false
TerminalMargin=10[Interaction Options]
AutoCopySelectedText=true[Scrolling]
HistoryMode=2
ScrollBarPosition=2[Terminal Features]
BlinkingCursorEnabled=true
UrlHintsModifiers=67108864
#+END_SRC#+BEGIN_SRC shell
cp ./konsole/Nordic.colorscheme ~/.local/share/konsole/Nordic.colorscheme
#+END_SRC* Languages
Programming language setup as needed. I only keep primary languages here and
rest as on-demand.** Python setup
First set up [[https://github.com/pyenv/pyenv][pyenv]].#+BEGIN_SRC shell
pip install -r ./packages/pip
#+END_SRCIPython init
#+BEGIN_SRC python :tangle ~/.ipython/profile_default/startup/00-auto.py
get_ipython().magic("%load_ext autoreload")
get_ipython().magic("%autoreload 2")
#+END_SRC** Node
I use node primarily for a few CLI tools listed [[./packages/node][here]].
** ~euclid-red~
On this machine, I use a combination of offlineimap and mu4e.#+BEGIN_SRC shell
stow -t ~/ offlineimap
#+END_SRCCreate ~.authinfo.gpg~ file in ~~/~ with two items like the following for each
account:#+begin_example
# -*- epa-file-encrypt-to: ("") -*-
machine imap.gmail.com name gmail-imap port 993 login <> password <> email <>
machine smtp.gmail.com name gmail-smtp port 465 login <> password <> email <>
#+end_example#+begin_src ini :tangle ~/.local/share/applications/compose-mail.desktop
[Desktop Entry]
Type=Application
Name=Compose Mail
Exec=/home/lepisma/bin/compose-mail %u
StartupNotify=false
MimeType=x-scheme-handler/mailto
#+end_src* Setup hardware
** Bluetooth sinks
Dumping commands. Need to enable bluetooth service and stuff.#+begin_src shell
pacmd list-sinks | grep -e 'name:' -e 'index:'
pacmd set-default-sink
>>>>>>> ce96b50 (add example for authinfo entry)
#+end_src** ~euclid-blue~
I have been using geary here and that works well.* Default Programs
As a common item, I have a script ~www~ that dispatches urls to the right browser.
That's supposed to be set as the primary web handler.#+BEGIN_SRC ini :tangle ~/.local/share/applications/www.desktop
[Desktop Entry]
Encoding=UTF-8
Version=1.0
Type=Application
NoDisplay=true
Exec=/home/lepisma/bin/www
Name=www
Comment=Browser dispatch
#+END_SRCOrg protocol for capturing literature nodes
#+begin_src ini :tangle ~/.local/share/applications/org-protocol.desktop
[Desktop Entry]
Name=Org-Protocol
Exec=emacsclient %u
Icon=emacs-icon
Type=Application
Terminal=false
MimeType=x-scheme-handler/org-protocol
#+end_src** ~euclid-red~
#+BEGIN_SRC shell
xdg-mime default feh.desktop image/jpeg
xdg-mime default feh.desktop image/png
xdg-mime default www.desktop x-scheme-handler/http
xdg-mime default www.desktop x-scheme-handler/https
xdg-mime default compose-mail.desktop x-scheme-handler/mailto
xdg-mime default org.kde.okular.desktop application/pdf
xdg-mime default org-protocol.desktop x-scheme-handler/org-protocolhandlr set inode/directory nautilus.desktop
handlr set .doc org.onlyoffice.desktopeditors.desktop
handlr set .docx org.onlyoffice.desktopeditors.desktop
#+END_SRC** ~euclid-blue~
I don't have much customization here and I let GNOME handle most of items.#+BEGIN_SRC shell
xdg-mime default www.desktop x-scheme-handler/http
xdg-mime default www.desktop x-scheme-handler/https
xdg-mime default org-protocol.desktop x-scheme-handler/org-protocol
#+END_SRC* Hardware
Hardware specific configurations or installation steps.** ~euclid-red~
*** Graphics Tablet
For Wacom One, run ~configure-tablet~.*** Touchpad
Two finger for right click.#+begin_src ini :tangle /sudo::/etc/X11/xorg.conf.d/99-synaptics-overrides.conf
Section "InputClass"
Identifier "touchpad overrides"
Driver "libinput"
MatchIsTouchpad "on"
Option "Tapping" "on"
Option "TappingButtonMap" "lrm"
EndSection
#+end_src*** Keyboards
Swap keys on laptop's main board.#+BEGIN_SRC ini :tangle ~/.Xmodmap
clear lock
clear control
keycode 66 = Control_L
add control = Control_L Control_R
#+END_SRC*** Macropad
Installed KMonad and set up [[./keyboard/kmonad.service][the service]] for macropad.*** Graphics Card
My laptop has Intel /and/ Nvidia card. I switch to just Nvidia drivers which works
well for me. Relevant portion for ~xinitrc~:#+BEGIN_SRC shell
# Goes above exec stump..
xrandr --setprovideroutputsource modesetting NVIDIA-0
xrandr --auto
#+END_SRC*** Streamdeck
Import config from ~~./streamdeck~.** ~euclid-blue~
*** Battery
Install ~tlp~ (already done in package installation), and enable the service.#+begin_src shell
systemctl enable tlp.service
systemctl start tlp.service
#+end_src*** Keyboard
Installed KMonad and set up [[./keyboard/kmonad.euclid-blue.service][this service]] for colemak-dh.*** Touch Scrolling
Firefox needs some configuration to enable intuitive scrolling in touchscreen
laptops. [[https://superuser.com/questions/1151161/enable-touch-scrolling-in-firefox][Here]] is a guide.