summaryrefslogtreecommitdiff
path: root/.config
diff options
context:
space:
mode:
authorSean Whitton <spwhitton@spwhitton.name>2024-04-22 07:32:20 +0100
committerSean Whitton <spwhitton@spwhitton.name>2024-04-22 07:33:14 +0100
commit4772be9dbdc18a7ead4339ee2500d9e828af4c8a (patch)
tree9e0cc9caf5694ae9bac3b4cd369b36367c98b5e2 /.config
parent05ba620733f91b2994d04f8cdf1e49d9a0c7a511 (diff)
downloaddotfiles-4772be9dbdc18a7ead4339ee2500d9e828af4c8a.tar.gz
archive remaining i3-specific config
Diffstat (limited to '.config')
-rw-r--r--.config/i3/config382
1 files changed, 0 insertions, 382 deletions
diff --git a/.config/i3/config b/.config/i3/config
deleted file mode 100644
index 470fd3f7..00000000
--- a/.config/i3/config
+++ /dev/null
@@ -1,382 +0,0 @@
-# i3 config file (v4)
-#
-# Please see http://i3wm.org/docs/userguide.html for a complete reference!
-
-# ** not yet adjusted for or tested with PaperWM-inspired i3status-wrapper **
-
-# Font for window titles. Will also be used by the bar unless a different font
-# is used in the bar {} block below.
-font pango:Hack 10
-
-# This font is widely installed, provides lots of unicode glyphs, right-to-left
-# text rendering and scalability on retina/hidpi displays (thanks to pango).
-#font pango:DejaVu Sans Mono 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.
-
-# class border bground text indicator child_border
-client.focused #000000 #B4EEB4 #000000 #B4EEB4 #000000
-client.focused_inactive #000000 #FFFFF6 #000000 #AA9E9F #AA9E9F
-client.unfocused #000000 #E5E5E5 #000000 #AA9E9F #AA9E9F
-client.urgent #000000 #702020 #FFFFF6 #AA9E9F #AA9E9F
-client.placeholder #000000 #000000 #FFFFF6 #AA9E9F #AA9E9F
-
-client.background #FFFFF6
-
-# Use Mouse+Mod4 to drag floating windows to their wanted position
-floating_modifier Mod4
-
-# default workspace layout
-workspace_layout tabbed
-
-# this is so that C-i o will stay within the same output; I have convenient
-# bindings to get to other outputs so no need for directional movement to
-# permit moving between outputs (it would be even better if we could just
-# toggle this setting around the execution of C-i o, however)
-focus_wrapping workspace
-
-mouse_warping output
-
-# Key binding strategy:
-#
-# Use Ctrl+N and Mod1+Ctrl+N, which will never be bound in Emacs, for bindings
-# I will often need to type more than once in a row. Otherwise put the
-# bindings under the C-i prefix map, which will never be bound by Emacs
-# because text terminals typically can't distinguish between C-i and TAB.
-# If we need it, we can bind C-i Ctrl+N, C-i Mod1+Ctrl+N to pass the keys
-# through, like C-\ \ in tmux.
-#
-# Previously we used Mod4 modifying a key on the right side of the keyboard
-# instead of Ctrl+N and Mod1+Ctrl+N; there are enough of these that we can
-# still avoid any one-handed chording with only a single Super key. However,
-# this means using the weak little finger to hold down a modifier key for more
-# than one keypress with the other hand, which is worth avoiding.
-
-mode "C-i-" {
- # make a fresh Emacs frame -- typically this gets invoked only on
- # empty workspaces, as otherwise I use commands under `C-x 5` to get
- # more Emacs frames
- bindsym e exec emacsclient -ncw15, mode "default"
-
- # override the script's usual logic to start a fresh, non-debug daemon
- bindsym Ctrl+Mod1+e exec emacsclient -ncw8 --spw/installed, \
- mode "default"
-
- # special daemon instance for debugging primary instance & Gnus
- bindsym r exec emacsclient -ncw8 -sgdbmacs, mode "default"
-
- # Fresh Emacs frame and get a shell in HOME. Without this it's
- # C-i e M-& which is too many keys esp. compared to C-i DEL
- bindsym Return exec emacsclient -ncw15 -e \
- "(let ((default-directory (expand-file-name "'"'~/'"'")) \
- (display-buffer-overriding-action \
- '(display-buffer-same-window \
- . ((inhibit-same-window . nil))))) \
- (transient-cycles-cmd-spw/eshell-jump-from-here))", \
- mode "default"
-
- # start a terminal emulator
- bindsym BackSpace exec xfce4-terminal, mode "default"
-
- # make a fresh browser window
- bindsym b exec firefox -new-window, mode "default"
-
- # lock screen -- relies on xss-lock
- # note that this won't lock other VTs (lock-session*s*
- # requires root password)
- bindsym l exec loginctl lock-session \
- && sleep 0.5 && xset dpms force standby, \
- mode "default"
-
- # go to sleep -- xss-lock will lock screen
- bindsym Ctrl+l exec systemctl suspend, mode "default"
-
- # kill focused window
- # Unlike in sway config we don't send USR1 to i3status-wrapper because
- # under i3bar that causes i3status-wrapper to exit 0 for some reason.
- # For the time being there is no need to send the signal as
- # expensive() does nothing useful under i3.
- bindsym k kill, mode "default"
-
- # start dmenu (a program launcher)
- bindsym Ctrl+p exec dmenu_run \
- -nf '#000000' -nb '#FFFFF6' -sb '#B4EEB4' -sf '#000000', \
- mode "default"
-
- # There also is the (new) i3-dmenu-desktop which only displays applications
- # shipping a .desktop file. It is a wrapper around dmenu, so you need that
- # installed.
- bindsym p exec --no-startup-id i3-dmenu-desktop \
- --dmenu="dmenu -i -nf '#000000' -nb '#FFFFF6' -sb '#B4EEB4' -sf '#000000'", \
- mode "default"
-
- bindsym s exec ~/src/dotfiles/scripts/desktop/dmenu_ssh \
- -nf '#000000' -nb '#FFFFF6' -sb '#B4EEB4' -sf '#000000', \
- mode "default"
-
- # split in horizontal orientation
- bindsym h split h, mode "default"
-
- # split in vertical orientation
- bindsym v split v, mode "default"
-
- # enter fullscreen mode for the focused container
- bindsym f fullscreen toggle, mode "default"
-
- # change container layout (stacked, tabbed, toggle split)
- # bindsym s layout stacking, mode "default"
- bindsym w layout tabbed, mode "default"
-
- # make a container independently tabbed
- bindsym a split v, layout tabbed, mode "default"
-
- # toggle tiling / floating
- bindsym t floating toggle, mode "default"
-
- # change focus between tiling / floating windows
- bindsym Tab focus mode_toggle, mode "default"
-
- # focus the parent container
- bindsym u focus parent, mode "default"
-
- # focus the child container
- bindsym d focus child, mode "default"
-
- # when screen is divided into two containers where at least one has
- # several tabs, as I usually have it on a small laptop screen, this
- # works well to go back and forth
- bindsym o focus parent, focus right, mode "default"
-
- # switch to workspace
- bindsym 1 workspace 1, mode "default"
- bindsym 2 workspace 2, mode "default"
- bindsym 3 workspace 3, mode "default"
- bindsym 4 workspace 4, mode "default"
- bindsym 5 workspace 5, mode "default"
- bindsym 6 workspace 6, mode "default"
- bindsym 7 workspace 7, mode "default"
- bindsym 8 workspace 8, mode "default"
- bindsym 9 workspace 9, mode "default"
- bindsym 0 workspace 10, mode "default"
- bindsym F1 workspace 11:F1, mode "default"
- bindsym F2 workspace 12:F2, mode "default"
- bindsym F3 workspace 13:F3, mode "default"
- bindsym F4 workspace 14:F4, mode "default"
- bindsym F5 workspace 15:F5, mode "default"
- bindsym F6 workspace 16:F6, mode "default"
- bindsym F7 workspace 17:F7, mode "default"
- bindsym F8 workspace 18:F8, mode "default"
- bindsym F9 workspace 19:F9, mode "default"
- bindsym F10 workspace 20:F10, mode "default"
- bindsym F11 workspace 21:F11, mode "default"
- bindsym F12 workspace 22:F12, mode "default"
- bindsym semicolon workspace back_and_forth, mode "default"
-
- # move focused container to workspace
- bindsym Mod1+1 move container to workspace 1, mode "default"
- bindsym Mod1+2 move container to workspace 2, mode "default"
- bindsym Mod1+3 move container to workspace 3, mode "default"
- bindsym Mod1+4 move container to workspace 4, mode "default"
- bindsym Mod1+5 move container to workspace 5, mode "default"
- bindsym Mod1+6 move container to workspace 6, mode "default"
- bindsym Mod1+7 move container to workspace 7, mode "default"
- bindsym Mod1+8 move container to workspace 8, mode "default"
- bindsym Mod1+9 move container to workspace 9, mode "default"
- bindsym Mod1+0 move container to workspace 10, mode "default"
- bindsym Mod1+F1 move container to workspace 11:F1, mode "default"
- bindsym Mod1+F2 move container to workspace 12:F2, mode "default"
- bindsym Mod1+F3 move container to workspace 13:F3, mode "default"
- bindsym Mod1+F4 move container to workspace 14:F4, mode "default"
- bindsym Mod1+F5 move container to workspace 15:F5, mode "default"
- bindsym Mod1+F6 move container to workspace 16:F6, mode "default"
- bindsym Mod1+F7 move container to workspace 17:F7, mode "default"
- bindsym Mod1+F8 move container to workspace 18:F8, mode "default"
- bindsym Mod1+F9 move container to workspace 19:F9, mode "default"
- bindsym Mod1+F10 move container to workspace 20:F10, mode "default"
- bindsym Mod1+F11 move container to workspace 21:F11, mode "default"
- bindsym Mod1+F12 move container to workspace 22:F12, mode "default"
- bindsym Mod1+semicolon move container to workspace back_and_forth, \
- mode "default"
- bindsym Mod1+Ctrl+semicolon move container to workspace back_and_forth, \
- workspace back_and_forth, mode "default"
-
- # next unused workspace
- bindsym j exec --no-startup-id \
- ~/src/dotfiles/scripts/desktop/fresh-workspace, \
- mode "default"
- # sends window to next unused but doesn't change view
- bindsym Mod1+j exec --no-startup-id \
- ~/src/dotfiles/scripts/desktop/fresh-workspace --send, \
- mode "default"
- # sends window to next unused and changes view
- bindsym Mod1+Ctrl+j exec --no-startup-id \
- ~/src/dotfiles/scripts/desktop/fresh-workspace --take, \
- mode "default"
-
- # go to windows for tasks without needing to know the workspace
- # bindsym slash exec --no-startup-id rofi -show window, mode "default"
- bindsym slash exec ~/src/dotfiles/scripts/desktop/dmenu_window \
- -nf '#000000' -nb '#FFFFF6' -sb '#B4EEB4' -sf '#000000', \
- mode "default"
-
- # reload the configuration file -- useful simply to reexecute
- # startup scripts
- bindsym Ctrl+Mod1+c reload; \
- exec --no-startup-id ~/src/dotfiles/scripts/desktop/i3-startup-always, \
- mode "default"
- # restart i3 inplace (preserves your layout/session, can be
- # used to upgrade i3)
- bindsym Ctrl+Mod1+r restart, mode "default"
- # exit i3 (logs you out of your X session)
- bindsym Ctrl+Mod1+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.' \
- -b 'Yes, exit i3' 'i3-msg exit'", mode "default"
-
- bindsym g mode "C-i g-"
-
- bindsym n exec i3-msg '[title="\[mosh\] tmux default on athena"]' focus \
- || xfce4-terminal -x ssh-and-tmux athena.silentflame.com, mode "default"
-
- bindsym Ctrl+g mode "default"
-}
-bindsym Ctrl+i mode "C-i-"
-
-# change focus
-bindsym Ctrl+7 focus left
-bindsym Ctrl+0 focus right
-bindsym Ctrl+8 focus down
-bindsym Ctrl+9 focus up
-
-# move focused window
-bindsym Mod1+Ctrl+7 move left
-bindsym Mod1+Ctrl+0 move right
-bindsym Mod1+Ctrl+8 move down
-bindsym Mod1+Ctrl+9 move up
-
-bindsym Ctrl+5 kill
-bindsym Ctrl+6 fullscreen toggle
-
-bindsym Ctrl+apostrophe layout toggle splith splitv tabbed
-
-# Cycle through all workspaces on monitor.
-bindsym Ctrl+1 workspace prev_on_output
-bindsym Ctrl+4 workspace next_on_output
-bindsym Mod1+Ctrl+1 move container to workspace prev_on_output, \
- workspace prev_on_output
-bindsym Mod1+Ctrl+4 move container to workspace next_on_output, \
- workspace next_on_output
-
-# # move focus between monitors -- if we have more than one monitor, we
-# # probably have a numeric keypad available.
-# # subtleties: <https://github.com/i3/i3/issues/2558>
-# bindsym Mod4+Mod2+KP_4 focus output left
-# bindsym Mod4+KP_Left focus output left
-# bindsym Mod4+Mod2+KP_6 focus output right
-# bindsym Mod4+KP_Right focus output right
-
-# # move focused workspace between monitors
-# bindsym Mod4+Ctrl+Mod2+KP_Left move workspace to output left
-# bindsym Mod4+Ctrl+KP_4 move workspace to output left
-# bindsym Mod4+Ctrl+Mod2+KP_Right move workspace to output right
-# bindsym Mod4+Ctrl+KP_6 move workspace to output right
-
-bindsym Ctrl+2 focus output left
-bindsym Mod1+Ctrl+2 move workspace to output left
-bindsym Ctrl+3 focus output right
-bindsym Mod1+Ctrl+3 move workspace to output right
-
-# Start i3bar to display a workspace bar (plus the system information i3status
-# finds out, if available)
-bar {
- # i3status is designed to be highly performant so it continues
- # to be refreshed when the system is under load; we're giving
- # up some of that with i3status-wrapper, but let's see if it
- # actually matters
- status_command ~/src/dotfiles/scripts/desktop/i3status-wrapper
-
- # default behaviour is to cycle through workspaces when scroll
- # wheel is used on the bar. However, don't think I've ever
- # used this deliberately, and often I do it by mistake, so
- # let's disable it
- bindsym button4 nop
- bindsym button5 nop
-
- colors {
- background #FFFFF6
- statusline #000000
- separator #000000
-
- focused_workspace #000000 #B4EEB4 #000000
- active_workspace #000000 #FFFFF6 #000000
- inactive_workspace #000000 #E5E5E5 #000000
- urgent_workspace #000000 #702020 #FFFFF6
- binding_mode #000000 #EECD82 #000000
- }
-
- position bottom
- strip_workspace_numbers yes
-
- tray_output primary
-}
-
-# single key launching
-mode "C-i g-" {
- # start a graphical file manager
- bindsym g exec thunar , mode "default"
-
- # launch xrandr graphical config
- bindsym x exec arandr , mode "default"
- # bindsym x exec xfce4-display-settings , mode "default"
-
- # # get a new VT from lightdm
- # bindsym g exec dm-tool switch-to-greeter , mode "default"
-
- # adjust volume
- bindsym v exec xfce4-terminal -e alsamixer , mode "default"
-
- # work around bugs -- this fixes Emacs suddenly not accepting any
- # keyboard input until a new frame is opened and then closed using
- # emacsclient(1)
- bindsym i exec ibus restart , mode "default"
-
- bindsym Ctrl+g mode "default"
-}
-
-# audio
-bindsym XF86AudioRaiseVolume exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ +5%
-bindsym XF86AudioLowerVolume exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ -5%
-bindsym XF86AudioMute exec --no-startup-id pactl set-sink-mute @DEFAULT_SINK@ toggle
-
-exec --no-startup-id emacsclient --spw/update-environment
-exec --no-startup-id emacsclient \
- -sgdbmacs --spw/no-start --spw/update-environment
-exec --no-startup-id xss-lock --transfer-sleep-lock -- \
- i3lock --nofork --ignore-empty-password --color=FFFFF6
-
-exec --no-startup-id nm-applet
-exec --no-startup-id caffeine-indicator
-
-# relies on existence of ~/.config/redshift.conf with latitude and longitude
-exec --no-startup-id redshift-gtk
-
-# for brightness control
-exec --no-startup-id xfce4-power-manager
-
-# idempotent settings and tweaks script
-exec_always --no-startup-id ~/src/dotfiles/scripts/desktop/i3-startup-always
-
-popup_during_fullscreen leave_fullscreen
-
-# windows that should always float
-for_window [title="^vokoscreen"] floating enable
-for_window [title="vokoscreen webcam"] border pixel 1
-for_window [title="^Ediff"] floating enable
-
-# # i3 titlebars are not very useful for Emacs frames; let's have an extra line
-# # of buffer text
-# for_window [class="^Emacs"] border pixel 2