diff --git a/.gitignore b/.gitignore
index 21ee720..25a2012 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,3 +1,4 @@
git/.gitconfig-work
home/
-nano/.cache/nano/*
\ No newline at end of file
+nano/.cache/nano/
+i3/.wallpapers/
diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml
index fd16ba2..8388bb4 100644
--- a/.pre-commit-config.yaml
+++ b/.pre-commit-config.yaml
@@ -2,7 +2,7 @@
# See https://pre-commit.com/hooks.html for more hooks
repos:
- repo: https://github.com/pre-commit/pre-commit-hooks
- rev: v3.2.0
+ rev: v4.5.0
hooks:
- id: trailing-whitespace
- id: end-of-file-fixer
diff --git a/alacritty/.config/alacritty/alacritty.toml b/alacritty/.config/alacritty/alacritty.toml
index ce0a4b7..cd4dd0e 100644
--- a/alacritty/.config/alacritty/alacritty.toml
+++ b/alacritty/.config/alacritty/alacritty.toml
@@ -1,9 +1,11 @@
import = [
"~/.config/alacritty/alacritty-thems/dark_pride.toml",
"~/.config/alacritty/alacritty-thems/dracula_plus.toml",
- "~/.config/alacritty/hactatio.toml"
+ "~/.config/alacritty/hactario.toml"
]
[env]
TERM = "xterm-256color"
+[font]
+normal = { family = "Hack Nerd Font Mono" }
diff --git a/alacritty/.config/alacritty/hactario.toml b/alacritty/.config/alacritty/hactario.toml
index 7b5970d..dbf03bc 100644
--- a/alacritty/.config/alacritty/hactario.toml
+++ b/alacritty/.config/alacritty/hactario.toml
@@ -3,12 +3,16 @@ live_config_reload = true
[window]
dynamic_padding = true
decorations = 'None'
-opacity = 0.8
+opacity = 0.70
dynamic_title = true
+[windows.class]
+general = "alacritty"
+
[bell]
animation = "EaseOutQuad"
duration = 150
+color = "0xf8f8f2"
[colors]
draw_bold_text_with_bright_colors = true
@@ -21,3 +25,12 @@ multiplier = 3
save_to_clipboard = true
semantic_escape_chars = ",│`|:\"' ()[]{}<>\t"
+[font]
+size = 10.0
+
+[font.normal]
+family = "Hack Nerd Font Mono"
+
+[font.bold]
+family = "Hack Nerd Font Mono"
+style = "Bold"
diff --git a/awesome/.config/awesome/rc.lua b/awesome/.config/awesome/rc.lua
index 975a92f..c61ceca 100644
--- a/awesome/.config/awesome/rc.lua
+++ b/awesome/.config/awesome/rc.lua
@@ -52,7 +52,7 @@ beautiful.init(gears.filesystem.get_themes_dir() .. "default/theme.lua")
-- This is used later as the default terminal and editor to run.
-- terminal = "x-terminal-emulator"
-terminal = "/home/qgodefro/.cargo/bin/alacritty"
+terminal = "alacritty"
editor = os.getenv("EDITOR") or "editor"
editor_cmd = terminal .. " -e " .. editor
@@ -594,5 +594,5 @@ client.connect_signal("focus", function(c) c.border_color = beautiful.border_foc
client.connect_signal("unfocus", function(c) c.border_color = beautiful.border_normal end)
-- }}}
--- local battery = battery_widget:new({})
--- right_layout:add(battery.widget)
+local battery = battery_widget:new({})
+right_layout:add(battery.widget)
diff --git a/dunst/.config/dunst/dunstrc b/dunst/.config/dunst/dunstrc
new file mode 100644
index 0000000..acefd5a
--- /dev/null
+++ b/dunst/.config/dunst/dunstrc
@@ -0,0 +1,326 @@
+[global]
+ ### Display ###
+
+ # Which monitor should the notifications be displayed on.
+ monitor = 2
+
+ # Display notification on focused monitor. Possible modes are:
+ # mouse: follow mouse pointer
+ # keyboard: follow window with keyboard focus
+ # none: don't follow anything
+ #
+ # "keyboard" needs a window manager that exports the
+ # _NET_ACTIVE_WINDOW property.
+ # This should be the case for almost all modern window managers.
+ #
+ # If this option is set to mouse or keyboard, the monitor option
+ # will be ignored.
+ follow = none
+
+ # The geometry of the window:
+ # [{width}]x{height}[+/-{x}+/-{y}]
+ # The geometry of the message window.
+ # The height is measured in number of notifications everything else
+ # in pixels. If the width is omitted but the height is given
+ # ("-geometry x2"), the message window expands over the whole screen
+ # (dmenu-like). If width is 0, the window expands to the longest
+ # message displayed. A positive x is measured from the left, a
+ # negative from the right side of the screen. Y is measured from
+ # the top and down respectively.
+ # The width can be negative. In this case the actual width is the
+ # screen width minus the width defined in within the geometry option.
+ geometry = "300x5-30+20"
+
+ # Show how many messages are currently hidden (because of geometry).
+ indicate_hidden = yes
+
+ # Shrink window if it's smaller than the width. Will be ignored if
+ # width is 0.
+ shrink = no
+
+ # The transparency of the window. Range: [0; 100].
+ # This option will only work if a compositing window manager is
+ # present (e.g. xcompmgr, compiz, etc.).
+ transparency = 20
+
+ # The height of the entire notification. If the height is smaller
+ # than the font height and padding combined, it will be raised
+ # to the font height and padding.
+ notification_height = 0
+
+ # Draw a line of "separator_height" pixel height between two
+ # notifications.
+ # Set to 0 to disable.
+ separator_height = 6
+
+ # Padding between text and separator.
+ padding = 6
+
+ # Horizontal padding.
+ horizontal_padding = 8
+
+ # Defines width in pixels of frame around the notification window.
+ # Set to 0 to disable.
+ frame_width = 2
+
+ # Defines color of the frame around the notification window.
+ frame_color = "#6272A4"
+
+ # Define a color for the separator.
+ # possible values are:
+ # * auto: dunst tries to find a color fitting to the background;
+ # * foreground: use the same color as the foreground;
+ # * frame: use the same color as the frame;
+ # * anything else will be interpreted as a X color.
+ separator_color = auto
+
+ # Sort messages by urgency.
+ sort = yes
+
+ # Don't remove messages, if the user is idle (no mouse or keyboard input)
+ # for longer than idle_threshold seconds.
+ # Set to 0 to disable.
+ # Transient notifications ignore this setting.
+ idle_threshold = 120
+
+ ### Text ###
+
+ font = Hack 10
+
+ # The spacing between lines. If the height is smaller than the
+ # font height, it will get raised to the font height.
+ line_height = 0
+
+ # Possible values are:
+ # full: Allow a small subset of html markup in notifications:
+ # bold
+ # italic
+ # strikethrough
+ # underline
+ #
+ # For a complete reference see
+ # .
+ #
+ # strip: This setting is provided for compatibility with some broken
+ # clients that send markup even though it's not enabled on the
+ # server. Dunst will try to strip the markup but the parsing is
+ # simplistic so using this option outside of matching rules for
+ # specific applications *IS GREATLY DISCOURAGED*.
+ #
+ # no: Disable markup parsing, incoming notifications will be treated as
+ # plain text. Dunst will not advertise that it has the body-markup
+ # capability if this is set as a global setting.
+ #
+ # It's important to note that markup inside the format option will be parsed
+ # regardless of what this is set to.
+ markup = full
+
+ # The format of the message. Possible variables are:
+ # %a appname
+ # %s summary
+ # %b body
+ # %i iconname (including its path)
+ # %I iconname (without its path)
+ # %p progress value if set ([ 0%] to [100%]) or nothing
+ # %n progress value if set without any extra characters
+ # %% Literal %
+ # Markup is allowed
+ format = "%s %a\n%b"
+
+ # Alignment of message text.
+ # Possible values are "left", "center" and "right".
+ alignment = left
+
+ # Show age of message if message is older than show_age_threshold
+ # seconds.
+ # Set to -1 to disable.
+ show_age_threshold = 60
+
+ # Split notifications into multiple lines if they don't fit into
+ # geometry.
+ word_wrap = yes
+
+ # When word_wrap is set to no, specify where to ellipsize long lines.
+ # Possible values are "start", "middle" and "end".
+ ellipsize = middle
+
+ # Ignore newlines '\n' in notifications.
+ ignore_newline = no
+
+ # Merge multiple notifications with the same content
+ stack_duplicates = true
+
+ # Hide the count of merged notifications with the same content
+ hide_duplicate_count = false
+
+ # Display indicators for URLs (U) and actions (A).
+ show_indicators = yes
+
+ ### Icons ###
+
+ # Align icons left/right/off
+ icon_position = left
+
+ # Scale larger icons down to this size, set to 0 to disable
+ max_icon_size = 128
+
+ # Paths to default icons.
+ icon_path = /run/current-system/sw/share/icons/hicolor/128x128/status:/run/current-system/sw/share/icons/hicolor/128x128/devices:/run/current-system/sw/share/icons/hicolor/128x128/actions:/usr/share/icons/gnome/16x16/status/:/usr/share/icons/gnome/16x16/devices/
+
+ ### History ###
+
+ # Should a notification popped up from history be sticky or timeout
+ # as if it would normally do.
+ sticky_history = yes
+
+ # Maximum amount of notifications kept in history
+ history_length = 20
+
+ ### Misc/Advanced ###
+
+ # dmenu path.
+ dmenu = /run/current-system/sw/bin/dmenu -p dunst:
+
+ # Browser for opening urls in context menu.
+ browser = /etc/profiles/per-user/hactario/bin/firefox -new-tab
+
+ # Always run rule-defined scripts, even if the notification is suppressed
+ always_run_script = true
+
+ # Define the title of the windows spawned by dunst
+ title = Dunst
+
+ # Define the class of the windows spawned by dunst
+ class = Dunst
+
+ # Print a notification on startup.
+ # This is mainly for error detection, since dbus (re-)starts dunst
+ # automatically after a crash.
+ startup_notification = true
+
+ ### Legacy
+
+ # Use the Xinerama extension instead of RandR for multi-monitor support.
+ # This setting is provided for compatibility with older nVidia drivers that
+ # do not support RandR and using it on systems that support RandR is highly
+ # discouraged.
+ #
+ # By enabling this setting dunst will not be able to detect when a monitor
+ # is connected or disconnected which might break follow mode if the screen
+ # layout changes.
+ force_xinerama = false
+
+# Experimental features that may or may not work correctly. Do not expect them
+# to have a consistent behaviour across releases.
+[experimental]
+ # Calculate the dpi to use on a per-monitor basis.
+ # If this setting is enabled the Xft.dpi value will be ignored and instead
+ # dunst will attempt to calculate an appropriate dpi value for each monitor
+ # using the resolution and physical size. This might be useful in setups
+ # where there are multiple screens with very different dpi values.
+ per_monitor_dpi = false
+
+[shortcuts]
+
+ # Shortcuts are specified as [modifier+][modifier+]...key
+ # Available modifiers are "ctrl", "mod1" (the alt-key), "mod2",
+ # "mod3" and "mod4" (windows-key).
+ # Xev might be helpful to find names for keys.
+
+ # Close notification.
+ close = ctrl+mod1+space
+
+ # Close all notifications.
+ close_all = ctrl+shift+space
+
+ # Redisplay last message(s).
+ # On the US keyboard layout "grave" is normally above TAB and left
+ # of "1". Make sure this key actually exists on your keyboard layout,
+ # e.g. check output of 'xmodmap -pke'
+ history = ctrl+dead_acute
+
+ # Context menu.
+ context = ctrl+shift+period
+
+[urgency_low]
+ # IMPORTANT: colors have to be defined in quotation marks.
+ # Otherwise the "#" and following would be interpreted as a comment.
+ background = "#282A36"
+ foreground = "#F8F8F2"
+ timeout = 10
+ # Icon for notifications with low urgency, uncomment to enable
+ #icon = /path/to/icon
+
+[urgency_normal]
+ background = "#44475A"
+ foreground = "#F8F8F2"
+ timeout = 10
+ # Icon for notifications with normal urgency, uncomment to enable
+ #icon = /path/to/icon
+
+[urgency_critical]
+ background = "#6272A4"
+ foreground = "#FF5555"
+ frame_color = "#FF5555"
+ timeout = 0
+ # Icon for notifications with critical urgency, uncomment to enable
+ #icon = /path/to/icon
+
+# Every section that isn't one of the above is interpreted as a rules to
+# override settings for certain messages.
+# Messages can be matched by "appname", "summary", "body", "icon", "category",
+# "msg_urgency" and you can override the "timeout", "urgency", "foreground",
+# "background", "new_icon" and "format".
+# Shell-like globbing will get expanded.
+#
+# SCRIPTING
+# You can specify a script that gets run when the rule matches by
+# setting the "script" option.
+# The script will be called as follows:
+# script appname summary body icon urgency
+# where urgency can be "LOW", "NORMAL" or "CRITICAL".
+#
+# NOTE: if you don't want a notification to be displayed, set the format
+# to "".
+# NOTE: It might be helpful to run dunst -print in a terminal in order
+# to find fitting options for rules.
+
+#[espeak]
+# summary = "*"
+# script = dunst_espeak.sh
+
+#[script-test]
+# summary = "*script*"
+# script = dunst_test.sh
+
+#[ignore]
+# # This notification will not be displayed
+# summary = "foobar"
+# format = ""
+
+#[history-ignore]
+# # This notification will not be saved in history
+# summary = "foobar"
+# history_ignore = yes
+
+#[signed_on]
+# appname = Pidgin
+# summary = "*signed on*"
+# urgency = low
+#
+#[signed_off]
+# appname = Pidgin
+# summary = *signed off*
+# urgency = low
+#
+#[says]
+# appname = Pidgin
+# summary = *says*
+# urgency = critical
+#
+#[twitter]
+# appname = Pidgin
+# summary = *twitter.com*
+# urgency = normal
+#
+# vim: ft=cfg
\ No newline at end of file
diff --git a/dunst/.config/dunst/spotify.sh b/dunst/.config/dunst/spotify.sh
new file mode 100755
index 0000000..d495184
--- /dev/null
+++ b/dunst/.config/dunst/spotify.sh
@@ -0,0 +1,2 @@
+#!/usr/bin/env bash
+/usr/bin/spotifycli --statusshort > ~/.config/i3status/spotify.log
\ No newline at end of file
diff --git a/flake.nix b/flake.nix
index f496487..927e414 100644
--- a/flake.nix
+++ b/flake.nix
@@ -12,7 +12,7 @@
};
dotfiles = {
url = "git.ood.ovh:hactarus/dotfiles";
- flake = false;
+ flake = true;
};
outputs = { self, nixpkgs, home-manager, ... } @inputs: {
homeConfigurations.foodogsquared = home-manager.lib.homeManagerConfiguration {
diff --git a/helix/.config/helix/runtime b/helix/.config/helix/runtime
index a90893a..c51ba96 120000
--- a/helix/.config/helix/runtime
+++ b/helix/.config/helix/runtime
@@ -1 +1 @@
-/home/qgodefro/projects/helix/runtime/
\ No newline at end of file
+/etc/profiles/per-user/hactario/lib/runtime
\ No newline at end of file
diff --git a/i3/.config/config b/i3/.config/config
new file mode 100644
index 0000000..d21dc90
--- /dev/null
+++ b/i3/.config/config
@@ -0,0 +1,246 @@
+#!#sh-like
+
+# i3 config file (v4)
+#
+# Please see https://i3wm.org/docs/userguide.html for a complete reference!
+#
+# This config file uses keycodes (bindsym) and was written for the QWERTY
+# layout.
+#
+# To get a config file with the same key positions, but for your current
+# layout, use the i3-config-wizard
+#
+
+set $mod Mod4
+set $term wezterm
+
+# Font for window titles. Will also be used by the bar unless a different font
+# is used in the bar {} block below.
+#font pango:monospace 8
+font pango:Noto Sans 10
+
+# This font is widely installed, provides lots of unicode glyphs, right-to-left
+# text rendering and scalability on retina/hidpi displays (thanks to pango).
+#font pango:DejaVu Sans Mono 8
+
+# https://wiki.archlinux.org/title/Picom
+# https://github.com/chjj/compton/issues/402
+# Inspect windows with: `xwininfo -tree -root`
+exec --no-startup-id picom --backend=egl \
+ --blur-method=dual_kawase --blur-strength=12 \
+ --corner-radius=24 --rounded-corners-exclude='class_g = "Polybar" || class_g = "dmenu"' \
+ --unredir-if-possible-delay=1000 \
+ --shadow --shadow-exclude='class_g = "dmenu"'
+
+# Start XDG autostart .desktop files using dex. See also
+# https://wiki.archlinux.org/index.php/XDG_Autostart
+exec --no-startup-id dex --autostart --environment i3
+
+# The combination of xss-lock, nm-applet and pactl is a popular choice, so
+# they are included here as an example. Modify as you see fit.
+
+# xss-lock grabs a logind suspend inhibit lock and will use i3lock to lock the
+# screen before suspend. Use loginctl lock-session to lock your screen.
+exec --no-startup-id xss-lock --transfer-sleep-lock -- i3lock --nofork
+
+# NetworkManager is the most popular way to manage wireless networks on Linux,
+# and nm-applet is a desktop environment-independent system tray GUI for it.
+exec --no-startup-id nm-applet
+
+exec --no-startup-id feh --bg-fill /home/nehu/Pictures/matcha-set.jpg
+
+exec --no-startup-id pipewire
+exec --no-startup-id pipewire-pulse
+exec --no-startup-id wireplumber
+
+# Focus with keyboard or by clicking only
+focus_follows_mouse no
+
+default_border none
+gaps inner 8
+gaps outer 0
+
+# Use pactl to adjust volume in PulseAudio.
+set $refresh_i3status killall -SIGUSR1 i3status
+#bindsym XF86AudioRaiseVolume exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ +10% && $refresh_i3status
+#bindsym XF86AudioLowerVolume exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ -10% && $refresh_i3status
+#bindsym XF86AudioMute exec --no-startup-id pactl set-sink-mute @DEFAULT_SINK@ toggle && $refresh_i3status
+#bindsym XF86AudioMicMute exec --no-startup-id pactl set-source-mute @DEFAULT_SOURCE@ toggle && $refresh_i3status
+bindsym XF86KbdBrightnessUp exec sudo keyboard-backlight up
+bindsym XF86KbdBrightnessDown exec sudo keyboard-backlight down
+bindsym XF86AudioRaiseVolume exec pamixer -i 5
+bindsym XF86AudioLowerVolume exec pamixer -d 5
+bindsym XF86AudioMute exec pamixer --toggle-mute
+bindsym XF86MonBrightnessDown exec sudo brightnessctl set 10%-
+bindsym XF86MonBrightnessUp exec sudo brightnessctl set 10%+
+
+# Switch between light/dark mode
+# `darkman` doesn't seem to change the color-scheme value on sway, but `gettings` does...
+bindsym $mod+XF86MonBrightnessDown exec gsettings set org.gnome.desktop.interface color-scheme prefer-dark
+bindsym $mod+XF86MonBrightnessUp exec gsettings set org.gnome.desktop.interface color-scheme prefer-light
+
+bindsym $mod+Shift+s exec spectacle -f
+#bindsym $mod+Shift+s exec flameshot full
+
+# use these keys for focus, movement, and resize directions when reaching for
+# the arrows is not convenient
+set $up l
+set $down k
+set $left j
+set $right semicolon
+
+# use Mouse+$mod to drag floating windows to their wanted position
+floating_modifier $mod
+
+# move tiling windows via drag & drop by left-clicking into the title bar,
+# or left-clicking anywhere into the window while holding the floating modifier.
+tiling_drag modifier titlebar
+
+# start a terminal
+bindsym $mod+Return exec $term
+#bindsym $mod+Return exec i3-sensible-terminal
+
+# kill focused window
+bindsym $mod+Shift+q kill
+bindsym $mod+q kill
+
+# `i3-dmenu-desktop` is a wrapper around `dmenu` which only displays ".desktop" apps;
+# override the `dmenu` command to match the polybar style
+bindsym $mod+d exec --no-startup-id i3-dmenu-desktop \
+ --dmenu="dmenu -i -nb #282A2E -sb #373B41 -sf #F0C674"
+
+# change focus
+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+Left focus left
+bindsym $mod+Down focus down
+bindsym $mod+Up focus up
+bindsym $mod+Right focus right
+
+# move focused window
+bindsym $mod+Shift+$left move left
+bindsym $mod+Shift+$down move down
+bindsym $mod+Shift+$up move up
+bindsym $mod+Shift+$right move right
+
+# alternatively, you can use the cursor keys:
+bindsym $mod+Shift+Left move left
+bindsym $mod+Shift+Down move down
+bindsym $mod+Shift+Up move up
+bindsym $mod+Shift+Right move right
+
+# split in horizontal orientation
+bindsym $mod+h split h
+
+# split in vertical orientation
+bindsym $mod+v split v
+
+# enter fullscreen mode for the focused container
+bindsym $mod+f fullscreen toggle
+
+# change container layout (stacked, tabbed, toggle split)
+bindsym $mod+s layout stacking
+bindsym $mod+w layout tabbed
+bindsym $mod+e layout toggle split
+
+# toggle tiling / floating
+bindsym $mod+Shift+space floating toggle
+
+# change focus between tiling / floating windows
+bindsym $mod+space focus mode_toggle
+
+# focus the parent container
+bindsym $mod+a focus parent
+
+# focus the child container
+#bindsym $mod+d focus child
+
+# 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
+
+# Define names for default workspaces for which we configure key bindings later on.
+# We use variables to avoid repeating the names in multiple places.
+set $ws1 "1"
+set $ws2 "2"
+set $ws3 "3"
+set $ws4 "4"
+set $ws5 "5"
+set $ws6 "6"
+set $ws7 "7"
+set $ws8 "8"
+set $ws9 "9"
+set $ws10 "10"
+
+# switch to workspace
+bindsym $mod+1 workspace number $ws1
+bindsym $mod+2 workspace number $ws2
+bindsym $mod+3 workspace number $ws3
+bindsym $mod+4 workspace number $ws4
+bindsym $mod+5 workspace number $ws5
+bindsym $mod+6 workspace number $ws6
+bindsym $mod+7 workspace number $ws7
+bindsym $mod+8 workspace number $ws8
+bindsym $mod+9 workspace number $ws9
+bindsym $mod+0 workspace number $ws10
+
+# move focused container to workspace
+bindsym $mod+Shift+1 move container to workspace number $ws1
+bindsym $mod+Shift+2 move container to workspace number $ws2
+bindsym $mod+Shift+3 move container to workspace number $ws3
+bindsym $mod+Shift+4 move container to workspace number $ws4
+bindsym $mod+Shift+5 move container to workspace number $ws5
+bindsym $mod+Shift+6 move container to workspace number $ws6
+bindsym $mod+Shift+7 move container to workspace number $ws7
+bindsym $mod+Shift+8 move container to workspace number $ws8
+bindsym $mod+Shift+9 move container to workspace number $ws9
+bindsym $mod+Shift+0 move container to workspace number $ws10
+
+# 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'"
+
+# resize window (you can also use the mouse for that)
+mode "resize" {
+ # These bindings trigger as soon as you enter the resize mode
+
+ # Pressing left will shrink the window’s width.
+ # Pressing right will grow the window’s width.
+ # Pressing up will shrink the window’s height.
+ # Pressing down will grow the window’s height.
+ bindsym $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
+
+ # same bindings, but for the arrow keys
+ bindsym Left resize shrink width 10 px or 10 ppt
+ bindsym Down resize grow height 10 px or 10 ppt
+ bindsym Up resize shrink height 10 px or 10 ppt
+ bindsym Right resize grow width 10 px or 10 ppt
+
+ # back to normal: Enter or Escape or $mod+r
+ bindsym Return mode "default"
+ bindsym Escape mode "default"
+ bindsym $mod+r mode "default"
+}
+
+bindsym $mod+r mode "resize"
+
+# Start i3bar to display a workspace bar (plus the system information i3status
+# finds out, if available)
+#bar {
+# i3bar_command polybar
+# #status_command i3status
+#}
+exec_always --no-startup-id start-polybar
diff --git a/i3/.config/config.keycodes b/i3/.config/config.keycodes
new file mode 100644
index 0000000..7bc5d60
--- /dev/null
+++ b/i3/.config/config.keycodes
@@ -0,0 +1,189 @@
+# WARNING
+# WARNING: This configuration file is a template for the i3-config-wizard to
+# WARNING: generate a config which uses keysyms in your current layout. It does
+# WARNING: not get loaded by i3. Please do not change it.
+# WARNING
+
+# 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:monospace 8
+
+# This font is widely installed, provides lots of unicode glyphs, right-to-left
+# text rendering and scalability on retina/hidpi displays (thanks to pango).
+#font pango:DejaVu Sans Mono 8
+
+# Start XDG autostart .desktop files using dex. See also
+# https://wiki.archlinux.org/index.php/XDG_Autostart
+exec --no-startup-id dex --autostart --environment i3
+
+# The combination of xss-lock, nm-applet and pactl is a popular choice, so
+# they are included here as an example. Modify as you see fit.
+
+# xss-lock grabs a logind suspend inhibit lock and will use i3lock to lock the
+# screen before suspend. Use loginctl lock-session to lock your screen.
+exec --no-startup-id xss-lock --transfer-sleep-lock -- i3lock --nofork
+
+# NetworkManager is the most popular way to manage wireless networks on Linux,
+# and nm-applet is a desktop environment-independent system tray GUI for it.
+exec --no-startup-id nm-applet
+
+# Use pactl to adjust volume in PulseAudio.
+set $refresh_i3status killall -SIGUSR1 i3status
+bindsym XF86AudioRaiseVolume exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ +10% && $refresh_i3status
+bindsym XF86AudioLowerVolume exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ -10% && $refresh_i3status
+bindsym XF86AudioMute exec --no-startup-id pactl set-sink-mute @DEFAULT_SINK@ toggle && $refresh_i3status
+bindsym XF86AudioMicMute exec --no-startup-id pactl set-source-mute @DEFAULT_SOURCE@ toggle && $refresh_i3status
+
+# Use Mouse+$mod to drag floating windows to their wanted position
+floating_modifier $mod
+
+# move tiling windows via drag & drop by left-clicking into the title bar,
+# or left-clicking anywhere into the window while holding the floating modifier.
+tiling_drag modifier titlebar
+
+# start a terminal
+bindcode $mod+36 exec i3-sensible-terminal
+
+# kill focused window
+bindcode $mod+Shift+24 kill
+
+# start dmenu (a program launcher)
+bindcode $mod+40 exec --no-startup-id dmenu_run
+# A more modern dmenu replacement is rofi:
+# bindcode $mod+40 exec "rofi -modi drun,run -show drun"
+# There also is i3-dmenu-desktop which only displays applications shipping a
+# .desktop file. It is a wrapper around dmenu, so you need that installed.
+# bindcode $mod+40 exec --no-startup-id i3-dmenu-desktop
+
+# change focus
+bindcode $mod+44 focus left
+bindcode $mod+45 focus down
+bindcode $mod+46 focus up
+bindcode $mod+47 focus right
+
+# alternatively, you can use the cursor keys:
+bindcode $mod+113 focus left
+bindcode $mod+116 focus down
+bindcode $mod+111 focus up
+bindcode $mod+114 focus right
+
+# move focused window
+bindcode $mod+Shift+44 move left
+bindcode $mod+Shift+45 move down
+bindcode $mod+Shift+46 move up
+bindcode $mod+Shift+47 move right
+
+# alternatively, you can use the cursor keys:
+bindcode $mod+Shift+113 move left
+bindcode $mod+Shift+116 move down
+bindcode $mod+Shift+111 move up
+bindcode $mod+Shift+114 move right
+
+# split in horizontal orientation
+bindcode $mod+43 split h
+
+# split in vertical orientation
+bindcode $mod+55 split v
+
+# enter fullscreen mode for the focused container
+bindcode $mod+41 fullscreen toggle
+
+# change container layout (stacked, tabbed, toggle split)
+bindcode $mod+39 layout stacking
+bindcode $mod+25 layout tabbed
+bindcode $mod+26 layout toggle split
+
+# toggle tiling / floating
+bindcode $mod+Shift+65 floating toggle
+
+# change focus between tiling / floating windows
+bindcode $mod+65 focus mode_toggle
+
+# focus the parent container
+bindcode $mod+38 focus parent
+
+# focus the child container
+#bindsym $mod+d focus child
+
+# Define names for default workspaces for which we configure key bindings later on.
+# We use variables to avoid repeating the names in multiple places.
+set $ws1 "1"
+set $ws2 "2"
+set $ws3 "3"
+set $ws4 "4"
+set $ws5 "5"
+set $ws6 "6"
+set $ws7 "7"
+set $ws8 "8"
+set $ws9 "9"
+set $ws10 "10"
+
+# switch to workspace
+bindcode $mod+10 workspace number $ws1
+bindcode $mod+11 workspace number $ws2
+bindcode $mod+12 workspace number $ws3
+bindcode $mod+13 workspace number $ws4
+bindcode $mod+14 workspace number $ws5
+bindcode $mod+15 workspace number $ws6
+bindcode $mod+16 workspace number $ws7
+bindcode $mod+17 workspace number $ws8
+bindcode $mod+18 workspace number $ws9
+bindcode $mod+19 workspace number $ws10
+
+# move focused container to workspace
+bindcode $mod+Shift+10 move container to workspace number $ws1
+bindcode $mod+Shift+11 move container to workspace number $ws2
+bindcode $mod+Shift+12 move container to workspace number $ws3
+bindcode $mod+Shift+13 move container to workspace number $ws4
+bindcode $mod+Shift+14 move container to workspace number $ws5
+bindcode $mod+Shift+15 move container to workspace number $ws6
+bindcode $mod+Shift+16 move container to workspace number $ws7
+bindcode $mod+Shift+17 move container to workspace number $ws8
+bindcode $mod+Shift+18 move container to workspace number $ws9
+bindcode $mod+Shift+19 move container to workspace number $ws10
+
+# reload the configuration file
+bindcode $mod+Shift+54 reload
+# restart i3 inplace (preserves your layout/session, can be used to upgrade i3)
+bindcode $mod+Shift+27 restart
+# exit i3 (logs you out of your X session)
+bindcode $mod+Shift+26 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'"
+
+# 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.
+ bindcode 44 resize shrink width 10 px or 10 ppt
+ bindcode 45 resize grow height 10 px or 10 ppt
+ bindcode 46 resize shrink height 10 px or 10 ppt
+ bindcode 47 resize grow width 10 px or 10 ppt
+
+ # same bindings, but for the arrow keys
+ bindcode 113 resize shrink width 10 px or 10 ppt
+ bindcode 116 resize grow height 10 px or 10 ppt
+ bindcode 111 resize shrink height 10 px or 10 ppt
+ bindcode 114 resize grow width 10 px or 10 ppt
+
+ # back to normal: Enter or Escape or $mod+r
+ bindcode 36 mode "default"
+ bindcode 9 mode "default"
+ bindcode $mod+27 mode "default"
+}
+
+bindcode $mod+27 mode "resize"
+
+# Start i3bar to display a workspace bar (plus the system information i3status
+# finds out, if available)
+bar {
+ status_command i3status
+}
diff --git a/i3/.config/i3/config b/i3/.config/i3/config
index 3017f2b..e06d268 100644
--- a/i3/.config/i3/config
+++ b/i3/.config/i3/config
@@ -1,5 +1,5 @@
# This file has been auto-generated by i3-config-wizard(1).
-# It will not be overwritten, so edit it as you like.
+# It will 'FiraCode Nerd Font Mono'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).
@@ -13,7 +13,8 @@ set $mod Mod4
# Font for window titles. Will also be used by the bar unless a different font
# is used in the bar {} block below.
-font 'Hack Nerd Font Mono':monospace 8
+#font pango:monospace 8
+font pango:Hack Nerd Font Regular 12
# This font is widely installed, provides lots of unicode glyphs, right-to-left
# text rendering and scalability on retina/hidpi displays (thanks to pango).
@@ -28,7 +29,7 @@ exec --no-startup-id dex --autostart --environment i3
# xss-lock grabs a logind suspend inhibit lock and will use i3lock to lock the
# screen before suspend. Use loginctl lock-session to lock your screen.
-exec --no-startup-id xss-lock --transfer-sleep-lock -- i3lock --nofork
+exec --no-startup-id xss-lock --transfer-sleep-lock -- ~/.config/i3/lock.sh --nofork
# NetworkManager is the most popular way to manage wireless networks on Linux,
# and nm-applet is a desktop environment-independent system tray GUI for it.
@@ -40,13 +41,17 @@ bindsym XF86AudioRaiseVolume exec --no-startup-id pactl set-sink-volume @DEFAULT
bindsym XF86AudioLowerVolume exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ -10% && $refresh_i3status
bindsym XF86AudioMute exec --no-startup-id pactl set-sink-mute @DEFAULT_SINK@ toggle && $refresh_i3status
bindsym XF86AudioMicMute exec --no-startup-id pactl set-source-mute @DEFAULT_SOURCE@ toggle && $refresh_i3status
+bindsym XF86AudioPlay exec "spotifycli --playpause && spotifycli --statusshort > /var/log/scripts/spotify.log"
+bindsym XF86AudioNext exec "spotifycli --next && spotifycli --statusshort > /var/log/scripts/spotify.log"
+bindsym XF86AudioPrev exec "spotifycli --prev && spotifycli --statusshort > /var/log/scripts/spotify.log"
+
# Use Mouse+$mod to drag floating windows to their wanted position
floating_modifier $mod
# move tiling windows via drag & drop by left-clicking into the title bar,
# or left-clicking anywhere into the window while holding the floating modifier.
-# tiling_drag modifier titlebar
+tiling_drag modifier titlebar
# start a terminal
bindsym $mod+Return exec /etc/profiles/per-user/hactario/bin/alacritty
@@ -61,7 +66,7 @@ bindsym $mod+Shift+a kill
# There also is i3-dmenu-desktop which only displays applications shipping a
# .desktop file. It is a wrapper around dmenu, so you need that installed.
# bindcode $mod+40 exec --no-startup-id i3-dmenu-desktop
-bindsym $mod+d exec "dmenu_run -nf '#F8F8F2' -nb '#282A36' -sb '#6272A4' -sf '#F8F8F2' -fn 'Hack-10.5' -p 'launch% '"
+bindsym $mod+d exec "dmenu_run -nf '#F8F8F2' -nb '#282A36' -sb '#6272A4' -sf '#F8F8F2' -fn 'Hack-10.5' -l 5 -p ' '"
# change focus
bindsym $mod+j focus left
@@ -115,16 +120,16 @@ bindsym $mod+q focus parent
# Define names for default workspaces for which we configure key bindings later on.
# We use variables to avoid repeating the names in multiple places.
-set $ws1 "1:Chat"
-set $ws2 "2:Main"
-set $ws3 "3:Console"
-set $ws4 "4"
-set $ws5 "5"
-set $ws6 "6"
-set $ws7 "7"
-set $ws8 "8"
-set $ws9 "9:Spotify"
-set $ws10 "10"
+set $ws1 "1: "
+set $ws2 "2: "
+set $ws3 "3: "
+set $ws4 "4: "
+set $ws5 "5: "
+set $ws6 "6: "
+set $ws7 "7: "
+set $ws8 "8: "
+set $ws9 "9: "
+set $ws10 "10: "
# switch to workspace
bindsym $mod+ampersand workspace number $ws1
@@ -150,6 +155,23 @@ bindsym $mod+Shift+exclam move container to workspace number $ws8
bindsym $mod+Shift+ccedilla move container to workspace number $ws9
bindsym $mod+Shift+agrave move container to workspace number $ws10
+set $monitor_main "DP-1-1"
+set $monitor_vertical "DP-2"
+set $monitor_integrated "eDP-1"
+
+workspace $ws1 output $monitor_main
+workspace $ws2 output $monitor_main
+workspace $ws3 output $monitor_main
+workspace $ws4 output $monitor_main
+workspace $ws5 output $monitor_main
+workspace $ws6 output $monitor_main
+workspace $ws7 output $monitor_vertical
+workspace $ws8 output $monitor_vertical
+workspace $ws9 output $monitor_integrated
+workspace $ws10 output $monitor_integrated
+
+bindsym $mod+x [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)
@@ -184,34 +206,32 @@ mode "resize" {
bindsym $mod+r mode "resize"
-# Start i3bar to display a workspace bar (plus the system information i3status
-# finds out, if available)
-bar {
- font pango:Hack Nerd Font Mono, FontAwesome 10
- status_command i3status -c ~/.config/i3status/config
- position bottom
- workspace_buttons yes
- # tray_output none
- colors {
- background #282A36
- statusline #F8F8F2
- separator #44475A
- focused_workspace #44475A #44475A #F8F8F2
- active_workspace #282A36 #44475A #F8F8F2
- inactive_workspace #282A36 #282A36 #BFBFBF
- urgent_workspace #FF5555 #FF5555 #F8F8F2
- binding_mode #FF5555 #FF5555 #F8F8F2
- }
- bindsym --release button3 exec --no-startup-id import ~/screenshot-$(date +%F-%T).png
-}
+include ~/.config/i3/config.d/*.conf
+
client.focused #6272A4 #6272A4 #F8F8F2 #6272A4 #6272A4
client.focused_inactive #44475A #44475A #F8F8F2 #44475A #44475A
client.unfocused #282A36 #282A36 #BFBFBF #282A36 #282A36
client.urgent #44475A #FF5555 #F8F8F2 #FF5555 #FF5555
client.placeholder #282A36 #282A36 #F8F8F2 #282A36 #282A36
-
client.background #F8F8F2
-exec "setxkbmap -layout be"
+bar {
+ font pango:'Hack Nerd Font Regular' 12
+ position bottom
+ status_command i3status ~/.config/i3status-rust/config.toml
+ colors {
+ background #282A36
+ statusline #F8F8F2
+ separator #44475A
+ focused_workspace #44475A #44475A #F8F8F2
+ active_workspace #282A36 #44475A #F8F8F2
+ inactive_workspace #282A36 #282A36 #BFBFBF
+ urgent_workspace #FF5555 #FF5555 #F8F8F2
+ binding_mode #FF5555 #FF5555 #F8F8F2
+ }
+ bindsym --release button3 exec --no-startup-id import ~/screenshot-$(date +%F-%T).png
+}
+exec --no-startup-id feh --bg-fill ~/.dotfiles/i3/.wallpapers/mr-robot-hacker-10000x5625-15768.png
+exec "setxkbmap -layout be"
diff --git a/i3/.config/i3/config.d/assign.conf b/i3/.config/i3/config.d/assign.conf
new file mode 100644
index 0000000..a4cc619
--- /dev/null
+++ b/i3/.config/i3/config.d/assign.conf
@@ -0,0 +1,25 @@
+# set $ws1 "1: "
+# set $ws2 "2: "
+# set $ws3 "3: "
+# set $ws4 "4: "
+# set $ws5 "5: "
+# set $ws6 "6: "
+# set $ws7 "7: "
+# set $ws8 "8: "
+# set $ws9 "9: "
+# set $ws10 "10: "
+
+assign [class="firefox"] $ws1
+assign [class="chromium-browser"] $ws8
+assign [class="chromium"] $ws8
+assign [class="Thunderbird"] $ws7
+assign [class="vscodium"] $ws3
+assign [class="Alacritty"] $ws2
+assign [class="Moonlight"] $ws6
+assign [class="plex-bin"] $ws5
+assign [class="vlc"] $ws5
+assign [class="Spotify"] $ws9
+assign [class="Spotify"] $ws9
+
+for_window [class="Alert"] floating enable
+for_window [class="dunst"] floating enable
\ No newline at end of file
diff --git a/i3/.config/i3/i3blocks.conf b/i3/.config/i3/i3blocks.conf
index ae3843e..b6b8ddd 100644
--- a/i3/.config/i3/i3blocks.conf
+++ b/i3/.config/i3/i3blocks.conf
@@ -2,6 +2,4 @@
label=⚡
command=/run/current-system/sw/libexec/i3blocks/battery
interval=10
-instance=1
-
-
+instance=1
\ No newline at end of file
diff --git a/i3/.config/i3/lock.sh b/i3/.config/i3/lock.sh
new file mode 100755
index 0000000..f415691
--- /dev/null
+++ b/i3/.config/i3/lock.sh
@@ -0,0 +1,37 @@
+#!/bin/sh
+
+BLANK='#F8F8F2'
+CLEAR='#44475A'
+DEFAULT='#6272A4'
+TEXT='#6272A4'
+WRONG='#44475A'
+VERIFYING='#6272A4'
+
+i3lock \
+--insidever-color=$CLEAR \
+--ringver-color=$VERIFYING \
+\
+--insidewrong-color=$CLEAR \
+--ringwrong-color=$WRONG \
+\
+--inside-color=$BLANK \
+--ring-color=$DEFAULT \
+--line-color=$BLANK \
+--separator-color=$DEFAULT \
+\
+--verif-color=$TEXT \
+--wrong-color=$TEXT \
+--time-color=$TEXT \
+--date-color=$TEXT \
+--layout-color=$TEXT \
+--keyhl-color=$WRONG \
+--bshl-color=$WRONG \
+\
+--screen 1 \
+--blur 9 \
+--clock \
+--indicator \
+--time-str="%H:%M:%S" \
+--date-str="%A, %Y-%m-%d" \
+--keylayout 1 \
+${@}
\ No newline at end of file
diff --git a/i3/.config/i3status-rust/config.toml b/i3/.config/i3status-rust/config.toml
index 1c0c0cc..c859c61 100644
--- a/i3/.config/i3status-rust/config.toml
+++ b/i3/.config/i3status-rust/config.toml
@@ -3,13 +3,10 @@ theme = "dracula"
[icons]
icons = "material-nf"
-
-[icons.overrides]
-bat = [
- "| |",
- "|¼|",
- "|½|",
- "|¾|",
- "|X|",
-]
-bat_charging = "|^|"
+[general]
+ colors = true
+ color_good = "#a3be8c"
+ color_degraded = "#ebcb8b"
+ color_bad = "#bf616a"
+ interval = 1
+ separator = "*"
diff --git a/i3/.config/i3status/config b/i3/.config/i3status/config
index 6a26f3c..3b85c70 100644
--- a/i3/.config/i3status/config
+++ b/i3/.config/i3status/config
@@ -1,70 +1,63 @@
-# i3status configuration file.
-# see "man i3status" for documentation.
-
-# It is important that this file is edited as UTF-8.
-# The following line should contain a sharp s:
-# ß
-# If the above line is not correctly displayed, fix your editor first!
-
general {
+ // output_format = "i3bar"
colors = true
+ // color_good = "#50FA7B"
+ // color_degraded = "#F1FA8C"
+ // color_bad = "#FF5555"
color_good = "#a3be8c"
color_degraded = "#ebcb8b"
color_bad = "#bf616a"
separator = ""
output_format = "i3bar"
interval = 5
+ separator = ""
}
-order += "ipv6"
-order += "wireless _first_"
-order += "ethernet _first_"
+// order += "ipv6"
+order += "volume master"
+order += "read_file spotify"
+order += "disk /"
+order += "disk /nix"
order += "disk /home"
-order += "load"
-order += "memory"
-order += "run_watch DHCP"
-order += "run_watch VPNC"
-order += "path_exists VPN"
+// order += "run_watch DHCP"
+// order += "run_watch VPNC"
+// order += "path_exists VPN"
+order += "wireless wlp2s0"
+order += "ethernet enp0s31f6"
+// order += "ethernet enp0s20f0u3c2"
+order += "ethernet"
order += "battery 0"
order += "cpu_temperature 0"
-order += "tztime local"
-order += "tztime Montreal"
+order += "tztime local"order += "tztime Montreal"
order += "tztime Brussels"
-wireless _first_ {
- format_up = "W: (%quality at %essid) %ip (%speed)"
- format_down = "W: down"
+wireless wlp2s0 {
+ format_up = " (%quality at %essid, %bitrate) %ip"
+ format_down = " "
}
-ethernet _first_ {
- format_up = "E: %ip (%speed)"
- format_down = "E: down"
+ethernet enp0s31f6 {
+ format_up = " %ip"
+ format_down = " "
}
-
-
-battery all {
- format = "%status %percentage %remaining"
-}
-
-load {
- format = "%1min"
-}
-
-memory {
- format = "%used | %available"
- threshold_degraded = "1G"
- format_degraded = "MEMORY < %available"
+ethernet enp0s20f0u3c2 {
+ format_up = " %ip"
+ format_down = " "
}
battery 0 {
- format = "%status %percentage %remaining %emptytime"
- format_down = "No battery"
- status_chr = "⚡ CHR"
- status_bat = "🔋 BAT"
- status_unk = "? UNK"
- status_full = "☻ FULL"
+ format = "%status %percentage %remaining"
+ format_down = ""
+ last_full_capacity = true
+ integer_battery_capacity = true
+ low_threshold = 11
+ threshold_type = percentage
+ hide_seconds = true
+ status_chr = " ⚡ "
+ status_bat = " 🪫 "
+ status_unk = " 🔌 "
+ status_full = " 🔋 "
path = "/sys/class/power_supply/BAT%d/uevent"
- low_threshold = 10
}
run_watch DHCP {
@@ -82,36 +75,54 @@ path_exists VPN {
}
tztime local {
- format = "%Y-%m-%d %H:%M:%S"
+ format = "📅 %V %a %Y-%m-%d %H:%M:%S %Z"
hide_if_equals_localtime = true
}
tztime Brussels {
- format = "%Y-%m-%d %H:%M:%S %Z"
+ format = "📅 %V %a %Y-%m-%d %H:%M:%S %Z"
timezone = "Europe/Brussels"
}
tztime Montreal {
- format = "%H:%M %Z"
+ format = " %H:%M:%S %Z"
timezone = "America/Montreal"
hide_if_equals_localtime = true
}
load {
- format = "%5min"
+ format = " %5min"
}
cpu_temperature 0 {
- format = "T: %degrees °C"
+ format = "🌡️ %degrees"
+ path = "/sys/devices/platform/coretemp.0/hwmon/hwmon5/temp1_input"
}
memory {
- format = "%used"
+ format = " %used"
threshold_degraded = "10%"
format_degraded = "MEMORY: %free"
}
disk "/" {
- format = "%free"
+ format = " / %free"
+ prefix_type = custom
+ low_threshold = 20
+ threshold_type = percentage_avail
+}
+
+disk "/nix" {
+ format = "💻 /nix %free"
+ prefix_type = custom
+ low_threshold = 15
+ threshold_type = percentage_avail
+}
+
+disk "/home" {
+ format = "💾 /home %free"
+ prefix_type = custom
+ low_threshold = 10
+ threshold_type = percentage_avail
}
disk "/home" {
@@ -121,3 +132,17 @@ disk "/home" {
read_file uptime {
path = "/proc/uptime"
}
+
+volume master {
+ format = "%volume "
+ format_muted = " "
+ // device = "pulse:1"pavuc
+ device = "default"
+ mixer = "Master"
+ mixer_idx = 0
+}
+
+read_file spotify {
+ format = "🔊%content"
+ path = "~/.config/i3status/spotify.log"
+}
diff --git a/i3/.config/i3status/spotify.log b/i3/.config/i3status/spotify.log
new file mode 100644
index 0000000..e69de29
diff --git a/i3/.wallpapers/mr-robot-hacker-10000x5625-15768.png b/i3/.wallpapers/mr-robot-hacker-10000x5625-15768.png
new file mode 100644
index 0000000..ca3f854
Binary files /dev/null and b/i3/.wallpapers/mr-robot-hacker-10000x5625-15768.png differ
diff --git a/nano/.nanorc b/nano/.nanorc
index 9558520..ff2b0c5 100644
--- a/nano/.nanorc
+++ b/nano/.nanorc
@@ -59,7 +59,7 @@ set statuscolor brightwhite,red
#set numbercolor magenta
# set keycolor brightmagenta
# set functioncolor magenta
-include "/usr/share/nano/*.nanorc"
+#include "/usr/share/nano/*.nanorc"
# bind ^S savefile main
# bind M-B cutwordleft main
# bind M-N cutwordright main
diff --git a/picom/.config/picom/picom.conf b/picom/.config/picom/picom.conf
new file mode 100644
index 0000000..46ae2ae
--- /dev/null
+++ b/picom/.config/picom/picom.conf
@@ -0,0 +1,14 @@
+# Default opacity of active windows.
+active-opacity = 1.0;
+
+# Default opacity of inactive windows.
+inactive-opacity = 1.0;
+
+# Opacity of window titlebars and borders.
+frame-opacity = 1.0;
+
+# Application-specific settings; these override the default `active-opacity`
+opacity-rule = [
+ "95:class_g = 'Alacritty' && focused",
+ "80:class_g = 'Alacritty' && !focused"
+];
diff --git a/polybar/.config/polybar/config.ini b/polybar/.config/polybar/config.ini
new file mode 100644
index 0000000..264ecc7
--- /dev/null
+++ b/polybar/.config/polybar/config.ini
@@ -0,0 +1,336 @@
+;==========================================================
+;
+;
+; ██████╗ ██████╗ ██╗ ██╗ ██╗██████╗ █████╗ ██████╗
+; ██╔══██╗██╔═══██╗██║ ╚██╗ ██╔╝██╔══██╗██╔══██╗██╔══██╗
+; ██████╔╝██║ ██║██║ ╚████╔╝ ██████╔╝███████║██████╔╝
+; ██╔═══╝ ██║ ██║██║ ╚██╔╝ ██╔══██╗██╔══██║██╔══██╗
+; ██║ ╚██████╔╝███████╗██║ ██████╔╝██║ ██║██║ ██║
+; ╚═╝ ╚═════╝ ╚══════╝╚═╝ ╚═════╝ ╚═╝ ╚═╝╚═╝ ╚═╝
+;
+;
+; To learn more about how to configure Polybar
+; go to https://github.com/polybar/polybar
+;
+; The README contains a lot of information
+;
+;==========================================================
+
+[colors]
+background = #282A36
+background-alt = #BFBFBF
+foreground = #F8F8F2
+primary = #F8F8F2
+secondary = #282A36
+alert = #44475A
+disabled = #44475A
+
+[bar/main]
+monitor = "DP-1-2"
+# Last component is the vertical offset
+#font-0 = Fira Code:size=10;4
+; font-0 = FiraMono Nerd Font:size=12;4
+#fc-match FontAwesome:pixelsize=14 FontAwesome.otf: "FontAwesome" "Regular"
+; font-3 = FontAwesome:pixelsize=14;0
+#font-0 = Overpass Nerd Font,Overpass Nerd Font SemBd:size=10;4
+#font-0 = FiraCode:size=10;4
+#font-0 = Overpass Nerd Font:size=10;4
+#font-1 = Noto Sans:size=10;4
+
+font-0 = fixed:pixelsize=12;1
+font-1 = unifont:fontformat=truetype:size=10:antialias=false;0
+font-2 = "FiraCode Nerd Font:pixelsize=12;1"
+width = 100%
+height = 16pt
+radius = 0
+
+#dpi = 192
+
+background = ${colors.background}
+foreground = ${colors.foreground}
+
+line-size = 2pt
+
+border-size = 0pt
+border-color = #00000000
+
+padding-left = 0
+padding-right = 1
+
+module-margin = 1
+
+separator = |
+separator-foreground = ${colors.disabled}
+
+modules-left = xworkspaces xwindow
+modules-right = filesystem pulseaudio xkeyboard memory cpu wlan eth battery date
+#modules-right = pulseaudio wlan eth battery date
+
+cursor-click = pointer
+cursor-scroll = ns-resize
+
+enable-ipc = true
+
+tray-position = right
+
+; wm-restack = generic
+; wm-restack = bspwm
+wm-restack = i3
+
+; override-redirect = true
+
+[module/xworkspaces]
+type = internal/xworkspaces
+
+label-active = %name%
+label-active-background = ${colors.background-alt}
+label-active-underline= ${colors.primary}
+label-active-padding = 1
+
+label-occupied = %name%
+label-occupied-padding = 1
+
+label-urgent = %name%
+label-urgent-background = ${colors.alert}
+label-urgent-padding = 1
+
+label-empty = %name%
+label-empty-foreground = ${colors.disabled}
+label-empty-padding = 1
+
+[module/xwindow]
+type = internal/xwindow
+label = %title:0:60:...%
+
+[module/filesystem]
+type = internal/fs
+interval = 25
+
+mount-0 = /
+
+label-mounted = %{F#F0C674}%mountpoint%%{F-} %percentage_used%%
+
+label-unmounted = %mountpoint% not mounted
+label-unmounted-foreground = ${colors.disabled}
+
+[module/pulseaudio]
+type = internal/pulseaudio
+
+format-volume-prefix = " "
+format-volume-prefix-foreground = ${colors.primary}
+format-volume =
+
+label-volume = %percentage%%
+
+label-muted = " muted"
+label-muted-foreground = ${colors.disabled}
+
+[module/xkeyboard]
+type = internal/xkeyboard
+blacklist-0 = num lock
+
+label-layout = %layout%
+label-layout-foreground = ${colors.primary}
+
+label-indicator-padding = 2
+label-indicator-margin = 1
+label-indicator-foreground = ${colors.background}
+label-indicator-background = ${colors.secondary}
+
+[module/memory]
+type = internal/memory
+interval = 2
+format-prefix = "RAM "
+format-prefix-foreground = ${colors.primary}
+label = %percentage_used:2%%
+
+[module/cpu]
+type = internal/cpu
+interval = 2
+format-prefix = "CPU "
+format-prefix-foreground = ${colors.primary}
+label = %percentage:2%%
+
+[network-base]
+type = internal/network
+interval = 5
+format-connected =
+format-disconnected =
+
+[module/wlan]
+inherit = network-base
+interface-type = wireless
+format-connected =
+label-connected = %local_ip%
+#label-connected = %{F#F0C674} %{F-} %local_ip%
+#label-connected = %{F#F0C674}%ifname%%{F-} %essid% %local_ip%
+label-disconnected = %{F#F0C674}%ifname%%{F#707880} disconnected
+ramp-signal-0 = %{F#F0C674} %{F-}
+ramp-signal-1 = %{F#F0C674} %{F-}
+ramp-signal-2 = %{F#F0C674} %{F-}
+ramp-signal-3 = %{F#F0C674} %{F-}
+ramp-signal-4 = %{F#F0C674} %{F-}
+ramp-signal-5 = %{F#F0C674} %{F-}
+
+[module/eth]
+inherit = network-base
+interface-type = wired
+label-connected = %{F#F0C674}%ifname% %{F-} %local_ip%
+#label-connected = %{F#F0C674}%ifname%%{F-} %local_ip%
+label-disconnected = %{F#F0C674}%ifname%%{F#707880} disconnected
+
+[module/battery]
+type = internal/battery
+# $ ls -1 /sys/class/power_supply/
+battery = BAT0
+adapter = ADP1
+low-at = 15
+
+# If an inotify event haven't been reported in this many
+# seconds, manually poll for new values.
+#
+# Needed as a fallback for systems that don't report events
+# on sysfs/procfs.
+#
+# Disable polling by setting the interval to 0.
+#
+# Default: 5
+#poll-interval = 5
+
+# Available tags:
+# (default)
+#
+#
+#
+format-charging =
+
+# Available tags:
+# (default)
+#
+#
+#
+#format-discharging =
+format-discharging =
+
+# Available tokens:
+# %percentage% (default) - is set to 100 if full-at is reached
+# %percentage_raw%
+# %time%
+# %consumption% (shows current charge rate in watts)
+label-charging = %percentage%%
+#label-charging = Charging %percentage%%
+
+# Available tokens:
+# %percentage% (default) - is set to 100 if full-at is reached
+# %percentage_raw%
+# %time%
+# %consumption% (shows current discharge rate in watts)
+label-discharging = %percentage%%
+#label-discharging = Discharging %percentage%%
+
+# Available tokens:
+# %percentage% (default) - is set to 100 if full-at is reached
+# %percentage_raw%
+label-full = "%{F#F0C674} %{F-}"
+
+# Available tokens:
+# %percentage% (default) - is set to 100 if full-at is reached
+# %percentage_raw%
+# %time%
+# %consumption% (shows current discharge rate in watts)
+# New in version 3.6.0
+label-low = BATTERY LOW
+
+# Only applies if is used
+ramp-capacity-0 = "%{F#F04020} %{F-}"
+ramp-capacity-1 = "%{F#F0C674} %{F-}"
+ramp-capacity-2 = "%{F#F0C674} %{F-}"
+ramp-capacity-3 = "%{F#F0C674} %{F-}"
+ramp-capacity-4 = "%{F#F0C674} %{F-}"
+
+# Only applies if is used
+bar-capacity-width = 10
+
+# Only applies if is used
+animation-charging-0 = "%{F#F0C674} %{F-}"
+animation-charging-1 = "%{F#F0C674} %{F-}"
+animation-charging-2 = "%{F#F0C674} %{F-}"
+animation-charging-3 = "%{F#F0C674} %{F-}"
+animation-charging-4 = "%{F#F0C674} %{F-}"
+# Framerate in milliseconds
+animation-charging-framerate = 750
+
+# Only applies if is used
+animation-discharging-0 = " "
+animation-discharging-1 = " "
+animation-discharging-2 = " "
+animation-discharging-3 = " "
+animation-discharging-4 = " "
+# Framerate in milliseconds
+animation-discharging-framerate = 500
+
+[module/date]
+type = internal/date
+interval = 1
+
+date = %H:%M
+date-alt = %Y-%m-%d %H:%M:%S
+
+label = %date%
+#label-foreground = ${colors.primary}
+
+[settings]
+screenchange-reload = true
+pseudo-transparency = true
+
+[module/i3]
+type = internal/i3
+
+; Only show workspaces defined on the same output as the bar
+;
+; Useful if you want to show monitor specific workspaces
+; on different bars
+;
+; Default: false
+pin-workspaces = false
+
+; Show urgent workspaces regardless of whether the workspace is actually hidden
+; by pin-workspaces.
+;
+; Default: false
+; New in version 3.6.0
+show-urgent = true
+
+; This will split the workspace name on ':'
+; Default: false
+strip-wsnumbers = true
+
+; Sort the workspaces by index instead of the default
+; sorting that groups the workspaces by output
+; Default: false
+index-sort = true
+
+; Create click handler used to focus workspace
+; Default: true
+enable-click = false
+
+; Create scroll handlers used to cycle workspaces
+; Default: true
+enable-scroll = false
+
+; Wrap around when reaching the first/last workspace
+; Default: true
+wrapping-scroll = false
+
+; Set the scroll cycle direction
+; Default: true
+reverse-scroll = false
+
+; Use fuzzy (partial) matching for wc-icon.
+; Example: code;♚ will apply the icon to all workspaces
+; containing 'code' in the name
+; Changed in version 3.7.0: Selects longest string match instead of the first match.
+; Default: false
+fuzzy-match = true
+
+; vim:ft=dosini
diff --git a/setup.sh b/setup.sh
index da22fa6..d1ba645 100755
--- a/setup.sh
+++ b/setup.sh
@@ -8,16 +8,20 @@ git submodule update
# what directories should be installable by all users including the root user
base=(
+ picom
dracula
+ dunst
git
helix
htop
+ i3
nano
nix
+ polybar
puppet
ssh
- i3
sway
+ i3
terminfo
tmux
vim
diff --git a/zsh/.oh-my-zsh b/zsh/.oh-my-zsh
index b5583a3..a72a264 160000
--- a/zsh/.oh-my-zsh
+++ b/zsh/.oh-my-zsh
@@ -1 +1 @@
-Subproject commit b5583a321644218702c4ef588934575f46a2159b
+Subproject commit a72a26406ad3aa9a47c3f5227291bad23494bed0
diff --git a/zsh/.zshrc b/zsh/.zshrc
index 0e01281..ec8c353 100644
--- a/zsh/.zshrc
+++ b/zsh/.zshrc
@@ -1,5 +1,6 @@
-export PATH=$HOME/bins/toolbox:$HOME/.cargo/bin:$HOME/.local/bin:/usr/local/bin:$HOME/.pyenv/bin:$HOME/hosting-run-scripts/:$PATH
+export PATH=$HOME/bins/toolbox:$HOME/.cargo/bin:$HOME/.local/bin:/usr/local/bin:$HOME/hosting-run-scripts/:$PATH
export ZSH=$HOME/.oh-my-zsh
+source ~/hosting-run-scripts/rc-files/ovhrc
# See https://github.com/robbyrussell/oh-my-zsh/wiki/Themes
ZSH_THEME="agnoster"
HOST_COLOR=$(hostname -f | xxd -u -ps -s 5 -l 3 || 'FF0000')
@@ -30,7 +31,7 @@ eval "$(pyenv init --path)"
# Example format: plugins=(rails git textmate ruby lighthouse)
# Add wisely, as too many plugins slow down shell startup.
plugins=(
-adb
+#adb
#ant
#apache2-macports
#arcanist
@@ -88,7 +89,7 @@ docker-compose
#eecms
#emacs
#ember-cli
-emoji
+#emoji
#emoji-clock
#emotty
encode64
@@ -168,7 +169,6 @@ man
#n98-magerun
nanoc
#ng
-#nix
#nmap
node
#nomad
@@ -194,7 +194,7 @@ postgres
#powify
#profiles
pyenv
-pylint
+#pylint
python
#rails
#rake
@@ -208,7 +208,7 @@ redis-cli
#repo
rsync
#ruby
-rust
+#rust
#rvm
#safe-paste
#sbt
@@ -249,7 +249,7 @@ tmux
#tmuxinator
#torrent
#tugboat
-ubuntu
+#ubuntu
#urltools
vagrant
vault
@@ -274,7 +274,7 @@ vault
)
zstyle :omz:plugins:ssh-agent agent-forwarding on
-zstyle :omz:plugins:ssh-agent identities $(hostname -f)
+zstyle :omz:plugins:ssh-agent identities work_201909
zstyle :omz:plugins:ssh-agent lifetime 4h
source $ZSH/oh-my-zsh.sh
@@ -344,19 +344,10 @@ alias osc='openstack console log show'
alias oss='openstack server'
alias psa='ps auxwwwf'
alias toph='top -cHd1'
+alias vdir='vdir --color=auto'
alias ip="ip --color"
-
-alias gw01='z3 gw01.infra.mps.gs.ovh.net'
-alias hr-admin='z3 root@hr-admin.rungs.ovh'
-alias public='z3 root@public01.infra.gs.ovh.net'
-alias thot_cloudweb-robot-preprod='thot '\''wss://thot.ovh.com/tail/?tk=c89ec346-ce0d-4504-b69b-b3c216e91385'\'''
-alias thot_reseller-robot-preprod='thot '\''wss://thot.ovh.com/tail/?tk=e4bdf746-d041-41d3-81a5-7e4629d3e507'\'''
-alias m5='sm3 ovh@mozg-mutu5.ovh.ha.ovh.net'
-alias melt='sm3 gs@mozg-meltingpot.ovh.ha.ovh.net'
-alias mis='sm3 mozg-mis.ovh.ha.ovh.net'
-alias logalert='sm3 --osh logovh --log alert | grep -E "MUTU|INTERNE|CLOUDWEB"'
-alias evilssh='ssh sm3.ovh.net -- --osh selfForgetHostKey --host mis-reseller.lb.engine.ha.ovh.net --port 10666 && ssh -t sm3.ovh.net -- root@mis-reseller.lb.engine.ha.ovh.net -p 10666'
-if [ -f ~/.webhosting/activate ]; then source ~/.webhosting/activate; fi
+VAULT_ADDR="https://vault.ood.ovh:8200"
+source ~/.webhosting/activate
autoload -Uz compinit
zstyle ':completion:*' menu select
fpath+=~/.zfunc
@@ -365,5 +356,4 @@ alias bat=batcat
alias osm="openstack --os-cloud management_stack"
alias osmb="openstack --os-cloud management_stack_sbg"
alias osmd="openstack --os-cloud management_stack_de"
-export BASTION_CONF_FILE=~/.config/ovh/bastion.env
-VAULT_ADDR="https://vault.ood.ovh:8200"
+export BASTION_CONF_FILE=~/.config/ovh/bastion.env
\ No newline at end of file