commit 11a2ce1c8b127d6d615b44a9f572f169f3993f7d
parent 497e80f231df764157f0a0fadfbb89faae30a6f9
Author: Jake Koroman <jakekoroman@proton.me>
Date: Wed, 18 Sep 2024 16:14:09 -0400
going to river/waybar.
Diffstat:
24 files changed, 564 insertions(+), 103 deletions(-)
diff --git a/.config/fish/config.fish b/.config/fish/config.fish
@@ -1,4 +1,5 @@
if status is-interactive
# Commands to run in interactive sessions can go here
fish_vi_key_bindings
+ set -g fish_greeting
end
diff --git a/.config/fish/fish_variables b/.config/fish/fish_variables
@@ -1,31 +1,42 @@
# This file contains fish universal variable definitions.
# VERSION: 3.0
SETUVAR __fish_initialized:3400
-SETUVAR fish_color_autosuggestion:brblack
-SETUVAR fish_color_cancel:\x2dr
-SETUVAR fish_color_command:blue
-SETUVAR fish_color_comment:red
+SETUVAR fish_color_autosuggestion:586e75
+SETUVAR fish_color_cancel:\x2d\x2dreverse
+SETUVAR fish_color_command:93a1a1
+SETUVAR fish_color_comment:586e75
SETUVAR fish_color_cwd:green
SETUVAR fish_color_cwd_root:red
-SETUVAR fish_color_end:green
-SETUVAR fish_color_error:brred
-SETUVAR fish_color_escape:brcyan
+SETUVAR fish_color_end:268bd2
+SETUVAR fish_color_error:dc322f
+SETUVAR fish_color_escape:00a6b2
SETUVAR fish_color_history_current:\x2d\x2dbold
SETUVAR fish_color_host:normal
-SETUVAR fish_color_host_remote:yellow
+SETUVAR fish_color_host_remote:\x1d
+SETUVAR fish_color_keyword:\x1d
+SETUVAR fish_color_match:\x2d\x2dbackground\x3dbrblue
SETUVAR fish_color_normal:normal
-SETUVAR fish_color_operator:brcyan
-SETUVAR fish_color_param:cyan
-SETUVAR fish_color_quote:yellow
-SETUVAR fish_color_redirection:cyan\x1e\x2d\x2dbold
-SETUVAR fish_color_search_match:bryellow\x1e\x2d\x2dbackground\x3dbrblack
+SETUVAR fish_color_operator:00a6b2
+SETUVAR fish_color_option:\x1d
+SETUVAR fish_color_param:839496
+SETUVAR fish_color_quote:657b83
+SETUVAR fish_color_redirection:6c71c4
+SETUVAR fish_color_search_match:bryellow\x1e\x2d\x2dbackground\x3dblack
SETUVAR fish_color_selection:white\x1e\x2d\x2dbold\x1e\x2d\x2dbackground\x3dbrblack
SETUVAR fish_color_status:red
SETUVAR fish_color_user:brgreen
SETUVAR fish_color_valid_path:\x2d\x2dunderline
SETUVAR fish_key_bindings:fish_vi_key_bindings
-SETUVAR fish_pager_color_completion:normal
-SETUVAR fish_pager_color_description:yellow\x1e\x2di
-SETUVAR fish_pager_color_prefix:normal\x1e\x2d\x2dbold\x1e\x2d\x2dunderline
+SETUVAR fish_pager_color_background:\x1d
+SETUVAR fish_pager_color_completion:B3A06D
+SETUVAR fish_pager_color_description:B3A06D
+SETUVAR fish_pager_color_prefix:cyan\x1e\x2d\x2dunderline
SETUVAR fish_pager_color_progress:brwhite\x1e\x2d\x2dbackground\x3dcyan
-SETUVAR fish_pager_color_selected_background:\x2dr
+SETUVAR fish_pager_color_secondary_background:\x1d
+SETUVAR fish_pager_color_secondary_completion:\x1d
+SETUVAR fish_pager_color_secondary_description:\x1d
+SETUVAR fish_pager_color_secondary_prefix:\x1d
+SETUVAR fish_pager_color_selected_background:\x2d\x2dbackground\x3dbrblack
+SETUVAR fish_pager_color_selected_completion:\x1d
+SETUVAR fish_pager_color_selected_description:\x1d
+SETUVAR fish_pager_color_selected_prefix:\x1d
diff --git a/.config/fish/functions/fish_prompt.fish b/.config/fish/functions/fish_prompt.fish
@@ -0,0 +1,31 @@
+function fish_prompt --description 'Write out the prompt'
+ set -l last_pipestatus $pipestatus
+ set -lx __fish_last_status $status # Export for __fish_print_pipestatus.
+ set -l normal (set_color normal)
+ set -q fish_color_status
+ or set -g fish_color_status red
+
+ # Color the prompt differently when we're root
+ set -l color_cwd $fish_color_cwd
+ set -l suffix '>'
+ if functions -q fish_is_root_user; and fish_is_root_user
+ if set -q fish_color_cwd_root
+ set color_cwd $fish_color_cwd_root
+ end
+ set suffix '#'
+ end
+
+ # Write pipestatus
+ # If the status was carried over (if no command is issued or if `set` leaves the status untouched), don't bold it.
+ set -l bold_flag --bold
+ set -q __fish_prompt_status_generation; or set -g __fish_prompt_status_generation $status_generation
+ if test $__fish_prompt_status_generation = $status_generation
+ set bold_flag
+ end
+ set __fish_prompt_status_generation $status_generation
+ set -l status_color (set_color $fish_color_status)
+ set -l statusb_color (set_color $bold_flag $fish_color_status)
+ set -l prompt_status (__fish_print_pipestatus "[" "]" "|" "$status_color" "$statusb_color" $last_pipestatus)
+
+ echo -n -s (prompt_login)' ' (set_color $color_cwd) (prompt_pwd) $normal (fish_vcs_prompt) $normal " "$prompt_status $suffix " "
+end
diff --git a/.config/river/init b/.config/river/init
@@ -0,0 +1,176 @@
+#!/bin/sh
+
+# This is the example configuration file for river.
+#
+# If you wish to edit this, you will probably want to copy it to
+# $XDG_CONFIG_HOME/river/init or $HOME/.config/river/init first.
+#
+# See the river(1), riverctl(1), and rivertile(1) man pages for complete
+# documentation.
+
+# Note: the "Super" modifier is also known as Logo, GUI, Windows, Mod4, etc.
+
+riverctl map normal Super Return spawn $TERMINAL
+riverctl map normal Super P spawn fuzzel
+riverctl map normal Super E spawn 'emacsclient -c -a "emacs"'
+riverctl map normal Super Delete spawn myswaylock
+riverctl map normal Super+Shift C close
+riverctl map normal Super+Control Q exit
+riverctl map normal Super R spawn rdpmenu
+riverctl map normal Super Slash spawn bookmarks
+riverctl map normal Super S spawn 'wayshot -s "$(slurp)" --stdout | wl-copy'
+riverctl map normal Super+Shift S spawn 'wayshot -s "$(slurp)" --stdout | swappy -f -'
+
+# Super+J and Super+K to focus the next/previous view in the layout stack
+riverctl map normal Super J focus-view next
+riverctl map normal Super K focus-view previous
+
+# Super+Shift+J and Super+Shift+K to swap the focused view with the next/previous
+# view in the layout stack
+riverctl map normal Super+Shift J swap next
+riverctl map normal Super+Shift K swap previous
+
+# Super+Period and Super+Comma to focus the next/previous output
+riverctl map normal Super Period focus-output next
+riverctl map normal Super Comma focus-output previous
+
+# Super+Shift+{Period,Comma} to send the focused view to the next/previous output
+riverctl map normal Super+Shift Period send-to-output next
+riverctl map normal Super+Shift Comma send-to-output previous
+
+# Super+Shift+Return to bump the focused view to the top of the layout stack
+riverctl map normal Super+Shift Return zoom
+
+# Super+H and Super+L to decrease/increase the main ratio of rivertile(1)
+riverctl map normal Super H send-layout-cmd rivertile "main-ratio -0.05"
+riverctl map normal Super L send-layout-cmd rivertile "main-ratio +0.05"
+
+# Super+Shift+H and Super+Shift+L to increment/decrement the main count of rivertile(1)
+riverctl map normal Super+Shift H send-layout-cmd rivertile "main-count +1"
+riverctl map normal Super+Shift L send-layout-cmd rivertile "main-count -1"
+
+# Super+Alt+{H,J,K,L} to move views
+riverctl map normal Super+Alt H move left 100
+riverctl map normal Super+Alt J move down 100
+riverctl map normal Super+Alt K move up 100
+riverctl map normal Super+Alt L move right 100
+
+# Super+Alt+Control+{H,J,K,L} to snap views to screen edges
+riverctl map normal Super+Alt+Control H snap left
+riverctl map normal Super+Alt+Control J snap down
+riverctl map normal Super+Alt+Control K snap up
+riverctl map normal Super+Alt+Control L snap right
+
+# Super+Alt+Shift+{H,J,K,L} to resize views
+riverctl map normal Super+Alt+Shift H resize horizontal -100
+riverctl map normal Super+Alt+Shift J resize vertical 100
+riverctl map normal Super+Alt+Shift K resize vertical -100
+riverctl map normal Super+Alt+Shift L resize horizontal 100
+
+# Super + Left Mouse Button to move views
+riverctl map-pointer normal Super BTN_LEFT move-view
+
+# Super + Right Mouse Button to resize views
+riverctl map-pointer normal Super BTN_RIGHT resize-view
+
+# Super + Middle Mouse Button to toggle float
+riverctl map-pointer normal Super BTN_MIDDLE toggle-float
+
+for i in $(seq 1 9)
+do
+ tags=$((1 << ($i - 1)))
+
+ # Super+[1-9] to focus tag [0-8]
+ riverctl map normal Super $i set-focused-tags $tags
+
+ # Super+Shift+[1-9] to tag focused view with tag [0-8]
+ riverctl map normal Super+Shift $i set-view-tags $tags
+
+ # Super+Control+[1-9] to toggle focus of tag [0-8]
+ riverctl map normal Super+Control $i toggle-focused-tags $tags
+
+ # Super+Shift+Control+[1-9] to toggle tag [0-8] of focused view
+ riverctl map normal Super+Shift+Control $i toggle-view-tags $tags
+done
+
+# Super+0 to focus all tags
+# Super+Shift+0 to tag focused view with all tags
+all_tags=$(((1 << 32) - 1))
+riverctl map normal Super 0 set-focused-tags $all_tags
+riverctl map normal Super+Shift 0 set-view-tags $all_tags
+
+# Super+Space to toggle float
+riverctl map normal Super Space toggle-float
+
+# Super+F to toggle fullscreen
+riverctl map normal Super F toggle-fullscreen
+
+# Super+{Up,Right,Down,Left} to change layout orientation
+riverctl map normal Super Up send-layout-cmd rivertile "main-location top"
+riverctl map normal Super Right send-layout-cmd rivertile "main-location right"
+riverctl map normal Super Down send-layout-cmd rivertile "main-location bottom"
+riverctl map normal Super Left send-layout-cmd rivertile "main-location left"
+
+# Declare a passthrough mode. This mode has only a single mapping to return to
+# normal mode. This makes it useful for testing a nested wayland compositor
+riverctl declare-mode passthrough
+
+# Super+F11 to enter passthrough mode
+riverctl map normal Super F11 enter-mode passthrough
+
+# Super+F11 to return to normal mode
+riverctl map passthrough Super F11 enter-mode normal
+
+# Various media key mapping examples for both normal and locked mode which do
+# not have a modifier
+for mode in normal locked
+do
+ # Eject the optical drive (well if you still have one that is)
+ riverctl map $mode None XF86Eject spawn 'eject -T'
+
+ # Control pulse audio volume with pamixer (https://github.com/cdemoulins/pamixer)
+ riverctl map $mode None XF86AudioRaiseVolume spawn 'pamixer -i 5'
+ riverctl map $mode None XF86AudioLowerVolume spawn 'pamixer -d 5'
+ riverctl map $mode None XF86AudioMute spawn 'pamixer --toggle-mute'
+
+ # Control MPRIS aware media players with playerctl (https://github.com/altdesktop/playerctl)
+ riverctl map $mode None XF86AudioMedia spawn 'playerctl play-pause'
+ riverctl map $mode None XF86AudioPlay spawn 'playerctl play-pause'
+ riverctl map $mode None XF86AudioPrev spawn 'playerctl previous'
+ riverctl map $mode None XF86AudioNext spawn 'playerctl next'
+
+ # Control screen backlight brightness with brightnessctl (https://github.com/Hummer12007/brightnessctl)
+ riverctl map $mode None XF86MonBrightnessUp spawn 'brightnessctl set +10%'
+ riverctl map $mode None XF86MonBrightnessDown spawn 'brightnessctl set 10%-'
+done
+
+# Set background and border color
+riverctl background-color 0x002b36
+riverctl border-color-focused 0x93a1a1
+riverctl border-color-unfocused 0x586e75
+
+# Set keyboard repeat rate
+riverctl set-repeat 50 300
+
+# Make all views with an app-id that starts with "float" and title "foo" start floating.
+riverctl rule-add -app-id 'float*' -title 'foo' float
+
+# Make all views with app-id "bar" and any title use client-side decorations
+riverctl rule-add -app-id "bar" csd
+
+riverctl rule-add -app-id emacs ssd
+riverctl rule-add -app-id LibreWolf ssd
+riverctl rule-add -app-id firefox-esr ssd
+riverctl rule-add -app-id steam ssd
+riverctl rule-add -app-id sakura ssd
+riverctl rule-add -app-id pavucontrol ssd
+
+riverctl focus-follows-cursor normal
+
+# Set the default layout generator to be rivertile and start it.
+# River will send the process group of the init executable SIGTERM on exit.
+riverctl default-layout rivertile
+rivertile -main-ratio 0.55 -view-padding 6 -outer-padding 6 &
+
+# source device specific options
+. ~/.config/river/device
diff --git a/.config/waybar/config.jsonc b/.config/waybar/config.jsonc
@@ -0,0 +1 @@
+/home/jake/dotfiles/device-specific/framework/waybar
+\ No newline at end of file
diff --git a/.config/waybar/style.css b/.config/waybar/style.css
@@ -0,0 +1,87 @@
+* {
+ border: none;
+ border-radius: 0;
+ font-family: Iosevka Nerd Font, Roboto, Helvetica, Arial, sans-serif;
+ font-size: 13px;
+ min-height: 0;
+}
+
+window#waybar {
+ background: rgba(43, 48, 59, 0.5);
+ border-bottom: 3px solid rgba(100, 114, 125, 0.5);
+ color: white;
+}
+
+tooltip {
+ background: rgba(43, 48, 59, 0.5);
+ border: 1px solid rgba(100, 114, 125, 0.5);
+}
+
+tooltip label {
+ color: white;
+}
+
+#tags button {
+ padding: 0 5px;
+ background: transparent;
+ color: white;
+ border-bottom: 3px solid transparent;
+}
+
+#tags button.occupied {
+ border-bottom: 3px solid green;
+}
+
+#tags button.focused {
+ background: #64727D;
+ border-bottom: 3px solid white;
+}
+
+#mode, #clock, #battery, #pulseaudio, #custom-mail {
+ padding: 0 10px;
+}
+
+#mode {
+ background: #64727D;
+ border-bottom: 3px solid white;
+}
+
+#clock {
+ background-color: #64727D;
+}
+
+#battery {
+ background-color: #ffffff;
+ color: black;
+}
+
+#battery.charging {
+ color: white;
+ background-color: #26A65B;
+}
+
+#pulseaudio {
+ background-color: #64727D;
+}
+
+#custom-mail {
+ background-color: #ffffff;
+ color: black;
+}
+
+@keyframes blink {
+ to {
+ background-color: #ffffff;
+ color: black;
+ }
+}
+
+#battery.warning:not(.charging) {
+ background: #f53c3c;
+ color: white;
+ animation-name: blink;
+ animation-duration: 0.5s;
+ animation-timing-function: steps(12);
+ animation-iteration-count: infinite;
+ animation-direction: alternate;
+}
diff --git a/.gitignore b/.gitignore
@@ -1,6 +1,7 @@
.config/sway/hardware-specific-config
.config/i3status/config
.config/foot/foot.ini
+.config/sakura/sakura.conf
.config/zsh/.zcompdump
.config/emacs/eln-cache
.config/emacs/local/device.el
@@ -10,6 +11,7 @@
.config/emacs/eshell
.config/emacs/auto-save-list/
.config/emacs/custom.el
+.config/river/device
dwl/*.o
dwl/dwl
dwlb/*.o
diff --git a/.zprofile b/.zprofile
@@ -24,11 +24,11 @@ export MANPATH=$MANPATH:$XDG_DATA_HOME/man
export EDITOR=nvim
export BROWSER=librewolf
-export TERMINAL=foot
+export TERMINAL=sakura
export PATH=$CARGO_HOME/bin:$HOME/.local/bin:$HOME/scripts:$PATH
export XDG_CURRENT_DESKTOP=wlroots
# [ $(tty) = "/dev/tty1" ] && [ -z $DISPLAY ] && startx
-[ $(tty) = "/dev/tty1" ] && [ -z $DISPLAY ] && dbus-run-session river
+[ $(tty) = "/dev/tty1" ] && [ -z $DISPLAY ] && river
diff --git a/README b/README
@@ -24,11 +24,14 @@ note that dwlb also includes 'device.h' in order to share font settings between
and the bar. i feel that will be useful if i ever need to spawn other programs with the same
font. but mainly i didn't want to symlink the same file twice ... it seemed "messier".
+the river config is very similiar to sway as it justs symlinks a file based on the deployed device
+and sources it in the main river init script. i want to explore writing the river config in something
+more interesting than a shell script.
+
symlinks are also utilized for the i3status, and emacs configs.
-the foot config is a bit more interesting as i dont want to maintain different configs for
-different hardware. there is a master foot.ini named template.ini located at ./shared-configs/foot/
-that has a marker {FOOT_FONT} that is replaced with appropiate font in the deploy script.
+the foot and sakura config is a bit more interesting as i dont want to maintain different configs for
+different hardware. there are master templates located in the ./shared-configs/ directory
+that have markers {FOOT_FONT} and {SAKURA_FONT} that are replaced with appropiate font in the deploy script.
-the trick used for foot's config can be easily replicated for other config files, i find this approach
-easier than Xresources as i dont have to rely on software implementing support for reading the Xresources db.
+maybe its better to just maintain seperate dotfiles for each device but this seemed like more fun :)
+\ No newline at end of file
diff --git a/deploy b/deploy
@@ -4,19 +4,23 @@
set -e
-USAGE="Usage: ./deploy [laptop|desktop]"
+USAGE="Usage: ./deploy [thinkpad|framework|desktop]"
if [ -z "$1" ]; then
echo $USAGE
exit
fi
-if [ $(echo "$1" | cut -c1-1) = "l" ]; then
+if [ $(echo "$1" | cut -c1-1) = "t" ]; then
hardware="laptop"
FOOT_FONT="Iosevka Nerd Font:size=14"
elif [ $(echo "$1" | cut -c1-1) = "d" ]; then
hardware="desktop"
FOOT_FONT="Iosevka Nerd Font:pixelsize=18"
+elif [ $(echo "$1" | cut -c1-1) = "f" ]; then
+ hardware="framework"
+ FOOT_FONT="Iosevka Nerd Font:pixelsize=14"
+ SAKURA_FONT="Iosevka Nerd Font 12"
else
echo $USAGE
exit
@@ -34,11 +38,16 @@ symlink_file "$(pwd)/device-specific/$hardware/hardware" "$(pwd)/.config/sway/ha
symlink_file "$(pwd)/device-specific/$hardware/i3status" "$(pwd)/.config/i3status/config"
symlink_file "$(pwd)/device-specific/$hardware/emacs.el" "$(pwd)/.config/emacs/local/device.el"
symlink_file "$(pwd)/device-specific/$hardware/dwl-hardware.h" "$(pwd)/dwl/device.h"
+symlink_file "$(pwd)/device-specific/$hardware/river" "$(pwd)/.config/river/device"
+symlink_file "$(pwd)/device-specific/$hardware/waybar" "$(pwd)/.config/waybar/config.jsonc"
mkdir -p "$(pwd)/.config/foot"
sed "s/{FOOT_FONT}/$FOOT_FONT/g" "$(pwd)/shared-configs/foot/template.ini" > "$(pwd)/.config/foot/foot.ini"
+mkdir -p "$(pwd)/.config/sakura"
+sed "s/{SAKURA_FONT}/$SAKURA_FONT/g" "$(pwd)/shared-configs/sakura/template.conf" > "$(pwd)/.config/sakura/sakura.conf"
+
stow -D . 2> /dev/null
stow .
-echo "Successfully deployed $hardware's configuration"
+echo "Successfully deployed "$hardware"'s configuration"
diff --git a/device-specific/framework/emacs.el b/device-specific/framework/emacs.el
@@ -0,0 +1,9 @@
+(setq my-font-name "Iosevka Nerd Font:pixelsize=")
+(setq my-font-size 16)
+(setq my-font-big-size 30)
+(setq my-font (concat my-font-name (number-to-string my-font-size)))
+
+(set-default 'truncate-lines t)
+(load-theme 'solarized t)
+(solarized-toggle-background-mode)
+(transparency 90)
diff --git a/device-specific/framework/river b/device-specific/framework/river
@@ -0,0 +1,11 @@
+# symlinked to ~/.config/river/device included at the bottom of rivers init script
+
+riverctl input pointer-2362-628-PIXA3854:00_093A:0274_Touchpad natural-scroll enabled
+riverctl keyboard-layout -options "caps:escape" us
+
+emacs --bg-daemon &
+gentoo-pipewire-launcher restart &
+kanshi &
+myswayidle &
+waybar &
+wbg ~/Pictures/wallpaper &
diff --git a/device-specific/framework/waybar b/device-specific/framework/waybar
@@ -0,0 +1,31 @@
+{
+ "layer": "top",
+ "modules-left": ["river/tags", "river/mode"],
+ "modules-center": ["river/window"],
+ "modules-right": ["custom/mail", "pulseaudio", "battery", "clock", "tray"],
+ "custom/mail": {
+ "exec": "checkmail 'koromanj@miltonhydro.com'"
+ },
+ "river/window": {
+ "max-length": 50
+ },
+ "tray": {
+ "icon-size": 20,
+ "padding": 10
+ },
+ "pulseaudio": {
+ "format": "{volume}% {icon}",
+ "format-muted": "{volume}% ",
+ "format-icons": {
+ "default": ["", ""]
+ },
+ "on-click": "pavucontrol"
+ },
+ "battery": {
+ "format": "{capacity}% {icon}",
+ "format-icons": ["", "", "", "", ""]
+ },
+ "clock": {
+ "format-alt": "{:%a, %d. %b %H:%M}"
+ }
+}
diff --git a/device-specific/laptop/emacs.el b/device-specific/laptop/emacs.el
@@ -1,9 +0,0 @@
-(setq my-font-name "Iosevka Nerd Font:pixelsize=")
-(setq my-font-size 18)
-(setq my-font-big-size 30)
-(setq my-font (concat my-font-name (number-to-string my-font-size)))
-
-(set-default 'truncate-lines t)
-(load-theme 'solarized t)
-(solarized-toggle-background-mode)
-(transparency 100)
diff --git a/device-specific/laptop/i3status b/device-specific/laptop/i3status
@@ -1,65 +0,0 @@
-# i3status configuration file.
-# see "man i3status" for documentation.
-
-# It is important that this file is edited as UTF-8.
-# The following line should contain a sharp s:
-# ß
-# If the above line is not correctly displayed, fix your editor first!
-
-general {
- colors = true
- interval = 5
-}
-
-order += "wireless _first_"
-order += "ethernet _first_"
-order += "disk /home"
-order += "load"
-order += "memory"
-order += "volume master"
-order += "battery all"
-order += "tztime local"
-
-wireless _first_ {
- # format_up = "W: (%quality at %essid) %ip"
- format_up = "W: (Signal%quality) %ip"
- format_down = "W: down"
-}
-
-ethernet _first_ {
- format_up = "E: %ip (%speed)"
- format_down = "E: down"
-}
-
-battery all {
- format = "%status %percentage %remaining"
-}
-
-disk "/" {
- format = "%avail"
-}
-
-disk "/home" {
- format = "%avail"
-}
-
-load {
- format = "%1min"
-}
-
-memory {
- format = "%used | %total"
- threshold_degraded = "1G"
- format_degraded = "MEMORY < %available"
-}
-
-tztime local {
- format = "%A %Y-%m-%d %H:%M:%S"
- locale = "fr_CA.utf8"
-}
-
-volume master {
- format = "Volume: %volume"
- format_muted = "Volume: muted (%volume)"
- # device = "pulse:0"
-}
diff --git a/device-specific/laptop/dwl-hardware.h b/device-specific/thinkpad/dwl-hardware.h
diff --git a/device-specific/thinkpad/emacs.el b/device-specific/thinkpad/emacs.el
@@ -0,0 +1,9 @@
+(setq my-font-name "Iosevka Nerd Font:pixelsize=")
+(setq my-font-size 16)
+(setq my-font-big-size 30)
+(setq my-font (concat my-font-name (number-to-string my-font-size)))
+
+(set-default 'truncate-lines t)
+(load-theme 'solarized t)
+(solarized-toggle-background-mode)
+(transparency 90)
diff --git a/device-specific/laptop/hardware b/device-specific/thinkpad/hardware
diff --git a/device-specific/thinkpad/i3status b/device-specific/thinkpad/i3status
@@ -0,0 +1,66 @@
+# i3status configuration file.
+# see "man i3status" for documentation.
+
+# It is important that this file is edited as UTF-8.
+# The following line should contain a sharp s:
+# ß
+# If the above line is not correctly displayed, fix your editor first!
+
+general {
+ colors = true
+ interval = 5
+ markup = "pango"
+}
+
+order += "wireless _first_"
+order += "ethernet _first_"
+order += "disk /"
+order += "load"
+order += "memory"
+order += "volume master"
+order += "battery all"
+order += "tztime local"
+
+wireless _first_ {
+ # format_up = "W: (%quality at %essid) %ip"
+ format_up = "W: (Signal%quality) %ip"
+ format_down = "W: down"
+}
+
+ethernet _first_ {
+ format_up = "E: %ip (%speed)"
+ format_down = "E: down"
+}
+
+battery all {
+ format = "%status %percentage %remaining"
+}
+
+disk "/" {
+ format = "%avail"
+}
+
+disk "/home" {
+ format = "%avail"
+}
+
+load {
+ format = "%1min"
+}
+
+memory {
+ format = "%used | %total"
+ threshold_degraded = "1G"
+ format_degraded = "MEMORY < %available"
+}
+
+tztime local {
+ format = "%A %Y-%m-%d %H:%M:%S"
+ locale = "fr_CA.utf8"
+}
+
+volume master {
+ format = "Volume: %volume"
+ format_muted = "Volume: muted (%volume)"
+ # device = "pulse:0"
+}
diff --git a/scripts/bookmarks b/scripts/bookmarks
@@ -2,6 +2,6 @@
readarray -t bookmarks < $MENULAUNCHER_DIR/bookmarks
-url=$(printf '%s\n' "${bookmarks[@]}" | rofi -dmenu -p "Bookmark" -i | sed 's/^.*: //g')
+url=$(printf '%s\n' "${bookmarks[@]}" | fuzzel --dmenu -p "Bookmark: " -i | sed 's/^.*: //g')
[[ ! -z "$url" ]] && firefox --new-tab $url
diff --git a/scripts/checkmail b/scripts/checkmail
@@ -0,0 +1,8 @@
+#!/bin/sh
+
+[ $# -lt 1 ] && echo "error: invalid usage: requires an email as an argument" && exit 1
+
+mail_address="$1"
+mail_dir="$XDG_DATA_HOME/mail/$mail_address/INBOX/new"
+
+echo "$(ls $mail_dir | wc -l) "
diff --git a/scripts/davmail_launch b/scripts/davmail_launch
@@ -0,0 +1,3 @@
+#!/bin/sh
+
+exec ~/opt/davmail/davmail $XDG_CONFIG_HOME/davmail/davmail.properties
diff --git a/scripts/rdpmenu b/scripts/rdpmenu
@@ -1,5 +1,5 @@
#!/bin/sh
-server=$(echo "$(ls $XDG_DATA_HOME/rdp)" | rofi -dmenu -p "Server" -i)
+server=$(echo "$(ls $XDG_DATA_HOME/rdp)" | fuzzel --dmenu -p "Server" -i)
[[ ! -z "$server" ]] && rdp "$server"
diff --git a/shared-configs/sakura/template.conf b/shared-configs/sakura/template.conf
@@ -0,0 +1,75 @@
+[sakura]
+colorset1_fore=rgb(131,148,150)
+colorset1_back=rgba(0,43,54,0.9)
+colorset1_curs=rgb(255,255,255)
+colorset1_scheme=0
+colorset1_key=F1
+colorset2_fore=rgb(255,255,255)
+colorset2_back=rgb(0,0,0)
+colorset2_curs=rgb(255,255,255)
+colorset2_scheme=1
+colorset2_key=F2
+colorset3_fore=rgb(192,192,192)
+colorset3_back=rgb(0,0,0)
+colorset3_curs=rgb(255,255,255)
+colorset3_scheme=1
+colorset3_key=F3
+colorset4_fore=rgb(192,192,192)
+colorset4_back=rgb(0,0,0)
+colorset4_curs=rgb(255,255,255)
+colorset4_scheme=1
+colorset4_key=F4
+colorset5_fore=rgb(192,192,192)
+colorset5_back=rgb(0,0,0)
+colorset5_curs=rgb(255,255,255)
+colorset5_scheme=1
+colorset5_key=F5
+colorset6_fore=rgb(192,192,192)
+colorset6_back=rgb(0,0,0)
+colorset6_curs=rgb(255,255,255)
+colorset6_scheme=1
+colorset6_key=F6
+last_colorset=1
+bold_is_bright=false
+scroll_lines=4096
+font={SAKURA_FONT}
+show_always_first_tab=No
+scrollbar=false
+closebutton=true
+tabs_on_bottom=false
+less_questions=true
+disable_numbered_tabswitch=false
+use_fading=false
+scrollable_tabs=true
+urgent_bell=No
+audible_bell=No
+blinking_cursor=No
+cursor_type=VTE_CURSOR_SHAPE_BLOCK
+word_chars=-,./?%&#_~:
+palette=0
+add_tab_accelerator=5
+del_tab_accelerator=5
+switch_tab_accelerator=8
+move_tab_accelerator=9
+copy_accelerator=5
+scrollbar_accelerator=5
+open_url_accelerator=5
+font_size_accelerator=4
+set_tab_name_accelerator=5
+search_accelerator=5
+add_tab_key=T
+del_tab_key=W
+prev_tab_key=Left
+next_tab_key=Right
+copy_key=C
+paste_key=V
+scrollbar_key=S
+set_tab_name_key=N
+search_key=F
+increase_font_size_key=plus
+decrease_font_size_key=minus
+fullscreen_key=F11
+set_colorset_accelerator=5
+icon_file=terminal-tango.svg
+paste_button=2
+menu_button=3