diff --git a/.gitignore b/.gitignore index 21ee720..d991bb3 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ git/.gitconfig-work +zsh/.oh-my-zsh home/ nano/.cache/nano/* \ No newline at end of file diff --git a/.gitmodules b/.gitmodules index 7507ee7..f692e3b 100644 --- a/.gitmodules +++ b/.gitmodules @@ -4,6 +4,3 @@ [submodule "terminfo/termite"] path = terminfo/termite url = https://github.com/thestinger/termite.git -[submodule "alacritty/.config/alacritty/alacritty-theme"] - path = alacritty/.config/alacritty/alacritty-theme - url = git@github.com:alacritty/alacritty-theme.git diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index fd16ba2..1c60d36 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -1,10 +1,10 @@ # See https://pre-commit.com for more information # See https://pre-commit.com/hooks.html for more hooks repos: -- repo: https://github.com/pre-commit/pre-commit-hooks - rev: v3.2.0 - hooks: - - id: trailing-whitespace - - id: end-of-file-fixer - - id: check-yaml - - id: check-added-large-files + - repo: https://github.com/pre-commit/pre-commit-hooks + rev: v4.5.0 + hooks: + - id: trailing-whitespace + - id: end-of-file-fixer + - id: check-yaml + - id: check-added-large-files diff --git a/alacritty/.config/alacritty/alacritty-theme b/alacritty/.config/alacritty/alacritty-theme deleted file mode 160000 index 90a8406..0000000 --- a/alacritty/.config/alacritty/alacritty-theme +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 90a8406beb095fdb1617135a98c38df1ef08859c diff --git a/alacritty/.config/alacritty/alacritty.toml b/alacritty/.config/alacritty/alacritty.toml index ce0a4b7..2aa66c9 100644 --- a/alacritty/.config/alacritty/alacritty.toml +++ b/alacritty/.config/alacritty/alacritty.toml @@ -1,9 +1,12 @@ -import = [ - "~/.config/alacritty/alacritty-thems/dark_pride.toml", - "~/.config/alacritty/alacritty-thems/dracula_plus.toml", - "~/.config/alacritty/hactatio.toml" -] +import = ["~/.config/alacritty/dracula.toml", "~/.config/alacritty/qgodefro.toml"] [env] TERM = "xterm-256color" +decorations = "none" +startup_mode = "Maximized" +[window] +opacity = 0.70 + +[scrolling] +history = 100000 \ No newline at end of file diff --git a/alacritty/.config/alacritty/dracula.toml b/alacritty/.config/alacritty/dracula.toml index ce990d9..8fb50e3 100644 --- a/alacritty/.config/alacritty/dracula.toml +++ b/alacritty/.config/alacritty/dracula.toml @@ -63,7 +63,7 @@ text = "CellBackground" color = "0xf8f8f2" [font] -size = 10.0 +size = 8.0 [font.bold] family = "Hack Nerd Font Mono" diff --git a/alacritty/.config/alacritty/dracula_plus.toml b/alacritty/.config/alacritty/dracula_plus.toml deleted file mode 100644 index 86a8549..0000000 --- a/alacritty/.config/alacritty/dracula_plus.toml +++ /dev/null @@ -1,29 +0,0 @@ -# Colors (Dracula+) - -[colors.primary] -background = '#212121' -foreground = '#F8F8F2' - -[colors.cursor] -text = '#0E1415' -cursor = '#ECEFF4' - -[colors.normal] -black = '#21222C' -red = '#FF5555' -green = '#50FA7B' -yellow = '#FFCB6B' -blue = '#82AAFF' -magenta = '#C792EA' -cyan = '#8BE9FD' -white = '#F8F9F2' - -[colors.bright] -black = '#545454' -red = '#FF6E6E' -green = '#69FF94' -yellow = '#FFCB6B' -blue = '#D6ACFF' -magenta = '#FF92DF' -cyan = '#A4FFFF' -white = '#F8F8F2' diff --git a/alacritty/.config/alacritty/hactario.toml b/alacritty/.config/alacritty/qgodefro.toml similarity index 68% rename from alacritty/.config/alacritty/hactario.toml rename to alacritty/.config/alacritty/qgodefro.toml index 7b5970d..7b0225d 100644 --- a/alacritty/.config/alacritty/hactario.toml +++ b/alacritty/.config/alacritty/qgodefro.toml @@ -21,3 +21,14 @@ multiplier = 3 save_to_clipboard = true semantic_escape_chars = ",│`|:\"' ()[]{}<>\t" +#[windows] +#decorations = "none" +#dynamic_title = true +#opacity = 0.8 + +#[windows.class] +#general = "alacritty" + +#[windows.dimensions] +#columns = 0 +#lines = 0 diff --git a/awesome/.config/awesome/rc.lua b/awesome/.config/awesome/rc.lua index 975a92f..5a135e4 100644 --- a/awesome/.config/awesome/rc.lua +++ b/awesome/.config/awesome/rc.lua @@ -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..0c8ae7f 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,29 +41,21 @@ 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 +tiling_drag modifier titlebar +bindsym $mod+Return exec alacritty +bindsym $mod+d exec "dmenu_run -nf '#F8F8F2' -nb '#282A36' -sb '#6272A4' -sf '#F8F8F2' -fn 'Hack-10.5' -l 5 -p '  '" # 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 /etc/profiles/per-user/hactario/bin/alacritty - -# kill focused window -bindsym $mod+Shift+a kill - -# start dmenu (a program launcher) -# bindsym $mod+d 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 -bindsym $mod+d exec "dmenu_run -nf '#F8F8F2' -nb '#282A36' -sb '#6272A4' -sf '#F8F8F2' -fn 'Hack-10.5' -p 'launch% '" - # change focus bindsym $mod+j focus left bindsym $mod+k focus down @@ -115,16 +108,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,12 +143,29 @@ 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) 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'" +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" { @@ -184,6 +194,8 @@ mode "resize" { bindsym $mod+r mode "resize" +include ~/.config/i3/config.d/*.conf + # Start i3bar to display a workspace bar (plus the system information i3status # finds out, if available) bar { @@ -210,8 +222,8 @@ 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" + +exec --no-startup-id feh --bg-fill ~/.dotfiles/i3/.wallpapers/mr-robot-hacker-10000x5625-15768.png diff --git a/i3/.config/i3/config.d/assign.conf b/i3/.config/i3/config.d/assign.conf new file mode 100644 index 0000000..4a55db2 --- /dev/null +++ b/i3/.config/i3/config.d/assign.conf @@ -0,0 +1,24 @@ +# 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 + +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..c6b7736 100644 --- a/i3/.config/i3status/config +++ b/i3/.config/i3status/config @@ -1,12 +1,5 @@ -# 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 = "#a3be8c" color_degraded = "#ebcb8b" @@ -14,8 +7,22 @@ general { separator = "" output_format = "i3bar" interval = 5 + separator = "󰭆" } +// order += "ipv6" +order += "volume master" +order += "read_file spotify" +order += "disk /" +order += "disk /nix" +order += "disk /home" +// order += "run_watch DHCP" +// order += "run_watch VPNC" +// order += "path_exists VPN" +order += "wireless wlp2s0" +order += "ethernet enp0s31f6" +order += "ethernet enxd8d09030b06b" +order += "ethernet" order += "ipv6" order += "wireless _first_" order += "ethernet _first_" @@ -36,35 +43,32 @@ wireless _first_ { format_down = "W: down" } -ethernet _first_ { - format_up = "E: %ip (%speed)" - format_down = "E: down" +ethernet enp0s31f6 { + format_up = "󰈀 %ip" + format_down = "󰈀 " } +ethernet enp0s20f0u3c2 { + 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" -} - 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,7 +86,7 @@ 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 } @@ -97,21 +101,39 @@ tztime Montreal { } 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 +143,37 @@ 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" + + format = "%status %percentage %remaining" +} + +disk "/" { + format = "%avail" +} + +load { + format = "%1min" +} + +memory { + format = "%used | %available" + threshold_degraded = "1G" + format_degraded = "MEMORY < %available" +} + +tztime local { + format = "%Y-%m-%d %H:%M:%S" +} diff --git a/i3/.config/i3status/spotify.log b/i3/.config/i3status/spotify.log new file mode 100644 index 0000000..e69de29 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..374a539 100755 --- a/setup.sh +++ b/setup.sh @@ -1,14 +1,13 @@ #!/usr/bin/env bash -cd "$( dirname "$0" )" - +cd $(dirname $0) || exit # make sure we have pulled in and updated any submodules git submodule init git submodule update # what directories should be installable by all users including the root user base=( - dracula + dunst git helix htop @@ -16,8 +15,6 @@ base=( nix puppet ssh - i3 - sway terminfo tmux vim @@ -29,6 +26,10 @@ useronly=( alacritty asciinema awesome + dracula + i3 + picom + polybar ) # run the stow command for the passed in directory ($2) in location $1 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..1427949 100644 --- a/zsh/.zshrc +++ b/zsh/.zshrc @@ -1,7 +1,9 @@ -export PATH=$HOME/bins/toolbox:$HOME/.cargo/bin:$HOME/.local/bin:/usr/local/bin:$HOME/.pyenv/bin:$HOME/hosting-run-scripts/:$PATH +#zmodload zsh/zprof +export PATH=$HOME/bins/toolbox:$HOME/.cargo/bin:$HOME/.local/bin:/usr/local/bin:$HOME/.pyenv/bin:$HOME/hosting-run-scripts/:$HOME/bins/alexis/.local/bin/:$PATH export ZSH=$HOME/.oh-my-zsh # See https://github.com/robbyrussell/oh-my-zsh/wiki/Themes ZSH_THEME="agnoster" +DEFAULT_USER=$USER HOST_COLOR=$(hostname -f | xxd -u -ps -s 5 -l 3 || 'FF0000') # CASE_SENSITIVE="true" # HYPHEN_INSENSITIVE="true" @@ -12,7 +14,7 @@ DEFAULT_USER=$USER # DISABLE_AUTO_TITLE="true" # ENABLE_CORRECTION="true" # Uncomment the following line to display red dots whilst waiting for completion. -# COMPLETION_WAITING_DOTS="true" +COMPLETION_WAITING_DOTS="true" # DISABLE_UNTRACKED_FILES_DIRTY="true" HIST_STAMPS="yyyy-mm-dd" @@ -30,11 +32,11 @@ 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 -archlinux +#archlinux #asdf #autoenv #autojump @@ -44,7 +46,7 @@ archlinux #bbedit #bgnotify #boot2docker -bower +#bower branch #brew #bundler @@ -68,11 +70,11 @@ colorize #command-not-found #common-aliases #compleat -composer +#composer #copybuffer #copydir #copyfile -cp +#cp #cpanm debian #dircycle @@ -80,15 +82,15 @@ debian #dirpersist #django #dnf -docker -docker-compose +#docker +#docker-compose #docker-machine #dotenv #droplr #eecms #emacs #ember-cli -emoji +#emoji #emoji-clock #emotty encode64 @@ -132,7 +134,7 @@ gpg-agent history #history-substring-search #httpie -iterm2 +#iterm2 #iwhois #jake-node #jhbuild @@ -170,9 +172,9 @@ nanoc #ng #nix #nmap -node +#node #nomad -npm +#npm #npx #nvm #nyan @@ -185,16 +187,16 @@ npm #perl #perms #phing -pip +#pip #pj #pod -postgres +#postgres #pow #powder #powify #profiles pyenv -pylint +#pylint python #rails #rake @@ -204,7 +206,7 @@ python #rbfu #react-native #rebar -redis-cli +#redis-cli #repo rsync #ruby @@ -225,7 +227,7 @@ ssh-agent #stack #sublime sudo -supervisor +#supervisor #suse #svn #svn-fast-info @@ -233,7 +235,7 @@ supervisor #symfony #symfony2 #systemadmin -systemd +#systemd #taskwarrior #terminalapp #terminitor @@ -249,10 +251,10 @@ tmux #tmuxinator #torrent #tugboat -ubuntu +#ubuntu #urltools -vagrant -vault +#vagrant +#vault #vi-mode #vim-interaction #virtualenv @@ -274,8 +276,9 @@ vault ) zstyle :omz:plugins:ssh-agent agent-forwarding on -zstyle :omz:plugins:ssh-agent identities $(hostname -f) +zstyle :omz:plugins:ssh-agent lazy yes zstyle :omz:plugins:ssh-agent lifetime 4h +zstyle :omz:plugins:ssh-agent quiet yes source $ZSH/oh-my-zsh.sh @@ -328,42 +331,31 @@ status() { print "" } -alias kbe='setxkbmap be' -alias kus='setxkbmap us' +alias bat='batcat' alias dl='wget -r -k -T 5 -t 2 -U '\''Mozilla/5.0 (X11; Linux x86_64; rv:35.0) Gecko/20100101 Firefox/35.0'\'' ' alias egrep='egrep --color=auto' alias fgrep='fgrep --color=auto' alias flip='shuf -i 0-1 -n 1 | sed -e '\''s/1/Pile/'\'' -e '\''s/0/Face/'\''' alias grep='grep --color=auto' -alias ls='ls --classify --tabsize=0 --literal --color=auto --show-control-chars --human-readable' +alias ip="ip --color" +alias kbe='setxkbmap be' +alias kus='setxkbmap us' alias l='ls -CF' alias la='ls -A' alias ll='ls -lah' -alias osj='openstack -f json' +alias ls='ls --classify --tabsize=0 --literal --color=auto --show-control-chars --human-readable' alias osc='openstack console log show' +alias osj='openstack -f json' +alias osm="openstack --os-cloud management_stack" +alias osmb="openstack --os-cloud management_stack_sbg" +alias osmd="openstack --os-cloud management_stack_de" alias oss='openstack server' alias psa='ps auxwwwf' alias toph='top -cHd1' -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 +alias vdir='vdir --color=auto' +export BASTION_CONF_FILE=~/.config/ovh/bastion.env +source ~/.webhosting/activate autoload -Uz compinit zstyle ':completion:*' menu select fpath+=~/.zfunc fpath+=${ZDOTDIR:-~}/.zsh_functions -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"