From 647f7c53f149ef8678e7d3fd64a009b81215e0d0 Mon Sep 17 00:00:00 2001 From: TuDatTr Date: Wed, 20 Dec 2017 00:24:46 +0100 Subject: [PATCH] using termite instead of urxvt, switched to xdg dir-theme and added a python script for a pretty lock screen(needs improvement) --- .config/i3/config | 417 +++++++++++++++++++++++++++++++++++++++++ .config/termite/config | 86 +++++++++ .scripts/i3lock.py | 33 ++++ 3 files changed, 536 insertions(+) create mode 100644 .config/i3/config create mode 100644 .config/termite/config create mode 100644 .scripts/i3lock.py diff --git a/.config/i3/config b/.config/i3/config new file mode 100644 index 0000000..7ef9fee --- /dev/null +++ b/.config/i3/config @@ -0,0 +1,417 @@ +# i3 config file (v4) + +# Set mod key (Mod1=, Mod4=) +set $mod Mod4 + +# Configure border style +new_window pixel 1 +new_float normal + +# Hide borders +hide_edge_borders none + +# change borders +bindsym $mod+u border none +bindsym $mod+y border pixel 1 +bindsym $mod+n border normal + +# Font for window titles. Will also be used by the bar unless a different font +# is used in the bar {} block below. +font xft:Noto Sans 10 + +# Use Mouse+$mod to drag floating windows +floating_modifier $mod + +# start a terminal +bindsym $mod+Return exec termite + +# kill focused window +bindsym $mod+Shift+q kill + +# start program launcher +bindsym $mod+d exec --no-startup-id dmenu_run + +# launch categorized menu +bindsym $mod+z exec --no-startup-id morc_menu + +################################################################################################ +## sound-section - DO NOT EDIT if you wish to automatically upgrade Alsa -> Pulseaudio later! ## +################################################################################################ + +exec --no-startup-id volumeicon +bindsym $mod+Ctrl+m exec terminal -e 'alsamixer' +#exec --no-startup-id pulseaudio +#exec --no-startup-id pa-applet +#bindsym $mod+Ctrl+m exec pavucontrol + +################################################################################################ + +# Screen brightness controls +# bindsym XF86MonBrightnessUp exec "xbacklight -inc 10; notify-send 'brightness up'" +# bindsym XF86MonBrightnessDown exec "xbacklight -dec 10; notify-send 'brightness down'" + +# Application Shortcuts +bindsym $mod+Ctrl+b exec terminal -e 'bmenu' +bindsym $mod+F2 exec firefox +bindsym $mod+F3 exec pcmanfm +bindsym $mod+Shift+F3 exec gksu pcmanfm +bindsym $mod+F5 exec terminal -e 'mocp' +bindsym $mod+t exec --no-startup-id pkill compton +bindsym $mod+Ctrl+t exec --no-startup-id compton -b +bindsym $mod+Shift+d --release exec "killall dunst; exec notify-send 'restart dunst'" +bindsym Print exec --no-startup-id i3-scrot +bindsym $mod+Print --release exec --no-startup-id i3-scrot -w +bindsym $mod+Shift+Print --release exec --no-startup-id i3-scrot -s +bindsym $mod+Shift+h exec xdg-open /usr/share/doc/manjaro/i3_help.pdf +bindsym $mod+Ctrl+x --release exec --no-startup-id xkill + +focus_follows_mouse no + +# change focus +bindsym $mod+j focus left +bindsym $mod+k focus down +bindsym $mod+l focus up +bindsym $mod+semicolon 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+semicolon 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 orientation +bindsym $mod+h split h;exec notify-send 'tile horizontally' +bindsym $mod+v split v;exec notify-send 'tile vertically' +bindsym $mod+q split toggle + +# toggle 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 + +# toggle sticky +bindsym $mod+Shift+s sticky toggle + +# focus the parent container +bindsym $mod+a focus parent + +# move the currently focused window to the scratchpad +bindsym $mod+Shift+minus move scratchpad + +# Show the next scratchpad window or hide the focused scratchpad window. +# If there are multiple scratchpad windows, this command cycles through them. +bindsym $mod+minus scratchpad show + +#navigate workspaces next / previous +bindsym $mod+Ctrl+Right workspace next +bindsym $mod+Ctrl+Left workspace prev + +# Workspace names +# to display names or symbols instead of plain workspace numbers you can use +# something like: +set $ws1 "" +set $ws2 "" +set $ws3 "" +set $ws4 "" +set $ws5 "5" +set $ws6 "6" +set $ws7 "" +set $ws8 "" + +# 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 + +# Move focused container to workspace +bindsym $mod+Ctrl+1 move container to workspace $ws1 +bindsym $mod+Ctrl+2 move container to workspace $ws2 +bindsym $mod+Ctrl+3 move container to workspace $ws3 +bindsym $mod+Ctrl+4 move container to workspace $ws4 +bindsym $mod+Ctrl+5 move container to workspace $ws5 +bindsym $mod+Ctrl+6 move container to workspace $ws6 +bindsym $mod+Ctrl+7 move container to workspace $ws7 +bindsym $mod+Ctrl+8 move container to workspace $ws8 + +# Move to workspace with focused container +bindsym $mod+Shift+1 move container to workspace $ws1; workspace $ws1 +bindsym $mod+Shift+2 move container to workspace $ws2; workspace $ws2 +bindsym $mod+Shift+3 move container to workspace $ws3; workspace $ws3 +bindsym $mod+Shift+4 move container to workspace $ws4; workspace $ws4 +bindsym $mod+Shift+5 move container to workspace $ws5; workspace $ws5 +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 + +# Open applications on specific workspaces +assign [class="Firefox"] $ws2 +assign [class="Spotify"] $ws4 +assign [class="Thunderbird"] $ws7 +assign [class="Keepassx2"] $ws8 + +# Open specific applications in floating mode +for_window [title="alsamixer"] floating enable border pixel 1 +for_window [class="Calamares"] floating enable border normal +for_window [class="Clipgrab"] floating enable +for_window [title="File Transfer*"] floating enable +for_window [class="Galculator"] floating enable border pixel 1 +for_window [class="GParted"] floating enable border normal +for_window [title="i3_help"] floating enable sticky enable border normal +for_window [class="Lightdm-gtk-greeter-settings"] floating enable +for_window [class="Lxappearance"] floating enable sticky enable border normal +for_window [class="Manjaro-hello"] floating enable +for_window [class="Manjaro Settings Manager"] floating enable border normal +for_window [title="MuseScore: Play Panel"] floating enable +for_window [class="Nitrogen"] floating enable sticky enable border normal +for_window [class="Oblogout"] fullscreen enable +for_window [class="octopi"] floating enable +for_window [title="About Pale Moon"] floating enable +for_window [class="Pamac-manager"] floating enable +for_window [class="Pavucontrol"] floating enable +for_window [class="qt5ct"] floating enable sticky enable border normal +for_window [class="Qtconfig-qt4"] floating enable sticky enable border normal +for_window [class="Simple-scan"] floating enable border normal +for_window [class="(?i)System-config-printer.py"] floating enable border normal +for_window [class="Skype"] floating enable border normal +for_window [class="Thus"] floating enable border normal +for_window [class="Timeset-gui"] floating enable border normal +for_window [class="(?i)virtualbox"] floating enable border normal +for_window [class="Xfburn"] floating enable + +# switch to workspace with urgent window automatically +for_window [urgent=latest] focus + +# 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.' -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 "python ~/.scripts/i3lock.py" + 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" +} + +# Resize window (you can also use the mouse for that) +bindsym $mod+r mode "resize" +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 5 px or 5 ppt + bindsym k resize grow height 5 px or 5 ppt + bindsym l resize shrink height 5 px or 5 ppt + bindsym semicolon resize grow width 5 px or 5 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 + + # exit resize mode: Enter or Escape + bindsym Return mode "default" + bindsym Escape mode "default" +} + +# Lock screen +bindsym $mod+9 exec --no-startup-id "python ~/.scripts/i3lock.py" + +# Autostart applications +exec --no-startup-id /usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1 +exec --no-startup-id nitrogen --restore; sleep 1; compton -b +exec --no-startup-id nm-applet +exec --no-startup-id xfce4-power-manager +exec --no-startup-id pamac-tray +exec --no-startup-id clipit +exec --no-startup-id start_conky_maia +exec --no-startup-id xautolock -time 10 -locker "python ~/.scripts/i3lock.py" +exec_always --no-startup-id ff-theme-util +exec_always --no-startup-id fix_xcursor +exec --no-startup-id "~/.scripts/nextcloud.AppImage" + +# Color palette used for the terminal ( ~/.extend.Xresources file ) +# Colors are gathered based on the documentation: +# https://i3wm.org/docs/userguide.html#xresources +# 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 +# terminal background change the line 362 from: +# background $i3_background +# to: +# background $term_background +# Same logic applied to everything else. +set_from_resource $term_background background +set_from_resource $term_foreground foreground +set_from_resource $term_color0 color0 +set_from_resource $term_color1 color1 +set_from_resource $term_color2 color2 +set_from_resource $term_color3 color3 +set_from_resource $term_color4 color4 +set_from_resource $term_color5 color5 +set_from_resource $term_color6 color6 +set_from_resource $term_color7 color7 +set_from_resource $term_color8 color8 +set_from_resource $term_color9 color9 +set_from_resource $term_color10 color10 +set_from_resource $term_color11 color11 +set_from_resource $term_color12 color12 +set_from_resource $term_color13 color13 +set_from_resource $term_color14 color14 +set_from_resource $term_color15 color15 + +# Color palette used for i3 +# Variables are set based on the documentation: +# https://i3wm.org/dovs/userguide.html#variables +# Changing the value of one of the variables will +# effect all the areas with the same color. +set $i3_background #2b2c2b +set $i3_text #f9faf9 +set $i3_separator #454947 +set $i3_color1 #f9faf9 +set $i3_color2 #595b5b +set $i3_color3 #353836 +set $i3_color4 #16a085 +set $i3_color5 #fdf6e3 +set $i3_color6 #eee8d5 +set $i3_color7 #e5201d +set $i3_color8 #808380 +set $i3_color9 #434745 +set $i3_color10 #454948 +set $i3_color11 #80fff9 +set $i3_color12 #fdf6e3 +set $i3_color13 #cb4b16 +set $i3_color14 #268bd2 +set $i3_color15 #000000 +set $i3_color16 #ffffff +set $i3_color17 #0c0c0c + +# Start i3bar to display a workspace bar (plus the system information i3status if available) +bar { + status_command ~/.conkyi3 + position top + + font xft:Noto Sans 10.5 +# strip_workspace_numbers yes + + colors { + separator $i3_border + background $i3_background + statusline $i3_text + +# border bground text + focused_workspace $i3_border $i3_main $i3_text + inactive_workspace $i3_border $i3_background $i3_text + urgent_workspace $i3_border $i3_urgent $i3_text + } +} + +# hide/unhide i3status bar +bindsym $mod+m bar mode toggle + +# Theme colors +# class border backgr. text indic. child_border +client.focused $i3_color8 $i3_color8 $i3_color11 $i3_color12 +client.focused_inactive $i3_color9 $i3_color9 $i3_color4 $i3_color10 +client.unfocused $i3_color9 $i3_color9 $i3_color4 $i3_color10 +client.urgent $i3_color13 $i3_color12 $i3_color4 $i3_color14 +client.placeholder $i3_color15 $i3_color17 $i3_color16 $i3_color15 $i3_color17 + +client.background $i3_background + +############################# +### settings for i3-gaps: ### +############################# + +# Set inner/outer gaps +gaps inner 10 +gaps outer -4 + +# Smart gaps (gaps used if only more than one container on the workspace) +smart_gaps on + +# Smart borders (draw borders around container only if it is not the only container on this workspace) +# on|no_gaps (on=always activate and no_gaps=only activate if the gap size to the edge of the screen is 0) +smart_borders on + +# Press $mod+Shift+g to enter the gap mode. Choose o or i for modifying outer/inner gaps. Press one of + / - (in-/decrement for current workspace) or 0 (remove gaps for current workspace). If you also press Shift with these keys, the change will be global for all workspaces. +set $mode_gaps Gaps: (o) outer, (i) inner +set $mode_gaps_outer Outer Gaps: +|-|0 (local), Shift + +|-|0 (global) +set $mode_gaps_inner Inner Gaps: +|-|0 (local), Shift + +|-|0 (global) +bindsym $mod+Shift+g mode "$mode_gaps" + +mode "$mode_gaps" { + bindsym o mode "$mode_gaps_outer" + bindsym i mode "$mode_gaps_inner" + bindsym Return mode "default" + bindsym Escape mode "default" +} +mode "$mode_gaps_inner" { + bindsym plus gaps inner current plus 5 + bindsym minus gaps inner current minus 5 + bindsym 0 gaps inner current set 0 + + bindsym Shift+plus gaps inner all plus 5 + bindsym Shift+minus gaps inner all minus 5 + bindsym Shift+0 gaps inner all set 0 + + bindsym Return mode "default" + bindsym Escape mode "default" +} +mode "$mode_gaps_outer" { + bindsym plus gaps outer current plus 5 + bindsym minus gaps outer current minus 5 + bindsym 0 gaps outer current set 0 + + bindsym Shift+plus gaps outer all plus 5 + bindsym Shift+minus gaps outer all minus 5 + bindsym Shift+0 gaps outer all set 0 + + bindsym Return mode "default" + bindsym Escape mode "default" +} + diff --git a/.config/termite/config b/.config/termite/config new file mode 100644 index 0000000..02f8a33 --- /dev/null +++ b/.config/termite/config @@ -0,0 +1,86 @@ +[options] +#allow_bold = true +#audible_bell = false +#clickable_url = true +#dynamic_title = true +font = Monospace 9 +#fullscreen = true +#geometry = 640x480 +#icon_name = terminal +#mouse_autohide = false +#scroll_on_output = false +#scroll_on_keystroke = true +# Length of the scrollback buffer, 0 disabled the scrollback buffer +# and setting it to a negative value means "infinite scrollback" +scrollback_lines = 10000 +#search_wrap = true +#urgent_on_bell = true +#hyperlinks = false + +# $BROWSER is used by default if set, with xdg-open as a fallback +#browser = xdg-open + +# "system", "on" or "off" +#cursor_blink = system + +# "block", "underline" or "ibeam" +#cursor_shape = block + +# Hide links that are no longer valid in url select overlay mode +#filter_unmatched_urls = true + +# Emit escape sequences for extra modified keys +#modify_other_keys = false + +# set size hints for the window +#size_hints = false + +# "off", "left" or "right" +#scrollbar = off + +[colors] +# If both of these are unset, cursor falls back to the foreground color, +# and cursor_foreground falls back to the background color. +#cursor = #dcdccc +#cursor_foreground = #dcdccc + +#foreground = #dcdccc +#foreground_bold = #ffffff +background = rgba(63, 63, 63, 0.7) + +# 20% background transparency (requires a compositor) +#background = rgba(63, 63, 63, 0.8) + +# If unset, will reverse foreground and background +highlight = #2f2f2f + +# Colors from color0 to color254 can be set +color0 = #3f3f3f +color1 = #705050 +color2 = #60b48a +color3 = #dfaf8f +color4 = #506070 +color5 = #dc8cc3 +color6 = #8cd0d3 +color7 = #dcdccc +color8 = #709080 +color9 = #dca3a3 +color10 = #c3bf9f +color11 = #f0dfaf +color12 = #94bff3 +color13 = #ec93d3 +color14 = #93e0e3 +color15 = #ffffff + +[hints] +#font = Monospace 12 +#foreground = #dcdccc +#background = #3f3f3f +#active_foreground = #e68080 +#active_background = #3f3f3f +#padding = 2 +#border = #3f3f3f +#border_width = 0.5 +#roundness = 2.0 + +# vim: ft=dosini cms=#%s diff --git a/.scripts/i3lock.py b/.scripts/i3lock.py new file mode 100644 index 0000000..dcba47b --- /dev/null +++ b/.scripts/i3lock.py @@ -0,0 +1,33 @@ +import os +from PIL import Image + +def screenshot(): + os.system('import -window root /tmp/.i3lock.png') + +def pixelate(): + backgroundColor = (0,)*3 + pixelSize = 9 + + image = Image.open('/tmp/.i3lock.png') + + image = image.resize((int(image.size[0]/pixelSize), int(image.size[1]/pixelSize)), Image.NEAREST) + image = image.resize((image.size[0]*pixelSize, image.size[1]*pixelSize), Image.NEAREST) + pixel = image.load() + + for i in range(0,image.size[0],pixelSize): + for j in range(0,image.size[1],pixelSize): + for r in range(pixelSize): + pixel[i+r,j] = backgroundColor + pixel[i,j+r] = backgroundColor + + image.save('/tmp/.i3lock.png') + +def lock(): + os.system('i3lock -u -i /tmp/.i3lock.png') + +if __name__=='__main__': + screenshot() + + pixelate() + + lock()