New Files
This commit is contained in:
22
Dockerfile
Normal file
22
Dockerfile
Normal file
@ -0,0 +1,22 @@
|
||||
FROM registry.mycloudnc.ru/alt-base-image:latest AS atomicBase
|
||||
|
||||
# Определяем тип сборки
|
||||
ARG BUILD_TYPE="default"
|
||||
ENV BUILD_TYPE=$BUILD_TYPE
|
||||
|
||||
# Выполняем все шаги в одном RUN для минимизации слоёв
|
||||
RUN --mount=type=bind,source=./src,target=/src \
|
||||
/src/main.sh
|
||||
|
||||
# Стадия 2: Переход к пустому образу
|
||||
FROM scratch
|
||||
|
||||
# Копируем всё содержимое из предыдущего образа
|
||||
COPY --from=atomicBase / /
|
||||
|
||||
WORKDIR /
|
||||
|
||||
# Помечаем образ как bootc совместимый
|
||||
LABEL containers.bootc=1
|
||||
|
||||
CMD ["/sbin/init"]
|
32
src/Sway/kitty/kitty-colors.conf
Executable file
32
src/Sway/kitty/kitty-colors.conf
Executable file
@ -0,0 +1,32 @@
|
||||
# /* ---- 💫 https://github.com/JaKooLit 💫 ---- */ #
|
||||
# /* wallust template - colors-kitty */
|
||||
|
||||
foreground #FBECD3
|
||||
background #0E0E0F
|
||||
cursor #FBECD3
|
||||
|
||||
active_tab_foreground #0E0E0F
|
||||
active_tab_background #FBECD3
|
||||
inactive_tab_foreground #FBECD3
|
||||
inactive_tab_background #0E0E0F
|
||||
|
||||
active_border_color #FBECD3
|
||||
inactive_border_color #0E0E0F
|
||||
bell_border_color #100C10
|
||||
|
||||
color0 #373738
|
||||
color1 #100C10
|
||||
color2 #3C1E1A
|
||||
color3 #622F22
|
||||
color4 #434646
|
||||
color5 #616B64
|
||||
color6 #B79661
|
||||
color7 #F1DBB8
|
||||
color8 #A99981
|
||||
color9 #151016
|
||||
color10 #502922
|
||||
color11 #833E2D
|
||||
color12 #595D5D
|
||||
color13 #818F85
|
||||
color14 #F4C882
|
||||
color15 #F1DBB8
|
37
src/Sway/kitty/kitty.conf
Executable file
37
src/Sway/kitty/kitty.conf
Executable file
@ -0,0 +1,37 @@
|
||||
# /* ---- 💫 https://github.com/JaKooLit 💫 ---- */ #
|
||||
|
||||
# wallust-colors
|
||||
#include kitty-colors.conf
|
||||
# font_family JetBrainsMonoNerd
|
||||
font_size 13.0
|
||||
# bold_font auto
|
||||
# italic_font auto
|
||||
# bold_italic_font auto
|
||||
|
||||
background_opacity 0.7
|
||||
confirm_os_window_close 0
|
||||
|
||||
# change to x11 or wayland or leave auto
|
||||
linux_display_server auto
|
||||
|
||||
scrollback_lines 2000
|
||||
wheel_scroll_min_lines 1
|
||||
|
||||
enable_audio_bell no
|
||||
|
||||
window_padding_width 4
|
||||
|
||||
selection_foreground none
|
||||
selection_background none
|
||||
|
||||
foreground #dddddd
|
||||
background #000000
|
||||
cursor #dddddd
|
||||
|
||||
|
||||
# BEGIN_KITTY_FONTS
|
||||
font_family family="JetBrainsMono Nerd Font"
|
||||
bold_font auto
|
||||
italic_font auto
|
||||
bold_italic_font auto
|
||||
# END_KITTY_FONTS
|
30
src/Sway/kitty/kitty.conf.bak
Executable file
30
src/Sway/kitty/kitty.conf.bak
Executable file
@ -0,0 +1,30 @@
|
||||
# /* ---- 💫 https://github.com/JaKooLit 💫 ---- */ #
|
||||
|
||||
# wallust-colors
|
||||
#include kitty-colors.conf
|
||||
|
||||
font_family JetBrainsMonoNerd
|
||||
font_size 15.0
|
||||
bold_font auto
|
||||
italic_font auto
|
||||
bold_italic_font auto
|
||||
|
||||
background_opacity 0.7
|
||||
confirm_os_window_close 0
|
||||
|
||||
# change to x11 or wayland or leave auto
|
||||
linux_display_server auto
|
||||
|
||||
scrollback_lines 2000
|
||||
wheel_scroll_min_lines 1
|
||||
|
||||
enable_audio_bell no
|
||||
|
||||
window_padding_width 4
|
||||
|
||||
selection_foreground none
|
||||
selection_background none
|
||||
|
||||
foreground #dddddd
|
||||
background #000000
|
||||
cursor #dddddd
|
268
src/Sway/sway/config
Executable file
268
src/Sway/sway/config
Executable file
@ -0,0 +1,268 @@
|
||||
# Default config for sway
|
||||
#
|
||||
# Copy this to ~/.config/sway/config and edit it to your liking.
|
||||
#
|
||||
# Read `man 5 sway` for a complete reference.
|
||||
|
||||
#set $gnome-schema org.gnome.desktop.interface
|
||||
#
|
||||
#exec_always{
|
||||
# gsettings set $gnome-schema gtk-theme 'Catppuccin-Dark-Frappe'
|
||||
#
|
||||
#}
|
||||
|
||||
|
||||
|
||||
|
||||
### Variables
|
||||
#
|
||||
# Logo key. Use Mod1 for Alt.
|
||||
set $mod Mod4
|
||||
# Home row direction keys, like vim
|
||||
set $left h
|
||||
set $down j
|
||||
set $up k
|
||||
set $right l
|
||||
# Your preferred terminal emulator
|
||||
set $term kitty
|
||||
# Your preferred application launcher
|
||||
set $menu rofi
|
||||
exec waybar
|
||||
exec_always autotiling
|
||||
### Output configuration
|
||||
#
|
||||
# Default wallpaper (more resolutions are available in /usr/share/backgrounds/sway/)
|
||||
output * bg /home/ivan/Загрузки/cozy-cabin-in-the-woods-desktop-wallpaper.jpg fill
|
||||
#
|
||||
# Example configuration:
|
||||
#
|
||||
output eDP-1 scale 1.50 resolution 1920x1080 position 0,0
|
||||
#
|
||||
# You can get the names of your outputs by running: swaymsg -t get_outputs
|
||||
|
||||
### Idle configuration
|
||||
#
|
||||
# Example configuration:
|
||||
#
|
||||
# exec swayidle -w \
|
||||
# timeout 300 'swaylock -f -c 000000' \
|
||||
# timeout 600 'swaymsg "output * power off"' resume 'swaymsg "output * power on"' \
|
||||
# before-sleep 'swaylock -f -c 000000'
|
||||
#
|
||||
# This will lock your screen after 300 seconds of inactivity, then turn off
|
||||
# your displays after another 300 seconds, and turn your screens back on when
|
||||
# resumed. It will also lock your screen before your computer goes to sleep.
|
||||
|
||||
### Input configuration
|
||||
#
|
||||
# Example configuration:
|
||||
#
|
||||
input "2321:21128:PNP0C50:03_0911:5288_Touchpad" {
|
||||
dwt enabled
|
||||
tap enabled
|
||||
natural_scroll enabled
|
||||
middle_emulation enabled
|
||||
}
|
||||
bindgesture swipe:right workspace prev
|
||||
bindgesture swipe:left workspace next
|
||||
#
|
||||
# You can get the names of your inputs by running: swaymsg -t get_inputs
|
||||
# Read `man 5 sway-input` for more information about this section.
|
||||
|
||||
### Key bindings
|
||||
#
|
||||
# Basics:
|
||||
#
|
||||
# Start a terminal
|
||||
bindsym $mod+Q exec $term
|
||||
|
||||
# Kill focused window
|
||||
bindsym $mod+C kill
|
||||
bindsym $mod+e exec thunar
|
||||
# Start your launcher
|
||||
bindsym $mod+d exec rofi -show drun
|
||||
|
||||
# Drag floating windows by holding down $mod and left mouse button.
|
||||
# Resize them with right mouse button + $mod.
|
||||
# Despite the name, also works for non-floating windows.
|
||||
# Change normal to inverse to use left mouse button for resizing and right
|
||||
# mouse button for dragging.
|
||||
floating_modifier $mod normal
|
||||
|
||||
# Reload the configuration file
|
||||
bindsym $mod+Shift+c reload
|
||||
|
||||
# Exit sway (logs you out of your Wayland session)
|
||||
bindsym $mod+Shift+e exec swaynag -t warning -m 'You pressed the exit shortcut. Do you really want to exit sway? This will end your Wayland session.' -B 'Yes, exit sway' 'swaymsg exit'
|
||||
#
|
||||
# Moving around:
|
||||
#
|
||||
# Move your focus around
|
||||
bindsym $mod+$left focus left
|
||||
bindsym $mod+$down focus down
|
||||
bindsym $mod+$up focus up
|
||||
bindsym $mod+$right focus right
|
||||
# Or use $mod+[up|down|left|right]
|
||||
bindsym $mod+Left focus left
|
||||
bindsym $mod+Down focus down
|
||||
bindsym $mod+Up focus up
|
||||
bindsym $mod+Right focus right
|
||||
|
||||
# Move the focused window with the same, but add Shift
|
||||
bindsym $mod+Shift+$left move left
|
||||
bindsym $mod+Shift+$down move down
|
||||
bindsym $mod+Shift+$up move up
|
||||
bindsym $mod+Shift+$right move right
|
||||
# Ditto, with arrow 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
|
||||
#
|
||||
|
||||
input * {
|
||||
xkb_layout us,ru
|
||||
xkb_options grp:alt_shift_toggle
|
||||
}
|
||||
|
||||
|
||||
|
||||
# Гапсы
|
||||
gaps inner 5
|
||||
gaps outer 5
|
||||
# smart_gaps on
|
||||
|
||||
# Толщина рамок для обычных и плавающих окон
|
||||
default_border pixel 3
|
||||
default_floating_border pixel 3
|
||||
|
||||
# Размер рамок окон
|
||||
for_window [tiling] border pixel 2
|
||||
for_window [floating] border none
|
||||
|
||||
# Отключение рамки если открыто одно окно
|
||||
smart_borders on
|
||||
|
||||
|
||||
|
||||
|
||||
# Workspaces:
|
||||
#
|
||||
# Switch to workspace
|
||||
bindsym $mod+1 workspace number 1
|
||||
bindsym $mod+2 workspace number 2
|
||||
bindsym $mod+3 workspace number 3
|
||||
bindsym $mod+4 workspace number 4
|
||||
bindsym $mod+5 workspace number 5
|
||||
bindsym $mod+6 workspace number 6
|
||||
bindsym $mod+7 workspace number 7
|
||||
bindsym $mod+8 workspace number 8
|
||||
bindsym $mod+9 workspace number 9
|
||||
bindsym $mod+0 workspace number 10
|
||||
# Move focused container to workspace
|
||||
bindsym $mod+Shift+1 move container to workspace number 1
|
||||
bindsym $mod+Shift+2 move container to workspace number 2
|
||||
bindsym $mod+Shift+3 move container to workspace number 3
|
||||
bindsym $mod+Shift+4 move container to workspace number 4
|
||||
bindsym $mod+Shift+5 move container to workspace number 5
|
||||
bindsym $mod+Shift+6 move container to workspace number 6
|
||||
bindsym $mod+Shift+7 move container to workspace number 7
|
||||
bindsym $mod+Shift+8 move container to workspace number 8
|
||||
bindsym $mod+Shift+9 move container to workspace number 9
|
||||
bindsym $mod+Shift+0 move container to workspace number 10
|
||||
# Note: workspaces can have any name you want, not just numbers.
|
||||
# We just use 1-10 as the default.
|
||||
#
|
||||
# Layout stuff:
|
||||
#
|
||||
# You can "split" the current object of your focus with
|
||||
# $mod+b or $mod+v, for horizontal and vertical splits
|
||||
# respectively.
|
||||
bindsym $mod+b splith
|
||||
bindsym $mod+v splitv
|
||||
|
||||
# Switch the current container between different layout styles
|
||||
bindsym $mod+s layout stacking
|
||||
bindsym $mod+w layout tabbed
|
||||
# bindsym $mod+e layout toggle split
|
||||
|
||||
# Make the current focus fullscreen
|
||||
bindsym $mod+f fullscreen
|
||||
|
||||
# Toggle the current focus between tiling and floating mode
|
||||
bindsym $mod+Shift+space floating toggle
|
||||
|
||||
# Swap focus between the tiling area and the floating area
|
||||
bindsym $mod+space focus mode_toggle
|
||||
|
||||
# Move focus to the parent container
|
||||
bindsym $mod+a focus parent
|
||||
#
|
||||
# Scratchpad:
|
||||
#
|
||||
# Sway has a "scratchpad", which is a bag of holding for windows.
|
||||
# You can send windows there and get them back later.
|
||||
|
||||
# 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
|
||||
#
|
||||
# Resizing containers:
|
||||
#
|
||||
mode "resize" {
|
||||
# left will shrink the containers width
|
||||
# right will grow the containers width
|
||||
# up will shrink the containers height
|
||||
# down will grow the containers height
|
||||
bindsym $left resize shrink width 10px
|
||||
bindsym $down resize grow height 10px
|
||||
bindsym $up resize shrink height 10px
|
||||
bindsym $right resize grow width 10px
|
||||
|
||||
# Ditto, with arrow keys
|
||||
bindsym Left resize shrink width 10px
|
||||
bindsym Down resize grow height 10px
|
||||
bindsym Up resize shrink height 10px
|
||||
bindsym Right resize grow width 10px
|
||||
|
||||
# Return to default mode
|
||||
bindsym Return mode "default"
|
||||
bindsym Escape mode "default"
|
||||
}
|
||||
bindsym $mod+r mode "resize"
|
||||
#
|
||||
# Utilities:
|
||||
#
|
||||
# Special keys to adjust volume via PulseAudio
|
||||
bindsym --locked XF86AudioMute exec pactl set-sink-mute \@DEFAULT_SINK@ toggle
|
||||
bindsym --locked XF86AudioLowerVolume exec pactl set-sink-volume \@DEFAULT_SINK@ -5%
|
||||
bindsym --locked XF86AudioRaiseVolume exec pactl set-sink-volume \@DEFAULT_SINK@ +5%
|
||||
bindsym --locked XF86AudioMicMute exec pactl set-source-mute \@DEFAULT_SOURCE@ toggle
|
||||
# Special keys to adjust brightness via brightnessctl
|
||||
bindsym --locked XF86MonBrightnessDown exec brightnessctl set 5%-
|
||||
bindsym --locked XF86MonBrightnessUp exec brightnessctl set 5%+
|
||||
# Special key to take a screenshot with grim
|
||||
bindsym Print exec grim
|
||||
|
||||
#
|
||||
# Status Bar:
|
||||
#
|
||||
# Read `man 5 sway-bar` for more information about this section.
|
||||
#bar {
|
||||
# position top
|
||||
#
|
||||
# # When the status_command prints a new line to stdout, swaybar updates.
|
||||
# # The default just shows the current date and time.
|
||||
# status_command while date +'%Y-%m-%d %X'; do sleep 1; done
|
||||
#
|
||||
# colors {
|
||||
# statusline #ffffff
|
||||
# background #323232
|
||||
# inactive_workspace #32323200 #32323200 #5c5c5c
|
||||
# }
|
||||
#}
|
||||
|
||||
include /etc/sway/config.d/*
|
16
src/Sway/sway/config.d/50-systemd-user.conf
Executable file
16
src/Sway/sway/config.d/50-systemd-user.conf
Executable file
@ -0,0 +1,16 @@
|
||||
# sway does not set DISPLAY/WAYLAND_DISPLAY in the systemd user environment
|
||||
# See FS#63021
|
||||
# Adapted from xorg's 50-systemd-user.sh, which achieves a similar goal.
|
||||
|
||||
# Upstream refuses to set XDG_CURRENT_DESKTOP so we have to.
|
||||
exec systemctl --user set-environment XDG_CURRENT_DESKTOP=sway
|
||||
exec systemctl --user import-environment DISPLAY \
|
||||
SWAYSOCK \
|
||||
WAYLAND_DISPLAY \
|
||||
XDG_CURRENT_DESKTOP
|
||||
|
||||
exec hash dbus-update-activation-environment 2>/dev/null && \
|
||||
dbus-update-activation-environment --systemd DISPLAY \
|
||||
SWAYSOCK \
|
||||
XDG_CURRENT_DESKTOP=sway \
|
||||
WAYLAND_DISPLAY
|
184
src/Sway/waybar/config.jsonc
Executable file
184
src/Sway/waybar/config.jsonc
Executable file
@ -0,0 +1,184 @@
|
||||
// -*- mode: jsonc -*-
|
||||
{
|
||||
"layer": "top", // Waybar at top layer
|
||||
"position": "top", // Waybar position (top|bottom|left|right)
|
||||
"height": 28, // Waybar height (to be removed for auto height)
|
||||
"width": 1280, // Waybar width
|
||||
"spacing": 3, // Gaps between modules (4px)
|
||||
// Choose the order of the modules
|
||||
"modules-left": [
|
||||
"sway/workspaces",
|
||||
"sway/scratchpad",
|
||||
"custom/media"
|
||||
],
|
||||
"modules-center": [
|
||||
"sway/window"
|
||||
],
|
||||
"modules-right": [
|
||||
"mpd",
|
||||
"sway/language",
|
||||
"pulseaudio#volume",
|
||||
"network",
|
||||
"battery",
|
||||
"clock",
|
||||
"tray",
|
||||
"custom/power",
|
||||
],
|
||||
// Modules configuration
|
||||
"sway/workspaces": {
|
||||
"active-only": false,
|
||||
"all-outputs": true,
|
||||
"format": "{icon}",
|
||||
"show-special": true,
|
||||
"on-click": "activate",
|
||||
"on-scroll-up": "hyprctl dispatch workspace e+1",
|
||||
"on-scroll-down": "hyprctl dispatch workspace e-1",
|
||||
"format-icons": {
|
||||
"active": "",
|
||||
"default": ""
|
||||
}
|
||||
},
|
||||
|
||||
"custom/sep": {
|
||||
"format": " ",
|
||||
"tooltip": false
|
||||
},
|
||||
"keyboard-state": {
|
||||
"numlock": true,
|
||||
"capslock": true,
|
||||
"format": "{name} {icon}",
|
||||
"format-icons": {
|
||||
"locked": "",
|
||||
"unlocked": ""
|
||||
}
|
||||
},
|
||||
"sway/language": {
|
||||
"format": "{}",
|
||||
"format-en": "EN",
|
||||
"format-ru": "RU",
|
||||
"on-scroll-up": "hyprctl switchxkblayout all next",
|
||||
"on-scroll-down": "hyprctl switchxkblayout all prev",
|
||||
},
|
||||
|
||||
|
||||
|
||||
"battery": {
|
||||
"bat": "BAT1",
|
||||
"interval": 60,
|
||||
"states": {
|
||||
"warning": 30,
|
||||
"critical": 15
|
||||
},
|
||||
"format": "{capacity}% {icon}",
|
||||
"format-icons": ["", "", "", "", ""],
|
||||
"max-length": 25
|
||||
},
|
||||
|
||||
"mpd": {
|
||||
"format": "{stateIcon} {consumeIcon}{randomIcon}{repeatIcon}{singleIcon}{artist} - {album} - {title} ({elapsedTime:%M:%S}/{totalTime:%M:%S}) ⸨{songPosition}|{queueLength}⸩ {volume}% ",
|
||||
"format-disconnected": "Disconnected ",
|
||||
"format-stopped": "{consumeIcon}{randomIcon}{repeatIcon}{singleIcon}Stopped ",
|
||||
"unknown-tag": "N/A",
|
||||
"interval": 5,
|
||||
"consume-icons": {
|
||||
"on": " "
|
||||
},
|
||||
"random-icons": {
|
||||
"off": "<span color=\"#f53c3c\"></span> ",
|
||||
"on": " "
|
||||
},
|
||||
"repeat-icons": {
|
||||
"on": " "
|
||||
},
|
||||
"single-icons": {
|
||||
"on": "1 "
|
||||
},
|
||||
"state-icons": {
|
||||
"paused": "",
|
||||
"playing": ""
|
||||
},
|
||||
"tooltip-format": "MPD (connected)",
|
||||
"tooltip-format-disconnected": "MPD (disconnected)"
|
||||
},
|
||||
"idle_inhibitor": {
|
||||
"format": "{icon}",
|
||||
"format-icons": {
|
||||
"activated": "",
|
||||
"deactivated": ""
|
||||
}
|
||||
},
|
||||
"tray": {
|
||||
// "icon-size": 21,
|
||||
"spacing": 10
|
||||
},
|
||||
"clock": {
|
||||
// "timezone": "America/New_York",
|
||||
"tooltip-format": "<big>{:%Y %B}</big>\n<tt><small>{calendar}</small></tt>",
|
||||
"format-alt": "{:%Y-%m-%d}"
|
||||
},
|
||||
"power-profiles-daemon": {
|
||||
"format": "{icon}",
|
||||
"tooltip-format": "Power profile: {profile}\nDriver: {driver}",
|
||||
"tooltip": true,
|
||||
"format-icons": {
|
||||
"default": "",
|
||||
"performance": "",
|
||||
"balanced": "",
|
||||
"power-saver": ""
|
||||
}
|
||||
},
|
||||
"network": {
|
||||
"tooltip": true,
|
||||
"format-wifi": " ",
|
||||
"rotate": 0,
|
||||
"format-ethernet": " ",
|
||||
"tooltip-format": "Сеть: <b>{essid}</b>\nУровень сигнала: <b>{signaldBm}dBm ({signalStrength}%)</b>\nЧастота: <b>{frequency}MHz</b>\nИнтерфейс: <b>{ifname}</b>\nIP: <b>{ipaddr}/{cidr}</b>\nШлюз: <b>{gwaddr}</b>\nМаска сети: <b>{netmask}</b>",
|
||||
"format-linked": " {ifname} (No IP)",
|
||||
"format-disconnected": " ",
|
||||
"tooltip-format-disconnected": "Нет соединения",
|
||||
"format-alt": "<span> {bandwidthDownBytes}</span> <span> {bandwidthUpBytes}</span>",
|
||||
"interval": 2,
|
||||
"on-click-right": "kitty nmtui"
|
||||
},
|
||||
"pulseaudio#volume": {
|
||||
"scroll-step": 5,
|
||||
"format": "{icon} {volume}%",
|
||||
"format-bluetooth": " {icon} {volume}%",
|
||||
"format-muted": " Мут",
|
||||
"tooltip-format": "{desc}",
|
||||
"format-icons": {
|
||||
"headphone": " ",
|
||||
"default": [
|
||||
" ",
|
||||
" ",
|
||||
" "
|
||||
]
|
||||
},
|
||||
"on-click": "pwvucontrol",
|
||||
"on-click-right": "wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle"
|
||||
},
|
||||
"custom/media": {
|
||||
"format": "{icon} {}",
|
||||
"return-type": "json",
|
||||
"max-length": 40,
|
||||
"format-icons": {
|
||||
"spotify": "",
|
||||
"default": "🎜"
|
||||
},
|
||||
"escape": true,
|
||||
"exec": "$HOME/.config/waybar/mediaplayer.py 2> /dev/null" // Script in resources folder
|
||||
// "exec": "$HOME/.config/waybar/mediaplayer.py --player spotify 2> /dev/null" // Filter player based on name
|
||||
},
|
||||
"custom/power": {
|
||||
"format" : "⏻ ",
|
||||
"tooltip": false,
|
||||
"menu": "on-click",
|
||||
"menu-file": "$HOME/.config/waybar/power_menu.xml", // Menu file in resources folder
|
||||
"menu-actions": {
|
||||
"shutdown": "shutdown",
|
||||
"reboot": "reboot",
|
||||
"suspend": "systemctl suspend",
|
||||
"hibernate": "systemctl hibernate"
|
||||
}
|
||||
}
|
||||
}
|
275
src/Sway/waybar/style.css
Executable file
275
src/Sway/waybar/style.css
Executable file
@ -0,0 +1,275 @@
|
||||
* {
|
||||
/* `otf-font-awesome` is required to be installed for icons */
|
||||
font-family: JetBrainsMono Nerd Font;
|
||||
font-weight: 500;
|
||||
font-size: 12px;
|
||||
}
|
||||
|
||||
window#waybar {
|
||||
border-radius: 0;
|
||||
background-color: rgb(48, 52, 70);
|
||||
border-bottom: 2px solid rgba(221, 221, 255, 1);
|
||||
color: #ffffff;
|
||||
transition-property: background-color;
|
||||
transition-duration: .5s;
|
||||
}
|
||||
|
||||
window#waybar.hidden {
|
||||
opacity: 0.2;
|
||||
}
|
||||
|
||||
/*
|
||||
window#waybar.empty {
|
||||
background-color: transparent;
|
||||
}
|
||||
window#waybar.solo {
|
||||
background-color: #FFFFFF;
|
||||
}
|
||||
*/
|
||||
|
||||
window#waybar.termite {
|
||||
background-color: #3F3F3F;
|
||||
}
|
||||
|
||||
window#waybar.chromium {
|
||||
background-color: #000000;
|
||||
border: none;
|
||||
}
|
||||
|
||||
button {
|
||||
/* Use box-shadow instead of border so the text isn't offset */
|
||||
box-shadow: inset 0 -3px transparent;
|
||||
/* Avoid rounded borders under each button name */
|
||||
border: none;
|
||||
border-radius: 0;
|
||||
}
|
||||
|
||||
/* https://github.com/Alexays/Waybar/wiki/FAQ#the-workspace-buttons-have-a-strange-hover-effect */
|
||||
button:hover {
|
||||
background: inherit;
|
||||
box-shadow: inset 0 -3px #ffffff;
|
||||
}
|
||||
|
||||
|
||||
#workspaces button {
|
||||
padding: 0 5px;
|
||||
background-color: transparent;
|
||||
color: #c6d0f5;
|
||||
}
|
||||
|
||||
|
||||
#workspaces button.urgent {
|
||||
background-color: #eb4d4b;
|
||||
}
|
||||
|
||||
#clock,
|
||||
#language,
|
||||
#battery,
|
||||
#cpu,
|
||||
#memory,
|
||||
#disk,
|
||||
#temperature,
|
||||
#backlight,
|
||||
#network,
|
||||
#pulseaudio,
|
||||
#wireplumber,
|
||||
#custom-media,
|
||||
#tray,
|
||||
#mode,
|
||||
#idle_inhibitor,
|
||||
#scratchpad,
|
||||
#power-profiles-daemon,
|
||||
#battery,
|
||||
#mpd {
|
||||
padding: 0 10px;
|
||||
color: #ffffff;
|
||||
}
|
||||
|
||||
#window,
|
||||
#workspaces {
|
||||
margin: 0 4px;
|
||||
}
|
||||
|
||||
/* If workspaces is the leftmost module, omit left margin */
|
||||
.modules-left > widget:first-child > #workspaces {
|
||||
margin-left: 0;
|
||||
}
|
||||
|
||||
/* If workspaces is the rightmost module, omit right margin */
|
||||
.modules-right > widget:last-child > #workspaces {
|
||||
margin-right: 0;
|
||||
}
|
||||
|
||||
#clock {
|
||||
background-color: transparent;
|
||||
color: #c6d0f5;
|
||||
}
|
||||
|
||||
#battery {
|
||||
background-color: transparent;
|
||||
color: #c6d0f5;
|
||||
}
|
||||
|
||||
@keyframes blink {
|
||||
to {
|
||||
background-color: #ffffff;
|
||||
color: #000000;
|
||||
}
|
||||
}
|
||||
|
||||
#power-profiles-daemon {
|
||||
padding-right: 15px;
|
||||
}
|
||||
|
||||
#power-profiles-daemon.performance {
|
||||
background-color: #f53c3c;
|
||||
color: #ffffff;
|
||||
}
|
||||
|
||||
#power-profiles-daemon.balanced {
|
||||
background-color: #2980b9;
|
||||
color: #ffffff;
|
||||
}
|
||||
|
||||
#power-profiles-daemon.power-saver {
|
||||
background-color: #2ecc71;
|
||||
color: #000000;
|
||||
}
|
||||
|
||||
label:focus {
|
||||
background-color: #000000;
|
||||
}
|
||||
|
||||
#network {
|
||||
background-color: transparent;
|
||||
color: #c6d0f5;
|
||||
}
|
||||
|
||||
#network.disconnected {
|
||||
background-color: #f53c3c;
|
||||
}
|
||||
|
||||
#pulseaudio {
|
||||
background-color: transparent;
|
||||
color: #c6d0f5;
|
||||
}
|
||||
|
||||
#pulseaudio.muted {
|
||||
background-color: transparent;
|
||||
color: #2a5c45;
|
||||
}
|
||||
|
||||
#wireplumber {
|
||||
background-color: #fff0f5;
|
||||
color: #000000;
|
||||
}
|
||||
|
||||
#wireplumber.muted {
|
||||
background-color: #f53c3c;
|
||||
}
|
||||
|
||||
#custom-media {
|
||||
background-color: #66cc99;
|
||||
color: #2a5c45;
|
||||
min-width: 100px;
|
||||
}
|
||||
|
||||
#custom-media.custom-spotify {
|
||||
background-color: #66cc99;
|
||||
}
|
||||
|
||||
#custom-media.custom-vlc {
|
||||
background-color: #ffa000;
|
||||
}
|
||||
|
||||
#tray {
|
||||
background-color: transparent;
|
||||
}
|
||||
|
||||
#tray > .passive {
|
||||
-gtk-icon-effect: dim;
|
||||
}
|
||||
|
||||
#tray > .needs-attention {
|
||||
-gtk-icon-effect: highlight;
|
||||
background-color: #eb4d4b;
|
||||
}
|
||||
|
||||
#idle_inhibitor {
|
||||
background-color: #2d3436;
|
||||
}
|
||||
|
||||
#idle_inhibitor.activated {
|
||||
background-color: #ecf0f1;
|
||||
color: #2d3436;
|
||||
}
|
||||
|
||||
#mpd {
|
||||
background-color: #66cc99;
|
||||
color: #2a5c45;
|
||||
}
|
||||
|
||||
#mpd.disconnected {
|
||||
background-color: #f53c3c;
|
||||
}
|
||||
|
||||
#mpd.stopped {
|
||||
background-color: #90b1b1;
|
||||
}
|
||||
|
||||
#mpd.paused {
|
||||
background-color: #51a37a;
|
||||
}
|
||||
|
||||
#language {
|
||||
background: transparent;
|
||||
color: #c6d0f5;
|
||||
padding: 0 5px;
|
||||
margin: 0 5px;
|
||||
min-width: 16px;
|
||||
}
|
||||
|
||||
#keyboard-state {
|
||||
background: #ddddff;
|
||||
color: #000000;
|
||||
padding: 0 0px;
|
||||
margin: 0 5px;
|
||||
min-width: 16px;
|
||||
}
|
||||
|
||||
#keyboard-state > label {
|
||||
padding: 0 5px;
|
||||
}
|
||||
|
||||
#keyboard-state > label.locked {
|
||||
background: rgba(0, 0, 0, 0.2);
|
||||
}
|
||||
|
||||
#scratchpad {
|
||||
background: rgba(0, 0, 0, 0.2);
|
||||
}
|
||||
|
||||
#scratchpad.empty {
|
||||
background-color: transparent;
|
||||
}
|
||||
|
||||
#privacy {
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
#privacy-item {
|
||||
padding: 0 5px;
|
||||
color: white;
|
||||
}
|
||||
|
||||
#privacy-item.screenshare {
|
||||
background-color: #cf5700;
|
||||
}
|
||||
|
||||
#privacy-item.audio-in {
|
||||
background-color: #1ca000;
|
||||
}
|
||||
|
||||
#privacy-item.audio-out {
|
||||
background-color: #0069d4;
|
||||
}
|
9
src/configuration/00-branding.sh
Executable file
9
src/configuration/00-branding.sh
Executable file
@ -0,0 +1,9 @@
|
||||
#!/bin/bash
|
||||
|
||||
set -e
|
||||
|
||||
echo "::group:: ===$(basename "$0")==="
|
||||
|
||||
# Branding here
|
||||
|
||||
echo "End branding.sh"
|
43
src/configuration/01-settings.sh
Executable file
43
src/configuration/01-settings.sh
Executable file
@ -0,0 +1,43 @@
|
||||
#!/bin/bash
|
||||
|
||||
set -e
|
||||
|
||||
echo "::group:: ===$(basename "$0")==="
|
||||
|
||||
|
||||
|
||||
|
||||
# копируем службы
|
||||
cp /src/configuration/user_exec/systemd/user/* /usr/lib/systemd/user/
|
||||
|
||||
# копируем скрипты
|
||||
cp /src/configuration/user_exec/libexec/* /usr/libexec/
|
||||
|
||||
|
||||
mkdir -p /var/lib/openvpn/dev/
|
||||
rm -f /var/lib/openvpn/dev/urandom
|
||||
ln -s /dev/urandom /var/lib/openvpn/dev/urandom
|
||||
|
||||
# Включаем сервисы
|
||||
systemctl --global enable flatpak-install.service
|
||||
systemctl --global enable pipewire{,-pulse}{,.socket} wireplumber
|
||||
systemctl enable bluetooth
|
||||
systemctl enable ly
|
||||
systemctl enable avahi-daemon
|
||||
systemctl enable wsdd
|
||||
|
||||
# Включаем создание домашних папок
|
||||
sed -i 's/^[[:space:]]*enabled=false/enabled=True/i' /etc/xdg/user-dirs.conf
|
||||
|
||||
|
||||
# Синхронизируем файлы
|
||||
rsync -av --progress /src/source/configuration/etc/ /etc/
|
||||
rsync -av --progress /src/source/configuration/usr/ /usr/
|
||||
|
||||
# Обновление dconf
|
||||
dconf update
|
||||
|
||||
# Обновление шрифтов
|
||||
fc-cache -fv
|
||||
|
||||
echo "::endgroup::"
|
51
src/configuration/03-kernel.sh
Executable file
51
src/configuration/03-kernel.sh
Executable file
@ -0,0 +1,51 @@
|
||||
#!/bin/bash
|
||||
set -euo pipefail
|
||||
|
||||
echo "::group:: ===$(basename "$0")==="
|
||||
|
||||
# Находим версию ядра
|
||||
KERNEL_DIR="/usr/lib/modules"
|
||||
echo "Detecting kernel version..."
|
||||
KERNEL_VERSION=$(ls "$KERNEL_DIR" | head -n 1)
|
||||
TARGET_DIR="${KERNEL_DIR}/${KERNEL_VERSION}"
|
||||
|
||||
if [[ -z "$KERNEL_VERSION" ]]; then
|
||||
echo "Error: No kernel version found in $KERNEL_DIR."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Depmod and autoload
|
||||
depmod -a -v "${KERNEL_VERSION}"
|
||||
|
||||
MODULES=$(find "${KERNEL_DIR}/${KERNEL_VERSION}/kernel/drivers" \( \
|
||||
-path "${KERNEL_DIR}/${KERNEL_VERSION}/kernel/drivers/hid/*" \
|
||||
-o -path "${KERNEL_DIR}/${KERNEL_VERSION}/kernel/drivers/gpu/*" \
|
||||
-o -path "${KERNEL_DIR}/${KERNEL_VERSION}/kernel/drivers/pci/*" \
|
||||
-o -path "${KERNEL_DIR}/${KERNEL_VERSION}/kernel/drivers/mmc/*" \
|
||||
-o -path "${KERNEL_DIR}/${KERNEL_VERSION}/kernel/drivers/usb/host/*" \
|
||||
-o -path "${KERNEL_DIR}/${KERNEL_VERSION}/kernel/drivers/usb/storage/*" \
|
||||
-o -path "${KERNEL_DIR}/${KERNEL_VERSION}/kernel/drivers/nvmem/*" \
|
||||
-o -path "${KERNEL_DIR}/${KERNEL_VERSION}/kernel/drivers/nvme/*" \
|
||||
-o -path "${KERNEL_DIR}/${KERNEL_VERSION}/kernel/drivers/virtio/*" \
|
||||
-o -path "${KERNEL_DIR}/${KERNEL_VERSION}/kernel/drivers/video/fbdev/*" \
|
||||
\) -type f -name '*.ko*' | sed 's:.*/::')
|
||||
|
||||
NVIDIA_EXTRA=()
|
||||
if [ "$BUILD_TYPE" = "nvidia" ]; then
|
||||
# Удаляем nvidiafb.* только для NVIDIA сборки
|
||||
MODULES=$(echo "$MODULES" | grep -v 'nvidiafb\.ko')
|
||||
# Явное включение директории с драйверами
|
||||
NVIDIA_EXTRA+=(
|
||||
--include "${KERNEL_DIR}/${KERNEL_VERSION}/nVidia" "/usr/lib/modules/${KERNEL_VERSION}/nVidia"
|
||||
)
|
||||
fi
|
||||
|
||||
dracut --force \
|
||||
--no-hostonly \
|
||||
--kver "$KERNEL_VERSION" \
|
||||
--add "qemu ostree virtiofs btrfs base overlayfs bluetooth drm plymouth" \
|
||||
--add-drivers "gpio-virtio.ko i2c-virtio.ko nd_virtio.ko virtio-iommu.ko virtio_pmem.ko virtio_rpmsg_bus.ko virtio_snd.ko vmw_vsock_virtio_transport.ko vmw_vsock_virtio_transport_common.ko vp_vdpa.ko virtiofs.ko ext4 btrfs.ko ahci.ko sd_mod.ko ahci_platform.ko sd_mod.ko evdev.ko virtio_scsi.ko virtio_blk.ko virtio-rng virtio_net.ko virtio-gpu.ko virtio-mmio.ko virtio_pci.ko virtio_console.ko virtio_input.ko crc32_generic.ko ata_piix.ko $MODULES" \
|
||||
"${NVIDIA_EXTRA[@]}" \
|
||||
"${TARGET_DIR}/initramfs.img"
|
||||
|
||||
echo "::endgroup::"
|
9
src/configuration/04-clear.sh
Executable file
9
src/configuration/04-clear.sh
Executable file
@ -0,0 +1,9 @@
|
||||
#!/bin/bash
|
||||
|
||||
echo "::group:: ===$(basename "$0")==="
|
||||
|
||||
rm -rf /var/root/.cache
|
||||
rm -rf /var/root/go
|
||||
rm -rf /boot/*
|
||||
|
||||
echo "::endgroup::"
|
66
src/configuration/user_exec/libexec/flatpak-user-install.sh
Executable file
66
src/configuration/user_exec/libexec/flatpak-user-install.sh
Executable file
@ -0,0 +1,66 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
# Данный скрипт устанавливает приложения Flatpak в пространство пользователя, срабатывает один раз (или по версии).
|
||||
GROUP_SETUP_VER=1
|
||||
GROUP_SETUP_VER_FILE="$HOME/.local/share/flatpak-user-install"
|
||||
|
||||
if [ "$UID" -lt 1000 ]; then
|
||||
echo "Not a valid user."
|
||||
exit 0
|
||||
fi
|
||||
|
||||
# Проверяем выполнение
|
||||
if [ -f "$GROUP_SETUP_VER_FILE" ]; then
|
||||
GROUP_SETUP_VER_RAN="$(cat "$GROUP_SETUP_VER_FILE")"
|
||||
else
|
||||
GROUP_SETUP_VER_RAN=""
|
||||
fi
|
||||
|
||||
if [ "$GROUP_SETUP_VER" = "$GROUP_SETUP_VER_RAN" ]; then
|
||||
echo "Flatpak user install (version $GROUP_SETUP_VER) has already run. Exiting..."
|
||||
exit 0
|
||||
fi
|
||||
|
||||
# Проверка наличия сети и доступности репозитория Flathub
|
||||
check_network() {
|
||||
local url="https://dl.flathub.org/repo/"
|
||||
echo "Checking connection to $url..."
|
||||
|
||||
if ! curl --connect-timeout 10 -s -I "$url" >/dev/null; then
|
||||
echo "Error: Failed to connect to $url"
|
||||
notify-send "Network error" "Check your internet connection and availability dl.flathub.org." --app-name="Flatpak Manager Service" -u CRITICAL
|
||||
exit 1
|
||||
fi
|
||||
}
|
||||
|
||||
check_network
|
||||
|
||||
notify-send "Flatpak Installation" "Запущена установка Flatpak приложений" --app-name="Flatpak Manager Service" -u NORMAL
|
||||
echo "Installing user-level Flatpaks..."
|
||||
|
||||
fakeroot flatpak remote-add --user --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo
|
||||
|
||||
flatpak install --user -y flathub com.mattjakeman.ExtensionManager && notify-send "Flatpak Installation" "Installed Extension Manager" --app-name="Flatpak Manager Service" -u NORMAL
|
||||
flatpak install --user -y flathub org.gnome.NautilusPreviewer && notify-send "Flatpak Installation" "Installed NautilusPreviewer" --app-name="Flatpak Manager Service" -u NORMAL
|
||||
flatpak install --user -y flathub org.gnome.baobab && notify-send "Flatpak Installation" "Installed baobab" --app-name="Flatpak Manager Service" -u NORMAL
|
||||
flatpak install --user -y flathub org.gnome.World.PikaBackup && notify-send "Flatpak Installation" "Installed PikaBackup" --app-name="Flatpak Manager Service" -u NORMAL
|
||||
flatpak install --user -y flathub io.github.dvlv.boxbuddyrs && notify-send "Flatpak Installation" "Installed Boxbuddy" --app-name="Flatpak Manager Service" -u NORMAL
|
||||
flatpak install --user -y flathub com.github.tchx84.Flatseal && notify-send "Flatpak Installation" "Installed Flatseal" --app-name="Flatpak Manager Service" -u NORMAL
|
||||
flatpak install --user -y flathub com.nextcloud.desktopclient.nextcloud && notify-send "Flatpak Installation" "Installed Nextcloud Desktop" --app-name="Flatpak Manager Service" -u NORMAL
|
||||
flatpak install --user -y flathub ru.yandex.Browser && notify-send "Flatpak Installation" "Installed Yandex Browser" --app-name="Flatpak Manager Service" -u NORMAL
|
||||
flatpak install --user -y flathub md.obsidian.Obsidian && notify-send "Flatpak Installation" "Installed Obsidian" --app-name="Flatpak Manager Service" -u NORMAL
|
||||
flatpak install --user -y flathub org.libreoffice.LibreOffice && notify-send "Flatpak Installation" "Installed LibreOffice" --app-name="Flatpak Manager Service" -u NORMAL
|
||||
flatpak install --user -y flathub org.gnome.World.Secrets && notify-send "Flatpak Installation" "Installed Secrets" --app-name="Flatpak Manager Service" -u NORMAL
|
||||
flatpak install --user -y flathub io.github.Foldex.AdwSteamGtk && notify-send "Flatpak Installation" "Installed AdwSteamGtk" --app-name="Flatpak Manager Service" -u NORMAL
|
||||
flatpak install --user -y flathub com.github.sdv43.whaler && notify-send "Flatpak Installation" "Installed whaler" --app-name="Flatpak Manager Service" -u NORMAL
|
||||
flatpak install --user -y flathub com.github.hugolabe.Wike && notify-send "Flatpak Installation" "Installed Wike" --app-name="Flatpak Manager Service" -u NORMAL
|
||||
flatpak install --user -y flathub de.haeckerfelix.Fragments && notify-send "Flatpak Installation" "Installed Fragments" --app-name="Flatpak Manager Service" -u NORMAL
|
||||
flatpak install --user -y flathub io.github.TransmissionRemoteGtk && notify-send "Flatpak Installation" "Installed TransmissionRemoteGtk" --app-name="Flatpak Manager Service" -u NORMAL
|
||||
flatpak install --user -y flathub net.davidotek.pupgui2 && notify-send "Flatpak Installation" "Installed pupgui2" --app-name="Flatpak Manager Service" -u NORMAL
|
||||
flatpak install --user -y flathub org.kde.kdenlive && notify-send "Flatpak Installation" "Installed kdenlive" --app-name="Flatpak Manager Service" -u NORMAL
|
||||
notify-send "Flatpak Installation" "Установка завершена" --app-name="Flatpak Manager Service" -u NORMAL
|
||||
echo "Done installing user-level Flatpaks"
|
||||
|
||||
# Запоминаем выполнение вместе с версией скрипта
|
||||
echo "Writing state file"
|
||||
echo "$GROUP_SETUP_VER" > "$GROUP_SETUP_VER_FILE"
|
@ -0,0 +1,14 @@
|
||||
[Unit]
|
||||
Description=Install user-level Flatpak apps on first login
|
||||
After=network-online.target
|
||||
Wants=network-online.target
|
||||
|
||||
[Service]
|
||||
Type=oneshot
|
||||
ExecStartPre=/bin/sleep 5
|
||||
ExecStart=/usr/libexec/flatpak-user-install.sh
|
||||
RemainAfterExit=yes
|
||||
TimeoutStartSec=600
|
||||
|
||||
[Install]
|
||||
WantedBy=default.target
|
32
src/main.sh
Executable file
32
src/main.sh
Executable file
@ -0,0 +1,32 @@
|
||||
#!/bin/bash
|
||||
|
||||
set -e
|
||||
|
||||
echo "Running scripts"
|
||||
|
||||
directories=(
|
||||
"/src/packages"
|
||||
"/src/configuration"
|
||||
"/src/make"
|
||||
)
|
||||
|
||||
run_scripts_in_dir() {
|
||||
local dir="$1"
|
||||
echo "=== Running scripts in $dir ==="
|
||||
|
||||
# Проверяем, есть ли там скрипты *.sh
|
||||
if ls "$dir"/*.sh &> /dev/null; then
|
||||
for script in $(ls "$dir"/*.sh | sort); do
|
||||
echo "==> Running $script"
|
||||
bash "$script"
|
||||
done
|
||||
else
|
||||
echo "==> No .sh files found in $dir"
|
||||
fi
|
||||
}
|
||||
|
||||
for d in "${directories[@]}"; do
|
||||
run_scripts_in_dir "$d"
|
||||
done
|
||||
|
||||
echo "All scripts executed successfully."
|
46
src/make/00-atomic-actions.sh
Executable file
46
src/make/00-atomic-actions.sh
Executable file
@ -0,0 +1,46 @@
|
||||
#!/bin/bash
|
||||
|
||||
set -euo pipefail
|
||||
|
||||
echo "::group:: ===$(basename "$0")==="
|
||||
|
||||
# Define repository and paths
|
||||
REPO_URL="https://github.com/code-ascend/atomic-actions.git"
|
||||
BUILD_DIR="/tmp/atomic-actions"
|
||||
INSTALL_DIR="/usr/local/bin"
|
||||
ACTIONS_SRC_PATH="${BUILD_DIR}/models/actions"
|
||||
ACTIONS_DEST_PATH="/usr/local/share/atomic-actions/actions"
|
||||
|
||||
# Step 1: Clone the repository
|
||||
echo "Cloning atomic-actions repository from ${REPO_URL}..."
|
||||
rm -rf "${BUILD_DIR}" # Ensure no residual directory exists
|
||||
git clone "${REPO_URL}" "${BUILD_DIR}"
|
||||
|
||||
# Step 2: Build the project with Go
|
||||
echo "Building atomic-actions..."
|
||||
cd "${BUILD_DIR}"
|
||||
go build -o "${INSTALL_DIR}/atomic-actions"
|
||||
|
||||
# Step 3: Verify binary installation
|
||||
if [[ -f "${INSTALL_DIR}/atomic-actions" ]]; then
|
||||
echo "Binary atomic-actions successfully built at ${INSTALL_DIR}/atomic-actions"
|
||||
chmod +x "${INSTALL_DIR}/atomic-actions" # Make the binary executable
|
||||
else
|
||||
echo "Failed to build atomic-actions binary!" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Step 4: Clean and copy actions folder
|
||||
echo "Preparing actions directory..."
|
||||
rm -rf "${ACTIONS_DEST_PATH}" # Remove existing actions
|
||||
mkdir -p "${ACTIONS_DEST_PATH}" # Ensure the target directory exists
|
||||
cp -r "${ACTIONS_SRC_PATH}/." "${ACTIONS_DEST_PATH}" # Copy actions folder
|
||||
|
||||
# Set executable permissions for all scripts in the actions folder
|
||||
find "${ACTIONS_DEST_PATH}" -type f -name "*.sh" -exec chmod +x {} \;
|
||||
|
||||
# Step 5: Cleanup temporary files
|
||||
echo "Cleaning up..."
|
||||
rm -rf "${BUILD_DIR}"
|
||||
|
||||
echo "End kernel_setup.sh"
|
19
src/make/01-zsh-plugins.sh
Executable file
19
src/make/01-zsh-plugins.sh
Executable file
@ -0,0 +1,19 @@
|
||||
#!/bin/bash
|
||||
|
||||
set -euo pipefail
|
||||
|
||||
echo "::group:: ===$(basename "$0")==="
|
||||
|
||||
# Создаём каталог для плагинов Zsh
|
||||
mkdir -p /usr/local/share/zsh/plugins
|
||||
|
||||
# Клонируем репозиторий zsh-autosuggestions
|
||||
if [[ ! -d /usr/local/share/zsh/plugins/zsh-autosuggestions ]]; then
|
||||
git clone https://github.com/zsh-users/zsh-autosuggestions.git /usr/local/share/zsh/plugins/zsh-autosuggestions
|
||||
echo "zsh-autosuggestions has been cloned to /usr/local/share/zsh/plugins/zsh-autosuggestions"
|
||||
else
|
||||
echo "zsh-autosuggestions already exists, updating..."
|
||||
git -C /usr/local/share/zsh/plugins/zsh-autosuggestions pull
|
||||
fi
|
||||
|
||||
echo "End kernel_setup.sh"
|
7
src/packages/00-apt-prepare.sh
Executable file
7
src/packages/00-apt-prepare.sh
Executable file
@ -0,0 +1,7 @@
|
||||
#!/bin/bash
|
||||
|
||||
echo "::group:: ===$(basename "$0")==="
|
||||
|
||||
apt-get update && apt-get -y dist-upgrade
|
||||
|
||||
echo "::endgroup::"
|
159
src/packages/01-package-list.sh
Executable file
159
src/packages/01-package-list.sh
Executable file
@ -0,0 +1,159 @@
|
||||
#!/bin/bash
|
||||
set -euo pipefail
|
||||
|
||||
echo "::group:: ===$(basename "$0")==="
|
||||
|
||||
# Базовые утилиты и инструменты
|
||||
BASIC_PACKAGES=(
|
||||
htop
|
||||
fastfetch
|
||||
nvtop
|
||||
notify-send
|
||||
zsh
|
||||
zsh-completions
|
||||
starship
|
||||
bash-completion
|
||||
inxi
|
||||
openssh-server
|
||||
iucode_tool
|
||||
systemd-ssh-agent
|
||||
ptyxis
|
||||
gparted
|
||||
obs-studio
|
||||
mpd
|
||||
ncmpcpp
|
||||
icon-theme-Papirus
|
||||
python3-modules-sqlite3
|
||||
aplay
|
||||
mdadm
|
||||
ffmpeg
|
||||
yt-dlp
|
||||
pip
|
||||
ollama
|
||||
NetworkManager-openvpn
|
||||
nekoray
|
||||
)
|
||||
|
||||
GAMING_PACKAGES=(
|
||||
i586-steam
|
||||
i586-xorg-drv-radeon
|
||||
i586-xorg-dri-radeon
|
||||
i586-xorg-dri-swrast
|
||||
i586-libGL
|
||||
i586-libEGL
|
||||
i586-libxatracker
|
||||
i586-libgbm
|
||||
i586-libGLES
|
||||
i586-libGLX
|
||||
i586-libglvnd
|
||||
i586-libnsl1
|
||||
portproton
|
||||
i586-libvulkan1
|
||||
i586-libd3d
|
||||
i586-libgio
|
||||
i586-libnm
|
||||
i586-libnss
|
||||
i586-glibc-nss
|
||||
i586-glibc-pthread
|
||||
i586-libunwind
|
||||
)
|
||||
|
||||
# Генератор ZRAM
|
||||
ZRAM_PACKAGES=(
|
||||
zram-generator
|
||||
)
|
||||
|
||||
# SWAY — базовые сеансы
|
||||
NIRI_SESSION_PACKAGES=(
|
||||
niri
|
||||
waybar
|
||||
kitty
|
||||
thunar
|
||||
rofi
|
||||
mako
|
||||
swaybg
|
||||
wlogout
|
||||
ly
|
||||
xdg-desktop-portal-gnome
|
||||
xdg-user-dirs
|
||||
brightnessctl
|
||||
pavucontrol
|
||||
blueman
|
||||
gnome-disk-utility
|
||||
swaylock
|
||||
nwg-look
|
||||
NetworkManager-tui
|
||||
fuzzel
|
||||
)
|
||||
|
||||
|
||||
# GNOME — темы, шрифты и оформление
|
||||
GNOME_THEMES=(
|
||||
gtk3-theme-adw-gtk3
|
||||
gnome-icon-theme
|
||||
gnome-icon-theme-symbolic
|
||||
gnome-themes-extra
|
||||
libgtk2-engine-adwaita
|
||||
fonts-otf-abattis-cantarell
|
||||
fonts-ttf-cjkuni-ukai
|
||||
fonts-ttf-liberation
|
||||
fonts-ttf-dejavu
|
||||
)
|
||||
|
||||
|
||||
# Прочие приложения
|
||||
MISC_APPS=(
|
||||
virt-manager
|
||||
firefox
|
||||
papers
|
||||
power-profiles-daemon
|
||||
)
|
||||
|
||||
# Xorg-драйверы для различных GPU и устройств
|
||||
DRIVERS=(
|
||||
xorg-drv-libinput
|
||||
xorg-drv-qxl
|
||||
xorg-drv-spiceqxl
|
||||
xorg-drv-intel
|
||||
xorg-drv-amdgpu
|
||||
xorg-drv-vmware
|
||||
xorg-drv-nouveau
|
||||
xorg-dri-swrast
|
||||
)
|
||||
|
||||
# Wayland/Qt/Vulkan утилиты
|
||||
WAYLAND_QT=(
|
||||
qt5-wayland
|
||||
qt6-wayland
|
||||
wayland-utils
|
||||
vulkan-tools
|
||||
)
|
||||
|
||||
# Аудиоподсистема (PipeWire)
|
||||
AUDIO_PACKAGES=(
|
||||
pipewire
|
||||
wireplumber
|
||||
)
|
||||
|
||||
# Сеть и печать (Avahi, CUPS, fwupd, etc.)
|
||||
NETWORK_PRINT_PACKAGES=(
|
||||
avahi-daemon
|
||||
cups-browsed
|
||||
fwupd
|
||||
libnss-mdns
|
||||
wsdd
|
||||
)
|
||||
|
||||
apt-get install -y \
|
||||
"${BASIC_PACKAGES[@]}" \
|
||||
"${ZRAM_PACKAGES[@]}" \
|
||||
"${NIRI_SESSION_PACKAGES[@]}" \
|
||||
"${GNOME_THEMES[@]}" \
|
||||
"${MISC_APPS[@]}" \
|
||||
"${DRIVERS[@]}" \
|
||||
"${WAYLAND_QT[@]}" \
|
||||
"${AUDIO_PACKAGES[@]}" \
|
||||
"${GAMING_PACKAGES[@]}" \
|
||||
"${NETWORK_PRINT_PACKAGES[@]}"
|
||||
|
||||
echo "::endgroup::"
|
7
src/packages/03-apt-ending.sh
Executable file
7
src/packages/03-apt-ending.sh
Executable file
@ -0,0 +1,7 @@
|
||||
#!/bin/bash
|
||||
|
||||
echo "::group:: ===$(basename "$0")==="
|
||||
|
||||
apt-get autoremove -y && apt-get clean && rm -rf /var/lib/apt/lists/* && mkdir /var/lib/apt/lists/partial
|
||||
|
||||
echo "::endgroup::"
|
96
src/source/configuration/etc/bashrc
Normal file
96
src/source/configuration/etc/bashrc
Normal file
@ -0,0 +1,96 @@
|
||||
# /etc/bashrc
|
||||
|
||||
# System wide functions and aliases
|
||||
# Environment stuff goes in /etc/profile
|
||||
|
||||
# It's NOT a good idea to change this file unless you know what you
|
||||
# are doing. It's much better to create a custom.sh shell script in
|
||||
# /etc/profile.d/ to make custom changes to your environment, as this
|
||||
# will prevent the need for merging in future updates.
|
||||
|
||||
# Prevent doublesourcing
|
||||
if [ -z "$BASHRCSOURCED" ]; then
|
||||
BASHRCSOURCED="Y"
|
||||
|
||||
# are we an interactive shell?
|
||||
if [ "$PS1" ]; then
|
||||
if [ -z "$PROMPT_COMMAND" ]; then
|
||||
declare -a PROMPT_COMMAND
|
||||
case $TERM in
|
||||
xterm*)
|
||||
if [ -e /etc/sysconfig/bash-prompt-xterm ]; then
|
||||
PROMPT_COMMAND=/etc/sysconfig/bash-prompt-xterm
|
||||
else
|
||||
PROMPT_COMMAND='printf "\033]0;%s@%s:%s\007" "${USER}" "${HOSTNAME%%.*}" "${PWD/#$HOME/\~}"'
|
||||
fi
|
||||
;;
|
||||
screen*)
|
||||
if [ -e /etc/sysconfig/bash-prompt-screen ]; then
|
||||
PROMPT_COMMAND=/etc/sysconfig/bash-prompt-screen
|
||||
else
|
||||
PROMPT_COMMAND='printf "\033k%s@%s:%s\033\\" "${USER}" "${HOSTNAME%%.*}" "${PWD/#$HOME/\~}"'
|
||||
fi
|
||||
;;
|
||||
*)
|
||||
[ -e /etc/sysconfig/bash-prompt-default ] && PROMPT_COMMAND=/etc/sysconfig/bash-prompt-default
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
# Turn on parallel history
|
||||
shopt -s histappend
|
||||
# Turn on checkwinsize
|
||||
shopt -s checkwinsize
|
||||
# Change the default prompt string
|
||||
[ "$PS1" = "\\s-\\v\\\$ " ] && PS1="[\u@\h \W]\\$ "
|
||||
# You might want to have e.g. tty in prompt (e.g. more virtual machines)
|
||||
# and console windows
|
||||
# If you want to do so, just add e.g.
|
||||
# if [ "$PS1" ]; then
|
||||
# PS1="[\u@\h:\l \W]\\$ "
|
||||
# fi
|
||||
# to your custom modification shell script in /etc/profile.d/ directory
|
||||
fi
|
||||
|
||||
if ! shopt -q login_shell ; then # We're not a login shell
|
||||
# Need to redefine pathmunge, it gets undefined at the end of /etc/profile
|
||||
pathmunge () {
|
||||
case ":${PATH}:" in
|
||||
*:"$1":*)
|
||||
;;
|
||||
*)
|
||||
if [ "$2" = "after" ] ; then
|
||||
PATH=$PATH:$1
|
||||
else
|
||||
PATH=$1:$PATH
|
||||
fi
|
||||
esac
|
||||
}
|
||||
|
||||
# Set default umask for non-login shell only if it is set to 0
|
||||
[ `umask` -eq 0 ] && umask 022
|
||||
|
||||
SHELL=/bin/bash
|
||||
# Only display echos from profile.d scripts if we are no login shell
|
||||
# and interactive - otherwise just process them to set envvars
|
||||
for i in /etc/profile.d/*.sh; do
|
||||
if [ -r "$i" ]; then
|
||||
if [ "$PS1" ]; then
|
||||
. "$i"
|
||||
else
|
||||
. "$i" >/dev/null
|
||||
fi
|
||||
fi
|
||||
done
|
||||
|
||||
unset i
|
||||
unset -f pathmunge
|
||||
fi
|
||||
|
||||
fi
|
||||
|
||||
# vim:ts=4:sw=4
|
||||
export STARSHIP_CONFIG=/etc/starship/starship.toml
|
||||
# Starship
|
||||
if type "starship" > /dev/null; then
|
||||
eval "$(starship init bash)"
|
||||
fi
|
@ -0,0 +1,45 @@
|
||||
[org/gnome/desktop/default-applications/terminal]
|
||||
exec='ptyxis'
|
||||
|
||||
[org/gnome/shell]
|
||||
favorite-apps=['org.gnome.TextEditor.desktop', 'org.gnome.Nautilus.desktop', 'org.gnome.Ptyxis.desktop', 'org.gnome.Software.desktop', 'org.telegram.desktop']
|
||||
enabled-extensions=['appindicatorsupport@rgcjonas.gmail.com', 'dash-to-dock@micxgx.gmail.com', 'blur-my-shell@aunetx']
|
||||
|
||||
[org/gnome/desktop/background]
|
||||
picture-uri='file:///usr/share/backgrounds/gnome/amber-l.jxl'
|
||||
picture-uri-dark='file:///usr/share/backgrounds/gnome/amber-d.jxl'
|
||||
|
||||
[org/gnome/software]
|
||||
download-updates=false
|
||||
allow-updates=false
|
||||
allow-system-install=false
|
||||
|
||||
[org/gnome/desktop/input-sources]
|
||||
sources=[('xkb', 'us'), ('xkb', 'ru')]
|
||||
|
||||
[org/gnome/desktop/interface]
|
||||
gtk-theme='Adwaita-dark'
|
||||
color-scheme='prefer-dark'
|
||||
font-name='JetBrains Mono 11'
|
||||
document-font-name='JetBrains Mono 11'
|
||||
monospace-font-name='FiraCode Nerd Font 12'
|
||||
font-antialiasing='grayscale'
|
||||
font-hinting='full'
|
||||
|
||||
[org/gnome/desktop/wm/preferences]
|
||||
button-layout=':minimize,maximize,close'
|
||||
|
||||
[org/gnome/shell/extensions/dash-to-dock]
|
||||
apply-custom-theme=true
|
||||
|
||||
[org/gnome/Ptyxis]
|
||||
default-profile-uuid='f91d440d07cd15857f91abf0677f7d3c'
|
||||
profile-uuids=['f91d440d07cd15857f91abf0677f7d3c']
|
||||
|
||||
[org/gnome/Ptyxis/Profiles/f91d440d07cd15857f91abf0677f7d3c]
|
||||
custom-command='/bin/zsh'
|
||||
login-shell=false
|
||||
use-custom-command=true
|
||||
|
||||
[org/gnome/mutter]
|
||||
center-new-windows=true
|
3
src/source/configuration/etc/profile.d/additional-path.sh
Executable file
3
src/source/configuration/etc/profile.d/additional-path.sh
Executable file
@ -0,0 +1,3 @@
|
||||
export PATH=$PATH:${HOME}/.bin
|
||||
export PATH=$HOME/bin:/usr/local/bin:$PATH
|
||||
export PATH=$HOME/.local/bin:$PATH
|
3
src/source/configuration/etc/profile.d/alias.sh
Normal file
3
src/source/configuration/etc/profile.d/alias.sh
Normal file
@ -0,0 +1,3 @@
|
||||
alias ll='ls -la'
|
||||
alias ..='cd ..'
|
||||
alias neofetch=fastfetch
|
148
src/source/configuration/etc/profile.d/bash-color-prompt.sh
Normal file
148
src/source/configuration/etc/profile.d/bash-color-prompt.sh
Normal file
@ -0,0 +1,148 @@
|
||||
# see /usr/share/doc/bash-color-prompt/README.md
|
||||
|
||||
## to truncate \w dirpath set:
|
||||
# PROMPT_DIRTRIM=3
|
||||
|
||||
# only for bash
|
||||
if [ -n "${BASH_VERSION}" -a -z "${bash_prompt_color_disable}" ]; then
|
||||
|
||||
# enable only in interactive shell
|
||||
case $- in
|
||||
*i*) ;;
|
||||
*) return;;
|
||||
esac
|
||||
|
||||
# defines PS1 for color prompt
|
||||
prompt_setup_color_ps1() {
|
||||
local colorpre='\[\e['
|
||||
local colorsuf='m\]'
|
||||
local colorreset="${colorpre}0${colorsuf}"
|
||||
PS1='${PROMPT_START@P}'"${colorpre}"'${PROMPT_COLOR}${PROMPT_HIGHLIGHT:+;$PROMPT_HIGHLIGHT}'"${colorsuf}"'${PROMPT_USERHOST@P}'"${colorreset}"'${PROMPT_SEPARATOR@P}'"${colorpre}"'${PROMPT_DIR_COLOR-${PROMPT_COLOR}}${PROMPT_HIGHLIGHT:+;$PROMPT_HIGHLIGHT}'"${colorsuf}"'${PROMPT_DIRECTORY@P}'"${colorreset}"'${PROMPT_END@P}\$'"${colorreset} "
|
||||
}
|
||||
|
||||
# sets default color or $1 can override
|
||||
prompt_color() {
|
||||
if [ -n "${1:+1}" ]; then
|
||||
PROMPT_COLOR="$1"
|
||||
else
|
||||
if [ "$USER" = "root" ]; then
|
||||
PROMPT_COLOR=35
|
||||
else
|
||||
PROMPT_COLOR=32
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
# sets prompt highlighting
|
||||
prompt_highlight() {
|
||||
PROMPT_HIGHLIGHT=${1:-1}
|
||||
}
|
||||
|
||||
prompt_default_highlight() {
|
||||
if [ "$DESKTOP_SESSION" = "gnome" ]; then
|
||||
prompt_highlight "${1:-1}"
|
||||
else
|
||||
unset PROMPT_HIGHLIGHT
|
||||
fi
|
||||
}
|
||||
|
||||
prompt_default_color() {
|
||||
prompt_color "$1"
|
||||
prompt_default_highlight
|
||||
unset PROMPT_DIR_COLOR
|
||||
}
|
||||
|
||||
prompt_dir_color() {
|
||||
if [ -n "${1:+1}" ]; then
|
||||
PROMPT_DIR_COLOR="$1"
|
||||
else
|
||||
unset PROMPT_DIR_COLOR
|
||||
fi
|
||||
}
|
||||
|
||||
# only activate for color terminals and if PS1 unchanged from bash or fedora defaults
|
||||
if [ '(' "$PS1" = "[\u@\h \W]\\$ " -o "$PS1" = "\\s-\\v\\\$ " ')' \
|
||||
-a '(' "${TERM: -5}" = "color" -o "${TERM}" = "linux" ')' \
|
||||
-o -n "${bash_prompt_color_force}" ]; then
|
||||
prompt_color "$PROMPT_COLOR"
|
||||
prompt_default_highlight "$PROMPT_HIGHLIGHT"
|
||||
prompt_dir_color "$PROMPT_DIR_COLOR"
|
||||
PROMPT_USERHOST="${PROMPT_USERHOST-${container:+⬢ }\u@\h}"
|
||||
PROMPT_SEPARATOR="${PROMPT_SEPARATOR-:}"
|
||||
PROMPT_DIRECTORY="${PROMPT_DIRECTORY-\w}"
|
||||
prompt_setup_color_ps1
|
||||
fi
|
||||
|
||||
# sets default prompt format
|
||||
prompt_default_format() {
|
||||
PROMPT_USERHOST='\u@\h'
|
||||
PROMPT_SEPARATOR=':'
|
||||
PROMPT_DIRECTORY='\w'
|
||||
PROMPT_START=''
|
||||
PROMPT_END=''
|
||||
}
|
||||
|
||||
# sets default prompt color and format
|
||||
prompt_default() {
|
||||
prompt_default_color "$1"
|
||||
prompt_default_format
|
||||
}
|
||||
|
||||
# sets color to OS ANSI_COLOR
|
||||
# $1 is appended to the (foreground) color
|
||||
prompt_os_color() {
|
||||
if [ -z "$ANSI_COLOR" ]; then
|
||||
eval local $(grep ANSI_COLOR /etc/os-release)
|
||||
fi
|
||||
PROMPT_COLOR="$ANSI_COLOR${1:+;$1}"
|
||||
}
|
||||
|
||||
prompt_container() {
|
||||
if [ -n "$container" ]; then
|
||||
eval local $(grep "\(^ID=\|VERSION_ID\|VARIANT_ID\)" /etc/os-release)
|
||||
PROMPT_USERHOST="⬢ $ID-$VARIANT_ID$VERSION_ID"
|
||||
else
|
||||
if [ "$HOSTNAME" = "fedora" -a "$1" = "$USER" ]; then
|
||||
unset PROMPT_USERHOST
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
# unsets colors
|
||||
prompt_no_color() {
|
||||
unset PROMPT_COLOR
|
||||
unset PROMPT_DIR_COLOR
|
||||
}
|
||||
|
||||
# unsets highlighting
|
||||
prompt_no_highlight() {
|
||||
unset PROMPT_HIGHLIGHT
|
||||
}
|
||||
|
||||
# unsets color and highlighting
|
||||
prompt_plain() {
|
||||
prompt_no_color
|
||||
prompt_no_highlight
|
||||
}
|
||||
|
||||
# sets traditional Red Hat prompt style format
|
||||
prompt_traditional_format() {
|
||||
PROMPT_USERHOST='\u@\h'
|
||||
PROMPT_SEPARATOR=' '
|
||||
PROMPT_DIRECTORY='\W'
|
||||
PROMPT_START='['
|
||||
PROMPT_END=']'
|
||||
}
|
||||
|
||||
# sets traditional Red Hat prompt style without color
|
||||
prompt_traditional() {
|
||||
prompt_plain
|
||||
prompt_traditional_format
|
||||
}
|
||||
|
||||
# revert to traditional Red Hat prompt
|
||||
prompt_reset_traditional_ps1() {
|
||||
PS1="[\u@\h \W]\\$ "
|
||||
}
|
||||
|
||||
fi
|
16
src/source/configuration/etc/profile.d/bash_completion.sh
Normal file
16
src/source/configuration/etc/profile.d/bash_completion.sh
Normal file
@ -0,0 +1,16 @@
|
||||
# shellcheck shell=sh disable=SC1091,SC2166,SC2268,SC3028,SC3044,SC3054
|
||||
# Check for interactive bash and that we haven't already been sourced.
|
||||
if [ "x${BASH_VERSION-}" != x -a "x${PS1-}" != x -a "x${BASH_COMPLETION_VERSINFO-}" = x ]; then
|
||||
|
||||
# Check for recent enough version of bash.
|
||||
if [ "${BASH_VERSINFO[0]}" -gt 4 ] ||
|
||||
[ "${BASH_VERSINFO[0]}" -eq 4 -a "${BASH_VERSINFO[1]}" -ge 2 ]; then
|
||||
[ -r "${XDG_CONFIG_HOME:-$HOME/.config}/bash_completion" ] &&
|
||||
. "${XDG_CONFIG_HOME:-$HOME/.config}/bash_completion"
|
||||
if shopt -q progcomp && [ -r /usr/share/bash-completion/bash_completion ]; then
|
||||
# Source completion code.
|
||||
. /usr/share/bash-completion/bash_completion
|
||||
fi
|
||||
fi
|
||||
|
||||
fi
|
25
src/source/configuration/etc/profile.d/brew-bash-completion.sh
Executable file
25
src/source/configuration/etc/profile.d/brew-bash-completion.sh
Executable file
@ -0,0 +1,25 @@
|
||||
#!/bin/sh
|
||||
# shellcheck shell=sh disable=SC1091,SC2039,SC2166
|
||||
# Check for interactive bash and that we haven't already been sourced.
|
||||
if [ "x${BASH_VERSION-}" != x -a "x${PS1-}" != x -a "x${BREW_BASH_COMPLETION-}" = x ]; then
|
||||
|
||||
# Check for recent enough version of bash.
|
||||
if [ "${BASH_VERSINFO[0]}" -gt 4 ] ||
|
||||
[ "${BASH_VERSINFO[0]}" -eq 4 -a "${BASH_VERSINFO[1]}" -ge 2 ]; then
|
||||
if [ -w /home/linuxbrew/.linuxbrew ]; then
|
||||
if ! test -L /home/linuxbrew/.linuxbrew/etc/bash_completion.d/brew; then
|
||||
/home/linuxbrew/.linuxbrew/bin/brew completions link > /dev/null
|
||||
fi
|
||||
fi
|
||||
if test -d /home/linuxbrew/.linuxbrew/etc/bash_completion.d; then
|
||||
for rc in /home/linuxbrew/.linuxbrew/etc/bash_completion.d/*; do
|
||||
if test -r "$rc"; then
|
||||
. "$rc"
|
||||
fi
|
||||
done
|
||||
unset rc
|
||||
fi
|
||||
fi
|
||||
BREW_BASH_COMPLETION=1
|
||||
export BREW_BASH_COMPLETION
|
||||
fi
|
2
src/source/configuration/etc/profile.d/brew.sh
Executable file
2
src/source/configuration/etc/profile.d/brew.sh
Executable file
@ -0,0 +1,2 @@
|
||||
#!/usr/bin/env bash
|
||||
[[ -d /home/linuxbrew/.linuxbrew && $- == *i* ]] && eval "$(/home/linuxbrew/.linuxbrew/bin/brew shellenv)"
|
3
src/source/configuration/etc/profile.d/neofetch.sh
Executable file
3
src/source/configuration/etc/profile.d/neofetch.sh
Executable file
@ -0,0 +1,3 @@
|
||||
#!/bin/sh
|
||||
|
||||
alias neofetch=fastfetch
|
23
src/source/configuration/etc/skel/.bashrc
Normal file
23
src/source/configuration/etc/skel/.bashrc
Normal file
@ -0,0 +1,23 @@
|
||||
# ~/.bashrc
|
||||
# The individual per-interactive-shell startup file.
|
||||
|
||||
# Source global definitions.
|
||||
if [ -r /etc/bashrc ]; then
|
||||
. /etc/bashrc
|
||||
fi
|
||||
|
||||
# User specific environment
|
||||
if ! [[ "$PATH" =~ "$HOME/.local/bin:$HOME/bin:" ]]; then
|
||||
PATH="$HOME/.local/bin:$HOME/bin:$PATH"
|
||||
fi
|
||||
export PATH
|
||||
|
||||
# User specific aliases and functions
|
||||
if [ -d ~/.bashrc.d ]; then
|
||||
for rc in ~/.bashrc.d/*; do
|
||||
if [ -f "$rc" ]; then
|
||||
. "$rc"
|
||||
fi
|
||||
done
|
||||
fi
|
||||
unset rc
|
43
src/source/configuration/etc/skel/.zsh/key-bindings.sh
Normal file
43
src/source/configuration/etc/skel/.zsh/key-bindings.sh
Normal file
@ -0,0 +1,43 @@
|
||||
typeset -g -A key
|
||||
|
||||
key[Home]="${terminfo[khome]}"
|
||||
key[End]="${terminfo[kend]}"
|
||||
key[Insert]="${terminfo[kich1]}"
|
||||
key[Backspace]="${terminfo[kbs]}"
|
||||
key[Delete]="${terminfo[kdch1]}"
|
||||
key[Up]="${terminfo[kcuu1]}"
|
||||
key[Down]="${terminfo[kcud1]}"
|
||||
key[Left]="${terminfo[kcub1]}"
|
||||
key[Right]="${terminfo[kcuf1]}"
|
||||
key[PageUp]="${terminfo[kpp]}"
|
||||
key[PageDown]="${terminfo[knp]}"
|
||||
key[Shift-Tab]="${terminfo[kcbt]}"
|
||||
key[Control-Left]="${terminfo[kLFT5]}"
|
||||
key[Control-Right]="${terminfo[kRIT5]}"
|
||||
|
||||
[[ -n "${key[Home]}" ]] && bindkey -- "${key[Home]}" beginning-of-line
|
||||
[[ -n "${key[End]}" ]] && bindkey -- "${key[End]}" end-of-line
|
||||
[[ -n "${key[Insert]}" ]] && bindkey -- "${key[Insert]}" overwrite-mode
|
||||
[[ -n "${key[Backspace]}" ]] && bindkey -- "${key[Backspace]}" backward-delete-char
|
||||
[[ -n "${key[Delete]}" ]] && bindkey -- "${key[Delete]}" delete-char
|
||||
[[ -n "${key[Up]}" ]] && bindkey -- "${key[Up]}" up-line-or-history
|
||||
[[ -n "${key[Down]}" ]] && bindkey -- "${key[Down]}" down-line-or-history
|
||||
[[ -n "${key[Left]}" ]] && bindkey -- "${key[Left]}" backward-char
|
||||
[[ -n "${key[Right]}" ]] && bindkey -- "${key[Right]}" forward-char
|
||||
[[ -n "${key[PageUp]}" ]] && bindkey -- "${key[PageUp]}" beginning-of-buffer-or-history
|
||||
[[ -n "${key[PageDown]}" ]] && bindkey -- "${key[PageDown]}" end-of-buffer-or-history
|
||||
[[ -n "${key[Shift-Tab]}" ]] && bindkey -- "${key[Shift-Tab]}" reverse-menu-complete
|
||||
[[ -n "${key[Control-Left]}" ]] && bindkey -- "${key[Control-Left]}" backward-word
|
||||
[[ -n "${key[Control-Right]}" ]] && bindkey -- "${key[Control-Right]}" forward-word
|
||||
|
||||
if (( ${+terminfo[smkx]} && ${+terminfo[rmkx]} )); then
|
||||
autoload -Uz add-zle-hook-widget up-line-or-beginning-search down-line-or-beginning-search
|
||||
function zle_application_mode_start { echoti smkx }
|
||||
function zle_application_mode_stop { echoti rmkx }
|
||||
add-zle-hook-widget -Uz zle-line-init zle_application_mode_start
|
||||
|
||||
zle -N up-line-or-beginning-search
|
||||
zle -N down-line-or-beginning-search
|
||||
[[ -n "${key[Up]}" ]] && bindkey -- "${key[Up]}" up-line-or-beginning-search
|
||||
[[ -n "${key[Down]}" ]] && bindkey -- "${key[Down]}" down-line-or-beginning-search
|
||||
fi
|
8
src/source/configuration/etc/skel/.zshrc
Normal file
8
src/source/configuration/etc/skel/.zshrc
Normal file
@ -0,0 +1,8 @@
|
||||
if [ -n "$DISTROBOX_ENTER_PATH" ]; then
|
||||
echo "Switching to bash inside Distrobox..."
|
||||
exec /bin/bash
|
||||
exit 0
|
||||
fi
|
||||
|
||||
# zsh-autosuggestions
|
||||
source /usr/local/share/zsh/plugins/zsh-autosuggestions/zsh-autosuggestions.zsh
|
170
src/source/configuration/etc/starship/starship.toml
Normal file
170
src/source/configuration/etc/starship/starship.toml
Normal file
@ -0,0 +1,170 @@
|
||||
[aws]
|
||||
symbol = " "
|
||||
|
||||
[buf]
|
||||
symbol = " "
|
||||
|
||||
[c]
|
||||
symbol = " "
|
||||
|
||||
[conda]
|
||||
symbol = " "
|
||||
|
||||
[crystal]
|
||||
symbol = " "
|
||||
|
||||
[dart]
|
||||
symbol = " "
|
||||
|
||||
[directory]
|
||||
read_only = " "
|
||||
|
||||
[docker_context]
|
||||
symbol = " "
|
||||
|
||||
[elixir]
|
||||
symbol = " "
|
||||
|
||||
[elm]
|
||||
symbol = " "
|
||||
|
||||
[fennel]
|
||||
symbol = " "
|
||||
|
||||
[fossil_branch]
|
||||
symbol = " "
|
||||
|
||||
[git_branch]
|
||||
symbol = " "
|
||||
|
||||
[git_commit]
|
||||
tag_symbol = ' '
|
||||
|
||||
[golang]
|
||||
symbol = " "
|
||||
|
||||
[guix_shell]
|
||||
symbol = " "
|
||||
|
||||
[haskell]
|
||||
symbol = " "
|
||||
|
||||
[haxe]
|
||||
symbol = " "
|
||||
|
||||
[hg_branch]
|
||||
symbol = " "
|
||||
|
||||
[hostname]
|
||||
ssh_symbol = " "
|
||||
|
||||
[java]
|
||||
symbol = " "
|
||||
|
||||
[julia]
|
||||
symbol = " "
|
||||
|
||||
[kotlin]
|
||||
symbol = " "
|
||||
|
||||
[lua]
|
||||
symbol = " "
|
||||
|
||||
[memory_usage]
|
||||
symbol = " "
|
||||
|
||||
[meson]
|
||||
symbol = " "
|
||||
|
||||
[nim]
|
||||
symbol = " "
|
||||
|
||||
[nix_shell]
|
||||
symbol = " "
|
||||
|
||||
[nodejs]
|
||||
symbol = " "
|
||||
|
||||
[ocaml]
|
||||
symbol = " "
|
||||
|
||||
[os.symbols]
|
||||
Alpaquita = " "
|
||||
Alpine = " "
|
||||
AlmaLinux = " "
|
||||
Amazon = " "
|
||||
Android = " "
|
||||
Arch = " "
|
||||
Artix = " "
|
||||
CentOS = " "
|
||||
Debian = " "
|
||||
DragonFly = " "
|
||||
Emscripten = " "
|
||||
EndeavourOS = " "
|
||||
Fedora = " "
|
||||
FreeBSD = " "
|
||||
Garuda = " "
|
||||
Gentoo = " "
|
||||
HardenedBSD = " "
|
||||
Illumos = " "
|
||||
Kali = " "
|
||||
Linux = " "
|
||||
Mabox = " "
|
||||
Macos = " "
|
||||
Manjaro = " "
|
||||
Mariner = " "
|
||||
MidnightBSD = " "
|
||||
Mint = " "
|
||||
NetBSD = " "
|
||||
NixOS = " "
|
||||
OpenBSD = " "
|
||||
openSUSE = " "
|
||||
OracleLinux = " "
|
||||
Pop = " "
|
||||
Raspbian = " "
|
||||
Redhat = " "
|
||||
RedHatEnterprise = " "
|
||||
RockyLinux = " "
|
||||
Redox = " "
|
||||
Solus = " "
|
||||
SUSE = " "
|
||||
Ubuntu = " "
|
||||
Unknown = " "
|
||||
Void = " "
|
||||
Windows = " "
|
||||
|
||||
[package]
|
||||
symbol = " "
|
||||
|
||||
[perl]
|
||||
symbol = " "
|
||||
|
||||
[php]
|
||||
symbol = " "
|
||||
|
||||
[pijul_channel]
|
||||
symbol = " "
|
||||
|
||||
[python]
|
||||
symbol = " "
|
||||
|
||||
[rlang]
|
||||
symbol = " "
|
||||
|
||||
[ruby]
|
||||
symbol = " "
|
||||
|
||||
[rust]
|
||||
symbol = " "
|
||||
|
||||
[scala]
|
||||
symbol = " "
|
||||
|
||||
[swift]
|
||||
symbol = " "
|
||||
|
||||
[zig]
|
||||
symbol = " "
|
||||
|
||||
[gradle]
|
||||
symbol = " "
|
2
src/source/configuration/etc/systemd/zram-generator.conf
Normal file
2
src/source/configuration/etc/systemd/zram-generator.conf
Normal file
@ -0,0 +1,2 @@
|
||||
[zram0]
|
||||
zram-size = max(min(ram / 2, 8192), 2048)
|
15
src/source/configuration/etc/zprofile
Normal file
15
src/source/configuration/etc/zprofile
Normal file
@ -0,0 +1,15 @@
|
||||
# Load essential files:
|
||||
emulate sh
|
||||
[ -f /etc/profile ] && . /etc/profile
|
||||
[ -f "$HOME"/.profile ] && . "$HOME"/.profile
|
||||
|
||||
emulate zsh
|
||||
|
||||
# eliminates duplicates in *paths
|
||||
typeset -gU cdpath fpath path
|
||||
|
||||
# Zsh search path for executable
|
||||
path=(
|
||||
/usr/local/{bin,sbin}
|
||||
$path
|
||||
)
|
21
src/source/configuration/etc/zshenv
Normal file
21
src/source/configuration/etc/zshenv
Normal file
@ -0,0 +1,21 @@
|
||||
#!/usr/bin/env zsh
|
||||
# vim:syntax=zsh
|
||||
# vim:filetype=zsh
|
||||
|
||||
# Secure TMPDIR and set TMPPREFIX according to TMPDIR.
|
||||
[ -f /etc/profile.d/tmpdir.sh ] && . /etc/profile.d/tmpdir.sh &&
|
||||
TMPPREFIX="${TMPDIR:-/tmp}/zsh"
|
||||
|
||||
# https://blog.patshead.com/2011/04/improve-your-oh-my-zsh-startup-time-maybe.html
|
||||
skip_global_compinit=1
|
||||
|
||||
export SYSTEM=$(uname -s)
|
||||
|
||||
# https://github.com/sorin-ionescu/prezto/blob/master/runcoms/zshenv
|
||||
# Ensure that a non-login, non-interactive shell has a defined environment.
|
||||
if [[ ("$SHLVL" -eq 1 && ! -o LOGIN) && -s "${ZDOTDIR:-$HOME}/.zprofile" ]]; then
|
||||
source "${ZDOTDIR:-$HOME}/.zprofile"
|
||||
fi
|
||||
|
||||
export PATH=$PATH:${HOME}/.bin
|
||||
export PATH=$HOME/bin:/usr/local/bin:$PATH
|
253
src/source/configuration/etc/zshrc
Normal file
253
src/source/configuration/etc/zshrc
Normal file
@ -0,0 +1,253 @@
|
||||
#!/usr/bin/env zsh
|
||||
# vim:syntax=zsh
|
||||
# vim:filetype=zsh
|
||||
|
||||
#
|
||||
# .zshrc is sourced in interactive shells.
|
||||
# It should contain commands to set up aliases,
|
||||
# functions, options, key bindings, etc.
|
||||
#
|
||||
|
||||
# history options
|
||||
HISTFILE="${ZDOTDIR:-$HOME}/.zsh_history"
|
||||
HISTSIZE=11111
|
||||
SAVEHIST=9999
|
||||
|
||||
#
|
||||
# Completions
|
||||
#
|
||||
|
||||
# zsh-completions
|
||||
fpath=(/usr/share/zsh/site-functions $fpath)
|
||||
|
||||
# load brew autocomplete
|
||||
if [ -d "/home/linuxbrew/.linuxbrew/share/zsh/site-functions" ]; then
|
||||
fpath+=(/home/linuxbrew/.linuxbrew/share/zsh/site-functions)
|
||||
fi
|
||||
|
||||
#
|
||||
# Cache setup
|
||||
#
|
||||
|
||||
zcompdump_file="${ZDOTDIR:-$HOME}/.zcompdump"
|
||||
# Cache: if the cache file exists and is less than a day old, we use it
|
||||
if [[ -f $zcompdump_file && $(( $(date +%s) - $(stat -c %Y $zcompdump_file) )) -lt 86400 ]]; then
|
||||
autoload -Uz compinit && compinit -C -d "$zcompdump_file"
|
||||
else
|
||||
autoload -Uz compinit && compinit -d "$zcompdump_file"
|
||||
fi
|
||||
|
||||
#
|
||||
# Options
|
||||
#
|
||||
|
||||
setopt INC_APPEND_HISTORY # To save every command before it is executed
|
||||
setopt SHARE_HISTORY # Share history between all sessions.
|
||||
setopt APPEND_HISTORY # Append history to the history file.
|
||||
setopt COMPLETE_IN_WORD # Complete from both ends of a word.
|
||||
setopt ALWAYS_TO_END # Move cursor to the end of a completed word.
|
||||
setopt PATH_DIRS # Perform path search even on command names with slashes.
|
||||
setopt AUTO_MENU # Show completion menu on a successive tab press.
|
||||
setopt AUTO_LIST # Automatically list choices on ambiguous completion.
|
||||
setopt AUTO_PARAM_SLASH # If completed parameter is a directory, add a trailing slash.
|
||||
setopt EXTENDED_GLOB # Needed for file modification glob modifiers with compinit.
|
||||
unsetopt MENU_COMPLETE # Do not autoselect the first completion entry.
|
||||
unsetopt FLOW_CONTROL # Disable start/stop characters in shell editor.
|
||||
setopt interactivecomments # Allow inline comments
|
||||
setopt AUTO_CD # Auto changes to a directory without typing cd.
|
||||
|
||||
#
|
||||
# Variables
|
||||
#
|
||||
|
||||
export ZSHCONFIG=${ZDOTDIR:-$HOME}/.zsh
|
||||
|
||||
ZSH_THEME="spaceship"
|
||||
|
||||
# Standard style used by default for 'list-colors'
|
||||
LS_COLORS=${LS_COLORS:-'di=34:ln=35:so=32:pi=33:ex=31:bd=36;01:cd=33;01:su=31;40;07:sg=36;40;07:tw=32;40;07:ow=33;40;07:'}
|
||||
|
||||
#
|
||||
# Styles
|
||||
#
|
||||
|
||||
# Defaults.
|
||||
zstyle ':completion:*:default' list-colors ${(s.:.)LS_COLORS}
|
||||
zstyle ':completion:*:default' list-prompt '%S%M matches%s'
|
||||
|
||||
# Use caching to make completion for commands such as dpkg and apt usable.
|
||||
zstyle ':completion::complete:*' use-cache on
|
||||
zstyle ':completion::complete:*' cache-path "${XDG_CACHE_HOME:-$HOME/.cache}/prezto/zcompcache"
|
||||
|
||||
# Case-insensitive (all), partial-word, and then substring completion.
|
||||
if zstyle -t ':prezto:module:completion:*' case-sensitive; then
|
||||
zstyle ':completion:*' matcher-list 'r:|[._-]=* r:|=*' 'l:|=* r:|=*'
|
||||
setopt CASE_GLOB
|
||||
else
|
||||
zstyle ':completion:*' matcher-list 'm:{a-zA-Z}={A-Za-z}' 'r:|[._-]=* r:|=*' 'l:|=* r:|=*'
|
||||
unsetopt CASE_GLOB
|
||||
fi
|
||||
|
||||
# Group matches and describe.
|
||||
zstyle ':completion:*:*:*:*:*' menu select
|
||||
zstyle ':completion:*:matches' group 'yes'
|
||||
zstyle ':completion:*:options' description 'yes'
|
||||
zstyle ':completion:*:options' auto-description '%d'
|
||||
zstyle ':completion:*:corrections' format ' %F{green}-- %d (errors: %e) --%f'
|
||||
zstyle ':completion:*:descriptions' format ' %F{yellow}-- %d --%f'
|
||||
zstyle ':completion:*:messages' format ' %F{purple} -- %d --%f'
|
||||
zstyle ':completion:*:warnings' format ' %F{red}-- no matches found --%f'
|
||||
zstyle ':completion:*' format ' %F{yellow}-- %d --%f'
|
||||
zstyle ':completion:*' group-name ''
|
||||
zstyle ':completion:*' verbose yes
|
||||
|
||||
# Fuzzy match mistyped completions.
|
||||
zstyle ':completion:*' completer _complete _match _approximate
|
||||
zstyle ':completion:*:match:*' original only
|
||||
zstyle ':completion:*:approximate:*' max-errors 1 numeric
|
||||
|
||||
# Increase the number of errors based on the length of the typed word. But make
|
||||
# sure to cap (at 7) the max-errors to avoid hanging.
|
||||
zstyle -e ':completion:*:approximate:*' max-errors 'reply=($((($#PREFIX+$#SUFFIX)/3>7?7:($#PREFIX+$#SUFFIX)/3))numeric)'
|
||||
|
||||
# Don't complete unavailable commands.
|
||||
zstyle ':completion:*:functions' ignored-patterns '(_*|pre(cmd|exec))'
|
||||
|
||||
# Array completion element sorting.
|
||||
zstyle ':completion:*:*:-subscript-:*' tag-order indexes parameters
|
||||
|
||||
# Directories
|
||||
zstyle ':completion:*:*:cd:*' tag-order local-directories directory-stack path-directories
|
||||
zstyle ':completion:*:*:cd:*:directory-stack' menu yes select
|
||||
zstyle ':completion:*:-tilde-:*' group-order 'named-directories' 'path-directories' 'users' 'expand'
|
||||
zstyle ':completion:*' squeeze-slashes true
|
||||
|
||||
# History
|
||||
zstyle ':completion:*:history-words' stop yes
|
||||
zstyle ':completion:*:history-words' remove-all-dups yes
|
||||
zstyle ':completion:*:history-words' list false
|
||||
zstyle ':completion:*:history-words' menu yes
|
||||
|
||||
# Environment Variables
|
||||
zstyle ':completion::*:(-command-|export):*' fake-parameters ${${${_comps[(I)-value-*]#*,}%%,*}:#-*-}
|
||||
|
||||
# Populate hostname completion. But allow ignoring custom entries from static
|
||||
# */etc/hosts* which might be uninteresting.
|
||||
zstyle -a ':prezto:module:completion:*:hosts' etc-host-ignores '_etc_host_ignores'
|
||||
|
||||
zstyle -e ':completion:*:hosts' hosts 'reply=(
|
||||
${=${=${=${${(f)"$(cat {/etc/ssh/ssh_,~/.ssh/}known_hosts(|2)(N) 2> /dev/null)"}%%[#| ]*}//\]:[0-9]*/ }//,/ }//\[/ }
|
||||
${=${(f)"$(cat /etc/hosts(|)(N) <<(ypcat hosts 2> /dev/null))"}%%(\#${_etc_host_ignores:+|${(j:|:)~_etc_host_ignores}})*}
|
||||
${=${${${${(@M)${(f)"$(cat ~/.ssh/config 2> /dev/null)"}:#Host *}#Host }:#*\**}:#*\?*}}
|
||||
)'
|
||||
|
||||
# Don't complete uninteresting users...
|
||||
zstyle ':completion:*:*:*:users' ignored-patterns \
|
||||
adm amanda apache avahi beaglidx bin cacti canna clamav daemon \
|
||||
dbus distcache dovecot fax ftp games gdm gkrellmd gopher \
|
||||
hacluster haldaemon halt hsqldb ident junkbust ldap lp mail \
|
||||
mailman mailnull mldonkey mysql nagios \
|
||||
named netdump news nfsnobody nobody nscd ntp nut nx openvpn \
|
||||
operator pcap postfix postgres privoxy pulse pvm quagga radvd \
|
||||
rpc rpcuser rpm shutdown squid sshd sync uucp vcsa xfs '_*'
|
||||
|
||||
# Ignore multiple entries.
|
||||
zstyle ':completion:*:(rm|kill|diff):*' ignore-line other
|
||||
zstyle ':completion:*:rm:*' file-patterns '*:all-files'
|
||||
|
||||
# Kill
|
||||
zstyle ':completion:*:*:*:*:processes' command 'ps -u $LOGNAME -o pid,user,command -w'
|
||||
zstyle ':completion:*:*:kill:*:processes' list-colors '=(#b) #([0-9]#) ([0-9a-z-]#)*=01;36=0=01'
|
||||
zstyle ':completion:*:*:kill:*' menu yes select
|
||||
zstyle ':completion:*:*:kill:*' force-list always
|
||||
zstyle ':completion:*:*:kill:*' insert-ids single
|
||||
|
||||
# Man
|
||||
zstyle ':completion:*:manuals' separate-sections true
|
||||
zstyle ':completion:*:manuals.(^1*)' insert-sections true
|
||||
|
||||
# Media Players
|
||||
zstyle ':completion:*:*:mpg123:*' file-patterns '*.(mp3|MP3):mp3\ files *(-/):directories'
|
||||
zstyle ':completion:*:*:mpg321:*' file-patterns '*.(mp3|MP3):mp3\ files *(-/):directories'
|
||||
zstyle ':completion:*:*:ogg123:*' file-patterns '*.(ogg|OGG|flac):ogg\ files *(-/):directories'
|
||||
zstyle ':completion:*:*:mocp:*' file-patterns '*.(wav|WAV|mp3|MP3|ogg|OGG|flac):ogg\ files *(-/):directories'
|
||||
|
||||
# Mutt
|
||||
if [[ -s "$HOME/.mutt/aliases" ]]; then
|
||||
zstyle ':completion:*:*:mutt:*' menu yes select
|
||||
zstyle ':completion:*:mutt:*' users ${${${(f)"$(<"$HOME/.mutt/aliases")"}#alias[[:space:]]}%%[[:space:]]*}
|
||||
fi
|
||||
|
||||
# SSH/SCP/RSYNC
|
||||
zstyle ':completion:*:(ssh|scp|rsync):*' tag-order 'hosts:-host:host hosts:-domain:domain hosts:-ipaddr:ip\ address *'
|
||||
zstyle ':completion:*:(scp|rsync):*' group-order users files all-files hosts-domain hosts-host hosts-ipaddr
|
||||
zstyle ':completion:*:ssh:*' group-order users hosts-domain hosts-host users hosts-ipaddr
|
||||
zstyle ':completion:*:(ssh|scp|rsync):*:hosts-host' ignored-patterns '*(.|:)*' loopback ip6-loopback localhost ip6-localhost broadcasthost
|
||||
zstyle ':completion:*:(ssh|scp|rsync):*:hosts-domain' ignored-patterns '<->.<->.<->.<->' '^[-[:alnum:]]##(.[-[:alnum:]]##)##' '*@*'
|
||||
zstyle ':completion:*:(ssh|scp|rsync):*:hosts-ipaddr' ignored-patterns '^(<->.<->.<->.<->|(|::)([[:xdigit:].]##:(#c,2))##(|%*))' '127.0.0.<->' '255.255.255.255' '::1' 'fe80::*'
|
||||
|
||||
autoload -U colors
|
||||
colors
|
||||
|
||||
# Brew
|
||||
if [[ -o interactive ]] && [[ -d /home/linuxbrew/.linuxbrew ]]; then
|
||||
eval "$(/home/linuxbrew/.linuxbrew/bin/brew shellenv)"
|
||||
if type brew &>/dev/null; then
|
||||
if [[ -w /home/linuxbrew/.linuxbrew ]]; then
|
||||
if [[ ! -L "$(brew --prefix)/share/zsh/site-functions/_brew" ]]; then
|
||||
brew completions link
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
#####################
|
||||
# User configuration
|
||||
#####################
|
||||
|
||||
# Load user zsh scripts
|
||||
if [ -d $ZSHCONFIG ]; then
|
||||
for f in $ZSHCONFIG/**/*.*sh
|
||||
do
|
||||
source "$f"
|
||||
done
|
||||
fi
|
||||
|
||||
# Provide pathmunge for /etc/profile.d scripts
|
||||
pathmunge()
|
||||
{
|
||||
if ! echo $PATH | /bin/grep -qE "(^|:)$1($|:)" ; then
|
||||
if [ "$2" = "after" ] ; then
|
||||
PATH=$PATH:$1
|
||||
else
|
||||
PATH=$1:$PATH
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
_src_etc_profile_d()
|
||||
{
|
||||
# Make the *.sh things happier, and have possible ~/.zshenv options like
|
||||
# NOMATCH ignored.
|
||||
emulate -L ksh
|
||||
|
||||
|
||||
# from bashrc, with zsh fixes
|
||||
if [[ ! -o login ]]; then # We're not a login shell
|
||||
for i in /etc/profile.d/*.sh; do
|
||||
if [ -r "$i" ]; then
|
||||
. $i
|
||||
fi
|
||||
done
|
||||
unset i
|
||||
fi
|
||||
}
|
||||
_src_etc_profile_d
|
||||
|
||||
unset -f pathmunge _src_etc_profile_d
|
||||
|
||||
export STARSHIP_CONFIG=/etc/starship/starship.toml
|
||||
# Starship
|
||||
if type "starship" > /dev/null; then
|
||||
eval "$(starship init zsh)"
|
||||
fi
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
93
src/source/configuration/usr/share/fonts/FiraCode/LICENSE
Normal file
93
src/source/configuration/usr/share/fonts/FiraCode/LICENSE
Normal file
@ -0,0 +1,93 @@
|
||||
Copyright (c) 2014, The Fira Code Project Authors (https://github.com/tonsky/FiraCode)
|
||||
|
||||
This Font Software is licensed under the SIL Open Font License, Version 1.1.
|
||||
This license is copied below, and is also available with a FAQ at:
|
||||
http://scripts.sil.org/OFL
|
||||
|
||||
|
||||
-----------------------------------------------------------
|
||||
SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
|
||||
-----------------------------------------------------------
|
||||
|
||||
PREAMBLE
|
||||
The goals of the Open Font License (OFL) are to stimulate worldwide
|
||||
development of collaborative font projects, to support the font creation
|
||||
efforts of academic and linguistic communities, and to provide a free and
|
||||
open framework in which fonts may be shared and improved in partnership
|
||||
with others.
|
||||
|
||||
The OFL allows the licensed fonts to be used, studied, modified and
|
||||
redistributed freely as long as they are not sold by themselves. The
|
||||
fonts, including any derivative works, can be bundled, embedded,
|
||||
redistributed and/or sold with any software provided that any reserved
|
||||
names are not used by derivative works. The fonts and derivatives,
|
||||
however, cannot be released under any other type of license. The
|
||||
requirement for fonts to remain under this license does not apply
|
||||
to any document created using the fonts or their derivatives.
|
||||
|
||||
DEFINITIONS
|
||||
"Font Software" refers to the set of files released by the Copyright
|
||||
Holder(s) under this license and clearly marked as such. This may
|
||||
include source files, build scripts and documentation.
|
||||
|
||||
"Reserved Font Name" refers to any names specified as such after the
|
||||
copyright statement(s).
|
||||
|
||||
"Original Version" refers to the collection of Font Software components as
|
||||
distributed by the Copyright Holder(s).
|
||||
|
||||
"Modified Version" refers to any derivative made by adding to, deleting,
|
||||
or substituting -- in part or in whole -- any of the components of the
|
||||
Original Version, by changing formats or by porting the Font Software to a
|
||||
new environment.
|
||||
|
||||
"Author" refers to any designer, engineer, programmer, technical
|
||||
writer or other person who contributed to the Font Software.
|
||||
|
||||
PERMISSION & CONDITIONS
|
||||
Permission is hereby granted, free of charge, to any person obtaining
|
||||
a copy of the Font Software, to use, study, copy, merge, embed, modify,
|
||||
redistribute, and sell modified and unmodified copies of the Font
|
||||
Software, subject to the following conditions:
|
||||
|
||||
1) Neither the Font Software nor any of its individual components,
|
||||
in Original or Modified Versions, may be sold by itself.
|
||||
|
||||
2) Original or Modified Versions of the Font Software may be bundled,
|
||||
redistributed and/or sold with any software, provided that each copy
|
||||
contains the above copyright notice and this license. These can be
|
||||
included either as stand-alone text files, human-readable headers or
|
||||
in the appropriate machine-readable metadata fields within text or
|
||||
binary files as long as those fields can be easily viewed by the user.
|
||||
|
||||
3) No Modified Version of the Font Software may use the Reserved Font
|
||||
Name(s) unless explicit written permission is granted by the corresponding
|
||||
Copyright Holder. This restriction only applies to the primary font name as
|
||||
presented to the users.
|
||||
|
||||
4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font
|
||||
Software shall not be used to promote, endorse or advertise any
|
||||
Modified Version, except to acknowledge the contribution(s) of the
|
||||
Copyright Holder(s) and the Author(s) or with their explicit written
|
||||
permission.
|
||||
|
||||
5) The Font Software, modified or unmodified, in part or in whole,
|
||||
must be distributed entirely under this license, and must not be
|
||||
distributed under any other license. The requirement for fonts to
|
||||
remain under this license does not apply to any document created
|
||||
using the Font Software.
|
||||
|
||||
TERMINATION
|
||||
This license becomes null and void if any of the above conditions are
|
||||
not met.
|
||||
|
||||
DISCLAIMER
|
||||
THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
|
||||
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
|
||||
OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
|
||||
COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
||||
INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
|
||||
DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||
FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
|
||||
OTHER DEALINGS IN THE FONT SOFTWARE.
|
48
src/source/configuration/usr/share/fonts/FiraCode/README.md
Normal file
48
src/source/configuration/usr/share/fonts/FiraCode/README.md
Normal file
@ -0,0 +1,48 @@
|
||||
# Nerd Fonts
|
||||
|
||||
This is an archived font from the Nerd Fonts release v3.3.0.
|
||||
|
||||
For more information see:
|
||||
* https://github.com/ryanoasis/nerd-fonts/
|
||||
* https://github.com/ryanoasis/nerd-fonts/releases/latest/
|
||||
|
||||
# Fira Code
|
||||
|
||||
**Fira Code** is a free monospaced font with programming ligatures.
|
||||
|
||||
For more information have a look at the upstream website: https://github.com/tonsky/FiraCode
|
||||
|
||||
Version: 6.2
|
||||
|
||||
## Which font?
|
||||
|
||||
### TL;DR
|
||||
|
||||
* Pick your font family:
|
||||
* If you are limited to monospaced fonts (because of your terminal, etc) then pick a font with `Nerd Font Mono` (or `NFM`).
|
||||
* If you want to have bigger icons (usually around 1.5 normal letters wide) pick a font without `Mono` i.e. `Nerd Font` (or `NF`). Most terminals support this, but ymmv.
|
||||
* If you work in a proportional context (GUI elements or edit a presentation etc) pick a font with `Nerd Font Propo` (or `NFP`).
|
||||
|
||||
### Ligatures
|
||||
|
||||
Ligatures are generally preserved in the patched fonts.
|
||||
Nerd Fonts `v2.0.0` had no ligatures in the `Nerd Font Mono` fonts, this has been dropped with `v2.1.0`.
|
||||
If you have a ligature-aware terminal and don't want ligatures you can (usually) disable them in the terminal settings.
|
||||
|
||||
### Explanation
|
||||
|
||||
Once you narrow down your font choice of family (`Droid Sans`, `Inconsolata`, etc) and style (`bold`, `italic`, etc) you have 2 main choices:
|
||||
|
||||
#### `Option 1: Download already patched font`
|
||||
|
||||
* For a stable version download a font package from the [release page](https://github.com/ryanoasis/nerd-fonts/releases)
|
||||
* Or download the development version from the folders here
|
||||
|
||||
#### `Option 2: Patch your own font`
|
||||
|
||||
* Patch your own variations with the various options provided by the font patcher (i.e. not include all symbols for smaller font size)
|
||||
|
||||
For more information see: [The FAQ](https://github.com/ryanoasis/nerd-fonts/wiki/FAQ-and-Troubleshooting#which-font)
|
||||
|
||||
[SIL-RFN]:http://scripts.sil.org/cms/scripts/page.php?item_id=OFL_web_fonts_and_RFNs#14cbfd4a
|
||||
|
10
src/source/configuration/usr/share/fonts/JetBrainsMono/AUTHORS.txt
Executable file
10
src/source/configuration/usr/share/fonts/JetBrainsMono/AUTHORS.txt
Executable file
@ -0,0 +1,10 @@
|
||||
# This is the official list of project authors for copyright purposes.
|
||||
# This file is distinct from the CONTRIBUTORS.txt file.
|
||||
# See the latter for an explanation.
|
||||
#
|
||||
# Names should be added to this file as:
|
||||
# Name or Organization <email address>
|
||||
|
||||
JetBrains <>
|
||||
Philipp Nurullin <philipp.nurullin@jetbrains.com>
|
||||
Konstantin Bulenkov <kb@jetbrains.com>
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -0,0 +1,93 @@
|
||||
Copyright 2020 The JetBrains Mono Project Authors (https://github.com/JetBrains/JetBrainsMono)
|
||||
|
||||
This Font Software is licensed under the SIL Open Font License, Version 1.1.
|
||||
This license is copied below, and is also available with a FAQ at:
|
||||
https://scripts.sil.org/OFL
|
||||
|
||||
|
||||
-----------------------------------------------------------
|
||||
SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
|
||||
-----------------------------------------------------------
|
||||
|
||||
PREAMBLE
|
||||
The goals of the Open Font License (OFL) are to stimulate worldwide
|
||||
development of collaborative font projects, to support the font creation
|
||||
efforts of academic and linguistic communities, and to provide a free and
|
||||
open framework in which fonts may be shared and improved in partnership
|
||||
with others.
|
||||
|
||||
The OFL allows the licensed fonts to be used, studied, modified and
|
||||
redistributed freely as long as they are not sold by themselves. The
|
||||
fonts, including any derivative works, can be bundled, embedded,
|
||||
redistributed and/or sold with any software provided that any reserved
|
||||
names are not used by derivative works. The fonts and derivatives,
|
||||
however, cannot be released under any other type of license. The
|
||||
requirement for fonts to remain under this license does not apply
|
||||
to any document created using the fonts or their derivatives.
|
||||
|
||||
DEFINITIONS
|
||||
"Font Software" refers to the set of files released by the Copyright
|
||||
Holder(s) under this license and clearly marked as such. This may
|
||||
include source files, build scripts and documentation.
|
||||
|
||||
"Reserved Font Name" refers to any names specified as such after the
|
||||
copyright statement(s).
|
||||
|
||||
"Original Version" refers to the collection of Font Software components as
|
||||
distributed by the Copyright Holder(s).
|
||||
|
||||
"Modified Version" refers to any derivative made by adding to, deleting,
|
||||
or substituting -- in part or in whole -- any of the components of the
|
||||
Original Version, by changing formats or by porting the Font Software to a
|
||||
new environment.
|
||||
|
||||
"Author" refers to any designer, engineer, programmer, technical
|
||||
writer or other person who contributed to the Font Software.
|
||||
|
||||
PERMISSION & CONDITIONS
|
||||
Permission is hereby granted, free of charge, to any person obtaining
|
||||
a copy of the Font Software, to use, study, copy, merge, embed, modify,
|
||||
redistribute, and sell modified and unmodified copies of the Font
|
||||
Software, subject to the following conditions:
|
||||
|
||||
1) Neither the Font Software nor any of its individual components,
|
||||
in Original or Modified Versions, may be sold by itself.
|
||||
|
||||
2) Original or Modified Versions of the Font Software may be bundled,
|
||||
redistributed and/or sold with any software, provided that each copy
|
||||
contains the above copyright notice and this license. These can be
|
||||
included either as stand-alone text files, human-readable headers or
|
||||
in the appropriate machine-readable metadata fields within text or
|
||||
binary files as long as those fields can be easily viewed by the user.
|
||||
|
||||
3) No Modified Version of the Font Software may use the Reserved Font
|
||||
Name(s) unless explicit written permission is granted by the corresponding
|
||||
Copyright Holder. This restriction only applies to the primary font name as
|
||||
presented to the users.
|
||||
|
||||
4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font
|
||||
Software shall not be used to promote, endorse or advertise any
|
||||
Modified Version, except to acknowledge the contribution(s) of the
|
||||
Copyright Holder(s) and the Author(s) or with their explicit written
|
||||
permission.
|
||||
|
||||
5) The Font Software, modified or unmodified, in part or in whole,
|
||||
must be distributed entirely under this license, and must not be
|
||||
distributed under any other license. The requirement for fonts to
|
||||
remain under this license does not apply to any document created
|
||||
using the Font Software.
|
||||
|
||||
TERMINATION
|
||||
This license becomes null and void if any of the above conditions are
|
||||
not met.
|
||||
|
||||
DISCLAIMER
|
||||
THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
|
||||
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
|
||||
OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
|
||||
COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
||||
INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
|
||||
DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||
FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
|
||||
OTHER DEALINGS IN THE FONT SOFTWARE.
|
@ -0,0 +1 @@
|
||||
© 2015-2017 Apple Inc. All rights reserved.
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user