Cleaner, more flexible install process after re-installating
parent
042eef68f8
commit
34d5596a67
|
@ -0,0 +1 @@
|
|||
/home/.Xresources.desk
|
|
@ -1,11 +1,11 @@
|
|||
[A2J]
|
||||
AutoExport=true
|
||||
AutoStart=true
|
||||
AutoExport=false
|
||||
AutoStart=false
|
||||
ExportHW=true
|
||||
|
||||
[ALSA-Audio]
|
||||
BridgeChannels=2
|
||||
BridgeIndexType=1
|
||||
BridgeIndexType=2
|
||||
BridgeTool=zita
|
||||
|
||||
[JACK]
|
File diff suppressed because one or more lines are too long
|
@ -0,0 +1,3 @@
|
|||
hamster-time-tracker
|
||||
realtime-privileges
|
||||
zita-ajbridge
|
|
@ -0,0 +1,53 @@
|
|||
arc-gtk-theme
|
||||
arc-icon-theme
|
||||
autojump
|
||||
cadence
|
||||
docker
|
||||
dunst
|
||||
feh
|
||||
firefox
|
||||
flameshot
|
||||
i3-wm
|
||||
i3lock-color
|
||||
jq
|
||||
libusb-compat
|
||||
maim
|
||||
mlocate
|
||||
nemo
|
||||
neofetch
|
||||
network-manager-applet
|
||||
networkmanager
|
||||
noto-fonts-emoji
|
||||
obsidian
|
||||
oh-my-zsh-git
|
||||
pacman-contrib
|
||||
pass
|
||||
picom
|
||||
playerctl
|
||||
polybar
|
||||
powerline-fonts
|
||||
python-pip
|
||||
python-pygments
|
||||
rofi
|
||||
rsync
|
||||
signal-desktop
|
||||
telegram-desktop
|
||||
terminator
|
||||
thunderbird
|
||||
ttf-dejavu
|
||||
ttf-font-awesome-5
|
||||
ttf-material-icons-git
|
||||
ttf-symbola
|
||||
ttf-weather-icons
|
||||
usb_modeswitch
|
||||
vim
|
||||
vscodium-bin
|
||||
wget
|
||||
xautolock
|
||||
xdg-user-dirs
|
||||
xdotool
|
||||
xorg-server
|
||||
xorg-xinit
|
||||
xsel
|
||||
yay-bin
|
||||
zsh
|
|
@ -0,0 +1,54 @@
|
|||
arc-gtk-theme
|
||||
arc-icon-theme
|
||||
autojump
|
||||
cadence
|
||||
docker
|
||||
dunst
|
||||
feh
|
||||
firefox
|
||||
flameshot
|
||||
i3-wm
|
||||
i3lock-color
|
||||
jq
|
||||
libusb-compat
|
||||
maim
|
||||
mlocate
|
||||
nemo
|
||||
neofetch
|
||||
network-manager-applet
|
||||
networkmanager
|
||||
noto-fonts-emoji
|
||||
numlockx
|
||||
obsidian
|
||||
oh-my-zsh-git
|
||||
pacman-contrib
|
||||
pass
|
||||
picom
|
||||
playerctl
|
||||
polybar
|
||||
powerline-fonts
|
||||
python-pip
|
||||
python-pygments
|
||||
rofi
|
||||
rsync
|
||||
signal-desktop
|
||||
telegram-desktop
|
||||
terminator
|
||||
thunderbird
|
||||
ttf-dejavu
|
||||
ttf-font-awesome-5
|
||||
ttf-material-icons-git
|
||||
ttf-symbola
|
||||
ttf-weather-icons
|
||||
usb_modeswitch
|
||||
vim
|
||||
vscodium-bin
|
||||
wget
|
||||
xautolock
|
||||
xdg-user-dirs
|
||||
xdotool
|
||||
xorg-server
|
||||
xorg-xinit
|
||||
xsel
|
||||
yay-bin
|
||||
zsh
|
|
@ -25,6 +25,7 @@ bindsym XF86AudioNext exec --no-startup-id playerctl next
|
|||
# PROGRAMS STARTED AUTOMATICALLY
|
||||
##################################
|
||||
|
||||
# Time tracking
|
||||
exec hamster
|
||||
|
||||
# cadence will take care of all we need :
|
||||
|
@ -57,7 +58,7 @@ exec --no-startup-id amixer -D hw:PCH -M sset Headphone 100%
|
|||
|
||||
# Scratchpad
|
||||
## For Hamster, moving to SP automatically is problematic. Do it only by hand.
|
||||
for_window [class="Hamster" window_type="normal"] floating enable
|
||||
for_window [class="Hamster" window_type="normal"] floating enable, move scratchpad
|
||||
for_window [class="Non-Mixer"] mark "mixer", move scratchpad
|
||||
for_window [class="Catia*"] mark "jack", move scratchpad
|
||||
bindsym $mod+Shift+j [con_mark="jack"] scratchpad show, move position center
|
||||
|
|
|
@ -1,138 +0,0 @@
|
|||
# This file has been auto-generated by i3-config-wizard(1).
|
||||
# It will not be overwritten, so edit it as you like.
|
||||
#
|
||||
# Should you change your keyboard layout some time, delete
|
||||
# this file and re-run i3-config-wizard(1).
|
||||
#
|
||||
|
||||
# i3 config file (v4)
|
||||
#
|
||||
# Please see https://i3wm.org/docs/userguide.html for a complete reference!
|
||||
|
||||
set $mod Mod1
|
||||
|
||||
# Font for window titles. Will also be used by the bar unless a different font
|
||||
# is used in the bar {} block below.
|
||||
font pango:Roboto, Bold 10
|
||||
|
||||
# Use Mouse+$mod to drag floating windows to their wanted position
|
||||
floating_modifier $mod
|
||||
|
||||
# start a terminal
|
||||
bindsym $mod+Return exec i3-sensible-terminal
|
||||
|
||||
# kill focused window
|
||||
bindsym $mod+q kill
|
||||
|
||||
# start dmenu (a program launcher)
|
||||
bindsym $mod+d exec rofi -show run
|
||||
|
||||
# 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
|
||||
|
||||
# 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+z 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+Shift+q focus parent
|
||||
|
||||
# switch to workspace
|
||||
bindsym $mod+ampersand workspace 1
|
||||
bindsym $mod+eacute workspace 2
|
||||
bindsym $mod+quotedbl workspace 3
|
||||
bindsym $mod+apostrophe workspace 4
|
||||
bindsym $mod+parenleft workspace 5
|
||||
bindsym $mod+minus workspace 6
|
||||
bindsym $mod+egrave workspace 7
|
||||
bindsym $mod+underscore workspace 8
|
||||
bindsym $mod+ccedilla workspace 9
|
||||
bindsym $mod+agrave workspace 10
|
||||
|
||||
# move focused container to workspace
|
||||
bindsym $mod+Shift+ampersand move container to workspace 1
|
||||
bindsym $mod+Shift+eacute move container to workspace 2
|
||||
bindsym $mod+Shift+quotedbl move container to workspace 3
|
||||
bindsym $mod+Shift+apostrophe move container to workspace 4
|
||||
bindsym $mod+Shift+5 move container to workspace 5
|
||||
bindsym $mod+Shift+minus move container to workspace 6
|
||||
bindsym $mod+Shift+egrave move container to workspace 7
|
||||
bindsym $mod+Shift+underscore move container to workspace 8
|
||||
bindsym $mod+Shift+ccedilla move container to workspace 9
|
||||
bindsym $mod+Shift+agrave move container to workspace 10
|
||||
|
||||
# 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'"
|
||||
|
||||
# all windows (except non-float) have a 1px border
|
||||
new_window pixel 1
|
||||
|
||||
# hide borders when touching edges
|
||||
hide_edge_borders both
|
||||
|
||||
# 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.
|
||||
|
||||
# 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
|
||||
bindsym Return mode "default"
|
||||
bindsym Escape mode "default"
|
||||
}
|
||||
|
||||
bindsym $mod+r mode "resize"
|
||||
|
||||
# Start i3bar to display a workspace bar (plus the system information i3status
|
||||
# finds out, if available)
|
||||
#bar {
|
||||
#status_command i3status
|
||||
#}
|
||||
|
||||
#put workspace 1 on main screen
|
||||
workspace 1 output DVI-D-0
|
||||
|
||||
#press the same combinaison for changing workspace to get back to old workspace (like cd -)
|
||||
workspace_auto_back_and_forth yes
|
||||
|
||||
#start compositor
|
||||
exec compton -b
|
||||
|
|
@ -42,20 +42,17 @@ smart_gaps on
|
|||
# PROGRAMS STARTED AUTOMATICALLY
|
||||
##################################
|
||||
|
||||
#start compositor
|
||||
# Start compositor
|
||||
exec --no-startup-id picom --config ~/.config/picom.conf
|
||||
|
||||
#start NetworkManager applet
|
||||
# Start NetworkManager applet
|
||||
exec --no-startup-id nm-applet
|
||||
|
||||
#start polybar
|
||||
# Start polybar
|
||||
exec_always --no-startup-id $HOME/.config/polybar/scripts/launch_polybar.sh
|
||||
|
||||
# configure keyboard layout
|
||||
exec setxkbmap fr
|
||||
|
||||
# set numlock on
|
||||
exec numlockx on
|
||||
exec --no-startup-id numlockx on
|
||||
|
||||
# turn to black screen after 9 minutes of doing nothing
|
||||
exec --no-startup-id xset dpms 600
|
||||
|
@ -69,28 +66,24 @@ exec dunst
|
|||
# set ALSA initial volume
|
||||
exec --no-startup-id amixer -D hw:PCH -M sset Master 50%
|
||||
|
||||
# standard apps for working
|
||||
exec standardnotes-desktop
|
||||
exec --no-startup-id i3-msg 'workspace 3; exec firefox'
|
||||
# standard apps
|
||||
exec --no-startup-id i3-msg 'workspace 1; exec i3-sensible-terminal'
|
||||
exec firefox
|
||||
exec thunderbird
|
||||
exec signal-desktop
|
||||
exec telegram-desktop
|
||||
exec obsidian
|
||||
|
||||
exec --no-startup-id i3-msg 'workspace number 1; exec i3-sensible-terminal'
|
||||
|
||||
# fetch keys from HSM
|
||||
exec --no-startup-id gpg --card-status
|
||||
|
||||
# nextcloud sync client
|
||||
exec nextcloud
|
||||
# ensure keyboard layout
|
||||
exec --no-startup-id setxkbmap fr
|
||||
##################################
|
||||
# BINDINGS FOR STARTING PROGRAMS
|
||||
##################################
|
||||
# start a terminal
|
||||
bindsym $mod+Return exec i3-sensible-terminal
|
||||
# start SSH connexion to all VMs
|
||||
bindsym $mod+Shift+Return exec terminator -l picasoft
|
||||
bindsym $mod+Return exec --no-startup-id i3-sensible-terminal
|
||||
|
||||
# start rofi (a program launcher)
|
||||
bindsym $mod+d exec rofi -show run -theme sidebar
|
||||
|
@ -99,11 +92,11 @@ bindsym $mod+Shift+d exec ~/.config/rofi/emoji-picker.py
|
|||
# just lock the screen
|
||||
bindsym $mod+l exec --no-startup-id $Locker && sleep 1
|
||||
|
||||
# lock and suspend to RAM
|
||||
bindsym $mod+Shift+l exec --no-startup-id $Locker && systemctl suspend
|
||||
# lock and suspend to SWAP
|
||||
bindsym $mod+Shift+l exec --no-startup-id $Locker && systemctl hibernate
|
||||
|
||||
# open Explorer
|
||||
bindsym Mod4+e exec nemo
|
||||
bindsym $mod+e exec --no-startup-id nemo
|
||||
|
||||
# screenshot and save to file
|
||||
bindsym Shift+Print exec ~/.config/i3/scripts/screenshot.py -s
|
||||
|
@ -127,6 +120,7 @@ bindsym $mod+p exec passmenu
|
|||
bindsym Mod4+p exec playerctl play-pause
|
||||
bindsym Mod4+Right exec playerctl next
|
||||
bindsym Mod4+Left exec playerctl previous
|
||||
|
||||
##################################
|
||||
# BINDINGS FOR STANDARD OPERATIONS
|
||||
##################################
|
||||
|
@ -154,9 +148,6 @@ 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+e layout toggle splith splitv tabbed
|
||||
|
||||
# toggle tiling / floating
|
||||
bindsym $mod+space floating toggle
|
||||
|
||||
|
@ -187,9 +178,6 @@ bindsym $mod+Shift+underscore move container to workspace 8
|
|||
bindsym $mod+Shift+ccedilla move container to workspace 9
|
||||
bindsym $mod+Shift+agrave move container to workspace 10
|
||||
|
||||
# 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
|
||||
|
||||
|
@ -208,7 +196,7 @@ bindsym $mod+r mode "$resize_mode"
|
|||
# BINDINGS FOR NOTIFICATIONS
|
||||
##################################
|
||||
|
||||
bindsym Ctrl+Shift+space exec dunstctl close-all
|
||||
bindsym Ctrl+Shift+BackSpace exec dunstctl close-all
|
||||
bindsym Ctrl+$mod+space exec dunstctl history-pop
|
||||
bindsym Shift+BackSpace exec dunstctl close
|
||||
|
||||
|
@ -218,7 +206,6 @@ bindsym Shift+BackSpace exec dunstctl close
|
|||
|
||||
# some windows will float automatically
|
||||
for_window [class="(?i)Thunderbird"] floating enable
|
||||
for_window [window_role="Steam"] floating enable
|
||||
for_window [window_role="About"] floating enable
|
||||
for_window [window_role="Organizer"] floating enable
|
||||
for_window [title="^Terminator *"] floating enable
|
||||
|
@ -241,9 +228,9 @@ bindsym $mod+Shift+s [class="Signal"] scratchpad show, move position center
|
|||
bindsym $mod+Shift+t [class="Telegram"] scratchpad show, move position center
|
||||
bindsym Mod4+ampersand [title="(?i)perso.*obsidian"] scratchpad show, move container to workspace 4, workspace 4, floating disable
|
||||
bindsym Mod4+eacute [title="(?i)tech.*obsidian"] scratchpad show, move container to workspace 4, workspace 4, floating disable
|
||||
bindsym Mod4+quotedbl [title="(?i)identibat.*obsidian"] scratchpad show, move container to workspace 4, workspace 4, floating disable
|
||||
bindsym Mod4+apostrophe [title="(?i).*isorédu.*obsidian"] scratchpad show, move container to workspace 4, workspace 4, floating disable
|
||||
|
||||
# automatic workspace
|
||||
assign [class="(?i)Obsidian"] → number 4
|
||||
assign [class="(?i)Tor Browser"] → number 5
|
||||
assign [class="(?i)Firefox"] → number 3
|
||||
assign [class="(?i)VSCodium"] → number 2
|
||||
|
|
|
@ -34,7 +34,4 @@ i3lock \
|
|||
--indicator \
|
||||
--time-str="%H:%M:%S" \
|
||||
\
|
||||
--verif-text="Chosto ?" \
|
||||
--wrong-text="LEURRE" \
|
||||
--radius=110 \
|
||||
--noinput-text="OH DIS DONC" \
|
||||
--radius=110
|
||||
|
|
|
@ -4,41 +4,40 @@ JACK settings, as persisted by D-Bus object.
|
|||
You probably don't want to edit this because
|
||||
it will be overwritten next time jackdbus saves.
|
||||
-->
|
||||
<!-- Thu Jun 21 19:58:08 2018 -->
|
||||
<!-- Sat Feb 18 21:25:33 2023 -->
|
||||
<jack>
|
||||
<engine>
|
||||
<option name="driver">alsa</option>
|
||||
<option name="self-connect-mode">e</option>
|
||||
<option name="verbose">true</option>
|
||||
</engine>
|
||||
<drivers>
|
||||
<driver name="loopback">
|
||||
</driver>
|
||||
<driver name="dummy">
|
||||
</driver>
|
||||
<driver name="firewire">
|
||||
</driver>
|
||||
<driver name="alsarawmidi">
|
||||
</driver>
|
||||
<driver name="proxy">
|
||||
</driver>
|
||||
<driver name="alsa">
|
||||
<option name="capture">hw:PCH,0</option>
|
||||
<option name="playback">hw:PCH,0</option>
|
||||
<option name="nperiods">3</option>
|
||||
<option name="inchannels">2</option>
|
||||
<option name="outchannels">2</option>
|
||||
</driver>
|
||||
<driver name="net">
|
||||
<driver name="alsarawmidi">
|
||||
</driver>
|
||||
<driver name="dummy">
|
||||
</driver>
|
||||
<driver name="proxy">
|
||||
</driver>
|
||||
<driver name="loopback">
|
||||
</driver>
|
||||
<driver name="netone">
|
||||
</driver>
|
||||
<driver name="net">
|
||||
</driver>
|
||||
</drivers>
|
||||
<internals>
|
||||
<internal name="profiler">
|
||||
<internal name="netmanager">
|
||||
</internal>
|
||||
<internal name="netadapter">
|
||||
<internal name="profiler">
|
||||
</internal>
|
||||
<internal name="audioadapter">
|
||||
</internal>
|
||||
<internal name="netmanager">
|
||||
<internal name="netadapter">
|
||||
</internal>
|
||||
</internals>
|
||||
</jack>
|
|
@ -1 +0,0 @@
|
|||
/etc/lightdm
|
|
@ -1,65 +0,0 @@
|
|||
# LightDM GTK+ Configuration
|
||||
# Available configuration options listed below.
|
||||
#
|
||||
# Appearance:
|
||||
# theme-name = GTK+ theme to use
|
||||
# icon-theme-name = Icon theme to use
|
||||
# cursor-theme-name = Cursor theme to use
|
||||
# cursor-theme-size = Cursor size to use
|
||||
# background = Background file to use, either an image path or a color (e.g. #772953)
|
||||
# user-background = false|true ("true" by default) Display user background (if available)
|
||||
# transition-duration = Length of time (in milliseconds) to transition between background images ("500" by default)
|
||||
# transition-type = ease-in-out|linear|none ("ease-in-out" by default)
|
||||
#
|
||||
# Fonts:
|
||||
# font-name = Font to use
|
||||
# xft-antialias = false|true Whether to antialias Xft fonts
|
||||
# xft-dpi = Resolution for Xft in dots per inch (e.g. 96)
|
||||
# xft-hintstyle = none|slight|medium|hintfull What degree of hinting to use
|
||||
# xft-rgba = none|rgb|bgr|vrgb|vbgr Type of subpixel antialiasing
|
||||
#
|
||||
# Login window:
|
||||
# active-monitor = Monitor to display greeter window (name or number). Use #cursor value to display greeter at monitor with cursor. Can be a semicolon separated list
|
||||
# position = x y ("50% 50%" by default) Login window position
|
||||
# default-user-image = Image used as default user icon, path or #icon-name
|
||||
# hide-user-image = false|true ("false" by default)
|
||||
#
|
||||
# Panel:
|
||||
# panel-position = top|bottom ("top" by default)
|
||||
# clock-format = strftime-format string, e.g. %H:%M
|
||||
# indicators = semi-colon ";" separated list of allowed indicator modules. Built-in indicators include "~a11y", "~language", "~session", "~power", "~clock", "~host", "~spacer". Unity indicators can be represented by short name (e.g. "sound", "power"), service file name, or absolute path
|
||||
#
|
||||
# Accessibility:
|
||||
# a11y-states = states of accessibility features: "name" - save state on exit, "-name" - disabled at start (default value for unlisted), "+name" - enabled at start. Allowed names: contrast, font, keyboard, reader.
|
||||
# keyboard = command to launch on-screen keyboard (e.g. "onboard")
|
||||
# keyboard-position = x y[;width height] ("50%,center -0;50% 25%" by default) Works only for "onboard"
|
||||
# reader = command to launch screen reader (e.g. "orca")
|
||||
#
|
||||
# Security:
|
||||
# allow-debugging = false|true ("false" by default)
|
||||
# screensaver-timeout = Timeout (in seconds) until the screen blanks when the greeter is called as lockscreen
|
||||
#
|
||||
# Template for per-monitor configuration:
|
||||
# [monitor: name]
|
||||
# background = overrides default value
|
||||
# user-background = overrides default value
|
||||
# laptop = false|true ("false" by default) Marks monitor as laptop display
|
||||
# transition-duration = overrides default value
|
||||
#
|
||||
[greeter]
|
||||
active-monitor=0
|
||||
background=/usr/share/pixmaps/totoro.jpg
|
||||
#user-background=
|
||||
theme-name=Arc
|
||||
icon-theme-name=Arc
|
||||
font-name=Roboto 10
|
||||
#xft-antialias=
|
||||
#xft-dpi=
|
||||
#xft-hintstyle=
|
||||
#xft-rgba=
|
||||
indicators= ~host;~spacer;~clock;~spacer;
|
||||
#clock-format=
|
||||
#keyboard=
|
||||
#reader=
|
||||
#position=
|
||||
#screensaver-timeout=
|
|
@ -1,169 +0,0 @@
|
|||
|
||||
# General configuration
|
||||
#
|
||||
# start-default-seat = True to always start one seat if none are defined in the configuration
|
||||
# greeter-user = User to run greeter as
|
||||
# minimum-display-number = Minimum display number to use for X servers
|
||||
# minimum-vt = First VT to run displays on
|
||||
# lock-memory = True to prevent memory from being paged to disk
|
||||
# user-authority-in-system-dir = True if session authority should be in the system location
|
||||
# guest-account-script = Script to be run to setup guest account
|
||||
# logind-check-graphical = True to on start seats that are marked as graphical by logind
|
||||
# log-directory = Directory to log information to
|
||||
# run-directory = Directory to put running state in
|
||||
# cache-directory = Directory to cache to
|
||||
# sessions-directory = Directory to find sessions
|
||||
# remote-sessions-directory = Directory to find remote sessions
|
||||
# greeters-directory = Directory to find greeters
|
||||
# backup-logs = True to move add a .old suffix to old log files when opening new ones
|
||||
# dbus-service = True if LightDM provides a D-Bus service to control it
|
||||
#
|
||||
[LightDM]
|
||||
#start-default-seat=true
|
||||
#greeter-user=lightdm
|
||||
#minimum-display-number=0
|
||||
#minimum-vt=7 # Setting this to a value < 7 implies security issues, see FS#46799
|
||||
#lock-memory=true
|
||||
#user-authority-in-system-dir=false
|
||||
#guest-account-script=guest-account
|
||||
#logind-check-graphical=false
|
||||
log-directory=/var/log/lightdm
|
||||
run-directory=/run/lightdm
|
||||
#cache-directory=/var/cache/lightdm
|
||||
#sessions-directory=/usr/share/lightdm/sessions:/usr/share/xsessions:/usr/share/wayland-sessions
|
||||
#remote-sessions-directory=/usr/share/lightdm/remote-sessions
|
||||
#greeters-directory=$XDG_DATA_DIRS/lightdm/greeters:$XDG_DATA_DIRS/xgreeters
|
||||
#backup-logs=true
|
||||
#dbus-service=true
|
||||
|
||||
#
|
||||
# Seat configuration
|
||||
#
|
||||
# Seat configuration is matched against the seat name glob in the section, for example:
|
||||
# [Seat:*] matches all seats and is applied first.
|
||||
# [Seat:seat0] matches the seat named "seat0".
|
||||
# [Seat:seat-thin-client*] matches all seats that have names that start with "seat-thin-client".
|
||||
#
|
||||
# type = Seat type (local, xremote, unity)
|
||||
# pam-service = PAM service to use for login
|
||||
# pam-autologin-service = PAM service to use for autologin
|
||||
# pam-greeter-service = PAM service to use for greeters
|
||||
# xserver-backend = X backend to use (mir)
|
||||
# xserver-command = X server command to run (can also contain arguments e.g. X -special-option)
|
||||
# xmir-command = Xmir server command to run (can also contain arguments e.g. Xmir -special-option)
|
||||
# xserver-config = Config file to pass to X server
|
||||
# xserver-layout = Layout to pass to X server
|
||||
# xserver-allow-tcp = True if TCP/IP connections are allowed to this X server
|
||||
# xserver-share = True if the X server is shared for both greeter and session
|
||||
# xserver-hostname = Hostname of X server (only for type=xremote)
|
||||
# xserver-display-number = Display number of X server (only for type=xremote)
|
||||
# xdmcp-manager = XDMCP manager to connect to (implies xserver-allow-tcp=true)
|
||||
# xdmcp-port = XDMCP UDP/IP port to communicate on
|
||||
# xdmcp-key = Authentication key to use for XDM-AUTHENTICATION-1 (stored in keys.conf)
|
||||
# unity-compositor-command = Unity compositor command to run (can also contain arguments e.g. unity-system-compositor -special-option)
|
||||
# unity-compositor-timeout = Number of seconds to wait for compositor to start
|
||||
# greeter-session = Session to load for greeter
|
||||
# greeter-hide-users = True to hide the user list
|
||||
# greeter-allow-guest = True if the greeter should show a guest login option
|
||||
# greeter-show-manual-login = True if the greeter should offer a manual login option
|
||||
# greeter-show-remote-login = True if the greeter should offer a remote login option
|
||||
# user-session = Session to load for users
|
||||
# allow-user-switching = True if allowed to switch users
|
||||
# allow-guest = True if guest login is allowed
|
||||
# guest-session = Session to load for guests (overrides user-session)
|
||||
# session-wrapper = Wrapper script to run session with
|
||||
# greeter-wrapper = Wrapper script to run greeter with
|
||||
# guest-wrapper = Wrapper script to run guest sessions with
|
||||
# display-setup-script = Script to run when starting a greeter session (runs as root)
|
||||
# display-stopped-script = Script to run after stopping the display server (runs as root)
|
||||
# greeter-setup-script = Script to run when starting a greeter (runs as root)
|
||||
# session-setup-script = Script to run when starting a user session (runs as root)
|
||||
# session-cleanup-script = Script to run when quitting a user session (runs as root)
|
||||
# autologin-guest = True to log in as guest by default
|
||||
# autologin-user = User to log in with by default (overrides autologin-guest)
|
||||
# autologin-user-timeout = Number of seconds to wait before loading default user
|
||||
# autologin-session = Session to load for automatic login (overrides user-session)
|
||||
# autologin-in-background = True if autologin session should not be immediately activated
|
||||
# exit-on-failure = True if the daemon should exit if this seat fails
|
||||
#
|
||||
[Seat:*]
|
||||
#type=local
|
||||
#pam-service=lightdm
|
||||
#pam-autologin-service=lightdm-autologin
|
||||
#pam-greeter-service=lightdm-greeter
|
||||
#xserver-backend=
|
||||
xserver-command=X -ardelay 300 -arinterval 30
|
||||
#xmir-command=Xmir
|
||||
#xserver-config=
|
||||
#xserver-layout=
|
||||
#xserver-allow-tcp=false
|
||||
#xserver-share=true
|
||||
#xserver-hostname=
|
||||
#xserver-display-number=
|
||||
#xdmcp-manager=
|
||||
#xdmcp-port=177
|
||||
#xdmcp-key=
|
||||
#unity-compositor-command=unity-system-compositor
|
||||
#unity-compositor-timeout=60
|
||||
#greeter-session=example-gtk-gnome
|
||||
#greeter-hide-users=false
|
||||
#greeter-allow-guest=true
|
||||
#greeter-show-manual-login=false
|
||||
#greeter-show-remote-login=true
|
||||
user-session=xinitrc
|
||||
#allow-user-switching=true
|
||||
#allow-guest=true
|
||||
#guest-session=
|
||||
session-wrapper=/etc/lightdm/Xsession
|
||||
#greeter-wrapper=
|
||||
#guest-wrapper=
|
||||
display-setup-script=/usr/bin/setxkbmap fr
|
||||
#display-stopped-script=
|
||||
#greeter-setup-script=
|
||||
#session-setup-script=
|
||||
#session-cleanup-script=
|
||||
#autologin-guest=false
|
||||
#autologin-user=
|
||||
#autologin-user-timeout=0
|
||||
#autologin-in-background=false
|
||||
#autologin-session=
|
||||
#exit-on-failure=false
|
||||
|
||||
#
|
||||
# XDMCP Server configuration
|
||||
#
|
||||
# enabled = True if XDMCP connections should be allowed
|
||||
# port = UDP/IP port to listen for connections on
|
||||
# listen-address = Host/address to listen for XDMCP connections (use all addresses if not present)
|
||||
# key = Authentication key to use for XDM-AUTHENTICATION-1 or blank to not use authentication (stored in keys.conf)
|
||||
# hostname = Hostname to report to XDMCP clients (defaults to system hostname if unset)
|
||||
#
|
||||
# The authentication key is a 56 bit DES key specified in hex as 0xnnnnnnnnnnnnnn. Alternatively
|
||||
# it can be a word and the first 7 characters are used as the key.
|
||||
#
|
||||
[XDMCPServer]
|
||||
#enabled=false
|
||||
#port=177
|
||||
#listen-address=
|
||||
#key=
|
||||
#hostname=
|
||||
|
||||
#
|
||||
# VNC Server configuration
|
||||
#
|
||||
# enabled = True if VNC connections should be allowed
|
||||
# command = Command to run Xvnc server with
|
||||
# port = TCP/IP port to listen for connections on
|
||||
# listen-address = Host/address to listen for VNC connections (use all addresses if not present)
|
||||
# width = Width of display to use
|
||||
# height = Height of display to use
|
||||
# depth = Color depth of display to use
|
||||
#
|
||||
[VNCServer]
|
||||
#enabled=false
|
||||
#command=Xvnc
|
||||
#port=5900
|
||||
#listen-address=
|
||||
#width=1024
|
||||
#height=768
|
||||
#depth=8
|
|
@ -1 +0,0 @@
|
|||
.lock
|
|
@ -1,6 +0,0 @@
|
|||
created by
|
||||
The Non-Mixer 1.2.0
|
||||
created on
|
||||
Mon Jun 18 22:54:08 2018
|
||||
version
|
||||
1
|
|
@ -1,5 +0,0 @@
|
|||
Settings
|
||||
Rows
|
||||
One
|
||||
Learn
|
||||
By Strip Name
|
|
@ -1,34 +0,0 @@
|
|||
{
|
||||
Spatialization_Console 0x14 create :range 1.000000 :projection 1 :shown 0
|
||||
Group 0xD create :name "Home"
|
||||
Mixer_Strip 0x1 create :name "Firefox" :width "narrow" :tab "fader" :color 424238335 :gain_mode 0 :mute_mode 0 :group 0xD :auto_input "" :manual_connection 0
|
||||
Chain 0x2 create :strip 0x1 :tab "controls"
|
||||
JACK_Module 0x3 create :parameter_values "0.000000:2.000000" :is_default 1 :chain 0x2 :active 1
|
||||
Gain_Module 0x4 create :parameter_values "1.250000:0.000000" :is_default 1 :chain 0x2 :active 1
|
||||
Meter_Module 0x5 create :is_default 1 :chain 0x2 :active 1
|
||||
JACK_Module 0x6 create :parameter_values "2.000000:0.000000" :is_default 1 :chain 0x2 :active 1
|
||||
Mixer_Strip 0x1B create :name "PianoTeq" :width "narrow" :tab "fader" :color 1350490027 :gain_mode 0 :mute_mode 0 :group 0xD :auto_input "" :manual_connection 0
|
||||
Chain 0x1C create :strip 0x1B :tab "chain"
|
||||
JACK_Module 0x1D create :parameter_values "0.000000:2.000000" :is_default 1 :chain 0x1C :active 1
|
||||
Gain_Module 0x1E create :parameter_values "0.000000:0.000000" :is_default 1 :chain 0x1C :active 1
|
||||
Meter_Module 0x1F create :is_default 1 :chain 0x1C :active 1
|
||||
JACK_Module 0x20 create :parameter_values "2.000000:0.000000" :is_default 1 :chain 0x1C :active 1
|
||||
Mixer_Strip 0x21 create :name "VLC" :width "narrow" :tab "fader" :color 783368690 :gain_mode 0 :mute_mode 0 :group 0xD :auto_input "" :manual_connection 0
|
||||
Chain 0x22 create :strip 0x21 :tab "chain"
|
||||
JACK_Module 0x23 create :parameter_values "0.000000:2.000000" :is_default 1 :chain 0x22 :active 1
|
||||
Gain_Module 0x24 create :parameter_values "0.000000:0.000000" :is_default 1 :chain 0x22 :active 1
|
||||
Meter_Module 0x25 create :is_default 1 :chain 0x22 :active 1
|
||||
JACK_Module 0x26 create :parameter_values "2.000000:0.000000" :is_default 1 :chain 0x22 :active 1
|
||||
Mixer_Strip 0x28 create :name "Audacity" :width "narrow" :tab "fader" :color 1957747793 :gain_mode 0 :mute_mode 0 :group 0xD :auto_input "" :manual_connection 0
|
||||
Chain 0x29 create :strip 0x28 :tab "chain"
|
||||
JACK_Module 0x2A create :parameter_values "0.000000:2.000000" :is_default 1 :chain 0x29 :active 1
|
||||
Gain_Module 0x2B create :parameter_values "0.000000:0.000000" :is_default 1 :chain 0x29 :active 1
|
||||
Meter_Module 0x2C create :is_default 1 :chain 0x29 :active 1
|
||||
JACK_Module 0x2D create :parameter_values "2.000000:0.000000" :is_default 1 :chain 0x29 :active 1
|
||||
Mixer_Strip 0x2E create :name "Mumble" :width "narrow" :tab "fader" :color 1957747793 :gain_mode 0 :mute_mode 0 :group 0xD :auto_input "" :manual_connection 0
|
||||
Chain 0x2F create :strip 0x2E :tab "chain"
|
||||
JACK_Module 0x30 create :parameter_values "0.000000:1.000000" :is_default 1 :chain 0x2F :active 1
|
||||
Gain_Module 0x31 create :parameter_values "0.000000:0.000000" :is_default 1 :chain 0x2F :active 1
|
||||
Meter_Module 0x32 create :is_default 1 :chain 0x2F :active 1
|
||||
JACK_Module 0x33 create :parameter_values "1.000000:0.000000" :is_default 1 :chain 0x2F :active 1
|
||||
}
|
|
@ -1 +0,0 @@
|
|||
/etc/smtpd
|
|
@ -1,10 +0,0 @@
|
|||
# This is the smtpd server system-wide configuration file.
|
||||
# See smtpd.conf(5) for more information.
|
||||
|
||||
# To accept external mail, replace with: listen on all
|
||||
listen on localhost
|
||||
|
||||
# If you edit the file, you have to run "smtpctl update table aliases"
|
||||
table aliases file:/etc/smtpd/aliases
|
||||
table secrets file:/etc/mail/secrets
|
||||
accept from local for any relay via smtps+auth://utc@smtps.utc.fr:465 auth <secrets> as "quentin.duchemin@hds.utc.fr"
|
|
@ -124,9 +124,6 @@ inactive-opacity = 1.0;
|
|||
# frame-opacity = 1.0
|
||||
frame-opacity = 0.7;
|
||||
|
||||
# Default opacity for dropdown menus and popup menus. (0.0 - 1.0, defaults to 1.0)
|
||||
menu-opacity = 0.9
|
||||
|
||||
# Let inactive opacity set by -i override the '_NET_WM_OPACITY' values of windows.
|
||||
# inactive-opacity-override = true
|
||||
inactive-opacity-override = false;
|
||||
|
@ -241,12 +238,6 @@ detect-rounded-corners = true;
|
|||
# detect-client-opacity = false
|
||||
detect-client-opacity = true;
|
||||
|
||||
# Specify refresh rate of the screen. If not specified or 0, picom will
|
||||
# try detecting this with X RandR extension.
|
||||
#
|
||||
# refresh-rate = 60
|
||||
refresh-rate = 0
|
||||
|
||||
# Limit picom to repaint at most once every 1 / 'refresh_rate' second to
|
||||
# boost performance. This should not be used with
|
||||
# vsync drm/opengl/opengl-oml
|
||||
|
|
|
@ -1,29 +1,6 @@
|
|||
[variables]
|
||||
dpi = 90
|
||||
height = 27
|
||||
wireless_interface = wlp8s0
|
||||
top_left = powermenu system-uptime-pretty
|
||||
top_center = xwindow
|
||||
top_right = system-usb-udev alsa date
|
||||
|
||||
[module/alsa]
|
||||
type = internal/alsa
|
||||
|
||||
master-soundcard = hw:PCH
|
||||
speaker-soundcard = hw:PCH
|
||||
headphone-soundcard = hw:PCH
|
||||
|
||||
master-mixer = Master
|
||||
|
||||
format-volume = <ramp-volume> <label-volume>
|
||||
label-muted = 🔇 muted
|
||||
label-muted-foreground = #66
|
||||
|
||||
ramp-volume-0 = 🔈
|
||||
ramp-volume-1 = 🔉
|
||||
ramp-volume-2 = 🔊
|
||||
|
||||
ramp-headphones-0 =
|
||||
ramp-headphones-1 =
|
||||
|
||||
interval = 3
|
|
@ -1,44 +1,6 @@
|
|||
[variables]
|
||||
dpi = 150
|
||||
height = 54
|
||||
wireless_interface = wlp2s0
|
||||
top_left = powermenu system-uptime-pretty battery
|
||||
top_center = xwindow
|
||||
top_right = system-usb-udev backlight pulseaudio date
|
||||
|
||||
[module/backlight]
|
||||
type = internal/backlight
|
||||
card = intel_backlight
|
||||
label = %{F#77dd77}☀️%{F#ddd} %percentage%%
|
||||
bar-width = 10
|
||||
bar-indicator = |
|
||||
bar-fill = ─
|
||||
bar-empty = ─
|
||||
|
||||
[module/pulseaudio]
|
||||
type = internal/pulseaudio
|
||||
interval = 5
|
||||
|
||||
format-volume = <ramp-volume> <label-volume>
|
||||
label-muted = 🔇 muted
|
||||
label-muted-foreground = #666
|
||||
|
||||
ramp-volume-0 = 🔈
|
||||
ramp-volume-1 = 🔉
|
||||
ramp-volume-2 = 🔊
|
||||
|
||||
ramp-headphones-0 =
|
||||
ramp-headphones-1 =
|
||||
|
||||
[module/battery]
|
||||
type = internal/battery
|
||||
full-at = 100
|
||||
battery = BAT0
|
||||
adapter = AC0
|
||||
poll-interval = 5
|
||||
format-charging = <label-charging>
|
||||
format-discharging = <label-discharging>
|
||||
format-full = <label-full>
|
||||
label-charging = %percentage%%
|
||||
label-discharging = %percentage%%
|
||||
label-full = %{F#77dd77}
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
[colors]
|
||||
background = #bb2f343f
|
||||
; First two letter of background are for transparency
|
||||
background = #cc2f343f
|
||||
foreground = #eee
|
||||
foreground-alt = #555
|
||||
secondary = #e60053
|
||||
|
@ -12,9 +13,9 @@ margin-top=50
|
|||
; Common to top and bottom bars
|
||||
[bar/common]
|
||||
width = 100%
|
||||
dpi = ${variables.dpi}
|
||||
dpi = ${variables.dpi:90}
|
||||
enable-ipc = true
|
||||
height = ${variables.height}
|
||||
height = ${variables.height:30}
|
||||
foreground = ${colors.foreground}
|
||||
background = ${colors.background}
|
||||
line-size = 3
|
||||
|
@ -41,9 +42,9 @@ padding-right = 10
|
|||
module-margin-left = 4
|
||||
module-margin-right = 4
|
||||
|
||||
modules-left = ${variables.top_left}
|
||||
modules-center = ${variables.top_center}
|
||||
modules-right = ${variables.top_right}
|
||||
modules-left = ${variables.top_left:powermenu system-uptime-pretty}
|
||||
modules-center = ${variables.top_center:xwindow}
|
||||
modules-right = ${variables.top_right:system-usb-udev alsa date}
|
||||
|
||||
tray-position = right
|
||||
|
||||
|
@ -70,7 +71,7 @@ font-4 = Font Awesome 5 Free:style=solid:size=10;2
|
|||
|
||||
modules-left = i3
|
||||
;modules-center =
|
||||
modules-right = wireless-network updates-arch-combined temperature cpu memory filesystem-custom
|
||||
modules-right = wired-network wireless-network updates-arch-combined temperature cpu memory filesystem-custom
|
||||
|
||||
[module/xwindow]
|
||||
type = internal/xwindow
|
||||
|
@ -79,9 +80,18 @@ label-maxlen=100
|
|||
|
||||
[module/wireless-network]
|
||||
type = internal/network
|
||||
interface = ${variables.wireless_interface}
|
||||
interface-type = wireless
|
||||
interval = 1
|
||||
label-connected = %{F#ddd}%essid% %local_ip% %{F#77dd77}%{F-} %downspeed% %{F#dd7777}%{F-} %upspeed%
|
||||
label-disconnected = Wireless disconnected
|
||||
label-disconnected-foreground = #66
|
||||
|
||||
[module/wired-network]
|
||||
type = internal/network
|
||||
interface =
|
||||
interface-type = wired
|
||||
interval = 1
|
||||
label-connected = %{F#ddd}%ifname% %local_ip% %{F#77dd77}%{F-} %downspeed% %{F#dd7777}%{F-} %upspeed%
|
||||
label-disconnected = Ethernet disconnected
|
||||
label-disconnected-foreground = #66
|
||||
|
||||
|
@ -91,8 +101,8 @@ format = <label-state> <label-mode>
|
|||
|
||||
index-sort = true
|
||||
|
||||
ws-icon-0 = 2;
|
||||
ws-icon-1 = 1;
|
||||
ws-icon-0 = 1;
|
||||
ws-icon-1 = 2;
|
||||
ws-icon-2 = 3;
|
||||
ws-icon-3 = 4;
|
||||
ws-icon-4 = 5;
|
||||
|
@ -215,9 +225,9 @@ label-open = %{F#dd7777}%{F#ddd}
|
|||
label-close = %{F#dd7777}%{F#ddd}
|
||||
label-separator = " · "
|
||||
|
||||
menu-0-0 = Terminate WM
|
||||
menu-0-0 = Exit i3
|
||||
menu-0-0-foreground = ${colors.accent}
|
||||
menu-0-0-exec = bspc quit -1
|
||||
menu-0-0-exec = i3-msg exit
|
||||
menu-0-1 = Reboot
|
||||
menu-0-1-foreground = ${colors.accent}
|
||||
menu-0-1-exec = menu-open-1
|
||||
|
@ -260,3 +270,62 @@ interval = 60
|
|||
type = custom/script
|
||||
exec = ~/.config/polybar/scripts/system-uptime-pretty.sh
|
||||
interval = 30
|
||||
|
||||
[module/backlight]
|
||||
type = internal/backlight
|
||||
card = intel_backlight
|
||||
label = %{F#77dd77}☀️%{F#ddd} %percentage%%
|
||||
bar-width = 10
|
||||
bar-indicator = |
|
||||
bar-fill = ─
|
||||
bar-empty = ─
|
||||
|
||||
[module/pulseaudio]
|
||||
type = internal/pulseaudio
|
||||
interval = 5
|
||||
|
||||
format-volume = <ramp-volume> <label-volume>
|
||||
label-muted = 🔇 muted
|
||||
label-muted-foreground = #666
|
||||
|
||||
ramp-volume-0 = 🔈
|
||||
ramp-volume-1 = 🔉
|
||||
ramp-volume-2 = 🔊
|
||||
|
||||
ramp-headphones-0 =
|
||||
ramp-headphones-1 =
|
||||
|
||||
[module/battery]
|
||||
type = internal/battery
|
||||
full-at = 100
|
||||
battery = BAT0
|
||||
adapter = AC0
|
||||
poll-interval = 5
|
||||
format-charging = <label-charging>
|
||||
format-discharging = <label-discharging>
|
||||
format-full = <label-full>
|
||||
label-charging = %percentage%%
|
||||
label-discharging = %percentage%%
|
||||
label-full = %{F#77dd77}
|
||||
|
||||
[module/alsa]
|
||||
type = internal/alsa
|
||||
|
||||
master-soundcard = hw:PCH
|
||||
speaker-soundcard = hw:PCH
|
||||
headphone-soundcard = hw:PCH
|
||||
|
||||
master-mixer = Master
|
||||
|
||||
format-volume = <ramp-volume> <label-volume>
|
||||
label-muted = 🔇 muted
|
||||
label-muted-foreground = #66
|
||||
|
||||
ramp-volume-0 = 🔈
|
||||
ramp-volume-1 = 🔉
|
||||
ramp-volume-2 = 🔊
|
||||
|
||||
ramp-headphones-0 =
|
||||
ramp-headphones-1 =
|
||||
|
||||
interval = 3
|
|
@ -0,0 +1,4 @@
|
|||
#icons=( )
|
||||
icons=( )
|
||||
#parts=(/ /home /mnt/backup)
|
||||
parts=(/ /home)
|
|
@ -0,0 +1,2 @@
|
|||
icons=()
|
||||
parts=(/)
|
|
@ -1,7 +1,6 @@
|
|||
#/bin/sh
|
||||
|
||||
icons=( )
|
||||
parts=(/ /mnt/data /mnt/backup)
|
||||
source $(dirname $0)/filesystem.data
|
||||
output=""
|
||||
for i in "${!parts[@]}"; do
|
||||
avail=$(df -h ${parts[$i]} | tail -1 | tr -s ' ' | cut -d' ' -f4)
|
|
@ -1,25 +0,0 @@
|
|||
#/bin/sh
|
||||
|
||||
icons=()
|
||||
parts=(/)
|
||||
output=""
|
||||
for i in "${!parts[@]}"; do
|
||||
avail=$(df -h ${parts[$i]} | tail -1 | tr -s ' ' | cut -d' ' -f4)
|
||||
used=$(df -h ${parts[$i]} | tail -1 | tr -s ' ' | cut -d' ' -f5)
|
||||
num=$(echo ${used} | cut -d'%' -f1)
|
||||
|
||||
if [ "$num" -gt 80 ] ; then
|
||||
color="#dd7777"
|
||||
elif [ "$num" -gt 50 ] ; then
|
||||
color="#fba922"
|
||||
else
|
||||
color="#77dd77"
|
||||
fi
|
||||
output=$output"%{F${color}}${icons[$i]} $used%{F#555} · $avail%{F-}"
|
||||
if [ $(($i + 1)) -ne "${#parts[@]}" ] ; then
|
||||
output=$output" "
|
||||
fi
|
||||
|
||||
done
|
||||
|
||||
echo "$output"
|
|
@ -0,0 +1,9 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
names=("chostybottombar" "chostytopbar")
|
||||
killall -q polybar
|
||||
while pgrep -u $UID -x polybar >/dev/null; do sleep 1; done
|
||||
monitor=$(xrandr --query | grep "connected" | grep "primary" | cut -d" " -f1)
|
||||
for name in ${names[@]}; do
|
||||
MONITOR=${monitor} polybar -q --reload ${name} &
|
||||
done
|
|
@ -1,14 +0,0 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
names=("chostybottombar" "chostytopbar")
|
||||
killall -q polybar
|
||||
while pgrep -u $UID -x polybar >/dev/null; do sleep 1; done
|
||||
if type "xrandr"; then
|
||||
monitors=$(xrandr --query | grep " connected" | cut -d" " -f1)
|
||||
monarray=($monitors)
|
||||
for name in ${names[@]}; do
|
||||
MONITOR=${monarray[0]} polybar -q --reload ${name} &
|
||||
done
|
||||
else
|
||||
polybar --reload ${name} &
|
||||
fi
|
|
@ -1,16 +0,0 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
names=("chostybottombar" "chostytopbar")
|
||||
killall -q polybar
|
||||
while pgrep -u $UID -x polybar >/dev/null; do sleep 1; done
|
||||
if type "xrandr"; then
|
||||
monitors=$(xrandr --query | grep " connected" | cut -d" " -f1)
|
||||
monarray=($monitors)
|
||||
for name in ${names[@]}; do
|
||||
for mon in ${monarray[@]}; do
|
||||
MONITOR=${mon} polybar -q --reload ${name} &
|
||||
done
|
||||
done
|
||||
else
|
||||
polybar --reload ${name} &
|
||||
fi
|
|
@ -3,7 +3,8 @@
|
|||
connect=$(ping -q -w 1 -c 1 `ip r | grep default | cut -d ' ' -f 3` &> /dev/null)
|
||||
if [ $? -eq 0 ]; then
|
||||
updates_arch=$(/usr/bin/checkupdates | wc -l)
|
||||
updates_aur=$(/usr/bin/checkupdates-aur | wc -l)
|
||||
# a restricts to AUR packages
|
||||
updates_aur=$(yay -Qua | wc -l)
|
||||
updates=$(("$updates_arch" + "$updates_aur"))
|
||||
if [ "$updates" -gt 0 ]; then
|
||||
echo "%{F#dd7777}%{F#ddd} $updates_arch | $updates_aur"
|
||||
|
|
|
@ -0,0 +1,5 @@
|
|||
[Service]
|
||||
Type=simple
|
||||
ExecStart=
|
||||
ExecStart=-/sbin/agetty -o '-p -f -- \\u' --noclear --autologin chosto %I $TERM
|
||||
|
|
@ -1 +0,0 @@
|
|||
/home/chosty/.config/systemd/notify-backup-failure.service.desk
|
|
@ -2,14 +2,8 @@
|
|||
borderless = True
|
||||
use_custom_url_handler = True
|
||||
custom_url_handler = firefox
|
||||
title_hide_sizetext = True
|
||||
title_transmit_bg_color = "#adbce6"
|
||||
title_receive_bg_color = "#adbce6"
|
||||
title_inactive_bg_color = "#C0BEBF"
|
||||
enabled_plugins = TerminalShot, LaunchpadCodeURLHandler, APTURLHandler, LaunchpadBugURLHandler
|
||||
suppress_multiple_term_dialog = True
|
||||
title_use_system_font = False
|
||||
title_font = Noto Sans Medium 10
|
||||
[keybindings]
|
||||
go_next = <Primary><Shift>n
|
||||
go_prev = <Primary><Shift>p
|
||||
|
@ -30,13 +24,15 @@
|
|||
layout_launcher = <Shift><Alt>l
|
||||
[profiles]
|
||||
[[default]]
|
||||
background_darkness = 0.85
|
||||
icon_bell = False
|
||||
background_darkness = 0.87
|
||||
background_type = transparent
|
||||
cursor_color = "#aaaaaa"
|
||||
font = DejaVu Sans Mono 11
|
||||
scrollbar_position = hidden
|
||||
scrollback_infinite = True
|
||||
use_system_font = False
|
||||
title_transmit_fg_color = "#000000"
|
||||
title_transmit_bg_color = "#ffffff"
|
||||
[layouts]
|
||||
[[default]]
|
||||
[[[child0]]]
|
||||
|
@ -54,101 +50,4 @@
|
|||
order = 0
|
||||
profile = default
|
||||
uuid = 498cd758-0193-4b69-b40a-9743e0b080a7
|
||||
[[picasoft]]
|
||||
[[[child0]]]
|
||||
type = Window
|
||||
parent = ""
|
||||
order = 0
|
||||
position = 0:55
|
||||
maximised = False
|
||||
fullscreen = False
|
||||
size = 3200, 1691
|
||||
title = chosto@chosto: ~
|
||||
last_active_term = a2704452-a79d-4da7-8e26-02006a653f4b
|
||||
last_active_window = True
|
||||
[[[child1]]]
|
||||
type = VPaned
|
||||
parent = child0
|
||||
order = 0
|
||||
position = 843
|
||||
ratio = 0.5
|
||||
[[[child2]]]
|
||||
type = VPaned
|
||||
parent = child1
|
||||
order = 0
|
||||
position = 419
|
||||
ratio = 0.5
|
||||
[[[child3]]]
|
||||
type = HPaned
|
||||
parent = child2
|
||||
order = 0
|
||||
position = 1598
|
||||
ratio = 0.5001564945226917
|
||||
[[[terminal4]]]
|
||||
type = Terminal
|
||||
parent = child3
|
||||
order = 0
|
||||
profile = default
|
||||
uuid = 498cd758-0193-4b69-b40a-9743e0b080a7
|
||||
command = ssh qduchemi@bob.picasoft.net
|
||||
[[[terminal5]]]
|
||||
type = Terminal
|
||||
parent = child3
|
||||
order = 1
|
||||
profile = default
|
||||
uuid = be52c063-b71d-48d9-bf5f-1087e8a5021e
|
||||
command = ssh qduchemi@alice.picasoft.net
|
||||
[[[child6]]]
|
||||
type = HPaned
|
||||
parent = child2
|
||||
order = 1
|
||||
position = 1598
|
||||
ratio = 0.5001564945226917
|
||||
[[[terminal7]]]
|
||||
type = Terminal
|
||||
parent = child6
|
||||
order = 0
|
||||
profile = default
|
||||
uuid = 459f8f25-6f92-46a7-86bc-a591f86cbfb8
|
||||
command = ssh qduchemi@media.picasoft.net
|
||||
[[[terminal8]]]
|
||||
type = Terminal
|
||||
parent = child6
|
||||
order = 1
|
||||
profile = default
|
||||
uuid = 0da29a47-442a-42e6-bfeb-5519e11781cc
|
||||
command = ssh qduchemi@monitoring.picasoft.net
|
||||
[[[child9]]]
|
||||
type = HPaned
|
||||
parent = child1
|
||||
order = 1
|
||||
position = 1598
|
||||
ratio = 0.5001564945226917
|
||||
[[[child10]]]
|
||||
type = VPaned
|
||||
parent = child9
|
||||
order = 0
|
||||
position = 421
|
||||
ratio = 0.5
|
||||
[[[terminal11]]]
|
||||
type = Terminal
|
||||
parent = child10
|
||||
order = 0
|
||||
profile = default
|
||||
uuid = a2704452-a79d-4da7-8e26-02006a653f4b
|
||||
command = ssh qduchemi@pica02.picasoft.net
|
||||
[[[terminal12]]]
|
||||
type = Terminal
|
||||
parent = child10
|
||||
order = 1
|
||||
profile = default
|
||||
uuid = c949ff4d-c156-4444-b8f6-5ccda3a39a0a
|
||||
command = ssh qduchemi@pica01-test.picasoft.net
|
||||
[[[terminal13]]]
|
||||
type = Terminal
|
||||
parent = child9
|
||||
order = 1
|
||||
profile = default
|
||||
uuid = c63ef1d8-085d-4b7a-8e1d-89bc09a2d5bb
|
||||
command = ssh qduchemi@pica01.picasoft.net
|
||||
[plugins]
|
||||
|
|
|
@ -0,0 +1,15 @@
|
|||
# This file is written by xdg-user-dirs-update
|
||||
# If you want to change or add directories, just edit the line you're
|
||||
# interested in. All local changes will be retained on the next run.
|
||||
# Format is XDG_xxx_DIR="$HOME/yyy", where yyy is a shell-escaped
|
||||
# homedir-relative path, or XDG_xxx_DIR="/yyy", where /yyy is an
|
||||
# absolute path. No other format is supported.
|
||||
#
|
||||
XDG_DESKTOP_DIR="$HOME/documents/xdg/desktop"
|
||||
XDG_DOWNLOAD_DIR="$HOME/downloads"
|
||||
XDG_TEMPLATES_DIR="$HOME/documents/xdg/templates"
|
||||
XDG_PUBLICSHARE_DIR="$HOME/documents/xdg/public"
|
||||
XDG_DOCUMENTS_DIR="$HOME/documents"
|
||||
XDG_MUSIC_DIR="$HOME/music"
|
||||
XDG_PICTURES_DIR="$HOME/images"
|
||||
XDG_VIDEOS_DIR="$HOME/videos"
|
|
@ -0,0 +1 @@
|
|||
en_US
|
|
@ -0,0 +1 @@
|
|||
enable-ssh-support
|
|
@ -0,0 +1 @@
|
|||
8870E499C64EEB7720EBA5A442F4FE90129BFAE3
|
120
.init_config.sh
120
.init_config.sh
|
@ -1,14 +1,34 @@
|
|||
#!/bin/bash
|
||||
|
||||
# Environments
|
||||
LAPTOP="laptop"
|
||||
DESKTOP="desk"
|
||||
ENV_EXT_REGEXP=".*\.${LAPTOP}|.*\.${DESKTOP}"
|
||||
|
||||
# Special filename for external config path
|
||||
DEST_FILENAME="dest"
|
||||
|
||||
# Special configuration filename
|
||||
BASE_CONFIG="config_common"
|
||||
MERGE_CONFIG_FOLDER="config.d"
|
||||
FINAL_CONFIG="config"
|
||||
|
||||
# Special directories with per-environment configuration merge
|
||||
I3_CONFIG="i3"
|
||||
POLYBAR_CONFIG="polybar"
|
||||
ARCH_PACKAGES="bootstrap"
|
||||
MERGE_DIRS="${I3_CONFIG} ${POLYBAR_CONFIG} ${ARCH_PACKAGES}"
|
||||
|
||||
# Check if a file has been modified and deleted since last commit, if so perform an action
|
||||
# $1 : path of file
|
||||
# $2 : command to launch if file has been created of modifed
|
||||
# $3 : command to launch if file has been deleted
|
||||
function check_copy() {
|
||||
# When initializing, always copy files
|
||||
if [ ! -z ${INIT} ]; then
|
||||
echo -e "* Running \"$2\"" && eval "$2"
|
||||
return
|
||||
fi
|
||||
echo "$changed_files" | grep --quiet "${1#$HOME/}"
|
||||
if [ $? == "0" ]; then
|
||||
echo "$changed_files" | cut -f 1 | grep --quiet "D"
|
||||
|
@ -19,42 +39,74 @@ function check_copy() {
|
|||
echo "* Changes detected in $1"
|
||||
echo -e "* Running \"$2\"" && eval "$2"
|
||||
fi
|
||||
else
|
||||
echo "$1 not modified, no need to copy"
|
||||
fi
|
||||
}
|
||||
|
||||
# Generates a `config` file in $1, by merging a required $1/{MERGE_CONFIG_FOLDER} file
|
||||
# with an optional `$1/config.d/$2` file. This is useful for having
|
||||
# a common base for multiple computer, and per-computer stuff.
|
||||
# $1 : path of the folder
|
||||
# $2 : optional current environment
|
||||
function merge_config() {
|
||||
echo -e "\n=== Generate ${m} config file ==="
|
||||
rm -f ${CONFIG}/${m}/${FINAL_CONFIG}
|
||||
# Copy common config
|
||||
cp ${CONFIG}/${m}/${BASE_CONFIG} ${CONFIG}/${m}/${FINAL_CONFIG}
|
||||
echo "${CONFIG}/${m}/${FINAL_CONFIG} created"
|
||||
# If there is an override folder, merge given env
|
||||
if [ ! -z ${2} ] && [ -d ${CONFIG}/${m}/${MERGE_CONFIG_FOLDER} ]; then
|
||||
for f in `find ${CONFIG}/${m}/config.d -type f -path "*${2}"`; do
|
||||
echo "Found ${f}, add to regular config file"
|
||||
cat "${f}" >> ${CONFIG}/${m}/${FINAL_CONFIG}
|
||||
done
|
||||
fi
|
||||
}
|
||||
|
||||
function usage() {
|
||||
echo "$0: creates symlink for divergent config between laptop and desktop (e.g. battery management...) and copy configuration to external locations"
|
||||
echo "usage: $0 [${LAPTOP}|${DESKTOP}]"
|
||||
echo "${0}: manage package installation, environment divergence and external location for config, see README."
|
||||
echo "usage: [WM_RESTART=1] [INIT=1] $0 [${ENVIRONMENTS}]"
|
||||
exit 0
|
||||
}
|
||||
|
||||
# Use XDG_CONFIG_HOME if defined, default otherwise
|
||||
CONFIG=${XDG_CONFIG_HOME:-$HOME/.config}
|
||||
|
||||
# Check that there is one matching argument
|
||||
if [ -z "{$1}" ] || [ "$#" -ne 1 ]; then
|
||||
usage
|
||||
fi
|
||||
ENV=${1}
|
||||
|
||||
if [ "${1}" != "${LAPTOP}" ] && [ "${1}" != "${DESKTOP}" ]; then
|
||||
usage
|
||||
fi
|
||||
changed_files="$(git --git-dir=$HOME/.cfg/ --work-tree=$HOME diff-tree -r --name-status --no-commit-id HEAD^1 HEAD)"
|
||||
|
||||
changed_files="$(git --git-dir=$HOME/.cfg/ --work-tree=$HOME diff-tree -r --name-status --no-commit-id HEAD@{1} HEAD)"
|
||||
|
||||
echo "=== Create symlink to *.${1} regular files ==="
|
||||
# Take all specific files and create a symlink pointing to it without the extension
|
||||
# This file will be used by applications
|
||||
for f in `find ${CONFIG} -type f -name "*.${1}"`; do
|
||||
echo "Create symlink to ${f}..."
|
||||
ln -sf ${f} ${f%.*}
|
||||
for m in ${MERGE_DIRS}; do
|
||||
merge_config $m ${ENV}
|
||||
done
|
||||
|
||||
# Take care of config files at home level, outside ${CONFIG} (e.g. Xresources)
|
||||
for f in `find ${HOME} -maxdepth 1 -mindepth 1 -type f -name "*.${1}"`; do
|
||||
echo "Create symlink to ${f}..."
|
||||
ln -sf ${f} ${f%.*}
|
||||
done
|
||||
if [ ! -z "$INIT" ]; then
|
||||
echo -e "* Installing base Arch packages..."
|
||||
yay -Syu --needed --noconfirm - < ${CONFIG}/${ARCH_PACKAGES}/${FINAL_CONFIG}
|
||||
echo -e "* Changing shell to ZSH..."
|
||||
chsh -s $(which zsh)
|
||||
# https://man.archlinux.org/man/rofi-dmenu.5
|
||||
echo -e "* Symlink dmenu → rofi..."
|
||||
sudo ln -s /usr/bin/rofi /usr/bin/dmenu
|
||||
echo -e "* Enabling NetworkManager..."
|
||||
sudo systemctl enable --now NetworkManager
|
||||
fi
|
||||
|
||||
if [ ! -z ${ENV} ]; then
|
||||
echo -e "\n=== Create symlink to *.${ENV} regular files ==="
|
||||
# Take all specific files and create a symlink pointing to it without the extension
|
||||
# This file will be used by applications
|
||||
for f in `find ${CONFIG} -type f -name "*.${ENV}"`; do
|
||||
echo "${f%.*} → ${f}"
|
||||
ln -sf ${f} ${f%.*}
|
||||
done
|
||||
# Take care of config files at home level, outside ${CONFIG} (e.g. Xresources)
|
||||
for f in `find ${HOME} -maxdepth 1 -mindepth 1 -type f -name "*.${ENV}"`; do
|
||||
echo "${f%.*} → ${f}"
|
||||
ln -sf ${f} ${f%.*}
|
||||
done
|
||||
fi
|
||||
|
||||
echo -e "\n=== Copy changed configuration which resides in outer directory ==="
|
||||
# Destination files are regular files
|
||||
|
@ -63,27 +115,19 @@ for f in `find ${CONFIG} -type f -name ${DEST_FILENAME}`; do
|
|||
DEST=`cat ${f}`
|
||||
# Get all files, either regular files or symlinks, which are not the destination file nor specific desktop/laptop files
|
||||
# This is because if desktop/laptop files exist, they already have a symlink pointing to them at this stage
|
||||
for config_file in `find ${DIR} -maxdepth 1 -mindepth 1 -not \( -name "*.${LAPTOP}" -o -name "*.${DESKTOP}" -o -name "${DEST_FILENAME}" \)`; do
|
||||
for config_file in `find ${DIR} -regextype emacs -mindepth 1 -type f -not \( -regex "*.${ENV_EXT_REGEXP}" -o -name "${DEST_FILENAME}" \)`; do
|
||||
# Now copy to destination
|
||||
sudo mkdir -p ${DEST}
|
||||
check_copy "${config_file}" "sudo cp ${config_file} ${DEST}" "sudo rm ${DEST}/${config_file##*/}"
|
||||
done
|
||||
done
|
||||
|
||||
merge_config="polybar i3"
|
||||
for m in $merge_config; do
|
||||
echo -e "\n=== Generate ${m} config file ==="
|
||||
rm -f ${CONFIG}/${m}/config
|
||||
cp ${CONFIG}/${m}/config_common ${CONFIG}/${m}/config
|
||||
for f in `find ${CONFIG}/${m}/config.d -type f -name "${1}"`; do
|
||||
echo "Found ${f}, add to regular config file"
|
||||
cat "${f}" >> ${CONFIG}/${m}/config
|
||||
done
|
||||
done
|
||||
if [ ! -z "${WM_RESTART}" ]; then
|
||||
echo -e "\n=== Restart graphical environment ==="
|
||||
# Reload i3 configuration
|
||||
i3-msg reload
|
||||
|
||||
# Reload i3 configuration
|
||||
i3-msg reload && echo "Successfully reloaded i3 config"
|
||||
|
||||
# Restart picom due to this bug https://github.com/yshui/picom/issues/166
|
||||
killall picom; picom &>/dev/null &
|
||||
# Restart picom due to this bug https://github.com/yshui/picom/issues/166
|
||||
killall picom; picom &>/dev/null &
|
||||
fi
|
||||
|
||||
|
|
|
@ -1 +0,0 @@
|
|||
*.bak
|
36
.taskrc
36
.taskrc
|
@ -1,36 +0,0 @@
|
|||
# [Created by task 2.5.1 6/15/2018 21:04:54]
|
||||
# Taskwarrior program configuration file.
|
||||
# For more documentation, see http://taskwarrior.org or try 'man task', 'man task-color',
|
||||
# 'man task-sync' or 'man taskrc'
|
||||
|
||||
# Here is an example of entries that use the default, override and blank values
|
||||
# variable=foo -- By specifying a value, this overrides the default
|
||||
# variable= -- By specifying no value, this means no default
|
||||
# #variable=foo -- By commenting out the line, or deleting it, this uses the default
|
||||
|
||||
# Use the command 'task show' to see all defaults and overrides
|
||||
|
||||
# Files
|
||||
data.location=~/.task
|
||||
|
||||
# Color theme (uncomment one to use)
|
||||
#include /usr/share/doc/task/rc/light-16.theme
|
||||
#include /usr/share/doc/task/rc/light-256.theme
|
||||
#include /usr/share/doc/task/rc/dark-16.theme
|
||||
#include /usr/share/doc/task/rc/dark-256.theme
|
||||
#include /usr/share/doc/task/rc/dark-red-256.theme
|
||||
#include /usr/share/doc/task/rc/dark-green-256.theme
|
||||
#include /usr/share/doc/task/rc/dark-blue-256.theme
|
||||
#include /usr/share/doc/task/rc/dark-violets-256.theme
|
||||
#include /usr/share/doc/task/rc/dark-yellow-green.theme
|
||||
#include /usr/share/doc/task/rc/dark-gray-256.theme
|
||||
include /usr/share/doc/task/rc/dark-gray-blue-256.theme
|
||||
#include /usr/share/doc/task/rc/solarized-dark-256.theme
|
||||
#include /usr/share/doc/task/rc/solarized-light-256.theme
|
||||
#include /usr/share/doc/task/rc/no-color.theme
|
||||
|
||||
taskd.server=freecinc.com:53589
|
||||
taskd.key=\/home\/chosty\/.task\/freecinc_d4e7fbb1.key.pem
|
||||
taskd.certificate=\/home\/chosty\/.task\/freecinc_d4e7fbb1.cert.pem
|
||||
taskd.ca=\/home\/chosty\/.task\/freecinc_d4e7fbb1.ca.pem
|
||||
taskd.credentials=<censored>
|
|
@ -1,4 +0,0 @@
|
|||
# No need to run xmodmap as /etc/lightdm/Xsession wrapper does so with $HOME/.Xmodmap
|
||||
xrandr --output eDP-1 --auto --output HDMI-2 --auto --scale 2x2 --above eDP-1
|
||||
xrdb -merge ~/.Xresources
|
||||
exec i3
|
134
.zshrc
134
.zshrc
|
@ -1,5 +1,5 @@
|
|||
# Path to your oh-my-zsh installation.
|
||||
export ZSH=$HOME/.oh-my-zsh
|
||||
export ZSH=/usr/share/oh-my-zsh
|
||||
|
||||
# Set name of the theme to load. Optionally, if you set this to "random"
|
||||
# it'll load a random theme each time that oh-my-zsh is loaded.
|
||||
|
@ -9,137 +9,65 @@ ZSH_THEME="agnoster"
|
|||
# Uncomment the following line to use case-sensitive completion.
|
||||
CASE_SENSITIVE="true"
|
||||
|
||||
# Uncomment the following line to use hyphen-insensitive completion. Case
|
||||
# sensitive completion must be off. _ and - will be interchangeable.
|
||||
# HYPHEN_INSENSITIVE="true"
|
||||
|
||||
# Uncomment the following line to disable bi-weekly auto-update checks.
|
||||
# DISABLE_AUTO_UPDATE="true"
|
||||
|
||||
# Uncomment the following line to change how often to auto-update (in days).
|
||||
# export UPDATE_ZSH_DAYS=13
|
||||
|
||||
# Uncomment the following line to disable colors in ls.
|
||||
# DISABLE_LS_COLORS="true"
|
||||
|
||||
# Uncomment the following line to disable auto-setting terminal title.
|
||||
# DISABLE_AUTO_TITLE="true"
|
||||
|
||||
# Uncomment the following line to enable command auto-correction.
|
||||
# ENABLE_CORRECTION="true"
|
||||
# Disable auto-update
|
||||
zstyle ':omz:update' mode disabled
|
||||
|
||||
# Uncomment the following line to display red dots whilst waiting for completion.
|
||||
COMPLETION_WAITING_DOTS="true"
|
||||
|
||||
# Uncomment the following line if you want to disable marking untracked files
|
||||
# under VCS as dirty. This makes repository status check for large repositories
|
||||
# much, much faster.
|
||||
# DISABLE_UNTRACKED_FILES_DIRTY="true"
|
||||
|
||||
# Uncomment the following line if you want to change the command execution time
|
||||
# stamp shown in the history command output.
|
||||
# The optional three formats: "mm/dd/yyyy"|"dd.mm.yyyy"|"yyyy-mm-dd"
|
||||
HIST_STAMPS="dd.mm.yyyy"
|
||||
|
||||
# Would you like to use another custom folder than $ZSH/custom?
|
||||
# ZSH_CUSTOM=/path/to/new-custom-folder
|
||||
|
||||
# Which plugins would you like to load? (plugins can be found in ~/.oh-my-zsh/plugins/*)
|
||||
# Custom plugins may be added to ~/.oh-my-zsh/custom/plugins/
|
||||
# Example format: plugins=(rails git textmate ruby lighthouse)
|
||||
# Add wisely, as too many plugins slow down shell startup.
|
||||
plugins=(
|
||||
git
|
||||
# acs command → print aliases by group
|
||||
aliases
|
||||
# `j` to go to an already used directory by partial name
|
||||
autojump
|
||||
colored-man-pages
|
||||
command-not-found
|
||||
copydir
|
||||
# cat with colors → ccat or cless
|
||||
colorize
|
||||
# commands to copy file content or absolute path to clipboard
|
||||
copyfile
|
||||
copypath
|
||||
# cpv command which uses rsync
|
||||
cp
|
||||
extract
|
||||
fzf
|
||||
history
|
||||
# docker autocomplete
|
||||
docker
|
||||
rand-quote
|
||||
taskwarrior
|
||||
systemd
|
||||
# unique command for most archives
|
||||
extract
|
||||
# aliases
|
||||
git
|
||||
# password-store autocomplete
|
||||
pass
|
||||
)
|
||||
|
||||
# Enable option stacking in autocomplete, i.e. docker run -it <TAB>
|
||||
zstyle ':completion:*:*:docker:*' option-stacking yes
|
||||
zstyle ':completion:*:*:docker-*:*' option-stacking yes
|
||||
|
||||
# Load ZSH
|
||||
source $ZSH/oh-my-zsh.sh
|
||||
|
||||
# User configuration
|
||||
|
||||
# export MANPATH="/usr/local/man:$MANPATH"
|
||||
|
||||
# You may need to manually set your language environment
|
||||
export LANG=en_US.UTF-8
|
||||
|
||||
# Preferred editor for local and remote sessions
|
||||
if [[ -n $SSH_CONNECTION ]]; then
|
||||
export EDITOR='nano'
|
||||
else
|
||||
export EDITOR='nano'
|
||||
fi
|
||||
|
||||
# Compilation flags
|
||||
# export ARCHFLAGS="-arch x86_64"
|
||||
|
||||
# ssh
|
||||
# export SSH_KEY_PATH="~/.ssh/rsa_id"
|
||||
export EDITOR=vim
|
||||
|
||||
# Do not print user@hostname if user is myself
|
||||
DEFAULT_USER=`whoami`
|
||||
|
||||
# Set personal aliases, overriding those provided by oh-my-zsh libs,
|
||||
# plugins, and themes. Aliases can be placed here, though oh-my-zsh
|
||||
# users are encouraged to define aliases within the ZSH_CUSTOM folder.
|
||||
# For a full list of active aliases, run `alias`.
|
||||
#
|
||||
# Example aliases
|
||||
# alias zshconfig="mate ~/.zshrc"
|
||||
# alias ohmyzsh="mate ~/.oh-my-zsh"
|
||||
# Aliases
|
||||
alias cp="cpv"
|
||||
alias lt='ls -lath'
|
||||
|
||||
# To use when .cfg contains a bare git repo.
|
||||
# See this https://developer.atlassian.com/blog/2016/02/best-way-to-store-dotfiles-git-bare-repo/
|
||||
alias config='/usr/bin/git --git-dir=$HOME/.cfg/ --work-tree=$HOME'
|
||||
config config --local status.showUntrackedFiles no
|
||||
|
||||
# Mount VPS as FUSE
|
||||
alias ovh='mkdir -p ~/sshfs/ovh && sshfs chosto@51.178.182.35:/home/chosto ~/sshfs/ovh -p 2220'
|
||||
alias pica01='mkdir -p ~/sshfs/pica01 && sshfs qduchemi@pica01.picasoft.net:/DATA/docker ~/sshfs/pica01'
|
||||
alias pica02='mkdir -p ~/sshfs/pica02 && sshfs qduchemi@pica02.picasoft.net:/DATA/docker ~/sshfs/pica02'
|
||||
alias pica_test='mkdir -p ~/sshfs/pica01-test && sshfs qduchemi@pica01-test.picasoft.net:/DATA/docker ~/sshfs/pica01-test'
|
||||
|
||||
# Start ssh-agent and retain passphrase for 1 hour
|
||||
# ssh-add is not used for convenience
|
||||
# Instead "AddKeysToAgent yes" option in ~/.ssh/config for "Host *"
|
||||
eval "$(ssh-agent -s -t 3600)" &>/dev/null
|
||||
|
||||
alias lt='ls -lath'
|
||||
export PATH=${PATH}:~/doc/picasoft/pass:$HOME/go/bin/:$HOME/.local/bin:/opt/feather:/opt/resolve/bin:/opt
|
||||
|
||||
source <(mmctl completion zsh)
|
||||
|
||||
## fzf conf
|
||||
_fzf_compgen_path() {
|
||||
fd --hidden --follow --exclude ".git" . "$1"
|
||||
}
|
||||
|
||||
# Use fd to generate the list for directory completion
|
||||
_fzf_compgen_dir() {
|
||||
fd --type d --hidden --follow --exclude ".git" . "$1"
|
||||
}
|
||||
|
||||
export FZF_COMPLETION_OPTS='-m'
|
||||
|
||||
eval $(thefuck --alias)
|
||||
alias cb="xclip -selection clipboard"
|
||||
|
||||
[[ $commands[kubectl] ]] && source <(kubectl completion zsh)
|
||||
export PATH="${KREW_ROOT:-$HOME/.krew}/bin:$PATH"
|
||||
|
||||
alias code=vscodium
|
||||
alias k=kubectl
|
||||
alias kk="kubectl -n identibat-back"
|
||||
alias kx="kubectl -n identibat-back exec -it"
|
||||
|
||||
export SCENARI_SSH_USER=qduchemin
|
||||
export SCENARI_SSH_KEY_PATH=$HOME/.ssh/id_rsa
|
||||
# GPG with SSH auth capabilities
|
||||
export SSH_AUTH_SOCK=$(gpgconf --list-dirs agent-ssh-socket)
|
249
README.md
249
README.md
|
@ -1,136 +1,207 @@
|
|||
# dotfiles
|
||||
|
||||
<!-- MarkdownTOC autolink="true" -->
|
||||
## Generic todo
|
||||
|
||||
- [What is this, Chosto ?](#what-is-this-chosto-)
|
||||
- [Contents](#contents)
|
||||
- [Requirements](#requirements)
|
||||
- [Usage](#usage)
|
||||
- [Bare repository trick](#bare-repository-trick)
|
||||
- [Divergence betwteen laptop and desktop](#divergence-betwteen-laptop-and-desktop)
|
||||
- [Configuration outside XDG_CONFIG_HOME, e.g. /etc](#configuration-outside-xdgconfighome-eg-etc)
|
||||
- [Git Hook](#git-hook)
|
||||
- [Screenshots](#screenshots)
|
||||
|
||||
<!-- /MarkdownTOC -->
|
||||
Would be great to have a real people-agnostic base, separated from my own customization. Right now, base configuration still have personal path and stuff, making it unusable as-is for other people.
|
||||
|
||||
## What is this, Chosto ?
|
||||
|
||||
Basically, a way to bootstrap and keep track of my machines' configuration, that can realistically be used as a base for other people.
|
||||
|
||||
## Context and content
|
||||
|
||||
I used a lot Debian/Ubuntu with Gnome. So a full Desktop Manager with a stacking Windows Manager.
|
||||
A friend of mine showed me i3, a great and customizable tiling Windows Manager (i.e. no windows stack, just divide the scren and take all empty space).
|
||||
|
||||
With some customization and additionnal component (in this repo), I managed to get a functional and pleasant yet lightweight environment (for me, no brag).
|
||||
With some customization and additionnal component (in this repo), I managed to get a functional and pleasant yet lightweight environment. While initially I used low footprint software like `netctl` for networks, I gave up and choose heavier but simpler option like NetworkManager.
|
||||
|
||||
So basically, what I like about this setup is that there is no "useless" menu bar anywhere and no border. Just windows with gaps between them when multiple windows are on the same screen, and keybord shortcuts for productivity.
|
||||
So basically, what I like about this setup is that there is no "useless" menu bar anywhere and no border. Just windows with gaps between them when multiple windows are on the same screen and keyboard shortcuts.
|
||||
|
||||
I added to the classic Arch/i3 :
|
||||
* A notification daemon (urgency-aware), Dunst, controlled by shortcuts (but possibly with mouse).
|
||||
* A fancy lock screen, with optionnal suspend-to-RAM, either triggered by hotkey or when there is no activity for X minutes.
|
||||
* A Display Manager (LightDM), for login and X starting.
|
||||
* A great File Explorer (Nemo), with hotkey / command-line / screen-split / protocol handlers / events support.
|
||||
* ZSH with Oh My ZSH and excellent community plugins (Git aliases, Docker autocomplete, FASD bindings, cat and man coloration...)
|
||||
* Some mappings to control ALSA volume from dedicated keyboards buttons, to play/plause players compatible with MPRIS D-Bus Interface spec ; some changes to key speed (X settings) ; Smooth and dark theme for GTK and for Sublime-Text...
|
||||
In brief this is the classic Arch/i3 combo with :
|
||||
|
||||
## Contents
|
||||
|
||||
Setup for :
|
||||
|
||||
* [i3](http://i3wm.org/), a great tiling windows manager
|
||||
* In fact i3-gaps, to add margins between windows
|
||||
* And i3-lock-color, an improved lock screen
|
||||
* [LightDM](https://wiki.ubuntu.com/LightDM) with custom theme and background
|
||||
* Sublime Text 3
|
||||
* [Polybar](https://github.com/jaagr/polybar/), a great replacement for i3-bar with easy custom plugins and [system tray](https://specifications.freedesktop.org/systemtray-spec/systemtray-spec-0.3.html)
|
||||
* Terminator
|
||||
* ZSH with Oh My ZSH!
|
||||
* [Dunst](https://github.com/dunst-project/dunst), a great and lightweight notification daemon
|
||||
* [Rofi](https://github.com/DaveDavenport/rofi), a full-customizable app launcher/windows
|
||||
switcher
|
||||
* Sound setup (total beginner there btw) :
|
||||
* JACK, a sound server, without PA support ;
|
||||
* PianoTeq, a virtual synth ;
|
||||
* Cadence and Claudia, JACK and LADISH front-ends ;
|
||||
* Non-Mixer, a mixer.
|
||||
* Ardour, a DAW.
|
||||
* Random things (GTK3+ theme Arc, Redshift, taskwarrior...)
|
||||
* A custom script to take screenshots and save them or upload them
|
||||
* A notification daemon (urgency-aware), [Dunst](https://github.com/dunst-project/dunst), controlled by shortcuts (but possibly with mouse)
|
||||
* [Rofi](https://github.com/DaveDavenport/rofi), a full-customizable app launcher
|
||||
* Automatic login (drives are encrypted)
|
||||
* Automatic backups
|
||||
* A fancy lock screen, with optional hibernation, either triggered by hotkey or when there is no activity for X minutes
|
||||
* ZSH with Oh My ZSH
|
||||
* Mappings to control ALSA volume from dedicated keyboards buttons, to play/plause players compatible with MPRIS D-Bus Interface spec
|
||||
* Do-not-disturb mode
|
||||
* Screenshots (area or windows), with saving or uploading to a Lychee server ([custom script here](.config/i3/scripts/screenshot.py))
|
||||
* A curated list of software for daily usage (browser, mail client, messaging, network manager, password manager etc)
|
||||
* Fonts I like, used in i3, polybar, etc
|
||||
|
||||
Here is a screenshot of the rendition i3-gaps/polybar.
|
||||
![Screenshot of i3/polybar](https://pic.chosty.fr/uploads/big/111928c68c111dbcd357a69cf13589d6.jpg)
|
||||
## Screenshots
|
||||
|
||||
#TODO
|
||||
|
||||
## Requirements
|
||||
|
||||
Configuration makes use of these things, just to record but not exhaustive :
|
||||
* A working [Arch installation](https://wiki.archlinux.org/title/installation_guide)
|
||||
* Login with a `sudoer` user
|
||||
* [yay](https://github.com/Jguer/yay) AUR wrapper
|
||||
* Python 3 and Pip
|
||||
* Git
|
||||
|
||||
* [oh-my-zsh](https://github.com/robbyrussell/oh-my-zsh)
|
||||
* [fasd](https://github.com/clvv/fasd)
|
||||
* [Pygments](http://pygments.org/) (with `pygmentize` command)
|
||||
* [Powerline Fonts](https://github.com/powerline/fonts)
|
||||
* `sudo pip install --upgrade google-api-python-client`
|
||||
* [SpaceFM](https://ignorantguru.github.io/spacefm/)
|
||||
* [PlayerCTL](https://github.com/acrisci/playerctl)
|
||||
* [GTK Arc Theme](https://github.com/horst3180/arc-theme)
|
||||
* Fonts : Noto Sans, Noto Emoji, DejaVu Sans, MaterialIcons, Symbola, [ttc-iosevka](https://archlinux.org/packages/?q=ttc-iosevka)
|
||||
* xdotool, xsel
|
||||
* gnupg
|
||||
* maim, for screenshot + `pip install pyperclip`
|
||||
* Python 3.7
|
||||
* arc-gtk-theme
|
||||
|
||||
## Usage
|
||||
## Installation
|
||||
|
||||
Please note : on my system `XDG_CONFIG_HOME` is empty and default to `$HOME/.config`.
|
||||
|
||||
### Bare repository trick
|
||||
### Clone the repository
|
||||
|
||||
* Clone in bare repository : `git clone --bare https://github.com/Chostakovitch/dotfiles.git $HOME/.cfg`. A bare repository does not have a working tree (basically it is just `.git` content). So we avoid conflicts with another git repository.
|
||||
* Create a working tree outside `.cfg` : `git --git-dir=$HOME/.cfg/ --work-tree=$HOME checkout`.
|
||||
* Adjust `DEFAUT_USER` in `~/.zshrc`.
|
||||
* Adjust other environment variables, such as `SCREENSHOT_PATH`.
|
||||
* Source `~/.zshrc` and use provided `config` alias to pull.
|
||||
* `config config --local status.showUntrackedFiles no` to ignore untracked files in status (better as it is home dir).
|
||||
|
||||
Credits to [this great article](https://developer.atlassian.com/blog/2016/02/best-way-to-store-dotfiles-git-bare-repo/) for the trick.
|
||||
Credits to [this article](https://developer.atlassian.com/blog/2016/02/best-way-to-store-dotfiles-git-bare-repo/) for the trick.
|
||||
|
||||
### Divergence betwteen laptop and desktop
|
||||
### Configure for your system
|
||||
|
||||
As desktop machine and laptop don't have configuration conflicts (e.g. laptop uses PulseAudio and desktop uses ALSA/Jack), some files have `.desk` extension and others `.laptop`. Configuration files that works on both systems have no extension.
|
||||
#### Polybar
|
||||
|
||||
Launch `~/.init_config.sh` to create symlinks (e.g. `~/.config/i3/config` will be symlinked to `~/.config/i3/config.laptop` if I launch `~/.init_config.sh laptop`).
|
||||
The bottom bar will work for every machine.
|
||||
|
||||
However, depending on your machine you may want slightly different modules loaded on the top bar, e.g. battery for laptop. Available modules are listed in [.config/polybar/config_common](.config/polybar/config_common). You also may want to adjust bars' height and DPI.
|
||||
|
||||
This can be done in `~/.config/polybar/conf.d/<env>` (see [explanation for env](#managing-divergences-between-environments)).
|
||||
|
||||
This is optional for now as by default, polybar will use this fallback values :
|
||||
|
||||
```ini
|
||||
[variables]
|
||||
dpi = 90
|
||||
height = 27
|
||||
top_left = powermenu system-uptime-pretty
|
||||
top_center = xwindow
|
||||
top_right = system-usb-udev alsa date
|
||||
```
|
||||
|
||||
The bottom bar also reports disk usage, which cannot be configured generically. You can set the partitions you want to track in [config/polybar/scripts/filesystem.data](config/polybar/scripts/filesystem.data) with the following format :
|
||||
|
||||
```sh
|
||||
# Each mount point (parts) will be associated with the icon
|
||||
# (icons) having the same array index.
|
||||
# You can add as many mount point as you want.
|
||||
icons=( )
|
||||
parts=(/ /home)
|
||||
```
|
||||
|
||||
#### Wallpaper
|
||||
|
||||
You can put an optional wallpaper in `~/.local/share/backgrounds/wallpaper.jpg`.
|
||||
|
||||
#### Autologin
|
||||
|
||||
Adjust your login in [.config/systemd/getty@tty1.service.d/autologin.conf](.config/systemd/getty@tty1.service.d/autologin.conf).
|
||||
|
||||
#### Default user directories
|
||||
|
||||
Configure in [.config/user-dirs.dirs](./config/user-dirs.dirs).
|
||||
|
||||
#### Backups
|
||||
|
||||
Adjust backup script and timer in [.config/systemd](.config/systemd/)
|
||||
#### Keybinding and started programs
|
||||
|
||||
Well... keybindings and programs started automatically are documented in [./.config/i3/config_common](.config/i3/config_common), but you probably want to change almost everything in that file because it is very specific to my setup.
|
||||
|
||||
Just note the existence of :
|
||||
* A film mode (or do-not-disturb), which disable locking and notifications
|
||||
* A [screenshot custom script](#screenshots)
|
||||
|
||||
### Get the system ready
|
||||
|
||||
```sh
|
||||
INIT=1 ~/.init_config.sh [<env>]
|
||||
```
|
||||
|
||||
This will install all needed software and configuration. If you want to re-use my setup, I highly recommand **not to pass `env`**, which are specific overrides for my hardware. You should provide you own adaptations, see [explanations section](#explanations).
|
||||
|
||||
In actual setup `env` can be :
|
||||
* `desk` is currently adjusted for my home setup, i.e. two screens, a keyboard with media keys and [JACK Audio Connection Kit](https://wiki.archlinux.org/title/JACK_Audio_Connection_Kit).
|
||||
* `laptop` is adjusted for a basic, single and high-DPI screen laptop, with a simple keyboard.
|
||||
|
||||
You can now reboot.
|
||||
|
||||
### Install Git Hook
|
||||
|
||||
You want to add files named `post-merge` **and** `pre-push` in `~/.cfg/hooks` with contains :
|
||||
|
||||
```sh
|
||||
#!/bin/sh
|
||||
|
||||
exec WM_RESTART=1 ~/.init_config.sh <env>
|
||||
```
|
||||
|
||||
And then `chmod +x ~/.cfg/hooks/{post-merge,pre-push}`.
|
||||
`WM_RESTART` controls whether `i3`, `polybar` and `picom` are restarted.
|
||||
|
||||
That way, each time you commit or pull, changes are applied automagically, including configuration deletion detection.
|
||||
|
||||
### Git alias
|
||||
|
||||
[.zshrc](.zshrc) provides a `config` alias that you can use for manipulating the repository, e.g.
|
||||
|
||||
```sh
|
||||
config add -u
|
||||
config commit
|
||||
config push
|
||||
```
|
||||
|
||||
## Explanations
|
||||
|
||||
### Managing divergences between environments
|
||||
|
||||
This repository is used on several machines, called *environements* and defined at the beginning of [the init script](./.init_config.sh). In my example I have a desktop and a laptop, and envs are called `desk` or `laptop`.
|
||||
|
||||
Sometimes, you want a configuration file to be present only in a specific environment. Just add `.<env>` extension to this file and the init script will create symlinks without `.<env>` if running on a matching environment.
|
||||
|
||||
Other times, you have a base configuration for all environment with specific additions par-environment. This is called **merging**. The following scheme is used :
|
||||
```
|
||||
<config_subdir>
|
||||
|__config_common
|
||||
|__config.d
|
||||
|__[desk]
|
||||
|__[laptop]
|
||||
```
|
||||
|
||||
In that case, the script will create a `<config_subdir>/config` file, which contains the concatenation of `config_common` and `config.d/<env>`, the later being optional. Filenames and path are hardcoded for now.
|
||||
|
||||
### Configuration outside XDG_CONFIG_HOME, e.g. /etc
|
||||
|
||||
Some configuration files reside in `/etc` directory, but I want to keep track of them.
|
||||
|
||||
Just create a folder in `XDG_CONFIG_HOME` and a file named `dest`. In this file, write the destination path. Then, copy the configuration files that you want to track and add them to the repository. You can also use `.desk` and `.laptop` extensions for specific configuration.
|
||||
To do so, you need to add *a special text file* named `dest`. In this file, write the destination path. Then, copy the configuration files that you want to track and add them to the repository.
|
||||
|
||||
The `~/.init_config.sh` script will copy relevant files (laptop or desktop) in the directory specified by `dest` file. Now you just modify the files tracked by Git and run `~/.init_config.sh`.
|
||||
You can combine with `.<env>` extensions or config merging for specific configuration : only the "final files" will be copied, e.g.
|
||||
|
||||
Example : see `~/.config/lightdm` directory.
|
||||
|
||||
### Git Hook
|
||||
|
||||
You may want to add a file named `post-merge` **and** `pre-push` in `~/.cfg/hooks` with contains something like :
|
||||
|
||||
```bash
|
||||
#!/bin/sh
|
||||
|
||||
exec ~/.init_config.sh <whatever you environment is>
|
||||
```
|
||||
<config_subdir>
|
||||
|__dest = /etc/foo
|
||||
|__subfolder
|
||||
|__bar.desk
|
||||
```
|
||||
|
||||
And then `chmod +x ~/.cfg/hooks/{post-merge,pre-push}`.
|
||||
When you pull, changes are applied automagically.
|
||||
At the end, you will have a `/etc/foo/subfolder/bar` file, *iff* the environment is `desk`.
|
||||
|
||||
Note this is a quick and quite dirty solution.
|
||||
If `INIT` variable is set, files are copied anyway. Otherwise they are copied only if they have changed since the latest commit. The script also ensures that deleted files upstream are also deleted in destination paths.
|
||||
|
||||
### Bootstrap
|
||||
|
||||
The folder `$XDG_CONFIG_HOME/boostrap` is a special folder used to help launching a fresh system. It uses the [merging system](#managing-divergence-between-environments) to list the Arch packages to install (including AUR ones) in `yay` folder.
|
||||
|
||||
These packages are intented to provide reasonable defaults so the configuration just works out-of-the-box.
|
||||
|
||||
These packages are not to specific too my usage but still include messaging app for example, you can remove them if you want.
|
||||
|
||||
### Screenshots
|
||||
|
||||
Todo : move it on another repo
|
||||
#TODO : move it on another repo
|
||||
|
||||
A small script inside [.config/i3/scripts](.config/i3/scripts) uses `maim` to take screenshots.
|
||||
|
||||
A small script inside `~/.config/i3/scripts/` uses `maim` to take screenshots.
|
||||
Then, a flag can either save locally the image or upload it (now, only on a Lychee server using the API).
|
||||
|
||||
The `~/.config/i3/scripts/config.py` contains the default configuration.
|
||||
`~/.config/i3/scripts/config.py` should contains credentials, adapted from [.config/i3/scripts/config.py.example](.config/i3/scripts/config.py.example).
|
||||
|
||||
In either case, the link or path is copied to clipboard and a notification is triggered.
|
||||
|
|
Loading…
Reference in New Issue