mirror of
				https://gitea.blesmrt.net/mikaela/shell-things.git
				synced 2025-11-03 19:07:24 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			540 lines
		
	
	
		
			22 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			540 lines
		
	
	
		
			22 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
# Packages expected (just break line-length!):
 | 
						||
# Debian: i3 suckless-tools j4-dmenu-desktop gnome-screenshot i3lock sudo hibernate playerctl galculator network-manager-gnome redshift-gtk x11-xserver-utils feh rofi libnotify-bin xcompmgr konsole fonts-dejavu dbus-x11 arandr numlockx fcitx-bin fcitx-mozc conky-all flatpak apparmor-notify caffeine kdocker mumble audacious telegram-desktop steam htop kdeconnect nextcloud-client parcimonie lxqt-powermanagement kteatime hsetroot tmux
 | 
						||
# ALSA: alsa-utils apulse coreutils pnmixer
 | 
						||
#	 NOTE! apulse is a wrapper and `apulse` is put in front of pulseaudio
 | 
						||
#	 requiring app. See also (shell-things) rc/asoundrc for USB headset and
 | 
						||
#	 similar.
 | 
						||
# pulseaudio: pulseaudio-utils pasystray pulsemixer pavucontrol pulseeffects
 | 
						||
# insync: https://www.insynchq.com/downloads
 | 
						||
# Mullvad: https://mullvad.net/download
 | 
						||
#
 | 
						||
# Fedora: i3 gnome-screenshot i3lock sudo playerctl galculator network-manager-applet redshift-gtk feh rofi libnotify dbus-x11 arandr numlockx fcitx conky kdocker caffeine kdocker mumble audacious htop kdeconnectd nextcloud-client parcimonie.sh lxqt-powermanagement kteatime tmux coreutils blueman-applet
 | 
						||
#
 | 
						||
# 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!
 | 
						||
#
 | 
						||
# 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 $SHELL /bin/zsh
 | 
						||
set $TERMINAL mate-terminal --hide-menubar
 | 
						||
set $TEXTEDITOR pluma
 | 
						||
# 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
 | 
						||
#						 7 is too big for Sedric with dpi scaling 144
 | 
						||
#font pango:DejaVu Sans Mono Book 7
 | 
						||
font pango:OpenDyslexic 9
 | 
						||
 | 
						||
# 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 -e $SHELL
 | 
						||
# 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"
 | 
						||
# PowerToys Run compatibility
 | 
						||
#bindsym Mod1+space exec --no-startup-id j4-dmenu-desktop --display-binary --no-generic --dmenu="rofi -dmenu -i" --term="$TERMINAL"
 | 
						||
bindsym Mod1+space exec --no-startup-id i3-dmenu-desktop
 | 
						||
 | 
						||
# 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+f 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
 | 
						||
 | 
						||
# Selenized light from https://github.com/jan-warchol/selenized/blob/master/other-apps/i3/i3-selenized-light.conf
 | 
						||
#set $bg #fbf3db
 | 
						||
#set $black #ece3cc
 | 
						||
#set $br_black #d5cdb6
 | 
						||
#set $white #909995
 | 
						||
#set $fg #53676d
 | 
						||
#set $br_white #3a4d53
 | 
						||
#
 | 
						||
#set $red #d2212d
 | 
						||
#set $green #489100
 | 
						||
#set $yellow #ad8900
 | 
						||
#set $blue #0072d4
 | 
						||
#set $magenta #ca4898
 | 
						||
#set $cyan #009c8f
 | 
						||
#set $orange #c25d1e
 | 
						||
#set $violet #8762c6
 | 
						||
#
 | 
						||
#set $br_red #cc1729
 | 
						||
#set $br_green #428b00
 | 
						||
#set $br_yellow #a78300
 | 
						||
#set $br_blue #006dce
 | 
						||
#set $br_magenta #c44392
 | 
						||
#set $br_cyan #00978a
 | 
						||
#set $br_orange #bc5819
 | 
						||
#set $br_violet #825dc0
 | 
						||
 | 
						||
# 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
 | 
						||
		# Temporary workaround to broken i3status in Fedora
 | 
						||
		status_command LC_ALL=fi_FI.utf8 i3status-rs ~/.config/i3status-rs/config.toml
 | 
						||
		# 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 light from https://github.com/jan-warchol/selenized/blob/master/other-apps/i3/i3-selenized-light.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
 | 
						||
 | 
						||
# Selenized light from https://github.com/jan-warchol/selenized/blob/master/other-apps/i3/i3-selenized-light.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
 | 
						||
 | 
						||
# Open text editor
 | 
						||
bindsym $mod+t exec --no-startup-id $TEXTEDITOR
 | 
						||
 | 
						||
# Telakoi/Tray (dock in Finnish) the focused window
 | 
						||
bindsym $mod+Shift+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).
 | 
						||
# Use this for PipeWire too!
 | 
						||
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.
 | 
						||
# pulseaudio bindings. pulsemixer is not available for Fedora or pipewire?
 | 
						||
#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"
 | 
						||
 | 
						||
# amixer / alsamixer / alsa bindings
 | 
						||
#bindsym XF86AudioLowerVolume exec --no-startup-id notify-send -t 500 "$(amixer -M set Master 2dB-)"
 | 
						||
#bindsym XF86AudioRaiseVolume exec --no-startup-id notify-send -t 500 "$(amixer -M set Master 2dB+)"
 | 
						||
#bindsym XF86AudioMute exec --no-startup-id notify-send -t 500 "$(amixer -M set Master toggle)"
 | 
						||
 | 
						||
bindsym $mod+p exec arandr
 | 
						||
bindsym $mod+Shift+p exec arandr
 | 
						||
# pulseaudio / pipewire
 | 
						||
bindsym $mod+Shift+a exec pavucontrol -t 5
 | 
						||
# alsa amixer alsamixer rbtpzn
 | 
						||
#bindsym $mod+Shift+a exec --no-startup-id $TERMINAL -e alsamixer
 | 
						||
# 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
 | 
						||
 | 
						||
# x for XMPP/Dino, it's autostarting as gapplication service so probably
 | 
						||
# ready whenever this is started and I didn't know I had a keybind for
 | 
						||
# switching to urgent notifications
 | 
						||
bindsym $mod+x exec dino
 | 
						||
 | 
						||
# 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
 | 
						||
for_window [title="tracker - .*"] floating enable
 | 
						||
 | 
						||
# Autostarts
 | 
						||
 | 
						||
# Finnish identity cards https://dvv.fi/en/card-reader-software
 | 
						||
# Requires `sudo systemctl enable --now pcscd` (one time operation)
 | 
						||
exec --no-startup-id DigiSignApplication
 | 
						||
 | 
						||
# 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. PulseEffects has migrated to PipeWire
 | 
						||
#exec --no-startup-id flatpak run com.github.wwmm.easyeffects --gapplication-service
 | 
						||
#exec --no-startup-id easyeffects --gapplication-service
 | 
						||
 | 
						||
exec --no-startup-id $TERMINAL -e htop
 | 
						||
exec --no-startup-id nm-applet
 | 
						||
# pulseaudio (and pipewire?)
 | 
						||
exec --no-startup-id sleep 60 && pasystray --notify=all
 | 
						||
# Wallpaper, solid (AMOLED) black. hsetroot is not on Fedora
 | 
						||
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
 | 
						||
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 -e tmux -c $SHELL
 | 
						||
exec --no-startup-id conky
 | 
						||
exec --no-startup-id aa-notify -p -s 1 -w 60
 | 
						||
exec --no-startup-id caffeine-indicator
 | 
						||
# Originally to workaround i3status which I actually fixed, now in hopes of
 | 
						||
# being more verbose when battery is about to run off and not have nasty
 | 
						||
# surprises...
 | 
						||
exec --no-startup-id lxqt-powermanagement
 | 
						||
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
 | 
						||
# Same for Fedora 33
 | 
						||
exec --no-startup-id /usr/libexec/kdeconnectd
 | 
						||
exec --no-startup-id insync start
 | 
						||
exec --no-startup-id nextcloud --background
 | 
						||
# Observed performance problems 2021-Q4
 | 
						||
#exec --no-startup-id sleep 60 && parcimonie --with-dbus
 | 
						||
#exec --no-startup-id sleep 60 && parcimonie.sh --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 sh -c "/opt/Mullvad\ VPN/mullvad-gui"
 | 
						||
exec --no-startup-id kteatime
 | 
						||
exec --no-startup-id blueman-applet
 | 
						||
 | 
						||
# CHANGEME - weird autostart options that may not be suitable even for my other devices
 | 
						||
 | 
						||
# Microsoft Edge
 | 
						||
#exec --no-startup-id sleep 10 && microsoft-edge --no-startup-window
 | 
						||
# Steam, reason: my brother. Note running outside of Mullvad VPN
 | 
						||
exec --no-startup-id sleep 10 && exec --no-startup-id env STEAM_FRAME_FORCE_CLOSE=1 mullvad-exclude steam -silent
 | 
						||
 | 
						||
# Communication apps preferred by partners
 | 
						||
# Signal
 | 
						||
#exec --no-startup-id sleep 15 && flatpak run org.signal.Signal --start-in-tray
 | 
						||
# Gajim, XMPP (allowed here for not being Electron
 | 
						||
# (regardless of too much Electron already))
 | 
						||
#exec --no-startup-id flatpak run org.gajim.Gajim --gapplication-service
 | 
						||
exec --no-startup-id dino --gapplication-service
 | 
						||
exec --no-startup-id sleep 8 && dino
 | 
						||
# Telegram
 | 
						||
#exec --no-startup-id sleep 15 && env LANG=en BAMF_DESKTOP_FILE_HINT=/var/lib/snapd/desktop/applications/telegram-desktop_telegram-desktop.desktop /var/lib/snapd/snap/bin/telegram-desktop -startintray
 | 
						||
#exec --no-startup-id sleep 15 && env LANG=en telegram-desktop -startintray
 | 
						||
exec --no-startup-id sleep 15 && flatpak run --env=LANG=en_US.utf8 --branch=beta --command=telegram-desktop --file-forwarding org.telegram.desktop -startintray
 | 
						||
# HexChat IRC client in tray
 | 
						||
#exec --no-startup-id sleep 20 && io.github.Hexchat --minimize=2
 | 
						||
# who actually prefers HexChat?
 | 
						||
# Jami, VIP, P2P, won't get sold and disappoint, not Electron, I hope
 | 
						||
exec --no-startup-id sleep 25 && jami-qt
 | 
						||
# Briar, also P2P and may be more promising than Jami in special circumstances
 | 
						||
exec --no-startup-id sleep 25 && flatpak run org.briarproject.Briar
 | 
						||
# FluffyChat is a Matrix client with multiple accounts and it's not even Electron!
 | 
						||
# (it's Flutter), however it suffers very high CPU usage on desktop (due to Flutter)
 | 
						||
#exec --no-startup-id sleep 5 && flatpak run im.fluffychat.Fluffychat
 | 
						||
# Moment is another non-Electron Matrix client (however this time Qt)
 | 
						||
#exec --no-startup-id sleep 10 && flatpak run xyz.mx_moment.moment --start-in-tray
 | 
						||
# Nheko is may be the most Matrix specification compliant Matrix client
 | 
						||
exec --no-startup-id sleep 10 && flatpak run --env=all_proxy=socks5://127.0.0.1:9050/ io.github.NhekoReborn.Nheko//master --profile default
 | 
						||
 | 
						||
## 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 - 150 % display scaling (HiDPI), see also `xdpyinfo | grep resolution
 | 
						||
#		 where 96 = 100 %
 | 
						||
#exec --no-startup-id xrandr --dpi 144
 | 
						||
 | 
						||
# Sedric, external GPU as primary
 | 
						||
#exec --no-startup-id xrandr --setprovideroutputsource modesetting NVIDIA-0
 | 
						||
#exec --no-startup-id xrandr --auto
 | 
						||
 | 
						||
# Sedric - mirror displays
 | 
						||
#exec --no-startup-id xrandr --output HDMI-1-1 --same-as eDP-1-1
 | 
						||
 | 
						||
# Sedric - double monitor via arandr, DON'T USE THIS, SEE THE BELOW SECTION
 | 
						||
#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 - double monitor via arandr FOR PRIMARY GPU ONLY!
 | 
						||
#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-1 so 6 and <6 will be on the other display
 | 
						||
#workspace 1 output HDMI-1-1
 | 
						||
#workspace 2 output HDMI-1-1
 | 
						||
#workspace 3 output HDMI-1-1
 | 
						||
#workspace 4 output HDMI-1-1
 | 
						||
#workspace 5 output HDMI-1-1
 | 
						||
 | 
						||
# Kincarron - double monitor via arandr
 | 
						||
#exec --no-startup-id xrandr --output LVDS-1 --primary --mode 1280x800 --pos 1920x280 --rotate normal --output VGA-1 --off --output HDMI-1 --mode 1920x1080i --pos 0x0 --rotate normal --output DP-1 --off --output HDMI-2 --off --output DP-2 --off
 | 
						||
# workspaces 1 to 5 on LVDS-1 so 6 and <6 will be on the other display
 | 
						||
#workspace 1 output LVDS-1
 | 
						||
#workspace 2 output LVDS-1
 | 
						||
#workspace 3 output LVDS-1
 | 
						||
#workspace 4 output LVDS-1
 | 
						||
#workspace 5 output LVDS-1
 | 
						||
 | 
						||
# Kincarron - mic in -> audio out ! pulseaudio
 | 
						||
#exec --no-startup-id pactl load-module module-loopback latency_msec=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
 | 
						||
 | 
						||
# Sedric - EXTERNAL GPU HDMI-only. Disable via TTY if appropiate.
 | 
						||
#exec --no-startup-id xrandr --output VGA-1-1 --off --output HDMI-1-1 --mode 1920x1080 --pos 0x0 --rotate normal --output eDP-1-1 --off
 | 
						||
 | 
						||
# Special keyboard options that WILL CONFUSE YOU.
 | 
						||
# windows+space should change layout, but doesn't, both ctrls do
 | 
						||
# fi allows mostly typing fi/se (identicatal), cz/es.
 | 
						||
#	See also: `man xkeyboard-config` (layouts) `setxkbmap -query` (for current options)
 | 
						||
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 -option grp:win_space_toggle -layout fi,us,epo,ru -variant ,altgr-intl,,phonetic_winkeys
 |