Compare commits

6 Commits
main ... v0.1

Author SHA1 Message Date
a408c841f4 Added a few apps + uninstall 2024-06-17 01:49:52 +02:00
3b97ae4f33 Added a few more scripts 2024-06-17 01:23:02 +02:00
3f71189bf1 add scripts 2024-06-17 00:39:57 +02:00
2bf85de679 test 2024-06-17 00:39:25 +02:00
bf35bf65c2 Updated 2024-06-17 00:05:10 +02:00
f3bb166493 First commit 2024-06-17 00:02:41 +02:00
26 changed files with 610 additions and 0 deletions

View File

@@ -0,0 +1,9 @@
# misebuntu
Turn a fresh Ubuntu installation into a fully configured desktop by running a single command.
misebuntu is what I prefer Ubuntu to be.
It is a play in on the term *mise en place* and Ubuntu.
Getting starting is simple - just run:
```bash
wget -qO- https://git.cbo.dk/rasmus/setup-ubuntu/raw/branch/v0.1/installer.sh | bash
```

26
configs/vscode.json Normal file
View File

@@ -0,0 +1,26 @@
{
"editor.fontFamily": "CaskaydiaMono Nerd Font",
"editor.tabSize": 2,
"security.workspace.trust.untrustedFiles": "open",
"editor.minimap.enabled": false,
"git.ignoreMissingGitWarning": true,
"editor.fontSize": 12,
"editor.occurrencesHighlight": "off",
"editor.selectionHighlight": false,
"editor.suggestOnTriggerCharacters": false,
"editor.tabCompletion": "on",
"editor.quickSuggestions": {
"other": false,
"comments": false,
"strings": false
},
"files.trimTrailingWhitespace": true,
"git.confirmSync": false,
"window.menuBarVisibility": "compact",
"git.autofetch": true,
"git.openRepositoryInParentFolders": "always",
"explorer.confirmDelete": false,
"extensions.ignoreRecommendations": true,
"workbench.colorTheme": "Tokyo Night",
"window.titleBarStyle": "custom"
}

23
install.sh Normal file
View File

@@ -0,0 +1,23 @@
# Exit immediately if a command exits with a non-zero status
set -e
# Needed for all installers
sudo apt update -y
sudo apt install -y curl git unzip
# Ensure computer doesn't go to sleep or lock while installing
gsettings set org.gnome.desktop.screensaver lock-enabled false
gsettings set org.gnome.desktop.session idle-delay 0
# Run installers
for script in ~/.local/share/misebuntu/install/*.sh; do source $script; done
# Upgrade everything that might ask for a reboot last
sudo apt upgrade -y
# Revert to normal idle and lock settings
gsettings set org.gnome.desktop.screensaver lock-enabled true
gsettings set org.gnome.desktop.session idle-delay 300
# Logout to pickup changes
#gum confirm "Ready to logout for all settings to take effect?" && gnome-session-quit --logout --no-prompt

3
install/app-fastfetch.sh Normal file
View File

@@ -0,0 +1,3 @@
sudo add-apt-repository -y ppa:zhangsongcui3371/fastfetch
sudo apt update -y
sudo apt install -y fastfetch

2
install/app-flameshot.sh Normal file
View File

@@ -0,0 +1,2 @@
# Flameshot is a nice step-up over the default Gnome screenshot tool
sudo apt install -y flameshot

View File

@@ -0,0 +1,7 @@
cd ~/Downloads
LAZYDOCKER_VERSION=$(curl -s "https://api.github.com/repos/jesseduffield/lazydocker/releases/latest" | grep -Po '"tag_name": "v\K[^"]*')
curl -sLo lazydocker.tar.gz "https://github.com/jesseduffield/lazydocker/releases/latest/download/lazydocker_${LAZYDOCKER_VERSION}_Linux_x86_64.tar.gz"
tar -xf lazydocker.tar.gz lazydocker
sudo install lazydocker /usr/local/bin
rm lazydocker.tar.gz lazydocker
cd -

7
install/app-lazygit.sh Normal file
View File

@@ -0,0 +1,7 @@
cd ~/Downloads
LAZYGIT_VERSION=$(curl -s "https://api.github.com/repos/jesseduffield/lazygit/releases/latest" | grep -Po '"tag_name": "v\K[^"]*')
curl -sLo lazygit.tar.gz "https://github.com/jesseduffield/lazygit/releases/latest/download/lazygit_${LAZYGIT_VERSION}_Linux_x86_64.tar.gz"
tar -xf lazygit.tar.gz lazygit
sudo install lazygit /usr/local/bin
rm lazygit.tar.gz lazygit
cd -

6
install/app-localsend.sh Normal file
View File

@@ -0,0 +1,6 @@
cd ~/Downloads
LOCALSEND_VERSION=$(curl -s "https://api.github.com/repos/localsend/localsend/releases/latest" | grep -Po '"tag_name": "v\K[^"]*')
wget -O localsend.deb "https://github.com/localsend/localsend/releases/latest/download/LocalSend-${LOCALSEND_VERSION}-linux-x86-64.deb"
sudo apt install -y ./localsend.deb
rm localsend.deb
cd -

6
install/app-steam.sh Executable file
View File

@@ -0,0 +1,6 @@
cd /tmp
wget https://cdn.akamai.steamstatic.com/client/installer/steam.deb
sudo apt install -y ./steam.deb
sudo apt-get install --no-remove -oAPT::Get::AutomaticRemove=false libc6:amd64 libc6:i386 libegl1:amd64 libegl1:i386 libgbm1:amd64 libgbm1:i386 libgl1-mesa-dri:amd64 libgl1-mesa-dri:i386 libgl1:amd64 libgl1:i386 steam-libs-amd64:amd64
rm steam.deb
cd -

9
install/app-typora.sh Normal file
View File

@@ -0,0 +1,9 @@
wget -qO - https://typora.io/linux/public-key.asc | sudo tee /etc/apt/trusted.gpg.d/typora.asc
sudo add-apt-repository -y 'deb https://typora.io/linux ./'
sudo apt update
sudo apt install -y typora
# Add iA Typora theme
mkdir -p ~/.config/Typora/themes
cp ~/.local/share/misebuntu/themes/typora/ia_typora.css ~/.config/Typora/themes/
cp ~/.local/share/misebuntu/themes/typora/ia_typora_night.css ~/.config/Typora/themes/

1
install/app-vlc.sh Normal file
View File

@@ -0,0 +1 @@
sudo apt install -y vlc

37
install/app-vscode.sh Normal file
View File

@@ -0,0 +1,37 @@
cd ~/Downloads
wget -O code.deb 'https://code.visualstudio.com/sha/download?build=stable&os=linux-deb-x64'
sudo apt install -y ./code.deb
rm code.deb
cd -
mkdir -p ~/.config/Code/User
cp ~/.local/share/misebuntu/configs/vscode.json ~/.config/Code/User/settings.json
# Install default supported themes
code --install-extension enkia.tokyo-night
# Install default language extensions
code --install-extension golang.go
code --install-extension ms-python.debugpy
code --install-extension ms-python.python
code --install-extension ms-python.vscode-pylance
code --install-extension redhat.ansible
code --install-extension redhat.java
code --install-extension redhat.vscode-commons
code --install-extension redhat.vscode-microprofile
code --install-extension redhat.vscode-quarkus
code --install-extension redhat.vscode-xml
code --install-extension redhat.vscode-yaml
code --install-extension vscjava.vscode-java-debug
# Install various extensions
code --install-extension esbenp.prettier-vscode
code --install-extension ms-azuretools.vscode-docker
code --install-extension ms-vscode-remote.remote-containers
code --install-extension ms-vscode-remote.remote-ssh
code --install-extension ms-vscode-remote.remote-ssh-edit
code --install-extension ms-vscode-remote.remote-wsl
code --install-extension ms-vscode-remote.vscode-remote-extensionpack
code --install-extension ms-vscode.remote-explorer
code --install-extension ms-vscode.remote-server
code --install-extension rangav.vscode-thunder-client

11
install/docker.sh Normal file
View File

@@ -0,0 +1,11 @@
sudo apt install -y docker.io docker-buildx
sudo usermod -aG docker ${USER}
# Limit log size to avoid running out of disk
echo '{"log-driver":"json-file","log-opts":{"max-size":"10m","max-file":"5"}}' | sudo tee /etc/docker/daemon.json
DOCKER_COMPOSE_VERSION="2.27.0"
DOCKER_CONFIG=${DOCKER_CONFIG:-$HOME/.docker}
mkdir -p $DOCKER_CONFIG/cli-plugins
curl -sSL https://github.com/docker/compose/releases/download/v$DOCKER_COMPOSE_VERSION/docker-compose-linux-x86_64 -o $DOCKER_CONFIG/cli-plugins/docker-compose
chmod +x $DOCKER_CONFIG/cli-plugins/docker-compose

3
install/flatpak.sh Normal file
View File

@@ -0,0 +1,3 @@
sudo apt install -y flatpak
sudo apt install -y gnome-software-plugin-flatpak
sudo flatpak remote-add --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo

34
install/fonts.sh Normal file
View File

@@ -0,0 +1,34 @@
mkdir -p ~/.local/share/fonts
cd ~/Downloads
wget https://github.com/ryanoasis/nerd-fonts/releases/latest/download/CascadiaMono.zip
unzip CascadiaMono.zip -d CascadiaFont
cp CascadiaFont/*.ttf ~/.local/share/fonts
rm -rf CascadiaMono.zip CascadiaFont
wget https://github.com/ryanoasis/nerd-fonts/releases/latest/download/FiraMono.zip
unzip FiraMono.zip -d FiraMono
cp FiraMono/*.otf ~/.local/share/fonts
rm -rf FiraMono.zip FiraMono
wget https://github.com/ryanoasis/nerd-fonts/releases/latest/download/JetBrainsMono.zip
unzip JetBrainsMono.zip -d JetBrainsMono
cp JetBrainsMono/*.ttf ~/.local/share/fonts
rm -rf JetBrainsMono.zip JetBrainsMono
wget https://github.com/ryanoasis/nerd-fonts/releases/latest/download/Meslo.zip
unzip Meslo.zip -d Meslo
cp Meslo/*.ttf ~/.local/share/fonts
rm -rf Meslo.zip Meslo
wget https://github.com/iaolo/iA-Fonts/archive/refs/heads/master.zip
unzip master.zip -d iaFonts
cp iaFonts/iA-Fonts-master/iA\ Writer\ Mono/Static/iAWriterMonoS-*.ttf ~/.local/share/fonts
rm -rf master.zip iaFonts
fc-cache
cd -
# Set Cascadia Mono as the default
gsettings set org.gnome.desktop.interface monospace-font-name 'CaskaydiaMono Nerd Font 10'
#gsettings set org.gnome.desktop.interface monospace-font-name 'Ubuntu Sans Mono 13'

6
install/set-git.sh Normal file
View File

@@ -0,0 +1,6 @@
# Set common git aliases
git config --global alias.co checkout
git config --global alias.br branch
git config --global alias.ci commit
git config --global alias.st status
git config --global pull.rebase true

7
installer.sh Normal file
View File

@@ -0,0 +1,7 @@
echo "Installing git..."
sudo apt-get update > /dev/null
sudo apt-get install -y git > /dev/null
echo "Cloning stable misebuntu..."
git clone -b v0.1 https://git.cbo.dk/rasmus/setup-ubuntu.git ~/.local/share/misebuntu > /dev/null
source ~/.local/share/misebuntu/install.sh

309
themes/typora/ia_typora.css Normal file
View File

@@ -0,0 +1,309 @@
:root {
--accent-color: #aeb1b5; /* #'s before H1-3 */
--background-color: white;
--border-color: #ddd;
--code-bg-color: #f8f8f8;
--font-color: #42464c;
--header-color: #222324;
--link-color: #2077b2;
--control-text-color: #667176;
--side-bar-bg-color: #fafafa;
--body-font: iAWriterMonoS-Regular, monospace, Roboto;
--border-radius: 2px;
--document-horizontal-margin: 80px;
--document-padding-x: 10ch;
--font-size: 20px;
--h1-fontsize: 20px; /* 1,5 rem = 24px */
--h2-fontsize: 20px; /* 1,375 rem = 22px */
--h3-fontsize: 20px; /* 1,25 rem = 20px */
--h4-fontsize: 20px; /* 1,125 rem = 18px */
--line-height: 1.8;
--main-content-margin: 0 auto;
--main-content-max-width: 85ch;
--monospace-font-size: 20px;
--monospace-font: iAWriterMonoS-Regular, monospace;
--monospace-line-height: 1.6;
--monospace: var(--monospace-font); /* Fixes source code mode */
--nav-width: 200px;
--vertical-padding: 40px;
}
/* Narrow layout styles */
@media (max-width: 640px) {
:root {
--document-padding-x: 4ch;
}
}
html {
font-size: var(--font-size);
background-color: var(--background-color);
}
html,
body {
color: var(--font-color);
font-family: var(--body-font);
line-height: var(--line-height);
}
#write {
/* size of writing area: */
padding-left: var(--document-padding-x);
padding-right: var(--document-padding-x);
max-width: var(--main-content-max-width);
box-sizing: border-box;
}
/**
* ---------------------
* Block Elements
*/
/* yaml */
pre.md-meta-block {
background-color: var(--background-color);
padding-bottom: .5rem;
color: var(--accent-color);
border-bottom: 2px solid var(--border-color);
font-family: var(--monospace-font);
}
/* headings */
h1, h2, h3 {
font-weight: bold;
color: var(--header-color);
}
h1 {
margin-top: 1rem;
margin-bottom: 1rem;
font-size: var(--h1-fontsize);
}
h1:not(:first-child) {
margin-top: 1rem;
}
h2 {
margin-top: 1rem;
margin-bottom: 0rem;
font-size: var(--h2-fontsize);
}
h3 {
margin-top: 1rem;
margin-bottom: 0rem;
font-size: var(--h3-fontsize);
}
h4, h5, h6 {
color: var(--header-color);
margin-top: 1rem;
margin-bottom: 0rem;
font-size: 1rem;
}
h4 {
font-size: var(--h4-fontsize);
}
h6 {
color: var(--control-text-color);
}
h1::before,
h2::before,
h3::before {
font-weight: 400;
text-align: right;
width: 5ch;
padding-right: 1ch;
margin-left: -5ch;
color: var(--accent-color);
display: inline-block;
}
h1::before {
content: '#';
}
h2::before {
content: '##';
}
h3::before {
content: '###';
}
h1 tt,
h1 code {
font-size: inherit;
}
h2 tt,
h2 code {
font-size: inherit;
}
h3 tt,
h3 code {
font-size: inherit;
}
h4 tt,
h4 code {
font-size: inherit;
}
h5 tt,
h5 code {
font-size: inherit;
}
h6 tt,
h6 code {
font-size: inherit;
}
/* table */
table {
margin-top: 1rem;
margin-bottom: 1rem;
}
table tr:nth-child(2n),
thead {
background-color: var(--side-bar-bg-color);
}
td,
th {
border-style: solid;
border-color: var(--border-color);
border-width: 1px;
padding: .35rem .7rem
}
li p {
margin: 0;
}
.task-list {
padding-left: 0;
}
.task-list-item {
padding-left: 1.5em;
margin-bottom: 0rem;
}
#write input[type='checkbox'] {
margin-top: 5px;
}
blockquote {
margin: 1rem 0;
padding-left: 2ch;
margin-left: .5ch;
position: relative;
overflow: hidden;
border-left: 2px solid var(--border-color);
color: var(--accent-color);
}
/* horizontal line */
hr {
border: none;
border-bottom: 2px solid var(--border-color);
margin-top: 1.4rem;
margin-bottom: 1.4rem;
}
p {
margin: 2rem 0;
}
/**
* Code Fences
* see http:/*support.typora.io/Code-Block-Styles
*/
.cm-s-inner .CodeMirror-gutters {
background: var(--code-bg-color);
}
.code-tooltip {
box-shadow: none;
border-radius: var(--border-radius);
background-color: var(--code-bg-color);
border-color: var(--border-color);
border-style: solid;
border-width: 1px;
}
.code-tooltip input {
outline: none;
width: 20ch;
}
.md-fences .code-tooltip {
bottom: -1.8rem;
padding: none;
}
.md-fences.md-focus .cm-s-inner {
/* Remove bottom right border radius when tooltip is shown */
border-bottom-right-radius: 0;
}
/* code tooltip autocomplete list */
.autoComplt-hint {
background-color: transparent !important;
margin: 0 !important;
padding: 0.125rem 0.375rem !important;
color: var(--text-color) !important;
line-height: var(--line-height) !important;
height: 1.4rem !important;
}
.autoComplt-hint-selected {
background-color: var(--link-color) !important;
color: var(--background-color) !important;
}
/* basic styles */
.md-fences,
code,
tt {
border: 1px solid var(--border-color);
background-color: var(--code-bg-color);
font-family: var(--monospace-font);
font-size: var(--monospace-font-size);
border-radius: .25rem;
padding: 0 .125rem;
line-height: var(--monospace-line-height);
}
.md-fences {
margin-bottom: 18px;
margin-top: 15px;
padding: 0.2em 1em;
padding-top: 8px;
padding-bottom: 6px;
}
a {
color: var(--link-color);
}
/**
* Control UI (optional)
*/
.outline-item:hover {
color: var(--header-color);
}
#write div.md-toc-tooltip {
background-color: var(--background-color);
}

View File

@@ -0,0 +1,95 @@
@import 'night/codeblock.dark.css';
@import 'night/mermaid.dark.css';
@import 'night/sourcemode.dark.css';
@import 'ia_typora.css';
:root {
--accented-background-color: #1e1e1e;
--light-header-color: #dbdbdb; /* H1-H3 */
--select-text-bg-color: #186a9a;
--accent-color: #4f525a;
--background-color: #101010;
--font-color: #bbbcbc;
--header-color: #bebebe; /* H4-H6 */
--border-color: #232629;
--link-color: #5584aa;
--code-bg-color: #1c1a1a;
--hover-bg-color: #050505;
--control-text-color: var(--font-color);
--side-bar-bg-color: var(--accented-background-color);
--control-text-hover-color: var(--header-color);
--item-hover-text-color: var(--header-color);
--item-hover-bg-color: var(--hover-bg-color);
--bg-color: var(--background-color);
--text-color: var(--font-color);
--meta-content-color: var(--accent-color);
--md-char-color: var(--accent-color);
--window-border: 1px solid rgba(0,0,0,.07);
--active-file-bg-color: var(--hover-bg-color);
}
.outline-item:hover {
background-color: var(--hover-bg-color);
}
#write {
cursor: -webkit-image-set(url("night/cursor.png") 1x, url("night/cursor@2x.png") 2x) 8 8, auto;
}
h1,
h2,
h3 {
color: var(--light-header-color);
}
mark {
background: #b8b80a
}
table tr:nth-child(2n),
thead {
background-color: #141313;
}
sup.md-footnote {
background-color: var(--code-bg-color);
color: var(--font-color);
}
/* right click menu */
.context-menu {
background-color: #141313;
}
.context-menu.dropdown-menu .divider {
background-color: #232629;
}
/* focus mode */
.on-focus-mode .md-end-block:not(.md-focus):not(.md-focus-container) * {
color: #4f525a !important;
}
.on-focus-mode .md-end-block:not(.md-focus) img,
.on-focus-mode .md-task-list-item:not(.md-focus-container)>input {
opacity: #4f525a !important;
}
.on-focus-mode li[cid]:not(.md-focus-container){
color: #4f525a;
}
.on-focus-mode .md-fences.md-focus .CodeMirror-code>*:not(.CodeMirror-activeline) *,
.on-focus-mode .CodeMirror.cm-s-inner:not(.CodeMirror-focused) * {
color: #4f525a !important;
}
.on-focus-mode .md-focus,
.on-focus-mode .md-focus-container {
color: var(--light-header-color);
}
.on-focus-mode #typora-source .CodeMirror-code>*:not(.CodeMirror-activeline) * {
color: #4f525a !important;
}

View File

@@ -0,0 +1 @@
sudo apt remove -y fastfetch

View File

@@ -0,0 +1 @@
sudo apt remove -y flameshot

View File

@@ -0,0 +1 @@
sudo apt remove -y localsend

1
uninstall/app-steam.sh Normal file
View File

@@ -0,0 +1 @@
sudo apt remove -y steam steam-launcher

2
uninstall/app-typora.sh Normal file
View File

@@ -0,0 +1,2 @@
sudo apt remove typora
rm -rf ~/.config/Typora

1
uninstall/app-vlc.sh Normal file
View File

@@ -0,0 +1 @@
sudo apt remove -y vlc

2
uninstall/docker.sh Normal file
View File

@@ -0,0 +1,2 @@
sudo apt purge --auto-remove docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin docker-ce-rootless-extras
sudo groupdel docker