diff --git a/i3/.i3/config b/i3/.i3/config index 8e754de..d789b12 100644 --- a/i3/.i3/config +++ b/i3/.i3/config @@ -27,7 +27,7 @@ font xft:DejaVu Sans Mono for Powerline 14 floating_modifier $mod # start a terminal -bindsym $mod+Return exec termite +bindsym $mod+Return exec kitty # kill focused window bindsym $mod+Shift+q kill @@ -36,7 +36,7 @@ bindsym $mod+Shift+q kill bindsym $mod+d exec --no-startup-id rofi -show drun -config ~/.config/rofi/config # launch categorized menu -bindsym $mod+Tab exec --no-startup-id rofi -show window -config ~/.config/rofi/config +bindsym $mod+Tab exec --no-startup-id rofi -show window -config ~/.config/rofi/config ################################################################################################ ## sound-section - DO NOT EDIT if you wish to automatically upgrade Alsa -> Pulseaudio later! ## @@ -85,7 +85,7 @@ bindsym $mod+Shift+Up move up bindsym $mod+Shift+Right move right # workspace back and forth (with/without active container) -workspace_auto_back_and_forth no +workspace_auto_back_and_forth no bindsym $mod+b workspace back_and_forth bindsym $mod+Shift+b move container to workspace back_and_forth; workspace back_and_forth @@ -129,6 +129,7 @@ bindsym $mod+Ctrl+Left workspace prev # to display names or symbols instead of plain workspace numbers you can use # something like: set $ws1 1:mail # set $ws2 2: +set $ws0 0:TimeWaste set $ws1 1:Comms set $ws2 2:Web set $ws3 3:IDE @@ -149,6 +150,7 @@ bindsym $mod+6 workspace $ws6 bindsym $mod+7 workspace $ws7 bindsym $mod+8 workspace $ws8 bindsym $mod+9 workspace $ws9 +bindsym $mod+0 workspace $ws0 # Move focused container to workspace #bindsym $mod+Ctrl+1 move container to workspace $ws1 @@ -171,6 +173,7 @@ bindsym $mod+Shift+6 move container to workspace $ws6; workspace $ws6 bindsym $mod+Shift+7 move container to workspace $ws7; workspace $ws7 bindsym $mod+Shift+8 move container to workspace $ws8; workspace $ws8 bindsym $mod+Shift+9 move container to workspace $ws9; workspace $ws9 +bindsym $mod+Shift+0 move container to workspace $ws0; workspace $ws0 # WORKSPACE CREATION bindsym $mod+Ctrl+1 exec --no-startup-id ~/.i3/workspaces/ws01.sh @@ -181,9 +184,12 @@ bindsym $mod+Ctrl+4 exec --no-startup-id ~/.i3/workspaces/ws04.sh #bindsym $mod+Ctrl+6 exec --no-startup-id ~/.i3/workspaces/ws06.sh #bindsym $mod+Ctrl+7 exec --no-startup-id ~/.i3/workspaces/ws07.sh bindsym $mod+Ctrl+9 exec --no-startup-id ~/.i3/workspaces/ws09.sh +bindsym $mod+Ctrl+0 exec --no-startup-id ~/.i3/workspaces/ws00.sh # Open specific applications in floating mode for_window [class="Nitrogen"] floating enable sticky enable border normal +for_window [class="feh"] floating enable sticky enable border normal +for_window [class="mpv"] floating enable sticky enable border normal # reload the configuration file bindsym $mod+Shift+c reload @@ -197,23 +203,6 @@ bindsym $mod+l exec --no-startup-id light-locker-command -l # 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.' -b 'Yes, exit i3' 'i3-msg exit'" -# Set shut down, restart and locking features -bindsym $mod+0 mode "$mode_system" -set $mode_system (l)ock, (e)xit, switch_(u)ser, (s)uspend, (h)ibernate, (r)eboot, (Shift+s)hutdown -mode "$mode_system" { - bindsym l exec --no-startup-id i3exit lock, mode "default" - bindsym s exec --no-startup-id i3exit suspend, mode "default" - bindsym u exec --no-startup-id i3exit switch_user, mode "default" - bindsym e exec --no-startup-id i3exit logout, mode "default" - bindsym h exec --no-startup-id i3exit hibernate, mode "default" - bindsym r exec --no-startup-id i3exit reboot, mode "default" - bindsym Shift+s exec --no-startup-id i3exit shutdown, mode "default" - -# exit system mode: "Enter" or "Escape" - bindsym Return mode "default" - bindsym Escape mode "default" -} - # Autostart applications exec --no-startup-id nitrogen --restore; sleep 1; compton -b exec --no-startup-id nm-applet @@ -227,7 +216,7 @@ exec --no-startup-id light-locker # Change the variable name at the place you want to match the color # of your terminal like this: # [example] -# If you want your bar to have the same background color as your +# If you want your bar to have the same background color as your # terminal background change the line 362 from: # background #14191D # to: @@ -261,7 +250,7 @@ bar { font xft:DejaVu Sans Mono for Powerline, FontAwesome 14 strip_workspace_numbers yes tray_output primary - + colors { background #002b36 statusline #F9FAF9 @@ -285,7 +274,7 @@ client.focused #556064 #556064 #80FFF9 #FDF6E3 client.focused_inactive #2F3D44 #2F3D44 #1ABC9C #454948 client.unfocused #2F3D44 #2F3D44 #1ABC9C #454948 client.urgent #CB4B16 #FDF6E3 #1ABC9C #268BD2 -client.placeholder #000000 #0c0c0c #ffffff #000000 +client.placeholder #000000 #0c0c0c #ffffff #000000 client.background #2B2C2B diff --git a/i3/.i3/layouts/workspace0-timewaste.json b/i3/.i3/layouts/workspace0-timewaste.json new file mode 100644 index 0000000..2fd37e4 --- /dev/null +++ b/i3/.i3/layouts/workspace0-timewaste.json @@ -0,0 +1,50 @@ +{ + "border": "pixel", + "floating": "auto_off", + "layout": "splitv", + "percent": 1, + "type": "con", + "nodes": [ + { + "border": "pixel", + "current_border_width": 1, + "floating": "auto_off", + "geometry": { + "height": 434, + "width": 738, + "x": 0, + "y": 0 + }, + "name": "Hacker News", + "percent": 0.5, + "swallows": [ + { + "class": "^kitty$", + "title": "^hackernews$" + } + ], + "type": "con" + }, + + { + "border": "pixel", + "current_border_width": 1, + "floating": "auto_off", + "geometry": { + "height": 434, + "width": 738, + "x": 0, + "y": 0 + }, + "name": "Reddit", + "percent": 0.5, + "swallows": [ + { + "class": "^kitty$", + "title": "^rtv$", + } + ], + "type": "con" + } + ] +} diff --git a/i3/.i3/layouts/workspace9-news.json b/i3/.i3/layouts/workspace9-news.json index 619e0dc..7d3c789 100644 --- a/i3/.i3/layouts/workspace9-news.json +++ b/i3/.i3/layouts/workspace9-news.json @@ -1,5 +1,9 @@ { + "border": "pixel", + "floating": "auto_off", "layout": "splitv", + "percent": 1, + "type": "con", "nodes": [ { "border": "pixel", @@ -15,13 +19,32 @@ "percent": 0.5, "swallows": [ { - "class": "^Termite$", + "instance": "^kitty$", "title": "^newsboat$" } ], "type": "con" + }, + { + "border": "pixel", + "current_border_width": 1, + "floating": "auto_off", + "geometry": { + "height": 434, + "width": 738, + "x": 0, + "y": 0 + }, + "name": "jfm@moerks:~", + "percent": 0.5, + "swallows": [ + { + "instance": "^kitty$", + "title": "^weechat$" + } + ], + "type": "con" } - ], - "percent": 0.5, - "type": "con" + ] } + diff --git a/i3/.i3/scripts/home-layout.sh b/i3/.i3/scripts/home-layout.sh index 3d45038..a6f03fa 100755 --- a/i3/.i3/scripts/home-layout.sh +++ b/i3/.i3/scripts/home-layout.sh @@ -4,8 +4,8 @@ ENV_FILE="/home/jfm/.i3/env" /bin/cat <$ENV_FILE export LAPTOP="eDP1" -export PRIMARY="DP2-1" -export SECONDARY="DP2-2" +export PRIMARY="HDMI1" +export SECONDARY="eDP1" export LDPI_PROFILE="default" export HDPI_PROFILE="laptop" diff --git a/i3/.i3/scripts/home-monitors.sh b/i3/.i3/scripts/home-monitors.sh index 6560bf9..a6b560e 100755 --- a/i3/.i3/scripts/home-monitors.sh +++ b/i3/.i3/scripts/home-monitors.sh @@ -1,2 +1,2 @@ #!/bin/sh -xrandr --output DP2-1 --mode 1920x1200 --pos 1920x0 --rotate normal --output DP2-2 --primary --mode 1920x1200 --pos 0x0 --rotate normal --output DP2-3 --off --output eDP1 --off --output HDMI2 --off --output HDMI1 --off --output DP2 --off --output DP1 --off +xrandr --output VIRTUAL1 --off --output eDP1 --primary --mode 2560x1440 --pos 0x1200 --rotate normal --output DP1 --off --output HDMI2 --off --output HDMI1 --mode 1920x1200 --pos 312x0 --rotate normal --output DP2 --off diff --git a/i3/.i3/workspaces/ws00.sh b/i3/.i3/workspaces/ws00.sh new file mode 100755 index 0000000..02ee99a --- /dev/null +++ b/i3/.i3/workspaces/ws00.sh @@ -0,0 +1,6 @@ +#!/bin/bash +. ~/.i3/env +i3-msg "workspace 0:TimeWaste; append_layout ~/.i3/layouts/workspace0-timewaste.json" +i3-msg "workspace 0:TimeWaste; exec kitty -T hackernews hn" +i3-msg "workspace 0:TimeWaste; exec kitty -T rtv rtv --enable-media" +i3-msg "workspace 0:TimeWaste; move workspace to output $SECONDARY" diff --git a/i3/.i3/workspaces/ws09.sh b/i3/.i3/workspaces/ws09.sh index cde5fb2..585dd89 100755 --- a/i3/.i3/workspaces/ws09.sh +++ b/i3/.i3/workspaces/ws09.sh @@ -1,5 +1,6 @@ #!/bin/bash . ~/.i3/env i3-msg "workspace 9:News; append_layout ~/.i3/layouts/workspace9-news.json" -i3-msg "workspace 9:News; exec termite -t newsboat -e newsboat" +i3-msg "workspace 9:News; exec kitty -T newsboat newsboat" +i3-msg "workspace 9:News; exec kitty -T weechat weechat" i3-msg "workspace 9:News; move workspace to output $SECONDARY" diff --git a/kitty/.config/kitty/kitty.conf b/kitty/.config/kitty/kitty.conf new file mode 100644 index 0000000..8c26fbe --- /dev/null +++ b/kitty/.config/kitty/kitty.conf @@ -0,0 +1,401 @@ +# vim:fileencoding=utf-8:ft=conf + +# Font family. You can also specify different fonts for the +# bold/italic/bold-italic variants. By default they are derived automatically, +# by the OSes font system. Setting them manually is useful for font families +# that have many weight variants like Book, Medium, Thick, etc. For example: +# font_family Operator Mono Book +# bold_font Operator Mono Medium +# italic_font Operator Mono Book Italic +# bold_italic_font Operator Mono Medium Italic +# +# You can get a list of full family names available on your computer by running +# kitty list-fonts +font_family Meslo LG M Regular +italic_font auto +bold_font auto +bold_italic_font auto + +# Font size (in pts) +font_size 10.0 + +# The amount the font size is changed by (in pts) when increasing/decreasing +# the font size in a running terminal. +font_size_delta 2 + + +# Adjust the line height. +# You can use either numbers, which are interpreted as pixels or percentages +# (number followed by %), which are interpreted as percentages of the +# unmodified line height. You can use negative pixels or percentages less than +# 100% to reduce line height (but this might cause rendering artifacts). +adjust_line_height 0 + +# Change the sizes of the lines used for the box drawing unicode characters +# These values are in pts. They will be scaled by the monitor DPI to arrive at +# a pixel value. There must be four values corresponding to thin, normal, thick, +# and very thick lines; +box_drawing_scale 0.001, 1, 1.5, 2 + +# The foreground color +foreground #839496 + +# The background color +background #002b36 + +# The opacity of the background. A number between 0 and 1, where 1 is opaque and 0 is fully transparent. +# This will only work if supported by the OS (for instance, when using a compositor under X11). Note +# that it only sets the default background color's opacity. This is so that +# things like the status bar in vim, powerline prompts, etc. still look good. +# But it means that if you use a color theme with a background color in your +# editor, it will not be rendered as transparent. Instead you should change the +# default background color in your kitty config and not use a background color +# in the editor color scheme. Or use the escape codes to set the terminals +# default colors in a shell script to launch your editor. +# Be aware that using a value less than 1.0 is a (possibly significant) performance hit. +background_opacity 1.0 + +# The foreground for selections +selection_foreground #002b36 + +# The background for selections +selection_background #586e75 + +# The color and style for highlighting URLs on mouse-over. url_style can be one of: +# none, single, double, curly +url_color #0087BD +url_style curly + +# The cursor color +cursor #93a1a1 + +# The cursor shape can be one of (block, beam, underline) +cursor_shape block + +# The interval (in seconds) at which to blink the cursor. Set to zero to +# disable blinking. Note that numbers smaller than repaint_delay will be +# limited to repaint_delay. +cursor_blink_interval 0.0 + +# Stop blinking cursor after the specified number of seconds of keyboard inactivity. Set to +# zero to never stop blinking. +cursor_stop_blinking_after 15.0 + +# Number of lines of history to keep in memory for scrolling back +scrollback_lines 10000 + +# Program with which to view scrollback in a new window. The scrollback buffer is passed as +# STDIN to this program. If you change it, make sure the program you use can +# handle ANSI escape sequences for colors and text formatting. +scrollback_pager less +G -R + +# When viewing scrollback in a new window, put it in a new tab as well +scrollback_in_new_tab no + +# Wheel scroll multiplier (modify the amount scrolled by the mouse wheel). Use negative +# numbers to change scroll direction. +wheel_scroll_multiplier 5.0 + +# The interval between successive clicks to detect double/triple clicks (in seconds) +click_interval 0.5 + +# Characters considered part of a word when double clicking. In addition to these characters +# any character that is marked as an alpha-numeric character in the unicode +# database will be matched. +select_by_word_characters :@-./_~?&=%+# + +# Hide mouse cursor after the specified number of seconds of the mouse not being used. Set to +# zero to disable mouse cursor hiding. +mouse_hide_wait 3.0 + +# Set the active window to the window under the mouse when moving the mouse around +focus_follows_mouse no + +# The enabled window layouts. A comma separated list of layout names. The special value * means +# all layouts. The first listed layout will be used as the startup layout. +# For a list of available layouts, see the file layouts.py +enabled_layouts * + +# If enabled, the window size will be remembered so that new instances of kitty will have the same +# size as the previous instance. If disabled, the window will initially have size configured +# by initial_window_width/height, in pixels. +remember_window_size no +initial_window_width 640 +initial_window_height 400 + +# Delay (in milliseconds) between screen updates. Decreasing it, increases +# frames-per-second (FPS) at the cost of more CPU usage. The default value +# yields ~100 FPS which is more than sufficient for most uses. +repaint_delay 10 + +# Delay (in milliseconds) before input from the program running in the terminal +# is processed. Note that decreasing it will increase responsiveness, but also +# increase CPU usage and might cause flicker in full screen programs that +# redraw the entire screen on each loop, because kitty is so fast that partial +# screen updates will be drawn. +input_delay 3 + +# Visual bell duration. Flash the screen when a bell occurs for the specified number of +# seconds. Set to zero to disable. +visual_bell_duration 0.0 + +# Enable/disable the audio bell. Useful in environments that require silence. +enable_audio_bell no + +# The modifier keys to press when clicking with the mouse on URLs to open the URL +open_url_modifiers ctrl+shift + +# The program with which to open URLs that are clicked on. The special value "default" means to +# use the operating system's default URL handler. +open_url_with default + +# The modifiers to use rectangular selection (i.e. to select text in a +# rectangular block with the mouse) +rectangle_select_modifiers ctrl+alt + +# Choose whether to use the system implementation of wcwidth() (used to +# control how many cells a character is rendered in). If you use the system +# implementation, then kitty and any programs running in it will agree. The +# problem is that system implementations often are based on outdated unicode +# standards and get the width of many characters, such as emoji, wrong. So if +# you are using kitty with programs that have their own up-to-date wcwidth() +# implementation, set this option to no, otherwise set it to yes. +use_system_wcwidth no + +# The value of the TERM environment variable to set +term xterm-kitty + +# The width (in pts) of window borders. Will be rounded to the nearest number of pixels based on screen resolution. +# Note that borders are displayed only when more than one window is visible. They are meant to separate multiple windows. +window_border_width 1 + +# The window margin (in pts) (blank area outside the border) +window_margin_width 0 + +# The window padding (in pts) (blank area between the text and the window border) +window_padding_width 0 + +# The color for the border of the active window +active_border_color #00ff00 + +# The color for the border of inactive windows +inactive_border_color #cccccc + +# Fade the text in inactive windows by the specified amount (a number between +# zero and one, with 0 being fully faded). +inactive_text_alpha 1.0 + +# Tab-bar customization +active_tab_foreground #d3d4c4 +active_tab_background #404552 +active_tab_font_style normal +inactive_tab_foreground #7c838f +inactive_tab_background #383c4a +inactive_tab_font_style normal +tab_separator " ┇ " + + +# The 16 terminal colors. There are 8 basic colors, each color has a dull and +# bright version. + +# solarized dark +color0 #073642 +color8 #002b36 + +color1 #dc322f +color9 #cb4b16 + +color2 #859900 +color10 #586e75 + +color3 #b58900 +color11 #657b83 + +color4 #268bd2 +color12 #839496 + +color5 #d33682 +color13 #6c71c4 + +color6 #2aa198 +color14 #93a1a1 + +color7 #eee8d5 +color15 #fdf6e3 + +## black +#color0 #000000 +#color8 #4d4d4d +# +## red +#color1 #cc0403 +#color9 #f2201f +# +## green +#color2 #19cb00 +#color10 #23fd00 +# +## yellow +#color3 #cecb00 +#color11 #fffd00 +# +## blue +#color4 #0d73cc +#color12 #1a8fff +# +## magenta +#color5 #cb1ed1 +#color13 #fd28ff +# +## cyan +#color6 #0dcdcd +#color14 #14ffff +# +## white +#color7 #dddddd +#color15 #ffffff + + +# Key mapping +# For a list of key names, see: http://www.glfw.org/docs/latest/group__keys.html +# For a list of modifier names, see: http://www.glfw.org/docs/latest/group__mods.html +# +# You can use the special action no_op to unmap a keyboard shortcut that is +# assigned in the default configuration. +# +# You can combine multiple actions to be triggered by a single shortcut, using the +# syntax below: +# map key combine action1 action2 action3 ... +# For example: +# map ctrl+shift+e combine : new_window : next_layout +# this will create a new window and switch to the next available layout + +# Clipboard +map ctrl+shift+v paste_from_clipboard +map ctrl+shift+s no_op +map ctrl+shift+c copy_to_clipboard +map shift+insert no_op +# You can also pass the contents of the current selection to any program using +# pass_selection_to_program. By default, the system's open program is used, but +# you can specify your own, for example: +# map ctrl+shift+o pass_selection_to_program firefox +map ctrl+shift+o no_op + +# Scrolling +map ctrl+shift+up no_op +map ctrl+shift+down no_op +map ctrl+shift+k no_op +map ctrl+shift+j no_op +map shift+page_up scroll_page_up +map shift+page_down scroll_page_down +map ctrl+shift+home no_op +map ctrl+shift+end no_op +map ctrl+shift+h no_op + +# Window management +map ctrl+shift+enter no_op +map ctrl+n new_os_window +map ctrl+w close_window +map ctrl+shift+] no_op +map ctrl+shift+[ no_op +map ctrl+shift+f no_op +map ctrl+shift+1 no_op +map ctrl+shift+2 no_op +map ctrl+shift+3 no_op +map ctrl+shift+4 no_op +map ctrl+shift+5 no_op +map ctrl+shift+6 no_op +map ctrl+shift+7 no_op +map ctrl+shift+8 no_op +map ctrl+shift+9 no_op +map ctrl+shift+0 no_op +# You can open a new window running an arbitrary program, for example: +# map ctrl+shift+y new_window mutt +# +# You can pass the current selection to the new program by using the @selection placeholder +# map ctrl+shift+y new_window less @selection +# +# You can even send the contents of the current screen + history buffer as stdin using +# the placeholders @text (which is the plain text) and @ansi (which includes text styling escape codes) +# For example, the following command opens the scrollback buffer in less in a new window. +# map ctrl+shift+y new_window @ansi less +G -R +# +# You can open a new window with the current working directory set to the +# working directory of the current window using +# map ctrl+alt+enter new_window_with_cwd + + +# Tab management +map ctrl+shift+] next_tab +map ctrl+shift+[ previous_tab +map ctrl+t new_tab +map ctrl+q close_tab +map ctrl+shift+l no_op +map ctrl+shift+. move_tab_forward +map ctrl+shift+, move_tab_backward +# You can also create shortcuts to go to specific tabs, with 1 being the first tab +# map ctrl+alt+1 goto_tab 1 +# map ctrl+alt+2 goto_tab 2 + +# Just as with new_window above, you can also pass the name of arbitrary +# commands to run when using new_tab and use new_tab_with_cwd. + + +# Miscellaneous +map ctrl+equal increase_font_size +map ctrl+minus decrease_font_size +map ctrl+0 restore_font_size +map ctrl+shift+f11 no_op + +# Sending arbitrary text on shortcut key presses +# You can tell kitty to send arbitrary (UTF-8) encoded text to +# the client program when pressing specified shortcut keys. For example: +# map ctrl+alt+a send_text all Special text +# This will send "Special text" when you press the Ctrl+Alt+a key combination. +# The text to be sent is a python string literal so you can use escapes like +# \x1b to send control codes or \u21fb to send unicode characters (or you can +# just input the unicode characters directly as UTF-8 text). The first argument +# to send_text is the keyboard modes in which to activate the shortcut. The possible +# values are normal or application or kitty or a comma separated combination of them. +# The special keyword all means all modes. The modes normal and application refer to +# the DECCKM cursor key mode for terminals, and kitty refers to the special kitty +# extended keyboard protocol. Another example, that outputs a word and then moves the cursor +# to the start of the line (same as pressing the Home key): +# map ctrl+alt+a send_text normal Word\x1b[H +# map ctrl+alt+a send_text application Word\x1bOH + +# Symbol mapping (special font for specified unicode code points). Map the +# specified unicode codepoints to a particular font. Useful if you need special +# rendering for some symbols, such as for Powerline. Avoids the need for +# patched fonts. Each unicode code point is specified in the form U+. You can specify multiple code points, separated by commas +# and ranges separated by hyphens. symbol_map itself can be specified multiple times. +# Syntax is: +# +# symbol_map codepoints Font Family Name +# +# For example: +# +# symbol_map U+E0A0-U+E0A2,U+E0B0-U+E0B3 PowerlineSymbols + + +# OS specific tweaks + +# Hide the kitty window's title bar on macOS. +macos_hide_titlebar no + +# Use the option key as an alt key. With this set to no, kitty will use +# the macOS native Option+Key = unicode character behavior. This will +# break any Alt+key keyboard shortcuts in your terminal programs, but you +# can use the macOS unicode input technique. +macos_option_as_alt yes + +# The number is a percentage of maximum volume. +# See man XBell for details. +x11_bell_volume 0 + +# Prefer color emoji fonts when available. Note that this only works +# on systems such as Linux that use fontconfig. On other OSes, the emoji +# font used is system dependent. It can be overriden using symbol_map in the kitty +# configuration. +prefer_color_emoji yes