mirror of
https://gitea.blesmrt.net/mikaela/shell-things.git
synced 2024-11-29 14:49:31 +01:00
Mikaela Suomalainen
e6d7a109c2
...because I keep mispressing it and expecting something to happen only to have nothing happen.
445 lines
18 KiB
Plaintext
445 lines
18 KiB
Plaintext
# Packages expected:
|
||
# Debian: i3 suckless-tools j4-dmenu-desktop
|
||
# gnome-screenshot i3lock sudo hibernate playerctl pulseaudio-utils
|
||
# galculator network-manager-gnome redshift-gtk x11-xserver-utils
|
||
# pasystray feh rofi pulsemixer libnotify-bin xcompmgr konsole
|
||
# fonts-dejavu dbus-x11 arandr numlockx fcitx-bin fcitx-mozc conky-all
|
||
# flatpak apparmor-notify caffeine keybase dino kdocker pavucontrol mumble
|
||
# audacious jami-gnome telegram-desktop steam htop kdeconnect insync
|
||
# nextcloud-client parcimonie lxqt-powermanagement pulseeffects kteatime
|
||
# hsetroot
|
||
#
|
||
# Keybase: https://keybase.io/docs/the_app/install_linux
|
||
# Dino: https://software.opensuse.org/download.html?project=network:messaging:xmpp:dino&package=dino
|
||
# jami-gnome: https://jami.net/download-jami-linux/
|
||
# insync: https://www.insynchq.com/downloads
|
||
# Mullvad: TODO
|
||
#
|
||
# Flatpaks expected: org.gajim.Gajim org.gajim.Gajim.Plugin.omemo
|
||
# de.haeckerfelix.gradio com.wire.WireDesktop org.signal.Signal
|
||
# io.github.NhekoReborn.Nheko com.github.wwmm.pulseeffects
|
||
# im.riot.Riot chat.rocket.RocketChat
|
||
#
|
||
# i3status command below expects locale fi_FI.utf8
|
||
#
|
||
# Debian theming: lxappearance gtk-chtheme qt4-qtconfig qt5ct
|
||
# https://askubuntu.com/a/600946
|
||
# + ~/.xprofile specifies GTK_THEME which hopefully gets detected/understood
|
||
# by browsers etc.
|
||
#
|
||
# YES! This file is a monster and there really are that many weird
|
||
# packages and three electrons autostarting, SEND HELP!
|
||
# UPDATE: WHATEVER YOU DO, DON'T AUTOSTART ELECTRONS! LET THE LOAD AVERAGE
|
||
# OF ~35 BEFORE FREEZING BE A LESSON!
|
||
#
|
||
# HIDPI text scaling:
|
||
# % gsettings set org.gnome.desktop.interface scaling-factor 2
|
||
# https://wiki.archlinux.org/index.php/HiDPI#GNOME
|
||
#
|
||
# Search also for CHANGEME near the bottom
|
||
|
||
#Super
|
||
set $mod Mod4
|
||
|
||
# Stop repeating the same thing everywhere!
|
||
set $TERMINAL konsole --hide-menubar
|
||
# For use without display managers. All display managers seem to be
|
||
# horrible, LightDM user switching is insecure, GDM depends on GNOME, SDDM
|
||
# doesn't support `passwd -de`
|
||
# i3lock options: black colour, cursor (that does nothing)
|
||
# show failed attempts.
|
||
set $ScreenLockCmd i3lock -c 000000 -p win -f
|
||
# tiling png background image
|
||
#set $ScreenLockCmd i3lock -t -i ~/.i3lockbackground.png -p win -f
|
||
#set $ScreenLockCmd i3lock-fancy
|
||
|
||
# Font for window titles. Will also be used by the bar unless a different
|
||
# font is used in the bar {} block below.
|
||
#font pango:monospace 8
|
||
|
||
# This font is widely installed, provides lots of unicode glyphs, right-to-left
|
||
# text rendering and scalability on retina/hidpi displays (thanks to pango).
|
||
# NOTE! Bigger font than 8 is too big for Kincarron
|
||
font pango:DejaVu Sans Mono Book 8
|
||
|
||
# Before i3 v4.8, we used to recommend this one as the default:
|
||
# font -misc-fixed-medium-r-normal--13-120-75-75-C-70-iso10646-1
|
||
# The font above is very space-efficient, that is, it looks good, sharp and
|
||
# clear in small sizes. However, its unicode glyph coverage is limited, the old
|
||
# X core fonts rendering does not support right-to-left and this being a bitmap
|
||
# font, it doesn’t scale on retina/hidpi displays.
|
||
|
||
# Use Mouse+$mod to drag floating windows to their wanted position
|
||
floating_modifier $mod
|
||
|
||
# start a terminal
|
||
#bindsym $mod+Return exec i3-sensible-terminal
|
||
bindsym $mod+Return exec $TERMINAL
|
||
# kill focused window
|
||
bindsym $mod+Shift+q kill
|
||
|
||
# start dmenu (a program launcher)
|
||
#bindsym $mod+d exec dmenu_run
|
||
# wrapper around dmenu supporting .desktop (flatpak)
|
||
#bindsym $mod+d exec --no-startup-id i3-dmenu-desktop
|
||
# j4-dmenu-desktop is supposedly more than 25 times faster
|
||
bindsym $mod+d exec --no-startup-id j4-dmenu-desktop --display-binary --no-generic --dmenu="rofi -dmenu -i" --term="$TERMINAL"
|
||
|
||
# for j4-dmenu-desktop daemon mode (unreleased version)
|
||
# https://github.com/enkore/j4-dmenu-desktop/pull/80/commits/87f6b8b03dabbd83ad0f5d889a75da1b99cdff03
|
||
#exec --no-startup-id j4-dmenu-desktop --display-binary --no-generic --dmenu="rofi -dmenu -i" --term=$TERMINAL --wait-on=~/.config/j4ddfifo
|
||
#bindsym $mod+d exec --no-startup-id echo > ~/.config/j4ddfifo
|
||
|
||
# change focus
|
||
bindsym $mod+j focus left
|
||
bindsym $mod+k focus down
|
||
bindsym $mod+l focus up
|
||
bindsym $mod+odiaeresis focus right
|
||
|
||
# alternatively, you can use the cursor keys:
|
||
bindsym $mod+Left focus left
|
||
bindsym $mod+Down focus down
|
||
bindsym $mod+Up focus up
|
||
bindsym $mod+Right focus right
|
||
|
||
# move focused window
|
||
bindsym $mod+Shift+j move left
|
||
bindsym $mod+Shift+k move down
|
||
bindsym $mod+Shift+l move up
|
||
bindsym $mod+Shift+odiaeresis move right
|
||
|
||
# alternatively, you can use the cursor keys:
|
||
bindsym $mod+Shift+Left move left
|
||
bindsym $mod+Shift+Down move down
|
||
bindsym $mod+Shift+Up move up
|
||
bindsym $mod+Shift+Right move right
|
||
|
||
# split in horizontal orientation
|
||
bindsym $mod+h split h
|
||
|
||
# split in vertical orientation
|
||
bindsym $mod+v split v
|
||
|
||
# enter fullscreen mode for the focused container
|
||
bindsym $mod+f fullscreen toggle
|
||
|
||
# change container layout (stacked, tabbed, toggle split)
|
||
bindsym $mod+s layout stacking
|
||
bindsym $mod+w layout tabbed
|
||
bindsym $mod+e layout toggle split
|
||
|
||
# toggle tiling / floating
|
||
bindsym $mod+Shift+space floating toggle
|
||
|
||
# change focus between tiling / floating windows
|
||
bindsym $mod+space focus mode_toggle
|
||
|
||
# focus the parent container
|
||
bindsym $mod+a focus parent
|
||
|
||
# focus the child container
|
||
#bindsym $mod+d focus child
|
||
|
||
# Tabbed uses less space and may show me when I have too many windows in a
|
||
# single workspace
|
||
workspace_layout tabbed
|
||
|
||
# Centerize window titles
|
||
title_align center
|
||
|
||
# Define names for default workspaces for which we configure key bindings later on.
|
||
# We use variables to avoid repeating the names in multiple places.
|
||
set $ws1 "1"
|
||
set $ws2 "2"
|
||
set $ws3 "3"
|
||
set $ws4 "4"
|
||
set $ws5 "5"
|
||
set $ws6 "6"
|
||
set $ws7 "7"
|
||
set $ws8 "8"
|
||
set $ws9 "9"
|
||
set $ws10 "10"
|
||
|
||
# switch to workspace
|
||
bindsym $mod+1 workspace $ws1
|
||
bindsym $mod+2 workspace $ws2
|
||
bindsym $mod+3 workspace $ws3
|
||
bindsym $mod+4 workspace $ws4
|
||
bindsym $mod+5 workspace $ws5
|
||
bindsym $mod+6 workspace $ws6
|
||
bindsym $mod+7 workspace $ws7
|
||
bindsym $mod+8 workspace $ws8
|
||
bindsym $mod+9 workspace $ws9
|
||
bindsym $mod+0 workspace $ws10
|
||
bindsym $mod+Prior workspace previous
|
||
bindsym $mod+Next workspace next
|
||
|
||
# move focused container to workspace
|
||
bindsym $mod+Shift+1 move container to workspace $ws1
|
||
bindsym $mod+Shift+2 move container to workspace $ws2
|
||
bindsym $mod+Shift+3 move container to workspace $ws3
|
||
bindsym $mod+Shift+4 move container to workspace $ws4
|
||
bindsym $mod+Shift+5 move container to workspace $ws5
|
||
bindsym $mod+Shift+6 move container to workspace $ws6
|
||
bindsym $mod+Shift+7 move container to workspace $ws7
|
||
bindsym $mod+Shift+8 move container to workspace $ws8
|
||
bindsym $mod+Shift+9 move container to workspace $ws9
|
||
bindsym $mod+Shift+0 move container to workspace $ws10
|
||
bindsym $mod+Shift+Prior move container to workspace previous
|
||
bindsym $mod+Shift+Next move container to workspace next
|
||
|
||
# reload the configuration file
|
||
bindsym $mod+Shift+c reload
|
||
# restart i3 inplace (preserves your layout/session, can be used to upgrade i3)
|
||
bindsym $mod+Shift+r restart
|
||
# exit i3 (logs you out of your X session)
|
||
bindsym $mod+Shift+e exec "i3-nagbar -t warning -m 'You pressed the EXIT shortcut. Do you really want to EXIT i3? This will end your X session (and should throw you to TTY login prompt or something is WRONG!).' -B 'Yes, EXIT i3' 'i3-msg exit'"
|
||
|
||
# resize window (you can also use the mouse for that)
|
||
mode "resize" {
|
||
# These bindings trigger as soon as you enter the resize mode
|
||
|
||
# Pressing left will shrink the window’s width.
|
||
# Pressing right will grow the window’s width.
|
||
# Pressing up will shrink the window’s height.
|
||
# Pressing down will grow the window’s height.
|
||
bindsym j resize shrink width 10 px or 10 ppt
|
||
bindsym k resize grow height 10 px or 10 ppt
|
||
bindsym l resize shrink height 10 px or 10 ppt
|
||
bindsym odiaeresis resize grow width 10 px or 10 ppt
|
||
|
||
# same bindings, but for the arrow keys
|
||
bindsym Left resize shrink width 10 px or 10 ppt
|
||
bindsym Down resize grow height 10 px or 10 ppt
|
||
bindsym Up resize shrink height 10 px or 10 ppt
|
||
bindsym Right resize grow width 10 px or 10 ppt
|
||
|
||
# back to normal: Enter or Escape or $mod+r
|
||
bindsym Return mode "default"
|
||
bindsym Escape mode "default"
|
||
bindsym $mod+r mode "default"
|
||
}
|
||
|
||
bindsym $mod+r mode "resize"
|
||
|
||
# Selenized black from https://github.com/jan-warchol/selenized/blob/master/other-apps/i3/i3-selenized-black.conf
|
||
# When there are two definitions of which one is commented and 000000 is
|
||
# uncommented, I have adjusted to AMOLED black.
|
||
#set $bg #181818
|
||
set $bg #000000
|
||
#set $black #252525
|
||
#set $br_black #3b3b3b
|
||
set $black #000000
|
||
set $br_black #000000
|
||
set $white #777777
|
||
set $fg #b9b9b9
|
||
set $br_white #dedede
|
||
#
|
||
set $red #ed4a46
|
||
set $green #70b433
|
||
set $yellow #dbb32d
|
||
set $blue #368aeb
|
||
set $magenta #eb6eb7
|
||
set $cyan #3fc5b7
|
||
set $orange #e67f43
|
||
set $violet #a580e2
|
||
#
|
||
set $br_red #ff5e56
|
||
set $br_green #83c746
|
||
set $br_yellow #efc541
|
||
set $br_blue #4f9cfe
|
||
set $br_magenta #ff81ca
|
||
set $br_cyan #56d8c9
|
||
set $br_orange #fa9153
|
||
set $br_violet #b891f5
|
||
|
||
# Start i3bar to display a workspace bar (plus the system information i3status
|
||
# finds out, if available) CHANGEME
|
||
bar {
|
||
position top
|
||
status_command LC_ALL=fi_FI.utf8 i3status
|
||
# Selenized black from https://github.com/jan-warchol/selenized/blob/master/other-apps/i3/i3-selenized-black.conf
|
||
colors {
|
||
separator $blue
|
||
background $bg
|
||
statusline $br_white
|
||
focused_workspace $green $green $bg
|
||
active_workspace $cyan $blue $black
|
||
inactive_workspace $black $black $fg
|
||
urgent_workspace $yellow $yellow $black
|
||
}
|
||
}
|
||
|
||
# Selenized black from https://github.com/jan-warchol/selenized/blob/master/other-apps/i3/i3-selenized-black.conf
|
||
# clientclass border backgr. text indicator
|
||
client.focused $green $green $black $blue
|
||
client.focused_inactive $cyan $cyan $black $violet
|
||
client.unfocused $black $black $fg $white
|
||
client.urgent $yellow $yellow $black $orange
|
||
|
||
# Screenshotting
|
||
bindsym Shift+Print exec gnome-screenshot -i
|
||
bindsym Print exec gnome-screenshot -i
|
||
|
||
# lock screen by hand using Mod + Ctrl + L
|
||
bindsym Control+$mod+l exec $ScreenLockCmd
|
||
|
||
# suspend and hibernate, inspiration took from the nagbar for exiting i3.
|
||
# Passwordless sudo for both commands is specified in
|
||
# /etc/sudoers.d/hibernate
|
||
bindsym $mod+Escape exec "i3-nagbar -t warning -m 'You pressed the SUSPEND shortcut. Do you really want to SUSPEND?' -B 'Yes, SUSPEND' '$ScreenLockCmd; systemctl -i suspend'"
|
||
bindsym $mod+Shift+Escape exec "i3-nagbar -t warning -m 'You pressed the HIBERNATE shortcut. Do you really want to HIBERNATE?' -B 'Yes, HIBERNATE' '$ScreenLockCmd; systemctl -i hibernate'"
|
||
|
||
# Jumping to window with alert (the red colour)
|
||
bindsym $mod+x [urgent=latest] focus
|
||
|
||
# alt-tab
|
||
bindsym Mod1+Tab exec --no-startup-id rofi -show window
|
||
bindsym $mod+g exec --no-startup-id rofi -show window
|
||
|
||
# Telakoi (dock in Finnish) the focused window
|
||
bindsym $mod+t exec --no-startup-id kdocker -f
|
||
|
||
# For some reason my keyboard has a dedicated button for calculator
|
||
bindsym XF86Calculator exec --no-startup-id galculator
|
||
|
||
# Media keys
|
||
bindsym XF86AudioPlay exec --no-startup-id playerctl play-pause && notify-send -t 500 "Play-Pause pressed"
|
||
# Volume keys NOTE: won't work if nothing is playing (which I consider an improvement
|
||
# over randomly stopping working as I enable and disable audio devices).
|
||
#set $sink $(pactl list short sinks | grep RUNNING | cut -f1)
|
||
#bindsym XF86AudioLowerVolume exec --no-startup-id pactl set-sink-volume $sink -5% # && notify-send -t 500 "$(pulsemixer --get-volume)"
|
||
#bindsym XF86AudioRaiseVolume exec --no-startup-id pactl set-sink-volume $sink +5% # && notify-send -t 500 "$(pulsemixer --get-volume)"
|
||
#bindsym XF86AudioMute exec --no-startup-id pactl set-sink-mute $sink toggle # mute sound
|
||
# Apparently pasystray alerts me of the status changes, so I don't have to
|
||
# echo them by myself.
|
||
bindsym XF86AudioLowerVolume exec --no-startup-id pulsemixer --change-volume -5 # && notify-send -t 500 "$(pulsemixer --get-volume)"
|
||
bindsym XF86AudioRaiseVolume exec --no-startup-id pulsemixer --change-volume +5 # && notify-send -t 500 "$(pulsemixer --get-volume)"
|
||
bindsym XF86AudioMute exec --no-startup-id pulsemixer --toggle-mute # && notify-send -t 500 "🔇 pressed"
|
||
|
||
bindsym $mod+p exec arandr
|
||
bindsym $mod+Shift+p exec arandr
|
||
bindsym $mod+Shift+a exec pavucontrol -t 5
|
||
# m for mumble
|
||
bindsym $mod+m exec mumble
|
||
# shift + m for music/media, which I need more seldom, but keep forgetting
|
||
# the good app, while I do remember mpv/Syncplay/VLC whenever I need them.
|
||
bindsym $mod+Shift+m exec audacious
|
||
|
||
# Float these apps by default
|
||
# Firefox & Tor Browser have `privacy.resistFingerprinting.letterboxing`
|
||
# that hide the default screen size, so they don't have to be floated.
|
||
# https://support.torproject.org/tbb/maximized-torbrowser-window/
|
||
#for_window [title="^Mozilla Firefox$"] floating enable
|
||
#for_window [title="^Tor Browser$"] floating enable
|
||
for_window [title="galculator"] floating enable
|
||
# insert new rules above this line
|
||
# https://github.com/keybase/client/issues/8232
|
||
for_window [title="tracker - .*"] floating enable
|
||
|
||
# Autostarts
|
||
|
||
# I generally have flatpaks separately near the bottom, but other things are
|
||
# going to depend on PulseEffects and it seems to be more reliable from repositories
|
||
# at times
|
||
#exec --no-startup-id flatpak run com.github.wwmm.pulseeffects --gapplication-service
|
||
#exec --no-startup-id pulseeffects --gapplication-service
|
||
|
||
exec --no-startup-id $TERMINAL -e htop
|
||
exec --no-startup-id nm-applet
|
||
exec --no-startup-id sleep 60 && pasystray --notify=all
|
||
# Wallpaper, solid (AMOLED) black
|
||
exec --no-startup-id hsetroot -solid \#000000
|
||
# Selenized black background (not AMOLED)
|
||
#exec --no-startup-id hsetroot -solid \#181818
|
||
# ~/.wallpaper as wallpaper
|
||
#exec --no-startup-id feh --bg-scale ~/.wallpaper
|
||
exec --no-startup-id xcompmgr -c -n
|
||
# Make everything a bit transparent, you don't want this.
|
||
#exec --no-startup-id compton --active-opacity 0.95 --inactive-opacity 0.95 -m 0.95 -e 0.95
|
||
exec --no-startup-id numlockx on
|
||
# see also pam_environment https://wiki.archlinux.org/index.php/Fcitx#Non_desktop_environment
|
||
exec --no-startup-id fcitx
|
||
#exec --no-startup-id kdocker -m -d 300 $TERMINAL
|
||
exec --no-startup-id $TERMINAL
|
||
exec --no-startup-id conky
|
||
exec --no-startup-id aa-notify -p -s 1 -w 60
|
||
exec --no-startup-id caffeine-indicator
|
||
#exec --no-startup-id kdocker -d 300 dino
|
||
# THISISIM
|
||
#exec --no-startup-id dino
|
||
# VIP app that is expected to not get sold or violate its privacy policy
|
||
# or anything nasty, keep this in mind when considering commenting! Jami
|
||
# THISISIM
|
||
#exec --no-startup-id jami-gnome -r
|
||
#exec --no-startup-id telegram-desktop -many -startintray
|
||
#exec --no-startup-id sleep 180 && telegram-desktop -many -workdir ~/.config/T2L-telegram -startintray
|
||
# workaround i3status not detecting battery, fixed
|
||
#exec --no-startup-id lxqt-powermanagement
|
||
|
||
# https://github.com/Nheko-Reborn/nheko/issues/79 - 100 % background CPU
|
||
# THISISIM
|
||
#exec --no-startup-id flatpak run io.github.NhekoReborn.Nheko
|
||
# ELECTRON! THISISIM
|
||
#exec --no-startup-id sleep 30 && KEYBASE_AUTOSTART=1 run_keybase -a
|
||
# STILL ELECTRON! THISISIM
|
||
#exec --no-startup-id run_keybase
|
||
# THISISIM
|
||
#exec --no-startup-id STEAM_FRAME_FORCE_CLOSE=1 steam -silent
|
||
exec --no-startup-id kdeconnect-indicator
|
||
# CHANGEME - this may not be here on all systems, Debian testing 64bit
|
||
exec --no-startup-id /usr/lib/x86_64-linux-gnu/libexec/kdeconnectd
|
||
exec --no-startup-id insync start
|
||
exec --no-startup-id nextcloud --background
|
||
exec --no-startup-id sleep 60 && parcimonie --with-dbus
|
||
exec --no-startup-id sleep 70 && parcimonie-applet
|
||
exec --no-startup-id sh -c "/opt/Mullvad\ VPN/mullvad-vpn"
|
||
exec --no-startup-id kteatime
|
||
|
||
# Flatpaks
|
||
# ELECTRON! THISISIM
|
||
#exec --no-startup-id flatpak run com.wire.WireDesktop
|
||
#--startup # Wire needs to not trayify so I will see notifications
|
||
#exec --no-startup-id flatpak run de.haeckerfelix.gradio
|
||
# THISISIM
|
||
#exec --no-startup-id flatpak run org.gajim.Gajim --quiet
|
||
# ELECTRON! I have to autostart it as Signal won't use tray icon without
|
||
# that flag and this seems to be the least painful way to have it.
|
||
# THISISIM
|
||
#exec --no-startup-id sleep 45 && flatpak run org.signal.Signal --start-in-tray
|
||
# ELECTRON! THISISIM (that I also refuse to use without job agreement?)
|
||
#exec --no-startup-id flatpak run com.slack.Slack --startup
|
||
# ELECTRON! THISISIM (that I don't use in favour of Radical WebExtension?)
|
||
#exec --no-startup-id sleep 60 && flatpak run im.riot.Riot --hidden
|
||
#exec --no-startup-id sleep 120 && flatpak run im.riot.Riot --profile T2L --hidden
|
||
# ELECTRON! + https://github.com/RocketChat/Rocket.Chat.Electron/issues/654
|
||
# THISISELECTRON
|
||
#exec --no-startup-id flatpak run chat.rocket.RocketChat
|
||
|
||
# CHANGEME - weird autostart options that may not be suitable even for my other devices
|
||
|
||
## Redshift for better night display
|
||
# Centre of Lauttasaari
|
||
exec --no-startup-id redshift-gtk -l 60.15937:24.87530
|
||
# Centre of Kotka
|
||
#exec --no-startup-id redshift-gtk -l 60.46742:26.94508
|
||
|
||
# Sedric - mirror displays
|
||
#exec --no-startup-id xrandr --output HDMI-1 --same-as eDP-1
|
||
|
||
# Sedric - double monitor via arandr
|
||
#exec --no-startup-id xrandr --output VGA-1 --off --output HDMI-1 --primary --mode 1920x1080 --pos 1920x0 --rotate normal --output eDP-1 --mode 1920x1080 --pos 0x0 --rotate normal
|
||
# workspaces 1 to 5 on HDMI-1 so 6 and <6 will be on the other display
|
||
#workspace 1 output HDMI-1
|
||
#workspace 2 output HDMI-1
|
||
#workspace 3 output HDMI-1
|
||
#workspace 4 output HDMI-1
|
||
#workspace 5 output HDMI-1
|
||
|
||
# Sedric - HDMI-only. Disable via TTY if appropiate.
|
||
#exec --no-startup-id xrandr --output VGA-1 --off --output HDMI-1 --mode 1920x1080 --pos 0x0 --rotate normal --output eDP-1 --off
|
||
|
||
# Special keyboard options that WILL CONFUSE YOU.
|
||
exec --no-startup-id setxkbmap -option compose:menu -option terminate:ctrl_alt_bksp -option nbsp:none -option caps:backspace -option shift:both_capslock
|
||
#-option grp:ctrls_toggle -layout fi,cz,epo -variant ,qwerty,
|